Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
18336c938e4c78e1996b8f4f305f3bd3d277f958
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 589
407 #define YY_END_OF_BUFFER 590
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[3458] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
445         0,    0,  590,  588,   15,   10,   10,   15,   15,  568,
446        10,  568,    5,    6,    5,    8,    9,    8,  584,  576,
447       577,  585,  582,  585,  583,  587,  576,  577,  587,  588,
448        22,   10,   22,   22,   22,   20,   22,   26,   10,   26,
449
450        26,  588,   26,  588,  588,   26,   33,   10,   33,   33,
451        33,   31,   33,   37,   10,   37,   37,   48,   10,   48,
452        48,   48,   46,   48,   48,   48,  585,  584,   78,   10,
453        78,   78,   78,   76,   78,   78,   78,   78,   78,   82,
454        10,   82,  101,   10,  101,  101,  101,   99,  101,  101,
455       101,  105,   10,  105,  128,   10,  128,  128,  128,  126,
456       128,  128,  132,   10,  132,  132,  588,  132,  588,  132,
457       132,  588,  588,  132,  588,  132,  588,  132,  147,   10,
458       147,  147,  147,  145,  147,  147,  147,  147,  151,   10,
459       151,  588,  151,  164,   10,  164,  164,  164,  162,  164,
460
461       164,  164,  168,   10,  168,  168,  177,   10,  177,  177,
462       177,  175,  177,  177,  181,   10,  181,  190,   10,  190,
463       190,  190,  188,  190,  190,  194,   10,  194,  219,   10,
464       219,  219,  219,  217,  219,  219,  219,  219,  219,  223,
465        10,  223,  588,  223,  230,   10,  230,  230,  230,  228,
466       230,  234,   10,  234,  245,   10,  245,  245,  245,  243,
467       245,  245,  245,  249,   10,  249,  302,   10,  302,  302,
468       302,  300,  302,  302,  302,  302,  302,  302,  302,  302,
469       302,  306,   10,  306,  306,  325,   10,  325,  325,  325,
470       323,  325,  325,  325,  325,  325,  325,  329,   10,  329,
471
472       350,   10,  350,  350,  350,  348,  350,  350,  350,  350,
473       350,  350,  350,  354,   10,  354,  363,   10,  363,  363,
474       363,  361,  363,  363,  367,   10,  367,  378,   10,  378,
475       378,  378,  376,  378,  378,  378,  382,   10,  382,  409,
476        10,  409,  409,  409,  407,  409,  409,  409,  409,  413,
477        10,  413,  413,  426,   10,  426,  426,  426,  424,  426,
478       426,  430,   10,  430,  588,  430,  447,   10,  447,  447,
479       447,  445,  447,  447,  447,  451,   10,  451,  451,  464,
480        10,  464,  464,  464,  462,  464,  464,  468,   10,  468,
481       477,   10,  477,  477,  477,  475,  477,  477,  481,   10,
482
483       481,  481,  494,   10,  494,  494,  494,  492,  494,  494,
484       494,  498,   10,  498,  498,  515,   10,  515,  515,  515,
485       513,  515,  515,  515,  515,  515,  519,   10,  519,  588,
486       519,  526,   10,  526,  526,  526,  524,  526,  530,   10,
487       530,  537,   10,  537,  537,  537,  535,  537,  541,   10,
488       541,  541,  550,   10,  550,  550,  550,  548,  550,  550,
489       554,   10,  554,  563,   10,  563,  563,  563,  561,  563,
490       563,  567,   10,  567,   10,    0,    2,    2,    0,    4,
491         7,  579,  578,    0,    0,    0,    0,    0,    0,    0,
492        21,   23,   23,    0,    0,    0,    0,    0,    0,    0,
493
494         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
495         0,    0,    0,    0,    0,    0,    0,   32,   34,   34,
496         0,   47,   49,   49,   49,   49,    0,    0,    0,   77,
497        79,   79,   79,   79,   79,   79,   79,   79,   79,    0,
498       100,  102,  102,  102,  102,    0,  127,  129,  129,  129,
499         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
500         0,    0,    0,    0,    0,    0,    0,    0,    0,  146,
501       148,  148,  148,  148,  148,    0,    0,  163,  165,  165,
502       165,  165,    0,  176,  178,  178,  178,    0,  189,  191,
503       191,  191,    0,  218,  220,  220,  220,  220,  220,  220,
504
505       220,    0,    0,  229,  231,  231,    0,  244,  246,  246,
506       246,  246,    0,  301,  303,  303,  303,  303,  303,  303,
507       303,  303,  303,  303,  303,  303,  303,  303,  303,  303,
508       303,    0,  324,  326,  326,  326,  326,  326,  326,  326,
509       326,    0,  349,  351,  351,  351,  351,  351,  351,  351,
510       351,    0,  362,  364,  364,  364,    0,  377,  379,  379,
511       379,  379,    0,  408,  410,  410,  410,  410,  410,  410,
512         0,  425,  427,  427,  427,  427,    0,    0,  446,  448,
513       448,  448,  448,  448,    0,  463,  465,  465,  465,    0,
514       476,  478,  478,  478,    0,  493,  495,  495,  495,  495,
515
516         0,  514,  516,  516,  516,  516,  516,  516,    0,    0,
517       525,  527,  527,    0,  536,  538,  538,    0,  549,  551,
518       551,  551,    0,  562,  564,  564,  564,    0,    0,    0,
519         0,    0,    3,    0,    0,    0,    0,    0,    0,    0,
520       586,    0,   23,    0,    0,  107,    0,    0,    0,    0,
521         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
522         0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
523         0,    0,    0,    0,   34,    0,    0,   49,    0,    0,
524        49,    0,    0,    0,  581,   79,    0,    0,   79,   79,
525        79,   79,   79,   79,    0,    0,  102,  102,  102,    0,
526
527         0,    0,    0,  129,    0,    0,  107,    0,    0,    0,
528         0,    0,    0,    0,    0,  106,    0,    0,    0,    0,
529       148,    0,    0,  148,  148,    0,    0,    0,  165,    0,
530         0,  165,    0,    0,  178,  178,    0,    0,  191,  191,
531         0,    0,  220,  220,  220,    0,    0,  220,  220,  220,
532         0,    0,    0,    0,  231,    0,    0,  246,    0,    0,
533         0,    0,    0,    0,  303,  303,    0,    0,  303,    0,
534         0,  303,  303,  303,  303,  303,  303,  303,  303,  303,
535       303,  303,    0,    0,    0,    0,    0,    0,  326,  326,
536       326,  326,  326,    0,    0,  351,  351,  351,    0,    0,
537
538       351,  351,  351,    0,    0,  364,    0,    0,    0,    0,
539       379,    0,    0,  379,    0,    0,  410,    0,    0,  410,
540       410,  410,    0,    0,  427,  427,  427,    0,    0,    0,
541       448,  448,  448,  448,    0,    0,  465,    0,    0,    0,
542         0,  478,  478,    0,    0,  495,  495,  495,    0,    0,
543       516,  516,  516,  516,  516,    0,    0,    0,  527,    0,
544         0,    0,    0,    0,    0,    0,    0,  551,    0,    0,
545         0,    0,  564,    0,    0,    0,   14,    1,    0,    0,
546       574,    0,    0,    0,  571,  570,    0,    0,   23,    0,
547         0,   25,    0,  107,    0,    0,    0,    0,    0,    0,
548
549         0,  224,    0,    0,    0,    0,    0,    0,    0,    0,
550         0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
551         0,    0,    0,    0,   34,    0,    0,   36,    0,   49,
552         0,   41,   40,   49,    0,    0,    0,   51,    0,   79,
553         0,   55,   54,    0,    0,   79,    0,    0,   79,   79,
554        79,    0,    0,   81,    0,  102,  102,  102,    0,    0,
555       104,    0,    0,  109,  108,  129,    0,    0,  131,    0,
556         0,    0,    0,  225,    0,    0,    0,    0,    0,    0,
557         0,    0,    0,  148,    0,  136,  135,  148,  148,    0,
558         0,  150,    0,    0,  165,    0,  155,  154,  165,    0,
559
560         0,  167,    0,  178,  178,    0,    0,  180,    0,  191,
561       191,    0,    0,  193,    0,  220,  220,  220,    0,  198,
562       197,  220,  220,  220,    0,    0,  222,    0,    0,    0,
563       231,    0,    0,  233,    0,  246,    0,  238,  237,    0,
564       240,  239,    0,    0,  248,    0,  303,  303,  303,  303,
565         0,  265,  264,  303,    0,  253,  252,    0,    0,  303,
566       303,  303,  303,  303,  303,  303,  303,  303,  303,    0,
567         0,  305,    0,    0,  320,  319,    0,  310,  309,    0,
568         0,  326,  326,  326,  326,    0,    0,  328,    0,  351,
569       351,  351,  351,    0,  333,  332,    0,    0,  351,  351,
570
571         0,    0,  353,    0,  364,    0,  358,  357,    0,    0,
572       366,    0,  379,    0,  371,  370,  379,    0,    0,  381,
573         0,  410,    0,  386,  385,  410,  410,  410,    0,    0,
574       412,    0,    0,    0,    0,    0,  427,    0,    0,  429,
575         0,    0,    0,    0,  448,  448,    0,    0,  448,    0,
576         0,  450,    0,  465,    0,  455,  454,    0,    0,  467,
577         0,    0,    0,    0,    0,    0,    0,  480,    0,    0,
578         0,  495,  495,    0,    0,    0,    0,  497,    0,  516,
579       516,  516,  516,  516,    0,    0,  518,    0,    0,  527,
580         0,    0,  529,    0,    0,  534,  533,    0,    0,  540,
581
582         0,    0,  545,  544,  551,    0,    0,  553,    0,    0,
583       558,  557,  564,    0,    0,  566,    0,    0,    0,  575,
584       569,    0,    0,    0,   23,    0,    0,    0,    0,    0,
585         0,    0,    0,  224,  195,    0,  383,    0,    0,    0,
586       331,    0,    0,  542,    0,    0,    0,    0,    0,    0,
587         0,    0,    0,  330,    0,    0,    0,    0,    0,    0,
588         0,   49,    0,    0,   79,    0,   59,   58,    0,    0,
589         0,   57,   56,   79,    0,    0,   79,    0,  102,    0,
590         0,  102,    0,  129,    0,  130,    0,    0,    0,  225,
591       196,  384,  543,    0,    0,    0,    0,    0,    0,  148,
592
593       148,    0,    0,    0,    0,  165,  165,    0,    0,    0,
594       178,    0,    0,    0,  191,    0,  220,  220,    0,    0,
595       220,  220,  220,    0,    0,    0,    0,    0,    0,    0,
596         0,    0,  303,  303,  303,  303,    0,    0,    0,  267,
597       266,  303,  303,  303,  303,  303,  303,  303,  303,  303,
598       303,  303,    0,    0,  322,  321,  326,  326,  326,  326,
599         0,  351,  351,  351,  351,    0,  341,  340,  351,  351,
600         0,  364,    0,  379,  379,    0,  410,  410,  410,  410,
601         0,    0,  419,  418,    0,  417,  416,  427,    0,  383,
602         0,  436,  435,  448,  448,    0,  434,  433,  448,    0,
603
604       465,    0,    0,  474,  473,    0,  472,  471,    0,    0,
605       487,  486,  495,  495,    0,  485,  484,    0,  516,    0,
606         0,  516,  516,  516,    0,    0,  527,    0,    0,  551,
607         0,  564,    0,    0,    0,    0,   12,    0,  572,  573,
608         0,   23,    0,    0,    0,    0,    0,    0,    0,    0,
609       195,    0,    0,  383,    0,    0,  169,    0,  331,    0,
610         0,  542,    0,  414,    0,   39,    0,    0,    0,    0,
611         0,  330,    0,   38,    0,   30,   29,    0,    0,   43,
612        42,   49,    0,    0,   79,    0,   61,   60,   79,    0,
613        65,   64,   79,    0,  102,    0,    0,    0,    0,    0,
614
615         0,  129,    0,    0,    0,  196,    0,  384,  543,  415,
616         0,    0,    0,  415,  414,  148,    0,    0,    0,  140,
617       139,    0,    0,  165,  165,    0,    0,  174,  173,  178,
618         0,    0,  187,  186,  191,    0,  220,  220,    0,  202,
619       201,    0,    0,  220,    0,    0,  220,    0,  170,    0,
620         0,  227,  226,    0,  232,    0,  242,  241,    0,  303,
621         0,    0,  303,  303,    0,  263,  262,  303,  303,    0,
622         0,  303,  303,  303,  303,  303,  303,  303,  303,    0,
623         0,    0,  326,  326,  326,    0,  351,    0,    0,  351,
624       351,    0,    0,  351,    0,  364,    0,  379,  379,    0,
625
626       410,  410,  410,    0,    0,  410,    0,  427,    0,    0,
627       448,  448,  448,    0,  465,    0,    0,  495,  495,    0,
628       516,    0,  502,  501,  516,  516,  516,    0,    0,    0,
629         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
630         0,    0,   11,    0,   23,    0,    0,    0,    0,    0,
631         0,    0,  532,    0,    0,    0,    0,  169,    0,    0,
632         0,   53,  414,  355,    0,   39,    0,  531,   52,    0,
633         0,    0,    0,   38,    0,    0,   49,    0,    0,   79,
634        79,   79,    0,  102,    0,    0,    0,    0,    0,    0,
635         0,    0,    0,   96,   95,    0,  129,    0,    0,    0,
636
637         0,  415,  356,    0,    0,    0,  148,    0,  138,  137,
638         0,    0,  165,    0,    0,    0,  178,    0,    0,    0,
639         0,  220,  220,    0,  200,  199,    0,    0,    0,    0,
640         0,  220,    0,  221,  170,    0,    0,  303,    0,  281,
641       280,    0,    0,  303,  303,  303,    0,  261,  260,    0,
642         0,  303,  303,  303,  303,    0,    0,  303,  303,    0,
643         0,  318,  317,    0,    0,  326,    0,    0,    0,  351,
644         0,  337,  336,    0,    0,  351,    0,  335,  334,  351,
645         0,  352,  364,    0,  379,  379,    0,  410,  410,  410,
646         0,    0,    0,  410,    0,  411,  427,    0,    0,    0,
647
648         0,    0,    0,  448,    0,  465,    0,    0,    0,    0,
649         0,    0,    0,  516,  516,  516,  516,    0,    0,    0,
650       523,  522,    0,    0,    0,  547,  546,    0,  552,    0,
651       560,  559,    0,    0,    0,    0,    0,    0,    0,    0,
652       431,    0,    0,    0,    0,  308,  251,  532,    0,   28,
653         0,    0,    0,    0,  500,   53,  355,  152,    0,  531,
654        52,  307,  250,   27,  499,    0,    0,   49,    0,    0,
655        50,   79,    0,    0,   79,    0,    0,    0,    0,    0,
656         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657         0,  432,    0,    0,    0,    0,  356,  153,    0,    0,
658
659       148,    0,    0,    0,    0,  165,    0,  157,  156,    0,
660       178,    0,  179,    0,  185,  184,    0,  220,  220,    0,
661       216,  215,    0,    0,  220,    0,    0,  303,    0,  283,
662       282,  303,  303,  303,    0,  255,  254,    0,    0,  303,
663       303,  303,    0,  257,  256,  303,  303,    0,    0,  312,
664       311,    0,    0,    0,  314,  313,    0,  351,    0,  339,
665       338,  351,  351,  364,    0,  379,    0,    0,    0,  410,
666         0,    0,  410,  410,    0,    0,  410,  427,    0,  428,
667         0,    0,  440,  439,    0,  438,  437,  448,    0,  465,
668         0,    0,    0,  491,  490,    0,  489,  488,    0,  516,
669
670       516,  516,  516,    0,    0,    0,    0,    0,    0,    0,
671         0,   17,    0,   19,   18,    0,  431,  520,  368,    0,
672         0,  308,  251,    0,   28,  452,    0,  182,   16,  500,
673       152,    0,    0,  307,  250,   27,  499,    0,    0,   49,
674       580,   79,    0,   67,   66,   79,    0,   80,    0,   98,
675        97,    0,    0,    0,    0,    0,    0,    0,    0,    0,
676         0,    0,    0,    0,    0,  432,  369,    0,    0,    0,
677       153,    0,    0,  142,  141,  148,    0,    0,    0,  159,
678       158,  165,    0,  178,    0,  220,  220,    0,    0,    0,
679         0,  220,  183,    0,  303,  303,  303,  303,    0,  259,
680
681       258,  303,  303,  303,  303,    0,    0,    0,    0,  316,
682       315,    0,  351,  351,  351,  364,    0,  365,  379,    0,
683       375,  374,    0,  410,    0,  392,  391,  410,  410,    0,
684         0,    0,    0,  410,  427,  453,  448,    0,  465,    0,
685         0,    0,    0,    0,  516,  516,  516,    0,  521,    0,
686         0,  539,    0,    0,    0,    0,   17,    0,  520,  368,
687         0,    0,  235,  452,    0,  182,   16,    0,    0,    0,
688         0,   35,   49,    0,    0,   79,    0,    0,    0,    0,
689         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
690         0,    0,    0,    0,    0,    0,    0,  369,    0,    0,
691
692       236,    0,  148,    0,    0,  165,    0,  166,    0,    0,
693         0,  220,  220,    0,  208,    0,  207,  220,  183,    0,
694       303,  303,  303,  303,  303,    0,    0,  303,  303,  303,
695         0,    0,    0,    0,  304,    0,  327,  351,  351,  351,
696       364,    0,    0,    0,    0,    0,  410,  410,  410,    0,
697       396,    0,  395,  410,  427,  453,  448,    0,  449,    0,
698         0,    0,    0,    0,    0,  504,  503,    0,    0,  516,
699       516,    0,  517,  521,    0,    0,    0,    0,    0,    0,
700        24,    0,    0,  235,  555,    0,    0,    0,   49,    0,
701         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
702
703         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
704         0,    0,    0,    0,    0,    0,    0,    0,  236,    0,
705       148,    0,  556,  165,    0,  172,  171,    0,  192,  220,
706       220,  210,  209,    0,    0,    0,  303,  303,  303,  303,
707       303,    0,  293,  292,  303,    0,    0,  303,    0,    0,
708         0,    0,  351,  351,    0,    0,  364,    0,  373,  372,
709         0,  380,    0,  388,  387,  410,  410,  410,  398,  397,
710         0,    0,  427,  448,    0,    0,    0,    0,  466,    0,
711         0,    0,  508,  507,    0,    0,    0,    0,    0,  528,
712         0,    0,    0,    0,    0,  469,  555,    0,    0,    0,
713
714         0,    0,    0,    0,    0,    0,    0,    0,   79,    0,
715         0,    0,    0,   88,    0,    0,    0,    0,   87,    0,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
717         0,    0,    0,  470,    0,  148,    0,  556,  165,  220,
718         0,    0,    0,  212,  211,    0,  247,  303,  303,  303,
719         0,    0,  303,  303,    0,  291,  290,  303,    0,    0,
720         0,    0,  351,    0,    0,    0,  347,  346,    0,    0,
721       410,  410,  410,    0,  400,  399,    0,    0,    0,    0,
722         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
723         0,    0,  506,  505,    0,    0,    0,    0,    0,  469,
724
725       133,    0,    0,    0,   45,   44,    0,    0,    0,    0,
726         0,    0,    0,    0,   79,    0,    0,    0,    0,    0,
727         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
728         0,    0,    0,    0,    0,    0,    0,  470,  134,    0,
729         0,    0,    0,    0,    0,    0,  220,    0,  214,  213,
730       303,  303,    0,    0,    0,  297,  296,    0,    0,  303,
731       303,    0,    0,    0,    0,  351,    0,  343,  342,    0,
732       360,  359,  410,    0,    0,  410,    0,    0,    0,    0,
733         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
734         0,    0,    0,    0,    0,  565,    0,    0,    0,    0,
735
736       482,  133,   84,   83,    0,    0,    0,    0,    0,    0,
737         0,    0,    0,    0,    0,    0,   94,    0,    0,    0,
738        93,    0,    0,    0,    0,    0,  111,  119,    0,    0,
739         0,    0,  110,  118,    0,  483,  134,    0,  144,  143,
740         0,    0,  161,  160,    0,  204,  203,  220,  303,  303,
741         0,  295,  294,    0,  299,  298,  303,  303,    0,    0,
742         0,    0,  351,  410,    0,  394,  393,  410,    0,    0,
743         0,    0,    0,    0,    0,    0,    0,    0,  457,    0,
744         0,  456,    0,  479,    0,    0,    0,    0,    0,    0,
745         0,    0,    0,    0,    0,  482,   84,   83,    0,    0,
746
747         0,    0,    0,    0,    0,    0,    0,   63,   62,    0,
748         0,    0,    0,    0,    0,    0,    0,    0,  113,    0,
749         0,    0,  112,    0,  483,    0,  149,  220,  303,  303,
750         0,    0,  303,  275,    0,  274,    0,  351,    0,    0,
751         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
752         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
753         0,    0,    0,    0,    0,    0,   75,   71,    0,    0,
754        74,   70,    0,   92,    0,    0,   91,    0,    0,    0,
755       103,    0,    0,    0,    0,    0,    0,  220,  303,  303,
756         0,    0,    0,    0,    0,  277,  276,  351,    0,  390,
757
758       389,    0,    0,    0,  423,    0,  422,    0,  444,    0,
759       443,    0,  459,  461,  458,  460,    0,  496,  510,    0,
760       509,    0,    0,    0,    0,   12,    0,   12,    0,    0,
761         0,    0,    0,   86,   90,   85,   89,  123,    0,    0,
762       121,  122,    0,    0,  120,  220,  303,  303,    0,    0,
763         0,    0,    0,  279,  278,  351,    0,    0,    0,    0,
764       421,  420,  442,  441,    0,    0,    0,    0,    0,    0,
765         0,    0,    0,    0,    0,    0,  115,    0,    0,  114,
766         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
767         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
768
769         0,    0,    0,    0,    0,   69,    0,   68,    0,    0,
770         0,    0,    0,    0,  206,  205,    0,  289,  288,    0,
771         0,    0,    0,    0,    0,    0,    0,    0,    0,  345,
772       344,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773        11,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775         0,    0,    0,  512,  511,    0,   73,   72,    0,    0,
776         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
777         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
778         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
779
780         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
781       125,  117,  124,  116,    0,    0,    0,    0,    0,    0,
782       269,    0,    0,  268,    0,    0,  402,    0,    0,  401,
783         0,    0,    0,    0,    0,  273,    0,  272,    0,  404,
784         0,  403,    0,    0,    0,    0,    0,    0,    0,    0,
785         0,    0,    0,    0,  285,    0,  284,    0,    0,    0,
786         0,    0,    0,  287,  286,  271,  270,  406,  405,    0,
787         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
788         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
789         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
790
791         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
792         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
793         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
794         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
795         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
796         0,    0,    0,    0,    0,   13,    0
797     } ;
798
799 static yyconst flex_int32_t yy_ec[256] =
800     {   0,
801         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
802         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
803         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
804         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
805         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
806        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
807        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
808        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
809        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
810        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
811
812        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
813        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
814        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
815         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
816         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
817         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
818         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
819         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
820         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
821         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
822
823         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
824         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
825         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
826         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
827         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
828         1,    1,    1,    1,    1
829     } ;
830
831 static yyconst flex_int32_t yy_meta[75] =
832     {   0,
833         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
834         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
835         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
836         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
837         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
838         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
839         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
840         5,    5,    5,    5
841     } ;
842
843 static yyconst flex_int16_t yy_base[3970] =
844     {   0,
845         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
846        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
847       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
848       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
849       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
850       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
851       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
852       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
853       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
854       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
855
856       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
857      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
858      1149, 1153, 1191, 1258, 1211, 1214, 1325, 1393, 1217, 1221,
859      1461, 1528, 1224, 1278, 1281, 1284, 1288, 1291, 1345, 1348,
860      1595, 1657, 1351, 1355, 1719, 1788, 1358, 1413, 1857,    0,
861      1416, 1419, 1423, 1426, 1481, 1484, 1487, 1491, 1931, 1998,
862      1548, 1551, 2065, 2132, 1554, 1558, 2199, 2256, 1615, 1618,
863      2313, 2373, 1621, 1625, 2433, 2500, 1628, 1677, 1680, 1683,
864      1687, 1690, 1739, 1742, 2567, 2634, 1745, 1749, 1752, 1808,
865      1811, 1814, 1818, 1821, 2701, 2768, 1951, 1954, 1957, 1961,
866
867      1964, 2018, 2021, 2024, 2835, 2892, 2028, 2031, 2949, 3016,
868      2085, 2088, 2091, 2095, 2152, 2155, 2158, 2162, 3083, 3150,
869      2219, 2222, 2225, 2229, 2276, 2279, 2282, 2286, 3217, 3284,
870      2333, 2336, 2339, 2343, 2346, 2393, 2396, 2399, 3351, 3421,
871      2403, 2406, 3491, 3548, 2453, 2456, 2459, 2463, 2466, 2520,
872      2523, 2526, 3605, 3675, 2530, 2533, 3745, 3815, 2587, 2590,
873         0,    0, 9416,12593,12593,   95,  100,   29,   41,12593,
874       103,   51,12593,12593, 9405,12593,12593, 9394,12593, 9405,
875      9405,  202,12593,12593,12593,12593, 9403, 9399, 9354,  153,
876     12593,  161, 9380,    0,  145,12593, 9342,12593,  165, 3881,
877
878        73, 2599,  315,  357, 9382, 9329,12593,  168, 9368,    0,
879       152,12593, 9330,12593,  261, 9374,   31,12593,  266, 9361,
880         0,  245,12593, 9323, 9327, 9321,  421, 9326,12593,  269,
881      9352,    0,  340,12593, 9314, 9314,  271, 9316,  238,12593,
882       441,  484,12593,  504, 9340,    0,  401,12593, 9299, 9301,
883      9287,12593,  561,  548,12593,  571, 9332,    0,  481,12593,
884      9299, 9283,12593,  628, 3945, 9281,  163, 2533,  567,  206,
885        38, 9332,  954, 2607,  639,  907,  437,   79,12593,  634,
886      9319,    0,  546,12593, 9275, 9285, 9269, 9274,12593,  638,
887       313,  559,  368,12593,  697, 9310,    0,  549,12593, 9262,
888
889      9272, 9250,12593,  704,  426,  497,12593,  707, 9298,    0,
890       747,12593, 9268, 9248,12593,  767,  753,12593,  773, 9291,
891         0,  757,12593, 9261, 9236,12593,  831,  818,12593,  838,
892      9284,    0,  758,12593, 9233, 9239, 9245,  251, 9228,12593,
893       841,  466, 9234,  530,12593,  906, 9270,    0,  815,12593,
894      9240,12593,  914,  891,12593,  977, 9268,    0,  816,12593,
895      9220, 9230, 9217,12593,  981,  965,12593, 1021, 9256,    0,
896       881,12593, 9205,  203, 9211, 9217,  378,   85,  639,  972,
897      9205,12593, 1040,  564,  814,12593, 1044, 9247,    0,  953,
898     12593, 9191, 9209, 9211,  157, 8639, 8618,12593, 1048, 1086,
899
900     12593, 1106, 8665,    0,  966,12593, 8614, 8612, 8619, 8629,
901      8631, 8616, 8609,12593, 1111, 1099,12593, 1114, 8656,    0,
902      1032,12593, 8611, 8614,12593, 1156, 1160,12593, 1173, 8645,
903         0, 1033,12593, 8614, 8603, 8604,12593, 1180, 1228,12593,
904      1183, 8632,    0, 1100,12593, 8601, 8593, 8595,   15,12593,
905      1186,  899,  963,12593, 1241, 8622,    0, 1157,12593, 8569,
906       181,12593, 1244, 1243,  432,  303,12593, 1248, 8614,    0,
907      1158,12593, 8563, 8557,  299,12593, 1308, 1229,  350,12593,
908      1311, 8607,    0, 1295,12593, 8560, 8554,12593, 1315, 1362,
909     12593, 1319, 8585,    0, 1303,12593, 8528, 8528,12593, 1375,
910
911      1378,  685,12593, 1378, 8572,    0, 1363,12593, 8517, 8511,
912      8513,12593, 1445, 1438,  744,12593, 1449, 8557,    0, 1365,
913     12593, 8503, 8508, 8503, 8497, 8485,12593, 1454, 1447,  560,
914      1007,12593, 1511, 8527,    0, 1370,12593, 8492,12593, 1517,
915      1559,12593, 1520, 8520,    0, 1495,12593, 8480,12593, 1579,
916      1210, 1433,12593, 1584, 8511,    0, 1496,12593, 8477, 8475,
917     12593, 1587, 1632,12593, 1645, 8503,    0, 1563,12593, 8469,
918      8463,12593, 1648, 1633, 1707,  719, 8437,12593, 8496, 8467,
919     12593,12593,12593, 1700,  375, 8418, 8416, 8410, 8457, 8416,
920     12593,    0, 8408, 8396, 8420, 8382,  104, 1037, 8383, 8380,
921
922      8379, 8383,  889, 1646, 1105, 8371, 8371, 1510, 1577, 8397,
923      1701, 8372, 1709, 8361, 1719, 1720, 1721,12593,    0, 8362,
924      8364,12593,    0, 8359, 2098, 8344,  666, 8341, 8387,12593,
925         0, 8336, 2165, 8321, 8330, 8311, 8320, 8317, 8299, 8280,
926     12593,    0, 8292, 8272, 8284, 8263,12593,    0, 2232, 8261,
927      8306, 8284,  172, 8248, 8246, 8246, 1777, 1639, 8233, 1778,
928      8259,  724,  814,  841,  888, 1770, 1792, 1779, 1046,12593,
929         0, 8234, 2289, 8240, 8216, 8212,  897,12593,    0, 8216,
930      2596, 8208, 8204,12593,    0, 8197, 8194, 8194,12593,    0,
931      8189, 8185, 8186,12593,    0, 8192,  621, 2614, 8168, 8167,
932
933      8184, 8176, 1027,12593,    0, 8169, 8167,12593,    0, 8148,
934      2656, 2666, 8158,12593,    0, 8164, 8153, 2674, 8134, 2680,
935      8130, 8117, 8114, 8103, 8118, 8117, 8097, 8095, 8094, 8087,
936      8071, 8082,12593,    0, 2721, 2724, 8060, 8056, 8072, 8065,
937      8062, 8063,12593,    0, 8059, 8058, 8038, 2727, 8032, 8027,
938      8041, 8025,12593,    0, 8020, 2730, 8015,12593,    0, 8018,
939      2733, 8010, 8023,12593,    0, 8006, 2788, 7997, 8011, 8010,
940      7988,12593,    0, 7979, 7994, 7979, 7973, 7976,12593,    0,
941      7964, 7973, 7951, 7939, 7976,12593,    0, 7931, 2791, 7935,
942     12593,    0, 7912, 7922, 7922,12593,    0, 7902, 7910, 7906,
943
944      7897,12593,    0, 7884, 7869, 7875, 7877, 7875, 7858, 7847,
945     12593,    0, 7851, 7857,12593,    0, 2794, 7854,12593,    0,
946      2797, 7835, 7830,12593,    0, 2800, 7832, 7823, 7863, 7867,
947      1558, 7811,12593, 1833,    0, 7807, 7797, 7840, 7835, 7788,
948     12593, 7796, 7776, 2600, 2855, 1981, 7787, 7788, 7766, 7755,
949      7734, 7737, 7726, 7726, 7741, 7712,  330, 7705, 7710, 7713,
950      7697, 7690, 7682, 7686, 7699, 7684, 7682, 1990, 7693, 7672,
951      7676, 7673, 7661, 7674, 7668, 2858, 2863, 7667, 2866, 2048,
952      7661, 7682, 2869, 2914,12593, 7652, 2917, 2117, 2924, 7633,
953      2927, 7637, 7640, 7635, 2920, 2983, 7621, 7628, 7624, 2969,
954
955      2972, 2975, 2184, 7606, 2979, 3037, 2363, 7617, 7603, 7596,
956      7590, 7594, 7588, 7581, 7581, 2423, 7575, 7573, 7566, 7565,
957      7564, 3040, 2550, 7574, 7573, 3044, 3047, 1070, 7550, 3050,
958      2621, 7564, 3103, 3106, 7562, 7548, 3114, 3117, 7559, 7558,
959      3129, 3173, 7548, 7531, 7543, 3109, 2685, 7541, 7540, 7520,
960      3179, 3183, 1340, 7504, 7518, 3186, 3245, 7504, 3239, 2755,
961      3248, 2822, 3252, 3257, 7508, 1920, 3304, 3002, 7510, 3308,
962      3068, 3313, 7491, 7483, 7479, 7477, 7472, 7460, 7451, 7448,
963      7457, 7447, 3322, 3383, 3331, 3137, 3371, 3205, 3374, 3392,
964      3397, 3450, 3459, 3444, 3468, 7451,   37, 7433, 3454, 3403,
965
966      3512, 7445, 7427, 3516, 3519, 7428, 3522, 3411, 3525, 3571,
967      7440, 3574, 3473, 7432, 3577, 3580, 7425, 3583, 3481, 7423,
968      7408, 7405, 3628, 3634, 3637, 3640, 3700, 3643, 3704, 7408,
969      3695, 3723, 3709, 3770, 3713, 3766, 7415, 3774, 3662, 3777,
970      3780, 3792, 3836, 3839, 3843, 3846, 3854, 3849, 3867, 3878,
971      7413, 7384, 7391, 7395, 7375, 3872, 3887, 7385, 7364, 3875,
972      3897, 3906, 3732, 3909, 3920, 3916, 3804, 7363, 3924, 3952,
973      3956, 3967, 7361, 3977, 3983, 7403,12593,12593, 1210, 7350,
974     12593, 7387, 7386, 7334,12593,12593, 7332, 7330, 7333, 3987,
975      4012,12593, 4017, 1714, 7325, 7318, 7325, 7329, 7306, 7289,
976
977      7300, 1781, 7282, 7282, 7271, 7269, 7258, 7237, 7223, 7218,
978       446, 7229, 7212, 7208, 7222, 7215, 7215, 2057, 7197, 7185,
979      7190, 7179,  716, 7183, 4020, 4023, 4027,12593, 4031, 4038,
980      4046,12593,12593, 4056, 7208, 4059, 4065,12593, 4068, 7156,
981      4074,12593,12593, 4087, 4090, 4099, 4105, 4119, 7167, 4108,
982      7165, 4111, 4130,12593, 4133, 7153, 4136, 7151, 4139, 4142,
983     12593, 4145, 4154,12593,12593, 7146, 4164, 4167,12593, 4170,
984      7136, 7139, 7144, 2250, 7124, 7131, 1922, 7104, 7101, 7116,
985      7115, 7094, 7087, 7100, 4173,12593,12593, 7088, 4189, 4194,
986      4197,12593, 4200, 7093, 7090, 4203,12593,12593, 7105, 4219,
987
988      4222,12593, 4225, 4228, 4231, 4234, 4249,12593, 4253, 4256,
989      4262, 4274, 4280,12593, 4283, 7074, 7073, 4287, 4293,12593,
990     12593, 7058, 7054, 7064, 4305, 4308,12593, 4311, 7048, 7046,
991      4314, 4317, 4332,12593, 4336, 4339, 4344,12593,12593, 4357,
992     12593,12593, 4365, 4368,12593, 4371, 7047, 7025, 7046, 7037,
993      4377,12593,12593, 4390, 4393,12593,12593, 4404, 4408, 7024,
994      7040, 7023, 7024, 7028, 7007, 7002, 7004, 6992, 1376, 4416,
995      4422,12593, 4425, 4428,12593,12593, 4437,12593,12593, 4445,
996      4448, 6982, 6989, 6987, 6973, 4456, 4459,12593, 4463, 6958,
997      6954, 6943, 6955, 4466,12593,12593, 4478, 4482, 6939, 6947,
998
999      4496, 4499,12593, 4502, 6947, 4505,12593,12593, 4521, 4524,
1000     12593, 4527, 6912, 4530,12593,12593, 6898, 4546, 4549,12593,
1001      4554, 6888, 4558,12593,12593, 6888, 6884, 6886, 4568, 4573,
1002     12593, 4577, 4580, 4583, 4598, 4604, 6885, 4612, 4616,12593,
1003      4620, 6864, 4623, 4641, 6852, 6847, 4627, 4649, 6832, 4657,
1004      4660,12593, 4663, 6833, 4666,12593,12593, 4682, 4688,12593,
1005      4691, 4694, 4697, 4712, 4715, 4723, 4730,12593, 4734, 4737,
1006      4742, 6800, 6800, 4755, 4758, 4766, 4769,12593, 4773, 6794,
1007      4776, 6802, 6796, 6776, 4779, 4788,12593, 4798, 6773, 6774,
1008      4801, 4807,12593, 4810, 4813,12593,12593, 4821, 4829,12593,
1009
1010      4832, 4836,12593,12593, 6754, 4844, 4851,12593, 4854, 4864,
1011     12593,12593, 6733, 4873, 4876,12593, 4879, 1216, 4882,12593,
1012     12593, 6749, 6747, 6707, 6670, 4885, 6588, 6592, 6517, 6486,
1013      6486, 6397, 6407, 2307, 2483, 6285, 2492, 6194, 6168, 6087,
1014      2495,   12,   36, 2559,  131,  264,  311,  352,  389,  436,
1015       488,  488,  549, 2562,  590,  632, 4888, 4906, 4916, 4919,
1016      4923,  703,  802, 4931,  782, 4937,12593,12593, 4945, 4952,
1017      4963,12593,12593,  797, 4971, 4975,  836, 4983,  830, 4989,
1018      4992, 5002, 5007,  835, 5010,12593,  851,  980,  964, 2662,
1019      2693, 2763, 2830,  980, 1043, 1099, 1106, 1154, 1178, 1192,
1020
1021      5013, 5020, 5034, 5042, 1197, 1236, 1249, 5045, 5048, 5051,
1022      1286, 5066, 5069, 5072, 1304, 5080, 1315, 1308, 5087, 5090,
1023      5099, 1332, 5110, 5113, 1320, 1323, 5117, 5121, 5135, 5138,
1024      5142, 5150, 1383, 5157, 1365, 1386, 5160, 5163, 5171,12593,
1025     12593, 1389, 1394, 5180, 1382, 1411, 1411, 1430, 1455, 1432,
1026      1462, 1464, 5183, 5186,12593,12593, 5194, 5198, 5202, 5205,
1027      5208, 1495, 5212, 1495, 1508, 5223,12593,12593, 5233, 1519,
1028      5236, 1536, 5239, 1554, 1583, 5242, 1578, 1604, 1594, 5245,
1029      5251, 5270,12593,12593, 5278,12593,12593, 1605, 5265, 3010,
1030      5286,12593,12593, 1628, 1646, 5294,12593,12593, 1632, 5302,
1031
1032      1639, 5309, 5312,12593,12593, 5321,12593,12593, 5332, 5335,
1033     12593,12593, 1667, 1707, 5344,12593,12593, 5352, 1702, 5355,
1034      5358, 1709, 1721, 1756, 5367, 1766, 5373, 5376, 5380, 5386,
1035      5391, 5395, 5400, 1951, 1829, 5404,12593, 1831,12593,12593,
1036      1790, 1792, 5413, 1788, 1894, 1899, 1907, 1923, 1936, 1935,
1037      3076, 1954, 1977, 3266, 1986, 1990, 3279, 1991, 3342, 1978,
1038      1976, 3377, 1992, 3530, 2008, 3540, 2026, 2035, 2051, 2052,
1039      2055, 3380, 2041, 3670, 5419,12593,12593, 5427, 5433,12593,
1040     12593, 2053, 2078, 5446, 2056, 5456,12593,12593, 2067, 5466,
1041     12593,12593, 2058, 5474, 2062, 5477, 2851, 3945, 5485, 5489,
1042
1043      5498, 2076, 2080, 2100, 2104, 3727, 2112, 4268, 4631, 5503,
1044      2119, 2108, 2110, 5506, 5509, 2117, 5512, 5517, 5526,12593,
1045     12593, 5536, 2143, 2126, 5539, 5542, 5546,12593,12593, 2142,
1046      5557, 5561,12593,12593, 5576, 5579, 2147, 2136, 5584,12593,
1047     12593, 5594, 5598, 5607, 5612, 5615, 2161, 5626, 5016, 2181,
1048      5630,12593,12593, 5638,12593, 5645,12593,12593, 5653, 2188,
1049      5657, 5660, 5668, 2173, 5675,12593,12593, 2175, 2191, 5686,
1050      5689, 5700, 2184, 2200, 2194, 2201, 5704, 2223, 2232, 5707,
1051      5710, 5722, 5713, 5718, 5731, 5736, 2245, 5739, 5742, 5750,
1052      2234, 5757, 5761, 2244, 5769, 2237, 5777, 2249, 2232, 5781,
1053
1054      2254, 2239, 2274, 5784, 5790, 2290, 5802, 2286, 5805, 2302,
1055      5808, 5813, 5816, 5834, 2298, 5837, 5840, 5843, 5846, 5849,
1056      2293, 5864,12593,12593, 2301, 2302, 2300, 5872, 2316, 5875,
1057      5884, 5893, 5898, 5902, 5906, 5920, 5924, 5927, 5942, 2352,
1058      2351, 2396,12593, 2338, 5945, 5948, 2359, 2353, 2356, 2450,
1059      2354, 2362, 5935, 2374, 2379, 2396, 2409, 5954, 2420, 2410,
1060      2411, 5957, 5963, 5967, 2429, 5970, 2440, 5973, 5976, 2424,
1061      2450, 2486, 2475, 5979, 2492, 5983, 2498, 2536, 5986, 2532,
1062      5989, 2539, 5992, 5995, 2584, 2571, 2649, 2573, 2588, 2576,
1063      2668, 2586, 6013,12593,12593, 6021, 6024, 2573, 2566, 2716,
1064
1065      2574, 6027, 6030, 2579, 2717, 2722, 6035, 6042,12593,12593,
1066      6053, 2597, 6056, 6059, 6062, 6077, 2632, 6082, 6086, 6089,
1067      6097, 2615, 2625, 6107,12593,12593, 6116, 6119, 6127, 2656,
1068      2664, 2660, 6135,12593, 6138, 2687, 6141, 2688, 6145,12593,
1069     12593, 6154, 6160, 2693, 2703, 2703, 6168,12593,12593, 6176,
1070      6179, 6187, 2706, 2736, 2748, 6190, 6194, 2740, 2735, 6208,
1071      6211,12593,12593, 6219, 6223, 6231, 6237, 6240, 6249, 2752,
1072      6256,12593,12593, 6264, 6268, 2763, 6276,12593,12593, 2760,
1073      6284,12593, 2769, 6287, 2753, 6290, 6293, 2754, 6296, 2779,
1074      6308, 2793, 2794, 2794, 6316,12593, 2806, 6319, 2796, 6322,
1075
1076      6325, 6343, 6346, 2819, 6355, 2814, 6361, 6364, 6367, 6370,
1077      6385, 6388, 6396, 2817, 2825, 2821, 2834, 6399, 2846, 6404,
1078     12593,12593, 6418, 6422, 6426,12593,12593, 6437,12593, 6441,
1079     12593,12593, 6449, 2915, 2894, 2922, 2871, 6456, 6470, 6478,
1080      6452, 2865, 2884, 2908, 2885, 6481, 6484, 6487, 2903, 6490,
1081      2922, 2924, 2938, 2932, 6497, 6500, 6503, 6506, 2934, 6509,
1082      6512, 6515, 6518, 6521, 6524, 2935, 6527, 2943, 2956, 6530,
1083     12593, 2941, 6533, 6536, 2960, 6553, 6556, 6559, 2975, 2976,
1084      3005, 3020, 3013, 3025, 3022, 3025, 3031, 3030, 6567, 6574,
1085      6579, 6587, 3022, 3042, 3019, 3037, 6592, 6595, 6598, 6601,
1086
1087      3046, 6609, 3056, 6612, 6617, 3056, 6630,12593,12593, 6638,
1088      3073, 6643,12593, 6646,12593,12593, 6657, 3067, 3068, 6662,
1089     12593,12593, 3157, 3177, 3082, 3091, 6670, 3085, 6676,12593,
1090     12593, 3085, 3088, 3118, 6690,12593,12593, 6684, 6698, 3120,
1091      3109, 3118, 6707,12593,12593, 3130, 6715, 6718, 6722,12593,
1092     12593, 6733, 6737, 6745,12593,12593, 6753, 3131, 6756,12593,
1093     12593, 3126, 3135, 3130, 6765, 3144, 6768, 6772, 6786, 3145,
1094      6789, 6792, 3156, 3149, 3218, 3239, 3155, 3165, 6800,12593,
1095      3171, 6807,12593,12593, 6820,12593,12593, 3188, 6815, 3182,
1096      6829, 6834, 6837,12593,12593, 6849,12593,12593, 6857, 6861,
1097
1098      6867, 6871, 6879, 6885, 3189, 6889, 6892, 6897, 6904, 3255,
1099      3321, 6900, 6912,12593,12593, 6923, 6926, 6929, 6932, 3196,
1100      3209, 6942, 6945, 3220, 6951, 6954, 3237, 6960, 6963, 6966,
1101      6969, 3245, 3252, 6972, 6975, 6978, 6983, 3257, 6986, 3253,
1102     12593, 6989, 6992,12593,12593, 7000, 7007,12593, 7011,12593,
1103     12593, 3297, 3288, 3303, 3304, 3311, 3314, 3308, 3323, 3335,
1104      3363, 7019, 7022, 5419, 5856, 7030, 7033, 3325, 3323, 3343,
1105      7038, 3336, 7041,12593,12593, 3335, 7049, 3347, 7052,12593,
1106     12593, 3345, 7060, 7068, 7063, 3362, 3384, 3417, 3443, 3423,
1107      3446, 3406, 7071, 7074, 3403, 3410, 3409, 3480, 7082,12593,
1108
1109     12593, 7096, 3411, 3427, 3420, 7099, 7102, 7110, 7117,12593,
1110     12593, 7125, 3429, 3436, 3482, 3493, 7129,12593, 7135, 7138,
1111     12593,12593, 7148, 7154, 7157,12593,12593, 7167, 7172, 3520,
1112      3558, 3543, 3562, 7175, 3540, 7178, 3541, 7185, 7181, 7193,
1113      7205, 7212, 7208, 7217, 7227, 7234, 7237, 7240, 7245, 7255,
1114      7259,12593, 7262, 7268, 3581, 3578, 7274, 7281, 7289, 7292,
1115      3529, 3531, 7295, 7300, 3539, 7303, 7306, 3531, 3559, 3565,
1116      7309,12593, 3555, 7312, 7315, 3592, 3607, 3605, 3620, 3609,
1117      3620, 3617, 3613, 3632, 3621, 3632, 7323, 3640, 3644, 3743,
1118      3642, 3652, 3650, 3663, 3828, 3660, 3680, 7331, 3676, 3672,
1119
1120      7334, 3670, 3680, 7337, 3707, 3721, 7342,12593, 7345, 7349,
1121      7357, 3719, 3721, 3792,12593, 3790,12593, 7363, 7366, 7369,
1122      3733, 3756, 3747, 3743, 3795, 7372, 7377, 3794, 7390, 3807,
1123      7393, 3856, 3906, 7404,12593, 7409,12593, 3796, 3799, 7412,
1124      3800, 7415, 7433, 7418, 7441, 7444, 3830, 3834, 3844, 3899,
1125     12593, 3905,12593, 7452, 3855, 7423, 3874, 7455,12593, 7459,
1126      7463, 7477, 7480, 7484, 7487,12593,12593, 7499, 7503, 7511,
1127      7517, 7520,12593, 7523, 7531, 7535, 3932, 3941, 3945, 7539,
1128     12593, 3870, 3890, 7542, 7550, 3898, 3911, 3924, 7554, 7558,
1129      4049, 4091, 3921, 3958, 3971, 3975, 3982, 4004, 3987, 4006,
1130
1131      4012, 4016, 4035, 7566, 3976, 3995, 3991, 3996, 4002, 3995,
1132      4004, 4023, 4023, 4035, 4035, 4028, 4031, 4051, 7572, 4041,
1133      4067, 7575, 7578, 4077, 7581,12593,12593, 7589,12593, 4078,
1134      7597,12593,12593, 7600, 7604, 7618, 4079, 4090, 4102, 7621,
1135      4096, 7627,12593,12593, 4121, 7639, 7643, 4112, 4148, 4147,
1136      4152, 4150, 4115, 7651, 7657, 7660, 7669, 7675,12593,12593,
1137      7683,12593, 7687,12593,12593, 4132, 4157, 4154,12593,12593,
1138      7695, 7698, 7706, 7709, 7713, 4452, 4613, 7727,12593, 7730,
1139      7733, 7736,12593,12593, 7752, 7755, 7763, 7766, 7774,12593,
1140      7777, 4195, 4199, 4242, 4145, 7781, 7784, 4163, 4167, 4189,
1141
1142      7787, 7798, 4203, 4207, 4310, 4208, 4212, 4322, 4187, 4242,
1143      4226, 4229, 4237,12593, 4268, 4256, 4256, 4263,12593, 7806,
1144      4256, 4265, 4253, 4267, 4276, 4281, 4282, 4295, 4282, 4302,
1145      4311, 4316, 4308, 7809, 4324, 7812, 7815, 7818, 7821, 7825,
1146      7830, 7844, 7852,12593,12593, 7860,12593, 4334, 4321, 7863,
1147      7866, 7872, 7884, 4336, 7887,12593,12593, 4336, 4368, 4360,
1148      4378, 4363, 4355, 7895, 7898, 7906,12593,12593, 7914, 7917,
1149      4344, 7925, 4362, 7928,12593,12593, 7936, 7939, 7947, 7950,
1150      4379, 4380, 4384, 4386, 4397, 4398, 7958, 7961, 7965, 4521,
1151      4540, 7973,12593,12593, 7981, 4424, 4435, 7984, 4400, 7834,
1152
1153      7987, 4388, 4403, 7990,12593,12593, 4451, 4439, 4443, 4461,
1154      4473, 4461, 4475, 4484, 8003, 4475, 4495, 4512, 4498, 4481,
1155      4513, 4528, 4516, 8006, 4472, 4475, 4491, 4539, 4548, 4503,
1156      4500, 4506, 4538, 4582, 4585, 4535, 4545, 8010, 8013, 8016,
1157      8025, 8021, 8034, 8040, 8048, 8052, 4549, 8060,12593,12593,
1158      4550, 4549, 8068, 8073, 8082,12593,12593, 8090, 8093, 4538,
1159      4546, 4581, 4587, 4597, 4600, 4595, 8101,12593,12593, 8109,
1160     12593,12593, 4603, 8117, 8120, 4584, 8128, 4636, 4643, 8136,
1161      4675, 4677, 4630, 4639, 4670, 4636, 4647, 4678, 8144, 8147,
1162      4674, 4679, 4677, 4683, 8150,12593, 4743, 8153, 8156, 8159,
1163
1164      8178, 8181, 8184, 8187, 4688, 4702, 4705, 4696, 4707, 4721,
1165      4724, 4713, 8190, 8193, 4726, 4735,12593, 4736, 4755, 4755,
1166     12593, 4757, 8201, 4735, 4726, 4790,12593,12593, 4754, 4754,
1167      4752, 4817,12593,12593, 4776, 8204, 8208, 8214,12593,12593,
1168      8222, 8225,12593,12593, 8234,12593,12593, 4772, 4786, 4787,
1169      8242,12593,12593, 8250,12593,12593, 8258, 4783, 4845, 4820,
1170      4851, 4823, 4806, 8261, 8264,12593,12593, 8272, 4833, 4846,
1171      4859, 4871, 4862, 4874, 4865, 4878, 4871, 4885,12593, 4878,
1172      4888,12593, 8279,12593, 8282, 4890, 4885, 4902, 4891, 4917,
1173      8285, 8291, 8304, 8335, 8382, 8312, 8315, 8318, 4917, 4938,
1174
1175      4939, 4910, 4927, 4948, 4950, 4920, 8323,12593,12593, 4956,
1176      4930, 4935, 4961, 4938, 4950, 8346, 4922, 4923,12593, 4940,
1177      4933, 4934,12593, 4945, 8355, 8358,12593, 4947, 4965, 4975,
1178      8361, 8365, 8373,12593, 5022,12593, 5020, 4971, 8393, 8402,
1179      8411, 8414, 5027, 4995, 5032, 5003, 5050, 5020, 5052, 5024,
1180      5058, 5060, 5068, 5070, 8422, 5074, 5045, 5078, 5055, 5084,
1181      8429, 5129, 5089, 8449, 8496, 5083,12593,12593, 5067, 5093,
1182     12593,12593, 5072,12593, 5116, 5120,12593, 5122, 5123, 8442,
1183     12593, 5172, 5085, 5141, 5182, 5107, 5159, 5118, 5140, 5121,
1184      8469, 5195, 5236, 8461, 8479,12593,12593, 5166, 8516,12593,
1185
1186     12593, 8524, 5239, 5281,12593, 5217,12593, 5224,12593, 5251,
1187     12593, 5249,12593,12593,12593,12593, 8487,12593,12593, 5238,
1188     12593, 5239, 5271, 5311, 5322, 5277, 5331, 5277, 8490, 5279,
1189      5273, 5294, 5293,12593,12593,12593,12593,12593, 5258, 5339,
1190     12593,12593, 5260, 5403,12593, 8532, 8535, 8542, 5344, 5320,
1191      5369, 5344, 8546,12593,12593, 8554, 5391, 5357, 5397, 5380,
1192     12593,12593,12593,12593, 5388, 5402, 8560, 5435, 5430, 5443,
1193      8563, 5450, 5441, 5455, 5449, 5410,12593, 5433, 5421,12593,
1194      5436, 8566, 8572, 8584, 8587, 8595, 8598, 5450, 5464, 5481,
1195      5477, 5489, 5502, 8606, 8609, 5485, 5494, 5511, 5494, 5503,
1196
1197      5525, 5513, 5514, 8617, 5537,12593, 5532,12593, 5534, 5505,
1198      5522, 5508, 5525, 8620,12593,12593, 8629,12593,12593, 8637,
1199      5567, 5581, 5547, 5556, 5554, 5566, 5572, 5574, 8645,12593,
1200     12593, 5585, 5590, 5589, 5598, 5604, 5600, 5637, 5635, 5630,
1201     12593, 5646, 5644, 5596, 5611, 5599, 5618, 5658, 5653, 5661,
1202      5656, 5656, 5669, 5670, 5667, 5674, 5674, 5688, 5705, 5710,
1203      5717, 5724, 5729,12593,12593, 5775,12593,12593, 5690, 5709,
1204      5699, 5715, 5734, 5755, 5742, 5768, 5754, 5759, 5777, 5776,
1205      5780, 5798, 5787, 5785, 5803, 5792, 5792, 5809, 5844, 5849,
1206      5850, 5850, 5852, 5826, 5833, 5835, 5851, 5873, 5874, 5908,
1207
1208      5891, 5882, 5911, 5906, 5897, 5929, 5915, 5905, 5944, 5981,
1209     12593,12593,12593,12593, 5933, 5958, 5970, 5978, 5999, 5976,
1210     12593, 6001, 5980,12593, 6012, 5987,12593, 6012, 6003,12593,
1211      6062, 6003, 6017, 6010, 6024,12593, 6024,12593, 6026,12593,
1212      6041,12593, 6044, 8655, 6046, 6068, 6050, 6068, 6043, 6050,
1213      6059, 6062, 8658, 6101,12593, 6103,12593, 6108, 6106, 6118,
1214      6117, 6130, 6148,12593,12593,12593,12593,12593,12593, 6107,
1215      6139, 6140, 6156, 6167, 6199, 6285, 6317, 6225, 6235, 6261,
1216      6264, 6132, 6310, 6145, 6283, 6196, 6255, 6288, 6340, 6164,
1217      6198, 6358, 6360, 6286, 6331, 6385, 6398, 6391, 6394, 6373,
1218
1219      6413, 6185, 6322, 6475, 6526, 6441, 6529, 6114, 6417, 6617,
1220      6624, 6552, 6610, 6416, 6544, 6559, 6588, 6618, 6649, 6312,
1221      6602, 6678, 6694, 6414, 6661, 6604, 6663, 6531, 6554, 6315,
1222      6656, 6675, 6688, 6566, 6636, 6722, 6724, 6664, 6733, 6743,
1223      6777, 6730, 6760, 6794, 6836, 6763, 6805, 6808, 6810, 6890,
1224      6977, 6442, 6902, 8666, 8669,12593,12593, 8689, 8698, 8707,
1225      8716, 8725, 8734, 8743, 8752, 8761, 8770, 8779, 8788, 8797,
1226      8806, 8815, 8824, 8833, 8842, 8851, 8860, 8869, 8878, 8887,
1227      8896, 8905, 8914, 8923, 8932, 8941, 8950, 8959, 8968, 8977,
1228      8986, 8995, 9004, 9013, 9022, 9031, 9040, 9049, 9058, 9067,
1229
1230      9076, 9085, 9094, 9103, 9112, 9121, 9130, 9139, 9148, 9157,
1231      9166, 9175, 9184, 9193, 9202, 9211, 9220, 9229, 9238, 9247,
1232      9254, 9261, 9268, 9275, 9282, 9289, 9296, 9303, 9310, 9317,
1233      9324, 9331, 9338, 9345, 9352, 9359, 9366, 9373, 9380, 9387,
1234      9394, 9401, 9408, 9415, 9422, 9429, 9436, 9443, 9450, 9459,
1235      9466, 9471, 9478, 9483, 9490, 9495, 9502, 9507, 9514, 9519,
1236      9526, 9531, 9538, 9543, 9550, 9555, 9562, 9567, 9574, 9579,
1237      9586, 9591, 9598, 9603, 9610, 9615, 9622, 9627, 9634, 9639,
1238      9646, 9651, 9658, 9663, 9670, 9675, 9682, 9687, 9694, 9699,
1239      9706, 9711, 9718, 9723, 9730, 9735, 9742, 9747, 9754, 9759,
1240
1241      9766, 9771, 9778, 9783, 9790, 9795, 9802, 9807, 9816, 9822,
1242      9829, 9837, 9844, 9852, 9859, 9867, 9874, 9882, 9889, 9897,
1243      9904, 9912, 9919, 9927, 9934, 9942, 9949, 9957, 9964, 9972,
1244      9979, 9987, 9994,10002,10009,10017,10024,10032,10040,10048,
1245     10055,10063,10070,10078,10085,10093,10100,10108,10116,10124,
1246     10132,10140,10147,10155,10163,10171,10179,10187,10194,10202,
1247     10209,10217,10225,10232,10240,10247,10255,10264,10270,10277,
1248     10285,10293,10301,10309,10317,10324,10332,10339,10347,10354,
1249     10362,10369,10377,10384,10392,10400,10408,10416,10424,10431,
1250     10439,10447,10455,10463,10471,10478,10486,10493,10501,10508,
1251
1252     10516,10523,10531,10538,10546,10553,10561,10568,10576,10583,
1253     10591,10598,10606,10614,10621,10629,10636,10644,10651,10659,
1254     10667,10674,10682,10689,10697,10706,10715,10722,10730,10738,
1255     10745,10753,10760,10768,10775,10783,10790,10797,10805,10812,
1256     10820,10827,10835,10842,10850,10857,10865,10873,10881,10888,
1257     10896,10904,10912,10919,10927,10934,10942,10949,10957,10964,
1258     10972,10979,10987,10994,11002,11009,11017,11025,11032,11040,
1259     11047,11055,11063,11071,11079,11087,11095,11103,11111,11120,
1260     11129,11136,11144,11152,11159,11167,11174,11182,11189,11197,
1261     11204,11211,11219,11226,11234,11241,11249,11257,11265,11272,
1262
1263     11280,11288,11295,11303,11311,11319,11326,11334,11341,11349,
1264     11356,11364,11371,11379,11386,11394,11402,11410,11417,11425,
1265     11433,11441,11449,11456,11464,11472,11480,11488,11496,11505,
1266     11514,11522,11530,11538,11545,11553,11560,11568,11576,11584,
1267     11592,11600,11608,11616,11624,11631,11639,11647,11654,11662,
1268     11669,11677,11685,11693,11700,11707,11715,11722,11730,11737,
1269     11744,11752,11759,11767,11774,11782,11790,11798,11805,11813,
1270     11821,11829,11837,11846,11855,11863,11871,11878,11885,11893,
1271     11901,11908,11916,11923,11931,11938,11946,11953,11961,11968,
1272     11976,11984,11991,11998,12006,12013,12021,12028,12035,12042,
1273
1274     12050,12057,12065,12073,12081,12089,12097,12105,12113,12121,
1275     12130,12139,12147,12155,12162,12170,12178,12185,12193,12200,
1276     12208,12216,12224,12231,12239,12246,12254,12262,12269,12276,
1277     12284,12292,12300,12307,12314,12322,12330,12338,12346,12354,
1278     12362,12370,12378,12386,12395,12404,12412,12419,12426,12434,
1279     12441,12449,12456,12464,12471,12479,12486,12493,12500,12508,
1280     12515,12522,12529,12538,12547,12556,12565,12574,12583
1281     } ;
1282
1283 static yyconst flex_int16_t yy_def[3970] =
1284     {   0,
1285      3458, 3458, 3459, 3459, 3459, 3459, 3460, 3460, 3461, 3461,
1286      3462, 3462, 3463, 3463, 3463, 3463, 3464, 3464, 3458, 3458,
1287      3465, 3465, 3466, 3466, 3466, 3466, 3458, 3458, 3466, 3466,
1288      3466, 3466, 3458, 3458, 3466, 3466, 3458, 3458, 3466, 3466,
1289      3466, 3466, 3467, 3467, 3468, 3468, 3458, 3458, 3468, 3468,
1290      3468, 3468, 3469, 3469, 3463, 3463, 3470, 3470, 3471, 3471,
1291      3472, 3472, 3473, 3473, 3474, 3474, 3475, 3475, 3475, 3475,
1292      3458, 3458, 3475, 3475, 3475, 3475, 3458, 3458, 3475, 3475,
1293      3475, 3475, 3458, 3458, 3475, 3475, 3458, 3458, 3475, 3475,
1294      3475, 3475, 3458, 3458, 3475, 3475, 3458, 3458, 3475, 3475,
1295
1296      3475, 3475, 3476, 3476, 3477, 3477, 3458, 3458, 3477, 3477,
1297      3477, 3477, 3478, 3478, 3479, 3479, 3458, 3458, 3479, 3479,
1298      3479, 3479, 3480, 3480, 3481, 3481, 3482, 3482, 3483, 3483,
1299      3484, 3484, 3485, 3485, 3458, 3458, 3485, 3485, 3485, 3485,
1300      3486, 3486, 3487, 3487, 3488, 3488, 3489, 3489, 3457,  149,
1301      3490, 3490, 3458, 3458, 3490, 3490, 3490, 3490, 3491, 3491,
1302      3492, 3492, 3493, 3493, 3494, 3494, 3495, 3495, 3496, 3496,
1303      3497, 3497, 3498, 3498, 3499, 3499, 3500, 3500, 3458, 3458,
1304      3500, 3500, 3500, 3500, 3501, 3501, 3502, 3502, 3458, 3458,
1305      3502, 3502, 3502, 3502, 3503, 3503, 3504, 3504, 3458, 3458,
1306
1307      3504, 3504, 3504, 3504, 3505, 3505, 3506, 3506, 3507, 3507,
1308      3508, 3508, 3458, 3458, 3508, 3508, 3508, 3508, 3509, 3509,
1309      3510, 3510, 3458, 3458, 3510, 3510, 3510, 3510, 3511, 3511,
1310      3512, 3512, 3458, 3458, 3512, 3512, 3512, 3512, 3513, 3513,
1311      3514, 3514, 3515, 3515, 3516, 3516, 3458, 3458, 3516, 3516,
1312      3516, 3516, 3517, 3517, 3518, 3518, 3519, 3519, 3520, 3520,
1313      3458, 3458, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1314      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1315      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1316      3457, 3457, 3457, 3521, 3457, 3457, 3521, 3457, 3457, 3457,
1317
1318       300,  300,  302,  300,  303,  303, 3457, 3457, 3457, 3522,
1319      3457, 3457, 3522, 3457, 3457,  304,  303, 3457, 3457, 3457,
1320      3523, 3457, 3457, 3523, 3523, 3523, 3457, 3457, 3457, 3457,
1321      3457, 3524, 3457, 3457, 3524, 3524, 3524, 3524, 3524, 3457,
1322      3457, 3457, 3457, 3457, 3457, 3525, 3457, 3457, 3525, 3525,
1323      3525, 3457, 3457, 3457, 3457, 3457, 3457, 3526, 3457, 3457,
1324      3526, 3526, 3457, 3457, 3457,  365,  303,  303,  304,  369,
1325       368,  368,  368,  368,  369,  375,  373,  373, 3457, 3457,
1326      3457, 3527, 3457, 3457, 3527, 3527, 3527, 3527, 3457, 3457,
1327       303,  303,  303, 3457, 3457, 3457, 3528, 3457, 3457, 3528,
1328
1329      3528, 3528, 3457, 3457,  303,  303, 3457, 3457, 3457, 3529,
1330      3457, 3457, 3529, 3529, 3457, 3457, 3457, 3457, 3457, 3457,
1331      3530, 3457, 3457, 3530, 3530, 3457, 3457, 3457, 3457, 3457,
1332      3457, 3531, 3457, 3457, 3531, 3531, 3531, 3531, 3531, 3457,
1333      3457,  392,  392,  303, 3457, 3457, 3457, 3532, 3457, 3457,
1334      3532, 3457, 3457, 3457, 3457, 3457, 3457, 3533, 3457, 3457,
1335      3533, 3533, 3533, 3457, 3457, 3457, 3457, 3457, 3457, 3534,
1336      3457, 3457, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534,
1337      3534, 3457, 3457,  303,  303, 3457, 3457, 3457, 3535, 3457,
1338      3457, 3535, 3535, 3535, 3535, 3535, 3535, 3457, 3457, 3457,
1339
1340      3457, 3457, 3457, 3536, 3457, 3457, 3536, 3536, 3536, 3536,
1341      3536, 3536, 3536, 3457, 3457, 3457, 3457, 3457, 3457, 3537,
1342      3457, 3457, 3537, 3537, 3457, 3457, 3457, 3457, 3457, 3457,
1343      3538, 3457, 3457, 3538, 3538, 3538, 3457, 3457, 3457, 3457,
1344      3457, 3457, 3539, 3457, 3457, 3539, 3539, 3539, 3539, 3457,
1345      3457,  303,  303, 3457, 3457, 3457, 3540, 3457, 3457, 3540,
1346      3540, 3457, 3457,  303,  373,  373, 3457, 3457, 3457, 3541,
1347      3457, 3457, 3541, 3541, 3541, 3457, 3457,  373,  373, 3457,
1348      3457, 3457, 3542, 3457, 3457, 3542, 3542, 3457, 3457, 3457,
1349      3457, 3457, 3457, 3543, 3457, 3457, 3543, 3543, 3457, 3457,
1350
1351       373,  373, 3457, 3457, 3457, 3544, 3457, 3457, 3544, 3544,
1352      3544, 3457, 3457,  373,  373, 3457, 3457, 3457, 3545, 3457,
1353      3457, 3545, 3545, 3545, 3545, 3545, 3457, 3457,  303,  392,
1354       303, 3457, 3457, 3457, 3546, 3457, 3457, 3546, 3457, 3457,
1355      3457, 3457, 3457, 3457, 3547, 3457, 3457, 3547, 3457, 3457,
1356       303,  303, 3457, 3457, 3457, 3548, 3457, 3457, 3548, 3548,
1357      3457, 3457, 3457, 3457, 3457, 3457, 3549, 3457, 3457, 3549,
1358      3549, 3457, 3457, 3457, 3457, 3550, 3457, 3457, 3457, 3457,
1359      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1360      3457, 3551, 3551, 3552, 3457, 3457, 3457, 3457, 3457, 3457,
1361
1362      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1363      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3553, 3553,
1364      3554, 3457, 3555, 3555, 3555, 3555, 3457, 3556, 3457, 3457,
1365      3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3558,
1366      3457, 3559, 3559, 3559, 3559, 3560, 3457, 3561, 3561, 3561,
1367      3562, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1368      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1369      3563, 3563, 3563, 3563, 3563, 3564, 3457, 3457, 3565, 3565,
1370      3565, 3565, 3566, 3457, 3567, 3567, 3567, 3568, 3457, 3569,
1371      3569, 3569, 3570, 3457, 3571, 3571, 3571, 3571, 3571, 3571,
1372
1373      3571, 3572, 3457, 3457, 3573, 3573, 3574, 3457, 3575, 3575,
1374      3575, 3575, 3576, 3457, 3577, 3577, 3577, 3577, 3577, 3577,
1375      3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577,
1376      3577, 3578, 3457, 3579, 3579, 3579, 3579, 3579, 3579, 3579,
1377      3579, 3580, 3457, 3581, 3581, 3581, 3581, 3581, 3581, 3581,
1378      3581, 3582, 3457, 3583, 3583, 3583, 3584, 3457, 3585, 3585,
1379      3585, 3585, 3586, 3457, 3587, 3587, 3587, 3587, 3587, 3587,
1380      3588, 3457, 3589, 3589, 3589, 3589, 3590, 3457, 3457, 3591,
1381      3591, 3591, 3591, 3591, 3592, 3457, 3593, 3593, 3593, 3594,
1382      3457, 3595, 3595, 3595, 3596, 3457, 3597, 3597, 3597, 3597,
1383
1384      3598, 3457, 3599, 3599, 3599, 3599, 3599, 3599, 3600, 3457,
1385      3457, 3601, 3601, 3602, 3457, 3603, 3603, 3604, 3457, 3605,
1386      3605, 3605, 3606, 3457, 3607, 3607, 3607, 3608, 3609, 3457,
1387      3609, 3457, 3457, 3457, 3610, 3457, 3457, 3457, 3457, 3457,
1388      3457, 3457, 3611, 3612, 3612, 3457, 3457, 3457, 3457, 3457,
1389      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1390      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1391      3457, 3457, 3457, 3457, 3613, 3614, 3614, 3615, 3457, 3457,
1392      3615, 3457, 3616, 3616, 3457, 3617, 3457, 3457, 3617, 3617,
1393      3617, 3617, 3617, 3617, 3618, 3618, 3619, 3619, 3619, 3620,
1394
1395      3620, 3457, 3457, 3621, 3622, 3622, 3457, 3457, 3457, 3457,
1396      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1397      3623, 3457, 3457, 3623, 3623, 3624, 3624, 3457, 3625, 3457,
1398      3457, 3625, 3626, 3626, 3627, 3627, 3628, 3628, 3629, 3629,
1399      3630, 3630, 3631, 3631, 3631, 3457, 3457, 3631, 3631, 3631,
1400      3632, 3632, 3457, 3457, 3633, 3634, 3634, 3635, 3457, 3457,
1401      3457, 3457, 3636, 3636, 3637, 3637, 3457, 3457, 3637, 3457,
1402      3457, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637,
1403      3637, 3637, 3638, 3638, 3457, 3457, 3457, 3457, 3639, 3639,
1404      3639, 3639, 3639, 3640, 3640, 3641, 3641, 3641, 3457, 3457,
1405
1406      3641, 3641, 3641, 3642, 3642, 3643, 3457, 3457, 3644, 3644,
1407      3645, 3457, 3457, 3645, 3646, 3646, 3647, 3457, 3457, 3647,
1408      3647, 3647, 3648, 3648, 3649, 3649, 3649, 3650, 3650, 3457,
1409      3651, 3651, 3651, 3651, 3652, 3652, 3653, 3457, 3457, 3654,
1410      3654, 3655, 3655, 3656, 3656, 3657, 3657, 3657, 3658, 3658,
1411      3659, 3659, 3659, 3659, 3659, 3660, 3660, 3457, 3661, 3662,
1412      3662, 3457, 3457, 3663, 3663, 3457, 3457, 3664, 3665, 3665,
1413      3457, 3457, 3666, 3667, 3667, 3668, 3457, 3457, 3668, 3457,
1414      3457, 3669, 3457, 3457, 3457, 3457, 3457, 3457, 3670, 3457,
1415      3671, 3457, 3671, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1416
1417      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1418      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1419      3457, 3457, 3457, 3457, 3672, 3457, 3673, 3457, 3673, 3674,
1420      3457, 3457, 3457, 3674, 3457, 3457, 3675, 3457, 3675, 3676,
1421      3457, 3457, 3457, 3457, 3457, 3676, 3457, 3457, 3676, 3676,
1422      3676, 3457, 3677, 3457, 3677, 3678, 3678, 3678, 3457, 3679,
1423      3457, 3679, 3457, 3457, 3457, 3680, 3457, 3681, 3457, 3681,
1424      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1425      3457, 3457, 3457, 3682, 3457, 3457, 3457, 3682, 3682, 3457,
1426      3683, 3457, 3683, 3457, 3684, 3457, 3457, 3457, 3684, 3457,
1427
1428      3685, 3457, 3685, 3686, 3686, 3457, 3687, 3457, 3687, 3688,
1429      3688, 3457, 3689, 3457, 3689, 3690, 3690, 3690, 3457, 3457,
1430      3457, 3690, 3690, 3690, 3457, 3691, 3457, 3691, 3457, 3457,
1431      3692, 3457, 3693, 3457, 3693, 3694, 3457, 3457, 3457, 3457,
1432      3457, 3457, 3457, 3695, 3457, 3695, 3696, 3696, 3696, 3696,
1433      3457, 3457, 3457, 3696, 3457, 3457, 3457, 3457, 3457, 3696,
1434      3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3457,
1435      3697, 3457, 3697, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1436      3457, 3698, 3698, 3698, 3698, 3457, 3699, 3457, 3699, 3700,
1437      3700, 3700, 3700, 3457, 3457, 3457, 3457, 3457, 3700, 3700,
1438
1439      3457, 3701, 3457, 3701, 3702, 3457, 3457, 3457, 3457, 3703,
1440      3457, 3703, 3704, 3457, 3457, 3457, 3704, 3457, 3705, 3457,
1441      3705, 3706, 3457, 3457, 3457, 3706, 3706, 3706, 3457, 3707,
1442      3457, 3707, 3457, 3457, 3457, 3457, 3708, 3457, 3709, 3457,
1443      3709, 3457, 3457, 3457, 3710, 3710, 3457, 3457, 3710, 3457,
1444      3711, 3457, 3711, 3712, 3457, 3457, 3457, 3457, 3713, 3457,
1445      3713, 3457, 3457, 3457, 3457, 3457, 3714, 3457, 3714, 3457,
1446      3457, 3715, 3715, 3457, 3457, 3457, 3716, 3457, 3716, 3717,
1447      3717, 3717, 3717, 3717, 3457, 3718, 3457, 3718, 3457, 3719,
1448      3457, 3720, 3457, 3720, 3457, 3457, 3457, 3457, 3721, 3457,
1449
1450      3721, 3457, 3457, 3457, 3722, 3457, 3723, 3457, 3723, 3457,
1451      3457, 3457, 3724, 3457, 3725, 3457, 3725, 3726, 3727, 3457,
1452      3457, 3457, 3457, 3457, 3728, 3729, 3457, 3457, 3457, 3457,
1453      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1454      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1455      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3730, 3457,
1456      3457, 3731, 3457, 3732, 3733, 3457, 3457, 3457, 3457, 3457,
1457      3457, 3457, 3457, 3733, 3457, 3457, 3733, 3734, 3735, 3457,
1458      3457, 3735, 3736, 3737, 3457, 3457, 3457, 3457, 3457, 3457,
1459      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3738,
1460
1461      3738, 3457, 3457, 3739, 3457, 3740, 3740, 3741, 3457, 3457,
1462      3742, 3743, 3457, 3457, 3744, 3745, 3746, 3746, 3457, 3457,
1463      3746, 3746, 3746, 3747, 3457, 3457, 3457, 3457, 3748, 3457,
1464      3457, 3749, 3750, 3750, 3750, 3750, 3457, 3457, 3457, 3457,
1465      3457, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750, 3750,
1466      3750, 3750, 3751, 3457, 3457, 3457, 3752, 3752, 3752, 3752,
1467      3753, 3754, 3754, 3754, 3754, 3457, 3457, 3457, 3754, 3754,
1468      3755, 3756, 3757, 3758, 3758, 3759, 3760, 3760, 3760, 3760,
1469      3761, 3457, 3457, 3457, 3457, 3457, 3457, 3762, 3763, 3457,
1470      3457, 3457, 3457, 3764, 3764, 3457, 3457, 3457, 3764, 3765,
1471
1472      3766, 3767, 3457, 3457, 3457, 3457, 3457, 3457, 3768, 3457,
1473      3457, 3457, 3769, 3769, 3457, 3457, 3457, 3770, 3771, 3457,
1474      3457, 3771, 3771, 3771, 3772, 3457, 3773, 3774, 3775, 3776,
1475      3777, 3778, 3779, 3780, 3781, 3781, 3457, 3781, 3457, 3457,
1476      3457, 3782, 3783, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1477      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1478      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1479      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3784, 3457, 3457,
1480      3457, 3785, 3457, 3786, 3787, 3457, 3457, 3457, 3787, 3457,
1481      3457, 3457, 3787, 3788, 3789, 3457, 3457, 3457, 3457, 3457,
1482
1483      3790, 3791, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1484      3457, 3457, 3457, 3457, 3457, 3792, 3457, 3457, 3457, 3457,
1485      3457, 3793, 3457, 3794, 3794, 3795, 3457, 3457, 3457, 3796,
1486      3797, 3457, 3457, 3457, 3798, 3799, 3800, 3800, 3457, 3457,
1487      3457, 3457, 3457, 3800, 3457, 3457, 3800, 3801, 3457, 3457,
1488      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3802, 3803,
1489      3457, 3457, 3803, 3803, 3457, 3457, 3457, 3803, 3803, 3457,
1490      3457, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3804,
1491      3457, 3457, 3805, 3805, 3805, 3806, 3807, 3457, 3457, 3807,
1492      3807, 3457, 3457, 3807, 3808, 3809, 3810, 3811, 3811, 3812,
1493
1494      3813, 3813, 3813, 3457, 3457, 3813, 3814, 3815, 3816, 3457,
1495      3817, 3817, 3817, 3818, 3819, 3820, 3821, 3822, 3822, 3823,
1496      3824, 3457, 3457, 3457, 3824, 3824, 3824, 3825, 3457, 3457,
1497      3457, 3826, 3827, 3457, 3457, 3828, 3457, 3457, 3829, 3830,
1498      3831, 3831, 3457, 3457, 3832, 3833, 3457, 3457, 3457, 3457,
1499      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1500      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1501      3457, 3457, 3457, 3457, 3457, 3834, 3835, 3457, 3836, 3837,
1502      3837, 3837, 3838, 3839, 3457, 3457, 3457, 3457, 3457, 3457,
1503      3457, 3457, 3457, 3457, 3457, 3840, 3841, 3457, 3457, 3457,
1504
1505      3457, 3457, 3457, 3457, 3457, 3457, 3842, 3457, 3457, 3457,
1506      3843, 3457, 3844, 3457, 3457, 3845, 3846, 3847, 3457, 3457,
1507      3848, 3849, 3849, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1508      3457, 3849, 3457, 3457, 3457, 3457, 3850, 3851, 3457, 3457,
1509      3457, 3457, 3457, 3851, 3851, 3851, 3457, 3457, 3457, 3457,
1510      3457, 3851, 3851, 3851, 3851, 3457, 3457, 3851, 3851, 3852,
1511      3457, 3457, 3457, 3457, 3457, 3853, 3457, 3457, 3854, 3855,
1512      3457, 3457, 3457, 3457, 3457, 3855, 3457, 3457, 3457, 3855,
1513      3457, 3457, 3856, 3857, 3858, 3858, 3859, 3860, 3860, 3860,
1514      3457, 3457, 3457, 3860, 3457, 3457, 3861, 3862, 3457, 3457,
1515
1516      3457, 3457, 3457, 3863, 3864, 3865, 3866, 3867, 3457, 3457,
1517      3457, 3457, 3868, 3869, 3869, 3869, 3869, 3870, 3457, 3457,
1518      3457, 3457, 3871, 3872, 3457, 3457, 3457, 3457, 3457, 3457,
1519      3457, 3457, 3873, 3874, 3875, 3875, 3457, 3457, 3457, 3876,
1520      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1521      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1522      3457, 3457, 3457, 3457, 3457, 3457, 3877, 3878, 3457, 3457,
1523      3457, 3879, 3457, 3457, 3879, 3880, 3457, 3457, 3457, 3457,
1524      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3881, 3457,
1525      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1526
1527      3882, 3883, 3457, 3457, 3457, 3884, 3457, 3457, 3457, 3885,
1528      3886, 3457, 3457, 3457, 3457, 3457, 3887, 3888, 3888, 3457,
1529      3457, 3457, 3457, 3457, 3888, 3457, 3889, 3890, 3457, 3457,
1530      3457, 3890, 3890, 3890, 3457, 3457, 3457, 3457, 3457, 3890,
1531      3890, 3890, 3457, 3457, 3457, 3890, 3890, 3891, 3457, 3457,
1532      3457, 3457, 3457, 3457, 3457, 3457, 3892, 3893, 3457, 3457,
1533      3457, 3893, 3893, 3894, 3895, 3896, 3457, 3457, 3897, 3898,
1534      3457, 3457, 3898, 3898, 3457, 3457, 3898, 3899, 3457, 3457,
1535      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3900, 3901, 3902,
1536      3903, 3904, 3457, 3457, 3457, 3457, 3457, 3457, 3905, 3906,
1537
1538      3906, 3906, 3906, 3907, 3457, 3908, 3909, 3910, 3911, 3912,
1539      3912, 3457, 3457, 3457, 3457, 3913, 3457, 3457, 3457, 3457,
1540      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1541      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3914, 3915,
1542      3457, 3916, 3457, 3457, 3457, 3916, 3457, 3457, 3457, 3457,
1543      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1544      3457, 3917, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1545      3457, 3457, 3457, 3457, 3457, 3918, 3919, 3457, 3457, 3457,
1546      3457, 3920, 3921, 3922, 3923, 3924, 3924, 3457, 3457, 3457,
1547      3457, 3924, 3457, 3925, 3926, 3926, 3926, 3926, 3457, 3457,
1548
1549      3457, 3926, 3926, 3926, 3926, 3457, 3457, 3927, 3457, 3457,
1550      3457, 3928, 3929, 3929, 3929, 3930, 3457, 3457, 3931, 3457,
1551      3457, 3457, 3932, 3933, 3457, 3457, 3457, 3933, 3933, 3457,
1552      3457, 3457, 3457, 3933, 3934, 3457, 3935, 3936, 3937, 3938,
1553      3939, 3940, 3457, 3457, 3941, 3941, 3941, 3942, 3457, 3943,
1554      3457, 3457, 3944, 3945, 3946, 3946, 3457, 3947, 3457, 3457,
1555      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1556      3457, 3457, 3948, 3457, 3457, 3949, 3457, 3457, 3457, 3457,
1557      3457, 3457, 3457, 3457, 3457, 3457, 3950, 3457, 3457, 3457,
1558      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1559
1560      3457, 3457, 3951, 3952, 3457, 3953, 3457, 3457, 3457, 3457,
1561      3954, 3955, 3955, 3457, 3457, 3457, 3457, 3955, 3457, 3956,
1562      3957, 3957, 3957, 3957, 3957, 3457, 3457, 3957, 3957, 3957,
1563      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3958, 3958, 3958,
1564      3959, 3457, 3457, 3960, 3457, 3457, 3961, 3961, 3961, 3457,
1565      3457, 3457, 3457, 3961, 3962, 3457, 3963, 3457, 3457, 3457,
1566      3457, 3938, 3939, 3940, 3457, 3457, 3457, 3457, 3457, 3941,
1567      3941, 3457, 3457, 3457, 3943, 3944, 3945, 3946, 3946, 3457,
1568      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3948, 3457,
1569      3457, 3457, 3949, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1570
1571      3457, 3457, 3457, 3950, 3457, 3457, 3457, 3457, 3457, 3457,
1572      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1573      3951, 3952, 3457, 3953, 3457, 3457, 3457, 3457, 3457, 3955,
1574      3955, 3457, 3457, 3457, 3457, 3956, 3957, 3957, 3957, 3957,
1575      3957, 3457, 3457, 3457, 3957, 3457, 3457, 3957, 3457, 3457,
1576      3457, 3457, 3958, 3958, 3457, 3457, 3959, 3457, 3457, 3457,
1577      3457, 3457, 3457, 3457, 3457, 3961, 3961, 3961, 3457, 3457,
1578      3457, 3457, 3962, 3963, 3457, 3457, 3457, 3457, 3457, 3939,
1579      3940, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1580      3944, 3945, 3946, 3946, 3457, 3457, 3457, 3457, 3457, 3457,
1581
1582      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3949, 3457,
1583      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3950,
1584      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1585      3457, 3457, 3457, 3457, 3457, 3951, 3952, 3457, 3953, 3955,
1586      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3957, 3957, 3957,
1587      3457, 3457, 3957, 3957, 3457, 3457, 3457, 3957, 3457, 3457,
1588      3457, 3457, 3958, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1589      3961, 3961, 3961, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1590      3457, 3457, 3457, 3457, 3457, 3457, 3939, 3940, 3457, 3457,
1591      3457, 3457, 3457, 3457, 3944, 3945, 3946, 3946, 3457, 3457,
1592
1593      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1594      3457, 3457, 3457, 3457, 3949, 3457, 3457, 3457, 3457, 3457,
1595      3457, 3457, 3457, 3950, 3457, 3457, 3457, 3457, 3457, 3457,
1596      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1597      3457, 3952, 3457, 3457, 3457, 3457, 3955, 3457, 3457, 3457,
1598      3957, 3957, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3957,
1599      3957, 3457, 3457, 3457, 3457, 3958, 3457, 3457, 3457, 3457,
1600      3457, 3457, 3961, 3457, 3457, 3961, 3457, 3457, 3457, 3457,
1601      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3939, 3940,
1602      3457, 3457, 3457, 3457, 3457, 3457, 3945, 3946, 3946, 3946,
1603
1604      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1605      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1606      3457, 3457, 3950, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1607      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1608      3952, 3457, 3457, 3457, 3457, 3457, 3457, 3955, 3957, 3957,
1609      3457, 3457, 3457, 3457, 3457, 3457, 3957, 3957, 3457, 3457,
1610      3457, 3457, 3958, 3961, 3457, 3457, 3457, 3961, 3457, 3457,
1611      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1612      3457, 3457, 3457, 3457, 3940, 3457, 3457, 3457, 3457, 3945,
1613      3946, 3946, 3946, 3964, 3965, 3457, 3457, 3457, 3457, 3457,
1614
1615      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1616      3457, 3457, 3457, 3457, 3457, 3950, 3457, 3457, 3457, 3457,
1617      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3955, 3957, 3957,
1618      3457, 3457, 3957, 3457, 3457, 3457, 3457, 3958, 3457, 3457,
1619      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1620      3457, 3457, 3457, 3457, 3940, 3457, 3457, 3457, 3457, 3945,
1621      3946, 3966, 3967, 3964, 3965, 3457, 3457, 3457, 3457, 3457,
1622      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1623      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3955, 3957, 3957,
1624      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3958, 3457, 3457,
1625
1626      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1627      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1628      3457, 3457, 3945, 3966, 3946, 3968, 3967, 3969, 3946, 3457,
1629      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1630      3457, 3457, 3457, 3457, 3457, 3955, 3957, 3957, 3457, 3457,
1631      3457, 3457, 3457, 3457, 3457, 3958, 3457, 3457, 3457, 3457,
1632      3457, 3457, 3457, 3457, 3457, 3457, 3945, 3968, 3457, 3969,
1633      3946, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1634      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1635      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1636
1637      3457, 3457, 3457, 3945, 3457, 3457, 3457, 3457, 3457, 3457,
1638      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1639      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1640      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3945,
1641      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1642      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1643      3457, 3457, 3457, 3457, 3457, 3945, 3457, 3457, 3457, 3457,
1644      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1645      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3945, 3457,
1646      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1647
1648      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3945,
1649      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1650      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1651      3945, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1652      3457, 3457, 3457, 3945, 3457, 3457, 3457, 3457, 3457, 3457,
1653      3457, 3457, 3945, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1654      3457, 3945, 3945, 3457, 3457, 3457, 3457, 3457, 3457, 3945,
1655      3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945,
1656      3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945,
1657      3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945,
1658
1659      3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945,
1660      3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945,
1661      3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945,
1662      3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945,
1663      3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945,
1664      3945, 3945, 3945, 3945, 3945, 3457,    0, 3457, 3457, 3457,
1665      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1666      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1667      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1668      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1669
1670      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1671      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1672      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1673      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1674      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1675      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1676      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1677      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1678      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1679      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1680
1681      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1682      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1683      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1684      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1685      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1686      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1687      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1688      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1689      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1690      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1691
1692      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1693      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1694      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1695      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1696      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1697      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1698      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1699      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1700      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1701      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1702
1703      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1704      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1705      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1706      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1707      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1708      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1709      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1710      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1711      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1712      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1713
1714      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1715      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1716      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1717      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1718      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1719      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
1720      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457
1721     } ;
1722
1723 static yyconst flex_int16_t yy_nxt[12668] =
1724     {   0,
1725      3457,  266,  267,  266,  266,  267,  266,  266,  267,  266,
1726       266,  267,  266,  271,  267,  271,  277,  268,  274,  277,
1727       268,  274, 3457,  269, 3457,  275,  269, 3457,  275,  272,
1728       271,  267,  271,  676,  278,  280,  281,  278,  280,  281,
1729       282,  283,  721,  282,  283,  676,  272,  287,  288,  677,
1730       284,  280,  281,  284,  285,  679,  282,  280,  281,  710,
1731       285,  678,  282,  287,  288, 1760,  284,  267,  267,  267,
1732       869,  678,  284,  267,  267,  267,  299,  267,  299,  299,
1733       267,  299,  870,  290,  299,  267,  299,  697, 1761,  290,
1734       751,  289,  300, 1391,  713,  300,  675,  675,  675, 1392,
1735
1736       301,  675,  675,  675,  675,  675,  675,  289,  291,  292,
1737       267,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1738       291,  291,  291,  708,  291,  295,  291,  296,  291,  299,
1739       267,  299,  267,  267,  267,  267,  267,  267,  709,  299,
1740       267,  299,  299,  267,  299,  301,  714,  824,  302,  679,
1741       825,  302,  948,  291,  291,  300,  679,  679,  300,  299,
1742       267,  299,  675,  675,  675,  678,  675,  675,  675,  675,
1743       675,  675,  678,  678, 3457,  303,  949,  297,  291,  292,
1744       267,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1745       291,  291,  291, 1763,  291,  295,  291,  296,  291,  299,
1746
1747       267,  299,  267,  267,  267,  267,  267,  267,  684,  299,
1748       267,  299,  299,  267,  299,  303,  690,  751,  304,  838,
1749      1008,  304,  839,  291,  291,  301,  760,  752,  301,  267,
1750       267,  267,  267,  267,  267,  299,  267,  299,  299,  267,
1751       299,  299,  267,  299, 1009,  305,  875,  297,  305,  679,
1752       685,  303,  817,  876,  303,  764,  686,  306,  299,  267,
1753       299,  687,  675,  675,  675,  678,  688,  675,  675,  675,
1754       675,  675,  675,  818,  306,  307,  308,  267,  308,  307,
1755       307,  307,  307,  307,  307,  307,  309,  307,  307,  307,
1756       738,  307,  311,  307,  312,  307,  315,  267,  315,  315,
1757
1758       267,  315,  267,  267,  267,  739,  267,  267,  267,  315,
1759       267,  315,  316,  799,  877,  316, 1764,  800,  304,  734,
1760       307,  307,  304,  735,  776,  316,  694,  736,  313,  307,
1761       308,  267,  308,  307,  307,  307,  307,  307,  307,  307,
1762       309,  307,  307,  307,  679,  307,  311,  307,  312,  307,
1763       315,  267,  315,  315,  267,  315,  315,  267,  315, 1765,
1764       678,  885,  280,  281,  883,  715,  316,  282, 3457,  317,
1765       714,  884,  317,  777,  307,  307,  760,  327,  716,  776,
1766       709, 1206,  313,  318,  319,  267,  319,  318,  318,  318,
1767       318,  318,  318,  318,  320,  318,  318,  318, 1207,  318,
1768
1769       322,  318,  323,  318, 1766,  679,  328,  708,  341,  267,
1770       341,  341,  267,  341,  353,  267,  353,  714,  280,  281,
1771       717,  678,  709,  282,  342,  727,  821,  342,  318,  318,
1772       354,  713,  728,  327,  822,  936,  324,  783,  937,  325,
1773       823,  678,  675,  675,  675, 1767,  326,  318,  319,  267,
1774       319,  318,  318,  318,  318,  318,  318,  318,  320,  318,
1775       318,  318,  328,  318,  322,  318,  323,  318,  353,  267,
1776       353,  364,  267,  364,  364,  267,  364,  802,  364,  267,
1777       364,  364,  267,  364,  354,  679,  765,  365,  679,  760,
1778       365,  878,  318,  318,  366,  740, 1543,  366, 1768,  714,
1779
1780       324,  678,  766,  325,  678,  675,  675,  675,  783, 1544,
1781       326,  329,  330,  267,  330,  329,  329,  329,  329,  329,
1782       329,  329,  331,  329,  329,  329,  803,  329,  333,  329,
1783       334,  329,  267,  267,  267,  267,  267,  267,  364,  267,
1784       364,  802,  364,  267,  364,  364,  267,  364,  367, 1769,
1785       679,  367,  679,  679,  365, 1770,  329,  329,  365,  746,
1786       713,  368,  675,  675,  675,  335,  678,  336,  678,  678,
1787      3457,  337,  675,  675,  675,  832,  338,  339,  329,  330,
1788       267,  330,  329,  329,  329,  329,  329,  329,  329,  331,
1789       329,  329,  329,  713,  329,  333,  329,  334,  329,  364,
1790
1791       267,  364,  267,  267,  267,  267,  267,  267,  910,  364,
1792       267,  364,  364,  267,  364,  368,  763, 1771,  369,  777,
1793       703,  369,  760,  329,  329,  370,  756,  760,  370,  675,
1794       675,  675,  335,  759,  336,  675,  675,  675,  337,  675,
1795       675,  675, 1773,  338,  339,  343,  344,  267,  344,  343,
1796       343,  343,  343,  343,  343,  343,  345,  343,  343,  343,
1797       710,  343,  347,  343,  348,  343,  364,  267,  364,  364,
1798       267,  364,  267,  267,  267,  930,  267,  267,  267,  364,
1799       267,  364,  371, 1044, 1774,  371, 1045,  826,  372,  767,
1800       343,  343,  372,  754,  755,  368,  895,  349,  675,  675,
1801
1802       675,  827,  713,  350,  768,  675,  675,  675,  675,  675,
1803       675,  982,  351,  343,  344,  267,  344,  343,  343,  343,
1804       343,  343,  343,  343,  345,  343,  343,  343,  930,  343,
1805       347,  343,  348,  343,  364,  267,  364,  267,  267,  267,
1806       267,  267,  267,  931,  364,  267,  364,  364,  267,  364,
1807       368,  679,  714,  373, 1782,  901,  373,  679,  343,  343,
1808       371,  679,  679,  371,  788,  349, 1555,  678,  675,  675,
1809       675,  350,  948,  678,  675,  675,  675,  678,  678, 1544,
1810       351,  355,  356,  267,  356,  355,  355,  355,  355,  355,
1811       355,  355,  357,  355,  355,  355, 1017,  355,  359,  355,
1812
1813       360,  355,  364,  267,  364,  364,  267,  364,  267,  267,
1814       267,  714,  267,  267,  267,  364,  267,  364,  374,  679,
1815       679,  374,  679, 1783,  375,  832,  355,  355,  375,  793,
1816      1785,  376,  675,  675,  675,  678,  678,  361,  678,  675,
1817       675,  675,  675,  675,  675, 1789,  362,  355,  356,  267,
1818       356,  355,  355,  355,  355,  355,  355,  355,  357,  355,
1819       355,  355, 1008,  355,  359,  355,  360,  355,  364,  267,
1820       364,  267,  267,  267,  267,  267,  267,  713,  364,  267,
1821       364,  364,  267,  364,  376,  679,  949,  377, 1793, 1008,
1822       377, 1795,  355,  355,  374,  679, 1802,  374,  364,  267,
1823
1824       364,  678,  807,  361,  364,  267,  364,  675,  675,  675,
1825       871,  678,  362, 1017,  378,  675,  675,  675,  751, 1803,
1826       378,  379,  380,  267,  380,  379,  379,  379,  379,  379,
1827       379,  379,  381,  379,  379,  379,  948,  379,  383,  379,
1828       384,  379,  390,  267,  390,  390,  267,  390,  267,  267,
1829       267,  957,  267,  267,  267,  958,  769,  679,  391, 1028,
1830      1018,  391,  760,  958,  392, 3457,  379,  379,  392,  679,
1831       679,  385,  758,  678,  871,  710,  813,  386,  675,  675,
1832       675,  387,  675,  675,  675,  678,  678,  388,  379,  380,
1833       267,  380,  379,  379,  379,  379,  379,  379,  379,  381,
1834
1835       379,  379,  379,  697,  379,  383,  379,  384,  379,  390,
1836       267,  390,  390,  267,  390,  390,  267,  390,  909,  390,
1837       267,  390,  675,  675,  675,  391,  713,  828,  391, 1804,
1838      1805,  393, 1810,  379,  379,  393,  679,  679,  385,  829,
1839       830,  675,  675,  675,  386,  675,  675,  675,  387,  675,
1840       675,  675,  678,  678,  388,  394,  395,  267,  395,  394,
1841       394,  394,  394,  394,  394,  394,  396,  394,  394,  394,
1842       713,  394,  398,  394,  399,  394,  404,  267,  404,  404,
1843       267,  404,  267,  267,  267,  950,  267,  267,  267, 1053,
1844       679, 1811,  405, 1054, 1008,  405,  951,  842,  367,  952,
1845
1846       394,  394,  367,  679,  679,  400,  678,  675,  675,  675,
1847       852,  401,  675,  675,  675,  675,  675,  675, 1018,  678,
1848       678, 1294,  402,  394,  395,  267,  395,  394,  394,  394,
1849       394,  394,  394,  394,  396,  394,  394,  394, 1207,  394,
1850       398,  394,  399,  394,  404,  267,  404,  404,  267,  404,
1851       404,  267,  404,  962,  404,  267,  404,  675,  675,  675,
1852       405,  679,  679,  405,  679, 1812,  406,  963,  394,  394,
1853       406,  857, 1813,  400,  675,  675,  675,  678,  678,  401,
1854       678,  675,  675,  675,  675,  675,  675,  675,  675,  675,
1855       402,  407,  408,  267,  408,  407,  407,  407,  407,  407,
1856
1857       407,  407,  409,  407,  407,  407, 1814,  407,  411,  407,
1858       412,  407,  416,  267,  416,  416,  267,  416,  427,  267,
1859       427,  918,  427,  267,  427,  441,  267,  441,  417, 1177,
1860      1815,  417,  679, 1518,  428, 1177,  407,  407,  428,  863,
1861       885,  442,  675,  675,  675,  675,  675,  675,  678,  675,
1862       675,  675,  413, 1816,  877, 1734, 1823,  414,  407,  408,
1863       267,  408,  407,  407,  407,  407,  407,  407,  407,  409,
1864       407,  407,  407,  760,  407,  411,  407,  412,  407,  441,
1865       267,  441,  267,  267,  267,  267,  267,  267,  878,  441,
1866       267,  441,  441,  267,  441,  442,  714, 1824,  443,  679,
1867
1868      1825,  443,  878,  407,  407,  442,  713,  679,  442,  675,
1869       675,  675,  675,  675,  675,  678,  675,  675,  675,  413,
1870       675,  675,  675,  678,  414,  418,  419,  267,  419,  418,
1871       418,  418,  418,  418,  418,  418,  420,  418,  418,  418,
1872      1830,  418,  422,  418,  423,  418,  441,  267,  441,  441,
1873       267,  441,  453,  267,  453, 1835,  453,  267,  453,  465,
1874       267,  465,  444, 1837, 1838,  444,  679,  679,  454,  679,
1875       418,  418,  454,  890,  679,  466,  675,  675,  675,  675,
1876       675,  675,  678,  678, 1844,  678,  424, 1849, 1850,  895,
1877       678, 1206,  425,  418,  419,  267,  419,  418,  418,  418,
1878
1879       418,  418,  418,  418,  420,  418,  418,  418, 1329,  418,
1880       422,  418,  423,  418,  465,  267,  465,  483,  267,  483,
1881       483,  267,  483, 1651,  267,  267,  267,  267,  267,  267,
1882       466, 1860, 1863,  484, 1864, 1652,  484,  878,  418,  418,
1883       367, 1868, 1869,  367,  918,  714,  675,  675,  675,  901,
1884       675,  675,  675, 1872,  424,  675,  675,  675,  909, 1873,
1885       425,  429,  430,  267,  430,  429,  429,  429,  429,  429,
1886       429,  429,  431,  429,  429,  429, 1874,  429,  433,  429,
1887       434,  429,  483,  267,  483,  483,  267,  483,  483,  267,
1888       483, 1875,  483,  267,  483,  910,  713,  878,  484,  679,
1889
1890       679,  484, 1876, 1877,  485,  714,  429,  429,  485,  435,
1891       760,  436,  675,  675,  675,  678,  678,  437,  675,  675,
1892       675,  675,  675,  675,  438, 1878, 1879,  439,  429,  430,
1893       267,  430,  429,  429,  429,  429,  429,  429,  429,  431,
1894       429,  429,  429, 1887,  429,  433,  429,  434,  429,  499,
1895       267,  499,  499,  267,  499,  515,  267,  515,  950,  515,
1896       267,  515, 1890,  679, 1891,  500, 1894,  679,  500,  951,
1897       914,  516,  966,  429,  429,  516,  435, 1177,  436,  678,
1898       675,  675,  675,  678,  437,  675,  675,  675,  675,  675,
1899       675,  438, 1896, 1179,  439,  445,  446,  267,  446,  445,
1900
1901       445,  445,  445,  445,  445,  445,  447,  445,  445,  445,
1902      1898,  445,  449,  445,  450,  445,  526,  267,  526,  526,
1903       267,  526,  538,  267,  538,  967,  538,  267,  538,  551,
1904       267,  551,  527, 1899, 1901,  527,  679,  679,  539,  963,
1905       445,  445,  539,  923,  928,  552,  675,  675,  675,  675,
1906       675,  675,  678,  678, 1902, 1903,  451,  445,  446,  267,
1907       446,  445,  445,  445,  445,  445,  445,  445,  447,  445,
1908       445,  445, 1908,  445,  449,  445,  450,  445,  551,  267,
1909       551,  267,  267,  267,  267,  267,  267,  967,  551,  267,
1910       551,  551,  267,  551,  552, 1911, 1912,  367,  959, 1913,
1911
1912       367, 1014,  445,  445,  552,  960, 1915,  552,  675,  675,
1913       675,  961,  934,  934,  934, 1194, 1194, 1194,  451,  455,
1914       456,  267,  456,  455,  455,  455,  455,  455,  455,  455,
1915       457,  455,  455,  455, 1918,  455,  459,  455,  460,  455,
1916       551,  267,  551,  551,  267,  551,  563,  267,  563,  969,
1917       563,  267,  563,  267,  267,  267,  553, 1919, 1921,  553,
1918       970,  972,  564,  952,  455,  455,  564,  969,  960,  565,
1919       461,  935,  972,  959,  973,  462, 1925, 1926,  970,  960,
1920       960,  966, 1534, 1534, 1534,  961,  973,  463,  455,  456,
1921       267,  456,  455,  455,  455,  455,  455,  455,  455,  457,
1922
1923       455,  455,  455, 1927,  455,  459,  455,  460,  455,  267,
1924       267,  267,  563,  267,  563,  563,  267,  563,  967,  563,
1925       267,  563,  563,  267,  563,  565, 1929,  967,  564,  959,
1926       972,  564, 1019,  455,  455,  566,  960,  960,  566,  461,
1927       950, 1020, 1013, 1013,  462,  934,  934,  934, 1737, 1181,
1928      1943,  970, 1944, 1945,  966, 1947,  463,  467,  468,  267,
1929       468,  467,  467,  467,  467,  467,  467,  467,  469,  467,
1930       467,  467,  470,  467,  471,  467,  472,  467,  470,  470,
1931       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
1932       470,  470,  470,  470,  470,  470,  470,  470,  470,  470,
1933
1934       470,  470,  467,  467,  470,  473,  474,  475,  470,  470,
1935       470,  470,  470,  476,  470,  470,  477,  470,  470,  470,
1936       478,  470,  479,  480,  481,  470,  470,  470,  470,  470,
1937       470,  486,  487,  267,  487,  486,  486,  486,  486,  486,
1938       486,  486,  488,  486,  486,  486, 1948,  486,  490,  486,
1939       491,  486,  577,  267,  577,  577,  267,  577,  267,  267,
1940       267, 1949,  267,  267,  267,  577,  267,  577,  578, 1348,
1941      1177,  578, 1555, 1950,  565, 1951,  486,  486,  565, 1349,
1942       492,  578, 1194, 1194, 1194, 1593, 1350,  493, 1952, 1953,
1943       494, 1218, 1218, 1218,  495, 1940,  496,  497,  486,  487,
1944
1945       267,  487,  486,  486,  486,  486,  486,  486,  486,  488,
1946       486,  486,  486, 1954,  486,  490,  486,  491,  486,  577,
1947       267,  577,  577,  267,  577,  577,  267,  577, 1955,  589,
1948       267,  589,  589,  267,  589,  578, 1956, 1957,  579, 1959,
1949      1960,  579, 1961,  486,  486,  590, 1195,  492,  590, 1231,
1950      1231, 1231, 1962, 1232,  493, 1195, 1233,  494, 1218, 1218,
1951      1218,  495, 1965,  496,  497,  501,  502,  267,  502,  501,
1952       501,  501,  501,  501,  501,  501,  503,  501,  501,  501,
1953      1968,  501,  505,  501,  506,  501,  600,  267,  600,  600,
1954       267,  600,  267,  267,  267, 1969,  267,  267,  267,  979,
1955
1956       979,  979,  601, 1970, 1971,  601, 1972, 1973,  565, 1977,
1957       501,  501,  565,  507,  508,  509,  980, 1978, 1241, 1241,
1958      1241,  510, 1242, 1980,  511, 1243, 1981, 1982,  512, 1984,
1959      1997,  513,  501,  502,  267,  502,  501,  501,  501,  501,
1960       501,  501,  501,  503,  501,  501,  501, 1998,  501,  505,
1961       501,  506,  501,  600,  267,  600,  600,  267,  600,  600,
1962       267,  600, 1999,  600,  267,  600,  987,  987,  987,  601,
1963      2000, 2001,  601, 2004, 2005,  602, 2006,  501,  501,  602,
1964       507,  508,  509,  988, 2007, 1263, 1263, 1263,  510, 1264,
1965      2012,  511, 1265, 2013, 2017,  512, 2022, 2023,  513,  517,
1966
1967       518,  267,  518,  517,  517,  517,  517,  517,  517,  517,
1968       519,  517,  517,  517, 2032,  517,  521,  517,  522,  517,
1969       613,  267,  613,  613,  267,  613,  267,  267,  267, 2036,
1970       267,  267,  267, 1002, 1002, 1002,  614, 2038, 2044,  614,
1971      2045, 2046,  565, 2052,  517,  517,  565, 2053, 2054,  523,
1972      1003, 1590, 1590, 1590, 2055,  524,  517,  518,  267,  518,
1973       517,  517,  517,  517,  517,  517,  517,  519,  517,  517,
1974       517, 2058,  517,  521,  517,  522,  517,  613,  267,  613,
1975       613,  267,  613,  613,  267,  613, 2059,  613,  267,  613,
1976      1022, 1022, 1022,  614, 2070, 2076,  614, 2080, 2083,  615,
1977
1978      2085,  517,  517,  615, 2086, 2088,  523, 1023, 1534, 1534,
1979      1534, 2089,  524,  528,  529,  267,  529,  528,  528,  528,
1980       528,  528,  528,  528,  530,  528,  528,  528, 2090,  528,
1981       532,  528,  533,  528,  628,  267,  628,  628,  267,  628,
1982       267,  267,  267, 2094,  267,  267,  267,  628,  267,  628,
1983       629, 2097, 2099,  629, 2106, 2114,  630, 2115,  528,  528,
1984       630, 2116,  534,  629, 1194, 1194, 1194, 2117, 2119,  535,
1985      1737, 1177,  536,  528,  529,  267,  529,  528,  528,  528,
1986       528,  528,  528,  528,  530,  528,  528,  528, 2134,  528,
1987       532,  528,  533,  528,  628,  267,  628,  628,  267,  628,
1988
1989       628,  267,  628, 2137,  640,  267,  640,  640,  267,  640,
1990       629, 2141, 2135,  631, 2142, 1737,  631, 2143,  528,  528,
1991       641, 2146,  534,  641, 1218, 1218, 1218, 2147, 1271,  535,
1992      2149, 2150,  536,  540,  541,  267,  541,  540,  540,  540,
1993       540,  540,  540,  540,  542,  540,  540,  540, 2136,  540,
1994       544,  540,  545,  540,  650,  267,  650,  650,  267,  650,
1995       267,  267,  267, 2151,  267,  267,  267,  650,  267,  650,
1996       651, 2144, 2152,  651, 2153, 2154,  367, 2155,  540,  540,
1997       367, 2158,  546,  651, 1751, 1751, 1751, 2145, 1271,  547,
1998      2159, 2162,  548, 1754, 1754, 1754, 1759, 1759, 1759,  549,
1999
2000       540,  541,  267,  541,  540,  540,  540,  540,  540,  540,
2001       540,  542,  540,  540,  540, 2163,  540,  544,  540,  545,
2002       540,  650,  267,  650,  650,  267,  650,  650,  267,  650,
2003      1752,  662,  267,  662,  662,  267,  662,  651, 2164, 1755,
2004       652, 2165, 2166,  652,  751,  540,  540,  663, 2168,  546,
2005       663, 1285, 1285, 1285,  761, 1286,  547, 2169, 1287,  548,
2006      1762, 1762, 1762, 1772, 1772, 1772,  549,  554,  555,  267,
2007       555,  554,  554,  554,  554,  554,  554,  554,  556,  554,
2008       554,  554,  762,  554,  558,  554,  559,  554,  673,  267,
2009       673,  673,  267,  673, 2172, 2175,  713, 1030, 1030, 1030,
2010
2011       707, 1190, 1190, 1190,  674, 2179, 2180,  674, 2183, 2184,
2012      3457, 2185,  554,  554, 1031, 1046, 1046, 1046,  560, 1192,
2013       710, 2188, 1296, 1296, 1296, 2192, 1297, 2193,  710, 1298,
2014      2196, 2198, 1047,  561,  554,  555,  267,  555,  554,  554,
2015       554,  554,  554,  554,  554,  556,  554,  554,  554,  711,
2016       554,  558,  554,  559,  554,  712,  765, 1059, 1059, 1059,
2017      2203, 2211,  713, 1590, 1590, 1590,  714, 1061, 1061, 1061,
2018      2181, 2218,  766, 2219, 1060, 1067, 1067, 1067, 2182,  554,
2019       554, 1070, 1070, 1070, 1062,  560, 1319, 1319, 1319, 2186,
2020      1320, 2223, 1068, 1321, 1806, 1806, 1806, 2187, 1071, 2224,
2021
2022       561,  567,  568,  267,  568,  567,  567,  567,  567,  567,
2023       567,  567,  569,  567,  567,  567, 2225,  567,  571,  567,
2024       572,  567, 1085, 1085, 1085, 1087, 1087, 1087, 1099, 1099,
2025      1099, 1107, 1107, 1107, 1112, 1112, 1112, 2194, 2194, 1086,
2026      1807, 2226, 1088, 2144, 2228, 1100,  567,  567, 1108, 2232,
2027      2233, 1113,  573, 2195, 2145,  574, 1337, 1337, 1337, 2195,
2028      1338, 2234, 2240, 1339, 1808, 1808, 1808,  575,  567,  568,
2029       267,  568,  567,  567,  567,  567,  567,  567,  567,  569,
2030       567,  567,  567, 2241,  567,  571,  567,  572,  567, 1118,
2031      1118, 1118, 1138, 1138, 1138, 1162, 1162, 1162, 1166, 1166,
2032
2033      1166, 1171, 1171, 1171, 2242, 2246, 1119, 2247, 2258, 1139,
2034      1755, 2262, 1163,  567,  567, 1167, 2263, 2264, 1172,  573,
2035      2266, 2270,  574, 1340, 1340, 1340, 2274, 1341, 2275, 2276,
2036      1342, 1809, 1809, 1809,  575,  580,  581,  267,  581,  580,
2037       580,  580,  580,  580,  580,  580,  582,  580,  580,  580,
2038      2277,  580,  584,  580,  585,  580, 1190, 1190, 1190, 1226,
2039      1226, 1226, 2278, 2281, 1226, 1226, 1226,  979,  979,  979,
2040      1236, 1236, 1236, 1985, 1192, 2288, 2290, 1228, 2300, 1986,
2041       580,  580, 1228, 1987,  980, 2301,  586, 1988, 1238, 2302,
2042      2303,  587,  580,  581,  267,  581,  580,  580,  580,  580,
2043
2044       580,  580,  580,  582,  580,  580,  580, 2305,  580,  584,
2045       580,  585,  580, 1737, 1193, 1236, 1236, 1236,  987,  987,
2046       987, 1252, 1252, 1252, 1229, 1244, 1244, 1244, 1247, 1247,
2047      1247, 2312, 2318, 1238, 1177,  988, 2319,  580,  580, 1254,
2048      2309, 1737, 1245,  586, 2310, 1248, 2320, 2321,  587,  591,
2049       592,  267,  592,  591,  591,  591,  591,  591,  591,  591,
2050       593,  591,  591,  591, 2324,  591,  595,  591,  596,  591,
2051      1259, 1259, 1259, 1259, 1259, 1259, 1002, 1002, 1002, 1239,
2052      1267, 1267, 1267, 2326, 1252, 1252, 1252, 2311, 1261, 2327,
2053      2328, 1261, 2329, 1003,  591,  591, 2333, 2338, 1269, 2340,
2054
2055       597, 2341, 1254, 1351, 1351, 1351, 2342, 1352, 2346, 2352,
2056      1353, 1754, 1754, 1754, 2353,  598,  591,  592,  267,  592,
2057       591,  591,  591,  591,  591,  591,  591,  593,  591,  591,
2058       591, 1255,  591,  595,  591,  596,  591, 1262, 1267, 1267,
2059      1267, 1022, 1022, 1022, 2354, 1290, 1290, 1290, 1290, 1290,
2060      1290, 1030, 1030, 1030, 2355, 2356, 1269, 1910, 1023, 2357,
2061      2358,  591,  591, 1292, 2359, 2360, 1292,  597, 1031, 1355,
2062      1355, 1355, 2361, 1356, 2367, 1270, 1357, 1751, 1751, 1751,
2063      2368, 2369,  598,  603,  604,  267,  604,  603,  603,  603,
2064       603,  603,  603,  603,  605,  603,  603,  603, 2370,  603,
2065
2066       607,  603,  608,  603, 1300, 1300, 1300, 1300, 1300, 1300,
2067      1046, 1046, 1046, 2376, 1293, 1306, 1306, 1306, 1306, 1306,
2068      1306, 2378, 1302, 2382, 2384, 1302, 2386, 1047,  603,  603,
2069      1312, 1312, 1312, 1308,  609, 2387, 1308,  610, 1374, 1374,
2070      1374, 2392, 1375, 2393, 2395, 1376, 2396, 2397, 1314,  611,
2071       603,  604,  267,  604,  603,  603,  603,  603,  603,  603,
2072       603,  605,  603,  603,  603, 2398,  603,  607,  603,  608,
2073       603, 2402, 2403, 1303, 1312, 1312, 1312, 2404, 2405, 1309,
2074      1325, 1325, 1325, 2388, 1325, 1325, 1325, 1332, 1332, 1332,
2075      2413, 2389, 1314, 2414, 2415,  603,  603, 2416, 1327, 2419,
2076
2077      2424,  609, 1327, 2390,  610, 1334, 1377, 1377, 1377, 2428,
2078      1378, 2391, 2429, 1379, 2434, 2435,  611,  616,  617,  267,
2079       617,  616,  616,  616,  616,  616,  616,  616,  618,  616,
2080       616,  616, 2436,  616,  620,  616,  621,  616, 2437, 1315,
2081      1059, 1059, 1059, 2439, 2430, 1328, 1332, 1332, 1332, 1061,
2082      1061, 1061, 2431, 1343, 1343, 1343, 2449, 1060, 1343, 1343,
2083      1343, 2461,  616,  616, 1334, 2432, 1062, 1754, 1754, 1754,
2084       622, 1345,  623, 2433, 1737,  624, 1345, 2462, 2463,  625,
2085      1958, 1958, 1958,  626,  616,  617,  267,  617,  616,  616,
2086       616,  616,  616,  616,  616,  618,  616,  616,  616, 2465,
2087
2088       616,  620,  616,  621,  616, 1067, 1067, 1067, 1335, 1070,
2089      1070, 1070, 2468, 2469, 1358, 1358, 1358, 2455, 2470, 1346,
2090      2473, 2477, 1068, 1370, 1370, 1370, 1071, 2478, 2479,  616,
2091       616, 1359, 1085, 1085, 1085, 2480, 2481,  622, 2482,  623,
2092      1737, 1372,  624, 1759, 1759, 1759,  625, 2483, 2484, 1086,
2093       626,  632,  633,  267,  633,  632,  632,  632,  632,  632,
2094       632,  632,  634,  632,  632,  632, 2485,  632,  636,  632,
2095       637,  632, 1087, 1087, 1087, 1380, 1380, 1380, 1762, 1762,
2096      1762, 1772, 1772, 1772, 1370, 1370, 1370, 2456, 2486, 1088,
2097      2499, 2500, 1381, 3457, 3457, 3457,  632,  632, 3457, 3457,
2098
2099      3457, 2501, 1372, 2502, 1394, 1394, 1394, 2503, 1395, 2505,
2100      3457, 1396, 1406, 1406, 1406, 3457, 1407, 2506, 2512, 1408,
2101       638,  632,  633,  267,  633,  632,  632,  632,  632,  632,
2102       632,  632,  634,  632,  632,  632, 2513,  632,  636,  632,
2103       637,  632, 1373, 2514, 1382, 1386, 1386, 1386, 2515, 2516,
2104      1383, 3457, 3457, 3457, 2517, 1099, 1099, 1099, 2518, 2521,
2105      3457, 3457, 3457, 1388, 2522, 2523,  632,  632, 3457, 1386,
2106      1386, 1386, 1100, 2528, 1414, 1414, 1414, 3457, 1415, 2529,
2107      2530, 1416, 1423, 1423, 1423, 2538, 1424, 1388, 2539, 1425,
2108       638,  642,  643,  267,  643,  642,  642,  642,  642,  642,
2109
2110       642,  642,  644,  642,  642,  642, 1384,  642,  646,  642,
2111       647,  642, 1385, 1397, 1397, 1397, 1389, 1401, 1401, 1401,
2112      1401, 1401, 1401, 1107, 1107, 1107, 1409, 1409, 1409, 2524,
2113      1398, 1963, 1963, 1963, 2540, 1403,  642,  642, 1403, 2525,
2114      1108, 1966, 1966, 1966, 1411, 2541, 2550,  648,  642,  643,
2115       267,  643,  642,  642,  642,  642,  642,  642,  642,  644,
2116       642,  642,  642, 2551,  642,  646,  642,  647,  642, 2552,
2117      2553, 1404, 1409, 1409, 1409, 1112, 1112, 1112, 1418, 1418,
2118      1418, 1418, 1418, 1418, 1118, 1118, 1118, 1967, 2555, 2557,
2119      1411, 2582, 1113,  642,  642, 1964, 1420, 1737, 2583, 1420,
2120
2121      1737, 1119, 2585, 2586,  648,  653,  654,  267,  654,  653,
2122       653,  653,  653,  653,  653,  653,  655,  653,  653,  653,
2123      2587,  653,  657,  653,  658,  653, 2588, 2589, 1421, 1429,
2124      1429, 1429, 2578, 1412, 2579, 1429, 1429, 1429, 1433, 1433,
2125      1433, 1435, 1435, 1435, 1438, 1438, 1438, 1431, 2593, 2594,
2126       653,  653, 2595, 1431, 2596, 1434, 2597, 2598, 1436, 2599,
2127      2600,  659, 1440, 1455, 1455, 1455, 2601, 1456, 2602, 2603,
2128      1457, 1974, 1974, 1974,  660,  653,  654,  267,  654,  653,
2129       653,  653,  653,  653,  653,  653,  655,  653,  653,  653,
2130      1432,  653,  657,  653,  658,  653, 1443, 1443, 1443, 2605,
2131
2132      2606, 3457, 3457, 3457, 2609, 1438, 1438, 1438, 2610, 2611,
2133      1447, 1447, 1447, 1444, 1450, 1450, 1450, 1975, 3457, 2612,
2134       653,  653, 2615, 1440, 3457, 3457, 3457, 1448, 1806, 1806,
2135      1806,  659, 1452, 1495, 1495, 1495, 2616, 1496, 2617, 2618,
2136      1497, 3457, 2620, 2621,  660,  664,  665,  267,  665,  664,
2137       664,  664,  664,  664,  664,  664,  666,  664,  664,  664,
2138      1437,  664,  668,  664,  669,  664, 1441, 1450, 1450, 1450,
2139      2623, 3457, 3457, 3457, 1445, 1138, 1138, 1138, 1458, 1458,
2140      1458, 1458, 1458, 1458, 2624, 1452, 2630, 2631, 3457, 1446,
2141       664,  664, 1139, 1462, 1462, 1462, 1460, 2632, 2633, 1460,
2142
2143      2637,  670, 2607, 2638, 1453, 1502, 1502, 1502, 2639, 1503,
2144      1463, 2608, 1504, 2640,  671,  664,  665,  267,  665,  664,
2145       664,  664,  664,  664,  664,  664,  666,  664,  664,  664,
2146      1449,  664,  668,  664,  669,  664, 1461, 1464, 1464, 1464,
2147      1466, 1466, 1466, 2641, 1466, 1466, 1466, 1470, 1470, 1470,
2148      1474, 1474, 1474, 2645, 1465, 3457, 3457, 3457, 1468, 2648,
2149       664,  664, 1468, 2653, 1471, 2654, 2657, 1475, 1476, 1476,
2150      1476,  670, 3457, 1485, 1485, 1485, 1491, 1491, 1491, 1476,
2151      1476, 1476, 2649, 2666,  671,  679, 1478, 2613, 1485, 1485,
2152      1485, 1487,  694, 2667, 1493, 2650, 2614, 1478, 1491, 1491,
2153
2154      1491,  678,  695, 2668, 2669, 1472, 1487, 1162, 1162, 1162,
2155      1498, 1498, 1498, 2670, 2673, 1469, 1493, 1166, 1166, 1166,
2156      1473, 1498, 1498, 1498, 1163, 1506, 1506, 1506, 1500,  696,
2157       697,  698, 2651, 2674, 1167,  699,  700,  701, 2695, 1500,
2158       702,  703, 2696, 1508,  704, 2652,  705,  706,  707,  679,
2159      1479, 1177, 1488, 1506, 1506, 1506,  751, 1171, 1171, 1171,
2160      1737, 2698, 1494, 2699, 1737,  678,  752, 1989, 1510, 1510,
2161      1510, 1508, 1511, 1990, 1172, 1512, 2700, 1991, 1514, 1514,
2162      1514, 1992, 1501, 2709, 1514, 1514, 1514, 2710, 1190, 1190,
2163      1190, 2692, 2711,  696,  753,  708, 1516, 2693, 2712,  754,
2164
2165       755,  701, 1516, 2713,  756,  703, 1192, 2694,  757, 2714,
2166       758,  759,  707, 1190, 1190, 1190, 2715, 1509, 1190, 1190,
2167      1190, 1557, 1557, 1557, 1226, 1226, 1226, 2716, 1226, 1226,
2168      1226, 1192, 1226, 1226, 1226, 2717, 1192, 2718, 1558, 1560,
2169      1560, 1560, 1228, 2719, 2721, 1517, 1228, 1231, 1231, 1231,
2170      1228, 1232, 2722, 2723, 1233, 2724, 1561, 3457, 3457, 3457,
2171      1236, 1236, 1236, 2725, 2726, 1526, 1236, 1236, 1236, 1236,
2172      1236, 1236, 2727, 2703, 3457, 1241, 1241, 1241, 1238, 1242,
2173      2728, 1559, 1243, 2704, 1238, 2729, 2705, 1238, 1244, 1244,
2174      1244, 1566, 1566, 1566, 2730, 1567, 2731, 2732, 1568, 2733,
2175
2176      1569, 1569, 1569, 2734, 2735, 1245, 1247, 1247, 1247, 1575,
2177      1575, 1575, 1252, 1252, 1252, 2706, 1564, 1570, 1562, 2736,
2178      1571, 1571, 1571, 1248, 1572, 2707, 1576, 1573, 2708, 2739,
2179      1254, 1252, 1252, 1252, 1252, 1252, 1252, 1580, 1580, 1580,
2180      1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1254,
2181      2740, 2748, 1254, 2749, 1581, 1263, 1263, 1263, 1261, 1264,
2182      2750, 1261, 1265, 2753, 1261, 1267, 1267, 1267, 1267, 1267,
2183      1267, 1585, 1585, 1585, 1285, 1285, 1285, 2754, 1286, 2758,
2184      2759, 1287, 2760, 1269, 2761, 2762, 1269, 2763, 2771, 1586,
2185      1602, 1602, 1602, 1583, 1578, 1290, 1290, 1290, 1290, 1290,
2186
2187      1290, 1290, 1290, 1290, 1296, 1296, 1296, 1603, 1297, 2772,
2188      2773, 1298, 2799, 1292, 1177, 2801, 1292, 2802, 1737, 1292,
2189      1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1609,
2190      1609, 1609, 3457, 3457, 3457, 1306, 1306, 1306, 1302, 2803,
2191      2807, 1302, 2808, 2796, 1302, 2811, 1610, 2812, 2815, 3457,
2192      1306, 1306, 1306, 1308, 1306, 1306, 1306, 1613, 1613, 1613,
2193      2797, 1737, 1604, 3457, 3457, 3457, 2816, 2817, 1308, 1808,
2194      1808, 1808, 1308, 2818, 1614, 1312, 1312, 1312, 2819, 1611,
2195      3457, 1312, 1312, 1312, 1312, 1312, 1312, 1608, 1619, 1619,
2196      1619, 1615, 2820, 1314, 1319, 1319, 1319, 2821, 1320, 1314,
2197
2198      2822, 1321, 1314, 2798, 2823, 1620, 1325, 1325, 1325, 1325,
2199      1325, 1325, 1325, 1325, 1325, 1627, 1627, 1627, 1332, 1332,
2200      1332, 1612, 2825, 2826, 1327, 2827, 2828, 1327, 2829, 2830,
2201      1327, 2809, 1628, 1332, 1332, 1332, 1334, 1332, 1332, 1332,
2202      1630, 1630, 1630, 2813, 2810, 1337, 1337, 1337, 2831, 1338,
2203      1616, 1334, 1339, 2832, 2833, 1334, 2814, 1631, 1340, 1340,
2204      1340, 2834, 1341, 2835, 2836, 1342, 1343, 1343, 1343, 1343,
2205      1343, 1343, 1343, 1343, 1343, 2837, 2839, 1624, 1351, 1351,
2206      1351, 2851, 1352, 2852, 1345, 1353, 2860, 1345, 2861, 2862,
2207      1345, 1637, 1637, 1637, 1355, 1355, 1355, 2863, 1356, 2864,
2208
2209      2865, 1357, 2866, 2873, 1629, 1358, 1358, 1358, 1638, 1639,
2210      1639, 1639, 2876, 1640, 2883, 2884, 1641, 1370, 1370, 1370,
2211      2885, 2886, 1359, 1370, 1370, 1370, 1370, 1370, 1370, 1374,
2212      1374, 1374, 2887, 1375, 2888, 1372, 1376, 1632, 1377, 1377,
2213      1377, 1372, 1378, 1177, 1372, 1379, 1380, 1380, 1380, 1654,
2214      1654, 1654, 2901, 1655, 1737, 2903, 1656, 1386, 1386, 1386,
2215      1386, 1386, 1386, 1381, 1386, 1386, 1386, 1394, 1394, 1394,
2216      2904, 1395, 2905, 2906, 1396, 1388, 2781, 2907, 1388, 1397,
2217      1397, 1397, 1388, 1666, 1666, 1666, 2782, 1667, 2908, 2898,
2218      1668, 2897, 2783, 1653, 2909, 2910, 1398, 1401, 1401, 1401,
2219
2220      1401, 1401, 1401, 1401, 1401, 1401, 1406, 1406, 1406, 2911,
2221      1407, 2912, 1661, 1408, 2915, 1403, 2916, 2917, 1403, 2918,
2222      2919, 1403, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
2223      1409, 1414, 1414, 1414, 2920, 1415, 2921, 2922, 1416, 2924,
2224      1411, 2925, 2926, 1411, 2927, 2891, 1411, 1418, 1418, 1418,
2225      1418, 1418, 1418, 2928, 1671, 1418, 1418, 1418, 2892, 1423,
2226      1423, 1423, 2929, 1424, 2893, 1420, 1425, 2930, 1420, 1429,
2227      1429, 1429, 2931, 1420, 1429, 1429, 1429, 2894, 1429, 1429,
2228      1429, 1433, 1433, 1433, 1682, 1682, 1682, 1431, 1683, 2932,
2229      2933, 1684, 1431, 2934, 2935, 1673, 1431, 2936, 1434, 1435,
2230
2231      1435, 1435, 2948, 2949, 1676, 1685, 1685, 1685, 2950, 1686,
2232      2957, 2958, 1687, 1438, 1438, 1438, 1436, 1438, 1438, 1438,
2233      2959, 1438, 1438, 1438, 1443, 1443, 1443, 2960, 1447, 1447,
2234      1447, 1440, 1809, 1809, 1809, 1440, 2961, 2784, 1681, 1440,
2235      2962, 1444, 1691, 1691, 1691, 1448, 1692, 2785, 2963, 1693,
2236      1696, 1696, 1696, 2786, 1697, 2964, 2968, 1698, 1450, 1450,
2237      1450, 1450, 1450, 1450, 1450, 1450, 1450, 1455, 1455, 1455,
2238      2969, 1456, 2977, 2978, 1457, 2979, 1452, 2971, 2980, 1452,
2239      2970, 2981, 1452, 1458, 1458, 1458, 2982, 2972, 1689, 1458,
2240      1458, 1458, 1458, 1458, 1458, 1462, 1462, 1462, 1703, 1703,
2241
2242      1703, 1460, 1704, 2986, 2987, 1705, 2988, 1460, 2989, 2973,
2243      1460, 2975, 1463, 1464, 1464, 1464, 1706, 1706, 1706, 2974,
2244      1707, 2976, 2999, 1708, 1466, 1466, 1466, 3000, 1700, 3001,
2245      1465, 1466, 1466, 1466, 3002, 1466, 1466, 1466, 1470, 1470,
2246      1470, 3003, 1468, 1710, 1710, 1710, 3004, 1711, 3005, 1468,
2247      1712, 3006, 1702, 1468, 3010, 1471, 1474, 1474, 1474, 1715,
2248      1715, 1715, 1177, 1716, 3011, 3012, 1717, 1476, 1476, 1476,
2249      1476, 1476, 1476, 1475, 1476, 1476, 1476, 1720, 1720, 1720,
2250      1485, 1485, 1485, 3013, 3014, 1478, 3015, 3017, 1478, 1485,
2251      1485, 1485, 1478, 3018, 1721, 3019, 2990, 1709, 1487, 1485,
2252
2253      1485, 1485, 1491, 1491, 1491, 3020, 3021, 1487, 1491, 1491,
2254      1491, 1491, 1491, 1491, 1495, 1495, 1495, 1487, 1496, 3022,
2255      1493, 1497, 1498, 1498, 1498, 3023, 1493, 3024, 3028, 1493,
2256      1498, 1498, 1498, 1498, 1498, 1498, 1718, 1502, 1502, 1502,
2257      1500, 1503, 3029, 3030, 1504, 1506, 1506, 1506, 1500, 3033,
2258      3034, 1500, 1506, 1506, 1506, 1506, 1506, 1506, 3035, 3036,
2259      1725, 3037, 3038, 1508, 1728, 1510, 1510, 1510, 3043, 1511,
2260      1508, 3044, 1512, 1508, 1514, 1514, 1514, 1514, 1514, 1514,
2261      1514, 1514, 1514, 1736, 1736, 1736, 1190, 1190, 1190, 1557,
2262      1557, 1557, 1516, 1729, 3045, 1516, 3046, 3047, 1516, 3048,
2263
2264      3049, 1737, 1738, 3050, 1192, 3051, 1558, 1775, 1775, 1775,
2265      3052, 1776, 3053, 3054, 1777, 3056, 1731, 1226, 1226, 1226,
2266      1560, 1560, 1560, 3057, 1779, 1779, 1779, 3058, 1780, 3059,
2267      1733, 1781, 1236, 1236, 1236, 1228, 1177, 1561, 1566, 1566,
2268      1566, 3066, 1567, 3067, 3068, 1568, 1569, 1569, 1569, 3069,
2269      1238, 3070, 1743, 1786, 1786, 1786, 3071, 1787, 3072, 3073,
2270      1788, 3074, 3075, 1570, 1571, 1571, 1571, 3076, 1572, 3077,
2271      3078, 1573, 1575, 1575, 1575, 1778, 1790, 1790, 1790, 3060,
2272      1791, 1784, 3079, 1792, 1252, 1252, 1252, 3082, 3083, 1576,
2273      1580, 1580, 1580, 1796, 1796, 1796, 3084, 1797, 3085, 3086,
2274
2275      1798, 3087, 1254, 1799, 1799, 1799, 3088, 1581, 1259, 1259,
2276      1259, 1585, 1585, 1585, 1817, 1817, 1817, 2035, 2035, 2035,
2277      1800, 1602, 1602, 1602, 3089, 3090, 1261, 3096, 3097, 1586,
2278      3098, 1818, 3105, 3106, 1794, 1819, 1819, 1819, 1603, 1820,
2279      3107, 3108, 1821, 1290, 1290, 1290, 1300, 1300, 1300, 1609,
2280      1609, 1609, 1827, 1827, 1827, 3109, 1828, 1801, 3110, 1829,
2281      3111, 1292, 3112, 3113, 1302, 3114, 1610, 1306, 1306, 1306,
2282      1613, 1613, 1613, 1832, 1832, 1832, 3115, 1833, 3116, 3119,
2283      1834, 1312, 1312, 1312, 3120, 1308, 3121, 1614, 1619, 1619,
2284      1619, 1839, 1839, 1839, 3122, 1840, 3130, 3125, 1841, 1314,
2285
2286      1842, 1842, 1842, 1177, 3131, 1620, 3132, 1822, 3128, 3133,
2287      1826, 1845, 1845, 1845, 1325, 1325, 1325, 1843, 1627, 1627,
2288      1627, 3134, 1851, 1851, 1851, 3135, 1852, 1831, 1846, 1853,
2289      3136, 3137, 1327, 3140, 3125, 1628, 1854, 1854, 1854, 1630,
2290      1630, 1630, 1836, 1856, 1856, 1856, 3141, 1857, 3126, 3123,
2291      1858, 1343, 1343, 1343, 1855, 3144, 1631, 1847, 1861, 1861,
2292      1861, 1637, 1637, 1637, 1865, 1865, 1865, 3145, 1866, 1345,
2293      3146, 1867, 1639, 1639, 1639, 1862, 1640, 3138, 1638, 1641,
2294      1848, 1870, 1870, 1870, 1370, 1370, 1370, 1654, 1654, 1654,
2295      3142, 1655, 3147, 3148, 1656, 1881, 1881, 1881, 1871, 3457,
2296
2297      3457, 3457, 1372, 3457, 3457, 3457, 3457, 3457, 3457, 1386,
2298      1386, 1386, 1882, 1888, 1888, 1888, 3457, 1859, 3156, 3139,
2299      3457, 3149, 3161, 3457, 1666, 1666, 1666, 1388, 1667, 3143,
2300      1889, 1668, 3162, 3150, 1892, 1892, 1892, 1401, 1401, 1401,
2301      1409, 1409, 1409, 1418, 1418, 1418, 1904, 1904, 1904, 1880,
2302      1884, 1893, 1429, 1429, 1429, 1403, 3163, 3164, 1411, 3165,
2303      3166, 1420, 3151, 1905, 1886, 3157, 1438, 1438, 1438, 1883,
2304      1431, 1682, 1682, 1682, 3152, 1683, 1885, 3158, 1684, 1685,
2305      1685, 1685, 3169, 1686, 1440, 3169, 1687, 1691, 1691, 1691,
2306      1177, 1692, 1906, 3172, 1693, 1696, 1696, 1696, 3173, 1697,
2307
2308      1900, 1895, 1698, 1450, 1450, 1450, 1897, 3159, 3174, 1907,
2309      1458, 1458, 1458, 1703, 1703, 1703, 3125, 1704, 3175, 3160,
2310      1705, 1452, 1706, 1706, 1706, 3176, 1707, 3179, 1460, 1708,
2311      3126, 3167, 1909, 1466, 1466, 1466, 1710, 1710, 1710, 3125,
2312      1711, 1737, 1738, 1712, 3177, 1715, 1715, 1715, 3190, 1716,
2313      3128, 1468, 1717, 1476, 1476, 1476, 1720, 1720, 1720, 1922,
2314      1922, 1922, 3178, 1923, 1914, 3188, 1924, 1916, 1485, 1485,
2315      1485, 1478, 3193, 1721, 1930, 1930, 1930, 1491, 1491, 1491,
2316      1917, 1498, 1498, 1498, 3189, 3198, 1487, 1934, 1934, 1934,
2317      3191, 1931, 1506, 1506, 1506, 1493, 1937, 1937, 1937, 1500,
2318
2319      1920, 1514, 1514, 1514, 1935, 1736, 1736, 1736, 3201, 3192,
2320      1508, 3180, 3196, 1938, 1190, 1190, 1190, 1928, 3199, 1516,
2321      1775, 1775, 1775, 1737, 1776, 3202, 3181, 1777, 1226, 1226,
2322      1226, 3197, 1192, 1933, 1779, 1779, 1779, 3200, 1780, 3203,
2323      3169, 1781, 2488, 2489, 1932, 2490, 1228, 1236, 1236, 1236,
2324      3205, 3169, 1939, 2491, 1936, 3206, 1941, 1786, 1786, 1786,
2325      2492, 1787, 3207, 3208, 1788, 1238, 1946, 1790, 1790, 1790,
2326      3209, 1791, 3210, 1942, 1792, 1252, 1252, 1252, 1796, 1796,
2327      1796, 3211, 1797, 3212, 3213, 1798, 1799, 1799, 1799, 3223,
2328      1993, 1993, 1993, 1254, 1994, 1976, 3224, 1995, 1979, 1259,
2329
2330      1259, 1259, 3225, 1800, 2002, 2002, 2002, 2002, 2002, 2002,
2331      1963, 1963, 1963, 1817, 1817, 1817, 3226, 1261, 2008, 2008,
2332      2008, 3227, 2009, 3228, 3232, 2010, 3233, 1819, 1819, 1819,
2333      1818, 1820, 3234, 3235, 1821, 3236, 1983, 1290, 1290, 1290,
2334      2014, 2014, 2014, 1300, 1300, 1300, 3237, 1827, 1827, 1827,
2335      1996, 1828, 3238, 3239, 1829, 1292, 3241, 2015, 1306, 1306,
2336      1306, 1302, 1832, 1832, 1832, 3242, 1833, 3243, 2003, 1834,
2337      3244, 1964, 3245, 3246, 2003, 3247, 1308, 2019, 2019, 2019,
2338      1312, 1312, 1312, 3252, 2011, 1839, 1839, 1839, 3253, 1840,
2339      2016, 3254, 1841, 3248, 2020, 1842, 1842, 1842, 1314, 2024,
2340
2341      2024, 2024, 3255, 2025, 3256, 3249, 2026, 3250, 2027, 2027,
2342      2027, 3257, 1843, 1845, 1845, 1845, 2029, 2029, 2029, 3251,
2343      2030, 3258, 3259, 2031, 2018, 2028, 3260, 2033, 2033, 2033,
2344      1846, 1851, 1851, 1851, 3261, 1852, 3262, 3263, 1853, 1854,
2345      1854, 1854, 3264, 3265, 2021, 2034, 1856, 1856, 1856, 1177,
2346      1857, 3267, 3268, 1858, 1343, 1343, 1343, 1855, 1861, 1861,
2347      1861, 2039, 2039, 2039, 3269, 2040, 3270, 3271, 2041, 2042,
2348      2042, 2042, 1345, 3272, 3266, 1862, 1865, 1865, 1865, 3273,
2349      1866, 3274, 3275, 1867, 3276, 3277, 2043, 1870, 1870, 1870,
2350      2047, 2047, 2047, 3278, 2048, 3279, 3280, 2049, 3281, 3282,
2351
2352      2037, 2050, 2050, 2050, 1871, 2056, 2056, 2056, 1370, 1370,
2353      1370, 1881, 1881, 1881, 2064, 2064, 2064, 3283, 2051, 3457,
2354      3457, 3457, 2057, 2061, 2061, 2061, 1372, 2062, 1882, 3284,
2355      2063, 2065, 2067, 2067, 2067, 3285, 3457, 1386, 1386, 1386,
2356      1888, 1888, 1888, 2071, 2071, 2071, 3286, 2072, 3287, 2068,
2357      2073, 2074, 2074, 2074, 3288, 1388, 3290, 1889, 1892, 1892,
2358      1892, 3291, 2077, 2077, 2077, 3292, 2078, 3293, 2075, 2079,
2359      2081, 2081, 2081, 3294, 2060, 1893, 3295, 2066, 1409, 1409,
2360      1409, 3296, 1418, 1418, 1418, 1904, 1904, 1904, 2082, 3297,
2361      3298, 2091, 2091, 2091, 1177, 2092, 1411, 2069, 2093, 3299,
2362
2363      1420, 3300, 1905, 2095, 2095, 2095, 1438, 1438, 1438, 2100,
2364      2100, 2100, 3301, 3289, 2102, 2102, 2102, 3457, 3457, 3457,
2365      3302, 2096, 3303, 3304, 1440, 3305, 2101, 3306, 3307, 2084,
2366      2087, 2103, 3308, 3309, 3457, 1450, 1450, 1450, 1458, 1458,
2367      1458, 1466, 1466, 1466, 2109, 2109, 2109, 2111, 2111, 2111,
2368      1476, 1476, 1476, 1452, 3311, 3312, 1460, 2098, 3313, 1468,
2369      3314, 2110, 3315, 1177, 2112, 1922, 1922, 1922, 1478, 1923,
2370      3316, 3317, 1924, 1485, 1485, 1485, 1930, 1930, 1930, 2493,
2371      2494, 2104, 2495, 3310, 2107, 2120, 2120, 2120, 3318, 2121,
2372      2496, 1487, 2122, 1931, 1491, 1491, 1491, 2497, 3319, 1498,
2373
2374      1498, 1498, 2105, 1934, 1934, 1934, 2108, 2125, 2125, 2125,
2375      3320, 2126, 1493, 3321, 2127, 2113, 3322, 1500, 3323, 3324,
2376      1935, 2128, 2128, 2128, 2118, 1937, 1937, 1937, 2130, 2130,
2377      2130, 3325, 2131, 3326, 3327, 2132, 2148, 2148, 2148, 2129,
2378      3328, 3329, 1938, 1514, 1514, 1514, 2138, 2138, 2138, 1190,
2379      1190, 1190, 3330, 2123, 2124, 1958, 1958, 1958, 2156, 2156,
2380      2156, 1516, 3332, 2139, 1963, 1963, 1963, 1192, 2157, 2157,
2381      2157, 1966, 1966, 1966, 2160, 2160, 2160, 2161, 2161, 2161,
2382      1974, 1974, 1974, 3333, 1226, 1226, 1226, 2170, 2170, 2170,
2383      2173, 2173, 2173, 1252, 1252, 1252, 2177, 2177, 2177, 3334,
2384
2385      1177, 2133, 1228, 3335, 3336, 2171, 3331, 2174, 3337, 3338,
2386      2140, 1254, 3339, 2178, 1993, 1993, 1993, 3340, 1994, 3341,
2387      3342, 1995, 1259, 1259, 1259, 2190, 2190, 2190, 2002, 2002,
2388      2002, 2197, 2197, 2197, 2167, 3343, 2199, 2199, 2199, 3345,
2389      1261, 3346, 2191, 2008, 2008, 2008, 3347, 2009, 3348, 3349,
2390      2010, 3350, 2176, 2200, 1290, 1290, 1290, 2204, 2204, 2204,
2391      2014, 2014, 2014, 2207, 2207, 2207, 3351, 2208, 2189, 3352,
2392      2209, 3354, 1292, 3355, 2205, 3356, 3357, 2015, 1300, 1300,
2393      1300, 1177, 2201, 2212, 2212, 2212, 3358, 2019, 2019, 2019,
2394      2214, 2214, 2214, 3359, 2215, 3344, 1302, 2216, 1312, 1312,
2395
2396      1312, 2213, 3360, 2206, 2020, 3361, 3364, 2202, 2024, 2024,
2397      2024, 3365, 2025, 3366, 3367, 2026, 1314, 2027, 2027, 2027,
2398      2220, 2220, 2220, 3368, 2221, 3369, 1177, 2222, 2029, 2029,
2399      2029, 2210, 2030, 1177, 2028, 2031, 2033, 2033, 2033, 2035,
2400      2035, 2035, 1343, 1343, 1343, 2217, 2039, 2039, 2039, 1177,
2401      2040, 1177, 1758, 2041, 2034, 2042, 2042, 2042, 1177, 1177,
2402      1345, 2229, 2229, 2229, 1177, 2230, 3410, 1177, 2231, 2047,
2403      2047, 2047, 2043, 2048, 3372, 1177, 2049, 2050, 2050, 2050,
2404      2235, 2235, 2235, 1177, 2236, 3370, 1177, 2237, 2238, 2238,
2405      2238, 2056, 2056, 2056, 2051, 2243, 2243, 2243, 3384, 2244,
2406
2407      2227, 3386, 2245, 3371, 1177, 2239, 3373, 3374, 2057, 1370,
2408      1370, 1370, 2061, 2061, 2061, 1177, 2062, 1177, 1177, 2063,
2409      2064, 2064, 2064, 3375, 2249, 2249, 2249, 1372, 2250, 3392,
2410      3376, 2251, 2252, 2252, 2252, 1757, 3380, 2065, 2067, 2067,
2411      2067, 2254, 2254, 2254, 1177, 2255, 3381, 3404, 2256, 2253,
2412      1386, 1386, 1386, 1756, 1177, 2068, 3388, 2071, 2071, 2071,
2413      2248, 2072, 3377, 3393, 2073, 2074, 2074, 2074, 1388, 2259,
2414      2259, 2259, 3382, 2260, 1177, 3383, 2261, 2077, 2077, 2077,
2415      1177, 2078, 2075, 1177, 2079, 2081, 2081, 2081, 1409, 1409,
2416      1409, 2267, 2267, 2267, 1418, 1418, 1418, 2271, 2271, 2271,
2417
2418      3378, 2257, 1177, 2082, 1177, 1177, 1411, 1177, 2268, 2091,
2419      2091, 2091, 1420, 2092, 2272, 3389, 2093, 2095, 2095, 2095,
2420      2279, 2279, 2279, 2100, 2100, 2100, 2282, 2282, 2282, 1177,
2421      2283, 1177, 3379, 2284, 1177, 2096, 1177, 3396, 2280, 3387,
2422      2101, 1177, 3390, 2273, 2102, 2102, 2102, 2285, 2285, 2285,
2423      1177, 2286, 2265, 1753, 2287, 2269, 1450, 1450, 1450, 1177,
2424      3422, 2103, 1458, 1458, 1458, 1466, 1466, 1466, 2109, 2109,
2425      2109, 2293, 2293, 2293, 1452, 2294, 3385, 1177, 2295, 1177,
2426      1460, 3432, 3397, 1468, 3405, 2110, 2111, 2111, 2111, 2296,
2427      2296, 2296, 1177, 2297, 3391, 3398, 2298, 1476, 1476, 1476,
2428
2429      1485, 1485, 1485, 2112, 1177, 2120, 2120, 2120, 3399, 2121,
2430      1177, 2291, 2122, 1177, 3394, 1478, 3395, 1177, 1487, 1491,
2431      1491, 1491, 2289, 1498, 1498, 1498, 3402, 2125, 2125, 2125,
2432      2292, 2126, 1177, 1177, 2127, 1177, 1177, 1493, 2128, 2128,
2433      2128, 1500, 2130, 2130, 2130, 3400, 2131, 3454, 3401, 2132,
2434      1514, 1514, 1514, 2317, 2317, 2317, 2129, 2138, 2138, 2138,
2435      1177, 1177, 2299, 1750, 1749, 2304, 3403, 3426, 1516, 3411,
2436      2306, 2313, 2313, 2313, 2139, 2314, 2307, 3416, 2315, 1190,
2437      1190, 1190, 2322, 2322, 2322, 2323, 2323, 2323, 2148, 2148,
2438      2148, 2325, 2325, 2325, 1177, 3408, 2308, 1192, 2330, 2330,
2439
2440      2330, 2156, 2156, 2156, 2157, 2157, 2157, 2331, 2331, 2331,
2441      2160, 2160, 2160, 2161, 2161, 2161, 2334, 2334, 2334, 2335,
2442      2335, 2335, 2336, 2336, 2336, 2337, 2337, 2337, 1226, 1226,
2443      1226, 2170, 2170, 2170, 2173, 2173, 2173, 2343, 2343, 2343,
2444      3406, 2344, 3430, 2316, 2345, 1177, 1228, 1748, 1177, 2171,
2445      1177, 2174, 1747, 2332, 2347, 2347, 2347, 2177, 2177, 2177,
2446      2349, 2349, 2349, 1177, 2350, 3431, 1746, 2351, 1259, 1259,
2447      1259, 1177, 2348, 1177, 2178, 2190, 2190, 2190, 1177, 2339,
2448      2363, 2363, 2363, 3409, 2364, 1177, 1261, 2365, 2366, 2366,
2449      2366, 3407, 2191, 2197, 2197, 2197, 2371, 2371, 2371, 2199,
2450
2451      2199, 2199, 2373, 2373, 2373, 3417, 2374, 1177, 3414, 2375,
2452      1290, 1290, 1290, 2204, 2204, 2204, 2200, 2362, 2379, 2379,
2453      2379, 1177, 2380, 1177, 3418, 2381, 3436, 3412, 1292, 1177,
2454      2205, 2207, 2207, 2207, 3413, 2208, 1177, 1177, 2209, 1300,
2455      1300, 1300, 2372, 1177, 2212, 2212, 2212, 2214, 2214, 2214,
2456      3423, 2215, 1745, 3419, 2216, 1177, 1744, 1302, 1312, 1312,
2457      1312, 2377, 2213, 2220, 2220, 2220, 3415, 2221, 1177, 3428,
2458      2222, 1343, 1343, 1343, 3420, 1177, 1314, 2229, 2229, 2229,
2459      1177, 2230, 1177, 1177, 2231, 2238, 2238, 2238, 3424, 1345,
2460      2383, 2235, 2235, 2235, 1177, 2236, 3437, 1177, 2237, 2399,
2461
2462      2399, 2399, 2239, 2400, 3425, 3421, 2401, 1177, 2243, 2243,
2463      2243, 2385, 2244, 1177, 3427, 2245, 2406, 2406, 2406, 1370,
2464      1370, 1370, 3433, 2249, 2249, 2249, 2394, 2250, 3429, 3440,
2465      2251, 3434, 1742, 2407, 2252, 2252, 2252, 1372, 2409, 2409,
2466      2409, 1177, 2410, 1177, 3435, 2411, 2254, 2254, 2254, 1177,
2467      2255, 2253, 1177, 2256, 1386, 1386, 1386, 2259, 2259, 2259,
2468      1741, 2260, 1177, 1740, 2261, 1739, 2417, 2417, 2417, 2267,
2469      2267, 2267, 1388, 2420, 2420, 2420, 3438, 2421, 3439, 1177,
2470      2422, 3444, 1177, 2408, 2418, 1732, 2268, 1418, 1418, 1418,
2471      2271, 2271, 2271, 2425, 2425, 2425, 1177, 2426, 3441, 3442,
2472
2473      2427, 2279, 2279, 2279, 3446, 1420, 1730, 2272, 2282, 2282,
2474      2282, 3445, 2283, 1177, 3448, 2284, 1450, 1450, 1450, 2280,
2475      2412, 2285, 2285, 2285, 1177, 2286, 1727, 1177, 2287, 1177,
2476      1458, 1458, 1458, 3443, 1452, 1466, 1466, 1466, 2293, 2293,
2477      2293, 1726, 2294, 1724, 1723, 2295, 3447, 2423, 1460, 1722,
2478      2296, 2296, 2296, 1468, 2297, 1177, 3449, 2298, 1476, 1476,
2479      1476, 1719, 2443, 2443, 2443, 1714, 1713, 2438, 3457, 3457,
2480      3457, 2441, 3457, 3457, 3457, 3450, 1478, 3451, 2442, 2444,
2481      3457, 3457, 3457, 1701, 1699, 3457, 1485, 1485, 1485, 3457,
2482      1491, 1491, 1491, 2451, 2451, 2451, 2440, 3457, 1514, 1514,
2483
2484      1514, 2457, 2457, 2457, 1487, 2454, 2454, 2454, 1493, 1177,
2485      3454, 2452, 1695, 2313, 2313, 2313, 1516, 2314, 1694, 2445,
2486      2315, 1177, 1690, 1177, 1190, 1190, 1190, 2317, 2317, 2317,
2487      2459, 2459, 2459, 2460, 2460, 2460, 2446, 1688, 1680, 2447,
2488      1679, 3452, 1192, 2322, 2322, 2322, 2323, 2323, 2323, 1678,
2489      2450, 2448, 2325, 2325, 2325, 2464, 2464, 2464, 1677, 1675,
2490      2453, 2466, 2466, 2466, 2467, 2467, 2467, 2330, 2330, 2330,
2491      2331, 2331, 2331, 2334, 2334, 2334, 2335, 2335, 2335, 2336,
2492      2336, 2336, 1674, 2458, 2337, 2337, 2337, 2471, 2471, 2471,
2493      2474, 2474, 2474, 2343, 2343, 2343, 1177, 2344, 1672, 1670,
2494
2495      2345, 3457, 3457, 3457, 1669, 2472, 1665, 2475, 2347, 2347,
2496      2347, 1664, 2349, 2349, 2349, 1663, 2350, 1662, 3457, 2351,
2497      1259, 1259, 1259, 2363, 2363, 2363, 2348, 2364, 3453, 1660,
2498      2365, 2366, 2366, 2366, 2498, 2498, 2498, 1659, 1261, 2371,
2499      2371, 2371, 2373, 2373, 2373, 1658, 2374, 1657, 1650, 2375,
2500      1290, 1290, 1290, 2379, 2379, 2379, 1649, 2380, 1648, 1647,
2501      2381, 2507, 2507, 2507, 1312, 1312, 1312, 2476, 1292, 2509,
2502      2509, 2509, 2519, 2519, 2519, 1343, 1343, 1343, 1646, 2508,
2503      1645, 2487, 1314, 2399, 2399, 2399, 2510, 2400, 1644, 1643,
2504      2401, 1642, 1636, 1345, 1635, 1634, 2504, 2526, 2526, 2526,
2505
2506      2406, 2406, 2406, 2531, 2531, 2531, 1633, 2532, 1626, 1625,
2507      2533, 2534, 2534, 2534, 2527, 2511, 1623, 2407, 2409, 2409,
2508      2409, 1622, 2410, 1621, 1618, 2411, 2536, 2536, 2536, 2535,
2509      2417, 2417, 2417, 1617, 1607, 2520, 2542, 2542, 2542, 2420,
2510      2420, 2420, 1606, 2421, 2537, 1605, 2422, 1601, 2418, 1418,
2511      1418, 1418, 1600, 2543, 1599, 2545, 2545, 2545, 2425, 2425,
2512      2425, 1598, 2426, 1597, 1596, 2427, 1595, 1420, 3457, 3457,
2513      3457, 1594, 2546, 3457, 3457, 3457, 3457, 3457, 3457, 2556,
2514      2556, 2556, 2560, 2560, 2560, 3457, 2558, 2558, 2558, 1592,
2515      3457, 1591, 1589, 3457, 1458, 1458, 1458, 1588, 1587, 2561,
2516
2517      2544, 2547, 1584, 1582, 2559, 1579, 1466, 1466, 1466, 2443,
2518      2443, 2443, 1460, 1476, 1476, 1476, 1577, 1574, 2565, 2565,
2519      2565, 1565, 2566, 2548, 1468, 2567, 2444, 2554, 2568, 2568,
2520      2568, 1478, 1563, 1556, 2549, 3457, 3457, 3457, 3457, 3457,
2521      3457, 2572, 2572, 2572, 1554, 2569, 2574, 2574, 2574, 1553,
2522      2564, 1552, 3457, 1551, 2562, 3457, 1491, 1491, 1491, 2573,
2523      2451, 2451, 2451, 1514, 1514, 1514, 1550, 2563, 1549, 2454,
2524      2454, 2454, 1548, 1547, 1493, 2457, 2457, 2457, 2452, 1546,
2525      1545, 1516, 2580, 2580, 2580, 1542, 2570, 1177, 1541, 2571,
2526      2459, 2459, 2459, 2460, 2460, 2460, 2584, 2584, 2584, 1540,
2527
2528      2581, 2464, 2464, 2464, 2466, 2466, 2466, 2467, 2467, 2467,
2529      2471, 2471, 2471, 2474, 2474, 2474, 2590, 2590, 2590, 1539,
2530      2591, 1538, 2575, 2592, 1259, 1259, 1259, 2576, 2472, 1537,
2531      2475, 2577, 2498, 2498, 2498, 2619, 2619, 2619, 1290, 1290,
2532      1290, 1536, 1261, 2507, 2507, 2507, 2509, 2509, 2509, 1535,
2533      2625, 2625, 2625, 1533, 2626, 1532, 1292, 2627, 2628, 2628,
2534      2628, 2508, 1531, 2510, 2634, 2634, 2634, 2519, 2519, 2519,
2535      1343, 1343, 1343, 2526, 2526, 2526, 2629, 1530, 2642, 2642,
2536      2642, 2635, 2643, 1529, 2604, 2644, 1528, 1527, 1345, 1525,
2537      2527, 2646, 2646, 2646, 2531, 2531, 2531, 1524, 2532, 1523,
2538
2539      1522, 2533, 1521, 1520, 2622, 2534, 2534, 2534, 2647, 1519,
2540      2536, 2536, 2536, 2655, 2655, 2655, 2542, 2542, 2542, 2661,
2541      2661, 2661, 1177, 2535, 2556, 2556, 2556, 2636, 2537, 1513,
2542      2656, 1505, 1490, 2543, 2658, 2658, 2658, 2662, 2659, 1489,
2543      1484, 2660, 2545, 2545, 2545, 2663, 2663, 2663, 1483, 2664,
2544      1482, 1481, 2665, 2671, 2671, 2671, 2558, 2558, 2558, 2546,
2545      2560, 2560, 2560, 1480, 2675, 2675, 2675, 1454, 2676, 1442,
2546      2672, 2677, 1428, 1427, 2559, 1426, 1422, 2561, 2678, 2678,
2547      2678, 1466, 1466, 1466, 1417, 1476, 1476, 1476, 2565, 2565,
2548      2565, 1413, 2566, 1405, 1400, 2567, 2679, 1399, 1393, 1468,
2549
2550      2568, 2568, 2568, 1478, 2682, 2682, 2682, 1390, 2683, 1369,
2551      1368, 2684, 2685, 2685, 2685, 1367, 1366, 2569, 2687, 2687,
2552      2687, 2572, 2572, 2572, 2574, 2574, 2574, 1365, 1364, 2686,
2553      1363, 1362, 2689, 2689, 2689, 2688, 1514, 1514, 1514, 2573,
2554      2580, 2580, 2580, 2584, 2584, 2584, 1361, 1360, 2680, 2681,
2555      2690, 2697, 2697, 2697, 1516, 2701, 2701, 2701, 2581, 2590,
2556      2590, 2590, 1354, 2591, 1347, 1336, 2592, 1259, 1259, 1259,
2557      1331, 1330, 2702, 2619, 2619, 2619, 1290, 1290, 1290, 2738,
2558      2738, 2738, 2625, 2625, 2625, 1261, 2626, 1324, 1323, 2627,
2559      2628, 2628, 2628, 1322, 1292, 1318, 1317, 2691, 2741, 2741,
2560
2561      2741, 2634, 2634, 2634, 1316, 2743, 2743, 2743, 2629, 2744,
2562      1311, 1310, 2745, 1305, 1304, 2742, 1299, 1295, 2635, 2746,
2563      2746, 2746, 2751, 2751, 2751, 1289, 1288, 2720, 2642, 2642,
2564      2642, 1284, 2643, 1283, 1282, 2644, 1281, 2747, 1280, 2752,
2565      2646, 2646, 2646, 1279, 2755, 2755, 2755, 2737, 2756, 1278,
2566      1277, 2757, 2764, 2764, 2764, 1276, 1275, 2647, 2655, 2655,
2567      2655, 2766, 2766, 2766, 1274, 2767, 1273, 1272, 2768, 2765,
2568      2769, 2769, 2769, 1266, 1258, 2656, 2658, 2658, 2658, 1257,
2569      2659, 1256, 1251, 2660, 2661, 2661, 2661, 2770, 2663, 2663,
2570      2663, 1250, 2664, 1249, 1246, 2665, 2671, 2671, 2671, 2774,
2571
2572      2774, 2774, 2662, 2775, 1240, 1235, 2776, 2777, 2777, 2777,
2573      2779, 2779, 2779, 2672, 2675, 2675, 2675, 1234, 2676, 1230,
2574      1225, 2677, 1224, 1223, 2778, 1222, 1221, 2780, 2678, 2678,
2575      2678, 1466, 1466, 1466, 1476, 1476, 1476, 2682, 2682, 2682,
2576      1220, 2683, 1219, 1217, 2684, 1216, 2679, 1215, 1214, 1468,
2577      1213, 1212, 1478, 2685, 2685, 2685, 2789, 2789, 2789, 1211,
2578      2790, 1210, 1209, 2791, 2687, 2687, 2687, 2792, 2792, 2792,
2579      2686, 2793, 1208, 1205, 2794, 2689, 2689, 2689, 1514, 1514,
2580      1514, 2688, 2800, 2800, 2800, 2697, 2697, 2697, 2701, 2701,
2581      2701, 1204, 1203, 2690, 1202, 2788, 1516, 2787, 1201, 2804,
2582
2583      2804, 2804, 1200, 2805, 1199, 2702, 2806, 1259, 1259, 1259,
2584      2838, 2838, 2838, 2840, 2840, 2840, 1290, 1290, 1290, 2738,
2585      2738, 2738, 2843, 2843, 2843, 1261, 2845, 2845, 2845, 1198,
2586      2841, 2741, 2741, 2741, 1292, 2800, 2800, 2800, 1197, 2844,
2587      2795, 1196, 1189, 2846, 1188, 2848, 2848, 2848, 2742, 2849,
2588      1187, 1186, 2850, 2743, 2743, 2743, 1185, 2744, 2824, 1184,
2589      2745, 2746, 2746, 2746, 2853, 2853, 2853, 2751, 2751, 2751,
2590      1183, 1180, 2847, 2855, 2855, 2855, 1178, 2856, 2842, 2747,
2591      2857, 2854, 1177, 1175, 2752, 2858, 2858, 2858, 2755, 2755,
2592      2755, 1173, 2756, 1170, 1168, 2757, 2764, 2764, 2764, 2867,
2593
2594      2867, 2867, 2859, 2868, 1165, 1161, 2869, 2766, 2766, 2766,
2595      1159, 2767, 1158, 2765, 2768, 2769, 2769, 2769, 2870, 2870,
2596      2870, 1157, 2871, 1155, 1154, 2872, 2874, 2874, 2874, 2774,
2597      2774, 2774, 2770, 2775, 1153, 1152, 2776, 2777, 2777, 2777,
2598      2877, 2877, 2877, 2875, 2878, 1151, 1150, 2879, 2779, 2779,
2599      2779, 2880, 2880, 2880, 2778, 2881, 1148, 1147, 2882, 1466,
2600      1466, 1466, 1476, 1476, 1476, 2780, 2789, 2789, 2789, 1146,
2601      2790, 1145, 1143, 2791, 2792, 2792, 2792, 1468, 2793, 1142,
2602      1478, 2794, 2895, 2895, 2895, 2899, 2899, 2899, 2902, 2902,
2603      2902, 2804, 2804, 2804, 1141, 2805, 1137, 1136, 2806, 1134,
2604
2605      2896, 1133, 2900, 1737, 2913, 2913, 2913, 1259, 1259, 1259,
2606      2889, 2838, 2838, 2838, 2937, 2937, 2937, 2840, 2840, 2840,
2607      1132, 2914, 1290, 1290, 1290, 1261, 2938, 2938, 2938, 2890,
2608      2939, 1131, 1130, 2940, 2841, 2843, 2843, 2843, 1129, 1127,
2609      1292, 2942, 2942, 2942, 1126, 2943, 1125, 1124, 2944, 2845,
2610      2845, 2845, 2844, 2945, 2945, 2945, 2923, 2946, 1122, 1121,
2611      2947, 2848, 2848, 2848, 1120, 2849, 2846, 1117, 2850, 2853,
2612      2853, 2853, 1116, 2941, 2951, 2951, 2951, 1114, 2952, 1111,
2613      1110, 2953, 1106, 2855, 2855, 2855, 2854, 2856, 1105, 1103,
2614      2857, 2858, 2858, 2858, 2954, 2954, 2954, 1102, 2955, 1101,
2615
2616      1098, 2956, 2867, 2867, 2867, 1097, 2868, 1096, 2859, 2869,
2617      2870, 2870, 2870, 1095, 2871, 1093, 1092, 2872, 2874, 2874,
2618      2874, 2965, 2965, 2965, 1091, 2966, 1090, 1089, 2967, 2877,
2619      2877, 2877, 1084, 2878, 1082, 2875, 2879, 2880, 2880, 2880,
2620      1081, 2881, 1080, 1079, 2882, 2983, 2983, 2983, 1476, 1476,
2621      1476, 2895, 2895, 2895, 2991, 2991, 2991, 2899, 2899, 2899,
2622      2993, 2993, 2993, 2984, 2994, 1078, 1478, 2995, 1077, 2896,
2623      1076, 2992, 1737, 1075, 2900, 1737, 1074, 1073, 1737, 2996,
2624      2996, 2996, 2902, 2902, 2902, 2997, 2997, 2997, 2998, 2998,
2625      2998, 2913, 2913, 2913, 3007, 3007, 3007, 1072, 3008, 1069,
2626
2627      1066, 3009, 1259, 1259, 1259, 3025, 3025, 3025, 2914, 2937,
2628      2937, 2937, 1065, 1064, 2985, 2938, 2938, 2938, 1058, 2939,
2629      1261, 1057, 2940, 3026, 3026, 3026, 2942, 2942, 2942, 1055,
2630      2943, 1052, 1050, 2944, 1049, 2945, 2945, 2945, 1048, 2946,
2631      1043, 3027, 2947, 2951, 2951, 2951, 1042, 2952, 1040, 1039,
2632      2953, 2954, 2954, 2954, 1038, 2955, 1036, 1035, 2956, 3031,
2633      3031, 3031, 3039, 3039, 3039, 2965, 2965, 2965, 3016, 2966,
2634      1034, 1032, 2967, 3041, 3041, 3041, 3032, 1029, 1027, 3040,
2635      2983, 2983, 2983, 1476, 1476, 1476, 2991, 2991, 2991, 1025,
2636      3042, 1024, 3061, 3061, 3061, 1021, 3062, 1016, 2984, 3063,
2637
2638      1015, 1478, 1012, 2992, 1737, 2993, 2993, 2993, 1011, 2994,
2639      1737, 1010, 2995, 2996, 2996, 2996, 2997, 2997, 2997, 2998,
2640      2998, 2998, 1007, 1737, 3007, 3007, 3007, 1006, 3008, 1004,
2641      1001, 3009,  999,  998, 3055, 1735, 1735, 1735, 1735, 1735,
2642      1735, 1735, 1735, 1735,  997,  996, 1735, 3080, 3080, 3080,
2643       994, 1735, 1735, 1735, 1737, 1735, 3025, 3025, 3025, 3026,
2644      3026, 3026, 3031, 3031, 3031, 3081, 3091, 3091, 3091,  993,
2645      3092,  992,  991, 3093, 3094, 3094, 3094, 3027,  990, 3032,
2646      1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735,
2647      1735, 3095,  989, 1735, 3039, 3039, 3039,  986, 1735, 1735,
2648
2649      1735, 1737, 1735, 3099, 3099, 3099,  985, 3100,  984,  981,
2650      3101, 3040, 3041, 3041, 3041, 3102, 3102, 3102,  978, 3103,
2651       977,  975, 3104, 3117, 3117, 3117,  974, 1735, 1735, 3042,
2652      3061, 3061, 3061,  971, 3062,  968,  965, 3063,  964,  956,
2653       955, 3118,  954, 3080, 3080, 3080,  953,  947, 1737, 1735,
2654      1735, 1735, 1735, 1735, 3129, 1735, 1735, 1735,  946,  945,
2655      1735, 3081, 3094, 3094, 3094, 1735, 1735, 1735, 1737, 1735,
2656      3091, 3091, 3091,  943, 3092,  942,  941, 3093,  940, 3095,
2657      3153, 3153, 3153,  939, 3154,  938,  933, 3155, 3117, 3117,
2658      3117, 3171, 3171, 3171, 1735, 1735, 1735, 1735, 1735, 1735,
2659
2660      1735, 1735, 1735, 1735, 3129,  930, 3118, 1735,  932, 1737,
2661      1738,  927, 1735, 1735, 1735, 1737, 1735, 3099, 3099, 3099,
2662       926, 3100,  924,  922, 3101, 3102, 3102, 3102,  921, 3103,
2663       919,  917, 3104, 3182, 3182, 3182, 3184, 3184, 3184,  915,
2664       913, 1735, 1735, 3186, 3186, 3186,  911, 3153, 3153, 3153,
2665      3183, 3154,  908, 3185, 3155, 3194, 3194, 3194,  907,  906,
2666      3187, 3204, 3204, 3204, 3171, 3171, 3171, 3182, 3182, 3182,
2667       905,  904, 3195, 3214, 3214, 3214,  902, 3215,  900, 1177,
2668      3216,  899, 1737,  898, 3183, 3184, 3184, 3184, 3217, 3217,
2669      3217,  896, 3218,  894,  893, 3219, 3186, 3186, 3186, 3220,
2670
2671      3220, 3220, 3185, 3221,  891,  889, 3222, 3194, 3194, 3194,
2672      3229, 3229, 3229, 3187, 3230, 1941,  888, 3231, 3204, 3204,
2673      3204, 3214, 3214, 3214, 3195, 3215,  886,  882, 3216,  881,
2674      3217, 3217, 3217,  879, 3218,  874, 1177, 3219, 3220, 3220,
2675      3220,  872, 3221,  868,  867, 3222, 3229, 3229, 3229,  866,
2676      3230,  864,  862, 3231,  861, 3240, 3353, 3353, 3353, 3353,
2677      3353, 3353,  860, 3362,  858,  856, 3363, 3455, 3455, 3455,
2678      3455, 3455, 3455,  855, 1177,  853,  851, 1177,  850,  849,
2679       848,  847,  846,  845,  843, 3456,  841,  840, 3456,  264,
2680       264,  264,  264,  264,  264,  264,  264,  264,  265,  265,
2681
2682       265,  265,  265,  265,  265,  265,  265,  270,  270,  270,
2683       270,  270,  270,  270,  270,  270,  273,  273,  273,  273,
2684       273,  273,  273,  273,  273,  276,  276,  276,  276,  276,
2685       276,  276,  276,  276,  279,  279,  279,  279,  279,  279,
2686       279,  279,  279,  286,  286,  286,  286,  286,  286,  286,
2687       286,  286,  294,  294,  294,  294,  294,  294,  294,  294,
2688       294,  298,  298,  298,  298,  298,  298,  298,  298,  298,
2689       310,  310,  310,  310,  310,  310,  310,  310,  310,  314,
2690       314,  314,  314,  314,  314,  314,  314,  314,  321,  321,
2691       321,  321,  321,  321,  321,  321,  321,  332,  332,  332,
2692
2693       332,  332,  332,  332,  332,  332,  340,  340,  340,  340,
2694       340,  340,  340,  340,  340,  346,  346,  346,  346,  346,
2695       346,  346,  346,  346,  352,  352,  352,  352,  352,  352,
2696       352,  352,  352,  358,  358,  358,  358,  358,  358,  358,
2697       358,  358,  363,  363,  363,  363,  363,  363,  363,  363,
2698       363,  382,  382,  382,  382,  382,  382,  382,  382,  382,
2699       389,  389,  389,  389,  389,  389,  389,  389,  389,  397,
2700       397,  397,  397,  397,  397,  397,  397,  397,  403,  403,
2701       403,  403,  403,  403,  403,  403,  403,  410,  410,  410,
2702       410,  410,  410,  410,  410,  410,  415,  415,  415,  415,
2703
2704       415,  415,  415,  415,  415,  421,  421,  421,  421,  421,
2705       421,  421,  421,  421,  426,  426,  426,  426,  426,  426,
2706       426,  426,  426,  432,  432,  432,  432,  432,  432,  432,
2707       432,  432,  440,  440,  440,  440,  440,  440,  440,  440,
2708       440,  448,  448,  448,  448,  448,  448,  448,  448,  448,
2709       452,  452,  452,  452,  452,  452,  452,  452,  452,  458,
2710       458,  458,  458,  458,  458,  458,  458,  458,  464,  464,
2711       464,  464,  464,  464,  464,  464,  464,  482,  482,  482,
2712       482,  482,  482,  482,  482,  482,  489,  489,  489,  489,
2713       489,  489,  489,  489,  489,  498,  498,  498,  498,  498,
2714
2715       498,  498,  498,  498,  504,  504,  504,  504,  504,  504,
2716       504,  504,  504,  514,  514,  514,  514,  514,  514,  514,
2717       514,  514,  520,  520,  520,  520,  520,  520,  520,  520,
2718       520,  525,  525,  525,  525,  525,  525,  525,  525,  525,
2719       531,  531,  531,  531,  531,  531,  531,  531,  531,  537,
2720       537,  537,  537,  537,  537,  537,  537,  537,  543,  543,
2721       543,  543,  543,  543,  543,  543,  543,  550,  550,  550,
2722       550,  550,  550,  550,  550,  550,  557,  557,  557,  557,
2723       557,  557,  557,  557,  557,  562,  562,  562,  562,  562,
2724       562,  562,  562,  562,  570,  570,  570,  570,  570,  570,
2725
2726       570,  570,  570,  576,  576,  576,  576,  576,  576,  576,
2727       576,  576,  583,  583,  583,  583,  583,  583,  583,  583,
2728       583,  588,  588,  588,  588,  588,  588,  588,  588,  588,
2729       594,  594,  594,  594,  594,  594,  594,  594,  594,  599,
2730       599,  599,  599,  599,  599,  599,  599,  599,  606,  606,
2731       606,  606,  606,  606,  606,  606,  606,  612,  612,  612,
2732       612,  612,  612,  612,  612,  612,  619,  619,  619,  619,
2733       619,  619,  619,  619,  619,  627,  627,  627,  627,  627,
2734       627,  627,  627,  627,  635,  635,  635,  635,  635,  635,
2735       635,  635,  635,  639,  639,  639,  639,  639,  639,  639,
2736
2737       639,  639,  645,  645,  645,  645,  645,  645,  645,  645,
2738       645,  649,  649,  649,  649,  649,  649,  649,  649,  649,
2739       656,  656,  656,  656,  656,  656,  656,  656,  656,  661,
2740       661,  661,  661,  661,  661,  661,  661,  661,  667,  667,
2741       667,  667,  667,  667,  667,  667,  667,  672,  672,  672,
2742       672,  672,  672,  672,  672,  672,  692,  692,  692,  837,
2743       836,  835,  692,  719,  719,  719,  833,  831,  820,  719,
2744       723,  723,  723,  819,  816,  814,  723,  731,  731,  731,
2745       812,  811,  810,  731,  742,  742,  742,  808,  806,  804,
2746       742,  748,  748,  748,  803,  801,  798,  748,  771,  771,
2747
2748       771,  797,  796,  794,  771,  779,  779,  779,  792,  791,
2749       789,  779,  785,  785,  785,  787,  786,  784,  785,  790,
2750       790,  790,  782,  781,  780,  790,  795,  795,  795,  778,
2751       775,  774,  795,  805,  805,  805,  773,  772,  770,  805,
2752       809,  809,  809, 3457,  717,  750,  809,  815,  815,  815,
2753       749,  747,  745,  815,  834,  834,  834,  744,  743,  741,
2754       834,  844,  844,  844,  737,  733,  732,  844,  854,  854,
2755       854,  730,  729,  726,  854,  859,  859,  859,  725,  724,
2756       722,  859,  865,  865,  865,  721,  720,  718,  865,  873,
2757       873,  873,  713, 3457,  693,  873,  880,  880,  880,  691,
2758
2759       689,  683,  880,  887,  887,  887,  682,  683,  682,  887,
2760       892,  892,  892,  681,  680, 3457,  892,  897,  897,  897,
2761      3457, 3457, 3457,  897,  903,  903,  903, 3457, 3457, 3457,
2762       903,  912,  912,  912, 3457, 3457, 3457,  912,  916,  916,
2763       916, 3457, 3457, 3457,  916,  920,  920,  920, 3457, 3457,
2764      3457,  920,  925,  925,  925, 3457, 3457, 3457,  925,  929,
2765       929,  929,  929,  929,  929,  929, 3457,  929,  692,  692,
2766       692, 3457, 3457, 3457,  692,  944, 3457, 3457, 3457,  944,
2767       719,  719,  719, 3457, 3457, 3457,  719,  976, 3457, 3457,
2768      3457,  976,  723,  723,  723, 3457, 3457, 3457,  723,  983,
2769
2770      3457, 3457, 3457,  983,  731,  731,  731, 3457, 3457, 3457,
2771       731,  995, 3457, 3457, 3457,  995,  742,  742,  742, 3457,
2772      3457, 3457,  742, 1000, 3457, 3457, 3457, 1000,  748,  748,
2773       748, 3457, 3457, 3457,  748, 1005, 3457, 3457, 3457, 1005,
2774       771,  771,  771, 3457, 3457, 3457,  771, 1026, 3457, 3457,
2775      3457, 1026,  779,  779,  779, 3457, 3457, 3457,  779, 1033,
2776      3457, 3457, 3457, 1033,  785,  785,  785, 3457, 3457, 3457,
2777       785, 1037, 3457, 3457, 3457, 1037,  790,  790,  790, 3457,
2778      3457, 3457,  790, 1041, 3457, 3457, 3457, 1041,  795,  795,
2779       795, 3457, 3457, 3457,  795, 1051, 3457, 3457, 3457, 1051,
2780
2781       805,  805,  805, 3457, 3457, 3457,  805, 1056, 3457, 3457,
2782      3457, 1056,  809,  809,  809, 3457, 3457, 3457,  809, 1063,
2783      3457, 3457, 3457, 1063,  815,  815,  815, 3457, 3457, 3457,
2784       815, 1083, 3457, 3457, 3457, 1083,  834,  834,  834, 3457,
2785      3457, 3457,  834, 1094, 3457, 3457, 3457, 1094,  844,  844,
2786       844, 3457, 3457, 3457,  844, 1104, 3457, 3457, 3457, 1104,
2787       854,  854,  854, 3457, 3457, 3457,  854, 1109, 3457, 3457,
2788      3457, 1109,  859,  859,  859, 3457, 3457, 3457,  859, 1115,
2789      3457, 3457, 3457, 1115,  865,  865,  865, 3457, 3457, 3457,
2790       865, 1123, 3457, 3457, 3457, 1123,  873,  873,  873, 3457,
2791
2792      3457, 3457,  873, 1128, 3457, 3457, 3457, 1128,  880,  880,
2793       880, 3457, 3457, 3457,  880, 1135, 3457, 3457, 3457, 1135,
2794       887,  887,  887, 3457, 3457, 3457,  887, 1140, 3457, 3457,
2795      3457, 1140,  892,  892,  892, 3457, 3457, 3457,  892, 1144,
2796      3457, 3457, 3457, 1144,  897,  897,  897, 3457, 3457, 3457,
2797       897, 1149, 3457, 3457, 3457, 1149,  903,  903,  903, 3457,
2798      3457, 3457,  903, 1156, 3457, 3457, 3457, 1156,  912,  912,
2799       912, 3457, 3457, 3457,  912, 1160, 3457, 3457, 3457, 1160,
2800       916,  916,  916, 3457, 3457, 3457,  916, 1164, 3457, 3457,
2801      3457, 1164,  920,  920,  920, 3457, 3457, 3457,  920, 1169,
2802
2803      3457, 3457, 3457, 1169,  925,  925,  925, 3457, 3457, 3457,
2804       925, 1174, 3457, 3457, 3457, 1174, 1176, 1176, 1176, 1176,
2805      1176, 1176, 1176, 1176, 1176, 1182, 3457, 3457, 3457, 3457,
2806      1182,  692,  692,  692, 3457, 3457, 3457,  692, 1191, 1191,
2807      1191, 1191, 3457, 3457, 1191, 1191,  719,  719,  719, 3457,
2808      3457, 3457,  719, 1227, 1227, 1227, 1227, 3457, 3457, 1227,
2809      1227,  723,  723,  723, 3457, 3457, 3457,  723, 1237, 1237,
2810      1237, 1237, 3457, 3457, 1237, 1237,  731,  731,  731, 3457,
2811      3457, 3457,  731, 1253, 1253, 1253, 1253, 3457, 3457, 1253,
2812      1253,  742,  742,  742, 3457, 3457, 3457,  742, 1260, 1260,
2813
2814      1260, 1260, 3457, 3457, 1260, 1260,  748,  748,  748, 3457,
2815      3457, 3457,  748, 1268, 1268, 1268, 1268, 3457, 3457, 1268,
2816      1268,  771,  771,  771, 3457, 3457, 3457,  771, 1291, 1291,
2817      1291, 1291, 3457, 3457, 1291, 1291,  779,  779,  779, 3457,
2818      3457, 3457,  779, 1301, 1301, 1301, 1301, 3457, 3457, 1301,
2819      1301,  785,  785,  785, 3457, 3457, 3457,  785, 1307, 1307,
2820      1307, 1307, 3457, 3457, 1307, 1307,  790,  790,  790, 3457,
2821      3457, 3457,  790, 1313, 1313, 1313, 1313, 3457, 3457, 1313,
2822      1313,  795,  795,  795, 3457, 3457, 3457,  795, 1326, 1326,
2823      1326, 1326, 3457, 3457, 1326, 1326,  805,  805,  805, 3457,
2824
2825      3457, 3457,  805, 1333, 1333, 1333, 1333, 3457, 3457, 1333,
2826      1333,  809,  809,  809, 3457, 3457, 3457,  809, 1344, 1344,
2827      1344, 1344, 3457, 3457, 1344, 1344,  815,  815,  815, 3457,
2828      3457, 3457,  815, 1371, 1371, 1371, 1371, 3457, 3457, 1371,
2829      1371,  834,  834,  834,  834, 3457,  834, 3457,  834, 1387,
2830      1387, 1387, 1387, 3457, 3457, 1387, 1387,  844,  844,  844,
2831      3457, 3457, 3457,  844, 1402, 1402, 1402, 1402, 3457, 3457,
2832      1402, 1402,  854,  854,  854, 3457, 3457, 3457,  854, 1410,
2833      1410, 1410, 1410, 3457, 3457, 1410, 1410,  859,  859,  859,
2834      3457, 3457, 3457,  859, 1419, 1419, 1419, 1419, 3457, 3457,
2835
2836      1419, 1419,  865,  865,  865, 3457, 3457, 3457,  865, 1430,
2837      1430, 1430, 1430, 3457, 3457, 1430, 1430,  873,  873,  873,
2838       873, 3457,  873, 3457,  873, 1439, 1439, 1439, 1439, 3457,
2839      3457, 1439, 1439,  880,  880,  880,  880, 3457,  880, 3457,
2840       880, 1451, 1451, 1451, 1451, 3457, 3457, 1451, 1451,  887,
2841       887,  887, 3457, 3457, 3457,  887, 1459, 1459, 1459, 1459,
2842      3457, 3457, 1459, 1459,  892,  892,  892,  892, 3457,  892,
2843      3457,  892, 1467, 1467, 1467, 1467, 3457, 3457, 1467, 1467,
2844       897,  897,  897,  897, 3457,  897, 3457,  897, 1477, 1477,
2845      1477, 1477, 3457, 3457, 1477, 1477,  903,  903,  903, 3457,
2846
2847      3457, 3457,  903, 1486, 1486, 1486, 1486, 3457, 3457, 1486,
2848      1486,  912,  912,  912, 3457, 3457, 3457,  912, 1492, 1492,
2849      1492, 1492, 3457, 3457, 1492, 1492, 1499, 1499, 1499, 1499,
2850      3457, 3457, 1499, 1499,  920,  920,  920, 3457, 3457, 3457,
2851       920, 1507, 1507, 1507, 1507, 3457, 3457, 1507, 1507,  925,
2852       925,  925, 3457, 3457, 3457,  925, 1515, 1515, 1515, 1515,
2853      3457, 3457, 1515, 1515, 1176, 1176, 1176, 1176, 1176, 1176,
2854      1176, 1176, 1176, 1182, 3457, 1182, 3457, 3457, 1182,  692,
2855       692,  692, 3457, 3457, 3457,  692, 1191, 1191, 1191, 1191,
2856      3457, 3457, 1191, 1191,  719,  719,  719,  719, 3457,  719,
2857
2858      3457,  719, 1227, 1227, 1227, 1227, 3457, 3457, 1227, 1227,
2859       723,  723,  723,  723, 3457,  723, 3457,  723, 1237, 1237,
2860      1237, 1237, 3457, 3457, 1237, 1237,  731,  731,  731, 3457,
2861      3457, 3457,  731, 1253, 1253, 1253, 1253, 3457, 3457, 1253,
2862      1253,  742,  742,  742, 3457, 3457, 3457,  742, 1260, 1260,
2863      1260, 1260, 3457, 3457, 1260, 1260,  748,  748,  748, 3457,
2864      3457, 3457,  748, 1268, 1268, 1268, 1268, 3457, 3457, 1268,
2865      1268,  771,  771,  771, 3457, 3457, 3457,  771, 1291, 1291,
2866      1291, 1291, 3457, 3457, 1291, 1291,  779,  779,  779, 3457,
2867      3457, 3457,  779, 1301, 1301, 1301, 1301, 3457, 3457, 1301,
2868
2869      1301,  785,  785,  785,  785, 3457,  785, 3457,  785, 1307,
2870      1307, 1307, 1307, 3457, 3457, 1307, 1307,  790,  790,  790,
2871       790, 3457,  790, 3457,  790, 1313, 1313, 1313, 1313, 3457,
2872      3457, 1313, 1313,  795,  795,  795, 3457, 3457, 3457,  795,
2873      1326, 1326, 1326, 1326, 3457, 3457, 1326, 1326,  805,  805,
2874       805,  805, 3457,  805, 3457,  805, 1333, 1333, 1333, 1333,
2875      3457, 3457, 1333, 1333,  809,  809,  809,  809, 3457,  809,
2876      3457,  809, 1344, 1344, 1344, 1344, 3457, 3457, 1344, 1344,
2877       815,  815,  815, 3457, 3457, 3457,  815, 1371, 1371, 1371,
2878      1371, 3457, 3457, 1371, 1371,  834,  834,  834, 3457, 3457,
2879
2880      3457,  834, 1387, 1387, 1387, 1387, 3457, 3457, 1387, 1387,
2881       844,  844,  844, 3457, 3457, 3457,  844, 1402, 1402, 1402,
2882      1402, 3457, 3457, 1402, 1402,  854,  854,  854, 3457, 3457,
2883      3457,  854, 1410, 1410, 1410, 1410, 3457, 3457, 1410, 1410,
2884       859,  859,  859, 3457, 3457, 3457,  859, 1419, 1419, 1419,
2885      1419, 3457, 3457, 1419, 1419,  865,  865,  865, 3457, 3457,
2886      3457,  865, 1430, 1430, 1430, 1430, 3457, 3457, 1430, 1430,
2887       873,  873,  873, 3457, 3457, 3457,  873, 1439, 1439, 1439,
2888      1439, 3457, 3457, 1439, 1439,  880,  880,  880, 3457, 3457,
2889      3457,  880, 1451, 1451, 1451, 1451, 3457, 3457, 1451, 1451,
2890
2891       887,  887,  887, 3457, 3457, 3457,  887, 1459, 1459, 1459,
2892      1459, 3457, 3457, 1459, 1459, 1467, 1467, 1467, 1467, 3457,
2893      3457, 1467, 1467,  897,  897,  897, 3457, 3457, 3457,  897,
2894      1477, 1477, 1477, 1477, 3457, 3457, 1477, 1477,  903,  903,
2895       903, 3457, 3457, 3457,  903, 1486, 1486, 1486, 1486, 3457,
2896      3457, 1486, 1486,  912,  912,  912, 3457, 3457, 3457,  912,
2897      1492, 1492, 1492, 1492, 3457, 3457, 1492, 1492, 1499, 1499,
2898      1499, 1499, 3457, 3457, 1499, 1499,  920,  920,  920, 3457,
2899      3457, 3457,  920, 1507, 1507, 1507, 1507, 3457, 3457, 1507,
2900      1507,  925,  925,  925, 3457, 3457, 3457,  925, 1515, 1515,
2901
2902      1515, 1515, 3457, 3457, 1515, 1515, 1176, 1176, 1176, 1176,
2903      1176, 1176, 1176, 1176, 1176, 1735, 1735, 1735, 1735, 1735,
2904      1735, 1735, 1735, 1735,  692,  692,  692, 3457, 3457, 3457,
2905       692, 1191, 1191, 1191, 1191, 3457, 3457, 1191, 1191, 1227,
2906      1227, 1227, 1227, 3457, 3457, 1227, 1227,  723,  723,  723,
2907      3457, 3457, 3457,  723, 1237, 1237, 1237, 1237, 3457, 3457,
2908      1237, 1237,  731,  731,  731, 3457, 3457, 3457,  731, 1253,
2909      1253, 1253, 1253, 3457, 3457, 1253, 1253,  742,  742,  742,
2910      3457, 3457, 3457,  742, 1260, 1260, 1260, 1260, 3457, 3457,
2911      1260, 1260,  748,  748,  748, 3457, 3457, 3457,  748,  771,
2912
2913       771,  771, 3457, 3457, 3457,  771, 1291, 1291, 1291, 1291,
2914      3457, 3457, 1291, 1291,  779,  779,  779, 3457, 3457, 3457,
2915       779, 1301, 1301, 1301, 1301, 3457, 3457, 1301, 1301,  785,
2916       785,  785, 3457, 3457, 3457,  785, 1307, 1307, 1307, 1307,
2917      3457, 3457, 1307, 1307,  790,  790,  790, 3457, 3457, 3457,
2918       790, 1313, 1313, 1313, 1313, 3457, 3457, 1313, 1313,  795,
2919       795,  795, 3457, 3457, 3457,  795, 1326, 1326, 1326, 1326,
2920      3457, 3457, 1326, 1326, 1333, 1333, 1333, 1333, 3457, 3457,
2921      1333, 1333, 1344, 1344, 1344, 1344, 3457, 3457, 1344, 1344,
2922       815,  815,  815, 3457, 3457, 3457,  815, 1371, 1371, 1371,
2923
2924      1371, 3457, 3457, 1371, 1371,  834,  834,  834,  834, 3457,
2925       834, 3457,  834, 1387, 1387, 1387, 1387, 3457, 3457, 1387,
2926      1387,  844,  844,  844, 3457, 3457, 3457,  844, 1402, 1402,
2927      1402, 1402, 3457, 3457, 1402, 1402,  854,  854,  854, 3457,
2928      3457, 3457,  854, 1410, 1410, 1410, 1410, 3457, 3457, 1410,
2929      1410,  859,  859,  859, 3457, 3457, 3457,  859, 1419, 1419,
2930      1419, 1419, 3457, 3457, 1419, 1419,  865,  865,  865, 3457,
2931      3457, 3457,  865, 1430, 1430, 1430, 1430, 3457, 3457, 1430,
2932      1430,  873,  873,  873, 3457, 3457, 3457,  873, 1439, 1439,
2933      1439, 1439, 3457, 3457, 1439, 1439,  880,  880,  880, 3457,
2934
2935      3457, 3457,  880, 1451, 1451, 1451, 1451, 3457, 3457, 1451,
2936      1451,  887,  887,  887, 3457, 3457, 3457,  887, 1459, 1459,
2937      1459, 1459, 3457, 3457, 1459, 1459, 1467, 1467, 1467, 1467,
2938      3457, 3457, 1467, 1467,  897,  897,  897, 3457, 3457, 3457,
2939       897, 1477, 1477, 1477, 1477, 3457, 3457, 1477, 1477,  903,
2940       903,  903, 3457, 3457, 3457,  903, 1486, 1486, 1486, 1486,
2941      3457, 3457, 1486, 1486,  912,  912,  912,  912, 3457,  912,
2942      3457,  912, 1492, 1492, 1492, 1492, 3457, 3457, 1492, 1492,
2943      1499, 1499, 1499, 1499, 3457, 3457, 1499, 1499,  920,  920,
2944       920,  920, 3457,  920, 3457,  920, 1507, 1507, 1507, 1507,
2945
2946      3457, 3457, 1507, 1507,  925,  925,  925,  925, 3457,  925,
2947      3457,  925, 1515, 1515, 1515, 1515, 3457, 3457, 1515, 1515,
2948      1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1735,
2949      1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735,  692,  692,
2950       692, 3457, 3457, 3457,  692, 1191, 1191, 1191, 1191, 3457,
2951      3457, 1191, 1191, 1227, 1227, 1227, 1227, 3457, 3457, 1227,
2952      1227,  723,  723,  723, 3457, 3457, 3457,  723, 1237, 1237,
2953      1237, 1237, 3457, 3457, 1237, 1237,  731,  731,  731, 3457,
2954      3457, 3457,  731, 1253, 1253, 1253, 1253, 3457, 3457, 1253,
2955      1253,  742,  742,  742, 3457, 3457, 3457,  742, 1260, 1260,
2956
2957      1260, 1260, 3457, 3457, 1260, 1260,  748,  748,  748, 3457,
2958      3457, 3457,  748,  771,  771,  771, 3457, 3457, 3457,  771,
2959      1291, 1291, 1291, 1291, 3457, 3457, 1291, 1291,  779,  779,
2960       779, 3457, 3457, 3457,  779, 1301, 1301, 1301, 1301, 3457,
2961      3457, 1301, 1301,  785,  785,  785, 3457, 3457, 3457,  785,
2962      1307, 1307, 1307, 1307, 3457, 3457, 1307, 1307,  790,  790,
2963       790,  790, 3457,  790, 3457,  790, 1313, 1313, 1313, 1313,
2964      3457, 3457, 1313, 1313,  795,  795,  795, 3457, 3457, 3457,
2965       795, 1326, 1326, 1326, 1326, 3457, 3457, 1326, 1326, 1344,
2966      1344, 1344, 1344, 3457, 3457, 1344, 1344,  815,  815,  815,
2967
2968      3457, 3457, 3457,  815, 1371, 1371, 1371, 1371, 3457, 3457,
2969      1371, 1371,  834,  834,  834,  834, 3457,  834, 3457,  834,
2970      1387, 1387, 1387, 1387, 3457, 3457, 1387, 1387,  844,  844,
2971       844, 3457, 3457, 3457,  844, 1402, 1402, 1402, 1402, 3457,
2972      3457, 1402, 1402,  854,  854,  854, 3457, 3457, 3457,  854,
2973      1410, 1410, 1410, 1410, 3457, 3457, 1410, 1410,  859,  859,
2974       859, 3457, 3457, 3457,  859, 1419, 1419, 1419, 1419, 3457,
2975      3457, 1419, 1419,  865,  865,  865, 3457, 3457, 3457,  865,
2976      1430, 1430, 1430, 1430, 3457, 3457, 1430, 1430,  873,  873,
2977       873, 3457, 3457, 3457,  873, 1439, 1439, 1439, 1439, 3457,
2978
2979      3457, 1439, 1439,  880,  880,  880,  880, 3457,  880, 3457,
2980       880, 1451, 1451, 1451, 1451, 3457, 3457, 1451, 1451,  887,
2981       887,  887, 3457, 3457, 3457,  887, 1459, 1459, 1459, 1459,
2982      3457, 3457, 1459, 1459, 1467, 1467, 1467, 1467, 3457, 3457,
2983      1467, 1467,  897,  897,  897,  897, 3457,  897, 3457,  897,
2984      1477, 1477, 1477, 1477, 3457, 3457, 1477, 1477,  903,  903,
2985       903, 3457, 3457, 3457,  903, 1486, 1486, 1486, 1486, 3457,
2986      3457, 1486, 1486, 1492, 1492, 1492, 1492, 3457, 3457, 1492,
2987      1492, 1499, 1499, 1499, 1499, 3457, 3457, 1499, 1499, 1507,
2988      1507, 1507, 1507, 3457, 3457, 1507, 1507, 1515, 1515, 1515,
2989
2990      1515, 3457, 3457, 1515, 1515, 1176, 1176, 1176, 1176, 1176,
2991      1176, 1176, 1176, 1176, 1735, 1735, 1735, 1735, 1735, 1735,
2992      1735, 1735, 1735,  692,  692,  692,  692, 3457,  692, 3457,
2993       692, 1191, 1191, 1191, 1191, 3457, 3457, 1191, 1191, 1227,
2994      1227, 1227, 1227, 3457, 3457, 1227, 1227,  723,  723,  723,
2995      3457, 3457, 3457,  723, 1237, 1237, 1237, 1237, 3457, 3457,
2996      1237, 1237,  731,  731,  731, 3457, 3457, 3457,  731, 1253,
2997      1253, 1253, 1253, 3457, 3457, 1253, 1253,  742,  742,  742,
2998       742, 3457,  742, 3457,  742, 1260, 1260, 1260, 1260, 3457,
2999      3457, 1260, 1260,  748,  748,  748,  748, 3457,  748, 3457,
3000
3001       748,  771,  771,  771,  771, 3457,  771, 3457,  771, 1291,
3002      1291, 1291, 1291, 3457, 3457, 1291, 1291,  779,  779,  779,
3003       779, 3457,  779, 3457,  779, 1301, 1301, 1301, 1301, 3457,
3004      3457, 1301, 1301,  785,  785,  785, 3457, 3457, 3457,  785,
3005      1307, 1307, 1307, 1307, 3457, 3457, 1307, 1307, 1313, 1313,
3006      1313, 1313, 3457, 3457, 1313, 1313,  795,  795,  795, 3457,
3007      3457, 3457,  795, 1344, 1344, 1344, 1344, 3457, 3457, 1344,
3008      1344,  815,  815,  815, 3457, 3457, 3457,  815, 1371, 1371,
3009      1371, 1371, 3457, 3457, 1371, 1371,  834,  834,  834,  834,
3010      3457,  834, 3457,  834, 1387, 1387, 1387, 1387, 3457, 3457,
3011
3012      1387, 1387,  844,  844,  844, 3457, 3457, 3457,  844,  854,
3013       854,  854, 3457, 3457, 3457,  854, 1410, 1410, 1410, 1410,
3014      3457, 3457, 1410, 1410,  859,  859,  859, 3457, 3457, 3457,
3015       859, 1419, 1419, 1419, 1419, 3457, 3457, 1419, 1419,  865,
3016       865,  865, 3457, 3457, 3457,  865,  873,  873,  873, 3457,
3017      3457, 3457,  873, 1439, 1439, 1439, 1439, 3457, 3457, 1439,
3018      1439,  880,  880,  880, 3457, 3457, 3457,  880, 1451, 1451,
3019      1451, 1451, 3457, 3457, 1451, 1451,  887,  887,  887, 3457,
3020      3457, 3457,  887, 1459, 1459, 1459, 1459, 3457, 3457, 1459,
3021      1459, 1467, 1467, 1467, 1467, 3457, 3457, 1467, 1467, 1477,
3022
3023      1477, 1477, 1477, 3457, 3457, 1477, 1477,  903,  903,  903,
3024      3457, 3457, 3457,  903, 1486, 1486, 1486, 1486, 3457, 3457,
3025      1486, 1486, 1492, 1492, 1492, 1492, 3457, 3457, 1492, 1492,
3026      1499, 1499, 1499, 1499, 3457, 3457, 1499, 1499, 1515, 1515,
3027      1515, 1515, 3457, 3457, 1515, 1515, 1176, 1176, 1176, 1176,
3028      1176, 1176, 1176, 1176, 1176, 1735, 1735, 1735, 1735, 1735,
3029      1735, 1735, 1735, 1735, 1191, 1191, 1191, 1191, 3457, 3457,
3030      1191, 1191, 1227, 1227, 1227, 1227, 3457, 3457, 1227, 1227,
3031       723,  723,  723, 3457, 3457, 3457,  723,  731,  731,  731,
3032      3457, 3457, 3457,  731, 1253, 1253, 1253, 1253, 3457, 3457,
3033
3034      1253, 1253, 1260, 1260, 1260, 1260, 3457, 3457, 1260, 1260,
3035       771,  771,  771, 3457, 3457, 3457,  771, 1291, 1291, 1291,
3036      1291, 3457, 3457, 1291, 1291,  779,  779,  779, 3457, 3457,
3037      3457,  779, 1301, 1301, 1301, 1301, 3457, 3457, 1301, 1301,
3038       785,  785,  785, 3457, 3457, 3457,  785, 1313, 1313, 1313,
3039      1313, 3457, 3457, 1313, 1313,  795,  795,  795, 3457, 3457,
3040      3457,  795, 1344, 1344, 1344, 1344, 3457, 3457, 1344, 1344,
3041       815,  815,  815, 3457, 3457, 3457,  815, 1371, 1371, 1371,
3042      1371, 3457, 3457, 1371, 1371, 1387, 1387, 1387, 1387, 3457,
3043      3457, 1387, 1387,  844,  844,  844, 3457, 3457, 3457,  844,
3044
3045       854,  854,  854, 3457, 3457, 3457,  854, 1410, 1410, 1410,
3046      1410, 3457, 3457, 1410, 1410,  859,  859,  859, 3457, 3457,
3047      3457,  859, 1419, 1419, 1419, 1419, 3457, 3457, 1419, 1419,
3048       865,  865,  865, 3457, 3457, 3457,  865,  873,  873,  873,
3049      3457, 3457, 3457,  873,  880,  880,  880, 3457, 3457, 3457,
3050       880, 1451, 1451, 1451, 1451, 3457, 3457, 1451, 1451,  887,
3051       887,  887, 3457, 3457, 3457,  887, 1459, 1459, 1459, 1459,
3052      3457, 3457, 1459, 1459, 1467, 1467, 1467, 1467, 3457, 3457,
3053      1467, 1467, 1477, 1477, 1477, 1477, 3457, 3457, 1477, 1477,
3054       903,  903,  903,  903, 3457,  903, 3457,  903, 1486, 1486,
3055
3056      1486, 1486, 3457, 3457, 1486, 1486, 1492, 1492, 1492, 1492,
3057      3457, 3457, 1492, 1492, 1499, 1499, 1499, 1499, 3457, 3457,
3058      1499, 1499, 1515, 1515, 1515, 1515, 3457, 3457, 1515, 1515,
3059      1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1735,
3060      1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1191, 1191,
3061      1191, 1191, 3457, 3457, 1191, 1191, 1227, 1227, 1227, 1227,
3062      3457, 3457, 1227, 1227,  723,  723,  723, 3457, 3457, 3457,
3063       723,  731,  731,  731,  731, 3457,  731, 3457,  731, 1260,
3064      1260, 1260, 1260, 3457, 3457, 1260, 1260,  771,  771,  771,
3065      3457, 3457, 3457,  771, 1291, 1291, 1291, 1291, 3457, 3457,
3066
3067      1291, 1291,  779,  779,  779, 3457, 3457, 3457,  779, 1301,
3068      1301, 1301, 1301, 3457, 3457, 1301, 1301,  785,  785,  785,
3069       785, 3457,  785, 3457,  785, 1313, 1313, 1313, 1313, 3457,
3070      3457, 1313, 1313,  795,  795,  795, 3457, 3457, 3457,  795,
3071      1344, 1344, 1344, 1344, 3457, 3457, 1344, 1344,  815,  815,
3072       815, 3457, 3457, 3457,  815, 1371, 1371, 1371, 1371, 3457,
3073      3457, 1371, 1371, 1387, 1387, 1387, 1387, 3457, 3457, 1387,
3074      1387,  844,  844,  844, 3457, 3457, 3457,  844,  854,  854,
3075       854, 3457, 3457, 3457,  854,  859,  859,  859,  859, 3457,
3076       859, 3457,  859, 1419, 1419, 1419, 1419, 3457, 3457, 1419,
3077
3078      1419,  865,  865,  865,  865, 3457,  865, 3457,  865,  873,
3079       873,  873, 3457, 3457, 3457,  873,  880,  880,  880, 3457,
3080      3457, 3457,  880, 1451, 1451, 1451, 1451, 3457, 3457, 1451,
3081      1451,  887,  887,  887,  887, 3457,  887, 3457,  887, 1459,
3082      1459, 1459, 1459, 3457, 3457, 1459, 1459, 1467, 1467, 1467,
3083      1467, 3457, 3457, 1467, 1467, 1477, 1477, 1477, 1477, 3457,
3084      3457, 1477, 1477,  903,  903,  903,  903, 3457,  903, 3457,
3085       903, 1486, 1486, 1486, 1486, 3457, 3457, 1486, 1486, 1492,
3086      1492, 1492, 1492, 3457, 3457, 1492, 1492, 1515, 1515, 1515,
3087      1515, 3457, 3457, 1515, 1515, 1176, 1176, 1176, 1176, 1176,
3088
3089      1176, 1176, 1176, 1176, 1735, 1735, 1735, 1735, 1735, 1735,
3090      1735, 1735, 1735, 1191, 1191, 1191, 1191, 3457, 3457, 1191,
3091      1191,  723,  723,  723, 3457, 3457, 3457,  723,  731,  731,
3092       731, 3457, 3457, 3457,  731, 1260, 1260, 1260, 1260, 3457,
3093      3457, 1260, 1260,  771,  771,  771, 3457, 3457, 3457,  771,
3094      1291, 1291, 1291, 1291, 3457, 3457, 1291, 1291,  779,  779,
3095       779, 3457, 3457, 3457,  779, 1313, 1313, 1313, 1313, 3457,
3096      3457, 1313, 1313,  795,  795,  795, 3457, 3457, 3457,  795,
3097      1344, 1344, 1344, 1344, 3457, 3457, 1344, 1344,  815,  815,
3098       815, 3457, 3457, 3457,  815,  844,  844,  844, 3457, 3457,
3099
3100      3457,  844,  854,  854,  854, 3457, 3457, 3457,  854, 1419,
3101      1419, 1419, 1419, 3457, 3457, 1419, 1419,  865,  865,  865,
3102      3457, 3457, 3457,  865,  873,  873,  873, 3457, 3457, 3457,
3103       873,  880,  880,  880, 3457, 3457, 3457,  880, 3064, 3064,
3104      3064, 3064, 3064, 3064, 3064, 3064, 3064, 3065, 3065, 3065,
3105      3065, 3065, 3065, 3065, 3065, 3065, 3124, 3124, 3124, 3124,
3106      3124, 3124, 3124, 3124, 3124, 3127, 3127, 3127, 3127, 3127,
3107      3127, 3127, 3127, 3127, 3168, 3168, 3168, 3168, 3168, 3168,
3108      3168, 3168, 3168, 3170, 3170, 3170, 3170, 3170, 3170, 3170,
3109      3170, 3170,  263, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
3110
3111      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
3112      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
3113      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
3114      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
3115      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
3116      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
3117      3457, 3457, 3457, 3457, 3457, 3457, 3457
3118     } ;
3119
3120 static yyconst flex_int16_t yy_chk[12668] =
3121     {   0,
3122         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3123         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3124         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
3125         8,    8,    8,  268,   11,   13,   13,   12,   14,   14,
3126        13,   13,  317,   14,   14,  269,    8,   17,   17,  268,
3127        13,   15,   15,   14,   15,  272,   15,   16,   16,  371,
3128        16,  269,   16,   18,   18, 1542,   15,   19,   19,   19,
3129       549,  272,   16,   20,   20,   20,   23,   23,   23,   24,
3130        24,   24,  549,   19,   25,   25,   25,  371, 1543,   20,
3131       378,   17,   23, 1097,  317,   24,  266,  266,  266, 1097,
3132
3133        25,  267,  267,  267,  271,  271,  271,   18,   21,   21,
3134        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3135        21,   21,   21,  301,   21,   21,   21,   21,   21,   26,
3136        26,   26,   27,   27,   27,   28,   28,   28,  301,   29,
3137        29,   29,   30,   30,   30,   26,  378,  478,   27,  295,
3138       478,   28,  697,   21,   21,   29,  311,  290,   30,   31,
3139        31,   31,  292,  292,  292,  295,  299,  299,  299,  308,
3140       308,  308,  311,  290,  367,   31,  697,   21,   22,   22,
3141        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3142        22,   22,   22, 1545,   22,   22,   22,   22,   22,   32,
3143
3144        32,   32,   33,   33,   33,   34,   34,   34,  282,   35,
3145        35,   35,   36,   36,   36,   32,  290,  370,   33,  495,
3146       753,   34,  495,   22,   22,   35,  367,  370,   36,   37,
3147        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3148        40,   41,   41,   41,  753,   37,  561,   22,   38,  322,
3149       282,   39,  474,  561,   40,  370,  282,   41,   42,   42,
3150        42,  282,  315,  315,  315,  322,  282,  319,  319,  319,
3151       330,  330,  330,  474,   42,   43,   43,   43,   43,   43,
3152        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3153       339,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3154
3155        46,   46,   47,   47,   47,  339,   48,   48,   48,   49,
3156        49,   49,   45,  438,  566,   46, 1546,  438,   47,  337,
3157        43,   43,   48,  337,  391,   49,  303,  337,   43,   44,
3158        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3159        44,   44,   44,   44,  333,   44,   44,   44,   44,   44,
3160        50,   50,   50,   51,   51,   51,   52,   52,   52, 1547,
3161       333,  579,   55,   55,  575,  303,   50,   55,  304,   51,
3162       566,  575,   52,  391,   44,   44,  391,   55,  303,  393,
3163       303,  957,   44,   53,   53,   53,   53,   53,   53,   53,
3164        53,   53,   53,   53,   53,   53,   53,   53,  957,   53,
3165
3166        53,   53,   53,   53, 1548,  347,   55,  304,   59,   59,
3167        59,   60,   60,   60,   63,   63,   63,  579,   56,   56,
3168       304,  347,  304,   56,   59,  327,  477,   60,   53,   53,
3169        63,  393,  327,   56,  477,  685,   53,  405,  685,   53,
3170       477,  327,  341,  341,  341, 1549,   53,   54,   54,   54,
3171        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3172        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3173        64,   67,   67,   67,   68,   68,   68,  442,   69,   69,
3174        69,   70,   70,   70,   64,  359,  377,   67,  342,  405,
3175        68,  565,   54,   54,   69,  342, 1211,   70, 1550,  565,
3176
3177        54,  359,  377,   54,  342,  344,  344,  344,  406, 1211,
3178        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3179        57,   57,   57,   57,   57,   57,  442,   57,   57,   57,
3180        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3181        73,  444,   74,   74,   74,   75,   75,   75,   71, 1551,
3182       383,   72,  354,  398,   73, 1552,   57,   57,   74,  354,
3183       406,   75,  353,  353,  353,   57,  383,   57,  354,  398,
3184       392,   57,  356,  356,  356,  484,   57,   57,   58,   58,
3185        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3186        58,   58,   58,  444,   58,   58,   58,   58,   58,   76,
3187
3188        76,   76,   77,   77,   77,   78,   78,   78,  630,   79,
3189        79,   79,   80,   80,   80,   76,  369, 1553,   77,  392,
3190       630,   78,  392,   58,   58,   79,  369,  484,   80,  364,
3191       364,  364,   58,  369,   58,  380,  380,  380,   58,  390,
3192       390,  390, 1555,   58,   58,   61,   61,   61,   61,   61,
3193        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3194       375,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3195        82,   82,   83,   83,   83,  727,   84,   84,   84,   85,
3196        85,   85,   81,  797, 1556,   82,  797,  479,   83,  375,
3197        61,   61,   84,  375,  375,   85,  602,   61,  395,  395,
3198
3199       395,  479,  375,   61,  375,  404,  404,  404,  408,  408,
3200       408,  727,   61,   62,   62,   62,   62,   62,   62,   62,
3201        62,   62,   62,   62,   62,   62,   62,   62,  676,   62,
3202        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3203        88,   88,   88,  676,   89,   89,   89,   90,   90,   90,
3204        86,  411,  602,   87, 1562,  615,   88,  417,   62,   62,
3205        89,  422,  433,   90,  417,   62, 1223,  411,  416,  416,
3206       416,   62,  762,  417,  419,  419,  419,  422,  433, 1223,
3207        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3208        65,   65,   65,   65,   65,   65,  762,   65,   65,   65,
3209
3210        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3211        93,  615,   94,   94,   94,   95,   95,   95,   91,  449,
3212       459,   92,  428, 1563,   93,  485,   65,   65,   94,  428,
3213      1565,   95,  427,  427,  427,  449,  459,   65,  428,  430,
3214       430,  430,  441,  441,  441, 1574,   65,   66,   66,   66,
3215        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3216        66,   66,  763,   66,   66,   66,   66,   66,   96,   96,
3217        96,   97,   97,   97,   98,   98,   98,  485,   99,   99,
3218        99,  100,  100,  100,   96,  471,  763,   97, 1577,  764,
3219        98, 1579,   66,   66,   99,  454, 1584,  100,  101,  101,
3220
3221       101,  471,  454,   66,  102,  102,  102,  446,  446,  446,
3222       552,  454,   66,  764,  101,  453,  453,  453,  376, 1587,
3223       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3224       103,  103,  103,  103,  103,  103,  765,  103,  103,  103,
3225       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3226       107,  703,  108,  108,  108,  703,  376,  490,  105,  777,
3227       765,  106,  552,  777,  107,  373,  103,  103,  108,  466,
3228       505,  103,  376,  490,  553,  373,  466,  103,  456,  456,
3229       456,  103,  465,  465,  465,  466,  505,  103,  104,  104,
3230       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3231
3232       104,  104,  104,  373,  104,  104,  104,  104,  104,  109,
3233       109,  109,  110,  110,  110,  111,  111,  111,  631,  112,
3234       112,  112,  468,  468,  468,  109,  553,  480,  110, 1588,
3235      1589,  111, 1594,  104,  104,  112,  521,  532,  104,  480,
3236       480,  483,  483,  483,  104,  487,  487,  487,  104,  499,
3237       499,  499,  521,  532,  104,  113,  113,  113,  113,  113,
3238       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3239       631,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3240       116,  116,  117,  117,  117,  698,  118,  118,  118,  803,
3241       500, 1595,  115,  803,  769,  116,  698,  500,  117,  698,
3242
3243       113,  113,  118,  516,  544,  113,  500,  502,  502,  502,
3244       516,  113,  515,  515,  515,  518,  518,  518,  769,  516,
3245       544, 1028,  113,  114,  114,  114,  114,  114,  114,  114,
3246       114,  114,  114,  114,  114,  114,  114,  114, 1028,  114,
3247       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3248       121,  121,  121,  705,  122,  122,  122,  526,  526,  526,
3249       119,  558,  571,  120,  527, 1596,  121,  705,  114,  114,
3250       122,  527, 1597,  114,  529,  529,  529,  558,  571,  114,
3251       527,  538,  538,  538,  541,  541,  541,  551,  551,  551,
3252       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3253
3254       123,  123,  123,  123,  123,  123, 1598,  123,  123,  123,
3255       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3256       129,  651,  130,  130,  130,  133,  133,  133,  125, 1179,
3257      1599,  126,  539, 1179,  129, 1518,  123,  123,  130,  539,
3258       578,  133,  555,  555,  555,  563,  563,  563,  539,  568,
3259       568,  568,  123, 1600,  564, 1518, 1605,  123,  124,  124,
3260       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
3261       124,  124,  124,  651,  124,  124,  124,  124,  124,  134,
3262       134,  134,  135,  135,  135,  136,  136,  136,  578,  137,
3263       137,  137,  138,  138,  138,  134,  578, 1606,  135,  584,
3264
3265      1607,  136,  564,  124,  124,  137,  564,  595,  138,  577,
3266       577,  577,  581,  581,  581,  584,  589,  589,  589,  124,
3267       592,  592,  592,  595,  124,  127,  127,  127,  127,  127,
3268       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3269      1611,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3270       140,  140,  143,  143,  143, 1615,  144,  144,  144,  147,
3271       147,  147,  139, 1617, 1618,  140,  590,  607,  143,  620,
3272       127,  127,  144,  590,  636,  147,  600,  600,  600,  604,
3273       604,  604,  590,  607, 1622,  620,  127, 1625, 1626,  601,
3274       636, 1053,  127,  128,  128,  128,  128,  128,  128,  128,
3275
3276       128,  128,  128,  128,  128,  128,  128,  128, 1053,  128,
3277       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3278       152,  152,  152, 1369,  153,  153,  153,  154,  154,  154,
3279       148, 1633, 1635,  151, 1636, 1369,  152,  601,  128,  128,
3280       153, 1642, 1643,  154,  652,  601,  613,  613,  613,  614,
3281       617,  617,  617, 1645,  128,  628,  628,  628,  629, 1646,
3282       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3283       131,  131,  131,  131,  131,  131, 1647,  131,  131,  131,
3284       131,  131,  155,  155,  155,  156,  156,  156,  157,  157,
3285       157, 1648,  158,  158,  158,  629,  652,  614,  155,  646,
3286
3287       657,  156, 1649, 1650,  157,  614,  131,  131,  158,  131,
3288       629,  131,  633,  633,  633,  646,  657,  131,  640,  640,
3289       640,  643,  643,  643,  131, 1651, 1652,  131,  132,  132,
3290       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3291       132,  132,  132, 1662,  132,  132,  132,  132,  132,  161,
3292       161,  161,  162,  162,  162,  165,  165,  165,  708,  166,
3293       166,  166, 1664,  641, 1665,  161, 1670,  668,  162,  708,
3294       641,  165,  708,  132,  132,  166,  132,  931,  132,  641,
3295       650,  650,  650,  668,  132,  654,  654,  654,  662,  662,
3296       662,  132, 1672,  931,  132,  141,  141,  141,  141,  141,
3297
3298       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3299      1674,  141,  141,  141,  141,  141,  169,  169,  169,  170,
3300       170,  170,  173,  173,  173,  709,  174,  174,  174,  177,
3301       177,  177,  169, 1675, 1677,  170,  663,  674,  173,  709,
3302       141,  141,  174,  663,  674,  177,  665,  665,  665,  673,
3303       673,  673,  663,  674, 1678, 1679,  141,  142,  142,  142,
3304       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3305       142,  142, 1688,  142,  142,  142,  142,  142,  178,  178,
3306       178,  179,  179,  179,  180,  180,  180,  758,  181,  181,
3307       181,  182,  182,  182,  178, 1694, 1695,  179,  704, 1699,
3308
3309       180,  758,  142,  142,  181,  704, 1701,  182,  675,  675,
3310       675,  704,  684,  684,  684, 1194, 1194, 1194,  142,  145,
3311       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3312       145,  145,  145,  145, 1713,  145,  145,  145,  145,  145,
3313       183,  183,  183,  184,  184,  184,  187,  187,  187,  711,
3314       188,  188,  188,  189,  189,  189,  183, 1714, 1719,  184,
3315       711,  713,  187,  711,  145,  145,  188,  715,  713,  189,
3316       145,  684,  716,  717,  713,  145, 1722, 1723,  715,  716,
3317       717,  715, 1202, 1202, 1202,  716,  717,  145,  146,  146,
3318       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3319
3320       146,  146,  146, 1724,  146,  146,  146,  146,  146,  190,
3321       190,  190,  191,  191,  191,  192,  192,  192,  766,  193,
3322       193,  193,  194,  194,  194,  190, 1726,  768,  191,  757,
3323       760,  192,  766,  146,  146,  193,  757,  760,  194,  146,
3324       767,  768,  757,  760,  146,  934,  934,  934, 1735,  934,
3325      1738,  767, 1741, 1742,  767, 1744,  146,  149,  149,  149,
3326       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3327       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3328       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3329       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3330
3331       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3332       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3333       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3334       149,  159,  159,  159,  159,  159,  159,  159,  159,  159,
3335       159,  159,  159,  159,  159,  159, 1745,  159,  159,  159,
3336       159,  159,  197,  197,  197,  198,  198,  198,  199,  199,
3337       199, 1746,  200,  200,  200,  201,  201,  201,  197, 1066,
3338      1734,  198, 1277, 1747,  199, 1748,  159,  159,  200, 1066,
3339       159,  201,  946,  946,  946, 1277, 1066,  159, 1749, 1750,
3340       159,  968,  968,  968,  159, 1734,  159,  159,  160,  160,
3341
3342       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
3343       160,  160,  160, 1752,  160,  160,  160,  160,  160,  202,
3344       202,  202,  203,  203,  203,  204,  204,  204, 1753,  207,
3345       207,  207,  208,  208,  208,  202, 1755, 1756,  203, 1758,
3346      1760,  204, 1761,  160,  160,  207,  946,  160,  208,  980,
3347       980,  980, 1763,  980,  160,  968,  980,  160, 1218, 1218,
3348      1218,  160, 1765,  160,  160,  163,  163,  163,  163,  163,
3349       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3350      1767,  163,  163,  163,  163,  163,  211,  211,  211,  212,
3351       212,  212,  213,  213,  213, 1768,  214,  214,  214,  725,
3352
3353       725,  725,  211, 1769, 1770,  212, 1771, 1773,  213, 1782,
3354       163,  163,  214,  163,  163,  163,  725, 1783,  988,  988,
3355       988,  163,  988, 1785,  163,  988, 1789, 1793,  163, 1795,
3356      1802,  163,  164,  164,  164,  164,  164,  164,  164,  164,
3357       164,  164,  164,  164,  164,  164,  164, 1803,  164,  164,
3358       164,  164,  164,  215,  215,  215,  216,  216,  216,  217,
3359       217,  217, 1804,  218,  218,  218,  733,  733,  733,  215,
3360      1805, 1807,  216, 1811, 1812,  217, 1813,  164,  164,  218,
3361       164,  164,  164,  733, 1816, 1003, 1003, 1003,  164, 1003,
3362      1823,  164, 1003, 1824, 1830,  164, 1837, 1838,  164,  167,
3363
3364       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
3365       167,  167,  167,  167, 1847,  167,  167,  167,  167,  167,
3366       221,  221,  221,  222,  222,  222,  223,  223,  223, 1850,
3367       224,  224,  224,  749,  749,  749,  221, 1860, 1864,  222,
3368      1868, 1869,  223, 1873,  167,  167,  224, 1874, 1875,  167,
3369       749, 1274, 1274, 1274, 1876,  167,  168,  168,  168,  168,
3370       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
3371       168, 1878,  168,  168,  168,  168,  168,  225,  225,  225,
3372       226,  226,  226,  227,  227,  227, 1879,  228,  228,  228,
3373       773,  773,  773,  225, 1887, 1891,  226, 1894, 1896,  227,
3374
3375      1898,  168,  168,  228, 1899, 1901,  168,  773, 1534, 1534,
3376      1534, 1902,  168,  171,  171,  171,  171,  171,  171,  171,
3377       171,  171,  171,  171,  171,  171,  171,  171, 1903,  171,
3378       171,  171,  171,  171,  231,  231,  231,  232,  232,  232,
3379       233,  233,  233, 1906,  234,  234,  234,  235,  235,  235,
3380       231, 1908, 1910,  232, 1915, 1921,  233, 1925,  171,  171,
3381       234, 1926,  171,  235, 1007, 1007, 1007, 1927, 1929,  171,
3382      1941, 1940,  171,  172,  172,  172,  172,  172,  172,  172,
3383       172,  172,  172,  172,  172,  172,  172,  172, 1940,  172,
3384       172,  172,  172,  172,  236,  236,  236,  237,  237,  237,
3385
3386       238,  238,  238, 1944,  241,  241,  241,  242,  242,  242,
3387       236, 1947, 1941,  237, 1948, 1942,  238, 1949,  172,  172,
3388       241, 1951,  172,  242, 1016, 1016, 1016, 1952, 1007,  172,
3389      1954, 1955,  172,  175,  175,  175,  175,  175,  175,  175,
3390       175,  175,  175,  175,  175,  175,  175,  175, 1942,  175,
3391       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3392       247,  247,  247, 1956,  248,  248,  248,  249,  249,  249,
3393       245, 1950, 1957,  246, 1959, 1960,  247, 1961,  175,  175,
3394       248, 1965,  175,  249, 1535, 1535, 1535, 1950, 1016,  175,
3395      1967, 1970,  175, 1537, 1537, 1537, 1541, 1541, 1541,  175,
3396
3397       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3398       176,  176,  176,  176,  176, 1971,  176,  176,  176,  176,
3399       176,  250,  250,  250,  251,  251,  251,  252,  252,  252,
3400      1535,  255,  255,  255,  256,  256,  256,  250, 1972, 1537,
3401       251, 1973, 1975,  252,  368,  176,  176,  255, 1977,  176,
3402       256, 1023, 1023, 1023,  368, 1023,  176, 1978, 1023,  176,
3403      1544, 1544, 1544, 1554, 1554, 1554,  176,  185,  185,  185,
3404       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3405       185,  185,  368,  185,  185,  185,  185,  185,  259,  259,
3406       259,  260,  260,  260, 1980, 1982,  368,  781,  781,  781,
3407
3408       368,  944,  944,  944,  259, 1985, 1986,  260, 1988, 1989,
3409       302, 1990,  185,  185,  781,  798,  798,  798,  185,  944,
3410       302, 1992, 1031, 1031, 1031, 1998, 1031, 1999,  374, 1031,
3411      2001, 2004,  798,  185,  186,  186,  186,  186,  186,  186,
3412       186,  186,  186,  186,  186,  186,  186,  186,  186,  302,
3413       186,  186,  186,  186,  186,  302,  374,  811,  811,  811,
3414      2012, 2017,  302, 1590, 1590, 1590,  302,  812,  812,  812,
3415      1987, 2022,  374, 2023,  811,  818,  818,  818, 1987,  186,
3416       186,  820,  820,  820,  812,  186, 1047, 1047, 1047, 1991,
3417      1047, 2030,  818, 1047, 1591, 1591, 1591, 1991,  820, 2031,
3418
3419       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3420       195,  195,  195,  195,  195,  195, 2032,  195,  195,  195,
3421       195,  195,  835,  835,  835,  836,  836,  836,  848,  848,
3422       848,  856,  856,  856,  861,  861,  861, 2000, 2005,  835,
3423      1591, 2036,  836, 2006, 2038,  848,  195,  195,  856, 2044,
3424      2045,  861,  195, 2000, 2005,  195, 1060, 1060, 1060, 2006,
3425      1060, 2046, 2053, 1060, 1592, 1592, 1592,  195,  196,  196,
3426       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3427       196,  196,  196, 2054,  196,  196,  196,  196,  196,  867,
3428       867,  867,  889,  889,  889,  917,  917,  917,  921,  921,
3429
3430       921,  926,  926,  926, 2055, 2058,  867, 2059, 2070,  889,
3431      1592, 2076,  917,  196,  196,  921, 2080, 2083,  926,  196,
3432      2085, 2088,  196, 1062, 1062, 1062, 2090, 1062, 2092, 2093,
3433      1062, 1593, 1593, 1593,  196,  205,  205,  205,  205,  205,
3434       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3435      2094,  205,  205,  205,  205,  205,  945,  945,  945,  976,
3436       976,  976, 2097, 2099,  977,  977,  977,  979,  979,  979,
3437       983,  983,  983, 1797,  945, 2104, 2106,  976, 2114, 1797,
3438       205,  205,  977, 1797,  979, 2115,  205, 1797,  983, 2116,
3439      2117,  205,  206,  206,  206,  206,  206,  206,  206,  206,
3440
3441       206,  206,  206,  206,  206,  206,  206, 2119,  206,  206,
3442       206,  206,  206, 2135,  945,  984,  984,  984,  987,  987,
3443       987,  995,  995,  995,  977,  989,  989,  989,  991,  991,
3444       991, 2137, 2142,  984, 2134,  987, 2143,  206,  206,  995,
3445      2134, 2136,  989,  206, 2135,  991, 2144, 2145,  206,  209,
3446       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3447       209,  209,  209,  209, 2149,  209,  209,  209,  209,  209,
3448      1000, 1000, 1000, 1001, 1001, 1001, 1002, 1002, 1002,  984,
3449      1005, 1005, 1005, 2151,  996,  996,  996, 2136, 1000, 2152,
3450      2153, 1001, 2154, 1002,  209,  209, 2159, 2166, 1005, 2168,
3451
3452       209, 2169,  996, 1068, 1068, 1068, 2172, 1068, 2175, 2179,
3453      1068, 1690, 1690, 1690, 2180,  209,  210,  210,  210,  210,
3454       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3455       210,  996,  210,  210,  210,  210,  210, 1001, 1006, 1006,
3456      1006, 1022, 1022, 1022, 2181, 1026, 1026, 1026, 1027, 1027,
3457      1027, 1030, 1030, 1030, 2182, 2183, 1006, 1690, 1022, 2184,
3458      2185,  210,  210, 1026, 2186, 2187, 1027,  210, 1030, 1071,
3459      1071, 1071, 2188, 1071, 2193, 1006, 1071, 1751, 1751, 1751,
3460      2194, 2195,  210,  219,  219,  219,  219,  219,  219,  219,
3461       219,  219,  219,  219,  219,  219,  219,  219, 2196,  219,
3462
3463       219,  219,  219,  219, 1033, 1033, 1033, 1034, 1034, 1034,
3464      1046, 1046, 1046, 2201, 1027, 1037, 1037, 1037, 1038, 1038,
3465      1038, 2203, 1033, 2206, 2211, 1034, 2218, 1046,  219,  219,
3466      1041, 1041, 1041, 1037,  219, 2219, 1038,  219, 1086, 1086,
3467      1086, 2225, 1086, 2226, 2228, 1086, 2232, 2233, 1041,  219,
3468       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3469       220,  220,  220,  220,  220, 2234,  220,  220,  220,  220,
3470       220, 2240, 2241, 1034, 1042, 1042, 1042, 2242, 2246, 1038,
3471      1051, 1051, 1051, 2223, 1052, 1052, 1052, 1056, 1056, 1056,
3472      2258, 2223, 1042, 2262, 2263,  220,  220, 2264, 1051, 2266,
3473
3474      2270,  220, 1052, 2224,  220, 1056, 1088, 1088, 1088, 2273,
3475      1088, 2224, 2274, 1088, 2277, 2278,  220,  229,  229,  229,
3476       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3477       229,  229, 2281,  229,  229,  229,  229,  229, 2288, 1042,
3478      1059, 1059, 1059, 2290, 2275, 1052, 1057, 1057, 1057, 1061,
3479      1061, 1061, 2275, 1063, 1063, 1063, 2305, 1059, 1064, 1064,
3480      1064, 2320,  229,  229, 1057, 2276, 1061, 1754, 1754, 1754,
3481       229, 1063,  229, 2276, 2310,  229, 1064, 2321, 2324,  229,
3482      1757, 1757, 1757,  229,  230,  230,  230,  230,  230,  230,
3483       230,  230,  230,  230,  230,  230,  230,  230,  230, 2327,
3484
3485       230,  230,  230,  230,  230, 1067, 1067, 1067, 1057, 1070,
3486      1070, 1070, 2332, 2333, 1072, 1072, 1072, 2310, 2338, 1064,
3487      2340, 2352, 1067, 1083, 1083, 1083, 1070, 2353, 2354,  230,
3488       230, 1072, 1085, 1085, 1085, 2355, 2356,  230, 2357,  230,
3489      2311, 1083,  230, 1759, 1759, 1759,  230, 2358, 2359, 1085,
3490       230,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3491       239,  239,  239,  239,  239,  239, 2360,  239,  239,  239,
3492       239,  239, 1087, 1087, 1087, 1089, 1089, 1089, 1762, 1762,
3493      1762, 1772, 1772, 1772, 1084, 1084, 1084, 2311, 2361, 1087,
3494      2368, 2369, 1089, 1090, 1090, 1090,  239,  239, 1091, 1091,
3495
3496      1091, 2370, 1084, 2372, 1100, 1100, 1100, 2376, 1100, 2378,
3497      1090, 1100, 1108, 1108, 1108, 1091, 1108, 2382, 2386, 1108,
3498       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3499       240,  240,  240,  240,  240,  240, 2387,  240,  240,  240,
3500       240,  240, 1084, 2388, 1090, 1094, 1094, 1094, 2389, 2390,
3501      1091, 1092, 1092, 1092, 2391, 1099, 1099, 1099, 2392, 2395,
3502      1093, 1093, 1093, 1094, 2396, 2397,  240,  240, 1092, 1095,
3503      1095, 1095, 1099, 2403, 1113, 1113, 1113, 1093, 1113, 2404,
3504      2405, 1113, 1119, 1119, 1119, 2413, 1119, 1095, 2414, 1119,
3505       240,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3506
3507       243,  243,  243,  243,  243,  243, 1092,  243,  243,  243,
3508       243,  243, 1093, 1101, 1101, 1101, 1095, 1104, 1104, 1104,
3509      1105, 1105, 1105, 1107, 1107, 1107, 1109, 1109, 1109, 2398,
3510      1101, 1764, 1764, 1764, 2415, 1104,  243,  243, 1105, 2398,
3511      1107, 1766, 1766, 1766, 1109, 2416, 2430,  243,  244,  244,
3512       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3513       244,  244,  244, 2431,  244,  244,  244,  244,  244, 2432,
3514      2433, 1105, 1110, 1110, 1110, 1112, 1112, 1112, 1115, 1115,
3515      1115, 1116, 1116, 1116, 1118, 1118, 1118, 1766, 2435, 2437,
3516      1110, 2461, 1112,  244,  244, 1764, 1115, 2456, 2462, 1116,
3517
3518      2455, 1118, 2465, 2468,  244,  253,  253,  253,  253,  253,
3519       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
3520      2469,  253,  253,  253,  253,  253, 2470, 2473, 1116, 1123,
3521      1123, 1123, 2455, 1110, 2456, 1124, 1124, 1124, 1125, 1125,
3522      1125, 1126, 1126, 1126, 1128, 1128, 1128, 1123, 2476, 2477,
3523       253,  253, 2478, 1124, 2479, 1125, 2480, 2481, 1126, 2482,
3524      2483,  253, 1128, 1139, 1139, 1139, 2484, 1139, 2485, 2486,
3525      1139, 1774, 1774, 1774,  253,  254,  254,  254,  254,  254,
3526       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
3527      1124,  254,  254,  254,  254,  254, 1131, 1131, 1131, 2488,
3528
3529      2489, 1127, 1127, 1127, 2491, 1129, 1129, 1129, 2492, 2493,
3530      1133, 1133, 1133, 1131, 1135, 1135, 1135, 1774, 1127, 2494,
3531       254,  254, 2496, 1129, 1132, 1132, 1132, 1133, 1806, 1806,
3532      1806,  254, 1135, 1163, 1163, 1163, 2497, 1163, 2499, 2500,
3533      1163, 1132, 2502, 2503,  254,  257,  257,  257,  257,  257,
3534       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
3535      1127,  257,  257,  257,  257,  257, 1129, 1136, 1136, 1136,
3536      2505, 1134, 1134, 1134, 1132, 1138, 1138, 1138, 1140, 1140,
3537      1140, 1141, 1141, 1141, 2506, 1136, 2512, 2513, 1134, 1132,
3538       257,  257, 1138, 1142, 1142, 1142, 1140, 2514, 2516, 1141,
3539
3540      2521,  257, 2490, 2522, 1136, 1167, 1167, 1167, 2523, 1167,
3541      1142, 2490, 1167, 2524,  257,  258,  258,  258,  258,  258,
3542       258,  258,  258,  258,  258,  258,  258,  258,  258,  258,
3543      1134,  258,  258,  258,  258,  258, 1141, 1143, 1143, 1143,
3544      1144, 1144, 1144, 2525, 1145, 1145, 1145, 1146, 1146, 1146,
3545      1148, 1148, 1148, 2528, 1143, 1147, 1147, 1147, 1144, 2530,
3546       258,  258, 1145, 2538, 1146, 2539, 2541, 1148, 1149, 1149,
3547      1149,  258, 1147, 1156, 1156, 1156, 1160, 1160, 1160, 1150,
3548      1150, 1150, 2532, 2547,  258,  300, 1149, 2495, 1157, 1157,
3549      1157, 1156,  300, 2548, 1160, 2532, 2495, 1150, 1161, 1161,
3550
3551      1161,  300,  300, 2549, 2550, 1147, 1157, 1162, 1162, 1162,
3552      1164, 1164, 1164, 2552, 2555, 1145, 1161, 1166, 1166, 1166,
3553      1147, 1165, 1165, 1165, 1162, 1169, 1169, 1169, 1164,  300,
3554       300,  300, 2533, 2557, 1166,  300,  300,  300, 2582, 1165,
3555       300,  300, 2583, 1169,  300, 2533,  300,  300,  300,  365,
3556      1150, 2577, 1157, 1170, 1170, 1170,  365, 1171, 1171, 1171,
3557      2578, 2586, 1161, 2587, 2579,  365,  365, 1798, 1172, 1172,
3558      1172, 1170, 1172, 1798, 1171, 1172, 2588, 1798, 1174, 1174,
3559      1174, 1798, 1165, 2593, 1175, 1175, 1175, 2594, 1190, 1190,
3560      1190, 2577, 2595,  365,  365,  365, 1174, 2578, 2596,  365,
3561
3562       365,  365, 1175, 2597,  365,  365, 1190, 2579,  365, 2598,
3563       365,  365,  365, 1191, 1191, 1191, 2599, 1170, 1193, 1193,
3564      1193, 1225, 1225, 1225, 1226, 1226, 1226, 2600, 1227, 1227,
3565      1227, 1191, 1229, 1229, 1229, 2601, 1193, 2602, 1225, 1230,
3566      1230, 1230, 1226, 2603, 2605, 1175, 1227, 1231, 1231, 1231,
3567      1229, 1231, 2606, 2607, 1231, 2608, 1230, 1234, 1234, 1234,
3568      1236, 1236, 1236, 2609, 2610, 1193, 1237, 1237, 1237, 1239,
3569      1239, 1239, 2611, 2591, 1234, 1241, 1241, 1241, 1236, 1241,
3570      2612, 1229, 1241, 2591, 1237, 2613, 2591, 1239, 1244, 1244,
3571      1244, 1245, 1245, 1245, 2614, 1245, 2615, 2616, 1245, 2617,
3572
3573      1246, 1246, 1246, 2618, 2620, 1244, 1247, 1247, 1247, 1250,
3574      1250, 1250, 1252, 1252, 1252, 2592, 1239, 1246, 1234, 2621,
3575      1248, 1248, 1248, 1247, 1248, 2592, 1250, 1248, 2592, 2624,
3576      1252, 1253, 1253, 1253, 1255, 1255, 1255, 1257, 1257, 1257,
3577      1259, 1259, 1259, 1260, 1260, 1260, 1262, 1262, 1262, 1253,
3578      2630, 2637, 1255, 2638, 1257, 1263, 1263, 1263, 1259, 1263,
3579      2639, 1260, 1263, 2641, 1262, 1267, 1267, 1267, 1268, 1268,
3580      1268, 1270, 1270, 1270, 1285, 1285, 1285, 2645, 1285, 2648,
3581      2649, 1285, 2650, 1267, 2651, 2652, 1268, 2653, 2666, 1270,
3582      1289, 1289, 1289, 1262, 1255, 1290, 1290, 1290, 1291, 1291,
3583
3584      1291, 1293, 1293, 1293, 1296, 1296, 1296, 1289, 1296, 2667,
3585      2668, 1296, 2695, 1290, 2692, 2698, 1291, 2699, 2693, 1293,
3586      1300, 1300, 1300, 1301, 1301, 1301, 1303, 1303, 1303, 1304,
3587      1304, 1304, 1305, 1305, 1305, 1306, 1306, 1306, 1300, 2700,
3588      2703, 1301, 2704, 2692, 1303, 2706, 1304, 2707, 2709, 1305,
3589      1307, 1307, 1307, 1306, 1309, 1309, 1309, 1310, 1310, 1310,
3590      2693, 2694, 1293, 1311, 1311, 1311, 2710, 2711, 1307, 1808,
3591      1808, 1808, 1309, 2712, 1310, 1312, 1312, 1312, 2713, 1305,
3592      1311, 1313, 1313, 1313, 1315, 1315, 1315, 1303, 1318, 1318,
3593      1318, 1311, 2715, 1312, 1319, 1319, 1319, 2716, 1319, 1313,
3594
3595      2717, 1319, 1315, 2694, 2718, 1318, 1325, 1325, 1325, 1326,
3596      1326, 1326, 1328, 1328, 1328, 1331, 1331, 1331, 1332, 1332,
3597      1332, 1309, 2721, 2722, 1325, 2723, 2724, 1326, 2725, 2726,
3598      1328, 2705, 1331, 1333, 1333, 1333, 1332, 1335, 1335, 1335,
3599      1336, 1336, 1336, 2708, 2705, 1337, 1337, 1337, 2727, 1337,
3600      1315, 1333, 1337, 2728, 2729, 1335, 2708, 1336, 1340, 1340,
3601      1340, 2730, 1340, 2731, 2732, 1340, 1343, 1343, 1343, 1344,
3602      1344, 1344, 1346, 1346, 1346, 2733, 2735, 1328, 1351, 1351,
3603      1351, 2748, 1351, 2749, 1343, 1351, 2754, 1344, 2758, 2759,
3604      1346, 1354, 1354, 1354, 1355, 1355, 1355, 2760, 1355, 2761,
3605
3606      2762, 1355, 2763, 2771, 1335, 1358, 1358, 1358, 1354, 1359,
3607      1359, 1359, 2773, 1359, 2781, 2782, 1359, 1370, 1370, 1370,
3608      2783, 2784, 1358, 1371, 1371, 1371, 1373, 1373, 1373, 1374,
3609      1374, 1374, 2785, 1374, 2786, 1370, 1374, 1346, 1377, 1377,
3610      1377, 1371, 1377, 2796, 1373, 1377, 1380, 1380, 1380, 1381,
3611      1381, 1381, 2799, 1381, 2797, 2802, 1381, 1386, 1386, 1386,
3612      1387, 1387, 1387, 1380, 1389, 1389, 1389, 1394, 1394, 1394,
3613      2803, 1394, 2807, 2808, 1394, 1386, 2676, 2809, 1387, 1397,
3614      1397, 1397, 1389, 1398, 1398, 1398, 2676, 1398, 2810, 2797,
3615      1398, 2796, 2676, 1373, 2811, 2812, 1397, 1401, 1401, 1401,
3616
3617      1402, 1402, 1402, 1404, 1404, 1404, 1406, 1406, 1406, 2813,
3618      1406, 2814, 1389, 1406, 2816, 1401, 2817, 2818, 1402, 2819,
3619      2820, 1404, 1409, 1409, 1409, 1410, 1410, 1410, 1412, 1412,
3620      1412, 1414, 1414, 1414, 2821, 1414, 2822, 2823, 1414, 2825,
3621      1409, 2826, 2827, 1410, 2828, 2790, 1412, 1418, 1418, 1418,
3622      1419, 1419, 1419, 2829, 1404, 1421, 1421, 1421, 2790, 1423,
3623      1423, 1423, 2830, 1423, 2791, 1418, 1423, 2831, 1419, 1429,
3624      1429, 1429, 2832, 1421, 1430, 1430, 1430, 2791, 1432, 1432,
3625      1432, 1433, 1433, 1433, 1434, 1434, 1434, 1429, 1434, 2833,
3626      2834, 1434, 1430, 2835, 2836, 1412, 1432, 2837, 1433, 1435,
3627
3628      1435, 1435, 2847, 2851, 1421, 1436, 1436, 1436, 2852, 1436,
3629      2860, 2861, 1436, 1438, 1438, 1438, 1435, 1439, 1439, 1439,
3630      2862, 1441, 1441, 1441, 1443, 1443, 1443, 2863, 1447, 1447,
3631      1447, 1438, 1809, 1809, 1809, 1439, 2864, 2677, 1432, 1441,
3632      2865, 1443, 1444, 1444, 1444, 1447, 1444, 2677, 2866, 1444,
3633      1448, 1448, 1448, 2677, 1448, 2873, 2876, 1448, 1450, 1450,
3634      1450, 1451, 1451, 1451, 1453, 1453, 1453, 1455, 1455, 1455,
3635      2878, 1455, 2883, 2884, 1455, 2885, 1450, 2879, 2886, 1451,
3636      2878, 2887, 1453, 1458, 1458, 1458, 2888, 2879, 1441, 1459,
3637      1459, 1459, 1461, 1461, 1461, 1462, 1462, 1462, 1463, 1463,
3638
3639      1463, 1458, 1463, 2891, 2892, 1463, 2893, 1459, 2894, 2881,
3640      1461, 2882, 1462, 1464, 1464, 1464, 1465, 1465, 1465, 2881,
3641      1465, 2882, 2905, 1465, 1466, 1466, 1466, 2906, 1453, 2907,
3642      1464, 1467, 1467, 1467, 2908, 1469, 1469, 1469, 1470, 1470,
3643      1470, 2909, 1466, 1471, 1471, 1471, 2910, 1471, 2911, 1467,
3644      1471, 2912, 1461, 1469, 2915, 1470, 1474, 1474, 1474, 1475,
3645      1475, 1475, 2897, 1475, 2916, 2918, 1475, 1476, 1476, 1476,
3646      1477, 1477, 1477, 1474, 1479, 1479, 1479, 1481, 1481, 1481,
3647      1485, 1485, 1485, 2919, 2920, 1476, 2922, 2924, 1477, 1486,
3648      1486, 1486, 1479, 2925, 1481, 2926, 2897, 1469, 1485, 1488,
3649
3650      1488, 1488, 1491, 1491, 1491, 2929, 2930, 1486, 1492, 1492,
3651      1492, 1494, 1494, 1494, 1495, 1495, 1495, 1488, 1495, 2931,
3652      1491, 1495, 1498, 1498, 1498, 2932, 1492, 2935, 2948, 1494,
3653      1499, 1499, 1499, 1501, 1501, 1501, 1479, 1502, 1502, 1502,
3654      1498, 1502, 2949, 2950, 1502, 1506, 1506, 1506, 1499, 2958,
3655      2959, 1501, 1507, 1507, 1507, 1509, 1509, 1509, 2960, 2961,
3656      1488, 2962, 2963, 1506, 1494, 1510, 1510, 1510, 2969, 1510,
3657      1507, 2970, 1510, 1509, 1514, 1514, 1514, 1515, 1515, 1515,
3658      1517, 1517, 1517, 1519, 1519, 1519, 1526, 1526, 1526, 1557,
3659      1557, 1557, 1514, 1501, 2971, 1515, 2972, 2973, 1517, 2974,
3660
3661      2975, 1519, 1519, 2976, 1526, 2977, 1557, 1558, 1558, 1558,
3662      2978, 1558, 2980, 2981, 1558, 2986, 1509, 1559, 1559, 1559,
3663      1560, 1560, 1560, 2987, 1561, 1561, 1561, 2988, 1561, 2989,
3664      1517, 1561, 1564, 1564, 1564, 1559, 2990, 1560, 1566, 1566,
3665      1566, 2999, 1566, 3000, 3001, 1566, 1569, 1569, 1569, 3002,
3666      1564, 3003, 1526, 1570, 1570, 1570, 3004, 1570, 3005, 3006,
3667      1570, 3010, 3011, 1569, 1571, 1571, 1571, 3012, 1571, 3013,
3668      3014, 1571, 1575, 1575, 1575, 1559, 1576, 1576, 1576, 2990,
3669      1576, 1564, 3015, 1576, 1578, 1578, 1578, 3017, 3018, 1575,
3670      1580, 1580, 1580, 1581, 1581, 1581, 3020, 1581, 3021, 3022,
3671
3672      1581, 3024, 1578, 1582, 1582, 1582, 3028, 1580, 1583, 1583,
3673      1583, 1585, 1585, 1585, 1601, 1601, 1601, 1849, 1849, 1849,
3674      1582, 1602, 1602, 1602, 3029, 3030, 1583, 3035, 3037, 1585,
3675      3038, 1601, 3043, 3044, 1578, 1603, 1603, 1603, 1602, 1603,
3676      3045, 3046, 1603, 1604, 1604, 1604, 1608, 1608, 1608, 1609,
3677      1609, 1609, 1610, 1610, 1610, 3047, 1610, 1583, 3048, 1610,
3678      3049, 1604, 3050, 3051, 1608, 3052, 1609, 1612, 1612, 1612,
3679      1613, 1613, 1613, 1614, 1614, 1614, 3053, 1614, 3054, 3056,
3680      1614, 1616, 1616, 1616, 3057, 1612, 3058, 1613, 1619, 1619,
3681      1619, 1620, 1620, 1620, 3059, 1620, 3066, 3063, 1620, 1616,
3682
3683      1621, 1621, 1621, 3060, 3069, 1619, 3070, 1604, 3063, 3073,
3684      1608, 1623, 1623, 1623, 1624, 1624, 1624, 1621, 1627, 1627,
3685      1627, 3075, 1628, 1628, 1628, 3076, 1628, 1612, 1623, 1628,
3686      3078, 3079, 1624, 3083, 3062, 1627, 1629, 1629, 1629, 1630,
3687      1630, 1630, 1616, 1631, 1631, 1631, 3084, 1631, 3062, 3060,
3688      1631, 1632, 1632, 1632, 1629, 3086, 1630, 1623, 1634, 1634,
3689      1634, 1637, 1637, 1637, 1638, 1638, 1638, 3087, 1638, 1632,
3690      3088, 1638, 1639, 1639, 1639, 1634, 1639, 3082, 1637, 1639,
3691      1624, 1644, 1644, 1644, 1653, 1653, 1653, 1654, 1654, 1654,
3692      3085, 1654, 3089, 3090, 1654, 1657, 1657, 1657, 1644, 1658,
3693
3694      1658, 1658, 1653, 1659, 1659, 1659, 1660, 1660, 1660, 1661,
3695      1661, 1661, 1657, 1663, 1663, 1663, 1658, 1632, 3098, 3082,
3696      1659, 3092, 3106, 1660, 1666, 1666, 1666, 1661, 1666, 3085,
3697      1663, 1666, 3108, 3092, 1669, 1669, 1669, 1671, 1671, 1671,
3698      1673, 1673, 1673, 1676, 1676, 1676, 1680, 1680, 1680, 1653,
3699      1659, 1669, 1681, 1681, 1681, 1671, 3110, 3112, 1673, 3120,
3700      3122, 1676, 3093, 1680, 1661, 3103, 1689, 1689, 1689, 1658,
3701      1681, 1682, 1682, 1682, 3093, 1682, 1660, 3103, 1682, 1685,
3702      1685, 1685, 3126, 1685, 1689, 3128, 1685, 1691, 1691, 1691,
3703      3123, 1691, 1680, 3130, 1691, 1696, 1696, 1696, 3131, 1696,
3704
3705      1676, 1671, 1696, 1700, 1700, 1700, 1673, 3104, 3132, 1681,
3706      1702, 1702, 1702, 1703, 1703, 1703, 3124, 1703, 3133, 3104,
3707      1703, 1700, 1706, 1706, 1706, 3139, 1706, 3143, 1702, 1706,
3708      3124, 3123, 1689, 1709, 1709, 1709, 1710, 1710, 1710, 3127,
3709      1710, 3125, 3125, 1710, 3140, 1715, 1715, 1715, 3150, 1715,
3710      3127, 1709, 1715, 1718, 1718, 1718, 1720, 1720, 1720, 1721,
3711      1721, 1721, 3140, 1721, 1700, 3149, 1721, 1702, 1725, 1725,
3712      1725, 1718, 3152, 1720, 1727, 1727, 1727, 1728, 1728, 1728,
3713      1709, 1729, 1729, 1729, 3149, 3158, 1725, 1730, 1730, 1730,
3714      3151, 1727, 1731, 1731, 1731, 1728, 1732, 1732, 1732, 1729,
3715
3716      1718, 1733, 1733, 1733, 1730, 1736, 1736, 1736, 3160, 3151,
3717      1731, 3144, 3157, 1732, 1743, 1743, 1743, 1725, 3159, 1733,
3718      1775, 1775, 1775, 1736, 1775, 3165, 3144, 1775, 1778, 1778,
3719      1778, 3157, 1743, 1729, 1779, 1779, 1779, 3159, 1779, 3166,
3720      3168, 1779, 2364, 2364, 1728, 2364, 1778, 1784, 1784, 1784,
3721      3169, 3170, 1733, 2364, 1731, 3172, 1736, 1786, 1786, 1786,
3722      2364, 1786, 3173, 3174, 1786, 1784, 1743, 1790, 1790, 1790,
3723      3175, 1790, 3176, 1736, 1790, 1794, 1794, 1794, 1796, 1796,
3724      1796, 3178, 1796, 3179, 3181, 1796, 1799, 1799, 1799, 3188,
3725      1800, 1800, 1800, 1794, 1800, 1778, 3189, 1800, 1784, 1801,
3726
3727      1801, 1801, 3190, 1799, 1810, 1810, 1810, 1814, 1814, 1814,
3728      1815, 1815, 1815, 1817, 1817, 1817, 3191, 1801, 1818, 1818,
3729      1818, 3192, 1818, 3193, 3196, 1818, 3197, 1819, 1819, 1819,
3730      1817, 1819, 3198, 3199, 1819, 3200, 1794, 1822, 1822, 1822,
3731      1825, 1825, 1825, 1826, 1826, 1826, 3201, 1827, 1827, 1827,
3732      1801, 1827, 3202, 3203, 1827, 1822, 3205, 1825, 1831, 1831,
3733      1831, 1826, 1832, 1832, 1832, 3207, 1832, 3209, 1810, 1832,
3734      3210, 1814, 3211, 3212, 1815, 3213, 1831, 1835, 1835, 1835,
3735      1836, 1836, 1836, 3223, 1822, 1839, 1839, 1839, 3224, 1839,
3736      1826, 3225, 1839, 3221, 1835, 1842, 1842, 1842, 1836, 1843,
3737
3738      1843, 1843, 3226, 1843, 3227, 3221, 1843, 3222, 1844, 1844,
3739      1844, 3228, 1842, 1845, 1845, 1845, 1846, 1846, 1846, 3222,
3740      1846, 3232, 3233, 1846, 1831, 1844, 3234, 1848, 1848, 1848,
3741      1845, 1851, 1851, 1851, 3235, 1851, 3236, 3237, 1851, 1854,
3742      1854, 1854, 3238, 3239, 1836, 1848, 1856, 1856, 1856, 3240,
3743      1856, 3242, 3243, 1856, 1859, 1859, 1859, 1854, 1861, 1861,
3744      1861, 1862, 1862, 1862, 3244, 1862, 3245, 3246, 1862, 1863,
3745      1863, 1863, 1859, 3247, 3240, 1861, 1865, 1865, 1865, 3248,
3746      1865, 3249, 3250, 1865, 3251, 3252, 1863, 1870, 1870, 1870,
3747      1871, 1871, 1871, 3253, 1871, 3254, 3255, 1871, 3256, 3257,
3748
3749      1859, 1872, 1872, 1872, 1870, 1877, 1877, 1877, 1880, 1880,
3750      1880, 1881, 1881, 1881, 1883, 1883, 1883, 3258, 1872, 1884,
3751      1884, 1884, 1877, 1882, 1882, 1882, 1880, 1882, 1881, 3259,
3752      1882, 1883, 1885, 1885, 1885, 3260, 1884, 1886, 1886, 1886,
3753      1888, 1888, 1888, 1889, 1889, 1889, 3261, 1889, 3262, 1885,
3754      1889, 1890, 1890, 1890, 3263, 1886, 3269, 1888, 1892, 1892,
3755      1892, 3270, 1893, 1893, 1893, 3271, 1893, 3272, 1890, 1893,
3756      1895, 1895, 1895, 3273, 1880, 1892, 3274, 1884, 1897, 1897,
3757      1897, 3275, 1900, 1900, 1900, 1904, 1904, 1904, 1895, 3276,
3758      3277, 1905, 1905, 1905, 3266, 1905, 1897, 1886, 1905, 3278,
3759
3760      1900, 3279, 1904, 1907, 1907, 1907, 1909, 1909, 1909, 1911,
3761      1911, 1911, 3280, 3266, 1912, 1912, 1912, 1913, 1913, 1913,
3762      3281, 1907, 3282, 3283, 1909, 3284, 1911, 3285, 3286, 1897,
3763      1900, 1912, 3287, 3288, 1913, 1914, 1914, 1914, 1916, 1916,
3764      1916, 1917, 1917, 1917, 1918, 1918, 1918, 1919, 1919, 1919,
3765      1920, 1920, 1920, 1914, 3290, 3291, 1916, 1909, 3292, 1917,
3766      3293, 1918, 3294, 3289, 1919, 1922, 1922, 1922, 1920, 1922,
3767      3295, 3296, 1922, 1928, 1928, 1928, 1930, 1930, 1930, 2365,
3768      2365, 1913, 2365, 3289, 1916, 1931, 1931, 1931, 3297, 1931,
3769      2365, 1928, 1931, 1930, 1932, 1932, 1932, 2365, 3298, 1933,
3770
3771      1933, 1933, 1914, 1934, 1934, 1934, 1917, 1935, 1935, 1935,
3772      3299, 1935, 1932, 3300, 1935, 1920, 3301, 1933, 3302, 3303,
3773      1934, 1936, 1936, 1936, 1928, 1937, 1937, 1937, 1938, 1938,
3774      1938, 3304, 1938, 3305, 3306, 1938, 1953, 1953, 1953, 1936,
3775      3307, 3308, 1937, 1939, 1939, 1939, 1945, 1945, 1945, 1946,
3776      1946, 1946, 3309, 1932, 1933, 1958, 1958, 1958, 1962, 1962,
3777      1962, 1939, 3315, 1945, 1963, 1963, 1963, 1946, 1964, 1964,
3778      1964, 1966, 1966, 1966, 1968, 1968, 1968, 1969, 1969, 1969,
3779      1974, 1974, 1974, 3316, 1976, 1976, 1976, 1979, 1979, 1979,
3780      1981, 1981, 1981, 1983, 1983, 1983, 1984, 1984, 1984, 3317,
3781
3782      3310, 1939, 1976, 3318, 3319, 1979, 3310, 1981, 3320, 3322,
3783      1946, 1983, 3323, 1984, 1993, 1993, 1993, 3325, 1993, 3326,
3784      3328, 1993, 1996, 1996, 1996, 1997, 1997, 1997, 2002, 2002,
3785      2002, 2003, 2003, 2003, 1976, 3329, 2007, 2007, 2007, 3332,
3786      1996, 3333, 1997, 2008, 2008, 2008, 3334, 2008, 3335, 3337,
3787      2008, 3339, 1983, 2007, 2011, 2011, 2011, 2013, 2013, 2013,
3788      2014, 2014, 2014, 2015, 2015, 2015, 3341, 2015, 1996, 3343,
3789      2015, 3345, 2011, 3346, 2013, 3347, 3348, 2014, 2016, 2016,
3790      2016, 3331, 2007, 2018, 2018, 2018, 3349, 2019, 2019, 2019,
3791      2020, 2020, 2020, 3350, 2020, 3331, 2016, 2020, 2021, 2021,
3792
3793      2021, 2018, 3351, 2013, 2019, 3352, 3354, 2011, 2024, 2024,
3794      2024, 3356, 2024, 3358, 3359, 2024, 2021, 2027, 2027, 2027,
3795      2028, 2028, 2028, 3360, 2028, 3361, 3370, 2028, 2029, 2029,
3796      2029, 2016, 2029, 3408, 2027, 2029, 2033, 2033, 2033, 2035,
3797      2035, 2035, 2037, 2037, 2037, 2021, 2039, 2039, 2039, 3362,
3798      2039, 3382, 1540, 2039, 2033, 2042, 2042, 2042, 3371, 3372,
3799      2037, 2043, 2043, 2043, 3384, 2043, 3408, 3363, 2043, 2047,
3800      2047, 2047, 2042, 2047, 3370, 3373, 2047, 2050, 2050, 2050,
3801      2051, 2051, 2051, 3390, 2051, 3362, 3374, 2051, 2052, 2052,
3802      2052, 2056, 2056, 2056, 2050, 2057, 2057, 2057, 3382, 2057,
3803
3804      2037, 3384, 2057, 3363, 3402, 2052, 3371, 3372, 2056, 2060,
3805      2060, 2060, 2061, 2061, 2061, 3386, 2061, 3391, 3375, 2061,
3806      2064, 2064, 2064, 3373, 2065, 2065, 2065, 2060, 2065, 3390,
3807      3374, 2065, 2066, 2066, 2066, 1539, 3378, 2064, 2067, 2067,
3808      2067, 2068, 2068, 2068, 3378, 2068, 3379, 3402, 2068, 2066,
3809      2069, 2069, 2069, 1538, 3379, 2067, 3386, 2071, 2071, 2071,
3810      2060, 2071, 3375, 3391, 2071, 2074, 2074, 2074, 2069, 2075,
3811      2075, 2075, 3380, 2075, 3387, 3381, 2075, 2077, 2077, 2077,
3812      3380, 2077, 2074, 3381, 2077, 2081, 2081, 2081, 2084, 2084,
3813      2084, 2086, 2086, 2086, 2087, 2087, 2087, 2089, 2089, 2089,
3814
3815      3376, 2069, 3385, 2081, 3376, 3394, 2084, 3388, 2086, 2091,
3816      2091, 2091, 2087, 2091, 2089, 3387, 2091, 2095, 2095, 2095,
3817      2098, 2098, 2098, 2100, 2100, 2100, 2101, 2101, 2101, 3383,
3818      2101, 3420, 3377, 2101, 3430, 2095, 3377, 3394, 2098, 3385,
3819      2100, 3403, 3388, 2089, 2102, 2102, 2102, 2103, 2103, 2103,
3820      3395, 2103, 2084, 1536, 2103, 2087, 2105, 2105, 2105, 3389,
3821      3420, 2102, 2107, 2107, 2107, 2108, 2108, 2108, 2109, 2109,
3822      2109, 2110, 2110, 2110, 2105, 2110, 3383, 3392, 2110, 3393,
3823      2107, 3430, 3395, 2108, 3403, 2109, 2111, 2111, 2111, 2112,
3824      2112, 2112, 3400, 2112, 3389, 3396, 2112, 2113, 2113, 2113,
3825
3826      2118, 2118, 2118, 2111, 3396, 2120, 2120, 2120, 3397, 2120,
3827      3398, 2107, 2120, 3399, 3392, 2113, 3393, 3397, 2118, 2123,
3828      2123, 2123, 2105, 2124, 2124, 2124, 3400, 2125, 2125, 2125,
3829      2108, 2125, 3401, 3424, 2125, 3414, 3409, 2123, 2128, 2128,
3830      2128, 2124, 2130, 2130, 2130, 3398, 2130, 3452, 3399, 2130,
3831      2133, 2133, 2133, 2141, 2141, 2141, 2128, 2138, 2138, 2138,
3832      3406, 3452, 2113, 1533, 1532, 2118, 3401, 3424, 2133, 3409,
3833      2123, 2139, 2139, 2139, 2138, 2139, 2124, 3414, 2139, 2140,
3834      2140, 2140, 2146, 2146, 2146, 2147, 2147, 2147, 2148, 2148,
3835      2148, 2150, 2150, 2150, 3404, 3406, 2133, 2140, 2155, 2155,
3836
3837      2155, 2156, 2156, 2156, 2157, 2157, 2157, 2158, 2158, 2158,
3838      2160, 2160, 2160, 2161, 2161, 2161, 2162, 2162, 2162, 2163,
3839      2163, 2163, 2164, 2164, 2164, 2165, 2165, 2165, 2167, 2167,
3840      2167, 2170, 2170, 2170, 2173, 2173, 2173, 2174, 2174, 2174,
3841      3404, 2174, 3428, 2140, 2174, 3405, 2167, 1531, 3407, 2170,
3842      3428, 2173, 1530, 2158, 2176, 2176, 2176, 2177, 2177, 2177,
3843      2178, 2178, 2178, 3415, 2178, 3429, 1529, 2178, 2189, 2189,
3844      2189, 3412, 2176, 3429, 2177, 2190, 2190, 2190, 3416, 2167,
3845      2191, 2191, 2191, 3407, 2191, 3434, 2189, 2191, 2192, 2192,
3846      2192, 3405, 2190, 2197, 2197, 2197, 2198, 2198, 2198, 2199,
3847
3848      2199, 2199, 2200, 2200, 2200, 3415, 2200, 3417, 3412, 2200,
3849      2202, 2202, 2202, 2204, 2204, 2204, 2199, 2189, 2205, 2205,
3850      2205, 3421, 2205, 3426, 3416, 2205, 3434, 3410, 2202, 3413,
3851      2204, 2207, 2207, 2207, 3411, 2207, 3410, 3418, 2207, 2210,
3852      2210, 2210, 2198, 3411, 2212, 2212, 2212, 2214, 2214, 2214,
3853      3421, 2214, 1528, 3417, 2214, 3435, 1527, 2210, 2217, 2217,
3854      2217, 2202, 2212, 2220, 2220, 2220, 3413, 2220, 3419, 3426,
3855      2220, 2227, 2227, 2227, 3418, 3431, 2217, 2229, 2229, 2229,
3856      3425, 2229, 3427, 3438, 2229, 2238, 2238, 2238, 3422, 2227,
3857      2210, 2235, 2235, 2235, 3432, 2235, 3435, 3422, 2235, 2239,
3858
3859      2239, 2239, 2238, 2239, 3423, 3419, 2239, 3433, 2243, 2243,
3860      2243, 2217, 2243, 3423, 3425, 2243, 2247, 2247, 2247, 2248,
3861      2248, 2248, 3431, 2249, 2249, 2249, 2227, 2249, 3427, 3438,
3862      2249, 3432, 1525, 2247, 2252, 2252, 2252, 2248, 2253, 2253,
3863      2253, 3436, 2253, 3437, 3433, 2253, 2254, 2254, 2254, 3442,
3864      2254, 2252, 3439, 2254, 2257, 2257, 2257, 2259, 2259, 2259,
3865      1524, 2259, 3440, 1523, 2259, 1522, 2265, 2265, 2265, 2267,
3866      2267, 2267, 2257, 2268, 2268, 2268, 3436, 2268, 3437, 3443,
3867      2268, 3442, 3446, 2248, 2265, 1513, 2267, 2269, 2269, 2269,
3868      2271, 2271, 2271, 2272, 2272, 2272, 3441, 2272, 3439, 3440,
3869
3870      2272, 2279, 2279, 2279, 3444, 2269, 1505, 2271, 2282, 2282,
3871      2282, 3443, 2282, 3444, 3446, 2282, 2289, 2289, 2289, 2279,
3872      2257, 2285, 2285, 2285, 3447, 2285, 1490, 3448, 2285, 3449,
3873      2291, 2291, 2291, 3441, 2289, 2292, 2292, 2292, 2293, 2293,
3874      2293, 1489, 2293, 1484, 1483, 2293, 3445, 2269, 2291, 1482,
3875      2296, 2296, 2296, 2292, 2296, 3445, 3447, 2296, 2299, 2299,
3876      2299, 1480, 2300, 2300, 2300, 1473, 1472, 2289, 2301, 2301,
3877      2301, 2292, 2302, 2302, 2302, 3448, 2299, 3449, 2299, 2300,
3878      2303, 2303, 2303, 1454, 1449, 2301, 2304, 2304, 2304, 2302,
3879      2306, 2306, 2306, 2307, 2307, 2307, 2291, 2303, 2308, 2308,
3880
3881      2308, 2312, 2312, 2312, 2304, 2309, 2309, 2309, 2306, 3450,
3882      3453, 2307, 1446, 2313, 2313, 2313, 2308, 2313, 1445, 2301,
3883      2313, 3453, 1442, 2309, 2316, 2316, 2316, 2317, 2317, 2317,
3884      2318, 2318, 2318, 2319, 2319, 2319, 2302, 1437, 1428, 2303,
3885      1427, 3450, 2316, 2322, 2322, 2322, 2323, 2323, 2323, 1426,
3886      2306, 2304, 2325, 2325, 2325, 2326, 2326, 2326, 1422, 1417,
3887      2308, 2328, 2328, 2328, 2329, 2329, 2329, 2330, 2330, 2330,
3888      2331, 2331, 2331, 2334, 2334, 2334, 2335, 2335, 2335, 2336,
3889      2336, 2336, 1413, 2316, 2337, 2337, 2337, 2339, 2339, 2339,
3890      2342, 2342, 2342, 2343, 2343, 2343, 3451, 2343, 1405, 1400,
3891
3892      2343, 2346, 2346, 2346, 1399, 2339, 1393, 2342, 2347, 2347,
3893      2347, 1392, 2349, 2349, 2349, 1391, 2349, 1390, 2346, 2349,
3894      2362, 2362, 2362, 2363, 2363, 2363, 2347, 2363, 3451, 1385,
3895      2363, 2366, 2366, 2366, 2367, 2367, 2367, 1384, 2362, 2371,
3896      2371, 2371, 2373, 2373, 2373, 1383, 2373, 1382, 1368, 2373,
3897      2377, 2377, 2377, 2379, 2379, 2379, 1367, 2379, 1366, 1365,
3898      2379, 2383, 2383, 2383, 2385, 2385, 2385, 2346, 2377, 2384,
3899      2384, 2384, 2393, 2393, 2393, 2394, 2394, 2394, 1364, 2383,
3900      1363, 2362, 2385, 2399, 2399, 2399, 2384, 2399, 1362, 1361,
3901      2399, 1360, 1350, 2394, 1349, 1348, 2377, 2402, 2402, 2402,
3902
3903      2406, 2406, 2406, 2407, 2407, 2407, 1347, 2407, 1330, 1329,
3904      2407, 2408, 2408, 2408, 2402, 2385, 1324, 2406, 2409, 2409,
3905      2409, 1323, 2409, 1322, 1317, 2409, 2412, 2412, 2412, 2408,
3906      2417, 2417, 2417, 1316, 1299, 2394, 2419, 2419, 2419, 2420,
3907      2420, 2420, 1295, 2420, 2412, 1294, 2420, 1288, 2417, 2423,
3908      2423, 2423, 1284, 2419, 1283, 2424, 2424, 2424, 2425, 2425,
3909      2425, 1282, 2425, 1281, 1280, 2425, 1279, 2423, 2428, 2428,
3910      2428, 1278, 2424, 2429, 2429, 2429, 2434, 2434, 2434, 2436,
3911      2436, 2436, 2439, 2439, 2439, 2428, 2438, 2438, 2438, 1276,
3912      2429, 1275, 1273, 2434, 2440, 2440, 2440, 1272, 1271, 2439,
3913
3914      2423, 2424, 1266, 1258, 2438, 1256, 2441, 2441, 2441, 2443,
3915      2443, 2443, 2440, 2442, 2442, 2442, 1251, 1249, 2444, 2444,
3916      2444, 1240, 2444, 2428, 2441, 2444, 2443, 2434, 2445, 2445,
3917      2445, 2442, 1235, 1224, 2429, 2446, 2446, 2446, 2447, 2447,
3918      2447, 2448, 2448, 2448, 1222, 2445, 2449, 2449, 2449, 1221,
3919      2442, 1220, 2446, 1219, 2440, 2447, 2450, 2450, 2450, 2448,
3920      2451, 2451, 2451, 2453, 2453, 2453, 1217, 2441, 1216, 2454,
3921      2454, 2454, 1215, 1214, 2450, 2457, 2457, 2457, 2451, 1213,
3922      1212, 2453, 2458, 2458, 2458, 1210, 2446, 2454, 1209, 2447,
3923      2459, 2459, 2459, 2460, 2460, 2460, 2463, 2463, 2463, 1208,
3924
3925      2458, 2464, 2464, 2464, 2466, 2466, 2466, 2467, 2467, 2467,
3926      2471, 2471, 2471, 2474, 2474, 2474, 2475, 2475, 2475, 1207,
3927      2475, 1206, 2450, 2475, 2487, 2487, 2487, 2453, 2471, 1205,
3928      2474, 2454, 2498, 2498, 2498, 2501, 2501, 2501, 2504, 2504,
3929      2504, 1204, 2487, 2507, 2507, 2507, 2509, 2509, 2509, 1203,
3930      2510, 2510, 2510, 1201, 2510, 1200, 2504, 2510, 2511, 2511,
3931      2511, 2507, 1199, 2509, 2518, 2518, 2518, 2519, 2519, 2519,
3932      2520, 2520, 2520, 2526, 2526, 2526, 2511, 1198, 2527, 2527,
3933      2527, 2518, 2527, 1197, 2487, 2527, 1196, 1195, 2520, 1189,
3934      2526, 2529, 2529, 2529, 2531, 2531, 2531, 1188, 2531, 1187,
3935
3936      1184, 2531, 1183, 1182, 2504, 2534, 2534, 2534, 2529, 1180,
3937      2536, 2536, 2536, 2540, 2540, 2540, 2542, 2542, 2542, 2544,
3938      2544, 2544, 1176, 2534, 2556, 2556, 2556, 2520, 2536, 1173,
3939      2540, 1168, 1159, 2542, 2543, 2543, 2543, 2544, 2543, 1158,
3940      1155, 2543, 2545, 2545, 2545, 2546, 2546, 2546, 1154, 2546,
3941      1153, 1152, 2546, 2554, 2554, 2554, 2558, 2558, 2558, 2545,
3942      2560, 2560, 2560, 1151, 2561, 2561, 2561, 1137, 2561, 1130,
3943      2554, 2561, 1122, 1121, 2558, 1120, 1117, 2560, 2562, 2562,
3944      2562, 2563, 2563, 2563, 1114, 2564, 2564, 2564, 2565, 2565,
3945      2565, 1111, 2565, 1106, 1103, 2565, 2562, 1102, 1098, 2563,
3946
3947      2568, 2568, 2568, 2564, 2569, 2569, 2569, 1096, 2569, 1082,
3948      1081, 2569, 2570, 2570, 2570, 1080, 1079, 2568, 2571, 2571,
3949      2571, 2572, 2572, 2572, 2574, 2574, 2574, 1078, 1077, 2570,
3950      1076, 1075, 2575, 2575, 2575, 2571, 2576, 2576, 2576, 2572,
3951      2580, 2580, 2580, 2584, 2584, 2584, 1074, 1073, 2563, 2564,
3952      2575, 2585, 2585, 2585, 2576, 2589, 2589, 2589, 2580, 2590,
3953      2590, 2590, 1069, 2590, 1065, 1058, 2590, 2604, 2604, 2604,
3954      1055, 1054, 2589, 2619, 2619, 2619, 2622, 2622, 2622, 2623,
3955      2623, 2623, 2625, 2625, 2625, 2604, 2625, 1050, 1049, 2625,
3956      2628, 2628, 2628, 1048, 2622, 1045, 1044, 2576, 2631, 2631,
3957
3958      2631, 2634, 2634, 2634, 1043, 2635, 2635, 2635, 2628, 2635,
3959      1040, 1039, 2635, 1036, 1035, 2631, 1032, 1029, 2634, 2636,
3960      2636, 2636, 2640, 2640, 2640, 1025, 1024, 2604, 2642, 2642,
3961      2642, 1021, 2642, 1020, 1019, 2642, 1018, 2636, 1017, 2640,
3962      2646, 2646, 2646, 1015, 2647, 2647, 2647, 2622, 2647, 1014,
3963      1013, 2647, 2654, 2654, 2654, 1012, 1011, 2646, 2655, 2655,
3964      2655, 2656, 2656, 2656, 1010, 2656, 1009, 1008, 2656, 2654,
3965      2657, 2657, 2657, 1004,  999, 2655, 2658, 2658, 2658,  998,
3966      2658,  997,  994, 2658, 2661, 2661, 2661, 2657, 2663, 2663,
3967      2663,  993, 2663,  992,  990, 2663, 2671, 2671, 2671, 2672,
3968
3969      2672, 2672, 2661, 2672,  986,  982, 2672, 2673, 2673, 2673,
3970      2674, 2674, 2674, 2671, 2675, 2675, 2675,  981, 2675,  978,
3971       975, 2675,  974,  973, 2673,  972,  971, 2674, 2678, 2678,
3972      2678, 2680, 2680, 2680, 2681, 2681, 2681, 2682, 2682, 2682,
3973       970, 2682,  969,  967, 2682,  966, 2678,  965,  964, 2680,
3974       963,  962, 2681, 2685, 2685, 2685, 2686, 2686, 2686,  961,
3975      2686,  960,  959, 2686, 2687, 2687, 2687, 2688, 2688, 2688,
3976      2685, 2688,  958,  956, 2688, 2689, 2689, 2689, 2691, 2691,
3977      2691, 2687, 2696, 2696, 2696, 2697, 2697, 2697, 2701, 2701,
3978      2701,  955,  954, 2689,  953, 2681, 2691, 2680,  952, 2702,
3979
3980      2702, 2702,  951, 2702,  950, 2701, 2702, 2720, 2720, 2720,
3981      2734, 2734, 2734, 2736, 2736, 2736, 2737, 2737, 2737, 2738,
3982      2738, 2738, 2739, 2739, 2739, 2720, 2740, 2740, 2740,  949,
3983      2736, 2741, 2741, 2741, 2737, 2800, 2800, 2800,  948, 2739,
3984      2691,  947,  943, 2740,  942, 2742, 2742, 2742, 2741, 2742,
3985       940,  939, 2742, 2743, 2743, 2743,  938, 2743, 2720,  937,
3986      2743, 2746, 2746, 2746, 2750, 2750, 2750, 2751, 2751, 2751,
3987       936,  932, 2740, 2752, 2752, 2752,  930, 2752, 2737, 2746,
3988      2752, 2750,  929,  928, 2751, 2753, 2753, 2753, 2755, 2755,
3989      2755,  927, 2755,  923,  922, 2755, 2764, 2764, 2764, 2765,
3990
3991      2765, 2765, 2753, 2765,  918,  914, 2765, 2766, 2766, 2766,
3992       913, 2766,  910, 2764, 2766, 2769, 2769, 2769, 2770, 2770,
3993      2770,  909, 2770,  908,  907, 2770, 2772, 2772, 2772, 2774,
3994      2774, 2774, 2769, 2774,  906,  905, 2774, 2777, 2777, 2777,
3995      2778, 2778, 2778, 2772, 2778,  904,  901, 2778, 2779, 2779,
3996      2779, 2780, 2780, 2780, 2777, 2780,  900,  899, 2780, 2787,
3997      2787, 2787, 2788, 2788, 2788, 2779, 2789, 2789, 2789,  898,
3998      2789,  895,  894, 2789, 2792, 2792, 2792, 2787, 2792,  893,
3999      2788, 2792, 2795, 2795, 2795, 2798, 2798, 2798, 2801, 2801,
4000      2801, 2804, 2804, 2804,  890, 2804,  888,  885, 2804,  884,
4001
4002      2795,  883, 2798, 2798, 2815, 2815, 2815, 2824, 2824, 2824,
4003      2787, 2838, 2838, 2838, 2839, 2839, 2839, 2840, 2840, 2840,
4004       882, 2815, 2842, 2842, 2842, 2824, 2841, 2841, 2841, 2788,
4005      2841,  881,  878, 2841, 2840, 2843, 2843, 2843,  877,  876,
4006      2842, 2844, 2844, 2844,  875, 2844,  874,  871, 2844, 2845,
4007      2845, 2845, 2843, 2846, 2846, 2846, 2824, 2846,  870,  869,
4008      2846, 2848, 2848, 2848,  868, 2848, 2845,  866, 2848, 2853,
4009      2853, 2853,  863, 2842, 2854, 2854, 2854,  862, 2854,  860,
4010       857, 2854,  855, 2855, 2855, 2855, 2853, 2855,  852,  851,
4011      2855, 2858, 2858, 2858, 2859, 2859, 2859,  850, 2859,  849,
4012
4013       847, 2859, 2867, 2867, 2867,  846, 2867,  845, 2858, 2867,
4014      2870, 2870, 2870,  842, 2870,  841,  840, 2870, 2874, 2874,
4015      2874, 2875, 2875, 2875,  839, 2875,  838,  837, 2875, 2877,
4016      2877, 2877,  832, 2877,  831, 2874, 2877, 2880, 2880, 2880,
4017       830, 2880,  829,  828, 2880, 2889, 2889, 2889, 2890, 2890,
4018      2890, 2895, 2895, 2895, 2898, 2898, 2898, 2899, 2899, 2899,
4019      2900, 2900, 2900, 2889, 2900,  827, 2890, 2900,  826, 2895,
4020       825, 2898, 2898,  824, 2899, 2899,  823,  822, 2900, 2901,
4021      2901, 2901, 2902, 2902, 2902, 2903, 2903, 2903, 2904, 2904,
4022      2904, 2913, 2913, 2913, 2914, 2914, 2914,  821, 2914,  819,
4023
4024       817, 2914, 2923, 2923, 2923, 2936, 2936, 2936, 2913, 2937,
4025      2937, 2937,  816,  813, 2890, 2938, 2938, 2938,  810, 2938,
4026      2923,  807, 2938, 2941, 2941, 2941, 2942, 2942, 2942,  806,
4027      2942,  802,  801, 2942,  800, 2945, 2945, 2945,  799, 2945,
4028       796, 2941, 2945, 2951, 2951, 2951,  793, 2951,  792,  791,
4029      2951, 2954, 2954, 2954,  788, 2954,  787,  786, 2954, 2957,
4030      2957, 2957, 2964, 2964, 2964, 2965, 2965, 2965, 2923, 2965,
4031       783,  782, 2965, 2968, 2968, 2968, 2957,  780,  776, 2964,
4032      2983, 2983, 2983, 2985, 2985, 2985, 2991, 2991, 2991,  775,
4033      2968,  774, 2992, 2992, 2992,  772, 2992,  761, 2983, 2992,
4034
4035       759, 2985,  756, 2991, 2991, 2993, 2993, 2993,  755, 2993,
4036      2992,  754, 2993, 2996, 2996, 2996, 2997, 2997, 2997, 2998,
4037      2998, 2998,  752, 2993, 3007, 3007, 3007,  751, 3007,  750,
4038       746, 3007,  745,  744, 2985, 2994, 2994, 2994, 2994, 2994,
4039      2994, 2994, 2994, 2994,  743,  740, 2994, 3016, 3016, 3016,
4040       739, 2994, 2994, 2994, 2994, 2994, 3025, 3025, 3025, 3026,
4041      3026, 3026, 3031, 3031, 3031, 3016, 3032, 3032, 3032,  738,
4042      3032,  737,  736, 3032, 3033, 3033, 3033, 3026,  735, 3031,
4043      2994, 2994, 2995, 2995, 2995, 2995, 2995, 2995, 2995, 2995,
4044      2995, 3033,  734, 2995, 3039, 3039, 3039,  732, 2995, 2995,
4045
4046      2995, 2995, 2995, 3040, 3040, 3040,  729, 3040,  728,  726,
4047      3040, 3039, 3041, 3041, 3041, 3042, 3042, 3042,  724, 3042,
4048       721,  720, 3042, 3055, 3055, 3055,  714, 2995, 2995, 3041,
4049      3061, 3061, 3061,  712, 3061,  710,  707, 3061,  706,  702,
4050       701, 3055,  700, 3080, 3080, 3080,  699,  696, 3061, 3064,
4051      3064, 3064, 3064, 3064, 3064, 3064, 3064, 3064,  695,  694,
4052      3064, 3080, 3094, 3094, 3094, 3064, 3064, 3064, 3064, 3064,
4053      3091, 3091, 3091,  693, 3091,  690,  689, 3091,  688, 3094,
4054      3095, 3095, 3095,  687, 3095,  686,  680, 3095, 3117, 3117,
4055      3117, 3129, 3129, 3129, 3064, 3064, 3065, 3065, 3065, 3065,
4056
4057      3065, 3065, 3065, 3065, 3065,  679, 3117, 3065,  677, 3129,
4058      3129,  671, 3065, 3065, 3065, 3065, 3065, 3099, 3099, 3099,
4059       670, 3099,  666,  660, 3099, 3102, 3102, 3102,  659, 3102,
4060       655,  648, 3102, 3146, 3146, 3146, 3147, 3147, 3147,  644,
4061       638, 3065, 3065, 3148, 3148, 3148,  634, 3153, 3153, 3153,
4062      3146, 3153,  626, 3147, 3153, 3156, 3156, 3156,  625,  624,
4063      3148, 3167, 3167, 3167, 3171, 3171, 3171, 3182, 3182, 3182,
4064       623,  622, 3156, 3183, 3183, 3183,  618, 3183,  611, 3167,
4065      3183,  610, 3171,  609, 3182, 3184, 3184, 3184, 3185, 3185,
4066      3185,  605, 3185,  598,  597, 3185, 3186, 3186, 3186, 3187,
4067
4068      3187, 3187, 3184, 3187,  593,  587, 3187, 3194, 3194, 3194,
4069      3195, 3195, 3195, 3186, 3195, 3171,  586, 3195, 3204, 3204,
4070      3204, 3214, 3214, 3214, 3194, 3214,  582,  574, 3214,  573,
4071      3217, 3217, 3217,  569, 3217,  560, 3204, 3217, 3220, 3220,
4072      3220,  556, 3220,  548,  547, 3220, 3229, 3229, 3229,  546,
4073      3229,  542,  536, 3229,  535, 3204, 3344, 3344, 3344, 3353,
4074      3353, 3353,  534, 3353,  530,  524, 3353, 3454, 3454, 3454,
4075      3455, 3455, 3455,  523, 3344,  519,  513, 3353,  512,  511,
4076       510,  509,  508,  507,  503, 3454,  497,  496, 3455, 3458,
4077      3458, 3458, 3458, 3458, 3458, 3458, 3458, 3458, 3459, 3459,
4078
4079      3459, 3459, 3459, 3459, 3459, 3459, 3459, 3460, 3460, 3460,
4080      3460, 3460, 3460, 3460, 3460, 3460, 3461, 3461, 3461, 3461,
4081      3461, 3461, 3461, 3461, 3461, 3462, 3462, 3462, 3462, 3462,
4082      3462, 3462, 3462, 3462, 3463, 3463, 3463, 3463, 3463, 3463,
4083      3463, 3463, 3463, 3464, 3464, 3464, 3464, 3464, 3464, 3464,
4084      3464, 3464, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
4085      3465, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466,
4086      3467, 3467, 3467, 3467, 3467, 3467, 3467, 3467, 3467, 3468,
4087      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3469, 3469,
4088      3469, 3469, 3469, 3469, 3469, 3469, 3469, 3470, 3470, 3470,
4089
4090      3470, 3470, 3470, 3470, 3470, 3470, 3471, 3471, 3471, 3471,
4091      3471, 3471, 3471, 3471, 3471, 3472, 3472, 3472, 3472, 3472,
4092      3472, 3472, 3472, 3472, 3473, 3473, 3473, 3473, 3473, 3473,
4093      3473, 3473, 3473, 3474, 3474, 3474, 3474, 3474, 3474, 3474,
4094      3474, 3474, 3475, 3475, 3475, 3475, 3475, 3475, 3475, 3475,
4095      3475, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476,
4096      3477, 3477, 3477, 3477, 3477, 3477, 3477, 3477, 3477, 3478,
4097      3478, 3478, 3478, 3478, 3478, 3478, 3478, 3478, 3479, 3479,
4098      3479, 3479, 3479, 3479, 3479, 3479, 3479, 3480, 3480, 3480,
4099      3480, 3480, 3480, 3480, 3480, 3480, 3481, 3481, 3481, 3481,
4100
4101      3481, 3481, 3481, 3481, 3481, 3482, 3482, 3482, 3482, 3482,
4102      3482, 3482, 3482, 3482, 3483, 3483, 3483, 3483, 3483, 3483,
4103      3483, 3483, 3483, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
4104      3484, 3484, 3485, 3485, 3485, 3485, 3485, 3485, 3485, 3485,
4105      3485, 3486, 3486, 3486, 3486, 3486, 3486, 3486, 3486, 3486,
4106      3487, 3487, 3487, 3487, 3487, 3487, 3487, 3487, 3487, 3488,
4107      3488, 3488, 3488, 3488, 3488, 3488, 3488, 3488, 3489, 3489,
4108      3489, 3489, 3489, 3489, 3489, 3489, 3489, 3490, 3490, 3490,
4109      3490, 3490, 3490, 3490, 3490, 3490, 3491, 3491, 3491, 3491,
4110      3491, 3491, 3491, 3491, 3491, 3492, 3492, 3492, 3492, 3492,
4111
4112      3492, 3492, 3492, 3492, 3493, 3493, 3493, 3493, 3493, 3493,
4113      3493, 3493, 3493, 3494, 3494, 3494, 3494, 3494, 3494, 3494,
4114      3494, 3494, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495,
4115      3495, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496,
4116      3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3498,
4117      3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3499, 3499,
4118      3499, 3499, 3499, 3499, 3499, 3499, 3499, 3500, 3500, 3500,
4119      3500, 3500, 3500, 3500, 3500, 3500, 3501, 3501, 3501, 3501,
4120      3501, 3501, 3501, 3501, 3501, 3502, 3502, 3502, 3502, 3502,
4121      3502, 3502, 3502, 3502, 3503, 3503, 3503, 3503, 3503, 3503,
4122
4123      3503, 3503, 3503, 3504, 3504, 3504, 3504, 3504, 3504, 3504,
4124      3504, 3504, 3505, 3505, 3505, 3505, 3505, 3505, 3505, 3505,
4125      3505, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506,
4126      3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3508,
4127      3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3509, 3509,
4128      3509, 3509, 3509, 3509, 3509, 3509, 3509, 3510, 3510, 3510,
4129      3510, 3510, 3510, 3510, 3510, 3510, 3511, 3511, 3511, 3511,
4130      3511, 3511, 3511, 3511, 3511, 3512, 3512, 3512, 3512, 3512,
4131      3512, 3512, 3512, 3512, 3513, 3513, 3513, 3513, 3513, 3513,
4132      3513, 3513, 3513, 3514, 3514, 3514, 3514, 3514, 3514, 3514,
4133
4134      3514, 3514, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515,
4135      3515, 3516, 3516, 3516, 3516, 3516, 3516, 3516, 3516, 3516,
4136      3517, 3517, 3517, 3517, 3517, 3517, 3517, 3517, 3517, 3518,
4137      3518, 3518, 3518, 3518, 3518, 3518, 3518, 3518, 3519, 3519,
4138      3519, 3519, 3519, 3519, 3519, 3519, 3519, 3520, 3520, 3520,
4139      3520, 3520, 3520, 3520, 3520, 3520, 3521, 3521, 3521,  494,
4140       493,  492, 3521, 3522, 3522, 3522,  488,  481,  476, 3522,
4141      3523, 3523, 3523,  475,  473,  469, 3523, 3524, 3524, 3524,
4142       463,  462,  461, 3524, 3525, 3525, 3525,  457,  451,  447,
4143      3525, 3526, 3526, 3526,  443,  439,  437, 3526, 3527, 3527,
4144
4145      3527,  436,  435,  431, 3527, 3528, 3528, 3528,  425,  424,
4146       420, 3528, 3529, 3529, 3529,  414,  413,  409, 3529, 3530,
4147      3530, 3530,  402,  401,  400, 3530, 3531, 3531, 3531,  396,
4148       388,  387, 3531, 3532, 3532, 3532,  386,  385,  381, 3532,
4149      3533, 3533, 3533,  372,  366,  362, 3533, 3534, 3534, 3534,
4150       361,  357,  351, 3534, 3535, 3535, 3535,  350,  349,  345,
4151      3535, 3536, 3536, 3536,  338,  336,  335, 3536, 3537, 3537,
4152      3537,  331,  328,  326, 3537, 3538, 3538, 3538,  325,  324,
4153       320, 3538, 3539, 3539, 3539,  316,  313,  309, 3539, 3540,
4154      3540, 3540,  306,  305,  297, 3540, 3541, 3541, 3541,  293,
4155
4156       289,  288, 3541, 3542, 3542, 3542,  287,  281,  280, 3542,
4157      3543, 3543, 3543,  278,  275,  263, 3543, 3544, 3544, 3544,
4158         0,    0,    0, 3544, 3545, 3545, 3545,    0,    0,    0,
4159      3545, 3546, 3546, 3546,    0,    0,    0, 3546, 3547, 3547,
4160      3547,    0,    0,    0, 3547, 3548, 3548, 3548,    0,    0,
4161         0, 3548, 3549, 3549, 3549,    0,    0,    0, 3549, 3550,
4162      3550, 3550, 3550, 3550, 3550, 3550,    0, 3550, 3551, 3551,
4163      3551,    0,    0,    0, 3551, 3552,    0,    0,    0, 3552,
4164      3553, 3553, 3553,    0,    0,    0, 3553, 3554,    0,    0,
4165         0, 3554, 3555, 3555, 3555,    0,    0,    0, 3555, 3556,
4166
4167         0,    0,    0, 3556, 3557, 3557, 3557,    0,    0,    0,
4168      3557, 3558,    0,    0,    0, 3558, 3559, 3559, 3559,    0,
4169         0,    0, 3559, 3560,    0,    0,    0, 3560, 3561, 3561,
4170      3561,    0,    0,    0, 3561, 3562,    0,    0,    0, 3562,
4171      3563, 3563, 3563,    0,    0,    0, 3563, 3564,    0,    0,
4172         0, 3564, 3565, 3565, 3565,    0,    0,    0, 3565, 3566,
4173         0,    0,    0, 3566, 3567, 3567, 3567,    0,    0,    0,
4174      3567, 3568,    0,    0,    0, 3568, 3569, 3569, 3569,    0,
4175         0,    0, 3569, 3570,    0,    0,    0, 3570, 3571, 3571,
4176      3571,    0,    0,    0, 3571, 3572,    0,    0,    0, 3572,
4177
4178      3573, 3573, 3573,    0,    0,    0, 3573, 3574,    0,    0,
4179         0, 3574, 3575, 3575, 3575,    0,    0,    0, 3575, 3576,
4180         0,    0,    0, 3576, 3577, 3577, 3577,    0,    0,    0,
4181      3577, 3578,    0,    0,    0, 3578, 3579, 3579, 3579,    0,
4182         0,    0, 3579, 3580,    0,    0,    0, 3580, 3581, 3581,
4183      3581,    0,    0,    0, 3581, 3582,    0,    0,    0, 3582,
4184      3583, 3583, 3583,    0,    0,    0, 3583, 3584,    0,    0,
4185         0, 3584, 3585, 3585, 3585,    0,    0,    0, 3585, 3586,
4186         0,    0,    0, 3586, 3587, 3587, 3587,    0,    0,    0,
4187      3587, 3588,    0,    0,    0, 3588, 3589, 3589, 3589,    0,
4188
4189         0,    0, 3589, 3590,    0,    0,    0, 3590, 3591, 3591,
4190      3591,    0,    0,    0, 3591, 3592,    0,    0,    0, 3592,
4191      3593, 3593, 3593,    0,    0,    0, 3593, 3594,    0,    0,
4192         0, 3594, 3595, 3595, 3595,    0,    0,    0, 3595, 3596,
4193         0,    0,    0, 3596, 3597, 3597, 3597,    0,    0,    0,
4194      3597, 3598,    0,    0,    0, 3598, 3599, 3599, 3599,    0,
4195         0,    0, 3599, 3600,    0,    0,    0, 3600, 3601, 3601,
4196      3601,    0,    0,    0, 3601, 3602,    0,    0,    0, 3602,
4197      3603, 3603, 3603,    0,    0,    0, 3603, 3604,    0,    0,
4198         0, 3604, 3605, 3605, 3605,    0,    0,    0, 3605, 3606,
4199
4200         0,    0,    0, 3606, 3607, 3607, 3607,    0,    0,    0,
4201      3607, 3608,    0,    0,    0, 3608, 3609, 3609, 3609, 3609,
4202      3609, 3609, 3609, 3609, 3609, 3610,    0,    0,    0,    0,
4203      3610, 3611, 3611, 3611,    0,    0,    0, 3611, 3612, 3612,
4204      3612, 3612,    0,    0, 3612, 3612, 3613, 3613, 3613,    0,
4205         0,    0, 3613, 3614, 3614, 3614, 3614,    0,    0, 3614,
4206      3614, 3615, 3615, 3615,    0,    0,    0, 3615, 3616, 3616,
4207      3616, 3616,    0,    0, 3616, 3616, 3617, 3617, 3617,    0,
4208         0,    0, 3617, 3618, 3618, 3618, 3618,    0,    0, 3618,
4209      3618, 3619, 3619, 3619,    0,    0,    0, 3619, 3620, 3620,
4210
4211      3620, 3620,    0,    0, 3620, 3620, 3621, 3621, 3621,    0,
4212         0,    0, 3621, 3622, 3622, 3622, 3622,    0,    0, 3622,
4213      3622, 3623, 3623, 3623,    0,    0,    0, 3623, 3624, 3624,
4214      3624, 3624,    0,    0, 3624, 3624, 3625, 3625, 3625,    0,
4215         0,    0, 3625, 3626, 3626, 3626, 3626,    0,    0, 3626,
4216      3626, 3627, 3627, 3627,    0,    0,    0, 3627, 3628, 3628,
4217      3628, 3628,    0,    0, 3628, 3628, 3629, 3629, 3629,    0,
4218         0,    0, 3629, 3630, 3630, 3630, 3630,    0,    0, 3630,
4219      3630, 3631, 3631, 3631,    0,    0,    0, 3631, 3632, 3632,
4220      3632, 3632,    0,    0, 3632, 3632, 3633, 3633, 3633,    0,
4221
4222         0,    0, 3633, 3634, 3634, 3634, 3634,    0,    0, 3634,
4223      3634, 3635, 3635, 3635,    0,    0,    0, 3635, 3636, 3636,
4224      3636, 3636,    0,    0, 3636, 3636, 3637, 3637, 3637,    0,
4225         0,    0, 3637, 3638, 3638, 3638, 3638,    0,    0, 3638,
4226      3638, 3639, 3639, 3639, 3639,    0, 3639,    0, 3639, 3640,
4227      3640, 3640, 3640,    0,    0, 3640, 3640, 3641, 3641, 3641,
4228         0,    0,    0, 3641, 3642, 3642, 3642, 3642,    0,    0,
4229      3642, 3642, 3643, 3643, 3643,    0,    0,    0, 3643, 3644,
4230      3644, 3644, 3644,    0,    0, 3644, 3644, 3645, 3645, 3645,
4231         0,    0,    0, 3645, 3646, 3646, 3646, 3646,    0,    0,
4232
4233      3646, 3646, 3647, 3647, 3647,    0,    0,    0, 3647, 3648,
4234      3648, 3648, 3648,    0,    0, 3648, 3648, 3649, 3649, 3649,
4235      3649,    0, 3649,    0, 3649, 3650, 3650, 3650, 3650,    0,
4236         0, 3650, 3650, 3651, 3651, 3651, 3651,    0, 3651,    0,
4237      3651, 3652, 3652, 3652, 3652,    0,    0, 3652, 3652, 3653,
4238      3653, 3653,    0,    0,    0, 3653, 3654, 3654, 3654, 3654,
4239         0,    0, 3654, 3654, 3655, 3655, 3655, 3655,    0, 3655,
4240         0, 3655, 3656, 3656, 3656, 3656,    0,    0, 3656, 3656,
4241      3657, 3657, 3657, 3657,    0, 3657,    0, 3657, 3658, 3658,
4242      3658, 3658,    0,    0, 3658, 3658, 3659, 3659, 3659,    0,
4243
4244         0,    0, 3659, 3660, 3660, 3660, 3660,    0,    0, 3660,
4245      3660, 3661, 3661, 3661,    0,    0,    0, 3661, 3662, 3662,
4246      3662, 3662,    0,    0, 3662, 3662, 3663, 3663, 3663, 3663,
4247         0,    0, 3663, 3663, 3664, 3664, 3664,    0,    0,    0,
4248      3664, 3665, 3665, 3665, 3665,    0,    0, 3665, 3665, 3666,
4249      3666, 3666,    0,    0,    0, 3666, 3667, 3667, 3667, 3667,
4250         0,    0, 3667, 3667, 3668, 3668, 3668, 3668, 3668, 3668,
4251      3668, 3668, 3668, 3669,    0, 3669,    0,    0, 3669, 3670,
4252      3670, 3670,    0,    0,    0, 3670, 3671, 3671, 3671, 3671,
4253         0,    0, 3671, 3671, 3672, 3672, 3672, 3672,    0, 3672,
4254
4255         0, 3672, 3673, 3673, 3673, 3673,    0,    0, 3673, 3673,
4256      3674, 3674, 3674, 3674,    0, 3674,    0, 3674, 3675, 3675,
4257      3675, 3675,    0,    0, 3675, 3675, 3676, 3676, 3676,    0,
4258         0,    0, 3676, 3677, 3677, 3677, 3677,    0,    0, 3677,
4259      3677, 3678, 3678, 3678,    0,    0,    0, 3678, 3679, 3679,
4260      3679, 3679,    0,    0, 3679, 3679, 3680, 3680, 3680,    0,
4261         0,    0, 3680, 3681, 3681, 3681, 3681,    0,    0, 3681,
4262      3681, 3682, 3682, 3682,    0,    0,    0, 3682, 3683, 3683,
4263      3683, 3683,    0,    0, 3683, 3683, 3684, 3684, 3684,    0,
4264         0,    0, 3684, 3685, 3685, 3685, 3685,    0,    0, 3685,
4265
4266      3685, 3686, 3686, 3686, 3686,    0, 3686,    0, 3686, 3687,
4267      3687, 3687, 3687,    0,    0, 3687, 3687, 3688, 3688, 3688,
4268      3688,    0, 3688,    0, 3688, 3689, 3689, 3689, 3689,    0,
4269         0, 3689, 3689, 3690, 3690, 3690,    0,    0,    0, 3690,
4270      3691, 3691, 3691, 3691,    0,    0, 3691, 3691, 3692, 3692,
4271      3692, 3692,    0, 3692,    0, 3692, 3693, 3693, 3693, 3693,
4272         0,    0, 3693, 3693, 3694, 3694, 3694, 3694,    0, 3694,
4273         0, 3694, 3695, 3695, 3695, 3695,    0,    0, 3695, 3695,
4274      3696, 3696, 3696,    0,    0,    0, 3696, 3697, 3697, 3697,
4275      3697,    0,    0, 3697, 3697, 3698, 3698, 3698,    0,    0,
4276
4277         0, 3698, 3699, 3699, 3699, 3699,    0,    0, 3699, 3699,
4278      3700, 3700, 3700,    0,    0,    0, 3700, 3701, 3701, 3701,
4279      3701,    0,    0, 3701, 3701, 3702, 3702, 3702,    0,    0,
4280         0, 3702, 3703, 3703, 3703, 3703,    0,    0, 3703, 3703,
4281      3704, 3704, 3704,    0,    0,    0, 3704, 3705, 3705, 3705,
4282      3705,    0,    0, 3705, 3705, 3706, 3706, 3706,    0,    0,
4283         0, 3706, 3707, 3707, 3707, 3707,    0,    0, 3707, 3707,
4284      3708, 3708, 3708,    0,    0,    0, 3708, 3709, 3709, 3709,
4285      3709,    0,    0, 3709, 3709, 3710, 3710, 3710,    0,    0,
4286         0, 3710, 3711, 3711, 3711, 3711,    0,    0, 3711, 3711,
4287
4288      3712, 3712, 3712,    0,    0,    0, 3712, 3713, 3713, 3713,
4289      3713,    0,    0, 3713, 3713, 3714, 3714, 3714, 3714,    0,
4290         0, 3714, 3714, 3715, 3715, 3715,    0,    0,    0, 3715,
4291      3716, 3716, 3716, 3716,    0,    0, 3716, 3716, 3717, 3717,
4292      3717,    0,    0,    0, 3717, 3718, 3718, 3718, 3718,    0,
4293         0, 3718, 3718, 3719, 3719, 3719,    0,    0,    0, 3719,
4294      3720, 3720, 3720, 3720,    0,    0, 3720, 3720, 3721, 3721,
4295      3721, 3721,    0,    0, 3721, 3721, 3722, 3722, 3722,    0,
4296         0,    0, 3722, 3723, 3723, 3723, 3723,    0,    0, 3723,
4297      3723, 3724, 3724, 3724,    0,    0,    0, 3724, 3725, 3725,
4298
4299      3725, 3725,    0,    0, 3725, 3725, 3726, 3726, 3726, 3726,
4300      3726, 3726, 3726, 3726, 3726, 3727, 3727, 3727, 3727, 3727,
4301      3727, 3727, 3727, 3727, 3728, 3728, 3728,    0,    0,    0,
4302      3728, 3729, 3729, 3729, 3729,    0,    0, 3729, 3729, 3730,
4303      3730, 3730, 3730,    0,    0, 3730, 3730, 3731, 3731, 3731,
4304         0,    0,    0, 3731, 3732, 3732, 3732, 3732,    0,    0,
4305      3732, 3732, 3733, 3733, 3733,    0,    0,    0, 3733, 3734,
4306      3734, 3734, 3734,    0,    0, 3734, 3734, 3735, 3735, 3735,
4307         0,    0,    0, 3735, 3736, 3736, 3736, 3736,    0,    0,
4308      3736, 3736, 3737, 3737, 3737,    0,    0,    0, 3737, 3738,
4309
4310      3738, 3738,    0,    0,    0, 3738, 3739, 3739, 3739, 3739,
4311         0,    0, 3739, 3739, 3740, 3740, 3740,    0,    0,    0,
4312      3740, 3741, 3741, 3741, 3741,    0,    0, 3741, 3741, 3742,
4313      3742, 3742,    0,    0,    0, 3742, 3743, 3743, 3743, 3743,
4314         0,    0, 3743, 3743, 3744, 3744, 3744,    0,    0,    0,
4315      3744, 3745, 3745, 3745, 3745,    0,    0, 3745, 3745, 3746,
4316      3746, 3746,    0,    0,    0, 3746, 3747, 3747, 3747, 3747,
4317         0,    0, 3747, 3747, 3748, 3748, 3748, 3748,    0,    0,
4318      3748, 3748, 3749, 3749, 3749, 3749,    0,    0, 3749, 3749,
4319      3750, 3750, 3750,    0,    0,    0, 3750, 3751, 3751, 3751,
4320
4321      3751,    0,    0, 3751, 3751, 3752, 3752, 3752, 3752,    0,
4322      3752,    0, 3752, 3753, 3753, 3753, 3753,    0,    0, 3753,
4323      3753, 3754, 3754, 3754,    0,    0,    0, 3754, 3755, 3755,
4324      3755, 3755,    0,    0, 3755, 3755, 3756, 3756, 3756,    0,
4325         0,    0, 3756, 3757, 3757, 3757, 3757,    0,    0, 3757,
4326      3757, 3758, 3758, 3758,    0,    0,    0, 3758, 3759, 3759,
4327      3759, 3759,    0,    0, 3759, 3759, 3760, 3760, 3760,    0,
4328         0,    0, 3760, 3761, 3761, 3761, 3761,    0,    0, 3761,
4329      3761, 3762, 3762, 3762,    0,    0,    0, 3762, 3763, 3763,
4330      3763, 3763,    0,    0, 3763, 3763, 3764, 3764, 3764,    0,
4331
4332         0,    0, 3764, 3765, 3765, 3765, 3765,    0,    0, 3765,
4333      3765, 3766, 3766, 3766,    0,    0,    0, 3766, 3767, 3767,
4334      3767, 3767,    0,    0, 3767, 3767, 3768, 3768, 3768, 3768,
4335         0,    0, 3768, 3768, 3769, 3769, 3769,    0,    0,    0,
4336      3769, 3770, 3770, 3770, 3770,    0,    0, 3770, 3770, 3771,
4337      3771, 3771,    0,    0,    0, 3771, 3772, 3772, 3772, 3772,
4338         0,    0, 3772, 3772, 3773, 3773, 3773, 3773,    0, 3773,
4339         0, 3773, 3774, 3774, 3774, 3774,    0,    0, 3774, 3774,
4340      3775, 3775, 3775, 3775,    0,    0, 3775, 3775, 3776, 3776,
4341      3776, 3776,    0, 3776,    0, 3776, 3777, 3777, 3777, 3777,
4342
4343         0,    0, 3777, 3777, 3778, 3778, 3778, 3778,    0, 3778,
4344         0, 3778, 3779, 3779, 3779, 3779,    0,    0, 3779, 3779,
4345      3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3781,
4346      3781, 3781, 3781, 3781, 3781, 3781, 3781, 3781, 3782, 3782,
4347      3782,    0,    0,    0, 3782, 3783, 3783, 3783, 3783,    0,
4348         0, 3783, 3783, 3784, 3784, 3784, 3784,    0,    0, 3784,
4349      3784, 3785, 3785, 3785,    0,    0,    0, 3785, 3786, 3786,
4350      3786, 3786,    0,    0, 3786, 3786, 3787, 3787, 3787,    0,
4351         0,    0, 3787, 3788, 3788, 3788, 3788,    0,    0, 3788,
4352      3788, 3789, 3789, 3789,    0,    0,    0, 3789, 3790, 3790,
4353
4354      3790, 3790,    0,    0, 3790, 3790, 3791, 3791, 3791,    0,
4355         0,    0, 3791, 3792, 3792, 3792,    0,    0,    0, 3792,
4356      3793, 3793, 3793, 3793,    0,    0, 3793, 3793, 3794, 3794,
4357      3794,    0,    0,    0, 3794, 3795, 3795, 3795, 3795,    0,
4358         0, 3795, 3795, 3796, 3796, 3796,    0,    0,    0, 3796,
4359      3797, 3797, 3797, 3797,    0,    0, 3797, 3797, 3798, 3798,
4360      3798, 3798,    0, 3798,    0, 3798, 3799, 3799, 3799, 3799,
4361         0,    0, 3799, 3799, 3800, 3800, 3800,    0,    0,    0,
4362      3800, 3801, 3801, 3801, 3801,    0,    0, 3801, 3801, 3802,
4363      3802, 3802, 3802,    0,    0, 3802, 3802, 3803, 3803, 3803,
4364
4365         0,    0,    0, 3803, 3804, 3804, 3804, 3804,    0,    0,
4366      3804, 3804, 3805, 3805, 3805, 3805,    0, 3805,    0, 3805,
4367      3806, 3806, 3806, 3806,    0,    0, 3806, 3806, 3807, 3807,
4368      3807,    0,    0,    0, 3807, 3808, 3808, 3808, 3808,    0,
4369         0, 3808, 3808, 3809, 3809, 3809,    0,    0,    0, 3809,
4370      3810, 3810, 3810, 3810,    0,    0, 3810, 3810, 3811, 3811,
4371      3811,    0,    0,    0, 3811, 3812, 3812, 3812, 3812,    0,
4372         0, 3812, 3812, 3813, 3813, 3813,    0,    0,    0, 3813,
4373      3814, 3814, 3814, 3814,    0,    0, 3814, 3814, 3815, 3815,
4374      3815,    0,    0,    0, 3815, 3816, 3816, 3816, 3816,    0,
4375
4376         0, 3816, 3816, 3817, 3817, 3817, 3817,    0, 3817,    0,
4377      3817, 3818, 3818, 3818, 3818,    0,    0, 3818, 3818, 3819,
4378      3819, 3819,    0,    0,    0, 3819, 3820, 3820, 3820, 3820,
4379         0,    0, 3820, 3820, 3821, 3821, 3821, 3821,    0,    0,
4380      3821, 3821, 3822, 3822, 3822, 3822,    0, 3822,    0, 3822,
4381      3823, 3823, 3823, 3823,    0,    0, 3823, 3823, 3824, 3824,
4382      3824,    0,    0,    0, 3824, 3825, 3825, 3825, 3825,    0,
4383         0, 3825, 3825, 3826, 3826, 3826, 3826,    0,    0, 3826,
4384      3826, 3827, 3827, 3827, 3827,    0,    0, 3827, 3827, 3828,
4385      3828, 3828, 3828,    0,    0, 3828, 3828, 3829, 3829, 3829,
4386
4387      3829,    0,    0, 3829, 3829, 3830, 3830, 3830, 3830, 3830,
4388      3830, 3830, 3830, 3830, 3831, 3831, 3831, 3831, 3831, 3831,
4389      3831, 3831, 3831, 3832, 3832, 3832, 3832,    0, 3832,    0,
4390      3832, 3833, 3833, 3833, 3833,    0,    0, 3833, 3833, 3834,
4391      3834, 3834, 3834,    0,    0, 3834, 3834, 3835, 3835, 3835,
4392         0,    0,    0, 3835, 3836, 3836, 3836, 3836,    0,    0,
4393      3836, 3836, 3837, 3837, 3837,    0,    0,    0, 3837, 3838,
4394      3838, 3838, 3838,    0,    0, 3838, 3838, 3839, 3839, 3839,
4395      3839,    0, 3839,    0, 3839, 3840, 3840, 3840, 3840,    0,
4396         0, 3840, 3840, 3841, 3841, 3841, 3841,    0, 3841,    0,
4397
4398      3841, 3842, 3842, 3842, 3842,    0, 3842,    0, 3842, 3843,
4399      3843, 3843, 3843,    0,    0, 3843, 3843, 3844, 3844, 3844,
4400      3844,    0, 3844,    0, 3844, 3845, 3845, 3845, 3845,    0,
4401         0, 3845, 3845, 3846, 3846, 3846,    0,    0,    0, 3846,
4402      3847, 3847, 3847, 3847,    0,    0, 3847, 3847, 3848, 3848,
4403      3848, 3848,    0,    0, 3848, 3848, 3849, 3849, 3849,    0,
4404         0,    0, 3849, 3850, 3850, 3850, 3850,    0,    0, 3850,
4405      3850, 3851, 3851, 3851,    0,    0,    0, 3851, 3852, 3852,
4406      3852, 3852,    0,    0, 3852, 3852, 3853, 3853, 3853, 3853,
4407         0, 3853,    0, 3853, 3854, 3854, 3854, 3854,    0,    0,
4408
4409      3854, 3854, 3855, 3855, 3855,    0,    0,    0, 3855, 3856,
4410      3856, 3856,    0,    0,    0, 3856, 3857, 3857, 3857, 3857,
4411         0,    0, 3857, 3857, 3858, 3858, 3858,    0,    0,    0,
4412      3858, 3859, 3859, 3859, 3859,    0,    0, 3859, 3859, 3860,
4413      3860, 3860,    0,    0,    0, 3860, 3861, 3861, 3861,    0,
4414         0,    0, 3861, 3862, 3862, 3862, 3862,    0,    0, 3862,
4415      3862, 3863, 3863, 3863,    0,    0,    0, 3863, 3864, 3864,
4416      3864, 3864,    0,    0, 3864, 3864, 3865, 3865, 3865,    0,
4417         0,    0, 3865, 3866, 3866, 3866, 3866,    0,    0, 3866,
4418      3866, 3867, 3867, 3867, 3867,    0,    0, 3867, 3867, 3868,
4419
4420      3868, 3868, 3868,    0,    0, 3868, 3868, 3869, 3869, 3869,
4421         0,    0,    0, 3869, 3870, 3870, 3870, 3870,    0,    0,
4422      3870, 3870, 3871, 3871, 3871, 3871,    0,    0, 3871, 3871,
4423      3872, 3872, 3872, 3872,    0,    0, 3872, 3872, 3873, 3873,
4424      3873, 3873,    0,    0, 3873, 3873, 3874, 3874, 3874, 3874,
4425      3874, 3874, 3874, 3874, 3874, 3875, 3875, 3875, 3875, 3875,
4426      3875, 3875, 3875, 3875, 3876, 3876, 3876, 3876,    0,    0,
4427      3876, 3876, 3877, 3877, 3877, 3877,    0,    0, 3877, 3877,
4428      3878, 3878, 3878,    0,    0,    0, 3878, 3879, 3879, 3879,
4429         0,    0,    0, 3879, 3880, 3880, 3880, 3880,    0,    0,
4430
4431      3880, 3880, 3881, 3881, 3881, 3881,    0,    0, 3881, 3881,
4432      3882, 3882, 3882,    0,    0,    0, 3882, 3883, 3883, 3883,
4433      3883,    0,    0, 3883, 3883, 3884, 3884, 3884,    0,    0,
4434         0, 3884, 3885, 3885, 3885, 3885,    0,    0, 3885, 3885,
4435      3886, 3886, 3886,    0,    0,    0, 3886, 3887, 3887, 3887,
4436      3887,    0,    0, 3887, 3887, 3888, 3888, 3888,    0,    0,
4437         0, 3888, 3889, 3889, 3889, 3889,    0,    0, 3889, 3889,
4438      3890, 3890, 3890,    0,    0,    0, 3890, 3891, 3891, 3891,
4439      3891,    0,    0, 3891, 3891, 3892, 3892, 3892, 3892,    0,
4440         0, 3892, 3892, 3893, 3893, 3893,    0,    0,    0, 3893,
4441
4442      3894, 3894, 3894,    0,    0,    0, 3894, 3895, 3895, 3895,
4443      3895,    0,    0, 3895, 3895, 3896, 3896, 3896,    0,    0,
4444         0, 3896, 3897, 3897, 3897, 3897,    0,    0, 3897, 3897,
4445      3898, 3898, 3898,    0,    0,    0, 3898, 3899, 3899, 3899,
4446         0,    0,    0, 3899, 3900, 3900, 3900,    0,    0,    0,
4447      3900, 3901, 3901, 3901, 3901,    0,    0, 3901, 3901, 3902,
4448      3902, 3902,    0,    0,    0, 3902, 3903, 3903, 3903, 3903,
4449         0,    0, 3903, 3903, 3904, 3904, 3904, 3904,    0,    0,
4450      3904, 3904, 3905, 3905, 3905, 3905,    0,    0, 3905, 3905,
4451      3906, 3906, 3906, 3906,    0, 3906,    0, 3906, 3907, 3907,
4452
4453      3907, 3907,    0,    0, 3907, 3907, 3908, 3908, 3908, 3908,
4454         0,    0, 3908, 3908, 3909, 3909, 3909, 3909,    0,    0,
4455      3909, 3909, 3910, 3910, 3910, 3910,    0,    0, 3910, 3910,
4456      3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3912,
4457      3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3913, 3913,
4458      3913, 3913,    0,    0, 3913, 3913, 3914, 3914, 3914, 3914,
4459         0,    0, 3914, 3914, 3915, 3915, 3915,    0,    0,    0,
4460      3915, 3916, 3916, 3916, 3916,    0, 3916,    0, 3916, 3917,
4461      3917, 3917, 3917,    0,    0, 3917, 3917, 3918, 3918, 3918,
4462         0,    0,    0, 3918, 3919, 3919, 3919, 3919,    0,    0,
4463
4464      3919, 3919, 3920, 3920, 3920,    0,    0,    0, 3920, 3921,
4465      3921, 3921, 3921,    0,    0, 3921, 3921, 3922, 3922, 3922,
4466      3922,    0, 3922,    0, 3922, 3923, 3923, 3923, 3923,    0,
4467         0, 3923, 3923, 3924, 3924, 3924,    0,    0,    0, 3924,
4468      3925, 3925, 3925, 3925,    0,    0, 3925, 3925, 3926, 3926,
4469      3926,    0,    0,    0, 3926, 3927, 3927, 3927, 3927,    0,
4470         0, 3927, 3927, 3928, 3928, 3928, 3928,    0,    0, 3928,
4471      3928, 3929, 3929, 3929,    0,    0,    0, 3929, 3930, 3930,
4472      3930,    0,    0,    0, 3930, 3931, 3931, 3931, 3931,    0,
4473      3931,    0, 3931, 3932, 3932, 3932, 3932,    0,    0, 3932,
4474
4475      3932, 3933, 3933, 3933, 3933,    0, 3933,    0, 3933, 3934,
4476      3934, 3934,    0,    0,    0, 3934, 3935, 3935, 3935,    0,
4477         0,    0, 3935, 3936, 3936, 3936, 3936,    0,    0, 3936,
4478      3936, 3937, 3937, 3937, 3937,    0, 3937,    0, 3937, 3938,
4479      3938, 3938, 3938,    0,    0, 3938, 3938, 3939, 3939, 3939,
4480      3939,    0,    0, 3939, 3939, 3940, 3940, 3940, 3940,    0,
4481         0, 3940, 3940, 3941, 3941, 3941, 3941,    0, 3941,    0,
4482      3941, 3942, 3942, 3942, 3942,    0,    0, 3942, 3942, 3943,
4483      3943, 3943, 3943,    0,    0, 3943, 3943, 3944, 3944, 3944,
4484      3944,    0,    0, 3944, 3944, 3945, 3945, 3945, 3945, 3945,
4485
4486      3945, 3945, 3945, 3945, 3946, 3946, 3946, 3946, 3946, 3946,
4487      3946, 3946, 3946, 3947, 3947, 3947, 3947,    0,    0, 3947,
4488      3947, 3948, 3948, 3948,    0,    0,    0, 3948, 3949, 3949,
4489      3949,    0,    0,    0, 3949, 3950, 3950, 3950, 3950,    0,
4490         0, 3950, 3950, 3951, 3951, 3951,    0,    0,    0, 3951,
4491      3952, 3952, 3952, 3952,    0,    0, 3952, 3952, 3953, 3953,
4492      3953,    0,    0,    0, 3953, 3954, 3954, 3954, 3954,    0,
4493         0, 3954, 3954, 3955, 3955, 3955,    0,    0,    0, 3955,
4494      3956, 3956, 3956, 3956,    0,    0, 3956, 3956, 3957, 3957,
4495      3957,    0,    0,    0, 3957, 3958, 3958, 3958,    0,    0,
4496
4497         0, 3958, 3959, 3959, 3959,    0,    0,    0, 3959, 3960,
4498      3960, 3960, 3960,    0,    0, 3960, 3960, 3961, 3961, 3961,
4499         0,    0,    0, 3961, 3962, 3962, 3962,    0,    0,    0,
4500      3962, 3963, 3963, 3963,    0,    0,    0, 3963, 3964, 3964,
4501      3964, 3964, 3964, 3964, 3964, 3964, 3964, 3965, 3965, 3965,
4502      3965, 3965, 3965, 3965, 3965, 3965, 3966, 3966, 3966, 3966,
4503      3966, 3966, 3966, 3966, 3966, 3967, 3967, 3967, 3967, 3967,
4504      3967, 3967, 3967, 3967, 3968, 3968, 3968, 3968, 3968, 3968,
4505      3968, 3968, 3968, 3969, 3969, 3969, 3969, 3969, 3969, 3969,
4506      3969, 3969, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
4507
4508      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
4509      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
4510      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
4511      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
4512      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
4513      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
4514      3457, 3457, 3457, 3457, 3457, 3457, 3457
4515     } ;
4516
4517 /* Table of booleans, true if rule could match eol. */
4518 static yyconst flex_int32_t yy_rule_can_match_eol[590] =
4519     {   0,
4520 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4521     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4522     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4523     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4524     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4525     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4526     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4527     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4528     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4529     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4530     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4531     0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4532     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4533     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4534     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4535     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4536     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4537     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4538     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4539     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4540     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4541     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4542     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4543     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4544     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4545     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4546     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4547     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4548     1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
4549     0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4550
4551 static yy_state_type yy_last_accepting_state;
4552 static char *yy_last_accepting_cpos;
4553
4554 extern int surf_parse__flex_debug;
4555 int surf_parse__flex_debug = 0;
4556
4557 /* The intent behind this definition is that it'll catch
4558  * any uses of REJECT which flex missed.
4559  */
4560 #define REJECT reject_used_but_not_detected
4561 #define yymore() yymore_used_but_not_detected
4562 #define YY_MORE_ADJ 0
4563 #define YY_RESTORE_YY_MORE_OFFSET
4564 char *surf_parse_text;
4565 /* Validating XML processor for src/surf/simgrid.dtd.
4566  *
4567  * This program was generated with the FleXML XML processor generator.
4568  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4569  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4570  * (1.9.6).
4571  * 
4572  * There are two, intertwined parts to this program, part A and part B.
4573  *
4574  * Part A
4575  * ------
4576  * 
4577  * Some parts, here collectively called "Part A", are found in the 
4578  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4579  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4580  *
4581  * You can redistribute, use, perform, display and/or modify "Part A"
4582  * provided the following two conditions hold:
4583  *
4584  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4585  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4586  *    FITNESS FOR A PARTICULAR PURPOSE.
4587  *
4588  * 2. The program distribution conditions do not in any way affect the
4589  *    distribution conditions of the FleXML system used to generate this
4590  *    file or any version of FleXML derived from that system.
4591  *
4592  * Notice that these are explicit rights granted to you for files
4593  * generated by the FleXML system.  For your rights in connection with
4594  * the FleXML system itself please consult the GNU General Public License.
4595  * 
4596  * Part B
4597  * ------
4598  * 
4599  * The other parts, here collectively called "Part B", and which came 
4600  * from the DTD used by FleXML to generate this program, can be 
4601  * distributed (or not, as the case may be) under the terms of whoever
4602  * wrote them, provided these terms respect and obey the two conditions 
4603  * above under the heading "Part A".
4604  *
4605  * The author of and contributors to FleXML specifically disclaim
4606  * any copyright interest in "Part B", unless "Part B" was written 
4607  * by the author of or contributors to FleXML.
4608  * 
4609  */
4610
4611 /* Version strings. */
4612 const char surfxml_flexml_version[] = "1.9.6";
4613
4614 /* ANSI headers. */
4615 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4616 #include <stdio.h>
4617 #include <string.h>
4618 #include <assert.h>
4619 #include <stdarg.h>
4620 #include <ctype.h>
4621      
4622 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4623 # ifndef __STRICT_ANSI__
4624 #  include <io.h>
4625 #  include <process.h>
4626 # endif
4627 #else
4628 # include <unistd.h>
4629 #endif
4630      
4631 #ifndef FLEXML_INDEXSTACKSIZE
4632 #define FLEXML_INDEXSTACKSIZE 1000
4633 #endif
4634
4635 /* Generated definitions. */
4636 #define FLEXML_yylineno
4637 #ifndef FLEXML_BUFFERSTACKSIZE
4638 #define FLEXML_BUFFERSTACKSIZE 1000000
4639 #endif
4640 #define FLEXML_NEED_BUFFERLIT
4641
4642 /* XML processor api. */
4643 /* FleXML-provided data. */
4644 int surfxml_pcdata_ix;
4645 extern char *surfxml_bufferstack;
4646 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4647 AT_surfxml_mount_name AX_surfxml_mount_name;
4648 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4649 short int surfxml_mount_name_isset;
4650 AT_surfxml_random_generator AX_surfxml_random_generator;
4651 #define A_surfxml_random_generator AX_surfxml_random_generator
4652 short int surfxml_random_generator_isset;
4653 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4654 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4655 short int surfxml_ASroute_gw___dst_isset;
4656 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4657 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4658 short int surfxml_trace___connect_element_isset;
4659 AT_surfxml_prop_id AX_surfxml_prop_id;
4660 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4661 short int surfxml_prop_id_isset;
4662 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4663 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4664 short int surfxml_host___link_up_isset;
4665 AT_surfxml_host_id AX_surfxml_host_id;
4666 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4667 short int surfxml_host_id_isset;
4668 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4669 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4670 short int surfxml_ASroute_symmetrical_isset;
4671 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4672 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4673 short int surfxml_peer_lat_isset;
4674 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4675 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4676 short int surfxml_process_on___failure_isset;
4677 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4678 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4679 short int surfxml_link_latency___file_isset;
4680 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4681 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4682 short int surfxml_peer_availability___file_isset;
4683 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
4684 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
4685 short int surfxml_model___prop_value_isset;
4686 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4687 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4688 short int surfxml_link___ctn_direction_isset;
4689 AT_surfxml_host_state AX_surfxml_host_state;
4690 #define A_surfxml_host_state AX_surfxml_host_state
4691 short int surfxml_host_state_isset;
4692 AT_surfxml_AS_id AX_surfxml_AS_id;
4693 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4694 short int surfxml_AS_id_isset;
4695 AT_surfxml_host_power AX_surfxml_host_power;
4696 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4697 short int surfxml_host_power_isset;
4698 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4699 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4700 short int surfxml_cabinet_suffix_isset;
4701 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4702 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4703 short int surfxml_gpu_name_isset;
4704 AT_surfxml_router_id AX_surfxml_router_id;
4705 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4706 short int surfxml_router_id_isset;
4707 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4708 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4709 short int surfxml_storage___type_id_isset;
4710 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4711 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4712 short int surfxml_process_start___time_isset;
4713 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4714 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4715 short int surfxml_cabinet_bw_isset;
4716 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4717 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4718 short int surfxml_cluster_suffix_isset;
4719 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4720 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4721 short int surfxml_bypassASroute_dst_isset;
4722 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4723 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4724 short int surfxml_host___link_id_isset;
4725 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
4726 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
4727 short int surfxml_model___prop_id_isset;
4728 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4729 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4730 short int surfxml_ASroute_src_isset;
4731 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4732 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4733 short int surfxml_cluster_prefix_isset;
4734 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4735 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4736 short int surfxml_cabinet_prefix_isset;
4737 AT_surfxml_trace_file AX_surfxml_trace_file;
4738 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4739 short int surfxml_trace_file_isset;
4740 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4741 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4742 short int surfxml_link_sharing___policy_isset;
4743 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4744 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4745 short int surfxml_storage_typeId_isset;
4746 AT_surfxml_random_min AX_surfxml_random_min;
4747 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4748 short int surfxml_random_min_isset;
4749 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4750 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4751 short int surfxml_link___ctn_id_isset;
4752 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4753 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4754 short int surfxml_peer_bw___out_isset;
4755 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4756 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4757 short int surfxml_cluster_availability___file_isset;
4758 AT_surfxml_storage_content AX_surfxml_storage_content;
4759 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4760 short int surfxml_storage_content_isset;
4761 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4762 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4763 short int surfxml_process_kill___time_isset;
4764 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4765 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4766 short int surfxml_cluster_bb___bw_isset;
4767 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4768 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4769 short int surfxml_host_pstate_isset;
4770 AT_surfxml_argument_value AX_surfxml_argument_value;
4771 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4772 short int surfxml_argument_value_isset;
4773 AT_surfxml_link_state AX_surfxml_link_state;
4774 #define A_surfxml_link_state AX_surfxml_link_state
4775 short int surfxml_link_state_isset;
4776 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4777 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4778 short int surfxml_cluster_loopback___bw_isset;
4779 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4780 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4781 short int surfxml_ASroute_gw___src_isset;
4782 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4783 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4784 short int surfxml_AS_routing_isset;
4785 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4786 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4787 short int surfxml_link_bandwidth_isset;
4788 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4789 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4790 short int surfxml_cluster_id_isset;
4791 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4792 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4793 short int surfxml_peer_bw___in_isset;
4794 AT_surfxml_random_mean AX_surfxml_random_mean;
4795 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4796 short int surfxml_random_mean_isset;
4797 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4798 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4799 short int surfxml_storage___type_size_isset;
4800 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4801 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4802 short int surfxml_cluster_bb___lat_isset;
4803 AT_surfxml_link_latency AX_surfxml_link_latency;
4804 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4805 short int surfxml_link_latency_isset;
4806 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4807 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4808 short int surfxml_backbone_bandwidth_isset;
4809 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4810 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4811 short int surfxml_backbone_id_isset;
4812 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4813 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4814 short int surfxml_trace___connect_kind_isset;
4815 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4816 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4817 short int surfxml_cabinet_lat_isset;
4818 AT_surfxml_random_seed AX_surfxml_random_seed;
4819 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4820 short int surfxml_random_seed_isset;
4821 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4822 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4823 short int surfxml_cluster_state___file_isset;
4824 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4825 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4826 short int surfxml_link_bandwidth___file_isset;
4827 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4828 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4829 short int surfxml_storage___type_content_isset;
4830 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4831 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4832 short int surfxml_route_symmetrical_isset;
4833 AT_surfxml_random_id AX_surfxml_random_id;
4834 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4835 short int surfxml_random_id_isset;
4836 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4837 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4838 short int surfxml_mstorage_name_isset;
4839 AT_surfxml_random_max AX_surfxml_random_max;
4840 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4841 short int surfxml_random_max_isset;
4842 AT_surfxml_link_id AX_surfxml_link_id;
4843 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4844 short int surfxml_link_id_isset;
4845 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4846 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4847 short int surfxml_cluster_topology_isset;
4848 AT_surfxml_process_host AX_surfxml_process_host;
4849 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4850 short int surfxml_process_host_isset;
4851 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4852 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4853 short int surfxml_cabinet_id_isset;
4854 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4855 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4856 short int surfxml_host_availability___file_isset;
4857 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4858 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4859 short int surfxml_cluster_lat_isset;
4860 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4861 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4862 short int surfxml_router_coordinates_isset;
4863 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4864 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4865 short int surfxml_trace_periodicity_isset;
4866 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4867 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4868 short int surfxml_cluster_bb___sharing___policy_isset;
4869 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4870 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4871 short int surfxml_peer_state___file_isset;
4872 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4873 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4874 short int surfxml_peer_coordinates_isset;
4875 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4876 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4877 short int surfxml_bypassASroute_src_isset;
4878 AT_surfxml_prop_value AX_surfxml_prop_value;
4879 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4880 short int surfxml_prop_value_isset;
4881 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4882 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4883 short int surfxml_mstorage_typeId_isset;
4884 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4885 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4886 short int surfxml_ASroute_dst_isset;
4887 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4888 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4889 short int surfxml_link_state___file_isset;
4890 AT_surfxml_random_radical AX_surfxml_random_radical;
4891 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4892 short int surfxml_random_radical_isset;
4893 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4894 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4895 short int surfxml_mount_storageId_isset;
4896 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4897 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4898 short int surfxml_bypassASroute_gw___src_isset;
4899 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4900 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4901 short int surfxml_trace___connect_trace_isset;
4902 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4903 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4904 short int surfxml_cluster_power_isset;
4905 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4906 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4907 short int surfxml_cluster_topo___parameters_isset;
4908 AT_surfxml_process_function AX_surfxml_process_function;
4909 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4910 short int surfxml_process_function_isset;
4911 AT_surfxml_peer_id AX_surfxml_peer_id;
4912 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4913 short int surfxml_peer_id_isset;
4914 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4915 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4916 short int surfxml_cabinet_radical_isset;
4917 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4918 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4919 short int surfxml_storage_content___type_isset;
4920 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4921 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4922 short int surfxml_cluster_router___id_isset;
4923 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4924 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4925 short int surfxml_cluster_loopback___lat_isset;
4926 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4927 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4928 short int surfxml_cluster_sharing___policy_isset;
4929 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4930 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4931 short int surfxml_bypassRoute_dst_isset;
4932 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4933 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4934 short int surfxml_cabinet_power_isset;
4935 AT_surfxml_host_core AX_surfxml_host_core;
4936 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4937 short int surfxml_host_core_isset;
4938 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4939 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4940 short int surfxml_storage___type_model_isset;
4941 AT_surfxml_host_availability AX_surfxml_host_availability;
4942 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4943 short int surfxml_host_availability_isset;
4944 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4945 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4946 short int surfxml_bypassRoute_src_isset;
4947 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4948 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4949 short int surfxml_backbone_latency_isset;
4950 AT_surfxml_route_src AX_surfxml_route_src;
4951 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4952 short int surfxml_route_src_isset;
4953 AT_surfxml_storage_id AX_surfxml_storage_id;
4954 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4955 short int surfxml_storage_id_isset;
4956 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4957 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4958 short int surfxml_storage___type_content___type_isset;
4959 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4960 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4961 short int surfxml_host_coordinates_isset;
4962 AT_surfxml_trace_id AX_surfxml_trace_id;
4963 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4964 short int surfxml_trace_id_isset;
4965 AT_surfxml_peer_power AX_surfxml_peer_power;
4966 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4967 short int surfxml_peer_power_isset;
4968 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4969 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4970 short int surfxml_cluster_radical_isset;
4971 AT_surfxml_config_id AX_surfxml_config_id;
4972 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4973 short int surfxml_config_id_isset;
4974 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4975 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4976 short int surfxml_bypassASroute_gw___dst_isset;
4977 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4978 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4979 short int surfxml_host___link_down_isset;
4980 AT_surfxml_include_file AX_surfxml_include_file;
4981 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4982 short int surfxml_include_file_isset;
4983 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4984 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4985 short int surfxml_random_std___deviation_isset;
4986 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4987 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4988 short int surfxml_cluster_core_isset;
4989 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4990 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4991 short int surfxml_cluster_limiter___link_isset;
4992 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4993 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4994 short int surfxml_host_state___file_isset;
4995 AT_surfxml_route_dst AX_surfxml_route_dst;
4996 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4997 short int surfxml_route_dst_isset;
4998 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4999 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
5000 short int surfxml_cluster_bw_isset;
5001 AT_surfxml_platform_version AX_surfxml_platform_version;
5002 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
5003 short int surfxml_platform_version_isset;
5004
5005 /* XML state. */
5006 #ifdef FLEX_DEBUG
5007 # define ENTER(state)   debug_enter(state,#state)
5008 # define LEAVE          debug_leave()
5009 # define SET(state)     debug_set(state,#state)
5010   static void debug_enter(int, const char*);
5011   static void debug_leave(void);
5012   static void debug_set(int, const char*);
5013 #else
5014 # define ENTER(state)   (yy_push_state(state))
5015 # define LEAVE          (yy_pop_state())
5016 # define SET(state)     BEGIN(state)
5017 #endif
5018
5019 /* Generic actions. */
5020 #define SKIP    /*skip*/
5021 #define SUCCEED        CLEANUP; return 0
5022
5023 #define FAIL    return fail
5024 static int fail(const char*, ...);
5025
5026 enum {flexml_max_err_msg_size = 512};
5027 static char flexml_err_msg[flexml_max_err_msg_size];
5028 const char * surfxml_parse_err_msg()
5029 {
5030     return flexml_err_msg;
5031 }
5032 static void reset_surfxml_parse_err_msg()
5033 {
5034     flexml_err_msg[0] = '\0';
5035 }
5036
5037 /* Cleanup */
5038 static void cleanup(void);
5039 #define CLEANUP  cleanup()
5040
5041 /* Text buffer stack handling. */
5042 char *surfxml_bufferstack = NULL;
5043 static int blimit = FLEXML_BUFFERSTACKSIZE;
5044 static int bnext = 1;
5045
5046 static int *indexstack = NULL;
5047 static int ilimit = FLEXML_INDEXSTACKSIZE;
5048 static int inext = 1;
5049
5050 #define BUFFERSET(P)  (P = bnext)
5051 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5052 #define BUFFERDONE    (BUFFERPUTC('\0'))
5053
5054 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
5055
5056 /* after this is called, there are at least 2 slots left in the stack */
5057 static int ck_blimit()
5058 {
5059      if (bnext >= blimit) {
5060          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5061          {
5062              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5063              assert(temp);
5064              surfxml_bufferstack = temp;
5065          }
5066      }
5067      return 0;
5068 }
5069
5070 /* after this is called, there are at least 2 slots left in the stack */
5071 static int ck_ilimit()
5072 {
5073      if (inext >= ilimit) {
5074          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5075          {
5076              int *temp = (int *) realloc(indexstack, ilimit);
5077              assert(temp);
5078              indexstack = temp;
5079          }
5080      }
5081      return 0;
5082 }
5083
5084 #ifdef FLEXML_NEED_BUFFERLIT
5085 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5086 {
5087    BUFFERSET(*pp);
5088    if (c) {
5089       const char *s = strchr(text, c), *e = strrchr(text, c);
5090       assert(s && e && s <= e);
5091       ++s;
5092       while (s < e) {
5093          if (isspace(*s)) {
5094             BUFFERPUTC(' ');
5095             do ++s; while (s < e && isspace(*s));
5096          } else
5097            BUFFERPUTC(*s++);
5098       }
5099    } else {
5100       const char *s = text;
5101       while (*s)
5102         BUFFERPUTC(*s++);
5103    }
5104    BUFFERDONE;
5105 }
5106 #endif
5107
5108 static void pushbuffer(int p)
5109 {
5110     ck_ilimit();
5111     indexstack[inext++] = p;
5112     indexstack[inext++] = bnext;    
5113 }
5114
5115 static int popbuffer(void)
5116 {
5117     assert(inext >= 2);
5118     bnext = indexstack[--inext];
5119     return indexstack[--inext];
5120 }
5121
5122 /* General internal entities are `unput' back onto the input stream... */
5123 #define ENTITYTEXT(T) \
5124   { char *s = (T), *e = s+strlen(s);\
5125     while (--e >= s) { unput(*e); }}
5126
5127 /* Flex standard options. */
5128 #define YY_NO_INPUT 1
5129 /* Flex user-requested options. */
5130 /* XML character classes (currently restricted to ASCII). */
5131 /* "Common syntactic structures." */
5132 /* "Names and Tokens." */
5133 /* Miscellaneous. */
5134 /* Parser states (flex `exclusive start conditions'):
5135  *
5136  * PROLOG       the XML prolog of the document before <?xml...>
5137  * DOCTYPE      the XML prolog of the document after <?xml...>
5138  * EPILOG       after the root element
5139  * INCOMMENT    inside an XML comment <!--....-->
5140  * INPI         inside an XML PI <?...?>
5141  * VALUE1       inside a '...'-delimited literal
5142  * VALUE2       inside a "..."-delimited literal
5143  * CDATA        inside a <![CDATA[...] ]> section.
5144  * ROOT_<tag>   expect root element <tag>
5145  * AL_<tag>     inside the attribute list for <tag>
5146  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5147  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5148  */
5149
5150 /* State names. */
5151 const char* *surfxml_statenames=NULL;
5152
5153 #define INITIAL 0
5154 #define PROLOG 1
5155 #define DOCTYPE 2
5156 #define EPILOG 3
5157 #define INCOMMENT 4
5158 #define INPI 5
5159 #define VALUE1 6
5160 #define VALUE2 7
5161 #define CDATA 8
5162 #define ROOT_surfxml_platform 9
5163 #define AL_surfxml_platform 10
5164 #define S_surfxml_platform 11
5165 #define S_surfxml_platform_1 12
5166 #define S_surfxml_platform_2 13
5167 #define S_surfxml_platform_3 14
5168 #define S_surfxml_platform_4 15
5169 #define S_surfxml_platform_5 16
5170 #define S_surfxml_platform_6 17
5171 #define S_surfxml_platform_7 18
5172 #define S_surfxml_platform_8 19
5173 #define E_surfxml_platform 20
5174 #define AL_surfxml_include 21
5175 #define S_surfxml_include 22
5176 #define S_surfxml_include_1 23
5177 #define S_surfxml_include_2 24
5178 #define E_surfxml_include 25
5179 #define AL_surfxml_trace 26
5180 #define IN_trace 27
5181 #define AL_surfxml_random 28
5182 #define E_surfxml_random 29
5183 #define AL_surfxml_trace___connect 30
5184 #define E_surfxml_trace___connect 31
5185 #define AL_surfxml_AS 32
5186 #define S_surfxml_AS 33
5187 #define S_surfxml_AS_1 34
5188 #define S_surfxml_AS_2 35
5189 #define S_surfxml_AS_3 36
5190 #define S_surfxml_AS_4 37
5191 #define S_surfxml_AS_5 38
5192 #define S_surfxml_AS_6 39
5193 #define S_surfxml_AS_7 40
5194 #define S_surfxml_AS_8 41
5195 #define S_surfxml_AS_9 42
5196 #define S_surfxml_AS_10 43
5197 #define S_surfxml_AS_11 44
5198 #define S_surfxml_AS_12 45
5199 #define S_surfxml_AS_13 46
5200 #define S_surfxml_AS_14 47
5201 #define S_surfxml_AS_15 48
5202 #define S_surfxml_AS_16 49
5203 #define E_surfxml_AS 50
5204 #define AL_surfxml_storage___type 51
5205 #define S_surfxml_storage___type 52
5206 #define S_surfxml_storage___type_1 53
5207 #define S_surfxml_storage___type_2 54
5208 #define E_surfxml_storage___type 55
5209 #define AL_surfxml_storage 56
5210 #define S_surfxml_storage 57
5211 #define S_surfxml_storage_1 58
5212 #define S_surfxml_storage_2 59
5213 #define E_surfxml_storage 60
5214 #define AL_surfxml_mount 61
5215 #define E_surfxml_mount 62
5216 #define AL_surfxml_mstorage 63
5217 #define E_surfxml_mstorage 64
5218 #define AL_surfxml_host 65
5219 #define S_surfxml_host 66
5220 #define S_surfxml_host_1 67
5221 #define S_surfxml_host_2 68
5222 #define E_surfxml_host 69
5223 #define AL_surfxml_gpu 70
5224 #define E_surfxml_gpu 71
5225 #define AL_surfxml_host___link 72
5226 #define E_surfxml_host___link 73
5227 #define AL_surfxml_cluster 74
5228 #define S_surfxml_cluster 75
5229 #define S_surfxml_cluster_1 76
5230 #define S_surfxml_cluster_2 77
5231 #define E_surfxml_cluster 78
5232 #define AL_surfxml_cabinet 79
5233 #define E_surfxml_cabinet 80
5234 #define AL_surfxml_peer 81
5235 #define E_surfxml_peer 82
5236 #define AL_surfxml_router 83
5237 #define E_surfxml_router 84
5238 #define AL_surfxml_backbone 85
5239 #define E_surfxml_backbone 86
5240 #define AL_surfxml_link 87
5241 #define S_surfxml_link 88
5242 #define S_surfxml_link_1 89
5243 #define S_surfxml_link_2 90
5244 #define E_surfxml_link 91
5245 #define AL_surfxml_route 92
5246 #define S_surfxml_route 93
5247 #define S_surfxml_route_1 94
5248 #define S_surfxml_route_2 95
5249 #define E_surfxml_route 96
5250 #define AL_surfxml_ASroute 97
5251 #define S_surfxml_ASroute 98
5252 #define S_surfxml_ASroute_1 99
5253 #define S_surfxml_ASroute_2 100
5254 #define E_surfxml_ASroute 101
5255 #define AL_surfxml_link___ctn 102
5256 #define E_surfxml_link___ctn 103
5257 #define AL_surfxml_bypassRoute 104
5258 #define S_surfxml_bypassRoute 105
5259 #define S_surfxml_bypassRoute_1 106
5260 #define S_surfxml_bypassRoute_2 107
5261 #define E_surfxml_bypassRoute 108
5262 #define AL_surfxml_bypassASroute 109
5263 #define S_surfxml_bypassASroute 110
5264 #define S_surfxml_bypassASroute_1 111
5265 #define S_surfxml_bypassASroute_2 112
5266 #define E_surfxml_bypassASroute 113
5267 #define AL_surfxml_process 114
5268 #define S_surfxml_process 115
5269 #define S_surfxml_process_1 116
5270 #define S_surfxml_process_2 117
5271 #define E_surfxml_process 118
5272 #define AL_surfxml_argument 119
5273 #define E_surfxml_argument 120
5274 #define AL_surfxml_config 121
5275 #define S_surfxml_config 122
5276 #define S_surfxml_config_1 123
5277 #define S_surfxml_config_2 124
5278 #define E_surfxml_config 125
5279 #define AL_surfxml_prop 126
5280 #define E_surfxml_prop 127
5281 #define AL_surfxml_model___prop 128
5282 #define E_surfxml_model___prop 129
5283 #define IMPOSSIBLE 130
5284
5285 #ifndef YY_NO_UNISTD_H
5286 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5287  * down here because we want the user's section 1 to have been scanned first.
5288  * The user has a chance to override it with an option.
5289  */
5290 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5291 #  ifndef __STRICT_ANSI__
5292 #    include <io.h>
5293 #    include <process.h>
5294 #  endif
5295 #else
5296 #  include <unistd.h>
5297 #endif
5298 #endif
5299
5300 #ifndef YY_EXTRA_TYPE
5301 #define YY_EXTRA_TYPE void *
5302 #endif
5303
5304 static int yy_init_globals (void );
5305
5306 /* Accessor methods to globals.
5307    These are made visible to non-reentrant scanners for convenience. */
5308
5309 int surf_parse_lex_destroy (void );
5310
5311 int surf_parse_get_debug (void );
5312
5313 void surf_parse_set_debug (int debug_flag  );
5314
5315 YY_EXTRA_TYPE surf_parse_get_extra (void );
5316
5317 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5318
5319 FILE *surf_parse_get_in (void );
5320
5321 void surf_parse_set_in  (FILE * in_str  );
5322
5323 FILE *surf_parse_get_out (void );
5324
5325 void surf_parse_set_out  (FILE * out_str  );
5326
5327 int surf_parse_get_leng (void );
5328
5329 char *surf_parse_get_text (void );
5330
5331 int surf_parse_get_lineno (void );
5332
5333 void surf_parse_set_lineno (int line_number  );
5334
5335 /* Macros after this point can all be overridden by user definitions in
5336  * section 1.
5337  */
5338
5339 #ifndef YY_SKIP_YYWRAP
5340 #ifdef __cplusplus
5341 extern "C" int surf_parse_wrap (void );
5342 #else
5343 extern int surf_parse_wrap (void );
5344 #endif
5345 #endif
5346
5347 #ifndef yytext_ptr
5348 static void yy_flex_strncpy (char *,yyconst char *,int );
5349 #endif
5350
5351 #ifdef YY_NEED_STRLEN
5352 static int yy_flex_strlen (yyconst char * );
5353 #endif
5354
5355 #ifndef YY_NO_INPUT
5356
5357 #ifdef __cplusplus
5358 static int yyinput (void );
5359 #else
5360 static int input (void );
5361 #endif
5362
5363 #endif
5364
5365         static int yy_start_stack_ptr = 0;
5366         static int yy_start_stack_depth = 0;
5367         static int *yy_start_stack = NULL;
5368     
5369     static void yy_push_state (int new_state );
5370     
5371     static void yy_pop_state (void );
5372     
5373 /* Amount of stuff to slurp up with each read. */
5374 #ifndef YY_READ_BUF_SIZE
5375 #ifdef __ia64__
5376 /* On IA-64, the buffer size is 16k, not 8k */
5377 #define YY_READ_BUF_SIZE 16384
5378 #else
5379 #define YY_READ_BUF_SIZE 8192
5380 #endif /* __ia64__ */
5381 #endif
5382
5383 /* Copy whatever the last rule matched to the standard output. */
5384 #ifndef ECHO
5385 /* This used to be an fputs(), but since the string might contain NUL's,
5386  * we now use fwrite().
5387  */
5388 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5389 #endif
5390
5391 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5392  * is returned in "result".
5393  */
5394 #ifndef YY_INPUT
5395 #define YY_INPUT(buf,result,max_size) \
5396         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5397                 { \
5398                 int c = '*'; \
5399                 size_t n; \
5400                 for ( n = 0; n < max_size && \
5401                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5402                         buf[n] = (char) c; \
5403                 if ( c == '\n' ) \
5404                         buf[n++] = (char) c; \
5405                 if ( c == EOF && ferror( surf_parse_in ) ) \
5406                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5407                 result = n; \
5408                 } \
5409         else \
5410                 { \
5411                 errno=0; \
5412                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5413                         { \
5414                         if( errno != EINTR) \
5415                                 { \
5416                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5417                                 break; \
5418                                 } \
5419                         errno=0; \
5420                         clearerr(surf_parse_in); \
5421                         } \
5422                 }\
5423 \
5424
5425 #endif
5426
5427 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5428  * we don't want an extra ';' after the "return" because that will cause
5429  * some compilers to complain about unreachable statements.
5430  */
5431 #ifndef yyterminate
5432 #define yyterminate() return YY_NULL
5433 #endif
5434
5435 /* Number of entries by which start-condition stack grows. */
5436 #ifndef YY_START_STACK_INCR
5437 #define YY_START_STACK_INCR 25
5438 #endif
5439
5440 /* Report a fatal error. */
5441 #ifndef YY_FATAL_ERROR
5442 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5443 #endif
5444
5445 /* end tables serialization structures and prototypes */
5446
5447 /* Default declaration of generated scanner - a define so the user can
5448  * easily add parameters.
5449  */
5450 #ifndef YY_DECL
5451 #define YY_DECL_IS_OURS 1
5452
5453 extern int surf_parse_lex (void);
5454
5455 #define YY_DECL int surf_parse_lex (void)
5456 #endif /* !YY_DECL */
5457
5458 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5459  * have been set up.
5460  */
5461 #ifndef YY_USER_ACTION
5462 #define YY_USER_ACTION
5463 #endif
5464
5465 /* Code executed at the end of each rule. */
5466 #ifndef YY_BREAK
5467 #define YY_BREAK break;
5468 #endif
5469
5470 #define YY_RULE_SETUP \
5471         YY_USER_ACTION
5472
5473 /** The main scanner function which does all the work.
5474  */
5475 YY_DECL
5476 {
5477         register yy_state_type yy_current_state;
5478         register char *yy_cp, *yy_bp;
5479         register int yy_act;
5480     
5481  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5482  SET(PROLOG);
5483  reset_surfxml_parse_err_msg();
5484  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5485  assert(surfxml_bufferstack);
5486  #ifdef FLEX_DEBUG
5487  {
5488      int i;
5489      for (i = 0; i < blimit; i++) {
5490          surfxml_bufferstack[i] = '\377';
5491      }
5492  }
5493  #endif
5494  surfxml_bufferstack[0] = '\0';
5495  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5496  assert(indexstack);
5497  indexstack[0] = 0;
5498
5499   /* FleXML_init */
5500   bnext = inext = 1;
5501   surfxml_bufferliteral('\0', &bnext, "0.0");
5502   surfxml_bufferliteral('\0', &bnext, "2147483647");
5503   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5504   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5505   surfxml_bufferliteral('\0', &bnext, "1");
5506   surfxml_bufferliteral('\0', &bnext, "1.0");
5507   surfxml_bufferliteral('\0', &bnext, "0.0");
5508   surfxml_bufferliteral('\0', &bnext, "1");
5509   surfxml_bufferliteral('\0', &bnext, "0.0");
5510   surfxml_bufferliteral('\0', &bnext, "-1.0");
5511   surfxml_bufferliteral('\0', &bnext, "-1.0");
5512   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5513   surfxml_statenames[PROLOG] = NULL;
5514   surfxml_statenames[DOCTYPE] = NULL;
5515   surfxml_statenames[EPILOG] = NULL;
5516   surfxml_statenames[INCOMMENT] = NULL;
5517   surfxml_statenames[INPI] = NULL;
5518   surfxml_statenames[VALUE1] = NULL;
5519   surfxml_statenames[VALUE2] = NULL;
5520   surfxml_statenames[CDATA] = NULL;
5521   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5522   surfxml_statenames[AL_surfxml_platform] = NULL;
5523   surfxml_statenames[S_surfxml_platform] = "platform";
5524   surfxml_statenames[S_surfxml_platform_1] = "platform";
5525   surfxml_statenames[S_surfxml_platform_2] = "platform";
5526   surfxml_statenames[S_surfxml_platform_3] = "platform";
5527   surfxml_statenames[S_surfxml_platform_4] = "platform";
5528   surfxml_statenames[S_surfxml_platform_5] = "platform";
5529   surfxml_statenames[S_surfxml_platform_6] = "platform";
5530   surfxml_statenames[S_surfxml_platform_7] = "platform";
5531   surfxml_statenames[S_surfxml_platform_8] = "platform";
5532   surfxml_statenames[E_surfxml_platform] = "platform";
5533   surfxml_statenames[AL_surfxml_include] = NULL;
5534   surfxml_statenames[S_surfxml_include] = "include";
5535   surfxml_statenames[S_surfxml_include_1] = "include";
5536   surfxml_statenames[S_surfxml_include_2] = "include";
5537   surfxml_statenames[E_surfxml_include] = "include";
5538   surfxml_statenames[AL_surfxml_trace] = NULL;
5539   surfxml_statenames[IN_trace] = "trace";
5540   surfxml_statenames[AL_surfxml_random] = NULL;
5541   surfxml_statenames[E_surfxml_random] = "random";
5542   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5543   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5544   surfxml_statenames[AL_surfxml_AS] = NULL;
5545   surfxml_statenames[S_surfxml_AS] = "AS";
5546   surfxml_statenames[S_surfxml_AS_1] = "AS";
5547   surfxml_statenames[S_surfxml_AS_2] = "AS";
5548   surfxml_statenames[S_surfxml_AS_3] = "AS";
5549   surfxml_statenames[S_surfxml_AS_4] = "AS";
5550   surfxml_statenames[S_surfxml_AS_5] = "AS";
5551   surfxml_statenames[S_surfxml_AS_6] = "AS";
5552   surfxml_statenames[S_surfxml_AS_7] = "AS";
5553   surfxml_statenames[S_surfxml_AS_8] = "AS";
5554   surfxml_statenames[S_surfxml_AS_9] = "AS";
5555   surfxml_statenames[S_surfxml_AS_10] = "AS";
5556   surfxml_statenames[S_surfxml_AS_11] = "AS";
5557   surfxml_statenames[S_surfxml_AS_12] = "AS";
5558   surfxml_statenames[S_surfxml_AS_13] = "AS";
5559   surfxml_statenames[S_surfxml_AS_14] = "AS";
5560   surfxml_statenames[S_surfxml_AS_15] = "AS";
5561   surfxml_statenames[S_surfxml_AS_16] = "AS";
5562   surfxml_statenames[E_surfxml_AS] = "AS";
5563   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5564   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5565   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5566   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5567   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5568   surfxml_statenames[AL_surfxml_storage] = NULL;
5569   surfxml_statenames[S_surfxml_storage] = "storage";
5570   surfxml_statenames[S_surfxml_storage_1] = "storage";
5571   surfxml_statenames[S_surfxml_storage_2] = "storage";
5572   surfxml_statenames[E_surfxml_storage] = "storage";
5573   surfxml_statenames[AL_surfxml_mount] = NULL;
5574   surfxml_statenames[E_surfxml_mount] = "mount";
5575   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5576   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5577   surfxml_statenames[AL_surfxml_host] = NULL;
5578   surfxml_statenames[S_surfxml_host] = "host";
5579   surfxml_statenames[S_surfxml_host_1] = "host";
5580   surfxml_statenames[S_surfxml_host_2] = "host";
5581   surfxml_statenames[E_surfxml_host] = "host";
5582   surfxml_statenames[AL_surfxml_gpu] = NULL;
5583   surfxml_statenames[E_surfxml_gpu] = "gpu";
5584   surfxml_statenames[AL_surfxml_host___link] = NULL;
5585   surfxml_statenames[E_surfxml_host___link] = "host_link";
5586   surfxml_statenames[AL_surfxml_cluster] = NULL;
5587   surfxml_statenames[S_surfxml_cluster] = "cluster";
5588   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5589   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5590   surfxml_statenames[E_surfxml_cluster] = "cluster";
5591   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5592   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5593   surfxml_statenames[AL_surfxml_peer] = NULL;
5594   surfxml_statenames[E_surfxml_peer] = "peer";
5595   surfxml_statenames[AL_surfxml_router] = NULL;
5596   surfxml_statenames[E_surfxml_router] = "router";
5597   surfxml_statenames[AL_surfxml_backbone] = NULL;
5598   surfxml_statenames[E_surfxml_backbone] = "backbone";
5599   surfxml_statenames[AL_surfxml_link] = NULL;
5600   surfxml_statenames[S_surfxml_link] = "link";
5601   surfxml_statenames[S_surfxml_link_1] = "link";
5602   surfxml_statenames[S_surfxml_link_2] = "link";
5603   surfxml_statenames[E_surfxml_link] = "link";
5604   surfxml_statenames[AL_surfxml_route] = NULL;
5605   surfxml_statenames[S_surfxml_route] = "route";
5606   surfxml_statenames[S_surfxml_route_1] = "route";
5607   surfxml_statenames[S_surfxml_route_2] = "route";
5608   surfxml_statenames[E_surfxml_route] = "route";
5609   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5610   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5611   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5612   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5613   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5614   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5615   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5616   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5617   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5618   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5619   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5620   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5621   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5622   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5623   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5624   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5625   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5626   surfxml_statenames[AL_surfxml_process] = NULL;
5627   surfxml_statenames[S_surfxml_process] = "process";
5628   surfxml_statenames[S_surfxml_process_1] = "process";
5629   surfxml_statenames[S_surfxml_process_2] = "process";
5630   surfxml_statenames[E_surfxml_process] = "process";
5631   surfxml_statenames[AL_surfxml_argument] = NULL;
5632   surfxml_statenames[E_surfxml_argument] = "argument";
5633   surfxml_statenames[AL_surfxml_config] = NULL;
5634   surfxml_statenames[S_surfxml_config] = "config";
5635   surfxml_statenames[S_surfxml_config_1] = "config";
5636   surfxml_statenames[S_surfxml_config_2] = "config";
5637   surfxml_statenames[E_surfxml_config] = "config";
5638   surfxml_statenames[AL_surfxml_prop] = NULL;
5639   surfxml_statenames[E_surfxml_prop] = "prop";
5640   surfxml_statenames[AL_surfxml_model___prop] = NULL;
5641   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
5642   }
5643
5644  /* COMMENTS and PIs: handled uniformly for efficiency. */
5645
5646         if ( !(yy_init) )
5647                 {
5648                 (yy_init) = 1;
5649
5650 #ifdef YY_USER_INIT
5651                 YY_USER_INIT;
5652 #endif
5653
5654                 if ( ! (yy_start) )
5655                         (yy_start) = 1; /* first start state */
5656
5657                 if ( ! surf_parse_in )
5658                         surf_parse_in = stdin;
5659
5660                 if ( ! surf_parse_out )
5661                         surf_parse_out = stdout;
5662
5663                 if ( ! YY_CURRENT_BUFFER ) {
5664                         surf_parse_ensure_buffer_stack ();
5665                         YY_CURRENT_BUFFER_LVALUE =
5666                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5667                 }
5668
5669                 surf_parse__load_buffer_state( );
5670                 }
5671
5672         while ( 1 )             /* loops until end-of-file is reached */
5673                 {
5674                 yy_cp = (yy_c_buf_p);
5675
5676                 /* Support of surf_parse_text. */
5677                 *yy_cp = (yy_hold_char);
5678
5679                 /* yy_bp points to the position in yy_ch_buf of the start of
5680                  * the current run.
5681                  */
5682                 yy_bp = yy_cp;
5683
5684                 yy_current_state = (yy_start);
5685 yy_match:
5686                 do
5687                         {
5688                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5689                         if ( yy_accept[yy_current_state] )
5690                                 {
5691                                 (yy_last_accepting_state) = yy_current_state;
5692                                 (yy_last_accepting_cpos) = yy_cp;
5693                                 }
5694                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5695                                 {
5696                                 yy_current_state = (int) yy_def[yy_current_state];
5697                                 if ( yy_current_state >= 3458 )
5698                                         yy_c = yy_meta[(unsigned int) yy_c];
5699                                 }
5700                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5701                         ++yy_cp;
5702                         }
5703                 while ( yy_base[yy_current_state] != 12593 );
5704
5705 yy_find_action:
5706                 yy_act = yy_accept[yy_current_state];
5707                 if ( yy_act == 0 )
5708                         { /* have to back up */
5709                         yy_cp = (yy_last_accepting_cpos);
5710                         yy_current_state = (yy_last_accepting_state);
5711                         yy_act = yy_accept[yy_current_state];
5712                         }
5713
5714                 YY_DO_BEFORE_ACTION;
5715
5716                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5717                         {
5718                         int yyl;
5719                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5720                                 if ( surf_parse_text[yyl] == '\n' )
5721                                            
5722     surf_parse_lineno++;
5723 ;
5724                         }
5725
5726 do_action:      /* This label is used only to access EOF actions. */
5727
5728                 switch ( yy_act )
5729         { /* beginning of action switch */
5730                         case 0: /* must back up */
5731                         /* undo the effects of YY_DO_BEFORE_ACTION */
5732                         *yy_cp = (yy_hold_char);
5733                         yy_cp = (yy_last_accepting_cpos);
5734                         yy_current_state = (yy_last_accepting_state);
5735                         goto yy_find_action;
5736
5737 case 1:
5738 YY_RULE_SETUP
5739 ENTER(INCOMMENT);
5740         YY_BREAK
5741 case 2:
5742 YY_RULE_SETUP
5743 ENTER(INPI);
5744         YY_BREAK
5745
5746 case 3:
5747 YY_RULE_SETUP
5748 LEAVE;
5749         YY_BREAK
5750 case 4:
5751 case 5:
5752 case 6:
5753 /* rule 6 can match eol */
5754 YY_RULE_SETUP
5755 SKIP;
5756         YY_BREAK
5757 case YY_STATE_EOF(INCOMMENT):
5758 FAIL("EOF in comment.");
5759         YY_BREAK
5760
5761 case 7:
5762 YY_RULE_SETUP
5763 LEAVE;
5764         YY_BREAK
5765 case 8:
5766 case 9:
5767 /* rule 9 can match eol */
5768 YY_RULE_SETUP
5769 SKIP;
5770         YY_BREAK
5771 case YY_STATE_EOF(INPI):
5772 FAIL("EOF in PI (processing instruction).");
5773         YY_BREAK
5774
5775 /* SPACES: skipped uniformly */
5776 case 10:
5777 /* rule 10 can match eol */
5778 YY_RULE_SETUP
5779 SKIP;
5780         YY_BREAK
5781 /* PROLOG: determine root element and process it. */
5782
5783 case 11:
5784 /* rule 11 can match eol */
5785 YY_RULE_SETUP
5786 SET(DOCTYPE); 
5787         YY_BREAK
5788 case 12:
5789 /* rule 12 can match eol */
5790 YY_RULE_SETUP
5791 FAIL("Bad declaration %s.",surf_parse_text);
5792         YY_BREAK
5793
5794 case 13:
5795 /* rule 13 can match eol */
5796 YY_RULE_SETUP
5797 SET(ROOT_surfxml_platform);
5798         YY_BREAK
5799 case 14:
5800 /* rule 14 can match eol */
5801 YY_RULE_SETUP
5802 FAIL("Bad declaration %s.",surf_parse_text);
5803         YY_BREAK
5804 case 15:
5805 YY_RULE_SETUP
5806 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5807         YY_BREAK
5808 case YY_STATE_EOF(PROLOG):
5809 case YY_STATE_EOF(DOCTYPE):
5810 FAIL("EOF in prolog.");
5811         YY_BREAK
5812
5813 /* RULES DERIVED FROM DTD. */
5814 /* <!-- Small DTD for SURF based tools. -->  */
5815 case 16:
5816 /* rule 16 can match eol */
5817 YY_RULE_SETUP
5818 FAIL("Starting tag <platform> is not allowed here.");
5819         YY_BREAK
5820 case 17:
5821 /* rule 17 can match eol */
5822 YY_RULE_SETUP
5823 {
5824   AX_surfxml_platform_version = 1;
5825   surfxml_platform_version_isset = 0;
5826   ENTER(AL_surfxml_platform); pushbuffer(0);
5827   }
5828         YY_BREAK
5829
5830 case 18:
5831 /* rule 18 can match eol */
5832 YY_RULE_SETUP
5833 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
5834         YY_BREAK
5835 case 19:
5836 /* rule 19 can match eol */
5837 YY_RULE_SETUP
5838 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
5839         YY_BREAK
5840 case 20:
5841 YY_RULE_SETUP
5842 {
5843   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5844  }
5845         YY_BREAK
5846 case 21:
5847 YY_RULE_SETUP
5848 {
5849   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5850   switch (YY_START) {
5851    case ROOT_surfxml_platform: SET(EPILOG); break;
5852   }
5853  }
5854         YY_BREAK
5855 case 22:
5856 YY_RULE_SETUP
5857 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5858         YY_BREAK
5859 case 23:
5860 YY_RULE_SETUP
5861 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5862         YY_BREAK
5863 case YY_STATE_EOF(AL_surfxml_platform):
5864 FAIL("EOF in attribute list of `platform' element.");
5865         YY_BREAK
5866
5867 case 24:
5868 /* rule 24 can match eol */
5869 YY_RULE_SETUP
5870 {
5871   LEAVE;
5872   ETag_surfxml_platform();
5873   popbuffer(); /* attribute */
5874   switch (YY_START) {
5875    case ROOT_surfxml_platform: SET(EPILOG); break;
5876   }
5877  }
5878         YY_BREAK
5879 case 25:
5880 /* rule 25 can match eol */
5881 YY_RULE_SETUP
5882 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5883         YY_BREAK
5884 case 26:
5885 YY_RULE_SETUP
5886 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5887         YY_BREAK
5888 case YY_STATE_EOF(S_surfxml_platform_8):
5889 case YY_STATE_EOF(S_surfxml_platform_1):
5890 case YY_STATE_EOF(S_surfxml_platform_3):
5891 case YY_STATE_EOF(S_surfxml_platform):
5892 case YY_STATE_EOF(S_surfxml_platform_4):
5893 case YY_STATE_EOF(S_surfxml_platform_6):
5894 case YY_STATE_EOF(E_surfxml_platform):
5895 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5896         YY_BREAK
5897
5898 case 27:
5899 /* rule 27 can match eol */
5900 YY_RULE_SETUP
5901 FAIL("Starting tag <include> is not allowed here.");
5902         YY_BREAK
5903 case 28:
5904 /* rule 28 can match eol */
5905 YY_RULE_SETUP
5906 {
5907   AX_surfxml_include_file = 0;
5908   surfxml_include_file_isset = 0;
5909   ENTER(AL_surfxml_include); pushbuffer(0);
5910   }
5911         YY_BREAK
5912
5913 case 29:
5914 /* rule 29 can match eol */
5915 YY_RULE_SETUP
5916 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
5917         YY_BREAK
5918 case 30:
5919 /* rule 30 can match eol */
5920 YY_RULE_SETUP
5921 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
5922         YY_BREAK
5923 case 31:
5924 YY_RULE_SETUP
5925 {
5926   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5927   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5928  }
5929         YY_BREAK
5930 case 32:
5931 YY_RULE_SETUP
5932 {
5933   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5934   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5935   switch (YY_START) {
5936    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5937    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5938    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5939    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5940   }
5941  }
5942         YY_BREAK
5943 case 33:
5944 YY_RULE_SETUP
5945 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5946         YY_BREAK
5947 case 34:
5948 YY_RULE_SETUP
5949 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5950         YY_BREAK
5951 case YY_STATE_EOF(AL_surfxml_include):
5952 FAIL("EOF in attribute list of `include' element.");
5953         YY_BREAK
5954
5955 case 35:
5956 /* rule 35 can match eol */
5957 YY_RULE_SETUP
5958 {
5959   LEAVE;
5960   ETag_surfxml_include();
5961   popbuffer(); /* attribute */
5962   switch (YY_START) {
5963    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5964    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5965    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5966    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5967   }
5968  }
5969         YY_BREAK
5970 case 36:
5971 /* rule 36 can match eol */
5972 YY_RULE_SETUP
5973 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5974         YY_BREAK
5975 case 37:
5976 YY_RULE_SETUP
5977 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5978         YY_BREAK
5979 case YY_STATE_EOF(E_surfxml_include):
5980 case YY_STATE_EOF(S_surfxml_include):
5981 case YY_STATE_EOF(S_surfxml_include_2):
5982 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5983         YY_BREAK
5984
5985 case 38:
5986 /* rule 38 can match eol */
5987 YY_RULE_SETUP
5988 FAIL("Starting tag <trace> is not allowed here.");
5989         YY_BREAK
5990 case 39:
5991 /* rule 39 can match eol */
5992 YY_RULE_SETUP
5993 {
5994   AX_surfxml_trace_id = 0;
5995   surfxml_trace_id_isset = 0;
5996   AX_surfxml_trace_file = 0;
5997   surfxml_trace_file_isset = 0;
5998   AX_surfxml_trace_periodicity = 0;
5999   surfxml_trace_periodicity_isset = 0;
6000   ENTER(AL_surfxml_trace); pushbuffer(0);
6001   }
6002         YY_BREAK
6003
6004 case 40:
6005 /* rule 40 can match eol */
6006 YY_RULE_SETUP
6007 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
6008         YY_BREAK
6009 case 41:
6010 /* rule 41 can match eol */
6011 YY_RULE_SETUP
6012 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
6013         YY_BREAK
6014 case 42:
6015 /* rule 42 can match eol */
6016 YY_RULE_SETUP
6017 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
6018         YY_BREAK
6019 case 43:
6020 /* rule 43 can match eol */
6021 YY_RULE_SETUP
6022 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
6023         YY_BREAK
6024 case 44:
6025 /* rule 44 can match eol */
6026 YY_RULE_SETUP
6027 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
6028         YY_BREAK
6029 case 45:
6030 /* rule 45 can match eol */
6031 YY_RULE_SETUP
6032 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
6033         YY_BREAK
6034 case 46:
6035 YY_RULE_SETUP
6036 {
6037   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
6038   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
6039   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
6040  }
6041         YY_BREAK
6042 case 47:
6043 YY_RULE_SETUP
6044 {
6045   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
6046   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
6047   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
6048   switch (YY_START) {
6049    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6050    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6051    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6052    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6053    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6054    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6055    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6056   }
6057  }
6058         YY_BREAK
6059 case 48:
6060 YY_RULE_SETUP
6061 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
6062         YY_BREAK
6063 case 49:
6064 YY_RULE_SETUP
6065 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
6066         YY_BREAK
6067 case YY_STATE_EOF(AL_surfxml_trace):
6068 FAIL("EOF in attribute list of `trace' element.");
6069         YY_BREAK
6070
6071 case 50:
6072 /* rule 50 can match eol */
6073 YY_RULE_SETUP
6074 {
6075   LEAVE;
6076   BUFFERDONE;
6077   ETag_surfxml_trace();
6078   surfxml_pcdata_ix = popbuffer();
6079   popbuffer(); /* attribute */
6080   switch (YY_START) {
6081    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6082    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6083    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6084    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6085    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6086    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6087    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6088   }
6089  }
6090         YY_BREAK
6091 case 51:
6092 /* rule 51 can match eol */
6093 YY_RULE_SETUP
6094 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
6095         YY_BREAK
6096 case YY_STATE_EOF(IN_trace):
6097 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
6098         YY_BREAK
6099
6100 case 52:
6101 /* rule 52 can match eol */
6102 YY_RULE_SETUP
6103 FAIL("Starting tag <random> is not allowed here.");
6104         YY_BREAK
6105 case 53:
6106 /* rule 53 can match eol */
6107 YY_RULE_SETUP
6108 {
6109   AX_surfxml_random_id = 0;
6110   surfxml_random_id_isset = 0;
6111   AX_surfxml_random_min = 0;
6112   surfxml_random_min_isset = 0;
6113   AX_surfxml_random_max = 0;
6114   surfxml_random_max_isset = 0;
6115   AX_surfxml_random_mean = 0;
6116   surfxml_random_mean_isset = 0;
6117   AX_surfxml_random_std___deviation = 0;
6118   surfxml_random_std___deviation_isset = 0;
6119   AX_surfxml_random_seed = 5;
6120   surfxml_random_seed_isset = 0;
6121   AX_surfxml_random_radical = 0;
6122   surfxml_random_radical_isset = 0;
6123   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6124   surfxml_random_generator_isset = 0;
6125   ENTER(AL_surfxml_random); pushbuffer(0);
6126   }
6127         YY_BREAK
6128
6129 case 54:
6130 /* rule 54 can match eol */
6131 YY_RULE_SETUP
6132 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
6133         YY_BREAK
6134 case 55:
6135 /* rule 55 can match eol */
6136 YY_RULE_SETUP
6137 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
6138         YY_BREAK
6139 case 56:
6140 /* rule 56 can match eol */
6141 YY_RULE_SETUP
6142 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
6143         YY_BREAK
6144 case 57:
6145 /* rule 57 can match eol */
6146 YY_RULE_SETUP
6147 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
6148         YY_BREAK
6149 case 58:
6150 /* rule 58 can match eol */
6151 YY_RULE_SETUP
6152 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
6153         YY_BREAK
6154 case 59:
6155 /* rule 59 can match eol */
6156 YY_RULE_SETUP
6157 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
6158         YY_BREAK
6159 case 60:
6160 /* rule 60 can match eol */
6161 YY_RULE_SETUP
6162 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
6163         YY_BREAK
6164 case 61:
6165 /* rule 61 can match eol */
6166 YY_RULE_SETUP
6167 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
6168         YY_BREAK
6169 case 62:
6170 /* rule 62 can match eol */
6171 YY_RULE_SETUP
6172 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std___deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std___deviation);
6173         YY_BREAK
6174 case 63:
6175 /* rule 63 can match eol */
6176 YY_RULE_SETUP
6177 if (surfxml_random_std___deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std___deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std___deviation);
6178         YY_BREAK
6179 case 64:
6180 /* rule 64 can match eol */
6181 YY_RULE_SETUP
6182 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
6183         YY_BREAK
6184 case 65:
6185 /* rule 65 can match eol */
6186 YY_RULE_SETUP
6187 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
6188         YY_BREAK
6189 case 66:
6190 /* rule 66 can match eol */
6191 YY_RULE_SETUP
6192 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
6193         YY_BREAK
6194 case 67:
6195 /* rule 67 can match eol */
6196 YY_RULE_SETUP
6197 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
6198         YY_BREAK
6199 case 68:
6200 /* rule 68 can match eol */
6201 case 69:
6202 /* rule 69 can match eol */
6203 YY_RULE_SETUP
6204 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6205         YY_BREAK
6206 case 70:
6207 /* rule 70 can match eol */
6208 case 71:
6209 /* rule 71 can match eol */
6210 YY_RULE_SETUP
6211 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
6212         YY_BREAK
6213 case 72:
6214 /* rule 72 can match eol */
6215 case 73:
6216 /* rule 73 can match eol */
6217 YY_RULE_SETUP
6218 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6219         YY_BREAK
6220 case 74:
6221 /* rule 74 can match eol */
6222 case 75:
6223 /* rule 75 can match eol */
6224 YY_RULE_SETUP
6225 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6226         YY_BREAK
6227 case 76:
6228 YY_RULE_SETUP
6229 {
6230   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6231   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6232   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6233   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6234   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6235   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6236  }
6237         YY_BREAK
6238 case 77:
6239 YY_RULE_SETUP
6240 {
6241   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6242   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6243   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6244   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6245   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6246   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6247   switch (YY_START) {
6248    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6249   }
6250  }
6251         YY_BREAK
6252 case 78:
6253 YY_RULE_SETUP
6254 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6255         YY_BREAK
6256 case 79:
6257 YY_RULE_SETUP
6258 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6259         YY_BREAK
6260 case YY_STATE_EOF(AL_surfxml_random):
6261 FAIL("EOF in attribute list of `random' element.");
6262         YY_BREAK
6263
6264 case 80:
6265 /* rule 80 can match eol */
6266 YY_RULE_SETUP
6267 {
6268   LEAVE;
6269   ETag_surfxml_random();
6270   popbuffer(); /* attribute */
6271   switch (YY_START) {
6272    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6273   }
6274  }
6275         YY_BREAK
6276 case 81:
6277 /* rule 81 can match eol */
6278 YY_RULE_SETUP
6279 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6280         YY_BREAK
6281 case 82:
6282 YY_RULE_SETUP
6283 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6284         YY_BREAK
6285 case YY_STATE_EOF(E_surfxml_random):
6286 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6287         YY_BREAK
6288
6289 case 83:
6290 /* rule 83 can match eol */
6291 YY_RULE_SETUP
6292 FAIL("Starting tag <trace_connect> is not allowed here.");
6293         YY_BREAK
6294 case 84:
6295 /* rule 84 can match eol */
6296 YY_RULE_SETUP
6297 {
6298   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6299   surfxml_trace___connect_kind_isset = 0;
6300   AX_surfxml_trace___connect_trace = 0;
6301   surfxml_trace___connect_trace_isset = 0;
6302   AX_surfxml_trace___connect_element = 0;
6303   surfxml_trace___connect_element_isset = 0;
6304   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6305   }
6306         YY_BREAK
6307
6308 case 85:
6309 /* rule 85 can match eol */
6310 case 86:
6311 /* rule 86 can match eol */
6312 YY_RULE_SETUP
6313 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6314         YY_BREAK
6315 case 87:
6316 /* rule 87 can match eol */
6317 case 88:
6318 /* rule 88 can match eol */
6319 YY_RULE_SETUP
6320 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6321         YY_BREAK
6322 case 89:
6323 /* rule 89 can match eol */
6324 case 90:
6325 /* rule 90 can match eol */
6326 YY_RULE_SETUP
6327 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6328         YY_BREAK
6329 case 91:
6330 /* rule 91 can match eol */
6331 case 92:
6332 /* rule 92 can match eol */
6333 YY_RULE_SETUP
6334 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6335         YY_BREAK
6336 case 93:
6337 /* rule 93 can match eol */
6338 case 94:
6339 /* rule 94 can match eol */
6340 YY_RULE_SETUP
6341 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6342         YY_BREAK
6343 case 95:
6344 /* rule 95 can match eol */
6345 YY_RULE_SETUP
6346 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");} surfxml_trace___connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_trace);
6347         YY_BREAK
6348 case 96:
6349 /* rule 96 can match eol */
6350 YY_RULE_SETUP
6351 if (surfxml_trace___connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace___connect>");}  surfxml_trace___connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_trace);
6352         YY_BREAK
6353 case 97:
6354 /* rule 97 can match eol */
6355 YY_RULE_SETUP
6356 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");} surfxml_trace___connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace___connect_element);
6357         YY_BREAK
6358 case 98:
6359 /* rule 98 can match eol */
6360 YY_RULE_SETUP
6361 if (surfxml_trace___connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace___connect>");}  surfxml_trace___connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace___connect_element);
6362         YY_BREAK
6363 case 99:
6364 YY_RULE_SETUP
6365 {
6366   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6367   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6368   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6369  }
6370         YY_BREAK
6371 case 100:
6372 YY_RULE_SETUP
6373 {
6374   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6375   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6376   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6377   switch (YY_START) {
6378    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6379    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6380    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6381    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6382    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6383    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6384    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6385   }
6386  }
6387         YY_BREAK
6388 case 101:
6389 YY_RULE_SETUP
6390 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6391         YY_BREAK
6392 case 102:
6393 YY_RULE_SETUP
6394 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6395         YY_BREAK
6396 case YY_STATE_EOF(AL_surfxml_trace___connect):
6397 FAIL("EOF in attribute list of `trace_connect' element.");
6398         YY_BREAK
6399
6400 case 103:
6401 /* rule 103 can match eol */
6402 YY_RULE_SETUP
6403 {
6404   LEAVE;
6405   ETag_surfxml_trace___connect();
6406   popbuffer(); /* attribute */
6407   switch (YY_START) {
6408    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6409    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6410    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6411    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6412    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6413    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6414    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6415   }
6416  }
6417         YY_BREAK
6418 case 104:
6419 /* rule 104 can match eol */
6420 YY_RULE_SETUP
6421 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6422         YY_BREAK
6423 case 105:
6424 YY_RULE_SETUP
6425 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6426         YY_BREAK
6427 case YY_STATE_EOF(E_surfxml_trace___connect):
6428 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6429         YY_BREAK
6430
6431 case 106:
6432 /* rule 106 can match eol */
6433 YY_RULE_SETUP
6434 FAIL("Starting tag <AS> is not allowed here.");
6435         YY_BREAK
6436 case 107:
6437 /* rule 107 can match eol */
6438 YY_RULE_SETUP
6439 {
6440   AX_surfxml_AS_id = 0;
6441   surfxml_AS_id_isset = 0;
6442   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6443   surfxml_AS_routing_isset = 0;
6444   ENTER(AL_surfxml_AS); pushbuffer(0);
6445   }
6446         YY_BREAK
6447
6448 case 108:
6449 /* rule 108 can match eol */
6450 YY_RULE_SETUP
6451 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
6452         YY_BREAK
6453 case 109:
6454 /* rule 109 can match eol */
6455 YY_RULE_SETUP
6456 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
6457         YY_BREAK
6458 case 110:
6459 /* rule 110 can match eol */
6460 case 111:
6461 /* rule 111 can match eol */
6462 YY_RULE_SETUP
6463 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6464         YY_BREAK
6465 case 112:
6466 /* rule 112 can match eol */
6467 case 113:
6468 /* rule 113 can match eol */
6469 YY_RULE_SETUP
6470 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6471         YY_BREAK
6472 case 114:
6473 /* rule 114 can match eol */
6474 case 115:
6475 /* rule 115 can match eol */
6476 YY_RULE_SETUP
6477 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6478         YY_BREAK
6479 case 116:
6480 /* rule 116 can match eol */
6481 case 117:
6482 /* rule 117 can match eol */
6483 YY_RULE_SETUP
6484 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6485         YY_BREAK
6486 case 118:
6487 /* rule 118 can match eol */
6488 case 119:
6489 /* rule 119 can match eol */
6490 YY_RULE_SETUP
6491 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6492         YY_BREAK
6493 case 120:
6494 /* rule 120 can match eol */
6495 case 121:
6496 /* rule 121 can match eol */
6497 YY_RULE_SETUP
6498 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6499         YY_BREAK
6500 case 122:
6501 /* rule 122 can match eol */
6502 case 123:
6503 /* rule 123 can match eol */
6504 YY_RULE_SETUP
6505 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6506         YY_BREAK
6507 case 124:
6508 /* rule 124 can match eol */
6509 case 125:
6510 /* rule 125 can match eol */
6511 YY_RULE_SETUP
6512 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___torus;
6513         YY_BREAK
6514 case 126:
6515 YY_RULE_SETUP
6516 {
6517   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6518   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6519   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6520  }
6521         YY_BREAK
6522 case 127:
6523 YY_RULE_SETUP
6524 {
6525   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6526   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6527   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6528   switch (YY_START) {
6529    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6530    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6531    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6532   }
6533  }
6534         YY_BREAK
6535 case 128:
6536 YY_RULE_SETUP
6537 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6538         YY_BREAK
6539 case 129:
6540 YY_RULE_SETUP
6541 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6542         YY_BREAK
6543 case YY_STATE_EOF(AL_surfxml_AS):
6544 FAIL("EOF in attribute list of `AS' element.");
6545         YY_BREAK
6546
6547 case 130:
6548 /* rule 130 can match eol */
6549 YY_RULE_SETUP
6550 {
6551   LEAVE;
6552   ETag_surfxml_AS();
6553   popbuffer(); /* attribute */
6554   switch (YY_START) {
6555    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6556    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6557    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6558   }
6559  }
6560         YY_BREAK
6561 case 131:
6562 /* rule 131 can match eol */
6563 YY_RULE_SETUP
6564 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6565         YY_BREAK
6566 case 132:
6567 YY_RULE_SETUP
6568 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6569         YY_BREAK
6570 case YY_STATE_EOF(S_surfxml_AS_12):
6571 case YY_STATE_EOF(S_surfxml_AS_9):
6572 case YY_STATE_EOF(S_surfxml_AS_1):
6573 case YY_STATE_EOF(S_surfxml_AS_7):
6574 case YY_STATE_EOF(S_surfxml_AS_11):
6575 case YY_STATE_EOF(S_surfxml_AS_14):
6576 case YY_STATE_EOF(S_surfxml_AS_6):
6577 case YY_STATE_EOF(E_surfxml_AS):
6578 case YY_STATE_EOF(S_surfxml_AS_16):
6579 case YY_STATE_EOF(S_surfxml_AS_3):
6580 case YY_STATE_EOF(S_surfxml_AS):
6581 case YY_STATE_EOF(S_surfxml_AS_4):
6582 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6583         YY_BREAK
6584
6585 case 133:
6586 /* rule 133 can match eol */
6587 YY_RULE_SETUP
6588 FAIL("Starting tag <storage_type> is not allowed here.");
6589         YY_BREAK
6590 case 134:
6591 /* rule 134 can match eol */
6592 YY_RULE_SETUP
6593 {
6594   AX_surfxml_storage___type_id = 0;
6595   surfxml_storage___type_id_isset = 0;
6596   AX_surfxml_storage___type_model = 0;
6597   surfxml_storage___type_model_isset = 0;
6598   AX_surfxml_storage___type_size = 0;
6599   surfxml_storage___type_size_isset = 0;
6600   AX_surfxml_storage___type_content = 0;
6601   surfxml_storage___type_content_isset = 0;
6602   AX_surfxml_storage___type_content___type = 16;
6603   surfxml_storage___type_content___type_isset = 0;
6604   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6605   }
6606         YY_BREAK
6607
6608 case 135:
6609 /* rule 135 can match eol */
6610 YY_RULE_SETUP
6611 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");} surfxml_storage___type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_id);
6612         YY_BREAK
6613 case 136:
6614 /* rule 136 can match eol */
6615 YY_RULE_SETUP
6616 if (surfxml_storage___type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage___type>");}  surfxml_storage___type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_id);
6617         YY_BREAK
6618 case 137:
6619 /* rule 137 can match eol */
6620 YY_RULE_SETUP
6621 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");} surfxml_storage___type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_model);
6622         YY_BREAK
6623 case 138:
6624 /* rule 138 can match eol */
6625 YY_RULE_SETUP
6626 if (surfxml_storage___type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage___type>");}  surfxml_storage___type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_model);
6627         YY_BREAK
6628 case 139:
6629 /* rule 139 can match eol */
6630 YY_RULE_SETUP
6631 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");} surfxml_storage___type_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_size);
6632         YY_BREAK
6633 case 140:
6634 /* rule 140 can match eol */
6635 YY_RULE_SETUP
6636 if (surfxml_storage___type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage___type>");}  surfxml_storage___type_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_size);
6637         YY_BREAK
6638 case 141:
6639 /* rule 141 can match eol */
6640 YY_RULE_SETUP
6641 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");} surfxml_storage___type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content);
6642         YY_BREAK
6643 case 142:
6644 /* rule 142 can match eol */
6645 YY_RULE_SETUP
6646 if (surfxml_storage___type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage___type>");}  surfxml_storage___type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content);
6647         YY_BREAK
6648 case 143:
6649 /* rule 143 can match eol */
6650 YY_RULE_SETUP
6651 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");} surfxml_storage___type_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content___type);
6652         YY_BREAK
6653 case 144:
6654 /* rule 144 can match eol */
6655 YY_RULE_SETUP
6656 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");}  surfxml_storage___type_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content___type);
6657         YY_BREAK
6658 case 145:
6659 YY_RULE_SETUP
6660 {
6661   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6662   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6663   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6664   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6665  }
6666         YY_BREAK
6667 case 146:
6668 YY_RULE_SETUP
6669 {
6670   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6671   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6672   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6673   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6674   switch (YY_START) {
6675    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6676    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6677   }
6678  }
6679         YY_BREAK
6680 case 147:
6681 YY_RULE_SETUP
6682 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6683         YY_BREAK
6684 case 148:
6685 YY_RULE_SETUP
6686 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6687         YY_BREAK
6688 case YY_STATE_EOF(AL_surfxml_storage___type):
6689 FAIL("EOF in attribute list of `storage_type' element.");
6690         YY_BREAK
6691
6692 case 149:
6693 /* rule 149 can match eol */
6694 YY_RULE_SETUP
6695 {
6696   LEAVE;
6697   ETag_surfxml_storage___type();
6698   popbuffer(); /* attribute */
6699   switch (YY_START) {
6700    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6701    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6702   }
6703  }
6704         YY_BREAK
6705 case 150:
6706 /* rule 150 can match eol */
6707 YY_RULE_SETUP
6708 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6709         YY_BREAK
6710 case 151:
6711 YY_RULE_SETUP
6712 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6713         YY_BREAK
6714 case YY_STATE_EOF(E_surfxml_storage___type):
6715 case YY_STATE_EOF(S_surfxml_storage___type):
6716 case YY_STATE_EOF(S_surfxml_storage___type_2):
6717 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6718         YY_BREAK
6719
6720 case 152:
6721 /* rule 152 can match eol */
6722 YY_RULE_SETUP
6723 FAIL("Starting tag <storage> is not allowed here.");
6724         YY_BREAK
6725 case 153:
6726 /* rule 153 can match eol */
6727 YY_RULE_SETUP
6728 {
6729   AX_surfxml_storage_id = 0;
6730   surfxml_storage_id_isset = 0;
6731   AX_surfxml_storage_typeId = 0;
6732   surfxml_storage_typeId_isset = 0;
6733   AX_surfxml_storage_content = 0;
6734   surfxml_storage_content_isset = 0;
6735   AX_surfxml_storage_content___type = 25;
6736   surfxml_storage_content___type_isset = 0;
6737   ENTER(AL_surfxml_storage); pushbuffer(0);
6738   }
6739         YY_BREAK
6740
6741 case 154:
6742 /* rule 154 can match eol */
6743 YY_RULE_SETUP
6744 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
6745         YY_BREAK
6746 case 155:
6747 /* rule 155 can match eol */
6748 YY_RULE_SETUP
6749 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
6750         YY_BREAK
6751 case 156:
6752 /* rule 156 can match eol */
6753 YY_RULE_SETUP
6754 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
6755         YY_BREAK
6756 case 157:
6757 /* rule 157 can match eol */
6758 YY_RULE_SETUP
6759 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
6760         YY_BREAK
6761 case 158:
6762 /* rule 158 can match eol */
6763 YY_RULE_SETUP
6764 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
6765         YY_BREAK
6766 case 159:
6767 /* rule 159 can match eol */
6768 YY_RULE_SETUP
6769 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
6770         YY_BREAK
6771 case 160:
6772 /* rule 160 can match eol */
6773 YY_RULE_SETUP
6774 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");} surfxml_storage_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content___type);
6775         YY_BREAK
6776 case 161:
6777 /* rule 161 can match eol */
6778 YY_RULE_SETUP
6779 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");}  surfxml_storage_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content___type);
6780         YY_BREAK
6781 case 162:
6782 YY_RULE_SETUP
6783 {
6784   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6785   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6786   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6787  }
6788         YY_BREAK
6789 case 163:
6790 YY_RULE_SETUP
6791 {
6792   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6793   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6794   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6795   switch (YY_START) {
6796    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6797    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6798   }
6799  }
6800         YY_BREAK
6801 case 164:
6802 YY_RULE_SETUP
6803 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6804         YY_BREAK
6805 case 165:
6806 YY_RULE_SETUP
6807 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6808         YY_BREAK
6809 case YY_STATE_EOF(AL_surfxml_storage):
6810 FAIL("EOF in attribute list of `storage' element.");
6811         YY_BREAK
6812
6813 case 166:
6814 /* rule 166 can match eol */
6815 YY_RULE_SETUP
6816 {
6817   LEAVE;
6818   ETag_surfxml_storage();
6819   popbuffer(); /* attribute */
6820   switch (YY_START) {
6821    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6822    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6823   }
6824  }
6825         YY_BREAK
6826 case 167:
6827 /* rule 167 can match eol */
6828 YY_RULE_SETUP
6829 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6830         YY_BREAK
6831 case 168:
6832 YY_RULE_SETUP
6833 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6834         YY_BREAK
6835 case YY_STATE_EOF(E_surfxml_storage):
6836 case YY_STATE_EOF(S_surfxml_storage):
6837 case YY_STATE_EOF(S_surfxml_storage_2):
6838 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6839         YY_BREAK
6840
6841 case 169:
6842 /* rule 169 can match eol */
6843 YY_RULE_SETUP
6844 FAIL("Starting tag <mount> is not allowed here.");
6845         YY_BREAK
6846 case 170:
6847 /* rule 170 can match eol */
6848 YY_RULE_SETUP
6849 {
6850   AX_surfxml_mount_storageId = 0;
6851   surfxml_mount_storageId_isset = 0;
6852   AX_surfxml_mount_name = 0;
6853   surfxml_mount_name_isset = 0;
6854   ENTER(AL_surfxml_mount); pushbuffer(0);
6855   }
6856         YY_BREAK
6857
6858 case 171:
6859 /* rule 171 can match eol */
6860 YY_RULE_SETUP
6861 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");} surfxml_mount_storageId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_storageId);
6862         YY_BREAK
6863 case 172:
6864 /* rule 172 can match eol */
6865 YY_RULE_SETUP
6866 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");}  surfxml_mount_storageId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_storageId);
6867         YY_BREAK
6868 case 173:
6869 /* rule 173 can match eol */
6870 YY_RULE_SETUP
6871 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
6872         YY_BREAK
6873 case 174:
6874 /* rule 174 can match eol */
6875 YY_RULE_SETUP
6876 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
6877         YY_BREAK
6878 case 175:
6879 YY_RULE_SETUP
6880 {
6881   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6882   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6883   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6884  }
6885         YY_BREAK
6886 case 176:
6887 YY_RULE_SETUP
6888 {
6889   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6890   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6891   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6892   switch (YY_START) {
6893    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6894   }
6895  }
6896         YY_BREAK
6897 case 177:
6898 YY_RULE_SETUP
6899 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6900         YY_BREAK
6901 case 178:
6902 YY_RULE_SETUP
6903 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6904         YY_BREAK
6905 case YY_STATE_EOF(AL_surfxml_mount):
6906 FAIL("EOF in attribute list of `mount' element.");
6907         YY_BREAK
6908
6909 case 179:
6910 /* rule 179 can match eol */
6911 YY_RULE_SETUP
6912 {
6913   LEAVE;
6914   ETag_surfxml_mount();
6915   popbuffer(); /* attribute */
6916   switch (YY_START) {
6917    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6918   }
6919  }
6920         YY_BREAK
6921 case 180:
6922 /* rule 180 can match eol */
6923 YY_RULE_SETUP
6924 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6925         YY_BREAK
6926 case 181:
6927 YY_RULE_SETUP
6928 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6929         YY_BREAK
6930 case YY_STATE_EOF(E_surfxml_mount):
6931 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6932         YY_BREAK
6933
6934 case 182:
6935 /* rule 182 can match eol */
6936 YY_RULE_SETUP
6937 FAIL("Starting tag <mstorage> is not allowed here.");
6938         YY_BREAK
6939 case 183:
6940 /* rule 183 can match eol */
6941 YY_RULE_SETUP
6942 {
6943   AX_surfxml_mstorage_typeId = 0;
6944   surfxml_mstorage_typeId_isset = 0;
6945   AX_surfxml_mstorage_name = 0;
6946   surfxml_mstorage_name_isset = 0;
6947   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6948   }
6949         YY_BREAK
6950
6951 case 184:
6952 /* rule 184 can match eol */
6953 YY_RULE_SETUP
6954 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
6955         YY_BREAK
6956 case 185:
6957 /* rule 185 can match eol */
6958 YY_RULE_SETUP
6959 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
6960         YY_BREAK
6961 case 186:
6962 /* rule 186 can match eol */
6963 YY_RULE_SETUP
6964 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
6965         YY_BREAK
6966 case 187:
6967 /* rule 187 can match eol */
6968 YY_RULE_SETUP
6969 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
6970         YY_BREAK
6971 case 188:
6972 YY_RULE_SETUP
6973 {
6974   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6975   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6976   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6977  }
6978         YY_BREAK
6979 case 189:
6980 YY_RULE_SETUP
6981 {
6982   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6983   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6984   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6985   switch (YY_START) {
6986    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6987   }
6988  }
6989         YY_BREAK
6990 case 190:
6991 YY_RULE_SETUP
6992 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6993         YY_BREAK
6994 case 191:
6995 YY_RULE_SETUP
6996 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6997         YY_BREAK
6998 case YY_STATE_EOF(AL_surfxml_mstorage):
6999 FAIL("EOF in attribute list of `mstorage' element.");
7000         YY_BREAK
7001
7002 case 192:
7003 /* rule 192 can match eol */
7004 YY_RULE_SETUP
7005 {
7006   LEAVE;
7007   ETag_surfxml_mstorage();
7008   popbuffer(); /* attribute */
7009   switch (YY_START) {
7010    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7011   }
7012  }
7013         YY_BREAK
7014 case 193:
7015 /* rule 193 can match eol */
7016 YY_RULE_SETUP
7017 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
7018         YY_BREAK
7019 case 194:
7020 YY_RULE_SETUP
7021 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
7022         YY_BREAK
7023 case YY_STATE_EOF(E_surfxml_mstorage):
7024 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
7025         YY_BREAK
7026
7027 case 195:
7028 /* rule 195 can match eol */
7029 YY_RULE_SETUP
7030 FAIL("Starting tag <host> is not allowed here.");
7031         YY_BREAK
7032 case 196:
7033 /* rule 196 can match eol */
7034 YY_RULE_SETUP
7035 {
7036   AX_surfxml_host_id = 0;
7037   surfxml_host_id_isset = 0;
7038   AX_surfxml_host_power = 0;
7039   surfxml_host_power_isset = 0;
7040   AX_surfxml_host_core = 34;
7041   surfxml_host_core_isset = 0;
7042   AX_surfxml_host_availability = 36;
7043   surfxml_host_availability_isset = 0;
7044   AX_surfxml_host_availability___file = 0;
7045   surfxml_host_availability___file_isset = 0;
7046   AX_surfxml_host_state = A_surfxml_host_state_ON;
7047   surfxml_host_state_isset = 0;
7048   AX_surfxml_host_state___file = 0;
7049   surfxml_host_state___file_isset = 0;
7050   AX_surfxml_host_coordinates = 0;
7051   surfxml_host_coordinates_isset = 0;
7052   AX_surfxml_host_pstate = 40;
7053   surfxml_host_pstate_isset = 0;
7054   ENTER(AL_surfxml_host); pushbuffer(0);
7055   }
7056         YY_BREAK
7057
7058 case 197:
7059 /* rule 197 can match eol */
7060 YY_RULE_SETUP
7061 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
7062         YY_BREAK
7063 case 198:
7064 /* rule 198 can match eol */
7065 YY_RULE_SETUP
7066 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
7067         YY_BREAK
7068 case 199:
7069 /* rule 199 can match eol */
7070 YY_RULE_SETUP
7071 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
7072         YY_BREAK
7073 case 200:
7074 /* rule 200 can match eol */
7075 YY_RULE_SETUP
7076 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
7077         YY_BREAK
7078 case 201:
7079 /* rule 201 can match eol */
7080 YY_RULE_SETUP
7081 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
7082         YY_BREAK
7083 case 202:
7084 /* rule 202 can match eol */
7085 YY_RULE_SETUP
7086 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
7087         YY_BREAK
7088 case 203:
7089 /* rule 203 can match eol */
7090 YY_RULE_SETUP
7091 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
7092         YY_BREAK
7093 case 204:
7094 /* rule 204 can match eol */
7095 YY_RULE_SETUP
7096 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
7097         YY_BREAK
7098 case 205:
7099 /* rule 205 can match eol */
7100 YY_RULE_SETUP
7101 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability___file);
7102         YY_BREAK
7103 case 206:
7104 /* rule 206 can match eol */
7105 YY_RULE_SETUP
7106 if (surfxml_host_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability___file);
7107         YY_BREAK
7108 case 207:
7109 /* rule 207 can match eol */
7110 case 208:
7111 /* rule 208 can match eol */
7112 YY_RULE_SETUP
7113 A_surfxml_host_state = A_surfxml_host_state_ON;
7114         YY_BREAK
7115 case 209:
7116 /* rule 209 can match eol */
7117 case 210:
7118 /* rule 210 can match eol */
7119 YY_RULE_SETUP
7120 A_surfxml_host_state = A_surfxml_host_state_OFF;
7121         YY_BREAK
7122 case 211:
7123 /* rule 211 can match eol */
7124 YY_RULE_SETUP
7125 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state___file);
7126         YY_BREAK
7127 case 212:
7128 /* rule 212 can match eol */
7129 YY_RULE_SETUP
7130 if (surfxml_host_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state___file);
7131         YY_BREAK
7132 case 213:
7133 /* rule 213 can match eol */
7134 YY_RULE_SETUP
7135 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
7136         YY_BREAK
7137 case 214:
7138 /* rule 214 can match eol */
7139 YY_RULE_SETUP
7140 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
7141         YY_BREAK
7142 case 215:
7143 /* rule 215 can match eol */
7144 YY_RULE_SETUP
7145 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
7146         YY_BREAK
7147 case 216:
7148 /* rule 216 can match eol */
7149 YY_RULE_SETUP
7150 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
7151         YY_BREAK
7152 case 217:
7153 YY_RULE_SETUP
7154 {
7155   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7156   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7157   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7158  }
7159         YY_BREAK
7160 case 218:
7161 YY_RULE_SETUP
7162 {
7163   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7164   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7165   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7166   switch (YY_START) {
7167    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7168   }
7169  }
7170         YY_BREAK
7171 case 219:
7172 YY_RULE_SETUP
7173 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7174         YY_BREAK
7175 case 220:
7176 YY_RULE_SETUP
7177 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7178         YY_BREAK
7179 case YY_STATE_EOF(AL_surfxml_host):
7180 FAIL("EOF in attribute list of `host' element.");
7181         YY_BREAK
7182
7183 case 221:
7184 /* rule 221 can match eol */
7185 YY_RULE_SETUP
7186 {
7187   LEAVE;
7188   ETag_surfxml_host();
7189   popbuffer(); /* attribute */
7190   switch (YY_START) {
7191    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7192   }
7193  }
7194         YY_BREAK
7195 case 222:
7196 /* rule 222 can match eol */
7197 YY_RULE_SETUP
7198 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7199         YY_BREAK
7200 case 223:
7201 YY_RULE_SETUP
7202 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7203         YY_BREAK
7204 case YY_STATE_EOF(S_surfxml_host):
7205 case YY_STATE_EOF(E_surfxml_host):
7206 case YY_STATE_EOF(S_surfxml_host_2):
7207 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7208         YY_BREAK
7209
7210 case 224:
7211 /* rule 224 can match eol */
7212 YY_RULE_SETUP
7213 FAIL("Starting tag <gpu> is not allowed here.");
7214         YY_BREAK
7215 case 225:
7216 /* rule 225 can match eol */
7217 YY_RULE_SETUP
7218 {
7219   AX_surfxml_gpu_name = 0;
7220   surfxml_gpu_name_isset = 0;
7221   ENTER(AL_surfxml_gpu); pushbuffer(0);
7222   }
7223         YY_BREAK
7224
7225 case 226:
7226 /* rule 226 can match eol */
7227 YY_RULE_SETUP
7228 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");} surfxml_gpu_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
7229         YY_BREAK
7230 case 227:
7231 /* rule 227 can match eol */
7232 YY_RULE_SETUP
7233 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");}  surfxml_gpu_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
7234         YY_BREAK
7235 case 228:
7236 YY_RULE_SETUP
7237 {
7238   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7239   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7240  }
7241         YY_BREAK
7242 case 229:
7243 YY_RULE_SETUP
7244 {
7245   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7246   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7247   switch (YY_START) {
7248    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7249   }
7250  }
7251         YY_BREAK
7252 case 230:
7253 YY_RULE_SETUP
7254 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7255         YY_BREAK
7256 case 231:
7257 YY_RULE_SETUP
7258 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7259         YY_BREAK
7260 case YY_STATE_EOF(AL_surfxml_gpu):
7261 FAIL("EOF in attribute list of `gpu' element.");
7262         YY_BREAK
7263
7264 case 232:
7265 /* rule 232 can match eol */
7266 YY_RULE_SETUP
7267 {
7268   LEAVE;
7269   ETag_surfxml_gpu();
7270   popbuffer(); /* attribute */
7271   switch (YY_START) {
7272    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7273   }
7274  }
7275         YY_BREAK
7276 case 233:
7277 /* rule 233 can match eol */
7278 YY_RULE_SETUP
7279 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7280         YY_BREAK
7281 case 234:
7282 YY_RULE_SETUP
7283 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7284         YY_BREAK
7285 case YY_STATE_EOF(E_surfxml_gpu):
7286 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7287         YY_BREAK
7288
7289 case 235:
7290 /* rule 235 can match eol */
7291 YY_RULE_SETUP
7292 FAIL("Starting tag <host_link> is not allowed here.");
7293         YY_BREAK
7294 case 236:
7295 /* rule 236 can match eol */
7296 YY_RULE_SETUP
7297 {
7298   AX_surfxml_host___link_id = 0;
7299   surfxml_host___link_id_isset = 0;
7300   AX_surfxml_host___link_up = 0;
7301   surfxml_host___link_up_isset = 0;
7302   AX_surfxml_host___link_down = 0;
7303   surfxml_host___link_down_isset = 0;
7304   ENTER(AL_surfxml_host___link); pushbuffer(0);
7305   }
7306         YY_BREAK
7307
7308 case 237:
7309 /* rule 237 can match eol */
7310 YY_RULE_SETUP
7311 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");} surfxml_host___link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_id);
7312         YY_BREAK
7313 case 238:
7314 /* rule 238 can match eol */
7315 YY_RULE_SETUP
7316 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");}  surfxml_host___link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
7317         YY_BREAK
7318 case 239:
7319 /* rule 239 can match eol */
7320 YY_RULE_SETUP
7321 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");} surfxml_host___link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_up);
7322         YY_BREAK
7323 case 240:
7324 /* rule 240 can match eol */
7325 YY_RULE_SETUP
7326 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");}  surfxml_host___link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
7327         YY_BREAK
7328 case 241:
7329 /* rule 241 can match eol */
7330 YY_RULE_SETUP
7331 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");} surfxml_host___link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_down);
7332         YY_BREAK
7333 case 242:
7334 /* rule 242 can match eol */
7335 YY_RULE_SETUP
7336 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");}  surfxml_host___link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_down);
7337         YY_BREAK
7338 case 243:
7339 YY_RULE_SETUP
7340 {
7341   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7342   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7343   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7344   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7345  }
7346         YY_BREAK
7347 case 244:
7348 YY_RULE_SETUP
7349 {
7350   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7351   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7352   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7353   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7354   switch (YY_START) {
7355    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7356   }
7357  }
7358         YY_BREAK
7359 case 245:
7360 YY_RULE_SETUP
7361 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7362         YY_BREAK
7363 case 246:
7364 YY_RULE_SETUP
7365 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7366         YY_BREAK
7367 case YY_STATE_EOF(AL_surfxml_host___link):
7368 FAIL("EOF in attribute list of `host_link' element.");
7369         YY_BREAK
7370
7371 case 247:
7372 /* rule 247 can match eol */
7373 YY_RULE_SETUP
7374 {
7375   LEAVE;
7376   ETag_surfxml_host___link();
7377   popbuffer(); /* attribute */
7378   switch (YY_START) {
7379    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7380   }
7381  }
7382         YY_BREAK
7383 case 248:
7384 /* rule 248 can match eol */
7385 YY_RULE_SETUP
7386 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7387         YY_BREAK
7388 case 249:
7389 YY_RULE_SETUP
7390 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7391         YY_BREAK
7392 case YY_STATE_EOF(E_surfxml_host___link):
7393 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7394         YY_BREAK
7395
7396 case 250:
7397 /* rule 250 can match eol */
7398 YY_RULE_SETUP
7399 FAIL("Starting tag <cluster> is not allowed here.");
7400         YY_BREAK
7401 case 251:
7402 /* rule 251 can match eol */
7403 YY_RULE_SETUP
7404 {
7405   AX_surfxml_cluster_id = 0;
7406   surfxml_cluster_id_isset = 0;
7407   AX_surfxml_cluster_prefix = 0;
7408   surfxml_cluster_prefix_isset = 0;
7409   AX_surfxml_cluster_suffix = 0;
7410   surfxml_cluster_suffix_isset = 0;
7411   AX_surfxml_cluster_radical = 0;
7412   surfxml_cluster_radical_isset = 0;
7413   AX_surfxml_cluster_power = 0;
7414   surfxml_cluster_power_isset = 0;
7415   AX_surfxml_cluster_core = 44;
7416   surfxml_cluster_core_isset = 0;
7417   AX_surfxml_cluster_bw = 0;
7418   surfxml_cluster_bw_isset = 0;
7419   AX_surfxml_cluster_lat = 0;
7420   surfxml_cluster_lat_isset = 0;
7421   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7422   surfxml_cluster_sharing___policy_isset = 0;
7423   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7424   surfxml_cluster_topology_isset = 0;
7425   AX_surfxml_cluster_topo___parameters = 0;
7426   surfxml_cluster_topo___parameters_isset = 0;
7427   AX_surfxml_cluster_bb___bw = 0;
7428   surfxml_cluster_bb___bw_isset = 0;
7429   AX_surfxml_cluster_bb___lat = 0;
7430   surfxml_cluster_bb___lat_isset = 0;
7431   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7432   surfxml_cluster_bb___sharing___policy_isset = 0;
7433   AX_surfxml_cluster_availability___file = 0;
7434   surfxml_cluster_availability___file_isset = 0;
7435   AX_surfxml_cluster_state___file = 0;
7436   surfxml_cluster_state___file_isset = 0;
7437   AX_surfxml_cluster_router___id = 0;
7438   surfxml_cluster_router___id_isset = 0;
7439   AX_surfxml_cluster_limiter___link = 0;
7440   surfxml_cluster_limiter___link_isset = 0;
7441   AX_surfxml_cluster_loopback___bw = 0;
7442   surfxml_cluster_loopback___bw_isset = 0;
7443   AX_surfxml_cluster_loopback___lat = 0;
7444   surfxml_cluster_loopback___lat_isset = 0;
7445   ENTER(AL_surfxml_cluster); pushbuffer(0);
7446   }
7447         YY_BREAK
7448
7449 case 252:
7450 /* rule 252 can match eol */
7451 YY_RULE_SETUP
7452 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
7453         YY_BREAK
7454 case 253:
7455 /* rule 253 can match eol */
7456 YY_RULE_SETUP
7457 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
7458         YY_BREAK
7459 case 254:
7460 /* rule 254 can match eol */
7461 YY_RULE_SETUP
7462 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
7463         YY_BREAK
7464 case 255:
7465 /* rule 255 can match eol */
7466 YY_RULE_SETUP
7467 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
7468         YY_BREAK
7469 case 256:
7470 /* rule 256 can match eol */
7471 YY_RULE_SETUP
7472 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
7473         YY_BREAK
7474 case 257:
7475 /* rule 257 can match eol */
7476 YY_RULE_SETUP
7477 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
7478         YY_BREAK
7479 case 258:
7480 /* rule 258 can match eol */
7481 YY_RULE_SETUP
7482 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
7483         YY_BREAK
7484 case 259:
7485 /* rule 259 can match eol */
7486 YY_RULE_SETUP
7487 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
7488         YY_BREAK
7489 case 260:
7490 /* rule 260 can match eol */
7491 YY_RULE_SETUP
7492 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
7493         YY_BREAK
7494 case 261:
7495 /* rule 261 can match eol */
7496 YY_RULE_SETUP
7497 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
7498         YY_BREAK
7499 case 262:
7500 /* rule 262 can match eol */
7501 YY_RULE_SETUP
7502 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
7503         YY_BREAK
7504 case 263:
7505 /* rule 263 can match eol */
7506 YY_RULE_SETUP
7507 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
7508         YY_BREAK
7509 case 264:
7510 /* rule 264 can match eol */
7511 YY_RULE_SETUP
7512 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
7513         YY_BREAK
7514 case 265:
7515 /* rule 265 can match eol */
7516 YY_RULE_SETUP
7517 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
7518         YY_BREAK
7519 case 266:
7520 /* rule 266 can match eol */
7521 YY_RULE_SETUP
7522 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
7523         YY_BREAK
7524 case 267:
7525 /* rule 267 can match eol */
7526 YY_RULE_SETUP
7527 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
7528         YY_BREAK
7529 case 268:
7530 /* rule 268 can match eol */
7531 case 269:
7532 /* rule 269 can match eol */
7533 YY_RULE_SETUP
7534 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7535         YY_BREAK
7536 case 270:
7537 /* rule 270 can match eol */
7538 case 271:
7539 /* rule 271 can match eol */
7540 YY_RULE_SETUP
7541 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7542         YY_BREAK
7543 case 272:
7544 /* rule 272 can match eol */
7545 case 273:
7546 /* rule 273 can match eol */
7547 YY_RULE_SETUP
7548 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7549         YY_BREAK
7550 case 274:
7551 /* rule 274 can match eol */
7552 case 275:
7553 /* rule 275 can match eol */
7554 YY_RULE_SETUP
7555 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7556         YY_BREAK
7557 case 276:
7558 /* rule 276 can match eol */
7559 case 277:
7560 /* rule 277 can match eol */
7561 YY_RULE_SETUP
7562 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
7563         YY_BREAK
7564 case 278:
7565 /* rule 278 can match eol */
7566 YY_RULE_SETUP
7567 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");} surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_topo___parameters);
7568         YY_BREAK
7569 case 279:
7570 /* rule 279 can match eol */
7571 YY_RULE_SETUP
7572 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");}  surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_topo___parameters);
7573         YY_BREAK
7574 case 280:
7575 /* rule 280 can match eol */
7576 YY_RULE_SETUP
7577 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___bw);
7578         YY_BREAK
7579 case 281:
7580 /* rule 281 can match eol */
7581 YY_RULE_SETUP
7582 if (surfxml_cluster_bb___bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___bw);
7583         YY_BREAK
7584 case 282:
7585 /* rule 282 can match eol */
7586 YY_RULE_SETUP
7587 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb___lat);
7588         YY_BREAK
7589 case 283:
7590 /* rule 283 can match eol */
7591 YY_RULE_SETUP
7592 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___lat);
7593         YY_BREAK
7594 case 284:
7595 /* rule 284 can match eol */
7596 case 285:
7597 /* rule 285 can match eol */
7598 YY_RULE_SETUP
7599 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7600         YY_BREAK
7601 case 286:
7602 /* rule 286 can match eol */
7603 case 287:
7604 /* rule 287 can match eol */
7605 YY_RULE_SETUP
7606 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7607         YY_BREAK
7608 case 288:
7609 /* rule 288 can match eol */
7610 YY_RULE_SETUP
7611 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability___file);
7612         YY_BREAK
7613 case 289:
7614 /* rule 289 can match eol */
7615 YY_RULE_SETUP
7616 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability___file);
7617         YY_BREAK
7618 case 290:
7619 /* rule 290 can match eol */
7620 YY_RULE_SETUP
7621 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state___file);
7622         YY_BREAK
7623 case 291:
7624 /* rule 291 can match eol */
7625 YY_RULE_SETUP
7626 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state___file);
7627         YY_BREAK
7628 case 292:
7629 /* rule 292 can match eol */
7630 YY_RULE_SETUP
7631 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router___id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router___id);
7632         YY_BREAK
7633 case 293:
7634 /* rule 293 can match eol */
7635 YY_RULE_SETUP
7636 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router___id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router___id);
7637         YY_BREAK
7638 case 294:
7639 /* rule 294 can match eol */
7640 YY_RULE_SETUP
7641 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
7642         YY_BREAK
7643 case 295:
7644 /* rule 295 can match eol */
7645 YY_RULE_SETUP
7646 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
7647         YY_BREAK
7648 case 296:
7649 /* rule 296 can match eol */
7650 YY_RULE_SETUP
7651 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7652         YY_BREAK
7653 case 297:
7654 /* rule 297 can match eol */
7655 YY_RULE_SETUP
7656 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7657         YY_BREAK
7658 case 298:
7659 /* rule 298 can match eol */
7660 YY_RULE_SETUP
7661 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7662         YY_BREAK
7663 case 299:
7664 /* rule 299 can match eol */
7665 YY_RULE_SETUP
7666 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7667         YY_BREAK
7668 case 300:
7669 YY_RULE_SETUP
7670 {
7671   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7672   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7673   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7674   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7675   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7676   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7677   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7678   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7679  }
7680         YY_BREAK
7681 case 301:
7682 YY_RULE_SETUP
7683 {
7684   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7685   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7686   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7687   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7688   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7689   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7690   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7691   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7692   switch (YY_START) {
7693    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7694    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7695    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7696   }
7697  }
7698         YY_BREAK
7699 case 302:
7700 YY_RULE_SETUP
7701 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7702         YY_BREAK
7703 case 303:
7704 YY_RULE_SETUP
7705 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7706         YY_BREAK
7707 case YY_STATE_EOF(AL_surfxml_cluster):
7708 FAIL("EOF in attribute list of `cluster' element.");
7709         YY_BREAK
7710
7711 case 304:
7712 /* rule 304 can match eol */
7713 YY_RULE_SETUP
7714 {
7715   LEAVE;
7716   ETag_surfxml_cluster();
7717   popbuffer(); /* attribute */
7718   switch (YY_START) {
7719    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7720    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7721    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7722   }
7723  }
7724         YY_BREAK
7725 case 305:
7726 /* rule 305 can match eol */
7727 YY_RULE_SETUP
7728 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7729         YY_BREAK
7730 case 306:
7731 YY_RULE_SETUP
7732 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7733         YY_BREAK
7734 case YY_STATE_EOF(S_surfxml_cluster_2):
7735 case YY_STATE_EOF(S_surfxml_cluster):
7736 case YY_STATE_EOF(E_surfxml_cluster):
7737 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7738         YY_BREAK
7739
7740 case 307:
7741 /* rule 307 can match eol */
7742 YY_RULE_SETUP
7743 FAIL("Starting tag <cabinet> is not allowed here.");
7744         YY_BREAK
7745 case 308:
7746 /* rule 308 can match eol */
7747 YY_RULE_SETUP
7748 {
7749   AX_surfxml_cabinet_id = 0;
7750   surfxml_cabinet_id_isset = 0;
7751   AX_surfxml_cabinet_prefix = 0;
7752   surfxml_cabinet_prefix_isset = 0;
7753   AX_surfxml_cabinet_suffix = 0;
7754   surfxml_cabinet_suffix_isset = 0;
7755   AX_surfxml_cabinet_radical = 0;
7756   surfxml_cabinet_radical_isset = 0;
7757   AX_surfxml_cabinet_power = 0;
7758   surfxml_cabinet_power_isset = 0;
7759   AX_surfxml_cabinet_bw = 0;
7760   surfxml_cabinet_bw_isset = 0;
7761   AX_surfxml_cabinet_lat = 0;
7762   surfxml_cabinet_lat_isset = 0;
7763   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7764   }
7765         YY_BREAK
7766
7767 case 309:
7768 /* rule 309 can match eol */
7769 YY_RULE_SETUP
7770 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");} surfxml_cabinet_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
7771         YY_BREAK
7772 case 310:
7773 /* rule 310 can match eol */
7774 YY_RULE_SETUP
7775 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");}  surfxml_cabinet_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
7776         YY_BREAK
7777 case 311:
7778 /* rule 311 can match eol */
7779 YY_RULE_SETUP
7780 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");} surfxml_cabinet_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
7781         YY_BREAK
7782 case 312:
7783 /* rule 312 can match eol */
7784 YY_RULE_SETUP
7785 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");}  surfxml_cabinet_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
7786         YY_BREAK
7787 case 313:
7788 /* rule 313 can match eol */
7789 YY_RULE_SETUP
7790 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");} surfxml_cabinet_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
7791         YY_BREAK
7792 case 314:
7793 /* rule 314 can match eol */
7794 YY_RULE_SETUP
7795 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");}  surfxml_cabinet_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
7796         YY_BREAK
7797 case 315:
7798 /* rule 315 can match eol */
7799 YY_RULE_SETUP
7800 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");} surfxml_cabinet_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
7801         YY_BREAK
7802 case 316:
7803 /* rule 316 can match eol */
7804 YY_RULE_SETUP
7805 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");}  surfxml_cabinet_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
7806         YY_BREAK
7807 case 317:
7808 /* rule 317 can match eol */
7809 YY_RULE_SETUP
7810 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7811         YY_BREAK
7812 case 318:
7813 /* rule 318 can match eol */
7814 YY_RULE_SETUP
7815 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7816         YY_BREAK
7817 case 319:
7818 /* rule 319 can match eol */
7819 YY_RULE_SETUP
7820 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");} surfxml_cabinet_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
7821         YY_BREAK
7822 case 320:
7823 /* rule 320 can match eol */
7824 YY_RULE_SETUP
7825 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");}  surfxml_cabinet_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
7826         YY_BREAK
7827 case 321:
7828 /* rule 321 can match eol */
7829 YY_RULE_SETUP
7830 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
7831         YY_BREAK
7832 case 322:
7833 /* rule 322 can match eol */
7834 YY_RULE_SETUP
7835 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
7836         YY_BREAK
7837 case 323:
7838 YY_RULE_SETUP
7839 {
7840   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7841   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7842   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7843   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7844   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7845   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7846   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7847   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7848  }
7849         YY_BREAK
7850 case 324:
7851 YY_RULE_SETUP
7852 {
7853   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7854   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7855   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7856   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7857   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7858   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7859   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7860   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7861   switch (YY_START) {
7862    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7863    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7864    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7865    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7866   }
7867  }
7868         YY_BREAK
7869 case 325:
7870 YY_RULE_SETUP
7871 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7872         YY_BREAK
7873 case 326:
7874 YY_RULE_SETUP
7875 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7876         YY_BREAK
7877 case YY_STATE_EOF(AL_surfxml_cabinet):
7878 FAIL("EOF in attribute list of `cabinet' element.");
7879         YY_BREAK
7880
7881 case 327:
7882 /* rule 327 can match eol */
7883 YY_RULE_SETUP
7884 {
7885   LEAVE;
7886   ETag_surfxml_cabinet();
7887   popbuffer(); /* attribute */
7888   switch (YY_START) {
7889    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7890    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7891    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7892    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7893   }
7894  }
7895         YY_BREAK
7896 case 328:
7897 /* rule 328 can match eol */
7898 YY_RULE_SETUP
7899 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7900         YY_BREAK
7901 case 329:
7902 YY_RULE_SETUP
7903 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7904         YY_BREAK
7905 case YY_STATE_EOF(E_surfxml_cabinet):
7906 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7907         YY_BREAK
7908
7909 case 330:
7910 /* rule 330 can match eol */
7911 YY_RULE_SETUP
7912 FAIL("Starting tag <peer> is not allowed here.");
7913         YY_BREAK
7914 case 331:
7915 /* rule 331 can match eol */
7916 YY_RULE_SETUP
7917 {
7918   AX_surfxml_peer_id = 0;
7919   surfxml_peer_id_isset = 0;
7920   AX_surfxml_peer_power = 0;
7921   surfxml_peer_power_isset = 0;
7922   AX_surfxml_peer_bw___in = 0;
7923   surfxml_peer_bw___in_isset = 0;
7924   AX_surfxml_peer_bw___out = 0;
7925   surfxml_peer_bw___out_isset = 0;
7926   AX_surfxml_peer_lat = 0;
7927   surfxml_peer_lat_isset = 0;
7928   AX_surfxml_peer_coordinates = 0;
7929   surfxml_peer_coordinates_isset = 0;
7930   AX_surfxml_peer_availability___file = 0;
7931   surfxml_peer_availability___file_isset = 0;
7932   AX_surfxml_peer_state___file = 0;
7933   surfxml_peer_state___file_isset = 0;
7934   ENTER(AL_surfxml_peer); pushbuffer(0);
7935   }
7936         YY_BREAK
7937
7938 case 332:
7939 /* rule 332 can match eol */
7940 YY_RULE_SETUP
7941 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
7942         YY_BREAK
7943 case 333:
7944 /* rule 333 can match eol */
7945 YY_RULE_SETUP
7946 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
7947         YY_BREAK
7948 case 334:
7949 /* rule 334 can match eol */
7950 YY_RULE_SETUP
7951 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
7952         YY_BREAK
7953 case 335:
7954 /* rule 335 can match eol */
7955 YY_RULE_SETUP
7956 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
7957         YY_BREAK
7958 case 336:
7959 /* rule 336 can match eol */
7960 YY_RULE_SETUP
7961 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw___in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___in);
7962         YY_BREAK
7963 case 337:
7964 /* rule 337 can match eol */
7965 YY_RULE_SETUP
7966 if (surfxml_peer_bw___in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw___in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___in);
7967         YY_BREAK
7968 case 338:
7969 /* rule 338 can match eol */
7970 YY_RULE_SETUP
7971 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw___out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw___out);
7972         YY_BREAK
7973 case 339:
7974 /* rule 339 can match eol */
7975 YY_RULE_SETUP
7976 if (surfxml_peer_bw___out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw___out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw___out);
7977         YY_BREAK
7978 case 340:
7979 /* rule 340 can match eol */
7980 YY_RULE_SETUP
7981 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
7982         YY_BREAK
7983 case 341:
7984 /* rule 341 can match eol */
7985 YY_RULE_SETUP
7986 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
7987         YY_BREAK
7988 case 342:
7989 /* rule 342 can match eol */
7990 YY_RULE_SETUP
7991 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
7992         YY_BREAK
7993 case 343:
7994 /* rule 343 can match eol */
7995 YY_RULE_SETUP
7996 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
7997         YY_BREAK
7998 case 344:
7999 /* rule 344 can match eol */
8000 YY_RULE_SETUP
8001 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability___file);
8002         YY_BREAK
8003 case 345:
8004 /* rule 345 can match eol */
8005 YY_RULE_SETUP
8006 if (surfxml_peer_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability___file);
8007         YY_BREAK
8008 case 346:
8009 /* rule 346 can match eol */
8010 YY_RULE_SETUP
8011 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state___file);
8012         YY_BREAK
8013 case 347:
8014 /* rule 347 can match eol */
8015 YY_RULE_SETUP
8016 if (surfxml_peer_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state___file);
8017         YY_BREAK
8018 case 348:
8019 YY_RULE_SETUP
8020 {
8021   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8022   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8023   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8024   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8025   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8026   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
8027  }
8028         YY_BREAK
8029 case 349:
8030 YY_RULE_SETUP
8031 {
8032   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8033   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8034   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8035   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8036   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8037   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
8038   switch (YY_START) {
8039    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8040    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
8041    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
8042   }
8043  }
8044         YY_BREAK
8045 case 350:
8046 YY_RULE_SETUP
8047 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
8048         YY_BREAK
8049 case 351:
8050 YY_RULE_SETUP
8051 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
8052         YY_BREAK
8053 case YY_STATE_EOF(AL_surfxml_peer):
8054 FAIL("EOF in attribute list of `peer' element.");
8055         YY_BREAK
8056
8057 case 352:
8058 /* rule 352 can match eol */
8059 YY_RULE_SETUP
8060 {
8061   LEAVE;
8062   ETag_surfxml_peer();
8063   popbuffer(); /* attribute */
8064   switch (YY_START) {
8065    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8066    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
8067    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
8068   }
8069  }
8070         YY_BREAK
8071 case 353:
8072 /* rule 353 can match eol */
8073 YY_RULE_SETUP
8074 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
8075         YY_BREAK
8076 case 354:
8077 YY_RULE_SETUP
8078 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
8079         YY_BREAK
8080 case YY_STATE_EOF(E_surfxml_peer):
8081 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
8082         YY_BREAK
8083
8084 case 355:
8085 /* rule 355 can match eol */
8086 YY_RULE_SETUP
8087 FAIL("Starting tag <router> is not allowed here.");
8088         YY_BREAK
8089 case 356:
8090 /* rule 356 can match eol */
8091 YY_RULE_SETUP
8092 {
8093   AX_surfxml_router_id = 0;
8094   surfxml_router_id_isset = 0;
8095   AX_surfxml_router_coordinates = 0;
8096   surfxml_router_coordinates_isset = 0;
8097   ENTER(AL_surfxml_router); pushbuffer(0);
8098   }
8099         YY_BREAK
8100
8101 case 357:
8102 /* rule 357 can match eol */
8103 YY_RULE_SETUP
8104 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
8105         YY_BREAK
8106 case 358:
8107 /* rule 358 can match eol */
8108 YY_RULE_SETUP
8109 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
8110         YY_BREAK
8111 case 359:
8112 /* rule 359 can match eol */
8113 YY_RULE_SETUP
8114 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
8115         YY_BREAK
8116 case 360:
8117 /* rule 360 can match eol */
8118 YY_RULE_SETUP
8119 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
8120         YY_BREAK
8121 case 361:
8122 YY_RULE_SETUP
8123 {
8124   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8125   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
8126  }
8127         YY_BREAK
8128 case 362:
8129 YY_RULE_SETUP
8130 {
8131   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8132   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
8133   switch (YY_START) {
8134    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8135   }
8136  }
8137         YY_BREAK
8138 case 363:
8139 YY_RULE_SETUP
8140 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
8141         YY_BREAK
8142 case 364:
8143 YY_RULE_SETUP
8144 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
8145         YY_BREAK
8146 case YY_STATE_EOF(AL_surfxml_router):
8147 FAIL("EOF in attribute list of `router' element.");
8148         YY_BREAK
8149
8150 case 365:
8151 /* rule 365 can match eol */
8152 YY_RULE_SETUP
8153 {
8154   LEAVE;
8155   ETag_surfxml_router();
8156   popbuffer(); /* attribute */
8157   switch (YY_START) {
8158    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8159   }
8160  }
8161         YY_BREAK
8162 case 366:
8163 /* rule 366 can match eol */
8164 YY_RULE_SETUP
8165 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
8166         YY_BREAK
8167 case 367:
8168 YY_RULE_SETUP
8169 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
8170         YY_BREAK
8171 case YY_STATE_EOF(E_surfxml_router):
8172 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
8173         YY_BREAK
8174
8175 case 368:
8176 /* rule 368 can match eol */
8177 YY_RULE_SETUP
8178 FAIL("Starting tag <backbone> is not allowed here.");
8179         YY_BREAK
8180 case 369:
8181 /* rule 369 can match eol */
8182 YY_RULE_SETUP
8183 {
8184   AX_surfxml_backbone_id = 0;
8185   surfxml_backbone_id_isset = 0;
8186   AX_surfxml_backbone_bandwidth = 0;
8187   surfxml_backbone_bandwidth_isset = 0;
8188   AX_surfxml_backbone_latency = 0;
8189   surfxml_backbone_latency_isset = 0;
8190   ENTER(AL_surfxml_backbone); pushbuffer(0);
8191   }
8192         YY_BREAK
8193
8194 case 370:
8195 /* rule 370 can match eol */
8196 YY_RULE_SETUP
8197 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
8198         YY_BREAK
8199 case 371:
8200 /* rule 371 can match eol */
8201 YY_RULE_SETUP
8202 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
8203         YY_BREAK
8204 case 372:
8205 /* rule 372 can match eol */
8206 YY_RULE_SETUP
8207 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
8208         YY_BREAK
8209 case 373:
8210 /* rule 373 can match eol */
8211 YY_RULE_SETUP
8212 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
8213         YY_BREAK
8214 case 374:
8215 /* rule 374 can match eol */
8216 YY_RULE_SETUP
8217 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
8218         YY_BREAK
8219 case 375:
8220 /* rule 375 can match eol */
8221 YY_RULE_SETUP
8222 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
8223         YY_BREAK
8224 case 376:
8225 YY_RULE_SETUP
8226 {
8227   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8228   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8229   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8230   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
8231  }
8232         YY_BREAK
8233 case 377:
8234 YY_RULE_SETUP
8235 {
8236   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8237   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8238   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8239   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
8240   switch (YY_START) {
8241    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8242    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8243   }
8244  }
8245         YY_BREAK
8246 case 378:
8247 YY_RULE_SETUP
8248 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
8249         YY_BREAK
8250 case 379:
8251 YY_RULE_SETUP
8252 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
8253         YY_BREAK
8254 case YY_STATE_EOF(AL_surfxml_backbone):
8255 FAIL("EOF in attribute list of `backbone' element.");
8256         YY_BREAK
8257
8258 case 380:
8259 /* rule 380 can match eol */
8260 YY_RULE_SETUP
8261 {
8262   LEAVE;
8263   ETag_surfxml_backbone();
8264   popbuffer(); /* attribute */
8265   switch (YY_START) {
8266    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8267    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8268   }
8269  }
8270         YY_BREAK
8271 case 381:
8272 /* rule 381 can match eol */
8273 YY_RULE_SETUP
8274 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
8275         YY_BREAK
8276 case 382:
8277 YY_RULE_SETUP
8278 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
8279         YY_BREAK
8280 case YY_STATE_EOF(E_surfxml_backbone):
8281 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8282         YY_BREAK
8283
8284 case 383:
8285 /* rule 383 can match eol */
8286 YY_RULE_SETUP
8287 FAIL("Starting tag <link> is not allowed here.");
8288         YY_BREAK
8289 case 384:
8290 /* rule 384 can match eol */
8291 YY_RULE_SETUP
8292 {
8293   AX_surfxml_link_id = 0;
8294   surfxml_link_id_isset = 0;
8295   AX_surfxml_link_bandwidth = 0;
8296   surfxml_link_bandwidth_isset = 0;
8297   AX_surfxml_link_bandwidth___file = 0;
8298   surfxml_link_bandwidth___file_isset = 0;
8299   AX_surfxml_link_latency = 46;
8300   surfxml_link_latency_isset = 0;
8301   AX_surfxml_link_latency___file = 0;
8302   surfxml_link_latency___file_isset = 0;
8303   AX_surfxml_link_state = A_surfxml_link_state_ON;
8304   surfxml_link_state_isset = 0;
8305   AX_surfxml_link_state___file = 0;
8306   surfxml_link_state___file_isset = 0;
8307   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8308   surfxml_link_sharing___policy_isset = 0;
8309   ENTER(AL_surfxml_link); pushbuffer(0);
8310   }
8311         YY_BREAK
8312
8313 case 385:
8314 /* rule 385 can match eol */
8315 YY_RULE_SETUP
8316 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
8317         YY_BREAK
8318 case 386:
8319 /* rule 386 can match eol */
8320 YY_RULE_SETUP
8321 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
8322         YY_BREAK
8323 case 387:
8324 /* rule 387 can match eol */
8325 YY_RULE_SETUP
8326 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
8327         YY_BREAK
8328 case 388:
8329 /* rule 388 can match eol */
8330 YY_RULE_SETUP
8331 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
8332         YY_BREAK
8333 case 389:
8334 /* rule 389 can match eol */
8335 YY_RULE_SETUP
8336 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth___file);
8337         YY_BREAK
8338 case 390:
8339 /* rule 390 can match eol */
8340 YY_RULE_SETUP
8341 if (surfxml_link_bandwidth___file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth___file);
8342         YY_BREAK
8343 case 391:
8344 /* rule 391 can match eol */
8345 YY_RULE_SETUP
8346 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
8347         YY_BREAK
8348 case 392:
8349 /* rule 392 can match eol */
8350 YY_RULE_SETUP
8351 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
8352         YY_BREAK
8353 case 393:
8354 /* rule 393 can match eol */
8355 YY_RULE_SETUP
8356 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency___file);
8357         YY_BREAK
8358 case 394:
8359 /* rule 394 can match eol */
8360 YY_RULE_SETUP
8361 if (surfxml_link_latency___file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency___file);
8362         YY_BREAK
8363 case 395:
8364 /* rule 395 can match eol */
8365 case 396:
8366 /* rule 396 can match eol */
8367 YY_RULE_SETUP
8368 A_surfxml_link_state = A_surfxml_link_state_ON;
8369         YY_BREAK
8370 case 397:
8371 /* rule 397 can match eol */
8372 case 398:
8373 /* rule 398 can match eol */
8374 YY_RULE_SETUP
8375 A_surfxml_link_state = A_surfxml_link_state_OFF;
8376         YY_BREAK
8377 case 399:
8378 /* rule 399 can match eol */
8379 YY_RULE_SETUP
8380 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state___file);
8381         YY_BREAK
8382 case 400:
8383 /* rule 400 can match eol */
8384 YY_RULE_SETUP
8385 if (surfxml_link_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state___file);
8386         YY_BREAK
8387 case 401:
8388 /* rule 401 can match eol */
8389 case 402:
8390 /* rule 402 can match eol */
8391 YY_RULE_SETUP
8392 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8393         YY_BREAK
8394 case 403:
8395 /* rule 403 can match eol */
8396 case 404:
8397 /* rule 404 can match eol */
8398 YY_RULE_SETUP
8399 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8400         YY_BREAK
8401 case 405:
8402 /* rule 405 can match eol */
8403 case 406:
8404 /* rule 406 can match eol */
8405 YY_RULE_SETUP
8406 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8407         YY_BREAK
8408 case 407:
8409 YY_RULE_SETUP
8410 {
8411   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8412   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8413   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8414  }
8415         YY_BREAK
8416 case 408:
8417 YY_RULE_SETUP
8418 {
8419   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8420   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8421   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8422   switch (YY_START) {
8423    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8424    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8425   }
8426  }
8427         YY_BREAK
8428 case 409:
8429 YY_RULE_SETUP
8430 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8431         YY_BREAK
8432 case 410:
8433 YY_RULE_SETUP
8434 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8435         YY_BREAK
8436 case YY_STATE_EOF(AL_surfxml_link):
8437 FAIL("EOF in attribute list of `link' element.");
8438         YY_BREAK
8439
8440 case 411:
8441 /* rule 411 can match eol */
8442 YY_RULE_SETUP
8443 {
8444   LEAVE;
8445   ETag_surfxml_link();
8446   popbuffer(); /* attribute */
8447   switch (YY_START) {
8448    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8449    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8450   }
8451  }
8452         YY_BREAK
8453 case 412:
8454 /* rule 412 can match eol */
8455 YY_RULE_SETUP
8456 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8457         YY_BREAK
8458 case 413:
8459 YY_RULE_SETUP
8460 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8461         YY_BREAK
8462 case YY_STATE_EOF(E_surfxml_link):
8463 case YY_STATE_EOF(S_surfxml_link_2):
8464 case YY_STATE_EOF(S_surfxml_link):
8465 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8466         YY_BREAK
8467
8468 case 414:
8469 /* rule 414 can match eol */
8470 YY_RULE_SETUP
8471 FAIL("Starting tag <route> is not allowed here.");
8472         YY_BREAK
8473 case 415:
8474 /* rule 415 can match eol */
8475 YY_RULE_SETUP
8476 {
8477   AX_surfxml_route_src = 0;
8478   surfxml_route_src_isset = 0;
8479   AX_surfxml_route_dst = 0;
8480   surfxml_route_dst_isset = 0;
8481   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8482   surfxml_route_symmetrical_isset = 0;
8483   ENTER(AL_surfxml_route); pushbuffer(0);
8484   }
8485         YY_BREAK
8486
8487 case 416:
8488 /* rule 416 can match eol */
8489 YY_RULE_SETUP
8490 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
8491         YY_BREAK
8492 case 417:
8493 /* rule 417 can match eol */
8494 YY_RULE_SETUP
8495 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
8496         YY_BREAK
8497 case 418:
8498 /* rule 418 can match eol */
8499 YY_RULE_SETUP
8500 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
8501         YY_BREAK
8502 case 419:
8503 /* rule 419 can match eol */
8504 YY_RULE_SETUP
8505 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
8506         YY_BREAK
8507 case 420:
8508 /* rule 420 can match eol */
8509 case 421:
8510 /* rule 421 can match eol */
8511 YY_RULE_SETUP
8512 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8513         YY_BREAK
8514 case 422:
8515 /* rule 422 can match eol */
8516 case 423:
8517 /* rule 423 can match eol */
8518 YY_RULE_SETUP
8519 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8520         YY_BREAK
8521 case 424:
8522 YY_RULE_SETUP
8523 {
8524   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8525   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8526   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8527  }
8528         YY_BREAK
8529 case 425:
8530 YY_RULE_SETUP
8531 {
8532   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8533   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8534   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8535   switch (YY_START) {
8536    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8537   }
8538  }
8539         YY_BREAK
8540 case 426:
8541 YY_RULE_SETUP
8542 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8543         YY_BREAK
8544 case 427:
8545 YY_RULE_SETUP
8546 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8547         YY_BREAK
8548 case YY_STATE_EOF(AL_surfxml_route):
8549 FAIL("EOF in attribute list of `route' element.");
8550         YY_BREAK
8551
8552 case 428:
8553 /* rule 428 can match eol */
8554 YY_RULE_SETUP
8555 {
8556   LEAVE;
8557   ETag_surfxml_route();
8558   popbuffer(); /* attribute */
8559   switch (YY_START) {
8560    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8561   }
8562  }
8563         YY_BREAK
8564 case 429:
8565 /* rule 429 can match eol */
8566 YY_RULE_SETUP
8567 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8568         YY_BREAK
8569 case 430:
8570 YY_RULE_SETUP
8571 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8572         YY_BREAK
8573 case YY_STATE_EOF(S_surfxml_route):
8574 case YY_STATE_EOF(S_surfxml_route_2):
8575 case YY_STATE_EOF(E_surfxml_route):
8576 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8577         YY_BREAK
8578
8579 case 431:
8580 /* rule 431 can match eol */
8581 YY_RULE_SETUP
8582 FAIL("Starting tag <ASroute> is not allowed here.");
8583         YY_BREAK
8584 case 432:
8585 /* rule 432 can match eol */
8586 YY_RULE_SETUP
8587 {
8588   AX_surfxml_ASroute_src = 0;
8589   surfxml_ASroute_src_isset = 0;
8590   AX_surfxml_ASroute_dst = 0;
8591   surfxml_ASroute_dst_isset = 0;
8592   AX_surfxml_ASroute_gw___src = 0;
8593   surfxml_ASroute_gw___src_isset = 0;
8594   AX_surfxml_ASroute_gw___dst = 0;
8595   surfxml_ASroute_gw___dst_isset = 0;
8596   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8597   surfxml_ASroute_symmetrical_isset = 0;
8598   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8599   }
8600         YY_BREAK
8601
8602 case 433:
8603 /* rule 433 can match eol */
8604 YY_RULE_SETUP
8605 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
8606         YY_BREAK
8607 case 434:
8608 /* rule 434 can match eol */
8609 YY_RULE_SETUP
8610 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
8611         YY_BREAK
8612 case 435:
8613 /* rule 435 can match eol */
8614 YY_RULE_SETUP
8615 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
8616         YY_BREAK
8617 case 436:
8618 /* rule 436 can match eol */
8619 YY_RULE_SETUP
8620 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
8621         YY_BREAK
8622 case 437:
8623 /* rule 437 can match eol */
8624 YY_RULE_SETUP
8625 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___src);
8626         YY_BREAK
8627 case 438:
8628 /* rule 438 can match eol */
8629 YY_RULE_SETUP
8630 if (surfxml_ASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___src);
8631         YY_BREAK
8632 case 439:
8633 /* rule 439 can match eol */
8634 YY_RULE_SETUP
8635 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw___dst);
8636         YY_BREAK
8637 case 440:
8638 /* rule 440 can match eol */
8639 YY_RULE_SETUP
8640 if (surfxml_ASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw___dst);
8641         YY_BREAK
8642 case 441:
8643 /* rule 441 can match eol */
8644 case 442:
8645 /* rule 442 can match eol */
8646 YY_RULE_SETUP
8647 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8648         YY_BREAK
8649 case 443:
8650 /* rule 443 can match eol */
8651 case 444:
8652 /* rule 444 can match eol */
8653 YY_RULE_SETUP
8654 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8655         YY_BREAK
8656 case 445:
8657 YY_RULE_SETUP
8658 {
8659   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8660   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8661   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8662   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8663   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8664  }
8665         YY_BREAK
8666 case 446:
8667 YY_RULE_SETUP
8668 {
8669   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8670   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8671   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8672   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8673   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8674   switch (YY_START) {
8675    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8676   }
8677  }
8678         YY_BREAK
8679 case 447:
8680 YY_RULE_SETUP
8681 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8682         YY_BREAK
8683 case 448:
8684 YY_RULE_SETUP
8685 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8686         YY_BREAK
8687 case YY_STATE_EOF(AL_surfxml_ASroute):
8688 FAIL("EOF in attribute list of `ASroute' element.");
8689         YY_BREAK
8690
8691 case 449:
8692 /* rule 449 can match eol */
8693 YY_RULE_SETUP
8694 {
8695   LEAVE;
8696   ETag_surfxml_ASroute();
8697   popbuffer(); /* attribute */
8698   switch (YY_START) {
8699    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8700   }
8701  }
8702         YY_BREAK
8703 case 450:
8704 /* rule 450 can match eol */
8705 YY_RULE_SETUP
8706 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8707         YY_BREAK
8708 case 451:
8709 YY_RULE_SETUP
8710 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8711         YY_BREAK
8712 case YY_STATE_EOF(E_surfxml_ASroute):
8713 case YY_STATE_EOF(S_surfxml_ASroute):
8714 case YY_STATE_EOF(S_surfxml_ASroute_2):
8715 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8716         YY_BREAK
8717
8718 case 452:
8719 /* rule 452 can match eol */
8720 YY_RULE_SETUP
8721 FAIL("Starting tag <link_ctn> is not allowed here.");
8722         YY_BREAK
8723 case 453:
8724 /* rule 453 can match eol */
8725 YY_RULE_SETUP
8726 {
8727   AX_surfxml_link___ctn_id = 0;
8728   surfxml_link___ctn_id_isset = 0;
8729   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8730   surfxml_link___ctn_direction_isset = 0;
8731   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8732   }
8733         YY_BREAK
8734
8735 case 454:
8736 /* rule 454 can match eol */
8737 YY_RULE_SETUP
8738 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");} surfxml_link___ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link___ctn_id);
8739         YY_BREAK
8740 case 455:
8741 /* rule 455 can match eol */
8742 YY_RULE_SETUP
8743 if (surfxml_link___ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link___ctn>");}  surfxml_link___ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link___ctn_id);
8744         YY_BREAK
8745 case 456:
8746 /* rule 456 can match eol */
8747 case 457:
8748 /* rule 457 can match eol */
8749 YY_RULE_SETUP
8750 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8751         YY_BREAK
8752 case 458:
8753 /* rule 458 can match eol */
8754 case 459:
8755 /* rule 459 can match eol */
8756 YY_RULE_SETUP
8757 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8758         YY_BREAK
8759 case 460:
8760 /* rule 460 can match eol */
8761 case 461:
8762 /* rule 461 can match eol */
8763 YY_RULE_SETUP
8764 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8765         YY_BREAK
8766 case 462:
8767 YY_RULE_SETUP
8768 {
8769   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8770   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8771  }
8772         YY_BREAK
8773 case 463:
8774 YY_RULE_SETUP
8775 {
8776   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8777   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8778   switch (YY_START) {
8779    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8780    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8781    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8782    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8783   }
8784  }
8785         YY_BREAK
8786 case 464:
8787 YY_RULE_SETUP
8788 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8789         YY_BREAK
8790 case 465:
8791 YY_RULE_SETUP
8792 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8793         YY_BREAK
8794 case YY_STATE_EOF(AL_surfxml_link___ctn):
8795 FAIL("EOF in attribute list of `link_ctn' element.");
8796         YY_BREAK
8797
8798 case 466:
8799 /* rule 466 can match eol */
8800 YY_RULE_SETUP
8801 {
8802   LEAVE;
8803   ETag_surfxml_link___ctn();
8804   popbuffer(); /* attribute */
8805   switch (YY_START) {
8806    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8807    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8808    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8809    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8810   }
8811  }
8812         YY_BREAK
8813 case 467:
8814 /* rule 467 can match eol */
8815 YY_RULE_SETUP
8816 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8817         YY_BREAK
8818 case 468:
8819 YY_RULE_SETUP
8820 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8821         YY_BREAK
8822 case YY_STATE_EOF(E_surfxml_link___ctn):
8823 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8824         YY_BREAK
8825
8826 case 469:
8827 /* rule 469 can match eol */
8828 YY_RULE_SETUP
8829 FAIL("Starting tag <bypassRoute> is not allowed here.");
8830         YY_BREAK
8831 case 470:
8832 /* rule 470 can match eol */
8833 YY_RULE_SETUP
8834 {
8835   AX_surfxml_bypassRoute_src = 0;
8836   surfxml_bypassRoute_src_isset = 0;
8837   AX_surfxml_bypassRoute_dst = 0;
8838   surfxml_bypassRoute_dst_isset = 0;
8839   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8840   }
8841         YY_BREAK
8842
8843 case 471:
8844 /* rule 471 can match eol */
8845 YY_RULE_SETUP
8846 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
8847         YY_BREAK
8848 case 472:
8849 /* rule 472 can match eol */
8850 YY_RULE_SETUP
8851 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
8852         YY_BREAK
8853 case 473:
8854 /* rule 473 can match eol */
8855 YY_RULE_SETUP
8856 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
8857         YY_BREAK
8858 case 474:
8859 /* rule 474 can match eol */
8860 YY_RULE_SETUP
8861 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
8862         YY_BREAK
8863 case 475:
8864 YY_RULE_SETUP
8865 {
8866   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8867   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8868   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8869  }
8870         YY_BREAK
8871 case 476:
8872 YY_RULE_SETUP
8873 {
8874   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8875   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8876   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8877   switch (YY_START) {
8878    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8879   }
8880  }
8881         YY_BREAK
8882 case 477:
8883 YY_RULE_SETUP
8884 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8885         YY_BREAK
8886 case 478:
8887 YY_RULE_SETUP
8888 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8889         YY_BREAK
8890 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8891 FAIL("EOF in attribute list of `bypassRoute' element.");
8892         YY_BREAK
8893
8894 case 479:
8895 /* rule 479 can match eol */
8896 YY_RULE_SETUP
8897 {
8898   LEAVE;
8899   ETag_surfxml_bypassRoute();
8900   popbuffer(); /* attribute */
8901   switch (YY_START) {
8902    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8903   }
8904  }
8905         YY_BREAK
8906 case 480:
8907 /* rule 480 can match eol */
8908 YY_RULE_SETUP
8909 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8910         YY_BREAK
8911 case 481:
8912 YY_RULE_SETUP
8913 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8914         YY_BREAK
8915 case YY_STATE_EOF(S_surfxml_bypassRoute):
8916 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8917 case YY_STATE_EOF(E_surfxml_bypassRoute):
8918 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8919         YY_BREAK
8920
8921 case 482:
8922 /* rule 482 can match eol */
8923 YY_RULE_SETUP
8924 FAIL("Starting tag <bypassASroute> is not allowed here.");
8925         YY_BREAK
8926 case 483:
8927 /* rule 483 can match eol */
8928 YY_RULE_SETUP
8929 {
8930   AX_surfxml_bypassASroute_src = 0;
8931   surfxml_bypassASroute_src_isset = 0;
8932   AX_surfxml_bypassASroute_dst = 0;
8933   surfxml_bypassASroute_dst_isset = 0;
8934   AX_surfxml_bypassASroute_gw___src = 0;
8935   surfxml_bypassASroute_gw___src_isset = 0;
8936   AX_surfxml_bypassASroute_gw___dst = 0;
8937   surfxml_bypassASroute_gw___dst_isset = 0;
8938   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8939   }
8940         YY_BREAK
8941
8942 case 484:
8943 /* rule 484 can match eol */
8944 YY_RULE_SETUP
8945 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
8946         YY_BREAK
8947 case 485:
8948 /* rule 485 can match eol */
8949 YY_RULE_SETUP
8950 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
8951         YY_BREAK
8952 case 486:
8953 /* rule 486 can match eol */
8954 YY_RULE_SETUP
8955 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
8956         YY_BREAK
8957 case 487:
8958 /* rule 487 can match eol */
8959 YY_RULE_SETUP
8960 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
8961         YY_BREAK
8962 case 488:
8963 /* rule 488 can match eol */
8964 YY_RULE_SETUP
8965 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
8966         YY_BREAK
8967 case 489:
8968 /* rule 489 can match eol */
8969 YY_RULE_SETUP
8970 if (surfxml_bypassASroute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___src);
8971         YY_BREAK
8972 case 490:
8973 /* rule 490 can match eol */
8974 YY_RULE_SETUP
8975 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
8976         YY_BREAK
8977 case 491:
8978 /* rule 491 can match eol */
8979 YY_RULE_SETUP
8980 if (surfxml_bypassASroute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw___dst);
8981         YY_BREAK
8982 case 492:
8983 YY_RULE_SETUP
8984 {
8985   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8986   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8987   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8988   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8989   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8990  }
8991         YY_BREAK
8992 case 493:
8993 YY_RULE_SETUP
8994 {
8995   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8996   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8997   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8998   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8999   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
9000   switch (YY_START) {
9001    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
9002   }
9003  }
9004         YY_BREAK
9005 case 494:
9006 YY_RULE_SETUP
9007 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
9008         YY_BREAK
9009 case 495:
9010 YY_RULE_SETUP
9011 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
9012         YY_BREAK
9013 case YY_STATE_EOF(AL_surfxml_bypassASroute):
9014 FAIL("EOF in attribute list of `bypassASroute' element.");
9015         YY_BREAK
9016
9017 case 496:
9018 /* rule 496 can match eol */
9019 YY_RULE_SETUP
9020 {
9021   LEAVE;
9022   ETag_surfxml_bypassASroute();
9023   popbuffer(); /* attribute */
9024   switch (YY_START) {
9025    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
9026   }
9027  }
9028         YY_BREAK
9029 case 497:
9030 /* rule 497 can match eol */
9031 YY_RULE_SETUP
9032 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
9033         YY_BREAK
9034 case 498:
9035 YY_RULE_SETUP
9036 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
9037         YY_BREAK
9038 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
9039 case YY_STATE_EOF(E_surfxml_bypassASroute):
9040 case YY_STATE_EOF(S_surfxml_bypassASroute):
9041 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
9042         YY_BREAK
9043
9044 case 499:
9045 /* rule 499 can match eol */
9046 YY_RULE_SETUP
9047 FAIL("Starting tag <process> is not allowed here.");
9048         YY_BREAK
9049 case 500:
9050 /* rule 500 can match eol */
9051 YY_RULE_SETUP
9052 {
9053   AX_surfxml_process_host = 0;
9054   surfxml_process_host_isset = 0;
9055   AX_surfxml_process_function = 0;
9056   surfxml_process_function_isset = 0;
9057   AX_surfxml_process_start___time = 50;
9058   surfxml_process_start___time_isset = 0;
9059   AX_surfxml_process_kill___time = 55;
9060   surfxml_process_kill___time_isset = 0;
9061   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9062   surfxml_process_on___failure_isset = 0;
9063   ENTER(AL_surfxml_process); pushbuffer(0);
9064   }
9065         YY_BREAK
9066
9067 case 501:
9068 /* rule 501 can match eol */
9069 YY_RULE_SETUP
9070 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
9071         YY_BREAK
9072 case 502:
9073 /* rule 502 can match eol */
9074 YY_RULE_SETUP
9075 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
9076         YY_BREAK
9077 case 503:
9078 /* rule 503 can match eol */
9079 YY_RULE_SETUP
9080 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
9081         YY_BREAK
9082 case 504:
9083 /* rule 504 can match eol */
9084 YY_RULE_SETUP
9085 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
9086         YY_BREAK
9087 case 505:
9088 /* rule 505 can match eol */
9089 YY_RULE_SETUP
9090 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start___time);
9091         YY_BREAK
9092 case 506:
9093 /* rule 506 can match eol */
9094 YY_RULE_SETUP
9095 if (surfxml_process_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start___time);
9096         YY_BREAK
9097 case 507:
9098 /* rule 507 can match eol */
9099 YY_RULE_SETUP
9100 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill___time);
9101         YY_BREAK
9102 case 508:
9103 /* rule 508 can match eol */
9104 YY_RULE_SETUP
9105 if (surfxml_process_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill___time);
9106         YY_BREAK
9107 case 509:
9108 /* rule 509 can match eol */
9109 case 510:
9110 /* rule 510 can match eol */
9111 YY_RULE_SETUP
9112 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9113         YY_BREAK
9114 case 511:
9115 /* rule 511 can match eol */
9116 case 512:
9117 /* rule 512 can match eol */
9118 YY_RULE_SETUP
9119 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9120         YY_BREAK
9121 case 513:
9122 YY_RULE_SETUP
9123 {
9124   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9125   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9126   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9127  }
9128         YY_BREAK
9129 case 514:
9130 YY_RULE_SETUP
9131 {
9132   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9133   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9134   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9135   switch (YY_START) {
9136    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
9137   }
9138  }
9139         YY_BREAK
9140 case 515:
9141 YY_RULE_SETUP
9142 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
9143         YY_BREAK
9144 case 516:
9145 YY_RULE_SETUP
9146 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
9147         YY_BREAK
9148 case YY_STATE_EOF(AL_surfxml_process):
9149 FAIL("EOF in attribute list of `process' element.");
9150         YY_BREAK
9151
9152 case 517:
9153 /* rule 517 can match eol */
9154 YY_RULE_SETUP
9155 {
9156   LEAVE;
9157   ETag_surfxml_process();
9158   popbuffer(); /* attribute */
9159   switch (YY_START) {
9160    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
9161   }
9162  }
9163         YY_BREAK
9164 case 518:
9165 /* rule 518 can match eol */
9166 YY_RULE_SETUP
9167 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
9168         YY_BREAK
9169 case 519:
9170 YY_RULE_SETUP
9171 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
9172         YY_BREAK
9173 case YY_STATE_EOF(E_surfxml_process):
9174 case YY_STATE_EOF(S_surfxml_process):
9175 case YY_STATE_EOF(S_surfxml_process_2):
9176 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
9177         YY_BREAK
9178
9179 case 520:
9180 /* rule 520 can match eol */
9181 YY_RULE_SETUP
9182 FAIL("Starting tag <argument> is not allowed here.");
9183         YY_BREAK
9184 case 521:
9185 /* rule 521 can match eol */
9186 YY_RULE_SETUP
9187 {
9188   AX_surfxml_argument_value = 0;
9189   surfxml_argument_value_isset = 0;
9190   ENTER(AL_surfxml_argument); pushbuffer(0);
9191   }
9192         YY_BREAK
9193
9194 case 522:
9195 /* rule 522 can match eol */
9196 YY_RULE_SETUP
9197 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
9198         YY_BREAK
9199 case 523:
9200 /* rule 523 can match eol */
9201 YY_RULE_SETUP
9202 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
9203         YY_BREAK
9204 case 524:
9205 YY_RULE_SETUP
9206 {
9207   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9208   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
9209  }
9210         YY_BREAK
9211 case 525:
9212 YY_RULE_SETUP
9213 {
9214   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9215   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
9216   switch (YY_START) {
9217    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9218   }
9219  }
9220         YY_BREAK
9221 case 526:
9222 YY_RULE_SETUP
9223 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
9224         YY_BREAK
9225 case 527:
9226 YY_RULE_SETUP
9227 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
9228         YY_BREAK
9229 case YY_STATE_EOF(AL_surfxml_argument):
9230 FAIL("EOF in attribute list of `argument' element.");
9231         YY_BREAK
9232
9233 case 528:
9234 /* rule 528 can match eol */
9235 YY_RULE_SETUP
9236 {
9237   LEAVE;
9238   ETag_surfxml_argument();
9239   popbuffer(); /* attribute */
9240   switch (YY_START) {
9241    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9242   }
9243  }
9244         YY_BREAK
9245 case 529:
9246 /* rule 529 can match eol */
9247 YY_RULE_SETUP
9248 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
9249         YY_BREAK
9250 case 530:
9251 YY_RULE_SETUP
9252 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
9253         YY_BREAK
9254 case YY_STATE_EOF(E_surfxml_argument):
9255 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
9256         YY_BREAK
9257
9258 case 531:
9259 /* rule 531 can match eol */
9260 YY_RULE_SETUP
9261 FAIL("Starting tag <config> is not allowed here.");
9262         YY_BREAK
9263 case 532:
9264 /* rule 532 can match eol */
9265 YY_RULE_SETUP
9266 {
9267   AX_surfxml_config_id = 0;
9268   surfxml_config_id_isset = 0;
9269   ENTER(AL_surfxml_config); pushbuffer(0);
9270   }
9271         YY_BREAK
9272
9273 case 533:
9274 /* rule 533 can match eol */
9275 YY_RULE_SETUP
9276 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
9277         YY_BREAK
9278 case 534:
9279 /* rule 534 can match eol */
9280 YY_RULE_SETUP
9281 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
9282         YY_BREAK
9283 case 535:
9284 YY_RULE_SETUP
9285 {
9286   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9287  }
9288         YY_BREAK
9289 case 536:
9290 YY_RULE_SETUP
9291 {
9292   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9293   switch (YY_START) {
9294    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9295   }
9296  }
9297         YY_BREAK
9298 case 537:
9299 YY_RULE_SETUP
9300 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9301         YY_BREAK
9302 case 538:
9303 YY_RULE_SETUP
9304 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9305         YY_BREAK
9306 case YY_STATE_EOF(AL_surfxml_config):
9307 FAIL("EOF in attribute list of `config' element.");
9308         YY_BREAK
9309
9310 case 539:
9311 /* rule 539 can match eol */
9312 YY_RULE_SETUP
9313 {
9314   LEAVE;
9315   ETag_surfxml_config();
9316   popbuffer(); /* attribute */
9317   switch (YY_START) {
9318    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9319   }
9320  }
9321         YY_BREAK
9322 case 540:
9323 /* rule 540 can match eol */
9324 YY_RULE_SETUP
9325 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9326         YY_BREAK
9327 case 541:
9328 YY_RULE_SETUP
9329 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9330         YY_BREAK
9331 case YY_STATE_EOF(S_surfxml_config):
9332 case YY_STATE_EOF(S_surfxml_config_2):
9333 case YY_STATE_EOF(E_surfxml_config):
9334 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9335         YY_BREAK
9336
9337 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9338   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9339 case 542:
9340 /* rule 542 can match eol */
9341 YY_RULE_SETUP
9342 FAIL("Starting tag <prop> is not allowed here.");
9343         YY_BREAK
9344 case 543:
9345 /* rule 543 can match eol */
9346 YY_RULE_SETUP
9347 {
9348   AX_surfxml_prop_id = 0;
9349   surfxml_prop_id_isset = 0;
9350   AX_surfxml_prop_value = 0;
9351   surfxml_prop_value_isset = 0;
9352   ENTER(AL_surfxml_prop); pushbuffer(0);
9353   }
9354         YY_BREAK
9355
9356 case 544:
9357 /* rule 544 can match eol */
9358 YY_RULE_SETUP
9359 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
9360         YY_BREAK
9361 case 545:
9362 /* rule 545 can match eol */
9363 YY_RULE_SETUP
9364 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
9365         YY_BREAK
9366 case 546:
9367 /* rule 546 can match eol */
9368 YY_RULE_SETUP
9369 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
9370         YY_BREAK
9371 case 547:
9372 /* rule 547 can match eol */
9373 YY_RULE_SETUP
9374 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
9375         YY_BREAK
9376 case 548:
9377 YY_RULE_SETUP
9378 {
9379   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9380   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9381   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9382  }
9383         YY_BREAK
9384 case 549:
9385 YY_RULE_SETUP
9386 {
9387   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9388   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9389   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9390   switch (YY_START) {
9391    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9392    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9393    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9394    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9395    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9396    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9397    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9398    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9399   }
9400  }
9401         YY_BREAK
9402 case 550:
9403 YY_RULE_SETUP
9404 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9405         YY_BREAK
9406 case 551:
9407 YY_RULE_SETUP
9408 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9409         YY_BREAK
9410 case YY_STATE_EOF(AL_surfxml_prop):
9411 FAIL("EOF in attribute list of `prop' element.");
9412         YY_BREAK
9413
9414 case 552:
9415 /* rule 552 can match eol */
9416 YY_RULE_SETUP
9417 {
9418   LEAVE;
9419   ETag_surfxml_prop();
9420   popbuffer(); /* attribute */
9421   switch (YY_START) {
9422    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9423    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9424    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9425    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9426    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9427    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9428    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9429    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9430   }
9431  }
9432         YY_BREAK
9433 case 553:
9434 /* rule 553 can match eol */
9435 YY_RULE_SETUP
9436 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9437         YY_BREAK
9438 case 554:
9439 YY_RULE_SETUP
9440 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9441         YY_BREAK
9442 case YY_STATE_EOF(E_surfxml_prop):
9443 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9444         YY_BREAK
9445
9446 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
9447   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
9448 case 555:
9449 /* rule 555 can match eol */
9450 YY_RULE_SETUP
9451 FAIL("Starting tag <model_prop> is not allowed here.");
9452         YY_BREAK
9453 case 556:
9454 /* rule 556 can match eol */
9455 YY_RULE_SETUP
9456 {
9457   AX_surfxml_model___prop_id = 0;
9458   surfxml_model___prop_id_isset = 0;
9459   AX_surfxml_model___prop_value = 0;
9460   surfxml_model___prop_value_isset = 0;
9461   ENTER(AL_surfxml_model___prop); pushbuffer(0);
9462   }
9463         YY_BREAK
9464
9465 case 557:
9466 /* rule 557 can match eol */
9467 YY_RULE_SETUP
9468 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");} surfxml_model___prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_id);
9469         YY_BREAK
9470 case 558:
9471 /* rule 558 can match eol */
9472 YY_RULE_SETUP
9473 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");}  surfxml_model___prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_id);
9474         YY_BREAK
9475 case 559:
9476 /* rule 559 can match eol */
9477 YY_RULE_SETUP
9478 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");} surfxml_model___prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_value);
9479         YY_BREAK
9480 case 560:
9481 /* rule 560 can match eol */
9482 YY_RULE_SETUP
9483 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");}  surfxml_model___prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_value);
9484         YY_BREAK
9485 case 561:
9486 YY_RULE_SETUP
9487 {
9488   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9489   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9490   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
9491  }
9492         YY_BREAK
9493 case 562:
9494 YY_RULE_SETUP
9495 {
9496   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9497   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9498   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
9499   switch (YY_START) {
9500    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9501   }
9502  }
9503         YY_BREAK
9504 case 563:
9505 YY_RULE_SETUP
9506 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
9507         YY_BREAK
9508 case 564:
9509 YY_RULE_SETUP
9510 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
9511         YY_BREAK
9512 case YY_STATE_EOF(AL_surfxml_model___prop):
9513 FAIL("EOF in attribute list of `model_prop' element.");
9514         YY_BREAK
9515
9516 case 565:
9517 /* rule 565 can match eol */
9518 YY_RULE_SETUP
9519 {
9520   LEAVE;
9521   ETag_surfxml_model___prop();
9522   popbuffer(); /* attribute */
9523   switch (YY_START) {
9524    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9525   }
9526  }
9527         YY_BREAK
9528 case 566:
9529 /* rule 566 can match eol */
9530 YY_RULE_SETUP
9531 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
9532         YY_BREAK
9533 case 567:
9534 YY_RULE_SETUP
9535 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
9536         YY_BREAK
9537 case YY_STATE_EOF(E_surfxml_model___prop):
9538 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
9539         YY_BREAK
9540
9541 /* EPILOG: after the root element. */
9542
9543 case 568:
9544 YY_RULE_SETUP
9545 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9546         YY_BREAK
9547 case YY_STATE_EOF(EPILOG):
9548 SUCCEED;
9549         YY_BREAK
9550
9551 /* CHARACTER DATA. */
9552
9553 /* Non-defined standard entities... */
9554 case 569:
9555 YY_RULE_SETUP
9556 BUFFERPUTC('&');
9557         YY_BREAK
9558 case 570:
9559 YY_RULE_SETUP
9560 BUFFERPUTC('<');
9561         YY_BREAK
9562 case 571:
9563 YY_RULE_SETUP
9564 BUFFERPUTC('>');
9565         YY_BREAK
9566 case 572:
9567 YY_RULE_SETUP
9568 BUFFERPUTC('\'');
9569         YY_BREAK
9570 case 573:
9571 YY_RULE_SETUP
9572 BUFFERPUTC('"');
9573         YY_BREAK
9574 /* Character entities. */
9575 case 574:
9576 YY_RULE_SETUP
9577 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9578         YY_BREAK
9579 case 575:
9580 YY_RULE_SETUP
9581 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9582         YY_BREAK
9583
9584 case 576:
9585 /* rule 576 can match eol */
9586 case 577:
9587 /* rule 577 can match eol */
9588 case 578:
9589 /* rule 578 can match eol */
9590 case 579:
9591 /* rule 579 can match eol */
9592 YY_RULE_SETUP
9593 BUFFERPUTC('\n');
9594         YY_BREAK
9595
9596 case 580:
9597 YY_RULE_SETUP
9598 ENTER(CDATA);
9599         YY_BREAK
9600 case 581:
9601 YY_RULE_SETUP
9602 FAIL("Unexpected `]""]>' in character data.");
9603         YY_BREAK
9604
9605 case 582:
9606 YY_RULE_SETUP
9607 BUFFERDONE; LEAVE;
9608         YY_BREAK
9609 case YY_STATE_EOF(VALUE1):
9610 FAIL("EOF in literal (\"'\" expected).");
9611         YY_BREAK
9612
9613 case 583:
9614 YY_RULE_SETUP
9615 BUFFERDONE; LEAVE;
9616         YY_BREAK
9617 case YY_STATE_EOF(VALUE2):
9618 FAIL("EOF in literal (`\"' expected).");
9619         YY_BREAK
9620
9621 case 584:
9622 /* rule 584 can match eol */
9623 YY_RULE_SETUP
9624 BUFFERPUTC(surf_parse_text[0]);
9625         YY_BREAK
9626 case 585:
9627 YY_RULE_SETUP
9628 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9629         YY_BREAK
9630
9631 case 586:
9632 YY_RULE_SETUP
9633 LEAVE;
9634         YY_BREAK
9635 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9636 case 587:
9637 YY_RULE_SETUP
9638 BUFFERPUTC(surf_parse_text[0]);
9639         YY_BREAK
9640 case YY_STATE_EOF(CDATA):
9641 FAIL("EOF in CDATA section.");
9642         YY_BREAK
9643
9644 /* Impossible rules to avoid warnings from flex(1). */
9645 /* Ideally, this should be replaced by code in flexml.pl that
9646     generates just the states not covered by other rules. */
9647
9648 case 588:
9649 /* rule 588 can match eol */
9650 YY_RULE_SETUP
9651 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9652         YY_BREAK
9653
9654 case 589:
9655 YY_RULE_SETUP
9656 ECHO;
9657         YY_BREAK
9658 case YY_STATE_EOF(INITIAL):
9659 case YY_STATE_EOF(ROOT_surfxml_platform):
9660 case YY_STATE_EOF(S_surfxml_platform_2):
9661 case YY_STATE_EOF(S_surfxml_platform_5):
9662 case YY_STATE_EOF(S_surfxml_platform_7):
9663 case YY_STATE_EOF(S_surfxml_include_1):
9664 case YY_STATE_EOF(S_surfxml_AS_2):
9665 case YY_STATE_EOF(S_surfxml_AS_5):
9666 case YY_STATE_EOF(S_surfxml_AS_8):
9667 case YY_STATE_EOF(S_surfxml_AS_10):
9668 case YY_STATE_EOF(S_surfxml_AS_13):
9669 case YY_STATE_EOF(S_surfxml_AS_15):
9670 case YY_STATE_EOF(S_surfxml_storage___type_1):
9671 case YY_STATE_EOF(S_surfxml_storage_1):
9672 case YY_STATE_EOF(S_surfxml_host_1):
9673 case YY_STATE_EOF(S_surfxml_cluster_1):
9674 case YY_STATE_EOF(S_surfxml_link_1):
9675 case YY_STATE_EOF(S_surfxml_route_1):
9676 case YY_STATE_EOF(S_surfxml_ASroute_1):
9677 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9678 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9679 case YY_STATE_EOF(S_surfxml_process_1):
9680 case YY_STATE_EOF(S_surfxml_config_1):
9681 case YY_STATE_EOF(IMPOSSIBLE):
9682         yyterminate();
9683
9684         case YY_END_OF_BUFFER:
9685                 {
9686                 /* Amount of text matched not including the EOB char. */
9687                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9688
9689                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9690                 *yy_cp = (yy_hold_char);
9691                 YY_RESTORE_YY_MORE_OFFSET
9692
9693                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9694                         {
9695                         /* We're scanning a new file or input source.  It's
9696                          * possible that this happened because the user
9697                          * just pointed surf_parse_in at a new source and called
9698                          * surf_parse_lex().  If so, then we have to assure
9699                          * consistency between YY_CURRENT_BUFFER and our
9700                          * globals.  Here is the right place to do so, because
9701                          * this is the first action (other than possibly a
9702                          * back-up) that will match for the new input source.
9703                          */
9704                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9705                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9706                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9707                         }
9708
9709                 /* Note that here we test for yy_c_buf_p "<=" to the position
9710                  * of the first EOB in the buffer, since yy_c_buf_p will
9711                  * already have been incremented past the NUL character
9712                  * (since all states make transitions on EOB to the
9713                  * end-of-buffer state).  Contrast this with the test
9714                  * in input().
9715                  */
9716                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9717                         { /* This was really a NUL. */
9718                         yy_state_type yy_next_state;
9719
9720                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9721
9722                         yy_current_state = yy_get_previous_state(  );
9723
9724                         /* Okay, we're now positioned to make the NUL
9725                          * transition.  We couldn't have
9726                          * yy_get_previous_state() go ahead and do it
9727                          * for us because it doesn't know how to deal
9728                          * with the possibility of jamming (and we don't
9729                          * want to build jamming into it because then it
9730                          * will run more slowly).
9731                          */
9732
9733                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9734
9735                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9736
9737                         if ( yy_next_state )
9738                                 {
9739                                 /* Consume the NUL. */
9740                                 yy_cp = ++(yy_c_buf_p);
9741                                 yy_current_state = yy_next_state;
9742                                 goto yy_match;
9743                                 }
9744
9745                         else
9746                                 {
9747                                 yy_cp = (yy_c_buf_p);
9748                                 goto yy_find_action;
9749                                 }
9750                         }
9751
9752                 else switch ( yy_get_next_buffer(  ) )
9753                         {
9754                         case EOB_ACT_END_OF_FILE:
9755                                 {
9756                                 (yy_did_buffer_switch_on_eof) = 0;
9757
9758                                 if ( surf_parse_wrap( ) )
9759                                         {
9760                                         /* Note: because we've taken care in
9761                                          * yy_get_next_buffer() to have set up
9762                                          * surf_parse_text, we can now set up
9763                                          * yy_c_buf_p so that if some total
9764                                          * hoser (like flex itself) wants to
9765                                          * call the scanner after we return the
9766                                          * YY_NULL, it'll still work - another
9767                                          * YY_NULL will get returned.
9768                                          */
9769                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9770
9771                                         yy_act = YY_STATE_EOF(YY_START);
9772                                         goto do_action;
9773                                         }
9774
9775                                 else
9776                                         {
9777                                         if ( ! (yy_did_buffer_switch_on_eof) )
9778                                                 YY_NEW_FILE;
9779                                         }
9780                                 break;
9781                                 }
9782
9783                         case EOB_ACT_CONTINUE_SCAN:
9784                                 (yy_c_buf_p) =
9785                                         (yytext_ptr) + yy_amount_of_matched_text;
9786
9787                                 yy_current_state = yy_get_previous_state(  );
9788
9789                                 yy_cp = (yy_c_buf_p);
9790                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9791                                 goto yy_match;
9792
9793                         case EOB_ACT_LAST_MATCH:
9794                                 (yy_c_buf_p) =
9795                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9796
9797                                 yy_current_state = yy_get_previous_state(  );
9798
9799                                 yy_cp = (yy_c_buf_p);
9800                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9801                                 goto yy_find_action;
9802                         }
9803                 break;
9804                 }
9805
9806         default:
9807                 YY_FATAL_ERROR(
9808                         "fatal flex scanner internal error--no action found" );
9809         } /* end of action switch */
9810                 } /* end of scanning one token */
9811 } /* end of surf_parse_lex */
9812
9813 /* yy_get_next_buffer - try to read in a new buffer
9814  *
9815  * Returns a code representing an action:
9816  *      EOB_ACT_LAST_MATCH -
9817  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9818  *      EOB_ACT_END_OF_FILE - end of file
9819  */
9820 static int yy_get_next_buffer (void)
9821 {
9822         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9823         register char *source = (yytext_ptr);
9824         register int number_to_move, i;
9825         int ret_val;
9826
9827         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9828                 YY_FATAL_ERROR(
9829                 "fatal flex scanner internal error--end of buffer missed" );
9830
9831         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9832                 { /* Don't try to fill the buffer, so this is an EOF. */
9833                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9834                         {
9835                         /* We matched a single character, the EOB, so
9836                          * treat this as a final EOF.
9837                          */
9838                         return EOB_ACT_END_OF_FILE;
9839                         }
9840
9841                 else
9842                         {
9843                         /* We matched some text prior to the EOB, first
9844                          * process it.
9845                          */
9846                         return EOB_ACT_LAST_MATCH;
9847                         }
9848                 }
9849
9850         /* Try to read more data. */
9851
9852         /* First move last chars to start of buffer. */
9853         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9854
9855         for ( i = 0; i < number_to_move; ++i )
9856                 *(dest++) = *(source++);
9857
9858         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9859                 /* don't do the read, it's not guaranteed to return an EOF,
9860                  * just force an EOF
9861                  */
9862                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9863
9864         else
9865                 {
9866                         int num_to_read =
9867                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9868
9869                 while ( num_to_read <= 0 )
9870                         { /* Not enough room in the buffer - grow it. */
9871
9872                         /* just a shorter name for the current buffer */
9873                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9874
9875                         int yy_c_buf_p_offset =
9876                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9877
9878                         if ( b->yy_is_our_buffer )
9879                                 {
9880                                 int new_size = b->yy_buf_size * 2;
9881
9882                                 if ( new_size <= 0 )
9883                                         b->yy_buf_size += b->yy_buf_size / 8;
9884                                 else
9885                                         b->yy_buf_size *= 2;
9886
9887                                 b->yy_ch_buf = (char *)
9888                                         /* Include room in for 2 EOB chars. */
9889                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9890                                 }
9891                         else
9892                                 /* Can't grow it, we don't own it. */
9893                                 b->yy_ch_buf = 0;
9894
9895                         if ( ! b->yy_ch_buf )
9896                                 YY_FATAL_ERROR(
9897                                 "fatal error - scanner input buffer overflow" );
9898
9899                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9900
9901                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9902                                                 number_to_move - 1;
9903
9904                         }
9905
9906                 if ( num_to_read > YY_READ_BUF_SIZE )
9907                         num_to_read = YY_READ_BUF_SIZE;
9908
9909                 /* Read in more data. */
9910                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9911                         (yy_n_chars), (size_t) num_to_read );
9912
9913                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9914                 }
9915
9916         if ( (yy_n_chars) == 0 )
9917                 {
9918                 if ( number_to_move == YY_MORE_ADJ )
9919                         {
9920                         ret_val = EOB_ACT_END_OF_FILE;
9921                         surf_parse_restart(surf_parse_in  );
9922                         }
9923
9924                 else
9925                         {
9926                         ret_val = EOB_ACT_LAST_MATCH;
9927                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9928                                 YY_BUFFER_EOF_PENDING;
9929                         }
9930                 }
9931
9932         else
9933                 ret_val = EOB_ACT_CONTINUE_SCAN;
9934
9935         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9936                 /* Extend the array by 50%, plus the number we really need. */
9937                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9938                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9939                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9940                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9941         }
9942
9943         (yy_n_chars) += number_to_move;
9944         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9945         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9946
9947         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9948
9949         return ret_val;
9950 }
9951
9952 /* yy_get_previous_state - get the state just before the EOB char was reached */
9953
9954     static yy_state_type yy_get_previous_state (void)
9955 {
9956         register yy_state_type yy_current_state;
9957         register char *yy_cp;
9958     
9959         yy_current_state = (yy_start);
9960
9961         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9962                 {
9963                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9964                 if ( yy_accept[yy_current_state] )
9965                         {
9966                         (yy_last_accepting_state) = yy_current_state;
9967                         (yy_last_accepting_cpos) = yy_cp;
9968                         }
9969                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9970                         {
9971                         yy_current_state = (int) yy_def[yy_current_state];
9972                         if ( yy_current_state >= 3458 )
9973                                 yy_c = yy_meta[(unsigned int) yy_c];
9974                         }
9975                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9976                 }
9977
9978         return yy_current_state;
9979 }
9980
9981 /* yy_try_NUL_trans - try to make a transition on the NUL character
9982  *
9983  * synopsis
9984  *      next_state = yy_try_NUL_trans( current_state );
9985  */
9986     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9987 {
9988         register int yy_is_jam;
9989         register char *yy_cp = (yy_c_buf_p);
9990
9991         register YY_CHAR yy_c = 1;
9992         if ( yy_accept[yy_current_state] )
9993                 {
9994                 (yy_last_accepting_state) = yy_current_state;
9995                 (yy_last_accepting_cpos) = yy_cp;
9996                 }
9997         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9998                 {
9999                 yy_current_state = (int) yy_def[yy_current_state];
10000                 if ( yy_current_state >= 3458 )
10001                         yy_c = yy_meta[(unsigned int) yy_c];
10002                 }
10003         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
10004         yy_is_jam = (yy_current_state == 3457);
10005
10006         return yy_is_jam ? 0 : yy_current_state;
10007 }
10008
10009 #ifndef YY_NO_INPUT
10010 #ifdef __cplusplus
10011     static int yyinput (void)
10012 #else
10013     static int input  (void)
10014 #endif
10015
10016 {
10017         int c;
10018     
10019         *(yy_c_buf_p) = (yy_hold_char);
10020
10021         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
10022                 {
10023                 /* yy_c_buf_p now points to the character we want to return.
10024                  * If this occurs *before* the EOB characters, then it's a
10025                  * valid NUL; if not, then we've hit the end of the buffer.
10026                  */
10027                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
10028                         /* This was really a NUL. */
10029                         *(yy_c_buf_p) = '\0';
10030
10031                 else
10032                         { /* need more input */
10033                         int offset = (yy_c_buf_p) - (yytext_ptr);
10034                         ++(yy_c_buf_p);
10035
10036                         switch ( yy_get_next_buffer(  ) )
10037                                 {
10038                                 case EOB_ACT_LAST_MATCH:
10039                                         /* This happens because yy_g_n_b()
10040                                          * sees that we've accumulated a
10041                                          * token and flags that we need to
10042                                          * try matching the token before
10043                                          * proceeding.  But for input(),
10044                                          * there's no matching to consider.
10045                                          * So convert the EOB_ACT_LAST_MATCH
10046                                          * to EOB_ACT_END_OF_FILE.
10047                                          */
10048
10049                                         /* Reset buffer status. */
10050                                         surf_parse_restart(surf_parse_in );
10051
10052                                         /*FALLTHROUGH*/
10053
10054                                 case EOB_ACT_END_OF_FILE:
10055                                         {
10056                                         if ( surf_parse_wrap( ) )
10057                                                 return EOF;
10058
10059                                         if ( ! (yy_did_buffer_switch_on_eof) )
10060                                                 YY_NEW_FILE;
10061 #ifdef __cplusplus
10062                                         return yyinput();
10063 #else
10064                                         return input();
10065 #endif
10066                                         }
10067
10068                                 case EOB_ACT_CONTINUE_SCAN:
10069                                         (yy_c_buf_p) = (yytext_ptr) + offset;
10070                                         break;
10071                                 }
10072                         }
10073                 }
10074
10075         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
10076         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
10077         (yy_hold_char) = *++(yy_c_buf_p);
10078
10079         if ( c == '\n' )
10080                    
10081     surf_parse_lineno++;
10082 ;
10083
10084         return c;
10085 }
10086 #endif  /* ifndef YY_NO_INPUT */
10087
10088 /** Immediately switch to a different input stream.
10089  * @param input_file A readable stream.
10090  * 
10091  * @note This function does not reset the start condition to @c INITIAL .
10092  */
10093     void surf_parse_restart  (FILE * input_file )
10094 {
10095     
10096         if ( ! YY_CURRENT_BUFFER ){
10097         surf_parse_ensure_buffer_stack ();
10098                 YY_CURRENT_BUFFER_LVALUE =
10099             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
10100         }
10101
10102         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
10103         surf_parse__load_buffer_state( );
10104 }
10105
10106 /** Switch to a different input buffer.
10107  * @param new_buffer The new input buffer.
10108  * 
10109  */
10110     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
10111 {
10112     
10113         /* TODO. We should be able to replace this entire function body
10114          * with
10115          *              surf_parse_pop_buffer_state();
10116          *              surf_parse_push_buffer_state(new_buffer);
10117      */
10118         surf_parse_ensure_buffer_stack ();
10119         if ( YY_CURRENT_BUFFER == new_buffer )
10120                 return;
10121
10122         if ( YY_CURRENT_BUFFER )
10123                 {
10124                 /* Flush out information for old buffer. */
10125                 *(yy_c_buf_p) = (yy_hold_char);
10126                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10127                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10128                 }
10129
10130         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10131         surf_parse__load_buffer_state( );
10132
10133         /* We don't actually know whether we did this switch during
10134          * EOF (surf_parse_wrap()) processing, but the only time this flag
10135          * is looked at is after surf_parse_wrap() is called, so it's safe
10136          * to go ahead and always set it.
10137          */
10138         (yy_did_buffer_switch_on_eof) = 1;
10139 }
10140
10141 static void surf_parse__load_buffer_state  (void)
10142 {
10143         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
10144         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
10145         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
10146         (yy_hold_char) = *(yy_c_buf_p);
10147 }
10148
10149 /** Allocate and initialize an input buffer state.
10150  * @param file A readable stream.
10151  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
10152  * 
10153  * @return the allocated buffer state.
10154  */
10155     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
10156 {
10157         YY_BUFFER_STATE b;
10158     
10159         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10160         if ( ! b )
10161                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10162
10163         b->yy_buf_size = size;
10164
10165         /* yy_ch_buf has to be 2 characters longer than the size given because
10166          * we need to put in 2 end-of-buffer characters.
10167          */
10168         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
10169         if ( ! b->yy_ch_buf )
10170                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10171
10172         b->yy_is_our_buffer = 1;
10173
10174         surf_parse__init_buffer(b,file );
10175
10176         return b;
10177 }
10178
10179 /** Destroy the buffer.
10180  * @param b a buffer created with surf_parse__create_buffer()
10181  * 
10182  */
10183     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
10184 {
10185     
10186         if ( ! b )
10187                 return;
10188
10189         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
10190                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
10191
10192         if ( b->yy_is_our_buffer )
10193                 surf_parse_free((void *) b->yy_ch_buf  );
10194
10195         surf_parse_free((void *) b  );
10196 }
10197
10198 #ifndef __cplusplus
10199 extern int isatty (int );
10200 #endif /* __cplusplus */
10201     
10202 /* Initializes or reinitializes a buffer.
10203  * This function is sometimes called more than once on the same buffer,
10204  * such as during a surf_parse_restart() or at EOF.
10205  */
10206     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
10207
10208 {
10209         int oerrno = errno;
10210     
10211         surf_parse__flush_buffer(b );
10212
10213         b->yy_input_file = file;
10214         b->yy_fill_buffer = 1;
10215
10216     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
10217      * called from surf_parse_restart() or through yy_get_next_buffer.
10218      * In that case, we don't want to reset the lineno or column.
10219      */
10220     if (b != YY_CURRENT_BUFFER){
10221         b->yy_bs_lineno = 1;
10222         b->yy_bs_column = 0;
10223     }
10224
10225         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
10226     
10227         errno = oerrno;
10228 }
10229
10230 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
10231  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
10232  * 
10233  */
10234     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
10235 {
10236         if ( ! b )
10237                 return;
10238
10239         b->yy_n_chars = 0;
10240
10241         /* We always need two end-of-buffer characters.  The first causes
10242          * a transition to the end-of-buffer state.  The second causes
10243          * a jam in that state.
10244          */
10245         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10246         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10247
10248         b->yy_buf_pos = &b->yy_ch_buf[0];
10249
10250         b->yy_at_bol = 1;
10251         b->yy_buffer_status = YY_BUFFER_NEW;
10252
10253         if ( b == YY_CURRENT_BUFFER )
10254                 surf_parse__load_buffer_state( );
10255 }
10256
10257 /** Pushes the new state onto the stack. The new state becomes
10258  *  the current state. This function will allocate the stack
10259  *  if necessary.
10260  *  @param new_buffer The new state.
10261  *  
10262  */
10263 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10264 {
10265         if (new_buffer == NULL)
10266                 return;
10267
10268         surf_parse_ensure_buffer_stack();
10269
10270         /* This block is copied from surf_parse__switch_to_buffer. */
10271         if ( YY_CURRENT_BUFFER )
10272                 {
10273                 /* Flush out information for old buffer. */
10274                 *(yy_c_buf_p) = (yy_hold_char);
10275                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10276                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10277                 }
10278
10279         /* Only push if top exists. Otherwise, replace top. */
10280         if (YY_CURRENT_BUFFER)
10281                 (yy_buffer_stack_top)++;
10282         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10283
10284         /* copied from surf_parse__switch_to_buffer. */
10285         surf_parse__load_buffer_state( );
10286         (yy_did_buffer_switch_on_eof) = 1;
10287 }
10288
10289 /** Removes and deletes the top of the stack, if present.
10290  *  The next element becomes the new top.
10291  *  
10292  */
10293 void surf_parse_pop_buffer_state (void)
10294 {
10295         if (!YY_CURRENT_BUFFER)
10296                 return;
10297
10298         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10299         YY_CURRENT_BUFFER_LVALUE = NULL;
10300         if ((yy_buffer_stack_top) > 0)
10301                 --(yy_buffer_stack_top);
10302
10303         if (YY_CURRENT_BUFFER) {
10304                 surf_parse__load_buffer_state( );
10305                 (yy_did_buffer_switch_on_eof) = 1;
10306         }
10307 }
10308
10309 /* Allocates the stack if it does not exist.
10310  *  Guarantees space for at least one push.
10311  */
10312 static void surf_parse_ensure_buffer_stack (void)
10313 {
10314         int num_to_alloc;
10315     
10316         if (!(yy_buffer_stack)) {
10317
10318                 /* First allocation is just for 2 elements, since we don't know if this
10319                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10320                  * immediate realloc on the next call.
10321          */
10322                 num_to_alloc = 1;
10323                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10324                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10325                                                                 );
10326                 if ( ! (yy_buffer_stack) )
10327                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10328                                                                   
10329                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10330                                 
10331                 (yy_buffer_stack_max) = num_to_alloc;
10332                 (yy_buffer_stack_top) = 0;
10333                 return;
10334         }
10335
10336         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10337
10338                 /* Increase the buffer to prepare for a possible push. */
10339                 int grow_size = 8 /* arbitrary grow size */;
10340
10341                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10342                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10343                                                                 ((yy_buffer_stack),
10344                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10345                                                                 );
10346                 if ( ! (yy_buffer_stack) )
10347                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10348
10349                 /* zero only the new slots.*/
10350                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10351                 (yy_buffer_stack_max) = num_to_alloc;
10352         }
10353 }
10354
10355 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10356  * @param base the character buffer
10357  * @param size the size in bytes of the character buffer
10358  * 
10359  * @return the newly allocated buffer state object. 
10360  */
10361 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10362 {
10363         YY_BUFFER_STATE b;
10364     
10365         if ( size < 2 ||
10366              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10367              base[size-1] != YY_END_OF_BUFFER_CHAR )
10368                 /* They forgot to leave room for the EOB's. */
10369                 return 0;
10370
10371         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10372         if ( ! b )
10373                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10374
10375         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10376         b->yy_buf_pos = b->yy_ch_buf = base;
10377         b->yy_is_our_buffer = 0;
10378         b->yy_input_file = 0;
10379         b->yy_n_chars = b->yy_buf_size;
10380         b->yy_is_interactive = 0;
10381         b->yy_at_bol = 1;
10382         b->yy_fill_buffer = 0;
10383         b->yy_buffer_status = YY_BUFFER_NEW;
10384
10385         surf_parse__switch_to_buffer(b  );
10386
10387         return b;
10388 }
10389
10390 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10391  * scan from a @e copy of @a str.
10392  * @param yystr a NUL-terminated string to scan
10393  * 
10394  * @return the newly allocated buffer state object.
10395  * @note If you want to scan bytes that may contain NUL values, then use
10396  *       surf_parse__scan_bytes() instead.
10397  */
10398 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10399 {
10400     
10401         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10402 }
10403
10404 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10405  * scan from a @e copy of @a bytes.
10406  * @param yybytes the byte buffer to scan
10407  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10408  * 
10409  * @return the newly allocated buffer state object.
10410  */
10411 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
10412 {
10413         YY_BUFFER_STATE b;
10414         char *buf;
10415         yy_size_t n;
10416         int i;
10417     
10418         /* Get memory for full buffer, including space for trailing EOB's. */
10419         n = _yybytes_len + 2;
10420         buf = (char *) surf_parse_alloc(n  );
10421         if ( ! buf )
10422                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10423
10424         for ( i = 0; i < _yybytes_len; ++i )
10425                 buf[i] = yybytes[i];
10426
10427         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10428
10429         b = surf_parse__scan_buffer(buf,n );
10430         if ( ! b )
10431                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10432
10433         /* It's okay to grow etc. this buffer, and we should throw it
10434          * away when we're done.
10435          */
10436         b->yy_is_our_buffer = 1;
10437
10438         return b;
10439 }
10440
10441     static void yy_push_state (int  new_state )
10442 {
10443         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10444                 {
10445                 yy_size_t new_size;
10446
10447                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10448                 new_size = (yy_start_stack_depth) * sizeof( int );
10449
10450                 if ( ! (yy_start_stack) )
10451                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10452
10453                 else
10454                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10455
10456                 if ( ! (yy_start_stack) )
10457                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10458                 }
10459
10460         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10461
10462         BEGIN(new_state);
10463 }
10464
10465     static void yy_pop_state  (void)
10466 {
10467         if ( --(yy_start_stack_ptr) < 0 )
10468                 YY_FATAL_ERROR( "start-condition stack underflow" );
10469
10470         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10471 }
10472
10473 #ifndef YY_EXIT_FAILURE
10474 #define YY_EXIT_FAILURE 2
10475 #endif
10476
10477 static void yy_fatal_error (yyconst char* msg )
10478 {
10479         (void) fprintf( stderr, "%s\n", msg );
10480         exit( YY_EXIT_FAILURE );
10481 }
10482
10483 /* Redefine yyless() so it works in section 3 code. */
10484
10485 #undef yyless
10486 #define yyless(n) \
10487         do \
10488                 { \
10489                 /* Undo effects of setting up surf_parse_text. */ \
10490         int yyless_macro_arg = (n); \
10491         YY_LESS_LINENO(yyless_macro_arg);\
10492                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10493                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10494                 (yy_hold_char) = *(yy_c_buf_p); \
10495                 *(yy_c_buf_p) = '\0'; \
10496                 surf_parse_leng = yyless_macro_arg; \
10497                 } \
10498         while ( 0 )
10499
10500 /* Accessor  methods (get/set functions) to struct members. */
10501
10502 /** Get the current line number.
10503  * 
10504  */
10505 int surf_parse_get_lineno  (void)
10506 {
10507         
10508     return surf_parse_lineno;
10509 }
10510
10511 /** Get the input stream.
10512  * 
10513  */
10514 FILE *surf_parse_get_in  (void)
10515 {
10516         return surf_parse_in;
10517 }
10518
10519 /** Get the output stream.
10520  * 
10521  */
10522 FILE *surf_parse_get_out  (void)
10523 {
10524         return surf_parse_out;
10525 }
10526
10527 /** Get the length of the current token.
10528  * 
10529  */
10530 int surf_parse_get_leng  (void)
10531 {
10532         return surf_parse_leng;
10533 }
10534
10535 /** Get the current token.
10536  * 
10537  */
10538
10539 char *surf_parse_get_text  (void)
10540 {
10541         return surf_parse_text;
10542 }
10543
10544 /** Set the current line number.
10545  * @param line_number
10546  * 
10547  */
10548 void surf_parse_set_lineno (int  line_number )
10549 {
10550     
10551     surf_parse_lineno = line_number;
10552 }
10553
10554 /** Set the input stream. This does not discard the current
10555  * input buffer.
10556  * @param in_str A readable stream.
10557  * 
10558  * @see surf_parse__switch_to_buffer
10559  */
10560 void surf_parse_set_in (FILE *  in_str )
10561 {
10562         surf_parse_in = in_str ;
10563 }
10564
10565 void surf_parse_set_out (FILE *  out_str )
10566 {
10567         surf_parse_out = out_str ;
10568 }
10569
10570 int surf_parse_get_debug  (void)
10571 {
10572         return surf_parse__flex_debug;
10573 }
10574
10575 void surf_parse_set_debug (int  bdebug )
10576 {
10577         surf_parse__flex_debug = bdebug ;
10578 }
10579
10580 static int yy_init_globals (void)
10581 {
10582         /* Initialization is the same as for the non-reentrant scanner.
10583      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10584      */
10585
10586     /* We do not touch surf_parse_lineno unless the option is enabled. */
10587     surf_parse_lineno =  1;
10588     
10589     (yy_buffer_stack) = 0;
10590     (yy_buffer_stack_top) = 0;
10591     (yy_buffer_stack_max) = 0;
10592     (yy_c_buf_p) = (char *) 0;
10593     (yy_init) = 0;
10594     (yy_start) = 0;
10595
10596     (yy_start_stack_ptr) = 0;
10597     (yy_start_stack_depth) = 0;
10598     (yy_start_stack) =  NULL;
10599
10600 /* Defined in main.c */
10601 #ifdef YY_STDINIT
10602     surf_parse_in = stdin;
10603     surf_parse_out = stdout;
10604 #else
10605     surf_parse_in = (FILE *) 0;
10606     surf_parse_out = (FILE *) 0;
10607 #endif
10608
10609     /* For future reference: Set errno on error, since we are called by
10610      * surf_parse_lex_init()
10611      */
10612     return 0;
10613 }
10614
10615 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10616 int surf_parse_lex_destroy  (void)
10617 {
10618     
10619     /* Pop the buffer stack, destroying each element. */
10620         while(YY_CURRENT_BUFFER){
10621                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10622                 YY_CURRENT_BUFFER_LVALUE = NULL;
10623                 surf_parse_pop_buffer_state();
10624         }
10625
10626         /* Destroy the stack itself. */
10627         surf_parse_free((yy_buffer_stack) );
10628         (yy_buffer_stack) = NULL;
10629
10630     /* Destroy the start condition stack. */
10631         surf_parse_free((yy_start_stack)  );
10632         (yy_start_stack) = NULL;
10633
10634     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10635      * surf_parse_lex() is called, initialization will occur. */
10636     yy_init_globals( );
10637
10638     return 0;
10639 }
10640
10641 /*
10642  * Internal utility routines.
10643  */
10644
10645 #ifndef yytext_ptr
10646 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10647 {
10648         register int i;
10649         for ( i = 0; i < n; ++i )
10650                 s1[i] = s2[i];
10651 }
10652 #endif
10653
10654 #ifdef YY_NEED_STRLEN
10655 static int yy_flex_strlen (yyconst char * s )
10656 {
10657         register int n;
10658         for ( n = 0; s[n]; ++n )
10659                 ;
10660
10661         return n;
10662 }
10663 #endif
10664
10665 void *surf_parse_alloc (yy_size_t  size )
10666 {
10667         return (void *) malloc( size );
10668 }
10669
10670 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10671 {
10672         /* The cast to (char *) in the following accommodates both
10673          * implementations that use char* generic pointers, and those
10674          * that use void* generic pointers.  It works with the latter
10675          * because both ANSI C and C++ allow castless assignment from
10676          * any pointer type to void*, and deal with argument conversions
10677          * as though doing an assignment.
10678          */
10679         return (void *) realloc( (char *) ptr, size );
10680 }
10681
10682 void surf_parse_free (void * ptr )
10683 {
10684         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10685 }
10686
10687 #define YYTABLES_NAME "yytables"
10688
10689 /* Element context stack lookup. */
10690 int surfxml_element_context(int i)
10691 {
10692   return (0<i && i<yy_start_stack_depth
10693           ? yy_start_stack[yy_start_stack_ptr - i]
10694           : 0);
10695 }
10696
10697 #ifdef FLEX_DEBUG
10698 void print_yy_stack(char* fmt, ...)
10699 {
10700   int i = 0; va_list ap; va_start(ap, fmt);
10701   vfprintf(stderr, fmt, ap);
10702   if (surfxml_statenames) {
10703       for (i=1; i<yy_start_stack_ptr; i++) {
10704           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10705       }
10706       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10707   }
10708   va_end(ap);
10709 }
10710
10711 void print_surfxml_bufferstack()
10712 {
10713     int i;
10714     fputs("Buffer: ", stderr);
10715     for (i = 0; i < blimit; i++) {
10716        if ( surfxml_bufferstack[i] == '\377' ) break;
10717          putc(surfxml_bufferstack[i], stderr);
10718     }
10719     putc('\n', stderr);
10720 }
10721
10722 static void debug_enter(int state, const char* statename) {
10723   yy_push_state(state);
10724   if (surf_parse__flex_debug) {
10725        print_yy_stack("--ENTER(%s) : ",statename);
10726        print_surfxml_bufferstack();
10727   }
10728 }
10729
10730 static void debug_leave(void) {
10731     if (surf_parse__flex_debug) {
10732         print_yy_stack("--LEAVE : ");
10733         print_surfxml_bufferstack();
10734     }
10735   yy_pop_state();
10736 }
10737
10738 static void debug_set(int state, const char* statename) {
10739   BEGIN(state);
10740   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10741 }
10742 #endif
10743
10744 static void cleanup(void)
10745 {
10746     if (surfxml_statenames) {
10747         free(surfxml_statenames);
10748         surfxml_statenames = NULL;
10749     }
10750     free(surfxml_bufferstack);
10751     surfxml_bufferstack = NULL;
10752
10753     free(indexstack);
10754     indexstack = NULL;
10755 }
10756
10757 static int fail(const char* fmt, ...)
10758 {
10759     int chars_left, used;
10760     va_list ap; va_start(ap, fmt);
10761 #ifdef FLEXML_yylineno
10762     used = sprintf(flexml_err_msg,
10763                    "Invalid XML (XML input line %d, state %d): ",
10764                    surf_parse_lineno, YY_START);
10765 #else
10766     used = sprintf(flexml_err_msg,
10767                    "Invalid XML (state %d): ",
10768                    YY_START);
10769 #endif
10770     chars_left = flexml_max_err_msg_size - used - 1;
10771     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10772     va_end(ap);
10773
10774 #ifndef FLEXML_quiet_parser
10775     /* print directly to sdterr */
10776     fprintf(stderr, "%s\n", flexml_err_msg);
10777     flexml_err_msg[0] = '\0';
10778 #endif
10779
10780     cleanup();
10781
10782     return 1;
10783 }
10784