Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
routing: inline 2 functions
[simgrid.git] / src / surf / xml / simgrid_dtd.c
1
2 #line 3 "src/surf/xml/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 39
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 #ifndef YY_TYPEDEF_YY_SIZE_T
184 #define YY_TYPEDEF_YY_SIZE_T
185 typedef size_t yy_size_t;
186 #endif
187
188 extern yy_size_t surf_parse_leng;
189
190 extern FILE *surf_parse_in, *surf_parse_out;
191
192 #define EOB_ACT_CONTINUE_SCAN 0
193 #define EOB_ACT_END_OF_FILE 1
194 #define EOB_ACT_LAST_MATCH 2
195
196     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
197      *       access to the local variable yy_act. Since yyless() is a macro, it would break
198      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
199      *       One obvious solution it to make yy_act a global. I tried that, and saw
200      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
201      *       normally declared as a variable-- so it is not worth it.
202      */
203     #define  YY_LESS_LINENO(n) \
204             do { \
205                 unsigned int yyl;\
206                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
207                     if ( surf_parse_text[yyl] == '\n' )\
208                         --surf_parse_lineno;\
209             }while(0)
210     #define YY_LINENO_REWIND_TO(dst) \
211             do {\
212                 const char *p;\
213                 for ( p = yy_cp-1; p >= (dst); --p)\
214                     if ( *p == '\n' )\
215                         --surf_parse_lineno;\
216             }while(0)
217     
218 /* Return all but the first "n" matched characters back to the input stream. */
219 #define yyless(n) \
220         do \
221                 { \
222                 /* Undo effects of setting up surf_parse_text. */ \
223         int yyless_macro_arg = (n); \
224         YY_LESS_LINENO(yyless_macro_arg);\
225                 *yy_cp = (yy_hold_char); \
226                 YY_RESTORE_YY_MORE_OFFSET \
227                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
228                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
229                 } \
230         while ( 0 )
231
232 #define unput(c) yyunput( c, (yytext_ptr)  )
233
234 #ifndef YY_STRUCT_YY_BUFFER_STATE
235 #define YY_STRUCT_YY_BUFFER_STATE
236 struct yy_buffer_state
237         {
238         FILE *yy_input_file;
239
240         char *yy_ch_buf;                /* input buffer */
241         char *yy_buf_pos;               /* current position in input buffer */
242
243         /* Size of input buffer in bytes, not including room for EOB
244          * characters.
245          */
246         yy_size_t yy_buf_size;
247
248         /* Number of characters read into yy_ch_buf, not including EOB
249          * characters.
250          */
251         yy_size_t yy_n_chars;
252
253         /* Whether we "own" the buffer - i.e., we know we created it,
254          * and can realloc() it to grow it, and should free() it to
255          * delete it.
256          */
257         int yy_is_our_buffer;
258
259         /* Whether this is an "interactive" input source; if so, and
260          * if we're using stdio for input, then we want to use getc()
261          * instead of fread(), to make sure we stop fetching input after
262          * each newline.
263          */
264         int yy_is_interactive;
265
266         /* Whether we're considered to be at the beginning of a line.
267          * If so, '^' rules will be active on the next match, otherwise
268          * not.
269          */
270         int yy_at_bol;
271
272     int yy_bs_lineno; /**< The line count. */
273     int yy_bs_column; /**< The column count. */
274     
275         /* Whether to try to fill the input buffer when we reach the
276          * end of it.
277          */
278         int yy_fill_buffer;
279
280         int yy_buffer_status;
281
282 #define YY_BUFFER_NEW 0
283 #define YY_BUFFER_NORMAL 1
284         /* When an EOF's been seen but there's still some text to process
285          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
286          * shouldn't try reading from the input source any more.  We might
287          * still have a bunch of tokens to match, though, because of
288          * possible backing-up.
289          *
290          * When we actually see the EOF, we change the status to "new"
291          * (via surf_parse_restart()), so that the user can continue scanning by
292          * just pointing surf_parse_in at a new input file.
293          */
294 #define YY_BUFFER_EOF_PENDING 2
295
296         };
297 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
298
299 /* Stack of input buffers. */
300 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
301 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
302 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
303
304 /* We provide macros for accessing buffer states in case in the
305  * future we want to put the buffer states in a more general
306  * "scanner state".
307  *
308  * Returns the top of the stack, or NULL.
309  */
310 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
311                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
312                           : NULL)
313
314 /* Same as previous macro, but useful when we know that the buffer stack is not
315  * NULL or when we need an lvalue. For internal use only.
316  */
317 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
318
319 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
320 static char yy_hold_char;
321 static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
322 yy_size_t surf_parse_leng;
323
324 /* Points to current character in buffer. */
325 static char *yy_c_buf_p = (char *) 0;
326 static int yy_init = 0;         /* whether we need to initialize */
327 static int yy_start = 0;        /* start state number */
328
329 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
330  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
331  */
332 static int yy_did_buffer_switch_on_eof;
333
334 void surf_parse_restart (FILE *input_file  );
335 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
336 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
337 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
338 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
339 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
340 void surf_parse_pop_buffer_state (void );
341
342 static void surf_parse_ensure_buffer_stack (void );
343 static void surf_parse__load_buffer_state (void );
344 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
345
346 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
347
348 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
349 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
350 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,yy_size_t len  );
351
352 void *surf_parse_alloc (yy_size_t  );
353 void *surf_parse_realloc (void *,yy_size_t  );
354 void surf_parse_free (void *  );
355
356 #define yy_new_buffer surf_parse__create_buffer
357
358 #define yy_set_interactive(is_interactive) \
359         { \
360         if ( ! YY_CURRENT_BUFFER ){ \
361         surf_parse_ensure_buffer_stack (); \
362                 YY_CURRENT_BUFFER_LVALUE =    \
363             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
364         } \
365         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
366         }
367
368 #define yy_set_bol(at_bol) \
369         { \
370         if ( ! YY_CURRENT_BUFFER ){\
371         surf_parse_ensure_buffer_stack (); \
372                 YY_CURRENT_BUFFER_LVALUE =    \
373             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
374         } \
375         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
376         }
377
378 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
379
380 /* Begin user sect3 */
381
382 #define surf_parse_wrap() 1
383 #define YY_SKIP_YYWRAP
384
385 typedef unsigned char YY_CHAR;
386
387 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
388
389 typedef int yy_state_type;
390
391 extern int surf_parse_lineno;
392
393 int surf_parse_lineno = 1;
394
395 extern char *surf_parse_text;
396 #define yytext_ptr surf_parse_text
397
398 static yy_state_type yy_get_previous_state (void );
399 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
400 static int yy_get_next_buffer (void );
401 static void yy_fatal_error (yyconst char msg[]  );
402
403 /* Done after the current pattern has been matched and before the
404  * corresponding action - sets up surf_parse_text.
405  */
406 #define YY_DO_BEFORE_ACTION \
407         (yytext_ptr) = yy_bp; \
408         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
409         (yy_hold_char) = *yy_cp; \
410         *yy_cp = '\0'; \
411         (yy_c_buf_p) = yy_cp;
412
413 #define YY_NUM_RULES 585
414 #define YY_END_OF_BUFFER 586
415 /* This struct is not used in this scanner,
416    but its presence is necessary. */
417 struct yy_trans_info
418         {
419         flex_int32_t yy_verify;
420         flex_int32_t yy_nxt;
421         };
422 static yyconst flex_int16_t yy_accept[3438] =
423     {   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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
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
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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
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
446         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
447         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
448         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
449         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
450         0,    0,    0,    0,    0,    0,  586,  584,   15,   10,
451        10,   15,   15,  564,   10,  564,    5,    6,    5,    8,
452         9,    8,  580,  572,  573,  581,  578,  581,  579,  583,
453       572,  573,  583,   40,   10,   40,   40,   40,   38,   40,
454        40,   44,   10,   44,   44,  584,   44,  584,  584,   44,
455        61,   10,   61,   61,   61,   59,   61,   61,   61,   65,
456
457        10,   65,  584,   65,   72,   10,   72,   72,   72,   70,
458        72,   76,   10,   76,   87,   10,   87,   87,   87,   85,
459        87,   87,   87,   91,   10,   91,  104,   10,  104,  104,
460       104,  102,  104,  104,  104,  108,   10,  108,  108,  117,
461        10,  117,  117,  117,  115,  117,  117,  121,   10,  121,
462       121,  140,   10,  140,  140,  140,  138,  140,  140,  140,
463       140,  140,  140,  144,   10,  144,  199,   10,  199,  199,
464       199,  197,  199,  199,  199,  199,  199,  199,  199,  199,
465       199,  203,   10,  203,  203,  210,   10,  210,  210,  210,
466       208,  210,  214,   10,  214,  214,  221,   10,  221,  221,
467
468       221,  219,  221,  225,   10,  225,  244,   10,  244,  244,
469       244,  242,  244,  244,  244,  244,  244,  248,   10,  248,
470       584,  248,  259,   10,  259,  259,  259,  257,  259,  259,
471       259,  263,   10,  263,  270,   10,  270,  270,  270,  268,
472       270,  274,   10,  274,  584,  274,  297,   10,  297,  297,
473       297,  295,  297,  297,  297,  297,  301,   10,  301,  301,
474       314,   10,  314,  314,  314,  312,  314,  314,  318,   10,
475       318,  327,   10,  327,  327,  327,  325,  327,  327,  331,
476        10,  331,  340,   10,  340,  340,  340,  338,  340,  340,
477       344,   10,  344,  353,   10,  353,  353,  353,  351,  353,
478
479       353,  357,   10,  357,  378,   10,  378,  378,  378,  376,
480       378,  378,  378,  378,  378,  378,  382,   10,  382,  584,
481       389,   10,  389,  389,  389,  387,  389,  393,   10,  393,
482       393,  584,  393,  584,  393,  410,   10,  410,  410,  410,
483       408,  410,  410,  410,  410,  410,  414,   10,  414,  584,
484       414,  423,   10,  423,  423,  423,  421,  423,  423,  427,
485        10,  427,  454,   10,  454,  454,  454,  452,  454,  454,
486       454,  454,  454,  458,   10,  458,  471,   10,  471,  471,
487       471,  469,  471,  471,  475,   10,  475,  475,  484,   10,
488       484,  484,  484,  482,  484,  484,  488,   10,  488,  503,
489
490        10,  503,  503,  503,  501,  503,  503,  503,  503,  507,
491        10,  507,  507,  522,   10,  522,  522,  522,  520,  522,
492       522,  522,  522,  526,   10,  526,  584,  526,  537,   10,
493       537,  537,  537,  535,  537,  537,  537,  581,  580,  559,
494        10,  559,  559,  559,  557,  559,  559,  559,  563,   10,
495       563,   10,    0,    2,    2,    0,    4,    7,  575,  574,
496         0,    0,    0,    0,    0,    0,   39,   41,   41,   41,
497         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
500
501         0,    0,   60,   62,   62,   62,   62,   62,    0,    0,
502        71,   73,   73,    0,   86,   88,   88,   88,   88,    0,
503       103,  105,  105,  105,  105,    0,  116,  118,  118,  118,
504         0,  139,  141,  141,  141,  141,  141,  141,  141,  141,
505         0,  198,  200,  200,  200,  200,  200,  200,  200,  200,
506       200,  200,  200,  200,  200,  200,  200,  200,  200,    0,
507       209,  211,  211,    0,  220,  222,  222,    0,  243,  245,
508       245,  245,  245,  245,  245,  245,    0,    0,  258,  260,
509       260,  260,  260,    0,  269,  271,  271,    0,    0,  296,
510       298,  298,  298,  298,  298,  298,    0,  313,  315,  315,
511
512       315,    0,  326,  328,  328,  328,    0,  339,  341,  341,
513       341,    0,  352,  354,  354,  354,    0,  377,  379,  379,
514       379,  379,  379,  379,  379,  379,    0,    0,  388,  390,
515       390,    0,    0,    0,    0,    0,    0,  409,  411,  411,
516       411,  411,  411,  411,    0,    0,  422,  424,  424,  424,
517         0,  453,  455,  455,  455,  455,  455,  455,  455,  455,
518       455,    0,  470,  472,  472,  472,  472,    0,  483,  485,
519       485,  485,    0,  502,  504,  504,  504,  504,  504,    0,
520       521,  523,  523,  523,  523,  523,    0,    0,  536,  538,
521       538,  538,  538,    0,    0,    0,  558,  560,  560,  560,
522
523       560,    0,    0,    0,    0,    0,    3,    0,    0,    0,
524         0,    0,    0,    0,  582,    0,    0,   41,    0,    0,
525        17,    0,    0,    0,    0,    0,    0,    0,    0,    0,
526         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
527         0,   16,    0,    0,    0,    0,    0,    0,    0,    0,
528         0,    0,    0,    0,   16,    0,    0,   62,   62,   62,
529        62,    0,    0,    0,   73,    0,    0,   88,    0,    0,
530        88,    0,    0,  105,  105,  105,    0,    0,  118,  118,
531         0,    0,    0,    0,    0,    0,  141,  141,  141,  141,
532       141,    0,    0,  200,  200,    0,    0,  200,    0,    0,
533
534       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
535       200,    0,    0,    0,    0,    0,    0,  222,    0,    0,
536       245,  245,  245,    0,    0,  245,  245,  245,    0,    0,
537         0,    0,  260,    0,    0,    0,    0,    0,    0,  271,
538         0,    0,   17,  298,    0,    0,  298,  298,  298,    0,
539         0,  315,    0,    0,    0,    0,    0,    0,  328,    0,
540         0,  341,  341,    0,    0,  354,  354,    0,    0,  379,
541       379,  379,    0,    0,  379,  379,  379,    0,    0,    0,
542       390,    0,    0,    0,    0,    0,  411,  411,  411,  411,
543       411,    0,    0,    0,    0,    0,  424,    0,    0,  455,
544
545         0,    0,  455,  455,  455,  455,  455,  455,    0,    0,
546       472,  472,  472,    0,    0,  485,    0,    0,    0,    0,
547       504,  504,    0,    0,  504,    0,    0,  523,    0,    0,
548       523,  523,    0,    0,    0,  538,    0,    0,  538,    0,
549         0,    0,  577,  560,  560,  560,    0,    0,    0,   14,
550         1,    0,    0,  570,    0,    0,    0,  567,  566,    0,
551         0,   19,   18,   41,    0,    0,   43,    0,   17,    0,
552         0,    0,    0,    0,    0,    0,  216,    0,    0,    0,
553         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
554         0,   16,    0,    0,    0,    0,    0,  215,    0,    0,
555
556         0,    0,    0,    0,    0,    0,    0,    0,    0,   62,
557        62,    0,    0,   62,    0,    0,   64,    0,    0,   73,
558         0,    0,   75,    0,   88,    0,   82,   81,   88,    0,
559         0,   90,    0,    0,    0,  105,  105,    0,    0,    0,
560         0,  107,    0,    0,    0,    0,    0,    0,    0,  120,
561         0,    0,  125,  124,    0,  127,  126,    0,    0,  141,
562       141,  141,  141,    0,    0,  143,    0,  200,  200,  200,
563       200,    0,  158,  157,  200,    0,  162,  161,    0,    0,
564       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
565         0,    0,  202,    0,    0,  207,  206,    0,    0,  213,
566
567         0,  222,    0,    0,  224,    0,  245,  245,  245,    0,
568       235,  234,  245,  245,  245,    0,    0,  247,    0,    0,
569         0,  260,    0,  254,  253,    0,  256,  255,    0,    0,
570       262,    0,  271,    0,    0,  273,    0,  298,    0,  282,
571       281,  298,  298,  298,    0,    0,  300,    0,  315,    0,
572       311,  310,    0,    0,  317,    0,    0,  322,  321,  328,
573         0,    0,  330,    0,  341,  341,    0,    0,  343,    0,
574       354,  354,    0,    0,  356,    0,  379,  379,  379,  379,
575         0,  369,  368,    0,    0,  379,  379,    0,    0,  381,
576         0,    0,  390,    0,    0,  392,    0,    0,    0,    0,
577
578       411,  411,  411,  411,  411,    0,    0,  413,    0,    0,
579         0,  418,  417,  424,    0,    0,  426,    0,  455,    0,
580       439,  438,    0,    0,  455,    0,    0,  455,  455,  455,
581         0,    0,  457,    0,    0,    0,    0,    0,  472,    0,
582         0,  474,    0,  485,    0,  481,  480,    0,    0,  487,
583         0,  504,  504,    0,  498,  497,  504,    0,    0,  506,
584         0,  523,    0,  515,  514,  523,  523,    0,    0,  525,
585         0,    0,  538,    0,  532,  531,  538,    0,    0,    0,
586       540,    0,  560,  560,  560,    0,    0,  562,    0,    0,
587         0,  571,  565,    0,    0,   41,    0,   42,    0,    0,
588
589         0,    0,    0,    0,    0,  216,  227,    0,  276,    0,
590         0,    0,  359,    0,    0,  416,    0,    0,    0,    0,
591       415,    0,    0,    0,    0,    0,  215,  226,    0,  275,
592       358,    0,    0,    0,    0,    0,    0,   48,   47,   62,
593        62,    0,   54,   53,   62,    0,  275,   73,    0,   88,
594        88,    0,    0,   95,   94,  105,  105,    0,  101,  100,
595         0,    0,  112,  111,    0,  114,  113,    0,    0,  129,
596       128,  141,  141,  141,  141,    0,  200,  200,  200,  200,
597         0,    0,    0,  164,  163,  200,  200,  200,  200,  200,
598       200,  200,  200,  200,  200,  200,    0,    0,    0,    0,
599
600         0,  245,  245,    0,    0,  245,  245,  245,    0,    0,
601         0,    0,    0,    0,    0,    0,    0,  298,  298,  298,
602       298,    0,  315,    0,  328,    0,    0,    0,  341,    0,
603         0,    0,  354,    0,  379,  379,  379,  379,    0,  371,
604       370,  379,  379,    0,    0,  390,    0,    0,    0,    0,
605       411,    0,    0,  411,  411,  411,    0,    0,  424,    0,
606       455,    0,  441,  440,    0,    0,    0,  445,  444,  455,
607         0,    0,  455,    0,    0,  462,  461,    0,  464,  463,
608       472,    0,  485,    0,  504,  504,  504,    0,  523,  523,
609         0,    0,    0,    0,    0,    0,  538,    0,    0,  560,
610
611         0,    0,  560,    0,    0,    0,    0,   12,    0,  568,
612       569,   41,    0,    0,    0,    0,    0,    0,    0,  227,
613         0,    0,  276,    0,    0,  332,    0,  359,    0,    0,
614       416,    0,  460,    0,  528,  415,    0,    0,    0,    0,
615         0,  226,    0,    0,  275,  358,  459,    0,  527,  460,
616       459,   62,   62,   62,    0,    0,    0,    0,    0,   88,
617        88,    0,  105,  105,    0,    0,  141,  141,    0,    0,
618       141,    0,  200,    0,    0,  200,  200,    0,  160,  159,
619       200,  200,  200,  200,  200,  200,    0,    0,  200,  200,
620       200,  200,    0,    0,    0,  218,  217,    0,  223,  245,
621
622       245,    0,  233,  232,  245,    0,    0,  245,    0,  333,
623         0,    0,  252,  251,    0,    0,  267,  266,    0,  298,
624       298,  298,  298,    0,  315,    0,    0,    0,    0,    0,
625       335,  334,  341,    0,    0,  348,  347,  354,    0,  379,
626         0,    0,  379,  379,    0,    0,  379,    0,    0,  390,
627         0,    0,    0,    0,  411,    0,  399,  398,  411,  411,
628       411,    0,    0,    0,    0,    0,  455,    0,  443,  442,
629       455,    0,  449,  448,  455,    0,  472,    0,  485,    0,
630       504,  504,  504,    0,  523,    0,    0,    0,  519,  518,
631         0,    0,    0,  530,  529,  538,    0,    0,  560,    0,
632
633         0,    0,    0,    0,    0,    0,    0,    0,   11,   41,
634         0,    0,    0,    0,    0,    0,  204,    0,    0,    0,
635         0,  332,    0,    0,    0,  428,  460,  477,    0,  528,
636         0,    0,    0,    0,    0,    0,    0,    0,  459,  476,
637         0,  527,    0,    0,    0,    0,    0,   62,    0,    0,
638         0,   69,   68,    0,   88,   88,    0,    0,    0,    0,
639         0,    0,    0,    0,    0,  141,    0,  135,  134,    0,
640         0,    0,  200,    0,  150,  149,    0,    0,  200,  200,
641       200,    0,    0,  200,  200,  200,    0,  184,  183,  200,
642         0,    0,  200,  200,    0,    0,  245,  245,    0,    0,
643
644         0,  239,  238,  245,    0,  246,  333,    0,    0,    0,
645       298,  298,  298,  298,    0,  299,  315,    0,    0,  324,
646       323,    0,  341,    0,    0,    0,    0,  379,    0,  363,
647       362,    0,    0,  379,    0,  373,  372,  379,    0,  380,
648         0,  390,    0,  205,    0,  429,  411,  411,  411,  411,
649         0,    0,    0,  420,  419,    0,  425,  455,  455,  455,
650         0,  472,    0,  485,    0,    0,    0,  504,    0,    0,
651         0,  523,    0,  517,  516,    0,    0,  538,    0,    0,
652       560,    0,    0,    0,    0,    0,    0,    0,    0,    0,
653       556,  555,    0,    0,    0,    0,    0,    0,   46,    0,
654
655         0,    0,    0,  123,  146,  204,    0,  265,    0,    0,
656         0,    0,  394,  428,  477,  490,    0,   45,    0,    0,
657         0,  122,  145,    0,  264,  476,  489,    0,    0,   50,
658        49,    0,   52,   51,   62,    0,    0,    0,   88,    0,
659         0,    0,    0,   97,   96,    0,   99,   98,    0,    0,
660         0,  131,  130,    0,    0,    0,  137,  136,    0,  200,
661         0,  152,  151,  200,  200,  200,    0,  172,  171,    0,
662         0,  200,  200,  200,    0,  188,  187,  200,  200,    0,
663         0,  245,  245,    0,  237,  236,  245,    0,    0,    0,
664       298,    0,    0,  298,  298,  298,  315,    0,    0,  341,
665
666         0,  342,    0,  350,  349,    0,  379,    0,  365,  364,
667       379,  379,    0,    0,    0,    0,  205,  395,  429,  411,
668       411,  411,  411,    0,    0,  455,    0,    0,  455,    0,
669       472,    0,  473,  485,    0,    0,  492,  491,    0,    0,
670       504,    0,  500,  499,    0,    0,    0,  523,    0,    0,
671       538,    0,    0,  539,    0,    0,    0,    0,    0,    0,
672         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
673         0,    0,    0,   46,   66,   78,    0,    0,  123,  146,
674         0,  265,  302,    0,  345,  383,  394,  490,    0,    0,
675        45,   77,    0,    0,  122,  145,    0,  264,  489,    0,
676
677         0,   62,    0,  303,    0,   88,    0,   84,   83,    0,
678         0,    0,    0,  133,  132,    0,  200,  200,  200,  200,
679         0,  174,  173,  200,  200,  200,  200,    0,    0,    0,
680         0,  212,  245,  245,  245,  346,    0,    0,  298,    0,
681       284,  283,  298,  298,  298,  315,    0,    0,  341,    0,
682       379,  379,  379,  384,    0,  386,  385,    0,  395,    0,
683         0,  411,  411,  411,    0,   67,  455,    0,  447,  446,
684       455,    0,  456,  472,  485,    0,  486,    0,  494,  493,
685       504,    0,    0,  511,  510,  523,    0,    0,  538,  576,
686         0,  544,  543,    0,    0,    0,    0,    0,    0,    0,
687
688         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
689         0,    0,    0,    0,    0,    0,    0,   66,   78,    0,
690         0,  250,  302,    0,  345,  383,    0,    0,   77,    0,
691         0,  249,    0,    0,   62,    0,   63,  303,    0,    0,
692         0,    0,    0,    0,    0,  142,  200,  200,  200,  200,
693       200,    0,    0,  200,  200,  200,    0,    0,    0,    0,
694       201,  245,  245,  245,  346,    0,    0,  272,    0,    0,
695       298,  298,  298,  298,    0,    0,    0,    0,    0,    0,
696         0,  379,  379,  379,  384,    0,    0,  397,  396,    0,
697         0,  411,  411,    0,  412,   67,    0,    0,  455,  472,
698
699       485,  504,    0,  505,  523,    0,    0,  538,    0,    0,
700         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
702         0,    0,    0,    0,    0,    0,  250,  319,    0,    0,
703         0,    0,  249,    0,    0,   62,    0,   74,    0,   80,
704        79,    0,   89,    0,    0,  200,  200,  200,  200,  200,
705         0,  176,  175,  200,    0,    0,  200,    0,    0,    0,
706         0,  245,  245,    0,    0,    0,    0,  278,  277,  298,
707       298,  298,    0,    0,    0,    0,    0,    0,  316,    0,
708         0,  337,  336,    0,  355,  379,  379,    0,    0,    0,
709
710       391,    0,  401,  400,    0,    0,    0,    0,    0,    0,
711         0,  455,  472,  485,  504,  523,    0,  320,  538,    0,
712         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
713         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
714         0,    0,    0,    0,    0,    0,  110,  319,    0,    0,
715         0,  109,    0,    0,    0,    0,    0,    0,  200,  200,
716       200,    0,    0,  200,  200,    0,  186,  185,  200,    0,
717         0,    0,    0,    0,    0,  245,    0,    0,    0,  241,
718       240,    0,  261,  298,  298,  298,    0,  294,  293,    0,
719         0,    0,    0,    0,    0,    0,  379,    0,    0,    0,
720
721       375,  374,    0,    0,    0,    0,  407,  406,    0,    0,
722         0,    0,    0,    0,  455,    0,    0,    0,    0,  504,
723       523,    0,  320,    0,    0,    0,    0,    0,    0,  548,
724         0,    0,    0,    0,  547,    0,    0,    0,    0,    0,
725         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
726         0,    0,  110,  509,    0,    0,  109,  508,    0,    0,
727         0,    0,    0,    0,  200,  200,    0,    0,    0,  168,
728       167,    0,    0,  200,  200,    0,    0,    0,    0,    0,
729         0,  245,    0,  231,  230,  298,    0,    0,  298,    0,
730         0,    0,    0,    0,    0,    0,  329,  379,    0,  367,
731
732       366,    0,    0,    0,    0,    0,    0,    0,    0,    0,
733         0,    0,    0,  455,    0,    0,    0,    0,  479,  478,
734         0,    0,    0,    0,    0,    0,  534,  533,    0,    0,
735         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
736         0,    0,    0,    0,   21,   29,    0,    0,    0,    0,
737        20,   28,    0,   93,  509,  542,   92,  508,  541,    0,
738         0,    0,    0,    0,    0,  119,  200,  200,    0,  166,
739       165,    0,  170,  169,  200,  200,    0,    0,    0,    0,
740         0,    0,  245,  298,    0,  286,  285,  298,    0,    0,
741       305,    0,    0,  304,  379,    0,    0,    0,    0,    0,
742
743         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
744         0,    0,    0,    0,  496,  495,    0,  513,  512,    0,
745         0,    0,  554,    0,    0,    0,  553,    0,    0,    0,
746         0,    0,    0,    0,    0,    0,    0,   23,    0,    0,
747         0,   22,    0,   93,  542,   92,  541,    0,    0,    0,
748         0,    0,  200,  200,    0,    0,  200,    0,  192,    0,
749         0,  191,    0,  245,    0,    0,    0,    0,    0,    0,
750         0,    0,  379,    0,    0,    0,    0,    0,    0,    0,
751         0,    0,    0,    0,    0,    0,  451,  450,    0,    0,
752         0,    0,    0,  524,    0,    0,    0,    0,    0,    0,
753
754         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
755         0,    0,    0,   58,    0,   57,    0,    0,  106,  200,
756       200,    0,    0,    0,    0,    0,    0,  194,    0,  193,
757       245,    0,  280,  279,    0,    0,    0,  307,  309,  306,
758       308,  379,  403,    0,  402,    0,    0,  437,  433,    0,
759         0,  436,  432,    0,  468,    0,  467,    0,  552,    0,
760         0,  551,    0,    0,    0,  561,    0,    0,    0,   12,
761         0,   12,    0,   33,    0,    0,    0,   31,   32,    0,
762         0,    0,   30,   56,   55,  200,  200,    0,    0,    0,
763         0,    0,  190,  189,    0,    0,  245,    0,    0,    0,
764
765         0,  379,    0,    0,    0,    0,    0,    0,  466,  465,
766       546,  550,  545,  549,    0,    0,    0,    0,    0,    0,
767         0,   25,    0,    0,    0,   24,    0,    0,    0,    0,
768         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
769         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
770         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
771         0,    0,    0,    0,  148,  147,    0,    0,    0,    0,
772         0,    0,    0,    0,    0,  196,  195,    0,  229,  228,
773         0,    0,    0,    0,    0,    0,    0,  361,  360,    0,
774         0,  431,    0,  430,    0,    0,   11,    0,    0,    0,
775
776         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
777         0,    0,    0,    0,    0,    0,    0,    0,    0,  405,
778       404,    0,    0,    0,    0,    0,    0,    0,    0,    0,
779         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
780         0,    0,    0,    0,    0,    0,  435,  434,    0,    0,
781        35,    0,    0,   34,    0,    0,    0,    0,    0,    0,
782         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
783         0,    0,    0,   27,    0,   26,    0,    0,    0,    0,
784         0,    0,  178,    0,    0,  177,    0,    0,  288,    0,
785         0,  287,    0,   37,   36,    0,    0,    0,    0,  182,
786
787         0,  181,    0,  290,    0,  289,    0,    0,    0,    0,
788         0,    0,    0,    0,    0,    0,    0,    0,  154,    0,
789       153,    0,    0,    0,    0,    0,    0,  156,  155,  180,
790       179,  292,  291,    0,    0,    0,    0,    0,    0,    0,
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,    0,    0,    0,    0,    0,
797
798         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
799         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
800         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
801         0,    0,    0,    0,    0,   13,    0
802     } ;
803
804 static yyconst flex_int32_t yy_ec[256] =
805     {   0,
806         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
807         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
808         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
809         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
810         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
811        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
812        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
813        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
814        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
815        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
816
817        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
818        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
819        73,   74,    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         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
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
828         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
829         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
830         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
831         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
832         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
833         1,    1,    1,    1,    1
834     } ;
835
836 static yyconst flex_int32_t yy_meta[75] =
837     {   0,
838         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
839         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
840         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
841         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
842         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
843         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
844         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
845         5,    5,    5,    5
846     } ;
847
848 static yyconst flex_int16_t yy_base[3945] =
849     {   0,
850         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
851        14,   17,   33,   36,   49,   55,   45,   61,  108,  174,
852        66,   72,   75,   78,   83,  128,  131,  134,  138,  141,
853       194,  197,  200,  204,  207,  224,  230,  233,  241,  250,
854       268,  335,  288,  291,  294,  298,  301,  355,  358,  361,
855       402,  472,  365,  368,  542,  602,  422,  425,  662,  729,
856       428,  432,  435,  452,  492,  495,  498,  502,  796,  863,
857       505,  522,  562,  565,  568,  572,  575,  622,  930,  997,
858       625,  628, 1064,    0,  632,  635,  682,  685,  688,  692,
859       695,  749, 1138, 1195,  752,  755,  759,  762,  816,  819,
860
861       822,  826, 1252, 1314,  829,  883, 1376, 1443,  886,  889,
862       893,  896,  950,  953,  956,  960, 1510, 1579,  963, 1017,
863      1648, 1702, 1020, 1023, 1027, 1030, 1158, 1161, 1164, 1168,
864      1756, 1823, 1171, 1215, 1218, 1221, 1225, 1228, 1272, 1275,
865      1890, 1947, 1278, 1282, 2004, 2074, 1285, 1334, 2144, 2211,
866      1337, 1340, 2278, 2346, 1344, 1347, 2414, 2481, 1396, 1399,
867      1402, 1406, 2548, 2618, 1463, 1466, 1469, 1473, 1530, 1533,
868      1536, 1540, 1543, 1599, 1602, 1605, 1609, 1612, 1668, 1671,
869      1674, 1678, 1681, 1722, 2688, 2755, 1725, 1728, 1732, 1735,
870      1776, 1779, 1782, 1786, 2822, 2892, 1789, 1843, 2962, 3029,
871
872      1846, 1849, 3096, 3163, 1853, 1856, 1910, 1913, 1916, 1920,
873      1923, 1967, 3230, 3287, 1970, 1973, 3344, 3412, 1977, 1980,
874      2024, 2027, 2030, 2034, 2037, 2054, 3480, 3547, 2094, 2097,
875      2100, 2104, 2107, 2124, 2164, 2167, 3614, 3678, 2180, 2189,
876      3742, 3810, 2171, 2176,    0,    0, 9443,12349,12349,   95,
877       100,   29,   41,12349,  103,   51,12349,12349, 9432,12349,
878     12349, 9419,12349, 9434, 9434,  164,12349,12349,12349,12349,
879      9428, 9428, 9383,12349,  158, 9407,    0,  142,12349, 9374,
880      9362,12349,  164, 3874, 9356, 3938, 2183, 1362, 9407,   31,
881     12349,  253, 9398,    0,  143,12349, 9348, 9343,   84,12349,
882
883       258,  253,  109,  141,12349,  322, 9393,    0,  209,12349,
884      9359,12349,  325,  372,12349,  328, 9387,    0,  218,12349,
885      9357, 9351, 9353,12349,  392,  380,12349,  395, 9381,    0,
886       242,12349, 9329, 9324, 9328,12349,  455,  451,  246,12349,
887       458, 9371,    0,  245,12349, 9323, 9323,12349,  462,  457,
888       287,12349,  525, 9364,    0,  313,12349, 9312, 9330, 9330,
889      9312, 9328,    2,12349,  528,  579,12349,  531, 9352,    0,
890       370,12349, 9301,  101, 9307, 9315,  317, 9300,  258,  651,
891      9302,12349,  534, 9348,  377,12349,  592, 9339,    0,  446,
892     12349, 9306,12349,  652, 9343,  388,12349,  719, 9334,    0,
893
894       576,12349, 9304,12349,  722,  639,12349,  783, 9328,    0,
895       577,12349, 9277, 9283, 9291, 9275,  577,12349,  786,  272,
896      9280,  681,12349,  789, 9316,    0,  580,12349, 9272, 9282,
897      9267,12349,  847,  706,12349,  850, 9310,    0,  637,12349,
898      9272,12349,  853, 2188, 9312,  704,12349,  856, 9303,    0,
899       707,12349, 9273, 9267, 9269,   32,12349,  914, 9305,  748,
900     12349,  917, 9292,    0,  773,12349, 9254, 9258,12349,  920,
901       967,12349,  923, 9287,    0,  774,12349, 9254, 9256,12349,
902       980, 1034,12349,  989, 9280,    0,  840,12349, 9250, 9230,
903     12349, 1047, 1289,12349, 1056, 9275,    0,  841,12349, 9245,
904
905      9220,12349, 1188, 1290,12349, 1245, 9268,    0,  907,12349,
906      9217, 9215, 9220, 9230, 9232,  593,12349, 1302, 1351,  964,
907     12349, 1305, 9256,    0,  908,12349, 9222,12349, 1364, 1429,
908       771, 1365,  815, 9210,  882,12349, 1367, 9251,    0,  965,
909     12349, 9201, 9206, 9207, 9193, 9186,12349, 1432,   11, 9204,
910       949,12349, 1435, 9228,    0,  968,12349, 9195, 9197,12349,
911      1494, 1352,12349, 1499, 9221,    0, 1031,12349, 9187, 9187,
912      1358, 9185,   71,12349, 1502, 1547,12349, 1561, 9213,    0,
913      1032,12349, 9165, 1114,12349, 1567, 1514, 1171,12349, 1573,
914      9207,    0, 1035,12349, 9163, 9173,12349, 1630, 1616,12349,
915
916      1636, 9200,    0, 1172,12349, 9151, 9155, 9161, 9139,12349,
917      1639, 9199, 1176,12349, 1642, 9186,    0, 1173,12349, 9142,
918      9152, 9136, 9141,12349, 1806, 1222, 9136, 1233,12349, 1815,
919      9172,    0, 1354,12349, 9134, 9138, 9132, 1793, 9137,12349,
920      1818, 9163,    0, 1478,12349, 9118, 9120, 9110,12349, 1873,
921      1860, 1882,  239, 9099,12349, 9160, 9149,12349,12349,12349,
922      1874,   30, 9096, 9095, 9093, 9137,12349,    0, 2240, 9087,
923      9133, 9111, 9083,  168,  384, 9084, 9080, 9080, 9084,  638,
924      1184,  259, 9068, 9069, 1500, 9095,  369, 1425, 9065, 9065,
925      9065, 9065, 1569,  524, 9053, 9054, 9076,  439, 1879,  584,
926
927       629, 1369,12349,    0, 9046, 9065, 9057, 9046, 9084, 9044,
928     12349,    0, 9040, 9050,12349,    0, 9032, 2251, 9025, 9042,
929     12349,    0, 9019, 9038, 9034, 9030,12349,    0, 9011, 9027,
930      9023,12349,    0, 2258, 2298, 9004, 9018, 9014, 9012, 9010,
931      9008,12349,    0, 9009, 9009, 2301, 8410, 2304, 8407, 8412,
932      8409, 8418, 8418, 8400, 8419, 8414, 8416, 8410, 8398, 8403,
933     12349,    0, 2307, 8402,12349,    0, 8390, 8388,12349,    0,
934      8392,  405, 2310, 8372, 8385, 8384, 8376,  839,12349,    0,
935      8359, 2366, 2369, 8368,12349,    0, 8362, 8361, 8377,12349,
936         0, 8353, 2372, 8337, 8345, 8344, 8323,12349,    0, 8316,
937
938      2375, 8320,12349,    0, 2378, 8310, 8302,12349,    0, 8301,
939      8297, 8298,12349,    0, 8281, 8275, 8276,12349,    0, 8284,
940      8282, 8266, 2434, 8253, 8267, 8269, 8249, 8252,12349,    0,
941      8244, 8237, 1630, 1936, 1492, 1638, 1937,12349,    0, 8238,
942      8229, 8223, 8227, 8225, 8208, 8200,12349,    0, 2437, 8205,
943      8199,12349,    0, 8192, 2440, 8177, 8188, 8174, 8177, 8175,
944      8174, 8159,12349,    0, 8155, 8164, 8153, 8146,12349,    0,
945      8140, 2443, 8136,12349,    0, 8132, 8136, 2447, 8114, 8110,
946     12349,    0, 8113, 2501, 8118, 8094, 8100, 1415,12349,    0,
947      8105, 2504, 8085,  493, 8064, 8110,12349,    0, 8076, 8065,
948
949      8067, 8037, 8084, 8092, 1775, 8036,12349, 2049,    0, 8032,
950      8030, 8074, 8073, 8025,12349, 2507, 2130, 8018, 2513, 2568,
951      2199, 8030, 8032, 8005, 8018, 7997, 7999, 7989, 7985, 7999,
952      7979,  489, 7972, 7981, 7984, 7968, 7958, 7948, 7949, 7961,
953      7946, 2264, 7956, 7935, 7948, 7899, 7897, 7895, 7906, 7887,
954      7895, 7869, 7874, 7878, 2272, 7857, 7855, 2510, 2582, 2571,
955      2579, 2576, 2639, 7854, 7844, 2589, 2648, 7856, 2642, 2330,
956      7854, 2651, 2728, 2654, 2719, 2708, 2713, 2716, 2722, 2776,
957      2779, 2788, 2794, 2396, 2801, 2466, 2843, 2854, 2861, 2868,
958      2872, 2846, 2912, 7844, 1993, 2921, 2533, 7843, 2925, 2602,
959
960      2931, 7828, 7820, 7828, 7816, 7803, 7800, 7812, 7795, 7800,
961      7783, 2939, 2985, 2982, 2673, 2990, 2993, 7791, 2996, 3000,
962      7775, 7761, 7773, 3049, 2879, 7775, 7753, 7737, 3057, 3063,
963      1199, 7735, 7739, 3068, 2949, 3116, 3076, 3119, 3125, 7747,
964      3129, 3134, 2340, 7746, 3183, 3149, 7731, 7717, 7713, 3187,
965      3196, 7727, 3201, 3215, 3191, 3252, 3210, 3255, 7694, 3263,
966      3266, 7709, 7694, 3308, 3311, 7706, 7704, 3315, 3319, 7695,
967        26, 7685, 3322, 3276, 3364, 7692, 7676, 3367, 3450, 7693,
968      7664, 3374, 3377, 7668, 7665, 7661, 7671, 7652, 7655, 7658,
969      7640, 3436, 3440, 7650, 3432, 3396, 7634, 3444, 3505, 7642,
970
971      3509, 3469, 3513, 7632, 3516, 7631, 7635, 7637, 3519, 3581,
972      3570, 3573, 3576, 3636, 3639, 7606, 3584, 3603, 3642, 3645,
973      7616, 7596, 3648, 3701, 7601, 3709, 3713, 7585, 3651, 3717,
974      7598, 7590, 3762, 3765, 1261, 7588, 3768, 3771, 7583, 7610,
975      3788, 3832,12349, 7569, 7576, 7567, 3835, 3838, 7596,12349,
976     12349, 1721, 7554,12349, 7592, 7591, 7539,12349,12349, 7533,
977      3794,12349,12349, 7539, 3841, 3844,12349, 3847, 2065, 7515,
978      7508, 7516, 7525, 7515, 7504, 7500, 2407, 7485, 7491, 7487,
979      7492, 7481, 7475, 7471, 7467,  718, 7481, 7464, 7459, 7466,
980      1691, 2474, 7453, 7455, 7457, 7448, 7436, 2541, 7434, 7440,
981
982      7440, 7427, 7417, 7418, 7431, 7409, 7408, 3868, 3871, 7407,
983      7396, 3880, 3888, 7407, 3898, 3906,12349, 3912, 7396, 7401,
984      3917, 3942,12349, 3945, 7381, 3948,12349,12349, 7382, 3964,
985      3970,12349, 3977, 3903, 4005, 7376, 7371, 3909, 4013, 4021,
986      4027,12349, 4030, 3967, 4033, 3973, 4042, 4050, 4053,12349,
987      4056, 4059,12349,12349, 4075,12349,12349, 4083, 4086, 7378,
988      7383, 7379, 7373, 4094, 4097,12349, 4101, 7368, 7356, 7376,
989      7358, 4104,12349,12349, 4120, 4123,12349,12349, 4131, 4134,
990      7345, 7361, 7348, 7351, 7343, 7338, 7332, 7327, 7321,  110,
991      4142, 4145,12349, 4150, 4154,12349,12349, 4164, 4169,12349,
992
993      4172, 4175, 4178, 4183,12349, 4193, 7305, 7312, 4197, 4202,
994     12349,12349, 7294, 7299, 7297, 4218, 4221,12349, 4224, 7278,
995      7259, 4227, 4233,12349,12349, 4245,12349,12349, 4253, 4256,
996     12349, 4261, 4264, 4267, 4275,12349, 4282, 7250, 4290,12349,
997     12349, 7249, 7251, 7254, 4286, 4301,12349, 4305, 7248, 4308,
998     12349,12349, 4316, 4320,12349, 4327, 4335,12349,12349, 7237,
999      4346, 4349,12349, 4352, 4355, 4358, 4361, 4376,12349, 4380,
1000      4383, 4389, 4395, 4407,12349, 4410, 7229, 7194, 7185, 7191,
1001      4414,12349,12349, 4422, 4429, 7190, 7184, 4440, 4443,12349,
1002      4448, 7168, 7173, 4451, 4454,12349, 4462, 7175, 1748, 7150,
1003
1004      7091, 4473, 7085, 7082, 7049, 4477, 4482,12349, 4485, 6998,
1005      4504,12349,12349, 7004, 4492, 4496,12349, 4515, 6989, 4518,
1006     12349,12349, 4526, 4530, 4538, 4547, 4550, 6990, 4558, 6987,
1007      4561, 4565,12349, 4568, 4571, 4580, 4589, 4592, 6980, 4600,
1008      4603,12349, 4607, 6960, 4610,12349,12349, 4622, 4629,12349,
1009      4632, 6899, 6870, 4635,12349,12349, 6891, 4643, 4651,12349,
1010      4654, 6864, 4658,12349,12349, 6834, 4666, 4675, 4678,12349,
1011      4684, 6837, 4687, 4690,12349,12349, 4705, 6653, 4708, 4711,
1012     12349, 4716, 6587, 4719, 6586, 4723, 4730,12349, 4737,  955,
1013      4742,12349,12349, 6583, 6507, 6445, 4749,12349, 6433, 6419,
1014
1015      6358, 6324, 6202, 6168, 6162, 2610, 2681, 6112, 2943,  130,
1016       148,  172, 2613,  192,  214, 2750,  248,  325,  339,  392,
1017      2813,  445,  472,  551,  642,  703, 2849, 3158,  703, 3223,
1018      3022,  721,  787,  785,  786,  788, 4752,12349,12349,  835,
1019       854, 4768,12349,12349,  840, 4776, 3407, 4779, 4785,  985,
1020      1011, 4788, 4791,12349,12349, 1086, 1118, 4800,12349,12349,
1021      4808, 4811,12349,12349, 4820,12349,12349, 4828, 4831,12349,
1022     12349, 1109, 1162, 4839, 1154, 4842, 1189, 4847, 1223, 1243,
1023      4857, 4861, 4869,12349,12349, 1259, 1296, 1281, 1305, 1326,
1024      1351, 4877, 1371, 1349, 1378, 1396, 4880, 4883, 4886, 4889,
1025
1026      4904, 1430, 1429, 4907, 4910, 1455, 4919, 1461, 4925, 1481,
1027      1484, 4929, 4937, 4932, 4947, 4951, 4959, 1515, 1522, 1533,
1028      1562, 4965, 1550, 4968, 4971, 4978, 4992, 4999, 1564, 5010,
1029      5013, 5019, 1572, 5031, 1598, 5034, 1596, 1631, 5037,12349,
1030     12349, 5045, 1643, 5053, 1643, 1637, 5056, 1661, 1680, 1681,
1031      1690, 5059, 5065, 1683, 1695, 1706, 5077, 1711, 5080, 5083,
1032      1738, 5086,12349,12349, 5098, 5102, 5112,12349,12349, 1747,
1033      5123, 5127, 1748, 5135, 5142,12349,12349, 5150,12349,12349,
1034      1747, 5158, 1782, 5161, 1798, 1800, 1811, 5164, 1804, 5167,
1035      5170, 5173, 5188, 1808, 5191, 5194, 1826, 1857, 5202, 1820,
1036
1037      5209, 5212, 5221, 5229, 2026, 1886, 5232,12349, 1901,12349,
1038     12349, 1874, 1862, 1880, 1872, 1873, 1890, 1891, 1908, 3089,
1039      1918, 1934, 3271, 1936, 1944, 3404, 1951, 3463, 1938, 1953,
1040      3540, 1974, 3670, 1989, 3735, 3673, 1979, 1986, 1987, 2006,
1041      2012, 3802, 2010, 2021, 4974, 5235, 5239, 2035, 5242, 5253,
1042      5256, 5259, 5262, 5265, 5268, 2054, 5272, 5290, 5304, 2061,
1043      2041, 5307, 5310, 5313, 5331, 5336, 5339, 5342, 5345, 5364,
1044      5350, 5372, 2066, 5375, 5378, 5386, 2051, 5404,12349,12349,
1045      2053, 2072, 5393, 2064, 2081, 2075, 5397, 5415, 2081, 5423,
1046      2088, 2083, 5426, 5429, 5434,12349,12349, 5448,12349, 2090,
1047
1048      2079, 5451,12349,12349, 5459, 5462, 5467, 2089, 5480, 5485,
1049      2111, 5489,12349,12349, 5499, 5502,12349,12349, 5510, 2120,
1050      2103, 2122, 2127, 5513, 2129, 5518, 5521, 5525, 5533, 5539,
1051     12349,12349, 2134, 5547, 5552,12349,12349, 5561, 5566, 2146,
1052      5569, 5572, 5580, 2137, 5587, 5592, 2150, 5600, 2145, 2147,
1053      5605, 2179, 2168, 2176, 2175, 5608,12349,12349, 2183, 2181,
1054      2178, 5619, 2195, 5624, 5627, 5638, 2182, 5642,12349,12349,
1055      2203, 5651,12349,12349, 2194, 5659, 2203, 5662, 2209, 5665,
1056      5671, 5674, 5684, 5692, 2204, 5695, 5698, 5707,12349,12349,
1057      5717, 2246, 5721,12349,12349, 2258, 2276, 5729, 2250, 5741,
1058
1059      2298, 3101, 5732, 5750, 5758, 2308, 2321, 2342,12349, 5736,
1060      2266, 2260, 2273, 2365, 2316, 2320, 5761, 2332, 2337, 2328,
1061      2337, 5765, 2349, 2341, 2345, 5768, 5771, 5777, 2360, 5781,
1062      2379, 2395, 2390, 2435, 2386, 2389, 2401, 2414, 5784, 5787,
1063      2426, 5790, 2429, 5793, 5796, 5804, 5811, 2440, 5822, 2450,
1064      5825,12349,12349, 5833, 2451, 5836, 5841, 5844, 5848, 5856,
1065      5862, 5874, 5877, 5870, 5889, 5880, 5899,12349,12349, 5907,
1066      5910, 5918, 2464, 5921,12349,12349, 5929, 5933, 2465, 2476,
1067      2466, 5943, 5947, 5955, 2477, 2492, 5961,12349,12349, 2489,
1068      5973, 5976, 2481, 2491, 5984, 5987, 2519, 2528, 5991, 5994,
1069
1070      6009,12349,12349, 2530, 6018,12349, 6021, 2534, 6024, 6027,
1071      2529, 6030, 2551, 2543, 6037,12349, 2539, 6048, 6052,12349,
1072     12349, 6060, 2573, 6063, 6067, 6085, 6070, 2553, 6094,12349,
1073     12349, 6073, 6103, 2598, 6111,12349,12349, 2591, 6119,12349,
1074      2594, 6122, 6125, 6128, 2595, 6131, 2601, 2605, 2598, 2612,
1075      6134, 2608, 6140,12349,12349, 6148,12349, 2609, 6153, 2617,
1076      6156, 2623, 6159, 2632, 6162, 6167, 6171, 6181, 6187, 6190,
1077      6200, 6205, 6209,12349,12349, 6219, 2622, 2636, 2682, 6223,
1078      6228, 2691, 2692, 2715, 2702, 2718, 2707, 2763, 2709, 6231,
1079     12349,12349, 6242, 2768, 2787, 2801, 6246, 6254, 6264, 2681,
1080
1081      2697, 2745, 2724, 6267, 6273, 6276, 2738, 6279, 2744, 2744,
1082      2759, 2758, 6282, 6285, 6289, 6292, 2781, 6295, 2801, 2816,
1083      2796, 6298, 6301, 2798, 6304, 6307, 6310, 2814, 6313,12349,
1084     12349, 6321,12349,12349, 2827, 6329, 2822, 6332, 2830, 6335,
1085      6339, 6353, 6357,12349,12349, 6365,12349,12349, 6373, 6376,
1086      6381,12349,12349, 6397, 6400, 6415,12349,12349, 6408, 2829,
1087      6423,12349,12349, 2828, 2857, 2871, 6431,12349,12349, 6439,
1088      6442, 2868, 2858, 2870, 6450,12349,12349, 2882, 6458, 6461,
1089      6464, 2876, 2869, 6469,12349,12349, 2888, 2901, 6483, 6486,
1090      2900, 6489, 6492, 2903, 2896, 2918, 2928, 6508, 6511, 2954,
1091
1092      6514,12349, 6517,12349,12349, 6533, 2947, 6539,12349,12349,
1093      2943, 2952, 2953, 6547, 6552, 6560, 6565, 6568, 6575, 6579,
1094      6582, 6587, 6590, 6593, 2947, 2952, 6600, 6608, 2972, 6618,
1095      2971, 6621,12349, 2959, 6625, 6628,12349,12349, 6640, 6646,
1096      2986, 6659,12349,12349, 6654, 6667, 6673, 2987, 6681, 2991,
1097      3001, 3016, 6685,12349, 6689, 6693, 3028, 3030, 3033, 3039,
1098      3055, 3053, 3050, 3054, 3077, 3099, 6707, 6710, 3159, 3130,
1099      6713, 4962, 5262, 6721, 6729, 6733, 3075, 3075, 6736, 6739,
1100      3087, 6742, 6745, 3084, 6748, 6751, 6757, 6760, 3088, 3095,
1101      6763, 6766, 3093, 3123, 6769, 6772, 3142, 6775, 6778, 3140,
1102
1103      3161, 3179, 6781, 6784, 6787, 6790, 6793,12349,12349, 6801,
1104      6808, 6811, 6814,12349,12349, 6822, 3189, 3197, 3203, 3270,
1105      6830,12349,12349, 6841, 3199, 3210, 3223, 6846, 6855, 6849,
1106      6864,12349, 3246, 3263, 3274, 6868, 6873, 6876, 6879, 6883,
1107     12349,12349, 6897, 6900, 6903, 6906, 6909, 6928, 6934, 6937,
1108      3275, 3283, 3284, 6940, 6943,12349,12349, 6956, 6962, 6965,
1109      6971, 6979, 6983, 6989, 6993, 6997, 7001, 7012,12349,12349,
1110      7007, 7020,12349, 3291, 3289, 7025,12349, 7028,12349,12349,
1111      3270, 7044, 7047,12349,12349, 3287, 7056, 3309, 3305,12349,
1112      7059,12349,12349, 3350, 3342, 3358, 3353, 3362, 3364, 3352,
1113
1114      3370, 3371, 3378, 7067, 7070, 3425, 3448, 3368, 3384, 3464,
1115      3386, 3393, 3397, 3405, 3469, 3411, 3419, 7075, 7078, 3416,
1116      3428, 7081, 7089, 3438, 7092, 7095, 3431, 3448, 7098, 3451,
1117      3462, 7103, 3461, 3474, 3480, 7106,12349, 7109, 7112, 7116,
1118      7119, 7134, 7137, 7140, 7143,12349, 3477, 3498, 3501, 3498,
1119      3521, 7146, 7149, 3521, 7164, 3529, 7167, 3570, 3573, 7175,
1120     12349, 3522, 3524, 7178, 7182, 7185, 7188,12349, 7196, 7208,
1121      3542, 3539, 3542, 7216, 7219, 7222, 7230, 7237, 7243, 7249,
1122      7257, 3543, 3569, 7261, 7264, 7267, 7270,12349,12349, 7279,
1123      7282, 7290, 7293, 7299,12349, 7302, 7311, 7314, 7322, 3597,
1124
1125      3591, 3599, 7325,12349, 3600, 7329, 3602, 3596, 3651, 3652,
1126      3666, 3658, 3684, 3671, 3670, 3687, 3679, 3703, 7332, 3766,
1127      3721, 3840, 3661, 3673, 3671, 3680, 3696, 3706, 3710, 3726,
1128      3730, 3734, 3737, 3732, 3738, 3756, 7335, 7340, 3768, 3800,
1129      3785, 3806, 7344, 3798, 3812, 7351, 7354,12349, 7357,12349,
1130     12349, 7365,12349, 7369, 7373, 3793, 3804, 3817, 7379, 3813,
1131      7397,12349,12349, 3828, 7388, 7406, 3820, 3931, 3853, 3963,
1132      3857, 3844, 7414, 7417, 7420, 7384, 7436,12349,12349, 3870,
1133      3880, 3879, 7444, 7447, 7455, 3985, 4039, 7463,12349, 7466,
1134      7469,12349,12349, 7477,12349, 3866, 7485, 7488, 7492, 7506,
1135
1136     12349, 7509,12349,12349, 7517, 7525, 7520, 7538, 7546, 4093,
1137      4177, 7554, 7557, 7560, 3902, 3903, 7563, 7566, 7578, 3928,
1138      3939, 3939, 3960, 3977, 3961, 3979, 3979, 3990, 4004, 7582,
1139      4018, 4007, 4020, 3951, 3962, 3970, 3989, 4013, 4022, 4005,
1140      4016, 4010, 4031, 4040, 4060, 4043, 7585, 7588, 4059, 4064,
1141      4048, 7591, 4066, 4079, 7596, 7601, 7609, 7617, 4093, 4079,
1142      7620, 7623, 7629, 7643, 4104, 7646,12349,12349, 4106, 4121,
1143      4142, 4131, 4143, 4166, 4152, 4143, 7654, 7657, 7665,12349,
1144     12349, 7673,12349, 4133, 7677, 4156, 7680,12349,12349, 4173,
1145      4174, 4177, 4181, 4182, 4195, 7688, 4185, 7695, 7698, 7707,
1146
1147     12349,12349, 7715, 4215, 4236, 7723,12349,12349, 4205, 4209,
1148      4278, 4212, 4216, 4310, 7731, 7734, 7737, 7745, 7752, 7763,
1149      7766, 7769, 7772, 7775, 7793, 4247, 4233, 4235, 4240,12349,
1150      4272, 4256, 4256, 4273,12349, 7784, 4307, 4315, 7788, 4248,
1151      4259, 4282, 4336, 4337, 4286, 4300, 4304, 4321, 4367, 4379,
1152      4330, 4341, 7807, 7810, 4327, 4348, 7813, 7816, 4335, 7819,
1153      4394, 4424, 7827, 7832, 4351, 4346, 7836, 7839, 7847,12349,
1154     12349, 7855, 7858, 4348, 4356, 4380, 4394, 4395, 4389, 4400,
1155      4407, 4407, 7866,12349,12349, 4409, 7874, 7877, 4394, 4427,
1156      4437, 4467, 4440, 4455, 4482, 7885,12349, 4439, 7888,12349,
1157
1158     12349, 4473, 4478, 4479, 4488, 4493, 4488, 4490, 4498, 4509,
1159      4502, 4503, 4515, 7896, 7900, 4552, 4583, 7908,12349,12349,
1160      7916, 7919, 7927, 7930, 7938, 7941,12349,12349, 4504, 4524,
1161      4541, 4533, 4518, 4554, 4570, 4558, 7949, 4597, 7952, 7957,
1162      7961, 4546, 4532, 4609,12349,12349, 4569, 4569, 4561, 4631,
1163     12349,12349, 4591, 7971, 7976, 7980, 7983, 7986, 7990, 4612,
1164      4624, 4623, 4639, 7993, 7999,12349, 4609, 4615, 8002,12349,
1165     12349, 8012,12349,12349, 8020, 4606, 4635, 4677, 4645, 4657,
1166      4691, 4663, 4646, 8023, 8026,12349,12349, 8034, 4670, 4690,
1167     12349, 4694, 4704,12349, 4678, 4711, 4703, 4722, 4710, 4724,
1168
1169      4734, 4739, 4727, 4732, 4747, 4750, 4737, 8041, 8045, 4748,
1170      4759, 4763, 4775, 8053,12349,12349, 8061,12349,12349, 8069,
1171      4778, 4786,12349, 4788, 4790, 4791,12349, 4795, 8072, 4854,
1172      8075, 8078, 8097, 8140, 8187, 4761, 4770,12349, 4781, 4786,
1173      4787,12349, 4798, 8105, 8108, 8111, 8116, 4850, 4829, 4860,
1174      4855, 8119, 4837, 4850, 8131, 8122, 8134, 4864,12349, 4898,
1175      4877,12349, 4909, 4860, 8152, 8160, 8178, 8170, 4919, 4924,
1176      4933, 4935, 4896, 4952, 4919, 4955, 4925, 4958, 4978, 4985,
1177      4952, 4974, 4997, 4998, 4969, 8207,12349,12349, 5004, 4979,
1178      5011, 4987, 8181,12349, 5023, 5009, 5011, 5036, 5017, 5019,
1179
1180      8215, 5046, 8218, 5071, 5045, 8238, 8285, 5069, 5021, 5087,
1181      5382, 5049, 5098,12349, 5104,12349, 5104, 8228,12349, 5067,
1182      5049, 8258, 5096, 5180, 8249, 8267, 5106,12349, 5108,12349,
1183      5087, 8305,12349,12349, 8313, 5256, 5291,12349,12349,12349,
1184     12349, 5088,12349, 5121,12349, 5127, 5136,12349,12349, 5119,
1185      5144,12349,12349, 5142,12349, 5177,12349, 5176,12349, 5182,
1186      5193,12349, 5192, 5193, 8275,12349, 5189, 5330, 5227, 5211,
1187      5351, 5211, 8278,12349, 5178, 5188, 5276,12349,12349, 5224,
1188      5214, 5411,12349,12349,12349, 8321, 8324, 5257, 5272, 5363,
1189      5274, 8332,12349,12349, 5294, 5295, 8342, 5417, 5294, 5426,
1190
1191      5296, 8345, 5288, 5290, 5340, 5333, 5347, 5337,12349,12349,
1192     12349,12349,12349,12349, 8348, 5366, 5362, 5377, 8351, 5325,
1193      5345,12349, 5365, 5347, 5357,12349, 5392, 8354, 8363, 8372,
1194      8375, 5404, 5412, 5425, 5416, 5426, 5450, 5468, 5466, 8383,
1195      8386, 5437, 5446, 5458, 5445, 5457, 5474, 8394, 8397, 5457,
1196      5459, 5501, 5487, 5501, 5496, 8405, 5506, 5492, 5470, 5493,
1197      5506, 5483, 5506, 8408,12349,12349, 8417, 5558, 5608, 5522,
1198      5527, 5524, 5540, 5554, 5554,12349,12349, 8425,12349,12349,
1199      5563, 5572, 5575, 5579, 5585, 5581, 8433,12349,12349, 5618,
1200      5625,12349, 5603,12349, 5604, 5636,12349, 5583, 5583, 5596,
1201
1202      5604, 5604, 5624, 5661, 5655, 5667, 5662, 5662, 5680, 5680,
1203      5678, 5692, 5700, 5698, 5704, 5720, 5718, 5732, 5732,12349,
1204     12349, 5770, 5768, 5783, 5748, 5798, 5756, 5757, 5807, 5765,
1205      5779, 5799, 5790, 5810, 5796, 5800, 5824, 5819, 5821, 5842,
1206      5832, 5829, 5860, 5850, 5847, 5871,12349,12349, 5914, 5847,
1207     12349, 5900, 5854,12349, 5906, 5880, 5880, 5891, 5891, 5914,
1208      5906, 5946, 5929, 5923, 5952, 5940, 5931, 5963, 5946, 5936,
1209      5972, 5979, 5977,12349, 5975,12349, 5971, 5976, 5976, 5982,
1210      6003, 5981,12349, 6007, 5984,12349, 6013, 6002,12349, 6027,
1211      6010,12349, 6025,12349,12349, 6009, 6023, 6016, 6035,12349,
1212
1213      6055,12349, 6056,12349, 6059,12349, 6067, 8443, 6069, 6095,
1214      6076, 6095, 6066, 6067, 6072, 6074, 8446, 6134,12349, 6138,
1215     12349, 6142, 6144, 6161, 6169, 6185, 6196,12349,12349,12349,
1216     12349,12349,12349, 6252, 6253, 6324, 6330, 6178, 6190, 6331,
1217      6454, 6175, 6239, 6306, 6350, 6194, 6369, 6308, 6366, 6177,
1218      6344, 6326, 6333, 6459, 6463, 6393, 6400, 6387, 6480, 6411,
1219      6427, 6449, 6489, 6479, 6545, 6309, 6510, 6539, 6567, 6502,
1220      6626, 6377, 6429, 6527, 6596, 6616, 6646, 6435, 6644, 6588,
1221      6652, 6647, 6700, 6598, 6680, 6818, 6826, 6674, 6786, 6660,
1222      6807, 6540, 6678, 6821, 6894, 6778, 6799, 6485, 6554, 6701,
1223
1224      6842, 6904, 6906, 6871, 6898, 6843, 6986, 6788, 6810, 6895,
1225      6958, 6931, 6987, 7066, 7068, 6999, 7069, 6913, 6969, 7046,
1226      7136, 7142, 7144, 7032, 7193, 7154, 7155, 7181, 7207, 7196,
1227      7258, 6914, 7152, 8454, 8457,12349,12349, 8477, 8486, 8495,
1228      8504, 8513, 8522, 8531, 8540, 8549, 8558, 8567, 8576, 8585,
1229      8594, 8603, 8612, 8621, 8630, 8639, 8648, 8657, 8666, 8675,
1230      8684, 8693, 8702, 8711, 8720, 8729, 8738, 8747, 8756, 8765,
1231      8774, 8783, 8792, 8801, 8810, 8819, 8828, 8837, 8846, 8855,
1232      8864, 8873, 8882, 8891, 8900, 8909, 8918, 8927, 8936, 8945,
1233      8954, 8963, 8972, 8981, 8990, 8999, 9008, 9017, 9026, 9035,
1234
1235      9044, 9051, 9058, 9065, 9072, 9079, 9086, 9093, 9100, 9107,
1236      9114, 9121, 9128, 9135, 9142, 9149, 9156, 9163, 9170, 9177,
1237      9184, 9191, 9198, 9205, 9212, 9219, 9226, 9233, 9240, 9247,
1238      9256, 9263, 9268, 9275, 9280, 9287, 9292, 9299, 9304, 9311,
1239      9316, 9323, 9328, 9335, 9340, 9347, 9352, 9359, 9364, 9371,
1240      9376, 9383, 9388, 9395, 9400, 9407, 9412, 9419, 9424, 9431,
1241      9436, 9443, 9448, 9455, 9460, 9467, 9472, 9479, 9484, 9491,
1242      9496, 9503, 9508, 9515, 9520, 9527, 9532, 9539, 9544, 9551,
1243      9556, 9563, 9568, 9575, 9580, 9587, 9592, 9599, 9604, 9613,
1244      9619, 9626, 9634, 9642, 9650, 9657, 9665, 9672, 9680, 9688,
1245
1246      9696, 9704, 9712, 9720, 9728, 9735, 9743, 9751, 9758, 9766,
1247      9773, 9781, 9788, 9796, 9803, 9811, 9818, 9826, 9833, 9841,
1248      9848, 9856, 9863, 9871, 9878, 9886, 9893, 9901, 9908, 9916,
1249      9923, 9931, 9938, 9946, 9953, 9961, 9969, 9977, 9984, 9992,
1250      9999,10007,10014,10022,10029,10037,10044,10052,10061,10067,
1251     10074,10082,10089,10097,10104,10112,10119,10127,10134,10142,
1252     10150,10157,10165,10172,10180,10188,10196,10204,10211,10219,
1253     10227,10235,10243,10251,10258,10266,10273,10281,10288,10296,
1254     10304,10312,10320,10328,10335,10343,10350,10358,10365,10373,
1255     10380,10388,10395,10403,10410,10418,10425,10433,10440,10448,
1256
1257     10455,10463,10471,10479,10486,10494,10503,10512,10519,10526,
1258     10534,10542,10550,10557,10565,10572,10580,10588,10595,10603,
1259     10610,10618,10626,10634,10641,10649,10657,10665,10672,10680,
1260     10687,10695,10703,10711,10718,10726,10733,10741,10748,10756,
1261     10763,10771,10778,10786,10794,10802,10809,10817,10824,10832,
1262     10839,10847,10854,10862,10869,10877,10884,10892,10899,10907,
1263     10916,10925,10932,10940,10948,10956,10963,10971,10979,10987,
1264     10995,11003,11011,11018,11026,11034,11041,11049,11057,11065,
1265     11072,11080,11087,11095,11103,11110,11118,11126,11134,11141,
1266     11149,11156,11164,11171,11179,11187,11194,11202,11209,11217,
1267
1268     11224,11232,11240,11248,11255,11263,11270,11278,11285,11293,
1269     11302,11311,11319,11326,11334,11342,11349,11357,11365,11373,
1270     11381,11389,11396,11404,11412,11419,11427,11435,11442,11449,
1271     11457,11465,11472,11480,11488,11495,11503,11511,11518,11526,
1272     11533,11541,11548,11556,11563,11571,11579,11587,11595,11603,
1273     11610,11618,11626,11634,11643,11652,11659,11667,11675,11682,
1274     11690,11698,11706,11714,11721,11729,11737,11744,11752,11760,
1275     11767,11774,11782,11790,11797,11805,11812,11820,11828,11836,
1276     11843,11851,11858,11865,11873,11880,11888,11895,11903,11910,
1277     11918,11927,11936,11943,11951,11959,11967,11975,11983,11991,
1278
1279     11999,12006,12014,12021,12029,12037,12045,12053,12061,12069,
1280     12077,12085,12092,12100,12108,12116,12124,12131,12138,12145,
1281     12153,12160,12168,12175,12183,12192,12201,12208,12216,12224,
1282     12232,12240,12247,12254,12262,12269,12277,12285,12294,12303,
1283     12312,12321,12330,12339
1284     } ;
1285
1286 static yyconst flex_int16_t yy_def[3945] =
1287     {   0,
1288      3438, 3438, 3439, 3439, 3439, 3439, 3440, 3440, 3441, 3441,
1289      3442, 3442, 3443, 3443, 3443, 3443, 3444, 3444, 3445, 3445,
1290      3446, 3446, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446,
1291      3438, 3438, 3446, 3446, 3438, 3438, 3446, 3446, 3446, 3446,
1292      3447, 3447, 3448, 3448, 3438, 3438, 3448, 3448, 3448, 3448,
1293      3449, 3449, 3450, 3450, 3451, 3451, 3452, 3452, 3453, 3453,
1294      3454, 3454, 3438, 3438, 3454, 3454, 3454, 3454, 3455, 3455,
1295      3456, 3456, 3438, 3438, 3456, 3456, 3456, 3456, 3457, 3457,
1296      3458, 3458, 3437,   83, 3459, 3459, 3438, 3438, 3459, 3459,
1297      3459, 3459, 3460, 3460, 3461, 3461, 3438, 3438, 3461, 3461,
1298
1299      3461, 3461, 3462, 3462, 3463, 3463, 3464, 3464, 3465, 3465,
1300      3438, 3438, 3465, 3465, 3465, 3465, 3466, 3466, 3467, 3467,
1301      3468, 3468, 3469, 3469, 3438, 3438, 3469, 3469, 3469, 3469,
1302      3470, 3470, 3471, 3471, 3438, 3438, 3471, 3471, 3471, 3471,
1303      3472, 3472, 3473, 3473, 3474, 3474, 3475, 3475, 3476, 3476,
1304      3477, 3477, 3478, 3478, 3479, 3479, 3480, 3480, 3481, 3481,
1305      3438, 3438, 3482, 3482, 3483, 3483, 3483, 3483, 3438, 3438,
1306      3483, 3483, 3483, 3483, 3438, 3438, 3483, 3483, 3438, 3438,
1307      3483, 3483, 3483, 3483, 3484, 3484, 3485, 3485, 3438, 3438,
1308      3485, 3485, 3485, 3485, 3486, 3486, 3487, 3487, 3488, 3488,
1309
1310      3489, 3489, 3490, 3490, 3491, 3491, 3438, 3438, 3491, 3491,
1311      3491, 3491, 3492, 3492, 3493, 3493, 3494, 3494, 3495, 3495,
1312      3438, 3438, 3495, 3495, 3495, 3495, 3496, 3496, 3497, 3497,
1313      3438, 3438, 3497, 3497, 3497, 3497, 3498, 3498, 3499, 3499,
1314      3500, 3500, 3501, 3501, 3438, 3438, 3437, 3437, 3437, 3437,
1315      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1316      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1317      3437, 3437, 3437, 3437, 3437, 3437, 3502, 3437, 3437, 3502,
1318      3502, 3437, 3437, 3437,  284, 3437,  286,  284,  287,  286,
1319      3437, 3437, 3437, 3503, 3437, 3437, 3503, 3503, 3503, 3437,
1320
1321      3437,  286,  286,  286, 3437, 3437, 3437, 3504, 3437, 3437,
1322      3504, 3437, 3437, 3437, 3437, 3437, 3437, 3505, 3437, 3437,
1323      3505, 3505, 3505, 3437, 3437, 3437, 3437, 3437, 3437, 3506,
1324      3437, 3437, 3506, 3506, 3506, 3437, 3437,  286,  286, 3437,
1325      3437, 3437, 3507, 3437, 3437, 3507, 3507, 3437, 3437,  286,
1326       286, 3437, 3437, 3437, 3508, 3437, 3437, 3508, 3508, 3508,
1327      3508, 3508, 3508, 3437, 3437, 3437, 3437, 3437, 3437, 3509,
1328      3437, 3437, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509,
1329      3509, 3437, 3437,  286,  286, 3437, 3437, 3437, 3510, 3437,
1330      3437, 3510, 3437, 3437,  286,  286, 3437, 3437, 3437, 3511,
1331
1332      3437, 3437, 3511, 3437, 3437, 3437, 3437, 3437, 3437, 3512,
1333      3437, 3437, 3512, 3512, 3512, 3512, 3512, 3437, 3437,  286,
1334       286,  286, 3437, 3437, 3437, 3513, 3437, 3437, 3513, 3513,
1335      3513, 3437, 3437, 3437, 3437, 3437, 3437, 3514, 3437, 3437,
1336      3514, 3437, 3437,  286,  444,  286, 3437, 3437, 3437, 3515,
1337      3437, 3437, 3515, 3515, 3515, 3515, 3437, 3437,  286,  286,
1338      3437, 3437, 3437, 3516, 3437, 3437, 3516, 3516, 3437, 3437,
1339      3437, 3437, 3437, 3437, 3517, 3437, 3437, 3517, 3517, 3437,
1340      3437, 3437, 3437, 3437, 3437, 3518, 3437, 3437, 3518, 3518,
1341      3437, 3437, 3437, 3437, 3437, 3437, 3519, 3437, 3437, 3519,
1342
1343      3519, 3437, 3437, 3437, 3437, 3437, 3437, 3520, 3437, 3437,
1344      3520, 3520, 3520, 3520, 3520, 3520, 3437, 3437, 3437, 3437,
1345      3437, 3437, 3437, 3521, 3437, 3437, 3521, 3437, 3437,  444,
1346       444,  286,  286,  286,  286, 3437, 3437, 3437, 3522, 3437,
1347      3437, 3522, 3522, 3522, 3522, 3522, 3437, 3437,  286,  286,
1348       286, 3437, 3437, 3437, 3523, 3437, 3437, 3523, 3523, 3437,
1349      3437, 3437, 3437, 3437, 3437, 3524, 3437, 3437, 3524, 3524,
1350      3524, 3524, 3524, 3437, 3437, 3437, 3437, 3437, 3437, 3525,
1351      3437, 3437, 3525, 3525, 3437, 3437,  286,  286, 3437, 3437,
1352      3437, 3526, 3437, 3437, 3526, 3526, 3437, 3437, 3437, 3437,
1353
1354      3437, 3437, 3527, 3437, 3437, 3527, 3527, 3527, 3527, 3437,
1355      3437,  286,  286, 3437, 3437, 3437, 3528, 3437, 3437, 3528,
1356      3528, 3528, 3528, 3437, 3437,  286,  286,  286, 3437, 3437,
1357      3437, 3529, 3437, 3437, 3529, 3529, 3529, 3437, 3437, 3437,
1358      3437, 3437, 3530, 3437, 3437, 3530, 3530, 3530, 3437, 3437,
1359      3437, 3437, 3531, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1360      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3532, 3532, 3532,
1361      3533, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1362      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1363      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1364
1365      3437, 3437, 3437, 3534, 3534, 3534, 3534, 3534, 3535, 3437,
1366      3437, 3536, 3536, 3537, 3437, 3538, 3538, 3538, 3538, 3539,
1367      3437, 3540, 3540, 3540, 3540, 3541, 3437, 3542, 3542, 3542,
1368      3543, 3437, 3544, 3544, 3544, 3544, 3544, 3544, 3544, 3544,
1369      3545, 3437, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546,
1370      3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3547,
1371      3437, 3548, 3548, 3549, 3437, 3550, 3550, 3551, 3437, 3552,
1372      3552, 3552, 3552, 3552, 3552, 3552, 3553, 3437, 3437, 3554,
1373      3554, 3554, 3554, 3555, 3437, 3556, 3556, 3557, 3437, 3437,
1374      3558, 3558, 3558, 3558, 3558, 3558, 3559, 3437, 3560, 3560,
1375
1376      3560, 3561, 3437, 3562, 3562, 3562, 3563, 3437, 3564, 3564,
1377      3564, 3565, 3437, 3566, 3566, 3566, 3567, 3437, 3568, 3568,
1378      3568, 3568, 3568, 3568, 3568, 3568, 3569, 3437, 3437, 3570,
1379      3570, 3571, 3437, 3437, 3437, 3437, 3437, 3437, 3572, 3572,
1380      3572, 3572, 3572, 3572, 3573, 3437, 3437, 3574, 3574, 3574,
1381      3575, 3437, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576,
1382      3576, 3577, 3437, 3578, 3578, 3578, 3578, 3579, 3437, 3580,
1383      3580, 3580, 3581, 3437, 3582, 3582, 3582, 3582, 3582, 3583,
1384      3437, 3584, 3584, 3584, 3584, 3584, 3585, 3437, 3437, 3586,
1385      3586, 3586, 3586, 3437, 3587, 3437, 3437, 3588, 3588, 3588,
1386
1387      3588, 3589, 3590, 3437, 3590, 3437, 3437, 3437, 3591, 3437,
1388      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3592, 3593, 3593,
1389      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1390      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1391      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1392      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3594, 3594, 3594,
1393      3594, 3595, 3595, 3437, 3596, 3597, 3597, 3598, 3437, 3437,
1394      3598, 3599, 3599, 3600, 3600, 3600, 3601, 3601, 3602, 3602,
1395      3603, 3603, 3437, 3437, 3437, 3437, 3604, 3604, 3604, 3604,
1396      3604, 3605, 3605, 3606, 3606, 3437, 3437, 3606, 3437, 3437,
1397
1398      3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606,
1399      3606, 3607, 3607, 3437, 3437, 3608, 3608, 3609, 3610, 3610,
1400      3611, 3611, 3611, 3437, 3437, 3611, 3611, 3611, 3612, 3612,
1401      3437, 3437, 3613, 3437, 3437, 3437, 3437, 3614, 3614, 3615,
1402      3616, 3616, 3437, 3617, 3437, 3437, 3617, 3617, 3617, 3618,
1403      3618, 3619, 3437, 3437, 3620, 3620, 3437, 3437, 3621, 3622,
1404      3622, 3623, 3623, 3624, 3624, 3625, 3625, 3626, 3626, 3627,
1405      3627, 3627, 3437, 3437, 3627, 3627, 3627, 3628, 3628, 3437,
1406      3629, 3630, 3630, 3437, 3437, 3437, 3631, 3631, 3631, 3631,
1407      3631, 3632, 3632, 3437, 3437, 3437, 3633, 3634, 3634, 3635,
1408
1409      3437, 3437, 3635, 3635, 3635, 3635, 3635, 3635, 3636, 3636,
1410      3637, 3637, 3637, 3638, 3638, 3639, 3437, 3437, 3640, 3640,
1411      3641, 3641, 3437, 3437, 3641, 3642, 3642, 3643, 3437, 3437,
1412      3643, 3643, 3644, 3644, 3437, 3645, 3437, 3437, 3645, 3437,
1413      3646, 3646, 3437, 3647, 3647, 3647, 3648, 3648, 3649, 3437,
1414      3437, 3649, 3437, 3437, 3650, 3437, 3437, 3437, 3437, 3437,
1415      3437, 3437, 3437, 3651, 3437, 3652, 3437, 3652, 3437, 3437,
1416      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1417      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1418      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1419
1420      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3653,
1421      3653, 3437, 3437, 3653, 3437, 3654, 3437, 3654, 3437, 3655,
1422      3437, 3656, 3437, 3656, 3657, 3437, 3437, 3437, 3657, 3437,
1423      3658, 3437, 3658, 3437, 3437, 3659, 3659, 3437, 3437, 3437,
1424      3660, 3437, 3660, 3437, 3437, 3437, 3437, 3437, 3661, 3437,
1425      3661, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3662,
1426      3662, 3662, 3662, 3437, 3663, 3437, 3663, 3664, 3664, 3664,
1427      3664, 3437, 3437, 3437, 3664, 3437, 3437, 3437, 3437, 3437,
1428      3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664,
1429      3437, 3665, 3437, 3665, 3437, 3437, 3437, 3437, 3666, 3437,
1430
1431      3666, 3667, 3437, 3668, 3437, 3668, 3669, 3669, 3669, 3437,
1432      3437, 3437, 3669, 3669, 3669, 3437, 3670, 3437, 3670, 3437,
1433      3437, 3671, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3672,
1434      3437, 3672, 3673, 3437, 3674, 3437, 3674, 3675, 3437, 3437,
1435      3437, 3675, 3675, 3675, 3437, 3676, 3437, 3676, 3677, 3437,
1436      3437, 3437, 3437, 3678, 3437, 3678, 3437, 3437, 3437, 3679,
1437      3437, 3680, 3437, 3680, 3681, 3681, 3437, 3682, 3437, 3682,
1438      3683, 3683, 3437, 3684, 3437, 3684, 3685, 3685, 3685, 3685,
1439      3437, 3437, 3437, 3437, 3437, 3685, 3685, 3437, 3686, 3437,
1440      3686, 3437, 3687, 3437, 3688, 3437, 3688, 3437, 3437, 3437,
1441
1442      3689, 3689, 3689, 3689, 3689, 3437, 3690, 3437, 3690, 3437,
1443      3437, 3437, 3437, 3691, 3437, 3692, 3437, 3692, 3693, 3437,
1444      3437, 3437, 3437, 3437, 3693, 3437, 3437, 3693, 3693, 3693,
1445      3437, 3694, 3437, 3694, 3437, 3437, 3437, 3437, 3695, 3437,
1446      3696, 3437, 3696, 3697, 3437, 3437, 3437, 3437, 3698, 3437,
1447      3698, 3699, 3699, 3437, 3437, 3437, 3699, 3437, 3700, 3437,
1448      3700, 3701, 3437, 3437, 3437, 3701, 3701, 3437, 3702, 3437,
1449      3702, 3437, 3703, 3437, 3437, 3437, 3703, 3437, 3437, 3704,
1450      3437, 3704, 3705, 3705, 3705, 3437, 3706, 3437, 3706, 3707,
1451      3708, 3437, 3437, 3437, 3437, 3709, 3437, 3437, 3437, 3437,
1452
1453      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1454      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1455      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1456      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3710,
1457      3710, 3437, 3437, 3437, 3710, 3711, 3437, 3712, 3713, 3714,
1458      3714, 3715, 3437, 3437, 3437, 3716, 3716, 3437, 3437, 3437,
1459      3717, 3437, 3437, 3437, 3437, 3437, 3437, 3718, 3437, 3437,
1460      3437, 3719, 3719, 3719, 3719, 3720, 3721, 3721, 3721, 3721,
1461      3437, 3437, 3437, 3437, 3437, 3721, 3721, 3721, 3721, 3721,
1462      3721, 3721, 3721, 3721, 3721, 3721, 3722, 3723, 3437, 3437,
1463
1464      3724, 3725, 3725, 3437, 3437, 3725, 3725, 3725, 3726, 3437,
1465      3437, 3437, 3437, 3727, 3437, 3437, 3728, 3729, 3729, 3729,
1466      3729, 3730, 3731, 3732, 3733, 3734, 3437, 3437, 3735, 3736,
1467      3437, 3437, 3737, 3738, 3739, 3739, 3739, 3739, 3437, 3437,
1468      3437, 3739, 3739, 3740, 3437, 3741, 3742, 3437, 3437, 3437,
1469      3743, 3437, 3437, 3743, 3743, 3743, 3744, 3437, 3745, 3746,
1470      3747, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3747,
1471      3437, 3437, 3747, 3748, 3437, 3437, 3437, 3437, 3437, 3437,
1472      3749, 3750, 3751, 3752, 3753, 3753, 3753, 3754, 3755, 3755,
1473      3437, 3437, 3756, 3437, 3437, 3437, 3757, 3437, 3758, 3759,
1474
1475      3437, 3437, 3759, 3760, 3761, 3762, 3762, 3437, 3762, 3437,
1476      3437, 3763, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1477      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1478      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1479      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1480      3437, 3764, 3764, 3764, 3765, 3437, 3437, 3437, 3766, 3767,
1481      3767, 3768, 3769, 3769, 3770, 3771, 3772, 3772, 3437, 3437,
1482      3772, 3773, 3774, 3437, 3437, 3774, 3774, 3437, 3437, 3437,
1483      3774, 3774, 3774, 3774, 3774, 3774, 3437, 3437, 3774, 3774,
1484      3774, 3774, 3775, 3776, 3437, 3437, 3437, 3437, 3437, 3777,
1485
1486      3777, 3437, 3437, 3437, 3777, 3437, 3437, 3777, 3778, 3437,
1487      3437, 3437, 3437, 3437, 3779, 3437, 3437, 3437, 3780, 3781,
1488      3781, 3781, 3781, 3782, 3783, 3784, 3437, 3437, 3785, 3437,
1489      3437, 3437, 3786, 3787, 3437, 3437, 3437, 3788, 3789, 3790,
1490      3437, 3437, 3790, 3790, 3437, 3437, 3790, 3791, 3437, 3792,
1491      3793, 3437, 3437, 3437, 3794, 3437, 3437, 3437, 3794, 3794,
1492      3794, 3795, 3437, 3437, 3437, 3796, 3797, 3437, 3437, 3437,
1493      3797, 3437, 3437, 3437, 3797, 3798, 3799, 3800, 3801, 3802,
1494      3803, 3803, 3803, 3804, 3805, 3437, 3437, 3437, 3437, 3437,
1495      3806, 3437, 3437, 3437, 3437, 3807, 3437, 3808, 3809, 3437,
1496
1497      3437, 3437, 3437, 3437, 3810, 3811, 3812, 3812, 3437, 3813,
1498      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1499      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1500      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1501      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3814, 3815, 3437,
1502      3437, 3437, 3437, 3816, 3817, 3817, 3818, 3437, 3437, 3437,
1503      3437, 3819, 3820, 3437, 3437, 3821, 3437, 3437, 3437, 3437,
1504      3437, 3822, 3823, 3437, 3437, 3437, 3437, 3437, 3823, 3823,
1505      3823, 3437, 3437, 3823, 3823, 3823, 3437, 3437, 3437, 3823,
1506      3437, 3437, 3823, 3823, 3824, 3825, 3826, 3826, 3437, 3437,
1507
1508      3437, 3437, 3437, 3826, 3437, 3437, 3437, 3437, 3827, 3828,
1509      3829, 3829, 3829, 3829, 3437, 3437, 3830, 3831, 3437, 3437,
1510      3437, 3832, 3833, 3834, 3437, 3437, 3835, 3836, 3437, 3437,
1511      3437, 3437, 3437, 3836, 3437, 3437, 3437, 3836, 3437, 3437,
1512      3437, 3837, 3838, 3437, 3437, 3437, 3839, 3839, 3839, 3839,
1513      3840, 3437, 3437, 3437, 3437, 3437, 3437, 3841, 3841, 3841,
1514      3842, 3843, 3844, 3845, 3846, 3437, 3437, 3847, 3437, 3437,
1515      3848, 3849, 3437, 3437, 3437, 3850, 3437, 3851, 3437, 3852,
1516      3853, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1517      3437, 3437, 3854, 3855, 3856, 3856, 3437, 3437, 3437, 3437,
1518
1519      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1520      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1521      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1522      3437, 3437, 3437, 3437, 3857, 3858, 3437, 3859, 3860, 3437,
1523      3437, 3861, 3437, 3437, 3437, 3437, 3437, 3437, 3862, 3863,
1524      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3864, 3865,
1525      3437, 3437, 3437, 3865, 3865, 3865, 3437, 3437, 3437, 3437,
1526      3437, 3865, 3865, 3865, 3437, 3437, 3437, 3865, 3865, 3866,
1527      3867, 3868, 3868, 3437, 3437, 3437, 3868, 3437, 3869, 3870,
1528      3871, 3437, 3437, 3871, 3871, 3871, 3872, 3873, 3874, 3875,
1529
1530      3437, 3437, 3437, 3437, 3437, 3876, 3877, 3437, 3437, 3437,
1531      3877, 3877, 3437, 3437, 3437, 3878, 3437, 3437, 3437, 3879,
1532      3879, 3879, 3879, 3880, 3437, 3881, 3437, 3437, 3881, 3882,
1533      3883, 3437, 3437, 3884, 3885, 3437, 3437, 3437, 3437, 3437,
1534      3886, 3437, 3437, 3437, 3887, 3437, 3437, 3888, 3889, 3437,
1535      3890, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1536      3437, 3437, 3437, 3437, 3437, 3437, 3891, 3892, 3893, 3893,
1537      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1538      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1539      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1540
1541      3437, 3894, 3895, 3437, 3896, 3897, 3437, 3437, 3437, 3898,
1542      3899, 3900, 3437, 3437, 3437, 3901, 3902, 3902, 3902, 3902,
1543      3437, 3437, 3437, 3902, 3902, 3902, 3902, 3437, 3437, 3903,
1544      3437, 3437, 3904, 3904, 3904, 3437, 3905, 3906, 3907, 3437,
1545      3437, 3437, 3907, 3907, 3907, 3908, 3909, 3910, 3911, 3912,
1546      3913, 3913, 3913, 3437, 3437, 3437, 3437, 3914, 3437, 3437,
1547      3437, 3915, 3915, 3915, 3916, 3437, 3917, 3437, 3437, 3437,
1548      3917, 3437, 3437, 3918, 3919, 3437, 3437, 3437, 3437, 3437,
1549      3920, 3921, 3437, 3437, 3437, 3922, 3923, 3437, 3924, 3437,
1550      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1551
1552      3437, 3437, 3437, 3925, 3926, 3927, 3927, 3437, 3437, 3437,
1553      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1554      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1555      3437, 3437, 3437, 3437, 3928, 3437, 3437, 3437, 3929, 3437,
1556      3437, 3930, 3931, 3932, 3437, 3437, 3933, 3933, 3933, 3933,
1557      3933, 3437, 3437, 3933, 3933, 3933, 3437, 3437, 3437, 3437,
1558      3437, 3934, 3934, 3934, 3437, 3935, 3437, 3437, 3437, 3437,
1559      3936, 3936, 3936, 3936, 3437, 3437, 3937, 3938, 3437, 3437,
1560      3912, 3913, 3913, 3913, 3437, 3914, 3437, 3437, 3437, 3437,
1561      3437, 3915, 3915, 3437, 3437, 3437, 3437, 3437, 3917, 3918,
1562
1563      3919, 3920, 3437, 3437, 3922, 3923, 3437, 3924, 3437, 3437,
1564      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3925, 3926,
1565      3927, 3927, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1566      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1567      3437, 3437, 3437, 3437, 3437, 3928, 3437, 3437, 3437, 3437,
1568      3437, 3437, 3437, 3931, 3932, 3933, 3933, 3933, 3933, 3933,
1569      3437, 3437, 3437, 3933, 3437, 3437, 3933, 3437, 3437, 3437,
1570      3437, 3934, 3934, 3437, 3437, 3935, 3437, 3437, 3437, 3936,
1571      3936, 3936, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3938,
1572      3437, 3437, 3437, 3437, 3437, 3913, 3913, 3437, 3437, 3437,
1573
1574      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1575      3437, 3917, 3918, 3919, 3920, 3922, 3923, 3437, 3924, 3437,
1576      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3925,
1577      3926, 3927, 3927, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1578      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1579      3437, 3437, 3437, 3437, 3437, 3437, 3931, 3932, 3933, 3933,
1580      3933, 3437, 3437, 3933, 3933, 3437, 3437, 3437, 3933, 3437,
1581      3437, 3437, 3437, 3437, 3437, 3934, 3437, 3437, 3437, 3437,
1582      3437, 3437, 3437, 3936, 3936, 3936, 3437, 3437, 3437, 3437,
1583      3437, 3437, 3437, 3437, 3437, 3938, 3913, 3437, 3437, 3437,
1584
1585      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1586      3437, 3437, 3437, 3437, 3917, 3437, 3437, 3437, 3437, 3920,
1587      3922, 3923, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1588      3437, 3437, 3437, 3437, 3437, 3925, 3926, 3927, 3927, 3437,
1589      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1590      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1591      3437, 3437, 3931, 3932, 3933, 3933, 3437, 3437, 3437, 3437,
1592      3437, 3437, 3437, 3933, 3933, 3437, 3437, 3437, 3437, 3437,
1593      3437, 3934, 3437, 3437, 3437, 3936, 3437, 3437, 3936, 3437,
1594      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3913, 3437, 3437,
1595
1596      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1597      3437, 3437, 3437, 3917, 3437, 3437, 3437, 3437, 3437, 3437,
1598      3437, 3437, 3437, 3437, 3923, 3437, 3437, 3437, 3437, 3437,
1599      3437, 3437, 3437, 3437, 3437, 3437, 3925, 3926, 3927, 3927,
1600      3927, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1601      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1602      3437, 3437, 3437, 3931, 3437, 3437, 3933, 3933, 3437, 3437,
1603      3437, 3437, 3437, 3437, 3933, 3933, 3437, 3437, 3437, 3437,
1604      3437, 3437, 3934, 3936, 3437, 3437, 3437, 3936, 3437, 3437,
1605      3437, 3437, 3437, 3437, 3913, 3437, 3437, 3437, 3437, 3437,
1606
1607      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1608      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3923,
1609      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3925, 3926,
1610      3927, 3927, 3927, 3939, 3940, 3437, 3437, 3437, 3437, 3437,
1611      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1612      3437, 3931, 3933, 3933, 3437, 3437, 3933, 3437, 3437, 3437,
1613      3437, 3437, 3437, 3934, 3437, 3437, 3437, 3437, 3437, 3437,
1614      3437, 3437, 3913, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1615      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1616      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1617
1618      3925, 3926, 3927, 3941, 3942, 3939, 3940, 3437, 3437, 3437,
1619      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3933,
1620      3933, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1621      3934, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1622      3437, 3913, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1623      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1624      3437, 3437, 3437, 3437, 3437, 3437, 3926, 3941, 3927, 3943,
1625      3942, 3944, 3927, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1626      3437, 3437, 3437, 3437, 3437, 3933, 3933, 3437, 3437, 3437,
1627      3437, 3437, 3437, 3437, 3437, 3437, 3934, 3437, 3437, 3437,
1628
1629      3437, 3913, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1630      3437, 3437, 3437, 3437, 3926, 3943, 3437, 3944, 3927, 3437,
1631      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1632      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1633      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1634      3437, 3437, 3437, 3437, 3437, 3926, 3437, 3437, 3437, 3437,
1635      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1636      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1637      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1638      3437, 3437, 3437, 3437, 3437, 3926, 3437, 3437, 3437, 3437,
1639
1640      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1641      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1642      3437, 3437, 3437, 3926, 3437, 3437, 3437, 3437, 3437, 3437,
1643      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1644      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3926, 3437,
1645      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1646      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1647      3437, 3926, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1648      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1649      3437, 3437, 3926, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1650
1651      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3926, 3437, 3437,
1652      3437, 3437, 3437, 3437, 3437, 3437, 3926, 3437, 3437, 3437,
1653      3437, 3437, 3437, 3437, 3437, 3926, 3926, 3437, 3437, 3437,
1654      3437, 3437, 3437, 3926, 3926, 3926, 3926, 3926, 3926, 3926,
1655      3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926,
1656      3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926,
1657      3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926,
1658      3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926,
1659      3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926,
1660      3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926,
1661
1662      3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926,
1663      3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926,
1664      3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926,
1665      3926, 3926, 3926, 3926, 3926, 3437,    0, 3437, 3437, 3437,
1666      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1667      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1668      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1669      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1670      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1671      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1672
1673      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1674      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1675      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1676      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1677      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1678      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1679      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1680      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1681      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1682      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1683
1684      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1685      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1686      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1687      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1688      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1689      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1690      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1691      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1692      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1693      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1694
1695      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1696      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1697      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1698      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1699      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1700      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1701      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1702      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1703      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1704      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1705
1706      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1707      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1708      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1709      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1710      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1711      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1712      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1713      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1714      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1715      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1716
1717      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1718      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1719      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1720      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
1721      3437, 3437, 3437, 3437
1722     } ;
1723
1724 static yyconst flex_int16_t yy_nxt[12424] =
1725     {   0,
1726      3437,  250,  251,  250,  250,  251,  250,  250,  251,  250,
1727       250,  251,  250,  255,  251,  255,  261,  252,  258,  261,
1728       252,  258,  845,  253, 3437,  259,  253, 3437,  259,  256,
1729       255,  251,  255,  653,  262,  264,  265,  262,  264,  265,
1730       266,  267,  671,  266,  267,  653,  256,  271,  272,  654,
1731       268,  264,  265,  268,  269,  656,  266,  264,  265,  846,
1732       269,  655,  266,  271,  272,  739,  268,  283,  251,  283,
1733       740,  655,  268,  283,  251,  283,  283,  251,  283,  283,
1734       251,  283, 1378,  284,  251,  251,  251,  795, 1379,  284,
1735       910,  273,  285,  911,  699,  285,  652,  652,  652,  796,
1736
1737       286,  652,  652,  652,  652,  652,  652,  273,  274,  275,
1738       251,  275,  274,  274,  274,  274,  274,  274,  274,  276,
1739       274,  274,  274,  860,  274,  278,  274,  279,  274,  251,
1740       251,  251,  283,  251,  283,  283,  251,  283,  861,  283,
1741       251,  283,  283,  251,  283,  286,  656,  656,  284,  707,
1742       745,  284,  709,  274,  274,  287,  708, 1595,  287,  652,
1743       652,  652,  655,  655,  280,  652,  652,  652,  710, 1596,
1744       661,  746,  699,  281,  274,  275,  251,  275,  274,  274,
1745       274,  274,  274,  274,  274,  276,  274,  274,  274, 1725,
1746       274,  278,  274,  279,  274,  251,  251,  251,  251,  251,
1747
1748       251,  283,  251,  283,  699,  283,  251,  283,  251,  251,
1749       251,  288,  662,  656,  288, 1726,  923,  285,  663,  274,
1750       274,  285,  656,  664,  289,  251,  251,  251,  665,  655,
1751       280,  283,  251,  283,  283,  251,  283, 1727,  655,  281,
1752       924,  289,  283,  251,  283, 1729,  656,  287,  904,  656,
1753       287,  283,  251,  283,  652,  652,  652,  726,  290,  652,
1754       652,  652,  655,  905,  709,  655, 1730,  290,  291,  292,
1755       251,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1756       291,  291,  291,  777,  291,  295,  291,  296,  291,  301,
1757       251,  301,  301,  251,  301,  251,  251,  251,  731,  251,
1758
1759       251,  251,  301,  251,  301,  302,  753,  937,  302,  699,
1760      1732,  303,  710,  291,  291,  303,  699,  656,  302,  297,
1761       754,  938,  298,  652,  652,  652,  652,  652,  652,  652,
1762       652,  652,  778,  655,  299,  291,  292,  251,  292,  291,
1763       291,  291,  291,  291,  291,  291,  293,  291,  291,  291,
1764       699,  291,  295,  291,  296,  291,  301,  251,  301,  301,
1765       251,  301,  301,  251,  301,  749,  313,  251,  313,  313,
1766       251,  313,  302,  750,  656,  304,  656, 1733,  304,  751,
1767       291,  291,  314,  714,  656,  314,  297, 1734,  760,  298,
1768       655,  720,  655,  652,  652,  652,  652,  652,  652,  764,
1769
1770       655,  299,  305,  306,  251,  306,  305,  305,  305,  305,
1771       305,  305,  305,  307,  305,  305,  305,  943,  305,  309,
1772       305,  310,  305,  325,  251,  325,  325,  251,  325,  337,
1773       251,  337,  925,  337,  251,  337,  251,  251,  251,  326,
1774       699,  944,  326,  926, 1735,  338,  927,  305,  305,  338,
1775       656,  699,  303,  251,  251,  251,  652,  652,  652,  652,
1776       652,  652,  726,  652,  652,  652,  655, 1022,  731,  303,
1777      1023,  311,  305,  306,  251,  306,  305,  305,  305,  305,
1778       305,  305,  305,  307,  305,  305,  305,  943,  305,  309,
1779       305,  310,  305,  337,  251,  337,  337,  251,  337,  337,
1780
1781       251,  337,  904,  337,  251,  337,  349,  251,  349,  338,
1782       710,  924,  338, 1737,  699,  339,  710,  305,  305,  339,
1783       699, 1738,  350,  349,  251,  349,  652,  652,  652,  652,
1784       652,  652,  652,  652,  652,  652,  652,  652, 1140,  350,
1785      1181,  311,  315,  316,  251,  316,  315,  315,  315,  315,
1786       315,  315,  315,  317,  315,  315,  315, 1182,  315,  319,
1787       315,  320,  315,  251,  251,  251,  251,  251,  251,  349,
1788       251,  349,  937,  349,  251,  349,  349,  251,  349,  303,
1789       656,  656,  303,  656,  656,  350,  952,  315,  315,  350,
1790       741,  321,  351,  652,  652,  652,  655,  655,  322,  655,
1791
1792       655,  323,  315,  316,  251,  316,  315,  315,  315,  315,
1793       315,  315,  315,  317,  315,  315,  315, 1739,  315,  319,
1794       315,  320,  315,  349,  251,  349,  365,  251,  365,  365,
1795       251,  365,  937,  383,  251,  383,  383,  251,  383,  351,
1796       775,  656,  366,  656,  776,  366,  956,  315,  315,  384,
1797       768,  321,  384,  652,  652,  652,  825,  655,  322,  655,
1798       826,  323,  327,  328,  251,  328,  327,  327,  327,  327,
1799       327,  327,  327,  329,  327,  327,  327,  923,  327,  331,
1800       327,  332,  327,  251,  251,  251,  251,  251,  251,  383,
1801       251,  383,  777,  383,  251,  383,  383,  251,  383,  286,
1802
1803       932,  944,  286, 1740,  933,  384,  755,  327,  327,  384,
1804       656,  656,  385,  333,  756,  788,  334,  784,  757,  758,
1805       652,  652,  652,  652,  652,  652,  655,  655,  335,  327,
1806       328,  251,  328,  327,  327,  327,  327,  327,  327,  327,
1807       329,  327,  327,  327,  699,  327,  331,  327,  332,  327,
1808       383,  251,  383,  394,  251,  394,  394,  251,  394,  797,
1809       251,  251,  251,  251,  251,  251,  385,  699, 1515,  395,
1810      1741, 1744,  395, 1747,  327,  327,  286,  656,  656,  286,
1811       333, 1516,  832,  334,  652,  652,  652,  652,  652,  652,
1812       652,  652,  652,  655,  655,  335,  340,  341,  251,  341,
1813
1814       340,  340,  340,  340,  340,  340,  340,  342,  340,  340,
1815       340,  699,  340,  344,  340,  345,  340,  394,  251,  394,
1816       394,  251,  394,  394,  251,  394,  832,  394,  251,  394,
1817       405,  251,  405,  395,  834, 1748,  395, 1749, 1750,  396,
1818      1751,  340,  340,  396,  656,  656,  406,  346,  652,  652,
1819       652,  652,  652,  652,  652,  652,  652,  652,  652,  652,
1820       655,  655,  347,  340,  341,  251,  341,  340,  340,  340,
1821       340,  340,  340,  340,  342,  340,  340,  340,  837,  340,
1822       344,  340,  345,  340,  405,  251,  405,  419,  251,  419,
1823       419,  251,  419,  832,  251,  251,  251,  251,  251,  251,
1824
1825       406, 1031, 1752,  420, 1753, 1032,  420, 1754,  340,  340,
1826       421,  656,  656,  421,  346,  652,  652,  652,  652,  652,
1827       652,  652,  652,  652,  652,  652,  652,  655,  655,  347,
1828       352,  353,  251,  353,  352,  352,  352,  352,  352,  352,
1829       352,  354,  352,  352,  352,  699,  352,  356,  352,  357,
1830       352,  419,  251,  419,  419,  251,  419,  419,  251,  419,
1831       845,  419,  251,  419,  433,  251,  433,  420,  656,  656,
1832       420,  656,  656,  422, 1150,  352,  352,  422,  802,  358,
1833       434,  652,  652,  652,  655,  655,  359,  655,  655,  360,
1834       652,  652,  652,  361, 1705,  362,  363,  352,  353,  251,
1835
1836       353,  352,  352,  352,  352,  352,  352,  352,  354,  352,
1837       352,  352,  699,  352,  356,  352,  357,  352,  433,  251,
1838       433,  443,  251,  443,  443,  251,  443,  828,  251,  251,
1839       251,  251,  251,  251,  434,  656,  656,  444,  656,  656,
1840       444, 1760,  352,  352,  445,  807,  358,  445,  652,  652,
1841       652,  655,  655,  359,  655,  655,  360,  652,  652,  652,
1842       361, 1761,  362,  363,  367,  368,  251,  368,  367,  367,
1843       367,  367,  367,  367,  367,  369,  367,  367,  367,  370,
1844       367,  371,  367,  372,  367,  370,  370,  370,  370,  370,
1845       370,  370,  370,  370,  370,  370,  370,  370,  370,  370,
1846
1847       370,  370,  370,  370,  370,  370,  370,  370,  370,  367,
1848       367,  370,  373,  374,  375,  370,  370,  370,  370,  370,
1849       376,  370,  370,  377,  370,  370,  370,  378,  370,  379,
1850       380,  381,  370,  370,  370,  370,  370,  370,  386,  387,
1851       251,  387,  386,  386,  386,  386,  386,  386,  386,  388,
1852       386,  386,  386, 1763,  386,  390,  386,  391,  386,  443,
1853       251,  443,  443,  251,  443,  443,  251,  443, 1764,  443,
1854       251,  443,  458,  251,  458,  444,  656,  656,  444,  866,
1855      1767,  446,  868,  386,  386,  446,  867,  880,  459,  652,
1856       652,  652,  655,  655,  392,  386,  387,  251,  387,  386,
1857
1858       386,  386,  386,  386,  386,  386,  388,  386,  386,  386,
1859      1768,  386,  390,  386,  391,  386,  458,  251,  458,  251,
1860       251,  251,  251,  251,  251, 1771,  458,  251,  458,  458,
1861       251,  458,  459,  887,  699,  286,  934, 1773,  286,  699,
1862       386,  386,  459,  935,  887,  459,  652,  652,  652,  936,
1863      1181,  392,  397,  398,  251,  398,  397,  397,  397,  397,
1864       397,  397,  397,  399,  397,  397,  397, 1320,  397,  401,
1865       397,  402,  397,  458,  251,  458,  458,  251,  458,  470,
1866       251,  470,  888,  470,  251,  470,  481,  251,  481,  460,
1867      1776, 1777,  460,  656,  656,  471,  699,  397,  397,  471,
1868
1869       812,  817,  482,  652,  652,  652,  652,  652,  652,  655,
1870       655, 1781, 1472,  403,  397,  398,  251,  398,  397,  397,
1871       397,  397,  397,  397,  397,  399,  397,  397,  397, 1182,
1872       397,  401,  397,  402,  397,  481,  251,  481,  492,  251,
1873       492,  492,  251,  492, 1782,  503,  251,  503,  503,  251,
1874       503,  482, 1783, 1784,  493,  656,  656,  493,  656,  397,
1875       397,  504,  827,  851,  504,  652,  652,  652,  652,  652,
1876       652,  655,  655, 3437,  655,  403,  407,  408,  251,  408,
1877       407,  407,  407,  407,  407,  407,  407,  409,  407,  407,
1878       407, 1785,  407,  411,  407,  412,  407,  518,  251,  518,
1879
1880       518,  251,  518,  251,  251,  251,  856,  251,  251,  251,
1881       857,  701, 1786,  519,  858,  836,  519,  937, 1789,  520,
1882      1790,  407,  407,  520,  413,  685,  414,  702,  699,  696,
1883       835,  957,  415,  652,  652,  652,  652,  652,  652,  416,
1884       832, 1791,  417,  407,  408,  251,  408,  407,  407,  407,
1885       407,  407,  407,  407,  409,  407,  407,  407, 1792,  407,
1886       411,  407,  412,  407,  529,  251,  529,  529,  251,  529,
1887       529,  251,  529,  945,  529,  251,  529, 1135, 1800,  833,
1888       530,  933,  656,  530,  946, 1801,  531,  927,  407,  407,
1889       531,  413,  834,  414,  835,  652,  652,  652,  655,  415,
1890
1891       652,  652,  652,  652,  652,  652,  416, 1805, 1808,  417,
1892       423,  424,  251,  424,  423,  423,  423,  423,  423,  423,
1893       423,  425,  423,  423,  423,  868,  423,  427,  423,  428,
1894       423,  251,  251,  251,  251,  251,  251,  529,  251,  529,
1895      1086,  529,  251,  529,  529,  251,  529,  532, 1810, 1811,
1896       532,  656,  934,  530,  952,  423,  423,  530,  862,  935,
1897       533,  429,  652,  652,  652,  941,  430,  655,  652,  652,
1898       652, 1820, 1821,  710,  652,  652,  652,  699,  431,  423,
1899       424,  251,  424,  423,  423,  423,  423,  423,  423,  423,
1900       425,  423,  423,  423, 1822,  423,  427,  423,  428,  423,
1901
1902       529,  251,  529,  251,  251,  251,  251,  251,  251, 1823,
1903       529,  251,  529,  529,  251,  529,  533, 1825, 1833,  445,
1904       656,  951,  445, 1838,  423,  423,  531,  873,  935,  531,
1905       429,  652,  652,  652,  936,  430,  655,  652,  652,  652,
1906       652,  652,  652,  652,  652,  652, 1840,  431,  435,  436,
1907       251,  436,  435,  435,  435,  435,  435,  435,  435,  437,
1908       435,  435,  435, 1843,  435,  439,  435,  440,  435,  251,
1909       251,  251,  251,  251,  251,  529,  251,  529,  925,  529,
1910       251,  529,  529,  251,  529,  534,  945, 1844,  534,  926,
1911      1847,  533, 1084,  435,  435,  533, 1849,  946,  535, 1850,
1912
1913      1084,  441,  435,  436,  251,  436,  435,  435,  435,  435,
1914       435,  435,  435,  437,  435,  435,  435, 1852,  435,  439,
1915       435,  440,  435,  529,  251,  529,  548,  251,  548,  548,
1916       251,  548, 1853,  251,  251,  251,  251,  251,  251,  535,
1917      1150, 1515,  549, 1854, 1490,  549, 1855,  435,  435,  550,
1918      1859, 1860,  550, 1861, 1521,  441,  447,  448,  251,  448,
1919       447,  447,  447,  447,  447,  447,  447,  449,  447,  447,
1920       447, 1863,  447,  451,  447,  452,  447,  548,  251,  548,
1921       548,  251,  548,  548,  251,  548, 1867,  548,  251,  548,
1922       561,  251,  561,  549, 1150, 1871,  549,  894, 1649,  551,
1923
1924      1875,  447,  447,  551,  895,  453,  562,  652,  652,  652,
1925      1152, 1521,  454,  655, 1877,  455,  652,  652,  652,  652,
1926       652,  652,  456,  447,  448,  251,  448,  447,  447,  447,
1927       447,  447,  447,  447,  449,  447,  447,  447, 1879,  447,
1928       451,  447,  452,  447,  561,  251,  561,  575,  251,  575,
1929       575,  251,  575, 1881,  586,  251,  586,  586,  251,  586,
1930       562, 1882, 1883,  576,  656, 1885,  576, 1892,  447,  447,
1931       587,  902,  453,  587,  652,  652,  652, 1896, 1897,  454,
1932       655, 1899,  455,  652,  652,  652,  908,  908,  908,  456,
1933       461,  462,  251,  462,  461,  461,  461,  461,  461,  461,
1934
1935       461,  463,  461,  461,  461, 1708,  461,  465,  461,  466,
1936       461,  251,  251,  251,  251,  251,  251,  586,  251,  586,
1937      1909,  586,  251,  586,  586,  251,  586,  303, 1910, 1911,
1938       303,  951, 1912,  587, 1913,  461,  461,  587,  935, 1914,
1939       588,  467, 1915, 1916,  941,  909,  468,  461,  462,  251,
1940       462,  461,  461,  461,  461,  461,  461,  461,  463,  461,
1941       461,  461, 1917,  461,  465,  461,  466,  461,  586,  251,
1942       586,  598,  251,  598,  598,  251,  598, 1918,  611,  251,
1943       611,  611,  251,  611,  588, 1919, 1920,  599,  934,  951,
1944       599, 1921,  461,  461,  612,  935,  935,  612,  467, 1923,
1945
1946      1924, 1085, 1085,  468,  472,  473,  251,  473,  472,  472,
1947       472,  472,  472,  472,  472,  474,  472,  472,  472, 1925,
1948       472,  476,  472,  477,  472,  251,  251,  251,  251,  251,
1949       251,  611,  251,  611, 1926,  611,  251,  611,  611,  251,
1950       611,  286, 1269, 1929,  286, 1150, 1932,  612, 1933,  472,
1951       472,  612, 1270, 1934,  613,  611,  251,  611, 1935, 1271,
1952       478,  908,  908,  908, 1936, 1154, 1169, 1169, 1169, 1937,
1953      1906,  613, 1938,  479,  472,  473,  251,  473,  472,  472,
1954       472,  472,  472,  472,  472,  474,  472,  472,  472, 1941,
1955       472,  476,  472,  477,  472,  625,  251,  625,  625,  251,
1956
1957       625,  251,  251,  251, 1950,  251,  251,  251,  625,  251,
1958       625,  626, 1955, 1956,  626, 1973, 1979,  627, 1980,  472,
1959       472,  627, 1981, 1984,  626,  625,  251,  625, 1985, 1986,
1960       478, 1161, 1161, 1161, 1990, 1162, 1993, 1994, 1163, 1997,
1961      1998,  626, 2004,  479,  483,  484,  251,  484,  483,  483,
1962       483,  483,  483,  483,  483,  485,  483,  483,  483, 2008,
1963       483,  487,  483,  488,  483,  625,  251,  625,  625,  251,
1964       625, 2011,  650,  251,  650, 2012, 2013,  650,  251,  650,
1965      2014,  628,  264,  265,  628, 2017, 2023,  266,  651,  483,
1966       483,  264,  265,  651,  671, 2028,  266,  638, 2034,  788,
1967
1968      1169, 1169, 1169, 2038,  697,  489,  638, 2041, 2042,  789,
1969       490,  483,  484,  251,  484,  483,  483,  483,  483,  483,
1970       483,  483,  485,  483,  483,  483,  639,  483,  487,  483,
1971       488,  483,  698, 2044, 2045,  639, 2046, 2047,  675, 2048,
1972      2049,  916,  916,  916,  678, 2050,  699, 2052,  700, 2058,
1973       684,  685,  969,  969,  969,  684,  483,  483,  917,  983,
1974       983,  983, 2059, 2060, 1170, 1192, 1192, 1192, 2062,  970,
1975      2064, 2072,  489, 1192, 1192, 1192,  984,  490,  494,  495,
1976       251,  495,  494,  494,  494,  494,  494,  494,  494,  496,
1977       494,  494,  494, 2077,  494,  498,  494,  499,  494,  985,
1978
1979       985,  985,  996,  996,  996,  999,  999,  999, 1014, 1014,
1980      1014, 1024, 1024, 1024, 2078, 2079,  986, 2081, 2099,  997,
1981      2082, 2100, 1000,  494,  494, 1015, 2083, 1150, 1025, 1193,
1982      2084, 1226, 1226, 1226, 2101, 1227, 2085, 1170, 1228,  500,
1983      1708, 1169, 1169, 1169, 2094,  501,  494,  495,  251,  495,
1984       494,  494,  494,  494,  494,  494,  494,  496,  494,  494,
1985       494, 1708,  494,  498,  494,  499,  494, 1034, 1034, 1034,
1986      1036, 1036, 1036, 1045, 1045, 1045, 1053, 1053, 1053, 1057,
1987      1057, 1057, 2095, 2104, 1035, 2105, 2102, 1037, 2107, 2108,
1988      1046,  494,  494, 1054, 2096, 2109, 1058, 1252, 1252, 1252,
1989
1990      2110, 1253, 2103, 2111, 1254, 1193, 2112,  500, 1506, 1506,
1991      1506, 2113, 2116,  501,  505,  506,  251,  506,  505,  505,
1992       505,  505,  505,  505,  505,  507,  505,  505,  505, 2117,
1993       505,  509,  505,  510,  505, 1073, 1073, 1073, 1095, 1095,
1994      1095, 1101, 1101, 1101, 1117, 1117, 1117, 2118, 1123, 1123,
1995      1123, 2119, 1074, 2122, 2123, 1096, 2120, 2124, 1102,  505,
1996       505, 1118,  511,  512,  513, 1124, 2125, 1255, 1255, 1255,
1997       514, 1256, 2121,  515, 1257, 1192, 1192, 1192, 2127, 2128,
1998       516,  505,  506,  251,  506,  505,  505,  505,  505,  505,
1999       505,  505,  507,  505,  505,  505, 2135,  505,  509,  505,
2000
2001       510,  505, 1129, 1129, 1129, 1137, 1137, 1137,  916,  916,
2002       916, 1208, 1208, 1208, 1165, 1165, 1165, 2137, 2139, 1130,
2003      2160, 2164, 1138, 2165, 2166,  917,  505,  505, 1209,  511,
2004       512,  513, 1167, 2172, 1272, 1272, 1272,  514, 1273, 2173,
2005       515, 1274, 1527, 1527, 1527, 2174, 2178,  516,  521,  522,
2006       251,  522,  521,  521,  521,  521,  521,  521,  521,  523,
2007       521,  521,  521, 2179,  521,  525,  521,  526,  521, 1165,
2008      1165, 1165, 1212, 1212, 1212, 2182, 2183, 1215, 1215, 1215,
2009      3437, 3437, 3437, 3437, 3437, 3437, 2187, 1167, 2188, 1213,
2010      1221, 1221, 1221,  521,  521, 1217, 2191, 3437, 2195, 2196,
2011
2012      3437, 2197, 2200, 1276, 1276, 1276, 1168, 1277, 1223, 2207,
2013      1278, 1506, 1506, 1506, 1728, 1728, 1728,  527,  521,  522,
2014       251,  522,  521,  521,  521,  521,  521,  521,  521,  523,
2015       521,  521,  521, 1210,  521,  525,  521,  526,  521, 1214,
2016      1215, 1215, 1215,  969,  969,  969, 2211, 2212, 1211, 1221,
2017      1221, 1221, 1230, 1230, 1230, 1234, 1234, 1234, 1217, 2213,
2018       970, 2218, 2220,  521,  521, 2221, 2222, 1223, 2223, 2225,
2019      1232, 2226, 1235, 2229, 1295, 1295, 1295, 1218, 1296, 2231,
2020      2234, 1297, 1720, 1720, 1720, 2250, 2251,  527,  536,  537,
2021       251,  537,  536,  536,  536,  536,  536,  536,  536,  538,
2022
2023       536,  536,  536, 2252,  536,  540,  536,  541,  536, 1238,
2024      1238, 1238, 2257, 1224, 1240, 1240, 1240, 1240, 1240, 1240,
2025      3437, 3437, 3437, 1244, 1244, 1244, 1239, 2258, 1721, 1230,
2026      1230, 1230, 1242,  536,  536, 1242, 2259, 3437, 2261, 2262,
2027      1245,  542, 2263,  543, 2260, 2266,  544, 1232, 2275, 2276,
2028       545, 1731, 1731, 1731,  546,  536,  537,  251,  537,  536,
2029       536,  536,  536,  536,  536,  536,  538,  536,  536,  536,
2030      1236,  536,  540,  536,  541,  536, 1233, 1246, 1246, 1246,
2031      1248, 1248, 1248, 2277, 2264, 1237, 2278, 1150, 1243, 1248,
2032      1248, 1248, 2265, 2268, 1247,  983,  983,  983, 1250, 2281,
2033
2034       536,  536,  985,  985,  985, 2283, 1708, 1250,  542, 2284,
2035       543, 2285,  984,  544, 1736, 1736, 1736,  545, 2286,  986,
2036      1708,  546,  552,  553,  251,  553,  552,  552,  552,  552,
2037       552,  552,  552,  554,  552,  552,  552, 2269,  552,  556,
2038       552,  557,  552, 2290, 1258, 1258, 1258, 1264, 1264, 1264,
2039      1527, 1527, 1527, 2292, 2293, 3437, 3437, 3437, 2294, 2297,
2040      1251, 1259, 3437, 3437, 3437, 1266, 2270,  552,  552, 3437,
2041      3437, 3437, 3437, 3437, 3437, 3437, 2301, 2302,  558, 3437,
2042      1310, 1310, 1310, 2304, 1311, 2306, 3437, 1312, 2317, 2318,
2043      3437,  559,  552,  553,  251,  553,  552,  552,  552,  552,
2044
2045       552,  552,  552,  554,  552,  552,  552, 1260,  552,  556,
2046       552,  557,  552, 1264, 1264, 1264, 2319, 1261, 2320, 2324,
2047      1262, 2325,  996,  996,  996, 1263,  999,  999,  999, 2326,
2048      2327, 1266, 1279, 1279, 1279, 2333, 2334,  552,  552,  997,
2049      1291, 1291, 1291, 1000, 1723, 1723, 1723, 2335,  558, 1280,
2050      1323, 1323, 1323, 2336, 1324, 2339, 2343, 1325, 1293, 2344,
2051      1267,  559,  563,  564,  251,  564,  563,  563,  563,  563,
2052       563,  563,  563,  565,  563,  563,  563, 2345,  563,  567,
2053       563,  568,  563, 1014, 1014, 1014, 1291, 1291, 1291, 2346,
2054      1724, 1298, 1298, 1298, 1298, 1298, 1298, 1303, 1303, 1303,
2055
2056      1015, 1303, 1303, 1303, 1293, 2349, 2351,  563,  563, 1300,
2057      2352, 2353, 1300, 2354, 2366, 1305,  569, 2367,  570, 1305,
2058      2371, 2374,  571, 1746, 1746, 1746, 2375,  572,  573,  563,
2059       564,  251,  564,  563,  563,  563,  563,  563,  563,  563,
2060       565,  563,  563,  563, 1294,  563,  567,  563,  568,  563,
2061      1024, 1024, 1024, 2381, 2386, 1301, 2388, 2389, 1316, 1316,
2062      1316, 2390, 2394, 1306, 1316, 1316, 1316, 1025, 2395, 1034,
2063      1034, 1034, 2396, 2397,  563,  563, 1318, 1326, 1326, 1326,
2064      2398, 1327, 1318,  569, 1328,  570, 1035, 2399, 2400,  571,
2065      1720, 1720, 1720, 2401,  572,  573,  577,  578,  251,  578,
2066
2067       577,  577,  577,  577,  577,  577,  577,  579,  577,  577,
2068       577, 2402,  577,  581,  577,  582,  577, 1036, 1036, 1036,
2069      1329, 1329, 1329, 2086, 2403, 1319, 1329, 1329, 1329, 2087,
2070      1334, 1334, 1334, 2088, 1037, 1334, 1334, 1334, 1331, 2089,
2071      2420,  577,  577, 2421, 1331, 2422, 2424,  583, 1336, 1708,
2072      1339, 1339, 1339, 1336, 1340, 2427, 2428, 1341, 2430, 1742,
2073      1742, 1742,  584,  577,  578,  251,  578,  577,  577,  577,
2074       577,  577,  577,  577,  579,  577,  577,  577, 1708,  577,
2075       581,  577,  582,  577, 1045, 1045, 1045, 1332, 1345, 1345,
2076      1345, 2431, 1353, 1353, 1353, 1337, 2407, 1345, 1345, 1345,
2077
2078      2432, 1046, 1053, 1053, 1053, 1743, 1347, 2433,  577,  577,
2079      1355, 1057, 1057, 1057,  583, 1347, 1350, 1350, 1350, 1054,
2080      1351, 2406, 2434, 1352, 1745, 1745, 1745, 2435, 1058,  584,
2081       589,  590,  251,  590,  589,  589,  589,  589,  589,  589,
2082       589,  591,  589,  589,  589, 2447,  589,  593,  589,  594,
2083       589, 2448, 1348, 1353, 1353, 1353, 1357, 1357, 1357, 2449,
2084      1358, 2454, 2455, 1359, 1361, 1361, 1361, 1361, 1361, 1361,
2085      1724, 1355, 1723, 1723, 1723,  589,  589, 1381, 1381, 1381,
2086       595, 1382, 1363, 2456, 1383, 1363,  596,  589,  590,  251,
2087       590,  589,  589,  589,  589,  589,  589,  589,  591,  589,
2088
2089       589,  589, 2462,  589,  593,  589,  594,  589, 1356, 1367,
2090      1367, 1367, 1367, 1367, 1367, 2463, 1373, 1373, 1373, 2450,
2091      1373, 1373, 1373, 1073, 1073, 1073, 2464, 1369, 1364, 2451,
2092      1369, 2482,  589,  589, 1375, 2483, 2484,  595, 1375, 2500,
2093      1074, 2501, 2502,  596,  600,  601,  251,  601,  600,  600,
2094       600,  600,  600,  600,  600,  602,  600,  600,  600, 2505,
2095       600,  604,  600,  605,  600, 1384, 1384, 1384, 1388, 1388,
2096      1388, 2507, 2508, 1370, 2509, 1394, 1394, 1394, 1394, 1394,
2097      1394, 2510, 1385, 2511, 2512, 1376, 1390, 2513, 2514,  600,
2098       600, 2515,  606, 1396,  607, 2516, 1396, 1411, 1411, 1411,
2099
2100       608, 1412, 2517, 2518, 1413, 1922, 1922, 1922, 1745, 1745,
2101      1745,  609,  600,  601,  251,  601,  600,  600,  600,  600,
2102       600,  600,  600,  602,  600,  600,  600, 2523,  600,  604,
2103       600,  605,  600, 1095, 1095, 1095, 1397, 1406, 1406, 1406,
2104      2524, 1406, 1406, 1406, 1708, 1415, 1415, 1415, 2527, 2528,
2105      1096, 1388, 1388, 1388, 1756, 1408, 2529,  600,  600, 1408,
2106       606, 2530,  607, 1417, 1728, 1728, 1728, 1708,  608, 1390,
2107      1420, 1420, 1420, 2533, 1421, 2534, 2521, 1422, 2535,  609,
2108       614,  615,  251,  615,  614,  614,  614,  614,  614,  614,
2109       614,  616,  614,  614,  614, 2536,  614,  618,  614,  619,
2110
2111       614, 2538, 1391, 2539, 2522, 1409, 1415, 1415, 1415, 2540,
2112      1101, 1101, 1101, 2541, 1423, 1423, 1423, 1426, 1426, 1426,
2113      1431, 1431, 1431, 2525, 1417,  614,  614, 1102, 2531, 2542,
2114       620, 1424, 2526, 2544, 1427, 2545,  621, 2532, 1433, 2546,
2115       622, 1731, 1731, 1731, 2556, 2557,  623,  614,  615,  251,
2116       615,  614,  614,  614,  614,  614,  614,  614,  616,  614,
2117       614,  614, 2558,  614,  618,  614,  619,  614, 2559, 2560,
2118      1418, 1435, 1435, 1435, 1437, 1437, 1437, 3437, 3437, 3437,
2119      2564, 2567, 1431, 1431, 1431, 1117, 1117, 1117, 1436, 2572,
2120      2573, 1438,  614,  614, 3437, 2580, 2568,  620, 2581, 2570,
2121
2122      1433, 2582, 1118,  621, 1445, 1445, 1445,  622, 1446, 2569,
2123      2596, 1447, 2571,  623,  629,  630,  251,  630,  629,  629,
2124       629,  629,  629,  629,  629,  631,  629,  629,  629, 1434,
2125       629,  633,  629,  634,  629, 2597, 1439, 1440, 1440, 1440,
2126      1440, 1440, 1440, 1448, 1448, 1448, 1448, 1448, 1448, 1123,
2127      1123, 1123, 1129, 1129, 1129, 1442, 2613, 2614, 1442,  629,
2128       629, 1450, 2615, 2616, 1450, 2618, 1124,  635, 2619, 1130,
2129       636, 1927, 1927, 1927, 1736, 1736, 1736,  637,  629,  630,
2130       251,  630,  629,  629,  629,  629,  629,  629,  629,  631,
2131       629,  629,  629, 2620,  629,  633,  629,  634,  629, 2621,
2132
2133      2622, 1443, 1454, 1454, 1454, 2623, 1455, 1451, 2624, 1456,
2134      1458, 1458, 1458, 2625, 1458, 1458, 1458, 2626, 1463, 1463,
2135      1463, 2627, 1464,  629,  629, 1465, 2628, 2629, 1460, 2634,
2136      2635,  635, 1460, 2636,  636, 1928, 1930, 1930, 1930, 2637,
2137      1708,  637,  640,  641,  251,  641,  640,  640,  640,  640,
2138       640,  640,  640,  642,  640,  640,  640, 2638,  640,  644,
2139       640,  645,  640, 1468, 1468, 1468, 1468, 1468, 1468, 1137,
2140      1137, 1137, 1474, 1474, 1474, 2639, 1475, 2632, 2640, 1476,
2141      1461, 1470, 1931, 2641, 1470, 1150, 1138,  640,  640, 1479,
2142      1479, 1479, 2642, 2643,  646, 1161, 1161, 1161, 2644, 1162,
2143
2144       647, 2645, 1163, 1742, 1742, 1742, 2646, 1481, 2647,  648,
2145       640,  641,  251,  641,  640,  640,  640,  640,  640,  640,
2146       640,  642,  640,  640,  640, 2631,  640,  644,  640,  645,
2147       640, 2649, 1471, 1479, 1479, 1479, 1486, 1486, 1486, 1486,
2148      1486, 1486, 1165, 1165, 1165, 1165, 1165, 1165, 1497, 1497,
2149      1497, 1481, 2650, 2651, 1488,  640,  640, 1488, 2652, 1708,
2150      1167, 2653,  646, 1167, 2654, 2659, 1498, 2660,  647, 1208,
2151      1208, 1208, 1537, 1537, 1537, 2661, 1538,  648,  656, 1539,
2152      2664, 1212, 1212, 1212, 2665,  671, 1209, 2669, 2672, 1542,
2153      1542, 1542, 2675, 1543,  655,  672, 1544, 1482, 1213, 1215,
2154
2155      1215, 1215, 2633, 1489, 1234, 1234, 1234, 1215, 1215, 1215,
2156      1238, 1238, 1238, 1215, 1215, 1215, 2676, 1217, 1221, 1221,
2157      1221, 1235,  673,  674,  675, 1217, 2684, 1239,  676,  677,
2158       678, 1217, 2685,  679,  680, 2686, 1223,  681, 2697,  682,
2159       683,  684,  656, 1221, 1221, 1221, 1221, 1221, 1221, 1226,
2160      1226, 1226, 2670, 1227, 2720, 2721, 1228, 2726,  655,  686,
2161      2727, 1223, 2728, 2671, 1223, 1230, 1230, 1230, 1244, 1244,
2162      1244, 1230, 1230, 1230, 1246, 1246, 1246, 1546, 1230, 1230,
2163      1230, 2729, 2730, 1232, 2673, 1245,  673,  687,  688, 1232,
2164      2731, 1247,  689,  690,  691, 2674, 1232,  692,  680, 1549,
2165
2166      2732,  693, 2733,  694,  695,  696, 1553, 1553, 1553, 2690,
2167      1554, 2734, 2735, 1555, 1558, 1558, 1558, 2740, 1559, 2691,
2168      2741, 1560, 1240, 1240, 1240, 2692, 1708, 1552, 1240, 1240,
2169      1240, 1240, 1240, 1240, 1562, 1562, 1562, 1150, 1563, 1708,
2170      1242, 1564, 2742, 1565, 1565, 1565, 1242, 1566, 2743, 1242,
2171      1567, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248,
2172      1252, 1252, 1252, 2693, 1253, 2744, 2737, 1254, 2738, 1250,
2173      2745, 2746, 1250, 2694, 2747, 1250, 1255, 1255, 1255, 2695,
2174      1256, 2739, 2748, 1257, 1258, 1258, 1258, 1569, 1569, 1569,
2175      2749, 1570, 2750, 1561, 1571, 1264, 1264, 1264, 1264, 1264,
2176
2177      1264, 1259, 1264, 1264, 1264, 1272, 1272, 1272, 2751, 1273,
2178      2752, 2754, 1274, 1266, 2755, 2756, 1266, 2709, 2758, 1568,
2179      1266, 1581, 1581, 1581, 1276, 1276, 1276, 2710, 1277, 2759,
2180      2711, 1278, 1279, 1279, 1279, 1583, 1583, 1583, 1582, 1584,
2181      2765, 2766, 1585, 1291, 1291, 1291, 1291, 1291, 1291, 1280,
2182      1576, 1291, 1291, 1291, 2774, 1295, 1295, 1295, 2775, 1296,
2183      2776, 1293, 1297, 2777, 1293, 1298, 1298, 1298, 2778, 1293,
2184      1298, 1298, 1298, 1298, 1298, 1298, 1599, 1599, 1599, 1303,
2185      1303, 1303, 2779, 1300, 1303, 1303, 1303, 2780, 1300, 2781,
2186      2782, 1300, 2786, 1600, 1303, 1303, 1303, 1305, 1604, 1604,
2187
2188      1604, 2712, 1305, 1310, 1310, 1310, 2789, 1311, 2790, 2791,
2189      1312, 2713, 1305, 2792, 2714, 1605, 2793, 2794, 1597, 1316,
2190      1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1612, 1612,
2191      1612, 2795, 2798, 1598, 1323, 1323, 1323, 1318, 1324, 2802,
2192      1318, 1325, 2806, 1318, 2807, 1613, 1326, 1326, 1326, 2810,
2193      1327, 2811, 2803, 1328, 1329, 1329, 1329, 1329, 1329, 1329,
2194      2804, 1601, 1329, 1329, 1329, 1615, 1615, 1615, 1334, 1334,
2195      1334, 2829, 1331, 2805, 2830, 1331, 1334, 1334, 1334, 2831,
2196      1331, 2832, 1616, 1334, 1334, 1334, 1336, 1345, 1345, 1345,
2197      1609, 1339, 1339, 1339, 1336, 1340, 2833, 2834, 1341, 2808,
2198
2199      2835, 1336, 1345, 1345, 1345, 1347, 1345, 1345, 1345, 1350,
2200      1350, 1350, 2809, 1351, 2836, 2842, 1352, 1353, 1353, 1353,
2201      1347, 1353, 1353, 1353, 1347, 2843, 1150, 1614, 1353, 1353,
2202      1353, 2812, 1617, 2844, 1708, 1355, 1357, 1357, 1357, 1355,
2203      1358, 2845, 2846, 1359, 2813, 2847, 1355, 1361, 1361, 1361,
2204      1361, 1361, 1361, 1361, 1361, 1361, 1627, 1627, 1627, 3437,
2205      3437, 3437, 1367, 1367, 1367, 1363, 1622, 2848, 1363, 2839,
2206      2849, 1363, 2850, 1628, 2838, 2851, 3437, 1367, 1367, 1367,
2207      1369, 1367, 1367, 1367, 1631, 1631, 1631, 2852, 1624, 2853,
2208      3437, 3437, 3437, 2854, 2856, 1369, 1373, 1373, 1373, 1369,
2209
2210      2857, 1632, 2859, 1626, 2867, 2868, 1629, 3437, 1373, 1373,
2211      1373, 1373, 1373, 1373, 1375, 1381, 1381, 1381, 1633, 1382,
2212      2875, 2876, 1383, 1384, 1384, 1384, 1375, 2877, 2860, 1375,
2213      1639, 1639, 1639, 2878, 1640, 2879, 2880, 1641, 2861, 2881,
2214      1385, 1388, 1388, 1388, 1388, 1388, 1388, 2882, 1630, 1388,
2215      1388, 1388, 1394, 1394, 1394, 1394, 1394, 1394, 2862, 1390,
2216      2883, 2884, 1390, 1394, 1394, 1394, 2888, 1390, 2863, 2889,
2217      1396, 2890, 2891, 1396, 1652, 1652, 1652, 1634, 1406, 1406,
2218      1406, 1396, 2892, 1406, 1406, 1406, 1406, 1406, 1406, 2893,
2219      2894, 1653, 2895, 1415, 1415, 1415, 1408, 1415, 1415, 1415,
2220
2221      1644, 1408, 2896, 2897, 1408, 1411, 1411, 1411, 2898, 1412,
2222      1647, 1417, 1413, 2899, 2900, 1417, 1415, 1415, 1415, 1420,
2223      1420, 1420, 2901, 1421, 2902, 2903, 1422, 1423, 1423, 1423,
2224      2904, 1662, 1662, 1662, 1417, 1663, 2905, 2906, 1664, 1665,
2225      1665, 1665, 2907, 2921, 1424, 2922, 2923, 1657, 1426, 1426,
2226      1426, 1667, 1667, 1667, 2924, 1668, 1666, 2925, 1669, 1671,
2227      1671, 1671, 1431, 1431, 1431, 1427, 1431, 1431, 1431, 1431,
2228      1431, 1431, 1435, 1435, 1435, 2926, 1672, 1660, 2927, 2928,
2229      1433, 1675, 1675, 1675, 1433, 1676, 2910, 1433, 1677, 1436,
2230      1437, 1437, 1437, 1678, 1678, 1678, 2911, 1679, 2936, 2937,
2231
2232      1680, 1440, 1440, 1440, 1440, 1440, 1440, 1438, 1440, 1440,
2233      1440, 1445, 1445, 1445, 2938, 1446, 1150, 2912, 1447, 1442,
2234      2939, 2940, 1442, 1448, 1448, 1448, 1442, 2913, 2941, 1674,
2235      1448, 1448, 1448, 1448, 1448, 1448, 1454, 1454, 1454, 2942,
2236      1455, 1450, 2943, 1456, 1458, 1458, 1458, 2948, 1450, 2949,
2237      2930, 1450, 1458, 1458, 1458, 1458, 1458, 1458, 2950, 1463,
2238      1463, 1463, 1460, 1464, 2951, 2953, 1465, 1691, 1691, 1691,
2239      1460, 2954, 2957, 1460, 2958, 1682, 1468, 1468, 1468, 1468,
2240      1468, 1468, 2959, 2960, 1692, 1468, 1468, 1468, 1695, 1695,
2241      1695, 1474, 1474, 1474, 1470, 1475, 2961, 1470, 1476, 2962,
2242
2243      1684, 2963, 2964, 1470, 2969, 1696, 3437, 3437, 3437, 1479,
2244      1479, 1479, 1479, 1479, 1479, 2970, 1688, 1479, 1479, 1479,
2245      1701, 1701, 1701, 3437, 1486, 1486, 1486, 1481, 2971, 2972,
2246      1481, 1486, 1486, 1486, 2973, 1481, 2974, 1702, 1486, 1486,
2247      1486, 2975, 1488, 1707, 1707, 1707, 1693, 2976, 2977, 1488,
2248      1497, 1497, 1497, 1537, 1537, 1537, 1488, 1538, 2978, 2979,
2249      1539, 1708, 1709, 2980, 1699, 2981, 2982, 1697, 1498, 1542,
2250      1542, 1542, 2983, 1543, 2984, 2985, 1544, 1215, 1215, 1215,
2251      1757, 1757, 1757, 2989, 2990, 1704, 1221, 1221, 1221, 1230,
2252      1230, 1230, 1553, 1553, 1553, 1217, 1554, 1758, 2991, 1555,
2253
2254      2992, 1558, 1558, 1558, 1223, 1559, 2995, 1232, 1560, 1240,
2255      1240, 1240, 1562, 1562, 1562, 2996, 1563, 2997, 2998, 1564,
2256      2999, 1565, 1565, 1565, 3000, 1566, 3008, 1242, 1567, 1248,
2257      1248, 1248, 1569, 1569, 1569, 3009, 1570, 3010, 1755, 1571,
2258      1769, 1769, 1769, 1264, 1264, 1264, 1762, 1250, 1774, 1774,
2259      1774, 3011, 3012, 1759, 3013, 3014, 1765, 1770, 1581, 1581,
2260      1581, 1266, 1778, 1778, 1778, 1775, 1779, 3015, 3016, 1780,
2261      1583, 1583, 1583, 1150, 1584, 1582, 1766, 1585, 1787, 1787,
2262      1787, 1291, 1291, 1291, 1298, 1298, 1298, 1599, 1599, 1599,
2263      1795, 1795, 1795, 3017, 1796, 1788, 3020, 1797, 1772, 1293,
2264
2265      3021, 3027, 1300, 3028, 1600, 1798, 1798, 1798, 1604, 1604,
2266      1604, 1802, 1802, 1802, 3029, 1803, 3002, 3030, 1804, 3031,
2267      1806, 1806, 1806, 1799, 3038, 1605, 1316, 1316, 1316, 3039,
2268      1612, 1612, 1612, 1329, 1329, 1329, 1794, 1807, 1812, 1812,
2269      1812, 3040, 1813, 3041, 1318, 1814, 1793, 1613, 1615, 1615,
2270      1615, 1331, 1816, 1816, 1816, 3042, 1817, 3043, 3044, 1818,
2271      1334, 1334, 1334, 3045, 3046, 1616, 1345, 1345, 1345, 1353,
2272      1353, 1353, 1827, 1827, 1827, 1745, 1745, 1745, 1336, 1361,
2273      1361, 1361, 3047, 3048, 1347, 2408, 2409, 1355, 2410, 1828,
2274      3049, 3050, 1809, 1627, 1627, 1627, 2411, 1363, 3051, 1815,
2275
2276      1830, 1830, 1830, 2412, 1831, 3052, 3053, 1832, 3054, 3055,
2277      1628, 1367, 1367, 1367, 1631, 1631, 1631, 3056, 1819, 3057,
2278      1835, 1835, 1835, 1824, 1836, 3058, 1826, 1837, 3059, 1369,
2279      1829, 1632, 1373, 1373, 1373, 1841, 1841, 1841, 1639, 1639,
2280      1639, 3060, 1640, 3061, 3062, 1641, 1845, 1845, 1845, 3063,
2281      1375, 3064, 1842, 3069, 1388, 1388, 1388, 1394, 1394, 1394,
2282      1652, 1652, 1652, 1846, 3072, 1150, 1856, 1856, 1856, 3077,
2283      1857, 1834, 1390, 1858, 3074, 1396, 3069, 1653, 1406, 1406,
2284      1406, 1864, 1864, 1864, 1415, 1415, 1415, 1662, 1662, 1662,
2285      3070, 1663, 3078, 1839, 1664, 3075, 1408, 3082, 1865, 1665,
2286
2287      1665, 1665, 1417, 1868, 1868, 1868, 3083, 1869, 3076, 3084,
2288      1870, 3067, 3085, 1667, 1667, 1667, 1666, 1668, 1848, 3086,
2289      1669, 3087, 3088, 1851, 1671, 1671, 1671, 1862, 1872, 1872,
2290      1872, 3095, 1873, 3096, 3089, 1874, 1431, 1431, 1431, 3097,
2291      3102, 1672, 3103, 1675, 1675, 1675, 1866, 1676, 3104, 3105,
2292      1677, 1678, 1678, 1678, 1433, 1679, 3106, 3107, 1680, 1440,
2293      1440, 1440, 1448, 1448, 1448, 1458, 1458, 1458, 1886, 1886,
2294      1886, 1691, 1691, 1691, 1888, 1888, 1888, 1442, 1889, 3108,
2295      1450, 1890, 3109, 1460, 3110, 1887, 1876, 3111, 1692, 1468,
2296      1468, 1468, 1695, 1695, 1695, 1893, 1893, 1893, 3112, 1894,
2297
2298      3113, 3114, 1895, 1479, 1479, 1479, 3090, 1470, 1150, 1696,
2299      1701, 1701, 1701, 1900, 1900, 1900, 3117, 1901, 3091, 3117,
2300      1902, 1481, 1903, 1903, 1903, 1878, 3120, 1702, 1880, 1884,
2301      1486, 1486, 1486, 1707, 1707, 1707, 1746, 1746, 1746, 1904,
2302      1939, 1939, 1939, 1942, 1942, 1942, 1708, 1709, 1488, 3115,
2303      3121, 1708, 1898, 1891, 1927, 1927, 1927, 1939, 1939, 1939,
2304      1944, 1944, 1944, 1946, 1946, 1946, 3437, 3437, 3437, 1215,
2305      1215, 1215, 3124, 1757, 1757, 1757, 3125, 1945, 3132, 1905,
2306      1947, 3122, 3098, 3437, 1907, 2413, 2414, 1217, 2415, 1943,
2307      1758, 1951, 1951, 1951, 3099, 1952, 2416, 3133, 1953, 3123,
2308
2309      3134, 1908, 3137, 2417, 1940, 1221, 1221, 1221, 1230, 1230,
2310      1230, 1958, 1958, 1958, 1960, 1960, 1960, 3100, 1940, 3138,
2311      3139, 1928, 3144, 1223, 3147, 3150, 1232, 3151, 1959, 3101,
2312      1948, 1961, 1240, 1240, 1240, 3069, 1949, 1248, 1248, 1248,
2313      1964, 1964, 1964, 3437, 3437, 3437, 1769, 1769, 1769, 3070,
2314      1242, 1970, 1970, 1970, 3152, 1250, 1957, 1965, 3153, 3069,
2315      3437, 3154, 3155, 1770, 1954, 1967, 1967, 1967, 1971, 1968,
2316      3072, 3117, 1969, 1264, 1264, 1264, 1774, 1774, 1774, 1974,
2317      1974, 1974, 3157, 1975, 3135, 3117, 1976, 1977, 1977, 1977,
2318      3079, 1266, 3158, 1775, 1982, 1982, 1982, 1962, 1787, 1787,
2319
2320      1787, 1966, 1963, 3136, 1978, 1778, 1778, 1778, 3080, 1779,
2321      3159, 1983, 1780, 3160, 3161, 1788, 1987, 1987, 1987, 3126,
2322      1988, 3081, 3162, 1989, 1991, 1991, 1991, 1291, 1291, 1291,
2323      1298, 1298, 1298, 1972, 3127, 1795, 1795, 1795, 3142, 1796,
2324      3163, 1992, 1797, 3170, 3171, 1293, 3172, 3145, 1300, 1798,
2325      1798, 1798, 1802, 1802, 1802, 3173, 1803, 3143, 3174, 1804,
2326      1999, 1999, 1999, 1806, 1806, 1806, 3146, 1799, 2001, 2001,
2327      2001, 3175, 2002, 3176, 3177, 2003, 3181, 2000, 3182, 3183,
2328      1807, 2005, 2005, 2005, 3184, 1996, 2007, 2007, 2007, 3185,
2329      1812, 1812, 1812, 1995, 1813, 3186, 3190, 1814, 3191, 2006,
2330
2331      1329, 1329, 1329, 1816, 1816, 1816, 3192, 1817, 3193, 3194,
2332      1818, 1334, 1334, 1334, 2015, 2015, 2015, 3195, 1331, 1353,
2333      1353, 1353, 1827, 1827, 1827, 3197, 2019, 2019, 2019, 1336,
2334      2020, 3198, 2016, 2021, 1361, 1361, 1361, 1355, 3199, 1828,
2335      1830, 1830, 1830, 3200, 1831, 3201, 2009, 1832, 1367, 1367,
2336      1367, 3202, 1363, 1835, 1835, 1835, 3203, 1836, 3208, 3209,
2337      1837, 3210, 2025, 2025, 2025, 2018, 1369, 1373, 1373, 1373,
2338      1841, 1841, 1841, 2029, 2029, 2029, 3211, 2030, 2010, 2026,
2339      2031, 2032, 2032, 2032, 3204, 1375, 3212, 1842, 1845, 1845,
2340      1845, 3213, 2022, 2035, 2035, 2035, 3205, 2036, 2033, 3214,
2341
2342      2037, 2039, 2039, 2039, 3215, 1846, 1394, 1394, 1394, 1856,
2343      1856, 1856, 3216, 1857, 2024, 3217, 1858, 3218, 3219, 2040,
2344      1406, 1406, 1406, 3220, 1396, 1864, 1864, 1864, 2053, 2053,
2345      2053, 2027, 2054, 3221, 3206, 2055, 3222, 3223, 1408, 2056,
2346      2056, 2056, 1865, 1868, 1868, 1868, 3207, 1869, 3225, 3226,
2347      1870, 3227, 1872, 1872, 1872, 1150, 1873, 2057, 2043, 1874,
2348      1431, 1431, 1431, 1440, 1440, 1440, 1448, 1448, 1448, 3228,
2349      3229, 2051, 2066, 2066, 2066, 3437, 3437, 3437, 1433, 3230,
2350      3224, 1442, 3231, 3232, 1450, 2069, 2069, 2069, 3233, 2067,
2351      3234, 3235, 3437, 1458, 1458, 1458, 1886, 1886, 1886, 2073,
2352
2353      2073, 2073, 2070, 2074, 3236, 3237, 2075, 3238, 1888, 1888,
2354      1888, 1460, 1889, 1887, 2063, 1890, 3239, 2065, 1468, 1468,
2355      1468, 2061, 1893, 1893, 1893, 3240, 1894, 3241, 3242, 1895,
2356      1479, 1479, 1479, 1903, 1903, 1903, 1470, 2097, 2097, 2097,
2357      2071, 2068, 1900, 1900, 1900, 3243, 1901, 3244, 1481, 1902,
2358      1904, 2090, 2090, 2090, 2098, 2091, 3245, 3246, 2092, 1486,
2359      1486, 1486, 2106, 2106, 2106, 2076, 1922, 1922, 1922, 2114,
2360      2114, 2114, 1927, 1927, 1927, 3247, 3248, 1488, 2115, 2115,
2361      2115, 2080, 1930, 1930, 1930, 1939, 1939, 1939, 2126, 2126,
2362      2126, 1942, 1942, 1942, 1944, 1944, 1944, 2129, 2129, 2129,
2363
2364      3250, 2130, 1150, 3251, 2131, 1946, 1946, 1946, 3252, 3253,
2365      2093, 1945, 2132, 2132, 2132, 3254, 2133, 3255, 3256, 2134,
2366      3257, 3249, 1947, 1215, 1215, 1215, 1951, 1951, 1951, 3258,
2367      1952, 3259, 3260, 1953, 1221, 1221, 1221, 2140, 2140, 2140,
2368      3261, 1217, 1230, 1230, 1230, 1958, 1958, 1958, 3262, 2143,
2369      2143, 2143, 1223, 2144, 2141, 3263, 2145, 1960, 1960, 1960,
2370      1232, 3264, 1959, 2146, 2146, 2146, 3265, 2147, 3266, 3267,
2371      2148, 1964, 1964, 1964, 1961, 1240, 1240, 1240, 1248, 1248,
2372      1248, 2154, 2154, 2154, 3268, 2138, 3269, 3270, 1965, 2136,
2373      2151, 2151, 2151, 1242, 2152, 3271, 1250, 2153, 2155, 3273,
2374
2375      1967, 1967, 1967, 2142, 1968, 3274, 3275, 1969, 1970, 1970,
2376      1970, 2156, 2156, 2156, 3276, 2157, 3277, 3278, 2158, 1264,
2377      1264, 1264, 1974, 1974, 1974, 1971, 1975, 3279, 3280, 1976,
2378      1977, 1977, 1977, 1150, 2161, 2161, 2161, 1266, 2162, 3281,
2379      2149, 2163, 3282, 2150, 1982, 1982, 1982, 1978, 2167, 2167,
2380      2167, 3283, 2168, 3272, 3284, 2169, 2170, 2170, 2170, 3285,
2381      3286, 1983, 1987, 1987, 1987, 3287, 1988, 3288, 3289, 1989,
2382      2159, 3290, 3291, 2171, 1991, 1991, 1991, 2175, 2175, 2175,
2383      3292, 2176, 3294, 3295, 2177, 1291, 1291, 1291, 1298, 1298,
2384      1298, 1992, 1999, 1999, 1999, 2184, 2184, 2184, 1150, 2185,
2385
2386      3296, 3297, 2186, 1293, 3293, 3298, 1300, 3299, 3300, 2000,
2387      2001, 2001, 2001, 3301, 2002, 3302, 3303, 2003, 3304, 2005,
2388      2005, 2005, 2007, 2007, 2007, 1329, 1329, 1329, 1334, 1334,
2389      1334, 2192, 2192, 2192, 3305, 3306, 2180, 2006, 2015, 2015,
2390      2015, 2181, 3307, 1331, 1150, 3309, 1336, 3310, 2193, 1353,
2391      1353, 1353, 3311, 2019, 2019, 2019, 2016, 2020, 3308, 3312,
2392      2021, 1361, 1361, 1361, 2201, 2201, 2201, 1355, 2025, 2025,
2393      2025, 1373, 1373, 1373, 2032, 2032, 2032, 2194, 2190, 1363,
2394      3313, 3314, 2202, 2189, 3315, 2026, 2203, 2203, 2203, 1375,
2395      2204, 2033, 3316, 2205, 3318, 2029, 2029, 2029, 2198, 2030,
2396
2397      3319, 3320, 2031, 3321, 2208, 2208, 2208, 2199, 2209, 3322,
2398      3323, 2210, 2035, 2035, 2035, 3324, 2036, 3325, 2206, 2037,
2399      2039, 2039, 2039, 2214, 2214, 2214, 1394, 1394, 1394, 2217,
2400      2217, 2217, 2219, 2219, 2219, 1406, 1406, 1406, 2040, 3328,
2401      2215, 2053, 2053, 2053, 1396, 2054, 3329, 3330, 2055, 2056,
2402      2056, 2056, 3331, 1408, 2227, 2227, 2227, 1431, 1431, 1431,
2403      2232, 2232, 2232, 1448, 1448, 1448, 3332, 2057, 2066, 2066,
2404      2066, 2228, 2236, 2236, 2236, 1433, 2237, 3333, 2233, 2238,
2405      1722, 1450, 2239, 2239, 2239, 2067, 3344, 2216, 2069, 2069,
2406      2069, 2242, 2242, 2242, 1150, 2243, 1150, 1150, 2244, 2240,
2407
2408      2224, 1458, 1458, 1458, 1150, 2070, 2246, 2246, 2246, 1150,
2409      2073, 2073, 2073, 1150, 2074, 1150, 2230, 2075, 1719, 1460,
2410      1468, 1468, 1468, 2247, 2253, 2253, 2253, 2235, 2241, 2255,
2411      2255, 2255, 2090, 2090, 2090, 1718, 2091, 3352, 1470, 2092,
2412      3334, 3340, 2254, 1486, 1486, 1486, 2256, 2097, 2097, 2097,
2413      3345, 3335, 2248, 3341, 2245, 2271, 2271, 2271, 1150, 2272,
2414      3348, 1488, 2273, 1717, 2098, 2274, 2274, 2274, 2279, 2279,
2415      2279, 1150, 1150, 2249, 2280, 2280, 2280, 2106, 2106, 2106,
2416      2282, 2282, 2282, 2287, 2287, 2287, 2114, 2114, 2114, 2267,
2417      2115, 2115, 2115, 2288, 2288, 2288, 2291, 2291, 2291, 2295,
2418
2419      2295, 2295, 2296, 2296, 2296, 2298, 2298, 2298, 2126, 2126,
2420      2126, 2299, 2299, 2299, 2129, 2129, 2129, 3346, 2130, 3336,
2421      3337, 2131, 2132, 2132, 2132, 1150, 2133, 1150, 1150, 2134,
2422      1215, 1215, 1215, 1221, 1221, 1221, 2140, 2140, 2140, 2289,
2423      2307, 2307, 2307, 1150, 2308, 1150, 3342, 2309, 1217, 1150,
2424      1150, 1223, 1150, 2141, 1230, 1230, 1230, 2300, 2143, 2143,
2425      2143, 3347, 2144, 1150, 3350, 2145, 2146, 2146, 2146, 1150,
2426      2147, 3368, 1232, 2148, 1240, 1240, 1240, 1248, 1248, 1248,
2427      3354, 2303, 2151, 2151, 2151, 1150, 2152, 3355, 1150, 2153,
2428      1716, 3338, 1242, 2305, 2311, 1250, 1150, 3339, 2154, 2154,
2429
2430      2154, 2313, 2313, 2313, 3353, 2314, 1150, 1715, 2315, 1264,
2431      1264, 1264, 1150, 2312, 2310, 2155, 2156, 2156, 2156, 1150,
2432      2157, 3362, 3351, 2158, 2161, 2161, 2161, 1266, 2162, 3374,
2433      1150, 2163, 2167, 2167, 2167, 3349, 2168, 3363, 3360, 2169,
2434      2170, 2170, 2170, 2321, 2321, 2321, 1150, 2322, 1150, 3358,
2435      2323, 2175, 2175, 2175, 1150, 2176, 3359, 2171, 2177, 2328,
2436      2328, 2328, 1291, 1291, 1291, 2331, 2331, 2331, 1150, 3343,
2437      2184, 2184, 2184, 1150, 2185, 2316, 2329, 2186, 1150, 1714,
2438      1293, 3375, 1150, 2332, 1329, 1329, 1329, 1334, 1334, 1334,
2439      2192, 2192, 2192, 2340, 2340, 2340, 3380, 2341, 1150, 1150,
2440
2441      2342, 1713, 1331, 3364, 1150, 1336, 1712, 2193, 1150, 1353,
2442      1353, 1353, 1361, 1361, 1361, 2201, 2201, 2201, 2203, 2203,
2443      2203, 1150, 2204, 1711, 3356, 2205, 2330, 1355, 3357, 1150,
2444      1363, 3361, 3366, 2202, 1373, 1373, 1373, 3376, 2338, 2337,
2445      2208, 2208, 2208, 3365, 2209, 3400, 1150, 2210, 2214, 2214,
2446      2214, 3394, 1375, 2355, 2355, 2355, 3372, 2356, 1150, 1150,
2447      2357, 1394, 1394, 1394, 1150, 2215, 2217, 2217, 2217, 2359,
2448      2359, 2359, 3369, 1150, 2348, 2347, 2219, 2219, 2219, 1396,
2449      2360, 2360, 2360, 3437, 3437, 3437, 1150, 2350, 3437, 3437,
2450      3437, 3437, 3437, 3437, 1406, 1406, 1406, 2361, 3367, 1710,
2451
2452      3437, 2227, 2227, 2227, 3370, 3437, 3377, 1150, 3437, 2368,
2453      2368, 2368, 1408, 2369, 3401, 1150, 2370, 1150, 2228, 2372,
2454      2372, 2372, 2232, 2232, 2232, 2358, 2376, 2376, 2376, 2236,
2455      2236, 2236, 3371, 2237, 2362, 1150, 2238, 2373, 1703, 1700,
2456      2233, 2239, 2239, 2239, 2377, 1150, 3386, 2378, 2378, 2378,
2457      2364, 2379, 2363, 3382, 2380, 1458, 1458, 1458, 2240, 2365,
2458      2242, 2242, 2242, 1150, 2243, 1150, 1150, 2244, 2246, 2246,
2459      2246, 1150, 3378, 1460, 2383, 2383, 2383, 1698, 2384, 1150,
2460      3373, 2385, 1468, 1468, 1468, 2247, 2253, 2253, 2253, 3395,
2461      2255, 2255, 2255, 1150, 2391, 2391, 2391, 1150, 2392, 1150,
2462
2463      1470, 2393, 3379, 3384, 2254, 3381, 2382, 2256, 1486, 1486,
2464      1486, 2405, 2405, 2405, 2271, 2271, 2271, 3383, 2272, 1150,
2465      1150, 2273, 2274, 2274, 2274, 3392, 1488, 3390, 3387, 1150,
2466      2418, 2418, 2418, 2387, 2419, 2419, 2419, 2279, 2279, 2279,
2467      2280, 2280, 2280, 2282, 2282, 2282, 2423, 2423, 2423, 2425,
2468      2425, 2425, 2426, 2426, 2426, 3402, 3385, 2404, 2287, 2287,
2469      2287, 2288, 2288, 2288, 2291, 2291, 2291, 2429, 2429, 2429,
2470      2295, 2295, 2295, 2296, 2296, 2296, 2298, 2298, 2298, 2299,
2471      2299, 2299, 2436, 2436, 2436, 2438, 2438, 2438, 1221, 1221,
2472      1221, 2440, 2440, 2440, 2307, 2307, 2307, 1150, 2308, 3410,
2473
2474      2437, 2309, 1230, 1230, 1230, 1150, 1223, 1150, 2441, 1240,
2475      1240, 1240, 1248, 1248, 1248, 2313, 2313, 2313, 1150, 2314,
2476      1232, 3411, 2315, 2445, 2445, 2445, 1150, 1242, 3388, 1150,
2477      1250, 2321, 2321, 2321, 3398, 2322, 3389, 1150, 2323, 3391,
2478      1150, 2446, 2452, 2452, 2452, 1150, 2443, 2328, 2328, 2328,
2479      2460, 2460, 2460, 2442, 2439, 3399, 2457, 2457, 2457, 2453,
2480      2458, 1150, 1150, 2459, 2329, 2331, 2331, 2331, 2461, 2465,
2481      2465, 2465, 3393, 2444, 1329, 1329, 1329, 2467, 2467, 2467,
2482      2469, 2469, 2469, 2332, 2340, 2340, 2340, 3396, 2341, 1694,
2483      1150, 2342, 1331, 1690, 3408, 2468, 3403, 2470, 3437, 3437,
2484
2485      3437, 3437, 3437, 3437, 3437, 3437, 3437, 2475, 2475, 2475,
2486      1353, 1353, 1353, 1150, 1150, 3437, 1689, 1150, 3437, 3434,
2487      1687, 3437, 1686, 1150, 2476, 1150, 2471, 3406, 1355, 1361,
2488      1361, 1361, 1150, 1150, 2466, 2479, 2479, 2479, 1373, 1373,
2489      1373, 2485, 2485, 2485, 2355, 2355, 2355, 1363, 2356, 1685,
2490      1150, 2357, 2480, 2472, 3407, 2474, 1375, 1394, 1394, 1394,
2491      3397, 3412, 2473, 2359, 2359, 2359, 2360, 2360, 2360, 3404,
2492      2477, 3405, 2487, 2487, 2487, 1396, 2488, 1150, 3420, 2489,
2493      2490, 2490, 2490, 2361, 3437, 3437, 3437, 3414, 1150, 2481,
2494      3437, 3437, 3437, 2478, 2494, 2494, 2494, 2491, 2496, 2496,
2495
2496      2496, 3437, 2497, 2497, 2497, 1150, 1150, 3437, 3437, 3437,
2497      3437, 1683, 2495, 2368, 2368, 2368, 2486, 2369, 1150, 2498,
2498      2370, 2372, 2372, 2372, 3413, 3437, 2376, 2376, 2376, 2378,
2499      2378, 2378, 1681, 2379, 3421, 2492, 2380, 3409, 1673, 2373,
2500      1670, 2493, 3426, 3415, 2377, 2503, 2503, 2503, 2383, 2383,
2501      2383, 1150, 2384, 3418, 1661, 2385, 1659, 1468, 1468, 1468,
2502      2391, 2391, 2391, 2504, 2392, 1150, 1658, 2393, 1486, 1486,
2503      1486, 2405, 2405, 2405, 2499, 1470, 2418, 2418, 2418, 2419,
2504      2419, 2419, 2537, 2537, 2537, 1150, 1488, 1150, 1150, 1150,
2505      2423, 2423, 2423, 2425, 2425, 2425, 2426, 2426, 2426, 2429,
2506
2507      2429, 2429, 3422, 2506, 2543, 2543, 2543, 2436, 2436, 2436,
2508      2438, 2438, 2438, 2547, 2547, 2547, 1656, 2440, 2440, 2440,
2509      2549, 2549, 2549, 3419, 2550, 2437, 3416, 2551, 3417, 2519,
2510      1655, 2548, 1654, 2520, 2441, 2552, 2552, 2552, 1240, 1240,
2511      1240, 1248, 1248, 1248, 2445, 2445, 2445, 2452, 2452, 2452,
2512      2561, 2561, 2561, 2553, 2562, 1150, 1242, 2563, 1651, 1250,
2513      3434, 1150, 2446, 1150, 2453, 2565, 2565, 2565, 2457, 2457,
2514      2457, 1150, 2458, 1150, 1150, 2459, 2460, 2460, 2460, 2574,
2515      2574, 2574, 2566, 2465, 2465, 2465, 1329, 1329, 1329, 2467,
2516      2467, 2467, 3423, 3424, 2461, 3425, 2575, 2469, 2469, 2469,
2517
2518      1150, 1650, 2554, 3427, 1331, 3428, 3429, 2468, 2555, 2577,
2519      2577, 2577, 1150, 2578, 2470, 1150, 2579, 2583, 2583, 2583,
2520      2475, 2475, 2475, 2585, 2585, 2585, 1150, 2586, 1648, 1646,
2521      2587, 2588, 2588, 2588, 2584, 1645, 1643, 2476, 1361, 1361,
2522      1361, 1642, 1638, 2576, 2479, 2479, 2479, 3432, 3430, 2589,
2523      2591, 2591, 2591, 1637, 2592, 1636, 1363, 2593, 2594, 2594,
2524      2594, 2480, 2598, 2598, 2598, 2485, 2485, 2485, 2600, 2600,
2525      2600, 2487, 2487, 2487, 3431, 2488, 2595, 1150, 2489, 2599,
2526      2490, 2490, 2490, 2602, 2602, 2602, 2601, 2603, 1635, 1625,
2527      2604, 2605, 2605, 2605, 2607, 2607, 2607, 2491, 1623, 2590,
2528
2529      2494, 2494, 2494, 2496, 2496, 2496, 1621, 1620, 2606, 3433,
2530      1619, 2608, 2497, 2497, 2497, 2609, 2609, 2609, 2495, 2610,
2531      1618, 1611, 2611, 3437, 3437, 3437, 2503, 2503, 2503, 2498,
2532      1468, 1468, 1468, 1486, 1486, 1486, 2537, 2537, 2537, 1610,
2533      3437, 2648, 2648, 2648, 2504, 2543, 2543, 2543, 1470, 1608,
2534      1607, 1488, 2655, 2655, 2655, 2547, 2547, 2547, 2549, 2549,
2535      2549, 1606, 2550, 1603, 1602, 2551, 2552, 2552, 2552, 2656,
2536      1240, 1240, 1240, 2548, 1248, 1248, 1248, 1594, 2612, 1593,
2537      2662, 2662, 2662, 1592, 2553, 2682, 2682, 2682, 1242, 2565,
2538      2565, 2565, 1250, 2630, 1591, 1590, 2617, 2663, 2561, 2561,
2539
2540      2561, 1589, 2562, 2683, 1588, 2563, 2566, 2666, 2666, 2666,
2541      1587, 2667, 1586, 1580, 2668, 2677, 2677, 2677, 2574, 2574,
2542      2574, 2679, 2679, 2679, 1579, 2680, 1578, 1577, 2681, 1575,
2543      1574, 2657, 2678, 1573, 1572, 2575, 1557, 2577, 2577, 2577,
2544      2658, 2578, 1556, 1551, 2579, 2583, 2583, 2583, 2687, 2687,
2545      2687, 1550, 2688, 1548, 1547, 2689, 2585, 2585, 2585, 1545,
2546      2586, 1541, 2584, 2587, 2588, 2588, 2588, 1361, 1361, 1361,
2547      2591, 2591, 2591, 1540, 2592, 1536, 1535, 2593, 2594, 2594,
2548      2594, 1534, 2589, 1533, 1532, 1363, 2698, 2698, 2698, 2598,
2549      2598, 2598, 1531, 2700, 2700, 2700, 2595, 2701, 1530, 1529,
2550
2551      2702, 1528, 1526, 2699, 1525, 1524, 2599, 2600, 2600, 2600,
2552      2602, 2602, 2602, 1523, 2603, 1522, 1520, 2604, 2605, 2605,
2553      2605, 2607, 2607, 2607, 1519, 2601, 2703, 2703, 2703, 2696,
2554      2704, 1518, 1517, 2705, 1514, 2606, 1513, 1512, 2608, 2706,
2555      2706, 2706, 1511, 2707, 1510, 1509, 2708, 2609, 2609, 2609,
2556      1508, 2610, 1507, 1505, 2611, 3437, 3437, 3437, 2716, 2716,
2557      2716, 2718, 2718, 2718, 1468, 1468, 1468, 2723, 2723, 2723,
2558      1504, 1503, 3437, 1502, 1501, 2717, 1500, 1499, 2719, 2724,
2559      2724, 2724, 1470, 1486, 1486, 1486, 2753, 2753, 2753, 2648,
2560      2648, 2648, 2757, 2757, 2757, 1496, 2725, 2655, 2655, 2655,
2561
2562      1495, 1488, 2760, 2760, 2760, 1494, 2761, 1493, 1492, 2762,
2563      1240, 1240, 1240, 1491, 2656, 1150, 2715, 1485, 1248, 1248,
2564      1248, 2767, 2767, 2767, 2662, 2662, 2662, 1484, 1242, 1483,
2565      2769, 2769, 2769, 1478, 2770, 2722, 1250, 2771, 2768, 1477,
2566      1473, 2663, 1467, 2736, 2772, 2772, 2772, 2666, 2666, 2666,
2567      1466, 2667, 1462, 1457, 2668, 2677, 2677, 2677, 2783, 2783,
2568      2783, 2773, 2784, 1453, 1452, 2785, 2679, 2679, 2679, 2764,
2569      2680, 1444, 2678, 2681, 2682, 2682, 2682, 2763, 2787, 2787,
2570      2787, 2687, 2687, 2687, 1430, 2688, 1429, 1428, 2689, 2796,
2571      2796, 2796, 2683, 1425, 1419, 2788, 2698, 2698, 2698, 2799,
2572
2573      2799, 2799, 1414, 2800, 1410, 1405, 2801, 2797, 2700, 2700,
2574      2700, 1404, 2701, 2699, 1403, 2702, 2703, 2703, 2703, 1402,
2575      2704, 1401, 1400, 2705, 2706, 2706, 2706, 1399, 2707, 1398,
2576      1393, 2708, 3437, 3437, 3437, 2716, 2716, 2716, 2815, 2815,
2577      2815, 1392, 2816, 1387, 1386, 2817, 2718, 2718, 2718, 3437,
2578      1380, 1377, 2717, 2818, 2818, 2818, 1372, 2819, 1371, 1366,
2579      2820, 1365, 1360, 2719, 2821, 2821, 2821, 2823, 2823, 2823,
2580      1468, 1468, 1468, 2723, 2723, 2723, 2724, 2724, 2724, 1349,
2581      1344, 2822, 1343, 1342, 2824, 1486, 1486, 1486, 1470, 2840,
2582      2840, 2840, 2814, 2725, 2826, 2826, 2826, 1338, 2827, 1333,
2583
2584      1322, 2828, 1321, 1488, 1315, 1314, 2841, 1708, 2753, 2753,
2585      2753, 2855, 2855, 2855, 2757, 2757, 2757, 2858, 2858, 2858,
2586      2760, 2760, 2760, 1313, 2761, 1309, 1308, 2762, 1240, 1240,
2587      1240, 1307, 2825, 2865, 2865, 2865, 2837, 2767, 2767, 2767,
2588      2869, 2869, 2869, 1302, 2870, 1290, 1242, 2871, 2769, 2769,
2589      2769, 2866, 2770, 1289, 2768, 2771, 2772, 2772, 2772, 2872,
2590      2872, 2872, 1288, 2873, 1287, 1286, 2874, 2783, 2783, 2783,
2591      1285, 2784, 1284, 2773, 2785, 2787, 2787, 2787, 2885, 2885,
2592      2885, 1283, 2886, 1282, 1281, 2887, 2796, 2796, 2796, 2799,
2593      2799, 2799, 2788, 2800, 2864, 1275, 2801, 2908, 2908, 2908,
2594
2595      1268, 2815, 2815, 2815, 2797, 2816, 1229, 1225, 2817, 2818,
2596      2818, 2818, 1220, 2819, 2909, 1219, 2820, 2821, 2821, 2821,
2597      2914, 2914, 2914, 1207, 2915, 1206, 1205, 2916, 2823, 2823,
2598      2823, 2917, 2917, 2917, 2822, 2918, 1204, 1203, 2919, 1468,
2599      1468, 1468, 2826, 2826, 2826, 2824, 2827, 1202, 1201, 2828,
2600      1486, 1486, 1486, 2931, 2931, 2931, 1200, 1470, 2840, 2840,
2601      2840, 1199, 2933, 2933, 2933, 1198, 2934, 1197, 1488, 2935,
2602      2932, 1708, 2944, 2944, 2944, 2841, 1708, 2855, 2855, 2855,
2603      1708, 2945, 2945, 2945, 2946, 2946, 2946, 2858, 2858, 2858,
2604      2920, 2947, 2947, 2947, 1240, 1240, 1240, 1196, 1195, 2929,
2605
2606      2865, 2865, 2865, 2869, 2869, 2869, 1194, 2870, 1191, 1190,
2607      2871, 1189, 1242, 2872, 2872, 2872, 1188, 2873, 2866, 1187,
2608      2874, 2955, 2955, 2955, 2965, 2965, 2965, 2885, 2885, 2885,
2609      1186, 2886, 1185, 1184, 2887, 2967, 2967, 2967, 2956, 1183,
2610      1180, 2966, 2908, 2908, 2908, 2952, 2986, 2986, 2986, 1179,
2611      2987, 1178, 2968, 2988, 2914, 2914, 2914, 1177, 2915, 2909,
2612      1176, 2916, 2917, 2917, 2917, 1175, 2918, 1174, 1173, 2919,
2613      2993, 2993, 2993, 1486, 1486, 1486, 2931, 2931, 2931, 3003,
2614      3003, 3003, 1172, 3004, 1171, 1164, 3005, 1160, 2994, 1159,
2615      1158, 1488, 1157, 2932, 1708, 1156, 1153, 1708, 2933, 2933,
2616
2617      2933, 1151, 2934, 1150, 1148, 2935, 2944, 2944, 2944, 2945,
2618      2945, 2945, 2946, 2946, 2946, 1146, 1708, 2947, 2947, 2947,
2619      3018, 3018, 3018, 3022, 3022, 3022, 1145, 3023, 1144, 1143,
2620      3024, 1142, 2955, 2955, 2955, 3025, 3025, 3025, 3019, 3001,
2621      1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 2956,
2622      1139, 1706, 3026, 2965, 2965, 2965, 1706, 1706, 1706, 1708,
2623      1706, 3032, 3032, 3032, 1136, 3033, 1134, 1132, 3034, 1131,
2624      2966, 3035, 3035, 3035, 1128, 3036, 1127, 1125, 3037, 2967,
2625      2967, 2967, 2993, 2993, 2993, 1706, 1706, 1706, 1706, 1706,
2626      1706, 1706, 1706, 1706, 1706, 1706, 2968, 1122, 1706, 1121,
2627
2628      2994, 1120, 1116, 1706, 1706, 1706, 1708, 1706, 2986, 2986,
2629      2986, 1115, 2987, 1113, 1112, 2988, 3065, 3065, 3065, 3003,
2630      3003, 3003, 1111, 3004, 1110, 1108, 3005, 1107, 1106, 3018,
2631      3018, 3018, 1706, 1706, 3066, 1105, 1104, 1708, 1706, 1706,
2632      1706, 1706, 1706, 3073, 1706, 1706, 1706, 3019, 1103, 1706,
2633      3025, 3025, 3025, 1100, 1706, 1706, 1706, 1708, 1706, 3022,
2634      3022, 3022, 1099, 3023, 1097, 1094, 3024, 3026, 3092, 3092,
2635      3092, 1093, 3093, 1091, 1090, 3094, 3065, 3065, 3065, 3119,
2636      3119, 3119, 1089, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
2637      1706, 1706, 1706, 3073, 3066, 1088, 1706, 1708, 1709, 1087,
2638
2639      1083, 1706, 1706, 1706, 1708, 1706, 3032, 3032, 3032, 1081,
2640      3033, 1080, 1079, 3034, 3035, 3035, 3035, 1077, 3036, 1076,
2641      1075, 3037, 3128, 3128, 3128, 3130, 3130, 3130, 1072, 1071,
2642      1706, 1706, 1070, 3092, 3092, 3092, 1069, 3093, 1067, 3129,
2643      3094, 1066, 3131, 3140, 3140, 3140, 3148, 3148, 3148, 3156,
2644      3156, 3156, 3119, 3119, 3119, 3128, 3128, 3128, 1065, 1063,
2645      3141, 1062, 1061, 3149, 3164, 3164, 3164, 1150, 3165, 1059,
2646      1708, 3166, 3129, 3130, 3130, 3130, 3167, 3167, 3167, 1056,
2647      3168, 1052, 1051, 3169, 3140, 3140, 3140, 3178, 3178, 3178,
2648      3131, 3179, 1049, 1048, 3180, 3148, 3148, 3148, 3187, 3187,
2649
2650      3187, 3141, 3188, 1907, 1047, 3189, 3156, 3156, 3156, 3164,
2651      3164, 3164, 3149, 3165, 1044, 1043, 3166, 1042, 3167, 3167,
2652      3167, 1040, 3168, 1039, 1150, 3169, 3178, 3178, 3178, 1033,
2653      3179, 1030, 1028, 3180, 3187, 3187, 3187, 1027, 3188, 1026,
2654      1021, 3189, 1020, 3196, 3317, 3317, 3317, 3317, 3317, 3317,
2655      1018, 3326, 1017, 1013, 3327, 3435, 3435, 3435, 3435, 3435,
2656      3435, 1011, 1150, 1010, 1009, 1150, 1008, 1007, 1006, 1005,
2657      1004, 1003, 1002, 3436, 1001,  998, 3436,  248,  248,  248,
2658       248,  248,  248,  248,  248,  248,  249,  249,  249,  249,
2659       249,  249,  249,  249,  249,  254,  254,  254,  254,  254,
2660
2661       254,  254,  254,  254,  257,  257,  257,  257,  257,  257,
2662       257,  257,  257,  260,  260,  260,  260,  260,  260,  260,
2663       260,  260,  263,  263,  263,  263,  263,  263,  263,  263,
2664       263,  270,  270,  270,  270,  270,  270,  270,  270,  270,
2665       277,  277,  277,  277,  277,  277,  277,  277,  277,  282,
2666       282,  282,  282,  282,  282,  282,  282,  282,  294,  294,
2667       294,  294,  294,  294,  294,  294,  294,  300,  300,  300,
2668       300,  300,  300,  300,  300,  300,  308,  308,  308,  308,
2669       308,  308,  308,  308,  308,  312,  312,  312,  312,  312,
2670       312,  312,  312,  312,  318,  318,  318,  318,  318,  318,
2671
2672       318,  318,  318,  324,  324,  324,  324,  324,  324,  324,
2673       324,  324,  330,  330,  330,  330,  330,  330,  330,  330,
2674       330,  336,  336,  336,  336,  336,  336,  336,  336,  336,
2675       343,  343,  343,  343,  343,  343,  343,  343,  343,  348,
2676       348,  348,  348,  348,  348,  348,  348,  348,  355,  355,
2677       355,  355,  355,  355,  355,  355,  355,  364,  364,  364,
2678       364,  364,  364,  364,  364,  364,  382,  382,  382,  382,
2679       382,  382,  382,  382,  382,  389,  389,  389,  389,  389,
2680       389,  389,  389,  389,  393,  393,  393,  393,  393,  393,
2681       393,  393,  393,  400,  400,  400,  400,  400,  400,  400,
2682
2683       400,  400,  404,  404,  404,  404,  404,  404,  404,  404,
2684       404,  410,  410,  410,  410,  410,  410,  410,  410,  410,
2685       418,  418,  418,  418,  418,  418,  418,  418,  418,  426,
2686       426,  426,  426,  426,  426,  426,  426,  426,  432,  432,
2687       432,  432,  432,  432,  432,  432,  432,  438,  438,  438,
2688       438,  438,  438,  438,  438,  438,  442,  442,  442,  442,
2689       442,  442,  442,  442,  442,  450,  450,  450,  450,  450,
2690       450,  450,  450,  450,  457,  457,  457,  457,  457,  457,
2691       457,  457,  457,  464,  464,  464,  464,  464,  464,  464,
2692       464,  464,  469,  469,  469,  469,  469,  469,  469,  469,
2693
2694       469,  475,  475,  475,  475,  475,  475,  475,  475,  475,
2695       480,  480,  480,  480,  480,  480,  480,  480,  480,  486,
2696       486,  486,  486,  486,  486,  486,  486,  486,  491,  491,
2697       491,  491,  491,  491,  491,  491,  491,  497,  497,  497,
2698       497,  497,  497,  497,  497,  497,  502,  502,  502,  502,
2699       502,  502,  502,  502,  502,  508,  508,  508,  508,  508,
2700       508,  508,  508,  508,  517,  517,  517,  517,  517,  517,
2701       517,  517,  517,  524,  524,  524,  524,  524,  524,  524,
2702       524,  524,  528,  528,  528,  528,  528,  528,  528,  528,
2703       528,  539,  539,  539,  539,  539,  539,  539,  539,  539,
2704
2705       547,  547,  547,  547,  547,  547,  547,  547,  547,  555,
2706       555,  555,  555,  555,  555,  555,  555,  555,  560,  560,
2707       560,  560,  560,  560,  560,  560,  560,  566,  566,  566,
2708       566,  566,  566,  566,  566,  566,  574,  574,  574,  574,
2709       574,  574,  574,  574,  574,  580,  580,  580,  580,  580,
2710       580,  580,  580,  580,  585,  585,  585,  585,  585,  585,
2711       585,  585,  585,  592,  592,  592,  592,  592,  592,  592,
2712       592,  592,  597,  597,  597,  597,  597,  597,  597,  597,
2713       597,  603,  603,  603,  603,  603,  603,  603,  603,  603,
2714       610,  610,  610,  610,  610,  610,  610,  610,  610,  617,
2715
2716       617,  617,  617,  617,  617,  617,  617,  617,  624,  624,
2717       624,  624,  624,  624,  624,  624,  624,  632,  632,  632,
2718       632,  632,  632,  632,  632,  632,  263,  263,  263,  263,
2719       263,  263,  263,  263,  263,  643,  643,  643,  643,  643,
2720       643,  643,  643,  643,  649,  649,  649,  649,  649,  649,
2721       649,  649,  649,  668,  668,  668,  995,  994,  993,  668,
2722       704,  704,  704,  991,  990,  989,  704,  712,  712,  712,
2723       988,  987,  982,  712,  716,  716,  716,  980,  979,  978,
2724       716,  722,  722,  722,  976,  975,  974,  722,  728,  728,
2725       728,  973,  971,  968,  728,  733,  733,  733,  967,  965,
2726
2727       964,  733,  743,  743,  743,  963,  961,  960,  743,  762,
2728       762,  762,  959,  958,  955,  762,  766,  766,  766,  954,
2729       953,  950,  766,  770,  770,  770,  949,  948,  947,  770,
2730       780,  780,  780,  942,  940,  939,  780,  786,  786,  786,
2731       931,  930,  929,  786,  791,  791,  791,  928,  922,  921,
2732       791,  799,  799,  799,  920,  918,  915,  799,  804,  804,
2733       804,  914,  913,  912,  804,  809,  809,  809,  907,  904,
2734       906,  809,  814,  814,  814,  901,  900,  899,  814,  819,
2735       819,  819,  897,  896,  893,  819,  830,  830,  830,  892,
2736       891,  889,  830,  839,  839,  839,  888,  886,  885,  839,
2737
2738       848,  848,  848,  884,  883,  881,  848,  853,  853,  853,
2739       880,  879,  878,  853,  864,  864,  864,  877,  876,  874,
2740       864,  870,  870,  870,  872,  871,  869,  870,  875,  875,
2741       875,  865,  863,  859,  875,  882,  882,  882,  855,  854,
2742       852,  882,  890,  890,  890,  850,  849,  847,  890,  898,
2743       898,  898,  846,  844,  843,  898,  903,  903,  903,  903,
2744       903,  903,  903,  842,  903,  668,  668,  668,  841,  840,
2745       838,  668,  919,  837,  831,  829,  919,  704,  704,  704,
2746       824,  823,  822,  704,  962,  821,  820,  818,  962,  712,
2747       712,  712,  816,  815,  813,  712,  966,  811,  810,  808,
2748
2749       966,  716,  716,  716,  806,  805,  803,  716,  972,  801,
2750       800,  798,  972,  722,  722,  722,  797,  794,  793,  722,
2751       977,  792,  790, 3437,  977,  728,  728,  728,  787,  785,
2752       783,  728,  981,  782,  781,  779,  981,  733,  733,  733,
2753       778,  774,  773,  733,  992,  772,  771,  769,  992,  743,
2754       743,  743,  767,  765,  764,  743, 1012,  763,  761,  760,
2755      1012,  762,  762,  762,  759,  752,  748,  762, 1016,  747,
2756       744,  742, 1016,  766,  766,  766,  738,  737,  736,  766,
2757      1019,  735,  734,  732, 1019,  770,  770,  770,  730,  729,
2758       727,  770, 1029,  725,  724,  723, 1029,  780,  780,  780,
2759
2760       721,  719,  718,  780, 1038,  717,  715,  713, 1038,  786,
2761       786,  786,  711,  706,  705,  786, 1041,  703, 3437,  685,
2762      1041,  791,  791,  791,  670,  669,  667,  791, 1050,  666,
2763       660,  659, 1050,  799,  799,  799,  660,  659,  658,  799,
2764      1055,  657, 3437, 3437, 1055,  804,  804,  804, 3437, 3437,
2765      3437,  804, 1060, 3437, 3437, 3437, 1060,  809,  809,  809,
2766      3437, 3437, 3437,  809, 1064, 3437, 3437, 3437, 1064,  814,
2767       814,  814, 3437, 3437, 3437,  814, 1068, 3437, 3437, 3437,
2768      1068,  819,  819,  819, 3437, 3437, 3437,  819, 1078, 3437,
2769      3437, 3437, 1078,  830,  830,  830, 3437, 3437, 3437,  830,
2770
2771      1082, 3437, 3437, 3437, 1082,  839,  839,  839, 3437, 3437,
2772      3437,  839, 1092, 3437, 3437, 3437, 1092,  848,  848,  848,
2773      3437, 3437, 3437,  848, 1098, 3437, 3437, 3437, 1098,  853,
2774       853,  853, 3437, 3437, 3437,  853, 1109, 3437, 3437, 3437,
2775      1109,  864,  864,  864, 3437, 3437, 3437,  864, 1114, 3437,
2776      3437, 3437, 1114,  870,  870,  870, 3437, 3437, 3437,  870,
2777      1119, 3437, 3437, 3437, 1119,  875,  875,  875, 3437, 3437,
2778      3437,  875, 1126, 3437, 3437, 3437, 1126,  882,  882,  882,
2779      3437, 3437, 3437,  882, 1133, 3437, 3437, 3437, 1133,  890,
2780       890,  890, 3437, 3437, 3437,  890, 1141, 3437, 3437, 3437,
2781
2782      1141,  898,  898,  898, 3437, 3437, 3437,  898, 1147, 3437,
2783      3437, 3437, 1147, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
2784      1149, 1149, 1155, 3437, 3437, 3437, 3437, 1155,  668,  668,
2785       668, 3437, 3437, 3437,  668, 1166, 1166, 1166, 1166, 3437,
2786      3437, 1166, 1166,  704,  704,  704,  704, 3437,  704, 3437,
2787       704, 1216, 1216, 1216, 1216, 3437, 3437, 1216, 1216,  712,
2788       712,  712, 3437, 3437, 3437,  712, 1222, 1222, 1222, 1222,
2789      3437, 3437, 1222, 1222,  716,  716,  716, 3437, 3437, 3437,
2790       716, 1231, 1231, 1231, 1231, 3437, 3437, 1231, 1231,  722,
2791       722,  722,  722, 3437,  722, 3437,  722, 1241, 1241, 1241,
2792
2793      1241, 3437, 3437, 1241, 1241,  728,  728,  728,  728, 3437,
2794       728, 3437,  728, 1249, 1249, 1249, 1249, 3437, 3437, 1249,
2795      1249,  733,  733,  733,  733, 3437,  733, 3437,  733, 1265,
2796      1265, 1265, 1265, 3437, 3437, 1265, 1265,  743,  743,  743,
2797      3437, 3437, 3437,  743, 1292, 1292, 1292, 1292, 3437, 3437,
2798      1292, 1292, 1299, 1299, 1299, 1299, 3437, 3437, 1299, 1299,
2799       766,  766,  766, 3437, 3437, 3437,  766, 1304, 1304, 1304,
2800      1304, 3437, 3437, 1304, 1304,  770,  770,  770, 3437, 3437,
2801      3437,  770, 1317, 1317, 1317, 1317, 3437, 3437, 1317, 1317,
2802       780,  780,  780, 3437, 3437, 3437,  780, 1330, 1330, 1330,
2803
2804      1330, 3437, 3437, 1330, 1330,  786,  786,  786, 3437, 3437,
2805      3437,  786, 1335, 1335, 1335, 1335, 3437, 3437, 1335, 1335,
2806       791,  791,  791, 3437, 3437, 3437,  791, 1346, 1346, 1346,
2807      1346, 3437, 3437, 1346, 1346,  799,  799,  799, 3437, 3437,
2808      3437,  799, 1354, 1354, 1354, 1354, 3437, 3437, 1354, 1354,
2809       804,  804,  804, 3437, 3437, 3437,  804, 1362, 1362, 1362,
2810      1362, 3437, 3437, 1362, 1362,  809,  809,  809, 3437, 3437,
2811      3437,  809, 1368, 1368, 1368, 1368, 3437, 3437, 1368, 1368,
2812       814,  814,  814, 3437, 3437, 3437,  814, 1374, 1374, 1374,
2813      1374, 3437, 3437, 1374, 1374,  819,  819,  819, 3437, 3437,
2814
2815      3437,  819, 1389, 1389, 1389, 1389, 3437, 3437, 1389, 1389,
2816       830,  830,  830, 3437, 3437, 3437,  830, 1395, 1395, 1395,
2817      1395, 3437, 3437, 1395, 1395,  839,  839,  839, 3437, 3437,
2818      3437,  839, 1407, 1407, 1407, 1407, 3437, 3437, 1407, 1407,
2819       848,  848,  848, 3437, 3437, 3437,  848, 1416, 1416, 1416,
2820      1416, 3437, 3437, 1416, 1416,  853,  853,  853, 3437, 3437,
2821      3437,  853, 1432, 1432, 1432, 1432, 3437, 3437, 1432, 1432,
2822       864,  864,  864,  864, 3437,  864, 3437,  864, 1441, 1441,
2823      1441, 1441, 3437, 3437, 1441, 1441,  870,  870,  870, 3437,
2824      3437, 3437,  870, 1449, 1449, 1449, 1449, 3437, 3437, 1449,
2825
2826      1449,  875,  875,  875, 3437, 3437, 3437,  875, 1459, 1459,
2827      1459, 1459, 3437, 3437, 1459, 1459,  882,  882,  882, 3437,
2828      3437, 3437,  882, 1469, 1469, 1469, 1469, 3437, 3437, 1469,
2829      1469,  890,  890,  890, 3437, 3437, 3437,  890, 1480, 1480,
2830      1480, 1480, 3437, 3437, 1480, 1480,  898,  898,  898, 3437,
2831      3437, 3437,  898, 1487, 1487, 1487, 1487, 3437, 3437, 1487,
2832      1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
2833      1155, 3437, 1155, 3437, 3437, 1155,  668,  668,  668, 3437,
2834      3437, 3437,  668, 1166, 1166, 1166, 1166, 3437, 3437, 1166,
2835      1166,  704,  704,  704, 3437, 3437, 3437,  704, 1216, 1216,
2836
2837      1216, 1216, 3437, 3437, 1216, 1216,  712,  712,  712, 3437,
2838      3437, 3437,  712, 1222, 1222, 1222, 1222, 3437, 3437, 1222,
2839      1222,  716,  716,  716, 3437, 3437, 3437,  716, 1231, 1231,
2840      1231, 1231, 3437, 3437, 1231, 1231,  722,  722,  722, 3437,
2841      3437, 3437,  722, 1241, 1241, 1241, 1241, 3437, 3437, 1241,
2842      1241, 1249, 1249, 1249, 1249, 3437, 3437, 1249, 1249,  733,
2843       733,  733, 3437, 3437, 3437,  733, 1265, 1265, 1265, 1265,
2844      3437, 3437, 1265, 1265,  743,  743,  743, 3437, 3437, 3437,
2845       743, 1292, 1292, 1292, 1292, 3437, 3437, 1292, 1292, 1299,
2846      1299, 1299, 1299, 3437, 3437, 1299, 1299,  766,  766,  766,
2847
2848       766, 3437,  766, 3437,  766, 1304, 1304, 1304, 1304, 3437,
2849      3437, 1304, 1304,  770,  770,  770, 3437, 3437, 3437,  770,
2850      1317, 1317, 1317, 1317, 3437, 3437, 1317, 1317,  780,  780,
2851       780,  780, 3437,  780, 3437,  780, 1330, 1330, 1330, 1330,
2852      3437, 3437, 1330, 1330,  786,  786,  786,  786, 3437,  786,
2853      3437,  786, 1335, 1335, 1335, 1335, 3437, 3437, 1335, 1335,
2854       791,  791,  791, 3437, 3437, 3437,  791, 1346, 1346, 1346,
2855      1346, 3437, 3437, 1346, 1346,  799,  799,  799, 3437, 3437,
2856      3437,  799, 1354, 1354, 1354, 1354, 3437, 3437, 1354, 1354,
2857       804,  804,  804, 3437, 3437, 3437,  804, 1362, 1362, 1362,
2858
2859      1362, 3437, 3437, 1362, 1362,  809,  809,  809,  809, 3437,
2860       809, 3437,  809, 1368, 1368, 1368, 1368, 3437, 3437, 1368,
2861      1368,  814,  814,  814,  814, 3437,  814, 3437,  814, 1374,
2862      1374, 1374, 1374, 3437, 3437, 1374, 1374,  819,  819,  819,
2863      3437, 3437, 3437,  819, 1389, 1389, 1389, 1389, 3437, 3437,
2864      1389, 1389,  830,  830,  830, 3437, 3437, 3437,  830, 1395,
2865      1395, 1395, 1395, 3437, 3437, 1395, 1395,  839,  839,  839,
2866      3437, 3437, 3437,  839, 1407, 1407, 1407, 1407, 3437, 3437,
2867      1407, 1407,  848,  848,  848, 3437, 3437, 3437,  848, 1416,
2868      1416, 1416, 1416, 3437, 3437, 1416, 1416,  853,  853,  853,
2869
2870      3437, 3437, 3437,  853, 1432, 1432, 1432, 1432, 3437, 3437,
2871      1432, 1432,  864,  864,  864, 3437, 3437, 3437,  864, 1441,
2872      1441, 1441, 1441, 3437, 3437, 1441, 1441,  870,  870,  870,
2873      3437, 3437, 3437,  870, 1449, 1449, 1449, 1449, 3437, 3437,
2874      1449, 1449,  875,  875,  875, 3437, 3437, 3437,  875, 1459,
2875      1459, 1459, 1459, 3437, 3437, 1459, 1459,  882,  882,  882,
2876      3437, 3437, 3437,  882, 1469, 1469, 1469, 1469, 3437, 3437,
2877      1469, 1469,  890,  890,  890,  890, 3437,  890, 3437,  890,
2878      1480, 1480, 1480, 1480, 3437, 3437, 1480, 1480,  898,  898,
2879       898, 3437, 3437, 3437,  898, 1487, 1487, 1487, 1487, 3437,
2880
2881      3437, 1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
2882      1149, 1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
2883      1706,  668,  668,  668, 3437, 3437, 3437,  668,  704,  704,
2884       704, 3437, 3437, 3437,  704, 1216, 1216, 1216, 1216, 3437,
2885      3437, 1216, 1216,  712,  712,  712,  712, 3437,  712, 3437,
2886       712, 1222, 1222, 1222, 1222, 3437, 3437, 1222, 1222,  716,
2887       716,  716, 3437, 3437, 3437,  716, 1231, 1231, 1231, 1231,
2888      3437, 3437, 1231, 1231,  722,  722,  722, 3437, 3437, 3437,
2889       722, 1241, 1241, 1241, 1241, 3437, 3437, 1241, 1241, 1249,
2890      1249, 1249, 1249, 3437, 3437, 1249, 1249,  733,  733,  733,
2891
2892      3437, 3437, 3437,  733, 1265, 1265, 1265, 1265, 3437, 3437,
2893      1265, 1265,  743,  743,  743, 3437, 3437, 3437,  743, 1292,
2894      1292, 1292, 1292, 3437, 3437, 1292, 1292, 1299, 1299, 1299,
2895      1299, 3437, 3437, 1299, 1299, 1304, 1304, 1304, 1304, 3437,
2896      3437, 1304, 1304,  770,  770,  770, 3437, 3437, 3437,  770,
2897      1317, 1317, 1317, 1317, 3437, 3437, 1317, 1317, 1330, 1330,
2898      1330, 1330, 3437, 3437, 1330, 1330, 1335, 1335, 1335, 1335,
2899      3437, 3437, 1335, 1335,  791,  791,  791, 3437, 3437, 3437,
2900       791, 1346, 1346, 1346, 1346, 3437, 3437, 1346, 1346,  799,
2901       799,  799, 3437, 3437, 3437,  799, 1354, 1354, 1354, 1354,
2902
2903      3437, 3437, 1354, 1354,  804,  804,  804,  804, 3437,  804,
2904      3437,  804, 1362, 1362, 1362, 1362, 3437, 3437, 1362, 1362,
2905       809,  809,  809, 3437, 3437, 3437,  809, 1368, 1368, 1368,
2906      1368, 3437, 3437, 1368, 1368,  814,  814,  814, 3437, 3437,
2907      3437,  814, 1374, 1374, 1374, 1374, 3437, 3437, 1374, 1374,
2908       819,  819,  819, 3437, 3437, 3437,  819, 1389, 1389, 1389,
2909      1389, 3437, 3437, 1389, 1389,  830,  830,  830, 3437, 3437,
2910      3437,  830, 1395, 1395, 1395, 1395, 3437, 3437, 1395, 1395,
2911       839,  839,  839, 3437, 3437, 3437,  839, 1407, 1407, 1407,
2912      1407, 3437, 3437, 1407, 1407,  848,  848,  848,  848, 3437,
2913
2914       848, 3437,  848, 1416, 1416, 1416, 1416, 3437, 3437, 1416,
2915      1416,  853,  853,  853, 3437, 3437, 3437,  853, 1432, 1432,
2916      1432, 1432, 3437, 3437, 1432, 1432,  864,  864,  864, 3437,
2917      3437, 3437,  864, 1441, 1441, 1441, 1441, 3437, 3437, 1441,
2918      1441,  870,  870,  870, 3437, 3437, 3437,  870, 1449, 1449,
2919      1449, 1449, 3437, 3437, 1449, 1449,  875,  875,  875, 3437,
2920      3437, 3437,  875, 1459, 1459, 1459, 1459, 3437, 3437, 1459,
2921      1459,  882,  882,  882, 3437, 3437, 3437,  882, 1469, 1469,
2922      1469, 1469, 3437, 3437, 1469, 1469,  890,  890,  890, 3437,
2923      3437, 3437,  890, 1480, 1480, 1480, 1480, 3437, 3437, 1480,
2924
2925      1480,  898,  898,  898, 3437, 3437, 3437,  898, 1487, 1487,
2926      1487, 1487, 3437, 3437, 1487, 1487, 1149, 1149, 1149, 1149,
2927      1149, 1149, 1149, 1149, 1149, 1706, 1706, 1706, 1706, 1706,
2928      1706, 1706, 1706, 1706,  668,  668,  668, 3437, 3437, 3437,
2929       668,  704,  704,  704,  704, 3437,  704, 3437,  704, 1216,
2930      1216, 1216, 1216, 3437, 3437, 1216, 1216, 1222, 1222, 1222,
2931      1222, 3437, 3437, 1222, 1222,  716,  716,  716, 3437, 3437,
2932      3437,  716, 1231, 1231, 1231, 1231, 3437, 3437, 1231, 1231,
2933       722,  722,  722,  722, 3437,  722, 3437,  722, 1241, 1241,
2934      1241, 1241, 3437, 3437, 1241, 1241, 1249, 1249, 1249, 1249,
2935
2936      3437, 3437, 1249, 1249,  733,  733,  733,  733, 3437,  733,
2937      3437,  733, 1265, 1265, 1265, 1265, 3437, 3437, 1265, 1265,
2938       743,  743,  743, 3437, 3437, 3437,  743, 1292, 1292, 1292,
2939      1292, 3437, 3437, 1292, 1292, 1299, 1299, 1299, 1299, 3437,
2940      3437, 1299, 1299,  770,  770,  770, 3437, 3437, 3437,  770,
2941      1317, 1317, 1317, 1317, 3437, 3437, 1317, 1317, 1330, 1330,
2942      1330, 1330, 3437, 3437, 1330, 1330, 1335, 1335, 1335, 1335,
2943      3437, 3437, 1335, 1335,  791,  791,  791, 3437, 3437, 3437,
2944       791, 1346, 1346, 1346, 1346, 3437, 3437, 1346, 1346,  799,
2945       799,  799, 3437, 3437, 3437,  799, 1354, 1354, 1354, 1354,
2946
2947      3437, 3437, 1354, 1354, 1362, 1362, 1362, 1362, 3437, 3437,
2948      1362, 1362,  809,  809,  809, 3437, 3437, 3437,  809, 1368,
2949      1368, 1368, 1368, 3437, 3437, 1368, 1368,  814,  814,  814,
2950       814, 3437,  814, 3437,  814, 1374, 1374, 1374, 1374, 3437,
2951      3437, 1374, 1374,  819,  819,  819, 3437, 3437, 3437,  819,
2952      1389, 1389, 1389, 1389, 3437, 3437, 1389, 1389,  830,  830,
2953       830, 3437, 3437, 3437,  830, 1395, 1395, 1395, 1395, 3437,
2954      3437, 1395, 1395,  839,  839,  839, 3437, 3437, 3437,  839,
2955      1407, 1407, 1407, 1407, 3437, 3437, 1407, 1407, 1416, 1416,
2956      1416, 1416, 3437, 3437, 1416, 1416,  853,  853,  853, 3437,
2957
2958      3437, 3437,  853, 1432, 1432, 1432, 1432, 3437, 3437, 1432,
2959      1432,  864,  864,  864, 3437, 3437, 3437,  864, 1441, 1441,
2960      1441, 1441, 3437, 3437, 1441, 1441,  870,  870,  870, 3437,
2961      3437, 3437,  870, 1449, 1449, 1449, 1449, 3437, 3437, 1449,
2962      1449,  875,  875,  875,  875, 3437,  875, 3437,  875, 1459,
2963      1459, 1459, 1459, 3437, 3437, 1459, 1459,  882,  882,  882,
2964      3437, 3437, 3437,  882, 1469, 1469, 1469, 1469, 3437, 3437,
2965      1469, 1469,  890,  890,  890, 3437, 3437, 3437,  890, 1480,
2966      1480, 1480, 1480, 3437, 3437, 1480, 1480,  898,  898,  898,
2967      3437, 3437, 3437,  898, 1487, 1487, 1487, 1487, 3437, 3437,
2968
2969      1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
2970      1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
2971       668,  668,  668,  668, 3437,  668, 3437,  668,  704,  704,
2972       704, 3437, 3437, 3437,  704, 1216, 1216, 1216, 1216, 3437,
2973      3437, 1216, 1216, 1222, 1222, 1222, 1222, 3437, 3437, 1222,
2974      1222,  716,  716,  716, 3437, 3437, 3437,  716, 1231, 1231,
2975      1231, 1231, 3437, 3437, 1231, 1231, 1241, 1241, 1241, 1241,
2976      3437, 3437, 1241, 1241, 1249, 1249, 1249, 1249, 3437, 3437,
2977      1249, 1249,  733,  733,  733,  733, 3437,  733, 3437,  733,
2978      1265, 1265, 1265, 1265, 3437, 3437, 1265, 1265,  743,  743,
2979
2980       743, 3437, 3437, 3437,  743, 1292, 1292, 1292, 1292, 3437,
2981      3437, 1292, 1292, 1299, 1299, 1299, 1299, 3437, 3437, 1299,
2982      1299,  770,  770,  770, 3437, 3437, 3437,  770, 1330, 1330,
2983      1330, 1330, 3437, 3437, 1330, 1330, 1335, 1335, 1335, 1335,
2984      3437, 3437, 1335, 1335,  791,  791,  791, 3437, 3437, 3437,
2985       791,  799,  799,  799, 3437, 3437, 3437,  799, 1354, 1354,
2986      1354, 1354, 3437, 3437, 1354, 1354, 1362, 1362, 1362, 1362,
2987      3437, 3437, 1362, 1362,  809,  809,  809, 3437, 3437, 3437,
2988       809, 1368, 1368, 1368, 1368, 3437, 3437, 1368, 1368, 1374,
2989      1374, 1374, 1374, 3437, 3437, 1374, 1374,  819,  819,  819,
2990
2991      3437, 3437, 3437,  819,  830,  830,  830,  830, 3437,  830,
2992      3437,  830, 1395, 1395, 1395, 1395, 3437, 3437, 1395, 1395,
2993       839,  839,  839, 3437, 3437, 3437,  839, 1407, 1407, 1407,
2994      1407, 3437, 3437, 1407, 1407,  853,  853,  853, 3437, 3437,
2995      3437,  853, 1432, 1432, 1432, 1432, 3437, 3437, 1432, 1432,
2996       864,  864,  864, 3437, 3437, 3437,  864, 1441, 1441, 1441,
2997      1441, 3437, 3437, 1441, 1441,  870,  870,  870, 3437, 3437,
2998      3437,  870, 1449, 1449, 1449, 1449, 3437, 3437, 1449, 1449,
2999       875,  875,  875,  875, 3437,  875, 3437,  875, 1459, 1459,
3000      1459, 1459, 3437, 3437, 1459, 1459,  882,  882,  882,  882,
3001
3002      3437,  882, 3437,  882, 1469, 1469, 1469, 1469, 3437, 3437,
3003      1469, 1469,  890,  890,  890, 3437, 3437, 3437,  890, 1480,
3004      1480, 1480, 1480, 3437, 3437, 1480, 1480,  898,  898,  898,
3005       898, 3437,  898, 3437,  898, 1487, 1487, 1487, 1487, 3437,
3006      3437, 1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
3007      1149, 1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
3008      1706,  704,  704,  704, 3437, 3437, 3437,  704, 1216, 1216,
3009      1216, 1216, 3437, 3437, 1216, 1216, 1222, 1222, 1222, 1222,
3010      3437, 3437, 1222, 1222,  716,  716,  716, 3437, 3437, 3437,
3011       716, 1231, 1231, 1231, 1231, 3437, 3437, 1231, 1231, 1241,
3012
3013      1241, 1241, 1241, 3437, 3437, 1241, 1241, 1249, 1249, 1249,
3014      1249, 3437, 3437, 1249, 1249, 1265, 1265, 1265, 1265, 3437,
3015      3437, 1265, 1265,  743,  743,  743, 3437, 3437, 3437,  743,
3016      1292, 1292, 1292, 1292, 3437, 3437, 1292, 1292, 1299, 1299,
3017      1299, 1299, 3437, 3437, 1299, 1299,  770,  770,  770, 3437,
3018      3437, 3437,  770, 1330, 1330, 1330, 1330, 3437, 3437, 1330,
3019      1330, 1335, 1335, 1335, 1335, 3437, 3437, 1335, 1335,  791,
3020       791,  791, 3437, 3437, 3437,  791,  799,  799,  799, 3437,
3021      3437, 3437,  799, 1354, 1354, 1354, 1354, 3437, 3437, 1354,
3022      1354, 1362, 1362, 1362, 1362, 3437, 3437, 1362, 1362,  809,
3023
3024       809,  809, 3437, 3437, 3437,  809, 1374, 1374, 1374, 1374,
3025      3437, 3437, 1374, 1374,  819,  819,  819, 3437, 3437, 3437,
3026       819, 1395, 1395, 1395, 1395, 3437, 3437, 1395, 1395,  839,
3027       839,  839,  839, 3437,  839, 3437,  839, 1407, 1407, 1407,
3028      1407, 3437, 3437, 1407, 1407,  853,  853,  853, 3437, 3437,
3029      3437,  853, 1432, 1432, 1432, 1432, 3437, 3437, 1432, 1432,
3030       864,  864,  864, 3437, 3437, 3437,  864,  870,  870,  870,
3031      3437, 3437, 3437,  870, 1449, 1449, 1449, 1449, 3437, 3437,
3032      1449, 1449,  875,  875,  875, 3437, 3437, 3437,  875, 1459,
3033      1459, 1459, 1459, 3437, 3437, 1459, 1459,  882,  882,  882,
3034
3035      3437, 3437, 3437,  882, 1469, 1469, 1469, 1469, 3437, 3437,
3036      1469, 1469,  890,  890,  890, 3437, 3437, 3437,  890, 1487,
3037      1487, 1487, 1487, 3437, 3437, 1487, 1487, 1149, 1149, 1149,
3038      1149, 1149, 1149, 1149, 1149, 1149, 1706, 1706, 1706, 1706,
3039      1706, 1706, 1706, 1706, 1706,  704,  704,  704, 3437, 3437,
3040      3437,  704, 1216, 1216, 1216, 1216, 3437, 3437, 1216, 1216,
3041      1222, 1222, 1222, 1222, 3437, 3437, 1222, 1222,  716,  716,
3042       716,  716, 3437,  716, 3437,  716, 1231, 1231, 1231, 1231,
3043      3437, 3437, 1231, 1231, 1241, 1241, 1241, 1241, 3437, 3437,
3044      1241, 1241, 1249, 1249, 1249, 1249, 3437, 3437, 1249, 1249,
3045
3046      1265, 1265, 1265, 1265, 3437, 3437, 1265, 1265,  743,  743,
3047       743, 3437, 3437, 3437,  743, 1292, 1292, 1292, 1292, 3437,
3048      3437, 1292, 1292,  770,  770,  770, 3437, 3437, 3437,  770,
3049      1330, 1330, 1330, 1330, 3437, 3437, 1330, 1330, 1335, 1335,
3050      1335, 1335, 3437, 3437, 1335, 1335,  791,  791,  791,  791,
3051      3437,  791, 3437,  791,  799,  799,  799,  799, 3437,  799,
3052      3437,  799, 1354, 1354, 1354, 1354, 3437, 3437, 1354, 1354,
3053      1362, 1362, 1362, 1362, 3437, 3437, 1362, 1362,  809,  809,
3054       809,  809, 3437,  809, 3437,  809, 1374, 1374, 1374, 1374,
3055      3437, 3437, 1374, 1374,  819,  819,  819, 3437, 3437, 3437,
3056
3057       819, 1395, 1395, 1395, 1395, 3437, 3437, 1395, 1395,  839,
3058       839,  839,  839, 3437,  839, 3437,  839, 1407, 1407, 1407,
3059      1407, 3437, 3437, 1407, 1407,  853,  853,  853,  853, 3437,
3060       853, 3437,  853,  864,  864,  864, 3437, 3437, 3437,  864,
3061       870,  870,  870, 3437, 3437, 3437,  870,  875,  875,  875,
3062      3437, 3437, 3437,  875, 1459, 1459, 1459, 1459, 3437, 3437,
3063      1459, 1459,  882,  882,  882, 3437, 3437, 3437,  882, 1469,
3064      1469, 1469, 1469, 3437, 3437, 1469, 1469,  890,  890,  890,
3065      3437, 3437, 3437,  890, 1487, 1487, 1487, 1487, 3437, 3437,
3066      1487, 1487, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
3067
3068      1149, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
3069       704,  704,  704, 3437, 3437, 3437,  704, 1222, 1222, 1222,
3070      1222, 3437, 3437, 1222, 1222, 1231, 1231, 1231, 1231, 3437,
3071      3437, 1231, 1231, 1241, 1241, 1241, 1241, 3437, 3437, 1241,
3072      1241, 1249, 1249, 1249, 1249, 3437, 3437, 1249, 1249,  743,
3073       743,  743, 3437, 3437, 3437,  743,  770,  770,  770, 3437,
3074      3437, 3437,  770, 1330, 1330, 1330, 1330, 3437, 3437, 1330,
3075      1330,  791,  791,  791, 3437, 3437, 3437,  791, 1354, 1354,
3076      1354, 1354, 3437, 3437, 1354, 1354, 1362, 1362, 1362, 1362,
3077      3437, 3437, 1362, 1362, 3006, 3006, 3006, 3006, 3006, 3006,
3078
3079      3006, 3006, 3006, 3007, 3007, 3007, 3007, 3007, 3007, 3007,
3080      3007, 3007, 3068, 3068, 3068, 3068, 3068, 3068, 3068, 3068,
3081      3068, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071,
3082      3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3118,
3083      3118, 3118, 3118, 3118, 3118, 3118, 3118, 3118,  247, 3437,
3084      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
3085      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
3086      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
3087      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
3088      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
3089
3090      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
3091      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
3092      3437, 3437, 3437
3093     } ;
3094
3095 static yyconst flex_int16_t yy_chk[12424] =
3096     {   0,
3097         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3098         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3099         4,   10,  549,    5,    0,    9,    6,    0,   10,    7,
3100         8,    8,    8,  252,   11,   13,   13,   12,   14,   14,
3101        13,   13,  290,   14,   14,  253,    8,   17,   17,  252,
3102        13,   15,   15,   14,   15,  256,   15,   16,   16,  549,
3103        16,  253,   16,   18,   18,  363,   15,   21,   21,   21,
3104       363,  256,   16,   22,   22,   22,   23,   23,   23,   24,
3105        24,   24, 1071,   21,   25,   25,   25,  456, 1071,   22,
3106       662,   17,   23,  662,  290,   24,  250,  250,  250,  456,
3107
3108        25,  251,  251,  251,  255,  255,  255,   18,   19,   19,
3109        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
3110        19,   19,   19,  573,   19,   19,   19,   19,   19,   26,
3111        26,   26,   27,   27,   27,   28,   28,   28,  573,   29,
3112        29,   29,   30,   30,   30,   26,  278,  295,   27,  299,
3113       374,   28,  304,   19,   19,   29,  299, 1290,   30,  275,
3114       275,  275,  278,  295,   19,  283,  283,  283,  303, 1290,
3115       266,  374,  303,   19,   20,   20,   20,   20,   20,   20,
3116        20,   20,   20,   20,   20,   20,   20,   20,   20, 1510,
3117        20,   20,   20,   20,   20,   31,   31,   31,   32,   32,
3118
3119        32,   33,   33,   33,  304,   34,   34,   34,   35,   35,
3120        35,   31,  266,  309,   32, 1511,  674,   33,  266,   20,
3121        20,   34,  319,  266,   35,   36,   36,   36,  266,  309,
3122        20,   37,   37,   37,   38,   38,   38, 1512,  319,   20,
3123       674,   36,   39,   39,   39, 1514,  331,   37,  653,  344,
3124        38,   40,   40,   40,  292,  292,  292,  339,   39,  301,
3125       301,  301,  331,  653,  302,  344, 1515,   40,   41,   41,
3126        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
3127        41,   41,   41,  420,   41,   41,   41,   41,   41,   43,
3128        43,   43,   44,   44,   44,   45,   45,   45,  351,   46,
3129
3130        46,   46,   47,   47,   47,   43,  379,  682,   44,  339,
3131      1517,   45,  302,   41,   41,   46,  302,  356,   47,   41,
3132       379,  682,   41,  306,  306,  306,  313,  313,  313,  316,
3133       316,  316,  420,  356,   41,   42,   42,   42,   42,   42,
3134        42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
3135       351,   42,   42,   42,   42,   42,   48,   48,   48,   49,
3136        49,   49,   50,   50,   50,  377,   53,   53,   53,   54,
3137        54,   54,   48,  377,  371,   49,  314, 1518,   50,  377,
3138        42,   42,   53,  314,  326,   54,   42, 1519,  385,   42,
3139       371,  326,  314,  325,  325,  325,  328,  328,  328,  396,
3140
3141       326,   42,   51,   51,   51,   51,   51,   51,   51,   51,
3142        51,   51,   51,   51,   51,   51,   51,  687,   51,   51,
3143        51,   51,   51,   57,   57,   57,   58,   58,   58,   61,
3144        61,   61,  675,   62,   62,   62,   63,   63,   63,   57,
3145       385,  687,   58,  675, 1520,   61,  675,   51,   51,   62,
3146       390,  396,   63,   64,   64,   64,  337,  337,  337,  341,
3147       341,  341,  338,  349,  349,  349,  390,  772,  350,   64,
3148       772,   51,   52,   52,   52,   52,   52,   52,   52,   52,
3149        52,   52,   52,   52,   52,   52,   52,  698,   52,   52,
3150        52,   52,   52,   65,   65,   65,   66,   66,   66,   67,
3151
3152        67,   67,  894,   68,   68,   68,   71,   71,   71,   65,
3153       338,  698,   66, 1522,  338,   67,  350,   52,   52,   68,
3154       350, 1523,   71,   72,   72,   72,  353,  353,  353,  365,
3155       365,  365,  368,  368,  368,  383,  383,  383,  894,   72,
3156       932,   52,   55,   55,   55,   55,   55,   55,   55,   55,
3157        55,   55,   55,   55,   55,   55,   55,  932,   55,   55,
3158        55,   55,   55,   73,   73,   73,   74,   74,   74,   75,
3159        75,   75,  694,   76,   76,   76,   77,   77,   77,   73,
3160       401,  411,   74,  366,  427,   75,  694,   55,   55,   76,
3161       366,   55,   77,  387,  387,  387,  401,  411,   55,  366,
3162
3163       427,   55,   56,   56,   56,   56,   56,   56,   56,   56,
3164        56,   56,   56,   56,   56,   56,   56, 1524,   56,   56,
3165        56,   56,   56,   78,   78,   78,   81,   81,   81,   82,
3166        82,   82,  700,   85,   85,   85,   86,   86,   86,   78,
3167       417,  439,   81,  406,  417,   82,  700,   56,   56,   85,
3168       406,   56,   86,  394,  394,  394,  516,  439,   56,  406,
3169       516,   56,   59,   59,   59,   59,   59,   59,   59,   59,
3170        59,   59,   59,   59,   59,   59,   59,  701,   59,   59,
3171        59,   59,   59,   87,   87,   87,   88,   88,   88,   89,
3172        89,   89,  422,   90,   90,   90,   91,   91,   91,   87,
3173
3174       680,  701,   88, 1525,  680,   89,  380,   59,   59,   90,
3175       434,  451,   91,   59,  380,  446,   59,  434,  380,  380,
3176       398,  398,  398,  405,  405,  405,  434,  451,   59,   60,
3177        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
3178        60,   60,   60,   60,  422,   60,   60,   60,   60,   60,
3179        92,   92,   92,   95,   95,   95,   96,   96,   96,  460,
3180        97,   97,   97,   98,   98,   98,   92,  446, 1186,   95,
3181      1526, 1529,   96, 1532,   60,   60,   97,  465,  476,   98,
3182        60, 1186,  531,   60,  408,  408,  408,  419,  419,  419,
3183       424,  424,  424,  465,  476,   60,   69,   69,   69,   69,
3184
3185        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
3186        69,  460,   69,   69,   69,   69,   69,   99,   99,   99,
3187       100,  100,  100,  101,  101,  101,  533,  102,  102,  102,
3188       105,  105,  105,   99,  531, 1533,  100, 1534, 1535,  101,
3189      1536,   69,   69,  102,  487,  498,  105,   69,  433,  433,
3190       433,  436,  436,  436,  443,  443,  443,  448,  448,  448,
3191       487,  498,   69,   70,   70,   70,   70,   70,   70,   70,
3192        70,   70,   70,   70,   70,   70,   70,   70,  533,   70,
3193        70,   70,   70,   70,  106,  106,  106,  109,  109,  109,
3194       110,  110,  110,  535,  111,  111,  111,  112,  112,  112,
3195
3196       106,  778, 1540,  109, 1541,  778,  110, 1545,   70,   70,
3197       111,  509,  525,  112,   70,  458,  458,  458,  462,  462,
3198       462,  470,  470,  470,  473,  473,  473,  509,  525,   70,
3199        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
3200        79,   79,   79,   79,   79,  535,   79,   79,   79,   79,
3201        79,  113,  113,  113,  114,  114,  114,  115,  115,  115,
3202       551,  116,  116,  116,  119,  119,  119,  113,  520,  540,
3203       114,  471,  556,  115, 1490,   79,   79,  116,  471,   79,
3204       119,  481,  481,  481,  520,  540,   79,  471,  556,   79,
3205       484,  484,  484,   79, 1490,   79,   79,   80,   80,   80,
3206
3207        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
3208        80,   80,  551,   80,   80,   80,   80,   80,  120,  120,
3209       120,  123,  123,  123,  124,  124,  124,  520,  125,  125,
3210       125,  126,  126,  126,  120,  567,  581,  123,  482,  593,
3211       124, 1550,   80,   80,  125,  482,   80,  126,  492,  492,
3212       492,  567,  581,   80,  482,  593,   80,  495,  495,  495,
3213        80, 1551,   80,   80,   83,   83,   83,   83,   83,   83,
3214        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3215        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3216        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3217
3218        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3219        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3220        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3221        83,   83,   83,   83,   83,   83,   83,   83,   93,   93,
3222        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
3223        93,   93,   93, 1556,   93,   93,   93,   93,   93,  127,
3224       127,  127,  128,  128,  128,  129,  129,  129, 1557,  130,
3225       130,  130,  133,  133,  133,  127,  604,  618,  128,  584,
3226      1572,  129,  588,   93,   93,  130,  584,  613,  133,  503,
3227       503,  503,  604,  618,   93,   94,   94,   94,   94,   94,
3228
3229        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
3230      1573,   94,   94,   94,   94,   94,  134,  134,  134,  135,
3231       135,  135,  136,  136,  136, 1575,  137,  137,  137,  138,
3232       138,  138,  134,  626,  588,  135,  681, 1577,  136,  613,
3233        94,   94,  137,  681,  628,  138,  506,  506,  506,  681,
3234      1031,   94,  103,  103,  103,  103,  103,  103,  103,  103,
3235       103,  103,  103,  103,  103,  103,  103, 1031,  103,  103,
3236       103,  103,  103,  139,  139,  139,  140,  140,  140,  143,
3237       143,  143,  626,  144,  144,  144,  147,  147,  147,  139,
3238      1579, 1580,  140,  493,  504,  143,  628,  103,  103,  144,
3239
3240       493,  504,  147,  518,  518,  518,  522,  522,  522,  493,
3241       504, 1586, 1135,  103,  104,  104,  104,  104,  104,  104,
3242       104,  104,  104,  104,  104,  104,  104,  104,  104, 1135,
3243       104,  104,  104,  104,  104,  148,  148,  148,  151,  151,
3244       151,  152,  152,  152, 1587,  155,  155,  155,  156,  156,
3245       156,  148, 1588, 1589,  151,  519,  562,  152,  633,  104,
3246       104,  155,  519,  562,  156,  529,  529,  529,  537,  537,
3247       537,  519,  562,  288,  633,  104,  107,  107,  107,  107,
3248       107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
3249       107, 1590,  107,  107,  107,  107,  107,  159,  159,  159,
3250
3251       160,  160,  160,  161,  161,  161,  571,  162,  162,  162,
3252       571,  288, 1591,  159,  571,  532,  160,  702, 1593,  161,
3253      1594,  107,  107,  162,  107,  288,  107,  288,  532,  288,
3254       532,  702,  107,  548,  548,  548,  553,  553,  553,  107,
3255       530, 1595,  107,  108,  108,  108,  108,  108,  108,  108,
3256       108,  108,  108,  108,  108,  108,  108,  108, 1596,  108,
3257       108,  108,  108,  108,  165,  165,  165,  166,  166,  166,
3258       167,  167,  167,  688,  168,  168,  168,  888, 1602,  530,
3259       165,  888,  644,  166,  688, 1603,  167,  688,  108,  108,
3260       168,  108,  530,  108,  530,  561,  561,  561,  644,  108,
3261
3262       564,  564,  564,  575,  575,  575,  108, 1606, 1608,  108,
3263       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
3264       117,  117,  117,  117,  117,  587,  117,  117,  117,  117,
3265       117,  169,  169,  169,  170,  170,  170,  171,  171,  171,
3266       835,  172,  172,  172,  173,  173,  173,  169, 1610, 1611,
3267       170,  576,  685,  171,  835,  117,  117,  172,  576,  685,
3268       173,  117,  578,  578,  578,  685,  117,  576,  586,  586,
3269       586, 1618, 1619,  587,  590,  590,  590,  587,  117,  118,
3270       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
3271       118,  118,  118,  118, 1620,  118,  118,  118,  118,  118,
3272
3273       174,  174,  174,  175,  175,  175,  176,  176,  176, 1621,
3274       177,  177,  177,  178,  178,  178,  174, 1623, 1629,  175,
3275       599,  693,  176, 1633,  118,  118,  177,  599,  693,  178,
3276       118,  598,  598,  598,  693,  118,  599,  601,  601,  601,
3277       611,  611,  611,  615,  615,  615, 1635,  118,  121,  121,
3278       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
3279       121,  121,  121, 1637,  121,  121,  121,  121,  121,  179,
3280       179,  179,  180,  180,  180,  181,  181,  181,  833,  182,
3281       182,  182,  183,  183,  183,  179,  836, 1638,  180,  833,
3282      1643,  181,  833,  121,  121,  182, 1645,  836,  183, 1646,
3283
3284       836,  121,  122,  122,  122,  122,  122,  122,  122,  122,
3285       122,  122,  122,  122,  122,  122,  122, 1648,  122,  122,
3286       122,  122,  122,  184,  184,  184,  187,  187,  187,  188,
3287       188,  188, 1649,  189,  189,  189,  190,  190,  190,  184,
3288      1152, 1191,  187, 1650, 1152,  188, 1651,  122,  122,  189,
3289      1654, 1655,  190, 1656, 1191,  122,  131,  131,  131,  131,
3290       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3291       131, 1658,  131,  131,  131,  131,  131,  191,  191,  191,
3292       192,  192,  192,  193,  193,  193, 1661,  194,  194,  194,
3293       197,  197,  197,  191,  905, 1670,  192,  638, 1399,  193,
3294
3295      1673,  131,  131,  194,  638,  131,  197,  625,  625,  625,
3296       905, 1399,  131,  638, 1681,  131,  630,  630,  630,  641,
3297       641,  641,  131,  132,  132,  132,  132,  132,  132,  132,
3298       132,  132,  132,  132,  132,  132,  132,  132, 1683,  132,
3299       132,  132,  132,  132,  198,  198,  198,  201,  201,  201,
3300       202,  202,  202, 1685,  205,  205,  205,  206,  206,  206,
3301       198, 1686, 1687,  201,  651, 1689,  202, 1694,  132,  132,
3302       205,  651,  132,  206,  650,  650,  650, 1697, 1698,  132,
3303       651, 1700,  132,  652,  652,  652,  661,  661,  661,  132,
3304       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3305
3306       141,  141,  141,  141,  141, 1706,  141,  141,  141,  141,
3307       141,  207,  207,  207,  208,  208,  208,  209,  209,  209,
3308      1709,  210,  210,  210,  211,  211,  211,  207, 1712, 1713,
3309       208,  699, 1714,  209, 1715,  141,  141,  210,  699, 1716,
3310       211,  141, 1717, 1718,  699,  661,  141,  142,  142,  142,
3311       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3312       142,  142, 1719,  142,  142,  142,  142,  142,  212,  212,
3313       212,  215,  215,  215,  216,  216,  216, 1721,  219,  219,
3314       219,  220,  220,  220,  212, 1722, 1724,  215,  834,  837,
3315       216, 1725,  142,  142,  219,  834,  837,  220,  142, 1727,
3316
3317      1729,  834,  837,  142,  145,  145,  145,  145,  145,  145,
3318       145,  145,  145,  145,  145,  145,  145,  145,  145, 1730,
3319       145,  145,  145,  145,  145,  221,  221,  221,  222,  222,
3320       222,  223,  223,  223, 1732,  224,  224,  224,  225,  225,
3321       225,  221,  995, 1734,  222, 1705, 1737,  223, 1738,  145,
3322       145,  224,  995, 1739,  225,  226,  226,  226, 1740,  995,
3323       145,  908,  908,  908, 1741,  908, 1169, 1169, 1169, 1743,
3324      1705,  226, 1744,  145,  146,  146,  146,  146,  146,  146,
3325       146,  146,  146,  146,  146,  146,  146,  146,  146, 1748,
3326       146,  146,  146,  146,  146,  229,  229,  229,  230,  230,
3327
3328       230,  231,  231,  231, 1756,  232,  232,  232,  233,  233,
3329       233,  229, 1760, 1761,  230, 1773, 1777,  231, 1781,  146,
3330       146,  232, 1782, 1784,  233,  234,  234,  234, 1785, 1786,
3331       146,  917,  917,  917, 1789,  917, 1791, 1792,  917, 1800,
3332      1801,  234, 1808,  146,  149,  149,  149,  149,  149,  149,
3333       149,  149,  149,  149,  149,  149,  149,  149,  149, 1811,
3334       149,  149,  149,  149,  149,  235,  235,  235,  236,  236,
3335       236, 1820,  243,  243,  243, 1821, 1822,  244,  244,  244,
3336      1823,  235,  239,  239,  236, 1825, 1833,  239,  243,  149,
3337       149,  240,  240,  244,  287, 1840,  240,  239, 1844,  444,
3338
3339       921,  921,  921, 1847,  287,  149,  240, 1849, 1850,  444,
3340       149,  150,  150,  150,  150,  150,  150,  150,  150,  150,
3341       150,  150,  150,  150,  150,  150,  239,  150,  150,  150,
3342       150,  150,  287, 1852, 1853,  240, 1854, 1855,  444, 1859,
3343      1860,  669,  669,  669,  444, 1861,  287, 1863,  287, 1867,
3344       287,  444,  718,  718,  718,  444,  150,  150,  669,  734,
3345       734,  734, 1871, 1875,  921,  942,  942,  942, 1877,  718,
3346      1879, 1885,  150,  955,  955,  955,  734,  150,  153,  153,
3347       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3348       153,  153,  153, 1892,  153,  153,  153,  153,  153,  735,
3349
3350       735,  735,  746,  746,  746,  748,  748,  748,  763,  763,
3351       763,  773,  773,  773, 1896, 1897,  735, 1899, 1911,  746,
3352      1901, 1912,  748,  153,  153,  763, 1901, 1906,  773,  942,
3353      1901,  970,  970,  970, 1913,  970, 1901,  955,  970,  153,
3354      1907, 1043, 1043, 1043, 1906,  153,  154,  154,  154,  154,
3355       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3356       154, 1908,  154,  154,  154,  154,  154,  782,  782,  782,
3357       783,  783,  783,  793,  793,  793,  801,  801,  801,  805,
3358       805,  805, 1907, 1915,  782, 1916, 1914,  783, 1918, 1919,
3359       793,  154,  154,  801, 1908, 1920,  805,  984,  984,  984,
3360
3361      1921,  984, 1914, 1923,  984, 1043, 1924,  154, 1177, 1177,
3362      1177, 1925, 1929,  154,  157,  157,  157,  157,  157,  157,
3363       157,  157,  157,  157,  157,  157,  157,  157,  157, 1931,
3364       157,  157,  157,  157,  157,  823,  823,  823,  849,  849,
3365       849,  855,  855,  855,  872,  872,  872, 1932,  878,  878,
3366       878, 1933,  823, 1935, 1936,  849, 1934, 1937,  855,  157,
3367       157,  872,  157,  157,  157,  878, 1938,  986,  986,  986,
3368       157,  986, 1934,  157,  986, 1192, 1192, 1192, 1941, 1943,
3369       157,  158,  158,  158,  158,  158,  158,  158,  158,  158,
3370       158,  158,  158,  158,  158,  158, 1948,  158,  158,  158,
3371
3372       158,  158,  884,  884,  884,  892,  892,  892,  916,  916,
3373       916,  958,  958,  958,  919,  919,  919, 1950, 1955,  884,
3374      1973, 1979,  892, 1980, 1981,  916,  158,  158,  958,  158,
3375       158,  158,  919, 1985,  997,  997,  997,  158,  997, 1986,
3376       158,  997, 1198, 1198, 1198, 1990, 1993,  158,  163,  163,
3377       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3378       163,  163,  163, 1994,  163,  163,  163,  163,  163,  920,
3379       920,  920,  960,  960,  960, 1997, 1998,  962,  962,  962,
3380       961,  961,  961,  959,  959,  959, 2004,  920, 2008,  960,
3381       966,  966,  966,  163,  163,  962, 2011,  961, 2013, 2014,
3382
3383       959, 2017, 2023, 1000, 1000, 1000,  920, 1000,  966, 2028,
3384      1000, 1506, 1506, 1506, 1513, 1513, 1513,  163,  164,  164,
3385       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
3386       164,  164,  164,  959,  164,  164,  164,  164,  164,  961,
3387       963,  963,  963,  969,  969,  969, 2034, 2038,  959,  967,
3388       967,  967,  972,  972,  972,  974,  974,  974,  963, 2041,
3389       969, 2045, 2047,  164,  164, 2048, 2049,  967, 2050, 2052,
3390       972, 2058,  974, 2060, 1015, 1015, 1015,  963, 1015, 2062,
3391      2064, 1015, 1507, 1507, 1507, 2077, 2078,  164,  185,  185,
3392       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3393
3394       185,  185,  185, 2079,  185,  185,  185,  185,  185,  976,
3395       976,  976, 2082,  967,  977,  977,  977,  978,  978,  978,
3396       975,  975,  975,  979,  979,  979,  976, 2083, 1507,  973,
3397       973,  973,  977,  185,  185,  978, 2084,  975, 2085, 2086,
3398       979,  185, 2087,  185, 2084, 2089,  185,  973, 2100, 2101,
3399       185, 1516, 1516, 1516,  185,  186,  186,  186,  186,  186,
3400       186,  186,  186,  186,  186,  186,  186,  186,  186,  186,
3401       975,  186,  186,  186,  186,  186,  973,  980,  980,  980,
3402       981,  981,  981, 2102, 2088,  975, 2103, 2094,  978,  982,
3403       982,  982, 2088, 2094,  980,  983,  983,  983,  981, 2107,
3404
3405       186,  186,  985,  985,  985, 2109, 2095,  982,  186, 2110,
3406       186, 2111,  983,  186, 1521, 1521, 1521,  186, 2112,  985,
3407      2096,  186,  195,  195,  195,  195,  195,  195,  195,  195,
3408       195,  195,  195,  195,  195,  195,  195, 2095,  195,  195,
3409       195,  195,  195, 2117,  987,  987,  987,  992,  992,  992,
3410      1527, 1527, 1527, 2119, 2120,  988,  988,  988, 2121, 2124,
3411       982,  987,  989,  989,  989,  992, 2096,  195,  195,  990,
3412       990,  990,  988,  991,  991,  991, 2128, 2135,  195,  989,
3413      1025, 1025, 1025, 2137, 1025, 2139,  990, 1025, 2160, 2164,
3414       991,  195,  196,  196,  196,  196,  196,  196,  196,  196,
3415
3416       196,  196,  196,  196,  196,  196,  196,  988,  196,  196,
3417       196,  196,  196,  993,  993,  993, 2165,  989, 2166, 2172,
3418       990, 2173,  996,  996,  996,  991,  999,  999,  999, 2174,
3419      2178,  993, 1001, 1001, 1001, 2182, 2183,  196,  196,  996,
3420      1012, 1012, 1012,  999, 1509, 1509, 1509, 2187,  196, 1001,
3421      1035, 1035, 1035, 2188, 1035, 2191, 2194, 1035, 1012, 2195,
3422       993,  196,  199,  199,  199,  199,  199,  199,  199,  199,
3423       199,  199,  199,  199,  199,  199,  199, 2196,  199,  199,
3424       199,  199,  199, 1014, 1014, 1014, 1013, 1013, 1013, 2197,
3425      1509, 1016, 1016, 1016, 1017, 1017, 1017, 1019, 1019, 1019,
3426
3427      1014, 1020, 1020, 1020, 1013, 2200, 2207,  199,  199, 1016,
3428      2211, 2212, 1017, 2213, 2225, 1019,  199, 2226,  199, 1020,
3429      2229, 2231,  199, 1531, 1531, 1531, 2234,  199,  199,  200,
3430       200,  200,  200,  200,  200,  200,  200,  200,  200,  200,
3431       200,  200,  200,  200, 1013,  200,  200,  200,  200,  200,
3432      1024, 1024, 1024, 2241, 2248, 1017, 2250, 2251, 1029, 1029,
3433      1029, 2252, 2257, 1020, 1030, 1030, 1030, 1024, 2258, 1034,
3434      1034, 1034, 2259, 2260,  200,  200, 1029, 1037, 1037, 1037,
3435      2261, 1037, 1030,  200, 1037,  200, 1034, 2262, 2263,  200,
3436      1720, 1720, 1720, 2264,  200,  200,  203,  203,  203,  203,
3437
3438       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
3439       203, 2265,  203,  203,  203,  203,  203, 1036, 1036, 1036,
3440      1038, 1038, 1038, 1902, 2266, 1030, 1039, 1039, 1039, 1902,
3441      1041, 1041, 1041, 1902, 1036, 1042, 1042, 1042, 1038, 1902,
3442      2277,  203,  203, 2278, 1039, 2281, 2284,  203, 1041, 2270,
3443      1046, 1046, 1046, 1042, 1046, 2289, 2290, 1046, 2293, 1528,
3444      1528, 1528,  203,  204,  204,  204,  204,  204,  204,  204,
3445       204,  204,  204,  204,  204,  204,  204,  204, 2269,  204,
3446       204,  204,  204,  204, 1045, 1045, 1045, 1039, 1050, 1050,
3447      1050, 2294, 1055, 1055, 1055, 1042, 2270, 1051, 1051, 1051,
3448
3449      2297, 1045, 1053, 1053, 1053, 1528, 1050, 2300,  204,  204,
3450      1055, 1057, 1057, 1057,  204, 1051, 1054, 1054, 1054, 1053,
3451      1054, 2269, 2301, 1054, 1530, 1530, 1530, 2302, 1057,  204,
3452       213,  213,  213,  213,  213,  213,  213,  213,  213,  213,
3453       213,  213,  213,  213,  213, 2317,  213,  213,  213,  213,
3454       213, 2318, 1051, 1056, 1056, 1056, 1058, 1058, 1058, 2319,
3455      1058, 2325, 2326, 1058, 1060, 1060, 1060, 1061, 1061, 1061,
3456      1530, 1056, 1723, 1723, 1723,  213,  213, 1074, 1074, 1074,
3457       213, 1074, 1060, 2327, 1074, 1061,  213,  214,  214,  214,
3458       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
3459
3460       214,  214, 2333,  214,  214,  214,  214,  214, 1056, 1064,
3461      1064, 1064, 1065, 1065, 1065, 2334, 1068, 1068, 1068, 2320,
3462      1069, 1069, 1069, 1073, 1073, 1073, 2335, 1064, 1061, 2320,
3463      1065, 2351,  214,  214, 1068, 2352, 2353,  214, 1069, 2374,
3464      1073, 2375, 2381,  214,  217,  217,  217,  217,  217,  217,
3465       217,  217,  217,  217,  217,  217,  217,  217,  217, 2386,
3466       217,  217,  217,  217,  217, 1075, 1075, 1075, 1078, 1078,
3467      1078, 2388, 2389, 1065, 2394, 1082, 1082, 1082, 1083, 1083,
3468      1083, 2395, 1075, 2396, 2397, 1069, 1078, 2398, 2399,  217,
3469       217, 2400,  217, 1082,  217, 2401, 1083, 1096, 1096, 1096,
3470
3471       217, 1096, 2402, 2403, 1096, 1726, 1726, 1726, 1547, 1547,
3472      1547,  217,  218,  218,  218,  218,  218,  218,  218,  218,
3473       218,  218,  218,  218,  218,  218,  218, 2408,  218,  218,
3474       218,  218,  218, 1095, 1095, 1095, 1083, 1092, 1092, 1092,
3475      2409, 1093, 1093, 1093, 2406, 1098, 1098, 1098, 2411, 2412,
3476      1095, 1079, 1079, 1079, 1547, 1092, 2413,  218,  218, 1093,
3477       218, 2414,  218, 1098, 1728, 1728, 1728, 2407,  218, 1079,
3478      1102, 1102, 1102, 2416, 1102, 2417, 2406, 1102, 2420,  218,
3479       227,  227,  227,  227,  227,  227,  227,  227,  227,  227,
3480       227,  227,  227,  227,  227, 2421,  227,  227,  227,  227,
3481
3482       227, 2424, 1079, 2427, 2407, 1093, 1099, 1099, 1099, 2428,
3483      1101, 1101, 1101, 2430, 1103, 1103, 1103, 1105, 1105, 1105,
3484      1109, 1109, 1109, 2410, 1099,  227,  227, 1101, 2415, 2431,
3485       227, 1103, 2410, 2433, 1105, 2434,  227, 2415, 1109, 2435,
3486       227, 1731, 1731, 1731, 2447, 2448,  227,  228,  228,  228,
3487       228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
3488       228,  228, 2449,  228,  228,  228,  228,  228, 2450, 2451,
3489      1099, 1111, 1111, 1111, 1112, 1112, 1112, 1113, 1113, 1113,
3490      2454, 2456, 1110, 1110, 1110, 1117, 1117, 1117, 1111, 2462,
3491      2463, 1112,  228,  228, 1113, 2471, 2458,  228, 2472, 2459,
3492
3493      1110, 2473, 1117,  228, 1118, 1118, 1118,  228, 1118, 2458,
3494      2482, 1118, 2459,  228,  237,  237,  237,  237,  237,  237,
3495       237,  237,  237,  237,  237,  237,  237,  237,  237, 1110,
3496       237,  237,  237,  237,  237, 2483, 1113, 1114, 1114, 1114,
3497      1115, 1115, 1115, 1119, 1119, 1119, 1120, 1120, 1120, 1123,
3498      1123, 1123, 1129, 1129, 1129, 1114, 2500, 2501, 1115,  237,
3499       237, 1119, 2502, 2505, 1120, 2507, 1123,  237, 2508, 1129,
3500       237, 1733, 1733, 1733, 1736, 1736, 1736,  237,  238,  238,
3501       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
3502       238,  238,  238, 2509,  238,  238,  238,  238,  238, 2510,
3503
3504      2511, 1115, 1124, 1124, 1124, 2512, 1124, 1120, 2513, 1124,
3505      1126, 1126, 1126, 2514, 1127, 1127, 1127, 2515, 1130, 1130,
3506      1130, 2516, 1130,  238,  238, 1130, 2517, 2518, 1126, 2523,
3507      2524,  238, 1127, 2525,  238, 1733, 1735, 1735, 1735, 2526,
3508      2521,  238,  241,  241,  241,  241,  241,  241,  241,  241,
3509       241,  241,  241,  241,  241,  241,  241, 2527,  241,  241,
3510       241,  241,  241, 1133, 1133, 1133, 1134, 1134, 1134, 1137,
3511      1137, 1137, 1138, 1138, 1138, 2528, 1138, 2521, 2529, 1138,
3512      1127, 1133, 1735, 2530, 1134, 2520, 1137,  241,  241, 1141,
3513      1141, 1141, 2531, 2532,  241, 1161, 1161, 1161, 2533, 1161,
3514
3515       241, 2534, 1161, 1742, 1742, 1742, 2535, 1141, 2536,  241,
3516       242,  242,  242,  242,  242,  242,  242,  242,  242,  242,
3517       242,  242,  242,  242,  242, 2520,  242,  242,  242,  242,
3518       242, 2539, 1134, 1142, 1142, 1142, 1147, 1147, 1147, 1148,
3519      1148, 1148, 1165, 1165, 1165, 1166, 1166, 1166, 1168, 1168,
3520      1168, 1142, 2540, 2541, 1147,  242,  242, 1148, 2542, 2522,
3521      1165, 2544,  242, 1166, 2545, 2556, 1168, 2557,  242, 1208,
3522      1208, 1208, 1209, 1209, 1209, 2558, 1209,  242,  284, 1209,
3523      2560, 1212, 1212, 1212, 2564,  284, 1208, 2567, 2569, 1213,
3524      1213, 1213, 2571, 1213,  284,  284, 1213, 1142, 1212, 1215,
3525
3526      1215, 1215, 2522, 1148, 1234, 1234, 1234, 1216, 1216, 1216,
3527      1238, 1238, 1238, 1218, 1218, 1218, 2572, 1215, 1221, 1221,
3528      1221, 1234,  284,  284,  284, 1216, 2580, 1238,  284,  284,
3529       284, 1218, 2581,  284,  284, 2582, 1221,  284, 2596,  284,
3530       284,  284,  286, 1222, 1222, 1222, 1224, 1224, 1224, 1226,
3531      1226, 1226, 2568, 1226, 2615, 2616, 1226, 2620,  286,  286,
3532      2621, 1222, 2622, 2568, 1224, 1230, 1230, 1230, 1244, 1244,
3533      1244, 1231, 1231, 1231, 1246, 1246, 1246, 1218, 1233, 1233,
3534      1233, 2623, 2624, 1230, 2570, 1244,  286,  286,  286, 1231,
3535      2625, 1246,  286,  286,  286, 2570, 1233,  286,  286, 1224,
3536
3537      2626,  286, 2627,  286,  286,  286, 1235, 1235, 1235, 2586,
3538      1235, 2628, 2629, 1235, 1239, 1239, 1239, 2634, 1239, 2586,
3539      2635, 1239, 1240, 1240, 1240, 2586, 2632, 1233, 1241, 1241,
3540      1241, 1243, 1243, 1243, 1245, 1245, 1245, 2631, 1245, 2633,
3541      1240, 1245, 2636, 1247, 1247, 1247, 1241, 1247, 2637, 1243,
3542      1247, 1248, 1248, 1248, 1249, 1249, 1249, 1251, 1251, 1251,
3543      1252, 1252, 1252, 2587, 1252, 2638, 2631, 1252, 2632, 1248,
3544      2639, 2640, 1249, 2587, 2641, 1251, 1255, 1255, 1255, 2587,
3545      1255, 2633, 2642, 1255, 1258, 1258, 1258, 1259, 1259, 1259,
3546      2643, 1259, 2644, 1243, 1259, 1264, 1264, 1264, 1265, 1265,
3547
3548      1265, 1258, 1267, 1267, 1267, 1272, 1272, 1272, 2645, 1272,
3549      2646, 2649, 1272, 1264, 2650, 2651, 1265, 2610, 2653, 1251,
3550      1267, 1275, 1275, 1275, 1276, 1276, 1276, 2610, 1276, 2654,
3551      2610, 1276, 1279, 1279, 1279, 1280, 1280, 1280, 1275, 1280,
3552      2659, 2660, 1280, 1291, 1291, 1291, 1292, 1292, 1292, 1279,
3553      1267, 1294, 1294, 1294, 2665, 1295, 1295, 1295, 2669, 1295,
3554      2670, 1291, 1295, 2671, 1292, 1298, 1298, 1298, 2672, 1294,
3555      1299, 1299, 1299, 1301, 1301, 1301, 1302, 1302, 1302, 1303,
3556      1303, 1303, 2673, 1298, 1304, 1304, 1304, 2674, 1299, 2675,
3557      2676, 1301, 2684, 1302, 1306, 1306, 1306, 1303, 1309, 1309,
3558
3559      1309, 2611, 1304, 1310, 1310, 1310, 2686, 1310, 2690, 2691,
3560      1310, 2611, 1306, 2692, 2611, 1309, 2693, 2694, 1294, 1316,
3561      1316, 1316, 1317, 1317, 1317, 1319, 1319, 1319, 1322, 1322,
3562      1322, 2695, 2697, 1301, 1323, 1323, 1323, 1316, 1323, 2704,
3563      1317, 1323, 2709, 1319, 2710, 1322, 1326, 1326, 1326, 2712,
3564      1326, 2713, 2704, 1326, 1329, 1329, 1329, 1330, 1330, 1330,
3565      2705, 1306, 1332, 1332, 1332, 1333, 1333, 1333, 1334, 1334,
3566      1334, 2726, 1329, 2705, 2727, 1330, 1335, 1335, 1335, 2728,
3567      1332, 2729, 1333, 1337, 1337, 1337, 1334, 1345, 1345, 1345,
3568      1319, 1339, 1339, 1339, 1335, 1339, 2731, 2732, 1339, 2711,
3569
3570      2733, 1337, 1346, 1346, 1346, 1345, 1348, 1348, 1348, 1350,
3571      1350, 1350, 2711, 1350, 2734, 2740, 1350, 1353, 1353, 1353,
3572      1346, 1354, 1354, 1354, 1348, 2741, 2737, 1332, 1356, 1356,
3573      1356, 2714, 1337, 2742, 2738, 1353, 1357, 1357, 1357, 1354,
3574      1357, 2743, 2744, 1357, 2714, 2745, 1356, 1361, 1361, 1361,
3575      1362, 1362, 1362, 1364, 1364, 1364, 1365, 1365, 1365, 1366,
3576      1366, 1366, 1367, 1367, 1367, 1361, 1348, 2746, 1362, 2738,
3577      2747, 1364, 2748, 1365, 2737, 2749, 1366, 1368, 1368, 1368,
3578      1367, 1370, 1370, 1370, 1371, 1371, 1371, 2750, 1356, 2751,
3579      1372, 1372, 1372, 2752, 2755, 1368, 1373, 1373, 1373, 1370,
3580
3581      2756, 1371, 2759, 1364, 2765, 2766, 1366, 1372, 1374, 1374,
3582      1374, 1376, 1376, 1376, 1373, 1381, 1381, 1381, 1372, 1381,
3583      2774, 2775, 1381, 1384, 1384, 1384, 1374, 2776, 2761, 1376,
3584      1385, 1385, 1385, 2777, 1385, 2778, 2779, 1385, 2761, 2780,
3585      1384, 1388, 1388, 1388, 1389, 1389, 1389, 2781, 1370, 1391,
3586      1391, 1391, 1394, 1394, 1394, 1395, 1395, 1395, 2762, 1388,
3587      2782, 2786, 1389, 1397, 1397, 1397, 2789, 1391, 2762, 2790,
3588      1394, 2791, 2792, 1395, 1402, 1402, 1402, 1376, 1406, 1406,
3589      1406, 1397, 2793, 1407, 1407, 1407, 1409, 1409, 1409, 2794,
3590      2795, 1402, 2798, 1415, 1415, 1415, 1406, 1416, 1416, 1416,
3591
3592      1391, 1407, 2802, 2803, 1409, 1411, 1411, 1411, 2804, 1411,
3593      1397, 1415, 1411, 2805, 2806, 1416, 1418, 1418, 1418, 1420,
3594      1420, 1420, 2807, 1420, 2808, 2809, 1420, 1423, 1423, 1423,
3595      2810, 1424, 1424, 1424, 1418, 1424, 2811, 2812, 1424, 1425,
3596      1425, 1425, 2813, 2829, 1423, 2830, 2831, 1409, 1426, 1426,
3597      1426, 1427, 1427, 1427, 2832, 1427, 1425, 2833, 1427, 1429,
3598      1429, 1429, 1431, 1431, 1431, 1426, 1432, 1432, 1432, 1434,
3599      1434, 1434, 1435, 1435, 1435, 2834, 1429, 1418, 2835, 2836,
3600      1431, 1436, 1436, 1436, 1432, 1436, 2816, 1434, 1436, 1435,
3601      1437, 1437, 1437, 1438, 1438, 1438, 2816, 1438, 2842, 2843,
3602
3603      1438, 1440, 1440, 1440, 1441, 1441, 1441, 1437, 1443, 1443,
3604      1443, 1445, 1445, 1445, 2844, 1445, 2838, 2817, 1445, 1440,
3605      2847, 2848, 1441, 1448, 1448, 1448, 1443, 2817, 2849, 1434,
3606      1449, 1449, 1449, 1451, 1451, 1451, 1454, 1454, 1454, 2850,
3607      1454, 1448, 2853, 1454, 1458, 1458, 1458, 2860, 1449, 2861,
3608      2838, 1451, 1459, 1459, 1459, 1461, 1461, 1461, 2862, 1463,
3609      1463, 1463, 1458, 1463, 2863, 2867, 1463, 1467, 1467, 1467,
3610      1459, 2868, 2876, 1461, 2877, 1443, 1468, 1468, 1468, 1469,
3611      1469, 1469, 2878, 2879, 1467, 1471, 1471, 1471, 1473, 1473,
3612      1473, 1474, 1474, 1474, 1468, 1474, 2880, 1469, 1474, 2881,
3613
3614      1451, 2882, 2883, 1471, 2889, 1473, 1477, 1477, 1477, 1479,
3615      1479, 1479, 1480, 1480, 1480, 2890, 1461, 1482, 1482, 1482,
3616      1484, 1484, 1484, 1477, 1486, 1486, 1486, 1479, 2892, 2893,
3617      1480, 1487, 1487, 1487, 2895, 1482, 2896, 1484, 1489, 1489,
3618      1489, 2897, 1486, 1491, 1491, 1491, 1471, 2898, 2899, 1487,
3619      1497, 1497, 1497, 1537, 1537, 1537, 1489, 1537, 2900, 2901,
3620      1537, 1491, 1491, 2902, 1482, 2903, 2904, 1477, 1497, 1542,
3621      1542, 1542, 2905, 1542, 2906, 2907, 1542, 1546, 1546, 1546,
3622      1548, 1548, 1548, 2910, 2911, 1489, 1549, 1549, 1549, 1552,
3623      1552, 1552, 1553, 1553, 1553, 1546, 1553, 1548, 2912, 1553,
3624
3625      2913, 1558, 1558, 1558, 1549, 1558, 2921, 1552, 1558, 1561,
3626      1561, 1561, 1562, 1562, 1562, 2922, 1562, 2924, 2925, 1562,
3627      2926, 1565, 1565, 1565, 2928, 1565, 2936, 1561, 1565, 1568,
3628      1568, 1568, 1569, 1569, 1569, 2937, 1569, 2939, 1546, 1569,
3629      1574, 1574, 1574, 1576, 1576, 1576, 1552, 1568, 1578, 1578,
3630      1578, 2940, 2941, 1549, 2943, 2948, 1561, 1574, 1581, 1581,
3631      1581, 1576, 1582, 1582, 1582, 1578, 1582, 2949, 2950, 1582,
3632      1583, 1583, 1583, 2930, 1583, 1581, 1568, 1583, 1592, 1592,
3633      1592, 1597, 1597, 1597, 1598, 1598, 1598, 1599, 1599, 1599,
3634      1600, 1600, 1600, 2951, 1600, 1592, 2953, 1600, 1576, 1597,
3635
3636      2954, 2958, 1598, 2960, 1599, 1601, 1601, 1601, 1604, 1604,
3637      1604, 1605, 1605, 1605, 2961, 1605, 2930, 2963, 1605, 2964,
3638      1607, 1607, 1607, 1601, 2969, 1604, 1609, 1609, 1609, 2970,
3639      1612, 1612, 1612, 1614, 1614, 1614, 1598, 1607, 1613, 1613,
3640      1613, 2971, 1613, 2972, 1609, 1613, 1597, 1612, 1615, 1615,
3641      1615, 1614, 1616, 1616, 1616, 2973, 1616, 2974, 2975, 1616,
3642      1617, 1617, 1617, 2976, 2977, 1615, 1622, 1622, 1622, 1624,
3643      1624, 1624, 1625, 1625, 1625, 1745, 1745, 1745, 1617, 1626,
3644      1626, 1626, 2978, 2979, 1622, 2272, 2272, 1624, 2272, 1625,
3645      2980, 2981, 1609, 1627, 1627, 1627, 2272, 1626, 2982, 1614,
3646
3647      1628, 1628, 1628, 2272, 1628, 2983, 2984, 1628, 2985, 2989,
3648      1627, 1630, 1630, 1630, 1631, 1631, 1631, 2990, 1617, 2991,
3649      1632, 1632, 1632, 1622, 1632, 2992, 1624, 1632, 2995, 1630,
3650      1626, 1631, 1634, 1634, 1634, 1636, 1636, 1636, 1639, 1639,
3651      1639, 2996, 1639, 2997, 2998, 1639, 1642, 1642, 1642, 2999,
3652      1634, 3000, 1636, 3005, 1644, 1644, 1644, 1647, 1647, 1647,
3653      1652, 1652, 1652, 1642, 3005, 3002, 1653, 1653, 1653, 3009,
3654      1653, 1630, 1644, 1653, 3008, 1647, 3004, 1652, 1657, 1657,
3655      1657, 1659, 1659, 1659, 1660, 1660, 1660, 1662, 1662, 1662,
3656      3004, 1662, 3010, 1634, 1662, 3008, 1657, 3012, 1659, 1665,
3657
3658      1665, 1665, 1660, 1666, 1666, 1666, 3013, 1666, 3008, 3015,
3659      1666, 3002, 3017, 1667, 1667, 1667, 1665, 1667, 1644, 3020,
3660      1667, 3021, 3023, 1647, 1671, 1671, 1671, 1657, 1672, 1672,
3661      1672, 3027, 1672, 3029, 3023, 1672, 1674, 1674, 1674, 3031,
3662      3042, 1671, 3044, 1675, 1675, 1675, 1660, 1675, 3046, 3047,
3663      1675, 1678, 1678, 1678, 1674, 1678, 3050, 3051, 1678, 1682,
3664      1682, 1682, 1684, 1684, 1684, 1688, 1688, 1688, 1690, 1690,
3665      1690, 1691, 1691, 1691, 1692, 1692, 1692, 1682, 1692, 3054,
3666      1684, 1692, 3056, 1688, 3058, 1690, 1674, 3060, 1691, 1693,
3667      1693, 1693, 1695, 1695, 1695, 1696, 1696, 1696, 3061, 1696,
3668
3669      3063, 3064, 1696, 1699, 1699, 1699, 3024, 1693, 3067, 1695,
3670      1701, 1701, 1701, 1702, 1702, 1702, 3070, 1702, 3024, 3072,
3671      1702, 1699, 1703, 1703, 1703, 1682, 3075, 1701, 1684, 1688,
3672      1704, 1704, 1704, 1707, 1707, 1707, 1746, 1746, 1746, 1703,
3673      1747, 1747, 1747, 1749, 1749, 1749, 3069, 3069, 1704, 3067,
3674      3076, 1707, 1699, 1693, 1750, 1750, 1750, 1751, 1751, 1751,
3675      1752, 1752, 1752, 1753, 1753, 1753, 1754, 1754, 1754, 1755,
3676      1755, 1755, 3080, 1757, 1757, 1757, 3081, 1752, 3088, 1704,
3677      1753, 3077, 3036, 1754, 1707, 2273, 2273, 1755, 2273, 1749,
3678      1757, 1758, 1758, 1758, 3036, 1758, 2273, 3088, 1758, 3077,
3679
3680      3089, 1707, 3091, 2273, 1747, 1759, 1759, 1759, 1762, 1762,
3681      1762, 1763, 1763, 1763, 1764, 1764, 1764, 3037, 1750, 3095,
3682      3096, 1751, 3099, 1759, 3101, 3103, 1762, 3104, 1763, 3037,
3683      1754, 1764, 1765, 1765, 1765, 3068, 1755, 1766, 1766, 1766,
3684      1767, 1767, 1767, 1768, 1768, 1768, 1769, 1769, 1769, 3068,
3685      1765, 1771, 1771, 1771, 3105, 1766, 1762, 1767, 3106, 3071,
3686      1768, 3107, 3108, 1769, 1759, 1770, 1770, 1770, 1771, 1770,
3687      3071, 3116, 1770, 1772, 1772, 1772, 1774, 1774, 1774, 1775,
3688      1775, 1775, 3117, 1775, 3090, 3118, 1775, 1776, 1776, 1776,
3689      3011, 1772, 3120, 1774, 1783, 1783, 1783, 1765, 1787, 1787,
3690
3691      1787, 1768, 1766, 3090, 1776, 1778, 1778, 1778, 3011, 1778,
3692      3121, 1783, 1778, 3123, 3124, 1787, 1788, 1788, 1788, 3082,
3693      1788, 3011, 3125, 1788, 1790, 1790, 1790, 1793, 1793, 1793,
3694      1794, 1794, 1794, 1772, 3082, 1795, 1795, 1795, 3098, 1795,
3695      3127, 1790, 1795, 3132, 3133, 1793, 3134, 3100, 1794, 1798,
3696      1798, 1798, 1802, 1802, 1802, 3135, 1802, 3098, 3136, 1802,
3697      1805, 1805, 1805, 1806, 1806, 1806, 3100, 1798, 1807, 1807,
3698      1807, 3137, 1807, 3138, 3139, 1807, 3142, 1805, 3143, 3144,
3699      1806, 1809, 1809, 1809, 3145, 1794, 1810, 1810, 1810, 3146,
3700      1812, 1812, 1812, 1793, 1812, 3147, 3150, 1812, 3151, 1809,
3701
3702      1815, 1815, 1815, 1816, 1816, 1816, 3152, 1816, 3153, 3154,
3703      1816, 1819, 1819, 1819, 1824, 1824, 1824, 3155, 1815, 1826,
3704      1826, 1826, 1827, 1827, 1827, 3157, 1828, 1828, 1828, 1819,
3705      1828, 3158, 1824, 1828, 1829, 1829, 1829, 1826, 3159, 1827,
3706      1830, 1830, 1830, 3160, 1830, 3161, 1815, 1830, 1834, 1834,
3707      1834, 3162, 1829, 1835, 1835, 1835, 3163, 1835, 3170, 3171,
3708      1835, 3172, 1838, 1838, 1838, 1826, 1834, 1839, 1839, 1839,
3709      1841, 1841, 1841, 1842, 1842, 1842, 3173, 1842, 1819, 1838,
3710      1842, 1843, 1843, 1843, 3168, 1839, 3174, 1841, 1845, 1845,
3711      1845, 3175, 1829, 1846, 1846, 1846, 3168, 1846, 1843, 3181,
3712
3713      1846, 1848, 1848, 1848, 3182, 1845, 1851, 1851, 1851, 1856,
3714      1856, 1856, 3183, 1856, 1834, 3184, 1856, 3185, 3186, 1848,
3715      1862, 1862, 1862, 3190, 1851, 1864, 1864, 1864, 1865, 1865,
3716      1865, 1839, 1865, 3191, 3169, 1865, 3193, 3195, 1862, 1866,
3717      1866, 1866, 1864, 1868, 1868, 1868, 3169, 1868, 3198, 3199,
3718      1868, 3200, 1872, 1872, 1872, 3196, 1872, 1866, 1851, 1872,
3719      1876, 1876, 1876, 1878, 1878, 1878, 1880, 1880, 1880, 3201,
3720      3202, 1862, 1881, 1881, 1881, 1882, 1882, 1882, 1876, 3203,
3721      3196, 1878, 3204, 3205, 1880, 1883, 1883, 1883, 3206, 1881,
3722      3207, 3208, 1882, 1884, 1884, 1884, 1886, 1886, 1886, 1887,
3723
3724      1887, 1887, 1883, 1887, 3209, 3210, 1887, 3211, 1888, 1888,
3725      1888, 1884, 1888, 1886, 1878, 1888, 3212, 1880, 1891, 1891,
3726      1891, 1876, 1893, 1893, 1893, 3213, 1893, 3214, 3215, 1893,
3727      1898, 1898, 1898, 1903, 1903, 1903, 1891, 1910, 1910, 1910,
3728      1884, 1882, 1900, 1900, 1900, 3216, 1900, 3217, 1898, 1900,
3729      1903, 1904, 1904, 1904, 1910, 1904, 3218, 3219, 1904, 1905,
3730      1905, 1905, 1917, 1917, 1917, 1891, 1922, 1922, 1922, 1926,
3731      1926, 1926, 1927, 1927, 1927, 3222, 3223, 1905, 1928, 1928,
3732      1928, 1898, 1930, 1930, 1930, 1939, 1939, 1939, 1940, 1940,
3733      1940, 1942, 1942, 1942, 1944, 1944, 1944, 1945, 1945, 1945,
3734
3735      3225, 1945, 3224, 3226, 1945, 1946, 1946, 1946, 3227, 3228,
3736      1905, 1944, 1947, 1947, 1947, 3229, 1947, 3230, 3231, 1947,
3737      3232, 3224, 1946, 1949, 1949, 1949, 1951, 1951, 1951, 3233,
3738      1951, 3234, 3235, 1951, 1954, 1954, 1954, 1956, 1956, 1956,
3739      3236, 1949, 1957, 1957, 1957, 1958, 1958, 1958, 3237, 1959,
3740      1959, 1959, 1954, 1959, 1956, 3238, 1959, 1960, 1960, 1960,
3741      1957, 3239, 1958, 1961, 1961, 1961, 3240, 1961, 3241, 3242,
3742      1961, 1964, 1964, 1964, 1960, 1962, 1962, 1962, 1963, 1963,
3743      1963, 1966, 1966, 1966, 3243, 1954, 3244, 3245, 1964, 1949,
3744      1965, 1965, 1965, 1962, 1965, 3246, 1963, 1965, 1966, 3250,
3745
3746      1967, 1967, 1967, 1957, 1967, 3252, 3253, 1967, 1970, 1970,
3747      1970, 1971, 1971, 1971, 3255, 1971, 3256, 3257, 1971, 1972,
3748      1972, 1972, 1974, 1974, 1974, 1970, 1974, 3258, 3259, 1974,
3749      1977, 1977, 1977, 3249, 1978, 1978, 1978, 1972, 1978, 3260,
3750      1962, 1978, 3261, 1963, 1982, 1982, 1982, 1977, 1983, 1983,
3751      1983, 3262, 1983, 3249, 3263, 1983, 1984, 1984, 1984, 3264,
3752      3265, 1982, 1987, 1987, 1987, 3266, 1987, 3267, 3268, 1987,
3753      1972, 3269, 3270, 1984, 1991, 1991, 1991, 1992, 1992, 1992,
3754      3271, 1992, 3273, 3275, 1992, 1995, 1995, 1995, 1996, 1996,
3755      1996, 1991, 1999, 1999, 1999, 2000, 2000, 2000, 3272, 2000,
3756
3757      3277, 3278, 2000, 1995, 3272, 3279, 1996, 3280, 3281, 1999,
3758      2001, 2001, 2001, 3282, 2001, 3284, 3285, 2001, 3287, 2005,
3759      2005, 2005, 2007, 2007, 2007, 2009, 2009, 2009, 2010, 2010,
3760      2010, 2012, 2012, 2012, 3288, 3290, 1995, 2005, 2015, 2015,
3761      2015, 1996, 3291, 2009, 3293, 3296, 2010, 3297, 2012, 2018,
3762      2018, 2018, 3298, 2019, 2019, 2019, 2015, 2019, 3293, 3299,
3763      2019, 2022, 2022, 2022, 2024, 2024, 2024, 2018, 2025, 2025,
3764      2025, 2027, 2027, 2027, 2032, 2032, 2032, 2012, 2010, 2022,
3765      3301, 3303, 2024, 2009, 3305, 2025, 2026, 2026, 2026, 2027,
3766      2026, 2032, 3307, 2026, 3309, 2029, 2029, 2029, 2018, 2029,
3767
3768      3310, 3311, 2029, 3312, 2033, 2033, 2033, 2022, 2033, 3313,
3769      3314, 2033, 2035, 2035, 2035, 3315, 2035, 3316, 2027, 2035,
3770      2039, 2039, 2039, 2042, 2042, 2042, 2043, 2043, 2043, 2044,
3771      2044, 2044, 2046, 2046, 2046, 2051, 2051, 2051, 2039, 3318,
3772      2042, 2053, 2053, 2053, 2043, 2053, 3320, 3322, 2053, 2056,
3773      2056, 2056, 3323, 2051, 2059, 2059, 2059, 2061, 2061, 2061,
3774      2063, 2063, 2063, 2065, 2065, 2065, 3324, 2056, 2066, 2066,
3775      2066, 2059, 2067, 2067, 2067, 2061, 2067, 3325, 2063, 2067,
3776      1508, 2065, 2068, 2068, 2068, 2066, 3342, 2043, 2069, 2069,
3777      2069, 2070, 2070, 2070, 3342, 2070, 3350, 3338, 2070, 2068,
3778
3779      2051, 2071, 2071, 2071, 3326, 2069, 2072, 2072, 2072, 3339,
3780      2073, 2073, 2073, 3346, 2073, 3327, 2061, 2073, 1505, 2071,
3781      2076, 2076, 2076, 2072, 2080, 2080, 2080, 2065, 2068, 2081,
3782      2081, 2081, 2090, 2090, 2090, 1504, 2090, 3350, 2076, 2090,
3783      3326, 3338, 2080, 2093, 2093, 2093, 2081, 2097, 2097, 2097,
3784      3343, 3327, 2072, 3339, 2071, 2098, 2098, 2098, 3343, 2098,
3785      3346, 2093, 2098, 1503, 2097, 2099, 2099, 2099, 2104, 2104,
3786      2104, 3334, 3335, 2076, 2105, 2105, 2105, 2106, 2106, 2106,
3787      2108, 2108, 2108, 2113, 2113, 2113, 2114, 2114, 2114, 2093,
3788      2115, 2115, 2115, 2116, 2116, 2116, 2118, 2118, 2118, 2122,
3789
3790      2122, 2122, 2123, 2123, 2123, 2125, 2125, 2125, 2126, 2126,
3791      2126, 2127, 2127, 2127, 2129, 2129, 2129, 3344, 2129, 3334,
3792      3335, 2129, 2132, 2132, 2132, 3344, 2132, 3348, 3366, 2132,
3793      2136, 2136, 2136, 2138, 2138, 2138, 2140, 2140, 2140, 2116,
3794      2141, 2141, 2141, 3336, 2141, 3352, 3340, 2141, 2136, 3337,
3795      3340, 2138, 3353, 2140, 2142, 2142, 2142, 2127, 2143, 2143,
3796      2143, 3345, 2143, 3351, 3348, 2143, 2146, 2146, 2146, 3345,
3797      2146, 3366, 2142, 2146, 2149, 2149, 2149, 2150, 2150, 2150,
3798      3352, 2136, 2151, 2151, 2151, 3349, 2151, 3353, 3347, 2151,
3799      1502, 3336, 2149, 2138, 2149, 2150, 3372, 3337, 2154, 2154,
3800
3801      2154, 2155, 2155, 2155, 3351, 2155, 3358, 1501, 2155, 2159,
3802      2159, 2159, 3356, 2150, 2142, 2154, 2156, 2156, 2156, 3357,
3803      2156, 3360, 3349, 2156, 2161, 2161, 2161, 2159, 2161, 3372,
3804      3360, 2161, 2167, 2167, 2167, 3347, 2167, 3361, 3358, 2167,
3805      2170, 2170, 2170, 2171, 2171, 2171, 3361, 2171, 3373, 3356,
3806      2171, 2175, 2175, 2175, 3378, 2175, 3357, 2170, 2175, 2179,
3807      2179, 2179, 2180, 2180, 2180, 2181, 2181, 2181, 3362, 3341,
3808      2184, 2184, 2184, 3341, 2184, 2159, 2179, 2184, 3354, 1500,
3809      2180, 3373, 3355, 2181, 2189, 2189, 2189, 2190, 2190, 2190,
3810      2192, 2192, 2192, 2193, 2193, 2193, 3378, 2193, 3364, 3359,
3811
3812      2193, 1499, 2189, 3362, 3398, 2190, 1496, 2192, 3363, 2198,
3813      2198, 2198, 2199, 2199, 2199, 2201, 2201, 2201, 2203, 2203,
3814      2203, 3370, 2203, 1495, 3354, 2203, 2180, 2198, 3355, 3367,
3815      2199, 3359, 3364, 2201, 2206, 2206, 2206, 3374, 2190, 2189,
3816      2208, 2208, 2208, 3363, 2208, 3398, 3374, 2208, 2214, 2214,
3817      2214, 3392, 2206, 2215, 2215, 2215, 3370, 2215, 3368, 3392,
3818      2215, 2216, 2216, 2216, 3365, 2214, 2217, 2217, 2217, 2218,
3819      2218, 2218, 3367, 3399, 2199, 2198, 2219, 2219, 2219, 2216,
3820      2220, 2220, 2220, 2221, 2221, 2221, 3369, 2206, 2222, 2222,
3821      2222, 2223, 2223, 2223, 2224, 2224, 2224, 2220, 3365, 1494,
3822
3823      2221, 2227, 2227, 2227, 3368, 2222, 3375, 3380, 2223, 2228,
3824      2228, 2228, 2224, 2228, 3399, 3375, 2228, 3384, 2227, 2230,
3825      2230, 2230, 2232, 2232, 2232, 2216, 2235, 2235, 2235, 2236,
3826      2236, 2236, 3369, 2236, 2221, 3376, 2236, 2230, 1485, 1483,
3827      2232, 2239, 2239, 2239, 2235, 3371, 3384, 2240, 2240, 2240,
3828      2223, 2240, 2222, 3380, 2240, 2245, 2245, 2245, 2239, 2224,
3829      2242, 2242, 2242, 3379, 2242, 3377, 3382, 2242, 2246, 2246,
3830      2246, 3381, 3376, 2245, 2247, 2247, 2247, 1478, 2247, 3390,
3831      3371, 2247, 2249, 2249, 2249, 2246, 2253, 2253, 2253, 3393,
3832      2255, 2255, 2255, 3388, 2256, 2256, 2256, 3393, 2256, 3385,
3833
3834      2249, 2256, 3377, 3382, 2253, 3379, 2245, 2255, 2267, 2267,
3835      2267, 2268, 2268, 2268, 2271, 2271, 2271, 3381, 2271, 3383,
3836      3400, 2271, 2274, 2274, 2274, 3390, 2267, 3388, 3385, 2268,
3837      2275, 2275, 2275, 2249, 2276, 2276, 2276, 2279, 2279, 2279,
3838      2280, 2280, 2280, 2282, 2282, 2282, 2283, 2283, 2283, 2285,
3839      2285, 2285, 2286, 2286, 2286, 3400, 3383, 2267, 2287, 2287,
3840      2287, 2288, 2288, 2288, 2291, 2291, 2291, 2292, 2292, 2292,
3841      2295, 2295, 2295, 2296, 2296, 2296, 2298, 2298, 2298, 2299,
3842      2299, 2299, 2303, 2303, 2303, 2304, 2304, 2304, 2305, 2305,
3843      2305, 2306, 2306, 2306, 2307, 2307, 2307, 3396, 2307, 3408,
3844
3845      2303, 2307, 2310, 2310, 2310, 3389, 2305, 3408, 2306, 2311,
3846      2311, 2311, 2312, 2312, 2312, 2313, 2313, 2313, 3397, 2313,
3847      2310, 3409, 2313, 2316, 2316, 2316, 3391, 2311, 3386, 3409,
3848      2312, 2321, 2321, 2321, 3396, 2321, 3387, 3386, 2321, 3389,
3849      3394, 2316, 2324, 2324, 2324, 3387, 2311, 2328, 2328, 2328,
3850      2330, 2330, 2330, 2310, 2305, 3397, 2329, 2329, 2329, 2324,
3851      2329, 3401, 3406, 2329, 2328, 2331, 2331, 2331, 2330, 2336,
3852      2336, 2336, 3391, 2312, 2337, 2337, 2337, 2338, 2338, 2338,
3853      2339, 2339, 2339, 2331, 2340, 2340, 2340, 3394, 2340, 1472,
3854      3404, 2340, 2337, 1466, 3406, 2338, 3401, 2339, 2343, 2343,
3855
3856      2343, 2344, 2344, 2344, 2345, 2345, 2345, 2346, 2346, 2346,
3857      2347, 2347, 2347, 3395, 3410, 2343, 1462, 3405, 2344, 3432,
3858      1457, 2345, 1453, 3402, 2346, 3403, 2339, 3404, 2347, 2348,
3859      2348, 2348, 3418, 3432, 2337, 2349, 2349, 2349, 2350, 2350,
3860      2350, 2354, 2354, 2354, 2355, 2355, 2355, 2348, 2355, 1452,
3861      3412, 2355, 2349, 2343, 3405, 2345, 2350, 2358, 2358, 2358,
3862      3395, 3410, 2344, 2359, 2359, 2359, 2360, 2360, 2360, 3402,
3863      2347, 3403, 2361, 2361, 2361, 2358, 2361, 3411, 3418, 2361,
3864      2362, 2362, 2362, 2360, 2363, 2363, 2363, 3412, 3419, 2350,
3865      2364, 2364, 2364, 2348, 2365, 2365, 2365, 2362, 2366, 2366,
3866
3867      2366, 2363, 2367, 2367, 2367, 3407, 3413, 2364, 2371, 2371,
3868      2371, 1444, 2365, 2368, 2368, 2368, 2358, 2368, 3416, 2367,
3869      2368, 2372, 2372, 2372, 3411, 2371, 2376, 2376, 2376, 2378,
3870      2378, 2378, 1439, 2378, 3419, 2363, 2378, 3407, 1430, 2372,
3871      1428, 2364, 3424, 3413, 2376, 2382, 2382, 2382, 2383, 2383,
3872      2383, 3424, 2383, 3416, 1419, 2383, 1414, 2387, 2387, 2387,
3873      2391, 2391, 2391, 2382, 2391, 3420, 1410, 2391, 2404, 2404,
3874      2404, 2405, 2405, 2405, 2371, 2387, 2418, 2418, 2418, 2419,
3875      2419, 2419, 2422, 2422, 2422, 3414, 2404, 3415, 3417, 2405,
3876      2423, 2423, 2423, 2425, 2425, 2425, 2426, 2426, 2426, 2429,
3877
3878      2429, 2429, 3420, 2387, 2432, 2432, 2432, 2436, 2436, 2436,
3879      2438, 2438, 2438, 2439, 2439, 2439, 1405, 2440, 2440, 2440,
3880      2441, 2441, 2441, 3417, 2441, 2436, 3414, 2441, 3415, 2404,
3881      1404, 2439, 1403, 2405, 2440, 2442, 2442, 2442, 2443, 2443,
3882      2443, 2444, 2444, 2444, 2445, 2445, 2445, 2452, 2452, 2452,
3883      2453, 2453, 2453, 2442, 2453, 3421, 2443, 2453, 1401, 2444,
3884      3433, 3422, 2445, 3423, 2452, 2455, 2455, 2455, 2457, 2457,
3885      2457, 3433, 2457, 3426, 3427, 2457, 2460, 2460, 2460, 2464,
3886      2464, 2464, 2455, 2465, 2465, 2465, 2466, 2466, 2466, 2467,
3887      2467, 2467, 3421, 3422, 2460, 3423, 2464, 2469, 2469, 2469,
3888
3889      3428, 1400, 2443, 3425, 2466, 3426, 3427, 2467, 2444, 2470,
3890      2470, 2470, 3425, 2470, 2469, 3430, 2470, 2474, 2474, 2474,
3891      2475, 2475, 2475, 2476, 2476, 2476, 3429, 2476, 1398, 1393,
3892      2476, 2477, 2477, 2477, 2474, 1392, 1387, 2475, 2478, 2478,
3893      2478, 1386, 1380, 2466, 2479, 2479, 2479, 3430, 3428, 2477,
3894      2480, 2480, 2480, 1379, 2480, 1378, 2478, 2480, 2481, 2481,
3895      2481, 2479, 2484, 2484, 2484, 2485, 2485, 2485, 2486, 2486,
3896      2486, 2487, 2487, 2487, 3429, 2487, 2481, 3431, 2487, 2484,
3897      2490, 2490, 2490, 2491, 2491, 2491, 2486, 2491, 1377, 1360,
3898      2491, 2492, 2492, 2492, 2493, 2493, 2493, 2490, 1349, 2478,
3899
3900      2494, 2494, 2494, 2496, 2496, 2496, 1344, 1343, 2492, 3431,
3901      1342, 2493, 2497, 2497, 2497, 2498, 2498, 2498, 2494, 2498,
3902      1338, 1321, 2498, 2499, 2499, 2499, 2503, 2503, 2503, 2497,
3903      2506, 2506, 2506, 2519, 2519, 2519, 2537, 2537, 2537, 1320,
3904      2499, 2538, 2538, 2538, 2503, 2543, 2543, 2543, 2506, 1315,
3905      1314, 2519, 2546, 2546, 2546, 2547, 2547, 2547, 2549, 2549,
3906      2549, 1313, 2549, 1308, 1307, 2549, 2552, 2552, 2552, 2546,
3907      2554, 2554, 2554, 2547, 2555, 2555, 2555, 1289, 2499, 1288,
3908      2559, 2559, 2559, 1287, 2552, 2576, 2576, 2576, 2554, 2565,
3909      2565, 2565, 2555, 2519, 1286, 1285, 2506, 2559, 2561, 2561,
3910
3911      2561, 1284, 2561, 2576, 1283, 2561, 2565, 2566, 2566, 2566,
3912      1282, 2566, 1281, 1271, 2566, 2573, 2573, 2573, 2574, 2574,
3913      2574, 2575, 2575, 2575, 1270, 2575, 1269, 1268, 2575, 1263,
3914      1262, 2554, 2573, 1261, 1260, 2574, 1237, 2577, 2577, 2577,
3915      2555, 2577, 1236, 1229, 2577, 2583, 2583, 2583, 2584, 2584,
3916      2584, 1225, 2584, 1220, 1219, 2584, 2585, 2585, 2585, 1214,
3917      2585, 1211, 2583, 2585, 2588, 2588, 2588, 2590, 2590, 2590,
3918      2591, 2591, 2591, 1210, 2591, 1207, 1206, 2591, 2594, 2594,
3919      2594, 1205, 2588, 1204, 1203, 2590, 2597, 2597, 2597, 2598,
3920      2598, 2598, 1202, 2599, 2599, 2599, 2594, 2599, 1201, 1200,
3921
3922      2599, 1199, 1197, 2597, 1196, 1195, 2598, 2600, 2600, 2600,
3923      2602, 2602, 2602, 1194, 2602, 1193, 1190, 2602, 2605, 2605,
3924      2605, 2607, 2607, 2607, 1189, 2600, 2606, 2606, 2606, 2590,
3925      2606, 1188, 1187, 2606, 1185, 2605, 1184, 1183, 2607, 2608,
3926      2608, 2608, 1182, 2608, 1181, 1180, 2608, 2609, 2609, 2609,
3927      1179, 2609, 1178, 1176, 2609, 2612, 2612, 2612, 2613, 2613,
3928      2613, 2614, 2614, 2614, 2617, 2617, 2617, 2618, 2618, 2618,
3929      1175, 1174, 2612, 1173, 1172, 2613, 1171, 1170, 2614, 2619,
3930      2619, 2619, 2617, 2630, 2630, 2630, 2647, 2647, 2647, 2648,
3931      2648, 2648, 2652, 2652, 2652, 1164, 2619, 2655, 2655, 2655,
3932
3933      1160, 2630, 2656, 2656, 2656, 1157, 2656, 1156, 1155, 2656,
3934      2657, 2657, 2657, 1153, 2655, 1149, 2612, 1146, 2658, 2658,
3935      2658, 2661, 2661, 2661, 2662, 2662, 2662, 1145, 2657, 1144,
3936      2663, 2663, 2663, 1140, 2663, 2617, 2658, 2663, 2661, 1139,
3937      1136, 2662, 1132, 2630, 2664, 2664, 2664, 2666, 2666, 2666,
3938      1131, 2666, 1128, 1125, 2666, 2677, 2677, 2677, 2678, 2678,
3939      2678, 2664, 2678, 1122, 1121, 2678, 2679, 2679, 2679, 2658,
3940      2679, 1116, 2677, 2679, 2682, 2682, 2682, 2657, 2685, 2685,
3941      2685, 2687, 2687, 2687, 1108, 2687, 1107, 1106, 2687, 2696,
3942      2696, 2696, 2682, 1104, 1100, 2685, 2698, 2698, 2698, 2699,
3943
3944      2699, 2699, 1097, 2699, 1094, 1091, 2699, 2696, 2700, 2700,
3945      2700, 1090, 2700, 2698, 1089, 2700, 2703, 2703, 2703, 1088,
3946      2703, 1087, 1086, 2703, 2706, 2706, 2706, 1085, 2706, 1084,
3947      1081, 2706, 2715, 2715, 2715, 2716, 2716, 2716, 2717, 2717,
3948      2717, 1080, 2717, 1077, 1076, 2717, 2718, 2718, 2718, 2715,
3949      1072, 1070, 2716, 2719, 2719, 2719, 1067, 2719, 1066, 1063,
3950      2719, 1062, 1059, 2718, 2720, 2720, 2720, 2721, 2721, 2721,
3951      2722, 2722, 2722, 2723, 2723, 2723, 2724, 2724, 2724, 1052,
3952      1049, 2720, 1048, 1047, 2721, 2736, 2736, 2736, 2722, 2739,
3953      2739, 2739, 2715, 2724, 2725, 2725, 2725, 1044, 2725, 1040,
3954
3955      1033, 2725, 1032, 2736, 1028, 1027, 2739, 2739, 2753, 2753,
3956      2753, 2754, 2754, 2754, 2757, 2757, 2757, 2758, 2758, 2758,
3957      2760, 2760, 2760, 1026, 2760, 1023, 1022, 2760, 2763, 2763,
3958      2763, 1021, 2722, 2764, 2764, 2764, 2736, 2767, 2767, 2767,
3959      2768, 2768, 2768, 1018, 2768, 1011, 2763, 2768, 2769, 2769,
3960      2769, 2764, 2769, 1010, 2767, 2769, 2772, 2772, 2772, 2773,
3961      2773, 2773, 1009, 2773, 1008, 1007, 2773, 2783, 2783, 2783,
3962      1006, 2783, 1005, 2772, 2783, 2787, 2787, 2787, 2788, 2788,
3963      2788, 1004, 2788, 1003, 1002, 2788, 2796, 2796, 2796, 2799,
3964      2799, 2799, 2787, 2799, 2763,  998, 2799, 2814, 2814, 2814,
3965
3966       994, 2815, 2815, 2815, 2796, 2815,  971,  968, 2815, 2818,
3967      2818, 2818,  965, 2818, 2814,  964, 2818, 2821, 2821, 2821,
3968      2822, 2822, 2822,  957, 2822,  956,  954, 2822, 2823, 2823,
3969      2823, 2824, 2824, 2824, 2821, 2824,  953,  952, 2824, 2825,
3970      2825, 2825, 2826, 2826, 2826, 2823, 2826,  951,  950, 2826,
3971      2837, 2837, 2837, 2839, 2839, 2839,  949, 2825, 2840, 2840,
3972      2840,  948, 2841, 2841, 2841,  947, 2841,  946, 2837, 2841,
3973      2839, 2839, 2854, 2854, 2854, 2840, 2840, 2855, 2855, 2855,
3974      2841, 2856, 2856, 2856, 2857, 2857, 2857, 2858, 2858, 2858,
3975      2825, 2859, 2859, 2859, 2864, 2864, 2864,  945,  944, 2837,
3976
3977      2865, 2865, 2865, 2869, 2869, 2869,  943, 2869,  941,  940,
3978      2869,  939, 2864, 2872, 2872, 2872,  938, 2872, 2865,  937,
3979      2872, 2875, 2875, 2875, 2884, 2884, 2884, 2885, 2885, 2885,
3980       936, 2885,  935,  934, 2885, 2888, 2888, 2888, 2875,  933,
3981       931, 2884, 2908, 2908, 2908, 2864, 2909, 2909, 2909,  930,
3982      2909,  929, 2888, 2909, 2914, 2914, 2914,  928, 2914, 2908,
3983       927, 2914, 2917, 2917, 2917,  926, 2917,  925,  924, 2917,
3984      2920, 2920, 2920, 2929, 2929, 2929, 2931, 2931, 2931, 2932,
3985      2932, 2932,  923, 2932,  922,  918, 2932,  914, 2920,  913,
3986       912, 2929,  911, 2931, 2931,  910,  906, 2932, 2933, 2933,
3987
3988      2933,  904, 2933,  903,  902, 2933, 2944, 2944, 2944, 2945,
3989      2945, 2945, 2946, 2946, 2946,  901, 2933, 2947, 2947, 2947,
3990      2952, 2952, 2952, 2956, 2956, 2956,  900, 2956,  899,  896,
3991      2956,  895, 2955, 2955, 2955, 2957, 2957, 2957, 2952, 2929,
3992      2934, 2934, 2934, 2934, 2934, 2934, 2934, 2934, 2934, 2955,
3993       893, 2934, 2957, 2965, 2965, 2965, 2934, 2934, 2934, 2934,
3994      2934, 2966, 2966, 2966,  891, 2966,  887,  886, 2966,  885,
3995      2965, 2968, 2968, 2968,  883, 2968,  880,  879, 2968, 2967,
3996      2967, 2967, 2993, 2993, 2993, 2934, 2934, 2935, 2935, 2935,
3997      2935, 2935, 2935, 2935, 2935, 2935, 2967,  877, 2935,  876,
3998
3999      2993,  873,  871, 2935, 2935, 2935, 2935, 2935, 2986, 2986,
4000      2986,  868, 2986,  867,  866, 2986, 3001, 3001, 3001, 3003,
4001      3003, 3003,  865, 3003,  862,  861, 3003,  860,  859, 3018,
4002      3018, 3018, 2935, 2935, 3001,  858,  857, 3003, 3006, 3006,
4003      3006, 3006, 3006, 3006, 3006, 3006, 3006, 3018,  856, 3006,
4004      3025, 3025, 3025,  854, 3006, 3006, 3006, 3006, 3006, 3022,
4005      3022, 3022,  851, 3022,  850,  846, 3022, 3025, 3026, 3026,
4006      3026,  845, 3026,  844,  843, 3026, 3065, 3065, 3065, 3073,
4007      3073, 3073,  842, 3006, 3006, 3007, 3007, 3007, 3007, 3007,
4008      3007, 3007, 3007, 3007, 3065,  841, 3007, 3073, 3073,  840,
4009
4010       832, 3007, 3007, 3007, 3007, 3007, 3032, 3032, 3032,  831,
4011      3032,  828,  827, 3032, 3035, 3035, 3035,  826, 3035,  825,
4012       824, 3035, 3086, 3086, 3086, 3087, 3087, 3087,  822,  821,
4013      3007, 3007,  820, 3092, 3092, 3092,  817, 3092,  816, 3086,
4014      3092,  815, 3087, 3097, 3097, 3097, 3102, 3102, 3102, 3115,
4015      3115, 3115, 3119, 3119, 3119, 3128, 3128, 3128,  812,  811,
4016      3097,  810,  807, 3102, 3129, 3129, 3129, 3115, 3129,  806,
4017      3119, 3129, 3128, 3130, 3130, 3130, 3131, 3131, 3131,  802,
4018      3131,  800,  797, 3131, 3140, 3140, 3140, 3141, 3141, 3141,
4019      3130, 3141,  796,  795, 3141, 3148, 3148, 3148, 3149, 3149,
4020
4021      3149, 3140, 3149, 3119,  794, 3149, 3156, 3156, 3156, 3164,
4022      3164, 3164, 3148, 3164,  792,  789, 3164,  788, 3167, 3167,
4023      3167,  787, 3167,  784, 3156, 3167, 3178, 3178, 3178,  781,
4024      3178,  777,  776, 3178, 3187, 3187, 3187,  775, 3187,  774,
4025       771, 3187,  768, 3156, 3308, 3308, 3308, 3317, 3317, 3317,
4026       767, 3317,  764,  760, 3317, 3434, 3434, 3434, 3435, 3435,
4027      3435,  759, 3308,  758,  757, 3317,  756,  755,  754,  753,
4028       752,  751,  750, 3434,  749,  747, 3435, 3438, 3438, 3438,
4029      3438, 3438, 3438, 3438, 3438, 3438, 3439, 3439, 3439, 3439,
4030      3439, 3439, 3439, 3439, 3439, 3440, 3440, 3440, 3440, 3440,
4031
4032      3440, 3440, 3440, 3440, 3441, 3441, 3441, 3441, 3441, 3441,
4033      3441, 3441, 3441, 3442, 3442, 3442, 3442, 3442, 3442, 3442,
4034      3442, 3442, 3443, 3443, 3443, 3443, 3443, 3443, 3443, 3443,
4035      3443, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444, 3444,
4036      3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3446,
4037      3446, 3446, 3446, 3446, 3446, 3446, 3446, 3446, 3447, 3447,
4038      3447, 3447, 3447, 3447, 3447, 3447, 3447, 3448, 3448, 3448,
4039      3448, 3448, 3448, 3448, 3448, 3448, 3449, 3449, 3449, 3449,
4040      3449, 3449, 3449, 3449, 3449, 3450, 3450, 3450, 3450, 3450,
4041      3450, 3450, 3450, 3450, 3451, 3451, 3451, 3451, 3451, 3451,
4042
4043      3451, 3451, 3451, 3452, 3452, 3452, 3452, 3452, 3452, 3452,
4044      3452, 3452, 3453, 3453, 3453, 3453, 3453, 3453, 3453, 3453,
4045      3453, 3454, 3454, 3454, 3454, 3454, 3454, 3454, 3454, 3454,
4046      3455, 3455, 3455, 3455, 3455, 3455, 3455, 3455, 3455, 3456,
4047      3456, 3456, 3456, 3456, 3456, 3456, 3456, 3456, 3457, 3457,
4048      3457, 3457, 3457, 3457, 3457, 3457, 3457, 3458, 3458, 3458,
4049      3458, 3458, 3458, 3458, 3458, 3458, 3459, 3459, 3459, 3459,
4050      3459, 3459, 3459, 3459, 3459, 3460, 3460, 3460, 3460, 3460,
4051      3460, 3460, 3460, 3460, 3461, 3461, 3461, 3461, 3461, 3461,
4052      3461, 3461, 3461, 3462, 3462, 3462, 3462, 3462, 3462, 3462,
4053
4054      3462, 3462, 3463, 3463, 3463, 3463, 3463, 3463, 3463, 3463,
4055      3463, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464,
4056      3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3466,
4057      3466, 3466, 3466, 3466, 3466, 3466, 3466, 3466, 3467, 3467,
4058      3467, 3467, 3467, 3467, 3467, 3467, 3467, 3468, 3468, 3468,
4059      3468, 3468, 3468, 3468, 3468, 3468, 3469, 3469, 3469, 3469,
4060      3469, 3469, 3469, 3469, 3469, 3470, 3470, 3470, 3470, 3470,
4061      3470, 3470, 3470, 3470, 3471, 3471, 3471, 3471, 3471, 3471,
4062      3471, 3471, 3471, 3472, 3472, 3472, 3472, 3472, 3472, 3472,
4063      3472, 3472, 3473, 3473, 3473, 3473, 3473, 3473, 3473, 3473,
4064
4065      3473, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474,
4066      3475, 3475, 3475, 3475, 3475, 3475, 3475, 3475, 3475, 3476,
4067      3476, 3476, 3476, 3476, 3476, 3476, 3476, 3476, 3477, 3477,
4068      3477, 3477, 3477, 3477, 3477, 3477, 3477, 3478, 3478, 3478,
4069      3478, 3478, 3478, 3478, 3478, 3478, 3479, 3479, 3479, 3479,
4070      3479, 3479, 3479, 3479, 3479, 3480, 3480, 3480, 3480, 3480,
4071      3480, 3480, 3480, 3480, 3481, 3481, 3481, 3481, 3481, 3481,
4072      3481, 3481, 3481, 3482, 3482, 3482, 3482, 3482, 3482, 3482,
4073      3482, 3482, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483,
4074      3483, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
4075
4076      3485, 3485, 3485, 3485, 3485, 3485, 3485, 3485, 3485, 3486,
4077      3486, 3486, 3486, 3486, 3486, 3486, 3486, 3486, 3487, 3487,
4078      3487, 3487, 3487, 3487, 3487, 3487, 3487, 3488, 3488, 3488,
4079      3488, 3488, 3488, 3488, 3488, 3488, 3489, 3489, 3489, 3489,
4080      3489, 3489, 3489, 3489, 3489, 3490, 3490, 3490, 3490, 3490,
4081      3490, 3490, 3490, 3490, 3491, 3491, 3491, 3491, 3491, 3491,
4082      3491, 3491, 3491, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
4083      3492, 3492, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493,
4084      3493, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494,
4085      3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3495, 3496,
4086
4087      3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3497, 3497,
4088      3497, 3497, 3497, 3497, 3497, 3497, 3497, 3498, 3498, 3498,
4089      3498, 3498, 3498, 3498, 3498, 3498, 3499, 3499, 3499, 3499,
4090      3499, 3499, 3499, 3499, 3499, 3500, 3500, 3500, 3500, 3500,
4091      3500, 3500, 3500, 3500, 3501, 3501, 3501, 3501, 3501, 3501,
4092      3501, 3501, 3501, 3502, 3502, 3502,  745,  744,  741, 3502,
4093      3503, 3503, 3503,  740,  739,  738, 3503, 3504, 3504, 3504,
4094       737,  736,  731, 3504, 3505, 3505, 3505,  730,  729,  726,
4095      3505, 3506, 3506, 3506,  725,  724,  723, 3506, 3507, 3507,
4096      3507,  720,  719,  717, 3507, 3508, 3508, 3508,  714,  713,
4097
4098       710, 3508, 3509, 3509, 3509,  709,  708,  707, 3509, 3510,
4099      3510, 3510,  706,  705,  697, 3510, 3511, 3511, 3511,  696,
4100       695,  692, 3511, 3512, 3512, 3512,  691,  690,  689, 3512,
4101      3513, 3513, 3513,  686,  684,  683, 3513, 3514, 3514, 3514,
4102       679,  678,  677, 3514, 3515, 3515, 3515,  676,  673,  672,
4103      3515, 3516, 3516, 3516,  671,  670,  666, 3516, 3517, 3517,
4104      3517,  665,  664,  663, 3517, 3518, 3518, 3518,  657,  656,
4105       654, 3518, 3519, 3519, 3519,  648,  647,  646, 3519, 3520,
4106      3520, 3520,  642,  639,  637, 3520, 3521, 3521, 3521,  636,
4107       635,  631, 3521, 3522, 3522, 3522,  627,  623,  622, 3522,
4108
4109      3523, 3523, 3523,  621,  620,  616, 3523, 3524, 3524, 3524,
4110       612,  609,  608, 3524, 3525, 3525, 3525,  607,  606,  602,
4111      3525, 3526, 3526, 3526,  596,  595,  591, 3526, 3527, 3527,
4112      3527,  583,  579,  572, 3527, 3528, 3528, 3528,  570,  569,
4113       565, 3528, 3529, 3529, 3529,  559,  558,  554, 3529, 3530,
4114      3530, 3530,  550,  546,  545, 3530, 3531, 3531, 3531, 3531,
4115      3531, 3531, 3531,  544, 3531, 3532, 3532, 3532,  543,  542,
4116       538, 3532, 3533,  534,  527,  523, 3533, 3534, 3534, 3534,
4117       515,  514,  513, 3534, 3535,  512,  511,  507, 3535, 3536,
4118      3536, 3536,  501,  500,  496, 3536, 3537,  490,  489,  485,
4119
4120      3537, 3538, 3538, 3538,  479,  478,  474, 3538, 3539,  468,
4121       467,  463, 3539, 3540, 3540, 3540,  459,  455,  454, 3540,
4122      3541,  453,  449,  445, 3541, 3542, 3542, 3542,  441,  437,
4123       431, 3542, 3543,  430,  429,  425, 3543, 3544, 3544, 3544,
4124       421,  416,  415, 3544, 3545,  414,  413,  409, 3545, 3546,
4125      3546, 3546,  403,  399,  395, 3546, 3547,  392,  388,  384,
4126      3547, 3548, 3548, 3548,  381,  378,  376, 3548, 3549,  375,
4127       373,  369, 3549, 3550, 3550, 3550,  362,  361,  360, 3550,
4128      3551,  359,  358,  354, 3551, 3552, 3552, 3552,  347,  346,
4129       342, 3552, 3553,  335,  334,  333, 3553, 3554, 3554, 3554,
4130
4131       329,  323,  322, 3554, 3555,  321,  317,  311, 3555, 3556,
4132      3556, 3556,  307,  298,  297, 3556, 3557,  293,  289,  285,
4133      3557, 3558, 3558, 3558,  281,  280,  276, 3558, 3559,  273,
4134       272,  271, 3559, 3560, 3560, 3560,  265,  264,  262, 3560,
4135      3561,  259,  247,    0, 3561, 3562, 3562, 3562,    0,    0,
4136         0, 3562, 3563,    0,    0,    0, 3563, 3564, 3564, 3564,
4137         0,    0,    0, 3564, 3565,    0,    0,    0, 3565, 3566,
4138      3566, 3566,    0,    0,    0, 3566, 3567,    0,    0,    0,
4139      3567, 3568, 3568, 3568,    0,    0,    0, 3568, 3569,    0,
4140         0,    0, 3569, 3570, 3570, 3570,    0,    0,    0, 3570,
4141
4142      3571,    0,    0,    0, 3571, 3572, 3572, 3572,    0,    0,
4143         0, 3572, 3573,    0,    0,    0, 3573, 3574, 3574, 3574,
4144         0,    0,    0, 3574, 3575,    0,    0,    0, 3575, 3576,
4145      3576, 3576,    0,    0,    0, 3576, 3577,    0,    0,    0,
4146      3577, 3578, 3578, 3578,    0,    0,    0, 3578, 3579,    0,
4147         0,    0, 3579, 3580, 3580, 3580,    0,    0,    0, 3580,
4148      3581,    0,    0,    0, 3581, 3582, 3582, 3582,    0,    0,
4149         0, 3582, 3583,    0,    0,    0, 3583, 3584, 3584, 3584,
4150         0,    0,    0, 3584, 3585,    0,    0,    0, 3585, 3586,
4151      3586, 3586,    0,    0,    0, 3586, 3587,    0,    0,    0,
4152
4153      3587, 3588, 3588, 3588,    0,    0,    0, 3588, 3589,    0,
4154         0,    0, 3589, 3590, 3590, 3590, 3590, 3590, 3590, 3590,
4155      3590, 3590, 3591,    0,    0,    0,    0, 3591, 3592, 3592,
4156      3592,    0,    0,    0, 3592, 3593, 3593, 3593, 3593,    0,
4157         0, 3593, 3593, 3594, 3594, 3594, 3594,    0, 3594,    0,
4158      3594, 3595, 3595, 3595, 3595,    0,    0, 3595, 3595, 3596,
4159      3596, 3596,    0,    0,    0, 3596, 3597, 3597, 3597, 3597,
4160         0,    0, 3597, 3597, 3598, 3598, 3598,    0,    0,    0,
4161      3598, 3599, 3599, 3599, 3599,    0,    0, 3599, 3599, 3600,
4162      3600, 3600, 3600,    0, 3600,    0, 3600, 3601, 3601, 3601,
4163
4164      3601,    0,    0, 3601, 3601, 3602, 3602, 3602, 3602,    0,
4165      3602,    0, 3602, 3603, 3603, 3603, 3603,    0,    0, 3603,
4166      3603, 3604, 3604, 3604, 3604,    0, 3604,    0, 3604, 3605,
4167      3605, 3605, 3605,    0,    0, 3605, 3605, 3606, 3606, 3606,
4168         0,    0,    0, 3606, 3607, 3607, 3607, 3607,    0,    0,
4169      3607, 3607, 3608, 3608, 3608, 3608,    0,    0, 3608, 3608,
4170      3609, 3609, 3609,    0,    0,    0, 3609, 3610, 3610, 3610,
4171      3610,    0,    0, 3610, 3610, 3611, 3611, 3611,    0,    0,
4172         0, 3611, 3612, 3612, 3612, 3612,    0,    0, 3612, 3612,
4173      3613, 3613, 3613,    0,    0,    0, 3613, 3614, 3614, 3614,
4174
4175      3614,    0,    0, 3614, 3614, 3615, 3615, 3615,    0,    0,
4176         0, 3615, 3616, 3616, 3616, 3616,    0,    0, 3616, 3616,
4177      3617, 3617, 3617,    0,    0,    0, 3617, 3618, 3618, 3618,
4178      3618,    0,    0, 3618, 3618, 3619, 3619, 3619,    0,    0,
4179         0, 3619, 3620, 3620, 3620, 3620,    0,    0, 3620, 3620,
4180      3621, 3621, 3621,    0,    0,    0, 3621, 3622, 3622, 3622,
4181      3622,    0,    0, 3622, 3622, 3623, 3623, 3623,    0,    0,
4182         0, 3623, 3624, 3624, 3624, 3624,    0,    0, 3624, 3624,
4183      3625, 3625, 3625,    0,    0,    0, 3625, 3626, 3626, 3626,
4184      3626,    0,    0, 3626, 3626, 3627, 3627, 3627,    0,    0,
4185
4186         0, 3627, 3628, 3628, 3628, 3628,    0,    0, 3628, 3628,
4187      3629, 3629, 3629,    0,    0,    0, 3629, 3630, 3630, 3630,
4188      3630,    0,    0, 3630, 3630, 3631, 3631, 3631,    0,    0,
4189         0, 3631, 3632, 3632, 3632, 3632,    0,    0, 3632, 3632,
4190      3633, 3633, 3633,    0,    0,    0, 3633, 3634, 3634, 3634,
4191      3634,    0,    0, 3634, 3634, 3635, 3635, 3635,    0,    0,
4192         0, 3635, 3636, 3636, 3636, 3636,    0,    0, 3636, 3636,
4193      3637, 3637, 3637, 3637,    0, 3637,    0, 3637, 3638, 3638,
4194      3638, 3638,    0,    0, 3638, 3638, 3639, 3639, 3639,    0,
4195         0,    0, 3639, 3640, 3640, 3640, 3640,    0,    0, 3640,
4196
4197      3640, 3641, 3641, 3641,    0,    0,    0, 3641, 3642, 3642,
4198      3642, 3642,    0,    0, 3642, 3642, 3643, 3643, 3643,    0,
4199         0,    0, 3643, 3644, 3644, 3644, 3644,    0,    0, 3644,
4200      3644, 3645, 3645, 3645,    0,    0,    0, 3645, 3646, 3646,
4201      3646, 3646,    0,    0, 3646, 3646, 3647, 3647, 3647,    0,
4202         0,    0, 3647, 3648, 3648, 3648, 3648,    0,    0, 3648,
4203      3648, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649,
4204      3650,    0, 3650,    0,    0, 3650, 3651, 3651, 3651,    0,
4205         0,    0, 3651, 3652, 3652, 3652, 3652,    0,    0, 3652,
4206      3652, 3653, 3653, 3653,    0,    0,    0, 3653, 3654, 3654,
4207
4208      3654, 3654,    0,    0, 3654, 3654, 3655, 3655, 3655,    0,
4209         0,    0, 3655, 3656, 3656, 3656, 3656,    0,    0, 3656,
4210      3656, 3657, 3657, 3657,    0,    0,    0, 3657, 3658, 3658,
4211      3658, 3658,    0,    0, 3658, 3658, 3659, 3659, 3659,    0,
4212         0,    0, 3659, 3660, 3660, 3660, 3660,    0,    0, 3660,
4213      3660, 3661, 3661, 3661, 3661,    0,    0, 3661, 3661, 3662,
4214      3662, 3662,    0,    0,    0, 3662, 3663, 3663, 3663, 3663,
4215         0,    0, 3663, 3663, 3664, 3664, 3664,    0,    0,    0,
4216      3664, 3665, 3665, 3665, 3665,    0,    0, 3665, 3665, 3666,
4217      3666, 3666, 3666,    0,    0, 3666, 3666, 3667, 3667, 3667,
4218
4219      3667,    0, 3667,    0, 3667, 3668, 3668, 3668, 3668,    0,
4220         0, 3668, 3668, 3669, 3669, 3669,    0,    0,    0, 3669,
4221      3670, 3670, 3670, 3670,    0,    0, 3670, 3670, 3671, 3671,
4222      3671, 3671,    0, 3671,    0, 3671, 3672, 3672, 3672, 3672,
4223         0,    0, 3672, 3672, 3673, 3673, 3673, 3673,    0, 3673,
4224         0, 3673, 3674, 3674, 3674, 3674,    0,    0, 3674, 3674,
4225      3675, 3675, 3675,    0,    0,    0, 3675, 3676, 3676, 3676,
4226      3676,    0,    0, 3676, 3676, 3677, 3677, 3677,    0,    0,
4227         0, 3677, 3678, 3678, 3678, 3678,    0,    0, 3678, 3678,
4228      3679, 3679, 3679,    0,    0,    0, 3679, 3680, 3680, 3680,
4229
4230      3680,    0,    0, 3680, 3680, 3681, 3681, 3681, 3681,    0,
4231      3681,    0, 3681, 3682, 3682, 3682, 3682,    0,    0, 3682,
4232      3682, 3683, 3683, 3683, 3683,    0, 3683,    0, 3683, 3684,
4233      3684, 3684, 3684,    0,    0, 3684, 3684, 3685, 3685, 3685,
4234         0,    0,    0, 3685, 3686, 3686, 3686, 3686,    0,    0,
4235      3686, 3686, 3687, 3687, 3687,    0,    0,    0, 3687, 3688,
4236      3688, 3688, 3688,    0,    0, 3688, 3688, 3689, 3689, 3689,
4237         0,    0,    0, 3689, 3690, 3690, 3690, 3690,    0,    0,
4238      3690, 3690, 3691, 3691, 3691,    0,    0,    0, 3691, 3692,
4239      3692, 3692, 3692,    0,    0, 3692, 3692, 3693, 3693, 3693,
4240
4241         0,    0,    0, 3693, 3694, 3694, 3694, 3694,    0,    0,
4242      3694, 3694, 3695, 3695, 3695,    0,    0,    0, 3695, 3696,
4243      3696, 3696, 3696,    0,    0, 3696, 3696, 3697, 3697, 3697,
4244         0,    0,    0, 3697, 3698, 3698, 3698, 3698,    0,    0,
4245      3698, 3698, 3699, 3699, 3699,    0,    0,    0, 3699, 3700,
4246      3700, 3700, 3700,    0,    0, 3700, 3700, 3701, 3701, 3701,
4247         0,    0,    0, 3701, 3702, 3702, 3702, 3702,    0,    0,
4248      3702, 3702, 3703, 3703, 3703, 3703,    0, 3703,    0, 3703,
4249      3704, 3704, 3704, 3704,    0,    0, 3704, 3704, 3705, 3705,
4250      3705,    0,    0,    0, 3705, 3706, 3706, 3706, 3706,    0,
4251
4252         0, 3706, 3706, 3707, 3707, 3707, 3707, 3707, 3707, 3707,
4253      3707, 3707, 3708, 3708, 3708, 3708, 3708, 3708, 3708, 3708,
4254      3708, 3709, 3709, 3709,    0,    0,    0, 3709, 3710, 3710,
4255      3710,    0,    0,    0, 3710, 3711, 3711, 3711, 3711,    0,
4256         0, 3711, 3711, 3712, 3712, 3712, 3712,    0, 3712,    0,
4257      3712, 3713, 3713, 3713, 3713,    0,    0, 3713, 3713, 3714,
4258      3714, 3714,    0,    0,    0, 3714, 3715, 3715, 3715, 3715,
4259         0,    0, 3715, 3715, 3716, 3716, 3716,    0,    0,    0,
4260      3716, 3717, 3717, 3717, 3717,    0,    0, 3717, 3717, 3718,
4261      3718, 3718, 3718,    0,    0, 3718, 3718, 3719, 3719, 3719,
4262
4263         0,    0,    0, 3719, 3720, 3720, 3720, 3720,    0,    0,
4264      3720, 3720, 3721, 3721, 3721,    0,    0,    0, 3721, 3722,
4265      3722, 3722, 3722,    0,    0, 3722, 3722, 3723, 3723, 3723,
4266      3723,    0,    0, 3723, 3723, 3724, 3724, 3724, 3724,    0,
4267         0, 3724, 3724, 3725, 3725, 3725,    0,    0,    0, 3725,
4268      3726, 3726, 3726, 3726,    0,    0, 3726, 3726, 3727, 3727,
4269      3727, 3727,    0,    0, 3727, 3727, 3728, 3728, 3728, 3728,
4270         0,    0, 3728, 3728, 3729, 3729, 3729,    0,    0,    0,
4271      3729, 3730, 3730, 3730, 3730,    0,    0, 3730, 3730, 3731,
4272      3731, 3731,    0,    0,    0, 3731, 3732, 3732, 3732, 3732,
4273
4274         0,    0, 3732, 3732, 3733, 3733, 3733, 3733,    0, 3733,
4275         0, 3733, 3734, 3734, 3734, 3734,    0,    0, 3734, 3734,
4276      3735, 3735, 3735,    0,    0,    0, 3735, 3736, 3736, 3736,
4277      3736,    0,    0, 3736, 3736, 3737, 3737, 3737,    0,    0,
4278         0, 3737, 3738, 3738, 3738, 3738,    0,    0, 3738, 3738,
4279      3739, 3739, 3739,    0,    0,    0, 3739, 3740, 3740, 3740,
4280      3740,    0,    0, 3740, 3740, 3741, 3741, 3741,    0,    0,
4281         0, 3741, 3742, 3742, 3742, 3742,    0,    0, 3742, 3742,
4282      3743, 3743, 3743,    0,    0,    0, 3743, 3744, 3744, 3744,
4283      3744,    0,    0, 3744, 3744, 3745, 3745, 3745, 3745,    0,
4284
4285      3745,    0, 3745, 3746, 3746, 3746, 3746,    0,    0, 3746,
4286      3746, 3747, 3747, 3747,    0,    0,    0, 3747, 3748, 3748,
4287      3748, 3748,    0,    0, 3748, 3748, 3749, 3749, 3749,    0,
4288         0,    0, 3749, 3750, 3750, 3750, 3750,    0,    0, 3750,
4289      3750, 3751, 3751, 3751,    0,    0,    0, 3751, 3752, 3752,
4290      3752, 3752,    0,    0, 3752, 3752, 3753, 3753, 3753,    0,
4291         0,    0, 3753, 3754, 3754, 3754, 3754,    0,    0, 3754,
4292      3754, 3755, 3755, 3755,    0,    0,    0, 3755, 3756, 3756,
4293      3756, 3756,    0,    0, 3756, 3756, 3757, 3757, 3757,    0,
4294         0,    0, 3757, 3758, 3758, 3758, 3758,    0,    0, 3758,
4295
4296      3758, 3759, 3759, 3759,    0,    0,    0, 3759, 3760, 3760,
4297      3760, 3760,    0,    0, 3760, 3760, 3761, 3761, 3761, 3761,
4298      3761, 3761, 3761, 3761, 3761, 3762, 3762, 3762, 3762, 3762,
4299      3762, 3762, 3762, 3762, 3763, 3763, 3763,    0,    0,    0,
4300      3763, 3764, 3764, 3764, 3764,    0, 3764,    0, 3764, 3765,
4301      3765, 3765, 3765,    0,    0, 3765, 3765, 3766, 3766, 3766,
4302      3766,    0,    0, 3766, 3766, 3767, 3767, 3767,    0,    0,
4303         0, 3767, 3768, 3768, 3768, 3768,    0,    0, 3768, 3768,
4304      3769, 3769, 3769, 3769,    0, 3769,    0, 3769, 3770, 3770,
4305      3770, 3770,    0,    0, 3770, 3770, 3771, 3771, 3771, 3771,
4306
4307         0,    0, 3771, 3771, 3772, 3772, 3772, 3772,    0, 3772,
4308         0, 3772, 3773, 3773, 3773, 3773,    0,    0, 3773, 3773,
4309      3774, 3774, 3774,    0,    0,    0, 3774, 3775, 3775, 3775,
4310      3775,    0,    0, 3775, 3775, 3776, 3776, 3776, 3776,    0,
4311         0, 3776, 3776, 3777, 3777, 3777,    0,    0,    0, 3777,
4312      3778, 3778, 3778, 3778,    0,    0, 3778, 3778, 3779, 3779,
4313      3779, 3779,    0,    0, 3779, 3779, 3780, 3780, 3780, 3780,
4314         0,    0, 3780, 3780, 3781, 3781, 3781,    0,    0,    0,
4315      3781, 3782, 3782, 3782, 3782,    0,    0, 3782, 3782, 3783,
4316      3783, 3783,    0,    0,    0, 3783, 3784, 3784, 3784, 3784,
4317
4318         0,    0, 3784, 3784, 3785, 3785, 3785, 3785,    0,    0,
4319      3785, 3785, 3786, 3786, 3786,    0,    0,    0, 3786, 3787,
4320      3787, 3787, 3787,    0,    0, 3787, 3787, 3788, 3788, 3788,
4321      3788,    0, 3788,    0, 3788, 3789, 3789, 3789, 3789,    0,
4322         0, 3789, 3789, 3790, 3790, 3790,    0,    0,    0, 3790,
4323      3791, 3791, 3791, 3791,    0,    0, 3791, 3791, 3792, 3792,
4324      3792,    0,    0,    0, 3792, 3793, 3793, 3793, 3793,    0,
4325         0, 3793, 3793, 3794, 3794, 3794,    0,    0,    0, 3794,
4326      3795, 3795, 3795, 3795,    0,    0, 3795, 3795, 3796, 3796,
4327      3796, 3796,    0,    0, 3796, 3796, 3797, 3797, 3797,    0,
4328
4329         0,    0, 3797, 3798, 3798, 3798, 3798,    0,    0, 3798,
4330      3798, 3799, 3799, 3799,    0,    0,    0, 3799, 3800, 3800,
4331      3800, 3800,    0,    0, 3800, 3800, 3801, 3801, 3801,    0,
4332         0,    0, 3801, 3802, 3802, 3802, 3802,    0,    0, 3802,
4333      3802, 3803, 3803, 3803, 3803,    0, 3803,    0, 3803, 3804,
4334      3804, 3804, 3804,    0,    0, 3804, 3804, 3805, 3805, 3805,
4335         0,    0,    0, 3805, 3806, 3806, 3806, 3806,    0,    0,
4336      3806, 3806, 3807, 3807, 3807,    0,    0,    0, 3807, 3808,
4337      3808, 3808, 3808,    0,    0, 3808, 3808, 3809, 3809, 3809,
4338         0,    0,    0, 3809, 3810, 3810, 3810, 3810,    0,    0,
4339
4340      3810, 3810, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811,
4341      3811, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812,
4342      3813, 3813, 3813, 3813,    0, 3813,    0, 3813, 3814, 3814,
4343      3814,    0,    0,    0, 3814, 3815, 3815, 3815, 3815,    0,
4344         0, 3815, 3815, 3816, 3816, 3816, 3816,    0,    0, 3816,
4345      3816, 3817, 3817, 3817,    0,    0,    0, 3817, 3818, 3818,
4346      3818, 3818,    0,    0, 3818, 3818, 3819, 3819, 3819, 3819,
4347         0,    0, 3819, 3819, 3820, 3820, 3820, 3820,    0,    0,
4348      3820, 3820, 3821, 3821, 3821, 3821,    0, 3821,    0, 3821,
4349      3822, 3822, 3822, 3822,    0,    0, 3822, 3822, 3823, 3823,
4350
4351      3823,    0,    0,    0, 3823, 3824, 3824, 3824, 3824,    0,
4352         0, 3824, 3824, 3825, 3825, 3825, 3825,    0,    0, 3825,
4353      3825, 3826, 3826, 3826,    0,    0,    0, 3826, 3827, 3827,
4354      3827, 3827,    0,    0, 3827, 3827, 3828, 3828, 3828, 3828,
4355         0,    0, 3828, 3828, 3829, 3829, 3829,    0,    0,    0,
4356      3829, 3830, 3830, 3830,    0,    0,    0, 3830, 3831, 3831,
4357      3831, 3831,    0,    0, 3831, 3831, 3832, 3832, 3832, 3832,
4358         0,    0, 3832, 3832, 3833, 3833, 3833,    0,    0,    0,
4359      3833, 3834, 3834, 3834, 3834,    0,    0, 3834, 3834, 3835,
4360      3835, 3835, 3835,    0,    0, 3835, 3835, 3836, 3836, 3836,
4361
4362         0,    0,    0, 3836, 3837, 3837, 3837, 3837,    0, 3837,
4363         0, 3837, 3838, 3838, 3838, 3838,    0,    0, 3838, 3838,
4364      3839, 3839, 3839,    0,    0,    0, 3839, 3840, 3840, 3840,
4365      3840,    0,    0, 3840, 3840, 3841, 3841, 3841,    0,    0,
4366         0, 3841, 3842, 3842, 3842, 3842,    0,    0, 3842, 3842,
4367      3843, 3843, 3843,    0,    0,    0, 3843, 3844, 3844, 3844,
4368      3844,    0,    0, 3844, 3844, 3845, 3845, 3845,    0,    0,
4369         0, 3845, 3846, 3846, 3846, 3846,    0,    0, 3846, 3846,
4370      3847, 3847, 3847, 3847,    0, 3847,    0, 3847, 3848, 3848,
4371      3848, 3848,    0,    0, 3848, 3848, 3849, 3849, 3849, 3849,
4372
4373         0, 3849,    0, 3849, 3850, 3850, 3850, 3850,    0,    0,
4374      3850, 3850, 3851, 3851, 3851,    0,    0,    0, 3851, 3852,
4375      3852, 3852, 3852,    0,    0, 3852, 3852, 3853, 3853, 3853,
4376      3853,    0, 3853,    0, 3853, 3854, 3854, 3854, 3854,    0,
4377         0, 3854, 3854, 3855, 3855, 3855, 3855, 3855, 3855, 3855,
4378      3855, 3855, 3856, 3856, 3856, 3856, 3856, 3856, 3856, 3856,
4379      3856, 3857, 3857, 3857,    0,    0,    0, 3857, 3858, 3858,
4380      3858, 3858,    0,    0, 3858, 3858, 3859, 3859, 3859, 3859,
4381         0,    0, 3859, 3859, 3860, 3860, 3860,    0,    0,    0,
4382      3860, 3861, 3861, 3861, 3861,    0,    0, 3861, 3861, 3862,
4383
4384      3862, 3862, 3862,    0,    0, 3862, 3862, 3863, 3863, 3863,
4385      3863,    0,    0, 3863, 3863, 3864, 3864, 3864, 3864,    0,
4386         0, 3864, 3864, 3865, 3865, 3865,    0,    0,    0, 3865,
4387      3866, 3866, 3866, 3866,    0,    0, 3866, 3866, 3867, 3867,
4388      3867, 3867,    0,    0, 3867, 3867, 3868, 3868, 3868,    0,
4389         0,    0, 3868, 3869, 3869, 3869, 3869,    0,    0, 3869,
4390      3869, 3870, 3870, 3870, 3870,    0,    0, 3870, 3870, 3871,
4391      3871, 3871,    0,    0,    0, 3871, 3872, 3872, 3872,    0,
4392         0,    0, 3872, 3873, 3873, 3873, 3873,    0,    0, 3873,
4393      3873, 3874, 3874, 3874, 3874,    0,    0, 3874, 3874, 3875,
4394
4395      3875, 3875,    0,    0,    0, 3875, 3876, 3876, 3876, 3876,
4396         0,    0, 3876, 3876, 3877, 3877, 3877,    0,    0,    0,
4397      3877, 3878, 3878, 3878, 3878,    0,    0, 3878, 3878, 3879,
4398      3879, 3879, 3879,    0, 3879,    0, 3879, 3880, 3880, 3880,
4399      3880,    0,    0, 3880, 3880, 3881, 3881, 3881,    0,    0,
4400         0, 3881, 3882, 3882, 3882, 3882,    0,    0, 3882, 3882,
4401      3883, 3883, 3883,    0,    0,    0, 3883, 3884, 3884, 3884,
4402         0,    0,    0, 3884, 3885, 3885, 3885, 3885,    0,    0,
4403      3885, 3885, 3886, 3886, 3886,    0,    0,    0, 3886, 3887,
4404      3887, 3887, 3887,    0,    0, 3887, 3887, 3888, 3888, 3888,
4405
4406         0,    0,    0, 3888, 3889, 3889, 3889, 3889,    0,    0,
4407      3889, 3889, 3890, 3890, 3890,    0,    0,    0, 3890, 3891,
4408      3891, 3891, 3891,    0,    0, 3891, 3891, 3892, 3892, 3892,
4409      3892, 3892, 3892, 3892, 3892, 3892, 3893, 3893, 3893, 3893,
4410      3893, 3893, 3893, 3893, 3893, 3894, 3894, 3894,    0,    0,
4411         0, 3894, 3895, 3895, 3895, 3895,    0,    0, 3895, 3895,
4412      3896, 3896, 3896, 3896,    0,    0, 3896, 3896, 3897, 3897,
4413      3897, 3897,    0, 3897,    0, 3897, 3898, 3898, 3898, 3898,
4414         0,    0, 3898, 3898, 3899, 3899, 3899, 3899,    0,    0,
4415      3899, 3899, 3900, 3900, 3900, 3900,    0,    0, 3900, 3900,
4416
4417      3901, 3901, 3901, 3901,    0,    0, 3901, 3901, 3902, 3902,
4418      3902,    0,    0,    0, 3902, 3903, 3903, 3903, 3903,    0,
4419         0, 3903, 3903, 3904, 3904, 3904,    0,    0,    0, 3904,
4420      3905, 3905, 3905, 3905,    0,    0, 3905, 3905, 3906, 3906,
4421      3906, 3906,    0,    0, 3906, 3906, 3907, 3907, 3907, 3907,
4422         0, 3907,    0, 3907, 3908, 3908, 3908, 3908,    0, 3908,
4423         0, 3908, 3909, 3909, 3909, 3909,    0,    0, 3909, 3909,
4424      3910, 3910, 3910, 3910,    0,    0, 3910, 3910, 3911, 3911,
4425      3911, 3911,    0, 3911,    0, 3911, 3912, 3912, 3912, 3912,
4426         0,    0, 3912, 3912, 3913, 3913, 3913,    0,    0,    0,
4427
4428      3913, 3914, 3914, 3914, 3914,    0,    0, 3914, 3914, 3915,
4429      3915, 3915, 3915,    0, 3915,    0, 3915, 3916, 3916, 3916,
4430      3916,    0,    0, 3916, 3916, 3917, 3917, 3917, 3917,    0,
4431      3917,    0, 3917, 3918, 3918, 3918,    0,    0,    0, 3918,
4432      3919, 3919, 3919,    0,    0,    0, 3919, 3920, 3920, 3920,
4433         0,    0,    0, 3920, 3921, 3921, 3921, 3921,    0,    0,
4434      3921, 3921, 3922, 3922, 3922,    0,    0,    0, 3922, 3923,
4435      3923, 3923, 3923,    0,    0, 3923, 3923, 3924, 3924, 3924,
4436         0,    0,    0, 3924, 3925, 3925, 3925, 3925,    0,    0,
4437      3925, 3925, 3926, 3926, 3926, 3926, 3926, 3926, 3926, 3926,
4438
4439      3926, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927,
4440      3928, 3928, 3928,    0,    0,    0, 3928, 3929, 3929, 3929,
4441      3929,    0,    0, 3929, 3929, 3930, 3930, 3930, 3930,    0,
4442         0, 3930, 3930, 3931, 3931, 3931, 3931,    0,    0, 3931,
4443      3931, 3932, 3932, 3932, 3932,    0,    0, 3932, 3932, 3933,
4444      3933, 3933,    0,    0,    0, 3933, 3934, 3934, 3934,    0,
4445         0,    0, 3934, 3935, 3935, 3935, 3935,    0,    0, 3935,
4446      3935, 3936, 3936, 3936,    0,    0,    0, 3936, 3937, 3937,
4447      3937, 3937,    0,    0, 3937, 3937, 3938, 3938, 3938, 3938,
4448         0,    0, 3938, 3938, 3939, 3939, 3939, 3939, 3939, 3939,
4449
4450      3939, 3939, 3939, 3940, 3940, 3940, 3940, 3940, 3940, 3940,
4451      3940, 3940, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941,
4452      3941, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942,
4453      3943, 3943, 3943, 3943, 3943, 3943, 3943, 3943, 3943, 3944,
4454      3944, 3944, 3944, 3944, 3944, 3944, 3944, 3944, 3437, 3437,
4455      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
4456      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
4457      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
4458      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
4459      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
4460
4461      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
4462      3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
4463      3437, 3437, 3437
4464     } ;
4465
4466 /* Table of booleans, true if rule could match eol. */
4467 static yyconst flex_int32_t yy_rule_can_match_eol[586] =
4468     {   0,
4469 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4470     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4471     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4472     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4473     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4474     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4475     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4476     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4477     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4478     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4479     0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 
4480     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4481     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4482     0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4483     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4484     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4485     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 
4486     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4487     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4488     1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4489     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4490     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4491     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4492     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4493     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4494     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4495     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4496     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4497     0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 
4498     1, 0, 0, 0, 1, 0,     };
4499
4500 static yy_state_type yy_last_accepting_state;
4501 static char *yy_last_accepting_cpos;
4502
4503 extern int surf_parse__flex_debug;
4504 int surf_parse__flex_debug = 0;
4505
4506 /* The intent behind this definition is that it'll catch
4507  * any uses of REJECT which flex missed.
4508  */
4509 #define REJECT reject_used_but_not_detected
4510 #define yymore() yymore_used_but_not_detected
4511 #define YY_MORE_ADJ 0
4512 #define YY_RESTORE_YY_MORE_OFFSET
4513 char *surf_parse_text;
4514 /* Validating XML processor for src/surf/xml/simgrid.dtd.
4515  *
4516  * This program was generated with the FleXML XML processor generator.
4517  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4518  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4519  * (1.9.6).
4520  * 
4521  * There are two, intertwined parts to this program, part A and part B.
4522  *
4523  * Part A
4524  * ------
4525  * 
4526  * Some parts, here collectively called "Part A", are found in the 
4527  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4528  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4529  *
4530  * You can redistribute, use, perform, display and/or modify "Part A"
4531  * provided the following two conditions hold:
4532  *
4533  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4534  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4535  *    FITNESS FOR A PARTICULAR PURPOSE.
4536  *
4537  * 2. The program distribution conditions do not in any way affect the
4538  *    distribution conditions of the FleXML system used to generate this
4539  *    file or any version of FleXML derived from that system.
4540  *
4541  * Notice that these are explicit rights granted to you for files
4542  * generated by the FleXML system.  For your rights in connection with
4543  * the FleXML system itself please consult the GNU General Public License.
4544  * 
4545  * Part B
4546  * ------
4547  * 
4548  * The other parts, here collectively called "Part B", and which came 
4549  * from the DTD used by FleXML to generate this program, can be 
4550  * distributed (or not, as the case may be) under the terms of whoever
4551  * wrote them, provided these terms respect and obey the two conditions 
4552  * above under the heading "Part A".
4553  *
4554  * The author of and contributors to FleXML specifically disclaim
4555  * any copyright interest in "Part B", unless "Part B" was written 
4556  * by the author of or contributors to FleXML.
4557  * 
4558  */
4559
4560 /* Version strings. */
4561 const char surfxml_flexml_version[] = "1.9.6";
4562
4563 /* ANSI headers. */
4564 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4565 #include <stdio.h>
4566 #include <string.h>
4567 #include <assert.h>
4568 #include <stdarg.h>
4569 #include <ctype.h>
4570      
4571 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4572 # ifndef __STRICT_ANSI__
4573 #  include <io.h>
4574 #  include <process.h>
4575 # endif
4576 #else
4577 # include <unistd.h>
4578 #endif
4579      
4580 #ifndef FLEXML_INDEXSTACKSIZE
4581 #define FLEXML_INDEXSTACKSIZE 1000
4582 #endif
4583
4584 /* Generated definitions. */
4585 #define FLEXML_yylineno
4586 #ifndef FLEXML_BUFFERSTACKSIZE
4587 #define FLEXML_BUFFERSTACKSIZE 1000000
4588 #endif
4589 #define FLEXML_NEED_BUFFERLIT
4590
4591 /* XML processor api. */
4592 /* FleXML-provided data. */
4593 int surfxml_pcdata_ix;
4594 extern char *surfxml_bufferstack;
4595 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4596 AT_surfxml_AS_id AX_surfxml_AS_id;
4597 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4598 short int surfxml_AS_id_isset;
4599 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4600 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4601 short int surfxml_AS_routing_isset;
4602 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4603 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4604 short int surfxml_ASroute_dst_isset;
4605 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4606 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4607 short int surfxml_ASroute_gw___dst_isset;
4608 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4609 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4610 short int surfxml_ASroute_gw___src_isset;
4611 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4612 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4613 short int surfxml_ASroute_src_isset;
4614 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4615 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4616 short int surfxml_ASroute_symmetrical_isset;
4617 AT_surfxml_argument_value AX_surfxml_argument_value;
4618 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4619 short int surfxml_argument_value_isset;
4620 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4621 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4622 short int surfxml_backbone_bandwidth_isset;
4623 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4624 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4625 short int surfxml_backbone_id_isset;
4626 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4627 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4628 short int surfxml_backbone_latency_isset;
4629 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4630 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4631 short int surfxml_bypassASroute_dst_isset;
4632 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4633 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4634 short int surfxml_bypassASroute_gw___dst_isset;
4635 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4636 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4637 short int surfxml_bypassASroute_gw___src_isset;
4638 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4639 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4640 short int surfxml_bypassASroute_src_isset;
4641 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4642 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4643 short int surfxml_bypassRoute_dst_isset;
4644 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4645 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4646 short int surfxml_bypassRoute_src_isset;
4647 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4648 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4649 short int surfxml_cabinet_bw_isset;
4650 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4651 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4652 short int surfxml_cabinet_id_isset;
4653 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4654 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4655 short int surfxml_cabinet_lat_isset;
4656 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4657 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4658 short int surfxml_cabinet_prefix_isset;
4659 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4660 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4661 short int surfxml_cabinet_radical_isset;
4662 AT_surfxml_cabinet_speed AX_surfxml_cabinet_speed;
4663 #define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
4664 short int surfxml_cabinet_speed_isset;
4665 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4666 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4667 short int surfxml_cabinet_suffix_isset;
4668 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4669 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4670 short int surfxml_cluster_availability___file_isset;
4671 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4672 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4673 short int surfxml_cluster_bb___bw_isset;
4674 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4675 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4676 short int surfxml_cluster_bb___lat_isset;
4677 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4678 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4679 short int surfxml_cluster_bb___sharing___policy_isset;
4680 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4681 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4682 short int surfxml_cluster_bw_isset;
4683 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4684 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4685 short int surfxml_cluster_core_isset;
4686 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4687 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4688 short int surfxml_cluster_id_isset;
4689 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4690 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4691 short int surfxml_cluster_lat_isset;
4692 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4693 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4694 short int surfxml_cluster_limiter___link_isset;
4695 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4696 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4697 short int surfxml_cluster_loopback___bw_isset;
4698 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4699 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4700 short int surfxml_cluster_loopback___lat_isset;
4701 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4702 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4703 short int surfxml_cluster_prefix_isset;
4704 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4705 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4706 short int surfxml_cluster_radical_isset;
4707 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4708 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4709 short int surfxml_cluster_router___id_isset;
4710 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4711 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4712 short int surfxml_cluster_sharing___policy_isset;
4713 AT_surfxml_cluster_speed AX_surfxml_cluster_speed;
4714 #define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
4715 short int surfxml_cluster_speed_isset;
4716 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4717 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4718 short int surfxml_cluster_state___file_isset;
4719 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4720 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4721 short int surfxml_cluster_suffix_isset;
4722 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4723 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4724 short int surfxml_cluster_topo___parameters_isset;
4725 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4726 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4727 short int surfxml_cluster_topology_isset;
4728 AT_surfxml_config_id AX_surfxml_config_id;
4729 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4730 short int surfxml_config_id_isset;
4731 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4732 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4733 short int surfxml_gpu_name_isset;
4734 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4735 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4736 short int surfxml_host_availability___file_isset;
4737 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4738 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4739 short int surfxml_host_coordinates_isset;
4740 AT_surfxml_host_core AX_surfxml_host_core;
4741 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4742 short int surfxml_host_core_isset;
4743 AT_surfxml_host_id AX_surfxml_host_id;
4744 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4745 short int surfxml_host_id_isset;
4746 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4747 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4748 short int surfxml_host_pstate_isset;
4749 AT_surfxml_host_speed AX_surfxml_host_speed;
4750 #define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
4751 short int surfxml_host_speed_isset;
4752 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4753 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4754 short int surfxml_host_state___file_isset;
4755 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4756 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4757 short int surfxml_host___link_down_isset;
4758 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4759 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4760 short int surfxml_host___link_id_isset;
4761 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4762 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4763 short int surfxml_host___link_up_isset;
4764 AT_surfxml_include_file AX_surfxml_include_file;
4765 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4766 short int surfxml_include_file_isset;
4767 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4768 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4769 short int surfxml_link_bandwidth_isset;
4770 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4771 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4772 short int surfxml_link_bandwidth___file_isset;
4773 AT_surfxml_link_id AX_surfxml_link_id;
4774 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4775 short int surfxml_link_id_isset;
4776 AT_surfxml_link_latency AX_surfxml_link_latency;
4777 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4778 short int surfxml_link_latency_isset;
4779 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4780 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4781 short int surfxml_link_latency___file_isset;
4782 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4783 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4784 short int surfxml_link_sharing___policy_isset;
4785 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4786 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4787 short int surfxml_link_state___file_isset;
4788 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4789 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4790 short int surfxml_link___ctn_direction_isset;
4791 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4792 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4793 short int surfxml_link___ctn_id_isset;
4794 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
4795 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
4796 short int surfxml_model___prop_id_isset;
4797 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
4798 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
4799 short int surfxml_model___prop_value_isset;
4800 AT_surfxml_mount_name AX_surfxml_mount_name;
4801 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4802 short int surfxml_mount_name_isset;
4803 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4804 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4805 short int surfxml_mount_storageId_isset;
4806 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4807 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4808 short int surfxml_mstorage_name_isset;
4809 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4810 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4811 short int surfxml_mstorage_typeId_isset;
4812 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4813 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4814 short int surfxml_peer_availability___file_isset;
4815 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4816 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4817 short int surfxml_peer_bw___in_isset;
4818 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4819 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4820 short int surfxml_peer_bw___out_isset;
4821 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4822 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4823 short int surfxml_peer_coordinates_isset;
4824 AT_surfxml_peer_id AX_surfxml_peer_id;
4825 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4826 short int surfxml_peer_id_isset;
4827 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4828 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4829 short int surfxml_peer_lat_isset;
4830 AT_surfxml_peer_speed AX_surfxml_peer_speed;
4831 #define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
4832 short int surfxml_peer_speed_isset;
4833 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4834 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4835 short int surfxml_peer_state___file_isset;
4836 AT_surfxml_platform_version AX_surfxml_platform_version;
4837 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4838 short int surfxml_platform_version_isset;
4839 AT_surfxml_process_function AX_surfxml_process_function;
4840 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4841 short int surfxml_process_function_isset;
4842 AT_surfxml_process_host AX_surfxml_process_host;
4843 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4844 short int surfxml_process_host_isset;
4845 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4846 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4847 short int surfxml_process_kill___time_isset;
4848 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4849 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4850 short int surfxml_process_on___failure_isset;
4851 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4852 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4853 short int surfxml_process_start___time_isset;
4854 AT_surfxml_prop_id AX_surfxml_prop_id;
4855 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4856 short int surfxml_prop_id_isset;
4857 AT_surfxml_prop_value AX_surfxml_prop_value;
4858 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4859 short int surfxml_prop_value_isset;
4860 AT_surfxml_random_generator AX_surfxml_random_generator;
4861 #define A_surfxml_random_generator AX_surfxml_random_generator
4862 short int surfxml_random_generator_isset;
4863 AT_surfxml_random_id AX_surfxml_random_id;
4864 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4865 short int surfxml_random_id_isset;
4866 AT_surfxml_random_max AX_surfxml_random_max;
4867 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4868 short int surfxml_random_max_isset;
4869 AT_surfxml_random_mean AX_surfxml_random_mean;
4870 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4871 short int surfxml_random_mean_isset;
4872 AT_surfxml_random_min AX_surfxml_random_min;
4873 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4874 short int surfxml_random_min_isset;
4875 AT_surfxml_random_radical AX_surfxml_random_radical;
4876 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4877 short int surfxml_random_radical_isset;
4878 AT_surfxml_random_seed AX_surfxml_random_seed;
4879 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4880 short int surfxml_random_seed_isset;
4881 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4882 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4883 short int surfxml_random_std___deviation_isset;
4884 AT_surfxml_route_dst AX_surfxml_route_dst;
4885 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4886 short int surfxml_route_dst_isset;
4887 AT_surfxml_route_src AX_surfxml_route_src;
4888 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4889 short int surfxml_route_src_isset;
4890 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4891 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4892 short int surfxml_route_symmetrical_isset;
4893 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4894 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4895 short int surfxml_router_coordinates_isset;
4896 AT_surfxml_router_id AX_surfxml_router_id;
4897 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4898 short int surfxml_router_id_isset;
4899 AT_surfxml_storage_attach AX_surfxml_storage_attach;
4900 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
4901 short int surfxml_storage_attach_isset;
4902 AT_surfxml_storage_content AX_surfxml_storage_content;
4903 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4904 short int surfxml_storage_content_isset;
4905 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4906 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4907 short int surfxml_storage_content___type_isset;
4908 AT_surfxml_storage_id AX_surfxml_storage_id;
4909 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4910 short int surfxml_storage_id_isset;
4911 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4912 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4913 short int surfxml_storage_typeId_isset;
4914 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4915 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4916 short int surfxml_storage___type_content_isset;
4917 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4918 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4919 short int surfxml_storage___type_content___type_isset;
4920 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4921 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4922 short int surfxml_storage___type_id_isset;
4923 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4924 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4925 short int surfxml_storage___type_model_isset;
4926 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4927 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4928 short int surfxml_storage___type_size_isset;
4929 AT_surfxml_trace_file AX_surfxml_trace_file;
4930 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4931 short int surfxml_trace_file_isset;
4932 AT_surfxml_trace_id AX_surfxml_trace_id;
4933 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4934 short int surfxml_trace_id_isset;
4935 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4936 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4937 short int surfxml_trace_periodicity_isset;
4938 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4939 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4940 short int surfxml_trace___connect_element_isset;
4941 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4942 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4943 short int surfxml_trace___connect_kind_isset;
4944 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4945 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4946 short int surfxml_trace___connect_trace_isset;
4947
4948 /* XML state. */
4949 #ifdef FLEX_DEBUG
4950 # define ENTER(state)   debug_enter(state,#state)
4951 # define LEAVE          debug_leave()
4952 # define SET(state)     debug_set(state,#state)
4953   static void debug_enter(int, const char*);
4954   static void debug_leave(void);
4955   static void debug_set(int, const char*);
4956 #else
4957 # define ENTER(state)   (yy_push_state(state))
4958 # define LEAVE          (yy_pop_state())
4959 # define SET(state)     BEGIN(state)
4960 #endif
4961
4962 /* Generic actions. */
4963 #define SKIP    /*skip*/
4964 #define SUCCEED        CLEANUP; return 0
4965
4966 #define FAIL    return fail
4967 static int fail(const char*, ...);
4968
4969 enum {flexml_max_err_msg_size = 512};
4970 static char flexml_err_msg[flexml_max_err_msg_size];
4971 const char * surfxml_parse_err_msg()
4972 {
4973     return flexml_err_msg;
4974 }
4975 static void reset_surfxml_parse_err_msg()
4976 {
4977     flexml_err_msg[0] = '\0';
4978 }
4979
4980 /* Cleanup */
4981 static void cleanup(void);
4982 #define CLEANUP  cleanup()
4983
4984 /* Text buffer stack handling. */
4985 char *surfxml_bufferstack = NULL;
4986 static int blimit = FLEXML_BUFFERSTACKSIZE;
4987 static int bnext = 1;
4988
4989 static int *indexstack = NULL;
4990 static int ilimit = FLEXML_INDEXSTACKSIZE;
4991 static int inext = 1;
4992
4993 #define BUFFERSET(P)  (P = bnext)
4994 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4995 #define BUFFERDONE    (BUFFERPUTC('\0'))
4996
4997 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4998
4999 /* after this is called, there are at least 2 slots left in the stack */
5000 static int ck_blimit()
5001 {
5002      if (bnext >= blimit) {
5003          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5004          {
5005              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5006              assert(temp);
5007              surfxml_bufferstack = temp;
5008          }
5009      }
5010      return 0;
5011 }
5012
5013 /* after this is called, there are at least 2 slots left in the stack */
5014 static int ck_ilimit()
5015 {
5016      if (inext >= ilimit) {
5017          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5018          {
5019              int *temp = (int *) realloc(indexstack, ilimit);
5020              assert(temp);
5021              indexstack = temp;
5022          }
5023      }
5024      return 0;
5025 }
5026
5027 #ifdef FLEXML_NEED_BUFFERLIT
5028 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5029 {
5030    BUFFERSET(*pp);
5031    if (c) {
5032       const char *s = strchr(text, c), *e = strrchr(text, c);
5033       assert(s && e && s <= e);
5034       ++s;
5035       while (s < e) {
5036          if (isspace(*s)) {
5037             BUFFERPUTC(' ');
5038             do ++s; while (s < e && isspace(*s));
5039          } else
5040            BUFFERPUTC(*s++);
5041       }
5042    } else {
5043       const char *s = text;
5044       while (*s)
5045         BUFFERPUTC(*s++);
5046    }
5047    BUFFERDONE;
5048 }
5049 #endif
5050
5051 static void pushbuffer(int p)
5052 {
5053     ck_ilimit();
5054     indexstack[inext++] = p;
5055     indexstack[inext++] = bnext;    
5056 }
5057
5058 static int popbuffer(void)
5059 {
5060     assert(inext >= 2);
5061     bnext = indexstack[--inext];
5062     return indexstack[--inext];
5063 }
5064
5065 /* General internal entities are `unput' back onto the input stream... */
5066 #define ENTITYTEXT(T) \
5067   { char *s = (T), *e = s+strlen(s);\
5068     while (--e >= s) { unput(*e); }}
5069
5070 /* Flex standard options. */
5071 #define YY_NO_INPUT 1
5072 /* Flex user-requested options. */
5073 /* XML character classes (currently restricted to ASCII). */
5074 /* "Common syntactic structures." */
5075 /* "Names and Tokens." */
5076 /* Miscellaneous. */
5077 /* Parser states (flex `exclusive start conditions'):
5078  *
5079  * PROLOG       the XML prolog of the document before <?xml...>
5080  * DOCTYPE      the XML prolog of the document after <?xml...>
5081  * EPILOG       after the root element
5082  * INCOMMENT    inside an XML comment <!--....-->
5083  * INPI         inside an XML PI <?...?>
5084  * VALUE1       inside a '...'-delimited literal
5085  * VALUE2       inside a "..."-delimited literal
5086  * CDATA        inside a <![CDATA[...] ]> section.
5087  * ROOT_<tag>   expect root element <tag>
5088  * AL_<tag>     inside the attribute list for <tag>
5089  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5090  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5091  */
5092
5093 /* State names. */
5094 const char* *surfxml_statenames=NULL;
5095
5096 #define INITIAL 0
5097 #define PROLOG 1
5098 #define DOCTYPE 2
5099 #define EPILOG 3
5100 #define INCOMMENT 4
5101 #define INPI 5
5102 #define VALUE1 6
5103 #define VALUE2 7
5104 #define CDATA 8
5105 #define AL_surfxml_AS 9
5106 #define S_surfxml_AS 10
5107 #define S_surfxml_AS_1 11
5108 #define S_surfxml_AS_2 12
5109 #define S_surfxml_AS_3 13
5110 #define S_surfxml_AS_4 14
5111 #define S_surfxml_AS_5 15
5112 #define S_surfxml_AS_6 16
5113 #define S_surfxml_AS_7 17
5114 #define S_surfxml_AS_8 18
5115 #define E_surfxml_AS 19
5116 #define AL_surfxml_ASroute 20
5117 #define S_surfxml_ASroute 21
5118 #define S_surfxml_ASroute_1 22
5119 #define S_surfxml_ASroute_2 23
5120 #define E_surfxml_ASroute 24
5121 #define AL_surfxml_argument 25
5122 #define E_surfxml_argument 26
5123 #define AL_surfxml_backbone 27
5124 #define E_surfxml_backbone 28
5125 #define AL_surfxml_bypassASroute 29
5126 #define S_surfxml_bypassASroute 30
5127 #define S_surfxml_bypassASroute_1 31
5128 #define S_surfxml_bypassASroute_2 32
5129 #define E_surfxml_bypassASroute 33
5130 #define AL_surfxml_bypassRoute 34
5131 #define S_surfxml_bypassRoute 35
5132 #define S_surfxml_bypassRoute_1 36
5133 #define S_surfxml_bypassRoute_2 37
5134 #define E_surfxml_bypassRoute 38
5135 #define AL_surfxml_cabinet 39
5136 #define E_surfxml_cabinet 40
5137 #define AL_surfxml_cluster 41
5138 #define S_surfxml_cluster 42
5139 #define S_surfxml_cluster_1 43
5140 #define S_surfxml_cluster_2 44
5141 #define E_surfxml_cluster 45
5142 #define AL_surfxml_config 46
5143 #define S_surfxml_config 47
5144 #define S_surfxml_config_1 48
5145 #define S_surfxml_config_2 49
5146 #define E_surfxml_config 50
5147 #define AL_surfxml_gpu 51
5148 #define E_surfxml_gpu 52
5149 #define AL_surfxml_host 53
5150 #define S_surfxml_host 54
5151 #define S_surfxml_host_1 55
5152 #define S_surfxml_host_2 56
5153 #define E_surfxml_host 57
5154 #define AL_surfxml_host___link 58
5155 #define E_surfxml_host___link 59
5156 #define AL_surfxml_include 60
5157 #define S_surfxml_include 61
5158 #define S_surfxml_include_1 62
5159 #define S_surfxml_include_2 63
5160 #define E_surfxml_include 64
5161 #define AL_surfxml_link 65
5162 #define S_surfxml_link 66
5163 #define S_surfxml_link_1 67
5164 #define S_surfxml_link_2 68
5165 #define E_surfxml_link 69
5166 #define AL_surfxml_link___ctn 70
5167 #define E_surfxml_link___ctn 71
5168 #define AL_surfxml_model___prop 72
5169 #define E_surfxml_model___prop 73
5170 #define AL_surfxml_mount 74
5171 #define E_surfxml_mount 75
5172 #define AL_surfxml_mstorage 76
5173 #define E_surfxml_mstorage 77
5174 #define AL_surfxml_peer 78
5175 #define E_surfxml_peer 79
5176 #define ROOT_surfxml_platform 80
5177 #define AL_surfxml_platform 81
5178 #define S_surfxml_platform 82
5179 #define S_surfxml_platform_1 83
5180 #define S_surfxml_platform_2 84
5181 #define S_surfxml_platform_3 85
5182 #define S_surfxml_platform_4 86
5183 #define S_surfxml_platform_5 87
5184 #define S_surfxml_platform_6 88
5185 #define S_surfxml_platform_7 89
5186 #define S_surfxml_platform_8 90
5187 #define E_surfxml_platform 91
5188 #define AL_surfxml_process 92
5189 #define S_surfxml_process 93
5190 #define S_surfxml_process_1 94
5191 #define S_surfxml_process_2 95
5192 #define E_surfxml_process 96
5193 #define AL_surfxml_prop 97
5194 #define E_surfxml_prop 98
5195 #define AL_surfxml_random 99
5196 #define E_surfxml_random 100
5197 #define AL_surfxml_route 101
5198 #define S_surfxml_route 102
5199 #define S_surfxml_route_1 103
5200 #define S_surfxml_route_2 104
5201 #define E_surfxml_route 105
5202 #define AL_surfxml_router 106
5203 #define E_surfxml_router 107
5204 #define AL_surfxml_storage 108
5205 #define S_surfxml_storage 109
5206 #define S_surfxml_storage_1 110
5207 #define S_surfxml_storage_2 111
5208 #define E_surfxml_storage 112
5209 #define AL_surfxml_storage___type 113
5210 #define S_surfxml_storage___type 114
5211 #define S_surfxml_storage___type_1 115
5212 #define S_surfxml_storage___type_2 116
5213 #define E_surfxml_storage___type 117
5214 #define AL_surfxml_trace 118
5215 #define IN_trace 119
5216 #define AL_surfxml_trace___connect 120
5217 #define E_surfxml_trace___connect 121
5218 #define IMPOSSIBLE 122
5219
5220 #ifndef YY_NO_UNISTD_H
5221 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5222  * down here because we want the user's section 1 to have been scanned first.
5223  * The user has a chance to override it with an option.
5224  */
5225 #if defined(_WIN32)
5226 #  ifndef __STRICT_ANSI__
5227 #    include <io.h>
5228 #    include <process.h>
5229 #  endif
5230 #else
5231 #  include <unistd.h>
5232 #endif
5233 #endif
5234
5235 #ifndef YY_EXTRA_TYPE
5236 #define YY_EXTRA_TYPE void *
5237 #endif
5238
5239 static int yy_init_globals (void );
5240
5241 /* Accessor methods to globals.
5242    These are made visible to non-reentrant scanners for convenience. */
5243
5244 int surf_parse_lex_destroy (void );
5245
5246 int surf_parse_get_debug (void );
5247
5248 void surf_parse_set_debug (int debug_flag  );
5249
5250 YY_EXTRA_TYPE surf_parse_get_extra (void );
5251
5252 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5253
5254 FILE *surf_parse_get_in (void );
5255
5256 void surf_parse_set_in  (FILE * in_str  );
5257
5258 FILE *surf_parse_get_out (void );
5259
5260 void surf_parse_set_out  (FILE * out_str  );
5261
5262 yy_size_t surf_parse_get_leng (void );
5263
5264 char *surf_parse_get_text (void );
5265
5266 int surf_parse_get_lineno (void );
5267
5268 void surf_parse_set_lineno (int line_number  );
5269
5270 /* Macros after this point can all be overridden by user definitions in
5271  * section 1.
5272  */
5273
5274 #ifndef YY_SKIP_YYWRAP
5275 #ifdef __cplusplus
5276 extern "C" int surf_parse_wrap (void );
5277 #else
5278 extern int surf_parse_wrap (void );
5279 #endif
5280 #endif
5281
5282 #ifndef yytext_ptr
5283 static void yy_flex_strncpy (char *,yyconst char *,int );
5284 #endif
5285
5286 #ifdef YY_NEED_STRLEN
5287 static int yy_flex_strlen (yyconst char * );
5288 #endif
5289
5290 #ifndef YY_NO_INPUT
5291
5292 #ifdef __cplusplus
5293 static int yyinput (void );
5294 #else
5295 static int input (void );
5296 #endif
5297
5298 #endif
5299
5300         static int yy_start_stack_ptr = 0;
5301         static int yy_start_stack_depth = 0;
5302         static int *yy_start_stack = NULL;
5303     
5304     static void yy_push_state (int new_state );
5305     
5306     static void yy_pop_state (void );
5307     
5308 /* Amount of stuff to slurp up with each read. */
5309 #ifndef YY_READ_BUF_SIZE
5310 #ifdef __ia64__
5311 /* On IA-64, the buffer size is 16k, not 8k */
5312 #define YY_READ_BUF_SIZE 16384
5313 #else
5314 #define YY_READ_BUF_SIZE 8192
5315 #endif /* __ia64__ */
5316 #endif
5317
5318 /* Copy whatever the last rule matched to the standard output. */
5319 #ifndef ECHO
5320 /* This used to be an fputs(), but since the string might contain NUL's,
5321  * we now use fwrite().
5322  */
5323 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5324 #endif
5325
5326 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5327  * is returned in "result".
5328  */
5329 #ifndef YY_INPUT
5330 #define YY_INPUT(buf,result,max_size) \
5331         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5332                 { \
5333                 int c = '*'; \
5334                 size_t n; \
5335                 for ( n = 0; n < max_size && \
5336                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5337                         buf[n] = (char) c; \
5338                 if ( c == '\n' ) \
5339                         buf[n++] = (char) c; \
5340                 if ( c == EOF && ferror( surf_parse_in ) ) \
5341                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5342                 result = n; \
5343                 } \
5344         else \
5345                 { \
5346                 errno=0; \
5347                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5348                         { \
5349                         if( errno != EINTR) \
5350                                 { \
5351                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5352                                 break; \
5353                                 } \
5354                         errno=0; \
5355                         clearerr(surf_parse_in); \
5356                         } \
5357                 }\
5358 \
5359
5360 #endif
5361
5362 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5363  * we don't want an extra ';' after the "return" because that will cause
5364  * some compilers to complain about unreachable statements.
5365  */
5366 #ifndef yyterminate
5367 #define yyterminate() return YY_NULL
5368 #endif
5369
5370 /* Number of entries by which start-condition stack grows. */
5371 #ifndef YY_START_STACK_INCR
5372 #define YY_START_STACK_INCR 25
5373 #endif
5374
5375 /* Report a fatal error. */
5376 #ifndef YY_FATAL_ERROR
5377 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5378 #endif
5379
5380 /* end tables serialization structures and prototypes */
5381
5382 /* Default declaration of generated scanner - a define so the user can
5383  * easily add parameters.
5384  */
5385 #ifndef YY_DECL
5386 #define YY_DECL_IS_OURS 1
5387
5388 extern int surf_parse_lex (void);
5389
5390 #define YY_DECL int surf_parse_lex (void)
5391 #endif /* !YY_DECL */
5392
5393 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5394  * have been set up.
5395  */
5396 #ifndef YY_USER_ACTION
5397 #define YY_USER_ACTION
5398 #endif
5399
5400 /* Code executed at the end of each rule. */
5401 #ifndef YY_BREAK
5402 #define YY_BREAK break;
5403 #endif
5404
5405 #define YY_RULE_SETUP \
5406         YY_USER_ACTION
5407
5408 /** The main scanner function which does all the work.
5409  */
5410 YY_DECL
5411 {
5412         yy_state_type yy_current_state;
5413         char *yy_cp, *yy_bp;
5414         int yy_act;
5415     
5416         if ( !(yy_init) )
5417                 {
5418                 (yy_init) = 1;
5419
5420 #ifdef YY_USER_INIT
5421                 YY_USER_INIT;
5422 #endif
5423
5424                 if ( ! (yy_start) )
5425                         (yy_start) = 1; /* first start state */
5426
5427                 if ( ! surf_parse_in )
5428                         surf_parse_in = stdin;
5429
5430                 if ( ! surf_parse_out )
5431                         surf_parse_out = stdout;
5432
5433                 if ( ! YY_CURRENT_BUFFER ) {
5434                         surf_parse_ensure_buffer_stack ();
5435                         YY_CURRENT_BUFFER_LVALUE =
5436                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5437                 }
5438
5439                 surf_parse__load_buffer_state( );
5440                 }
5441
5442         {
5443
5444  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5445  SET(PROLOG);
5446  reset_surfxml_parse_err_msg();
5447  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5448  assert(surfxml_bufferstack);
5449  #ifdef FLEX_DEBUG
5450  {
5451      int i;
5452      for (i = 0; i < blimit; i++) {
5453          surfxml_bufferstack[i] = '\377';
5454      }
5455  }
5456  #endif
5457  surfxml_bufferstack[0] = '\0';
5458  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5459  assert(indexstack);
5460  indexstack[0] = 0;
5461
5462   /* FleXML_init */
5463   bnext = inext = 1;
5464   surfxml_bufferliteral('\0', &bnext, "0.0");
5465   surfxml_bufferliteral('\0', &bnext, "2147483647");
5466   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5467   surfxml_bufferliteral('\0', &bnext, "1");
5468   surfxml_bufferliteral('\0', &bnext, "0.0");
5469   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5470   surfxml_bufferliteral('\0', &bnext, "1");
5471   surfxml_bufferliteral('\0', &bnext, "0s");
5472   surfxml_bufferliteral('\0', &bnext, "-1.0");
5473   surfxml_bufferliteral('\0', &bnext, "-1.0");
5474   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5475   surfxml_statenames[PROLOG] = NULL;
5476   surfxml_statenames[DOCTYPE] = NULL;
5477   surfxml_statenames[EPILOG] = NULL;
5478   surfxml_statenames[INCOMMENT] = NULL;
5479   surfxml_statenames[INPI] = NULL;
5480   surfxml_statenames[VALUE1] = NULL;
5481   surfxml_statenames[VALUE2] = NULL;
5482   surfxml_statenames[CDATA] = NULL;
5483   surfxml_statenames[AL_surfxml_AS] = NULL;
5484   surfxml_statenames[S_surfxml_AS] = "AS";
5485   surfxml_statenames[S_surfxml_AS_1] = "AS";
5486   surfxml_statenames[S_surfxml_AS_2] = "AS";
5487   surfxml_statenames[S_surfxml_AS_3] = "AS";
5488   surfxml_statenames[S_surfxml_AS_4] = "AS";
5489   surfxml_statenames[S_surfxml_AS_5] = "AS";
5490   surfxml_statenames[S_surfxml_AS_6] = "AS";
5491   surfxml_statenames[S_surfxml_AS_7] = "AS";
5492   surfxml_statenames[S_surfxml_AS_8] = "AS";
5493   surfxml_statenames[E_surfxml_AS] = "AS";
5494   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5495   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5496   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5497   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5498   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5499   surfxml_statenames[AL_surfxml_argument] = NULL;
5500   surfxml_statenames[E_surfxml_argument] = "argument";
5501   surfxml_statenames[AL_surfxml_backbone] = NULL;
5502   surfxml_statenames[E_surfxml_backbone] = "backbone";
5503   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5504   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5505   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5506   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5507   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5508   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5509   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5510   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5511   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5512   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5513   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5514   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5515   surfxml_statenames[AL_surfxml_cluster] = NULL;
5516   surfxml_statenames[S_surfxml_cluster] = "cluster";
5517   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5518   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5519   surfxml_statenames[E_surfxml_cluster] = "cluster";
5520   surfxml_statenames[AL_surfxml_config] = NULL;
5521   surfxml_statenames[S_surfxml_config] = "config";
5522   surfxml_statenames[S_surfxml_config_1] = "config";
5523   surfxml_statenames[S_surfxml_config_2] = "config";
5524   surfxml_statenames[E_surfxml_config] = "config";
5525   surfxml_statenames[AL_surfxml_gpu] = NULL;
5526   surfxml_statenames[E_surfxml_gpu] = "gpu";
5527   surfxml_statenames[AL_surfxml_host] = NULL;
5528   surfxml_statenames[S_surfxml_host] = "host";
5529   surfxml_statenames[S_surfxml_host_1] = "host";
5530   surfxml_statenames[S_surfxml_host_2] = "host";
5531   surfxml_statenames[E_surfxml_host] = "host";
5532   surfxml_statenames[AL_surfxml_host___link] = NULL;
5533   surfxml_statenames[E_surfxml_host___link] = "host_link";
5534   surfxml_statenames[AL_surfxml_include] = NULL;
5535   surfxml_statenames[S_surfxml_include] = "include";
5536   surfxml_statenames[S_surfxml_include_1] = "include";
5537   surfxml_statenames[S_surfxml_include_2] = "include";
5538   surfxml_statenames[E_surfxml_include] = "include";
5539   surfxml_statenames[AL_surfxml_link] = NULL;
5540   surfxml_statenames[S_surfxml_link] = "link";
5541   surfxml_statenames[S_surfxml_link_1] = "link";
5542   surfxml_statenames[S_surfxml_link_2] = "link";
5543   surfxml_statenames[E_surfxml_link] = "link";
5544   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5545   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5546   surfxml_statenames[AL_surfxml_model___prop] = NULL;
5547   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
5548   surfxml_statenames[AL_surfxml_mount] = NULL;
5549   surfxml_statenames[E_surfxml_mount] = "mount";
5550   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5551   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5552   surfxml_statenames[AL_surfxml_peer] = NULL;
5553   surfxml_statenames[E_surfxml_peer] = "peer";
5554   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5555   surfxml_statenames[AL_surfxml_platform] = NULL;
5556   surfxml_statenames[S_surfxml_platform] = "platform";
5557   surfxml_statenames[S_surfxml_platform_1] = "platform";
5558   surfxml_statenames[S_surfxml_platform_2] = "platform";
5559   surfxml_statenames[S_surfxml_platform_3] = "platform";
5560   surfxml_statenames[S_surfxml_platform_4] = "platform";
5561   surfxml_statenames[S_surfxml_platform_5] = "platform";
5562   surfxml_statenames[S_surfxml_platform_6] = "platform";
5563   surfxml_statenames[S_surfxml_platform_7] = "platform";
5564   surfxml_statenames[S_surfxml_platform_8] = "platform";
5565   surfxml_statenames[E_surfxml_platform] = "platform";
5566   surfxml_statenames[AL_surfxml_process] = NULL;
5567   surfxml_statenames[S_surfxml_process] = "process";
5568   surfxml_statenames[S_surfxml_process_1] = "process";
5569   surfxml_statenames[S_surfxml_process_2] = "process";
5570   surfxml_statenames[E_surfxml_process] = "process";
5571   surfxml_statenames[AL_surfxml_prop] = NULL;
5572   surfxml_statenames[E_surfxml_prop] = "prop";
5573   surfxml_statenames[AL_surfxml_random] = NULL;
5574   surfxml_statenames[E_surfxml_random] = "random";
5575   surfxml_statenames[AL_surfxml_route] = NULL;
5576   surfxml_statenames[S_surfxml_route] = "route";
5577   surfxml_statenames[S_surfxml_route_1] = "route";
5578   surfxml_statenames[S_surfxml_route_2] = "route";
5579   surfxml_statenames[E_surfxml_route] = "route";
5580   surfxml_statenames[AL_surfxml_router] = NULL;
5581   surfxml_statenames[E_surfxml_router] = "router";
5582   surfxml_statenames[AL_surfxml_storage] = NULL;
5583   surfxml_statenames[S_surfxml_storage] = "storage";
5584   surfxml_statenames[S_surfxml_storage_1] = "storage";
5585   surfxml_statenames[S_surfxml_storage_2] = "storage";
5586   surfxml_statenames[E_surfxml_storage] = "storage";
5587   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5588   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5589   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5590   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5591   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5592   surfxml_statenames[AL_surfxml_trace] = NULL;
5593   surfxml_statenames[IN_trace] = "trace";
5594   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5595   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5596   }
5597
5598  /* COMMENTS and PIs: handled uniformly for efficiency. */
5599
5600         while ( 1 )             /* loops until end-of-file is reached */
5601                 {
5602                 yy_cp = (yy_c_buf_p);
5603
5604                 /* Support of surf_parse_text. */
5605                 *yy_cp = (yy_hold_char);
5606
5607                 /* yy_bp points to the position in yy_ch_buf of the start of
5608                  * the current run.
5609                  */
5610                 yy_bp = yy_cp;
5611
5612                 yy_current_state = (yy_start);
5613 yy_match:
5614                 do
5615                         {
5616                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
5617                         if ( yy_accept[yy_current_state] )
5618                                 {
5619                                 (yy_last_accepting_state) = yy_current_state;
5620                                 (yy_last_accepting_cpos) = yy_cp;
5621                                 }
5622                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5623                                 {
5624                                 yy_current_state = (int) yy_def[yy_current_state];
5625                                 if ( yy_current_state >= 3438 )
5626                                         yy_c = yy_meta[(unsigned int) yy_c];
5627                                 }
5628                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5629                         ++yy_cp;
5630                         }
5631                 while ( yy_base[yy_current_state] != 12349 );
5632
5633 yy_find_action:
5634                 yy_act = yy_accept[yy_current_state];
5635                 if ( yy_act == 0 )
5636                         { /* have to back up */
5637                         yy_cp = (yy_last_accepting_cpos);
5638                         yy_current_state = (yy_last_accepting_state);
5639                         yy_act = yy_accept[yy_current_state];
5640                         }
5641
5642                 YY_DO_BEFORE_ACTION;
5643
5644                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5645                         {
5646                         yy_size_t yyl;
5647                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5648                                 if ( surf_parse_text[yyl] == '\n' )
5649                                            
5650     surf_parse_lineno++;
5651 ;
5652                         }
5653
5654 do_action:      /* This label is used only to access EOF actions. */
5655
5656                 switch ( yy_act )
5657         { /* beginning of action switch */
5658                         case 0: /* must back up */
5659                         /* undo the effects of YY_DO_BEFORE_ACTION */
5660                         *yy_cp = (yy_hold_char);
5661                         yy_cp = (yy_last_accepting_cpos);
5662                         yy_current_state = (yy_last_accepting_state);
5663                         goto yy_find_action;
5664
5665 case 1:
5666 YY_RULE_SETUP
5667 ENTER(INCOMMENT);
5668         YY_BREAK
5669 case 2:
5670 YY_RULE_SETUP
5671 ENTER(INPI);
5672         YY_BREAK
5673
5674 case 3:
5675 YY_RULE_SETUP
5676 LEAVE;
5677         YY_BREAK
5678 case 4:
5679 case 5:
5680 case 6:
5681 /* rule 6 can match eol */
5682 YY_RULE_SETUP
5683 SKIP;
5684         YY_BREAK
5685 case YY_STATE_EOF(INCOMMENT):
5686 FAIL("EOF in comment.");
5687         YY_BREAK
5688
5689 case 7:
5690 YY_RULE_SETUP
5691 LEAVE;
5692         YY_BREAK
5693 case 8:
5694 case 9:
5695 /* rule 9 can match eol */
5696 YY_RULE_SETUP
5697 SKIP;
5698         YY_BREAK
5699 case YY_STATE_EOF(INPI):
5700 FAIL("EOF in PI (processing instruction).");
5701         YY_BREAK
5702
5703 /* SPACES: skipped uniformly */
5704 case 10:
5705 /* rule 10 can match eol */
5706 YY_RULE_SETUP
5707 SKIP;
5708         YY_BREAK
5709 /* PROLOG: determine root element and process it. */
5710
5711 case 11:
5712 /* rule 11 can match eol */
5713 YY_RULE_SETUP
5714 SET(DOCTYPE); 
5715         YY_BREAK
5716 case 12:
5717 /* rule 12 can match eol */
5718 YY_RULE_SETUP
5719 FAIL("Bad declaration %s.",surf_parse_text);
5720         YY_BREAK
5721
5722 case 13:
5723 /* rule 13 can match eol */
5724 YY_RULE_SETUP
5725 SET(ROOT_surfxml_platform);
5726         YY_BREAK
5727 case 14:
5728 /* rule 14 can match eol */
5729 YY_RULE_SETUP
5730 FAIL("Bad declaration %s.",surf_parse_text);
5731         YY_BREAK
5732 case 15:
5733 YY_RULE_SETUP
5734 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5735         YY_BREAK
5736 case YY_STATE_EOF(PROLOG):
5737 case YY_STATE_EOF(DOCTYPE):
5738 FAIL("EOF in prolog.");
5739         YY_BREAK
5740
5741 /* RULES DERIVED FROM DTD. */
5742 case 16:
5743 /* rule 16 can match eol */
5744 YY_RULE_SETUP
5745 FAIL("Starting tag <AS> is not allowed here.");
5746         YY_BREAK
5747 case 17:
5748 /* rule 17 can match eol */
5749 YY_RULE_SETUP
5750 {
5751   AX_surfxml_AS_id = 0;
5752   surfxml_AS_id_isset = 0;
5753   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
5754   surfxml_AS_routing_isset = 0;
5755   ENTER(AL_surfxml_AS); pushbuffer(0);
5756   }
5757         YY_BREAK
5758
5759 case 18:
5760 /* rule 18 can match eol */
5761 YY_RULE_SETUP
5762 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);
5763         YY_BREAK
5764 case 19:
5765 /* rule 19 can match eol */
5766 YY_RULE_SETUP
5767 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);
5768         YY_BREAK
5769 case 20:
5770 /* rule 20 can match eol */
5771 case 21:
5772 /* rule 21 can match eol */
5773 YY_RULE_SETUP
5774 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
5775         YY_BREAK
5776 case 22:
5777 /* rule 22 can match eol */
5778 case 23:
5779 /* rule 23 can match eol */
5780 YY_RULE_SETUP
5781 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
5782         YY_BREAK
5783 case 24:
5784 /* rule 24 can match eol */
5785 case 25:
5786 /* rule 25 can match eol */
5787 YY_RULE_SETUP
5788 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
5789         YY_BREAK
5790 case 26:
5791 /* rule 26 can match eol */
5792 case 27:
5793 /* rule 27 can match eol */
5794 YY_RULE_SETUP
5795 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
5796         YY_BREAK
5797 case 28:
5798 /* rule 28 can match eol */
5799 case 29:
5800 /* rule 29 can match eol */
5801 YY_RULE_SETUP
5802 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
5803         YY_BREAK
5804 case 30:
5805 /* rule 30 can match eol */
5806 case 31:
5807 /* rule 31 can match eol */
5808 YY_RULE_SETUP
5809 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
5810         YY_BREAK
5811 case 32:
5812 /* rule 32 can match eol */
5813 case 33:
5814 /* rule 33 can match eol */
5815 YY_RULE_SETUP
5816 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
5817         YY_BREAK
5818 case 34:
5819 /* rule 34 can match eol */
5820 case 35:
5821 /* rule 35 can match eol */
5822 YY_RULE_SETUP
5823 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterTorus;
5824         YY_BREAK
5825 case 36:
5826 /* rule 36 can match eol */
5827 case 37:
5828 /* rule 37 can match eol */
5829 YY_RULE_SETUP
5830 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterFatTree;
5831         YY_BREAK
5832 case 38:
5833 YY_RULE_SETUP
5834 {
5835   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5836   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5837   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5838  }
5839         YY_BREAK
5840 case 39:
5841 YY_RULE_SETUP
5842 {
5843   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5844   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5845   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5846   switch (YY_START) {
5847    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5848    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5849    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5850   }
5851  }
5852         YY_BREAK
5853 case 40:
5854 YY_RULE_SETUP
5855 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5856         YY_BREAK
5857 case 41:
5858 YY_RULE_SETUP
5859 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5860         YY_BREAK
5861 case YY_STATE_EOF(AL_surfxml_AS):
5862 FAIL("EOF in attribute list of `AS' element.");
5863         YY_BREAK
5864
5865 case 42:
5866 /* rule 42 can match eol */
5867 YY_RULE_SETUP
5868 {
5869   LEAVE;
5870   ETag_surfxml_AS();
5871   popbuffer(); /* attribute */
5872   switch (YY_START) {
5873    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5874    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5875    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5876   }
5877  }
5878         YY_BREAK
5879 case 43:
5880 /* rule 43 can match eol */
5881 YY_RULE_SETUP
5882 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5883         YY_BREAK
5884 case 44:
5885 YY_RULE_SETUP
5886 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5887         YY_BREAK
5888 case YY_STATE_EOF(E_surfxml_AS):
5889 case YY_STATE_EOF(S_surfxml_AS):
5890 case YY_STATE_EOF(S_surfxml_AS_1):
5891 case YY_STATE_EOF(S_surfxml_AS_3):
5892 case YY_STATE_EOF(S_surfxml_AS_4):
5893 case YY_STATE_EOF(S_surfxml_AS_6):
5894 case YY_STATE_EOF(S_surfxml_AS_8):
5895 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5896         YY_BREAK
5897
5898 case 45:
5899 /* rule 45 can match eol */
5900 YY_RULE_SETUP
5901 FAIL("Starting tag <ASroute> is not allowed here.");
5902         YY_BREAK
5903 case 46:
5904 /* rule 46 can match eol */
5905 YY_RULE_SETUP
5906 {
5907   AX_surfxml_ASroute_dst = 0;
5908   surfxml_ASroute_dst_isset = 0;
5909   AX_surfxml_ASroute_gw___dst = 0;
5910   surfxml_ASroute_gw___dst_isset = 0;
5911   AX_surfxml_ASroute_gw___src = 0;
5912   surfxml_ASroute_gw___src_isset = 0;
5913   AX_surfxml_ASroute_src = 0;
5914   surfxml_ASroute_src_isset = 0;
5915   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
5916   surfxml_ASroute_symmetrical_isset = 0;
5917   ENTER(AL_surfxml_ASroute); pushbuffer(0);
5918   }
5919         YY_BREAK
5920
5921 case 47:
5922 /* rule 47 can match eol */
5923 YY_RULE_SETUP
5924 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);
5925         YY_BREAK
5926 case 48:
5927 /* rule 48 can match eol */
5928 YY_RULE_SETUP
5929 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);
5930         YY_BREAK
5931 case 49:
5932 /* rule 49 can match eol */
5933 YY_RULE_SETUP
5934 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);
5935         YY_BREAK
5936 case 50:
5937 /* rule 50 can match eol */
5938 YY_RULE_SETUP
5939 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);
5940         YY_BREAK
5941 case 51:
5942 /* rule 51 can match eol */
5943 YY_RULE_SETUP
5944 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);
5945         YY_BREAK
5946 case 52:
5947 /* rule 52 can match eol */
5948 YY_RULE_SETUP
5949 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);
5950         YY_BREAK
5951 case 53:
5952 /* rule 53 can match eol */
5953 YY_RULE_SETUP
5954 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);
5955         YY_BREAK
5956 case 54:
5957 /* rule 54 can match eol */
5958 YY_RULE_SETUP
5959 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);
5960         YY_BREAK
5961 case 55:
5962 /* rule 55 can match eol */
5963 case 56:
5964 /* rule 56 can match eol */
5965 YY_RULE_SETUP
5966 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
5967         YY_BREAK
5968 case 57:
5969 /* rule 57 can match eol */
5970 case 58:
5971 /* rule 58 can match eol */
5972 YY_RULE_SETUP
5973 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
5974         YY_BREAK
5975 case 59:
5976 YY_RULE_SETUP
5977 {
5978   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
5979   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
5980   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
5981   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
5982   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
5983  }
5984         YY_BREAK
5985 case 60:
5986 YY_RULE_SETUP
5987 {
5988   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
5989   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
5990   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
5991   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
5992   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
5993   switch (YY_START) {
5994    case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
5995    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
5996   }
5997  }
5998         YY_BREAK
5999 case 61:
6000 YY_RULE_SETUP
6001 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
6002         YY_BREAK
6003 case 62:
6004 YY_RULE_SETUP
6005 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
6006         YY_BREAK
6007 case YY_STATE_EOF(AL_surfxml_ASroute):
6008 FAIL("EOF in attribute list of `ASroute' element.");
6009         YY_BREAK
6010
6011 case 63:
6012 /* rule 63 can match eol */
6013 YY_RULE_SETUP
6014 {
6015   LEAVE;
6016   ETag_surfxml_ASroute();
6017   popbuffer(); /* attribute */
6018   switch (YY_START) {
6019    case S_surfxml_AS: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6020    case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6021   }
6022  }
6023         YY_BREAK
6024 case 64:
6025 /* rule 64 can match eol */
6026 YY_RULE_SETUP
6027 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
6028         YY_BREAK
6029 case 65:
6030 YY_RULE_SETUP
6031 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
6032         YY_BREAK
6033 case YY_STATE_EOF(E_surfxml_ASroute):
6034 case YY_STATE_EOF(S_surfxml_ASroute):
6035 case YY_STATE_EOF(S_surfxml_ASroute_2):
6036 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
6037         YY_BREAK
6038
6039 case 66:
6040 /* rule 66 can match eol */
6041 YY_RULE_SETUP
6042 FAIL("Starting tag <argument> is not allowed here.");
6043         YY_BREAK
6044 case 67:
6045 /* rule 67 can match eol */
6046 YY_RULE_SETUP
6047 {
6048   AX_surfxml_argument_value = 0;
6049   surfxml_argument_value_isset = 0;
6050   ENTER(AL_surfxml_argument); pushbuffer(0);
6051   }
6052         YY_BREAK
6053
6054 case 68:
6055 /* rule 68 can match eol */
6056 YY_RULE_SETUP
6057 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);
6058         YY_BREAK
6059 case 69:
6060 /* rule 69 can match eol */
6061 YY_RULE_SETUP
6062 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);
6063         YY_BREAK
6064 case 70:
6065 YY_RULE_SETUP
6066 {
6067   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6068   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
6069  }
6070         YY_BREAK
6071 case 71:
6072 YY_RULE_SETUP
6073 {
6074   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6075   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
6076   switch (YY_START) {
6077    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6078   }
6079  }
6080         YY_BREAK
6081 case 72:
6082 YY_RULE_SETUP
6083 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
6084         YY_BREAK
6085 case 73:
6086 YY_RULE_SETUP
6087 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
6088         YY_BREAK
6089 case YY_STATE_EOF(AL_surfxml_argument):
6090 FAIL("EOF in attribute list of `argument' element.");
6091         YY_BREAK
6092
6093 case 74:
6094 /* rule 74 can match eol */
6095 YY_RULE_SETUP
6096 {
6097   LEAVE;
6098   ETag_surfxml_argument();
6099   popbuffer(); /* attribute */
6100   switch (YY_START) {
6101    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6102   }
6103  }
6104         YY_BREAK
6105 case 75:
6106 /* rule 75 can match eol */
6107 YY_RULE_SETUP
6108 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
6109         YY_BREAK
6110 case 76:
6111 YY_RULE_SETUP
6112 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
6113         YY_BREAK
6114 case YY_STATE_EOF(E_surfxml_argument):
6115 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
6116         YY_BREAK
6117
6118 case 77:
6119 /* rule 77 can match eol */
6120 YY_RULE_SETUP
6121 FAIL("Starting tag <backbone> is not allowed here.");
6122         YY_BREAK
6123 case 78:
6124 /* rule 78 can match eol */
6125 YY_RULE_SETUP
6126 {
6127   AX_surfxml_backbone_bandwidth = 0;
6128   surfxml_backbone_bandwidth_isset = 0;
6129   AX_surfxml_backbone_id = 0;
6130   surfxml_backbone_id_isset = 0;
6131   AX_surfxml_backbone_latency = 0;
6132   surfxml_backbone_latency_isset = 0;
6133   ENTER(AL_surfxml_backbone); pushbuffer(0);
6134   }
6135         YY_BREAK
6136
6137 case 79:
6138 /* rule 79 can match eol */
6139 YY_RULE_SETUP
6140 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);
6141         YY_BREAK
6142 case 80:
6143 /* rule 80 can match eol */
6144 YY_RULE_SETUP
6145 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);
6146         YY_BREAK
6147 case 81:
6148 /* rule 81 can match eol */
6149 YY_RULE_SETUP
6150 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);
6151         YY_BREAK
6152 case 82:
6153 /* rule 82 can match eol */
6154 YY_RULE_SETUP
6155 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);
6156         YY_BREAK
6157 case 83:
6158 /* rule 83 can match eol */
6159 YY_RULE_SETUP
6160 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);
6161         YY_BREAK
6162 case 84:
6163 /* rule 84 can match eol */
6164 YY_RULE_SETUP
6165 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);
6166         YY_BREAK
6167 case 85:
6168 YY_RULE_SETUP
6169 {
6170   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6171   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6172   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6173   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
6174  }
6175         YY_BREAK
6176 case 86:
6177 YY_RULE_SETUP
6178 {
6179   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6180   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6181   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6182   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
6183   switch (YY_START) {
6184    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6185   }
6186  }
6187         YY_BREAK
6188 case 87:
6189 YY_RULE_SETUP
6190 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
6191         YY_BREAK
6192 case 88:
6193 YY_RULE_SETUP
6194 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
6195         YY_BREAK
6196 case YY_STATE_EOF(AL_surfxml_backbone):
6197 FAIL("EOF in attribute list of `backbone' element.");
6198         YY_BREAK
6199
6200 case 89:
6201 /* rule 89 can match eol */
6202 YY_RULE_SETUP
6203 {
6204   LEAVE;
6205   ETag_surfxml_backbone();
6206   popbuffer(); /* attribute */
6207   switch (YY_START) {
6208    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6209   }
6210  }
6211         YY_BREAK
6212 case 90:
6213 /* rule 90 can match eol */
6214 YY_RULE_SETUP
6215 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
6216         YY_BREAK
6217 case 91:
6218 YY_RULE_SETUP
6219 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
6220         YY_BREAK
6221 case YY_STATE_EOF(E_surfxml_backbone):
6222 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
6223         YY_BREAK
6224
6225 case 92:
6226 /* rule 92 can match eol */
6227 YY_RULE_SETUP
6228 FAIL("Starting tag <bypassASroute> is not allowed here.");
6229         YY_BREAK
6230 case 93:
6231 /* rule 93 can match eol */
6232 YY_RULE_SETUP
6233 {
6234   AX_surfxml_bypassASroute_dst = 0;
6235   surfxml_bypassASroute_dst_isset = 0;
6236   AX_surfxml_bypassASroute_gw___dst = 0;
6237   surfxml_bypassASroute_gw___dst_isset = 0;
6238   AX_surfxml_bypassASroute_gw___src = 0;
6239   surfxml_bypassASroute_gw___src_isset = 0;
6240   AX_surfxml_bypassASroute_src = 0;
6241   surfxml_bypassASroute_src_isset = 0;
6242   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
6243   }
6244         YY_BREAK
6245
6246 case 94:
6247 /* rule 94 can match eol */
6248 YY_RULE_SETUP
6249 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);
6250         YY_BREAK
6251 case 95:
6252 /* rule 95 can match eol */
6253 YY_RULE_SETUP
6254 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);
6255         YY_BREAK
6256 case 96:
6257 /* rule 96 can match eol */
6258 YY_RULE_SETUP
6259 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);
6260         YY_BREAK
6261 case 97:
6262 /* rule 97 can match eol */
6263 YY_RULE_SETUP
6264 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);
6265         YY_BREAK
6266 case 98:
6267 /* rule 98 can match eol */
6268 YY_RULE_SETUP
6269 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);
6270         YY_BREAK
6271 case 99:
6272 /* rule 99 can match eol */
6273 YY_RULE_SETUP
6274 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);
6275         YY_BREAK
6276 case 100:
6277 /* rule 100 can match eol */
6278 YY_RULE_SETUP
6279 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);
6280         YY_BREAK
6281 case 101:
6282 /* rule 101 can match eol */
6283 YY_RULE_SETUP
6284 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);
6285         YY_BREAK
6286 case 102:
6287 YY_RULE_SETUP
6288 {
6289   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
6290   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
6291   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
6292   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
6293   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
6294  }
6295         YY_BREAK
6296 case 103:
6297 YY_RULE_SETUP
6298 {
6299   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
6300   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
6301   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
6302   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
6303   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
6304   switch (YY_START) {
6305    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6306   }
6307  }
6308         YY_BREAK
6309 case 104:
6310 YY_RULE_SETUP
6311 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
6312         YY_BREAK
6313 case 105:
6314 YY_RULE_SETUP
6315 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
6316         YY_BREAK
6317 case YY_STATE_EOF(AL_surfxml_bypassASroute):
6318 FAIL("EOF in attribute list of `bypassASroute' element.");
6319         YY_BREAK
6320
6321 case 106:
6322 /* rule 106 can match eol */
6323 YY_RULE_SETUP
6324 {
6325   LEAVE;
6326   ETag_surfxml_bypassASroute();
6327   popbuffer(); /* attribute */
6328   switch (YY_START) {
6329    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6330   }
6331  }
6332         YY_BREAK
6333 case 107:
6334 /* rule 107 can match eol */
6335 YY_RULE_SETUP
6336 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
6337         YY_BREAK
6338 case 108:
6339 YY_RULE_SETUP
6340 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
6341         YY_BREAK
6342 case YY_STATE_EOF(E_surfxml_bypassASroute):
6343 case YY_STATE_EOF(S_surfxml_bypassASroute):
6344 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
6345 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
6346         YY_BREAK
6347
6348 case 109:
6349 /* rule 109 can match eol */
6350 YY_RULE_SETUP
6351 FAIL("Starting tag <bypassRoute> is not allowed here.");
6352         YY_BREAK
6353 case 110:
6354 /* rule 110 can match eol */
6355 YY_RULE_SETUP
6356 {
6357   AX_surfxml_bypassRoute_dst = 0;
6358   surfxml_bypassRoute_dst_isset = 0;
6359   AX_surfxml_bypassRoute_src = 0;
6360   surfxml_bypassRoute_src_isset = 0;
6361   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
6362   }
6363         YY_BREAK
6364
6365 case 111:
6366 /* rule 111 can match eol */
6367 YY_RULE_SETUP
6368 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);
6369         YY_BREAK
6370 case 112:
6371 /* rule 112 can match eol */
6372 YY_RULE_SETUP
6373 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);
6374         YY_BREAK
6375 case 113:
6376 /* rule 113 can match eol */
6377 YY_RULE_SETUP
6378 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);
6379         YY_BREAK
6380 case 114:
6381 /* rule 114 can match eol */
6382 YY_RULE_SETUP
6383 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);
6384         YY_BREAK
6385 case 115:
6386 YY_RULE_SETUP
6387 {
6388   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6389   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6390   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
6391  }
6392         YY_BREAK
6393 case 116:
6394 YY_RULE_SETUP
6395 {
6396   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6397   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6398   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
6399   switch (YY_START) {
6400    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6401   }
6402  }
6403         YY_BREAK
6404 case 117:
6405 YY_RULE_SETUP
6406 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
6407         YY_BREAK
6408 case 118:
6409 YY_RULE_SETUP
6410 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
6411         YY_BREAK
6412 case YY_STATE_EOF(AL_surfxml_bypassRoute):
6413 FAIL("EOF in attribute list of `bypassRoute' element.");
6414         YY_BREAK
6415
6416 case 119:
6417 /* rule 119 can match eol */
6418 YY_RULE_SETUP
6419 {
6420   LEAVE;
6421   ETag_surfxml_bypassRoute();
6422   popbuffer(); /* attribute */
6423   switch (YY_START) {
6424    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6425   }
6426  }
6427         YY_BREAK
6428 case 120:
6429 /* rule 120 can match eol */
6430 YY_RULE_SETUP
6431 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
6432         YY_BREAK
6433 case 121:
6434 YY_RULE_SETUP
6435 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
6436         YY_BREAK
6437 case YY_STATE_EOF(E_surfxml_bypassRoute):
6438 case YY_STATE_EOF(S_surfxml_bypassRoute):
6439 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
6440 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
6441         YY_BREAK
6442
6443 case 122:
6444 /* rule 122 can match eol */
6445 YY_RULE_SETUP
6446 FAIL("Starting tag <cabinet> is not allowed here.");
6447         YY_BREAK
6448 case 123:
6449 /* rule 123 can match eol */
6450 YY_RULE_SETUP
6451 {
6452   AX_surfxml_cabinet_bw = 0;
6453   surfxml_cabinet_bw_isset = 0;
6454   AX_surfxml_cabinet_id = 0;
6455   surfxml_cabinet_id_isset = 0;
6456   AX_surfxml_cabinet_lat = 0;
6457   surfxml_cabinet_lat_isset = 0;
6458   AX_surfxml_cabinet_prefix = 0;
6459   surfxml_cabinet_prefix_isset = 0;
6460   AX_surfxml_cabinet_radical = 0;
6461   surfxml_cabinet_radical_isset = 0;
6462   AX_surfxml_cabinet_speed = 0;
6463   surfxml_cabinet_speed_isset = 0;
6464   AX_surfxml_cabinet_suffix = 0;
6465   surfxml_cabinet_suffix_isset = 0;
6466   ENTER(AL_surfxml_cabinet); pushbuffer(0);
6467   }
6468         YY_BREAK
6469
6470 case 124:
6471 /* rule 124 can match eol */
6472 YY_RULE_SETUP
6473 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);
6474         YY_BREAK
6475 case 125:
6476 /* rule 125 can match eol */
6477 YY_RULE_SETUP
6478 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);
6479         YY_BREAK
6480 case 126:
6481 /* rule 126 can match eol */
6482 YY_RULE_SETUP
6483 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);
6484         YY_BREAK
6485 case 127:
6486 /* rule 127 can match eol */
6487 YY_RULE_SETUP
6488 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);
6489         YY_BREAK
6490 case 128:
6491 /* rule 128 can match eol */
6492 YY_RULE_SETUP
6493 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);
6494         YY_BREAK
6495 case 129:
6496 /* rule 129 can match eol */
6497 YY_RULE_SETUP
6498 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);
6499         YY_BREAK
6500 case 130:
6501 /* rule 130 can match eol */
6502 YY_RULE_SETUP
6503 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);
6504         YY_BREAK
6505 case 131:
6506 /* rule 131 can match eol */
6507 YY_RULE_SETUP
6508 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);
6509         YY_BREAK
6510 case 132:
6511 /* rule 132 can match eol */
6512 YY_RULE_SETUP
6513 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);
6514         YY_BREAK
6515 case 133:
6516 /* rule 133 can match eol */
6517 YY_RULE_SETUP
6518 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);
6519         YY_BREAK
6520 case 134:
6521 /* rule 134 can match eol */
6522 YY_RULE_SETUP
6523 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");} surfxml_cabinet_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_speed);
6524         YY_BREAK
6525 case 135:
6526 /* rule 135 can match eol */
6527 YY_RULE_SETUP
6528 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");}  surfxml_cabinet_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_speed);
6529         YY_BREAK
6530 case 136:
6531 /* rule 136 can match eol */
6532 YY_RULE_SETUP
6533 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);
6534         YY_BREAK
6535 case 137:
6536 /* rule 137 can match eol */
6537 YY_RULE_SETUP
6538 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);
6539         YY_BREAK
6540 case 138:
6541 YY_RULE_SETUP
6542 {
6543   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
6544   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
6545   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
6546   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
6547   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
6548   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
6549   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
6550   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
6551  }
6552         YY_BREAK
6553 case 139:
6554 YY_RULE_SETUP
6555 {
6556   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
6557   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
6558   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
6559   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
6560   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
6561   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
6562   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
6563   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
6564   switch (YY_START) {
6565    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6566    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6567    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6568   }
6569  }
6570         YY_BREAK
6571 case 140:
6572 YY_RULE_SETUP
6573 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
6574         YY_BREAK
6575 case 141:
6576 YY_RULE_SETUP
6577 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
6578         YY_BREAK
6579 case YY_STATE_EOF(AL_surfxml_cabinet):
6580 FAIL("EOF in attribute list of `cabinet' element.");
6581         YY_BREAK
6582
6583 case 142:
6584 /* rule 142 can match eol */
6585 YY_RULE_SETUP
6586 {
6587   LEAVE;
6588   ETag_surfxml_cabinet();
6589   popbuffer(); /* attribute */
6590   switch (YY_START) {
6591    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6592    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6593    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6594   }
6595  }
6596         YY_BREAK
6597 case 143:
6598 /* rule 143 can match eol */
6599 YY_RULE_SETUP
6600 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
6601         YY_BREAK
6602 case 144:
6603 YY_RULE_SETUP
6604 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
6605         YY_BREAK
6606 case YY_STATE_EOF(E_surfxml_cabinet):
6607 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
6608         YY_BREAK
6609
6610 case 145:
6611 /* rule 145 can match eol */
6612 YY_RULE_SETUP
6613 FAIL("Starting tag <cluster> is not allowed here.");
6614         YY_BREAK
6615 case 146:
6616 /* rule 146 can match eol */
6617 YY_RULE_SETUP
6618 {
6619   AX_surfxml_cluster_availability___file = 0;
6620   surfxml_cluster_availability___file_isset = 0;
6621   AX_surfxml_cluster_bb___bw = 0;
6622   surfxml_cluster_bb___bw_isset = 0;
6623   AX_surfxml_cluster_bb___lat = 42;
6624   surfxml_cluster_bb___lat_isset = 0;
6625   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
6626   surfxml_cluster_bb___sharing___policy_isset = 0;
6627   AX_surfxml_cluster_bw = 0;
6628   surfxml_cluster_bw_isset = 0;
6629   AX_surfxml_cluster_core = 40;
6630   surfxml_cluster_core_isset = 0;
6631   AX_surfxml_cluster_id = 0;
6632   surfxml_cluster_id_isset = 0;
6633   AX_surfxml_cluster_lat = 0;
6634   surfxml_cluster_lat_isset = 0;
6635   AX_surfxml_cluster_limiter___link = 0;
6636   surfxml_cluster_limiter___link_isset = 0;
6637   AX_surfxml_cluster_loopback___bw = 0;
6638   surfxml_cluster_loopback___bw_isset = 0;
6639   AX_surfxml_cluster_loopback___lat = 0;
6640   surfxml_cluster_loopback___lat_isset = 0;
6641   AX_surfxml_cluster_prefix = 0;
6642   surfxml_cluster_prefix_isset = 0;
6643   AX_surfxml_cluster_radical = 0;
6644   surfxml_cluster_radical_isset = 0;
6645   AX_surfxml_cluster_router___id = 0;
6646   surfxml_cluster_router___id_isset = 0;
6647   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
6648   surfxml_cluster_sharing___policy_isset = 0;
6649   AX_surfxml_cluster_speed = 0;
6650   surfxml_cluster_speed_isset = 0;
6651   AX_surfxml_cluster_state___file = 0;
6652   surfxml_cluster_state___file_isset = 0;
6653   AX_surfxml_cluster_suffix = 0;
6654   surfxml_cluster_suffix_isset = 0;
6655   AX_surfxml_cluster_topo___parameters = 0;
6656   surfxml_cluster_topo___parameters_isset = 0;
6657   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
6658   surfxml_cluster_topology_isset = 0;
6659   ENTER(AL_surfxml_cluster); pushbuffer(0);
6660   }
6661         YY_BREAK
6662
6663 case 147:
6664 /* rule 147 can match eol */
6665 YY_RULE_SETUP
6666 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);
6667         YY_BREAK
6668 case 148:
6669 /* rule 148 can match eol */
6670 YY_RULE_SETUP
6671 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);
6672         YY_BREAK
6673 case 149:
6674 /* rule 149 can match eol */
6675 YY_RULE_SETUP
6676 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);
6677         YY_BREAK
6678 case 150:
6679 /* rule 150 can match eol */
6680 YY_RULE_SETUP
6681 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);
6682         YY_BREAK
6683 case 151:
6684 /* rule 151 can match eol */
6685 YY_RULE_SETUP
6686 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);
6687         YY_BREAK
6688 case 152:
6689 /* rule 152 can match eol */
6690 YY_RULE_SETUP
6691 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);
6692         YY_BREAK
6693 case 153:
6694 /* rule 153 can match eol */
6695 case 154:
6696 /* rule 154 can match eol */
6697 YY_RULE_SETUP
6698 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
6699         YY_BREAK
6700 case 155:
6701 /* rule 155 can match eol */
6702 case 156:
6703 /* rule 156 can match eol */
6704 YY_RULE_SETUP
6705 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
6706         YY_BREAK
6707 case 157:
6708 /* rule 157 can match eol */
6709 YY_RULE_SETUP
6710 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);
6711         YY_BREAK
6712 case 158:
6713 /* rule 158 can match eol */
6714 YY_RULE_SETUP
6715 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);
6716         YY_BREAK
6717 case 159:
6718 /* rule 159 can match eol */
6719 YY_RULE_SETUP
6720 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);
6721         YY_BREAK
6722 case 160:
6723 /* rule 160 can match eol */
6724 YY_RULE_SETUP
6725 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);
6726         YY_BREAK
6727 case 161:
6728 /* rule 161 can match eol */
6729 YY_RULE_SETUP
6730 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);
6731         YY_BREAK
6732 case 162:
6733 /* rule 162 can match eol */
6734 YY_RULE_SETUP
6735 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);
6736         YY_BREAK
6737 case 163:
6738 /* rule 163 can match eol */
6739 YY_RULE_SETUP
6740 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);
6741         YY_BREAK
6742 case 164:
6743 /* rule 164 can match eol */
6744 YY_RULE_SETUP
6745 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);
6746         YY_BREAK
6747 case 165:
6748 /* rule 165 can match eol */
6749 YY_RULE_SETUP
6750 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);
6751         YY_BREAK
6752 case 166:
6753 /* rule 166 can match eol */
6754 YY_RULE_SETUP
6755 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);
6756         YY_BREAK
6757 case 167:
6758 /* rule 167 can match eol */
6759 YY_RULE_SETUP
6760 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);
6761         YY_BREAK
6762 case 168:
6763 /* rule 168 can match eol */
6764 YY_RULE_SETUP
6765 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);
6766         YY_BREAK
6767 case 169:
6768 /* rule 169 can match eol */
6769 YY_RULE_SETUP
6770 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);
6771         YY_BREAK
6772 case 170:
6773 /* rule 170 can match eol */
6774 YY_RULE_SETUP
6775 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);
6776         YY_BREAK
6777 case 171:
6778 /* rule 171 can match eol */
6779 YY_RULE_SETUP
6780 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);
6781         YY_BREAK
6782 case 172:
6783 /* rule 172 can match eol */
6784 YY_RULE_SETUP
6785 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);
6786         YY_BREAK
6787 case 173:
6788 /* rule 173 can match eol */
6789 YY_RULE_SETUP
6790 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);
6791         YY_BREAK
6792 case 174:
6793 /* rule 174 can match eol */
6794 YY_RULE_SETUP
6795 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);
6796         YY_BREAK
6797 case 175:
6798 /* rule 175 can match eol */
6799 YY_RULE_SETUP
6800 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);
6801         YY_BREAK
6802 case 176:
6803 /* rule 176 can match eol */
6804 YY_RULE_SETUP
6805 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);
6806         YY_BREAK
6807 case 177:
6808 /* rule 177 can match eol */
6809 case 178:
6810 /* rule 178 can match eol */
6811 YY_RULE_SETUP
6812 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
6813         YY_BREAK
6814 case 179:
6815 /* rule 179 can match eol */
6816 case 180:
6817 /* rule 180 can match eol */
6818 YY_RULE_SETUP
6819 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
6820         YY_BREAK
6821 case 181:
6822 /* rule 181 can match eol */
6823 case 182:
6824 /* rule 182 can match eol */
6825 YY_RULE_SETUP
6826 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
6827         YY_BREAK
6828 case 183:
6829 /* rule 183 can match eol */
6830 YY_RULE_SETUP
6831 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");} surfxml_cluster_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_speed);
6832         YY_BREAK
6833 case 184:
6834 /* rule 184 can match eol */
6835 YY_RULE_SETUP
6836 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");}  surfxml_cluster_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_speed);
6837         YY_BREAK
6838 case 185:
6839 /* rule 185 can match eol */
6840 YY_RULE_SETUP
6841 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);
6842         YY_BREAK
6843 case 186:
6844 /* rule 186 can match eol */
6845 YY_RULE_SETUP
6846 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);
6847         YY_BREAK
6848 case 187:
6849 /* rule 187 can match eol */
6850 YY_RULE_SETUP
6851 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);
6852         YY_BREAK
6853 case 188:
6854 /* rule 188 can match eol */
6855 YY_RULE_SETUP
6856 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);
6857         YY_BREAK
6858 case 189:
6859 /* rule 189 can match eol */
6860 YY_RULE_SETUP
6861 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);
6862         YY_BREAK
6863 case 190:
6864 /* rule 190 can match eol */
6865 YY_RULE_SETUP
6866 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);
6867         YY_BREAK
6868 case 191:
6869 /* rule 191 can match eol */
6870 case 192:
6871 /* rule 192 can match eol */
6872 YY_RULE_SETUP
6873 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
6874         YY_BREAK
6875 case 193:
6876 /* rule 193 can match eol */
6877 case 194:
6878 /* rule 194 can match eol */
6879 YY_RULE_SETUP
6880 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
6881         YY_BREAK
6882 case 195:
6883 /* rule 195 can match eol */
6884 case 196:
6885 /* rule 196 can match eol */
6886 YY_RULE_SETUP
6887 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
6888         YY_BREAK
6889 case 197:
6890 YY_RULE_SETUP
6891 {
6892   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6893   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6894   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6895   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6896   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6897   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
6898   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6899   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
6900  }
6901         YY_BREAK
6902 case 198:
6903 YY_RULE_SETUP
6904 {
6905   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6906   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6907   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6908   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6909   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6910   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
6911   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6912   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6913   switch (YY_START) {
6914    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6915    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6916    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6917   }
6918  }
6919         YY_BREAK
6920 case 199:
6921 YY_RULE_SETUP
6922 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6923         YY_BREAK
6924 case 200:
6925 YY_RULE_SETUP
6926 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6927         YY_BREAK
6928 case YY_STATE_EOF(AL_surfxml_cluster):
6929 FAIL("EOF in attribute list of `cluster' element.");
6930         YY_BREAK
6931
6932 case 201:
6933 /* rule 201 can match eol */
6934 YY_RULE_SETUP
6935 {
6936   LEAVE;
6937   ETag_surfxml_cluster();
6938   popbuffer(); /* attribute */
6939   switch (YY_START) {
6940    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6941    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6942    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6943   }
6944  }
6945         YY_BREAK
6946 case 202:
6947 /* rule 202 can match eol */
6948 YY_RULE_SETUP
6949 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6950         YY_BREAK
6951 case 203:
6952 YY_RULE_SETUP
6953 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
6954         YY_BREAK
6955 case YY_STATE_EOF(E_surfxml_cluster):
6956 case YY_STATE_EOF(S_surfxml_cluster):
6957 case YY_STATE_EOF(S_surfxml_cluster_2):
6958 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
6959         YY_BREAK
6960
6961 case 204:
6962 /* rule 204 can match eol */
6963 YY_RULE_SETUP
6964 FAIL("Starting tag <config> is not allowed here.");
6965         YY_BREAK
6966 case 205:
6967 /* rule 205 can match eol */
6968 YY_RULE_SETUP
6969 {
6970   AX_surfxml_config_id = 0;
6971   surfxml_config_id_isset = 0;
6972   ENTER(AL_surfxml_config); pushbuffer(0);
6973   }
6974         YY_BREAK
6975
6976 case 206:
6977 /* rule 206 can match eol */
6978 YY_RULE_SETUP
6979 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);
6980         YY_BREAK
6981 case 207:
6982 /* rule 207 can match eol */
6983 YY_RULE_SETUP
6984 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);
6985         YY_BREAK
6986 case 208:
6987 YY_RULE_SETUP
6988 {
6989   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
6990  }
6991         YY_BREAK
6992 case 209:
6993 YY_RULE_SETUP
6994 {
6995   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
6996   switch (YY_START) {
6997    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6998   }
6999  }
7000         YY_BREAK
7001 case 210:
7002 YY_RULE_SETUP
7003 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7004         YY_BREAK
7005 case 211:
7006 YY_RULE_SETUP
7007 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7008         YY_BREAK
7009 case YY_STATE_EOF(AL_surfxml_config):
7010 FAIL("EOF in attribute list of `config' element.");
7011         YY_BREAK
7012
7013 case 212:
7014 /* rule 212 can match eol */
7015 YY_RULE_SETUP
7016 {
7017   LEAVE;
7018   ETag_surfxml_config();
7019   popbuffer(); /* attribute */
7020   switch (YY_START) {
7021    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7022   }
7023  }
7024         YY_BREAK
7025 case 213:
7026 /* rule 213 can match eol */
7027 YY_RULE_SETUP
7028 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7029         YY_BREAK
7030 case 214:
7031 YY_RULE_SETUP
7032 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7033         YY_BREAK
7034 case YY_STATE_EOF(E_surfxml_config):
7035 case YY_STATE_EOF(S_surfxml_config):
7036 case YY_STATE_EOF(S_surfxml_config_2):
7037 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7038         YY_BREAK
7039
7040 case 215:
7041 /* rule 215 can match eol */
7042 YY_RULE_SETUP
7043 FAIL("Starting tag <gpu> is not allowed here.");
7044         YY_BREAK
7045 case 216:
7046 /* rule 216 can match eol */
7047 YY_RULE_SETUP
7048 {
7049   AX_surfxml_gpu_name = 0;
7050   surfxml_gpu_name_isset = 0;
7051   ENTER(AL_surfxml_gpu); pushbuffer(0);
7052   }
7053         YY_BREAK
7054
7055 case 217:
7056 /* rule 217 can match eol */
7057 YY_RULE_SETUP
7058 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);
7059         YY_BREAK
7060 case 218:
7061 /* rule 218 can match eol */
7062 YY_RULE_SETUP
7063 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);
7064         YY_BREAK
7065 case 219:
7066 YY_RULE_SETUP
7067 {
7068   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7069   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7070  }
7071         YY_BREAK
7072 case 220:
7073 YY_RULE_SETUP
7074 {
7075   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7076   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7077   switch (YY_START) {
7078    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7079   }
7080  }
7081         YY_BREAK
7082 case 221:
7083 YY_RULE_SETUP
7084 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7085         YY_BREAK
7086 case 222:
7087 YY_RULE_SETUP
7088 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7089         YY_BREAK
7090 case YY_STATE_EOF(AL_surfxml_gpu):
7091 FAIL("EOF in attribute list of `gpu' element.");
7092         YY_BREAK
7093
7094 case 223:
7095 /* rule 223 can match eol */
7096 YY_RULE_SETUP
7097 {
7098   LEAVE;
7099   ETag_surfxml_gpu();
7100   popbuffer(); /* attribute */
7101   switch (YY_START) {
7102    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7103   }
7104  }
7105         YY_BREAK
7106 case 224:
7107 /* rule 224 can match eol */
7108 YY_RULE_SETUP
7109 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7110         YY_BREAK
7111 case 225:
7112 YY_RULE_SETUP
7113 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7114         YY_BREAK
7115 case YY_STATE_EOF(E_surfxml_gpu):
7116 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7117         YY_BREAK
7118
7119 case 226:
7120 /* rule 226 can match eol */
7121 YY_RULE_SETUP
7122 FAIL("Starting tag <host> is not allowed here.");
7123         YY_BREAK
7124 case 227:
7125 /* rule 227 can match eol */
7126 YY_RULE_SETUP
7127 {
7128   AX_surfxml_host_availability___file = 0;
7129   surfxml_host_availability___file_isset = 0;
7130   AX_surfxml_host_coordinates = 0;
7131   surfxml_host_coordinates_isset = 0;
7132   AX_surfxml_host_core = 25;
7133   surfxml_host_core_isset = 0;
7134   AX_surfxml_host_id = 0;
7135   surfxml_host_id_isset = 0;
7136   AX_surfxml_host_pstate = 27;
7137   surfxml_host_pstate_isset = 0;
7138   AX_surfxml_host_speed = 0;
7139   surfxml_host_speed_isset = 0;
7140   AX_surfxml_host_state___file = 0;
7141   surfxml_host_state___file_isset = 0;
7142   ENTER(AL_surfxml_host); pushbuffer(0);
7143   }
7144         YY_BREAK
7145
7146 case 228:
7147 /* rule 228 can match eol */
7148 YY_RULE_SETUP
7149 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);
7150         YY_BREAK
7151 case 229:
7152 /* rule 229 can match eol */
7153 YY_RULE_SETUP
7154 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);
7155         YY_BREAK
7156 case 230:
7157 /* rule 230 can match eol */
7158 YY_RULE_SETUP
7159 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);
7160         YY_BREAK
7161 case 231:
7162 /* rule 231 can match eol */
7163 YY_RULE_SETUP
7164 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);
7165         YY_BREAK
7166 case 232:
7167 /* rule 232 can match eol */
7168 YY_RULE_SETUP
7169 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);
7170         YY_BREAK
7171 case 233:
7172 /* rule 233 can match eol */
7173 YY_RULE_SETUP
7174 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);
7175         YY_BREAK
7176 case 234:
7177 /* rule 234 can match eol */
7178 YY_RULE_SETUP
7179 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);
7180         YY_BREAK
7181 case 235:
7182 /* rule 235 can match eol */
7183 YY_RULE_SETUP
7184 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);
7185         YY_BREAK
7186 case 236:
7187 /* rule 236 can match eol */
7188 YY_RULE_SETUP
7189 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);
7190         YY_BREAK
7191 case 237:
7192 /* rule 237 can match eol */
7193 YY_RULE_SETUP
7194 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);
7195         YY_BREAK
7196 case 238:
7197 /* rule 238 can match eol */
7198 YY_RULE_SETUP
7199 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");} surfxml_host_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_speed);
7200         YY_BREAK
7201 case 239:
7202 /* rule 239 can match eol */
7203 YY_RULE_SETUP
7204 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");}  surfxml_host_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_speed);
7205         YY_BREAK
7206 case 240:
7207 /* rule 240 can match eol */
7208 YY_RULE_SETUP
7209 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);
7210         YY_BREAK
7211 case 241:
7212 /* rule 241 can match eol */
7213 YY_RULE_SETUP
7214 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);
7215         YY_BREAK
7216 case 242:
7217 YY_RULE_SETUP
7218 {
7219   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7220   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
7221   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7222  }
7223         YY_BREAK
7224 case 243:
7225 YY_RULE_SETUP
7226 {
7227   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7228   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
7229   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7230   switch (YY_START) {
7231    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7232   }
7233  }
7234         YY_BREAK
7235 case 244:
7236 YY_RULE_SETUP
7237 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7238         YY_BREAK
7239 case 245:
7240 YY_RULE_SETUP
7241 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7242         YY_BREAK
7243 case YY_STATE_EOF(AL_surfxml_host):
7244 FAIL("EOF in attribute list of `host' element.");
7245         YY_BREAK
7246
7247 case 246:
7248 /* rule 246 can match eol */
7249 YY_RULE_SETUP
7250 {
7251   LEAVE;
7252   ETag_surfxml_host();
7253   popbuffer(); /* attribute */
7254   switch (YY_START) {
7255    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7256   }
7257  }
7258         YY_BREAK
7259 case 247:
7260 /* rule 247 can match eol */
7261 YY_RULE_SETUP
7262 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7263         YY_BREAK
7264 case 248:
7265 YY_RULE_SETUP
7266 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7267         YY_BREAK
7268 case YY_STATE_EOF(E_surfxml_host):
7269 case YY_STATE_EOF(S_surfxml_host):
7270 case YY_STATE_EOF(S_surfxml_host_2):
7271 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7272         YY_BREAK
7273
7274 case 249:
7275 /* rule 249 can match eol */
7276 YY_RULE_SETUP
7277 FAIL("Starting tag <host_link> is not allowed here.");
7278         YY_BREAK
7279 case 250:
7280 /* rule 250 can match eol */
7281 YY_RULE_SETUP
7282 {
7283   AX_surfxml_host___link_down = 0;
7284   surfxml_host___link_down_isset = 0;
7285   AX_surfxml_host___link_id = 0;
7286   surfxml_host___link_id_isset = 0;
7287   AX_surfxml_host___link_up = 0;
7288   surfxml_host___link_up_isset = 0;
7289   ENTER(AL_surfxml_host___link); pushbuffer(0);
7290   }
7291         YY_BREAK
7292
7293 case 251:
7294 /* rule 251 can match eol */
7295 YY_RULE_SETUP
7296 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);
7297         YY_BREAK
7298 case 252:
7299 /* rule 252 can match eol */
7300 YY_RULE_SETUP
7301 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);
7302         YY_BREAK
7303 case 253:
7304 /* rule 253 can match eol */
7305 YY_RULE_SETUP
7306 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);
7307         YY_BREAK
7308 case 254:
7309 /* rule 254 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(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
7312         YY_BREAK
7313 case 255:
7314 /* rule 255 can match eol */
7315 YY_RULE_SETUP
7316 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);
7317         YY_BREAK
7318 case 256:
7319 /* rule 256 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(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
7322         YY_BREAK
7323 case 257:
7324 YY_RULE_SETUP
7325 {
7326   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7327   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7328   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7329   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7330  }
7331         YY_BREAK
7332 case 258:
7333 YY_RULE_SETUP
7334 {
7335   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7336   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7337   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7338   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7339   switch (YY_START) {
7340    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7341   }
7342  }
7343         YY_BREAK
7344 case 259:
7345 YY_RULE_SETUP
7346 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7347         YY_BREAK
7348 case 260:
7349 YY_RULE_SETUP
7350 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7351         YY_BREAK
7352 case YY_STATE_EOF(AL_surfxml_host___link):
7353 FAIL("EOF in attribute list of `host_link' element.");
7354         YY_BREAK
7355
7356 case 261:
7357 /* rule 261 can match eol */
7358 YY_RULE_SETUP
7359 {
7360   LEAVE;
7361   ETag_surfxml_host___link();
7362   popbuffer(); /* attribute */
7363   switch (YY_START) {
7364    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7365   }
7366  }
7367         YY_BREAK
7368 case 262:
7369 /* rule 262 can match eol */
7370 YY_RULE_SETUP
7371 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7372         YY_BREAK
7373 case 263:
7374 YY_RULE_SETUP
7375 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7376         YY_BREAK
7377 case YY_STATE_EOF(E_surfxml_host___link):
7378 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7379         YY_BREAK
7380
7381 case 264:
7382 /* rule 264 can match eol */
7383 YY_RULE_SETUP
7384 FAIL("Starting tag <include> is not allowed here.");
7385         YY_BREAK
7386 case 265:
7387 /* rule 265 can match eol */
7388 YY_RULE_SETUP
7389 {
7390   AX_surfxml_include_file = 0;
7391   surfxml_include_file_isset = 0;
7392   ENTER(AL_surfxml_include); pushbuffer(0);
7393   }
7394         YY_BREAK
7395
7396 case 266:
7397 /* rule 266 can match eol */
7398 YY_RULE_SETUP
7399 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);
7400         YY_BREAK
7401 case 267:
7402 /* rule 267 can match eol */
7403 YY_RULE_SETUP
7404 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);
7405         YY_BREAK
7406 case 268:
7407 YY_RULE_SETUP
7408 {
7409   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
7410   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
7411  }
7412         YY_BREAK
7413 case 269:
7414 YY_RULE_SETUP
7415 {
7416   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
7417   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
7418   switch (YY_START) {
7419    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7420    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7421    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7422   }
7423  }
7424         YY_BREAK
7425 case 270:
7426 YY_RULE_SETUP
7427 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
7428         YY_BREAK
7429 case 271:
7430 YY_RULE_SETUP
7431 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
7432         YY_BREAK
7433 case YY_STATE_EOF(AL_surfxml_include):
7434 FAIL("EOF in attribute list of `include' element.");
7435         YY_BREAK
7436
7437 case 272:
7438 /* rule 272 can match eol */
7439 YY_RULE_SETUP
7440 {
7441   LEAVE;
7442   ETag_surfxml_include();
7443   popbuffer(); /* attribute */
7444   switch (YY_START) {
7445    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7446    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7447    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7448   }
7449  }
7450         YY_BREAK
7451 case 273:
7452 /* rule 273 can match eol */
7453 YY_RULE_SETUP
7454 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
7455         YY_BREAK
7456 case 274:
7457 YY_RULE_SETUP
7458 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
7459         YY_BREAK
7460 case YY_STATE_EOF(E_surfxml_include):
7461 case YY_STATE_EOF(S_surfxml_include):
7462 case YY_STATE_EOF(S_surfxml_include_2):
7463 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
7464         YY_BREAK
7465
7466 case 275:
7467 /* rule 275 can match eol */
7468 YY_RULE_SETUP
7469 FAIL("Starting tag <link> is not allowed here.");
7470         YY_BREAK
7471 case 276:
7472 /* rule 276 can match eol */
7473 YY_RULE_SETUP
7474 {
7475   AX_surfxml_link_bandwidth = 0;
7476   surfxml_link_bandwidth_isset = 0;
7477   AX_surfxml_link_bandwidth___file = 0;
7478   surfxml_link_bandwidth___file_isset = 0;
7479   AX_surfxml_link_id = 0;
7480   surfxml_link_id_isset = 0;
7481   AX_surfxml_link_latency = 0;
7482   surfxml_link_latency_isset = 0;
7483   AX_surfxml_link_latency___file = 0;
7484   surfxml_link_latency___file_isset = 0;
7485   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7486   surfxml_link_sharing___policy_isset = 0;
7487   AX_surfxml_link_state___file = 0;
7488   surfxml_link_state___file_isset = 0;
7489   ENTER(AL_surfxml_link); pushbuffer(0);
7490   }
7491         YY_BREAK
7492
7493 case 277:
7494 /* rule 277 can match eol */
7495 YY_RULE_SETUP
7496 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);
7497         YY_BREAK
7498 case 278:
7499 /* rule 278 can match eol */
7500 YY_RULE_SETUP
7501 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);
7502         YY_BREAK
7503 case 279:
7504 /* rule 279 can match eol */
7505 YY_RULE_SETUP
7506 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);
7507         YY_BREAK
7508 case 280:
7509 /* rule 280 can match eol */
7510 YY_RULE_SETUP
7511 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);
7512         YY_BREAK
7513 case 281:
7514 /* rule 281 can match eol */
7515 YY_RULE_SETUP
7516 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);
7517         YY_BREAK
7518 case 282:
7519 /* rule 282 can match eol */
7520 YY_RULE_SETUP
7521 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);
7522         YY_BREAK
7523 case 283:
7524 /* rule 283 can match eol */
7525 YY_RULE_SETUP
7526 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);
7527         YY_BREAK
7528 case 284:
7529 /* rule 284 can match eol */
7530 YY_RULE_SETUP
7531 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);
7532         YY_BREAK
7533 case 285:
7534 /* rule 285 can match eol */
7535 YY_RULE_SETUP
7536 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);
7537         YY_BREAK
7538 case 286:
7539 /* rule 286 can match eol */
7540 YY_RULE_SETUP
7541 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);
7542         YY_BREAK
7543 case 287:
7544 /* rule 287 can match eol */
7545 case 288:
7546 /* rule 288 can match eol */
7547 YY_RULE_SETUP
7548 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7549         YY_BREAK
7550 case 289:
7551 /* rule 289 can match eol */
7552 case 290:
7553 /* rule 290 can match eol */
7554 YY_RULE_SETUP
7555 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
7556         YY_BREAK
7557 case 291:
7558 /* rule 291 can match eol */
7559 case 292:
7560 /* rule 292 can match eol */
7561 YY_RULE_SETUP
7562 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
7563         YY_BREAK
7564 case 293:
7565 /* rule 293 can match eol */
7566 YY_RULE_SETUP
7567 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);
7568         YY_BREAK
7569 case 294:
7570 /* rule 294 can match eol */
7571 YY_RULE_SETUP
7572 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);
7573         YY_BREAK
7574 case 295:
7575 YY_RULE_SETUP
7576 {
7577   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7578   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7579   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7580  }
7581         YY_BREAK
7582 case 296:
7583 YY_RULE_SETUP
7584 {
7585   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7586   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7587   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7588   switch (YY_START) {
7589    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7590   }
7591  }
7592         YY_BREAK
7593 case 297:
7594 YY_RULE_SETUP
7595 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7596         YY_BREAK
7597 case 298:
7598 YY_RULE_SETUP
7599 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7600         YY_BREAK
7601 case YY_STATE_EOF(AL_surfxml_link):
7602 FAIL("EOF in attribute list of `link' element.");
7603         YY_BREAK
7604
7605 case 299:
7606 /* rule 299 can match eol */
7607 YY_RULE_SETUP
7608 {
7609   LEAVE;
7610   ETag_surfxml_link();
7611   popbuffer(); /* attribute */
7612   switch (YY_START) {
7613    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7614   }
7615  }
7616         YY_BREAK
7617 case 300:
7618 /* rule 300 can match eol */
7619 YY_RULE_SETUP
7620 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7621         YY_BREAK
7622 case 301:
7623 YY_RULE_SETUP
7624 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7625         YY_BREAK
7626 case YY_STATE_EOF(E_surfxml_link):
7627 case YY_STATE_EOF(S_surfxml_link):
7628 case YY_STATE_EOF(S_surfxml_link_2):
7629 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7630         YY_BREAK
7631
7632 case 302:
7633 /* rule 302 can match eol */
7634 YY_RULE_SETUP
7635 FAIL("Starting tag <link_ctn> is not allowed here.");
7636         YY_BREAK
7637 case 303:
7638 /* rule 303 can match eol */
7639 YY_RULE_SETUP
7640 {
7641   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
7642   surfxml_link___ctn_direction_isset = 0;
7643   AX_surfxml_link___ctn_id = 0;
7644   surfxml_link___ctn_id_isset = 0;
7645   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
7646   }
7647         YY_BREAK
7648
7649 case 304:
7650 /* rule 304 can match eol */
7651 case 305:
7652 /* rule 305 can match eol */
7653 YY_RULE_SETUP
7654 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
7655         YY_BREAK
7656 case 306:
7657 /* rule 306 can match eol */
7658 case 307:
7659 /* rule 307 can match eol */
7660 YY_RULE_SETUP
7661 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
7662         YY_BREAK
7663 case 308:
7664 /* rule 308 can match eol */
7665 case 309:
7666 /* rule 309 can match eol */
7667 YY_RULE_SETUP
7668 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
7669         YY_BREAK
7670 case 310:
7671 /* rule 310 can match eol */
7672 YY_RULE_SETUP
7673 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);
7674         YY_BREAK
7675 case 311:
7676 /* rule 311 can match eol */
7677 YY_RULE_SETUP
7678 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);
7679         YY_BREAK
7680 case 312:
7681 YY_RULE_SETUP
7682 {
7683   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7684   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
7685  }
7686         YY_BREAK
7687 case 313:
7688 YY_RULE_SETUP
7689 {
7690   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7691   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
7692   switch (YY_START) {
7693    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7694    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
7695    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
7696    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7697   }
7698  }
7699         YY_BREAK
7700 case 314:
7701 YY_RULE_SETUP
7702 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7703         YY_BREAK
7704 case 315:
7705 YY_RULE_SETUP
7706 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7707         YY_BREAK
7708 case YY_STATE_EOF(AL_surfxml_link___ctn):
7709 FAIL("EOF in attribute list of `link_ctn' element.");
7710         YY_BREAK
7711
7712 case 316:
7713 /* rule 316 can match eol */
7714 YY_RULE_SETUP
7715 {
7716   LEAVE;
7717   ETag_surfxml_link___ctn();
7718   popbuffer(); /* attribute */
7719   switch (YY_START) {
7720    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7721    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
7722    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
7723    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7724   }
7725  }
7726         YY_BREAK
7727 case 317:
7728 /* rule 317 can match eol */
7729 YY_RULE_SETUP
7730 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7731         YY_BREAK
7732 case 318:
7733 YY_RULE_SETUP
7734 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7735         YY_BREAK
7736 case YY_STATE_EOF(E_surfxml_link___ctn):
7737 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7738         YY_BREAK
7739
7740 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
7741   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
7742 case 319:
7743 /* rule 319 can match eol */
7744 YY_RULE_SETUP
7745 FAIL("Starting tag <model_prop> is not allowed here.");
7746         YY_BREAK
7747 case 320:
7748 /* rule 320 can match eol */
7749 YY_RULE_SETUP
7750 {
7751   AX_surfxml_model___prop_id = 0;
7752   surfxml_model___prop_id_isset = 0;
7753   AX_surfxml_model___prop_value = 0;
7754   surfxml_model___prop_value_isset = 0;
7755   ENTER(AL_surfxml_model___prop); pushbuffer(0);
7756   }
7757         YY_BREAK
7758
7759 case 321:
7760 /* rule 321 can match eol */
7761 YY_RULE_SETUP
7762 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);
7763         YY_BREAK
7764 case 322:
7765 /* rule 322 can match eol */
7766 YY_RULE_SETUP
7767 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);
7768         YY_BREAK
7769 case 323:
7770 /* rule 323 can match eol */
7771 YY_RULE_SETUP
7772 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);
7773         YY_BREAK
7774 case 324:
7775 /* rule 324 can match eol */
7776 YY_RULE_SETUP
7777 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);
7778         YY_BREAK
7779 case 325:
7780 YY_RULE_SETUP
7781 {
7782   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
7783   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
7784   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
7785  }
7786         YY_BREAK
7787 case 326:
7788 YY_RULE_SETUP
7789 {
7790   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
7791   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
7792   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
7793   switch (YY_START) {
7794    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
7795   }
7796  }
7797         YY_BREAK
7798 case 327:
7799 YY_RULE_SETUP
7800 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
7801         YY_BREAK
7802 case 328:
7803 YY_RULE_SETUP
7804 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
7805         YY_BREAK
7806 case YY_STATE_EOF(AL_surfxml_model___prop):
7807 FAIL("EOF in attribute list of `model_prop' element.");
7808         YY_BREAK
7809
7810 case 329:
7811 /* rule 329 can match eol */
7812 YY_RULE_SETUP
7813 {
7814   LEAVE;
7815   ETag_surfxml_model___prop();
7816   popbuffer(); /* attribute */
7817   switch (YY_START) {
7818    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
7819   }
7820  }
7821         YY_BREAK
7822 case 330:
7823 /* rule 330 can match eol */
7824 YY_RULE_SETUP
7825 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
7826         YY_BREAK
7827 case 331:
7828 YY_RULE_SETUP
7829 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
7830         YY_BREAK
7831 case YY_STATE_EOF(E_surfxml_model___prop):
7832 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
7833         YY_BREAK
7834
7835 case 332:
7836 /* rule 332 can match eol */
7837 YY_RULE_SETUP
7838 FAIL("Starting tag <mount> is not allowed here.");
7839         YY_BREAK
7840 case 333:
7841 /* rule 333 can match eol */
7842 YY_RULE_SETUP
7843 {
7844   AX_surfxml_mount_name = 0;
7845   surfxml_mount_name_isset = 0;
7846   AX_surfxml_mount_storageId = 0;
7847   surfxml_mount_storageId_isset = 0;
7848   ENTER(AL_surfxml_mount); pushbuffer(0);
7849   }
7850         YY_BREAK
7851
7852 case 334:
7853 /* rule 334 can match eol */
7854 YY_RULE_SETUP
7855 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);
7856         YY_BREAK
7857 case 335:
7858 /* rule 335 can match eol */
7859 YY_RULE_SETUP
7860 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);
7861         YY_BREAK
7862 case 336:
7863 /* rule 336 can match eol */
7864 YY_RULE_SETUP
7865 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);
7866         YY_BREAK
7867 case 337:
7868 /* rule 337 can match eol */
7869 YY_RULE_SETUP
7870 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);
7871         YY_BREAK
7872 case 338:
7873 YY_RULE_SETUP
7874 {
7875   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
7876   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
7877   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
7878  }
7879         YY_BREAK
7880 case 339:
7881 YY_RULE_SETUP
7882 {
7883   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
7884   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
7885   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
7886   switch (YY_START) {
7887    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
7888   }
7889  }
7890         YY_BREAK
7891 case 340:
7892 YY_RULE_SETUP
7893 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
7894         YY_BREAK
7895 case 341:
7896 YY_RULE_SETUP
7897 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
7898         YY_BREAK
7899 case YY_STATE_EOF(AL_surfxml_mount):
7900 FAIL("EOF in attribute list of `mount' element.");
7901         YY_BREAK
7902
7903 case 342:
7904 /* rule 342 can match eol */
7905 YY_RULE_SETUP
7906 {
7907   LEAVE;
7908   ETag_surfxml_mount();
7909   popbuffer(); /* attribute */
7910   switch (YY_START) {
7911    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
7912   }
7913  }
7914         YY_BREAK
7915 case 343:
7916 /* rule 343 can match eol */
7917 YY_RULE_SETUP
7918 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
7919         YY_BREAK
7920 case 344:
7921 YY_RULE_SETUP
7922 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
7923         YY_BREAK
7924 case YY_STATE_EOF(E_surfxml_mount):
7925 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
7926         YY_BREAK
7927
7928 case 345:
7929 /* rule 345 can match eol */
7930 YY_RULE_SETUP
7931 FAIL("Starting tag <mstorage> is not allowed here.");
7932         YY_BREAK
7933 case 346:
7934 /* rule 346 can match eol */
7935 YY_RULE_SETUP
7936 {
7937   AX_surfxml_mstorage_name = 0;
7938   surfxml_mstorage_name_isset = 0;
7939   AX_surfxml_mstorage_typeId = 0;
7940   surfxml_mstorage_typeId_isset = 0;
7941   ENTER(AL_surfxml_mstorage); pushbuffer(0);
7942   }
7943         YY_BREAK
7944
7945 case 347:
7946 /* rule 347 can match eol */
7947 YY_RULE_SETUP
7948 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);
7949         YY_BREAK
7950 case 348:
7951 /* rule 348 can match eol */
7952 YY_RULE_SETUP
7953 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);
7954         YY_BREAK
7955 case 349:
7956 /* rule 349 can match eol */
7957 YY_RULE_SETUP
7958 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);
7959         YY_BREAK
7960 case 350:
7961 /* rule 350 can match eol */
7962 YY_RULE_SETUP
7963 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);
7964         YY_BREAK
7965 case 351:
7966 YY_RULE_SETUP
7967 {
7968   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
7969   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
7970   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
7971  }
7972         YY_BREAK
7973 case 352:
7974 YY_RULE_SETUP
7975 {
7976   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
7977   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
7978   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
7979   switch (YY_START) {
7980    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
7981   }
7982  }
7983         YY_BREAK
7984 case 353:
7985 YY_RULE_SETUP
7986 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
7987         YY_BREAK
7988 case 354:
7989 YY_RULE_SETUP
7990 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
7991         YY_BREAK
7992 case YY_STATE_EOF(AL_surfxml_mstorage):
7993 FAIL("EOF in attribute list of `mstorage' element.");
7994         YY_BREAK
7995
7996 case 355:
7997 /* rule 355 can match eol */
7998 YY_RULE_SETUP
7999 {
8000   LEAVE;
8001   ETag_surfxml_mstorage();
8002   popbuffer(); /* attribute */
8003   switch (YY_START) {
8004    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8005   }
8006  }
8007         YY_BREAK
8008 case 356:
8009 /* rule 356 can match eol */
8010 YY_RULE_SETUP
8011 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
8012         YY_BREAK
8013 case 357:
8014 YY_RULE_SETUP
8015 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
8016         YY_BREAK
8017 case YY_STATE_EOF(E_surfxml_mstorage):
8018 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
8019         YY_BREAK
8020
8021 case 358:
8022 /* rule 358 can match eol */
8023 YY_RULE_SETUP
8024 FAIL("Starting tag <peer> is not allowed here.");
8025         YY_BREAK
8026 case 359:
8027 /* rule 359 can match eol */
8028 YY_RULE_SETUP
8029 {
8030   AX_surfxml_peer_availability___file = 0;
8031   surfxml_peer_availability___file_isset = 0;
8032   AX_surfxml_peer_bw___in = 0;
8033   surfxml_peer_bw___in_isset = 0;
8034   AX_surfxml_peer_bw___out = 0;
8035   surfxml_peer_bw___out_isset = 0;
8036   AX_surfxml_peer_coordinates = 0;
8037   surfxml_peer_coordinates_isset = 0;
8038   AX_surfxml_peer_id = 0;
8039   surfxml_peer_id_isset = 0;
8040   AX_surfxml_peer_lat = 0;
8041   surfxml_peer_lat_isset = 0;
8042   AX_surfxml_peer_speed = 0;
8043   surfxml_peer_speed_isset = 0;
8044   AX_surfxml_peer_state___file = 0;
8045   surfxml_peer_state___file_isset = 0;
8046   ENTER(AL_surfxml_peer); pushbuffer(0);
8047   }
8048         YY_BREAK
8049
8050 case 360:
8051 /* rule 360 can match eol */
8052 YY_RULE_SETUP
8053 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);
8054         YY_BREAK
8055 case 361:
8056 /* rule 361 can match eol */
8057 YY_RULE_SETUP
8058 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);
8059         YY_BREAK
8060 case 362:
8061 /* rule 362 can match eol */
8062 YY_RULE_SETUP
8063 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);
8064         YY_BREAK
8065 case 363:
8066 /* rule 363 can match eol */
8067 YY_RULE_SETUP
8068 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);
8069         YY_BREAK
8070 case 364:
8071 /* rule 364 can match eol */
8072 YY_RULE_SETUP
8073 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);
8074         YY_BREAK
8075 case 365:
8076 /* rule 365 can match eol */
8077 YY_RULE_SETUP
8078 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);
8079         YY_BREAK
8080 case 366:
8081 /* rule 366 can match eol */
8082 YY_RULE_SETUP
8083 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);
8084         YY_BREAK
8085 case 367:
8086 /* rule 367 can match eol */
8087 YY_RULE_SETUP
8088 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);
8089         YY_BREAK
8090 case 368:
8091 /* rule 368 can match eol */
8092 YY_RULE_SETUP
8093 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);
8094         YY_BREAK
8095 case 369:
8096 /* rule 369 can match eol */
8097 YY_RULE_SETUP
8098 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);
8099         YY_BREAK
8100 case 370:
8101 /* rule 370 can match eol */
8102 YY_RULE_SETUP
8103 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);
8104         YY_BREAK
8105 case 371:
8106 /* rule 371 can match eol */
8107 YY_RULE_SETUP
8108 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);
8109         YY_BREAK
8110 case 372:
8111 /* rule 372 can match eol */
8112 YY_RULE_SETUP
8113 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");} surfxml_peer_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_speed);
8114         YY_BREAK
8115 case 373:
8116 /* rule 373 can match eol */
8117 YY_RULE_SETUP
8118 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");}  surfxml_peer_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_speed);
8119         YY_BREAK
8120 case 374:
8121 /* rule 374 can match eol */
8122 YY_RULE_SETUP
8123 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);
8124         YY_BREAK
8125 case 375:
8126 /* rule 375 can match eol */
8127 YY_RULE_SETUP
8128 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);
8129         YY_BREAK
8130 case 376:
8131 YY_RULE_SETUP
8132 {
8133   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8134   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8135   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8136   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8137   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
8138   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
8139  }
8140         YY_BREAK
8141 case 377:
8142 YY_RULE_SETUP
8143 {
8144   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8145   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8146   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8147   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8148   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
8149   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
8150   switch (YY_START) {
8151    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8152    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8153    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8154   }
8155  }
8156         YY_BREAK
8157 case 378:
8158 YY_RULE_SETUP
8159 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
8160         YY_BREAK
8161 case 379:
8162 YY_RULE_SETUP
8163 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
8164         YY_BREAK
8165 case YY_STATE_EOF(AL_surfxml_peer):
8166 FAIL("EOF in attribute list of `peer' element.");
8167         YY_BREAK
8168
8169 case 380:
8170 /* rule 380 can match eol */
8171 YY_RULE_SETUP
8172 {
8173   LEAVE;
8174   ETag_surfxml_peer();
8175   popbuffer(); /* attribute */
8176   switch (YY_START) {
8177    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8178    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8179    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8180   }
8181  }
8182         YY_BREAK
8183 case 381:
8184 /* rule 381 can match eol */
8185 YY_RULE_SETUP
8186 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
8187         YY_BREAK
8188 case 382:
8189 YY_RULE_SETUP
8190 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
8191         YY_BREAK
8192 case YY_STATE_EOF(E_surfxml_peer):
8193 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
8194         YY_BREAK
8195
8196 /* <!-- 
8197   *              DTD of SimGrid platform and deployment files.
8198   * More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
8199   * To upgrade your files, use the tool simgrid_update_xml
8200   * * New in DTD version 4 (in SimGrid 3.13):
8201   *    - Rename (power->speed) the attributes describing the amount of flop
8202   *      that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
8203   *    - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
8204   *    
8205   *    - In <host> and <link>, attributes availability and state are gone.
8206   *      It was redundent with state and availability traces, and with peak values.
8207   *    - The DOCTYPE points to the right URL (this file):
8208   *      http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
8209   *    - A warning is emited for unit-less values (they are still accepted).
8210   *      - speed. Default: 'f' or 'flops'. Also defined:
8211   *         'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
8212   *         'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
8213   *      - bandwidth. Default: 'Bps' bytes per second (or 'bps' for bits but 1 Bps = 8 bps)
8214   *        Also defined in bytes: 'TiBps', 'GiBps', 'MiBps', 'KiBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
8215   *        And the same in bits:  'Tibps', 'Gibps', 'Mibps', 'Kibps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
8216   *      - latency. Default: 's' second. Also defined:
8217   *        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
8218   * * New in DTD version 3 (in SimGrid 3.5):
8219   *    - The AS tag were introduced. Every platform should now
8220   *      contain an englobing AS tag.
8221   *    - Routes are now symmetric by default.
8222   *    - Renamed tags (for sake of XML sanity):
8223   *      - LINK:CTN -> LINK_CTN
8224   *      - TRACE:CONNECT -> TRACE_CONNECT
8225   * * New in DTD version 2 (in SimGrid 3.4):
8226   *    - Renamed tags:
8227   *      - CPU -> HOST
8228   *      - NETWORK_LINK -> LINK
8229   *      - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
8230   *      - PLATFORM_DESCRIPTION -> PLATFORM
8231   * * New in DTD version 1 (in SimGrid 3.3):
8232   *    - DTD is now versionned with the version attribute of platform
8233   *    - Unit change: 
8234   *      - Link bandwidth: from Mb/s to b/s
8235   *      - CPU speed: from MFlop/s to Flop/s
8236   * -->  */
8237 case 383:
8238 /* rule 383 can match eol */
8239 YY_RULE_SETUP
8240 FAIL("Starting tag <platform> is not allowed here.");
8241         YY_BREAK
8242 case 384:
8243 /* rule 384 can match eol */
8244 YY_RULE_SETUP
8245 {
8246   AX_surfxml_platform_version = 1;
8247   surfxml_platform_version_isset = 0;
8248   ENTER(AL_surfxml_platform); pushbuffer(0);
8249   }
8250         YY_BREAK
8251
8252 case 385:
8253 /* rule 385 can match eol */
8254 YY_RULE_SETUP
8255 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);
8256         YY_BREAK
8257 case 386:
8258 /* rule 386 can match eol */
8259 YY_RULE_SETUP
8260 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);
8261         YY_BREAK
8262 case 387:
8263 YY_RULE_SETUP
8264 {
8265   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
8266  }
8267         YY_BREAK
8268 case 388:
8269 YY_RULE_SETUP
8270 {
8271   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
8272   switch (YY_START) {
8273    case ROOT_surfxml_platform: SET(EPILOG); break;
8274   }
8275  }
8276         YY_BREAK
8277 case 389:
8278 YY_RULE_SETUP
8279 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
8280         YY_BREAK
8281 case 390:
8282 YY_RULE_SETUP
8283 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
8284         YY_BREAK
8285 case YY_STATE_EOF(AL_surfxml_platform):
8286 FAIL("EOF in attribute list of `platform' element.");
8287         YY_BREAK
8288
8289 case 391:
8290 /* rule 391 can match eol */
8291 YY_RULE_SETUP
8292 {
8293   LEAVE;
8294   ETag_surfxml_platform();
8295   popbuffer(); /* attribute */
8296   switch (YY_START) {
8297    case ROOT_surfxml_platform: SET(EPILOG); break;
8298   }
8299  }
8300         YY_BREAK
8301 case 392:
8302 /* rule 392 can match eol */
8303 YY_RULE_SETUP
8304 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
8305         YY_BREAK
8306 case 393:
8307 YY_RULE_SETUP
8308 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
8309         YY_BREAK
8310 case YY_STATE_EOF(E_surfxml_platform):
8311 case YY_STATE_EOF(S_surfxml_platform):
8312 case YY_STATE_EOF(S_surfxml_platform_1):
8313 case YY_STATE_EOF(S_surfxml_platform_3):
8314 case YY_STATE_EOF(S_surfxml_platform_4):
8315 case YY_STATE_EOF(S_surfxml_platform_6):
8316 case YY_STATE_EOF(S_surfxml_platform_8):
8317 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
8318         YY_BREAK
8319
8320 case 394:
8321 /* rule 394 can match eol */
8322 YY_RULE_SETUP
8323 FAIL("Starting tag <process> is not allowed here.");
8324         YY_BREAK
8325 case 395:
8326 /* rule 395 can match eol */
8327 YY_RULE_SETUP
8328 {
8329   AX_surfxml_process_function = 0;
8330   surfxml_process_function_isset = 0;
8331   AX_surfxml_process_host = 0;
8332   surfxml_process_host_isset = 0;
8333   AX_surfxml_process_kill___time = 50;
8334   surfxml_process_kill___time_isset = 0;
8335   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8336   surfxml_process_on___failure_isset = 0;
8337   AX_surfxml_process_start___time = 45;
8338   surfxml_process_start___time_isset = 0;
8339   ENTER(AL_surfxml_process); pushbuffer(0);
8340   }
8341         YY_BREAK
8342
8343 case 396:
8344 /* rule 396 can match eol */
8345 YY_RULE_SETUP
8346 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);
8347         YY_BREAK
8348 case 397:
8349 /* rule 397 can match eol */
8350 YY_RULE_SETUP
8351 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);
8352         YY_BREAK
8353 case 398:
8354 /* rule 398 can match eol */
8355 YY_RULE_SETUP
8356 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);
8357         YY_BREAK
8358 case 399:
8359 /* rule 399 can match eol */
8360 YY_RULE_SETUP
8361 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);
8362         YY_BREAK
8363 case 400:
8364 /* rule 400 can match eol */
8365 YY_RULE_SETUP
8366 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);
8367         YY_BREAK
8368 case 401:
8369 /* rule 401 can match eol */
8370 YY_RULE_SETUP
8371 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);
8372         YY_BREAK
8373 case 402:
8374 /* rule 402 can match eol */
8375 case 403:
8376 /* rule 403 can match eol */
8377 YY_RULE_SETUP
8378 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8379         YY_BREAK
8380 case 404:
8381 /* rule 404 can match eol */
8382 case 405:
8383 /* rule 405 can match eol */
8384 YY_RULE_SETUP
8385 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8386         YY_BREAK
8387 case 406:
8388 /* rule 406 can match eol */
8389 YY_RULE_SETUP
8390 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);
8391         YY_BREAK
8392 case 407:
8393 /* rule 407 can match eol */
8394 YY_RULE_SETUP
8395 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);
8396         YY_BREAK
8397 case 408:
8398 YY_RULE_SETUP
8399 {
8400   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8401   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8402   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8403  }
8404         YY_BREAK
8405 case 409:
8406 YY_RULE_SETUP
8407 {
8408   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8409   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8410   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8411   switch (YY_START) {
8412    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
8413   }
8414  }
8415         YY_BREAK
8416 case 410:
8417 YY_RULE_SETUP
8418 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8419         YY_BREAK
8420 case 411:
8421 YY_RULE_SETUP
8422 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8423         YY_BREAK
8424 case YY_STATE_EOF(AL_surfxml_process):
8425 FAIL("EOF in attribute list of `process' element.");
8426         YY_BREAK
8427
8428 case 412:
8429 /* rule 412 can match eol */
8430 YY_RULE_SETUP
8431 {
8432   LEAVE;
8433   ETag_surfxml_process();
8434   popbuffer(); /* attribute */
8435   switch (YY_START) {
8436    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
8437   }
8438  }
8439         YY_BREAK
8440 case 413:
8441 /* rule 413 can match eol */
8442 YY_RULE_SETUP
8443 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8444         YY_BREAK
8445 case 414:
8446 YY_RULE_SETUP
8447 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8448         YY_BREAK
8449 case YY_STATE_EOF(E_surfxml_process):
8450 case YY_STATE_EOF(S_surfxml_process):
8451 case YY_STATE_EOF(S_surfxml_process_2):
8452 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8453         YY_BREAK
8454
8455 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8456   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8457 case 415:
8458 /* rule 415 can match eol */
8459 YY_RULE_SETUP
8460 FAIL("Starting tag <prop> is not allowed here.");
8461         YY_BREAK
8462 case 416:
8463 /* rule 416 can match eol */
8464 YY_RULE_SETUP
8465 {
8466   AX_surfxml_prop_id = 0;
8467   surfxml_prop_id_isset = 0;
8468   AX_surfxml_prop_value = 0;
8469   surfxml_prop_value_isset = 0;
8470   ENTER(AL_surfxml_prop); pushbuffer(0);
8471   }
8472         YY_BREAK
8473
8474 case 417:
8475 /* rule 417 can match eol */
8476 YY_RULE_SETUP
8477 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);
8478         YY_BREAK
8479 case 418:
8480 /* rule 418 can match eol */
8481 YY_RULE_SETUP
8482 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);
8483         YY_BREAK
8484 case 419:
8485 /* rule 419 can match eol */
8486 YY_RULE_SETUP
8487 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);
8488         YY_BREAK
8489 case 420:
8490 /* rule 420 can match eol */
8491 YY_RULE_SETUP
8492 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);
8493         YY_BREAK
8494 case 421:
8495 YY_RULE_SETUP
8496 {
8497   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8498   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8499   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8500  }
8501         YY_BREAK
8502 case 422:
8503 YY_RULE_SETUP
8504 {
8505   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8506   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8507   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8508   switch (YY_START) {
8509    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8510    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
8511    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8512    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8513    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
8514    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8515    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
8516    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8517   }
8518  }
8519         YY_BREAK
8520 case 423:
8521 YY_RULE_SETUP
8522 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8523         YY_BREAK
8524 case 424:
8525 YY_RULE_SETUP
8526 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8527         YY_BREAK
8528 case YY_STATE_EOF(AL_surfxml_prop):
8529 FAIL("EOF in attribute list of `prop' element.");
8530         YY_BREAK
8531
8532 case 425:
8533 /* rule 425 can match eol */
8534 YY_RULE_SETUP
8535 {
8536   LEAVE;
8537   ETag_surfxml_prop();
8538   popbuffer(); /* attribute */
8539   switch (YY_START) {
8540    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8541    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
8542    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8543    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8544    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
8545    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8546    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
8547    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8548   }
8549  }
8550         YY_BREAK
8551 case 426:
8552 /* rule 426 can match eol */
8553 YY_RULE_SETUP
8554 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8555         YY_BREAK
8556 case 427:
8557 YY_RULE_SETUP
8558 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8559         YY_BREAK
8560 case YY_STATE_EOF(E_surfxml_prop):
8561 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8562         YY_BREAK
8563
8564 case 428:
8565 /* rule 428 can match eol */
8566 YY_RULE_SETUP
8567 FAIL("Starting tag <random> is not allowed here.");
8568         YY_BREAK
8569 case 429:
8570 /* rule 429 can match eol */
8571 YY_RULE_SETUP
8572 {
8573   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
8574   surfxml_random_generator_isset = 0;
8575   AX_surfxml_random_id = 0;
8576   surfxml_random_id_isset = 0;
8577   AX_surfxml_random_max = 0;
8578   surfxml_random_max_isset = 0;
8579   AX_surfxml_random_mean = 0;
8580   surfxml_random_mean_isset = 0;
8581   AX_surfxml_random_min = 0;
8582   surfxml_random_min_isset = 0;
8583   AX_surfxml_random_radical = 0;
8584   surfxml_random_radical_isset = 0;
8585   AX_surfxml_random_seed = 5;
8586   surfxml_random_seed_isset = 0;
8587   AX_surfxml_random_std___deviation = 0;
8588   surfxml_random_std___deviation_isset = 0;
8589   ENTER(AL_surfxml_random); pushbuffer(0);
8590   }
8591         YY_BREAK
8592
8593 case 430:
8594 /* rule 430 can match eol */
8595 case 431:
8596 /* rule 431 can match eol */
8597 YY_RULE_SETUP
8598 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
8599         YY_BREAK
8600 case 432:
8601 /* rule 432 can match eol */
8602 case 433:
8603 /* rule 433 can match eol */
8604 YY_RULE_SETUP
8605 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
8606         YY_BREAK
8607 case 434:
8608 /* rule 434 can match eol */
8609 case 435:
8610 /* rule 435 can match eol */
8611 YY_RULE_SETUP
8612 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
8613         YY_BREAK
8614 case 436:
8615 /* rule 436 can match eol */
8616 case 437:
8617 /* rule 437 can match eol */
8618 YY_RULE_SETUP
8619 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
8620         YY_BREAK
8621 case 438:
8622 /* rule 438 can match eol */
8623 YY_RULE_SETUP
8624 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);
8625         YY_BREAK
8626 case 439:
8627 /* rule 439 can match eol */
8628 YY_RULE_SETUP
8629 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);
8630         YY_BREAK
8631 case 440:
8632 /* rule 440 can match eol */
8633 YY_RULE_SETUP
8634 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);
8635         YY_BREAK
8636 case 441:
8637 /* rule 441 can match eol */
8638 YY_RULE_SETUP
8639 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);
8640         YY_BREAK
8641 case 442:
8642 /* rule 442 can match eol */
8643 YY_RULE_SETUP
8644 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);
8645         YY_BREAK
8646 case 443:
8647 /* rule 443 can match eol */
8648 YY_RULE_SETUP
8649 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);
8650         YY_BREAK
8651 case 444:
8652 /* rule 444 can match eol */
8653 YY_RULE_SETUP
8654 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);
8655         YY_BREAK
8656 case 445:
8657 /* rule 445 can match eol */
8658 YY_RULE_SETUP
8659 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);
8660         YY_BREAK
8661 case 446:
8662 /* rule 446 can match eol */
8663 YY_RULE_SETUP
8664 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);
8665         YY_BREAK
8666 case 447:
8667 /* rule 447 can match eol */
8668 YY_RULE_SETUP
8669 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);
8670         YY_BREAK
8671 case 448:
8672 /* rule 448 can match eol */
8673 YY_RULE_SETUP
8674 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);
8675         YY_BREAK
8676 case 449:
8677 /* rule 449 can match eol */
8678 YY_RULE_SETUP
8679 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);
8680         YY_BREAK
8681 case 450:
8682 /* rule 450 can match eol */
8683 YY_RULE_SETUP
8684 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);
8685         YY_BREAK
8686 case 451:
8687 /* rule 451 can match eol */
8688 YY_RULE_SETUP
8689 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);
8690         YY_BREAK
8691 case 452:
8692 YY_RULE_SETUP
8693 {
8694   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
8695   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
8696   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
8697   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
8698   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
8699   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
8700  }
8701         YY_BREAK
8702 case 453:
8703 YY_RULE_SETUP
8704 {
8705   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
8706   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
8707   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
8708   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
8709   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
8710   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
8711   switch (YY_START) {
8712    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8713   }
8714  }
8715         YY_BREAK
8716 case 454:
8717 YY_RULE_SETUP
8718 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
8719         YY_BREAK
8720 case 455:
8721 YY_RULE_SETUP
8722 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
8723         YY_BREAK
8724 case YY_STATE_EOF(AL_surfxml_random):
8725 FAIL("EOF in attribute list of `random' element.");
8726         YY_BREAK
8727
8728 case 456:
8729 /* rule 456 can match eol */
8730 YY_RULE_SETUP
8731 {
8732   LEAVE;
8733   ETag_surfxml_random();
8734   popbuffer(); /* attribute */
8735   switch (YY_START) {
8736    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8737   }
8738  }
8739         YY_BREAK
8740 case 457:
8741 /* rule 457 can match eol */
8742 YY_RULE_SETUP
8743 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
8744         YY_BREAK
8745 case 458:
8746 YY_RULE_SETUP
8747 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
8748         YY_BREAK
8749 case YY_STATE_EOF(E_surfxml_random):
8750 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
8751         YY_BREAK
8752
8753 case 459:
8754 /* rule 459 can match eol */
8755 YY_RULE_SETUP
8756 FAIL("Starting tag <route> is not allowed here.");
8757         YY_BREAK
8758 case 460:
8759 /* rule 460 can match eol */
8760 YY_RULE_SETUP
8761 {
8762   AX_surfxml_route_dst = 0;
8763   surfxml_route_dst_isset = 0;
8764   AX_surfxml_route_src = 0;
8765   surfxml_route_src_isset = 0;
8766   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8767   surfxml_route_symmetrical_isset = 0;
8768   ENTER(AL_surfxml_route); pushbuffer(0);
8769   }
8770         YY_BREAK
8771
8772 case 461:
8773 /* rule 461 can match eol */
8774 YY_RULE_SETUP
8775 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);
8776         YY_BREAK
8777 case 462:
8778 /* rule 462 can match eol */
8779 YY_RULE_SETUP
8780 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);
8781         YY_BREAK
8782 case 463:
8783 /* rule 463 can match eol */
8784 YY_RULE_SETUP
8785 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);
8786         YY_BREAK
8787 case 464:
8788 /* rule 464 can match eol */
8789 YY_RULE_SETUP
8790 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);
8791         YY_BREAK
8792 case 465:
8793 /* rule 465 can match eol */
8794 case 466:
8795 /* rule 466 can match eol */
8796 YY_RULE_SETUP
8797 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8798         YY_BREAK
8799 case 467:
8800 /* rule 467 can match eol */
8801 case 468:
8802 /* rule 468 can match eol */
8803 YY_RULE_SETUP
8804 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8805         YY_BREAK
8806 case 469:
8807 YY_RULE_SETUP
8808 {
8809   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8810   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8811   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8812  }
8813         YY_BREAK
8814 case 470:
8815 YY_RULE_SETUP
8816 {
8817   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8818   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8819   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8820   switch (YY_START) {
8821    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
8822   }
8823  }
8824         YY_BREAK
8825 case 471:
8826 YY_RULE_SETUP
8827 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8828         YY_BREAK
8829 case 472:
8830 YY_RULE_SETUP
8831 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8832         YY_BREAK
8833 case YY_STATE_EOF(AL_surfxml_route):
8834 FAIL("EOF in attribute list of `route' element.");
8835         YY_BREAK
8836
8837 case 473:
8838 /* rule 473 can match eol */
8839 YY_RULE_SETUP
8840 {
8841   LEAVE;
8842   ETag_surfxml_route();
8843   popbuffer(); /* attribute */
8844   switch (YY_START) {
8845    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
8846   }
8847  }
8848         YY_BREAK
8849 case 474:
8850 /* rule 474 can match eol */
8851 YY_RULE_SETUP
8852 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8853         YY_BREAK
8854 case 475:
8855 YY_RULE_SETUP
8856 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8857         YY_BREAK
8858 case YY_STATE_EOF(E_surfxml_route):
8859 case YY_STATE_EOF(S_surfxml_route):
8860 case YY_STATE_EOF(S_surfxml_route_2):
8861 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8862         YY_BREAK
8863
8864 case 476:
8865 /* rule 476 can match eol */
8866 YY_RULE_SETUP
8867 FAIL("Starting tag <router> is not allowed here.");
8868         YY_BREAK
8869 case 477:
8870 /* rule 477 can match eol */
8871 YY_RULE_SETUP
8872 {
8873   AX_surfxml_router_coordinates = 0;
8874   surfxml_router_coordinates_isset = 0;
8875   AX_surfxml_router_id = 0;
8876   surfxml_router_id_isset = 0;
8877   ENTER(AL_surfxml_router); pushbuffer(0);
8878   }
8879         YY_BREAK
8880
8881 case 478:
8882 /* rule 478 can match eol */
8883 YY_RULE_SETUP
8884 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);
8885         YY_BREAK
8886 case 479:
8887 /* rule 479 can match eol */
8888 YY_RULE_SETUP
8889 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);
8890         YY_BREAK
8891 case 480:
8892 /* rule 480 can match eol */
8893 YY_RULE_SETUP
8894 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);
8895         YY_BREAK
8896 case 481:
8897 /* rule 481 can match eol */
8898 YY_RULE_SETUP
8899 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);
8900         YY_BREAK
8901 case 482:
8902 YY_RULE_SETUP
8903 {
8904   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8905   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
8906  }
8907         YY_BREAK
8908 case 483:
8909 YY_RULE_SETUP
8910 {
8911   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8912   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
8913   switch (YY_START) {
8914    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8915   }
8916  }
8917         YY_BREAK
8918 case 484:
8919 YY_RULE_SETUP
8920 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
8921         YY_BREAK
8922 case 485:
8923 YY_RULE_SETUP
8924 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
8925         YY_BREAK
8926 case YY_STATE_EOF(AL_surfxml_router):
8927 FAIL("EOF in attribute list of `router' element.");
8928         YY_BREAK
8929
8930 case 486:
8931 /* rule 486 can match eol */
8932 YY_RULE_SETUP
8933 {
8934   LEAVE;
8935   ETag_surfxml_router();
8936   popbuffer(); /* attribute */
8937   switch (YY_START) {
8938    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8939   }
8940  }
8941         YY_BREAK
8942 case 487:
8943 /* rule 487 can match eol */
8944 YY_RULE_SETUP
8945 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
8946         YY_BREAK
8947 case 488:
8948 YY_RULE_SETUP
8949 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
8950         YY_BREAK
8951 case YY_STATE_EOF(E_surfxml_router):
8952 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
8953         YY_BREAK
8954
8955 case 489:
8956 /* rule 489 can match eol */
8957 YY_RULE_SETUP
8958 FAIL("Starting tag <storage> is not allowed here.");
8959         YY_BREAK
8960 case 490:
8961 /* rule 490 can match eol */
8962 YY_RULE_SETUP
8963 {
8964   AX_surfxml_storage_attach = 0;
8965   surfxml_storage_attach_isset = 0;
8966   AX_surfxml_storage_content = 0;
8967   surfxml_storage_content_isset = 0;
8968   AX_surfxml_storage_content___type = 31;
8969   surfxml_storage_content___type_isset = 0;
8970   AX_surfxml_storage_id = 0;
8971   surfxml_storage_id_isset = 0;
8972   AX_surfxml_storage_typeId = 0;
8973   surfxml_storage_typeId_isset = 0;
8974   ENTER(AL_surfxml_storage); pushbuffer(0);
8975   }
8976         YY_BREAK
8977
8978 case 491:
8979 /* rule 491 can match eol */
8980 YY_RULE_SETUP
8981 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");} surfxml_storage_attach_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_attach);
8982         YY_BREAK
8983 case 492:
8984 /* rule 492 can match eol */
8985 YY_RULE_SETUP
8986 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");}  surfxml_storage_attach_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_attach);
8987         YY_BREAK
8988 case 493:
8989 /* rule 493 can match eol */
8990 YY_RULE_SETUP
8991 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);
8992         YY_BREAK
8993 case 494:
8994 /* rule 494 can match eol */
8995 YY_RULE_SETUP
8996 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);
8997         YY_BREAK
8998 case 495:
8999 /* rule 495 can match eol */
9000 YY_RULE_SETUP
9001 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);
9002         YY_BREAK
9003 case 496:
9004 /* rule 496 can match eol */
9005 YY_RULE_SETUP
9006 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);
9007         YY_BREAK
9008 case 497:
9009 /* rule 497 can match eol */
9010 YY_RULE_SETUP
9011 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);
9012         YY_BREAK
9013 case 498:
9014 /* rule 498 can match eol */
9015 YY_RULE_SETUP
9016 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);
9017         YY_BREAK
9018 case 499:
9019 /* rule 499 can match eol */
9020 YY_RULE_SETUP
9021 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);
9022         YY_BREAK
9023 case 500:
9024 /* rule 500 can match eol */
9025 YY_RULE_SETUP
9026 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);
9027         YY_BREAK
9028 case 501:
9029 YY_RULE_SETUP
9030 {
9031   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
9032   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
9033   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
9034   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
9035  }
9036         YY_BREAK
9037 case 502:
9038 YY_RULE_SETUP
9039 {
9040   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
9041   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
9042   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
9043   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
9044   switch (YY_START) {
9045    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9046   }
9047  }
9048         YY_BREAK
9049 case 503:
9050 YY_RULE_SETUP
9051 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
9052         YY_BREAK
9053 case 504:
9054 YY_RULE_SETUP
9055 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
9056         YY_BREAK
9057 case YY_STATE_EOF(AL_surfxml_storage):
9058 FAIL("EOF in attribute list of `storage' element.");
9059         YY_BREAK
9060
9061 case 505:
9062 /* rule 505 can match eol */
9063 YY_RULE_SETUP
9064 {
9065   LEAVE;
9066   ETag_surfxml_storage();
9067   popbuffer(); /* attribute */
9068   switch (YY_START) {
9069    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9070   }
9071  }
9072         YY_BREAK
9073 case 506:
9074 /* rule 506 can match eol */
9075 YY_RULE_SETUP
9076 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
9077         YY_BREAK
9078 case 507:
9079 YY_RULE_SETUP
9080 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
9081         YY_BREAK
9082 case YY_STATE_EOF(E_surfxml_storage):
9083 case YY_STATE_EOF(S_surfxml_storage):
9084 case YY_STATE_EOF(S_surfxml_storage_2):
9085 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
9086         YY_BREAK
9087
9088 case 508:
9089 /* rule 508 can match eol */
9090 YY_RULE_SETUP
9091 FAIL("Starting tag <storage_type> is not allowed here.");
9092         YY_BREAK
9093 case 509:
9094 /* rule 509 can match eol */
9095 YY_RULE_SETUP
9096 {
9097   AX_surfxml_storage___type_content = 0;
9098   surfxml_storage___type_content_isset = 0;
9099   AX_surfxml_storage___type_content___type = 16;
9100   surfxml_storage___type_content___type_isset = 0;
9101   AX_surfxml_storage___type_id = 0;
9102   surfxml_storage___type_id_isset = 0;
9103   AX_surfxml_storage___type_model = 0;
9104   surfxml_storage___type_model_isset = 0;
9105   AX_surfxml_storage___type_size = 0;
9106   surfxml_storage___type_size_isset = 0;
9107   ENTER(AL_surfxml_storage___type); pushbuffer(0);
9108   }
9109         YY_BREAK
9110
9111 case 510:
9112 /* rule 510 can match eol */
9113 YY_RULE_SETUP
9114 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);
9115         YY_BREAK
9116 case 511:
9117 /* rule 511 can match eol */
9118 YY_RULE_SETUP
9119 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);
9120         YY_BREAK
9121 case 512:
9122 /* rule 512 can match eol */
9123 YY_RULE_SETUP
9124 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);
9125         YY_BREAK
9126 case 513:
9127 /* rule 513 can match eol */
9128 YY_RULE_SETUP
9129 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);
9130         YY_BREAK
9131 case 514:
9132 /* rule 514 can match eol */
9133 YY_RULE_SETUP
9134 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);
9135         YY_BREAK
9136 case 515:
9137 /* rule 515 can match eol */
9138 YY_RULE_SETUP
9139 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);
9140         YY_BREAK
9141 case 516:
9142 /* rule 516 can match eol */
9143 YY_RULE_SETUP
9144 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);
9145         YY_BREAK
9146 case 517:
9147 /* rule 517 can match eol */
9148 YY_RULE_SETUP
9149 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);
9150         YY_BREAK
9151 case 518:
9152 /* rule 518 can match eol */
9153 YY_RULE_SETUP
9154 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);
9155         YY_BREAK
9156 case 519:
9157 /* rule 519 can match eol */
9158 YY_RULE_SETUP
9159 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);
9160         YY_BREAK
9161 case 520:
9162 YY_RULE_SETUP
9163 {
9164   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9165   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
9166   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9167   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
9168  }
9169         YY_BREAK
9170 case 521:
9171 YY_RULE_SETUP
9172 {
9173   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9174   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
9175   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9176   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
9177   switch (YY_START) {
9178    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9179   }
9180  }
9181         YY_BREAK
9182 case 522:
9183 YY_RULE_SETUP
9184 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
9185         YY_BREAK
9186 case 523:
9187 YY_RULE_SETUP
9188 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
9189         YY_BREAK
9190 case YY_STATE_EOF(AL_surfxml_storage___type):
9191 FAIL("EOF in attribute list of `storage_type' element.");
9192         YY_BREAK
9193
9194 case 524:
9195 /* rule 524 can match eol */
9196 YY_RULE_SETUP
9197 {
9198   LEAVE;
9199   ETag_surfxml_storage___type();
9200   popbuffer(); /* attribute */
9201   switch (YY_START) {
9202    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9203   }
9204  }
9205         YY_BREAK
9206 case 525:
9207 /* rule 525 can match eol */
9208 YY_RULE_SETUP
9209 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
9210         YY_BREAK
9211 case 526:
9212 YY_RULE_SETUP
9213 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
9214         YY_BREAK
9215 case YY_STATE_EOF(E_surfxml_storage___type):
9216 case YY_STATE_EOF(S_surfxml_storage___type):
9217 case YY_STATE_EOF(S_surfxml_storage___type_2):
9218 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
9219         YY_BREAK
9220
9221 case 527:
9222 /* rule 527 can match eol */
9223 YY_RULE_SETUP
9224 FAIL("Starting tag <trace> is not allowed here.");
9225         YY_BREAK
9226 case 528:
9227 /* rule 528 can match eol */
9228 YY_RULE_SETUP
9229 {
9230   AX_surfxml_trace_file = 0;
9231   surfxml_trace_file_isset = 0;
9232   AX_surfxml_trace_id = 0;
9233   surfxml_trace_id_isset = 0;
9234   AX_surfxml_trace_periodicity = 0;
9235   surfxml_trace_periodicity_isset = 0;
9236   ENTER(AL_surfxml_trace); pushbuffer(0);
9237   }
9238         YY_BREAK
9239
9240 case 529:
9241 /* rule 529 can match eol */
9242 YY_RULE_SETUP
9243 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);
9244         YY_BREAK
9245 case 530:
9246 /* rule 530 can match eol */
9247 YY_RULE_SETUP
9248 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);
9249         YY_BREAK
9250 case 531:
9251 /* rule 531 can match eol */
9252 YY_RULE_SETUP
9253 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);
9254         YY_BREAK
9255 case 532:
9256 /* rule 532 can match eol */
9257 YY_RULE_SETUP
9258 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);
9259         YY_BREAK
9260 case 533:
9261 /* rule 533 can match eol */
9262 YY_RULE_SETUP
9263 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);
9264         YY_BREAK
9265 case 534:
9266 /* rule 534 can match eol */
9267 YY_RULE_SETUP
9268 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);
9269         YY_BREAK
9270 case 535:
9271 YY_RULE_SETUP
9272 {
9273   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
9274   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
9275   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
9276  }
9277         YY_BREAK
9278 case 536:
9279 YY_RULE_SETUP
9280 {
9281   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
9282   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
9283   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
9284   switch (YY_START) {
9285    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9286    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9287    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9288   }
9289  }
9290         YY_BREAK
9291 case 537:
9292 YY_RULE_SETUP
9293 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
9294         YY_BREAK
9295 case 538:
9296 YY_RULE_SETUP
9297 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
9298         YY_BREAK
9299 case YY_STATE_EOF(AL_surfxml_trace):
9300 FAIL("EOF in attribute list of `trace' element.");
9301         YY_BREAK
9302
9303 case 539:
9304 /* rule 539 can match eol */
9305 YY_RULE_SETUP
9306 {
9307   LEAVE;
9308   BUFFERDONE;
9309   ETag_surfxml_trace();
9310   surfxml_pcdata_ix = popbuffer();
9311   popbuffer(); /* attribute */
9312   switch (YY_START) {
9313    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9314    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9315    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9316   }
9317  }
9318         YY_BREAK
9319 case 540:
9320 /* rule 540 can match eol */
9321 YY_RULE_SETUP
9322 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
9323         YY_BREAK
9324 case YY_STATE_EOF(IN_trace):
9325 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
9326         YY_BREAK
9327
9328 case 541:
9329 /* rule 541 can match eol */
9330 YY_RULE_SETUP
9331 FAIL("Starting tag <trace_connect> is not allowed here.");
9332         YY_BREAK
9333 case 542:
9334 /* rule 542 can match eol */
9335 YY_RULE_SETUP
9336 {
9337   AX_surfxml_trace___connect_element = 0;
9338   surfxml_trace___connect_element_isset = 0;
9339   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
9340   surfxml_trace___connect_kind_isset = 0;
9341   AX_surfxml_trace___connect_trace = 0;
9342   surfxml_trace___connect_trace_isset = 0;
9343   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
9344   }
9345         YY_BREAK
9346
9347 case 543:
9348 /* rule 543 can match eol */
9349 YY_RULE_SETUP
9350 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);
9351         YY_BREAK
9352 case 544:
9353 /* rule 544 can match eol */
9354 YY_RULE_SETUP
9355 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);
9356         YY_BREAK
9357 case 545:
9358 /* rule 545 can match eol */
9359 case 546:
9360 /* rule 546 can match eol */
9361 YY_RULE_SETUP
9362 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
9363         YY_BREAK
9364 case 547:
9365 /* rule 547 can match eol */
9366 case 548:
9367 /* rule 548 can match eol */
9368 YY_RULE_SETUP
9369 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_SPEED;
9370         YY_BREAK
9371 case 549:
9372 /* rule 549 can match eol */
9373 case 550:
9374 /* rule 550 can match eol */
9375 YY_RULE_SETUP
9376 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
9377         YY_BREAK
9378 case 551:
9379 /* rule 551 can match eol */
9380 case 552:
9381 /* rule 552 can match eol */
9382 YY_RULE_SETUP
9383 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
9384         YY_BREAK
9385 case 553:
9386 /* rule 553 can match eol */
9387 case 554:
9388 /* rule 554 can match eol */
9389 YY_RULE_SETUP
9390 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
9391         YY_BREAK
9392 case 555:
9393 /* rule 555 can match eol */
9394 YY_RULE_SETUP
9395 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);
9396         YY_BREAK
9397 case 556:
9398 /* rule 556 can match eol */
9399 YY_RULE_SETUP
9400 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);
9401         YY_BREAK
9402 case 557:
9403 YY_RULE_SETUP
9404 {
9405   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
9406   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
9407   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
9408  }
9409         YY_BREAK
9410 case 558:
9411 YY_RULE_SETUP
9412 {
9413   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
9414   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
9415   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
9416   switch (YY_START) {
9417    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9418    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9419    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9420   }
9421  }
9422         YY_BREAK
9423 case 559:
9424 YY_RULE_SETUP
9425 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
9426         YY_BREAK
9427 case 560:
9428 YY_RULE_SETUP
9429 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
9430         YY_BREAK
9431 case YY_STATE_EOF(AL_surfxml_trace___connect):
9432 FAIL("EOF in attribute list of `trace_connect' element.");
9433         YY_BREAK
9434
9435 case 561:
9436 /* rule 561 can match eol */
9437 YY_RULE_SETUP
9438 {
9439   LEAVE;
9440   ETag_surfxml_trace___connect();
9441   popbuffer(); /* attribute */
9442   switch (YY_START) {
9443    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9444    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9445    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
9446   }
9447  }
9448         YY_BREAK
9449 case 562:
9450 /* rule 562 can match eol */
9451 YY_RULE_SETUP
9452 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
9453         YY_BREAK
9454 case 563:
9455 YY_RULE_SETUP
9456 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
9457         YY_BREAK
9458 case YY_STATE_EOF(E_surfxml_trace___connect):
9459 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
9460         YY_BREAK
9461
9462 /* EPILOG: after the root element. */
9463
9464 case 564:
9465 YY_RULE_SETUP
9466 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9467         YY_BREAK
9468 case YY_STATE_EOF(EPILOG):
9469 SUCCEED;
9470         YY_BREAK
9471
9472 /* CHARACTER DATA. */
9473
9474 /* Non-defined standard entities... */
9475 case 565:
9476 YY_RULE_SETUP
9477 BUFFERPUTC('&');
9478         YY_BREAK
9479 case 566:
9480 YY_RULE_SETUP
9481 BUFFERPUTC('<');
9482         YY_BREAK
9483 case 567:
9484 YY_RULE_SETUP
9485 BUFFERPUTC('>');
9486         YY_BREAK
9487 case 568:
9488 YY_RULE_SETUP
9489 BUFFERPUTC('\'');
9490         YY_BREAK
9491 case 569:
9492 YY_RULE_SETUP
9493 BUFFERPUTC('"');
9494         YY_BREAK
9495 /* Character entities. */
9496 case 570:
9497 YY_RULE_SETUP
9498 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9499         YY_BREAK
9500 case 571:
9501 YY_RULE_SETUP
9502 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9503         YY_BREAK
9504
9505 case 572:
9506 /* rule 572 can match eol */
9507 case 573:
9508 /* rule 573 can match eol */
9509 case 574:
9510 /* rule 574 can match eol */
9511 case 575:
9512 /* rule 575 can match eol */
9513 YY_RULE_SETUP
9514 BUFFERPUTC('\n');
9515         YY_BREAK
9516
9517 case 576:
9518 YY_RULE_SETUP
9519 ENTER(CDATA);
9520         YY_BREAK
9521 case 577:
9522 YY_RULE_SETUP
9523 FAIL("Unexpected `]""]>' in character data.");
9524         YY_BREAK
9525
9526 case 578:
9527 YY_RULE_SETUP
9528 BUFFERDONE; LEAVE;
9529         YY_BREAK
9530 case YY_STATE_EOF(VALUE1):
9531 FAIL("EOF in literal (\"'\" expected).");
9532         YY_BREAK
9533
9534 case 579:
9535 YY_RULE_SETUP
9536 BUFFERDONE; LEAVE;
9537         YY_BREAK
9538 case YY_STATE_EOF(VALUE2):
9539 FAIL("EOF in literal (`\"' expected).");
9540         YY_BREAK
9541
9542 case 580:
9543 /* rule 580 can match eol */
9544 YY_RULE_SETUP
9545 BUFFERPUTC(surf_parse_text[0]);
9546         YY_BREAK
9547 case 581:
9548 YY_RULE_SETUP
9549 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9550         YY_BREAK
9551
9552 case 582:
9553 YY_RULE_SETUP
9554 LEAVE;
9555         YY_BREAK
9556 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9557 case 583:
9558 YY_RULE_SETUP
9559 BUFFERPUTC(surf_parse_text[0]);
9560         YY_BREAK
9561 case YY_STATE_EOF(CDATA):
9562 FAIL("EOF in CDATA section.");
9563         YY_BREAK
9564
9565 /* Impossible rules to avoid warnings from flex(1). */
9566 /* Ideally, this should be replaced by code in flexml.pl that
9567     generates just the states not covered by other rules. */
9568
9569 case 584:
9570 /* rule 584 can match eol */
9571 YY_RULE_SETUP
9572 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9573         YY_BREAK
9574
9575 case 585:
9576 YY_RULE_SETUP
9577 ECHO;
9578         YY_BREAK
9579 case YY_STATE_EOF(INITIAL):
9580 case YY_STATE_EOF(S_surfxml_AS_2):
9581 case YY_STATE_EOF(S_surfxml_AS_5):
9582 case YY_STATE_EOF(S_surfxml_AS_7):
9583 case YY_STATE_EOF(S_surfxml_ASroute_1):
9584 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9585 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9586 case YY_STATE_EOF(S_surfxml_cluster_1):
9587 case YY_STATE_EOF(S_surfxml_config_1):
9588 case YY_STATE_EOF(S_surfxml_host_1):
9589 case YY_STATE_EOF(S_surfxml_include_1):
9590 case YY_STATE_EOF(S_surfxml_link_1):
9591 case YY_STATE_EOF(ROOT_surfxml_platform):
9592 case YY_STATE_EOF(S_surfxml_platform_2):
9593 case YY_STATE_EOF(S_surfxml_platform_5):
9594 case YY_STATE_EOF(S_surfxml_platform_7):
9595 case YY_STATE_EOF(S_surfxml_process_1):
9596 case YY_STATE_EOF(S_surfxml_route_1):
9597 case YY_STATE_EOF(S_surfxml_storage_1):
9598 case YY_STATE_EOF(S_surfxml_storage___type_1):
9599 case YY_STATE_EOF(IMPOSSIBLE):
9600         yyterminate();
9601
9602         case YY_END_OF_BUFFER:
9603                 {
9604                 /* Amount of text matched not including the EOB char. */
9605                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9606
9607                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9608                 *yy_cp = (yy_hold_char);
9609                 YY_RESTORE_YY_MORE_OFFSET
9610
9611                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9612                         {
9613                         /* We're scanning a new file or input source.  It's
9614                          * possible that this happened because the user
9615                          * just pointed surf_parse_in at a new source and called
9616                          * surf_parse_lex().  If so, then we have to assure
9617                          * consistency between YY_CURRENT_BUFFER and our
9618                          * globals.  Here is the right place to do so, because
9619                          * this is the first action (other than possibly a
9620                          * back-up) that will match for the new input source.
9621                          */
9622                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9623                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9624                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9625                         }
9626
9627                 /* Note that here we test for yy_c_buf_p "<=" to the position
9628                  * of the first EOB in the buffer, since yy_c_buf_p will
9629                  * already have been incremented past the NUL character
9630                  * (since all states make transitions on EOB to the
9631                  * end-of-buffer state).  Contrast this with the test
9632                  * in input().
9633                  */
9634                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9635                         { /* This was really a NUL. */
9636                         yy_state_type yy_next_state;
9637
9638                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9639
9640                         yy_current_state = yy_get_previous_state(  );
9641
9642                         /* Okay, we're now positioned to make the NUL
9643                          * transition.  We couldn't have
9644                          * yy_get_previous_state() go ahead and do it
9645                          * for us because it doesn't know how to deal
9646                          * with the possibility of jamming (and we don't
9647                          * want to build jamming into it because then it
9648                          * will run more slowly).
9649                          */
9650
9651                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9652
9653                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9654
9655                         if ( yy_next_state )
9656                                 {
9657                                 /* Consume the NUL. */
9658                                 yy_cp = ++(yy_c_buf_p);
9659                                 yy_current_state = yy_next_state;
9660                                 goto yy_match;
9661                                 }
9662
9663                         else
9664                                 {
9665                                 yy_cp = (yy_c_buf_p);
9666                                 goto yy_find_action;
9667                                 }
9668                         }
9669
9670                 else switch ( yy_get_next_buffer(  ) )
9671                         {
9672                         case EOB_ACT_END_OF_FILE:
9673                                 {
9674                                 (yy_did_buffer_switch_on_eof) = 0;
9675
9676                                 if ( surf_parse_wrap( ) )
9677                                         {
9678                                         /* Note: because we've taken care in
9679                                          * yy_get_next_buffer() to have set up
9680                                          * surf_parse_text, we can now set up
9681                                          * yy_c_buf_p so that if some total
9682                                          * hoser (like flex itself) wants to
9683                                          * call the scanner after we return the
9684                                          * YY_NULL, it'll still work - another
9685                                          * YY_NULL will get returned.
9686                                          */
9687                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9688
9689                                         yy_act = YY_STATE_EOF(YY_START);
9690                                         goto do_action;
9691                                         }
9692
9693                                 else
9694                                         {
9695                                         if ( ! (yy_did_buffer_switch_on_eof) )
9696                                                 YY_NEW_FILE;
9697                                         }
9698                                 break;
9699                                 }
9700
9701                         case EOB_ACT_CONTINUE_SCAN:
9702                                 (yy_c_buf_p) =
9703                                         (yytext_ptr) + yy_amount_of_matched_text;
9704
9705                                 yy_current_state = yy_get_previous_state(  );
9706
9707                                 yy_cp = (yy_c_buf_p);
9708                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9709                                 goto yy_match;
9710
9711                         case EOB_ACT_LAST_MATCH:
9712                                 (yy_c_buf_p) =
9713                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9714
9715                                 yy_current_state = yy_get_previous_state(  );
9716
9717                                 yy_cp = (yy_c_buf_p);
9718                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9719                                 goto yy_find_action;
9720                         }
9721                 break;
9722                 }
9723
9724         default:
9725                 YY_FATAL_ERROR(
9726                         "fatal flex scanner internal error--no action found" );
9727         } /* end of action switch */
9728                 } /* end of scanning one token */
9729         } /* end of user's declarations */
9730 } /* end of surf_parse_lex */
9731
9732 /* yy_get_next_buffer - try to read in a new buffer
9733  *
9734  * Returns a code representing an action:
9735  *      EOB_ACT_LAST_MATCH -
9736  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9737  *      EOB_ACT_END_OF_FILE - end of file
9738  */
9739 static int yy_get_next_buffer (void)
9740 {
9741         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9742         char *source = (yytext_ptr);
9743         int number_to_move, i;
9744         int ret_val;
9745
9746         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9747                 YY_FATAL_ERROR(
9748                 "fatal flex scanner internal error--end of buffer missed" );
9749
9750         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9751                 { /* Don't try to fill the buffer, so this is an EOF. */
9752                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9753                         {
9754                         /* We matched a single character, the EOB, so
9755                          * treat this as a final EOF.
9756                          */
9757                         return EOB_ACT_END_OF_FILE;
9758                         }
9759
9760                 else
9761                         {
9762                         /* We matched some text prior to the EOB, first
9763                          * process it.
9764                          */
9765                         return EOB_ACT_LAST_MATCH;
9766                         }
9767                 }
9768
9769         /* Try to read more data. */
9770
9771         /* First move last chars to start of buffer. */
9772         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9773
9774         for ( i = 0; i < number_to_move; ++i )
9775                 *(dest++) = *(source++);
9776
9777         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9778                 /* don't do the read, it's not guaranteed to return an EOF,
9779                  * just force an EOF
9780                  */
9781                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9782
9783         else
9784                 {
9785                         yy_size_t num_to_read =
9786                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9787
9788                 while ( num_to_read <= 0 )
9789                         { /* Not enough room in the buffer - grow it. */
9790
9791                         /* just a shorter name for the current buffer */
9792                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
9793
9794                         int yy_c_buf_p_offset =
9795                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9796
9797                         if ( b->yy_is_our_buffer )
9798                                 {
9799                                 yy_size_t new_size = b->yy_buf_size * 2;
9800
9801                                 if ( new_size <= 0 )
9802                                         b->yy_buf_size += b->yy_buf_size / 8;
9803                                 else
9804                                         b->yy_buf_size *= 2;
9805
9806                                 b->yy_ch_buf = (char *)
9807                                         /* Include room in for 2 EOB chars. */
9808                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9809                                 }
9810                         else
9811                                 /* Can't grow it, we don't own it. */
9812                                 b->yy_ch_buf = 0;
9813
9814                         if ( ! b->yy_ch_buf )
9815                                 YY_FATAL_ERROR(
9816                                 "fatal error - scanner input buffer overflow" );
9817
9818                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9819
9820                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9821                                                 number_to_move - 1;
9822
9823                         }
9824
9825                 if ( num_to_read > YY_READ_BUF_SIZE )
9826                         num_to_read = YY_READ_BUF_SIZE;
9827
9828                 /* Read in more data. */
9829                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9830                         (yy_n_chars), num_to_read );
9831
9832                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9833                 }
9834
9835         if ( (yy_n_chars) == 0 )
9836                 {
9837                 if ( number_to_move == YY_MORE_ADJ )
9838                         {
9839                         ret_val = EOB_ACT_END_OF_FILE;
9840                         surf_parse_restart(surf_parse_in  );
9841                         }
9842
9843                 else
9844                         {
9845                         ret_val = EOB_ACT_LAST_MATCH;
9846                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9847                                 YY_BUFFER_EOF_PENDING;
9848                         }
9849                 }
9850
9851         else
9852                 ret_val = EOB_ACT_CONTINUE_SCAN;
9853
9854         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9855                 /* Extend the array by 50%, plus the number we really need. */
9856                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9857                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9858                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9859                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9860         }
9861
9862         (yy_n_chars) += number_to_move;
9863         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9864         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9865
9866         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9867
9868         return ret_val;
9869 }
9870
9871 /* yy_get_previous_state - get the state just before the EOB char was reached */
9872
9873     static yy_state_type yy_get_previous_state (void)
9874 {
9875         yy_state_type yy_current_state;
9876         char *yy_cp;
9877     
9878         yy_current_state = (yy_start);
9879
9880         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9881                 {
9882                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9883                 if ( yy_accept[yy_current_state] )
9884                         {
9885                         (yy_last_accepting_state) = yy_current_state;
9886                         (yy_last_accepting_cpos) = yy_cp;
9887                         }
9888                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9889                         {
9890                         yy_current_state = (int) yy_def[yy_current_state];
9891                         if ( yy_current_state >= 3438 )
9892                                 yy_c = yy_meta[(unsigned int) yy_c];
9893                         }
9894                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9895                 }
9896
9897         return yy_current_state;
9898 }
9899
9900 /* yy_try_NUL_trans - try to make a transition on the NUL character
9901  *
9902  * synopsis
9903  *      next_state = yy_try_NUL_trans( current_state );
9904  */
9905     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9906 {
9907         int yy_is_jam;
9908         char *yy_cp = (yy_c_buf_p);
9909
9910         YY_CHAR yy_c = 1;
9911         if ( yy_accept[yy_current_state] )
9912                 {
9913                 (yy_last_accepting_state) = yy_current_state;
9914                 (yy_last_accepting_cpos) = yy_cp;
9915                 }
9916         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9917                 {
9918                 yy_current_state = (int) yy_def[yy_current_state];
9919                 if ( yy_current_state >= 3438 )
9920                         yy_c = yy_meta[(unsigned int) yy_c];
9921                 }
9922         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9923         yy_is_jam = (yy_current_state == 3437);
9924
9925                 return yy_is_jam ? 0 : yy_current_state;
9926 }
9927
9928 #ifndef YY_NO_INPUT
9929 #ifdef __cplusplus
9930     static int yyinput (void)
9931 #else
9932     static int input  (void)
9933 #endif
9934
9935 {
9936         int c;
9937     
9938         *(yy_c_buf_p) = (yy_hold_char);
9939
9940         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9941                 {
9942                 /* yy_c_buf_p now points to the character we want to return.
9943                  * If this occurs *before* the EOB characters, then it's a
9944                  * valid NUL; if not, then we've hit the end of the buffer.
9945                  */
9946                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9947                         /* This was really a NUL. */
9948                         *(yy_c_buf_p) = '\0';
9949
9950                 else
9951                         { /* need more input */
9952                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
9953                         ++(yy_c_buf_p);
9954
9955                         switch ( yy_get_next_buffer(  ) )
9956                                 {
9957                                 case EOB_ACT_LAST_MATCH:
9958                                         /* This happens because yy_g_n_b()
9959                                          * sees that we've accumulated a
9960                                          * token and flags that we need to
9961                                          * try matching the token before
9962                                          * proceeding.  But for input(),
9963                                          * there's no matching to consider.
9964                                          * So convert the EOB_ACT_LAST_MATCH
9965                                          * to EOB_ACT_END_OF_FILE.
9966                                          */
9967
9968                                         /* Reset buffer status. */
9969                                         surf_parse_restart(surf_parse_in );
9970
9971                                         /*FALLTHROUGH*/
9972
9973                                 case EOB_ACT_END_OF_FILE:
9974                                         {
9975                                         if ( surf_parse_wrap( ) )
9976                                                 return EOF;
9977
9978                                         if ( ! (yy_did_buffer_switch_on_eof) )
9979                                                 YY_NEW_FILE;
9980 #ifdef __cplusplus
9981                                         return yyinput();
9982 #else
9983                                         return input();
9984 #endif
9985                                         }
9986
9987                                 case EOB_ACT_CONTINUE_SCAN:
9988                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9989                                         break;
9990                                 }
9991                         }
9992                 }
9993
9994         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9995         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9996         (yy_hold_char) = *++(yy_c_buf_p);
9997
9998         if ( c == '\n' )
9999                    
10000     surf_parse_lineno++;
10001 ;
10002
10003         return c;
10004 }
10005 #endif  /* ifndef YY_NO_INPUT */
10006
10007 /** Immediately switch to a different input stream.
10008  * @param input_file A readable stream.
10009  * 
10010  * @note This function does not reset the start condition to @c INITIAL .
10011  */
10012     void surf_parse_restart  (FILE * input_file )
10013 {
10014     
10015         if ( ! YY_CURRENT_BUFFER ){
10016         surf_parse_ensure_buffer_stack ();
10017                 YY_CURRENT_BUFFER_LVALUE =
10018             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
10019         }
10020
10021         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
10022         surf_parse__load_buffer_state( );
10023 }
10024
10025 /** Switch to a different input buffer.
10026  * @param new_buffer The new input buffer.
10027  * 
10028  */
10029     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
10030 {
10031     
10032         /* TODO. We should be able to replace this entire function body
10033          * with
10034          *              surf_parse_pop_buffer_state();
10035          *              surf_parse_push_buffer_state(new_buffer);
10036      */
10037         surf_parse_ensure_buffer_stack ();
10038         if ( YY_CURRENT_BUFFER == new_buffer )
10039                 return;
10040
10041         if ( YY_CURRENT_BUFFER )
10042                 {
10043                 /* Flush out information for old buffer. */
10044                 *(yy_c_buf_p) = (yy_hold_char);
10045                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10046                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10047                 }
10048
10049         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10050         surf_parse__load_buffer_state( );
10051
10052         /* We don't actually know whether we did this switch during
10053          * EOF (surf_parse_wrap()) processing, but the only time this flag
10054          * is looked at is after surf_parse_wrap() is called, so it's safe
10055          * to go ahead and always set it.
10056          */
10057         (yy_did_buffer_switch_on_eof) = 1;
10058 }
10059
10060 static void surf_parse__load_buffer_state  (void)
10061 {
10062         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
10063         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
10064         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
10065         (yy_hold_char) = *(yy_c_buf_p);
10066 }
10067
10068 /** Allocate and initialize an input buffer state.
10069  * @param file A readable stream.
10070  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
10071  * 
10072  * @return the allocated buffer state.
10073  */
10074     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
10075 {
10076         YY_BUFFER_STATE b;
10077     
10078         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10079         if ( ! b )
10080                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10081
10082         b->yy_buf_size = size;
10083
10084         /* yy_ch_buf has to be 2 characters longer than the size given because
10085          * we need to put in 2 end-of-buffer characters.
10086          */
10087         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
10088         if ( ! b->yy_ch_buf )
10089                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10090
10091         b->yy_is_our_buffer = 1;
10092
10093         surf_parse__init_buffer(b,file );
10094
10095         return b;
10096 }
10097
10098 /** Destroy the buffer.
10099  * @param b a buffer created with surf_parse__create_buffer()
10100  * 
10101  */
10102     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
10103 {
10104     
10105         if ( ! b )
10106                 return;
10107
10108         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
10109                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
10110
10111         if ( b->yy_is_our_buffer )
10112                 surf_parse_free((void *) b->yy_ch_buf  );
10113
10114         surf_parse_free((void *) b  );
10115 }
10116
10117 /* Initializes or reinitializes a buffer.
10118  * This function is sometimes called more than once on the same buffer,
10119  * such as during a surf_parse_restart() or at EOF.
10120  */
10121     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
10122
10123 {
10124         int oerrno = errno;
10125     
10126         surf_parse__flush_buffer(b );
10127
10128         b->yy_input_file = file;
10129         b->yy_fill_buffer = 1;
10130
10131     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
10132      * called from surf_parse_restart() or through yy_get_next_buffer.
10133      * In that case, we don't want to reset the lineno or column.
10134      */
10135     if (b != YY_CURRENT_BUFFER){
10136         b->yy_bs_lineno = 1;
10137         b->yy_bs_column = 0;
10138     }
10139
10140         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
10141     
10142         errno = oerrno;
10143 }
10144
10145 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
10146  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
10147  * 
10148  */
10149     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
10150 {
10151         if ( ! b )
10152                 return;
10153
10154         b->yy_n_chars = 0;
10155
10156         /* We always need two end-of-buffer characters.  The first causes
10157          * a transition to the end-of-buffer state.  The second causes
10158          * a jam in that state.
10159          */
10160         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10161         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10162
10163         b->yy_buf_pos = &b->yy_ch_buf[0];
10164
10165         b->yy_at_bol = 1;
10166         b->yy_buffer_status = YY_BUFFER_NEW;
10167
10168         if ( b == YY_CURRENT_BUFFER )
10169                 surf_parse__load_buffer_state( );
10170 }
10171
10172 /** Pushes the new state onto the stack. The new state becomes
10173  *  the current state. This function will allocate the stack
10174  *  if necessary.
10175  *  @param new_buffer The new state.
10176  *  
10177  */
10178 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10179 {
10180         if (new_buffer == NULL)
10181                 return;
10182
10183         surf_parse_ensure_buffer_stack();
10184
10185         /* This block is copied from surf_parse__switch_to_buffer. */
10186         if ( YY_CURRENT_BUFFER )
10187                 {
10188                 /* Flush out information for old buffer. */
10189                 *(yy_c_buf_p) = (yy_hold_char);
10190                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10191                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10192                 }
10193
10194         /* Only push if top exists. Otherwise, replace top. */
10195         if (YY_CURRENT_BUFFER)
10196                 (yy_buffer_stack_top)++;
10197         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10198
10199         /* copied from surf_parse__switch_to_buffer. */
10200         surf_parse__load_buffer_state( );
10201         (yy_did_buffer_switch_on_eof) = 1;
10202 }
10203
10204 /** Removes and deletes the top of the stack, if present.
10205  *  The next element becomes the new top.
10206  *  
10207  */
10208 void surf_parse_pop_buffer_state (void)
10209 {
10210         if (!YY_CURRENT_BUFFER)
10211                 return;
10212
10213         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10214         YY_CURRENT_BUFFER_LVALUE = NULL;
10215         if ((yy_buffer_stack_top) > 0)
10216                 --(yy_buffer_stack_top);
10217
10218         if (YY_CURRENT_BUFFER) {
10219                 surf_parse__load_buffer_state( );
10220                 (yy_did_buffer_switch_on_eof) = 1;
10221         }
10222 }
10223
10224 /* Allocates the stack if it does not exist.
10225  *  Guarantees space for at least one push.
10226  */
10227 static void surf_parse_ensure_buffer_stack (void)
10228 {
10229         yy_size_t num_to_alloc;
10230     
10231         if (!(yy_buffer_stack)) {
10232
10233                 /* First allocation is just for 2 elements, since we don't know if this
10234                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10235                  * immediate realloc on the next call.
10236          */
10237                 num_to_alloc = 1;
10238                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10239                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10240                                                                 );
10241                 if ( ! (yy_buffer_stack) )
10242                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10243                                                                   
10244                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10245                                 
10246                 (yy_buffer_stack_max) = num_to_alloc;
10247                 (yy_buffer_stack_top) = 0;
10248                 return;
10249         }
10250
10251         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10252
10253                 /* Increase the buffer to prepare for a possible push. */
10254                 int grow_size = 8 /* arbitrary grow size */;
10255
10256                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10257                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10258                                                                 ((yy_buffer_stack),
10259                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10260                                                                 );
10261                 if ( ! (yy_buffer_stack) )
10262                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10263
10264                 /* zero only the new slots.*/
10265                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10266                 (yy_buffer_stack_max) = num_to_alloc;
10267         }
10268 }
10269
10270 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10271  * @param base the character buffer
10272  * @param size the size in bytes of the character buffer
10273  * 
10274  * @return the newly allocated buffer state object. 
10275  */
10276 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10277 {
10278         YY_BUFFER_STATE b;
10279     
10280         if ( size < 2 ||
10281              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10282              base[size-1] != YY_END_OF_BUFFER_CHAR )
10283                 /* They forgot to leave room for the EOB's. */
10284                 return 0;
10285
10286         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10287         if ( ! b )
10288                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10289
10290         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10291         b->yy_buf_pos = b->yy_ch_buf = base;
10292         b->yy_is_our_buffer = 0;
10293         b->yy_input_file = 0;
10294         b->yy_n_chars = b->yy_buf_size;
10295         b->yy_is_interactive = 0;
10296         b->yy_at_bol = 1;
10297         b->yy_fill_buffer = 0;
10298         b->yy_buffer_status = YY_BUFFER_NEW;
10299
10300         surf_parse__switch_to_buffer(b  );
10301
10302         return b;
10303 }
10304
10305 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10306  * scan from a @e copy of @a str.
10307  * @param yystr a NUL-terminated string to scan
10308  * 
10309  * @return the newly allocated buffer state object.
10310  * @note If you want to scan bytes that may contain NUL values, then use
10311  *       surf_parse__scan_bytes() instead.
10312  */
10313 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10314 {
10315     
10316         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10317 }
10318
10319 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10320  * scan from a @e copy of @a bytes.
10321  * @param yybytes the byte buffer to scan
10322  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10323  * 
10324  * @return the newly allocated buffer state object.
10325  */
10326 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
10327 {
10328         YY_BUFFER_STATE b;
10329         char *buf;
10330         yy_size_t n;
10331         yy_size_t i;
10332     
10333         /* Get memory for full buffer, including space for trailing EOB's. */
10334         n = _yybytes_len + 2;
10335         buf = (char *) surf_parse_alloc(n  );
10336         if ( ! buf )
10337                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10338
10339         for ( i = 0; i < _yybytes_len; ++i )
10340                 buf[i] = yybytes[i];
10341
10342         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10343
10344         b = surf_parse__scan_buffer(buf,n );
10345         if ( ! b )
10346                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10347
10348         /* It's okay to grow etc. this buffer, and we should throw it
10349          * away when we're done.
10350          */
10351         b->yy_is_our_buffer = 1;
10352
10353         return b;
10354 }
10355
10356     static void yy_push_state (int  new_state )
10357 {
10358         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10359                 {
10360                 yy_size_t new_size;
10361
10362                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10363                 new_size = (yy_start_stack_depth) * sizeof( int );
10364
10365                 if ( ! (yy_start_stack) )
10366                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10367
10368                 else
10369                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10370
10371                 if ( ! (yy_start_stack) )
10372                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10373                 }
10374
10375         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10376
10377         BEGIN(new_state);
10378 }
10379
10380     static void yy_pop_state  (void)
10381 {
10382         if ( --(yy_start_stack_ptr) < 0 )
10383                 YY_FATAL_ERROR( "start-condition stack underflow" );
10384
10385         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10386 }
10387
10388 #ifndef YY_EXIT_FAILURE
10389 #define YY_EXIT_FAILURE 2
10390 #endif
10391
10392 static void yy_fatal_error (yyconst char* msg )
10393 {
10394         (void) fprintf( stderr, "%s\n", msg );
10395         exit( YY_EXIT_FAILURE );
10396 }
10397
10398 /* Redefine yyless() so it works in section 3 code. */
10399
10400 #undef yyless
10401 #define yyless(n) \
10402         do \
10403                 { \
10404                 /* Undo effects of setting up surf_parse_text. */ \
10405         int yyless_macro_arg = (n); \
10406         YY_LESS_LINENO(yyless_macro_arg);\
10407                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10408                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10409                 (yy_hold_char) = *(yy_c_buf_p); \
10410                 *(yy_c_buf_p) = '\0'; \
10411                 surf_parse_leng = yyless_macro_arg; \
10412                 } \
10413         while ( 0 )
10414
10415 /* Accessor  methods (get/set functions) to struct members. */
10416
10417 /** Get the current line number.
10418  * 
10419  */
10420 int surf_parse_get_lineno  (void)
10421 {
10422         
10423     return surf_parse_lineno;
10424 }
10425
10426 /** Get the input stream.
10427  * 
10428  */
10429 FILE *surf_parse_get_in  (void)
10430 {
10431         return surf_parse_in;
10432 }
10433
10434 /** Get the output stream.
10435  * 
10436  */
10437 FILE *surf_parse_get_out  (void)
10438 {
10439         return surf_parse_out;
10440 }
10441
10442 /** Get the length of the current token.
10443  * 
10444  */
10445 yy_size_t surf_parse_get_leng  (void)
10446 {
10447         return surf_parse_leng;
10448 }
10449
10450 /** Get the current token.
10451  * 
10452  */
10453
10454 char *surf_parse_get_text  (void)
10455 {
10456         return surf_parse_text;
10457 }
10458
10459 /** Set the current line number.
10460  * @param line_number
10461  * 
10462  */
10463 void surf_parse_set_lineno (int  line_number )
10464 {
10465     
10466     surf_parse_lineno = line_number;
10467 }
10468
10469 /** Set the input stream. This does not discard the current
10470  * input buffer.
10471  * @param in_str A readable stream.
10472  * 
10473  * @see surf_parse__switch_to_buffer
10474  */
10475 void surf_parse_set_in (FILE *  in_str )
10476 {
10477         surf_parse_in = in_str ;
10478 }
10479
10480 void surf_parse_set_out (FILE *  out_str )
10481 {
10482         surf_parse_out = out_str ;
10483 }
10484
10485 int surf_parse_get_debug  (void)
10486 {
10487         return surf_parse__flex_debug;
10488 }
10489
10490 void surf_parse_set_debug (int  bdebug )
10491 {
10492         surf_parse__flex_debug = bdebug ;
10493 }
10494
10495 static int yy_init_globals (void)
10496 {
10497         /* Initialization is the same as for the non-reentrant scanner.
10498      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10499      */
10500
10501     /* We do not touch surf_parse_lineno unless the option is enabled. */
10502     surf_parse_lineno =  1;
10503     
10504     (yy_buffer_stack) = 0;
10505     (yy_buffer_stack_top) = 0;
10506     (yy_buffer_stack_max) = 0;
10507     (yy_c_buf_p) = (char *) 0;
10508     (yy_init) = 0;
10509     (yy_start) = 0;
10510
10511     (yy_start_stack_ptr) = 0;
10512     (yy_start_stack_depth) = 0;
10513     (yy_start_stack) =  NULL;
10514
10515 /* Defined in main.c */
10516 #ifdef YY_STDINIT
10517     surf_parse_in = stdin;
10518     surf_parse_out = stdout;
10519 #else
10520     surf_parse_in = (FILE *) 0;
10521     surf_parse_out = (FILE *) 0;
10522 #endif
10523
10524     /* For future reference: Set errno on error, since we are called by
10525      * surf_parse_lex_init()
10526      */
10527     return 0;
10528 }
10529
10530 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10531 int surf_parse_lex_destroy  (void)
10532 {
10533     
10534     /* Pop the buffer stack, destroying each element. */
10535         while(YY_CURRENT_BUFFER){
10536                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10537                 YY_CURRENT_BUFFER_LVALUE = NULL;
10538                 surf_parse_pop_buffer_state();
10539         }
10540
10541         /* Destroy the stack itself. */
10542         surf_parse_free((yy_buffer_stack) );
10543         (yy_buffer_stack) = NULL;
10544
10545     /* Destroy the start condition stack. */
10546         surf_parse_free((yy_start_stack)  );
10547         (yy_start_stack) = NULL;
10548
10549     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10550      * surf_parse_lex() is called, initialization will occur. */
10551     yy_init_globals( );
10552
10553     return 0;
10554 }
10555
10556 /*
10557  * Internal utility routines.
10558  */
10559
10560 #ifndef yytext_ptr
10561 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10562 {
10563         int i;
10564         for ( i = 0; i < n; ++i )
10565                 s1[i] = s2[i];
10566 }
10567 #endif
10568
10569 #ifdef YY_NEED_STRLEN
10570 static int yy_flex_strlen (yyconst char * s )
10571 {
10572         int n;
10573         for ( n = 0; s[n]; ++n )
10574                 ;
10575
10576         return n;
10577 }
10578 #endif
10579
10580 void *surf_parse_alloc (yy_size_t  size )
10581 {
10582         return (void *) malloc( size );
10583 }
10584
10585 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10586 {
10587         /* The cast to (char *) in the following accommodates both
10588          * implementations that use char* generic pointers, and those
10589          * that use void* generic pointers.  It works with the latter
10590          * because both ANSI C and C++ allow castless assignment from
10591          * any pointer type to void*, and deal with argument conversions
10592          * as though doing an assignment.
10593          */
10594         return (void *) realloc( (char *) ptr, size );
10595 }
10596
10597 void surf_parse_free (void * ptr )
10598 {
10599         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10600 }
10601
10602 #define YYTABLES_NAME "yytables"
10603
10604 /* Element context stack lookup. */
10605 int surfxml_element_context(int i)
10606 {
10607   return (0<i && i<yy_start_stack_depth
10608           ? yy_start_stack[yy_start_stack_ptr - i]
10609           : 0);
10610 }
10611
10612 #ifdef FLEX_DEBUG
10613 void print_yy_stack(char* fmt, ...)
10614 {
10615   int i = 0; va_list ap; va_start(ap, fmt);
10616   vfprintf(stderr, fmt, ap);
10617   if (surfxml_statenames) {
10618       for (i=1; i<yy_start_stack_ptr; i++) {
10619           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10620       }
10621       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10622   }
10623   va_end(ap);
10624 }
10625
10626 void print_surfxml_bufferstack()
10627 {
10628     int i;
10629     fputs("Buffer: ", stderr);
10630     for (i = 0; i < blimit; i++) {
10631        if ( surfxml_bufferstack[i] == '\377' ) break;
10632          putc(surfxml_bufferstack[i], stderr);
10633     }
10634     putc('\n', stderr);
10635 }
10636
10637 static void debug_enter(int state, const char* statename) {
10638   yy_push_state(state);
10639   if (surf_parse__flex_debug) {
10640        print_yy_stack("--ENTER(%s) : ",statename);
10641        print_surfxml_bufferstack();
10642   }
10643 }
10644
10645 static void debug_leave(void) {
10646     if (surf_parse__flex_debug) {
10647         print_yy_stack("--LEAVE : ");
10648         print_surfxml_bufferstack();
10649     }
10650   yy_pop_state();
10651 }
10652
10653 static void debug_set(int state, const char* statename) {
10654   BEGIN(state);
10655   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10656 }
10657 #endif
10658
10659 static void cleanup(void)
10660 {
10661     if (surfxml_statenames) {
10662         free(surfxml_statenames);
10663         surfxml_statenames = NULL;
10664     }
10665     free(surfxml_bufferstack);
10666     surfxml_bufferstack = NULL;
10667
10668     free(indexstack);
10669     indexstack = NULL;
10670 }
10671
10672 static int fail(const char* fmt, ...)
10673 {
10674     int chars_left, used;
10675     va_list ap; va_start(ap, fmt);
10676 #ifdef FLEXML_yylineno
10677     used = sprintf(flexml_err_msg,
10678                    "Invalid XML (XML input line %d, state %d): ",
10679                    surf_parse_lineno, YY_START);
10680 #else
10681     used = sprintf(flexml_err_msg,
10682                    "Invalid XML (state %d): ",
10683                    YY_START);
10684 #endif
10685     chars_left = flexml_max_err_msg_size - used - 1;
10686     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10687     va_end(ap);
10688
10689 #ifndef FLEXML_quiet_parser
10690     /* print directly to sdterr */
10691     fprintf(stderr, "%s\n", flexml_err_msg);
10692     flexml_err_msg[0] = '\0';
10693 #endif
10694
10695     cleanup();
10696
10697     return 1;
10698 }
10699