Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix the DTD to not allow to mix internal node content with leaf content in a given...
[simgrid.git] / src / surf / xml / simgrid_dtd.c
1
2 #define  YY_INT_ALIGNED short int
3
4 /* A lexical scanner generated by flex */
5
6 #define yy_create_buffer surf_parse__create_buffer
7 #define yy_delete_buffer surf_parse__delete_buffer
8 #define yy_scan_buffer surf_parse__scan_buffer
9 #define yy_scan_string surf_parse__scan_string
10 #define yy_scan_bytes surf_parse__scan_bytes
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 yypush_buffer_state surf_parse_push_buffer_state
16 #define yypop_buffer_state surf_parse_pop_buffer_state
17 #define yyensure_buffer_stack surf_parse_ensure_buffer_stack
18 #define yy_flex_debug surf_parse__flex_debug
19 #define yyin surf_parse_in
20 #define yyleng surf_parse_leng
21 #define yylex surf_parse_lex
22 #define yylineno surf_parse_lineno
23 #define yyout surf_parse_out
24 #define yyrestart surf_parse_restart
25 #define yytext surf_parse_text
26 #define yywrap surf_parse_wrap
27 #define yyalloc surf_parse_alloc
28 #define yyrealloc surf_parse_realloc
29 #define yyfree surf_parse_free
30
31 #define FLEX_SCANNER
32 #define YY_FLEX_MAJOR_VERSION 2
33 #define YY_FLEX_MINOR_VERSION 6
34 #define YY_FLEX_SUBMINOR_VERSION 4
35 #if YY_FLEX_SUBMINOR_VERSION > 0
36 #define FLEX_BETA
37 #endif
38
39 #ifdef yy_create_buffer
40 #define surf_parse__create_buffer_ALREADY_DEFINED
41 #else
42 #define yy_create_buffer surf_parse__create_buffer
43 #endif
44
45 #ifdef yy_delete_buffer
46 #define surf_parse__delete_buffer_ALREADY_DEFINED
47 #else
48 #define yy_delete_buffer surf_parse__delete_buffer
49 #endif
50
51 #ifdef yy_scan_buffer
52 #define surf_parse__scan_buffer_ALREADY_DEFINED
53 #else
54 #define yy_scan_buffer surf_parse__scan_buffer
55 #endif
56
57 #ifdef yy_scan_string
58 #define surf_parse__scan_string_ALREADY_DEFINED
59 #else
60 #define yy_scan_string surf_parse__scan_string
61 #endif
62
63 #ifdef yy_scan_bytes
64 #define surf_parse__scan_bytes_ALREADY_DEFINED
65 #else
66 #define yy_scan_bytes surf_parse__scan_bytes
67 #endif
68
69 #ifdef yy_init_buffer
70 #define surf_parse__init_buffer_ALREADY_DEFINED
71 #else
72 #define yy_init_buffer surf_parse__init_buffer
73 #endif
74
75 #ifdef yy_flush_buffer
76 #define surf_parse__flush_buffer_ALREADY_DEFINED
77 #else
78 #define yy_flush_buffer surf_parse__flush_buffer
79 #endif
80
81 #ifdef yy_load_buffer_state
82 #define surf_parse__load_buffer_state_ALREADY_DEFINED
83 #else
84 #define yy_load_buffer_state surf_parse__load_buffer_state
85 #endif
86
87 #ifdef yy_switch_to_buffer
88 #define surf_parse__switch_to_buffer_ALREADY_DEFINED
89 #else
90 #define yy_switch_to_buffer surf_parse__switch_to_buffer
91 #endif
92
93 #ifdef yypush_buffer_state
94 #define surf_parse_push_buffer_state_ALREADY_DEFINED
95 #else
96 #define yypush_buffer_state surf_parse_push_buffer_state
97 #endif
98
99 #ifdef yypop_buffer_state
100 #define surf_parse_pop_buffer_state_ALREADY_DEFINED
101 #else
102 #define yypop_buffer_state surf_parse_pop_buffer_state
103 #endif
104
105 #ifdef yyensure_buffer_stack
106 #define surf_parse_ensure_buffer_stack_ALREADY_DEFINED
107 #else
108 #define yyensure_buffer_stack surf_parse_ensure_buffer_stack
109 #endif
110
111 #ifdef yylex
112 #define surf_parse_lex_ALREADY_DEFINED
113 #else
114 #define yylex surf_parse_lex
115 #endif
116
117 #ifdef yyrestart
118 #define surf_parse_restart_ALREADY_DEFINED
119 #else
120 #define yyrestart surf_parse_restart
121 #endif
122
123 #ifdef yylex_init
124 #define surf_parse_lex_init_ALREADY_DEFINED
125 #else
126 #define yylex_init surf_parse_lex_init
127 #endif
128
129 #ifdef yylex_init_extra
130 #define surf_parse_lex_init_extra_ALREADY_DEFINED
131 #else
132 #define yylex_init_extra surf_parse_lex_init_extra
133 #endif
134
135 #ifdef yylex_destroy
136 #define surf_parse_lex_destroy_ALREADY_DEFINED
137 #else
138 #define yylex_destroy surf_parse_lex_destroy
139 #endif
140
141 #ifdef yyget_debug
142 #define surf_parse_get_debug_ALREADY_DEFINED
143 #else
144 #define yyget_debug surf_parse_get_debug
145 #endif
146
147 #ifdef yyset_debug
148 #define surf_parse_set_debug_ALREADY_DEFINED
149 #else
150 #define yyset_debug surf_parse_set_debug
151 #endif
152
153 #ifdef yyget_extra
154 #define surf_parse_get_extra_ALREADY_DEFINED
155 #else
156 #define yyget_extra surf_parse_get_extra
157 #endif
158
159 #ifdef yyset_extra
160 #define surf_parse_set_extra_ALREADY_DEFINED
161 #else
162 #define yyset_extra surf_parse_set_extra
163 #endif
164
165 #ifdef yyget_in
166 #define surf_parse_get_in_ALREADY_DEFINED
167 #else
168 #define yyget_in surf_parse_get_in
169 #endif
170
171 #ifdef yyset_in
172 #define surf_parse_set_in_ALREADY_DEFINED
173 #else
174 #define yyset_in surf_parse_set_in
175 #endif
176
177 #ifdef yyget_out
178 #define surf_parse_get_out_ALREADY_DEFINED
179 #else
180 #define yyget_out surf_parse_get_out
181 #endif
182
183 #ifdef yyset_out
184 #define surf_parse_set_out_ALREADY_DEFINED
185 #else
186 #define yyset_out surf_parse_set_out
187 #endif
188
189 #ifdef yyget_leng
190 #define surf_parse_get_leng_ALREADY_DEFINED
191 #else
192 #define yyget_leng surf_parse_get_leng
193 #endif
194
195 #ifdef yyget_text
196 #define surf_parse_get_text_ALREADY_DEFINED
197 #else
198 #define yyget_text surf_parse_get_text
199 #endif
200
201 #ifdef yyget_lineno
202 #define surf_parse_get_lineno_ALREADY_DEFINED
203 #else
204 #define yyget_lineno surf_parse_get_lineno
205 #endif
206
207 #ifdef yyset_lineno
208 #define surf_parse_set_lineno_ALREADY_DEFINED
209 #else
210 #define yyset_lineno surf_parse_set_lineno
211 #endif
212
213 #ifdef yywrap
214 #define surf_parse_wrap_ALREADY_DEFINED
215 #else
216 #define yywrap surf_parse_wrap
217 #endif
218
219 #ifdef yyalloc
220 #define surf_parse_alloc_ALREADY_DEFINED
221 #else
222 #define yyalloc surf_parse_alloc
223 #endif
224
225 #ifdef yyrealloc
226 #define surf_parse_realloc_ALREADY_DEFINED
227 #else
228 #define yyrealloc surf_parse_realloc
229 #endif
230
231 #ifdef yyfree
232 #define surf_parse_free_ALREADY_DEFINED
233 #else
234 #define yyfree surf_parse_free
235 #endif
236
237 #ifdef yytext
238 #define surf_parse_text_ALREADY_DEFINED
239 #else
240 #define yytext surf_parse_text
241 #endif
242
243 #ifdef yyleng
244 #define surf_parse_leng_ALREADY_DEFINED
245 #else
246 #define yyleng surf_parse_leng
247 #endif
248
249 #ifdef yyin
250 #define surf_parse_in_ALREADY_DEFINED
251 #else
252 #define yyin surf_parse_in
253 #endif
254
255 #ifdef yyout
256 #define surf_parse_out_ALREADY_DEFINED
257 #else
258 #define yyout surf_parse_out
259 #endif
260
261 #ifdef yy_flex_debug
262 #define surf_parse__flex_debug_ALREADY_DEFINED
263 #else
264 #define yy_flex_debug surf_parse__flex_debug
265 #endif
266
267 #ifdef yylineno
268 #define surf_parse_lineno_ALREADY_DEFINED
269 #else
270 #define yylineno surf_parse_lineno
271 #endif
272
273 /* First, we deal with  platform-specific or compiler-specific issues. */
274
275 /* begin standard C headers. */
276 #include <stdio.h>
277 #include <string.h>
278 #include <errno.h>
279 #include <stdlib.h>
280
281 /* end standard C headers. */
282
283 /* flex integer type definitions */
284
285 #ifndef FLEXINT_H
286 #define FLEXINT_H
287
288 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
289
290 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
291
292 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
293  * if you want the limit (max/min) macros for int types. 
294  */
295 #ifndef __STDC_LIMIT_MACROS
296 #define __STDC_LIMIT_MACROS 1
297 #endif
298
299 #include <inttypes.h>
300 typedef int8_t flex_int8_t;
301 typedef uint8_t flex_uint8_t;
302 typedef int16_t flex_int16_t;
303 typedef uint16_t flex_uint16_t;
304 typedef int32_t flex_int32_t;
305 typedef uint32_t flex_uint32_t;
306 #else
307 typedef signed char flex_int8_t;
308 typedef short int flex_int16_t;
309 typedef int flex_int32_t;
310 typedef unsigned char flex_uint8_t; 
311 typedef unsigned short int flex_uint16_t;
312 typedef unsigned int flex_uint32_t;
313
314 /* Limits of integral types. */
315 #ifndef INT8_MIN
316 #define INT8_MIN               (-128)
317 #endif
318 #ifndef INT16_MIN
319 #define INT16_MIN              (-32767-1)
320 #endif
321 #ifndef INT32_MIN
322 #define INT32_MIN              (-2147483647-1)
323 #endif
324 #ifndef INT8_MAX
325 #define INT8_MAX               (127)
326 #endif
327 #ifndef INT16_MAX
328 #define INT16_MAX              (32767)
329 #endif
330 #ifndef INT32_MAX
331 #define INT32_MAX              (2147483647)
332 #endif
333 #ifndef UINT8_MAX
334 #define UINT8_MAX              (255U)
335 #endif
336 #ifndef UINT16_MAX
337 #define UINT16_MAX             (65535U)
338 #endif
339 #ifndef UINT32_MAX
340 #define UINT32_MAX             (4294967295U)
341 #endif
342
343 #ifndef SIZE_MAX
344 #define SIZE_MAX               (~(size_t)0)
345 #endif
346
347 #endif /* ! C99 */
348
349 #endif /* ! FLEXINT_H */
350
351 /* begin standard C++ headers. */
352
353 /* TODO: this is always defined, so inline it */
354 #define yyconst const
355
356 #if defined(__GNUC__) && __GNUC__ >= 3
357 #define yynoreturn __attribute__((__noreturn__))
358 #else
359 #define yynoreturn
360 #endif
361
362 /* Returned upon end-of-file. */
363 #define YY_NULL 0
364
365 /* Promotes a possibly negative, possibly signed char to an
366  *   integer in range [0..255] for use as an array index.
367  */
368 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
369
370 /* Enter a start condition.  This macro really ought to take a parameter,
371  * but we do it the disgusting crufty way forced on us by the ()-less
372  * definition of BEGIN.
373  */
374 #define BEGIN (yy_start) = 1 + 2 *
375 /* Translate the current start state into a value that can be later handed
376  * to BEGIN to return to the state.  The YYSTATE alias is for lex
377  * compatibility.
378  */
379 #define YY_START (((yy_start) - 1) / 2)
380 #define YYSTATE YY_START
381 /* Action number for EOF rule of a given start state. */
382 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
383 /* Special action meaning "start processing a new file". */
384 #define YY_NEW_FILE yyrestart( yyin  )
385 #define YY_END_OF_BUFFER_CHAR 0
386
387 /* Size of default input buffer. */
388 #ifndef YY_BUF_SIZE
389 #ifdef __ia64__
390 /* On IA-64, the buffer size is 16k, not 8k.
391  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
392  * Ditto for the __ia64__ case accordingly.
393  */
394 #define YY_BUF_SIZE 32768
395 #else
396 #define YY_BUF_SIZE 16384
397 #endif /* __ia64__ */
398 #endif
399
400 /* The state buf must be large enough to hold one state per character in the main buffer.
401  */
402 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
403
404 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
405 #define YY_TYPEDEF_YY_BUFFER_STATE
406 typedef struct yy_buffer_state *YY_BUFFER_STATE;
407 #endif
408
409 #ifndef YY_TYPEDEF_YY_SIZE_T
410 #define YY_TYPEDEF_YY_SIZE_T
411 typedef size_t yy_size_t;
412 #endif
413
414 extern int yyleng;
415
416 extern FILE *yyin, *yyout;
417
418 #define EOB_ACT_CONTINUE_SCAN 0
419 #define EOB_ACT_END_OF_FILE 1
420 #define EOB_ACT_LAST_MATCH 2
421     
422     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
423      *       access to the local variable yy_act. Since yyless() is a macro, it would break
424      *       existing scanners that call yyless() from OUTSIDE yylex.
425      *       One obvious solution it to make yy_act a global. I tried that, and saw
426      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
427      *       normally declared as a variable-- so it is not worth it.
428      */
429     #define  YY_LESS_LINENO(n) \
430             do { \
431                 int yyl;\
432                 for ( yyl = n; yyl < yyleng; ++yyl )\
433                     if ( yytext[yyl] == '\n' )\
434                         --yylineno;\
435             }while(0)
436     #define YY_LINENO_REWIND_TO(dst) \
437             do {\
438                 const char *p;\
439                 for ( p = yy_cp-1; p >= (dst); --p)\
440                     if ( *p == '\n' )\
441                         --yylineno;\
442             }while(0)
443     
444 /* Return all but the first "n" matched characters back to the input stream. */
445 #define yyless(n) \
446         do \
447                 { \
448                 /* Undo effects of setting up yytext. */ \
449         int yyless_macro_arg = (n); \
450         YY_LESS_LINENO(yyless_macro_arg);\
451                 *yy_cp = (yy_hold_char); \
452                 YY_RESTORE_YY_MORE_OFFSET \
453                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
454                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
455                 } \
456         while ( 0 )
457 #define unput(c) yyunput( c, (yytext_ptr)  )
458
459 #ifndef YY_STRUCT_YY_BUFFER_STATE
460 #define YY_STRUCT_YY_BUFFER_STATE
461 struct yy_buffer_state
462         {
463         FILE *yy_input_file;
464
465         char *yy_ch_buf;                /* input buffer */
466         char *yy_buf_pos;               /* current position in input buffer */
467
468         /* Size of input buffer in bytes, not including room for EOB
469          * characters.
470          */
471         int yy_buf_size;
472
473         /* Number of characters read into yy_ch_buf, not including EOB
474          * characters.
475          */
476         int yy_n_chars;
477
478         /* Whether we "own" the buffer - i.e., we know we created it,
479          * and can realloc() it to grow it, and should free() it to
480          * delete it.
481          */
482         int yy_is_our_buffer;
483
484         /* Whether this is an "interactive" input source; if so, and
485          * if we're using stdio for input, then we want to use getc()
486          * instead of fread(), to make sure we stop fetching input after
487          * each newline.
488          */
489         int yy_is_interactive;
490
491         /* Whether we're considered to be at the beginning of a line.
492          * If so, '^' rules will be active on the next match, otherwise
493          * not.
494          */
495         int yy_at_bol;
496
497     int yy_bs_lineno; /**< The line count. */
498     int yy_bs_column; /**< The column count. */
499
500         /* Whether to try to fill the input buffer when we reach the
501          * end of it.
502          */
503         int yy_fill_buffer;
504
505         int yy_buffer_status;
506
507 #define YY_BUFFER_NEW 0
508 #define YY_BUFFER_NORMAL 1
509         /* When an EOF's been seen but there's still some text to process
510          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
511          * shouldn't try reading from the input source any more.  We might
512          * still have a bunch of tokens to match, though, because of
513          * possible backing-up.
514          *
515          * When we actually see the EOF, we change the status to "new"
516          * (via yyrestart()), so that the user can continue scanning by
517          * just pointing yyin at a new input file.
518          */
519 #define YY_BUFFER_EOF_PENDING 2
520
521         };
522 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
523
524 /* Stack of input buffers. */
525 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
526 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
527 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
528
529 /* We provide macros for accessing buffer states in case in the
530  * future we want to put the buffer states in a more general
531  * "scanner state".
532  *
533  * Returns the top of the stack, or NULL.
534  */
535 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
536                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
537                           : NULL)
538 /* Same as previous macro, but useful when we know that the buffer stack is not
539  * NULL or when we need an lvalue. For internal use only.
540  */
541 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
542
543 /* yy_hold_char holds the character lost when yytext is formed. */
544 static char yy_hold_char;
545 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
546 int yyleng;
547
548 /* Points to current character in buffer. */
549 static char *yy_c_buf_p = NULL;
550 static int yy_init = 0;         /* whether we need to initialize */
551 static int yy_start = 0;        /* start state number */
552
553 /* Flag which is used to allow yywrap()'s to do buffer switches
554  * instead of setting up a fresh yyin.  A bit of a hack ...
555  */
556 static int yy_did_buffer_switch_on_eof;
557
558 void yyrestart ( FILE *input_file  );
559 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
560 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
561 void yy_delete_buffer ( YY_BUFFER_STATE b  );
562 void yy_flush_buffer ( YY_BUFFER_STATE b  );
563 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
564 void yypop_buffer_state ( void );
565
566 static void yyensure_buffer_stack ( void );
567 static void yy_load_buffer_state ( void );
568 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
569 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
570
571 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
572 YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
573 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
574
575 void *yyalloc ( yy_size_t  );
576 void *yyrealloc ( void *, yy_size_t  );
577 void yyfree ( void *  );
578
579 #define yy_new_buffer yy_create_buffer
580 #define yy_set_interactive(is_interactive) \
581         { \
582         if ( ! YY_CURRENT_BUFFER ){ \
583         yyensure_buffer_stack (); \
584                 YY_CURRENT_BUFFER_LVALUE =    \
585             yy_create_buffer( yyin, YY_BUF_SIZE ); \
586         } \
587         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
588         }
589 #define yy_set_bol(at_bol) \
590         { \
591         if ( ! YY_CURRENT_BUFFER ){\
592         yyensure_buffer_stack (); \
593                 YY_CURRENT_BUFFER_LVALUE =    \
594             yy_create_buffer( yyin, YY_BUF_SIZE ); \
595         } \
596         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
597         }
598 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
599
600 /* Begin user sect3 */
601
602 #define surf_parse_wrap() (/*CONSTCOND*/1)
603 #define YY_SKIP_YYWRAP
604 typedef flex_uint8_t YY_CHAR;
605
606 FILE *yyin = NULL, *yyout = NULL;
607
608 typedef int yy_state_type;
609
610 extern int yylineno;
611 int yylineno = 1;
612
613 extern char *yytext;
614 #ifdef yytext_ptr
615 #undef yytext_ptr
616 #endif
617 #define yytext_ptr yytext
618
619 static yy_state_type yy_get_previous_state ( void );
620 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
621 static int yy_get_next_buffer ( void );
622 static void yynoreturn yy_fatal_error ( const char* msg  );
623
624 /* Done after the current pattern has been matched and before the
625  * corresponding action - sets up yytext.
626  */
627 #define YY_DO_BEFORE_ACTION \
628         (yytext_ptr) = yy_bp; \
629         yyleng = (int) (yy_cp - yy_bp); \
630         (yy_hold_char) = *yy_cp; \
631         *yy_cp = '\0'; \
632         (yy_c_buf_p) = yy_cp;
633 #define YY_NUM_RULES 663
634 #define YY_END_OF_BUFFER 664
635 /* This struct is not used in this scanner,
636    but its presence is necessary. */
637 struct yy_trans_info
638         {
639         flex_int32_t yy_verify;
640         flex_int32_t yy_nxt;
641         };
642 static const flex_int16_t yy_accept[4018] =
643     {   0,
644         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
645         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
646         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
647         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
648         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
650         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
651         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
652         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
653         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
654
655         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
656         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
658         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
659         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
660         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
661         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
662         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
663         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
664         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
665
666         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
667         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
668         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
669         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
670         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
671         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
672         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
675         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
676
677         0,    0,    0,    0,    0,    0,  664,  662,   15,   10,
678        10,   15,   15,  642,   10,  642,    5,    6,    5,    8,
679         9,    8,  658,  650,  651,  659,  656,  659,  657,  661,
680       650,  651,  661,   42,   10,   42,   42,   42,   40,   42,
681        42,   46,   10,   46,   46,  662,   46,  662,  662,   46,
682        67,   10,   67,   67,   67,   65,   67,   67,   67,   71,
683        10,   71,  662,   71,   88,   10,   88,   88,   88,   86,
684        88,   88,   88,   88,   88,   92,   10,   92,  662,   92,
685        99,   10,   99,   99,   99,   97,   99,  103,   10,  103,
686       114,   10,  114,  114,  114,  112,  114,  114,  114,  118,
687
688        10,  118,  131,   10,  131,  131,  131,  129,  131,  131,
689       131,  135,   10,  135,  135,  144,   10,  144,  144,  144,
690       142,  144,  144,  148,   10,  148,  148,  161,   10,  161,
691       161,  161,  159,  161,  161,  161,  165,   10,  165,  165,
692       184,   10,  184,  184,  184,  182,  184,  184,  184,  184,
693       184,  184,  188,   10,  188,  243,   10,  243,  243,  243,
694       241,  243,  243,  243,  243,  243,  243,  243,  243,  247,
695        10,  247,  247,  254,   10,  254,  254,  254,  252,  254,
696       258,   10,  258,  258,  277,   10,  277,  277,  277,  275,
697       277,  277,  277,  277,  277,  281,   10,  281,  662,  281,
698
699       292,   10,  292,  292,  292,  290,  292,  292,  292,  296,
700        10,  296,  303,   10,  303,  303,  303,  301,  303,  307,
701        10,  307,  662,  307,  332,   10,  332,  332,  332,  330,
702       332,  332,  332,  332,  336,   10,  336,  336,  349,   10,
703       349,  349,  349,  347,  349,  349,  353,   10,  353,  362,
704        10,  362,  362,  362,  360,  362,  362,  366,   10,  366,
705       375,   10,  375,  375,  375,  373,  375,  375,  379,   10,
706       379,  400,   10,  400,  400,  400,  398,  400,  400,  400,
707       400,  400,  400,  404,   10,  404,  662,  411,   10,  411,
708       411,  411,  409,  411,  415,   10,  415,  415,  662,  415,
709
710       662,  415,  432,   10,  432,  432,  432,  430,  432,  432,
711       432,  432,  432,  436,   10,  436,  436,  445,   10,  445,
712       445,  445,  443,  445,  445,  449,   10,  449,  476,   10,
713       476,  476,  476,  474,  476,  476,  476,  476,  476,  480,
714        10,  480,  497,   10,  497,  497,  497,  495,  497,  497,
715       501,   10,  501,  501,  510,   10,  510,  510,  510,  508,
716       510,  510,  514,   10,  514,  527,   10,  527,  527,  527,
717       525,  527,  527,  527,  527,  531,   10,  531,  531,  544,
718        10,  544,  544,  544,  542,  544,  544,  544,  544,  548,
719        10,  548,  662,  548,  559,   10,  559,  559,  559,  557,
720
721       559,  559,  559,  659,  658,  581,   10,  581,  581,  581,
722       579,  581,  581,  581,  585,   10,  585,  612,   10,  612,
723       612,  612,  610,  612,  612,  616,   10,  616,  616,  616,
724       662,  616,  616,  662,  662,  616,  662,  616,  662,  616,
725       637,   10,  637,  637,  637,  635,  637,  637,  637,  641,
726        10,  641,  641,   10,    0,    2,    2,    0,    4,    7,
727       653,  652,    0,    0,    0,    0,    0,    0,   41,   43,
728        43,   43,    0,    0,    0,    0,    0,    0,    0,    0,
729         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731
732         0,    0,    0,    0,    0,   66,   68,   68,   68,   68,
733        68,    0,    0,   87,   89,   89,   89,   89,   89,   89,
734         0,    0,   98,  100,  100,    0,  113,  115,  115,  115,
735       115,    0,  130,  132,  132,  132,  132,    0,  143,  145,
736       145,  145,    0,  160,  162,  162,  162,  162,    0,  183,
737       185,  185,  185,  185,  185,  185,  185,  185,    0,  242,
738       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
739       244,  244,  244,  244,  244,    0,  253,  255,  255,    0,
740       276,  278,  278,  278,  278,  278,  278,  278,    0,    0,
741       291,  293,  293,  293,  293,    0,  302,  304,  304,    0,
742
743         0,    0,  331,  333,  333,  333,  333,  333,  333,    0,
744       348,  350,  350,  350,    0,  361,  363,  363,  363,    0,
745       374,  376,  376,  376,    0,  399,  401,  401,  401,  401,
746       401,  401,  401,  401,    0,    0,  410,  412,  412,    0,
747         0,    0,    0,    0,    0,    0,  431,  433,  433,  433,
748       433,  433,  433,    0,  444,  446,  446,  446,    0,  475,
749       477,  477,  477,  477,  477,  477,  477,  477,  477,    0,
750       496,  498,  498,  498,  498,    0,  509,  511,  511,  511,
751         0,  526,  528,  528,  528,  528,  528,    0,  543,  545,
752       545,  545,  545,  545,    0,    0,  558,  560,  560,  560,
753
754       560,    0,    0,    0,  580,  582,  582,  582,  582,    0,
755       611,  613,  613,  613,    0,    0,    0,    0,    0,    0,
756         0,  636,  638,  638,  638,  638,  638,    0,    0,    0,
757         0,    0,    3,    0,    0,    0,    0,    0,    0,    0,
758       660,    0,    0,   43,    0,    0,   17,    0,    0,    0,
759         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
760         0,    0,    0,    0,    0,    0,    0,   16,    0,    0,
761         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762        16,    0,    0,    0,   68,   68,   68,   68,    0,    0,
763         0,   89,   89,   89,   89,   89,    0,    0,    0,  100,
764
765         0,    0,  115,    0,    0,  115,    0,    0,  132,  132,
766       132,    0,    0,  145,  145,    0,    0,  162,  162,  162,
767         0,    0,    0,    0,    0,    0,  185,  185,  185,  185,
768       185,    0,    0,  244,    0,    0,  244,    0,    0,  244,
769       244,  244,  244,  244,  244,  244,  244,  244,  244,    0,
770         0,    0,    0,    0,    0,  278,  278,  278,    0,    0,
771       278,  278,  278,    0,    0,    0,  293,    0,    0,    0,
772         0,    0,    0,  304,    0,    0,   17,    0,  333,    0,
773         0,  333,  333,  333,    0,    0,  350,    0,    0,    0,
774         0,    0,    0,  363,    0,    0,  376,  376,    0,    0,
775
776       401,  401,  401,    0,    0,  401,  401,  401,    0,    0,
777         0,  412,    0,    0,    0,    0,    0,    0,  433,  433,
778       433,  433,  433,    0,    0,    0,    0,  446,    0,    0,
779       477,    0,    0,  477,  477,  477,  477,  477,  477,    0,
780         0,  498,  498,  498,    0,    0,  511,    0,    0,    0,
781         0,  528,  528,    0,    0,  528,    0,    0,  545,    0,
782         0,  545,  545,    0,    0,    0,  560,    0,    0,  560,
783         0,    0,    0,  655,  582,  582,  582,    0,    0,    0,
784         0,  613,    0,    0,    0,    0,    0,  638,  638,  638,
785       638,    0,    0,    0,   14,    1,    0,    0,  648,    0,
786
787         0,    0,  645,  644,    0,    0,   19,   18,   43,    0,
788         0,   45,    0,   17,    0,    0,    0,    0,    0,    0,
789         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
790         0,    0,    0,    0,    0,    0,   16,    0,    0,    0,
791         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
792         0,    0,    0,    0,    0,   68,   68,    0,    0,   68,
793         0,    0,   70,    0,    0,   89,   89,   89,   89,   89,
794         0,    0,   91,    0,    0,  100,    0,    0,  102,    0,
795       115,    0,  109,  108,  115,    0,    0,  117,    0,    0,
796         0,  132,  132,    0,    0,    0,    0,  134,    0,    0,
797
798         0,    0,    0,    0,    0,  147,    0,    0,    0,  162,
799       162,    0,    0,    0,    0,  164,    0,    0,  169,  168,
800         0,  171,  170,    0,    0,  185,  185,  185,  185,    0,
801         0,  187,    0,  244,  244,  244,    0,  200,  199,  244,
802         0,  204,  203,    0,    0,  244,  244,  244,  244,  244,
803       244,  244,  244,  244,    0,    0,  246,    0,    0,  251,
804       250,    0,    0,  257,    0,  278,  278,  278,    0,  268,
805       267,  278,  278,  278,    0,    0,  280,    0,    0,  293,
806         0,  287,  286,    0,  289,  288,    0,    0,  295,    0,
807       304,    0,    0,  306,    0,    0,  333,    0,  315,  314,
808
809       333,  333,  333,    0,    0,  335,    0,  350,    0,  346,
810       345,    0,    0,  352,    0,    0,  357,  356,  363,    0,
811         0,  365,    0,  376,  376,    0,    0,  378,    0,  401,
812       401,  401,  401,    0,  391,  390,    0,    0,  401,  401,
813         0,    0,  403,    0,    0,  412,    0,    0,  414,    0,
814         0,    0,    0,    0,  433,  433,  433,  433,  433,    0,
815         0,  435,    0,    0,  440,  439,  446,    0,    0,  448,
816         0,  477,    0,  461,  460,    0,    0,  477,    0,    0,
817       477,  477,  477,    0,    0,  479,    0,    0,    0,    0,
818         0,  498,    0,    0,  500,    0,  511,    0,  507,  506,
819
820         0,    0,  513,    0,  528,  528,    0,  522,  521,  528,
821         0,    0,  530,    0,  545,    0,  537,  536,  545,  545,
822         0,    0,  547,    0,    0,  560,    0,  554,  553,  560,
823         0,    0,    0,  562,    0,  582,  582,  582,    0,    0,
824       584,    0,    0,  589,  588,  613,    0,    0,  615,    0,
825         0,    0,    0,    0,    0,  638,  638,    0,    0,  638,
826         0,    0,  640,    0,    0,    0,  649,  643,    0,    0,
827        43,    0,   44,    0,    0,    0,    0,    0,    0,    0,
828         0,  260,    0,  309,    0,    0,  381,    0,    0,  438,
829         0,    0,    0,    0,  587,  437,    0,    0,    0,    0,
830
831         0,  259,    0,  308,  380,    0,    0,    0,  586,    0,
832       586,    0,    0,   50,   49,   68,   68,    0,   56,   55,
833        68,    0,  308,   89,    0,    0,   89,   89,   89,    0,
834         0,  100,    0,  115,  115,    0,    0,  122,  121,  132,
835       132,    0,  128,  127,    0,    0,  139,  138,    0,  141,
836       140,    0,    0,  152,  151,  162,  162,    0,  158,  157,
837         0,    0,  173,  172,  185,  185,  185,  185,    0,  244,
838       244,  244,    0,    0,    0,  206,  205,  244,  244,  244,
839       244,  244,  244,  244,  244,  244,  244,    0,    0,  278,
840       278,    0,    0,  278,  278,  278,    0,    0,    0,    0,
841
842         0,    0,    0,    0,  587,  333,  333,  333,  333,    0,
843       350,    0,  363,    0,    0,    0,  376,    0,  401,  401,
844       401,  401,    0,  393,  392,  401,  401,    0,    0,  412,
845         0,    0,    0,    0,    0,  433,    0,    0,  433,  433,
846       433,    0,  446,    0,  477,    0,  463,  462,    0,    0,
847         0,  467,  466,  477,    0,    0,  477,    0,    0,  484,
848       483,    0,  486,  485,  498,    0,  511,    0,  528,  528,
849       528,    0,  545,  545,    0,    0,    0,    0,    0,    0,
850       560,    0,    0,  582,    0,    0,  582,    0,  613,    0,
851         0,    0,    0,    0,  620,  619,  638,  638,    0,  626,
852
853       625,  638,    0,    0,    0,    0,   12,    0,  646,  647,
854        43,    0,   72,    0,    0,    0,    0,    0,    0,  260,
855         0,    0,  309,    0,    0,  367,  381,    0,    0,  438,
856         0,  482,    0,  550,  587,    0,  437,    0,    0,    0,
857         0,    0,  259,    0,    0,  308,  380,  481,    0,  549,
858       586,    0,  482,  481,   68,   68,   68,    0,    0,   89,
859         0,   77,   76,   89,   89,   89,    0,    0,    0,    0,
860         0,  115,  115,    0,  132,  132,    0,    0,  162,  162,
861         0,  185,  185,    0,    0,  185,    0,    0,    0,  244,
862       244,    0,  202,  201,  244,  244,  244,  244,  244,  244,
863
864         0,    0,  244,  244,  244,    0,    0,  278,  278,    0,
865       266,  265,  278,    0,    0,  278,    0,  368,    0,  285,
866       284,    0,    0,  300,  299,    0,  333,  333,  333,  333,
867         0,  350,    0,    0,    0,    0,    0,  370,  369,  376,
868         0,  401,    0,    0,  401,  401,    0,    0,  401,    0,
869         0,  412,    0,   73,    0,    0,    0,  433,    0,  421,
870       420,  433,  433,  433,    0,    0,    0,    0,  477,    0,
871       465,  464,  477,    0,  471,  470,  477,    0,  498,    0,
872       511,    0,  528,  528,  528,    0,  545,    0,    0,    0,
873       541,  540,    0,    0,    0,  552,  551,  560,    0,    0,
874
875       582,    0,    0,    0,    0,    0,    0,  613,    0,    0,
876         0,    0,  638,  638,  638,    0,    0,    0,    0,   11,
877        43,    0,   72,    0,    0,    0,    0,    0,  248,    0,
878         0,    0,    0,  367,    0,    0,  450,  482,  503,    0,
879       550,    0,    0,    0,    0,    0,    0,    0,    0,    0,
880       481,  502,    0,  549,    0,    0,    0,    0,    0,    0,
881        68,    0,    0,   89,   89,   89,   89,    0,    0,    0,
882        96,   95,    0,  115,  115,    0,    0,    0,    0,    0,
883         0,    0,    0,    0,    0,    0,    0,    0,    0,  185,
884         0,  179,  178,    0,    0,    0,    0,  192,  191,    0,
885
886         0,  244,  244,  244,    0,    0,  244,  244,  244,    0,
887       228,  227,    0,    0,  244,  244,    0,    0,  278,  278,
888         0,    0,    0,  272,  271,  278,    0,  279,  368,    0,
889         0,  333,  333,  333,  333,    0,  334,  350,    0,    0,
890       359,  358,    0,  376,    0,  401,    0,  385,  384,    0,
891         0,  401,    0,  395,  394,  401,    0,  402,    0,  412,
892         0,   73,  249,    0,  451,  433,  433,  433,  433,    0,
893         0,  442,  441,    0,  447,  477,  477,  477,    0,  498,
894         0,  511,    0,    0,    0,  528,    0,    0,    0,  545,
895         0,  539,  538,    0,    0,  560,    0,    0,  582,    0,
896
897         0,    0,    0,    0,    0,    0,    0,    0,  578,  577,
898         0,  613,    0,  614,    0,    0,    0,    0,    0,    0,
899         0,  638,    0,    0,    0,    0,    0,    0,   48,    0,
900         0,    0,    0,    0,  167,  190,  248,    0,  298,    0,
901         0,    0,  416,  450,  503,  516,    0,    0,   47,    0,
902         0,    0,    0,  166,  189,    0,  297,  502,  515,    0,
903         0,    0,   52,   51,    0,   54,   53,   68,    0,    0,
904        89,   89,   89,   89,    0,   90,    0,    0,  115,    0,
905         0,    0,    0,  124,  123,    0,  126,  125,    0,    0,
906         0,  154,  153,    0,  156,  155,    0,    0,  175,  174,
907
908         0,    0,    0,  181,  180,    0,    0,  194,  193,  244,
909       244,  244,    0,  214,  213,    0,    0,  244,  244,    0,
910       230,  229,  244,  244,    0,    0,  278,  278,    0,  270,
911       269,  278,    0,    0,  333,    0,    0,  333,  333,  333,
912       350,    0,    0,  376,    0,  377,  401,    0,  387,  386,
913       401,  401,    0,    0,    0,    0,  249,  417,  451,  433,
914       433,  433,  433,    0,  477,    0,    0,  477,    0,  498,
915         0,  499,  511,    0,    0,  518,  517,    0,    0,    0,
916       524,  523,    0,    0,    0,    0,    0,  560,    0,    0,
917       561,    0,    0,    0,    0,    0,    0,    0,    0,    0,
918
919         0,    0,    0,    0,    0,    0,    0,  622,  621,    0,
920       624,  623,  638,    0,    0,    0,    0,    0,    0,    0,
921        48,   93,  105,    0,    0,    0,  167,  190,    0,  298,
922       337,    0,  405,  416,  516,    0,    0,    0,   47,  104,
923         0,    0,    0,  166,  189,    0,  297,  515,    0,    0,
924         0,   68,    0,  338,    0,    0,   89,   89,   89,   94,
925         0,  115,    0,  111,  110,    0,    0,    0,    0,    0,
926       177,  176,    0,  244,  244,  244,    0,  216,  215,  244,
927       244,  244,    0,    0,    0,    0,  256,  278,  278,  278,
928         0,    0,  333,    0,  317,  316,  333,  333,  333,  350,
929
930         0,    0,  376,  401,  401,  401,  406,    0,  408,  407,
931         0,  417,    0,    0,  433,  433,  433,    0,  477,    0,
932       469,  468,  477,    0,  478,  498,  511,    0,  512,    0,
933       520,  519,    0,    0,  535,  534,    0,    0,  560,  654,
934         0,  566,  565,    0,    0,    0,    0,    0,    0,    0,
935         0,    0,    0,    0,    0,    0,    0,  638,    0,    0,
936         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
937         0,    0,   93,  105,    0,    0,    0,  283,  337,    0,
938       405,    0,    0,  618,  104,    0,    0,    0,  282,    0,
939         0,  617,   68,    0,   69,  338,    0,   75,   74,    0,
940
941         0,   89,   89,   94,    0,    0,    0,    0,    0,    0,
942         0,    0,  186,  244,  244,  244,  244,    0,    0,  244,
943       244,    0,    0,    0,    0,  245,  278,  278,  278,    0,
944         0,  305,    0,    0,  333,  333,  333,  333,    0,    0,
945         0,    0,    0,    0,  401,  401,  401,  406,    0,    0,
946       419,  418,    0,    0,  433,  433,    0,  434,    0,    0,
947       477,  498,  511,    0,  529,    0,    0,  560,    0,    0,
948         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
949         0,    0,    0,    0,    0,    0,    0,    0,    0,  638,
950         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
951
952         0,    0,    0,    0,    0,    0,    0,    0,    0,  283,
953       354,    0,    0,  618,    0,    0,    0,  282,    0,    0,
954       617,   68,    0,   79,   78,    0,    0,    0,    0,    0,
955       101,    0,  107,  106,    0,  116,    0,    0,    0,  244,
956       244,  244,  244,    0,  218,  217,  244,  244,    0,    0,
957         0,    0,    0,    0,  278,  278,    0,    0,    0,    0,
958       311,  310,  333,  333,  333,    0,    0,    0,    0,    0,
959         0,  351,    0,    0,  372,  371,  401,  401,    0,    0,
960         0,  413,    0,  423,  422,    0,    0,    0,    0,    0,
961         0,    0,  477,  498,  511,    0,  355,  560,    0,    0,
962
963         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
964         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
965         0,  638,    0,    0,    0,    0,    0,    0,    0,    0,
966         0,    0,    0,    0,    0,    0,    0,    0,    0,  137,
967         0,  354,    0,    0,    0,  136,    0,    0,    0,    0,
968         0,    0,    0,    0,    0,   85,   84,    0,    0,    0,
969       244,  244,    0,    0,  244,  244,  244,    0,    0,    0,
970         0,    0,    0,    0,    0,  278,    0,    0,    0,  274,
971       273,    0,  294,  333,  333,  333,    0,  329,  328,    0,
972         0,    0,    0,    0,    0,    0,  401,    0,    0,    0,
973
974       397,  396,    0,    0,    0,    0,  429,  428,    0,    0,
975         0,    0,    0,    0,  477,    0,    0,    0,    0,    0,
976       355,    0,    0,    0,    0,    0,    0,  570,    0,    0,
977         0,    0,  569,    0,    0,    0,    0,    0,    0,    0,
978         0,    0,    0,    0,    0,    0,    0,    0,    0,  639,
979         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
980         0,    0,    0,    0,    0,    0,  137,    0,  533,    0,
981         0,  136,    0,  532,    0,    0,    0,    0,    0,    0,
982         0,    0,    0,    0,    0,  244,    0,    0,    0,  210,
983       209,    0,    0,  244,  244,    0,    0,    0,    0,    0,
984
985         0,    0,    0,  278,    0,  264,  263,  333,    0,    0,
986       333,    0,    0,    0,    0,    0,    0,    0,  364,  401,
987         0,  389,  388,    0,    0,    0,    0,    0,    0,    0,
988         0,    0,    0,    0,    0,  477,    0,    0,    0,    0,
989       505,  504,    0,    0,  556,  555,    0,    0,    0,    0,
990         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
991         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
992         0,    0,    0,    0,    0,    0,    0,   21,   29,    0,
993         0,    0,    0,   20,   28,    0,  120,    0,  533,  564,
994       119,    0,  532,  563,    0,    0,    0,    0,    0,    0,
995
996         0,    0,    0,    0,    0,    0,    0,    0,  146,    0,
997       244,    0,  208,  207,    0,  212,  211,  244,  244,    0,
998         0,    0,    0,    0,    0,    0,    0,  278,  333,    0,
999       319,  318,  333,    0,    0,  340,    0,    0,  339,  401,
1000         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1001         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1002         0,    0,    0,    0,    0,  576,    0,    0,    0,  575,
1003         0,    0,    0,    0,    0,  591,  599,    0,    0,    0,
1004         0,  590,  598,    0,    0,    0,    0,    0,    0,    0,
1005         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1006
1007        23,    0,    0,    0,   22,    0,  120,    0,  564,  119,
1008         0,  563,    0,    0,    0,    0,    0,    0,    0,    0,
1009         0,    0,    0,    0,    0,    0,  244,    0,    0,  244,
1010         0,    0,  234,    0,    0,    0,  233,    0,  278,    0,
1011         0,    0,    0,    0,    0,    0,    0,  401,    0,    0,
1012         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1013         0,  473,  472,    0,    0,    0,    0,    0,    0,    0,
1014         0,    0,  546,    0,    0,    0,    0,    0,    0,    0,
1015         0,    0,  593,    0,    0,    0,  592,    0,    0,    0,
1016         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1017
1018         0,    0,    0,    0,    0,    0,    0,    0,  150,  149,
1019        60,    0,   64,    0,   59,    0,   63,    0,   81,    0,
1020        80,    0,    0,  133,    0,  244,    0,    0,    0,    0,
1021         0,    0,    0,  236,    0,    0,  235,  278,    0,  313,
1022       312,    0,    0,    0,  342,  344,  341,  343,  401,  425,
1023         0,  424,    0,    0,  459,  455,    0,    0,  458,  454,
1024         0,  490,    0,  494,    0,  489,    0,  493,    0,  574,
1025         0,    0,  573,    0,    0,    0,  583,    0,    0,    0,
1026         0,    0,    0,  630,    0,  634,    0,  629,    0,  633,
1027         0,    0,    0,    0,   12,    0,   12,    0,   33,    0,
1028
1029         0,    0,    0,   31,   32,    0,    0,    0,    0,   30,
1030       150,  149,   58,   62,   57,   61,    0,    0,    0,  244,
1031         0,    0,    0,    0,    0,  232,  231,    0,    0,    0,
1032         0,  278,    0,    0,    0,    0,  401,    0,    0,    0,
1033         0,    0,    0,  488,  492,  487,  491,  568,  572,  567,
1034       571,  603,    0,    0,    0,    0,  601,  602,    0,    0,
1035         0,    0,  600,  628,  632,  627,  631,    0,    0,    0,
1036         0,    0,    0,    0,    0,   25,    0,    0,    0,    0,
1037        24,    0,    0,    0,    0,  163,    0,    0,    0,    0,
1038         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1039
1040         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1041         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1042         0,  595,    0,    0,    0,    0,  594,    0,    0,    0,
1043         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1044         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1045         0,    0,  238,    0,  237,    0,  262,  261,    0,    0,
1046         0,    0,    0,    0,    0,    0,    0,  383,  382,    0,
1047         0,  453,    0,  452,    0,    0,    0,    0,    0,    0,
1048         0,    0,    0,    0,   11,    0,    0,    0,    0,    0,
1049         0,    0,    0,   83,   82,    0,    0,    0,    0,    0,
1050
1051         0,    0,    0,    0,    0,    0,    0,  240,  239,    0,
1052         0,    0,    0,    0,    0,    0,    0,  427,  426,    0,
1053         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1054         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1055         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1056         0,    0,    0,    0,    0,    0,    0,    0,  457,  456,
1057         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1058         0,   35,    0,    0,    0,   34,    0,    0,    0,    0,
1059         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1060         0,    0,    0,    0,    0,    0,    0,    0,    0,  605,
1061
1062         0,    0,    0,  604,    0,    0,    0,    0,   27,    0,
1063         0,   26,    0,    0,    0,    0,    0,    0,  220,    0,
1064         0,    0,  219,    0,    0,    0,  321,    0,    0,    0,
1065       320,    0,    0,    0,  597,    0,    0,  596,    0,    0,
1066        37,    0,   36,    0,    0,    0,    0,  226,    0,    0,
1067       225,    0,    0,  327,    0,    0,  326,    0,    0,    0,
1068       607,    0,  606,    0,    0,    0,    0,    0,    0,    0,
1069         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1070         0,   39,   38,    0,  196,    0,  195,    0,    0,    0,
1071         0,    0,    0,    0,    0,  609,  608,    0,    0,  198,
1072
1073       197,  224,    0,  223,    0,  325,    0,  324,    0,    0,
1074         0,  222,  221,  323,  322,    0,    0,    0,    0,    0,
1075         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1076         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1077         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1078         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1079         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1080         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1081         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1082         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1083
1084         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1085         0,    0,    0,    0,    0,   13,    0
1086     } ;
1087
1088 static const YY_CHAR yy_ec[256] =
1089     {   0,
1090         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
1091         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
1092         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1093         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
1094         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
1095        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
1096        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
1097        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
1098        31,   38,   39,   40,   41,   42,   43,   44,   45,   46,
1099        47,    1,   48,    1,   49,    1,   50,   51,   52,   53,
1100
1101        54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
1102        64,   65,   66,   67,   68,   69,   70,   71,   72,   73,
1103        74,   75,    1,    1,    1,    1,    1,    1,    1,    1,
1104         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1105         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1106         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1107         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1108         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1109         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1110         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1111
1112         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1113         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1114         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1115         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1116         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1117         1,    1,    1,    1,    1
1118     } ;
1119
1120 static const YY_CHAR yy_meta[76] =
1121     {   0,
1122         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
1123         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
1124         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
1125         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
1126         5,    5,    5,    5,    5,    5,    1,    1,    5,    9,
1127         9,    9,    9,    9,    9,    5,    5,    5,    5,    5,
1128         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
1129         5,    5,    5,    5,    5
1130     } ;
1131
1132 static const flex_int16_t yy_base[4570] =
1133     {   0,
1134         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
1135        14,   17,   33,   36,   49,   55,   45,   61,  109,  176,
1136        66,   72,   76,   79,   83,  129,  132,  135,  140,  157,
1137       196,  199,  202,  207,  224,  227,  233,  236,  244,  253,
1138       271,  339,  291,  294,  297,  302,  319,  359,  362,  365,
1139       407,  475,  370,  387,  427,  430,  433,  438,  455,  495,
1140       543,  614,  498,  501,  685,  746,  506,  523,  807,  875,
1141       563,  566,  569,  574,  591,  594,  634,  637,  943, 1011,
1142       640,  645,  662,  665,  705,  708,  711,  716, 1079, 1147,
1143       766,  769,  772,  777,  827,  830,  833,  838, 1215, 1283,
1144
1145       855,  895, 1351, 1420,  898,  901,  906,  923,  963,  966,
1146       969,  974, 1489, 1547,  991, 1031, 1034, 1037, 1042, 1059,
1147      1099, 1102, 1605, 1673, 1105, 1110, 1127, 1167, 1170, 1173,
1148      1178, 1195, 1741, 1811, 1235, 1238, 1881, 1936, 1241, 1246,
1149      1303, 1306, 1309, 1314, 1371, 1374, 1991, 2059, 1377, 1382,
1150      1440, 1443, 1446, 1451, 1509, 1512, 2127, 2185, 1515, 1520,
1151      2243, 2314, 1567, 1570, 2385, 2453, 1573, 1578, 2521, 2589,
1152      1625, 1628, 1631, 1636, 2657, 2728, 1693, 1696, 1699, 1704,
1153      1761, 1764, 1767, 1772, 1789, 1831, 1834, 1837, 1842, 1859,
1154      1901, 1904, 1907, 1912, 1956, 1959, 2799, 2867, 1962, 1967,
1155
1156      2011, 2014, 2017, 2022, 2079, 2082, 2935, 3006, 2085, 2090,
1157      3077, 3145, 2147, 2150, 3213, 3281, 2153, 2158, 2205, 2208,
1158      2211, 2216, 2263, 2266, 3349, 3407, 2269, 2274, 3465, 3534,
1159      2291, 2294, 2334, 2337, 2340, 2345, 2362, 2365, 3603, 3671,
1160      2405, 2408, 2411, 2416, 2433, 2473, 2476, 2479, 3739, 3804,
1161       204, 2495, 3869, 3938, 2484, 2502, 4007, 4074, 2542, 2545,
1162      2548, 2552, 2609, 2612, 2615, 2620, 2677, 2680, 2683, 2688,
1163      2705, 2708, 2748, 2751, 2754, 2759, 2776, 2779, 2819, 2822,
1164      2825, 2830, 2847, 2887, 2890, 2893, 2898, 2915, 2955, 2958,
1165      2961, 2966, 2983, 2986, 4141, 4209, 3026, 3029, 3032, 3037,
1166
1167      3054, 3057, 3097, 3100,    0,    0,10721,13930,13930,   96,
1168       100,   29,   41,13930,  103,   51,13930,13930,10706,13930,
1169     13930,10695,13930,10710,10708,  674,13930,13930,13930,13930,
1170     10706,10706,10656,13930,  160,10683,    0,   87,13930,10649,
1171     10635,13930,  166, 4273,10633, 4344, 3054, 1200,10685,   31,
1172     13930,  169,10672,    0,  120,13930,10623,10618,   21,13930,
1173       256,  154,   84,  153,13930,  261,10667,    0,  211,13930,
1174     10616,10621,10622,10616,10609,13930,  264,   16,10625,  237,
1175     13930,  326,10654,    0,  248,13930,10623,13930,  329,  305,
1176     13930,  332,10648,    0,  282,13930,10617,10613,10613,13930,
1177
1178       394,  373,13930,  397,10642,    0,  350,13930,10593,10584,
1179     10588,13930,  400,  453,  249,13930,  466,10634,    0,  418,
1180     13930,10583,10583,13930,  534,  521,  381,13930,  597,10629,
1181         0,  439,13930,10576,10571,10575,13930,  600,  595,  426,
1182     13930,  668,10619,    0,  442,13930,10566,10584,10582,10564,
1183     10580,   81,13930,  671,  716,13930,  674,10607,    0,  445,
1184     13930,  141,10562,10572,   90,10553,   27,  450,10555,13930,
1185       796,10606,  441,13930,  799,10595,    0,  507,13930,10561,
1186     13930,  862,10601,  509,13930,  865,10588,    0,  554,13930,
1187     10536,10542,10550,10534,  242,13930,  868,  313,10539,  594,
1188
1189     13930,  930,10576,    0,  584,13930,10531,10541,10526,13930,
1190       933,  784,13930,  936,10570,    0,  625,13930,10531,13930,
1191       995, 3115,10572,  713,13930,  998,10563,    0,  696,13930,
1192     10532,10526,10528,  164,13930, 1001,10565,  726,13930, 1004,
1193     10552,    0,  818,13930,10513,10517,13930, 1063,  841,13930,
1194      1066,10547,    0,  886,13930,10513,10515,13930, 1069,  909,
1195     13930, 1072,10540,    0,  954,13930,10501,10481,13930, 1134,
1196      1113,13930, 1137,10529,    0, 1022,13930,10473,10471,10478,
1197     10484,10486,  514,13930, 1140, 1181, 1187,13930, 1202,10515,
1198         0, 1090,13930,10476,13930, 1207, 1534,  664, 1203,  727,
1199
1200       677,  773,13930, 1275,10509,    0, 1158,13930,10458,10459,
1201     10464,10458,10447,13930, 1333,  258,  917,13930, 1336,10495,
1202         0, 1226,13930,10461,10459,13930, 1343, 1321,13930, 1402,
1203     10488,    0, 1253,13930,10453,10449, 1265,10451,  920,13930,
1204      1411, 1389,13930, 1471,10480,    0, 1362,13930,10427,  583,
1205     13930, 1480, 1395, 1045,13930, 1537,10474,    0, 1431,13930,
1206     10429,10435,13930, 1540, 1458,13930, 1600,10467,    0, 1500,
1207     13930,10417,10417,10427,10405,13930, 1656,10462, 1189,13930,
1208      1662,10453,    0, 1524,13930,10408,10414,10402,10407,13930,
1209      1665,  449,10398, 1195,13930, 1724,10439,    0, 1558,13930,
1210
1211     10400,10400,10398, 1775,10403,13930, 1730,10426,    0, 1616,
1212     13930,10384,10386,10372,13930, 1733, 1845,13930, 1798,10418,
1213         0, 1640,13930,10384,10368,13930, 1801, 4415,10366, 3110,
1214      1474, 1901, 1260,10418,  676, 1776, 3183, 1638,10413, 1234,
1215     13930, 1806,10404,    0, 1651,13930,10355,10346,  776,13930,
1216      1868, 1522, 1249, 1871, 1318,10344,13930,10406,10391,13930,
1217     13930,13930, 1973,   90,10341,10340,10334,10383,13930,    0,
1218      2555,10332,10375,10357, 1330,  332,  320,10331,10327,10331,
1219     10324, 1866,  467,10314,10315,10317, 1914,10337,  712,  856,
1220     10311,10311,10311, 1969,  797,10299,10300,10298,10322,  732,
1221
1222      1980,  992,10296,  868, 1069,13930,    0,10286,10305,10301,
1223     10286,10325,10288,13930,    0,10278,10272,10278, 9664, 9662,
1224      9660, 1341,13930,    0, 9648, 9658,13930,    0, 9644, 3107,
1225      9637, 9654,13930,    0, 9635, 9653, 9649, 9648,13930,    0,
1226      9622, 9638, 9637,13930,    0, 9610, 9628, 9620, 9620,13930,
1227         0, 3167, 3179, 9600, 9610, 9610, 9602, 9600, 9601,13930,
1228         0, 9603, 3185, 9571, 3192, 9568, 9573, 9562, 9570, 9567,
1229      9548, 9567, 9561, 9559, 9543, 9555,13930,    0, 3234, 9553,
1230     13930,    0, 9554,  177, 3240, 9518, 9531, 9532, 9522, 9513,
1231     13930,    0, 9486, 3243, 3252, 9500,13930,    0, 9494, 9492,
1232
1233      9510, 9483,13930,    0, 9478, 3261, 9470, 9485, 9474, 9462,
1234     13930,    0, 9440, 3301, 9445,13930,    0, 3304, 9443, 9437,
1235     13930,    0, 9436, 9432, 9419,13930,    0, 9426, 9426, 9400,
1236      3307, 9394, 9407, 9410, 9388, 9391,13930,    0, 9383, 9377,
1237      1344, 1401, 1983, 1207, 1416, 2037,13930,    0, 9378, 9371,
1238      9377, 9387, 9372, 9356,13930,    0, 3311, 9344, 9339,13930,
1239         0, 9338, 3314, 9326, 9344, 9330, 9338, 9325, 9325, 9309,
1240     13930,    0, 9305, 9321, 9296, 9289,13930,    0, 9291, 3369,
1241      9286,13930,    0, 9282, 9287, 3372, 9283, 9260,13930,    0,
1242      9264, 3375, 9266, 9235, 9240, 9243,13930,    0, 9233, 3379,
1243
1244      9226,   13, 9222, 9270,13930,    0, 9230, 9219, 9228, 9203,
1245     13930,    0, 3383, 9196, 9190,  936, 1004, 1072, 1140, 1528,
1246      1597,13930,    0, 9194, 9203, 9199, 9187, 9169, 9223, 9231,
1247      1693, 9178,13930, 2040,    0, 9173, 9172, 9218, 9216, 9149,
1248     13930, 3427, 2109, 9143, 3110, 3485, 2175, 9126, 9136, 9139,
1249      9124, 9137, 9116, 9111, 9105, 9115, 9099, 1406, 9107, 9109,
1250      9087, 9085, 9073, 9078, 9086, 9068, 9066, 2233, 9076, 9055,
1251      9068, 9046, 9047, 9061, 9049, 9056, 9031, 9035, 9044, 9030,
1252      2237, 9021, 9020, 9012, 3430, 3438, 3433, 3441, 3490, 3494,
1253      9017, 9023, 9004, 9011, 9015, 9000, 3498, 3505, 9009, 8977,
1254
1255      3556, 3559, 8992, 3564, 2304, 8987, 3567, 3637, 3570, 3640,
1256      3626, 3629, 3632, 3644, 3692, 3695, 3700, 3759, 3773, 3762,
1257      3710, 3765, 3769, 2372, 3780, 2436, 3825, 3830, 3834, 3844,
1258      3899, 3891, 3910, 1921, 3902, 2505, 8985, 3905, 2574, 3959,
1259      8974, 8953, 8958, 8953, 8941, 8941, 8946, 8944, 8929, 3962,
1260      3968, 3965, 2640, 3971, 3977, 8934, 8923, 8921, 4028, 2711,
1261      8924, 8910, 8894, 4031, 4036, 1687, 8898, 4040, 2782, 4094,
1262      2993, 4046, 4099, 8899, 4103, 4106, 2584, 8889, 8897, 4112,
1263      3065, 8891, 8877, 8873, 4162, 4173, 8883, 4168, 3266, 4176,
1264      4181, 4188, 3333, 8860, 4230, 4233, 8874, 8860, 4238, 4241,
1265
1266      8867,  385, 8847, 4244, 3591, 4264, 8859, 8842, 4267, 4272,
1267      8860, 8839, 4278, 4286, 8837, 8841, 8827, 8820, 8829, 8801,
1268      8808, 8810, 8791, 4297, 4300, 4308, 3722, 8787, 4312, 4341,
1269      8785, 4349, 3787, 4352, 8775, 4355, 8778, 8782, 8784, 4360,
1270      4373, 4379, 4384, 4388, 4412, 4422, 8760, 4426, 3852, 4431,
1271      4436, 8775, 8751, 4444, 3997, 8765, 4450, 4455, 8748, 4485,
1272      4058, 8755, 8754, 4458, 4489, 1725, 8749, 4492, 4131, 8744,
1273      8766, 4495, 4499,13930, 8719, 8727, 8726, 4503, 4510, 4514,
1274      4196, 8708, 4518, 4523, 8695, 8694, 8692, 4532, 4537, 4542,
1275      4545, 4550, 4565, 8732,13930,13930,  891, 8690,13930, 8732,
1276
1277      8731, 8674,13930,13930, 8671, 4569,13930,13930, 8681, 4577,
1278      4580,13930, 4589, 1876, 8670, 8669, 8657, 8662, 8671, 8652,
1279      8640, 8645, 8630, 8636, 8632, 8637, 8626, 8611, 8606,  477,
1280      8617, 8600, 8596, 8606, 8603, 1721, 2119, 8590, 8591, 8600,
1281      8590, 8575, 8573, 8575, 8575, 8566, 8550, 8525, 8518, 8510,
1282      8494, 8499, 8483, 4592, 4610, 8482, 8468, 4599, 4618, 8472,
1283      4628, 4631,13930, 4634, 8465, 8446, 4637, 8464, 8462, 8438,
1284      4640, 4643,13930, 4655, 8429, 8440, 4662, 4665,13930, 4669,
1285      8419, 4674,13930,13930, 8422, 4684, 4688,13930, 4691, 4694,
1286      4703, 8404, 8373, 4712, 4717, 4725, 4730,13930, 4733, 4736,
1287
1288      4745, 4754, 4757, 4765, 4768,13930, 4772, 4775, 4778, 8361,
1289      8355, 4787, 4793, 4801, 4805,13930, 4808, 4811,13930,13930,
1290      4820,13930,13930, 4828, 4832, 8363, 8367, 8308, 8294, 4840,
1291      4846,13930, 4849, 8277, 8298, 8288, 4852,13930,13930, 4860,
1292      4868,13930,13930, 4878, 4881, 8273, 8231, 8184, 8169, 8163,
1293      8129, 8044, 8037, 1471, 4889, 4892,13930, 4899, 4902,13930,
1294     13930, 4911, 4914,13930, 4918, 7973, 7936, 4921, 4924,13930,
1295     13930, 7869, 7865, 7859, 4933, 4939,13930, 4942, 7777, 4945,
1296      4948,13930,13930, 4964,13930,13930, 4972, 4975,13930, 4980,
1297      4983, 4986, 4994,13930, 5001, 7770, 7627, 5009,13930,13930,
1298
1299      7626, 7573, 7574, 5005, 5020,13930, 5024, 7573, 5027,13930,
1300     13930, 5035, 5039,13930, 5043, 5048,13930,13930, 7564, 5058,
1301      5062,13930, 5065, 5069, 5072, 5077, 5090,13930, 5096, 7507,
1302      7442,    1,   36, 5099,13930,13930, 5109, 5117,  121,  196,
1303      5127, 5130,13930, 5133,  244,  258, 5136, 5139,13930, 5142,
1304       274,  321, 1732,  326,  383, 5161,  423,  424,  465, 5165,
1305      5168,13930, 5171, 5175,13930,13930,  486, 5191, 5194,13930,
1306      5197,  513, 5200,13930,13930, 5217, 5220, 5228, 5235, 5239,
1307       533, 5247,  535, 5253, 5256,13930, 5260, 5265, 5268, 5279,
1308      5283,  554, 5291, 5297,13930, 5300,  557, 5303,13930,13930,
1309
1310      5311, 5322,13930, 5325,  559,  559, 5330,13930,13930,  615,
1311      5344, 5347,13930, 5351,  597, 5354,13930,13930,  592, 5370,
1312      5373, 5376,13930, 5379,  600, 5382, 5388,13930,13930, 5400,
1313       654, 5403, 5406,13930, 5409,  628, 5414,  630, 5418, 5428,
1314     13930, 5432, 5438,13930,13930,  664, 5447, 5451,13930, 5454,
1315       694,  733,  738, 5458, 5466,  776,  782, 5476, 5481,  798,
1316      5489, 5494,13930, 5498, 1622, 5501,13930,13930,  857,  895,
1317       916, 5504,13930,  910,  916,  923,  937,  979,  985,  981,
1318       993, 2179,  983, 2515, 1054, 1047, 2122, 1066, 1070, 2650,
1319      1114, 1129, 1134, 1133, 3104, 2858, 1119, 1224, 1213, 1257,
1320
1321      1253, 2926, 1279, 3275, 3174, 1333, 1338, 1336, 3342, 1337,
1322      3401, 1363, 5523,13930,13930, 1388, 1474, 5531,13930,13930,
1323      1459, 5508, 3526, 1473, 5539, 5542, 1521, 1535, 1548, 5550,
1324      1536, 5560, 5553, 1542, 1584, 5564, 5572,13930,13930, 1572,
1325      1592, 5583,13930,13930, 5591, 5594,13930,13930, 5603,13930,
1326     13930, 5613, 5616,13930,13930, 1579, 1599, 5625,13930,13930,
1327      5633, 5636,13930,13930, 1631, 1659, 5645, 1637, 5648, 5652,
1328      5655, 5658, 5663, 5682, 5690,13930,13930, 5676, 5698, 5701,
1329      5707, 5710, 5719, 5730, 5733, 5737, 5740, 5743, 5758, 1662,
1330      1657, 5751, 5762, 1662, 5777, 1669, 5781, 1650, 5784, 5788,
1331
1332      5796, 5805, 5816, 5824, 3518, 1666, 1678, 1676, 1723, 5827,
1333      1708, 5831, 5834, 5838, 5852, 5857, 1725, 5866, 1733, 5870,
1334      1737, 1784, 5873,13930,13930, 5891, 1798, 5894, 1793, 1789,
1335      5897, 1787, 1798, 1811, 1803, 1810, 5900, 5903, 1807, 1839,
1336      1863, 5918, 5921, 5924, 1867, 5928,13930,13930, 5939, 5943,
1337      5951,13930,13930, 1868, 5960, 5965, 1867, 5973, 5978,13930,
1338     13930, 5988,13930,13930, 1855, 5996, 1868, 5999, 1874, 1869,
1339      1881, 6002, 1872, 6005, 6008, 6011, 6026, 1906, 6029, 6032,
1340      1920, 1956, 6040, 1916, 6047, 6050, 6059, 6068, 1927, 6071,
1341      1939, 1954, 1959, 6077,13930,13930, 1959, 1979, 6092,13930,
1342
1343     13930, 1964, 6101, 2139, 2023, 6104,13930, 2025,13930,13930,
1344      1992, 1982, 3206, 2002, 1994, 2007, 2036, 2041, 2040, 3459,
1345      2038, 2048, 3664, 2050, 2056, 3732, 3798, 2045, 2046, 3862,
1346      2054, 3923, 2063, 4068, 3929, 2079, 3932, 2089, 2099, 2096,
1347      2112, 2113, 3991, 2108, 2117, 4125, 4305, 6107, 2116, 6110,
1348      6113, 2109, 6124, 6127, 6130, 6133, 6137, 6140, 2149, 2152,
1349      6144,13930,13930, 2159, 2160, 2153, 6159, 2170, 6162, 6167,
1350      6180, 2172, 2153, 6183, 6186, 6193, 6204, 6211, 6214, 6217,
1351      6225, 6235, 6244, 6247, 6253, 6265, 6271, 6278, 6283, 6292,
1352      6296, 6300,13930,13930, 6310, 6314, 6317, 6320, 6323, 6328,
1353
1354      6341, 6346, 6354, 6366, 6372, 6376, 6384, 2179, 2168, 6391,
1355     13930,13930, 6399, 6403, 6406, 2204, 6417, 6274, 6421,13930,
1356     13930, 6429, 6432,13930,13930, 6444, 2221, 2201, 2223, 2225,
1357      6448, 2224, 6451, 6454, 6457, 6472, 6477,13930,13930, 2229,
1358      6485, 2234, 6491, 6495, 6504, 2223, 6509, 6513, 2233, 6522,
1359      2225, 2236, 6527, 6532, 2246, 2235, 2243, 2247, 6535,13930,
1360     13930, 2272, 2284, 2277, 6546, 6549, 6553, 6561, 2281, 6567,
1361     13930,13930, 2290, 6581,13930,13930, 2282, 6575, 2287, 6589,
1362      2293, 6594, 6599, 6602, 6608, 6613, 2288, 6621, 6626, 6643,
1363     13930,13930, 6634, 2310, 6653,13930,13930, 2302, 2330, 6662,
1364
1365      2302, 6666, 3631, 4932, 6674, 6677, 6685, 2317, 6688, 2309,
1366      2311, 2314, 6692, 6695, 6698, 6716, 2364, 2421, 2396,13930,
1367      6719, 2363, 6722, 2358, 2359, 2406, 2355, 2358, 6725, 2369,
1368      2376, 2362, 2378, 6728, 2379, 2379, 6731, 6738, 6741, 2395,
1369      6744, 2417, 2415, 2435, 2427, 2515, 2423, 2426, 2437, 2442,
1370      6747, 6753, 2456, 6756, 2460, 2445, 6759, 6764, 6772, 6777,
1371      2504, 6785, 2496, 2504, 2513, 2511, 2526, 6790, 2522, 6793,
1372     13930,13930, 6804, 2536, 6809, 6812, 6815, 6827, 6818, 6836,
1373      6823, 6844, 6847, 6853, 6865, 6868, 6876, 6879, 6883, 6891,
1374      6897,13930,13930, 6905, 6911, 6919, 6923,13930,13930, 6931,
1375
1376      6934, 2562, 2572, 2565, 6943, 6949, 6957, 2568, 2579, 6961,
1377     13930,13930, 6975, 6978, 2562, 2557, 6986, 6989, 2574, 2584,
1378      6993, 6996, 7011,13930,13930, 2577, 7019,13930, 7022, 7026,
1379      7029, 2576, 7032, 2599, 2597, 7039,13930, 2592, 7050, 7054,
1380     13930,13930, 7063, 2643, 7069, 2630, 7082,13930,13930, 7073,
1381      7091, 2639, 7101,13930,13930, 2635, 7076,13930, 2627, 7111,
1382      7114, 7117, 7120, 2628, 7123, 2634, 2637, 2630, 2644, 7129,
1383      7133,13930,13930, 7141,13930, 2639, 7144, 2658, 7148, 2660,
1384      7151, 2669, 7154, 7162, 7173, 7181, 7184, 7187, 7202, 7205,
1385      7209,13930,13930, 7223, 2656, 2670, 2702, 7226, 7229, 2703,
1386
1387      2691, 2737, 2707, 2738, 2728, 2743, 2731, 7232,13930,13930,
1388      7247, 7250, 7253,13930, 2749, 2752, 2793, 7257, 7262, 7278,
1389      7281, 2712, 7289, 2810, 2846, 2832, 7296, 7299, 7308, 2720,
1390      2738, 2754, 2732, 2771, 7314, 7317, 7320, 2775, 7323, 2778,
1391      2775, 2782, 7326, 7329, 7332, 7335, 2781, 2784, 7338, 2801,
1392      2818, 2794, 2800, 7341, 7344, 2820, 7347, 7352, 7355, 2839,
1393      2835, 7358,13930,13930, 7366,13930,13930, 2854, 7374, 2844,
1394      7377, 7383, 7386, 7389, 7395,13930, 2840, 7407, 2853, 7410,
1395      7414, 7422, 7429,13930,13930, 7437,13930,13930, 7445, 7452,
1396      7455,13930,13930, 7471,13930,13930, 7479, 7485,13930,13930,
1397
1398      7493, 7498, 7507,13930,13930, 7515, 7518,13930,13930, 2849,
1399      2852, 2871, 7527,13930,13930, 7535, 7538, 2868, 2858, 7546,
1400     13930,13930, 2875, 7554, 7557, 7560, 2865, 2863, 7563,13930,
1401     13930, 2873, 7572, 7579, 2894, 7583, 7587, 2911, 2902, 2910,
1402      2909, 7601, 7606, 2921, 7609,13930, 2916, 7613,13930,13930,
1403      2909, 2919, 2919, 7632, 7635, 7643, 7646, 7650, 7653, 7656,
1404      7662, 7665, 7674, 7670, 2924, 7683, 7692, 2942, 7701, 2942,
1405      7704,13930, 2929, 7709, 7716,13930,13930, 7724, 7731, 7742,
1406     13930,13930, 7750, 7753, 7756, 7764, 2933, 2945, 2958, 7771,
1407     13930, 7774, 7777, 2987, 2998, 2998, 3007, 3017, 3010, 3007,
1408
1409      3008, 3014, 3025, 7785, 7792, 7797, 7806,13930,13930, 7817,
1410     13930,13930, 3000, 7825, 7828, 3053, 3073, 7832, 4294, 4675,
1411      7840, 7847, 7850, 2995, 2993, 3002, 7853, 7856, 3010, 7859,
1412      7862, 3052, 7865, 7868, 7871, 3051, 3065, 3077, 7874, 7877,
1413      3067, 3066, 3075, 7880, 7883, 3080, 7886, 7889, 3074, 3105,
1414      3118, 3124, 7894, 7897, 7900, 7903, 7913, 7918, 7921, 7924,
1415      7927, 7931, 7939,13930,13930, 7949, 7953, 7956, 7959, 7962,
1416     13930,13930, 7978, 3135, 3139, 3178, 7981,13930,13930, 7991,
1417      3135, 3138, 7997, 8002, 8010, 8015,13930, 3144, 3152, 3187,
1418      8022, 8025, 8029, 8034,13930,13930, 8047, 8050, 8053, 8056,
1419
1420      8059, 8078, 8084, 3191, 3198, 3203, 8087, 8090,13930,13930,
1421      8098, 8106, 8109, 8117, 8113, 8127, 8131, 8134, 8137, 8149,
1422     13930,13930, 8140, 8145,13930, 3217, 3219, 8159,13930, 8164,
1423     13930,13930, 8172, 8180,13930,13930, 8191, 3210, 3207,13930,
1424      8194,13930,13930, 3272, 3272, 3293, 3289, 3296, 3300, 3287,
1425      3305, 3300, 3312, 8202, 8210, 5183, 7444, 3290, 8221, 8224,
1426      3370, 3380, 3280, 3285, 3323, 3283, 3290, 3304, 3331, 3386,
1427      3328, 3337, 8227, 8230, 3335, 3337, 3394, 8233, 8243, 3385,
1428      8246, 3377, 3390, 8249, 8252, 3394, 3395, 3427, 8255, 3416,
1429      3432, 8258, 3438, 8261,13930, 8265, 8268,13930,13930, 8276,
1430
1431      8282, 8290, 8294, 8297, 8300, 8303, 8308, 8321, 8324, 8327,
1432      8330, 8333,13930, 3455, 3448, 3444, 3469, 8336, 8354, 3465,
1433      3473, 8362, 3682, 3962, 8370,13930, 3462, 3464, 8373, 8376,
1434      8379,13930, 8382, 8400, 3495, 3503, 3504, 8408, 8411, 8414,
1435      8385, 8422, 8429, 8435, 3508, 3510, 8443, 8447, 8450, 8454,
1436     13930,13930, 8462, 8465, 8473, 8476, 8480,13930, 8485, 8499,
1437      3522, 3524, 3520, 8494,13930, 8507, 3525, 3517, 3553, 3549,
1438      3564, 3552, 3577, 3576, 3576, 3592, 3588, 3613, 8514, 3592,
1439      3598, 3640, 3594, 3604, 3608, 3642, 3709, 3641, 3658, 3656,
1440      8517, 3830, 3810, 3778, 3651, 3668, 3668, 3676, 3675, 3684,
1441
1442      3710, 3736, 3739, 3759, 3768, 3764, 3770, 3789, 3807, 8520,
1443      8526, 3792, 3806, 8529, 3797, 3842, 3859, 8536, 3834, 3846,
1444      8539, 8542, 8545,13930,13930, 8553, 8556, 8564, 8576, 8571,
1445     13930, 8584,13930,13930, 8592,13930, 8595, 8598, 8601, 3845,
1446      3855, 8604, 3850, 8607,13930,13930, 3862, 3853, 3890, 4024,
1447      3901, 3938, 4030, 3941, 3909, 8622, 8625, 8628, 8636, 8643,
1448     13930,13930, 3938, 3950, 3947, 8658, 8662, 8670, 4095, 4132,
1449      8678,13930, 8681, 8684,13930,13930, 3949, 8692, 8700, 8703,
1450      8711,13930, 8714,13930,13930, 8722, 8726, 8734, 8741, 8752,
1451      4335, 4406, 3972, 8760, 8763, 8766, 8769, 8772, 4007, 4023,
1452
1453      4029, 4036, 4062, 4039, 4051, 4066, 4077, 4095, 8781, 4041,
1454      4053, 4054, 4063, 4062, 4067, 4069, 4109, 4110, 4120, 4123,
1455      4124, 8785, 8790, 4188, 4186, 4259, 4135, 4144, 4151, 4190,
1456      4198, 4204, 4187, 4199, 4186, 4203, 4218, 4223, 4215, 8793,
1457      4222, 8796, 4237, 4241, 4227, 8803, 4249, 4274, 4281, 8809,
1458      8812, 8820, 4312, 4347, 8828,13930,13930, 8839, 8843, 8846,
1459      4275, 8849, 8852, 8858, 8870, 4294, 4315, 4356, 4339, 4362,
1460      4351, 4375, 4359, 4378, 4366, 4361, 8873, 8876, 8884,13930,
1461     13930, 8892,13930, 4356, 8896, 4366, 8899,13930,13930, 4385,
1462      4386, 4406, 4413, 4419, 4427, 8914, 4419, 8917, 8920, 8929,
1463
1464     13930,13930, 8937, 4504, 4512, 8945,13930,13930, 4431, 4435,
1465      4541, 4436, 4443, 4564, 4418, 8953, 8956, 8964, 8967, 8975,
1466      8978, 8982, 8985, 4460, 4466, 4465, 4486,13930, 4506, 4490,
1467      4510, 4515,13930, 8994, 4491, 4500, 4488, 4504, 4520, 4538,
1468      4521, 4538, 4530, 4545, 4554, 4560, 9000, 9003, 9013,13930,
1469      4605, 4597, 9018, 4546, 4555, 4573, 4622, 4643, 4589, 4583,
1470      4587, 4608, 4653, 4661, 4618, 4627, 9021, 4614, 9024, 4634,
1471      4664, 9027, 4652, 9032, 4661, 9040, 5051, 5170, 4711, 4716,
1472      4714, 4720, 9048, 9051, 9054, 4691, 9057, 9060, 9075,13930,
1473     13930, 9083, 9086, 4688, 4697, 4737, 4734, 4746, 4752, 4772,
1474
1475      4752, 4776, 4777, 4764, 9094,13930,13930, 4773, 9102, 9105,
1476      4759, 4796, 4805, 4839, 4803, 4822, 4850, 9120,13930, 4810,
1477      9123,13930,13930, 4837, 4842, 4845, 4850, 4856, 4851, 4853,
1478      4861, 4876, 4864, 4872, 4882, 9131, 9135, 5324, 5514, 9143,
1479     13930,13930, 9151, 9154,13930,13930, 4889, 4910, 4933, 4934,
1480      4918, 4938, 4954, 4950, 9162, 4911, 4923, 4940, 4988, 4993,
1481      4940, 4947, 4949, 4966, 5011, 5023, 4973, 9166, 5804, 6190,
1482      5015, 9174, 9177, 9181, 4995, 4987, 5052,13930,13930, 5024,
1483      5029, 5015, 5080,13930,13930, 5037, 9196, 5026, 9200, 9204,
1484      9207, 5035, 9213, 9216, 5071, 5083, 5051, 5063, 5088, 5101,
1485
1486      5084, 5095, 5125, 5113, 5128, 5116, 9219, 9222,13930, 9225,
1487      5099, 9228,13930,13930, 9244,13930,13930, 9252, 5090, 5124,
1488      5121, 5170, 5143, 5147, 5146, 5180, 5151, 5154, 9255, 9258,
1489     13930,13930, 9266, 5178, 5190,13930, 5192, 5202,13930, 5176,
1490      5214, 5207, 5226, 5214, 5230, 5249, 5253, 5240, 5253, 5264,
1491      5266, 5257, 9273, 9277, 5261, 5282, 5246, 5262, 5282, 5293,
1492      5257, 5268, 9285, 5301, 5305,13930, 5307, 5309, 5310,13930,
1493      5311, 9294, 5289, 5275, 5346,13930,13930, 5308, 5308, 5296,
1494      5357,13930,13930, 5315, 5352, 5374, 5350, 5370, 5389, 5401,
1495      5364, 5383, 5425, 9297, 9300, 9309, 9363, 9411, 5372, 5379,
1496
1497     13930, 5405, 5398, 5399,13930, 5415, 9319, 5422, 9322, 9328,
1498      5427, 9331, 5480, 5449, 5488, 5431, 5504, 5476, 5507, 5451,
1499      5514, 5483, 5521, 5491, 9334, 9337, 5484, 9340, 9343, 9358,
1500      5503, 5501,13930, 5541, 5515, 5522,13930, 5556, 5508, 9383,
1501      9386, 9405, 9394, 5565, 5574, 5573, 5574, 5529, 5585, 5559,
1502      5592, 5562, 5579, 5602, 5604, 5573, 5596, 5617, 5621, 5592,
1503      9431,13930,13930, 5637, 5605, 5640, 5601, 5661, 5633, 5664,
1504      5607, 9423,13930, 5670, 5648, 5654, 5680, 5657, 5664, 9442,
1505      5631, 5640,13930, 5657, 5649, 5651,13930, 5661, 5719, 5688,
1506      5722, 5663, 5741, 5712, 5749, 5699, 5756, 9445, 5769, 5801,
1507
1508      9465, 9513, 6386, 5719, 5766, 6518, 5723, 5784, 9453, 9476,
1509     13930, 5789,13930, 5799,13930, 5803,13930, 5805,13930, 5793,
1510     13930, 5795, 9485,13930, 9488, 5758, 9491, 5818, 5825, 9507,
1511      9534, 5816, 5820,13930, 5821, 5836,13930, 5826, 9542,13930,
1512     13930, 9550, 5909, 5912,13930,13930,13930,13930, 5827,13930,
1513      5861,13930, 5862, 5874,13930,13930, 5852, 5894,13930,13930,
1514      5873,13930, 5907,13930, 5909,13930, 5907,13930, 5909,13930,
1515      5927, 5929,13930, 5941, 5947, 9560,13930, 6891, 5909, 5959,
1516      6633, 5922, 5964,13930, 5972,13930, 5977,13930, 5976,13930,
1517      5977, 5975, 6019, 6037, 5982, 6067, 5987, 9563,13930, 5951,
1518
1519      5971, 5959, 6058,13930,13930, 5973, 5995, 5983, 6075,13930,
1520      9499, 9525,13930,13930,13930,13930, 6017, 6029, 9566, 9569,
1521      6078, 6048, 6116, 6060, 9572,13930,13930, 6057, 6076, 6085,
1522      6096, 9587, 6158, 6164, 6170, 6193, 9590, 6085, 6107, 6136,
1523      6128, 6152, 6142,13930,13930,13930,13930,13930,13930,13930,
1524     13930,13930, 6105, 6127, 6114, 6217,13930,13930, 6131, 6152,
1525      6145, 6234,13930,13930,13930,13930,13930, 9593, 6226, 6219,
1526      6235, 9596, 6202, 6191, 6194,13930, 6215, 6220, 6202, 6216,
1527     13930, 6238, 6250, 6261, 9599,13930, 9608, 9619, 6267, 6275,
1528      6288, 6295, 6295, 6304, 6316, 6307, 6296, 6340, 6306, 6344,
1529
1530      9627, 9630, 6314, 6326, 6339, 6329, 6324, 6332, 6345, 6338,
1531      9638, 9645, 6342, 6343, 6383, 6368, 6389, 6377, 6364, 6348,
1532      6362,13930, 6389, 6390, 6374, 6377,13930, 6412, 9641, 6445,
1533      6411, 6429, 6400, 6420, 6421, 6442, 6414, 6433, 6484, 6482,
1534      9656, 6482, 6493, 6459, 6469, 6465, 6488, 6503, 6513, 6522,
1535      6531, 6561,13930, 6563,13930, 9664,13930,13930, 6537, 6542,
1536      6542, 6556, 6551, 6556, 6556, 6569, 9672,13930,13930, 6601,
1537      6599,13930, 6579,13930, 6585, 6564, 6582, 6556, 6579, 6578,
1538      6601, 6574, 6598, 6665,13930, 6587, 6586, 6593, 6610, 6610,
1539      6636, 6636, 6649,13930,13930, 6685, 6680, 6690, 6684, 6685,
1540
1541      6712, 6726, 6713, 6734, 6744, 6745, 6732,13930,13930, 6747,
1542      6757, 6758, 6745, 6760, 6773, 6774, 6761,13930,13930, 6797,
1543      6795, 6745, 6756, 6767, 6784, 6780, 6785, 6785, 6803, 6891,
1544      6798, 6809, 6859, 6819, 6812, 6834, 6881, 6848, 6864, 6883,
1545      6879, 6906, 6904, 6901, 6923, 6924, 6917, 6915, 6932, 6941,
1546      6931, 6928, 6946, 6947, 6937, 6934, 6958, 6960,13930,13930,
1547      6923, 6947, 6997, 6950, 6944, 6954, 7001, 6957, 6998, 6961,
1548      6965,13930, 7021, 6982, 6990,13930, 7038, 7011, 7012, 7018,
1549      7023, 7036, 7027, 7062, 7028, 7048, 7053, 7089, 7058, 7075,
1550      7069, 7102, 7068, 7085, 7091, 7120, 7097, 7085, 7087,13930,
1551
1552      7153, 7105, 7108,13930, 7158, 7172, 7108, 7164,13930, 7111,
1553      7164,13930, 7150, 7168, 7165, 7173, 7195, 7169,13930, 7177,
1554      7207, 7184,13930, 7182, 7214, 7190,13930, 7200, 7230, 7207,
1555     13930, 7205, 7183, 7239,13930, 7186, 7253,13930, 7243, 7196,
1556     13930, 7198,13930, 7237, 7250, 7241, 7261,13930, 7262, 7256,
1557     13930, 7268, 7262,13930, 7278, 7273,13930, 7281, 7280, 7240,
1558     13930, 7278,13930, 9680, 7357, 7356, 7340, 7365, 7347, 7365,
1559      7338, 7357, 7351, 7374, 7357, 7377, 7362, 7381, 7413, 7412,
1560      9683,13930,13930, 7416,13930, 7421,13930, 7428, 7392, 7435,
1561      7401, 7444, 7408, 7451, 7418,13930,13930, 7446, 7458,13930,
1562
1563     13930,13930, 7457,13930, 7467,13930, 7478,13930, 7483, 7525,
1564      7526,13930,13930,13930,13930, 7531, 7551, 7478, 7488, 7512,
1565      7581, 7494, 7514, 7558, 7586, 7559, 7594, 7603, 7622, 7620,
1566      7668, 7587, 7659, 7672, 7680, 7703, 7711, 7689, 7697, 7787,
1567      7802, 7729, 7777, 7762, 7770, 7568, 7677, 7772, 7827, 7888,
1568      7890, 7916, 7934, 7966, 8053, 7744, 7891, 7751, 7958, 7977,
1569      8057, 7989, 8026, 7473, 7796, 8054, 8056, 7919, 7947, 8105,
1570      8151, 7671, 7995, 7971, 8002, 8048, 8144, 8021, 8107, 8187,
1571      8219, 8171, 8295, 8157, 8263, 8051, 8137, 8168, 8296, 8299,
1572      8326, 8349, 8350, 8158, 8256, 8339, 8378, 8423, 8439, 8415,
1573
1574      8435, 8408, 8516, 8188, 8190, 8561, 8564, 7694, 8331, 8569,
1575      8600, 8267, 8334, 9691, 9694,13930,13930, 9714, 9723, 9732,
1576      9741, 9750, 9759, 9768, 9777, 9786, 9795, 9804, 9813, 9822,
1577      9831, 9840, 9849, 9858, 9867, 9876, 9885, 9894, 9903, 9912,
1578      9921, 9930, 9939, 9948, 9957, 9966, 9975, 9984, 9993,10002,
1579     10011,10020,10029,10038,10047,10056,10065,10074,10083,10092,
1580     10101,10110,10119,10128,10137,10146,10155,10164,10173,10182,
1581     10191,10200,10209,10218,10227,10236,10245,10254,10263,10272,
1582     10281,10290,10299,10308,10317,10326,10333,10340,10347,10354,
1583     10361,10368,10375,10382,10389,10396,10403,10410,10417,10424,
1584
1585     10431,10438,10445,10452,10459,10466,10473,10480,10487,10494,
1586     10501,10508,10515,10522,10529,10536,10543,10552,10559,10564,
1587     10571,10576,10583,10588,10595,10600,10607,10612,10619,10624,
1588     10631,10636,10643,10648,10655,10660,10667,10672,10679,10684,
1589     10691,10696,10703,10708,10715,10720,10727,10732,10739,10744,
1590     10751,10756,10763,10768,10775,10780,10787,10792,10799,10804,
1591     10811,10816,10823,10828,10835,10840,10847,10852,10859,10864,
1592     10871,10876,10883,10888,10895,10900,10907,10912,10919,10924,
1593     10933,10939,10946,10954,10962,10970,10977,10985,10992,11000,
1594     11007,11015,11023,11031,11039,11047,11055,11063,11071,11079,
1595
1596     11086,11094,11102,11109,11117,11124,11132,11139,11147,11154,
1597     11162,11169,11177,11184,11192,11199,11207,11214,11222,11229,
1598     11237,11244,11252,11259,11267,11274,11282,11290,11298,11305,
1599     11313,11320,11328,11335,11343,11350,11358,11365,11373,11380,
1600     11388,11396,11404,11413,11419,11426,11434,11441,11449,11456,
1601     11464,11471,11479,11486,11494,11501,11509,11517,11524,11532,
1602     11539,11547,11554,11562,11570,11577,11585,11593,11601,11609,
1603     11617,11624,11632,11639,11647,11654,11662,11670,11678,11685,
1604     11693,11700,11708,11715,11723,11730,11738,11745,11753,11760,
1605     11768,11775,11783,11790,11798,11805,11813,11821,11829,11836,
1606
1607     11844,11851,11859,11866,11874,11883,11892,11899,11906,11914,
1608     11921,11929,11937,11945,11952,11960,11967,11975,11983,11990,
1609     11998,12005,12013,12021,12029,12037,12044,12052,12060,12068,
1610     12075,12083,12090,12098,12106,12114,12121,12129,12136,12144,
1611     12151,12159,12166,12174,12182,12190,12197,12205,12212,12220,
1612     12227,12235,12242,12250,12257,12265,12272,12280,12287,12295,
1613     12302,12310,12317,12325,12334,12343,12350,12358,12366,12373,
1614     12381,12389,12396,12404,12412,12420,12428,12436,12444,12452,
1615     12460,12468,12476,12484,12491,12499,12507,12515,12522,12530,
1616     12537,12545,12553,12560,12568,12575,12583,12590,12598,12605,
1617
1618     12613,12621,12628,12636,12643,12651,12658,12666,12674,12682,
1619     12689,12697,12704,12712,12719,12727,12734,12742,12750,12758,
1620     12767,12776,12784,12791,12799,12806,12814,12822,12829,12837,
1621     12845,12853,12861,12869,12877,12884,12892,12900,12907,12915,
1622     12923,12930,12937,12945,12953,12960,12968,12975,12983,12991,
1623     12998,13006,13013,13021,13028,13036,13043,13051,13059,13067,
1624     13075,13083,13090,13098,13106,13114,13122,13129,13137,13146,
1625     13155,13162,13170,13178,13186,13193,13201,13209,13217,13225,
1626     13233,13240,13248,13256,13263,13271,13279,13286,13293,13301,
1627     13309,13316,13323,13331,13339,13347,13354,13362,13369,13376,
1628
1629     13384,13392,13400,13407,13415,13422,13430,13439,13448,13455,
1630     13463,13471,13479,13487,13495,13503,13511,13519,13527,13534,
1631     13542,13549,13557,13565,13573,13581,13589,13597,13605,13612,
1632     13620,13628,13636,13644,13651,13658,13666,13674,13681,13689,
1633     13696,13704,13713,13722,13729,13737,13745,13753,13761,13769,
1634     13777,13784,13791,13799,13806,13814,13822,13829,13837,13845,
1635     13852,13859,13866,13875,13884,13893,13902,13911,13920
1636     } ;
1637
1638 static const flex_int16_t yy_def[4570] =
1639     {   0,
1640      4018, 4018, 4019, 4019, 4019, 4019, 4020, 4020, 4021, 4021,
1641      4022, 4022, 4023, 4023, 4023, 4023, 4024, 4024, 4025, 4025,
1642      4026, 4026, 4026, 4026, 4018, 4018, 4026, 4026, 4026, 4026,
1643      4018, 4018, 4026, 4026, 4018, 4018, 4026, 4026, 4026, 4026,
1644      4027, 4027, 4028, 4028, 4018, 4018, 4028, 4028, 4028, 4028,
1645      4029, 4029, 4030, 4030, 4018, 4018, 4030, 4030, 4030, 4030,
1646      4031, 4031, 4032, 4032, 4033, 4033, 4034, 4034, 4035, 4035,
1647      4036, 4036, 4018, 4018, 4036, 4036, 4036, 4036, 4037, 4037,
1648      4038, 4038, 4018, 4018, 4038, 4038, 4038, 4038, 4039, 4039,
1649      4040, 4040, 4018, 4018, 4040, 4040, 4040, 4040, 4041, 4041,
1650
1651      4042, 4042, 4043, 4043, 4044, 4044, 4018, 4018, 4044, 4044,
1652      4044, 4044, 4045, 4045, 4046, 4046, 4018, 4018, 4046, 4046,
1653      4046, 4046, 4047, 4047, 4048, 4048, 4018, 4018, 4048, 4048,
1654      4048, 4048, 4049, 4049, 4050, 4050, 4051, 4051, 4052, 4052,
1655      4018, 4018, 4052, 4052, 4052, 4052, 4053, 4053, 4054, 4054,
1656      4018, 4018, 4054, 4054, 4054, 4054, 4055, 4055, 4056, 4056,
1657      4057, 4057, 4058, 4058, 4059, 4059, 4060, 4060, 4061, 4061,
1658      4062, 4062, 4018, 4018, 4063, 4063, 4064, 4064, 4064, 4064,
1659      4018, 4018, 4064, 4064, 4064, 4064, 4018, 4018, 4064, 4064,
1660      4018, 4018, 4064, 4064, 4064, 4064, 4065, 4065, 4066, 4066,
1661
1662      4018, 4018, 4066, 4066, 4066, 4066, 4067, 4067, 4068, 4068,
1663      4069, 4069, 4070, 4070, 4071, 4071, 4072, 4072, 4018, 4018,
1664      4072, 4072, 4072, 4072, 4073, 4073, 4074, 4074, 4075, 4075,
1665      4076, 4076, 4018, 4018, 4076, 4076, 4076, 4076, 4077, 4077,
1666      4078, 4078, 4018, 4018, 4078, 4078, 4078, 4078, 4079, 4079,
1667      4080, 4080, 4081, 4081, 4082, 4082, 4083, 4083, 4084, 4084,
1668      4084, 4084, 4018, 4018, 4084, 4084, 4084, 4084, 4018, 4018,
1669      4084, 4084, 4084, 4084, 4018, 4018, 4084, 4084, 4018, 4018,
1670      4084, 4084, 4084, 4084, 4018, 4018, 4084, 4084, 4018, 4018,
1671      4084, 4084, 4084, 4084, 4085, 4085, 4086, 4086, 4018, 4018,
1672
1673      4086, 4086, 4086, 4086, 4018, 4018, 4017, 4017, 4017, 4017,
1674      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1675      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1676      4017, 4017, 4017, 4017, 4017, 4017, 4087, 4017, 4017, 4087,
1677      4087, 4017, 4017, 4017,  344, 4017,  346,  344,  347,  346,
1678      4017, 4017, 4017, 4088, 4017, 4017, 4088, 4088, 4088, 4017,
1679      4017,  346,  346,  346, 4017, 4017, 4017, 4089, 4017, 4017,
1680      4089, 4089, 4089, 4089, 4089, 4017, 4017,  346,  346,  346,
1681      4017, 4017, 4017, 4090, 4017, 4017, 4090, 4017, 4017, 4017,
1682      4017, 4017, 4017, 4091, 4017, 4017, 4091, 4091, 4091, 4017,
1683
1684      4017, 4017, 4017, 4017, 4017, 4092, 4017, 4017, 4092, 4092,
1685      4092, 4017, 4017,  346,  346, 4017, 4017, 4017, 4093, 4017,
1686      4017, 4093, 4093, 4017, 4017,  346,  346, 4017, 4017, 4017,
1687      4094, 4017, 4017, 4094, 4094, 4094, 4017, 4017,  346,  346,
1688      4017, 4017, 4017, 4095, 4017, 4017, 4095, 4095, 4095, 4095,
1689      4095, 4095, 4017, 4017, 4017, 4017, 4017, 4017, 4096, 4017,
1690      4017, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4017,
1691      4017,  346,  346, 4017, 4017, 4017, 4097, 4017, 4017, 4097,
1692      4017, 4017,  346,  346, 4017, 4017, 4017, 4098, 4017, 4017,
1693      4098, 4098, 4098, 4098, 4098, 4017, 4017,  346,  346,  346,
1694
1695      4017, 4017, 4017, 4099, 4017, 4017, 4099, 4099, 4099, 4017,
1696      4017, 4017, 4017, 4017, 4017, 4100, 4017, 4017, 4100, 4017,
1697      4017,  346,  522,  346, 4017, 4017, 4017, 4101, 4017, 4017,
1698      4101, 4101, 4101, 4101, 4017, 4017,  346,  346, 4017, 4017,
1699      4017, 4102, 4017, 4017, 4102, 4102, 4017, 4017, 4017, 4017,
1700      4017, 4017, 4103, 4017, 4017, 4103, 4103, 4017, 4017, 4017,
1701      4017, 4017, 4017, 4104, 4017, 4017, 4104, 4104, 4017, 4017,
1702      4017, 4017, 4017, 4017, 4105, 4017, 4017, 4105, 4105, 4105,
1703      4105, 4105, 4105, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1704      4106, 4017, 4017, 4106, 4017, 4017,  522,  597,  346,  346,
1705
1706       346,  346, 4017, 4017, 4017, 4107, 4017, 4017, 4107, 4107,
1707      4107, 4107, 4107, 4017, 4017,  346,  346, 4017, 4017, 4017,
1708      4108, 4017, 4017, 4108, 4108, 4017, 4017, 4017, 4017, 4017,
1709      4017, 4109, 4017, 4017, 4109, 4109, 4109, 4109, 4109, 4017,
1710      4017, 4017, 4017, 4017, 4017, 4110, 4017, 4017, 4110, 4110,
1711      4017, 4017,  346,  346, 4017, 4017, 4017, 4111, 4017, 4017,
1712      4111, 4111, 4017, 4017, 4017, 4017, 4017, 4017, 4112, 4017,
1713      4017, 4112, 4112, 4112, 4112, 4017, 4017,  346,  346, 4017,
1714      4017, 4017, 4113, 4017, 4017, 4113, 4113, 4113, 4113, 4017,
1715      4017,  346,  346,  346, 4017, 4017, 4017, 4114, 4017, 4017,
1716
1717      4114, 4114, 4114, 4017, 4017, 4017, 4017, 4017, 4115, 4017,
1718      4017, 4115, 4115, 4115, 4017, 4017, 4017, 4017, 4017, 4017,
1719      4116, 4017, 4017, 4116, 4116, 4017, 4017, 4017,  728,  346,
1720       522,  731,  346,  730,  346,  730,  731,  737,  736,  346,
1721      4017, 4017, 4017, 4117, 4017, 4017, 4117, 4117, 4117, 4017,
1722      4017,  346,  346, 4017, 4118, 4017, 4017, 4017, 4017, 4017,
1723      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4119,
1724      4119, 4119, 4120, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1725      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1726      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1727
1728      4017, 4017, 4017, 4017, 4017, 4017, 4121, 4121, 4121, 4121,
1729      4121, 4122, 4017, 4017, 4123, 4123, 4123, 4123, 4123, 4123,
1730      4124, 4017, 4017, 4125, 4125, 4126, 4017, 4127, 4127, 4127,
1731      4127, 4128, 4017, 4129, 4129, 4129, 4129, 4130, 4017, 4131,
1732      4131, 4131, 4132, 4017, 4133, 4133, 4133, 4133, 4134, 4017,
1733      4135, 4135, 4135, 4135, 4135, 4135, 4135, 4135, 4136, 4017,
1734      4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137, 4137,
1735      4137, 4137, 4137, 4137, 4137, 4138, 4017, 4139, 4139, 4140,
1736      4017, 4141, 4141, 4141, 4141, 4141, 4141, 4141, 4142, 4017,
1737      4017, 4143, 4143, 4143, 4143, 4144, 4017, 4145, 4145, 4146,
1738
1739      4017, 4017, 4017, 4147, 4147, 4147, 4147, 4147, 4147, 4148,
1740      4017, 4149, 4149, 4149, 4150, 4017, 4151, 4151, 4151, 4152,
1741      4017, 4153, 4153, 4153, 4154, 4017, 4155, 4155, 4155, 4155,
1742      4155, 4155, 4155, 4155, 4156, 4017, 4017, 4157, 4157, 4158,
1743      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4159, 4159, 4159,
1744      4159, 4159, 4159, 4160, 4017, 4161, 4161, 4161, 4162, 4017,
1745      4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4164,
1746      4017, 4165, 4165, 4165, 4165, 4166, 4017, 4167, 4167, 4167,
1747      4168, 4017, 4169, 4169, 4169, 4169, 4169, 4170, 4017, 4171,
1748      4171, 4171, 4171, 4171, 4172, 4017, 4017, 4173, 4173, 4173,
1749
1750      4173, 4017, 4174, 4017, 4017, 4175, 4175, 4175, 4175, 4176,
1751      4017, 4177, 4177, 4177, 4178, 4017, 4017, 4017, 4017, 4017,
1752      4017, 4017, 4179, 4179, 4179, 4179, 4179, 4180, 4181, 4017,
1753      4181, 4017, 4017, 4017, 4182, 4017, 4017, 4017, 4017, 4017,
1754      4017, 4017, 4017, 4183, 4184, 4184, 4017, 4017, 4017, 4017,
1755      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1756      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1757      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1758      4017, 4017, 4017, 4017, 4185, 4185, 4185, 4185, 4186, 4186,
1759      4017, 4187, 4187, 4187, 4187, 4187, 4188, 4188, 4017, 4189,
1760
1761      4190, 4190, 4191, 4017, 4017, 4191, 4192, 4192, 4193, 4193,
1762      4193, 4194, 4194, 4195, 4195, 4196, 4196, 4197, 4197, 4197,
1763      4198, 4198, 4017, 4017, 4017, 4017, 4199, 4199, 4199, 4199,
1764      4199, 4200, 4200, 4201, 4017, 4017, 4201, 4017, 4017, 4201,
1765      4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201, 4201, 4202,
1766      4202, 4017, 4017, 4203, 4203, 4204, 4204, 4204, 4017, 4017,
1767      4204, 4204, 4204, 4205, 4205, 4017, 4206, 4017, 4017, 4017,
1768      4017, 4207, 4207, 4208, 4209, 4209, 4017, 4017, 4210, 4017,
1769      4017, 4210, 4210, 4210, 4211, 4211, 4212, 4017, 4017, 4213,
1770      4213, 4017, 4017, 4214, 4215, 4215, 4216, 4216, 4217, 4217,
1771
1772      4218, 4218, 4218, 4017, 4017, 4218, 4218, 4218, 4219, 4219,
1773      4017, 4220, 4221, 4221, 4017, 4017, 4017, 4017, 4222, 4222,
1774      4222, 4222, 4222, 4223, 4223, 4017, 4017, 4224, 4225, 4225,
1775      4226, 4017, 4017, 4226, 4226, 4226, 4226, 4226, 4226, 4227,
1776      4227, 4228, 4228, 4228, 4229, 4229, 4230, 4017, 4017, 4231,
1777      4231, 4232, 4232, 4017, 4017, 4232, 4233, 4233, 4234, 4017,
1778      4017, 4234, 4234, 4235, 4235, 4017, 4236, 4017, 4017, 4236,
1779      4017, 4237, 4237, 4017, 4238, 4238, 4238, 4239, 4239, 4017,
1780      4017, 4240, 4241, 4241, 4017, 4017, 4017, 4242, 4242, 4242,
1781      4242, 4243, 4243, 4244, 4017, 4017, 4244, 4017, 4017, 4245,
1782
1783      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4246, 4017,
1784      4247, 4017, 4247, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1785      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1786      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1787      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1788      4017, 4017, 4017, 4017, 4017, 4248, 4248, 4017, 4017, 4248,
1789      4017, 4249, 4017, 4249, 4017, 4250, 4250, 4250, 4250, 4250,
1790      4017, 4251, 4017, 4251, 4017, 4252, 4017, 4253, 4017, 4253,
1791      4254, 4017, 4017, 4017, 4254, 4017, 4255, 4017, 4255, 4017,
1792      4017, 4256, 4256, 4017, 4017, 4017, 4257, 4017, 4257, 4017,
1793
1794      4017, 4017, 4017, 4017, 4258, 4017, 4258, 4017, 4017, 4259,
1795      4259, 4017, 4017, 4017, 4260, 4017, 4260, 4017, 4017, 4017,
1796      4017, 4017, 4017, 4017, 4017, 4261, 4261, 4261, 4261, 4017,
1797      4262, 4017, 4262, 4263, 4263, 4263, 4017, 4017, 4017, 4263,
1798      4017, 4017, 4017, 4017, 4017, 4263, 4263, 4263, 4263, 4263,
1799      4263, 4263, 4263, 4263, 4017, 4264, 4017, 4264, 4017, 4017,
1800      4017, 4017, 4265, 4017, 4265, 4266, 4266, 4266, 4017, 4017,
1801      4017, 4266, 4266, 4266, 4017, 4267, 4017, 4267, 4017, 4268,
1802      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4269, 4017, 4269,
1803      4270, 4017, 4271, 4017, 4271, 4017, 4272, 4017, 4017, 4017,
1804
1805      4272, 4272, 4272, 4017, 4273, 4017, 4273, 4274, 4017, 4017,
1806      4017, 4017, 4275, 4017, 4275, 4017, 4017, 4017, 4276, 4017,
1807      4277, 4017, 4277, 4278, 4278, 4017, 4279, 4017, 4279, 4280,
1808      4280, 4280, 4280, 4017, 4017, 4017, 4017, 4017, 4280, 4280,
1809      4017, 4281, 4017, 4281, 4017, 4282, 4017, 4283, 4017, 4283,
1810      4017, 4017, 4017, 4017, 4284, 4284, 4284, 4284, 4284, 4017,
1811      4285, 4017, 4285, 4017, 4017, 4017, 4286, 4017, 4287, 4017,
1812      4287, 4288, 4017, 4017, 4017, 4017, 4017, 4288, 4017, 4017,
1813      4288, 4288, 4288, 4017, 4289, 4017, 4289, 4017, 4017, 4017,
1814      4017, 4290, 4017, 4291, 4017, 4291, 4292, 4017, 4017, 4017,
1815
1816      4017, 4293, 4017, 4293, 4294, 4294, 4017, 4017, 4017, 4294,
1817      4017, 4295, 4017, 4295, 4296, 4017, 4017, 4017, 4296, 4296,
1818      4017, 4297, 4017, 4297, 4017, 4298, 4017, 4017, 4017, 4298,
1819      4017, 4017, 4299, 4017, 4299, 4300, 4300, 4300, 4017, 4301,
1820      4017, 4301, 4017, 4017, 4017, 4302, 4017, 4303, 4017, 4303,
1821      4017, 4017, 4017, 4017, 4017, 4304, 4304, 4017, 4017, 4304,
1822      4017, 4305, 4017, 4305, 4306, 4307, 4017, 4017, 4017, 4017,
1823      4308, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1824      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1825      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1826
1827      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1828      4017, 4017, 4017, 4017, 4017, 4309, 4309, 4017, 4017, 4017,
1829      4309, 4310, 4017, 4311, 4017, 4017, 4311, 4311, 4311, 4312,
1830      4017, 4313, 4314, 4315, 4315, 4316, 4017, 4017, 4017, 4317,
1831      4317, 4017, 4017, 4017, 4318, 4017, 4017, 4017, 4017, 4017,
1832      4017, 4319, 4017, 4017, 4017, 4320, 4320, 4017, 4017, 4017,
1833      4321, 4017, 4017, 4017, 4322, 4322, 4322, 4322, 4323, 4324,
1834      4324, 4324, 4017, 4017, 4017, 4017, 4017, 4324, 4324, 4324,
1835      4324, 4324, 4324, 4324, 4324, 4324, 4324, 4325, 4326, 4327,
1836      4327, 4017, 4017, 4327, 4327, 4327, 4328, 4017, 4017, 4017,
1837
1838      4329, 4017, 4017, 4330, 4017, 4331, 4331, 4331, 4331, 4332,
1839      4333, 4334, 4335, 4336, 4017, 4017, 4337, 4338, 4339, 4339,
1840      4339, 4339, 4017, 4017, 4017, 4339, 4339, 4340, 4017, 4341,
1841      4342, 4017, 4017, 4017, 4017, 4343, 4017, 4017, 4343, 4343,
1842      4343, 4344, 4345, 4346, 4347, 4017, 4017, 4017, 4017, 4017,
1843      4017, 4017, 4017, 4347, 4017, 4017, 4347, 4348, 4017, 4017,
1844      4017, 4017, 4017, 4017, 4349, 4350, 4351, 4352, 4353, 4353,
1845      4353, 4354, 4355, 4355, 4017, 4017, 4356, 4017, 4017, 4017,
1846      4357, 4017, 4358, 4359, 4017, 4017, 4359, 4360, 4361, 4362,
1847      4017, 4017, 4017, 4017, 4017, 4017, 4363, 4363, 4017, 4017,
1848
1849      4017, 4363, 4364, 4365, 4366, 4366, 4017, 4366, 4017, 4017,
1850      4367, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1851      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1852      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1853      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1854      4017, 4017, 4017, 4017, 4368, 4368, 4368, 4369, 4017, 4370,
1855      4017, 4017, 4017, 4370, 4370, 4370, 4371, 4017, 4017, 4017,
1856      4372, 4373, 4373, 4374, 4375, 4375, 4376, 4377, 4378, 4378,
1857      4379, 4380, 4380, 4017, 4017, 4380, 4381, 4017, 4017, 4382,
1858      4382, 4017, 4017, 4017, 4382, 4382, 4382, 4382, 4382, 4382,
1859
1860      4017, 4017, 4382, 4382, 4382, 4383, 4384, 4385, 4385, 4017,
1861      4017, 4017, 4385, 4017, 4017, 4385, 4386, 4017, 4017, 4017,
1862      4017, 4387, 4017, 4017, 4017, 4388, 4389, 4389, 4389, 4389,
1863      4390, 4391, 4392, 4017, 4017, 4393, 4017, 4017, 4017, 4394,
1864      4395, 4396, 4017, 4017, 4396, 4396, 4017, 4017, 4396, 4397,
1865      4017, 4398, 4399, 4017, 4017, 4017, 4017, 4400, 4017, 4017,
1866      4017, 4400, 4400, 4400, 4401, 4017, 4017, 4402, 4403, 4017,
1867      4017, 4017, 4403, 4017, 4017, 4017, 4403, 4404, 4405, 4406,
1868      4407, 4408, 4409, 4409, 4409, 4410, 4411, 4017, 4017, 4017,
1869      4017, 4017, 4412, 4017, 4017, 4017, 4017, 4413, 4017, 4414,
1870
1871      4415, 4017, 4017, 4017, 4017, 4017, 4416, 4417, 4418, 4017,
1872      4017, 4017, 4419, 4419, 4419, 4420, 4421, 4422, 4422, 4017,
1873      4423, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1874      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1875      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1876      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1877      4424, 4425, 4017, 4426, 4426, 4426, 4426, 4427, 4017, 4017,
1878      4017, 4017, 4428, 4429, 4429, 4430, 4017, 4017, 4017, 4017,
1879      4431, 4432, 4017, 4017, 4017, 4017, 4433, 4017, 4017, 4434,
1880      4017, 4017, 4017, 4017, 4017, 4435, 4017, 4017, 4017, 4017,
1881
1882      4017, 4436, 4436, 4436, 4017, 4017, 4436, 4436, 4436, 4017,
1883      4017, 4017, 4017, 4017, 4436, 4436, 4437, 4438, 4439, 4439,
1884      4017, 4017, 4017, 4017, 4017, 4439, 4017, 4017, 4017, 4440,
1885      4441, 4442, 4442, 4442, 4442, 4017, 4017, 4443, 4444, 4017,
1886      4017, 4017, 4445, 4446, 4447, 4448, 4017, 4017, 4017, 4017,
1887      4017, 4448, 4017, 4017, 4017, 4448, 4017, 4017, 4017, 4449,
1888      4450, 4017, 4017, 4017, 4017, 4451, 4451, 4451, 4451, 4452,
1889      4017, 4017, 4017, 4017, 4017, 4453, 4453, 4453, 4454, 4455,
1890      4456, 4457, 4458, 4017, 4017, 4459, 4017, 4017, 4460, 4461,
1891      4017, 4017, 4017, 4462, 4017, 4463, 4017, 4464, 4465, 4017,
1892
1893      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1894      4466, 4467, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1895      4017, 4468, 4469, 4470, 4471, 4471, 4017, 4017, 4017, 4017,
1896      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1897      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1898      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1899      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4472, 4473, 4017,
1900      4474, 4474, 4474, 4474, 4017, 4017, 4017, 4475, 4476, 4017,
1901      4017, 4477, 4017, 4017, 4017, 4017, 4017, 4017, 4478, 4479,
1902      4017, 4017, 4017, 4017, 4017, 4017, 4480, 4017, 4017, 4017,
1903
1904      4017, 4017, 4017, 4017, 4017, 4481, 4017, 4017, 4017, 4482,
1905      4482, 4482, 4017, 4017, 4017, 4017, 4017, 4482, 4482, 4017,
1906      4017, 4017, 4482, 4482, 4483, 4484, 4485, 4485, 4017, 4017,
1907      4017, 4485, 4486, 4487, 4488, 4017, 4017, 4488, 4488, 4488,
1908      4489, 4490, 4491, 4492, 4017, 4017, 4493, 4017, 4017, 4017,
1909      4493, 4493, 4017, 4017, 4017, 4494, 4017, 4017, 4017, 4495,
1910      4495, 4495, 4495, 4496, 4497, 4017, 4017, 4497, 4498, 4499,
1911      4017, 4017, 4500, 4501, 4017, 4017, 4017, 4017, 4017, 4017,
1912      4017, 4017, 4502, 4017, 4017, 4503, 4017, 4504, 4017, 4017,
1913      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1914
1915      4017, 4017, 4017, 4505, 4017, 4017, 4017, 4017, 4017, 4017,
1916      4017, 4017, 4506, 4507, 4508, 4509, 4509, 4017, 4017, 4017,
1917      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1918      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1919      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1920      4017, 4510, 4511, 4017, 4017, 4017, 4512, 4512, 4512, 4017,
1921      4513, 4514, 4017, 4017, 4017, 4515, 4516, 4517, 4518, 4017,
1922      4017, 4017, 4519, 4520, 4520, 4520, 4017, 4017, 4017, 4520,
1923      4520, 4520, 4017, 4017, 4521, 4017, 4017, 4522, 4522, 4522,
1924      4523, 4524, 4525, 4017, 4017, 4017, 4525, 4525, 4525, 4526,
1925
1926      4527, 4528, 4529, 4530, 4530, 4530, 4017, 4017, 4017, 4017,
1927      4531, 4017, 4017, 4017, 4532, 4532, 4532, 4533, 4534, 4017,
1928      4017, 4017, 4534, 4017, 4017, 4535, 4536, 4017, 4017, 4017,
1929      4017, 4017, 4537, 4017, 4017, 4017, 4538, 4017, 4539, 4017,
1930      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1931      4017, 4017, 4017, 4540, 4017, 4017, 4017, 4541, 4542, 4543,
1932      4544, 4544, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1933      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1934      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1935      4017, 4017, 4545, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1936
1937      4017, 4546, 4546, 4017, 4547, 4017, 4017, 4548, 4549, 4550,
1938      4551, 4017, 4017, 4552, 4552, 4552, 4552, 4017, 4017, 4552,
1939      4552, 4017, 4017, 4017, 4017, 4017, 4553, 4553, 4553, 4554,
1940      4017, 4017, 4017, 4017, 4555, 4555, 4555, 4555, 4017, 4017,
1941      4556, 4557, 4017, 4017, 4558, 4558, 4558, 4017, 4559, 4017,
1942      4017, 4017, 4017, 4017, 4560, 4560, 4017, 4017, 4017, 4017,
1943      4561, 4562, 4563, 4017, 4017, 4538, 4017, 4539, 4017, 4017,
1944      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4540, 4017,
1945      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4541,
1946      4542, 4543, 4544, 4544, 4017, 4017, 4017, 4017, 4017, 4017,
1947
1948      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1949      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1950      4017, 4545, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1951      4017, 4017, 4017, 4017, 4017, 4017, 4549, 4550, 4551, 4552,
1952      4552, 4552, 4552, 4017, 4017, 4017, 4552, 4552, 4017, 4017,
1953      4017, 4017, 4017, 4017, 4553, 4553, 4017, 4017, 4554, 4017,
1954      4017, 4017, 4555, 4555, 4555, 4017, 4017, 4017, 4017, 4017,
1955      4017, 4017, 4557, 4017, 4017, 4017, 4558, 4558, 4017, 4017,
1956      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1957      4017, 4017, 4561, 4562, 4563, 4538, 4017, 4539, 4017, 4017,
1958
1959      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4540, 4017,
1960      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1961      4017, 4541, 4542, 4543, 4544, 4544, 4017, 4017, 4017, 4017,
1962      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1963      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1964      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4549, 4550, 4551,
1965      4552, 4552, 4017, 4017, 4552, 4552, 4552, 4017, 4017, 4017,
1966      4017, 4017, 4017, 4017, 4017, 4553, 4017, 4017, 4017, 4017,
1967      4017, 4017, 4017, 4555, 4555, 4555, 4017, 4017, 4017, 4017,
1968      4017, 4017, 4017, 4017, 4017, 4557, 4558, 4017, 4017, 4017,
1969
1970      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1971      4017, 4017, 4017, 4017, 4561, 4017, 4017, 4017, 4017, 4538,
1972      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1973      4017, 4017, 4017, 4540, 4017, 4017, 4017, 4017, 4017, 4017,
1974      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1975      4543, 4544, 4544, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1976      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1977      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1978      4017, 4017, 4549, 4550, 4551, 4552, 4017, 4017, 4017, 4017,
1979      4017, 4017, 4017, 4552, 4552, 4017, 4017, 4017, 4017, 4017,
1980
1981      4017, 4017, 4017, 4553, 4017, 4017, 4017, 4555, 4017, 4017,
1982      4555, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4558,
1983      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1984      4017, 4017, 4017, 4017, 4017, 4561, 4017, 4017, 4017, 4017,
1985      4017, 4017, 4538, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1986      4017, 4017, 4017, 4017, 4540, 4017, 4017, 4017, 4017, 4017,
1987      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1988      4543, 4544, 4544, 4544, 4017, 4017, 4017, 4017, 4017, 4017,
1989      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1990      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1991
1992      4017, 4017, 4017, 4017, 4017, 4017, 4549, 4017, 4017, 4551,
1993      4552, 4017, 4017, 4017, 4017, 4017, 4017, 4552, 4552, 4017,
1994      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4553, 4555, 4017,
1995      4017, 4017, 4555, 4017, 4017, 4017, 4017, 4017, 4017, 4558,
1996      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1997      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1998      4017, 4017, 4538, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
1999      4017, 4540, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2000      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2001      4017, 4017, 4543, 4544, 4544, 4544, 4564, 4565, 4017, 4017,
2002
2003      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2004      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2005      4017, 4017, 4017, 4017, 4549, 4551, 4552, 4017, 4017, 4552,
2006      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4553, 4017,
2007      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4558, 4017, 4017,
2008      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2009      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2010      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4540,
2011      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2012      4017, 4017, 4017, 4017, 4017, 4017, 4543, 4544, 4566, 4567,
2013
2014      4564, 4565, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2015      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2016      4017, 4017, 4017, 4017, 4551, 4552, 4017, 4017, 4017, 4017,
2017      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4553, 4017, 4017,
2018      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4558, 4017,
2019      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2020      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2021      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2022      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2023      4017, 4543, 4566, 4544, 4568, 4567, 4569, 4544, 4017, 4017,
2024
2025      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2026      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4551, 4552,
2027      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2028      4017, 4553, 4017, 4017, 4017, 4017, 4558, 4017, 4017, 4017,
2029      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2030      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2031      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4543, 4568, 4017,
2032      4569, 4544, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2033      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2034      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2035
2036      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2037      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2038      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4543, 4017,
2039      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2040      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2041      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2042      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2043      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2044      4017, 4017, 4017, 4543, 4017, 4017, 4017, 4017, 4017, 4017,
2045      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2046
2047      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2048      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2049      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4543,
2050      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2051      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2052      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2053      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4543, 4017,
2054      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2055      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2056      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2057
2058      4017, 4017, 4017, 4017, 4017, 4543, 4017, 4017, 4017, 4017,
2059      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2060      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2061      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4543, 4017,
2062      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2063      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2064      4017, 4017, 4017, 4543, 4017, 4017, 4017, 4017, 4017, 4017,
2065      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2066      4543, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2067      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4543, 4543, 4017,
2068
2069      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4543,
2070      4543, 4017, 4017, 4017, 4017, 4543, 4543, 4543, 4543, 4543,
2071      4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543,
2072      4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543,
2073      4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543,
2074      4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543,
2075      4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543,
2076      4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543,
2077      4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543,
2078      4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543,
2079
2080      4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543,
2081      4543, 4543, 4543, 4543, 4543, 4017,    0, 4017, 4017, 4017,
2082      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2083      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2084      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2085      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2086      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2087      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2088      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2089      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2090
2091      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2092      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2093      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2094      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2095      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2096      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2097      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2098      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2099      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2100      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2101
2102      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2103      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2104      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2105      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2106      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2107      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2108      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2109      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2110      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2111      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2112
2113      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2114      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2115      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2116      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2117      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2118      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2119      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2120      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2121      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2122      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2123
2124      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2125      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2126      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2127      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2128      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2129      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2130      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2131      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2132      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2133      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2134
2135      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2136      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2137      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2138      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2139      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2140      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
2141      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017
2142     } ;
2143
2144 static const flex_int16_t yy_nxt[14006] =
2145     {   0,
2146      4017,  310,  311,  310,  310,  311,  310,  310,  311,  310,
2147       310,  311,  310,  315,  311,  315,  321,  312,  318,  321,
2148       312,  318, 1030,  313, 4017,  319,  313,  821,  319,  316,
2149       315,  311,  315,  755,  322,  324,  325,  322,  324,  325,
2150       326,  327,  773,  326,  327,  755,  316,  331,  332,  756,
2151       328,  324,  325,  328,  329,  758,  326,  324,  325, 1271,
2152       329,  757,  326,  331,  332,  822,  328,  343,  311,  343,
2153      1821,  757,  328,  343,  311,  343,  870,  343,  311,  343,
2154       343,  311,  343,  344,  311,  311,  311,  810, 1822,  344,
2155       871,  758,  333,  345,  811,  801,  345,  754,  754,  754,
2156
2157       346,  754,  754,  754,  754,  754,  754,  757,  333,  334,
2158       335,  311,  335,  334,  334,  334,  334,  334,  334,  334,
2159       336,  334,  334,  334,  758,  334,  338,  334,  339,  334,
2160       311,  311,  311,  343,  311,  343,  343,  311,  343,  866,
2161       757,  343,  311,  343,  813,  857,  346,  867,  801,  344,
2162       858, 1036,  344,  868, 1037,  334,  334,  347,  343,  311,
2163       343,  754,  754,  754,  812,  812,  340,  754,  754,  754,
2164       754,  754,  754, 1826,  347,  341,  334,  335,  311,  335,
2165       334,  334,  334,  334,  334,  334,  334,  336,  334,  334,
2166       334,  862,  334,  338,  334,  339,  334,  311,  311,  311,
2167
2168       311,  311,  311,  343,  311,  343,  324,  325,  343,  311,
2169       343,  326,  863,  348,  813,  758,  348,  801,  801,  345,
2170       908,  704,  334,  334,  345,  311,  311,  311,  311,  311,
2171       311,  757,  909,  340,  343,  311,  343,  343,  311,  343,
2172      1157,  349,  341, 1158,  349,  343,  311,  343,  821, 1827,
2173       347,  705,  758,  347,  343,  311,  343,  754,  754,  754,
2174       838,  350,  754,  754,  754,  754,  754,  754,  757,  954,
2175       350,  351,  352,  311,  352,  351,  351,  351,  351,  351,
2176       351,  351,  353,  351,  351,  351,  758,  351,  355,  351,
2177       356,  351,  361,  311,  361,  361,  311,  361,  311,  311,
2178
2179       311,  801,  757,  311,  311,  311,  887,  822,  362,  758,
2180       888,  362, 1829,  801,  363, 1830,  826,  351,  351,  363,
2181       361,  311,  361,  357,  889,  757,  358,  754,  754,  754,
2182       754,  754,  754,  754,  754,  754,  362, 1832,  359,  351,
2183       352,  311,  352,  351,  351,  351,  351,  351,  351,  351,
2184       353,  351,  351,  351,  758,  351,  355,  351,  356,  351,
2185       361,  311,  361,  361,  311,  361,  361,  311,  361, 1052,
2186       757,  377,  311,  377,  890, 1833,  362,  758, 1835,  364,
2187      1053, 1050,  364, 1054,  832,  351,  351,  378,  377,  311,
2188       377,  357,  843,  757,  358,  754,  754,  754,  754,  754,
2189
2190       754,  754,  754,  754,  378, 1051,  359,  365,  366,  311,
2191       366,  365,  365,  365,  365,  365,  365,  365,  367,  365,
2192       365,  365,  758,  365,  369,  365,  370,  365,  311,  311,
2193       311,  311,  311,  311,  377,  311,  377,  849,  757,  377,
2194       311,  377, 1531,  758,  379,  801,  758,  379, 1532,  758,
2195       378, 1836,  876,  365,  365,  378,  377,  311,  377,  757,
2196       995,  371,  757,  372,  838,  757,  373,  754,  754,  754,
2197       374, 1839,  380, 1840,  375,  365,  366,  311,  366,  365,
2198       365,  365,  365,  365,  365,  365,  367,  365,  365,  365,
2199       801,  365,  369,  365,  370,  365,  377,  311,  377,  389,
2200
2201       311,  389,  389,  311,  389,  801,  872,  401,  311,  401,
2202       996,  758,  380,  813,  873,  390, 1062,  801,  390,  874,
2203       880,  365,  365,  402,  401,  311,  401,  757, 1689,  371,
2204      1063,  372,  843, 1841,  373,  754,  754,  754,  374, 1843,
2205       402, 1690,  375,  381,  382,  311,  382,  381,  381,  381,
2206       381,  381,  381,  381,  383,  381,  381,  381,  758,  381,
2207       385,  381,  386,  381,  413,  311,  413,  413,  311,  413,
2208       311,  311,  311,  801,  757,  311,  311,  311,  933, 1845,
2209       414,  813,  934,  414, 1854,  801,  363, 1857,  758,  381,
2210       381,  363,  413,  311,  413,  413,  311,  413,  754,  754,
2211
2212       754,  754,  754,  754,  757,  889,  849, 1865,  414, 1867,
2213      1869,  414, 1870,  387,  381,  382,  311,  382,  381,  381,
2214       381,  381,  381,  381,  381,  383,  381,  381,  381,  758,
2215       381,  385,  381,  386,  381,  413,  311,  413,  413,  311,
2216       413,  425,  311,  425, 1871,  757,  425,  311,  425,  974,
2217      1873,  415, 1874, 1878,  415,  813,  975,  426,  801,  801,
2218       381,  381,  426,  311,  311,  311,  311,  311,  311,  754,
2219       754,  754,  754,  754,  754,  754,  754,  754, 1882,  363,
2220       763, 1884,  363, 1887,  387,  391,  392,  311,  392,  391,
2221       391,  391,  391,  391,  391,  391,  393,  391,  391,  391,
2222
2223       758,  391,  395,  391,  396,  391,  425,  311,  425,  425,
2224       311,  425,  425,  311,  425,  777,  757,  425,  311,  425,
2225       758, 1889,  426,  764,  900,  426,  941,  859,  427,  765,
2226       795,  391,  391,  427,  766,  397,  757,  910,  940,  767,
2227       801,  946,  398, 1891,  785,  399,  391,  392,  311,  392,
2228       391,  391,  391,  391,  391,  391,  391,  393,  391,  391,
2229       391, 1069,  391,  395,  391,  396,  391,  438,  311,  438,
2230       438,  311,  438,  311,  311,  311,  941,  801,  311,  311,
2231       311, 1069, 1892,  439,  940, 1070,  439, 1893,  758,  363,
2232       801,  946,  391,  391,  363,  896,  397,  754,  754,  754,
2233
2234       754,  754,  754,  398,  757, 1051,  399,  403,  404,  311,
2235       404,  403,  403,  403,  403,  403,  403,  403,  405,  403,
2236       403,  403,  758,  403,  407,  403,  408,  403,  438,  311,
2237       438,  438,  311,  438,  438,  311,  438,  801,  757,  438,
2238       311,  438, 1026, 1897,  439,  758, 1062,  439, 1898, 1027,
2239       440, 1902,  915,  403,  403,  440,  454,  311,  454,  409,
2240      1077,  757,  410,  754,  754,  754,  754,  754,  754,  754,
2241       754,  754,  455, 1909,  411,  403,  404,  311,  404,  403,
2242       403,  403,  403,  403,  403,  403,  405,  403,  403,  403,
2243       758,  403,  407,  403,  408,  403,  454,  311,  454,  471,
2244
2245       311,  471,  471,  311,  471, 1071,  757,  311,  311,  311,
2246      1295, 1910,  455,  758, 1665,  472, 1072, 1050,  472, 1054,
2247       920,  403,  403,  346,  311,  311,  311,  409,  954,  757,
2248       410,  754,  754,  754,  754,  754,  754,  754,  754,  754,
2249       346, 1070,  411,  416,  417,  311,  417,  416,  416,  416,
2250       416,  416,  416,  416,  418,  416,  416,  416,  758,  416,
2251       420,  416,  421,  416,  471,  311,  471,  471,  311,  471,
2252       471,  311,  471,  968,  757,  471,  311,  471, 1911, 1912,
2253       472,  801, 1913,  472, 1914, 1050,  473, 1915,  969,  416,
2254       416,  473,  482,  311,  482,  422,  754,  754,  754,  754,
2255
2256       754,  754,  754,  754,  754,  754,  754,  754,  483, 1285,
2257       423,  416,  417,  311,  417,  416,  416,  416,  416,  416,
2258       416,  416,  418,  416,  416,  416,  758,  416,  420,  416,
2259       421,  416,  482,  311,  482,  311,  311,  311,  311,  311,
2260       311, 1062,  757,  482,  311,  482, 1916, 1917,  483, 1918,
2261      1919,  346, 1922, 1069,  346, 1082,  976,  416,  416,  483,
2262       482,  311,  482,  422,  754,  754,  754,  754,  754,  754,
2263       754,  754,  754,  754,  754,  754,  483, 1286,  423,  428,
2264       429,  311,  429,  428,  428,  428,  428,  428,  428,  428,
2265       430,  428,  428,  428,  758,  428,  432,  428,  433,  428,
2266
2267       482,  311,  482,  482,  311,  482,  497,  311,  497,  801,
2268       757,  497,  311,  497, 1925, 1926,  484,  758, 1062,  484,
2269      1928, 1050,  498, 1929,  925,  428,  428,  498,  311,  311,
2270       311,  434, 1084,  757,  435,  754,  754,  754,  754,  754,
2271       754,  754,  754,  754,  499, 1286,  436,  428,  429,  311,
2272       429,  428,  428,  428,  428,  428,  428,  428,  430,  428,
2273       428,  428,  758,  428,  432,  428,  433,  428,  311,  311,
2274       311,  497,  311,  497,  497,  311,  497, 1931,  757,  497,
2275       311,  497, 1932, 1933,  499,  758, 1934,  498, 1938, 1069,
2276       498,  758,  935,  428,  428,  500,  497,  311,  497,  434,
2277
2278       988,  757,  435,  754,  754,  754,  995,  757,  754,  754,
2279       754, 4017,  500, 1287,  436,  441,  442,  311,  442,  441,
2280       441,  441,  441,  441,  441,  441,  443,  441,  441,  441,
2281       758,  441,  445,  441,  446,  441,  511,  311,  511,  511,
2282       311,  511,  521,  311,  521, 1015,  757,  521,  311,  521,
2283       804,  936,  512,  801,  945,  512, 1218,  758,  522,  801,
2284      1028,  441,  441,  522,  787,  447,  805,  801,  797,  944,
2285      1077, 1015,  448,  757, 1939,  449,  754,  754,  754,  450,
2286      1940,  451,  452,  441,  442,  311,  442,  441,  441,  441,
2287       441,  441,  441,  441,  443,  441,  441,  441,  801,  441,
2288
2289       445,  441,  446,  441,  311,  311,  311,  311,  311,  311,
2290       521,  311,  521,  801,  964,  521,  311,  521,  965, 1941,
2291       523, 1942,  966,  523,  801,  758,  522, 1030,  785,  441,
2292       441,  522,  959,  447,  754,  754,  754,  754,  754,  754,
2293       448,  757, 1031,  449,  754,  754,  754,  450, 1945,  451,
2294       452,  456,  457,  311,  457,  456,  456,  456,  456,  456,
2295       456,  456,  458,  456,  456,  456,  758,  456,  460,  456,
2296       461,  456,  521,  311,  521,  521,  311,  521,  536,  311,
2297       536, 1048,  757,  536,  311,  536, 1948, 1949,  524, 1950,
2298      1953,  524, 1048,  758,  537, 1215, 1049,  456,  456,  537,
2299
2300       970,  462,  463,  754,  754,  754,  976, 1099,  464,  757,
2301      1049,  465,  754,  754,  754,  466, 1954,  467,  468,  469,
2302       456,  457,  311,  457,  456,  456,  456,  456,  456,  456,
2303       456,  458,  456,  456,  456,  758,  456,  460,  456,  461,
2304       456,  311,  311,  311,  311,  311,  311,  536,  311,  536,
2305      1052,  757,  536,  311,  536,  813, 1955,  346, 1326,  801,
2306       346, 1053,  758,  537, 1216, 1071,  456,  456,  537,  981,
2307       462,  463,  754,  754,  754, 1327, 1072,  464,  757, 1216,
2308       465,  754,  754,  754,  466, 4017,  467,  468,  469,  474,
2309       475,  311,  475,  474,  474,  474,  474,  474,  474,  474,
2310
2311       476,  474,  474,  474,  758,  474,  478,  474,  479,  474,
2312       536,  311,  536,  536,  311,  536,  548,  311,  548, 1786,
2313       757,  548,  311,  548,  804, 1956,  538, 1957,  758,  538,
2314      1960, 1787,  549, 1028,  780,  474,  474,  549,  754,  754,
2315       754,  754,  754,  754,  757,  940,  480,  474,  475,  311,
2316       475,  474,  474,  474,  474,  474,  474,  474,  476,  474,
2317       474,  474,  758,  474,  478,  474,  479,  474,  559,  311,
2318       559,  559,  311,  559,  570,  311,  570, 1052,  757,  570,
2319       311,  570,  813,  941,  560,  942,  801,  560, 1072, 1964,
2320       571, 1054, 1965,  474,  474,  571, 1966, 1968,  943, 1972,
2321
2322       944,  754,  754,  754,  480,  485,  486,  311,  486,  485,
2323       485,  485,  485,  485,  485,  485,  487,  485,  485,  485,
2324       758,  485,  489,  485,  490,  485,  585,  311,  585,  585,
2325       311,  585,  311,  311,  311, 1973,  757,  311,  311,  311,
2326      1975, 1295,  586, 1976,  758,  586, 1050, 1979,  587, 1015,
2327      1980,  485,  485,  587,  491,  758,  492,  754,  754,  754,
2328       757, 1904,  493,  754,  754,  754,  754,  754,  754,  494,
2329      1287,  757,  495,  485,  486,  311,  486,  485,  485,  485,
2330       485,  485,  485,  485,  487,  485,  485,  485, 1021,  485,
2331       489,  485,  490,  485,  596,  311,  596,  596,  311,  596,
2332
2333       596,  311,  596, 1982,  783,  596,  311,  596, 1983, 1986,
2334       597, 2008, 1295,  597, 2009, 2013,  598, 2016, 2018,  485,
2335       485,  598,  491, 2027,  492,  754,  754,  754, 1297, 2028,
2336       493,  754,  754,  754,  754,  754,  754,  494, 2029, 1326,
2337       495,  501,  502,  311,  502,  501,  501,  501,  501,  501,
2338       501,  501,  503,  501,  501,  501, 1479,  501,  505,  501,
2339       506,  501,  311,  311,  311,  311,  311,  311,  596,  311,
2340       596, 2030, 1689,  596,  311,  596, 2032, 1625,  599, 1002,
2341      2040,  599, 2042, 1834,  597, 1696, 1003,  501,  501,  597,
2342       596,  311,  596,  507, 1327,  757, 1696,  788,  508,  754,
2343
2344       754,  754,  754,  754,  754, 2045,  600,  754,  754,  754,
2345       509,  501,  502,  311,  502,  501,  501,  501,  501,  501,
2346       501,  501,  503,  501,  501,  501, 1019,  501,  505,  501,
2347       506,  501,  596,  311,  596,  311,  311,  311,  311,  311,
2348       311, 2046,  802,  596,  311,  596, 2049, 2051,  600,  758,
2349       798,  523, 2052, 2054,  523, 2055, 1010,  501,  501,  598,
2350       596,  311,  596,  507, 2056,  757, 2057, 2058,  508,  754,
2351       754,  754,  754,  754,  754, 2062,  598, 1314, 1314, 1314,
2352       509,  513,  514,  311,  514,  513,  513,  513,  513,  513,
2353       513,  513,  515,  513,  513,  513, 2063,  513,  517,  513,
2354
2355       518,  513,  311,  311,  311,  311,  311,  311,  596,  311,
2356       596, 2064, 1015,  596,  311,  596, 2069, 2073,  601, 1059,
2357      2077,  601,  774, 2079,  600, 2081, 1060,  513,  513,  600,
2358      2083, 2084, 1061, 2085, 2087,  519,  513,  514,  311,  514,
2359       513,  513,  513,  513,  513,  513,  513,  515,  513,  513,
2360       513, 1018,  513,  517,  513,  518,  513,  596,  311,  596,
2361       596,  311,  596,  615,  311,  615, 2094, 1059,  615,  311,
2362       615, 1434, 2098,  602, 1060,  786,  602, 2099, 2101,  616,
2363      1067, 1435,  513,  513,  616, 1034, 1034, 1034, 1436, 2108,
2364       519,  525,  526,  311,  526,  525,  525,  525,  525,  525,
2365
2366       525,  525,  527,  525,  525,  525, 2110,  525,  529,  525,
2367       530,  525,  311,  311,  311,  311,  311,  311,  615,  311,
2368       615, 2111, 1076,  615,  311,  615, 2112, 2113,  379, 1060,
2369      2114,  379, 2115, 1076,  616, 1061, 1059,  525,  525,  616,
2370      1060,  531, 1907, 1060, 2120, 1035, 1067, 2121,  532, 1217,
2371      2122,  533, 1034, 1034, 1034, 2124, 1299, 2125,  534,  525,
2372       526,  311,  526,  525,  525,  525,  525,  525,  525,  525,
2373       527,  525,  525,  525, 2126,  525,  529,  525,  530,  525,
2374       615,  311,  615,  615,  311,  615,  627,  311,  627, 2127,
2375      1076,  627,  311,  627, 2128, 2129,  617, 1060, 2130,  617,
2376
2377      2131, 2132,  628, 1217, 2133,  525,  525,  628, 2135,  531,
2378      1306, 1306, 1306, 2136, 1307, 2137,  532, 1308, 2140,  533,
2379      1337, 1337, 1337, 1927, 1927, 1927,  534,  539,  540,  311,
2380       540,  539,  539,  539,  539,  539,  539,  539,  541,  539,
2381       539,  539, 2143,  539,  543,  539,  544,  539,  641,  311,
2382       641,  641,  311,  641,  652,  311,  652, 2144, 1295,  652,
2383       311,  652, 2145, 2146,  642, 2147, 2148,  642, 2149, 2150,
2384       653, 2153, 2156,  539,  539,  653, 1314, 1314, 1314,  545,
2385      1920, 1920, 1920, 2117,  546,  539,  540,  311,  540,  539,
2386       539,  539,  539,  539,  539,  539,  541,  539,  539,  539,
2387
2388      2163,  539,  543,  539,  544,  539,  311,  311,  311,  311,
2389       311,  311,  652,  311,  652, 2164, 2165,  652,  311,  652,
2390      2166, 2167,  363, 2169, 2174,  363, 2175, 1921,  653, 2219,
2391      2220,  539,  539,  653, 1337, 1337, 1337,  545, 1337, 1337,
2392      1337, 1315,  546,  550,  551,  311,  551,  550,  550,  550,
2393       550,  550,  550,  550,  552,  550,  550,  550, 2226,  550,
2394       554,  550,  555,  550,  652,  311,  652,  652,  311,  652,
2395       664,  311,  664, 2232, 2233,  664,  311,  664, 2234, 2235,
2396       654, 2238, 2244,  654, 2246, 2252,  665, 2256, 2259,  550,
2397       550,  665,  677,  311,  677,  677,  311,  677, 2260, 1338,
2398
2399       556, 2263, 2264, 1315, 2265, 1382, 1382, 1382,  678, 1383,
2400      2266,  678, 1384,  557,  550,  551,  311,  551,  550,  550,
2401       550,  550,  550,  550,  550,  552,  550,  550,  550, 2267,
2402       550,  554,  550,  555,  550,  311,  311,  311,  311,  311,
2403       311,  677,  311,  677, 2268, 2269,  677,  311,  677, 2276,
2404      2277,  346, 2278, 2280,  346, 2282, 2290,  678, 2295, 2296,
2405       550,  550,  678,  677,  311,  677,  677,  311,  677, 2297,
2406      2299,  556, 2312, 1418, 1418, 1418, 2315, 1419, 2316,  679,
2407      1420, 2317,  679, 1295,  557,  561,  562,  311,  562,  561,
2408       561,  561,  561,  561,  561,  561,  563,  561,  561,  561,
2409
2410      2324,  561,  565,  561,  566,  561,  691,  311,  691,  691,
2411       311,  691,  311,  311,  311, 1907, 2329,  311,  311,  311,
2412      2330, 2331,  692, 2335, 2336,  692, 2338, 2332,  693, 2339,
2413      2340,  561,  561,  693,  691,  311,  691, 1421, 1421, 1421,
2414      1907, 1422, 2341, 2333, 1423, 2342, 2343,  567, 2346, 2326,
2415       692, 2334,  568,  561,  562,  311,  562,  561,  561,  561,
2416       561,  561,  561,  561,  563,  561,  561,  561, 2347,  561,
2417       565,  561,  566,  561,  691,  311,  691,  691,  311,  691,
2418       691,  311,  691, 2325, 2348,  716,  311,  716, 2349, 2350,
2419       692, 2354, 2355,  694, 2356, 2357,  694,  324,  325,  561,
2420
2421       561,  717,  326,  716,  311,  716, 1437, 1437, 1437, 2359,
2422      1438, 2360,  704, 1439, 2361,  567, 1923, 1923, 1923,  717,
2423       568,  572,  573,  311,  573,  572,  572,  572,  572,  572,
2424       572,  572,  574,  572,  572,  572, 2351,  572,  576,  572,
2425       577,  572,  705,  727,  311,  727,  727,  311,  727,  727,
2426       311,  727, 2352,  727,  311,  727, 1042, 1042, 1042,  728,
2427      2353, 2368,  728, 1924, 2370,  729, 2371,  572,  572,  729,
2428       578,  579,  580, 1043, 2372, 1441, 1441, 1441,  581, 1442,
2429      2373,  582, 1443, 2374, 2377, 1314, 1314, 1314,  583,  572,
2430       573,  311,  573,  572,  572,  572,  572,  572,  572,  572,
2431
2432       574,  572,  572,  572, 2379,  572,  576,  572,  577,  572,
2433       311,  311,  311,  311,  311,  311,  727,  311,  727, 2410,
2434      2411,  727,  311,  727, 2412, 2418,  346, 2419, 2423,  346,
2435      2424, 2427,  728, 2428, 2432,  572,  572,  728,  578,  579,
2436       580, 1459, 1459, 1459, 2435, 1460,  581, 2439, 1461,  582,
2437      1338, 1930, 1930, 1930, 2440, 2441,  583,  588,  589,  311,
2438       589,  588,  588,  588,  588,  588,  588,  588,  590,  588,
2439       588,  588, 2444,  588,  592,  588,  593,  588,  727,  311,
2440       727,  727,  311,  727,  311,  311,  311, 2447, 2451,  311,
2441       311,  311, 2452, 2453,  730, 2458, 2460,  730, 2461, 2462,
2442
2443       731, 2463, 2465,  588,  588,  731,  727,  311,  727,  727,
2444       311,  727, 1469, 1469, 1469, 2468, 1470, 2470, 2473, 1471,
2445      2487, 2488,  732, 2489, 2494,  732, 2495,  594,  588,  589,
2446       311,  589,  588,  588,  588,  588,  588,  588,  588,  590,
2447       588,  588,  588, 2498,  588,  592,  588,  593,  588,  727,
2448       311,  727,  727,  311,  727,  311,  311,  311, 2496, 2499,
2449       311,  311,  311, 2500, 2501,  733, 2497, 2503,  733, 2513,
2450      2332,  734, 2502, 2332,  588,  588,  734,  727,  311,  727,
2451       727,  311,  727, 1481, 1481, 1481, 2333, 1482, 2522, 2352,
2452      1483, 2523, 2524,  730, 2353, 2525,  730, 2353,  594,  603,
2453
2454       604,  311,  604,  603,  603,  603,  603,  603,  603,  603,
2455       605,  603,  603,  603, 2351,  603,  607,  603,  608,  603,
2456       311,  311,  311,  311,  311,  311,  727,  311,  727, 1295,
2457      2333,  727,  311,  727, 2526, 2515,  735, 2529, 2353,  735,
2458      2531, 2532,  733, 2533, 2537,  603,  603,  733,  727,  311,
2459       727, 1907, 2538,  609, 2540,  610, 2541, 2542,  611, 1937,
2460      1937, 1937,  612, 2543,  736, 1907,  613,  603,  604,  311,
2461       604,  603,  603,  603,  603,  603,  603,  603,  605,  603,
2462       603,  603, 2546,  603,  607,  603,  608,  603,  727,  311,
2463       727,  311,  311,  311,  311,  311,  311, 2516, 2517,  727,
2464
2465       311,  727, 2550, 2551,  736, 2552, 2554,  737, 2560, 2562,
2466       737, 2574, 2575,  603,  603,  738,  727,  311,  727, 2576,
2467      2580,  609, 2581,  610, 2582, 2588,  611, 1943, 1943, 1943,
2468       612, 2589,  738, 2590,  613,  618,  619,  311,  619,  618,
2469       618,  618,  618,  618,  618,  618,  620,  618,  618,  618,
2470      2593,  618,  622,  618,  623,  618,  311,  311,  311,  311,
2471       311,  311,  727,  311,  727, 2597, 2598,  727,  311,  727,
2472      2599, 2600,  739, 2603, 1944,  739, 2604, 2605,  736, 2606,
2473      2607,  618,  618,  736,  727,  311,  727,  727,  311,  727,
2474      2619, 2623,  624, 2626, 1484, 1484, 1484, 2627, 1485, 2638,
2475
2476       740, 1486, 2639,  740, 2640,  625,  618,  619,  311,  619,
2477       618,  618,  618,  618,  618,  618,  618,  620,  618,  618,
2478       618, 2644,  618,  622,  618,  623,  618,  751,  311,  751,
2479       751,  311,  751,  311,  311,  311, 2645, 2646,  311,  311,
2480       311, 2647, 2648,  752, 2649, 2650,  752, 2651, 2652,  363,
2481      2653, 2658,  618,  618,  363,  751,  311,  751,  751,  311,
2482       751, 2675, 2676,  624, 2677,  773, 1498, 1498, 1498, 2678,
2483      1499,  752, 1907, 1500,  752,  799,  625,  629,  630,  311,
2484       630,  629,  629,  629,  629,  629,  629,  629,  631,  629,
2485       629,  629, 1907,  629,  633,  629,  634,  629,  751,  311,
2486
2487       751,  751,  311,  751,  800, 1935, 1935, 1935, 1104, 1104,
2488      1104, 1310, 1310, 1310,  753, 2680, 2661,  753,  801, 2682,
2489       802, 1015,  785,  629,  629, 1105,  900, 2683,  803, 1312,
2490      2684,  799,  635, 2686,  636, 2687,  901, 2688,  637, 2689,
2491      2662, 1936, 2690,  638,  639,  629,  630,  311,  630,  629,
2492       629,  629,  629,  629,  629,  629,  631,  629,  629,  629,
2493      1017,  629,  633,  629,  634,  629,  777, 2691, 1123, 1123,
2494      1123, 2692,  779, 2693,  801, 1947, 1947, 1947,  785,  787,
2495      1125, 1125, 1125,  785,  803, 1124, 1135, 1135, 1135,  902,
2496      2714,  629,  629, 1138, 1138, 1138, 2715, 1126, 2720, 2721,
2497
2498       635, 2727,  636, 1136,  788, 2728,  637, 2123, 2123, 2123,
2499      1139,  638,  639,  643,  644,  311,  644,  643,  643,  643,
2500       643,  643,  643,  643,  645,  643,  643,  643, 2716,  643,
2501       647,  643,  648,  643, 1020, 1152, 1152, 1152, 2717,  778,
2502      2729, 1159, 1159, 1159, 1168, 1168, 1168,  801, 2745,  805,
2503       784, 2746, 1153, 1170, 1170, 1170, 2747,  798, 1160,  643,
2504       643, 1169, 1180, 1180, 1180,  649, 2762, 1509, 1509, 1509,
2505      1171, 1510, 2763, 2767, 1511, 2768, 1946, 1946, 1946, 1181,
2506       650,  643,  644,  311,  644,  643,  643,  643,  643,  643,
2507       643,  643,  645,  643,  643,  643, 2769,  643,  647,  643,
2508
2509       648,  643, 1188, 1188, 1188, 1192, 1192, 1192, 1204, 1204,
2510      1204, 2770, 1226, 1226, 1226, 1232, 1232, 1232, 2771, 1189,
2511      2772, 2773, 1193, 1924, 2774, 1205, 2775,  643,  643, 1227,
2512      2776, 2777, 1233,  649, 1516, 1516, 1516, 2778, 1517, 2790,
2513      2795, 1518, 2796, 1951, 1951, 1951, 2799, 2800,  650,  655,
2514       656,  311,  656,  655,  655,  655,  655,  655,  655,  655,
2515       657,  655,  655,  655, 2801,  655,  659,  655,  660,  655,
2516      1248, 1248, 1248, 1254, 1254, 1254, 1260, 1260, 1260, 1952,
2517      1268, 1268, 1268, 2797, 1280, 1280, 1280, 1249, 2802, 1907,
2518      1255, 2805, 2798, 1261, 2806,  655,  655, 1269, 2807, 1907,
2519
2520       661, 1281, 1951, 1951, 1951, 2808,  662,  655,  656,  311,
2521       656,  655,  655,  655,  655,  655,  655,  655,  657,  655,
2522       655,  655, 2793,  655,  659,  655,  660,  655, 1042, 1042,
2523      1042, 1354, 1354, 1354, 1358, 1358, 1358, 2794, 1936, 4017,
2524      4017, 4017, 4017, 4017, 4017, 1043, 2803, 2809, 1355, 2811,
2525      2812, 1359, 2813,  655,  655, 2804, 4017, 2815,  661, 4017,
2526      1920, 1920, 1920, 2816,  662,  666,  667,  311,  667,  666,
2527       666,  666,  666,  666,  666,  666,  668,  666,  666,  666,
2528      2817,  666,  670,  666,  671,  666, 1310, 1310, 1310, 2819,
2529      1356, 1361, 1361, 1361, 2820, 1361, 1361, 1361, 2822, 1371,
2530
2531      1371, 1371, 1360, 2840, 1312, 1357, 1371, 1371, 1371, 1363,
2532      2841,  666,  666, 1363,  672, 2842,  673, 1373, 2843, 1935,
2533      1935, 1935,  674, 1313, 1373, 2847, 2848, 1946, 1946, 1946,
2534      2855, 2856, 1364,  675,  666,  667,  311,  667,  666,  666,
2535       666,  666,  666,  666,  666,  668,  666,  666,  666, 2863,
2536       666,  670,  666,  671,  666, 1952, 1374, 1377, 1377, 1377,
2537      1377, 1377, 1377, 2864, 2865, 1104, 1104, 1104, 1386, 1386,
2538      1386, 1390, 1390, 1390, 1959, 1379, 2877, 2878, 1379, 2893,
2539       666,  666, 1105,  672, 2894,  673, 1388, 2895, 1391, 2897,
2540      2898,  674, 1534, 1534, 1534, 2899, 1535, 2900, 2901, 1536,
2541
2542      2902, 2903,  675,  680,  681,  311,  681,  680,  680,  680,
2543       680,  680,  680,  680,  682,  680,  680,  680, 2904,  680,
2544       684,  680,  685,  680, 2905, 1380, 2906, 1394, 1394, 1394,
2545      1396, 1396, 1396, 1396, 1396, 1396, 2907, 2908, 1386, 1386,
2546      1386, 4017, 4017, 4017, 1395, 1400, 1400, 1400, 1398,  680,
2547       680, 1398, 2910, 2300,  686, 2911, 1388, 2914, 4017, 2301,
2548       687, 2915, 1401, 2302,  688, 1923, 1923, 1923, 2916, 2303,
2549       689,  680,  681,  311,  681,  680,  680,  680,  680,  680,
2550       680,  680,  682,  680,  680,  680, 1389,  680,  684,  680,
2551       685,  680, 1392, 1402, 1402, 1402, 1404, 1404, 1404, 2917,
2552
2553      2912, 1404, 1404, 1404, 2920, 1399, 2849, 1393, 2850, 2913,
2554      1403, 1414, 1414, 1414, 1406, 2921, 2922,  680,  680, 1406,
2555      2927, 2851,  686, 1564, 1564, 1564, 2928, 1565,  687, 1416,
2556      1566, 2929,  688, 2134, 2134, 2134, 2930, 2931,  689,  695,
2557       696,  311,  696,  695,  695,  695,  695,  695,  695,  695,
2558       697,  695,  695,  695, 2932,  695,  699,  695,  700,  695,
2559      1408, 1408, 1408, 1412, 1412, 1412, 1414, 1414, 1414, 2918,
2560      1123, 1123, 1123, 1407, 4017, 4017, 4017, 1409, 2919, 2933,
2561      1413, 1125, 1125, 1125, 1416,  695,  695, 1124, 1573, 1573,
2562      1573, 4017, 1574,  701, 2934, 1575,  702, 1907, 1126, 1927,
2563
2564      1927, 1927, 2935,  703,  695,  696,  311,  696,  695,  695,
2565       695,  695,  695,  695,  695,  697,  695,  695,  695, 2936,
2566       695,  699,  695,  700,  695, 1410, 1424, 1424, 1424, 1907,
2567      2937, 4017, 4017, 4017, 2938, 4017, 4017, 4017, 1417, 2939,
2568      1411, 2926, 2940, 1425, 2941, 4017, 4017, 4017, 4017, 1295,
2569       695,  695, 4017, 1598, 1598, 1598, 2943, 1599,  701, 2944,
2570      1600,  702, 4017, 1930, 1930, 1930, 2945, 2925,  703,  706,
2571       707,  311,  707,  706,  706,  706,  706,  706,  706,  706,
2572       708,  706,  706,  706, 1426,  706,  710,  706,  711,  706,
2573      2924, 1427, 1430, 1430, 1430, 2946, 2947, 1428, 2948, 2949,
2574
2575      4017, 4017, 4017, 1135, 1135, 1135, 1138, 1138, 1138, 2961,
2576      1432, 1430, 1430, 1430, 2962,  706,  706, 4017, 2965, 2966,
2577      1136, 2967,  712, 1139, 2138, 2138, 2138, 2968,  713, 1432,
2578      1935, 1935, 1935, 1937, 1937, 1937, 2971,  714,  706,  707,
2579       311,  707,  706,  706,  706,  706,  706,  706,  706,  708,
2580       706,  706,  706, 1429,  706,  710,  706,  711,  706, 1433,
2581      1444, 1444, 1444, 1455, 1455, 1455, 1152, 1152, 1152, 1455,
2582      1455, 1455, 1462, 1462, 1462, 2972, 2975, 1445, 1462, 1462,
2583      1462, 1457, 2976, 1153,  706,  706, 2852, 1457, 2853, 2139,
2584      1464,  712, 1943, 1943, 1943, 2984, 1464,  713, 1607, 1607,
2585
2586      1607, 2854, 1608, 2985, 2986, 1609,  714,  718,  719,  311,
2587       719,  718,  718,  718,  718,  718,  718,  718,  720,  718,
2588       718,  718, 2997,  718,  722,  718,  723,  718, 1458, 1159,
2589      1159, 1159, 1475, 1475, 1475, 3015, 3024, 1475, 1475, 1475,
2590      1465, 1168, 1168, 1168, 3025, 2969, 1160, 1487, 1487, 1487,
2591      1477, 2973, 3026,  718,  718, 1477, 2970, 3027, 1169, 1616,
2592      1616, 1616, 2974, 1617,  724, 1489, 1618, 3028, 3029, 2141,
2593      2141, 2141, 3030,  725,  718,  719,  311,  719,  718,  718,
2594       718,  718,  718,  718,  718,  720,  718,  718,  718, 3031,
2595       718,  722,  718,  723,  718, 1170, 1170, 1170, 3032, 1478,
2596
2597      1487, 1487, 1487, 3033, 1492, 1492, 1492, 1492, 1492, 1492,
2598      3035, 3036, 1171, 1180, 1180, 1180, 2142, 3037, 1489, 2990,
2599       718,  718, 1494, 3038, 3039, 1494, 1946, 1946, 1946, 2991,
2600      1181,  724, 1627, 1627, 1627, 2992, 1628, 3040, 3041, 1629,
2601       725,  741,  742,  311,  742,  741,  741,  741,  741,  741,
2602       741,  741,  743,  741,  741,  741, 2993,  741,  745,  741,
2603       746,  741, 1490, 1504, 1504, 1504, 2994, 3042, 1495, 1188,
2604      1188, 1188, 2995, 3043, 1504, 1504, 1504, 1512, 1512, 1512,
2605      3044, 1506, 1512, 1512, 1512, 3045, 1189,  741,  741, 1192,
2606      1192, 1192, 1506,  747, 3046, 1514,  748, 1643, 1643, 1643,
2607
2608      1514, 1644, 3054, 3055, 1645, 1907, 1193, 1295,  749,  741,
2609       742,  311,  742,  741,  741,  741,  741,  741,  741,  741,
2610       743,  741,  741,  741, 3056,  741,  745,  741,  746,  741,
2611      1507, 1520, 1520, 1520, 1520, 1520, 1520, 3051, 1515, 1526,
2612      1526, 1526, 1526, 1526, 1526, 1204, 1204, 1204, 3052, 1522,
2613      3057, 3058, 1522, 3059, 3060,  741,  741, 1528, 3061, 3062,
2614      1528,  747, 1205, 3063,  748, 1537, 1537, 1537, 1541, 1541,
2615      1541, 3064, 3065, 1541, 1541, 1541,  749,  758, 1907, 1547,
2616      1547, 1547, 1538, 3066,  773, 3068, 1543, 1547, 1547, 1547,
2617      3069, 1543, 3070,  757,  774, 3071, 1523, 1549, 1560, 1560,
2618
2619      1560, 1560, 1560, 1560, 1529, 1549, 1947, 1947, 1947, 1226,
2620      1226, 1226, 3073, 1568, 1568, 1568, 1562, 2663, 2664, 1562,
2621      2665, 3053,  775,  776,  777, 1544, 1227, 3074, 2666,  778,
2622       779, 1570, 3075,  780,  781, 2667, 3079,  782, 3086,  783,
2623       784,  785, 1568, 1568, 1568, 3094, 1550,  786,  758, 3080,
2624      1232, 1232, 1232, 1576, 1576, 1576, 1579, 1579, 1579, 3009,
2625      1570, 1584, 1584, 1584,  757,  788, 1563, 1233, 3095, 3010,
2626      1577, 3081, 3011, 1580, 1584, 1584, 1584, 3096, 3097, 1586,
2627      1588, 1588, 1588, 3098, 3082, 1590, 1590, 1590, 3099, 4017,
2628      4017, 4017, 1586,  775,  789,  790, 3100, 1589, 3101, 3102,
2629
2630       791,  792, 1591, 3103,  793,  781, 4017, 1571,  794, 3104,
2631       795,  796,  797, 1593, 1593, 1593, 3108, 3111,  798,  758,
2632      3112, 3113, 1587, 1593, 1593, 1593, 1015, 1248, 1248, 1248,
2633      3012, 1595, 1601, 1601, 1601,  757,  774, 1601, 1601, 1601,
2634      3013, 1595, 3114, 3014, 1249, 1254, 1254, 1254, 3115, 1592,
2635      1603, 1611, 1611, 1611, 3116, 1603, 1611, 1611, 1611, 1621,
2636      1621, 1621, 1255, 3117,  775, 1016,  777, 3120, 3128, 1613,
2637      3129,  778,  779, 3132, 1613,  780,  781, 1623, 3133,  782,
2638      3136,  783,  784,  785, 3147, 1596, 1260, 1260, 1260,  786,
2639      1621, 1621, 1621, 1268, 1268, 1268, 1632, 1632, 1632, 1604,
2640
2641      1632, 1632, 1632, 1261, 1639, 1639, 1639, 3148, 1623, 3149,
2642      1269, 1639, 1639, 1639, 1634, 1280, 1280, 1280, 1634, 1647,
2643      1647, 1647, 1641, 1614, 1647, 1647, 1647, 3150, 3124, 1641,
2644      3151, 3152, 1281, 1654, 1654, 1654, 3126, 1649, 4017, 4017,
2645      4017, 3125, 1649, 1658, 1658, 1658, 4017, 4017, 4017, 3127,
2646      1655, 1661, 1661, 1661, 3153, 4017, 3154, 1624, 3156, 3157,
2647      1659, 3158, 3130, 4017, 3159, 1635, 1661, 1661, 1661, 1663,
2648      1306, 1306, 1306, 3160, 1307, 3131, 1642, 1308, 1310, 1310,
2649      1310, 1310, 1310, 1310, 1663, 3134, 1650, 3161, 3162, 1656,
2650      1672, 1672, 1672, 1354, 1354, 1354, 1312, 3163, 3135, 1312,
2651
2652      1358, 1358, 1358, 3164, 1657, 3165, 1660, 3166, 1673, 3167,
2653      1355, 1713, 1713, 1713, 3175, 1714, 1907, 1359, 1715, 1718,
2654      1718, 1718, 3176, 1719, 1295, 3177, 1720, 3178, 1664, 1361,
2655      1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1725, 1725,
2656      1725, 1371, 1371, 1371, 1371, 1371, 1371, 1363, 3179, 3180,
2657      1363, 3181, 3172, 1363, 3182, 1726, 1371, 1371, 1371, 1373,
2658      3183, 3184, 1373, 1377, 1377, 1377, 1377, 1377, 1377, 3185,
2659      1377, 1377, 1377, 3171, 1373, 1382, 1382, 1382, 3186, 1383,
2660      3187, 1379, 1384, 3188, 1379, 1386, 1386, 1386, 1379, 1386,
2661      1386, 1386, 1386, 1386, 1386, 1390, 1390, 1390, 2668, 2669,
2662
2663      1722, 2670, 3190, 1388, 1737, 1737, 1737, 1388, 1738, 2671,
2664      1388, 1739, 1391, 1394, 1394, 1394, 2672, 3191, 1742, 1742,
2665      1742, 3192, 1743, 1730, 1733, 1744, 1396, 1396, 1396, 3194,
2666      1395, 1396, 1396, 1396, 1396, 1396, 1396, 1400, 1400, 1400,
2667      3203, 3204, 1736, 3205, 1398, 3206, 1746, 1746, 1746, 1398,
2668      1747, 3211, 1398, 1748, 1401, 1402, 1402, 1402, 1749, 1749,
2669      1749, 3218, 1750, 3219, 3220, 1751, 1404, 1404, 1404, 1404,
2670      1404, 1404, 1403, 1404, 1404, 1404, 1408, 1408, 1408, 1753,
2671      1753, 1753, 3221, 1754, 1406, 3222, 1755, 1406, 1412, 1412,
2672      1412, 1406, 3223, 1409, 1758, 1758, 1758, 1745, 1759, 3224,
2673
2674      3225, 1760, 1414, 1414, 1414, 1413, 1414, 1414, 1414, 1414,
2675      1414, 1414, 1418, 1418, 1418, 3226, 1419, 3227, 3228, 1420,
2676      1416, 1421, 1421, 1421, 1416, 1422, 3229, 1416, 1423, 1424,
2677      1424, 1424, 3233, 1762, 1762, 1762, 1752, 1763, 3234, 3235,
2678      1764, 1430, 1430, 1430, 3236, 3237, 1425, 1430, 1430, 1430,
2679      1430, 1430, 1430, 1437, 1437, 1437, 3238, 1438, 3239, 1432,
2680      1439, 1773, 1773, 1773, 3240, 1432, 3241, 3242, 1432, 1441,
2681      1441, 1441, 1761, 1442, 3243, 3244, 1443, 3245, 1774, 1444,
2682      1444, 1444, 1775, 1775, 1775, 3246, 1776, 3247, 3248, 1777,
2683      1455, 1455, 1455, 1455, 1455, 1455, 1445, 3249, 3250, 1769,
2684
2685      1455, 1455, 1455, 1459, 1459, 1459, 3251, 1460, 1457, 3252,
2686      1461, 1457, 1462, 1462, 1462, 1462, 1462, 1462, 1457, 1462,
2687      1462, 1462, 1792, 1792, 1792, 1469, 1469, 1469, 3264, 1470,
2688      1464, 3265, 1471, 1464, 1475, 1475, 1475, 1464, 3266, 1793,
2689      1475, 1475, 1475, 1475, 1475, 1475, 1799, 1799, 1799, 1481,
2690      1481, 1481, 1477, 1482, 2304, 3267, 1483, 3268, 1477, 3269,
2691      2305, 1477, 3270, 1800, 2306, 1484, 1484, 1484, 1788, 1485,
2692      2307, 3271, 1486, 1487, 1487, 1487, 1487, 1487, 1487, 3273,
2693      1789, 1487, 1487, 1487, 1802, 1802, 1802, 1492, 1492, 1492,
2694      3274, 1489, 3275, 3276, 1489, 1492, 1492, 1492, 3277, 1489,
2695
2696      3278, 1803, 1492, 1492, 1492, 1494, 1504, 1504, 1504, 1797,
2697      1498, 1498, 1498, 1494, 1499, 3279, 3280, 1500, 3281, 3282,
2698      1494, 1504, 1504, 1504, 1506, 1504, 1504, 1504, 1509, 1509,
2699      1509, 3283, 1510, 3284, 1295, 1511, 1512, 1512, 1512, 1506,
2700      1512, 1512, 1512, 1506, 1512, 1512, 1512, 1801, 3299, 1516,
2701      1516, 1516, 1804, 1517, 1514, 3300, 1518, 3301, 1514, 1520,
2702      1520, 1520, 1514, 1520, 1520, 1520, 1520, 1520, 1520, 3293,
2703      1815, 1815, 1815, 4017, 4017, 4017, 3302, 1522, 1526, 1526,
2704      1526, 1522, 3303, 3304, 1522, 3195, 1810, 1816, 3305, 3306,
2705      4017, 1526, 1526, 1526, 3308, 3196, 1528, 1526, 1526, 1526,
2706
2707      1534, 1534, 1534, 3311, 1535, 1812, 3313, 1536, 3314, 1528,
2708      1537, 1537, 1537, 3197, 3315, 1528, 3316, 1814, 1823, 1823,
2709      1823, 1817, 1824, 3317, 3198, 1825, 3318, 1538, 1541, 1541,
2710      1541, 1541, 1541, 1541, 1541, 1541, 1541, 1547, 1547, 1547,
2711      1547, 1547, 1547, 1547, 1547, 1547, 1543, 3319, 3320, 1543,
2712      3321, 3322, 1543, 3323, 3324, 1549, 3327, 3330, 1549, 3331,
2713      3332, 1549, 1837, 1837, 1837, 1818, 1560, 1560, 1560, 1560,
2714      1560, 1560, 1560, 1560, 1560, 3333, 1564, 1564, 1564, 1838,
2715      1565, 3334, 3335, 1566, 1562, 3336, 1828, 1562, 3337, 3338,
2716      1562, 1831, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568,
2717
2718      1568, 1573, 1573, 1573, 3199, 1574, 2780, 2781, 1575, 2782,
2719      1570, 3339, 3344, 1570, 3200, 3345, 1570, 2783, 1576, 1576,
2720      1576, 1846, 1846, 1846, 2784, 1847, 3346, 3347, 1848, 1849,
2721      1849, 1849, 3201, 3348, 1842, 1577, 1579, 1579, 1579, 3349,
2722      1851, 1851, 1851, 3202, 1852, 3350, 1850, 1853, 1855, 1855,
2723      1855, 3351, 3352, 1580, 1584, 1584, 1584, 1584, 1584, 1584,
2724      1844, 1584, 1584, 1584, 3353, 1856, 1588, 1588, 1588, 1859,
2725      1859, 1859, 1586, 1860, 3354, 1586, 1861, 3355, 3356, 1586,
2726      1590, 1590, 1590, 1589, 1862, 1862, 1862, 3357, 1863, 3358,
2727      3359, 1864, 1593, 1593, 1593, 3360, 3364, 1591, 1593, 1593,
2728
2729      1593, 1593, 1593, 1593, 1598, 1598, 1598, 3365, 1599, 3366,
2730      1595, 1600, 1601, 1601, 1601, 3367, 1595, 3368, 3369, 1595,
2731      3370, 3371, 1858, 1601, 1601, 1601, 1601, 1601, 1601, 3374,
2732      1603, 1607, 1607, 1607, 3375, 1608, 3376, 3377, 1609, 3378,
2733      3379, 1603, 3381, 3382, 1603, 1611, 1611, 1611, 1611, 1611,
2734      1611, 3383, 1611, 1611, 1611, 1616, 1616, 1616, 3255, 1617,
2735      3384, 3385, 1618, 1613, 3386, 3387, 1613, 3388, 3256, 1866,
2736      1613, 1875, 1875, 1875, 1621, 1621, 1621, 1621, 1621, 1621,
2737      1621, 1621, 1621, 1879, 1879, 1879, 3257, 3389, 1876, 1627,
2738      1627, 1627, 1623, 1628, 1868, 1623, 1629, 3258, 1623, 3390,
2739
2740      1880, 4017, 4017, 4017, 1632, 1632, 1632, 1632, 1632, 1632,
2741      1632, 1632, 1632, 3391, 1872, 1885, 1885, 1885, 4017, 1639,
2742      1639, 1639, 1634, 3392, 3393, 1634, 3394, 3395, 1634, 1639,
2743      1639, 1639, 1886, 1639, 1639, 1639, 3396, 1641, 3403, 1643,
2744      1643, 1643, 1877, 1644, 1295, 3404, 1645, 1641, 1647, 1647,
2745      1647, 1641, 1647, 1647, 1647, 1647, 1647, 1647, 1883, 1654,
2746      1654, 1654, 3405, 1881, 3406, 3407, 1649, 1894, 1894, 1894,
2747      1649, 1895, 3408, 1649, 1896, 3409, 1655, 1658, 1658, 1658,
2748      3410, 1888, 1899, 1899, 1899, 3411, 1900, 3412, 3397, 1901,
2749      1661, 1661, 1661, 3413, 1659, 1661, 1661, 1661, 3414, 1661,
2750
2751      1661, 1661, 1906, 1906, 1906, 1672, 1672, 1672, 1663, 1361,
2752      1361, 1361, 3415, 1663, 3416, 3417, 1890, 1663, 3418, 3419,
2753      1907, 1908, 3420, 1673, 1713, 1713, 1713, 1363, 1714, 3421,
2754      3422, 1715, 1718, 1718, 1718, 3426, 1719, 3432, 3433, 1720,
2755      1725, 1725, 1725, 1961, 1961, 1961, 3434, 1962, 3259, 3435,
2756      1963, 1371, 1371, 1371, 1377, 1377, 1377, 1726, 3260, 3436,
2757      1903, 1969, 1969, 1969, 3437, 1386, 1386, 1386, 3438, 1373,
2758      3445, 1958, 1379, 1737, 1737, 1737, 3261, 1738, 1970, 3446,
2759      1739, 3447, 3448, 1388, 1742, 1742, 1742, 3262, 1743, 3449,
2760      3450, 1744, 1396, 1396, 1396, 1746, 1746, 1746, 3451, 1747,
2761
2762      3452, 3453, 1748, 3454, 1749, 1749, 1749, 3455, 1750, 3456,
2763      1398, 1751, 3457, 1967, 1404, 1404, 1404, 1753, 1753, 1753,
2764      3458, 1754, 1971, 1974, 1755, 3459, 1758, 1758, 1758, 3460,
2765      1759, 3461, 1406, 1760, 1414, 1414, 1414, 1762, 1762, 1762,
2766      1977, 1763, 3462, 3463, 1764, 3464, 1984, 1984, 1984, 1430,
2767      1430, 1430, 1416, 1988, 1988, 1988, 4017, 4017, 4017, 4017,
2768      4017, 4017, 1978, 1985, 1773, 1773, 1773, 1432, 3465, 3466,
2769      1989, 3467, 3468, 4017, 3469, 3470, 4017, 4017, 4017, 4017,
2770      3471, 1774, 1981, 1992, 1992, 1992, 3472, 1993, 3473, 3474,
2771      1994, 1775, 1775, 1775, 4017, 1776, 3475, 3478, 1777, 4017,
2772
2773      4017, 4017, 4017, 4017, 4017, 1987, 3479, 1991, 4017, 4017,
2774      4017, 4017, 4017, 4017, 3480, 3481, 4017, 3482, 3483, 4017,
2775      4017, 4017, 4017, 1990, 3484, 4017, 3485, 3486, 4017, 1995,
2776      3487, 2001, 2001, 2001, 4017, 4017, 4017, 4017, 4017, 4017,
2777      4017, 4017, 4017, 4017, 1455, 1455, 1455, 1996, 2002, 3488,
2778      3489, 4017, 1792, 1792, 1792, 4017, 1998, 3490, 4017, 1462,
2779      1462, 1462, 1457, 2010, 2010, 2010, 3491, 2011, 3503, 1793,
2780      2012, 3504, 3509, 1997, 3494, 1295, 1999, 1464, 2014, 2014,
2781      2014, 2000, 1475, 1475, 1475, 1799, 1799, 1799, 3495, 2019,
2782      2019, 2019, 3510, 2020, 3513, 2015, 2021, 1487, 1487, 1487,
2783
2784      1477, 2004, 1800, 2005, 3514, 2003, 1802, 1802, 1802, 3494,
2785      2006, 3515, 2007, 3516, 3517, 1489, 3518, 2023, 2023, 2023,
2786      3497, 2024, 3492, 1803, 2025, 1492, 1492, 1492, 1504, 1504,
2787      1504, 3520, 1512, 1512, 1512, 2034, 2034, 2034, 3285, 1520,
2788      1520, 1520, 3528, 1494, 3521, 3529, 1506, 3530, 3286, 2017,
2789      1514, 3523, 2035, 1815, 1815, 1815, 3522, 1522, 2037, 2037,
2790      2037, 3531, 2038, 3524, 2022, 2039, 3287, 1526, 1526, 1526,
2791      1816, 2043, 2043, 2043, 1823, 1823, 1823, 3288, 1824, 3532,
2792      3537, 1825, 3538, 3539, 2026, 1528, 2031, 3540, 2044, 3541,
2793      2033, 2036, 2047, 2047, 2047, 1541, 1541, 1541, 1547, 1547,
2794
2795      1547, 1837, 1837, 1837, 2059, 2059, 2059, 3542, 2060, 2048,
2796      3543, 2061, 3544, 1543, 3545, 3546, 1549, 3547, 1838, 1560,
2797      1560, 1560, 2066, 2066, 2066, 1568, 1568, 1568, 2041, 1846,
2798      1846, 1846, 3548, 1847, 3549, 3533, 1848, 1562, 3535, 2067,
2799      1849, 1849, 1849, 1570, 2070, 2070, 2070, 3534, 2071, 3550,
2800      3536, 2072, 1851, 1851, 1851, 3551, 1852, 1850, 3556, 1853,
2801      2050, 1855, 1855, 1855, 3557, 2053, 2074, 2074, 2074, 2065,
2802      2075, 3562, 3563, 2076, 1584, 1584, 1584, 3564, 1856, 1859,
2803      1859, 1859, 3565, 1860, 3566, 3567, 1861, 3570, 2068, 1862,
2804      1862, 1862, 1586, 1863, 1295, 3570, 1864, 1593, 1593, 1593,
2805
2806      1601, 1601, 1601, 1611, 1611, 1611, 2088, 2088, 2088, 1875,
2807      1875, 1875, 2090, 2090, 2090, 1595, 2091, 3573, 1603, 2092,
2808      3574, 1613, 3575, 2089, 3494, 2078, 1876, 1621, 1621, 1621,
2809      1879, 1879, 1879, 2095, 2095, 2095, 3568, 2096, 3495, 3578,
2810      2097, 1632, 1632, 1632, 3579, 1623, 3580, 1880, 1885, 1885,
2811      1885, 2102, 2102, 2102, 3583, 2103, 1907, 1908, 2104, 1634,
2812      2105, 2105, 2105, 3576, 2080, 1886, 3584, 2082, 2086, 1639,
2813      1639, 1639, 1647, 1647, 1647, 3494, 3591, 2106, 1894, 1894,
2814      1894, 3577, 1895, 3581, 3592, 1896, 3497, 1641, 3595, 3597,
2815      1649, 2100, 2093, 1899, 1899, 1899, 3596, 1900, 3582, 3589,
2816
2817      1901, 3598, 1661, 1661, 1661, 1906, 1906, 1906, 2151, 2151,
2818      2151, 2154, 2154, 2154, 1951, 1951, 1951, 3599, 3590, 2107,
2819      1663, 3600, 3613, 1907, 2109, 2138, 2138, 2138, 2151, 2151,
2820      2151, 2157, 2157, 2157, 2159, 2159, 2159, 3593, 4017, 4017,
2821      4017, 1361, 1361, 1361, 3614, 1961, 1961, 1961, 2158, 1962,
2822      3615, 2160, 1963, 3616, 2116, 4017, 3594, 2118, 2155, 1363,
2823      1371, 1371, 1371, 1969, 1969, 1969, 3617, 3618, 2170, 2170,
2824      2170, 3619, 2171, 2152, 2119, 2172, 3620, 3621, 1373, 3603,
2825      1970, 1377, 1377, 1377, 1386, 1386, 1386, 2177, 2177, 2177,
2826      2152, 3607, 3605, 2139, 2179, 2179, 2179, 3624, 3604, 1379,
2827
2828      3606, 3625, 1388, 2161, 2178, 1396, 1396, 1396, 3626, 2162,
2829      3608, 2180, 1404, 1404, 1404, 2183, 2183, 2183, 2185, 2185,
2830      2185, 3609, 3622, 1398, 3289, 2168, 1414, 1414, 1414, 3610,
2831      1406, 3570, 2184, 2176, 3290, 2186, 2188, 2188, 2188, 3630,
2832      3623, 2173, 3627, 3570, 1416, 4017, 4017, 4017, 1984, 1984,
2833      1984, 3631, 3291, 2189, 2191, 2191, 2191, 3628, 2192, 3632,
2834      3633, 2193, 4017, 3292, 3634, 1985, 2194, 2194, 2194, 3635,
2835      3636, 2181, 1430, 1430, 1430, 2229, 2229, 2229, 2182, 1988,
2836      1988, 1988, 3637, 2195, 2197, 2197, 2197, 3638, 2198, 3639,
2837      1432, 2199, 2187, 2200, 2200, 2200, 1989, 4017, 4017, 4017,
2838
2839      3640, 1992, 1992, 1992, 2190, 1993, 3644, 3645, 1994, 3646,
2840      2201, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 2205, 2205,
2841      2205, 4017, 4017, 4017, 4017, 4017, 4017, 3647, 4017, 4017,
2842      4017, 4017, 4017, 2196, 3648, 2206, 3649, 3650, 4017, 3651,
2843      3652, 4017, 2001, 2001, 2001, 3653, 4017, 2210, 2210, 2210,
2844      3654, 2211, 3655, 3659, 2212, 2213, 2213, 2213, 3660, 2002,
2845      3661, 3662, 2202, 3663, 3664, 2204, 3665, 4017, 4017, 4017,
2846      3666, 2208, 2214, 4017, 4017, 4017, 2203, 1455, 1455, 1455,
2847      2207, 3670, 3671, 2209, 4017, 1462, 1462, 1462, 3672, 3673,
2848      4017, 3499, 2010, 2010, 2010, 1457, 2011, 3674, 3675, 2012,
2849
2850      2221, 2221, 2221, 1464, 2014, 2014, 2014, 2223, 2223, 2223,
2851      3500, 2224, 3501, 3676, 2225, 2215, 3677, 2222, 2227, 2227,
2852      2227, 2015, 2019, 2019, 2019, 3502, 2020, 2216, 3678, 2021,
2853      1487, 1487, 1487, 2023, 2023, 2023, 2228, 2024, 3679, 3680,
2854      2025, 2218, 3681, 3682, 2217, 1492, 1492, 1492, 1489, 2236,
2855      2236, 2236, 1512, 1512, 1512, 2034, 2034, 2034, 2240, 2240,
2856      2240, 3683, 2241, 1494, 3685, 2242, 3686, 2237, 3687, 3688,
2857      1514, 3689, 2035, 1520, 1520, 1520, 3690, 2230, 2037, 2037,
2858      2037, 3691, 2038, 3692, 3693, 2039, 1526, 1526, 1526, 3694,
2859      3695, 1522, 2043, 2043, 2043, 3700, 2247, 2247, 2247, 2239,
2860
2861      2248, 3701, 3702, 2249, 1528, 2250, 2250, 2250, 3696, 2044,
2862      2047, 2047, 2047, 2231, 2253, 2253, 2253, 3703, 2254, 3698,
2863      3697, 2255, 2251, 2257, 2257, 2257, 3505, 2048, 1547, 1547,
2864      1547, 3699, 2243, 2262, 2262, 2262, 2059, 2059, 2059, 3704,
2865      2060, 2258, 3506, 2061, 3507, 3705, 1549, 1560, 1560, 1560,
2866      2066, 2066, 2066, 2245, 2271, 2271, 2271, 3508, 2272, 3706,
2867      3707, 2273, 2274, 2274, 2274, 1562, 3708, 2067, 2070, 2070,
2868      2070, 3709, 2071, 3710, 3711, 2072, 1584, 1584, 1584, 3712,
2869      2275, 2261, 2074, 2074, 2074, 3713, 2075, 3714, 3715, 2076,
2870      1593, 1593, 1593, 3716, 1586, 1601, 1601, 1601, 3717, 2270,
2871
2872      2284, 2284, 2284, 4017, 4017, 4017, 3718, 3719, 1595, 2287,
2873      2287, 2287, 3720, 1603, 1611, 1611, 1611, 2285, 3721, 3722,
2874      4017, 3723, 2088, 2088, 2088, 3724, 2288, 2291, 2291, 2291,
2875      3725, 2292, 1613, 3726, 2293, 1621, 1621, 1621, 2279, 2089,
2876      3727, 3558, 2281, 3728, 2090, 2090, 2090, 2283, 2091, 3729,
2877      3731, 2092, 3732, 1623, 2095, 2095, 2095, 3559, 2096, 3560,
2878      3733, 2097, 2289, 1632, 1632, 1632, 3734, 2102, 2102, 2102,
2879      2286, 2103, 3561, 3735, 2104, 2105, 2105, 2105, 2308, 2308,
2880      2308, 1634, 2309, 2294, 1295, 2310, 1639, 1639, 1639, 2313,
2881      2313, 2313, 2106, 2318, 2318, 2318, 2320, 2320, 2320, 4017,
2882
2883      4017, 4017, 3736, 3737, 1641, 3738, 3739, 2314, 3740, 3730,
2884      2319, 3741, 3742, 2321, 3743, 2298, 4017, 1661, 1661, 1661,
2885      2327, 2327, 2327, 2123, 2123, 2123, 2337, 2337, 2337, 2134,
2886      2134, 2134, 2344, 2344, 2344, 1663, 3744, 2328, 2311, 2138,
2887      2138, 2138, 2345, 2345, 2345, 2141, 2141, 2141, 2151, 2151,
2888      2151, 3745, 3746, 2323, 2358, 2358, 2358, 2154, 2154, 2154,
2889      2157, 2157, 2157, 3747, 2322, 2362, 2362, 2362, 3748, 2363,
2890      3749, 3750, 2364, 2159, 2159, 2159, 3751, 2158, 2365, 2365,
2891      2365, 3752, 2366, 3753, 3754, 2367, 1361, 1361, 1361, 3755,
2892      2160, 2375, 2375, 2375, 2170, 2170, 2170, 3756, 2171, 3757,
2893
2894      3758, 2172, 3759, 3760, 1363, 1377, 1377, 1377, 3761, 2376,
2895      2380, 2380, 2380, 1386, 1386, 1386, 2177, 2177, 2177, 2179,
2896      2179, 2179, 3762, 1379, 1396, 1396, 1396, 2381, 2383, 2383,
2897      2383, 1388, 2384, 2178, 3763, 2385, 2180, 2386, 2386, 2386,
2898      3764, 2387, 1398, 3765, 2388, 1404, 1404, 1404, 2183, 2183,
2899      2183, 3766, 3767, 2369, 2391, 2391, 2391, 2378, 2392, 3768,
2900      3770, 2393, 3771, 1406, 3772, 2184, 2185, 2185, 2185, 2394,
2901      2394, 2394, 3773, 2395, 3774, 2382, 2396, 1414, 1414, 1414,
2902      2188, 2188, 2188, 2186, 2398, 2398, 2398, 3775, 2399, 3776,
2903      2389, 2400, 2401, 2401, 2401, 1416, 3552, 2189, 2191, 2191,
2904
2905      2191, 3777, 2192, 3778, 3779, 2193, 2194, 2194, 2194, 2402,
2906      1295, 2390, 2403, 2403, 2403, 3553, 2404, 3554, 3780, 2405,
2907      1430, 1430, 1430, 2195, 2197, 2197, 2197, 3781, 2198, 3769,
2908      3555, 2199, 2200, 2200, 2200, 2407, 2407, 2407, 1432, 2408,
2909      3782, 3783, 2409, 2397, 2205, 2205, 2205, 3784, 3785, 2201,
2910      2413, 2413, 2413, 3786, 2414, 3787, 3788, 2415, 2416, 2416,
2911      2416, 2206, 2210, 2210, 2210, 3789, 2211, 3790, 3791, 2212,
2912      3792, 3793, 2406, 3794, 3795, 2417, 2213, 2213, 2213, 2420,
2913      2420, 2420, 3796, 2421, 3797, 3798, 2422, 1455, 1455, 1455,
2914      1462, 1462, 1462, 2214, 2221, 2221, 2221, 2429, 2429, 2429,
2915
2916      3799, 2430, 3800, 3801, 2431, 1457, 3802, 3803, 1464, 3804,
2917      3805, 2222, 2223, 2223, 2223, 3807, 2224, 1295, 3808, 2225,
2918      2227, 2227, 2227, 2229, 2229, 2229, 3809, 1487, 1487, 1487,
2919      1492, 1492, 1492, 2436, 2436, 2436, 3810, 3806, 2228, 2425,
2920      2236, 2236, 2236, 3811, 2426, 1489, 3812, 3813, 1494, 3814,
2921      2437, 1512, 1512, 1512, 3815, 2240, 2240, 2240, 2237, 2241,
2922      3816, 3817, 2242, 3818, 1520, 1520, 1520, 3819, 3820, 1514,
2923      2445, 2445, 2445, 3821, 2250, 2250, 2250, 2257, 2257, 2257,
2924      2438, 2434, 1522, 2247, 2247, 2247, 2433, 2248, 2446, 3822,
2925      2249, 2251, 2448, 2448, 2448, 2258, 2449, 3823, 3824, 2450,
2926
2927      3825, 2442, 2253, 2253, 2253, 3826, 2254, 3827, 3828, 2255,
2928      3829, 2443, 2454, 2454, 2454, 1547, 1547, 1547, 2262, 2262,
2929      2262, 2457, 2457, 2457, 2459, 2459, 2459, 3830, 3831, 2455,
2930      1560, 1560, 1560, 1549, 2271, 2271, 2271, 3832, 2272, 3833,
2931      3834, 2273, 2274, 2274, 2274, 2466, 2466, 2466, 1562, 1584,
2932      1584, 1584, 2471, 2471, 2471, 1601, 1601, 1601, 3835, 3836,
2933      2275, 3837, 2467, 2284, 2284, 2284, 3838, 1586, 3840, 3841,
2934      2472, 3842, 3843, 1603, 2475, 2475, 2475, 2456, 2476, 3844,
2935      2285, 2477, 2478, 2478, 2478, 2287, 2287, 2287, 2480, 2480,
2936      2480, 1295, 2481, 3845, 3846, 2482, 2464, 3839, 3847, 2479,
2937
2938      3848, 3849, 2288, 1611, 1611, 1611, 2484, 2484, 2484, 2469,
2939      2291, 2291, 2291, 3850, 2292, 3851, 3852, 2293, 3853, 3854,
2940      2474, 1613, 3855, 2485, 1621, 1621, 1621, 2490, 2490, 2490,
2941      2492, 2492, 2492, 2308, 2308, 2308, 3856, 2309, 3857, 3858,
2942      2310, 3859, 1623, 3860, 3861, 2491, 3862, 2493, 1639, 1639,
2943      1639, 2505, 2505, 2505, 2313, 2313, 2313, 2483, 2318, 2318,
2944      2318, 3863, 1295, 2507, 2507, 2507, 1641, 2508, 2506, 3865,
2945      2509, 3866, 2314, 3867, 3868, 2319, 3864, 3869, 2486, 2320,
2946      2320, 2320, 2510, 2510, 2510, 3870, 2511, 3871, 3872, 2512,
2947      1661, 1661, 1661, 3873, 3874, 2504, 2321, 2327, 2327, 2327,
2948
2949      2518, 2518, 2518, 3875, 2519, 3876, 3877, 2520, 1663, 2521,
2950      2521, 2521, 3878, 3879, 2328, 2527, 2527, 2527, 2528, 2528,
2951      2528, 2337, 2337, 2337, 2530, 2530, 2530, 2534, 2534, 2534,
2952      2344, 2344, 2344, 2345, 2345, 2345, 2535, 2535, 2535, 2539,
2953      2539, 2539, 2544, 2544, 2544, 2545, 2545, 2545, 2547, 2547,
2954      2547, 3880, 2514, 2358, 2358, 2358, 2548, 2548, 2548, 2362,
2955      2362, 2362, 3882, 2363, 3883, 3884, 2364, 2365, 2365, 2365,
2956      3885, 2366, 3886, 3887, 2367, 1361, 1361, 1361, 2555, 2555,
2957      2555, 3888, 3889, 2536, 4017, 4017, 4017, 4017, 4017, 4017,
2958      4017, 4017, 4017, 1363, 3890, 2556, 2375, 2375, 2375, 3891,
2959
2960      3892, 4017, 3893, 2549, 4017, 3894, 3895, 4017, 1377, 1377,
2961      1377, 2380, 2380, 2380, 2376, 2563, 2563, 2563, 3896, 2564,
2962      3897, 3900, 2565, 1386, 1386, 1386, 1379, 2553, 2381, 3901,
2963      2383, 2383, 2383, 3902, 2384, 3903, 2557, 2385, 2386, 2386,
2964      2386, 1388, 2387, 3904, 3905, 2388, 1396, 1396, 1396, 3906,
2965      2559, 3907, 2558, 1404, 1404, 1404, 2391, 2391, 2391, 3908,
2966      2392, 3909, 3912, 2393, 1398, 1295, 2567, 2785, 2786, 2561,
2967      2787, 1406, 2394, 2394, 2394, 3913, 2395, 1295, 2788, 2396,
2968      1414, 1414, 1414, 3914, 2566, 2789, 2398, 2398, 2398, 2568,
2969      2399, 3915, 1295, 2400, 2401, 2401, 2401, 1295, 1416, 2570,
2970
2971      2570, 2570, 3910, 2571, 1820, 3924, 2572, 1295, 2403, 2403,
2972      2403, 2402, 2404, 1295, 3911, 2405, 1430, 1430, 1430, 2407,
2973      2407, 2407, 3966, 2408, 2569, 3925, 2409, 3922, 2413, 2413,
2974      2413, 1295, 2414, 1295, 1432, 2415, 2416, 2416, 2416, 2577,
2975      2577, 2577, 3920, 2578, 1295, 1295, 2579, 2420, 2420, 2420,
2976      1295, 2421, 3921, 2417, 2422, 2583, 2583, 2583, 1455, 1455,
2977      1455, 2586, 2586, 2586, 2429, 2429, 2429, 1819, 2430, 3926,
2978      1295, 2431, 2584, 1487, 1487, 1487, 1457, 1295, 1295, 2587,
2979      1492, 1492, 1492, 2573, 2436, 2436, 2436, 1295, 2594, 2594,
2980      2594, 1489, 2595, 3916, 3917, 2596, 3923, 3927, 1494, 3918,
2981
2982      1295, 2437, 1512, 1512, 1512, 1295, 1295, 1520, 1520, 1520,
2983      2445, 2445, 2445, 1295, 2448, 2448, 2448, 1813, 2449, 3919,
2984      1514, 2450, 1295, 2585, 1811, 1522, 3928, 1809, 2446, 2591,
2985      1808, 3948, 2592, 2454, 2454, 2454, 2608, 2608, 2608, 1295,
2986      2609, 1295, 3934, 2610, 1547, 1547, 1547, 2457, 2457, 2457,
2987      2455, 2612, 2612, 2612, 2459, 2459, 2459, 2613, 2613, 2613,
2988      3930, 3929, 1549, 4017, 4017, 4017, 4017, 4017, 4017, 2601,
2989      2602, 1560, 1560, 1560, 2614, 4017, 4017, 4017, 1295, 3931,
2990      4017, 3932, 3974, 4017, 2466, 2466, 2466, 1295, 1807, 1562,
2991      1295, 1295, 4017, 2620, 2620, 2620, 1295, 2621, 1806, 1295,
2992
2993      2622, 2467, 2624, 2624, 2624, 2471, 2471, 2471, 1295, 2611,
2994      2628, 2628, 2628, 1295, 3935, 2615, 1295, 2475, 2475, 2475,
2995      2625, 2476, 1295, 2472, 2477, 2478, 2478, 2478, 2629, 3933,
2996      1295, 2616, 2630, 2630, 2630, 2617, 2631, 2618, 3936, 2632,
2997      3949, 3940, 2479, 2480, 2480, 2480, 3937, 2481, 1295, 3941,
2998      2482, 1611, 1611, 1611, 2484, 2484, 2484, 2634, 2634, 2634,
2999      3938, 2635, 4010, 1295, 2636, 1621, 1621, 1621, 3939, 1613,
3000      1295, 2485, 2490, 2490, 2490, 2492, 2492, 2492, 2641, 2641,
3001      2641, 1295, 2642, 1623, 3944, 2643, 1639, 1639, 1639, 1295,
3002      2491, 1295, 2493, 2505, 2505, 2505, 1295, 3942, 2655, 2655,
3003
3004      2655, 3958, 2656, 2633, 1641, 2657, 1295, 2507, 2507, 2507,
3005      2506, 2508, 3943, 3960, 2509, 1295, 3946, 2637, 2510, 2510,
3006      2510, 1295, 2511, 1805, 3947, 2512, 1661, 1661, 1661, 2660,
3007      2660, 2660, 3945, 2518, 2518, 2518, 2654, 2519, 3950, 1798,
3008      2520, 2521, 2521, 2521, 1663, 3967, 1295, 1295, 2673, 2673,
3009      2673, 2674, 2674, 2674, 2527, 2527, 2527, 2528, 2528, 2528,
3010      2530, 2530, 2530, 2679, 2679, 2679, 2681, 2681, 2681, 2534,
3011      2534, 2534, 2535, 2535, 2535, 2539, 2539, 2539, 2685, 2685,
3012      2685, 2544, 2544, 2544, 2545, 2545, 2545, 2547, 2547, 2547,
3013      2548, 2548, 2548, 3951, 2659, 2694, 2694, 2694, 2696, 2696,
3014
3015      2696, 2555, 2555, 2555, 2697, 2697, 2697, 1295, 2698, 1295,
3016      1295, 2699, 1796, 2695, 2700, 2700, 2700, 1795, 2556, 4017,
3017      4017, 4017, 4017, 4017, 4017, 2704, 2704, 2704, 1377, 1377,
3018      1377, 2701, 2706, 2706, 2706, 1295, 4017, 1794, 1295, 4017,
3019      2563, 2563, 2563, 3952, 2564, 3953, 1379, 2565, 3959, 2707,
3020      1386, 1386, 1386, 1295, 1396, 1396, 1396, 1404, 1404, 1404,
3021      1414, 1414, 1414, 2570, 2570, 2570, 1295, 2571, 1388, 3954,
3022      2572, 2702, 1398, 3970, 2703, 1406, 3956, 1295, 1416, 2712,
3023      2712, 2712, 2577, 2577, 2577, 1295, 2578, 3955, 1791, 2579,
3024      1295, 2709, 2718, 2718, 2718, 2705, 1295, 2713, 2583, 2583,
3025
3026      2583, 3971, 2708, 2722, 2722, 2722, 3975, 2723, 1295, 2719,
3027      2724, 2725, 2725, 2725, 1295, 2584, 2586, 2586, 2586, 2710,
3028      3961, 1295, 2711, 1487, 1487, 1487, 2731, 2731, 2731, 2726,
3029      2733, 2733, 2733, 1790, 2587, 2594, 2594, 2594, 3976, 2595,
3030      1295, 1489, 2596, 3962, 2732, 1295, 3964, 2734, 4017, 4017,
3031      4017, 4017, 4017, 4017, 4017, 4017, 4017, 2739, 2739, 2739,
3032      1512, 1512, 1512, 3957, 3968, 4017, 3969, 1295, 4017, 3977,
3033      1295, 4017, 1295, 1295, 2740, 1295, 1295, 2735, 1514, 1520,
3034      1520, 1520, 3980, 3965, 2730, 2743, 2743, 2743, 2748, 2748,
3035      2748, 2608, 2608, 2608, 1785, 2609, 1784, 1522, 2610, 1547,
3036
3037      1547, 1547, 2744, 3988, 2736, 3978, 2738, 2612, 2612, 2612,
3038      2613, 2613, 2613, 2737, 2753, 2753, 2753, 1549, 2750, 2750,
3039      2750, 2741, 2751, 3963, 1295, 2752, 1295, 2614, 4017, 4017,
3040      4017, 2754, 4017, 4017, 4017, 2757, 2757, 2757, 2759, 2759,
3041      2759, 4017, 4017, 4017, 2742, 4017, 2624, 2624, 2624, 4017,
3042      2620, 2620, 2620, 2758, 2621, 2760, 1295, 2622, 4017, 2749,
3043      2628, 2628, 2628, 1295, 2625, 2630, 2630, 2630, 3981, 2631,
3044      1295, 3972, 2632, 2764, 2764, 2764, 1295, 1295, 2629, 3990,
3045      2755, 2634, 2634, 2634, 2756, 2635, 1783, 1295, 2636, 3989,
3046      1295, 2765, 1621, 1621, 1621, 2641, 2641, 2641, 4006, 2642,
3047
3048      4007, 3979, 2643, 1639, 1639, 1639, 1295, 1295, 2761, 1295,
3049      1623, 2655, 2655, 2655, 3986, 2656, 1782, 3973, 2657, 3996,
3050      1781, 1641, 1661, 1661, 1661, 2660, 2660, 2660, 2673, 2673,
3051      2673, 2674, 2674, 2674, 2810, 2810, 2810, 3984, 1295, 2766,
3052      1663, 1780, 3982, 1295, 2679, 2679, 2679, 2681, 2681, 2681,
3053      2814, 2814, 2814, 2685, 2685, 2685, 2818, 2818, 2818, 2821,
3054      2821, 2821, 2694, 2694, 2694, 2779, 2696, 2696, 2696, 2697,
3055      2697, 2697, 4014, 2698, 3983, 1295, 2699, 2700, 2700, 2700,
3056      2695, 1779, 1295, 2823, 2823, 2823, 1295, 2824, 2792, 2791,
3057      2825, 2826, 2826, 2826, 2701, 2828, 2828, 2828, 2704, 2704,
3058
3059      2704, 2830, 2830, 2830, 2706, 2706, 2706, 3991, 2827, 2832,
3060      2832, 2832, 2829, 2833, 1295, 1295, 2834, 3997, 1295, 2831,
3061      3987, 2707, 2835, 2835, 2835, 1396, 1396, 1396, 1404, 1404,
3062      1404, 1414, 1414, 1414, 2712, 2712, 2712, 2718, 2718, 2718,
3063      2836, 1778, 4014, 1398, 1772, 1295, 1406, 1771, 1770, 1416,
3064      1295, 1768, 2713, 1295, 2719, 2844, 2844, 2844, 1295, 2845,
3065      1767, 3985, 2846, 2722, 2722, 2722, 3992, 2723, 1295, 1295,
3066      2724, 2725, 2725, 2725, 2857, 2857, 2857, 1487, 1487, 1487,
3067      2731, 2731, 2731, 2733, 2733, 2733, 2871, 2871, 2871, 2726,
3068      2837, 2858, 2839, 3993, 3998, 1489, 2838, 1295, 2732, 4011,
3069
3070      2734, 2860, 2860, 2860, 2872, 2861, 3994, 3995, 2862, 2866,
3071      2866, 2866, 2739, 2739, 2739, 2868, 2868, 2868, 1766, 2869,
3072      1765, 1757, 2870, 1520, 1520, 1520, 2867, 1295, 1756, 2740,
3073      2743, 2743, 2743, 3999, 1295, 2859, 2874, 2874, 2874, 1741,
3074      2875, 1522, 1295, 2876, 2879, 2879, 2879, 2744, 2748, 2748,
3075      2748, 2881, 2881, 2881, 1295, 2750, 2750, 2750, 1295, 2751,
3076      4004, 2880, 2752, 2753, 2753, 2753, 2883, 2883, 2883, 2882,
3077      2884, 1740, 4002, 2885, 2886, 2886, 2886, 2888, 2888, 2888,
3078      2754, 2757, 2757, 2757, 1735, 2873, 2759, 2759, 2759, 4000,
3079      1734, 2887, 4003, 1732, 2889, 2764, 2764, 2764, 1731, 2758,
3080
3081      2890, 2890, 2890, 2760, 2891, 4001, 1729, 2892, 1621, 1621,
3082      1621, 1728, 1727, 2765, 1724, 1639, 1639, 1639, 1661, 1661,
3083      1661, 2810, 2810, 2810, 1723, 1721, 1623, 2942, 2942, 2942,
3084      2814, 2814, 2814, 1641, 1717, 1295, 1663, 2818, 2818, 2818,
3085      2821, 2821, 2821, 2950, 2950, 2950, 2823, 2823, 2823, 1716,
3086      2824, 1712, 1711, 2825, 2826, 2826, 2826, 2952, 2952, 2952,
3087      2951, 2953, 1710, 1709, 2954, 2828, 2828, 2828, 4005, 1708,
3088      2923, 2827, 2830, 2830, 2830, 2896, 2909, 2955, 2955, 2955,
3089      1295, 2956, 2829, 1295, 2957, 2832, 2832, 2832, 1295, 2833,
3090      2831, 1707, 2834, 2835, 2835, 2835, 1396, 1396, 1396, 1404,
3091
3092      1404, 1404, 1414, 1414, 1414, 2963, 2963, 2963, 2844, 2844,
3093      2844, 2836, 2845, 4008, 1398, 2846, 4009, 1406, 1706, 1295,
3094      1416, 4012, 2964, 2977, 2977, 2977, 2857, 2857, 2857, 2979,
3095      2979, 2979, 1705, 2980, 1704, 1703, 2981, 2982, 2982, 2982,
3096      2978, 1702, 1701, 2858, 2860, 2860, 2860, 1700, 2861, 1699,
3097      1698, 2862, 4013, 1697, 2960, 2983, 1695, 1694, 2958, 2866,
3098      2866, 2866, 1693, 2987, 2987, 2987, 2959, 2988, 1692, 1691,
3099      2989, 2868, 2868, 2868, 1688, 2869, 2867, 1687, 2870, 2871,
3100      2871, 2871, 1520, 1520, 1520, 2874, 2874, 2874, 1686, 2875,
3101      1685, 1684, 2876, 2998, 2998, 2998, 1683, 2872, 1682, 1681,
3102
3103      1522, 2879, 2879, 2879, 3000, 3000, 3000, 1680, 3001, 1679,
3104      2999, 3002, 2881, 2881, 2881, 2883, 2883, 2883, 2880, 2884,
3105      1678, 1677, 2885, 2886, 2886, 2886, 1676, 3003, 3003, 3003,
3106      2882, 3004, 1675, 1674, 3005, 2888, 2888, 2888, 1671, 1670,
3107      2887, 1669, 3006, 3006, 3006, 2996, 3007, 1668, 1667, 3008,
3108      1666, 1295, 2889, 2890, 2890, 2890, 1653, 2891, 1652, 1651,
3109      2892, 3016, 3016, 3016, 3018, 3018, 3018, 1621, 1621, 1621,
3110      3021, 3021, 3021, 3022, 3022, 3022, 1646, 1638, 3017, 1637,
3111      1636, 3019, 1639, 1639, 1639, 1623, 3047, 3047, 3047, 1631,
3112      3023, 3049, 3049, 3049, 3067, 3067, 3067, 2942, 2942, 2942,
3113
3114      1641, 1630, 1626, 3048, 3072, 3072, 3072, 1620, 1619, 3050,
3115      2950, 2950, 2950, 3076, 3076, 3076, 1615, 3077, 1610, 1606,
3116      3078, 2952, 2952, 2952, 1605, 2953, 1597, 2951, 2954, 2955,
3117      2955, 2955, 1583, 2956, 1582, 1581, 2957, 1578, 1572, 3020,
3118      1396, 1396, 1396, 3034, 1404, 1404, 1404, 1414, 1414, 1414,
3119      3087, 3087, 3087, 2963, 2963, 2963, 1567, 1559, 1398, 3089,
3120      3089, 3089, 1406, 3090, 1558, 1416, 3091, 3088, 1557, 1556,
3121      2964, 3092, 3092, 3092, 2977, 2977, 2977, 3105, 3105, 3105,
3122      1555, 3106, 1554, 3085, 3107, 2979, 2979, 2979, 3093, 2980,
3123      1553, 2978, 2981, 2982, 2982, 2982, 3084, 3109, 3109, 3109,
3124
3125      2987, 2987, 2987, 1552, 2988, 1551, 1546, 2989, 3083, 1545,
3126      1540, 2983, 1539, 1533, 3110, 3118, 3118, 3118, 2998, 2998,
3127      2998, 3121, 3121, 3121, 1530, 3122, 1525, 1524, 3123, 1519,
3128      3000, 3000, 3000, 3119, 3001, 2999, 1508, 3002, 3003, 3003,
3129      3003, 1503, 3004, 1502, 1501, 3005, 3006, 3006, 3006, 1497,
3130      3007, 1496, 1491, 3008, 3016, 3016, 3016, 3137, 3137, 3137,
3131      1480, 3138, 1474, 1473, 3139, 3018, 3018, 3018, 3140, 3140,
3132      3140, 3017, 3141, 1472, 1468, 3142, 1621, 1621, 1621, 3021,
3133      3021, 3021, 3019, 3022, 3022, 3022, 3144, 3144, 3144, 1467,
3134      3145, 1466, 1454, 3146, 1623, 1639, 1639, 1639, 1453, 1452,
3135
3136      3023, 3047, 3047, 3047, 3168, 3168, 3168, 1451, 3169, 1450,
3137      1449, 3170, 1448, 1641, 3049, 3049, 3049, 1447, 3048, 3173,
3138      3173, 3173, 3067, 3067, 3067, 3189, 3189, 3189, 3072, 3072,
3139      3072, 1446, 3050, 3193, 3193, 3193, 3174, 1907, 1440, 3143,
3140      1385, 3076, 3076, 3076, 1381, 3077, 1376, 3155, 3078, 1396,
3141      1396, 1396, 3208, 3208, 3208, 1414, 1414, 1414, 3087, 3087,
3142      3087, 3212, 3212, 3212, 1375, 3213, 1370, 1398, 3214, 1369,
3143      3209, 1368, 1367, 1416, 1366, 3088, 3089, 3089, 3089, 1365,
3144      3090, 1353, 1352, 3091, 3092, 3092, 3092, 3215, 3215, 3215,
3145      1351, 3216, 1350, 1349, 3217, 3105, 3105, 3105, 1348, 3106,
3146
3147      1347, 3093, 3107, 3109, 3109, 3109, 3230, 3230, 3230, 1346,
3148      3231, 1345, 1344, 3232, 1343, 1342, 3207, 3210, 1341, 1340,
3149      3110, 3118, 3118, 3118, 3121, 3121, 3121, 1339, 3122, 1336,
3150      1335, 3123, 3253, 3253, 3253, 1334, 3137, 3137, 3137, 3119,
3151      3138, 1333, 1332, 3139, 3140, 3140, 3140, 1331, 3141, 3254,
3152      1330, 3142, 1621, 1621, 1621, 3144, 3144, 3144, 1329, 3145,
3153      1328, 1325, 3146, 1639, 1639, 1639, 1324, 3168, 3168, 3168,
3154      1623, 3169, 1323, 1322, 3170, 3294, 3294, 3294, 3173, 3173,
3155      3173, 1641, 3296, 3296, 3296, 1321, 3297, 1320, 1319, 3298,
3156      1318, 1317, 3295, 1907, 1316, 3174, 1907, 3307, 3307, 3307,
3157
3158      1907, 3189, 3189, 3189, 3263, 3309, 3309, 3309, 3310, 3310,
3159      3310, 1309, 1305, 3272, 3193, 3193, 3193, 3312, 3312, 3312,
3160      1396, 1396, 1396, 3208, 3208, 3208, 1414, 1414, 1414, 3212,
3161      3212, 3212, 1304, 3213, 1303, 1302, 3214, 1301, 1398, 1298,
3162      1296, 3209, 1295, 1293, 1416, 3215, 3215, 3215, 1291, 3216,
3163      1290, 1289, 3217, 3328, 3328, 3328, 3340, 3340, 3340, 3230,
3164      3230, 3230, 1288, 3231, 1284, 1282, 3232, 3342, 3342, 3342,
3165      3329, 1279, 3325, 3341, 3253, 3253, 3253, 1277, 3361, 3361,
3166      3361, 1276, 3362, 1275, 3343, 3363, 3372, 3372, 3372, 1274,
3167      1273, 3254, 1270, 1267, 3326, 1639, 1639, 1639, 3294, 3294,
3168
3169      3294, 3398, 3398, 3398, 3373, 3399, 1266, 1265, 3400, 1263,
3170      3296, 3296, 3296, 1641, 3297, 3295, 1907, 3298, 1262, 1907,
3171      3307, 3307, 3307, 3309, 3309, 3309, 1259, 1258, 1907, 3310,
3172      3310, 3310, 3312, 3312, 3312, 3423, 3423, 3423, 1414, 1414,
3173      1414, 3328, 3328, 3328, 3427, 3427, 3427, 1256, 3428, 1253,
3174      1252, 3429, 1251, 3424, 1247, 1246, 1416, 1244, 3329, 3430,
3175      3430, 3430, 3380, 1905, 1905, 1905, 1905, 1905, 1905, 1905,
3176      1905, 1905, 1243, 1242, 1905, 1241, 3431, 1239, 1238, 1905,
3177      1905, 1905, 1907, 1905, 3340, 3340, 3340, 3439, 3439, 3439,
3178      1237, 3440, 1236, 1235, 3441, 3442, 3442, 3442, 1234, 3443,
3179
3180      1231, 3341, 3444, 1230, 1228, 3425, 3342, 3342, 3342, 1905,
3181      1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905,
3182      1225, 1223, 1905, 3343, 3372, 3372, 3372, 1905, 1905, 1905,
3183      1907, 1905, 3361, 3361, 3361, 1222, 3362, 1221, 1220, 3363,
3184      1219, 1214, 3373, 3476, 3476, 3476, 3398, 3398, 3398, 1212,
3185      3399, 1211, 1210, 3400, 3511, 3511, 3511, 1905, 1905, 1208,
3186      1207, 3477, 1206, 1203, 1907, 1905, 1905, 1905, 1905, 1905,
3187      3498, 1905, 1905, 1905, 1202, 1201, 1905, 3512, 3512, 3512,
3188      1200, 1905, 1905, 1905, 1907, 1905, 3423, 3423, 3423, 1414,
3189      1414, 1414, 3427, 3427, 3427, 1198, 3428, 1197, 1196, 3429,
3190
3191      3511, 3511, 3511, 1194, 3424, 1191, 1187, 1416, 3430, 3430,
3192      3430, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905,
3193      1905, 3498, 1186, 1184, 1905, 3431, 3512, 3512, 3512, 1905,
3194      1905, 1905, 1907, 1905, 1183, 3525, 3525, 3525, 1182, 3526,
3195      1179, 3519, 3527, 3439, 3439, 3439, 1178, 3440, 1177, 1176,
3196      3441, 3442, 3442, 3442, 1174, 3443, 1173, 1167, 3444, 1905,
3197      1905, 3476, 3476, 3476, 3572, 3572, 3572, 3585, 3585, 3585,
3198      3587, 3587, 3587, 3525, 3525, 3525, 1166, 3526, 1165, 3477,
3199      3527, 1163, 1907, 1908, 1162, 3586, 1161, 3588, 3601, 3601,
3200      3601, 3611, 3611, 3611, 3629, 3629, 3629, 3572, 3572, 3572,
3201
3202      3585, 3585, 3585, 1156, 1155, 3602, 1151, 1149, 3612, 3587,
3203      3587, 3587, 1295, 1148, 1147, 1907, 1146, 1145, 3586, 1144,
3204      3641, 3641, 3641, 1143, 3642, 1142, 3588, 3643, 3601, 3601,
3205      3601, 3656, 3656, 3656, 1141, 3657, 1140, 1137, 3658, 3611,
3206      3611, 3611, 3629, 3629, 3629, 3602, 3667, 3667, 3667, 2118,
3207      3668, 1134, 1133, 3669, 1131, 1130, 3612, 3641, 3641, 3641,
3208      1295, 3642, 1129, 1128, 3643, 3656, 3656, 3656, 1127, 3657,
3209      1122, 1120, 3658, 3667, 3667, 3667, 1119, 3668, 1118, 3684,
3210      3669, 3881, 3881, 3881, 3881, 3881, 3881, 1117, 3898, 1115,
3211      1114, 3899, 4015, 4015, 4015, 4015, 4015, 4015, 1113, 1295,
3212
3213      1111, 1110, 1295, 1109, 1108, 1106, 1103, 1102, 1100, 1098,
3214      4016, 1096, 1095, 4016,  308,  308,  308,  308,  308,  308,
3215       308,  308,  308,  309,  309,  309,  309,  309,  309,  309,
3216       309,  309,  314,  314,  314,  314,  314,  314,  314,  314,
3217       314,  317,  317,  317,  317,  317,  317,  317,  317,  317,
3218       320,  320,  320,  320,  320,  320,  320,  320,  320,  323,
3219       323,  323,  323,  323,  323,  323,  323,  323,  330,  330,
3220       330,  330,  330,  330,  330,  330,  330,  337,  337,  337,
3221       337,  337,  337,  337,  337,  337,  342,  342,  342,  342,
3222       342,  342,  342,  342,  342,  354,  354,  354,  354,  354,
3223
3224       354,  354,  354,  354,  360,  360,  360,  360,  360,  360,
3225       360,  360,  360,  368,  368,  368,  368,  368,  368,  368,
3226       368,  368,  376,  376,  376,  376,  376,  376,  376,  376,
3227       376,  384,  384,  384,  384,  384,  384,  384,  384,  384,
3228       388,  388,  388,  388,  388,  388,  388,  388,  388,  394,
3229       394,  394,  394,  394,  394,  394,  394,  394,  400,  400,
3230       400,  400,  400,  400,  400,  400,  400,  406,  406,  406,
3231       406,  406,  406,  406,  406,  406,  412,  412,  412,  412,
3232       412,  412,  412,  412,  412,  419,  419,  419,  419,  419,
3233       419,  419,  419,  419,  424,  424,  424,  424,  424,  424,
3234
3235       424,  424,  424,  431,  431,  431,  431,  431,  431,  431,
3236       431,  431,  437,  437,  437,  437,  437,  437,  437,  437,
3237       437,  444,  444,  444,  444,  444,  444,  444,  444,  444,
3238       453,  453,  453,  453,  453,  453,  453,  453,  453,  459,
3239       459,  459,  459,  459,  459,  459,  459,  459,  470,  470,
3240       470,  470,  470,  470,  470,  470,  470,  477,  477,  477,
3241       477,  477,  477,  477,  477,  477,  481,  481,  481,  481,
3242       481,  481,  481,  481,  481,  488,  488,  488,  488,  488,
3243       488,  488,  488,  488,  496,  496,  496,  496,  496,  496,
3244       496,  496,  496,  504,  504,  504,  504,  504,  504,  504,
3245
3246       504,  504,  510,  510,  510,  510,  510,  510,  510,  510,
3247       510,  516,  516,  516,  516,  516,  516,  516,  516,  516,
3248       520,  520,  520,  520,  520,  520,  520,  520,  520,  528,
3249       528,  528,  528,  528,  528,  528,  528,  528,  535,  535,
3250       535,  535,  535,  535,  535,  535,  535,  542,  542,  542,
3251       542,  542,  542,  542,  542,  542,  547,  547,  547,  547,
3252       547,  547,  547,  547,  547,  553,  553,  553,  553,  553,
3253       553,  553,  553,  553,  558,  558,  558,  558,  558,  558,
3254       558,  558,  558,  564,  564,  564,  564,  564,  564,  564,
3255       564,  564,  569,  569,  569,  569,  569,  569,  569,  569,
3256
3257       569,  575,  575,  575,  575,  575,  575,  575,  575,  575,
3258       584,  584,  584,  584,  584,  584,  584,  584,  584,  591,
3259       591,  591,  591,  591,  591,  591,  591,  591,  595,  595,
3260       595,  595,  595,  595,  595,  595,  595,  606,  606,  606,
3261       606,  606,  606,  606,  606,  606,  614,  614,  614,  614,
3262       614,  614,  614,  614,  614,  621,  621,  621,  621,  621,
3263       621,  621,  621,  621,  626,  626,  626,  626,  626,  626,
3264       626,  626,  626,  632,  632,  632,  632,  632,  632,  632,
3265       632,  632,  640,  640,  640,  640,  640,  640,  640,  640,
3266       640,  646,  646,  646,  646,  646,  646,  646,  646,  646,
3267
3268       651,  651,  651,  651,  651,  651,  651,  651,  651,  658,
3269       658,  658,  658,  658,  658,  658,  658,  658,  663,  663,
3270       663,  663,  663,  663,  663,  663,  663,  669,  669,  669,
3271       669,  669,  669,  669,  669,  669,  676,  676,  676,  676,
3272       676,  676,  676,  676,  676,  683,  683,  683,  683,  683,
3273       683,  683,  683,  683,  690,  690,  690,  690,  690,  690,
3274       690,  690,  690,  698,  698,  698,  698,  698,  698,  698,
3275       698,  698,  323,  323,  323,  323,  323,  323,  323,  323,
3276       323,  709,  709,  709,  709,  709,  709,  709,  709,  709,
3277       715,  715,  715,  715,  715,  715,  715,  715,  715,  721,
3278
3279       721,  721,  721,  721,  721,  721,  721,  721,  726,  726,
3280       726,  726,  726,  726,  726,  726,  726,  744,  744,  744,
3281       744,  744,  744,  744,  744,  744,  750,  750,  750,  750,
3282       750,  750,  750,  750,  750,  770,  770,  770, 1094, 1093,
3283      1092,  770,  807,  807,  807, 1091, 1090, 1088,  807,  815,
3284       815,  815, 1087, 1086, 1085,  815,  824,  824,  824, 1083,
3285      1081, 1080,  824,  828,  828,  828, 1079, 1078, 1075,  828,
3286       834,  834,  834, 1074, 1073, 1068,  834,  840,  840,  840,
3287      1066, 1065, 1064,  840,  845,  845,  845, 1058, 1057, 1056,
3288       845,  851,  851,  851, 1055, 1047, 1046,  851,  861,  861,
3289
3290       861, 1044, 1041, 1040,  861,  878,  878,  878, 1039, 1038,
3291      1033,  878,  882,  882,  882, 1030, 1032, 1025,  882,  892,
3292       892,  892, 1024, 1022, 4017,  892,  898,  898,  898, 4017,
3293       787, 1014,  898,  904,  904,  904, 1013, 1011, 1009,  904,
3294       912,  912,  912, 1008, 1007, 1005,  912,  917,  917,  917,
3295      1004, 1001, 1000,  917,  922,  922,  922,  999,  997,  996,
3296       922,  927,  927,  927,  994,  993,  992,  927,  938,  938,
3297       938,  991,  989,  988,  938,  948,  948,  948,  987,  986,
3298       985,  948,  956,  956,  956,  984,  982,  980,  956,  961,
3299       961,  961,  979,  977,  973,  961,  972,  972,  972,  971,
3300
3301       967,  963,  972,  978,  978,  978,  962,  960,  958,  978,
3302       983,  983,  983,  957,  955,  953,  983,  990,  990,  990,
3303       952,  951,  950,  990,  998,  998,  998,  949,  947,  939,
3304       998, 1006, 1006, 1006,  937,  932,  931, 1006, 1012, 1012,
3305      1012,  930,  929,  928, 1012, 1023, 1023, 1023,  926,  924,
3306       923, 1023, 1029, 1029, 1029, 1029, 1029, 1029, 1029,  921,
3307      1029,  770,  770,  770,  919,  918,  916,  770, 1045,  914,
3308       913,  911, 1045,  807,  807,  807,  910,  907,  906,  807,
3309      1089,  905,  903, 4017, 1089,  815,  815,  815,  899,  897,
3310       895,  815, 1097,  894,  893,  891, 1097,  824,  824,  824,
3311
3312       890,  886,  885,  824, 1101,  884,  883,  881, 1101,  828,
3313       828,  828,  880,  879,  877,  828, 1107,  876,  875,  869,
3314      1107,  834,  834,  834,  865,  864,  860,  834, 1112,  856,
3315       855,  854, 1112,  840,  840,  840,  853,  852,  850,  840,
3316      1116,  848,  847,  846, 1116,  845,  845,  845,  844,  842,
3317       841,  845, 1121,  839,  837,  836, 1121,  851,  851,  851,
3318       835,  833,  831,  851, 1132,  830,  829,  827, 1132,  861,
3319       861,  861,  825,  823,  822,  861, 1150,  820,  819,  818,
3320      1150,  878,  878,  878,  817,  816,  814,  878, 1154,  809,
3321       808,  806, 1154,  882,  882,  882, 4017,  787,  772,  882,
3322
3323      1164,  771,  769,  768, 1164,  892,  892,  892,  762,  761,
3324       762,  892, 1172,  761,  760,  759, 1172,  898,  898,  898,
3325      4017, 4017, 4017,  898, 1175, 4017, 4017, 4017, 1175,  904,
3326       904,  904, 4017, 4017, 4017,  904, 1185, 4017, 4017, 4017,
3327      1185,  912,  912,  912, 4017, 4017, 4017,  912, 1190, 4017,
3328      4017, 4017, 1190,  917,  917,  917, 4017, 4017, 4017,  917,
3329      1195, 4017, 4017, 4017, 1195,  922,  922,  922, 4017, 4017,
3330      4017,  922, 1199, 4017, 4017, 4017, 1199,  927,  927,  927,
3331      4017, 4017, 4017,  927, 1209, 4017, 4017, 4017, 1209,  938,
3332       938,  938, 4017, 4017, 4017,  938, 1213, 4017, 4017, 4017,
3333
3334      1213,  948,  948,  948, 4017, 4017, 4017,  948, 1224, 4017,
3335      4017, 4017, 1224,  956,  956,  956, 4017, 4017, 4017,  956,
3336      1229, 4017, 4017, 4017, 1229,  961,  961,  961, 4017, 4017,
3337      4017,  961, 1240, 4017, 4017, 4017, 1240,  972,  972,  972,
3338      4017, 4017, 4017,  972, 1245, 4017, 4017, 4017, 1245,  978,
3339       978,  978, 4017, 4017, 4017,  978, 1250, 4017, 4017, 4017,
3340      1250,  983,  983,  983, 4017, 4017, 4017,  983, 1257, 4017,
3341      4017, 4017, 1257,  990,  990,  990, 4017, 4017, 4017,  990,
3342      1264, 4017, 4017, 4017, 1264,  998,  998,  998, 4017, 4017,
3343      4017,  998, 1272, 4017, 4017, 4017, 1272, 1006, 1006, 1006,
3344
3345      4017, 4017, 4017, 1006, 1278, 4017, 4017, 4017, 1278, 1012,
3346      1012, 1012, 4017, 4017, 4017, 1012, 1283, 4017, 4017, 4017,
3347      1283, 1023, 1023, 1023, 4017, 4017, 4017, 1023, 1292, 4017,
3348      4017, 4017, 1292, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
3349      1294, 1294, 1300, 4017, 4017, 4017, 4017, 1300,  770,  770,
3350       770, 4017, 4017, 4017,  770, 1311, 1311, 1311, 1311, 4017,
3351      4017, 1311, 1311,  807,  807,  807,  807, 4017,  807, 4017,
3352       807, 1362, 1362, 1362, 1362, 4017, 4017, 1362, 1362,  815,
3353       815,  815, 4017, 4017, 4017,  815, 1372, 1372, 1372, 1372,
3354      4017, 4017, 1372, 1372,  824,  824,  824, 4017, 4017, 4017,
3355
3356       824, 1378, 1378, 1378, 1378, 4017, 4017, 1378, 1378,  828,
3357       828,  828, 4017, 4017, 4017,  828, 1387, 1387, 1387, 1387,
3358      4017, 4017, 1387, 1387,  834,  834,  834,  834, 4017,  834,
3359      4017,  834, 1397, 1397, 1397, 1397, 4017, 4017, 1397, 1397,
3360       840,  840,  840,  840, 4017,  840, 4017,  840, 1405, 1405,
3361      1405, 1405, 4017, 4017, 1405, 1405,  845,  845,  845,  845,
3362      4017,  845, 4017,  845, 1415, 1415, 1415, 1415, 4017, 4017,
3363      1415, 1415,  851,  851,  851,  851, 4017,  851, 4017,  851,
3364      1431, 1431, 1431, 1431, 4017, 4017, 1431, 1431,  861,  861,
3365       861, 4017, 4017, 4017,  861, 1456, 1456, 1456, 1456, 4017,
3366
3367      4017, 1456, 1456, 1463, 1463, 1463, 1463, 4017, 4017, 1463,
3368      1463,  882,  882,  882, 4017, 4017, 4017,  882, 1476, 1476,
3369      1476, 1476, 4017, 4017, 1476, 1476,  892,  892,  892, 4017,
3370      4017, 4017,  892, 1488, 1488, 1488, 1488, 4017, 4017, 1488,
3371      1488,  898,  898,  898, 4017, 4017, 4017,  898, 1493, 1493,
3372      1493, 1493, 4017, 4017, 1493, 1493,  904,  904,  904, 4017,
3373      4017, 4017,  904, 1505, 1505, 1505, 1505, 4017, 4017, 1505,
3374      1505,  912,  912,  912, 4017, 4017, 4017,  912, 1513, 1513,
3375      1513, 1513, 4017, 4017, 1513, 1513,  917,  917,  917, 4017,
3376      4017, 4017,  917, 1521, 1521, 1521, 1521, 4017, 4017, 1521,
3377
3378      1521,  922,  922,  922, 4017, 4017, 4017,  922, 1527, 1527,
3379      1527, 1527, 4017, 4017, 1527, 1527,  927,  927,  927, 4017,
3380      4017, 4017,  927, 1542, 1542, 1542, 1542, 4017, 4017, 1542,
3381      1542,  938,  938,  938, 4017, 4017, 4017,  938, 1548, 1548,
3382      1548, 1548, 4017, 4017, 1548, 1548,  948,  948,  948, 4017,
3383      4017, 4017,  948, 1561, 1561, 1561, 1561, 4017, 4017, 1561,
3384      1561,  956,  956,  956, 4017, 4017, 4017,  956, 1569, 1569,
3385      1569, 1569, 4017, 4017, 1569, 1569,  961,  961,  961, 4017,
3386      4017, 4017,  961, 1585, 1585, 1585, 1585, 4017, 4017, 1585,
3387      1585,  972,  972,  972,  972, 4017,  972, 4017,  972, 1594,
3388
3389      1594, 1594, 1594, 4017, 4017, 1594, 1594,  978,  978,  978,
3390      4017, 4017, 4017,  978, 1602, 1602, 1602, 1602, 4017, 4017,
3391      1602, 1602,  983,  983,  983, 4017, 4017, 4017,  983, 1612,
3392      1612, 1612, 1612, 4017, 4017, 1612, 1612,  990,  990,  990,
3393      4017, 4017, 4017,  990, 1622, 1622, 1622, 1622, 4017, 4017,
3394      1622, 1622,  998,  998,  998, 4017, 4017, 4017,  998, 1633,
3395      1633, 1633, 1633, 4017, 4017, 1633, 1633, 1006, 1006, 1006,
3396      4017, 4017, 4017, 1006, 1640, 1640, 1640, 1640, 4017, 4017,
3397      1640, 1640, 1012, 1012, 1012, 4017, 4017, 4017, 1012, 1648,
3398      1648, 1648, 1648, 4017, 4017, 1648, 1648, 1023, 1023, 1023,
3399
3400      1023, 4017, 1023, 4017, 1023, 1662, 1662, 1662, 1662, 4017,
3401      4017, 1662, 1662, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
3402      1294, 1294, 1300, 4017, 1300, 4017, 4017, 1300,  770,  770,
3403       770, 4017, 4017, 4017,  770, 1311, 1311, 1311, 1311, 4017,
3404      4017, 1311, 1311,  807,  807,  807, 4017, 4017, 4017,  807,
3405      1362, 1362, 1362, 1362, 4017, 4017, 1362, 1362,  815,  815,
3406       815, 4017, 4017, 4017,  815, 1372, 1372, 1372, 1372, 4017,
3407      4017, 1372, 1372,  824,  824,  824, 4017, 4017, 4017,  824,
3408      1378, 1378, 1378, 1378, 4017, 4017, 1378, 1378,  828,  828,
3409       828, 4017, 4017, 4017,  828, 1387, 1387, 1387, 1387, 4017,
3410
3411      4017, 1387, 1387,  834,  834,  834, 4017, 4017, 4017,  834,
3412      1397, 1397, 1397, 1397, 4017, 4017, 1397, 1397, 1405, 1405,
3413      1405, 1405, 4017, 4017, 1405, 1405,  845,  845,  845, 4017,
3414      4017, 4017,  845, 1415, 1415, 1415, 1415, 4017, 4017, 1415,
3415      1415,  851,  851,  851, 4017, 4017, 4017,  851, 1431, 1431,
3416      1431, 1431, 4017, 4017, 1431, 1431,  861,  861,  861, 4017,
3417      4017, 4017,  861, 1456, 1456, 1456, 1456, 4017, 4017, 1456,
3418      1456, 1463, 1463, 1463, 1463, 4017, 4017, 1463, 1463,  882,
3419       882,  882, 4017, 4017, 4017,  882, 1476, 1476, 1476, 1476,
3420      4017, 4017, 1476, 1476,  892,  892,  892,  892, 4017,  892,
3421
3422      4017,  892, 1488, 1488, 1488, 1488, 4017, 4017, 1488, 1488,
3423       898,  898,  898,  898, 4017,  898, 4017,  898, 1493, 1493,
3424      1493, 1493, 4017, 4017, 1493, 1493,  904,  904,  904, 4017,
3425      4017, 4017,  904, 1505, 1505, 1505, 1505, 4017, 4017, 1505,
3426      1505,  912,  912,  912, 4017, 4017, 4017,  912, 1513, 1513,
3427      1513, 1513, 4017, 4017, 1513, 1513,  917,  917,  917, 4017,
3428      4017, 4017,  917, 1521, 1521, 1521, 1521, 4017, 4017, 1521,
3429      1521,  922,  922,  922,  922, 4017,  922, 4017,  922, 1527,
3430      1527, 1527, 1527, 4017, 4017, 1527, 1527,  927,  927,  927,
3431      4017, 4017, 4017,  927, 1542, 1542, 1542, 1542, 4017, 4017,
3432
3433      1542, 1542,  938,  938,  938, 4017, 4017, 4017,  938, 1548,
3434      1548, 1548, 1548, 4017, 4017, 1548, 1548,  948,  948,  948,
3435      4017, 4017, 4017,  948, 1561, 1561, 1561, 1561, 4017, 4017,
3436      1561, 1561,  956,  956,  956, 4017, 4017, 4017,  956, 1569,
3437      1569, 1569, 1569, 4017, 4017, 1569, 1569,  961,  961,  961,
3438      4017, 4017, 4017,  961, 1585, 1585, 1585, 1585, 4017, 4017,
3439      1585, 1585,  972,  972,  972, 4017, 4017, 4017,  972, 1594,
3440      1594, 1594, 1594, 4017, 4017, 1594, 1594,  978,  978,  978,
3441      4017, 4017, 4017,  978, 1602, 1602, 1602, 1602, 4017, 4017,
3442      1602, 1602,  983,  983,  983, 4017, 4017, 4017,  983, 1612,
3443
3444      1612, 1612, 1612, 4017, 4017, 1612, 1612,  990,  990,  990,
3445      4017, 4017, 4017,  990, 1622, 1622, 1622, 1622, 4017, 4017,
3446      1622, 1622,  998,  998,  998,  998, 4017,  998, 4017,  998,
3447      1633, 1633, 1633, 1633, 4017, 4017, 1633, 1633, 1006, 1006,
3448      1006, 4017, 4017, 4017, 1006, 1640, 1640, 1640, 1640, 4017,
3449      4017, 1640, 1640, 1012, 1012, 1012, 4017, 4017, 4017, 1012,
3450      1648, 1648, 1648, 1648, 4017, 4017, 1648, 1648, 1023, 1023,
3451      1023, 4017, 4017, 4017, 1023, 1662, 1662, 1662, 1662, 4017,
3452      4017, 1662, 1662, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
3453      1294, 1294, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905,
3454
3455      1905,  770,  770,  770, 4017, 4017, 4017,  770,  807,  807,
3456       807, 4017, 4017, 4017,  807, 1362, 1362, 1362, 1362, 4017,
3457      4017, 1362, 1362,  815,  815,  815, 4017, 4017, 4017,  815,
3458      1372, 1372, 1372, 1372, 4017, 4017, 1372, 1372,  824,  824,
3459       824,  824, 4017,  824, 4017,  824, 1378, 1378, 1378, 1378,
3460      4017, 4017, 1378, 1378,  828,  828,  828, 4017, 4017, 4017,
3461       828, 1387, 1387, 1387, 1387, 4017, 4017, 1387, 1387,  834,
3462       834,  834, 4017, 4017, 4017,  834, 1397, 1397, 1397, 1397,
3463      4017, 4017, 1397, 1397, 1405, 1405, 1405, 1405, 4017, 4017,
3464      1405, 1405,  845,  845,  845, 4017, 4017, 4017,  845, 1415,
3465
3466      1415, 1415, 1415, 4017, 4017, 1415, 1415,  851,  851,  851,
3467      4017, 4017, 4017,  851, 1431, 1431, 1431, 1431, 4017, 4017,
3468      1431, 1431,  861,  861,  861,  861, 4017,  861, 4017,  861,
3469      1456, 1456, 1456, 1456, 4017, 4017, 1456, 1456, 1463, 1463,
3470      1463, 1463, 4017, 4017, 1463, 1463,  882,  882,  882, 4017,
3471      4017, 4017,  882, 1476, 1476, 1476, 1476, 4017, 4017, 1476,
3472      1476, 1488, 1488, 1488, 1488, 4017, 4017, 1488, 1488, 1493,
3473      1493, 1493, 1493, 4017, 4017, 1493, 1493,  904,  904,  904,
3474      4017, 4017, 4017,  904, 1505, 1505, 1505, 1505, 4017, 4017,
3475      1505, 1505,  912,  912,  912, 4017, 4017, 4017,  912, 1513,
3476
3477      1513, 1513, 1513, 4017, 4017, 1513, 1513,  917,  917,  917,
3478       917, 4017,  917, 4017,  917, 1521, 1521, 1521, 1521, 4017,
3479      4017, 1521, 1521,  922,  922,  922, 4017, 4017, 4017,  922,
3480      1527, 1527, 1527, 1527, 4017, 4017, 1527, 1527,  927,  927,
3481       927, 4017, 4017, 4017,  927, 1542, 1542, 1542, 1542, 4017,
3482      4017, 1542, 1542,  938,  938,  938, 4017, 4017, 4017,  938,
3483      1548, 1548, 1548, 1548, 4017, 4017, 1548, 1548,  948,  948,
3484       948, 4017, 4017, 4017,  948, 1561, 1561, 1561, 1561, 4017,
3485      4017, 1561, 1561,  956,  956,  956,  956, 4017,  956, 4017,
3486       956, 1569, 1569, 1569, 1569, 4017, 4017, 1569, 1569,  961,
3487
3488       961,  961, 4017, 4017, 4017,  961, 1585, 1585, 1585, 1585,
3489      4017, 4017, 1585, 1585,  972,  972,  972, 4017, 4017, 4017,
3490       972, 1594, 1594, 1594, 1594, 4017, 4017, 1594, 1594,  978,
3491       978,  978, 4017, 4017, 4017,  978, 1602, 1602, 1602, 1602,
3492      4017, 4017, 1602, 1602,  983,  983,  983, 4017, 4017, 4017,
3493       983, 1612, 1612, 1612, 1612, 4017, 4017, 1612, 1612,  990,
3494       990,  990, 4017, 4017, 4017,  990, 1622, 1622, 1622, 1622,
3495      4017, 4017, 1622, 1622,  998,  998,  998, 4017, 4017, 4017,
3496       998, 1633, 1633, 1633, 1633, 4017, 4017, 1633, 1633, 1006,
3497      1006, 1006, 4017, 4017, 4017, 1006, 1640, 1640, 1640, 1640,
3498
3499      4017, 4017, 1640, 1640, 1012, 1012, 1012, 4017, 4017, 4017,
3500      1012, 1648, 1648, 1648, 1648, 4017, 4017, 1648, 1648, 1023,
3501      1023, 1023, 4017, 4017, 4017, 1023, 1662, 1662, 1662, 1662,
3502      4017, 4017, 1662, 1662, 1294, 1294, 1294, 1294, 1294, 1294,
3503      1294, 1294, 1294, 1905, 1905, 1905, 1905, 1905, 1905, 1905,
3504      1905, 1905,  770,  770,  770, 4017, 4017, 4017,  770,  807,
3505       807,  807,  807, 4017,  807, 4017,  807, 1362, 1362, 1362,
3506      1362, 4017, 4017, 1362, 1362,  815,  815,  815, 4017, 4017,
3507      4017,  815, 1372, 1372, 1372, 1372, 4017, 4017, 1372, 1372,
3508      1378, 1378, 1378, 1378, 4017, 4017, 1378, 1378,  828,  828,
3509
3510       828, 4017, 4017, 4017,  828, 1387, 1387, 1387, 1387, 4017,
3511      4017, 1387, 1387,  834,  834,  834,  834, 4017,  834, 4017,
3512       834, 1397, 1397, 1397, 1397, 4017, 4017, 1397, 1397, 1405,
3513      1405, 1405, 1405, 4017, 4017, 1405, 1405,  845,  845,  845,
3514       845, 4017,  845, 4017,  845, 1415, 1415, 1415, 1415, 4017,
3515      4017, 1415, 1415,  851,  851,  851,  851, 4017,  851, 4017,
3516       851, 1431, 1431, 1431, 1431, 4017, 4017, 1431, 1431,  861,
3517       861,  861,  861, 4017,  861, 4017,  861, 1456, 1456, 1456,
3518      1456, 4017, 4017, 1456, 1456, 1463, 1463, 1463, 1463, 4017,
3519      4017, 1463, 1463,  882,  882,  882, 4017, 4017, 4017,  882,
3520
3521      1476, 1476, 1476, 1476, 4017, 4017, 1476, 1476, 1488, 1488,
3522      1488, 1488, 4017, 4017, 1488, 1488, 1493, 1493, 1493, 1493,
3523      4017, 4017, 1493, 1493,  904,  904,  904, 4017, 4017, 4017,
3524       904, 1505, 1505, 1505, 1505, 4017, 4017, 1505, 1505,  912,
3525       912,  912, 4017, 4017, 4017,  912, 1513, 1513, 1513, 1513,
3526      4017, 4017, 1513, 1513, 1521, 1521, 1521, 1521, 4017, 4017,
3527      1521, 1521,  922,  922,  922, 4017, 4017, 4017,  922, 1527,
3528      1527, 1527, 1527, 4017, 4017, 1527, 1527,  927,  927,  927,
3529      4017, 4017, 4017,  927, 1542, 1542, 1542, 1542, 4017, 4017,
3530      1542, 1542,  938,  938,  938, 4017, 4017, 4017,  938, 1548,
3531
3532      1548, 1548, 1548, 4017, 4017, 1548, 1548,  948,  948,  948,
3533      4017, 4017, 4017,  948, 1561, 1561, 1561, 1561, 4017, 4017,
3534      1561, 1561, 1569, 1569, 1569, 1569, 4017, 4017, 1569, 1569,
3535       961,  961,  961, 4017, 4017, 4017,  961, 1585, 1585, 1585,
3536      1585, 4017, 4017, 1585, 1585,  972,  972,  972, 4017, 4017,
3537      4017,  972, 1594, 1594, 1594, 1594, 4017, 4017, 1594, 1594,
3538       978,  978,  978, 4017, 4017, 4017,  978, 1602, 1602, 1602,
3539      1602, 4017, 4017, 1602, 1602,  983,  983,  983,  983, 4017,
3540       983, 4017,  983, 1612, 1612, 1612, 1612, 4017, 4017, 1612,
3541      1612,  990,  990,  990, 4017, 4017, 4017,  990, 1622, 1622,
3542
3543      1622, 1622, 4017, 4017, 1622, 1622,  998,  998,  998, 4017,
3544      4017, 4017,  998, 1633, 1633, 1633, 1633, 4017, 4017, 1633,
3545      1633, 1006, 1006, 1006, 4017, 4017, 4017, 1006, 1640, 1640,
3546      1640, 1640, 4017, 4017, 1640, 1640, 1012, 1012, 1012, 4017,
3547      4017, 4017, 1012, 1648, 1648, 1648, 1648, 4017, 4017, 1648,
3548      1648, 1023, 1023, 1023, 1023, 4017, 1023, 4017, 1023, 1662,
3549      1662, 1662, 1662, 4017, 4017, 1662, 1662, 1294, 1294, 1294,
3550      1294, 1294, 1294, 1294, 1294, 1294, 1905, 1905, 1905, 1905,
3551      1905, 1905, 1905, 1905, 1905,  770,  770,  770,  770, 4017,
3552       770, 4017,  770,  807,  807,  807, 4017, 4017, 4017,  807,
3553
3554      1362, 1362, 1362, 1362, 4017, 4017, 1362, 1362,  815,  815,
3555       815, 4017, 4017, 4017,  815, 1372, 1372, 1372, 1372, 4017,
3556      4017, 1372, 1372, 1378, 1378, 1378, 1378, 4017, 4017, 1378,
3557      1378,  828,  828,  828, 4017, 4017, 4017,  828, 1387, 1387,
3558      1387, 1387, 4017, 4017, 1387, 1387, 1397, 1397, 1397, 1397,
3559      4017, 4017, 1397, 1397, 1405, 1405, 1405, 1405, 4017, 4017,
3560      1405, 1405, 1415, 1415, 1415, 1415, 4017, 4017, 1415, 1415,
3561       851,  851,  851,  851, 4017,  851, 4017,  851, 1431, 1431,
3562      1431, 1431, 4017, 4017, 1431, 1431,  861,  861,  861, 4017,
3563      4017, 4017,  861, 1456, 1456, 1456, 1456, 4017, 4017, 1456,
3564
3565      1456, 1463, 1463, 1463, 1463, 4017, 4017, 1463, 1463,  882,
3566       882,  882, 4017, 4017, 4017,  882, 1488, 1488, 1488, 1488,
3567      4017, 4017, 1488, 1488, 1493, 1493, 1493, 1493, 4017, 4017,
3568      1493, 1493,  904,  904,  904, 4017, 4017, 4017,  904,  912,
3569       912,  912, 4017, 4017, 4017,  912, 1513, 1513, 1513, 1513,
3570      4017, 4017, 1513, 1513, 1521, 1521, 1521, 1521, 4017, 4017,
3571      1521, 1521,  922,  922,  922, 4017, 4017, 4017,  922, 1527,
3572      1527, 1527, 1527, 4017, 4017, 1527, 1527,  927,  927,  927,
3573      4017, 4017, 4017,  927,  938,  938,  938,  938, 4017,  938,
3574      4017,  938, 1548, 1548, 1548, 1548, 4017, 4017, 1548, 1548,
3575
3576       948,  948,  948, 4017, 4017, 4017,  948, 1561, 1561, 1561,
3577      1561, 4017, 4017, 1561, 1561,  961,  961,  961, 4017, 4017,
3578      4017,  961, 1585, 1585, 1585, 1585, 4017, 4017, 1585, 1585,
3579       972,  972,  972, 4017, 4017, 4017,  972, 1594, 1594, 1594,
3580      1594, 4017, 4017, 1594, 1594,  978,  978,  978, 4017, 4017,
3581      4017,  978, 1602, 1602, 1602, 1602, 4017, 4017, 1602, 1602,
3582       983,  983,  983,  983, 4017,  983, 4017,  983, 1612, 1612,
3583      1612, 1612, 4017, 4017, 1612, 1612,  990,  990,  990,  990,
3584      4017,  990, 4017,  990, 1622, 1622, 1622, 1622, 4017, 4017,
3585      1622, 1622,  998,  998,  998, 4017, 4017, 4017,  998, 1633,
3586
3587      1633, 1633, 1633, 4017, 4017, 1633, 1633, 1006, 1006, 1006,
3588      1006, 4017, 1006, 4017, 1006, 1640, 1640, 1640, 1640, 4017,
3589      4017, 1640, 1640, 1012, 1012, 1012, 1012, 4017, 1012, 4017,
3590      1012, 1023, 1023, 1023, 4017, 4017, 4017, 1023, 1662, 1662,
3591      1662, 1662, 4017, 4017, 1662, 1662, 1294, 1294, 1294, 1294,
3592      1294, 1294, 1294, 1294, 1294, 1905, 1905, 1905, 1905, 1905,
3593      1905, 1905, 1905, 1905,  807,  807,  807, 4017, 4017, 4017,
3594       807, 1362, 1362, 1362, 1362, 4017, 4017, 1362, 1362,  815,
3595       815,  815,  815, 4017,  815, 4017,  815, 1378, 1378, 1378,
3596      1378, 4017, 4017, 1378, 1378,  828,  828,  828, 4017, 4017,
3597
3598      4017,  828, 1387, 1387, 1387, 1387, 4017, 4017, 1387, 1387,
3599      1397, 1397, 1397, 1397, 4017, 4017, 1397, 1397, 1405, 1405,
3600      1405, 1405, 4017, 4017, 1405, 1405, 1415, 1415, 1415, 1415,
3601      4017, 4017, 1415, 1415, 1431, 1431, 1431, 1431, 4017, 4017,
3602      1431, 1431,  861,  861,  861, 4017, 4017, 4017,  861, 1456,
3603      1456, 1456, 1456, 4017, 4017, 1456, 1456, 1463, 1463, 1463,
3604      1463, 4017, 4017, 1463, 1463,  882,  882,  882, 4017, 4017,
3605      4017,  882, 1488, 1488, 1488, 1488, 4017, 4017, 1488, 1488,
3606      1493, 1493, 1493, 1493, 4017, 4017, 1493, 1493,  904,  904,
3607       904, 4017, 4017, 4017,  904,  912,  912,  912, 4017, 4017,
3608
3609      4017,  912, 1513, 1513, 1513, 1513, 4017, 4017, 1513, 1513,
3610      1521, 1521, 1521, 1521, 4017, 4017, 1521, 1521,  922,  922,
3611       922, 4017, 4017, 4017,  922,  927,  927,  927, 4017, 4017,
3612      4017,  927, 1548, 1548, 1548, 1548, 4017, 4017, 1548, 1548,
3613       948,  948,  948,  948, 4017,  948, 4017,  948, 1561, 1561,
3614      1561, 1561, 4017, 4017, 1561, 1561,  961,  961,  961, 4017,
3615      4017, 4017,  961, 1585, 1585, 1585, 1585, 4017, 4017, 1585,
3616      1585,  972,  972,  972, 4017, 4017, 4017,  972,  978,  978,
3617       978, 4017, 4017, 4017,  978, 1602, 1602, 1602, 1602, 4017,
3618      4017, 1602, 1602, 1612, 1612, 1612, 1612, 4017, 4017, 1612,
3619
3620      1612, 1622, 1622, 1622, 1622, 4017, 4017, 1622, 1622,  998,
3621       998,  998, 4017, 4017, 4017,  998, 1640, 1640, 1640, 1640,
3622      4017, 4017, 1640, 1640, 1023, 1023, 1023, 4017, 4017, 4017,
3623      1023, 1662, 1662, 1662, 1662, 4017, 4017, 1662, 1662, 1294,
3624      1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1905, 1905,
3625      1905, 1905, 1905, 1905, 1905, 1905, 1905,  807,  807,  807,
3626      4017, 4017, 4017,  807, 1362, 1362, 1362, 1362, 4017, 4017,
3627      1362, 1362,  815,  815,  815,  815, 4017,  815, 4017,  815,
3628      1378, 1378, 1378, 1378, 4017, 4017, 1378, 1378,  828,  828,
3629       828,  828, 4017,  828, 4017,  828, 1387, 1387, 1387, 1387,
3630
3631      4017, 4017, 1387, 1387, 1397, 1397, 1397, 1397, 4017, 4017,
3632      1397, 1397, 1405, 1405, 1405, 1405, 4017, 4017, 1405, 1405,
3633      1415, 1415, 1415, 1415, 4017, 4017, 1415, 1415, 1431, 1431,
3634      1431, 1431, 4017, 4017, 1431, 1431,  861,  861,  861, 4017,
3635      4017, 4017,  861, 1456, 1456, 1456, 1456, 4017, 4017, 1456,
3636      1456,  882,  882,  882, 4017, 4017, 4017,  882, 1488, 1488,
3637      1488, 1488, 4017, 4017, 1488, 1488, 1493, 1493, 1493, 1493,
3638      4017, 4017, 1493, 1493,  904,  904,  904,  904, 4017,  904,
3639      4017,  904,  912,  912,  912,  912, 4017,  912, 4017,  912,
3640      1513, 1513, 1513, 1513, 4017, 4017, 1513, 1513, 1521, 1521,
3641
3642      1521, 1521, 4017, 4017, 1521, 1521,  922,  922,  922,  922,
3643      4017,  922, 4017,  922,  927,  927,  927, 4017, 4017, 4017,
3644       927, 1548, 1548, 1548, 1548, 4017, 4017, 1548, 1548,  948,
3645       948,  948,  948, 4017,  948, 4017,  948, 1561, 1561, 1561,
3646      1561, 4017, 4017, 1561, 1561,  961,  961,  961,  961, 4017,
3647       961, 4017,  961,  972,  972,  972, 4017, 4017, 4017,  972,
3648       978,  978,  978, 4017, 4017, 4017,  978, 1612, 1612, 1612,
3649      1612, 4017, 4017, 1612, 1612, 1622, 1622, 1622, 1622, 4017,
3650      4017, 1622, 1622,  998,  998,  998, 4017, 4017, 4017,  998,
3651      1640, 1640, 1640, 1640, 4017, 4017, 1640, 1640, 1023, 1023,
3652
3653      1023, 4017, 4017, 4017, 1023, 1662, 1662, 1662, 1662, 4017,
3654      4017, 1662, 1662, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
3655      1294, 1294, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905,
3656      1905,  807,  807,  807, 4017, 4017, 4017,  807,  815,  815,
3657       815,  815, 4017,  815, 4017,  815, 1378, 1378, 1378, 1378,
3658      4017, 4017, 1378, 1378, 1387, 1387, 1387, 1387, 4017, 4017,
3659      1387, 1387, 1397, 1397, 1397, 1397, 4017, 4017, 1397, 1397,
3660      1405, 1405, 1405, 1405, 4017, 4017, 1405, 1405, 1415, 1415,
3661      1415, 1415, 4017, 4017, 1415, 1415,  861,  861,  861, 4017,
3662      4017, 4017,  861,  882,  882,  882, 4017, 4017, 4017,  882,
3663
3664      1488, 1488, 1488, 1488, 4017, 4017, 1488, 1488,  904,  904,
3665       904, 4017, 4017, 4017,  904, 1513, 1513, 1513, 1513, 4017,
3666      4017, 1513, 1513, 1521, 1521, 1521, 1521, 4017, 4017, 1521,
3667      1521,  927,  927,  927, 4017, 4017, 4017,  927, 1548, 1548,
3668      1548, 1548, 4017, 4017, 1548, 1548,  948,  948,  948,  948,
3669      4017,  948, 4017,  948,  961,  961,  961, 4017, 4017, 4017,
3670       961,  972,  972,  972, 4017, 4017, 4017,  972,  978,  978,
3671       978, 4017, 4017, 4017,  978, 3401, 3401, 3401, 3401, 3401,
3672      3401, 3401, 3401, 3401, 3402, 3402, 3402, 3402, 3402, 3402,
3673      3402, 3402, 3402, 3493, 3493, 3493, 3493, 3493, 3493, 3493,
3674
3675      3493, 3493, 3496, 3496, 3496, 3496, 3496, 3496, 3496, 3496,
3676      3496, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569,
3677      3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571,  307,
3678      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
3679      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
3680      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
3681      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
3682      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
3683      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
3684      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
3685
3686      4017, 4017, 4017, 4017, 4017
3687     } ;
3688
3689 static const flex_int16_t yy_chk[14006] =
3690     {   0,
3691         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3692         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3693         4,   10, 1002,    5,    0,    9,    6,  378,   10,    7,
3694         8,    8,    8,  312,   11,   13,   13,   12,   14,   14,
3695        13,   13,  350,   14,   14,  313,    8,   17,   17,  312,
3696        13,   15,   15,   14,   15,  316,   15,   16,   16, 1002,
3697        16,  313,   16,   18,   18,  378,   15,   21,   21,   21,
3698      1532,  316,   16,   22,   22,   22,  467,   23,   23,   23,
3699        24,   24,   24,   21,   25,   25,   25,  359, 1533,   22,
3700       467,  338,   17,   23,  359,  350,   24,  310,  310,  310,
3701
3702        25,  311,  311,  311,  315,  315,  315,  338,   18,   19,
3703        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
3704        19,   19,   19,   19,  355,   19,   19,   19,   19,   19,
3705        26,   26,   26,   27,   27,   27,   28,   28,   28,  465,
3706       355,   29,   29,   29,  363,  452,   26,  465,  363,   27,
3707       452,  764,   28,  465,  764,   19,   19,   29,   30,   30,
3708        30,  335,  335,  335,  364,  362,   19,  343,  343,  343,
3709       352,  352,  352, 1539,   30,   19,   20,   20,   20,   20,
3710        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
3711        20,  462,   20,   20,   20,   20,   20,   31,   31,   31,
3712
3713        32,   32,   32,   33,   33,   33,  251,  251,   34,   34,
3714        34,  251,  462,   31,  362,  369,   32,  364,  362,   33,
3715       534,  251,   20,   20,   34,   35,   35,   35,   36,   36,
3716        36,  369,  534,   20,   37,   37,   37,   38,   38,   38,
3717       884,   35,   20,  884,   36,   39,   39,   39,  380, 1540,
3718        37,  251,  385,   38,   40,   40,   40,  361,  361,  361,
3719       415,   39,  366,  366,  366,  377,  377,  377,  385,  616,
3720        40,   41,   41,   41,   41,   41,   41,   41,   41,   41,
3721        41,   41,   41,   41,   41,   41,  395,   41,   41,   41,
3722        41,   41,   43,   43,   43,   44,   44,   44,   45,   45,
3723
3724        45,  380,  395,   46,   46,   46,  495,  616,   43,  390,
3725       495,   44, 1545,  415,   45, 1546,  390,   41,   41,   46,
3726        47,   47,   47,   41,  498,  390,   41,  382,  382,  382,
3727       389,  389,  389,  392,  392,  392,   47, 1551,   41,   42,
3728        42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
3729        42,   42,   42,   42,  407,   42,   42,   42,   42,   42,
3730        48,   48,   48,   49,   49,   49,   50,   50,   50,  777,
3731       407,   53,   53,   53,  498, 1552,   48,  402, 1554,   49,
3732       777,  776,   50,  777,  402,   42,   42,   53,   54,   54,
3733        54,   42,  427,  402,   42,  401,  401,  401,  404,  404,
3734
3735       404,  413,  413,  413,   54,  776,   42,   51,   51,   51,
3736        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
3737        51,   51,  420,   51,   51,   51,   51,   51,   55,   55,
3738        55,   56,   56,   56,   57,   57,   57,  440,  420,   58,
3739        58,   58, 1202,  432,   55,  427,  445,   56, 1202,  460,
3740        57, 1555,  473,   51,   51,   58,   59,   59,   59,  432,
3741       692,   51,  445,   51,  414,  460,   51,  417,  417,  417,
3742        51, 1557,   59, 1558,   51,   52,   52,   52,   52,   52,
3743        52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
3744       440,   52,   52,   52,   52,   52,   60,   60,   60,   63,
3745
3746        63,   63,   64,   64,   64,  473,  468,   67,   67,   67,
3747       692,  478,   60,  414,  468,   63,  783,  414,   64,  468,
3748       484,   52,   52,   67,   68,   68,   68,  478, 1330,   52,
3749       783,   52,  426, 1559,   52,  425,  425,  425,   52, 1567,
3750        68, 1330,   52,   61,   61,   61,   61,   61,   61,   61,
3751        61,   61,   61,   61,   61,   61,   61,   61,  489,   61,
3752        61,   61,   61,   61,   71,   71,   71,   72,   72,   72,
3753        73,   73,   73,  484,  489,   74,   74,   74,  583, 1572,
3754        71,  426,  583,   72, 1581,  426,   73, 1583,  505,   61,
3755        61,   74,   75,   75,   75,   76,   76,   76,  429,  429,
3756
3757       429,  438,  438,  438,  505,  500,  439, 1592,   75, 1597,
3758      1605,   76, 1606,   61,   62,   62,   62,   62,   62,   62,
3759        62,   62,   62,   62,   62,   62,   62,   62,   62,  517,
3760        62,   62,   62,   62,   62,   77,   77,   77,   78,   78,
3761        78,   81,   81,   81, 1610,  517,   82,   82,   82,  650,
3762      1615,   77, 1619, 1625,   78,  439,  650,   81,  500,  439,
3763        62,   62,   82,   83,   83,   83,   84,   84,   84,  442,
3764       442,  442,  454,  454,  454,  457,  457,  457, 1631,   83,
3765       326, 1636,   84, 1638,   62,   65,   65,   65,   65,   65,
3766        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3767
3768       529,   65,   65,   65,   65,   65,   85,   85,   85,   86,
3769        86,   86,   87,   87,   87,  598,  529,   88,   88,   88,
3770       455, 1646,   85,  326,  524,   86,  601,  455,   87,  326,
3771       598,   65,   65,   88,  326,   65,  455,  538,  600,  326,
3772       735,  601,   65, 1651,  735,   65,   66,   66,   66,   66,
3773        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3774        66,  789,   66,   66,   66,   66,   66,   91,   91,   91,
3775        92,   92,   92,   93,   93,   93,  600,  524,   94,   94,
3776        94,  800, 1652,   91,  602,  789,   92, 1653,  512,   93,
3777       538,  600,   66,   66,   94,  512,   66,  471,  471,  471,
3778
3779       475,  475,  475,   66,  512,  800,   66,   69,   69,   69,
3780        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
3781        69,   69,  543,   69,   69,   69,   69,   69,   95,   95,
3782        95,   96,   96,   96,   97,   97,   97,  602,  543,   98,
3783        98,   98,  749, 1656,   95,  549,  795,   96, 1657,  749,
3784        97, 1660,  549,   69,   69,   98,  101,  101,  101,   69,
3785       795,  549,   69,  482,  482,  482,  486,  486,  486,  497,
3786       497,  497,  101, 1669,   69,   70,   70,   70,   70,   70,
3787        70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
3788       554,   70,   70,   70,   70,   70,  102,  102,  102,  105,
3789
3790       105,  105,  106,  106,  106,  790,  554,  107,  107,  107,
3791      1297, 1670,  102,  560, 1297,  105,  790,  804,  106,  790,
3792       560,   70,   70,  107,  108,  108,  108,   70,  617,  560,
3793        70,  502,  502,  502,  511,  511,  511,  514,  514,  514,
3794       108,  804,   70,   79,   79,   79,   79,   79,   79,   79,
3795        79,   79,   79,   79,   79,   79,   79,   79,  565,   79,
3796        79,   79,   79,   79,  109,  109,  109,  110,  110,  110,
3797       111,  111,  111,  639,  565,  112,  112,  112, 1671, 1674,
3798       109,  617, 1675,  110, 1676, 1016,  111, 1677,  639,   79,
3799        79,  112,  115,  115,  115,   79,  521,  521,  521,  526,
3800
3801       526,  526,  536,  536,  536,  540,  540,  540,  115, 1016,
3802        79,   80,   80,   80,   80,   80,   80,   80,   80,   80,
3803        80,   80,   80,   80,   80,   80,  576,   80,   80,   80,
3804        80,   80,  116,  116,  116,  117,  117,  117,  118,  118,
3805       118,  802,  576,  119,  119,  119, 1678, 1679,  116, 1680,
3806      1681,  117, 1683, 1017,  118,  802,  654,   80,   80,  119,
3807       120,  120,  120,   80,  548,  548,  548,  551,  551,  551,
3808       559,  559,  559,  562,  562,  562,  120, 1017,   80,   89,
3809        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
3810        89,   89,   89,   89,  592,   89,   89,   89,   89,   89,
3811
3812       121,  121,  121,  122,  122,  122,  125,  125,  125,  654,
3813       592,  126,  126,  126, 1685, 1686,  121,  571,  805,  122,
3814      1688, 1018,  125, 1689,  571,   89,   89,  126,  127,  127,
3815       127,   89,  805,  571,   89,  570,  570,  570,  573,  573,
3816       573,  585,  585,  585,  127, 1018,   89,   90,   90,   90,
3817        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
3818        90,   90,  607,   90,   90,   90,   90,   90,  128,  128,
3819       128,  129,  129,  129,  130,  130,  130, 1691,  607,  131,
3820       131,  131, 1692, 1693,  128,  586, 1694,  129, 1697, 1019,
3821       130,  587,  586,   90,   90,  131,  132,  132,  132,   90,
3822
3823       679,  586,   90,  589,  589,  589,  694,  587,  596,  596,
3824       596,  348,  132, 1019,   90,   99,   99,   99,   99,   99,
3825        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
3826       622,   99,   99,   99,   99,   99,  135,  135,  135,  136,
3827       136,  136,  139,  139,  139,  740,  622,  140,  140,  140,
3828       348,  587,  135,  679,  599,  136,  944,  633,  139,  694,
3829       753,   99,   99,  140,  348,   99,  348,  599,  348,  599,
3830       944,  733,   99,  633, 1698,   99,  604,  604,  604,   99,
3831      1699,   99,   99,  100,  100,  100,  100,  100,  100,  100,
3832       100,  100,  100,  100,  100,  100,  100,  100,  740,  100,
3833
3834       100,  100,  100,  100,  141,  141,  141,  142,  142,  142,
3835       143,  143,  143,  753,  637,  144,  144,  144,  637, 1700,
3836       141, 1701,  637,  142,  733,  628,  143,  755,  733,  100,
3837       100,  144,  628,  100,  615,  615,  615,  619,  619,  619,
3838       100,  628,  755,  100,  627,  627,  627,  100, 1703,  100,
3839       100,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3840       103,  103,  103,  103,  103,  103,  647,  103,  103,  103,
3841       103,  103,  145,  145,  145,  146,  146,  146,  149,  149,
3842       149,  775,  647,  150,  150,  150, 1706, 1707,  145, 1708,
3843      1710,  146,  822,  642,  149,  941,  775,  103,  103,  150,
3844
3845       642,  103,  103,  630,  630,  630,  653,  822,  103,  642,
3846       941,  103,  641,  641,  641,  103, 1712,  103,  103,  103,
3847       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3848       104,  104,  104,  104,  104,  659,  104,  104,  104,  104,
3849       104,  151,  151,  151,  152,  152,  152,  153,  153,  153,
3850       942,  659,  154,  154,  154,  653, 1716,  151, 1058,  653,
3851       152,  942,  665,  153,  942,  945,  104,  104,  154,  665,
3852       104,  104,  644,  644,  644, 1058,  945,  104,  665,  945,
3853       104,  652,  652,  652,  104,  731,  104,  104,  104,  113,
3854       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3855
3856       113,  113,  113,  113,  670,  113,  113,  113,  113,  113,
3857       155,  155,  155,  156,  156,  156,  159,  159,  159, 1454,
3858       670,  160,  160,  160,  731, 1717,  155, 1721,  684,  156,
3859      1724, 1454,  159,  752,  731,  113,  113,  160,  656,  656,
3860       656,  664,  664,  664,  684,  597,  113,  114,  114,  114,
3861       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
3862       114,  114,  699,  114,  114,  114,  114,  114,  163,  163,
3863       163,  164,  164,  164,  167,  167,  167, 1020,  699,  168,
3864       168,  168,  752,  597,  163,  597,  752,  164, 1020, 1727,
3865       167, 1020, 1728,  114,  114,  168, 1729, 1731,  597, 1734,
3866
3867       597,  667,  667,  667,  114,  123,  123,  123,  123,  123,
3868       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3869       710,  123,  123,  123,  123,  123,  171,  171,  171,  172,
3870       172,  172,  173,  173,  173, 1735,  710,  174,  174,  174,
3871      1740, 1665,  171, 1741,  722,  172, 1021, 1756,  173,  738,
3872      1757,  123,  123,  174,  123,  745,  123,  677,  677,  677,
3873       722, 1665,  123,  681,  681,  681,  691,  691,  691,  123,
3874      1021,  745,  123,  124,  124,  124,  124,  124,  124,  124,
3875       124,  124,  124,  124,  124,  124,  124,  124,  738,  124,
3876       124,  124,  124,  124,  177,  177,  177,  178,  178,  178,
3877
3878       179,  179,  179, 1765,  738,  180,  180,  180, 1766, 1768,
3879       177, 1790, 1031,  178, 1791, 1794,  179, 1796, 1798,  124,
3880       124,  180,  124, 1806,  124,  696,  696,  696, 1031, 1807,
3881       124,  707,  707,  707,  716,  716,  716,  124, 1808, 1166,
3882       124,  133,  133,  133,  133,  133,  133,  133,  133,  133,
3883       133,  133,  133,  133,  133,  133, 1166,  133,  133,  133,
3884       133,  133,  181,  181,  181,  182,  182,  182,  183,  183,
3885       183, 1809, 1336,  184,  184,  184, 1811, 1266,  181,  704,
3886      1817,  182, 1819, 1553,  183, 1336,  704,  133,  133,  184,
3887       185,  185,  185,  133, 1266,  704, 1553,  736,  133,  719,
3888
3889       719,  719,  727,  727,  727, 1821,  185,  742,  742,  742,
3890       133,  134,  134,  134,  134,  134,  134,  134,  134,  134,
3891       134,  134,  134,  134,  134,  134,  736,  134,  134,  134,
3892       134,  134,  186,  186,  186,  187,  187,  187,  188,  188,
3893       188, 1822,  736,  189,  189,  189, 1827, 1829,  186,  717,
3894       736,  187, 1830, 1832,  188, 1833,  717,  134,  134,  189,
3895       190,  190,  190,  134, 1834,  717, 1835, 1836,  134,  751,
3896       751,  751,  754,  754,  754, 1839,  190, 1314, 1314, 1314,
3897       134,  137,  137,  137,  137,  137,  137,  137,  137,  137,
3898       137,  137,  137,  137,  137,  137, 1840,  137,  137,  137,
3899
3900       137,  137,  191,  191,  191,  192,  192,  192,  193,  193,
3901       193, 1841,  732,  194,  194,  194, 1845, 1854,  191,  782,
3902      1857,  192,  732, 1865,  193, 1867,  782,  137,  137,  194,
3903      1869, 1870,  782, 1871, 1873,  137,  138,  138,  138,  138,
3904       138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
3905       138,  732,  138,  138,  138,  138,  138,  195,  195,  195,
3906       196,  196,  196,  199,  199,  199, 1878,  787,  200,  200,
3907       200, 1134, 1881,  195,  787,  732,  196, 1882, 1884,  199,
3908       787, 1134,  138,  138,  200,  763,  763,  763, 1134, 1889,
3909       138,  147,  147,  147,  147,  147,  147,  147,  147,  147,
3910
3911       147,  147,  147,  147,  147,  147, 1891,  147,  147,  147,
3912       147,  147,  201,  201,  201,  202,  202,  202,  203,  203,
3913       203, 1892,  794,  204,  204,  204, 1893, 1897,  201,  794,
3914      1898,  202, 1902,  801,  203,  794,  943,  147,  147,  204,
3915       801,  147, 1905,  943, 1908,  763,  801, 1911,  147,  943,
3916      1912,  147, 1034, 1034, 1034, 1914, 1034, 1915,  147,  148,
3917       148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
3918       148,  148,  148,  148, 1916,  148,  148,  148,  148,  148,
3919       205,  205,  205,  206,  206,  206,  209,  209,  209, 1917,
3920       946,  210,  210,  210, 1918, 1919,  205,  946, 1921,  206,
3921
3922      1922, 1924,  209,  946, 1925,  148,  148,  210, 1928,  148,
3923      1043, 1043, 1043, 1929, 1043, 1931,  148, 1043, 1933,  148,
3924      1337, 1337, 1337, 1687, 1687, 1687,  148,  157,  157,  157,
3925       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3926       157,  157, 1936,  157,  157,  157,  157,  157,  213,  213,
3927       213,  214,  214,  214,  217,  217,  217, 1938, 1904,  218,
3928       218,  218, 1939, 1940,  213, 1941, 1942,  214, 1944, 1945,
3929       217, 1949, 1952,  157,  157,  218, 1047, 1047, 1047,  157,
3930      1682, 1682, 1682, 1904,  157,  158,  158,  158,  158,  158,
3931       158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
3932
3933      1959,  158,  158,  158,  158,  158,  219,  219,  219,  220,
3934       220,  220,  221,  221,  221, 1960, 1964,  222,  222,  222,
3935      1965, 1966,  219, 1968, 1972,  220, 1973, 1682,  221, 2008,
3936      2009,  158,  158,  222, 1068, 1068, 1068,  158, 1081, 1081,
3937      1081, 1047,  158,  161,  161,  161,  161,  161,  161,  161,
3938       161,  161,  161,  161,  161,  161,  161,  161, 2016,  161,
3939       161,  161,  161,  161,  223,  223,  223,  224,  224,  224,
3940       227,  227,  227, 2027, 2028,  228,  228,  228, 2029, 2030,
3941       223, 2032, 2040,  224, 2042, 2046,  227, 2049, 2051,  161,
3942       161,  228,  231,  231,  231,  232,  232,  232, 2052, 1068,
3943
3944       161, 2055, 2056, 1081, 2057, 1105, 1105, 1105,  231, 1105,
3945      2058,  232, 1105,  161,  162,  162,  162,  162,  162,  162,
3946       162,  162,  162,  162,  162,  162,  162,  162,  162, 2062,
3947       162,  162,  162,  162,  162,  233,  233,  233,  234,  234,
3948       234,  235,  235,  235, 2063, 2064,  236,  236,  236, 2069,
3949      2073,  233, 2077, 2079,  234, 2081, 2087,  235, 2094, 2098,
3950       162,  162,  236,  237,  237,  237,  238,  238,  238, 2099,
3951      2101,  162, 2108, 1124, 1124, 1124, 2110, 1124, 2111,  237,
3952      1124, 2112,  238, 2117,  162,  165,  165,  165,  165,  165,
3953       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
3954
3955      2117,  165,  165,  165,  165,  165,  241,  241,  241,  242,
3956       242,  242,  243,  243,  243, 2119, 2122,  244,  244,  244,
3957      2124, 2125,  241, 2127, 2128,  242, 2130, 2126,  243, 2131,
3958      2132,  165,  165,  244,  245,  245,  245, 1126, 1126, 1126,
3959      2118, 1126, 2133, 2126, 1126, 2135, 2136,  165, 2140, 2119,
3960       245, 2126,  165,  166,  166,  166,  166,  166,  166,  166,
3961       166,  166,  166,  166,  166,  166,  166,  166, 2142,  166,
3962       166,  166,  166,  166,  246,  246,  246,  247,  247,  247,
3963       248,  248,  248, 2118, 2143,  255,  255,  255, 2144, 2145,
3964       246, 2147, 2148,  247, 2149, 2150,  248,  252,  252,  166,
3965
3966       166,  255,  252,  256,  256,  256, 1136, 1136, 1136, 2153,
3967      1136, 2155,  252, 1136, 2156,  166, 1684, 1684, 1684,  256,
3968       166,  169,  169,  169,  169,  169,  169,  169,  169,  169,
3969       169,  169,  169,  169,  169,  169, 2146,  169,  169,  169,
3970       169,  169,  252,  259,  259,  259,  260,  260,  260,  261,
3971       261,  261, 2146,  262,  262,  262,  771,  771,  771,  259,
3972      2146, 2161,  260, 1684, 2163,  261, 2164,  169,  169,  262,
3973       169,  169,  169,  771, 2165, 1139, 1139, 1139,  169, 1139,
3974      2166,  169, 1139, 2167, 2169, 1177, 1177, 1177,  169,  170,
3975       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
3976
3977       170,  170,  170,  170, 2174,  170,  170,  170,  170,  170,
3978       263,  263,  263,  264,  264,  264,  265,  265,  265, 2202,
3979      2203,  266,  266,  266, 2204, 2208,  263, 2209, 2215,  264,
3980      2216, 2219,  265, 2220, 2226,  170,  170,  266,  170,  170,
3981       170, 1153, 1153, 1153, 2232, 1153,  170, 2234, 1153,  170,
3982      1177, 1690, 1690, 1690, 2235, 2238,  170,  175,  175,  175,
3983       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
3984       175,  175, 2244,  175,  175,  175,  175,  175,  267,  267,
3985       267,  268,  268,  268,  269,  269,  269, 2246, 2252,  270,
3986       270,  270, 2256, 2259,  267, 2264, 2266,  268, 2267, 2268,
3987
3988       269, 2269, 2276,  175,  175,  270,  271,  271,  271,  272,
3989       272,  272, 1160, 1160, 1160, 2278, 1160, 2280, 2282, 1160,
3990      2295, 2296,  271, 2297, 2300,  272, 2301,  175,  176,  176,
3991       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3992       176,  176,  176, 2303,  176,  176,  176,  176,  176,  273,
3993       273,  273,  274,  274,  274,  275,  275,  275, 2302, 2304,
3994       276,  276,  276, 2305, 2306,  273, 2302, 2307,  274, 2322,
3995      2315,  275, 2306, 2316,  176,  176,  276,  277,  277,  277,
3996       278,  278,  278, 1169, 1169, 1169, 2315, 1169, 2330, 2316,
3997      1169, 2331, 2332,  277, 2315, 2333,  278, 2316,  176,  197,
3998
3999       197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
4000       197,  197,  197,  197, 2317,  197,  197,  197,  197,  197,
4001       279,  279,  279,  280,  280,  280,  281,  281,  281, 2324,
4002      2317,  282,  282,  282, 2334, 2324,  279, 2338, 2317,  280,
4003      2340, 2341,  281, 2342, 2347,  197,  197,  282,  283,  283,
4004       283, 2326, 2348,  197, 2350,  197, 2351, 2352,  197, 1696,
4005      1696, 1696,  197, 2353,  283, 2325,  197,  198,  198,  198,
4006       198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
4007       198,  198, 2356,  198,  198,  198,  198,  198,  284,  284,
4008       284,  285,  285,  285,  286,  286,  286, 2325, 2326,  287,
4009
4010       287,  287, 2360, 2361,  284, 2368, 2370,  285, 2377, 2379,
4011       286, 2410, 2411,  198,  198,  287,  288,  288,  288, 2412,
4012      2418,  198, 2419,  198, 2423, 2427,  198, 1702, 1702, 1702,
4013       198, 2428,  288, 2432,  198,  207,  207,  207,  207,  207,
4014       207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
4015      2435,  207,  207,  207,  207,  207,  289,  289,  289,  290,
4016       290,  290,  291,  291,  291, 2438, 2439,  292,  292,  292,
4017      2440, 2441,  289, 2444, 1702,  290, 2447, 2451,  291, 2452,
4018      2453,  207,  207,  292,  293,  293,  293,  294,  294,  294,
4019      2465, 2468,  207, 2470, 1171, 1171, 1171, 2473, 1171, 2487,
4020
4021       293, 1171, 2488,  294, 2489,  207,  208,  208,  208,  208,
4022       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
4023       208, 2494,  208,  208,  208,  208,  208,  297,  297,  297,
4024       298,  298,  298,  299,  299,  299, 2495, 2496,  300,  300,
4025       300, 2497, 2498,  297, 2499, 2500,  298, 2501, 2502,  299,
4026      2503, 2513,  208,  208,  300,  301,  301,  301,  302,  302,
4027       302, 2524, 2525,  208, 2526,  347, 1181, 1181, 1181, 2529,
4028      1181,  301, 2516, 1181,  302,  347,  208,  211,  211,  211,
4029       211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
4030       211,  211, 2517,  211,  211,  211,  211,  211,  303,  303,
4031
4032       303,  304,  304,  304,  347, 1695, 1695, 1695,  830,  830,
4033       830, 1045, 1045, 1045,  303, 2532, 2516,  304,  347, 2536,
4034       347,  730,  347,  211,  211,  830,  522, 2537,  347, 1045,
4035      2538,  730,  211, 2541,  211, 2542,  522, 2543,  211, 2546,
4036      2517, 1695, 2549,  211,  211,  212,  212,  212,  212,  212,
4037       212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
4038       730,  212,  212,  212,  212,  212,  522, 2550,  852,  852,
4039       852, 2551,  522, 2552,  730, 1705, 1705, 1705,  730,  522,
4040       853,  853,  853,  522,  730,  852,  863,  863,  863,  522,
4041      2574,  212,  212,  865,  865,  865, 2575,  853, 2581, 2582,
4042
4043       212, 2588,  212,  863,  737, 2589,  212, 1913, 1913, 1913,
4044       865,  212,  212,  215,  215,  215,  215,  215,  215,  215,
4045       215,  215,  215,  215,  215,  215,  215,  215, 2576,  215,
4046       215,  215,  215,  215,  737,  879,  879,  879, 2576,  737,
4047      2590,  885,  885,  885,  894,  894,  894,  737, 2604,  737,
4048       737, 2605,  879,  895,  895,  895, 2606,  737,  885,  215,
4049       215,  894,  906,  906,  906,  215, 2626, 1189, 1189, 1189,
4050       895, 1189, 2627, 2638, 1189, 2639, 1704, 1704, 1704,  906,
4051       215,  216,  216,  216,  216,  216,  216,  216,  216,  216,
4052       216,  216,  216,  216,  216,  216, 2644,  216,  216,  216,
4053
4054       216,  216,  914,  914,  914,  918,  918,  918,  931,  931,
4055       931, 2645,  957,  957,  957,  963,  963,  963, 2646,  914,
4056      2647, 2648,  918, 1704, 2649,  931, 2650,  216,  216,  957,
4057      2651, 2652,  963,  216, 1193, 1193, 1193, 2653, 1193, 2658,
4058      2663, 1193, 2664, 1709, 1709, 1709, 2666, 2667,  216,  225,
4059       225,  225,  225,  225,  225,  225,  225,  225,  225,  225,
4060       225,  225,  225,  225, 2668,  225,  225,  225,  225,  225,
4061       980,  980,  980,  986,  986,  986,  992,  992,  992, 1709,
4062      1000, 1000, 1000, 2665, 1013, 1013, 1013,  980, 2669, 2661,
4063       986, 2671, 2665,  992, 2672,  225,  225, 1000, 2675, 2662,
4064
4065       225, 1013, 1711, 1711, 1711, 2676,  225,  226,  226,  226,
4066       226,  226,  226,  226,  226,  226,  226,  226,  226,  226,
4067       226,  226, 2661,  226,  226,  226,  226,  226, 1042, 1042,
4068      1042, 1085, 1085, 1085, 1087, 1087, 1087, 2662, 1711, 1086,
4069      1086, 1086, 1088, 1088, 1088, 1042, 2670, 2677, 1085, 2680,
4070      2682, 1087, 2683,  226,  226, 2670, 1086, 2686,  226, 1088,
4071      1920, 1920, 1920, 2687,  226,  229,  229,  229,  229,  229,
4072       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
4073      2688,  229,  229,  229,  229,  229, 1046, 1046, 1046, 2690,
4074      1086, 1089, 1089, 1089, 2691, 1090, 1090, 1090, 2693, 1097,
4075
4076      1097, 1097, 1088, 2714, 1046, 1086, 1098, 1098, 1098, 1089,
4077      2715,  229,  229, 1090,  229, 2716,  229, 1097, 2717, 1805,
4078      1805, 1805,  229, 1046, 1098, 2720, 2721, 1723, 1723, 1723,
4079      2727, 2728, 1090,  229,  230,  230,  230,  230,  230,  230,
4080       230,  230,  230,  230,  230,  230,  230,  230,  230, 2735,
4081       230,  230,  230,  230,  230, 1805, 1098, 1101, 1101, 1101,
4082      1102, 1102, 1102, 2736, 2737, 1104, 1104, 1104, 1107, 1107,
4083      1107, 1109, 1109, 1109, 1723, 1101, 2745, 2746, 1102, 2761,
4084       230,  230, 1104,  230, 2762,  230, 1107, 2763, 1109, 2767,
4085      2768,  230, 1205, 1205, 1205, 2769, 1205, 2770, 2771, 1205,
4086
4087      2772, 2773,  230,  239,  239,  239,  239,  239,  239,  239,
4088       239,  239,  239,  239,  239,  239,  239,  239, 2774,  239,
4089       239,  239,  239,  239, 2775, 1102, 2776, 1111, 1111, 1111,
4090      1112, 1112, 1112, 1113, 1113, 1113, 2777, 2778, 1108, 1108,
4091      1108, 1110, 1110, 1110, 1111, 1114, 1114, 1114, 1112,  239,
4092       239, 1113, 2780, 2103,  239, 2781, 1108, 2783, 1110, 2103,
4093       239, 2784, 1114, 2103,  239, 1923, 1923, 1923, 2785, 2103,
4094       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
4095       240,  240,  240,  240,  240,  240, 1108,  240,  240,  240,
4096       240,  240, 1110, 1115, 1115, 1115, 1116, 1116, 1116, 2786,
4097
4098      2782, 1117, 1117, 1117, 2788, 1113, 2723, 1110, 2723, 2782,
4099      1115, 1121, 1121, 1121, 1116, 2789, 2790,  240,  240, 1117,
4100      2795, 2723,  240, 1227, 1227, 1227, 2796, 1227,  240, 1121,
4101      1227, 2797,  240, 1926, 1926, 1926, 2798, 2799,  240,  249,
4102       249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
4103       249,  249,  249,  249, 2800,  249,  249,  249,  249,  249,
4104      1118, 1118, 1118, 1120, 1120, 1120, 1122, 1122, 1122, 2787,
4105      1123, 1123, 1123, 1117, 1119, 1119, 1119, 1118, 2787, 2801,
4106      1120, 1125, 1125, 1125, 1122,  249,  249, 1123, 1233, 1233,
4107      1233, 1119, 1233,  249, 2802, 1233,  249, 2794, 1125, 1927,
4108
4109      1927, 1927, 2803,  249,  250,  250,  250,  250,  250,  250,
4110       250,  250,  250,  250,  250,  250,  250,  250,  250, 2804,
4111       250,  250,  250,  250,  250, 1119, 1127, 1127, 1127, 2793,
4112      2805, 1128, 1128, 1128, 2806, 1129, 1129, 1129, 1122, 2807,
4113      1119, 2794, 2808, 1127, 2809, 1130, 1130, 1130, 1128, 2792,
4114       250,  250, 1129, 1249, 1249, 1249, 2812, 1249,  250, 2813,
4115      1249,  250, 1130, 1930, 1930, 1930, 2815, 2793,  250,  253,
4116       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
4117       253,  253,  253,  253, 1128,  253,  253,  253,  253,  253,
4118      2792, 1129, 1132, 1132, 1132, 2816, 2817, 1130, 2819, 2820,
4119
4120      1131, 1131, 1131, 1135, 1135, 1135, 1138, 1138, 1138, 2840,
4121      1132, 1133, 1133, 1133, 2841,  253,  253, 1131, 2843, 2847,
4122      1135, 2848,  253, 1138, 1932, 1932, 1932, 2849,  253, 1133,
4123      1935, 1935, 1935, 1937, 1937, 1937, 2851,  253,  254,  254,
4124       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
4125       254,  254,  254, 1131,  254,  254,  254,  254,  254, 1133,
4126      1140, 1140, 1140, 1150, 1150, 1150, 1152, 1152, 1152, 1151,
4127      1151, 1151, 1154, 1154, 1154, 2852, 2854, 1140, 1155, 1155,
4128      1155, 1150, 2855, 1152,  254,  254, 2724, 1151, 2724, 1932,
4129      1154,  254, 1943, 1943, 1943, 2863, 1155,  254, 1255, 1255,
4130
4131      1255, 2724, 1255, 2864, 2865, 1255,  254,  257,  257,  257,
4132       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
4133       257,  257, 2877,  257,  257,  257,  257,  257, 1151, 1159,
4134      1159, 1159, 1164, 1164, 1164, 2893, 2899, 1165, 1165, 1165,
4135      1155, 1168, 1168, 1168, 2900, 2850, 1159, 1172, 1172, 1172,
4136      1164, 2853, 2901,  257,  257, 1165, 2850, 2902, 1168, 1261,
4137      1261, 1261, 2853, 1261,  257, 1172, 1261, 2903, 2904, 1934,
4138      1934, 1934, 2905,  257,  258,  258,  258,  258,  258,  258,
4139       258,  258,  258,  258,  258,  258,  258,  258,  258, 2906,
4140       258,  258,  258,  258,  258, 1170, 1170, 1170, 2907, 1165,
4141
4142      1173, 1173, 1173, 2908, 1175, 1175, 1175, 1176, 1176, 1176,
4143      2910, 2911, 1170, 1180, 1180, 1180, 1934, 2912, 1173, 2869,
4144       258,  258, 1175, 2913, 2914, 1176, 1946, 1946, 1946, 2869,
4145      1180,  258, 1269, 1269, 1269, 2869, 1269, 2915, 2916, 1269,
4146       258,  295,  295,  295,  295,  295,  295,  295,  295,  295,
4147       295,  295,  295,  295,  295,  295, 2870,  295,  295,  295,
4148       295,  295, 1173, 1185, 1185, 1185, 2870, 2917, 1176, 1188,
4149      1188, 1188, 2870, 2918, 1186, 1186, 1186, 1190, 1190, 1190,
4150      2919, 1185, 1191, 1191, 1191, 2920, 1188,  295,  295, 1192,
4151      1192, 1192, 1186,  295, 2921, 1190,  295, 1281, 1281, 1281,
4152
4153      1191, 1281, 2927, 2928, 1281, 2925, 1192, 2924,  295,  296,
4154       296,  296,  296,  296,  296,  296,  296,  296,  296,  296,
4155       296,  296,  296,  296, 2929,  296,  296,  296,  296,  296,
4156      1186, 1195, 1195, 1195, 1196, 1196, 1196, 2924, 1191, 1199,
4157      1199, 1199, 1200, 1200, 1200, 1204, 1204, 1204, 2925, 1195,
4158      2930, 2931, 1196, 2932, 2933,  296,  296, 1199, 2934, 2935,
4159      1200,  296, 1204, 2936,  296, 1206, 1206, 1206, 1209, 1209,
4160      1209, 2937, 2938, 1210, 1210, 1210,  296,  344, 2926, 1213,
4161      1213, 1213, 1206, 2939,  344, 2941, 1209, 1214, 1214, 1214,
4162      2943, 1210, 2944,  344,  344, 2945, 1196, 1213, 1224, 1224,
4163
4164      1224, 1225, 1225, 1225, 1200, 1214, 1947, 1947, 1947, 1226,
4165      1226, 1226, 2947, 1229, 1229, 1229, 1224, 2519, 2519, 1225,
4166      2519, 2926,  344,  344,  344, 1210, 1226, 2948, 2519,  344,
4167       344, 1229, 2949,  344,  344, 2519, 2953,  344, 2961,  344,
4168       344,  344, 1230, 1230, 1230, 2966, 1214,  344,  346, 2953,
4169      1232, 1232, 1232, 1234, 1234, 1234, 1236, 1236, 1236, 2891,
4170      1230, 1240, 1240, 1240,  346,  346, 1225, 1232, 2967, 2891,
4171      1234, 2954, 2891, 1236, 1241, 1241, 1241, 2968, 2969, 1240,
4172      1242, 1242, 1242, 2970, 2954, 1243, 1243, 1243, 2971, 1244,
4173      1244, 1244, 1241,  346,  346,  346, 2972, 1242, 2973, 2974,
4174
4175       346,  346, 1243, 2975,  346,  346, 1244, 1230,  346, 2976,
4176       346,  346,  346, 1245, 1245, 1245, 2984, 2986,  346,  728,
4177      2990, 2991, 1241, 1246, 1246, 1246,  728, 1248, 1248, 1248,
4178      2892, 1245, 1250, 1250, 1250,  728,  728, 1251, 1251, 1251,
4179      2892, 1246, 2992, 2892, 1248, 1254, 1254, 1254, 2993, 1244,
4180      1250, 1257, 1257, 1257, 2994, 1251, 1258, 1258, 1258, 1264,
4181      1264, 1264, 1254, 2995,  728,  728,  728, 2997, 3009, 1257,
4182      3010,  728,  728, 3012, 1258,  728,  728, 1264, 3013,  728,
4183      3015,  728,  728,  728, 3024, 1246, 1260, 1260, 1260,  728,
4184      1265, 1265, 1265, 1268, 1268, 1268, 1272, 1272, 1272, 1251,
4185
4186      1273, 1273, 1273, 1260, 1278, 1278, 1278, 3025, 1265, 3026,
4187      1268, 1279, 1279, 1279, 1272, 1280, 1280, 1280, 1273, 1283,
4188      1283, 1283, 1278, 1258, 1284, 1284, 1284, 3027, 3004, 1279,
4189      3029, 3030, 1280, 1288, 1288, 1288, 3005, 1283, 1289, 1289,
4190      1289, 3004, 1284, 1290, 1290, 1290, 1291, 1291, 1291, 3005,
4191      1288, 1292, 1292, 1292, 3031, 1289, 3032, 1265, 3035, 3036,
4192      1290, 3037, 3011, 1291, 3038, 1273, 1293, 1293, 1293, 1292,
4193      1306, 1306, 1306, 3039, 1306, 3011, 1279, 1306, 1310, 1310,
4194      1310, 1311, 1311, 1311, 1293, 3014, 1284, 3040, 3041, 1289,
4195      1313, 1313, 1313, 1354, 1354, 1354, 1310, 3042, 3014, 1311,
4196
4197      1358, 1358, 1358, 3043, 1289, 3044, 1291, 3045, 1313, 3046,
4198      1354, 1355, 1355, 1355, 3054, 1355, 3052, 1358, 1355, 1359,
4199      1359, 1359, 3055, 1359, 3051, 3056, 1359, 3057, 1293, 1361,
4200      1361, 1361, 1362, 1362, 1362, 1364, 1364, 1364, 1367, 1367,
4201      1367, 1371, 1371, 1371, 1372, 1372, 1372, 1361, 3058, 3059,
4202      1362, 3060, 3052, 1364, 3061, 1367, 1374, 1374, 1374, 1371,
4203      3062, 3063, 1372, 1377, 1377, 1377, 1378, 1378, 1378, 3064,
4204      1380, 1380, 1380, 3051, 1374, 1382, 1382, 1382, 3065, 1382,
4205      3066, 1377, 1382, 3068, 1378, 1386, 1386, 1386, 1380, 1387,
4206      1387, 1387, 1389, 1389, 1389, 1390, 1390, 1390, 2520, 2520,
4207
4208      1364, 2520, 3070, 1386, 1391, 1391, 1391, 1387, 1391, 2520,
4209      1389, 1391, 1390, 1394, 1394, 1394, 2520, 3071, 1395, 1395,
4210      1395, 3073, 1395, 1374, 1380, 1395, 1396, 1396, 1396, 3075,
4211      1394, 1397, 1397, 1397, 1399, 1399, 1399, 1400, 1400, 1400,
4212      3079, 3080, 1389, 3081, 1396, 3082, 1401, 1401, 1401, 1397,
4213      1401, 3086, 1399, 1401, 1400, 1402, 1402, 1402, 1403, 1403,
4214      1403, 3094, 1403, 3095, 3096, 1403, 1404, 1404, 1404, 1405,
4215      1405, 1405, 1402, 1407, 1407, 1407, 1408, 1408, 1408, 1409,
4216      1409, 1409, 3097, 1409, 1404, 3098, 1409, 1405, 1412, 1412,
4217      1412, 1407, 3099, 1408, 1413, 1413, 1413, 1399, 1413, 3100,
4218
4219      3101, 1413, 1414, 1414, 1414, 1412, 1415, 1415, 1415, 1417,
4220      1417, 1417, 1418, 1418, 1418, 3102, 1418, 3103, 3104, 1418,
4221      1414, 1421, 1421, 1421, 1415, 1421, 3108, 1417, 1421, 1424,
4222      1424, 1424, 3111, 1425, 1425, 1425, 1407, 1425, 3112, 3113,
4223      1425, 1430, 1430, 1430, 3114, 3115, 1424, 1431, 1431, 1431,
4224      1433, 1433, 1433, 1437, 1437, 1437, 3116, 1437, 3117, 1430,
4225      1437, 1440, 1440, 1440, 3120, 1431, 3124, 3125, 1433, 1441,
4226      1441, 1441, 1417, 1441, 3126, 3127, 1441, 3128, 1440, 1444,
4227      1444, 1444, 1445, 1445, 1445, 3129, 1445, 3130, 3131, 1445,
4228      1455, 1455, 1455, 1456, 1456, 1456, 1444, 3132, 3133, 1433,
4229
4230      1458, 1458, 1458, 1459, 1459, 1459, 3134, 1459, 1455, 3135,
4231      1459, 1456, 1462, 1462, 1462, 1463, 1463, 1463, 1458, 1465,
4232      1465, 1465, 1468, 1468, 1468, 1469, 1469, 1469, 3147, 1469,
4233      1462, 3148, 1469, 1463, 1475, 1475, 1475, 1465, 3149, 1468,
4234      1476, 1476, 1476, 1478, 1478, 1478, 1480, 1480, 1480, 1481,
4235      1481, 1481, 1475, 1481, 2104, 3150, 1481, 3151, 1476, 3152,
4236      2104, 1478, 3153, 1480, 2104, 1484, 1484, 1484, 1458, 1484,
4237      2104, 3154, 1484, 1487, 1487, 1487, 1488, 1488, 1488, 3156,
4238      1465, 1490, 1490, 1490, 1491, 1491, 1491, 1492, 1492, 1492,
4239      3157, 1487, 3158, 3159, 1488, 1493, 1493, 1493, 3160, 1490,
4240
4241      3161, 1491, 1495, 1495, 1495, 1492, 1504, 1504, 1504, 1478,
4242      1498, 1498, 1498, 1493, 1498, 3162, 3163, 1498, 3164, 3165,
4243      1495, 1505, 1505, 1505, 1504, 1507, 1507, 1507, 1509, 1509,
4244      1509, 3166, 1509, 3167, 3171, 1509, 1512, 1512, 1512, 1505,
4245      1513, 1513, 1513, 1507, 1515, 1515, 1515, 1490, 3175, 1516,
4246      1516, 1516, 1495, 1516, 1512, 3176, 1516, 3177, 1513, 1520,
4247      1520, 1520, 1515, 1521, 1521, 1521, 1523, 1523, 1523, 3171,
4248      1524, 1524, 1524, 1525, 1525, 1525, 3180, 1520, 1526, 1526,
4249      1526, 1521, 3181, 3182, 1523, 3077, 1507, 1524, 3183, 3186,
4250      1525, 1527, 1527, 1527, 3188, 3077, 1526, 1529, 1529, 1529,
4251
4252      1534, 1534, 1534, 3192, 1534, 1515, 3195, 1534, 3196, 1527,
4253      1537, 1537, 1537, 3077, 3197, 1529, 3198, 1523, 1538, 1538,
4254      1538, 1525, 1538, 3199, 3077, 1538, 3200, 1537, 1541, 1541,
4255      1541, 1542, 1542, 1542, 1544, 1544, 1544, 1547, 1547, 1547,
4256      1548, 1548, 1548, 1550, 1550, 1550, 1541, 3201, 3202, 1542,
4257      3203, 3204, 1544, 3205, 3206, 1547, 3211, 3219, 1548, 3220,
4258      3221, 1550, 1556, 1556, 1556, 1529, 1560, 1560, 1560, 1561,
4259      1561, 1561, 1563, 1563, 1563, 3222, 1564, 1564, 1564, 1556,
4260      1564, 3223, 3224, 1564, 1560, 3225, 1544, 1561, 3226, 3227,
4261      1563, 1550, 1568, 1568, 1568, 1569, 1569, 1569, 1571, 1571,
4262
4263      1571, 1573, 1573, 1573, 3078, 1573, 2656, 2656, 1573, 2656,
4264      1568, 3228, 3234, 1569, 3078, 3235, 1571, 2656, 1576, 1576,
4265      1576, 1577, 1577, 1577, 2656, 1577, 3237, 3238, 1577, 1578,
4266      1578, 1578, 3078, 3240, 1563, 1576, 1579, 1579, 1579, 3241,
4267      1580, 1580, 1580, 3078, 1580, 3242, 1578, 1580, 1582, 1582,
4268      1582, 3243, 3244, 1579, 1584, 1584, 1584, 1585, 1585, 1585,
4269      1571, 1587, 1587, 1587, 3245, 1582, 1588, 1588, 1588, 1589,
4270      1589, 1589, 1584, 1589, 3246, 1585, 1589, 3247, 3248, 1587,
4271      1590, 1590, 1590, 1588, 1591, 1591, 1591, 3249, 1591, 3250,
4272      3251, 1591, 1593, 1593, 1593, 3252, 3255, 1590, 1594, 1594,
4273
4274      1594, 1596, 1596, 1596, 1598, 1598, 1598, 3256, 1598, 3257,
4275      1593, 1598, 1601, 1601, 1601, 3258, 1594, 3259, 3260, 1596,
4276      3261, 3262, 1587, 1602, 1602, 1602, 1604, 1604, 1604, 3264,
4277      1601, 1607, 1607, 1607, 3265, 1607, 3267, 3268, 1607, 3269,
4278      3271, 1602, 3273, 3274, 1604, 1611, 1611, 1611, 1612, 1612,
4279      1612, 3275, 1614, 1614, 1614, 1616, 1616, 1616, 3138, 1616,
4280      3278, 3279, 1616, 1611, 3280, 3281, 1612, 3284, 3138, 1596,
4281      1614, 1620, 1620, 1620, 1621, 1621, 1621, 1622, 1622, 1622,
4282      1624, 1624, 1624, 1626, 1626, 1626, 3138, 3285, 1620, 1627,
4283      1627, 1627, 1621, 1627, 1604, 1622, 1627, 3138, 1624, 3286,
4284
4285      1626, 1630, 1630, 1630, 1632, 1632, 1632, 1633, 1633, 1633,
4286      1635, 1635, 1635, 3287, 1614, 1637, 1637, 1637, 1630, 1639,
4287      1639, 1639, 1632, 3288, 3289, 1633, 3290, 3291, 1635, 1640,
4288      1640, 1640, 1637, 1642, 1642, 1642, 3292, 1639, 3299, 1643,
4289      1643, 1643, 1624, 1643, 3293, 3300, 1643, 1640, 1647, 1647,
4290      1647, 1642, 1648, 1648, 1648, 1650, 1650, 1650, 1635, 1654,
4291      1654, 1654, 3302, 1630, 3303, 3304, 1647, 1655, 1655, 1655,
4292      1648, 1655, 3306, 1650, 1655, 3308, 1654, 1658, 1658, 1658,
4293      3311, 1642, 1659, 1659, 1659, 3313, 1659, 3314, 3293, 1659,
4294      1661, 1661, 1661, 3315, 1658, 1662, 1662, 1662, 3316, 1664,
4295
4296      1664, 1664, 1666, 1666, 1666, 1672, 1672, 1672, 1661, 1722,
4297      1722, 1722, 3317, 1662, 3318, 3319, 1650, 1664, 3320, 3321,
4298      1666, 1666, 3322, 1672, 1713, 1713, 1713, 1722, 1713, 3323,
4299      3324, 1713, 1718, 1718, 1718, 3327, 1718, 3331, 3332, 1718,
4300      1725, 1725, 1725, 1726, 1726, 1726, 3334, 1726, 3139, 3335,
4301      1726, 1730, 1730, 1730, 1733, 1733, 1733, 1725, 3139, 3336,
4302      1664, 1732, 1732, 1732, 3338, 1736, 1736, 1736, 3339, 1730,
4303      3344, 1722, 1733, 1737, 1737, 1737, 3139, 1737, 1732, 3345,
4304      1737, 3346, 3347, 1736, 1742, 1742, 1742, 3139, 1742, 3348,
4305      3349, 1742, 1745, 1745, 1745, 1746, 1746, 1746, 3350, 1746,
4306
4307      3351, 3352, 1746, 3353, 1749, 1749, 1749, 3354, 1749, 3355,
4308      1745, 1749, 3356, 1730, 1752, 1752, 1752, 1753, 1753, 1753,
4309      3357, 1753, 1733, 1736, 1753, 3358, 1758, 1758, 1758, 3359,
4310      1758, 3360, 1752, 1758, 1761, 1761, 1761, 1762, 1762, 1762,
4311      1745, 1762, 3364, 3365, 1762, 3366, 1767, 1767, 1767, 1769,
4312      1769, 1769, 1761, 1770, 1770, 1770, 1771, 1771, 1771, 1772,
4313      1772, 1772, 1752, 1767, 1773, 1773, 1773, 1769, 3367, 3368,
4314      1770, 3369, 3370, 1771, 3371, 3374, 1772, 1778, 1778, 1778,
4315      3375, 1773, 1761, 1774, 1774, 1774, 3376, 1774, 3377, 3378,
4316      1774, 1775, 1775, 1775, 1778, 1775, 3379, 3381, 1775, 1779,
4317
4318      1779, 1779, 1780, 1780, 1780, 1769, 3382, 1772, 1781, 1781,
4319      1781, 1782, 1782, 1782, 3384, 3385, 1779, 3386, 3388, 1780,
4320      1783, 1783, 1783, 1771, 3389, 1781, 3390, 3391, 1782, 1778,
4321      3392, 1784, 1784, 1784, 1785, 1785, 1785, 1783, 1786, 1786,
4322      1786, 1787, 1787, 1787, 1788, 1788, 1788, 1779, 1784, 3393,
4323      3394, 1785, 1792, 1792, 1792, 1786, 1781, 3395, 1787, 1789,
4324      1789, 1789, 1788, 1793, 1793, 1793, 3396, 1793, 3404, 1792,
4325      1793, 3405, 3407, 1780, 3399, 3397, 1782, 1789, 1795, 1795,
4326      1795, 1783, 1797, 1797, 1797, 1799, 1799, 1799, 3399, 1800,
4327      1800, 1800, 3408, 1800, 3412, 1795, 1800, 1801, 1801, 1801,
4328
4329      1797, 1786, 1799, 1787, 3414, 1785, 1802, 1802, 1802, 3400,
4330      1788, 3416, 1789, 3418, 3420, 1801, 3422, 1803, 1803, 1803,
4331      3400, 1803, 3397, 1802, 1803, 1804, 1804, 1804, 1810, 1810,
4332      1810, 3426, 1812, 1812, 1812, 1813, 1813, 1813, 3169, 1814,
4333      1814, 1814, 3432, 1804, 3428, 3433, 1810, 3435, 3169, 1797,
4334      1812, 3429, 1813, 1815, 1815, 1815, 3428, 1814, 1816, 1816,
4335      1816, 3436, 1816, 3429, 1801, 1816, 3169, 1818, 1818, 1818,
4336      1815, 1820, 1820, 1820, 1823, 1823, 1823, 3169, 1823, 3438,
4337      3449, 1823, 3451, 3453, 1804, 1818, 1810, 3454, 1820, 3457,
4338      1812, 1814, 1826, 1826, 1826, 1828, 1828, 1828, 1831, 1831,
4339
4340      1831, 1837, 1837, 1837, 1838, 1838, 1838, 3458, 1838, 1826,
4341      3461, 1838, 3463, 1828, 3465, 3467, 1831, 3469, 1837, 1842,
4342      1842, 1842, 1843, 1843, 1843, 1844, 1844, 1844, 1818, 1846,
4343      1846, 1846, 3471, 1846, 3472, 3443, 1846, 1842, 3444, 1843,
4344      1849, 1849, 1849, 1844, 1850, 1850, 1850, 3443, 1850, 3474,
4345      3444, 1850, 1851, 1851, 1851, 3475, 1851, 1849, 3479, 1851,
4346      1828, 1855, 1855, 1855, 3480, 1831, 1856, 1856, 1856, 1842,
4347      1856, 3482, 3483, 1856, 1858, 1858, 1858, 3485, 1855, 1859,
4348      1859, 1859, 3487, 1859, 3489, 3491, 1859, 3495, 1844, 1862,
4349      1862, 1862, 1858, 1862, 3492, 3497, 1862, 1866, 1866, 1866,
4350
4351      1868, 1868, 1868, 1872, 1872, 1872, 1874, 1874, 1874, 1875,
4352      1875, 1875, 1876, 1876, 1876, 1866, 1876, 3500, 1868, 1876,
4353      3501, 1872, 3502, 1874, 3493, 1858, 1875, 1877, 1877, 1877,
4354      1879, 1879, 1879, 1880, 1880, 1880, 3492, 1880, 3493, 3506,
4355      1880, 1883, 1883, 1883, 3507, 1877, 3508, 1879, 1885, 1885,
4356      1885, 1886, 1886, 1886, 3517, 1886, 3494, 3494, 1886, 1883,
4357      1887, 1887, 1887, 3503, 1866, 1885, 3518, 1868, 1872, 1888,
4358      1888, 1888, 1890, 1890, 1890, 3496, 3522, 1887, 1894, 1894,
4359      1894, 3503, 1894, 3509, 3522, 1894, 3496, 1888, 3524, 3528,
4360      1890, 1883, 1877, 1899, 1899, 1899, 3524, 1899, 3509, 3521,
4361
4362      1899, 3529, 1903, 1903, 1903, 1906, 1906, 1906, 1948, 1948,
4363      1948, 1950, 1950, 1950, 1951, 1951, 1951, 3530, 3521, 1888,
4364      1903, 3531, 3538, 1906, 1890, 1953, 1953, 1953, 1954, 1954,
4365      1954, 1955, 1955, 1955, 1956, 1956, 1956, 3523, 1957, 1957,
4366      1957, 1958, 1958, 1958, 3539, 1961, 1961, 1961, 1955, 1961,
4367      3540, 1956, 1961, 3541, 1903, 1957, 3523, 1906, 1950, 1958,
4368      1967, 1967, 1967, 1969, 1969, 1969, 3542, 3543, 1970, 1970,
4369      1970, 3553, 1970, 1948, 1906, 1970, 3554, 3555, 1967, 3533,
4370      1969, 1971, 1971, 1971, 1974, 1974, 1974, 1975, 1975, 1975,
4371      1953, 3535, 3534, 1954, 1976, 1976, 1976, 3559, 3533, 1971,
4372
4373      3534, 3560, 1974, 1957, 1975, 1977, 1977, 1977, 3561, 1958,
4374      3535, 1976, 1978, 1978, 1978, 1979, 1979, 1979, 1980, 1980,
4375      1980, 3536, 3556, 1977, 3170, 1967, 1981, 1981, 1981, 3536,
4376      1978, 3569, 1979, 1974, 3170, 1980, 1982, 1982, 1982, 3570,
4377      3556, 1971, 3562, 3571, 1981, 1983, 1983, 1983, 1984, 1984,
4378      1984, 3573, 3170, 1982, 1985, 1985, 1985, 3562, 1985, 3574,
4379      3575, 1985, 1983, 3170, 3577, 1984, 1986, 1986, 1986, 3578,
4380      3579, 1977, 1987, 1987, 1987, 2018, 2018, 2018, 1978, 1988,
4381      1988, 1988, 3580, 1986, 1989, 1989, 1989, 3582, 1989, 3583,
4382      1987, 1989, 1981, 1990, 1990, 1990, 1988, 1991, 1991, 1991,
4383
4384      3584, 1992, 1992, 1992, 1983, 1992, 3589, 3590, 1992, 3591,
4385      1990, 1995, 1995, 1995, 1991, 1996, 1996, 1996, 1997, 1997,
4386      1997, 1998, 1998, 1998, 1999, 1999, 1999, 3592, 1995, 2000,
4387      2000, 2000, 1996, 1987, 3593, 1997, 3594, 3595, 1998, 3596,
4388      3597, 1999, 2001, 2001, 2001, 3598, 2000, 2002, 2002, 2002,
4389      3599, 2002, 3600, 3603, 2002, 2003, 2003, 2003, 3604, 2001,
4390      3605, 3606, 1991, 3607, 3608, 1996, 3609, 2004, 2004, 2004,
4391      3610, 1999, 2003, 2005, 2005, 2005, 1995, 2006, 2006, 2006,
4392      1998, 3613, 3614, 2000, 2004, 2007, 2007, 2007, 3615, 3616,
4393      2005, 3403, 2010, 2010, 2010, 2006, 2010, 3617, 3618, 2010,
4394
4395      2013, 2013, 2013, 2007, 2014, 2014, 2014, 2015, 2015, 2015,
4396      3403, 2015, 3403, 3619, 2015, 2004, 3620, 2013, 2017, 2017,
4397      2017, 2014, 2019, 2019, 2019, 3403, 2019, 2005, 3621, 2019,
4398      2022, 2022, 2022, 2023, 2023, 2023, 2017, 2023, 3623, 3624,
4399      2023, 2007, 3625, 3626, 2006, 2026, 2026, 2026, 2022, 2031,
4400      2031, 2031, 2033, 2033, 2033, 2034, 2034, 2034, 2035, 2035,
4401      2035, 3628, 2035, 2026, 3630, 2035, 3631, 2031, 3632, 3633,
4402      2033, 3634, 2034, 2036, 2036, 2036, 3635, 2022, 2037, 2037,
4403      2037, 3636, 2037, 3637, 3638, 2037, 2041, 2041, 2041, 3639,
4404      3640, 2036, 2043, 2043, 2043, 3644, 2044, 2044, 2044, 2033,
4405
4406      2044, 3645, 3646, 2044, 2041, 2045, 2045, 2045, 3642, 2043,
4407      2047, 2047, 2047, 2026, 2048, 2048, 2048, 3647, 2048, 3643,
4408      3642, 2048, 2045, 2050, 2050, 2050, 3406, 2047, 2053, 2053,
4409      2053, 3643, 2036, 2054, 2054, 2054, 2059, 2059, 2059, 3648,
4410      2059, 2050, 3406, 2059, 3406, 3649, 2053, 2065, 2065, 2065,
4411      2066, 2066, 2066, 2041, 2067, 2067, 2067, 3406, 2067, 3650,
4412      3651, 2067, 2068, 2068, 2068, 2065, 3652, 2066, 2070, 2070,
4413      2070, 3654, 2070, 3659, 3660, 2070, 2078, 2078, 2078, 3661,
4414      2068, 2053, 2074, 2074, 2074, 3662, 2074, 3663, 3664, 2074,
4415      2080, 2080, 2080, 3665, 2078, 2082, 2082, 2082, 3666, 2065,
4416
4417      2083, 2083, 2083, 2084, 2084, 2084, 3670, 3671, 2080, 2085,
4418      2085, 2085, 3673, 2082, 2086, 2086, 2086, 2083, 3675, 3676,
4419      2084, 3677, 2088, 2088, 2088, 3678, 2085, 2089, 2089, 2089,
4420      3679, 2089, 2086, 3680, 2089, 2093, 2093, 2093, 2078, 2088,
4421      3681, 3481, 2080, 3682, 2090, 2090, 2090, 2082, 2090, 3683,
4422      3686, 2090, 3687, 2093, 2095, 2095, 2095, 3481, 2095, 3481,
4423      3688, 2095, 2086, 2100, 2100, 2100, 3689, 2102, 2102, 2102,
4424      2084, 2102, 3481, 3690, 2102, 2105, 2105, 2105, 2106, 2106,
4425      2106, 2100, 2106, 2093, 3684, 2106, 2107, 2107, 2107, 2109,
4426      2109, 2109, 2105, 2113, 2113, 2113, 2114, 2114, 2114, 2115,
4427
4428      2115, 2115, 3691, 3692, 2107, 3693, 3696, 2109, 3697, 3684,
4429      2113, 3698, 3699, 2114, 3700, 2100, 2115, 2116, 2116, 2116,
4430      2121, 2121, 2121, 2123, 2123, 2123, 2129, 2129, 2129, 2134,
4431      2134, 2134, 2137, 2137, 2137, 2116, 3701, 2121, 2107, 2138,
4432      2138, 2138, 2139, 2139, 2139, 2141, 2141, 2141, 2151, 2151,
4433      2151, 3702, 3703, 2116, 2152, 2152, 2152, 2154, 2154, 2154,
4434      2157, 2157, 2157, 3704, 2115, 2158, 2158, 2158, 3705, 2158,
4435      3706, 3707, 2158, 2159, 2159, 2159, 3710, 2157, 2160, 2160,
4436      2160, 3711, 2160, 3712, 3713, 2160, 2162, 2162, 2162, 3714,
4437      2159, 2168, 2168, 2168, 2170, 2170, 2170, 3715, 2170, 3716,
4438
4439      3717, 2170, 3720, 3721, 2162, 2173, 2173, 2173, 3722, 2168,
4440      2175, 2175, 2175, 2176, 2176, 2176, 2177, 2177, 2177, 2179,
4441      2179, 2179, 3723, 2173, 2181, 2181, 2181, 2175, 2178, 2178,
4442      2178, 2176, 2178, 2177, 3724, 2178, 2179, 2180, 2180, 2180,
4443      3725, 2180, 2181, 3726, 2180, 2182, 2182, 2182, 2183, 2183,
4444      2183, 3727, 3728, 2162, 2184, 2184, 2184, 2173, 2184, 3729,
4445      3731, 2184, 3732, 2182, 3733, 2183, 2185, 2185, 2185, 2186,
4446      2186, 2186, 3734, 2186, 3735, 2176, 2186, 2187, 2187, 2187,
4447      2188, 2188, 2188, 2185, 2189, 2189, 2189, 3736, 2189, 3737,
4448      2181, 2189, 2190, 2190, 2190, 2187, 3478, 2188, 2191, 2191,
4449
4450      2191, 3738, 2191, 3739, 3740, 2191, 2194, 2194, 2194, 2190,
4451      3730, 2182, 2195, 2195, 2195, 3478, 2195, 3478, 3741, 2195,
4452      2196, 2196, 2196, 2194, 2197, 2197, 2197, 3742, 2197, 3730,
4453      3478, 2197, 2200, 2200, 2200, 2201, 2201, 2201, 2196, 2201,
4454      3743, 3744, 2201, 2187, 2205, 2205, 2205, 3745, 3746, 2200,
4455      2206, 2206, 2206, 3747, 2206, 3748, 3749, 2206, 2207, 2207,
4456      2207, 2205, 2210, 2210, 2210, 3750, 2210, 3751, 3752, 2210,
4457      3753, 3754, 2196, 3755, 3756, 2207, 2213, 2213, 2213, 2214,
4458      2214, 2214, 3757, 2214, 3758, 3761, 2214, 2217, 2217, 2217,
4459      2218, 2218, 2218, 2213, 2221, 2221, 2221, 2222, 2222, 2222,
4460
4461      3762, 2222, 3763, 3764, 2222, 2217, 3765, 3766, 2218, 3767,
4462      3768, 2221, 2223, 2223, 2223, 3770, 2223, 3769, 3771, 2223,
4463      2227, 2227, 2227, 2229, 2229, 2229, 3773, 2230, 2230, 2230,
4464      2231, 2231, 2231, 2233, 2233, 2233, 3774, 3769, 2227, 2217,
4465      2236, 2236, 2236, 3775, 2218, 2230, 3777, 3778, 2231, 3779,
4466      2233, 2239, 2239, 2239, 3780, 2240, 2240, 2240, 2236, 2240,
4467      3781, 3782, 2240, 3783, 2243, 2243, 2243, 3784, 3785, 2239,
4468      2245, 2245, 2245, 3786, 2250, 2250, 2250, 2257, 2257, 2257,
4469      2233, 2231, 2243, 2247, 2247, 2247, 2230, 2247, 2245, 3787,
4470      2247, 2250, 2251, 2251, 2251, 2257, 2251, 3788, 3789, 2251,
4471
4472      3790, 2239, 2253, 2253, 2253, 3791, 2253, 3792, 3793, 2253,
4473      3794, 2243, 2260, 2260, 2260, 2261, 2261, 2261, 2262, 2262,
4474      2262, 2263, 2263, 2263, 2265, 2265, 2265, 3795, 3796, 2260,
4475      2270, 2270, 2270, 2261, 2271, 2271, 2271, 3797, 2271, 3798,
4476      3799, 2271, 2274, 2274, 2274, 2277, 2277, 2277, 2270, 2279,
4477      2279, 2279, 2281, 2281, 2281, 2283, 2283, 2283, 3801, 3802,
4478      2274, 3803, 2277, 2284, 2284, 2284, 3805, 2279, 3807, 3808,
4479      2281, 3810, 3811, 2283, 2285, 2285, 2285, 2261, 2285, 3813,
4480      2284, 2285, 2286, 2286, 2286, 2287, 2287, 2287, 2288, 2288,
4481      2288, 3806, 2288, 3814, 3815, 2288, 2270, 3806, 3816, 2286,
4482
4483      3817, 3818, 2287, 2289, 2289, 2289, 2290, 2290, 2290, 2279,
4484      2291, 2291, 2291, 3820, 2291, 3821, 3822, 2291, 3824, 3825,
4485      2283, 2289, 3826, 2290, 2294, 2294, 2294, 2298, 2298, 2298,
4486      2299, 2299, 2299, 2308, 2308, 2308, 3828, 2308, 3829, 3830,
4487      2308, 3832, 2294, 3833, 3834, 2298, 3836, 2299, 2311, 2311,
4488      2311, 2312, 2312, 2312, 2313, 2313, 2313, 2289, 2318, 2318,
4489      2318, 3837, 3839, 2319, 2319, 2319, 2311, 2319, 2312, 3840,
4490      2319, 3842, 2313, 3844, 3845, 2318, 3839, 3846, 2294, 2320,
4491      2320, 2320, 2321, 2321, 2321, 3847, 2321, 3849, 3850, 2321,
4492      2323, 2323, 2323, 3852, 3853, 2311, 2320, 2327, 2327, 2327,
4493
4494      2328, 2328, 2328, 3855, 2328, 3856, 3858, 2328, 2323, 2329,
4495      2329, 2329, 3859, 3860, 2327, 2335, 2335, 2335, 2336, 2336,
4496      2336, 2337, 2337, 2337, 2339, 2339, 2339, 2343, 2343, 2343,
4497      2344, 2344, 2344, 2345, 2345, 2345, 2346, 2346, 2346, 2349,
4498      2349, 2349, 2354, 2354, 2354, 2355, 2355, 2355, 2357, 2357,
4499      2357, 3862, 2323, 2358, 2358, 2358, 2359, 2359, 2359, 2362,
4500      2362, 2362, 3865, 2362, 3866, 3867, 2362, 2365, 2365, 2365,
4501      3868, 2365, 3869, 3870, 2365, 2369, 2369, 2369, 2371, 2371,
4502      2371, 3871, 3872, 2346, 2372, 2372, 2372, 2373, 2373, 2373,
4503      2374, 2374, 2374, 2369, 3873, 2371, 2375, 2375, 2375, 3874,
4504
4505      3875, 2372, 3876, 2359, 2373, 3877, 3878, 2374, 2378, 2378,
4506      2378, 2380, 2380, 2380, 2375, 2381, 2381, 2381, 3879, 2381,
4507      3880, 3884, 2381, 2382, 2382, 2382, 2378, 2369, 2380, 3886,
4508      2383, 2383, 2383, 3888, 2383, 3889, 2372, 2383, 2386, 2386,
4509      2386, 2382, 2386, 3890, 3891, 2386, 2389, 2389, 2389, 3892,
4510      2374, 3893, 2373, 2390, 2390, 2390, 2391, 2391, 2391, 3894,
4511      2391, 3895, 3903, 2391, 2389, 3898, 2389, 2657, 2657, 2378,
4512      2657, 2390, 2394, 2394, 2394, 3905, 2394, 3899, 2657, 2394,
4513      2397, 2397, 2397, 3907, 2382, 2657, 2398, 2398, 2398, 2390,
4514      2398, 3909, 3964, 2398, 2401, 2401, 2401, 3918, 2397, 2402,
4515
4516      2402, 2402, 3898, 2402, 1531, 3922, 2402, 3919, 2403, 2403,
4517      2403, 2401, 2403, 3922, 3899, 2403, 2406, 2406, 2406, 2407,
4518      2407, 2407, 3964, 2407, 2397, 3923, 2407, 3920, 2413, 2413,
4519      2413, 3920, 2413, 3923, 2406, 2413, 2416, 2416, 2416, 2417,
4520      2417, 2417, 3918, 2417, 3910, 3911, 2417, 2420, 2420, 2420,
4521      3916, 2420, 3919, 2416, 2420, 2424, 2424, 2424, 2425, 2425,
4522      2425, 2426, 2426, 2426, 2429, 2429, 2429, 1530, 2429, 3924,
4523      3917, 2429, 2424, 2433, 2433, 2433, 2425, 3924, 3926, 2426,
4524      2434, 2434, 2434, 2406, 2436, 2436, 2436, 3946, 2437, 2437,
4525      2437, 2433, 2437, 3910, 3911, 2437, 3921, 3925, 2434, 3916,
4526
4527      3921, 2436, 2442, 2442, 2442, 3925, 3932, 2443, 2443, 2443,
4528      2445, 2445, 2445, 3927, 2448, 2448, 2448, 1519, 2448, 3917,
4529      2442, 2448, 3928, 2425, 1508, 2443, 3926, 1503, 2445, 2433,
4530      1502, 3946, 2434, 2454, 2454, 2454, 2455, 2455, 2455, 3930,
4531      2455, 3929, 3932, 2455, 2456, 2456, 2456, 2457, 2457, 2457,
4532      2454, 2458, 2458, 2458, 2459, 2459, 2459, 2460, 2460, 2460,
4533      3928, 3927, 2456, 2461, 2461, 2461, 2462, 2462, 2462, 2442,
4534      2443, 2464, 2464, 2464, 2460, 2463, 2463, 2463, 3933, 3929,
4535      2461, 3930, 3972, 2462, 2466, 2466, 2466, 3931, 1501, 2464,
4536      3972, 3934, 2463, 2467, 2467, 2467, 3947, 2467, 1497, 3935,
4537
4538      2467, 2466, 2469, 2469, 2469, 2471, 2471, 2471, 3938, 2456,
4539      2474, 2474, 2474, 4008, 3933, 2461, 3939, 2475, 2475, 2475,
4540      2469, 2475, 3936, 2471, 2475, 2478, 2478, 2478, 2474, 3931,
4541      3937, 2462, 2479, 2479, 2479, 2463, 2479, 2464, 3934, 2479,
4542      3947, 3938, 2478, 2480, 2480, 2480, 3935, 2480, 3942, 3939,
4543      2480, 2483, 2483, 2483, 2484, 2484, 2484, 2485, 2485, 2485,
4544      3936, 2485, 4008, 3956, 2485, 2486, 2486, 2486, 3937, 2483,
4545      3958, 2484, 2490, 2490, 2490, 2492, 2492, 2492, 2493, 2493,
4546      2493, 3944, 2493, 2486, 3942, 2493, 2504, 2504, 2504, 3945,
4547      2490, 3948, 2492, 2505, 2505, 2505, 3943, 3940, 2506, 2506,
4548
4549      2506, 3956, 2506, 2483, 2504, 2506, 3940, 2507, 2507, 2507,
4550      2505, 2507, 3941, 3958, 2507, 3965, 3944, 2486, 2510, 2510,
4551      2510, 3941, 2510, 1496, 3945, 2510, 2514, 2514, 2514, 2515,
4552      2515, 2515, 3943, 2518, 2518, 2518, 2504, 2518, 3948, 1479,
4553      2518, 2521, 2521, 2521, 2514, 3965, 3949, 2515, 2522, 2522,
4554      2522, 2523, 2523, 2523, 2527, 2527, 2527, 2528, 2528, 2528,
4555      2530, 2530, 2530, 2531, 2531, 2531, 2533, 2533, 2533, 2534,
4556      2534, 2534, 2535, 2535, 2535, 2539, 2539, 2539, 2540, 2540,
4557      2540, 2544, 2544, 2544, 2545, 2545, 2545, 2547, 2547, 2547,
4558      2548, 2548, 2548, 3949, 2514, 2553, 2553, 2553, 2554, 2554,
4559
4560      2554, 2555, 2555, 2555, 2556, 2556, 2556, 3950, 2556, 3951,
4561      3957, 2556, 1474, 2553, 2557, 2557, 2557, 1473, 2555, 2558,
4562      2558, 2558, 2559, 2559, 2559, 2560, 2560, 2560, 2561, 2561,
4563      2561, 2557, 2562, 2562, 2562, 3952, 2558, 1472, 3968, 2559,
4564      2563, 2563, 2563, 3950, 2563, 3951, 2561, 2563, 3957, 2562,
4565      2566, 2566, 2566, 3953, 2567, 2567, 2567, 2568, 2568, 2568,
4566      2569, 2569, 2569, 2570, 2570, 2570, 3969, 2570, 2566, 3952,
4567      2570, 2558, 2567, 3968, 2559, 2568, 3954, 3959, 2569, 2573,
4568      2573, 2573, 2577, 2577, 2577, 3954, 2577, 3953, 1467, 2577,
4569      3974, 2567, 2580, 2580, 2580, 2561, 3960, 2573, 2583, 2583,
4570
4571      2583, 3969, 2566, 2584, 2584, 2584, 3973, 2584, 3962, 2580,
4572      2584, 2585, 2585, 2585, 3973, 2583, 2586, 2586, 2586, 2568,
4573      3959, 3975, 2569, 2591, 2591, 2591, 2592, 2592, 2592, 2585,
4574      2593, 2593, 2593, 1466, 2586, 2594, 2594, 2594, 3974, 2594,
4575      3978, 2591, 2594, 3960, 2592, 3963, 3962, 2593, 2597, 2597,
4576      2597, 2598, 2598, 2598, 2599, 2599, 2599, 2600, 2600, 2600,
4577      2601, 2601, 2601, 3955, 3966, 2597, 3967, 3976, 2598, 3975,
4578      3986, 2599, 3955, 3966, 2600, 3967, 3961, 2593, 2601, 2602,
4579      2602, 2602, 3978, 3963, 2591, 2603, 2603, 2603, 2607, 2607,
4580      2607, 2608, 2608, 2608, 1453, 2608, 1452, 2602, 2608, 2611,
4581
4582      2611, 2611, 2603, 3986, 2597, 3976, 2599, 2612, 2612, 2612,
4583      2613, 2613, 2613, 2598, 2615, 2615, 2615, 2611, 2614, 2614,
4584      2614, 2601, 2614, 3961, 3970, 2614, 3979, 2613, 2616, 2616,
4585      2616, 2615, 2617, 2617, 2617, 2618, 2618, 2618, 2619, 2619,
4586      2619, 2623, 2623, 2623, 2602, 2616, 2624, 2624, 2624, 2617,
4587      2620, 2620, 2620, 2618, 2620, 2619, 3987, 2620, 2623, 2611,
4588      2628, 2628, 2628, 3977, 2624, 2630, 2630, 2630, 3979, 2630,
4589      3971, 3970, 2630, 2633, 2633, 2633, 3984, 3994, 2628, 3988,
4590      2616, 2634, 2634, 2634, 2617, 2634, 1451, 3988, 2634, 3987,
4591      3982, 2633, 2637, 2637, 2637, 2641, 2641, 2641, 4004, 2641,
4592
4593      4005, 3977, 2641, 2654, 2654, 2654, 3980, 4004, 2623, 4005,
4594      2637, 2655, 2655, 2655, 3984, 2655, 1450, 3971, 2655, 3994,
4595      1449, 2654, 2659, 2659, 2659, 2660, 2660, 2660, 2673, 2673,
4596      2673, 2674, 2674, 2674, 2678, 2678, 2678, 3982, 3981, 2637,
4597      2659, 1448, 3980, 2660, 2679, 2679, 2679, 2681, 2681, 2681,
4598      2684, 2684, 2684, 2685, 2685, 2685, 2689, 2689, 2689, 2692,
4599      2692, 2692, 2694, 2694, 2694, 2654, 2696, 2696, 2696, 2697,
4600      2697, 2697, 4012, 2697, 3981, 3995, 2697, 2700, 2700, 2700,
4601      2694, 1447, 3985, 2701, 2701, 2701, 4012, 2701, 2660, 2659,
4602      2701, 2702, 2702, 2702, 2700, 2703, 2703, 2703, 2704, 2704,
4603
4604      2704, 2705, 2705, 2705, 2706, 2706, 2706, 3989, 2702, 2707,
4605      2707, 2707, 2703, 2707, 3983, 3989, 2707, 3995, 3990, 2705,
4606      3985, 2706, 2708, 2708, 2708, 2709, 2709, 2709, 2710, 2710,
4607      2710, 2711, 2711, 2711, 2712, 2712, 2712, 2718, 2718, 2718,
4608      2708, 1446, 4013, 2709, 1436, 3991, 2710, 1435, 1434, 2711,
4609      4009, 1429, 2712, 4013, 2718, 2719, 2719, 2719, 3996, 2719,
4610      1428, 3983, 2719, 2722, 2722, 2722, 3990, 2722, 3992, 3993,
4611      2722, 2725, 2725, 2725, 2729, 2729, 2729, 2730, 2730, 2730,
4612      2731, 2731, 2731, 2733, 2733, 2733, 2741, 2741, 2741, 2725,
4613      2709, 2729, 2711, 3991, 3996, 2730, 2710, 3997, 2731, 4009,
4614
4615      2733, 2734, 2734, 2734, 2741, 2734, 3992, 3993, 2734, 2738,
4616      2738, 2738, 2739, 2739, 2739, 2740, 2740, 2740, 1427, 2740,
4617      1426, 1411, 2740, 2742, 2742, 2742, 2738, 4002, 1410, 2739,
4618      2743, 2743, 2743, 3997, 4000, 2730, 2744, 2744, 2744, 1393,
4619      2744, 2742, 3998, 2744, 2747, 2747, 2747, 2743, 2748, 2748,
4620      2748, 2749, 2749, 2749, 4001, 2750, 2750, 2750, 3999, 2750,
4621      4002, 2747, 2750, 2753, 2753, 2753, 2754, 2754, 2754, 2749,
4622      2754, 1392, 4000, 2754, 2755, 2755, 2755, 2756, 2756, 2756,
4623      2753, 2757, 2757, 2757, 1385, 2742, 2759, 2759, 2759, 3998,
4624      1381, 2755, 4001, 1376, 2756, 2764, 2764, 2764, 1375, 2757,
4625
4626      2760, 2760, 2760, 2759, 2760, 3999, 1370, 2760, 2766, 2766,
4627      2766, 1369, 1368, 2764, 1366, 2779, 2779, 2779, 2791, 2791,
4628      2791, 2810, 2810, 2810, 1365, 1360, 2766, 2811, 2811, 2811,
4629      2814, 2814, 2814, 2779, 1357, 4003, 2791, 2818, 2818, 2818,
4630      2821, 2821, 2821, 2822, 2822, 2822, 2823, 2823, 2823, 1356,
4631      2823, 1353, 1352, 2823, 2826, 2826, 2826, 2827, 2827, 2827,
4632      2822, 2827, 1351, 1350, 2827, 2828, 2828, 2828, 4003, 1349,
4633      2791, 2826, 2830, 2830, 2830, 2766, 2779, 2829, 2829, 2829,
4634      4006, 2829, 2828, 4007, 2829, 2832, 2832, 2832, 4010, 2832,
4635      2830, 1348, 2832, 2835, 2835, 2835, 2837, 2837, 2837, 2838,
4636
4637      2838, 2838, 2839, 2839, 2839, 2842, 2842, 2842, 2844, 2844,
4638      2844, 2835, 2844, 4006, 2837, 2844, 4007, 2838, 1347, 4011,
4639      2839, 4010, 2842, 2856, 2856, 2856, 2857, 2857, 2857, 2858,
4640      2858, 2858, 1346, 2858, 1345, 1344, 2858, 2859, 2859, 2859,
4641      2856, 1343, 1342, 2857, 2860, 2860, 2860, 1341, 2860, 1340,
4642      1339, 2860, 4011, 1338, 2839, 2859, 1335, 1334, 2837, 2866,
4643      2866, 2866, 1333, 2867, 2867, 2867, 2838, 2867, 1332, 1331,
4644      2867, 2868, 2868, 2868, 1329, 2868, 2866, 1328, 2868, 2871,
4645      2871, 2871, 2873, 2873, 2873, 2874, 2874, 2874, 1327, 2874,
4646      1326, 1325, 2874, 2878, 2878, 2878, 1324, 2871, 1323, 1322,
4647
4648      2873, 2879, 2879, 2879, 2880, 2880, 2880, 1321, 2880, 1320,
4649      2878, 2880, 2881, 2881, 2881, 2883, 2883, 2883, 2879, 2883,
4650      1319, 1318, 2883, 2886, 2886, 2886, 1317, 2887, 2887, 2887,
4651      2881, 2887, 1316, 1315, 2887, 2888, 2888, 2888, 1309, 1305,
4652      2886, 1302, 2889, 2889, 2889, 2873, 2889, 1301, 1300, 2889,
4653      1298, 1294, 2888, 2890, 2890, 2890, 1287, 2890, 1286, 1285,
4654      2890, 2894, 2894, 2894, 2895, 2895, 2895, 2896, 2896, 2896,
4655      2897, 2897, 2897, 2898, 2898, 2898, 1282, 1277, 2894, 1276,
4656      1275, 2895, 2909, 2909, 2909, 2896, 2922, 2922, 2922, 1271,
4657      2898, 2923, 2923, 2923, 2940, 2940, 2940, 2942, 2942, 2942,
4658
4659      2909, 1270, 1267, 2922, 2946, 2946, 2946, 1263, 1262, 2923,
4660      2950, 2950, 2950, 2951, 2951, 2951, 1259, 2951, 1256, 1253,
4661      2951, 2952, 2952, 2952, 1252, 2952, 1247, 2950, 2952, 2955,
4662      2955, 2955, 1239, 2955, 1238, 1237, 2955, 1235, 1231, 2896,
4663      2958, 2958, 2958, 2909, 2959, 2959, 2959, 2960, 2960, 2960,
4664      2962, 2962, 2962, 2963, 2963, 2963, 1228, 1223, 2958, 2964,
4665      2964, 2964, 2959, 2964, 1222, 2960, 2964, 2962, 1221, 1220,
4666      2963, 2965, 2965, 2965, 2977, 2977, 2977, 2978, 2978, 2978,
4667      1219, 2978, 1218, 2960, 2978, 2979, 2979, 2979, 2965, 2979,
4668      1217, 2977, 2979, 2982, 2982, 2982, 2959, 2985, 2985, 2985,
4669
4670      2987, 2987, 2987, 1216, 2987, 1215, 1212, 2987, 2958, 1211,
4671      1208, 2982, 1207, 1203, 2985, 2996, 2996, 2996, 2998, 2998,
4672      2998, 2999, 2999, 2999, 1201, 2999, 1198, 1197, 2999, 1194,
4673      3000, 3000, 3000, 2996, 3000, 2998, 1187, 3000, 3003, 3003,
4674      3003, 1184, 3003, 1183, 1182, 3003, 3006, 3006, 3006, 1179,
4675      3006, 1178, 1174, 3006, 3016, 3016, 3016, 3017, 3017, 3017,
4676      1167, 3017, 1163, 1162, 3017, 3018, 3018, 3018, 3019, 3019,
4677      3019, 3016, 3019, 1161, 1158, 3019, 3020, 3020, 3020, 3021,
4678      3021, 3021, 3018, 3022, 3022, 3022, 3023, 3023, 3023, 1157,
4679      3023, 1156, 1149, 3023, 3020, 3034, 3034, 3034, 1148, 1147,
4680
4681      3022, 3047, 3047, 3047, 3048, 3048, 3048, 1146, 3048, 1145,
4682      1144, 3048, 1143, 3034, 3049, 3049, 3049, 1142, 3047, 3053,
4683      3053, 3053, 3067, 3067, 3067, 3069, 3069, 3069, 3072, 3072,
4684      3072, 1141, 3049, 3074, 3074, 3074, 3053, 3053, 1137, 3020,
4685      1106, 3076, 3076, 3076, 1103, 3076, 1100, 3034, 3076, 3083,
4686      3083, 3083, 3084, 3084, 3084, 3085, 3085, 3085, 3087, 3087,
4687      3087, 3088, 3088, 3088, 1099, 3088, 1096, 3083, 3088, 1095,
4688      3084, 1094, 1093, 3085, 1092, 3087, 3089, 3089, 3089, 1091,
4689      3089, 1084, 1083, 3089, 3092, 3092, 3092, 3093, 3093, 3093,
4690      1082, 3093, 1080, 1079, 3093, 3105, 3105, 3105, 1078, 3105,
4691
4692      1077, 3092, 3105, 3109, 3109, 3109, 3110, 3110, 3110, 1076,
4693      3110, 1075, 1074, 3110, 1073, 1072, 3083, 3085, 1071, 1070,
4694      3109, 3118, 3118, 3118, 3121, 3121, 3121, 1069, 3121, 1067,
4695      1066, 3121, 3136, 3136, 3136, 1065, 3137, 3137, 3137, 3118,
4696      3137, 1064, 1063, 3137, 3140, 3140, 3140, 1062, 3140, 3136,
4697      1061, 3140, 3143, 3143, 3143, 3144, 3144, 3144, 1060, 3144,
4698      1059, 1057, 3144, 3155, 3155, 3155, 1056, 3168, 3168, 3168,
4699      3143, 3168, 1055, 1054, 3168, 3172, 3172, 3172, 3173, 3173,
4700      3173, 3155, 3174, 3174, 3174, 1053, 3174, 1052, 1051, 3174,
4701      1050, 1049, 3172, 3172, 1048, 3173, 3173, 3187, 3187, 3187,
4702
4703      3174, 3189, 3189, 3189, 3143, 3190, 3190, 3190, 3191, 3191,
4704      3191, 1044, 1040, 3155, 3193, 3193, 3193, 3194, 3194, 3194,
4705      3207, 3207, 3207, 3208, 3208, 3208, 3210, 3210, 3210, 3212,
4706      3212, 3212, 1039, 3212, 1038, 1037, 3212, 1036, 3207, 1032,
4707      1030, 3208, 1029, 1028, 3210, 3215, 3215, 3215, 1027, 3215,
4708      1026, 1025, 3215, 3218, 3218, 3218, 3229, 3229, 3229, 3230,
4709      3230, 3230, 1024, 3230, 1015, 1014, 3230, 3233, 3233, 3233,
4710      3218, 1010, 3207, 3229, 3253, 3253, 3253, 1009, 3254, 3254,
4711      3254, 1008, 3254, 1007, 3233, 3254, 3263, 3263, 3263, 1004,
4712      1003, 3253, 1001,  999, 3210, 3272, 3272, 3272, 3294, 3294,
4713
4714      3294, 3295, 3295, 3295, 3263, 3295,  996,  995, 3295,  994,
4715      3296, 3296, 3296, 3272, 3296, 3294, 3294, 3296,  993, 3295,
4716      3307, 3307, 3307, 3309, 3309, 3309,  991,  988, 3296, 3310,
4717      3310, 3310, 3312, 3312, 3312, 3325, 3325, 3325, 3326, 3326,
4718      3326, 3328, 3328, 3328, 3329, 3329, 3329,  987, 3329,  985,
4719       984, 3329,  981, 3325,  979,  976, 3326,  975, 3328, 3330,
4720      3330, 3330, 3272, 3297, 3297, 3297, 3297, 3297, 3297, 3297,
4721      3297, 3297,  974,  973, 3297,  970, 3330,  969,  968, 3297,
4722      3297, 3297, 3297, 3297, 3340, 3340, 3340, 3341, 3341, 3341,
4723       967, 3341,  966,  965, 3341, 3343, 3343, 3343,  964, 3343,
4724
4725       962, 3340, 3343,  959,  958, 3326, 3342, 3342, 3342, 3297,
4726      3297, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
4727       954,  953, 3298, 3342, 3372, 3372, 3372, 3298, 3298, 3298,
4728      3298, 3298, 3361, 3361, 3361,  952, 3361,  951,  950, 3361,
4729       949,  940, 3372, 3380, 3380, 3380, 3398, 3398, 3398,  939,
4730      3398,  936,  935, 3398, 3409, 3409, 3409, 3298, 3298,  934,
4731       933, 3380,  932,  930, 3398, 3401, 3401, 3401, 3401, 3401,
4732      3401, 3401, 3401, 3401,  929,  928, 3401, 3410, 3410, 3410,
4733       925, 3401, 3401, 3401, 3401, 3401, 3423, 3423, 3423, 3425,
4734      3425, 3425, 3427, 3427, 3427,  924, 3427,  923,  920, 3427,
4735
4736      3511, 3511, 3511,  919, 3423,  915,  913, 3425, 3430, 3430,
4737      3430, 3401, 3401, 3402, 3402, 3402, 3402, 3402, 3402, 3402,
4738      3402, 3402,  910,  909, 3402, 3430, 3512, 3512, 3512, 3402,
4739      3402, 3402, 3402, 3402,  908, 3431, 3431, 3431,  907, 3431,
4740       905, 3425, 3431, 3439, 3439, 3439,  902, 3439,  901,  900,
4741      3439, 3442, 3442, 3442,  899, 3442,  896,  893, 3442, 3402,
4742      3402, 3476, 3476, 3476, 3498, 3498, 3498, 3519, 3519, 3519,
4743      3520, 3520, 3520, 3525, 3525, 3525,  890, 3525,  889, 3476,
4744      3525,  888, 3498, 3498,  887, 3519,  886, 3520, 3532, 3532,
4745      3532, 3537, 3537, 3537, 3568, 3568, 3568, 3572, 3572, 3572,
4746
4747      3585, 3585, 3585,  883,  880, 3532,  876,  875, 3537, 3587,
4748      3587, 3587, 3568,  874,  873, 3572,  872,  871, 3585,  870,
4749      3588, 3588, 3588,  869, 3588,  868, 3587, 3588, 3601, 3601,
4750      3601, 3602, 3602, 3602,  867, 3602,  866,  864, 3602, 3611,
4751      3611, 3611, 3629, 3629, 3629, 3601, 3612, 3612, 3612, 3572,
4752      3612,  862,  859, 3612,  858,  857, 3611, 3641, 3641, 3641,
4753      3629, 3641,  856,  855, 3641, 3656, 3656, 3656,  854, 3656,
4754       849,  848, 3656, 3667, 3667, 3667,  847, 3667,  846, 3629,
4755      3667, 3864, 3864, 3864, 3881, 3881, 3881,  843, 3881,  842,
4756       841, 3881, 4014, 4014, 4014, 4015, 4015, 4015,  838, 3864,
4757
4758       837,  836, 3881,  835,  832,  831,  829,  826,  825,  821,
4759      4014,  820,  819, 4015, 4018, 4018, 4018, 4018, 4018, 4018,
4760      4018, 4018, 4018, 4019, 4019, 4019, 4019, 4019, 4019, 4019,
4761      4019, 4019, 4020, 4020, 4020, 4020, 4020, 4020, 4020, 4020,
4762      4020, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021, 4021,
4763      4022, 4022, 4022, 4022, 4022, 4022, 4022, 4022, 4022, 4023,
4764      4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4024, 4024,
4765      4024, 4024, 4024, 4024, 4024, 4024, 4024, 4025, 4025, 4025,
4766      4025, 4025, 4025, 4025, 4025, 4025, 4026, 4026, 4026, 4026,
4767      4026, 4026, 4026, 4026, 4026, 4027, 4027, 4027, 4027, 4027,
4768
4769      4027, 4027, 4027, 4027, 4028, 4028, 4028, 4028, 4028, 4028,
4770      4028, 4028, 4028, 4029, 4029, 4029, 4029, 4029, 4029, 4029,
4771      4029, 4029, 4030, 4030, 4030, 4030, 4030, 4030, 4030, 4030,
4772      4030, 4031, 4031, 4031, 4031, 4031, 4031, 4031, 4031, 4031,
4773      4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4033,
4774      4033, 4033, 4033, 4033, 4033, 4033, 4033, 4033, 4034, 4034,
4775      4034, 4034, 4034, 4034, 4034, 4034, 4034, 4035, 4035, 4035,
4776      4035, 4035, 4035, 4035, 4035, 4035, 4036, 4036, 4036, 4036,
4777      4036, 4036, 4036, 4036, 4036, 4037, 4037, 4037, 4037, 4037,
4778      4037, 4037, 4037, 4037, 4038, 4038, 4038, 4038, 4038, 4038,
4779
4780      4038, 4038, 4038, 4039, 4039, 4039, 4039, 4039, 4039, 4039,
4781      4039, 4039, 4040, 4040, 4040, 4040, 4040, 4040, 4040, 4040,
4782      4040, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041,
4783      4042, 4042, 4042, 4042, 4042, 4042, 4042, 4042, 4042, 4043,
4784      4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4044, 4044,
4785      4044, 4044, 4044, 4044, 4044, 4044, 4044, 4045, 4045, 4045,
4786      4045, 4045, 4045, 4045, 4045, 4045, 4046, 4046, 4046, 4046,
4787      4046, 4046, 4046, 4046, 4046, 4047, 4047, 4047, 4047, 4047,
4788      4047, 4047, 4047, 4047, 4048, 4048, 4048, 4048, 4048, 4048,
4789      4048, 4048, 4048, 4049, 4049, 4049, 4049, 4049, 4049, 4049,
4790
4791      4049, 4049, 4050, 4050, 4050, 4050, 4050, 4050, 4050, 4050,
4792      4050, 4051, 4051, 4051, 4051, 4051, 4051, 4051, 4051, 4051,
4793      4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4052, 4053,
4794      4053, 4053, 4053, 4053, 4053, 4053, 4053, 4053, 4054, 4054,
4795      4054, 4054, 4054, 4054, 4054, 4054, 4054, 4055, 4055, 4055,
4796      4055, 4055, 4055, 4055, 4055, 4055, 4056, 4056, 4056, 4056,
4797      4056, 4056, 4056, 4056, 4056, 4057, 4057, 4057, 4057, 4057,
4798      4057, 4057, 4057, 4057, 4058, 4058, 4058, 4058, 4058, 4058,
4799      4058, 4058, 4058, 4059, 4059, 4059, 4059, 4059, 4059, 4059,
4800      4059, 4059, 4060, 4060, 4060, 4060, 4060, 4060, 4060, 4060,
4801
4802      4060, 4061, 4061, 4061, 4061, 4061, 4061, 4061, 4061, 4061,
4803      4062, 4062, 4062, 4062, 4062, 4062, 4062, 4062, 4062, 4063,
4804      4063, 4063, 4063, 4063, 4063, 4063, 4063, 4063, 4064, 4064,
4805      4064, 4064, 4064, 4064, 4064, 4064, 4064, 4065, 4065, 4065,
4806      4065, 4065, 4065, 4065, 4065, 4065, 4066, 4066, 4066, 4066,
4807      4066, 4066, 4066, 4066, 4066, 4067, 4067, 4067, 4067, 4067,
4808      4067, 4067, 4067, 4067, 4068, 4068, 4068, 4068, 4068, 4068,
4809      4068, 4068, 4068, 4069, 4069, 4069, 4069, 4069, 4069, 4069,
4810      4069, 4069, 4070, 4070, 4070, 4070, 4070, 4070, 4070, 4070,
4811      4070, 4071, 4071, 4071, 4071, 4071, 4071, 4071, 4071, 4071,
4812
4813      4072, 4072, 4072, 4072, 4072, 4072, 4072, 4072, 4072, 4073,
4814      4073, 4073, 4073, 4073, 4073, 4073, 4073, 4073, 4074, 4074,
4815      4074, 4074, 4074, 4074, 4074, 4074, 4074, 4075, 4075, 4075,
4816      4075, 4075, 4075, 4075, 4075, 4075, 4076, 4076, 4076, 4076,
4817      4076, 4076, 4076, 4076, 4076, 4077, 4077, 4077, 4077, 4077,
4818      4077, 4077, 4077, 4077, 4078, 4078, 4078, 4078, 4078, 4078,
4819      4078, 4078, 4078, 4079, 4079, 4079, 4079, 4079, 4079, 4079,
4820      4079, 4079, 4080, 4080, 4080, 4080, 4080, 4080, 4080, 4080,
4821      4080, 4081, 4081, 4081, 4081, 4081, 4081, 4081, 4081, 4081,
4822      4082, 4082, 4082, 4082, 4082, 4082, 4082, 4082, 4082, 4083,
4823
4824      4083, 4083, 4083, 4083, 4083, 4083, 4083, 4083, 4084, 4084,
4825      4084, 4084, 4084, 4084, 4084, 4084, 4084, 4085, 4085, 4085,
4826      4085, 4085, 4085, 4085, 4085, 4085, 4086, 4086, 4086, 4086,
4827      4086, 4086, 4086, 4086, 4086, 4087, 4087, 4087,  818,  817,
4828       816, 4087, 4088, 4088, 4088,  813,  812,  811, 4088, 4089,
4829      4089, 4089,  810,  809,  808, 4089, 4090, 4090, 4090,  803,
4830       799,  798, 4090, 4091, 4091, 4091,  797,  796,  793, 4091,
4831      4092, 4092, 4092,  792,  791,  788, 4092, 4093, 4093, 4093,
4832       786,  785,  784, 4093, 4094, 4094, 4094,  781,  780,  779,
4833      4094, 4095, 4095, 4095,  778,  774,  773, 4095, 4096, 4096,
4834
4835      4096,  772,  768,  767, 4096, 4097, 4097, 4097,  766,  765,
4836       759, 4097, 4098, 4098, 4098,  758,  756,  748, 4098, 4099,
4837      4099, 4099,  747,  743,  739, 4099, 4100, 4100, 4100,  734,
4838       729,  725, 4100, 4101, 4101, 4101,  724,  720,  714, 4101,
4839      4102, 4102, 4102,  713,  712,  708, 4102, 4103, 4103, 4103,
4840       705,  703,  702, 4103, 4104, 4104, 4104,  701,  697,  693,
4841      4104, 4105, 4105, 4105,  689,  688,  687, 4105, 4106, 4106,
4842      4106,  686,  682,  678, 4106, 4107, 4107, 4107,  675,  674,
4843       673, 4107, 4108, 4108, 4108,  672,  668,  662, 4108, 4109,
4844      4109, 4109,  661,  657,  649, 4109, 4110, 4110, 4110,  645,
4845
4846       638,  636, 4110, 4111, 4111, 4111,  635,  631,  625, 4111,
4847      4112, 4112, 4112,  624,  620,  613, 4112, 4113, 4113, 4113,
4848       612,  611,  610, 4113, 4114, 4114, 4114,  609,  605,  594,
4849      4114, 4115, 4115, 4115,  590,  582,  581, 4115, 4116, 4116,
4850      4116,  580,  579,  578, 4116, 4117, 4117, 4117,  574,  568,
4851       567, 4117, 4118, 4118, 4118, 4118, 4118, 4118, 4118,  563,
4852      4118, 4119, 4119, 4119,  557,  556,  552, 4119, 4120,  546,
4853       545,  541, 4120, 4121, 4121, 4121,  537,  533,  532, 4121,
4854      4122,  531,  527,  523, 4122, 4123, 4123, 4123,  519,  515,
4855       509, 4123, 4124,  508,  507,  503, 4124, 4125, 4125, 4125,
4856
4857       499,  494,  493, 4125, 4126,  492,  491,  487, 4126, 4127,
4858      4127, 4127,  483,  480,  476, 4127, 4128,  472,  469,  466,
4859      4128, 4129, 4129, 4129,  464,  463,  458, 4129, 4130,  451,
4860       450,  449, 4130, 4131, 4131, 4131,  448,  447,  443, 4131,
4861      4132,  436,  435,  434, 4132, 4133, 4133, 4133,  430,  423,
4862       422, 4133, 4134,  418,  411,  410, 4134, 4135, 4135, 4135,
4863       409,  405,  399, 4135, 4136,  398,  397,  393, 4136, 4137,
4864      4137, 4137,  387,  383,  379, 4137, 4138,  375,  374,  373,
4865      4138, 4139, 4139, 4139,  372,  371,  367, 4139, 4140,  358,
4866       357,  353, 4140, 4141, 4141, 4141,  349,  345,  341, 4141,
4867
4868      4142,  340,  336,  333, 4142, 4143, 4143, 4143,  332,  331,
4869       325, 4143, 4144,  324,  322,  319, 4144, 4145, 4145, 4145,
4870       307,    0,    0, 4145, 4146,    0,    0,    0, 4146, 4147,
4871      4147, 4147,    0,    0,    0, 4147, 4148,    0,    0,    0,
4872      4148, 4149, 4149, 4149,    0,    0,    0, 4149, 4150,    0,
4873         0,    0, 4150, 4151, 4151, 4151,    0,    0,    0, 4151,
4874      4152,    0,    0,    0, 4152, 4153, 4153, 4153,    0,    0,
4875         0, 4153, 4154,    0,    0,    0, 4154, 4155, 4155, 4155,
4876         0,    0,    0, 4155, 4156,    0,    0,    0, 4156, 4157,
4877      4157, 4157,    0,    0,    0, 4157, 4158,    0,    0,    0,
4878
4879      4158, 4159, 4159, 4159,    0,    0,    0, 4159, 4160,    0,
4880         0,    0, 4160, 4161, 4161, 4161,    0,    0,    0, 4161,
4881      4162,    0,    0,    0, 4162, 4163, 4163, 4163,    0,    0,
4882         0, 4163, 4164,    0,    0,    0, 4164, 4165, 4165, 4165,
4883         0,    0,    0, 4165, 4166,    0,    0,    0, 4166, 4167,
4884      4167, 4167,    0,    0,    0, 4167, 4168,    0,    0,    0,
4885      4168, 4169, 4169, 4169,    0,    0,    0, 4169, 4170,    0,
4886         0,    0, 4170, 4171, 4171, 4171,    0,    0,    0, 4171,
4887      4172,    0,    0,    0, 4172, 4173, 4173, 4173,    0,    0,
4888         0, 4173, 4174,    0,    0,    0, 4174, 4175, 4175, 4175,
4889
4890         0,    0,    0, 4175, 4176,    0,    0,    0, 4176, 4177,
4891      4177, 4177,    0,    0,    0, 4177, 4178,    0,    0,    0,
4892      4178, 4179, 4179, 4179,    0,    0,    0, 4179, 4180,    0,
4893         0,    0, 4180, 4181, 4181, 4181, 4181, 4181, 4181, 4181,
4894      4181, 4181, 4182,    0,    0,    0,    0, 4182, 4183, 4183,
4895      4183,    0,    0,    0, 4183, 4184, 4184, 4184, 4184,    0,
4896         0, 4184, 4184, 4185, 4185, 4185, 4185,    0, 4185,    0,
4897      4185, 4186, 4186, 4186, 4186,    0,    0, 4186, 4186, 4187,
4898      4187, 4187,    0,    0,    0, 4187, 4188, 4188, 4188, 4188,
4899         0,    0, 4188, 4188, 4189, 4189, 4189,    0,    0,    0,
4900
4901      4189, 4190, 4190, 4190, 4190,    0,    0, 4190, 4190, 4191,
4902      4191, 4191,    0,    0,    0, 4191, 4192, 4192, 4192, 4192,
4903         0,    0, 4192, 4192, 4193, 4193, 4193, 4193,    0, 4193,
4904         0, 4193, 4194, 4194, 4194, 4194,    0,    0, 4194, 4194,
4905      4195, 4195, 4195, 4195,    0, 4195,    0, 4195, 4196, 4196,
4906      4196, 4196,    0,    0, 4196, 4196, 4197, 4197, 4197, 4197,
4907         0, 4197,    0, 4197, 4198, 4198, 4198, 4198,    0,    0,
4908      4198, 4198, 4199, 4199, 4199, 4199,    0, 4199,    0, 4199,
4909      4200, 4200, 4200, 4200,    0,    0, 4200, 4200, 4201, 4201,
4910      4201,    0,    0,    0, 4201, 4202, 4202, 4202, 4202,    0,
4911
4912         0, 4202, 4202, 4203, 4203, 4203, 4203,    0,    0, 4203,
4913      4203, 4204, 4204, 4204,    0,    0,    0, 4204, 4205, 4205,
4914      4205, 4205,    0,    0, 4205, 4205, 4206, 4206, 4206,    0,
4915         0,    0, 4206, 4207, 4207, 4207, 4207,    0,    0, 4207,
4916      4207, 4208, 4208, 4208,    0,    0,    0, 4208, 4209, 4209,
4917      4209, 4209,    0,    0, 4209, 4209, 4210, 4210, 4210,    0,
4918         0,    0, 4210, 4211, 4211, 4211, 4211,    0,    0, 4211,
4919      4211, 4212, 4212, 4212,    0,    0,    0, 4212, 4213, 4213,
4920      4213, 4213,    0,    0, 4213, 4213, 4214, 4214, 4214,    0,
4921         0,    0, 4214, 4215, 4215, 4215, 4215,    0,    0, 4215,
4922
4923      4215, 4216, 4216, 4216,    0,    0,    0, 4216, 4217, 4217,
4924      4217, 4217,    0,    0, 4217, 4217, 4218, 4218, 4218,    0,
4925         0,    0, 4218, 4219, 4219, 4219, 4219,    0,    0, 4219,
4926      4219, 4220, 4220, 4220,    0,    0,    0, 4220, 4221, 4221,
4927      4221, 4221,    0,    0, 4221, 4221, 4222, 4222, 4222,    0,
4928         0,    0, 4222, 4223, 4223, 4223, 4223,    0,    0, 4223,
4929      4223, 4224, 4224, 4224,    0,    0,    0, 4224, 4225, 4225,
4930      4225, 4225,    0,    0, 4225, 4225, 4226, 4226, 4226,    0,
4931         0,    0, 4226, 4227, 4227, 4227, 4227,    0,    0, 4227,
4932      4227, 4228, 4228, 4228, 4228,    0, 4228,    0, 4228, 4229,
4933
4934      4229, 4229, 4229,    0,    0, 4229, 4229, 4230, 4230, 4230,
4935         0,    0,    0, 4230, 4231, 4231, 4231, 4231,    0,    0,
4936      4231, 4231, 4232, 4232, 4232,    0,    0,    0, 4232, 4233,
4937      4233, 4233, 4233,    0,    0, 4233, 4233, 4234, 4234, 4234,
4938         0,    0,    0, 4234, 4235, 4235, 4235, 4235,    0,    0,
4939      4235, 4235, 4236, 4236, 4236,    0,    0,    0, 4236, 4237,
4940      4237, 4237, 4237,    0,    0, 4237, 4237, 4238, 4238, 4238,
4941         0,    0,    0, 4238, 4239, 4239, 4239, 4239,    0,    0,
4942      4239, 4239, 4240, 4240, 4240,    0,    0,    0, 4240, 4241,
4943      4241, 4241, 4241,    0,    0, 4241, 4241, 4242, 4242, 4242,
4944
4945      4242,    0, 4242,    0, 4242, 4243, 4243, 4243, 4243,    0,
4946         0, 4243, 4243, 4244, 4244, 4244, 4244, 4244, 4244, 4244,
4947      4244, 4244, 4245,    0, 4245,    0,    0, 4245, 4246, 4246,
4948      4246,    0,    0,    0, 4246, 4247, 4247, 4247, 4247,    0,
4949         0, 4247, 4247, 4248, 4248, 4248,    0,    0,    0, 4248,
4950      4249, 4249, 4249, 4249,    0,    0, 4249, 4249, 4250, 4250,
4951      4250,    0,    0,    0, 4250, 4251, 4251, 4251, 4251,    0,
4952         0, 4251, 4251, 4252, 4252, 4252,    0,    0,    0, 4252,
4953      4253, 4253, 4253, 4253,    0,    0, 4253, 4253, 4254, 4254,
4954      4254,    0,    0,    0, 4254, 4255, 4255, 4255, 4255,    0,
4955
4956         0, 4255, 4255, 4256, 4256, 4256,    0,    0,    0, 4256,
4957      4257, 4257, 4257, 4257,    0,    0, 4257, 4257, 4258, 4258,
4958      4258, 4258,    0,    0, 4258, 4258, 4259, 4259, 4259,    0,
4959         0,    0, 4259, 4260, 4260, 4260, 4260,    0,    0, 4260,
4960      4260, 4261, 4261, 4261,    0,    0,    0, 4261, 4262, 4262,
4961      4262, 4262,    0,    0, 4262, 4262, 4263, 4263, 4263,    0,
4962         0,    0, 4263, 4264, 4264, 4264, 4264,    0,    0, 4264,
4963      4264, 4265, 4265, 4265, 4265,    0,    0, 4265, 4265, 4266,
4964      4266, 4266,    0,    0,    0, 4266, 4267, 4267, 4267, 4267,
4965         0,    0, 4267, 4267, 4268, 4268, 4268, 4268,    0, 4268,
4966
4967         0, 4268, 4269, 4269, 4269, 4269,    0,    0, 4269, 4269,
4968      4270, 4270, 4270, 4270,    0, 4270,    0, 4270, 4271, 4271,
4969      4271, 4271,    0,    0, 4271, 4271, 4272, 4272, 4272,    0,
4970         0,    0, 4272, 4273, 4273, 4273, 4273,    0,    0, 4273,
4971      4273, 4274, 4274, 4274,    0,    0,    0, 4274, 4275, 4275,
4972      4275, 4275,    0,    0, 4275, 4275, 4276, 4276, 4276,    0,
4973         0,    0, 4276, 4277, 4277, 4277, 4277,    0,    0, 4277,
4974      4277, 4278, 4278, 4278, 4278,    0, 4278,    0, 4278, 4279,
4975      4279, 4279, 4279,    0,    0, 4279, 4279, 4280, 4280, 4280,
4976         0,    0,    0, 4280, 4281, 4281, 4281, 4281,    0,    0,
4977
4978      4281, 4281, 4282, 4282, 4282,    0,    0,    0, 4282, 4283,
4979      4283, 4283, 4283,    0,    0, 4283, 4283, 4284, 4284, 4284,
4980         0,    0,    0, 4284, 4285, 4285, 4285, 4285,    0,    0,
4981      4285, 4285, 4286, 4286, 4286,    0,    0,    0, 4286, 4287,
4982      4287, 4287, 4287,    0,    0, 4287, 4287, 4288, 4288, 4288,
4983         0,    0,    0, 4288, 4289, 4289, 4289, 4289,    0,    0,
4984      4289, 4289, 4290, 4290, 4290,    0,    0,    0, 4290, 4291,
4985      4291, 4291, 4291,    0,    0, 4291, 4291, 4292, 4292, 4292,
4986         0,    0,    0, 4292, 4293, 4293, 4293, 4293,    0,    0,
4987      4293, 4293, 4294, 4294, 4294,    0,    0,    0, 4294, 4295,
4988
4989      4295, 4295, 4295,    0,    0, 4295, 4295, 4296, 4296, 4296,
4990         0,    0,    0, 4296, 4297, 4297, 4297, 4297,    0,    0,
4991      4297, 4297, 4298, 4298, 4298, 4298,    0, 4298,    0, 4298,
4992      4299, 4299, 4299, 4299,    0,    0, 4299, 4299, 4300, 4300,
4993      4300,    0,    0,    0, 4300, 4301, 4301, 4301, 4301,    0,
4994         0, 4301, 4301, 4302, 4302, 4302,    0,    0,    0, 4302,
4995      4303, 4303, 4303, 4303,    0,    0, 4303, 4303, 4304, 4304,
4996      4304,    0,    0,    0, 4304, 4305, 4305, 4305, 4305,    0,
4997         0, 4305, 4305, 4306, 4306, 4306, 4306, 4306, 4306, 4306,
4998      4306, 4306, 4307, 4307, 4307, 4307, 4307, 4307, 4307, 4307,
4999
5000      4307, 4308, 4308, 4308,    0,    0,    0, 4308, 4309, 4309,
5001      4309,    0,    0,    0, 4309, 4310, 4310, 4310, 4310,    0,
5002         0, 4310, 4310, 4311, 4311, 4311,    0,    0,    0, 4311,
5003      4312, 4312, 4312, 4312,    0,    0, 4312, 4312, 4313, 4313,
5004      4313, 4313,    0, 4313,    0, 4313, 4314, 4314, 4314, 4314,
5005         0,    0, 4314, 4314, 4315, 4315, 4315,    0,    0,    0,
5006      4315, 4316, 4316, 4316, 4316,    0,    0, 4316, 4316, 4317,
5007      4317, 4317,    0,    0,    0, 4317, 4318, 4318, 4318, 4318,
5008         0,    0, 4318, 4318, 4319, 4319, 4319, 4319,    0,    0,
5009      4319, 4319, 4320, 4320, 4320,    0,    0,    0, 4320, 4321,
5010
5011      4321, 4321, 4321,    0,    0, 4321, 4321, 4322, 4322, 4322,
5012         0,    0,    0, 4322, 4323, 4323, 4323, 4323,    0,    0,
5013      4323, 4323, 4324, 4324, 4324, 4324,    0, 4324,    0, 4324,
5014      4325, 4325, 4325, 4325,    0,    0, 4325, 4325, 4326, 4326,
5015      4326, 4326,    0,    0, 4326, 4326, 4327, 4327, 4327,    0,
5016         0,    0, 4327, 4328, 4328, 4328, 4328,    0,    0, 4328,
5017      4328, 4329, 4329, 4329, 4329,    0,    0, 4329, 4329, 4330,
5018      4330, 4330, 4330,    0,    0, 4330, 4330, 4331, 4331, 4331,
5019         0,    0,    0, 4331, 4332, 4332, 4332, 4332,    0,    0,
5020      4332, 4332, 4333, 4333, 4333,    0,    0,    0, 4333, 4334,
5021
5022      4334, 4334, 4334,    0,    0, 4334, 4334, 4335, 4335, 4335,
5023      4335,    0, 4335,    0, 4335, 4336, 4336, 4336, 4336,    0,
5024         0, 4336, 4336, 4337, 4337, 4337,    0,    0,    0, 4337,
5025      4338, 4338, 4338, 4338,    0,    0, 4338, 4338, 4339, 4339,
5026      4339,    0,    0,    0, 4339, 4340, 4340, 4340, 4340,    0,
5027         0, 4340, 4340, 4341, 4341, 4341,    0,    0,    0, 4341,
5028      4342, 4342, 4342, 4342,    0,    0, 4342, 4342, 4343, 4343,
5029      4343,    0,    0,    0, 4343, 4344, 4344, 4344, 4344,    0,
5030         0, 4344, 4344, 4345, 4345, 4345, 4345,    0, 4345,    0,
5031      4345, 4346, 4346, 4346, 4346,    0,    0, 4346, 4346, 4347,
5032
5033      4347, 4347,    0,    0,    0, 4347, 4348, 4348, 4348, 4348,
5034         0,    0, 4348, 4348, 4349, 4349, 4349,    0,    0,    0,
5035      4349, 4350, 4350, 4350, 4350,    0,    0, 4350, 4350, 4351,
5036      4351, 4351,    0,    0,    0, 4351, 4352, 4352, 4352, 4352,
5037         0,    0, 4352, 4352, 4353, 4353, 4353,    0,    0,    0,
5038      4353, 4354, 4354, 4354, 4354,    0,    0, 4354, 4354, 4355,
5039      4355, 4355,    0,    0,    0, 4355, 4356, 4356, 4356, 4356,
5040         0,    0, 4356, 4356, 4357, 4357, 4357,    0,    0,    0,
5041      4357, 4358, 4358, 4358, 4358,    0,    0, 4358, 4358, 4359,
5042      4359, 4359,    0,    0,    0, 4359, 4360, 4360, 4360, 4360,
5043
5044         0,    0, 4360, 4360, 4361, 4361, 4361,    0,    0,    0,
5045      4361, 4362, 4362, 4362, 4362,    0,    0, 4362, 4362, 4363,
5046      4363, 4363,    0,    0,    0, 4363, 4364, 4364, 4364, 4364,
5047         0,    0, 4364, 4364, 4365, 4365, 4365, 4365, 4365, 4365,
5048      4365, 4365, 4365, 4366, 4366, 4366, 4366, 4366, 4366, 4366,
5049      4366, 4366, 4367, 4367, 4367,    0,    0,    0, 4367, 4368,
5050      4368, 4368, 4368,    0, 4368,    0, 4368, 4369, 4369, 4369,
5051      4369,    0,    0, 4369, 4369, 4370, 4370, 4370,    0,    0,
5052         0, 4370, 4371, 4371, 4371, 4371,    0,    0, 4371, 4371,
5053      4372, 4372, 4372, 4372,    0,    0, 4372, 4372, 4373, 4373,
5054
5055      4373,    0,    0,    0, 4373, 4374, 4374, 4374, 4374,    0,
5056         0, 4374, 4374, 4375, 4375, 4375, 4375,    0, 4375,    0,
5057      4375, 4376, 4376, 4376, 4376,    0,    0, 4376, 4376, 4377,
5058      4377, 4377, 4377,    0,    0, 4377, 4377, 4378, 4378, 4378,
5059      4378,    0, 4378,    0, 4378, 4379, 4379, 4379, 4379,    0,
5060         0, 4379, 4379, 4380, 4380, 4380, 4380,    0, 4380,    0,
5061      4380, 4381, 4381, 4381, 4381,    0,    0, 4381, 4381, 4382,
5062      4382, 4382, 4382,    0, 4382,    0, 4382, 4383, 4383, 4383,
5063      4383,    0,    0, 4383, 4383, 4384, 4384, 4384, 4384,    0,
5064         0, 4384, 4384, 4385, 4385, 4385,    0,    0,    0, 4385,
5065
5066      4386, 4386, 4386, 4386,    0,    0, 4386, 4386, 4387, 4387,
5067      4387, 4387,    0,    0, 4387, 4387, 4388, 4388, 4388, 4388,
5068         0,    0, 4388, 4388, 4389, 4389, 4389,    0,    0,    0,
5069      4389, 4390, 4390, 4390, 4390,    0,    0, 4390, 4390, 4391,
5070      4391, 4391,    0,    0,    0, 4391, 4392, 4392, 4392, 4392,
5071         0,    0, 4392, 4392, 4393, 4393, 4393, 4393,    0,    0,
5072      4393, 4393, 4394, 4394, 4394,    0,    0,    0, 4394, 4395,
5073      4395, 4395, 4395,    0,    0, 4395, 4395, 4396, 4396, 4396,
5074         0,    0,    0, 4396, 4397, 4397, 4397, 4397,    0,    0,
5075      4397, 4397, 4398, 4398, 4398,    0,    0,    0, 4398, 4399,
5076
5077      4399, 4399, 4399,    0,    0, 4399, 4399, 4400, 4400, 4400,
5078         0,    0,    0, 4400, 4401, 4401, 4401, 4401,    0,    0,
5079      4401, 4401, 4402, 4402, 4402, 4402,    0,    0, 4402, 4402,
5080      4403, 4403, 4403,    0,    0,    0, 4403, 4404, 4404, 4404,
5081      4404,    0,    0, 4404, 4404, 4405, 4405, 4405,    0,    0,
5082         0, 4405, 4406, 4406, 4406, 4406,    0,    0, 4406, 4406,
5083      4407, 4407, 4407,    0,    0,    0, 4407, 4408, 4408, 4408,
5084      4408,    0,    0, 4408, 4408, 4409, 4409, 4409, 4409,    0,
5085      4409,    0, 4409, 4410, 4410, 4410, 4410,    0,    0, 4410,
5086      4410, 4411, 4411, 4411,    0,    0,    0, 4411, 4412, 4412,
5087
5088      4412, 4412,    0,    0, 4412, 4412, 4413, 4413, 4413,    0,
5089         0,    0, 4413, 4414, 4414, 4414, 4414,    0,    0, 4414,
5090      4414, 4415, 4415, 4415,    0,    0,    0, 4415, 4416, 4416,
5091      4416, 4416,    0,    0, 4416, 4416, 4417, 4417, 4417,    0,
5092         0,    0, 4417, 4418, 4418, 4418, 4418,    0,    0, 4418,
5093      4418, 4419, 4419, 4419, 4419,    0, 4419,    0, 4419, 4420,
5094      4420, 4420, 4420,    0,    0, 4420, 4420, 4421, 4421, 4421,
5095      4421, 4421, 4421, 4421, 4421, 4421, 4422, 4422, 4422, 4422,
5096      4422, 4422, 4422, 4422, 4422, 4423, 4423, 4423, 4423,    0,
5097      4423,    0, 4423, 4424, 4424, 4424,    0,    0,    0, 4424,
5098
5099      4425, 4425, 4425, 4425,    0,    0, 4425, 4425, 4426, 4426,
5100      4426,    0,    0,    0, 4426, 4427, 4427, 4427, 4427,    0,
5101         0, 4427, 4427, 4428, 4428, 4428, 4428,    0,    0, 4428,
5102      4428, 4429, 4429, 4429,    0,    0,    0, 4429, 4430, 4430,
5103      4430, 4430,    0,    0, 4430, 4430, 4431, 4431, 4431, 4431,
5104         0,    0, 4431, 4431, 4432, 4432, 4432, 4432,    0,    0,
5105      4432, 4432, 4433, 4433, 4433, 4433,    0,    0, 4433, 4433,
5106      4434, 4434, 4434, 4434,    0, 4434,    0, 4434, 4435, 4435,
5107      4435, 4435,    0,    0, 4435, 4435, 4436, 4436, 4436,    0,
5108         0,    0, 4436, 4437, 4437, 4437, 4437,    0,    0, 4437,
5109
5110      4437, 4438, 4438, 4438, 4438,    0,    0, 4438, 4438, 4439,
5111      4439, 4439,    0,    0,    0, 4439, 4440, 4440, 4440, 4440,
5112         0,    0, 4440, 4440, 4441, 4441, 4441, 4441,    0,    0,
5113      4441, 4441, 4442, 4442, 4442,    0,    0,    0, 4442, 4443,
5114      4443, 4443,    0,    0,    0, 4443, 4444, 4444, 4444, 4444,
5115         0,    0, 4444, 4444, 4445, 4445, 4445, 4445,    0,    0,
5116      4445, 4445, 4446, 4446, 4446,    0,    0,    0, 4446, 4447,
5117      4447, 4447, 4447,    0,    0, 4447, 4447, 4448, 4448, 4448,
5118         0,    0,    0, 4448, 4449, 4449, 4449, 4449,    0, 4449,
5119         0, 4449, 4450, 4450, 4450, 4450,    0,    0, 4450, 4450,
5120
5121      4451, 4451, 4451,    0,    0,    0, 4451, 4452, 4452, 4452,
5122      4452,    0,    0, 4452, 4452, 4453, 4453, 4453,    0,    0,
5123         0, 4453, 4454, 4454, 4454, 4454,    0,    0, 4454, 4454,
5124      4455, 4455, 4455,    0,    0,    0, 4455, 4456, 4456, 4456,
5125      4456,    0,    0, 4456, 4456, 4457, 4457, 4457,    0,    0,
5126         0, 4457, 4458, 4458, 4458, 4458,    0,    0, 4458, 4458,
5127      4459, 4459, 4459, 4459,    0, 4459,    0, 4459, 4460, 4460,
5128      4460, 4460,    0,    0, 4460, 4460, 4461, 4461, 4461, 4461,
5129         0, 4461,    0, 4461, 4462, 4462, 4462, 4462,    0,    0,
5130      4462, 4462, 4463, 4463, 4463,    0,    0,    0, 4463, 4464,
5131
5132      4464, 4464, 4464,    0,    0, 4464, 4464, 4465, 4465, 4465,
5133      4465,    0, 4465,    0, 4465, 4466, 4466, 4466, 4466,    0,
5134         0, 4466, 4466, 4467, 4467, 4467, 4467,    0, 4467,    0,
5135      4467, 4468, 4468, 4468,    0,    0,    0, 4468, 4469, 4469,
5136      4469, 4469,    0,    0, 4469, 4469, 4470, 4470, 4470, 4470,
5137      4470, 4470, 4470, 4470, 4470, 4471, 4471, 4471, 4471, 4471,
5138      4471, 4471, 4471, 4471, 4472, 4472, 4472,    0,    0,    0,
5139      4472, 4473, 4473, 4473, 4473,    0,    0, 4473, 4473, 4474,
5140      4474, 4474, 4474,    0, 4474,    0, 4474, 4475, 4475, 4475,
5141      4475,    0,    0, 4475, 4475, 4476, 4476, 4476,    0,    0,
5142
5143         0, 4476, 4477, 4477, 4477, 4477,    0,    0, 4477, 4477,
5144      4478, 4478, 4478, 4478,    0,    0, 4478, 4478, 4479, 4479,
5145      4479, 4479,    0,    0, 4479, 4479, 4480, 4480, 4480, 4480,
5146         0,    0, 4480, 4480, 4481, 4481, 4481, 4481,    0,    0,
5147      4481, 4481, 4482, 4482, 4482,    0,    0,    0, 4482, 4483,
5148      4483, 4483, 4483,    0,    0, 4483, 4483, 4484, 4484, 4484,
5149      4484,    0,    0, 4484, 4484, 4485, 4485, 4485,    0,    0,
5150         0, 4485, 4486, 4486, 4486, 4486,    0,    0, 4486, 4486,
5151      4487, 4487, 4487, 4487,    0,    0, 4487, 4487, 4488, 4488,
5152      4488,    0,    0,    0, 4488, 4489, 4489, 4489,    0,    0,
5153
5154         0, 4489, 4490, 4490, 4490, 4490,    0,    0, 4490, 4490,
5155      4491, 4491, 4491, 4491,    0,    0, 4491, 4491, 4492, 4492,
5156      4492,    0,    0,    0, 4492, 4493, 4493, 4493,    0,    0,
5157         0, 4493, 4494, 4494, 4494, 4494,    0,    0, 4494, 4494,
5158      4495, 4495, 4495, 4495,    0, 4495,    0, 4495, 4496, 4496,
5159      4496, 4496,    0,    0, 4496, 4496, 4497, 4497, 4497,    0,
5160         0,    0, 4497, 4498, 4498, 4498, 4498,    0,    0, 4498,
5161      4498, 4499, 4499, 4499,    0,    0,    0, 4499, 4500, 4500,
5162      4500,    0,    0,    0, 4500, 4501, 4501, 4501, 4501,    0,
5163         0, 4501, 4501, 4502, 4502, 4502, 4502,    0,    0, 4502,
5164
5165      4502, 4503, 4503, 4503, 4503,    0,    0, 4503, 4503, 4504,
5166      4504, 4504,    0,    0,    0, 4504, 4505, 4505, 4505, 4505,
5167         0,    0, 4505, 4505, 4506, 4506, 4506,    0,    0,    0,
5168      4506, 4507, 4507, 4507, 4507,    0,    0, 4507, 4507, 4508,
5169      4508, 4508, 4508, 4508, 4508, 4508, 4508, 4508, 4509, 4509,
5170      4509, 4509, 4509, 4509, 4509, 4509, 4509, 4510, 4510, 4510,
5171         0,    0,    0, 4510, 4511, 4511, 4511, 4511,    0,    0,
5172      4511, 4511, 4512, 4512, 4512, 4512,    0, 4512,    0, 4512,
5173      4513, 4513, 4513, 4513,    0,    0, 4513, 4513, 4514, 4514,
5174      4514, 4514,    0, 4514,    0, 4514, 4515, 4515, 4515, 4515,
5175
5176         0,    0, 4515, 4515, 4516, 4516, 4516, 4516,    0,    0,
5177      4516, 4516, 4517, 4517, 4517, 4517,    0,    0, 4517, 4517,
5178      4518, 4518, 4518, 4518,    0,    0, 4518, 4518, 4519, 4519,
5179      4519, 4519,    0,    0, 4519, 4519, 4520, 4520, 4520,    0,
5180         0,    0, 4520, 4521, 4521, 4521, 4521,    0,    0, 4521,
5181      4521, 4522, 4522, 4522,    0,    0,    0, 4522, 4523, 4523,
5182      4523, 4523,    0,    0, 4523, 4523, 4524, 4524, 4524, 4524,
5183         0,    0, 4524, 4524, 4525, 4525, 4525, 4525,    0, 4525,
5184         0, 4525, 4526, 4526, 4526, 4526,    0, 4526,    0, 4526,
5185      4527, 4527, 4527, 4527,    0,    0, 4527, 4527, 4528, 4528,
5186
5187      4528, 4528,    0,    0, 4528, 4528, 4529, 4529, 4529, 4529,
5188         0, 4529,    0, 4529, 4530, 4530, 4530,    0,    0,    0,
5189      4530, 4531, 4531, 4531, 4531,    0,    0, 4531, 4531, 4532,
5190      4532, 4532, 4532,    0, 4532,    0, 4532, 4533, 4533, 4533,
5191      4533,    0,    0, 4533, 4533, 4534, 4534, 4534, 4534,    0,
5192      4534,    0, 4534, 4535, 4535, 4535,    0,    0,    0, 4535,
5193      4536, 4536, 4536,    0,    0,    0, 4536, 4537, 4537, 4537,
5194      4537,    0,    0, 4537, 4537, 4538, 4538, 4538, 4538,    0,
5195         0, 4538, 4538, 4539, 4539, 4539,    0,    0,    0, 4539,
5196      4540, 4540, 4540, 4540,    0,    0, 4540, 4540, 4541, 4541,
5197
5198      4541,    0,    0,    0, 4541, 4542, 4542, 4542, 4542,    0,
5199         0, 4542, 4542, 4543, 4543, 4543, 4543, 4543, 4543, 4543,
5200      4543, 4543, 4544, 4544, 4544, 4544, 4544, 4544, 4544, 4544,
5201      4544, 4545, 4545, 4545,    0,    0,    0, 4545, 4546, 4546,
5202      4546, 4546,    0, 4546,    0, 4546, 4547, 4547, 4547, 4547,
5203         0,    0, 4547, 4547, 4548, 4548, 4548, 4548,    0,    0,
5204      4548, 4548, 4549, 4549, 4549, 4549,    0,    0, 4549, 4549,
5205      4550, 4550, 4550, 4550,    0,    0, 4550, 4550, 4551, 4551,
5206      4551, 4551,    0,    0, 4551, 4551, 4552, 4552, 4552,    0,
5207         0,    0, 4552, 4553, 4553, 4553,    0,    0,    0, 4553,
5208
5209      4554, 4554, 4554, 4554,    0,    0, 4554, 4554, 4555, 4555,
5210      4555,    0,    0,    0, 4555, 4556, 4556, 4556, 4556,    0,
5211         0, 4556, 4556, 4557, 4557, 4557, 4557,    0,    0, 4557,
5212      4557, 4558, 4558, 4558,    0,    0,    0, 4558, 4559, 4559,
5213      4559, 4559,    0,    0, 4559, 4559, 4560, 4560, 4560, 4560,
5214         0, 4560,    0, 4560, 4561, 4561, 4561,    0,    0,    0,
5215      4561, 4562, 4562, 4562,    0,    0,    0, 4562, 4563, 4563,
5216      4563,    0,    0,    0, 4563, 4564, 4564, 4564, 4564, 4564,
5217      4564, 4564, 4564, 4564, 4565, 4565, 4565, 4565, 4565, 4565,
5218      4565, 4565, 4565, 4566, 4566, 4566, 4566, 4566, 4566, 4566,
5219
5220      4566, 4566, 4567, 4567, 4567, 4567, 4567, 4567, 4567, 4567,
5221      4567, 4568, 4568, 4568, 4568, 4568, 4568, 4568, 4568, 4568,
5222      4569, 4569, 4569, 4569, 4569, 4569, 4569, 4569, 4569, 4017,
5223      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
5224      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
5225      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
5226      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
5227      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
5228      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
5229      4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017, 4017,
5230
5231      4017, 4017, 4017, 4017, 4017
5232     } ;
5233
5234 /* Table of booleans, true if rule could match eol. */
5235 static const flex_int32_t yy_rule_can_match_eol[664] =
5236     {   0,
5237 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
5238     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5239     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5240     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
5241     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
5242     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
5243     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
5244     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
5245     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5246     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5247     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5248     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5249     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
5250     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5251     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5252     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5253     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5254     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
5255     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
5256     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
5257     0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
5258     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5259     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5260     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
5261     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5262     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
5263     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
5264     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
5265     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
5266     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5267     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5268     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5269     1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 
5270     0, 0, 1, 0,     };
5271
5272 static yy_state_type yy_last_accepting_state;
5273 static char *yy_last_accepting_cpos;
5274
5275 extern int yy_flex_debug;
5276 int yy_flex_debug = 0;
5277
5278 /* The intent behind this definition is that it'll catch
5279  * any uses of REJECT which flex missed.
5280  */
5281 #define REJECT reject_used_but_not_detected
5282 #define yymore() yymore_used_but_not_detected
5283 #define YY_MORE_ADJ 0
5284 #define YY_RESTORE_YY_MORE_OFFSET
5285 char *yytext;
5286 /* Validating XML processor for src/surf/xml/simgrid.dtd.
5287  *
5288  * This program was generated with the FleXML XML processor generator.
5289  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
5290  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
5291  * (1.9.6).
5292  * 
5293  * There are two, intertwined parts to this program, part A and part B.
5294  *
5295  * Part A
5296  * ------
5297  * 
5298  * Some parts, here collectively called "Part A", are found in the 
5299  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
5300  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
5301  *
5302  * You can redistribute, use, perform, display and/or modify "Part A"
5303  * provided the following two conditions hold:
5304  *
5305  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
5306  *    FleXML; without even the implied warranty of MERCHANTABILITY or
5307  *    FITNESS FOR A PARTICULAR PURPOSE.
5308  *
5309  * 2. The program distribution conditions do not in any way affect the
5310  *    distribution conditions of the FleXML system used to generate this
5311  *    file or any version of FleXML derived from that system.
5312  *
5313  * Notice that these are explicit rights granted to you for files
5314  * generated by the FleXML system.  For your rights in connection with
5315  * the FleXML system itself please consult the GNU General Public License.
5316  * 
5317  * Part B
5318  * ------
5319  * 
5320  * The other parts, here collectively called "Part B", and which came 
5321  * from the DTD used by FleXML to generate this program, can be 
5322  * distributed (or not, as the case may be) under the terms of whoever
5323  * wrote them, provided these terms respect and obey the two conditions 
5324  * above under the heading "Part A".
5325  *
5326  * The author of and contributors to FleXML specifically disclaim
5327  * any copyright interest in "Part B", unless "Part B" was written 
5328  * by the author of or contributors to FleXML.
5329  * 
5330  */
5331
5332 /* Version strings. */
5333 const char surfxml_flexml_version[] = "1.9.6";
5334
5335 /* ANSI headers. */
5336 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
5337 #include <stdio.h>
5338 #include <string.h>
5339 #include <assert.h>
5340 #include <stdarg.h>
5341 #include <ctype.h>
5342      
5343 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5344 # ifndef __STRICT_ANSI__
5345 #  include <io.h>
5346 #  include <process.h>
5347 # endif
5348 #else
5349 # include <unistd.h>
5350 #endif
5351      
5352 #ifndef FLEXML_INDEXSTACKSIZE
5353 #define FLEXML_INDEXSTACKSIZE 1000
5354 #endif
5355
5356 /* Generated definitions. */
5357 #define FLEXML_yylineno
5358 #ifndef FLEXML_BUFFERSTACKSIZE
5359 #define FLEXML_BUFFERSTACKSIZE 1000000
5360 #endif
5361 #define FLEXML_NEED_BUFFERLIT
5362
5363 /* XML processor api. */
5364 /* FleXML-provided data. */
5365 int surfxml_pcdata_ix;
5366 extern char *surfxml_bufferstack;
5367 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
5368 AT_surfxml_AS_id AX_surfxml_AS_id;
5369 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
5370 short int surfxml_AS_id_isset;
5371 AT_surfxml_AS_routing AX_surfxml_AS_routing;
5372 #define A_surfxml_AS_routing AX_surfxml_AS_routing
5373 short int surfxml_AS_routing_isset;
5374 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
5375 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
5376 short int surfxml_ASroute_dst_isset;
5377 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
5378 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
5379 short int surfxml_ASroute_gw___dst_isset;
5380 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
5381 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
5382 short int surfxml_ASroute_gw___src_isset;
5383 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
5384 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
5385 short int surfxml_ASroute_src_isset;
5386 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
5387 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
5388 short int surfxml_ASroute_symmetrical_isset;
5389 AT_surfxml_actor_function AX_surfxml_actor_function;
5390 #define A_surfxml_actor_function (surfxml_bufferstack + AX_surfxml_actor_function)
5391 short int surfxml_actor_function_isset;
5392 AT_surfxml_actor_host AX_surfxml_actor_host;
5393 #define A_surfxml_actor_host (surfxml_bufferstack + AX_surfxml_actor_host)
5394 short int surfxml_actor_host_isset;
5395 AT_surfxml_actor_kill___time AX_surfxml_actor_kill___time;
5396 #define A_surfxml_actor_kill___time (surfxml_bufferstack + AX_surfxml_actor_kill___time)
5397 short int surfxml_actor_kill___time_isset;
5398 AT_surfxml_actor_on___failure AX_surfxml_actor_on___failure;
5399 #define A_surfxml_actor_on___failure AX_surfxml_actor_on___failure
5400 short int surfxml_actor_on___failure_isset;
5401 AT_surfxml_actor_start___time AX_surfxml_actor_start___time;
5402 #define A_surfxml_actor_start___time (surfxml_bufferstack + AX_surfxml_actor_start___time)
5403 short int surfxml_actor_start___time_isset;
5404 AT_surfxml_argument_value AX_surfxml_argument_value;
5405 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
5406 short int surfxml_argument_value_isset;
5407 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
5408 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
5409 short int surfxml_backbone_bandwidth_isset;
5410 AT_surfxml_backbone_id AX_surfxml_backbone_id;
5411 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
5412 short int surfxml_backbone_id_isset;
5413 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
5414 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
5415 short int surfxml_backbone_latency_isset;
5416 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
5417 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
5418 short int surfxml_bypassASroute_dst_isset;
5419 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
5420 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
5421 short int surfxml_bypassASroute_gw___dst_isset;
5422 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
5423 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
5424 short int surfxml_bypassASroute_gw___src_isset;
5425 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
5426 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
5427 short int surfxml_bypassASroute_src_isset;
5428 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
5429 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
5430 short int surfxml_bypassRoute_dst_isset;
5431 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
5432 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
5433 short int surfxml_bypassRoute_src_isset;
5434 AT_surfxml_bypassZoneRoute_dst AX_surfxml_bypassZoneRoute_dst;
5435 #define A_surfxml_bypassZoneRoute_dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_dst)
5436 short int surfxml_bypassZoneRoute_dst_isset;
5437 AT_surfxml_bypassZoneRoute_gw___dst AX_surfxml_bypassZoneRoute_gw___dst;
5438 #define A_surfxml_bypassZoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___dst)
5439 short int surfxml_bypassZoneRoute_gw___dst_isset;
5440 AT_surfxml_bypassZoneRoute_gw___src AX_surfxml_bypassZoneRoute_gw___src;
5441 #define A_surfxml_bypassZoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___src)
5442 short int surfxml_bypassZoneRoute_gw___src_isset;
5443 AT_surfxml_bypassZoneRoute_src AX_surfxml_bypassZoneRoute_src;
5444 #define A_surfxml_bypassZoneRoute_src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_src)
5445 short int surfxml_bypassZoneRoute_src_isset;
5446 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
5447 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
5448 short int surfxml_cabinet_bw_isset;
5449 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
5450 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
5451 short int surfxml_cabinet_id_isset;
5452 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
5453 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
5454 short int surfxml_cabinet_lat_isset;
5455 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
5456 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
5457 short int surfxml_cabinet_prefix_isset;
5458 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
5459 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
5460 short int surfxml_cabinet_radical_isset;
5461 AT_surfxml_cabinet_speed AX_surfxml_cabinet_speed;
5462 #define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
5463 short int surfxml_cabinet_speed_isset;
5464 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
5465 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
5466 short int surfxml_cabinet_suffix_isset;
5467 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
5468 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
5469 short int surfxml_cluster_bb___bw_isset;
5470 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
5471 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
5472 short int surfxml_cluster_bb___lat_isset;
5473 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
5474 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
5475 short int surfxml_cluster_bb___sharing___policy_isset;
5476 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
5477 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
5478 short int surfxml_cluster_bw_isset;
5479 AT_surfxml_cluster_core AX_surfxml_cluster_core;
5480 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
5481 short int surfxml_cluster_core_isset;
5482 AT_surfxml_cluster_id AX_surfxml_cluster_id;
5483 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
5484 short int surfxml_cluster_id_isset;
5485 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
5486 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
5487 short int surfxml_cluster_lat_isset;
5488 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
5489 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
5490 short int surfxml_cluster_limiter___link_isset;
5491 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
5492 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
5493 short int surfxml_cluster_loopback___bw_isset;
5494 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
5495 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
5496 short int surfxml_cluster_loopback___lat_isset;
5497 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
5498 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
5499 short int surfxml_cluster_prefix_isset;
5500 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
5501 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
5502 short int surfxml_cluster_radical_isset;
5503 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
5504 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
5505 short int surfxml_cluster_router___id_isset;
5506 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
5507 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
5508 short int surfxml_cluster_sharing___policy_isset;
5509 AT_surfxml_cluster_speed AX_surfxml_cluster_speed;
5510 #define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
5511 short int surfxml_cluster_speed_isset;
5512 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
5513 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
5514 short int surfxml_cluster_suffix_isset;
5515 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
5516 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
5517 short int surfxml_cluster_topo___parameters_isset;
5518 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
5519 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
5520 short int surfxml_cluster_topology_isset;
5521 AT_surfxml_config_id AX_surfxml_config_id;
5522 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
5523 short int surfxml_config_id_isset;
5524 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
5525 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
5526 short int surfxml_host_availability___file_isset;
5527 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
5528 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
5529 short int surfxml_host_coordinates_isset;
5530 AT_surfxml_host_core AX_surfxml_host_core;
5531 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
5532 short int surfxml_host_core_isset;
5533 AT_surfxml_host_id AX_surfxml_host_id;
5534 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
5535 short int surfxml_host_id_isset;
5536 AT_surfxml_host_pstate AX_surfxml_host_pstate;
5537 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
5538 short int surfxml_host_pstate_isset;
5539 AT_surfxml_host_speed AX_surfxml_host_speed;
5540 #define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
5541 short int surfxml_host_speed_isset;
5542 AT_surfxml_host_state___file AX_surfxml_host_state___file;
5543 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
5544 short int surfxml_host_state___file_isset;
5545 AT_surfxml_host___link_down AX_surfxml_host___link_down;
5546 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
5547 short int surfxml_host___link_down_isset;
5548 AT_surfxml_host___link_id AX_surfxml_host___link_id;
5549 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
5550 short int surfxml_host___link_id_isset;
5551 AT_surfxml_host___link_up AX_surfxml_host___link_up;
5552 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
5553 short int surfxml_host___link_up_isset;
5554 AT_surfxml_include_file AX_surfxml_include_file;
5555 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
5556 short int surfxml_include_file_isset;
5557 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
5558 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
5559 short int surfxml_link_bandwidth_isset;
5560 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
5561 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
5562 short int surfxml_link_bandwidth___file_isset;
5563 AT_surfxml_link_id AX_surfxml_link_id;
5564 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
5565 short int surfxml_link_id_isset;
5566 AT_surfxml_link_latency AX_surfxml_link_latency;
5567 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
5568 short int surfxml_link_latency_isset;
5569 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
5570 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
5571 short int surfxml_link_latency___file_isset;
5572 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
5573 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
5574 short int surfxml_link_sharing___policy_isset;
5575 AT_surfxml_link_state___file AX_surfxml_link_state___file;
5576 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
5577 short int surfxml_link_state___file_isset;
5578 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
5579 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
5580 short int surfxml_link___ctn_direction_isset;
5581 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
5582 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
5583 short int surfxml_link___ctn_id_isset;
5584 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
5585 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
5586 short int surfxml_model___prop_id_isset;
5587 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
5588 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
5589 short int surfxml_model___prop_value_isset;
5590 AT_surfxml_mount_name AX_surfxml_mount_name;
5591 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
5592 short int surfxml_mount_name_isset;
5593 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
5594 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
5595 short int surfxml_mount_storageId_isset;
5596 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
5597 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
5598 short int surfxml_peer_availability___file_isset;
5599 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
5600 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
5601 short int surfxml_peer_bw___in_isset;
5602 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
5603 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
5604 short int surfxml_peer_bw___out_isset;
5605 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
5606 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
5607 short int surfxml_peer_coordinates_isset;
5608 AT_surfxml_peer_id AX_surfxml_peer_id;
5609 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
5610 short int surfxml_peer_id_isset;
5611 AT_surfxml_peer_lat AX_surfxml_peer_lat;
5612 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
5613 short int surfxml_peer_lat_isset;
5614 AT_surfxml_peer_speed AX_surfxml_peer_speed;
5615 #define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
5616 short int surfxml_peer_speed_isset;
5617 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
5618 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
5619 short int surfxml_peer_state___file_isset;
5620 AT_surfxml_platform_version AX_surfxml_platform_version;
5621 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
5622 short int surfxml_platform_version_isset;
5623 AT_surfxml_process_function AX_surfxml_process_function;
5624 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
5625 short int surfxml_process_function_isset;
5626 AT_surfxml_process_host AX_surfxml_process_host;
5627 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
5628 short int surfxml_process_host_isset;
5629 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
5630 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
5631 short int surfxml_process_kill___time_isset;
5632 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
5633 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
5634 short int surfxml_process_on___failure_isset;
5635 AT_surfxml_process_start___time AX_surfxml_process_start___time;
5636 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
5637 short int surfxml_process_start___time_isset;
5638 AT_surfxml_prop_id AX_surfxml_prop_id;
5639 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
5640 short int surfxml_prop_id_isset;
5641 AT_surfxml_prop_value AX_surfxml_prop_value;
5642 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
5643 short int surfxml_prop_value_isset;
5644 AT_surfxml_random_generator AX_surfxml_random_generator;
5645 #define A_surfxml_random_generator AX_surfxml_random_generator
5646 short int surfxml_random_generator_isset;
5647 AT_surfxml_random_id AX_surfxml_random_id;
5648 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
5649 short int surfxml_random_id_isset;
5650 AT_surfxml_random_max AX_surfxml_random_max;
5651 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
5652 short int surfxml_random_max_isset;
5653 AT_surfxml_random_mean AX_surfxml_random_mean;
5654 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
5655 short int surfxml_random_mean_isset;
5656 AT_surfxml_random_min AX_surfxml_random_min;
5657 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
5658 short int surfxml_random_min_isset;
5659 AT_surfxml_random_radical AX_surfxml_random_radical;
5660 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
5661 short int surfxml_random_radical_isset;
5662 AT_surfxml_random_seed AX_surfxml_random_seed;
5663 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
5664 short int surfxml_random_seed_isset;
5665 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
5666 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
5667 short int surfxml_random_std___deviation_isset;
5668 AT_surfxml_route_dst AX_surfxml_route_dst;
5669 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
5670 short int surfxml_route_dst_isset;
5671 AT_surfxml_route_src AX_surfxml_route_src;
5672 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
5673 short int surfxml_route_src_isset;
5674 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
5675 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
5676 short int surfxml_route_symmetrical_isset;
5677 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
5678 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
5679 short int surfxml_router_coordinates_isset;
5680 AT_surfxml_router_id AX_surfxml_router_id;
5681 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
5682 short int surfxml_router_id_isset;
5683 AT_surfxml_storage_attach AX_surfxml_storage_attach;
5684 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
5685 short int surfxml_storage_attach_isset;
5686 AT_surfxml_storage_content AX_surfxml_storage_content;
5687 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
5688 short int surfxml_storage_content_isset;
5689 AT_surfxml_storage_id AX_surfxml_storage_id;
5690 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
5691 short int surfxml_storage_id_isset;
5692 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
5693 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
5694 short int surfxml_storage_typeId_isset;
5695 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
5696 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
5697 short int surfxml_storage___type_content_isset;
5698 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
5699 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
5700 short int surfxml_storage___type_id_isset;
5701 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
5702 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
5703 short int surfxml_storage___type_model_isset;
5704 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
5705 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
5706 short int surfxml_storage___type_size_isset;
5707 AT_surfxml_trace_file AX_surfxml_trace_file;
5708 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
5709 short int surfxml_trace_file_isset;
5710 AT_surfxml_trace_id AX_surfxml_trace_id;
5711 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
5712 short int surfxml_trace_id_isset;
5713 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
5714 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
5715 short int surfxml_trace_periodicity_isset;
5716 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
5717 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
5718 short int surfxml_trace___connect_element_isset;
5719 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
5720 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
5721 short int surfxml_trace___connect_kind_isset;
5722 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
5723 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
5724 short int surfxml_trace___connect_trace_isset;
5725 AT_surfxml_zone_id AX_surfxml_zone_id;
5726 #define A_surfxml_zone_id (surfxml_bufferstack + AX_surfxml_zone_id)
5727 short int surfxml_zone_id_isset;
5728 AT_surfxml_zone_routing AX_surfxml_zone_routing;
5729 #define A_surfxml_zone_routing AX_surfxml_zone_routing
5730 short int surfxml_zone_routing_isset;
5731 AT_surfxml_zoneRoute_dst AX_surfxml_zoneRoute_dst;
5732 #define A_surfxml_zoneRoute_dst (surfxml_bufferstack + AX_surfxml_zoneRoute_dst)
5733 short int surfxml_zoneRoute_dst_isset;
5734 AT_surfxml_zoneRoute_gw___dst AX_surfxml_zoneRoute_gw___dst;
5735 #define A_surfxml_zoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___dst)
5736 short int surfxml_zoneRoute_gw___dst_isset;
5737 AT_surfxml_zoneRoute_gw___src AX_surfxml_zoneRoute_gw___src;
5738 #define A_surfxml_zoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___src)
5739 short int surfxml_zoneRoute_gw___src_isset;
5740 AT_surfxml_zoneRoute_src AX_surfxml_zoneRoute_src;
5741 #define A_surfxml_zoneRoute_src (surfxml_bufferstack + AX_surfxml_zoneRoute_src)
5742 short int surfxml_zoneRoute_src_isset;
5743 AT_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical;
5744 #define A_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical
5745 short int surfxml_zoneRoute_symmetrical_isset;
5746
5747 /* XML state. */
5748 #ifdef FLEX_DEBUG
5749 # define ENTER(state)   debug_enter(state,#state)
5750 # define LEAVE          debug_leave()
5751 # define SET(state)     debug_set(state,#state)
5752   static void debug_enter(int, const char*);
5753   static void debug_leave(void);
5754   static void debug_set(int, const char*);
5755 #else
5756 # define ENTER(state)   (yy_push_state(state))
5757 # define LEAVE          (yy_pop_state())
5758 # define SET(state)     BEGIN(state)
5759 #endif
5760
5761 /* Generic actions. */
5762 #define SKIP    /*skip*/
5763 #define SUCCEED        CLEANUP; return 0
5764
5765 #define FAIL    return fail
5766 static int fail(const char*, ...);
5767
5768 enum {flexml_max_err_msg_size = 512};
5769 static char flexml_err_msg[flexml_max_err_msg_size];
5770 const char * surfxml_parse_err_msg()
5771 {
5772     return flexml_err_msg;
5773 }
5774 static void reset_surfxml_parse_err_msg()
5775 {
5776     flexml_err_msg[0] = '\0';
5777 }
5778
5779 /* Cleanup */
5780 static void cleanup(void);
5781 #define CLEANUP  cleanup()
5782
5783 /* Text buffer stack handling. */
5784 char *surfxml_bufferstack = NULL;
5785 static int blimit = FLEXML_BUFFERSTACKSIZE;
5786 static int bnext = 1;
5787
5788 static int *indexstack = NULL;
5789 static int ilimit = FLEXML_INDEXSTACKSIZE;
5790 static int inext = 1;
5791
5792 #define BUFFERSET(P)  (P = bnext)
5793 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5794 #define BUFFERDONE    (BUFFERPUTC('\0'))
5795
5796 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), yytext)
5797
5798 /* after this is called, there are at least 2 slots left in the stack */
5799 static int ck_blimit()
5800 {
5801      if (bnext >= blimit) {
5802          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5803          {
5804              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5805              assert(temp);
5806              surfxml_bufferstack = temp;
5807          }
5808      }
5809      return 0;
5810 }
5811
5812 /* after this is called, there are at least 2 slots left in the stack */
5813 static int ck_ilimit()
5814 {
5815      if (inext >= ilimit) {
5816          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5817          {
5818              int *temp = (int *) realloc(indexstack, ilimit);
5819              assert(temp);
5820              indexstack = temp;
5821          }
5822      }
5823      return 0;
5824 }
5825
5826 #ifdef FLEXML_NEED_BUFFERLIT
5827 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5828 {
5829    BUFFERSET(*pp);
5830    if (c) {
5831       const char *s = strchr(text, c), *e = strrchr(text, c);
5832       assert(s && e && s <= e);
5833       ++s;
5834       while (s < e) {
5835          if (isspace(*s)) {
5836             BUFFERPUTC(' ');
5837             do ++s; while (s < e && isspace(*s));
5838          } else
5839            BUFFERPUTC(*s++);
5840       }
5841    } else {
5842       const char *s = text;
5843       while (*s)
5844         BUFFERPUTC(*s++);
5845    }
5846    BUFFERDONE;
5847 }
5848 #endif
5849
5850 static void pushbuffer(int p)
5851 {
5852     ck_ilimit();
5853     indexstack[inext++] = p;
5854     indexstack[inext++] = bnext;    
5855 }
5856
5857 static int popbuffer(void)
5858 {
5859     assert(inext >= 2);
5860     bnext = indexstack[--inext];
5861     return indexstack[--inext];
5862 }
5863
5864 /* General internal entities are `unput' back onto the input stream... */
5865 #define ENTITYTEXT(T) \
5866   { char *s = (T), *e = s+strlen(s);\
5867     while (--e >= s) { unput(*e); }}
5868
5869 /* Flex standard options. */
5870 #define YY_NO_INPUT 1
5871 /* Flex user-requested options. */
5872 /* XML character classes (currently restricted to ASCII). */
5873 /* "Common syntactic structures." */
5874 /* "Names and Tokens." */
5875 /* Miscellaneous. */
5876 /* Parser states (flex `exclusive start conditions'):
5877  *
5878  * PROLOG       the XML prolog of the document before <?xml...>
5879  * DOCTYPE      the XML prolog of the document after <?xml...>
5880  * EPILOG       after the root element
5881  * INCOMMENT    inside an XML comment <!--....-->
5882  * INPI         inside an XML PI <?...?>
5883  * VALUE1       inside a '...'-delimited literal
5884  * VALUE2       inside a "..."-delimited literal
5885  * CDATA        inside a <![CDATA[...] ]> section.
5886  * ROOT_<tag>   expect root element <tag>
5887  * AL_<tag>     inside the attribute list for <tag>
5888  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5889  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5890  */
5891
5892 /* State names. */
5893 const char* *surfxml_statenames=NULL;
5894
5895 #define INITIAL 0
5896 #define PROLOG 1
5897 #define DOCTYPE 2
5898 #define EPILOG 3
5899 #define INCOMMENT 4
5900 #define INPI 5
5901 #define VALUE1 6
5902 #define VALUE2 7
5903 #define CDATA 8
5904 #define AL_surfxml_AS 9
5905 #define S_surfxml_AS 10
5906 #define S_surfxml_AS_1 11
5907 #define S_surfxml_AS_2 12
5908 #define S_surfxml_AS_3 13
5909 #define S_surfxml_AS_4 14
5910 #define S_surfxml_AS_5 15
5911 #define S_surfxml_AS_6 16
5912 #define S_surfxml_AS_7 17
5913 #define S_surfxml_AS_8 18
5914 #define E_surfxml_AS 19
5915 #define AL_surfxml_ASroute 20
5916 #define S_surfxml_ASroute 21
5917 #define S_surfxml_ASroute_1 22
5918 #define S_surfxml_ASroute_2 23
5919 #define E_surfxml_ASroute 24
5920 #define AL_surfxml_actor 25
5921 #define S_surfxml_actor 26
5922 #define S_surfxml_actor_1 27
5923 #define S_surfxml_actor_2 28
5924 #define E_surfxml_actor 29
5925 #define AL_surfxml_argument 30
5926 #define E_surfxml_argument 31
5927 #define AL_surfxml_backbone 32
5928 #define E_surfxml_backbone 33
5929 #define AL_surfxml_bypassASroute 34
5930 #define S_surfxml_bypassASroute 35
5931 #define S_surfxml_bypassASroute_1 36
5932 #define S_surfxml_bypassASroute_2 37
5933 #define E_surfxml_bypassASroute 38
5934 #define AL_surfxml_bypassRoute 39
5935 #define S_surfxml_bypassRoute 40
5936 #define S_surfxml_bypassRoute_1 41
5937 #define S_surfxml_bypassRoute_2 42
5938 #define E_surfxml_bypassRoute 43
5939 #define AL_surfxml_bypassZoneRoute 44
5940 #define S_surfxml_bypassZoneRoute 45
5941 #define S_surfxml_bypassZoneRoute_1 46
5942 #define S_surfxml_bypassZoneRoute_2 47
5943 #define E_surfxml_bypassZoneRoute 48
5944 #define AL_surfxml_cabinet 49
5945 #define E_surfxml_cabinet 50
5946 #define AL_surfxml_cluster 51
5947 #define S_surfxml_cluster 52
5948 #define S_surfxml_cluster_1 53
5949 #define S_surfxml_cluster_2 54
5950 #define E_surfxml_cluster 55
5951 #define AL_surfxml_config 56
5952 #define S_surfxml_config 57
5953 #define S_surfxml_config_1 58
5954 #define S_surfxml_config_2 59
5955 #define E_surfxml_config 60
5956 #define AL_surfxml_host 61
5957 #define S_surfxml_host 62
5958 #define S_surfxml_host_1 63
5959 #define S_surfxml_host_2 64
5960 #define E_surfxml_host 65
5961 #define AL_surfxml_host___link 66
5962 #define E_surfxml_host___link 67
5963 #define AL_surfxml_include 68
5964 #define S_surfxml_include 69
5965 #define S_surfxml_include_1 70
5966 #define S_surfxml_include_2 71
5967 #define E_surfxml_include 72
5968 #define AL_surfxml_link 73
5969 #define S_surfxml_link 74
5970 #define S_surfxml_link_1 75
5971 #define S_surfxml_link_2 76
5972 #define E_surfxml_link 77
5973 #define AL_surfxml_link___ctn 78
5974 #define E_surfxml_link___ctn 79
5975 #define AL_surfxml_model___prop 80
5976 #define E_surfxml_model___prop 81
5977 #define AL_surfxml_mount 82
5978 #define E_surfxml_mount 83
5979 #define AL_surfxml_peer 84
5980 #define E_surfxml_peer 85
5981 #define ROOT_surfxml_platform 86
5982 #define AL_surfxml_platform 87
5983 #define S_surfxml_platform 88
5984 #define S_surfxml_platform_1 89
5985 #define S_surfxml_platform_2 90
5986 #define S_surfxml_platform_3 91
5987 #define S_surfxml_platform_4 92
5988 #define S_surfxml_platform_5 93
5989 #define S_surfxml_platform_6 94
5990 #define S_surfxml_platform_7 95
5991 #define S_surfxml_platform_8 96
5992 #define E_surfxml_platform 97
5993 #define AL_surfxml_process 98
5994 #define S_surfxml_process 99
5995 #define S_surfxml_process_1 100
5996 #define S_surfxml_process_2 101
5997 #define E_surfxml_process 102
5998 #define AL_surfxml_prop 103
5999 #define E_surfxml_prop 104
6000 #define AL_surfxml_random 105
6001 #define E_surfxml_random 106
6002 #define AL_surfxml_route 107
6003 #define S_surfxml_route 108
6004 #define S_surfxml_route_1 109
6005 #define S_surfxml_route_2 110
6006 #define E_surfxml_route 111
6007 #define AL_surfxml_router 112
6008 #define E_surfxml_router 113
6009 #define AL_surfxml_storage 114
6010 #define S_surfxml_storage 115
6011 #define S_surfxml_storage_1 116
6012 #define S_surfxml_storage_2 117
6013 #define E_surfxml_storage 118
6014 #define AL_surfxml_storage___type 119
6015 #define S_surfxml_storage___type 120
6016 #define S_surfxml_storage___type_1 121
6017 #define S_surfxml_storage___type_2 122
6018 #define E_surfxml_storage___type 123
6019 #define AL_surfxml_trace 124
6020 #define IN_trace 125
6021 #define AL_surfxml_trace___connect 126
6022 #define E_surfxml_trace___connect 127
6023 #define AL_surfxml_zone 128
6024 #define S_surfxml_zone 129
6025 #define S_surfxml_zone_1 130
6026 #define S_surfxml_zone_2 131
6027 #define S_surfxml_zone_3 132
6028 #define S_surfxml_zone_4 133
6029 #define S_surfxml_zone_5 134
6030 #define S_surfxml_zone_6 135
6031 #define S_surfxml_zone_7 136
6032 #define S_surfxml_zone_8 137
6033 #define S_surfxml_zone_9 138
6034 #define S_surfxml_zone_10 139
6035 #define S_surfxml_zone_11 140
6036 #define S_surfxml_zone_12 141
6037 #define S_surfxml_zone_13 142
6038 #define S_surfxml_zone_14 143
6039 #define S_surfxml_zone_15 144
6040 #define S_surfxml_zone_16 145
6041 #define E_surfxml_zone 146
6042 #define AL_surfxml_zoneRoute 147
6043 #define S_surfxml_zoneRoute 148
6044 #define S_surfxml_zoneRoute_1 149
6045 #define S_surfxml_zoneRoute_2 150
6046 #define E_surfxml_zoneRoute 151
6047 #define IMPOSSIBLE 152
6048
6049 #ifndef YY_NO_UNISTD_H
6050 /* Special case for "unistd.h", since it is non-ANSI. We include it way
6051  * down here because we want the user's section 1 to have been scanned first.
6052  * The user has a chance to override it with an option.
6053  */
6054 #if defined(_WIN32)
6055 #  ifndef __STRICT_ANSI__
6056 #    include <io.h>
6057 #    include <process.h>
6058 #  endif
6059 #else
6060 #  include <unistd.h>
6061 #endif
6062 #endif
6063
6064 #ifndef YY_EXTRA_TYPE
6065 #define YY_EXTRA_TYPE void *
6066 #endif
6067
6068 static int yy_init_globals ( void );
6069
6070 /* Accessor methods to globals.
6071    These are made visible to non-reentrant scanners for convenience. */
6072
6073 int yylex_destroy ( void );
6074
6075 int yyget_debug ( void );
6076
6077 void yyset_debug ( int debug_flag  );
6078
6079 YY_EXTRA_TYPE yyget_extra ( void );
6080
6081 void yyset_extra ( YY_EXTRA_TYPE user_defined  );
6082
6083 FILE *yyget_in ( void );
6084
6085 void yyset_in  ( FILE * _in_str  );
6086
6087 FILE *yyget_out ( void );
6088
6089 void yyset_out  ( FILE * _out_str  );
6090
6091                         int yyget_leng ( void );
6092
6093 char *yyget_text ( void );
6094
6095 int yyget_lineno ( void );
6096
6097 void yyset_lineno ( int _line_number  );
6098
6099 /* Macros after this point can all be overridden by user definitions in
6100  * section 1.
6101  */
6102
6103 #ifndef YY_SKIP_YYWRAP
6104 #ifdef __cplusplus
6105 extern "C" int yywrap ( void );
6106 #else
6107 extern int yywrap ( void );
6108 #endif
6109 #endif
6110
6111 #ifndef YY_NO_UNPUT
6112     
6113 #endif
6114
6115 #ifndef yytext_ptr
6116 static void yy_flex_strncpy ( char *, const char *, int );
6117 #endif
6118
6119 #ifdef YY_NEED_STRLEN
6120 static int yy_flex_strlen ( const char * );
6121 #endif
6122
6123 #ifndef YY_NO_INPUT
6124 #ifdef __cplusplus
6125 static int yyinput ( void );
6126 #else
6127 static int input ( void );
6128 #endif
6129
6130 #endif
6131
6132         static int yy_start_stack_ptr = 0;
6133         static int yy_start_stack_depth = 0;
6134         static int *yy_start_stack = NULL;
6135     
6136     static void yy_push_state ( int _new_state );
6137     
6138     static void yy_pop_state ( void );
6139     
6140 /* Amount of stuff to slurp up with each read. */
6141 #ifndef YY_READ_BUF_SIZE
6142 #ifdef __ia64__
6143 /* On IA-64, the buffer size is 16k, not 8k */
6144 #define YY_READ_BUF_SIZE 16384
6145 #else
6146 #define YY_READ_BUF_SIZE 8192
6147 #endif /* __ia64__ */
6148 #endif
6149
6150 /* Copy whatever the last rule matched to the standard output. */
6151 #ifndef ECHO
6152 /* This used to be an fputs(), but since the string might contain NUL's,
6153  * we now use fwrite().
6154  */
6155 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
6156 #endif
6157
6158 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
6159  * is returned in "result".
6160  */
6161 #ifndef YY_INPUT
6162 #define YY_INPUT(buf,result,max_size) \
6163         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
6164                 { \
6165                 int c = '*'; \
6166                 size_t n; \
6167                 for ( n = 0; n < ( size_t ) max_size && \
6168                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
6169                         buf[n] = (char) c; \
6170                 if ( c == '\n' ) \
6171                         buf[n++] = (char) c; \
6172                 if ( c == EOF && ferror( yyin ) ) \
6173                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
6174                 result = n; \
6175                 } \
6176         else \
6177                 { \
6178                 errno=0; \
6179                 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
6180                         { \
6181                         if( errno != EINTR) \
6182                                 { \
6183                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
6184                                 break; \
6185                                 } \
6186                         errno=0; \
6187                         clearerr(yyin); \
6188                         } \
6189                 }\
6190 \
6191
6192 #endif
6193
6194 /* No semi-colon after return; correct usage is to write "yyterminate();" -
6195  * we don't want an extra ';' after the "return" because that will cause
6196  * some compilers to complain about unreachable statements.
6197  */
6198 #ifndef yyterminate
6199 #define yyterminate() return YY_NULL
6200 #endif
6201
6202 /* Number of entries by which start-condition stack grows. */
6203 #ifndef YY_START_STACK_INCR
6204 #define YY_START_STACK_INCR 25
6205 #endif
6206
6207 /* Report a fatal error. */
6208 #ifndef YY_FATAL_ERROR
6209 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
6210 #endif
6211
6212 /* end tables serialization structures and prototypes */
6213
6214 /* Default declaration of generated scanner - a define so the user can
6215  * easily add parameters.
6216  */
6217 #ifndef YY_DECL
6218 #define YY_DECL_IS_OURS 1
6219
6220 extern int yylex (void);
6221
6222 #define YY_DECL int yylex (void)
6223 #endif /* !YY_DECL */
6224
6225 /* Code executed at the beginning of each rule, after yytext and yyleng
6226  * have been set up.
6227  */
6228 #ifndef YY_USER_ACTION
6229 #define YY_USER_ACTION
6230 #endif
6231
6232 /* Code executed at the end of each rule. */
6233 #ifndef YY_BREAK
6234 #define YY_BREAK /*LINTED*/break;
6235 #endif
6236
6237 #define YY_RULE_SETUP \
6238         YY_USER_ACTION
6239
6240 /** The main scanner function which does all the work.
6241  */
6242 YY_DECL
6243 {
6244         yy_state_type yy_current_state;
6245         char *yy_cp, *yy_bp;
6246         int yy_act;
6247     
6248         if ( !(yy_init) )
6249                 {
6250                 (yy_init) = 1;
6251
6252 #ifdef YY_USER_INIT
6253                 YY_USER_INIT;
6254 #endif
6255
6256                 if ( ! (yy_start) )
6257                         (yy_start) = 1; /* first start state */
6258
6259                 if ( ! yyin )
6260                         yyin = stdin;
6261
6262                 if ( ! yyout )
6263                         yyout = stdout;
6264
6265                 if ( ! YY_CURRENT_BUFFER ) {
6266                         yyensure_buffer_stack ();
6267                         YY_CURRENT_BUFFER_LVALUE =
6268                                 yy_create_buffer( yyin, YY_BUF_SIZE );
6269                 }
6270
6271                 yy_load_buffer_state(  );
6272                 }
6273
6274         {
6275
6276  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
6277  SET(PROLOG);
6278  reset_surfxml_parse_err_msg();
6279  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
6280  assert(surfxml_bufferstack);
6281  #ifdef FLEX_DEBUG
6282  {
6283      int i;
6284      for (i = 0; i < blimit; i++) {
6285          surfxml_bufferstack[i] = '\377';
6286      }
6287  }
6288  #endif
6289  surfxml_bufferstack[0] = '\0';
6290  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
6291  assert(indexstack);
6292  indexstack[0] = 0;
6293
6294   /* FleXML_init */
6295   bnext = inext = 1;
6296   surfxml_bufferliteral('\0', &bnext, "0.0");
6297   surfxml_bufferliteral('\0', &bnext, "2147483647");
6298   surfxml_bufferliteral('\0', &bnext, "N11");
6299   surfxml_bufferliteral('\0', &bnext, "1");
6300   surfxml_bufferliteral('\0', &bnext, "0.0");
6301   surfxml_bufferliteral('\0', &bnext, "1");
6302   surfxml_bufferliteral('\0', &bnext, "0s");
6303   surfxml_bufferliteral('\0', &bnext, "-1.0");
6304   surfxml_bufferliteral('\0', &bnext, "-1.0");
6305   surfxml_bufferliteral('\0', &bnext, "-1.0");
6306   surfxml_bufferliteral('\0', &bnext, "-1.0");
6307   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
6308   surfxml_statenames[PROLOG] = NULL;
6309   surfxml_statenames[DOCTYPE] = NULL;
6310   surfxml_statenames[EPILOG] = NULL;
6311   surfxml_statenames[INCOMMENT] = NULL;
6312   surfxml_statenames[INPI] = NULL;
6313   surfxml_statenames[VALUE1] = NULL;
6314   surfxml_statenames[VALUE2] = NULL;
6315   surfxml_statenames[CDATA] = NULL;
6316   surfxml_statenames[AL_surfxml_AS] = NULL;
6317   surfxml_statenames[S_surfxml_AS] = "AS";
6318   surfxml_statenames[S_surfxml_AS_1] = "AS";
6319   surfxml_statenames[S_surfxml_AS_2] = "AS";
6320   surfxml_statenames[S_surfxml_AS_3] = "AS";
6321   surfxml_statenames[S_surfxml_AS_4] = "AS";
6322   surfxml_statenames[S_surfxml_AS_5] = "AS";
6323   surfxml_statenames[S_surfxml_AS_6] = "AS";
6324   surfxml_statenames[S_surfxml_AS_7] = "AS";
6325   surfxml_statenames[S_surfxml_AS_8] = "AS";
6326   surfxml_statenames[E_surfxml_AS] = "AS";
6327   surfxml_statenames[AL_surfxml_ASroute] = NULL;
6328   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
6329   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
6330   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
6331   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
6332   surfxml_statenames[AL_surfxml_actor] = NULL;
6333   surfxml_statenames[S_surfxml_actor] = "actor";
6334   surfxml_statenames[S_surfxml_actor_1] = "actor";
6335   surfxml_statenames[S_surfxml_actor_2] = "actor";
6336   surfxml_statenames[E_surfxml_actor] = "actor";
6337   surfxml_statenames[AL_surfxml_argument] = NULL;
6338   surfxml_statenames[E_surfxml_argument] = "argument";
6339   surfxml_statenames[AL_surfxml_backbone] = NULL;
6340   surfxml_statenames[E_surfxml_backbone] = "backbone";
6341   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
6342   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
6343   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
6344   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
6345   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
6346   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
6347   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
6348   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
6349   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
6350   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
6351   surfxml_statenames[AL_surfxml_bypassZoneRoute] = NULL;
6352   surfxml_statenames[S_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6353   surfxml_statenames[S_surfxml_bypassZoneRoute_1] = "bypassZoneRoute";
6354   surfxml_statenames[S_surfxml_bypassZoneRoute_2] = "bypassZoneRoute";
6355   surfxml_statenames[E_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6356   surfxml_statenames[AL_surfxml_cabinet] = NULL;
6357   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
6358   surfxml_statenames[AL_surfxml_cluster] = NULL;
6359   surfxml_statenames[S_surfxml_cluster] = "cluster";
6360   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
6361   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
6362   surfxml_statenames[E_surfxml_cluster] = "cluster";
6363   surfxml_statenames[AL_surfxml_config] = NULL;
6364   surfxml_statenames[S_surfxml_config] = "config";
6365   surfxml_statenames[S_surfxml_config_1] = "config";
6366   surfxml_statenames[S_surfxml_config_2] = "config";
6367   surfxml_statenames[E_surfxml_config] = "config";
6368   surfxml_statenames[AL_surfxml_host] = NULL;
6369   surfxml_statenames[S_surfxml_host] = "host";
6370   surfxml_statenames[S_surfxml_host_1] = "host";
6371   surfxml_statenames[S_surfxml_host_2] = "host";
6372   surfxml_statenames[E_surfxml_host] = "host";
6373   surfxml_statenames[AL_surfxml_host___link] = NULL;
6374   surfxml_statenames[E_surfxml_host___link] = "host_link";
6375   surfxml_statenames[AL_surfxml_include] = NULL;
6376   surfxml_statenames[S_surfxml_include] = "include";
6377   surfxml_statenames[S_surfxml_include_1] = "include";
6378   surfxml_statenames[S_surfxml_include_2] = "include";
6379   surfxml_statenames[E_surfxml_include] = "include";
6380   surfxml_statenames[AL_surfxml_link] = NULL;
6381   surfxml_statenames[S_surfxml_link] = "link";
6382   surfxml_statenames[S_surfxml_link_1] = "link";
6383   surfxml_statenames[S_surfxml_link_2] = "link";
6384   surfxml_statenames[E_surfxml_link] = "link";
6385   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
6386   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
6387   surfxml_statenames[AL_surfxml_model___prop] = NULL;
6388   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
6389   surfxml_statenames[AL_surfxml_mount] = NULL;
6390   surfxml_statenames[E_surfxml_mount] = "mount";
6391   surfxml_statenames[AL_surfxml_peer] = NULL;
6392   surfxml_statenames[E_surfxml_peer] = "peer";
6393   surfxml_statenames[ROOT_surfxml_platform] = NULL;
6394   surfxml_statenames[AL_surfxml_platform] = NULL;
6395   surfxml_statenames[S_surfxml_platform] = "platform";
6396   surfxml_statenames[S_surfxml_platform_1] = "platform";
6397   surfxml_statenames[S_surfxml_platform_2] = "platform";
6398   surfxml_statenames[S_surfxml_platform_3] = "platform";
6399   surfxml_statenames[S_surfxml_platform_4] = "platform";
6400   surfxml_statenames[S_surfxml_platform_5] = "platform";
6401   surfxml_statenames[S_surfxml_platform_6] = "platform";
6402   surfxml_statenames[S_surfxml_platform_7] = "platform";
6403   surfxml_statenames[S_surfxml_platform_8] = "platform";
6404   surfxml_statenames[E_surfxml_platform] = "platform";
6405   surfxml_statenames[AL_surfxml_process] = NULL;
6406   surfxml_statenames[S_surfxml_process] = "process";
6407   surfxml_statenames[S_surfxml_process_1] = "process";
6408   surfxml_statenames[S_surfxml_process_2] = "process";
6409   surfxml_statenames[E_surfxml_process] = "process";
6410   surfxml_statenames[AL_surfxml_prop] = NULL;
6411   surfxml_statenames[E_surfxml_prop] = "prop";
6412   surfxml_statenames[AL_surfxml_random] = NULL;
6413   surfxml_statenames[E_surfxml_random] = "random";
6414   surfxml_statenames[AL_surfxml_route] = NULL;
6415   surfxml_statenames[S_surfxml_route] = "route";
6416   surfxml_statenames[S_surfxml_route_1] = "route";
6417   surfxml_statenames[S_surfxml_route_2] = "route";
6418   surfxml_statenames[E_surfxml_route] = "route";
6419   surfxml_statenames[AL_surfxml_router] = NULL;
6420   surfxml_statenames[E_surfxml_router] = "router";
6421   surfxml_statenames[AL_surfxml_storage] = NULL;
6422   surfxml_statenames[S_surfxml_storage] = "storage";
6423   surfxml_statenames[S_surfxml_storage_1] = "storage";
6424   surfxml_statenames[S_surfxml_storage_2] = "storage";
6425   surfxml_statenames[E_surfxml_storage] = "storage";
6426   surfxml_statenames[AL_surfxml_storage___type] = NULL;
6427   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
6428   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
6429   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
6430   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
6431   surfxml_statenames[AL_surfxml_trace] = NULL;
6432   surfxml_statenames[IN_trace] = "trace";
6433   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
6434   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
6435   surfxml_statenames[AL_surfxml_zone] = NULL;
6436   surfxml_statenames[S_surfxml_zone] = "zone";
6437   surfxml_statenames[S_surfxml_zone_1] = "zone";
6438   surfxml_statenames[S_surfxml_zone_2] = "zone";
6439   surfxml_statenames[S_surfxml_zone_3] = "zone";
6440   surfxml_statenames[S_surfxml_zone_4] = "zone";
6441   surfxml_statenames[S_surfxml_zone_5] = "zone";
6442   surfxml_statenames[S_surfxml_zone_6] = "zone";
6443   surfxml_statenames[S_surfxml_zone_7] = "zone";
6444   surfxml_statenames[S_surfxml_zone_8] = "zone";
6445   surfxml_statenames[S_surfxml_zone_9] = "zone";
6446   surfxml_statenames[S_surfxml_zone_10] = "zone";
6447   surfxml_statenames[S_surfxml_zone_11] = "zone";
6448   surfxml_statenames[S_surfxml_zone_12] = "zone";
6449   surfxml_statenames[S_surfxml_zone_13] = "zone";
6450   surfxml_statenames[S_surfxml_zone_14] = "zone";
6451   surfxml_statenames[S_surfxml_zone_15] = "zone";
6452   surfxml_statenames[S_surfxml_zone_16] = "zone";
6453   surfxml_statenames[E_surfxml_zone] = "zone";
6454   surfxml_statenames[AL_surfxml_zoneRoute] = NULL;
6455   surfxml_statenames[S_surfxml_zoneRoute] = "zoneRoute";
6456   surfxml_statenames[S_surfxml_zoneRoute_1] = "zoneRoute";
6457   surfxml_statenames[S_surfxml_zoneRoute_2] = "zoneRoute";
6458   surfxml_statenames[E_surfxml_zoneRoute] = "zoneRoute";
6459   }
6460
6461  /* COMMENTS and PIs: handled uniformly for efficiency. */
6462
6463         while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
6464                 {
6465                 yy_cp = (yy_c_buf_p);
6466
6467                 /* Support of yytext. */
6468                 *yy_cp = (yy_hold_char);
6469
6470                 /* yy_bp points to the position in yy_ch_buf of the start of
6471                  * the current run.
6472                  */
6473                 yy_bp = yy_cp;
6474
6475                 yy_current_state = (yy_start);
6476 yy_match:
6477                 do
6478                         {
6479                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
6480                         if ( yy_accept[yy_current_state] )
6481                                 {
6482                                 (yy_last_accepting_state) = yy_current_state;
6483                                 (yy_last_accepting_cpos) = yy_cp;
6484                                 }
6485                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6486                                 {
6487                                 yy_current_state = (int) yy_def[yy_current_state];
6488                                 if ( yy_current_state >= 4018 )
6489                                         yy_c = yy_meta[yy_c];
6490                                 }
6491                         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6492                         ++yy_cp;
6493                         }
6494                 while ( yy_base[yy_current_state] != 13930 );
6495
6496 yy_find_action:
6497                 yy_act = yy_accept[yy_current_state];
6498                 if ( yy_act == 0 )
6499                         { /* have to back up */
6500                         yy_cp = (yy_last_accepting_cpos);
6501                         yy_current_state = (yy_last_accepting_state);
6502                         yy_act = yy_accept[yy_current_state];
6503                         }
6504
6505                 YY_DO_BEFORE_ACTION;
6506
6507                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
6508                         {
6509                         int yyl;
6510                         for ( yyl = 0; yyl < yyleng; ++yyl )
6511                                 if ( yytext[yyl] == '\n' )
6512                                         
6513     yylineno++;
6514 ;
6515                         }
6516
6517 do_action:      /* This label is used only to access EOF actions. */
6518
6519                 switch ( yy_act )
6520         { /* beginning of action switch */
6521                         case 0: /* must back up */
6522                         /* undo the effects of YY_DO_BEFORE_ACTION */
6523                         *yy_cp = (yy_hold_char);
6524                         yy_cp = (yy_last_accepting_cpos);
6525                         yy_current_state = (yy_last_accepting_state);
6526                         goto yy_find_action;
6527
6528 case 1:
6529 YY_RULE_SETUP
6530 ENTER(INCOMMENT);
6531         YY_BREAK
6532 case 2:
6533 YY_RULE_SETUP
6534 ENTER(INPI);
6535         YY_BREAK
6536
6537 case 3:
6538 YY_RULE_SETUP
6539 LEAVE;
6540         YY_BREAK
6541 case 4:
6542 case 5:
6543 case 6:
6544 /* rule 6 can match eol */
6545 YY_RULE_SETUP
6546 SKIP;
6547         YY_BREAK
6548 case YY_STATE_EOF(INCOMMENT):
6549 FAIL("EOF in comment.");
6550         YY_BREAK
6551
6552 case 7:
6553 YY_RULE_SETUP
6554 LEAVE;
6555         YY_BREAK
6556 case 8:
6557 case 9:
6558 /* rule 9 can match eol */
6559 YY_RULE_SETUP
6560 SKIP;
6561         YY_BREAK
6562 case YY_STATE_EOF(INPI):
6563 FAIL("EOF in PI (processing instruction).");
6564         YY_BREAK
6565
6566 /* SPACES: skipped uniformly */
6567 case 10:
6568 /* rule 10 can match eol */
6569 YY_RULE_SETUP
6570 SKIP;
6571         YY_BREAK
6572 /* PROLOG: determine root element and process it. */
6573
6574 case 11:
6575 /* rule 11 can match eol */
6576 YY_RULE_SETUP
6577 SET(DOCTYPE); 
6578         YY_BREAK
6579 case 12:
6580 /* rule 12 can match eol */
6581 YY_RULE_SETUP
6582 FAIL("Bad declaration %s.\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl",yytext);
6583         YY_BREAK
6584
6585 case 13:
6586 /* rule 13 can match eol */
6587 YY_RULE_SETUP
6588 SET(ROOT_surfxml_platform);
6589         YY_BREAK
6590 case 14:
6591 /* rule 14 can match eol */
6592 YY_RULE_SETUP
6593 FAIL("Bad declaration %s.\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl",yytext);
6594         YY_BREAK
6595 case 15:
6596 YY_RULE_SETUP
6597 FAIL("Unexpected character `%c' in prolog.", yytext[0]);
6598         YY_BREAK
6599 case YY_STATE_EOF(PROLOG):
6600 case YY_STATE_EOF(DOCTYPE):
6601 FAIL("EOF in prolog.");
6602         YY_BREAK
6603
6604 /* RULES DERIVED FROM DTD. */
6605 case 16:
6606 /* rule 16 can match eol */
6607 YY_RULE_SETUP
6608 FAIL("Starting tag <AS> is not allowed here.");
6609         YY_BREAK
6610 case 17:
6611 /* rule 17 can match eol */
6612 YY_RULE_SETUP
6613 {
6614   AX_surfxml_AS_id = 0;
6615   surfxml_AS_id_isset = 0;
6616   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6617   surfxml_AS_routing_isset = 0;
6618   ENTER(AL_surfxml_AS); pushbuffer(0);
6619   }
6620         YY_BREAK
6621
6622 case 18:
6623 /* rule 18 can match eol */
6624 YY_RULE_SETUP
6625 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);
6626         YY_BREAK
6627 case 19:
6628 /* rule 19 can match eol */
6629 YY_RULE_SETUP
6630 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);
6631         YY_BREAK
6632 case 20:
6633 /* rule 20 can match eol */
6634 case 21:
6635 /* rule 21 can match eol */
6636 YY_RULE_SETUP
6637 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6638         YY_BREAK
6639 case 22:
6640 /* rule 22 can match eol */
6641 case 23:
6642 /* rule 23 can match eol */
6643 YY_RULE_SETUP
6644 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6645         YY_BREAK
6646 case 24:
6647 /* rule 24 can match eol */
6648 case 25:
6649 /* rule 25 can match eol */
6650 YY_RULE_SETUP
6651 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6652         YY_BREAK
6653 case 26:
6654 /* rule 26 can match eol */
6655 case 27:
6656 /* rule 27 can match eol */
6657 YY_RULE_SETUP
6658 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6659         YY_BREAK
6660 case 28:
6661 /* rule 28 can match eol */
6662 case 29:
6663 /* rule 29 can match eol */
6664 YY_RULE_SETUP
6665 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6666         YY_BREAK
6667 case 30:
6668 /* rule 30 can match eol */
6669 case 31:
6670 /* rule 31 can match eol */
6671 YY_RULE_SETUP
6672 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6673         YY_BREAK
6674 case 32:
6675 /* rule 32 can match eol */
6676 case 33:
6677 /* rule 33 can match eol */
6678 YY_RULE_SETUP
6679 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6680         YY_BREAK
6681 case 34:
6682 /* rule 34 can match eol */
6683 case 35:
6684 /* rule 35 can match eol */
6685 YY_RULE_SETUP
6686 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterTorus;
6687         YY_BREAK
6688 case 36:
6689 /* rule 36 can match eol */
6690 case 37:
6691 /* rule 37 can match eol */
6692 YY_RULE_SETUP
6693 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterFatTree;
6694         YY_BREAK
6695 case 38:
6696 /* rule 38 can match eol */
6697 case 39:
6698 /* rule 39 can match eol */
6699 YY_RULE_SETUP
6700 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterDragonfly;
6701         YY_BREAK
6702 case 40:
6703 YY_RULE_SETUP
6704 {
6705   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6706   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6707   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6708  }
6709         YY_BREAK
6710 case 41:
6711 YY_RULE_SETUP
6712 {
6713   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6714   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6715   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6716   switch (YY_START) {
6717    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;
6718    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6719    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;
6720    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
6721   }
6722  }
6723         YY_BREAK
6724 case 42:
6725 YY_RULE_SETUP
6726 FAIL("Unexpected character `%c' in attribute list of AS element.", yytext[0]);
6727         YY_BREAK
6728 case 43:
6729 YY_RULE_SETUP
6730 FAIL("Bad attribute `%s' in `AS' element start tag.",yytext);
6731         YY_BREAK
6732 case YY_STATE_EOF(AL_surfxml_AS):
6733 FAIL("EOF in attribute list of `AS' element.");
6734         YY_BREAK
6735
6736 case 44:
6737 /* rule 44 can match eol */
6738 YY_RULE_SETUP
6739 {
6740   LEAVE;
6741   ETag_surfxml_AS();
6742   popbuffer(); /* attribute */
6743   switch (YY_START) {
6744    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;
6745    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6746    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;
6747    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
6748   }
6749  }
6750         YY_BREAK
6751 case 45:
6752 /* rule 45 can match eol */
6753 YY_RULE_SETUP
6754 FAIL("Unexpected end-tag `%s': `</AS>' expected.",yytext);
6755         YY_BREAK
6756 case 46:
6757 YY_RULE_SETUP
6758 FAIL("Unexpected character `%c': `</AS>' expected.",yytext[0]);
6759         YY_BREAK
6760 case YY_STATE_EOF(E_surfxml_AS):
6761 case YY_STATE_EOF(S_surfxml_AS):
6762 case YY_STATE_EOF(S_surfxml_AS_1):
6763 case YY_STATE_EOF(S_surfxml_AS_3):
6764 case YY_STATE_EOF(S_surfxml_AS_4):
6765 case YY_STATE_EOF(S_surfxml_AS_6):
6766 case YY_STATE_EOF(S_surfxml_AS_8):
6767 FAIL("Premature EOF: `</AS>' expected.");
6768         YY_BREAK
6769
6770 case 47:
6771 /* rule 47 can match eol */
6772 YY_RULE_SETUP
6773 FAIL("Starting tag <ASroute> is not allowed here.");
6774         YY_BREAK
6775 case 48:
6776 /* rule 48 can match eol */
6777 YY_RULE_SETUP
6778 {
6779   AX_surfxml_ASroute_dst = 0;
6780   surfxml_ASroute_dst_isset = 0;
6781   AX_surfxml_ASroute_gw___dst = 0;
6782   surfxml_ASroute_gw___dst_isset = 0;
6783   AX_surfxml_ASroute_gw___src = 0;
6784   surfxml_ASroute_gw___src_isset = 0;
6785   AX_surfxml_ASroute_src = 0;
6786   surfxml_ASroute_src_isset = 0;
6787   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6788   surfxml_ASroute_symmetrical_isset = 0;
6789   ENTER(AL_surfxml_ASroute); pushbuffer(0);
6790   }
6791         YY_BREAK
6792
6793 case 49:
6794 /* rule 49 can match eol */
6795 YY_RULE_SETUP
6796 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);
6797         YY_BREAK
6798 case 50:
6799 /* rule 50 can match eol */
6800 YY_RULE_SETUP
6801 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);
6802         YY_BREAK
6803 case 51:
6804 /* rule 51 can match eol */
6805 YY_RULE_SETUP
6806 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);
6807         YY_BREAK
6808 case 52:
6809 /* rule 52 can match eol */
6810 YY_RULE_SETUP
6811 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);
6812         YY_BREAK
6813 case 53:
6814 /* rule 53 can match eol */
6815 YY_RULE_SETUP
6816 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);
6817         YY_BREAK
6818 case 54:
6819 /* rule 54 can match eol */
6820 YY_RULE_SETUP
6821 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);
6822         YY_BREAK
6823 case 55:
6824 /* rule 55 can match eol */
6825 YY_RULE_SETUP
6826 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);
6827         YY_BREAK
6828 case 56:
6829 /* rule 56 can match eol */
6830 YY_RULE_SETUP
6831 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);
6832         YY_BREAK
6833 case 57:
6834 /* rule 57 can match eol */
6835 case 58:
6836 /* rule 58 can match eol */
6837 YY_RULE_SETUP
6838 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6839         YY_BREAK
6840 case 59:
6841 /* rule 59 can match eol */
6842 case 60:
6843 /* rule 60 can match eol */
6844 YY_RULE_SETUP
6845 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
6846         YY_BREAK
6847 case 61:
6848 /* rule 61 can match eol */
6849 case 62:
6850 /* rule 62 can match eol */
6851 YY_RULE_SETUP
6852 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_yes;
6853         YY_BREAK
6854 case 63:
6855 /* rule 63 can match eol */
6856 case 64:
6857 /* rule 64 can match eol */
6858 YY_RULE_SETUP
6859 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_no;
6860         YY_BREAK
6861 case 65:
6862 YY_RULE_SETUP
6863 {
6864   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6865   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6866   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6867   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6868   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
6869  }
6870         YY_BREAK
6871 case 66:
6872 YY_RULE_SETUP
6873 {
6874   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6875   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6876   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6877   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6878   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
6879   switch (YY_START) {
6880    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6881    case S_surfxml_AS: 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;
6882    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
6883   }
6884  }
6885         YY_BREAK
6886 case 67:
6887 YY_RULE_SETUP
6888 FAIL("Unexpected character `%c' in attribute list of ASroute element.", yytext[0]);
6889         YY_BREAK
6890 case 68:
6891 YY_RULE_SETUP
6892 FAIL("Bad attribute `%s' in `ASroute' element start tag.",yytext);
6893         YY_BREAK
6894 case YY_STATE_EOF(AL_surfxml_ASroute):
6895 FAIL("EOF in attribute list of `ASroute' element.");
6896         YY_BREAK
6897
6898 case 69:
6899 /* rule 69 can match eol */
6900 YY_RULE_SETUP
6901 {
6902   LEAVE;
6903   ETag_surfxml_ASroute();
6904   popbuffer(); /* attribute */
6905   switch (YY_START) {
6906    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6907    case S_surfxml_AS: 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;
6908    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
6909   }
6910  }
6911         YY_BREAK
6912 case 70:
6913 /* rule 70 can match eol */
6914 YY_RULE_SETUP
6915 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",yytext);
6916         YY_BREAK
6917 case 71:
6918 YY_RULE_SETUP
6919 FAIL("Unexpected character `%c': `</ASroute>' expected.",yytext[0]);
6920         YY_BREAK
6921 case YY_STATE_EOF(E_surfxml_ASroute):
6922 case YY_STATE_EOF(S_surfxml_ASroute):
6923 case YY_STATE_EOF(S_surfxml_ASroute_2):
6924 FAIL("Premature EOF: `</ASroute>' expected.");
6925         YY_BREAK
6926
6927 case 72:
6928 /* rule 72 can match eol */
6929 YY_RULE_SETUP
6930 FAIL("Starting tag <actor> is not allowed here.");
6931         YY_BREAK
6932 case 73:
6933 /* rule 73 can match eol */
6934 YY_RULE_SETUP
6935 {
6936   AX_surfxml_actor_function = 0;
6937   surfxml_actor_function_isset = 0;
6938   AX_surfxml_actor_host = 0;
6939   surfxml_actor_host_isset = 0;
6940   AX_surfxml_actor_kill___time = 46;
6941   surfxml_actor_kill___time_isset = 0;
6942   AX_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
6943   surfxml_actor_on___failure_isset = 0;
6944   AX_surfxml_actor_start___time = 41;
6945   surfxml_actor_start___time_isset = 0;
6946   ENTER(AL_surfxml_actor); pushbuffer(0);
6947   }
6948         YY_BREAK
6949
6950 case 74:
6951 /* rule 74 can match eol */
6952 YY_RULE_SETUP
6953 if (surfxml_actor_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_actor>");} surfxml_actor_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_function);
6954         YY_BREAK
6955 case 75:
6956 /* rule 75 can match eol */
6957 YY_RULE_SETUP
6958 if (surfxml_actor_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_actor>");}  surfxml_actor_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_function);
6959         YY_BREAK
6960 case 76:
6961 /* rule 76 can match eol */
6962 YY_RULE_SETUP
6963 if (surfxml_actor_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_actor>");} surfxml_actor_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_host);
6964         YY_BREAK
6965 case 77:
6966 /* rule 77 can match eol */
6967 YY_RULE_SETUP
6968 if (surfxml_actor_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_actor>");}  surfxml_actor_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_host);
6969         YY_BREAK
6970 case 78:
6971 /* rule 78 can match eol */
6972 YY_RULE_SETUP
6973 if (surfxml_actor_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_actor>");} surfxml_actor_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_kill___time);
6974         YY_BREAK
6975 case 79:
6976 /* rule 79 can match eol */
6977 YY_RULE_SETUP
6978 if (surfxml_actor_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_actor>");}  surfxml_actor_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_kill___time);
6979         YY_BREAK
6980 case 80:
6981 /* rule 80 can match eol */
6982 case 81:
6983 /* rule 81 can match eol */
6984 YY_RULE_SETUP
6985 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
6986         YY_BREAK
6987 case 82:
6988 /* rule 82 can match eol */
6989 case 83:
6990 /* rule 83 can match eol */
6991 YY_RULE_SETUP
6992 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_RESTART;
6993         YY_BREAK
6994 case 84:
6995 /* rule 84 can match eol */
6996 YY_RULE_SETUP
6997 if (surfxml_actor_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_actor>");} surfxml_actor_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_start___time);
6998         YY_BREAK
6999 case 85:
7000 /* rule 85 can match eol */
7001 YY_RULE_SETUP
7002 if (surfxml_actor_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_actor>");}  surfxml_actor_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_start___time);
7003         YY_BREAK
7004 case 86:
7005 YY_RULE_SETUP
7006 {
7007   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
7008   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
7009   LEAVE; STag_surfxml_actor();surfxml_pcdata_ix = 0; ENTER(S_surfxml_actor);
7010  }
7011         YY_BREAK
7012 case 87:
7013 YY_RULE_SETUP
7014 {
7015   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
7016   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
7017   LEAVE; STag_surfxml_actor(); surfxml_pcdata_ix = 0; ETag_surfxml_actor(); popbuffer(); /* attribute */
7018   switch (YY_START) {
7019    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;
7020   }
7021  }
7022         YY_BREAK
7023 case 88:
7024 YY_RULE_SETUP
7025 FAIL("Unexpected character `%c' in attribute list of actor element.", yytext[0]);
7026         YY_BREAK
7027 case 89:
7028 YY_RULE_SETUP
7029 FAIL("Bad attribute `%s' in `actor' element start tag.",yytext);
7030         YY_BREAK
7031 case YY_STATE_EOF(AL_surfxml_actor):
7032 FAIL("EOF in attribute list of `actor' element.");
7033         YY_BREAK
7034
7035 case 90:
7036 /* rule 90 can match eol */
7037 YY_RULE_SETUP
7038 {
7039   LEAVE;
7040   ETag_surfxml_actor();
7041   popbuffer(); /* attribute */
7042   switch (YY_START) {
7043    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;
7044   }
7045  }
7046         YY_BREAK
7047 case 91:
7048 /* rule 91 can match eol */
7049 YY_RULE_SETUP
7050 FAIL("Unexpected end-tag `%s': `</actor>' expected.",yytext);
7051         YY_BREAK
7052 case 92:
7053 YY_RULE_SETUP
7054 FAIL("Unexpected character `%c': `</actor>' expected.",yytext[0]);
7055         YY_BREAK
7056 case YY_STATE_EOF(E_surfxml_actor):
7057 case YY_STATE_EOF(S_surfxml_actor):
7058 case YY_STATE_EOF(S_surfxml_actor_2):
7059 FAIL("Premature EOF: `</actor>' expected.");
7060         YY_BREAK
7061
7062 case 93:
7063 /* rule 93 can match eol */
7064 YY_RULE_SETUP
7065 FAIL("Starting tag <argument> is not allowed here.");
7066         YY_BREAK
7067 case 94:
7068 /* rule 94 can match eol */
7069 YY_RULE_SETUP
7070 {
7071   AX_surfxml_argument_value = 0;
7072   surfxml_argument_value_isset = 0;
7073   ENTER(AL_surfxml_argument); pushbuffer(0);
7074   }
7075         YY_BREAK
7076
7077 case 95:
7078 /* rule 95 can match eol */
7079 YY_RULE_SETUP
7080 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);
7081         YY_BREAK
7082 case 96:
7083 /* rule 96 can match eol */
7084 YY_RULE_SETUP
7085 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);
7086         YY_BREAK
7087 case 97:
7088 YY_RULE_SETUP
7089 {
7090   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7091   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7092  }
7093         YY_BREAK
7094 case 98:
7095 YY_RULE_SETUP
7096 {
7097   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7098   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7099   switch (YY_START) {
7100    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
7101    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7102   }
7103  }
7104         YY_BREAK
7105 case 99:
7106 YY_RULE_SETUP
7107 FAIL("Unexpected character `%c' in attribute list of argument element.", yytext[0]);
7108         YY_BREAK
7109 case 100:
7110 YY_RULE_SETUP
7111 FAIL("Bad attribute `%s' in `argument' element start tag.",yytext);
7112         YY_BREAK
7113 case YY_STATE_EOF(AL_surfxml_argument):
7114 FAIL("EOF in attribute list of `argument' element.");
7115         YY_BREAK
7116
7117 case 101:
7118 /* rule 101 can match eol */
7119 YY_RULE_SETUP
7120 {
7121   LEAVE;
7122   ETag_surfxml_argument();
7123   popbuffer(); /* attribute */
7124   switch (YY_START) {
7125    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
7126    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7127   }
7128  }
7129         YY_BREAK
7130 case 102:
7131 /* rule 102 can match eol */
7132 YY_RULE_SETUP
7133 FAIL("Unexpected end-tag `%s': `</argument>' expected.",yytext);
7134         YY_BREAK
7135 case 103:
7136 YY_RULE_SETUP
7137 FAIL("Unexpected character `%c': `</argument>' expected.",yytext[0]);
7138         YY_BREAK
7139 case YY_STATE_EOF(E_surfxml_argument):
7140 FAIL("Premature EOF: `</argument>' expected.");
7141         YY_BREAK
7142
7143 case 104:
7144 /* rule 104 can match eol */
7145 YY_RULE_SETUP
7146 FAIL("Starting tag <backbone> is not allowed here.");
7147         YY_BREAK
7148 case 105:
7149 /* rule 105 can match eol */
7150 YY_RULE_SETUP
7151 {
7152   AX_surfxml_backbone_bandwidth = 0;
7153   surfxml_backbone_bandwidth_isset = 0;
7154   AX_surfxml_backbone_id = 0;
7155   surfxml_backbone_id_isset = 0;
7156   AX_surfxml_backbone_latency = 0;
7157   surfxml_backbone_latency_isset = 0;
7158   ENTER(AL_surfxml_backbone); pushbuffer(0);
7159   }
7160         YY_BREAK
7161
7162 case 106:
7163 /* rule 106 can match eol */
7164 YY_RULE_SETUP
7165 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);
7166         YY_BREAK
7167 case 107:
7168 /* rule 107 can match eol */
7169 YY_RULE_SETUP
7170 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);
7171         YY_BREAK
7172 case 108:
7173 /* rule 108 can match eol */
7174 YY_RULE_SETUP
7175 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);
7176         YY_BREAK
7177 case 109:
7178 /* rule 109 can match eol */
7179 YY_RULE_SETUP
7180 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);
7181         YY_BREAK
7182 case 110:
7183 /* rule 110 can match eol */
7184 YY_RULE_SETUP
7185 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);
7186         YY_BREAK
7187 case 111:
7188 /* rule 111 can match eol */
7189 YY_RULE_SETUP
7190 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);
7191         YY_BREAK
7192 case 112:
7193 YY_RULE_SETUP
7194 {
7195   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7196   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7197   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7198   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7199  }
7200         YY_BREAK
7201 case 113:
7202 YY_RULE_SETUP
7203 {
7204   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7205   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7206   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7207   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7208   switch (YY_START) {
7209    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;
7210    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
7211    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7212   }
7213  }
7214         YY_BREAK
7215 case 114:
7216 YY_RULE_SETUP
7217 FAIL("Unexpected character `%c' in attribute list of backbone element.", yytext[0]);
7218         YY_BREAK
7219 case 115:
7220 YY_RULE_SETUP
7221 FAIL("Bad attribute `%s' in `backbone' element start tag.",yytext);
7222         YY_BREAK
7223 case YY_STATE_EOF(AL_surfxml_backbone):
7224 FAIL("EOF in attribute list of `backbone' element.");
7225         YY_BREAK
7226
7227 case 116:
7228 /* rule 116 can match eol */
7229 YY_RULE_SETUP
7230 {
7231   LEAVE;
7232   ETag_surfxml_backbone();
7233   popbuffer(); /* attribute */
7234   switch (YY_START) {
7235    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;
7236    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
7237    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7238   }
7239  }
7240         YY_BREAK
7241 case 117:
7242 /* rule 117 can match eol */
7243 YY_RULE_SETUP
7244 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",yytext);
7245         YY_BREAK
7246 case 118:
7247 YY_RULE_SETUP
7248 FAIL("Unexpected character `%c': `</backbone>' expected.",yytext[0]);
7249         YY_BREAK
7250 case YY_STATE_EOF(E_surfxml_backbone):
7251 FAIL("Premature EOF: `</backbone>' expected.");
7252         YY_BREAK
7253
7254 case 119:
7255 /* rule 119 can match eol */
7256 YY_RULE_SETUP
7257 FAIL("Starting tag <bypassASroute> is not allowed here.");
7258         YY_BREAK
7259 case 120:
7260 /* rule 120 can match eol */
7261 YY_RULE_SETUP
7262 {
7263   AX_surfxml_bypassASroute_dst = 0;
7264   surfxml_bypassASroute_dst_isset = 0;
7265   AX_surfxml_bypassASroute_gw___dst = 0;
7266   surfxml_bypassASroute_gw___dst_isset = 0;
7267   AX_surfxml_bypassASroute_gw___src = 0;
7268   surfxml_bypassASroute_gw___src_isset = 0;
7269   AX_surfxml_bypassASroute_src = 0;
7270   surfxml_bypassASroute_src_isset = 0;
7271   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
7272   }
7273         YY_BREAK
7274
7275 case 121:
7276 /* rule 121 can match eol */
7277 YY_RULE_SETUP
7278 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);
7279         YY_BREAK
7280 case 122:
7281 /* rule 122 can match eol */
7282 YY_RULE_SETUP
7283 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);
7284         YY_BREAK
7285 case 123:
7286 /* rule 123 can match eol */
7287 YY_RULE_SETUP
7288 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);
7289         YY_BREAK
7290 case 124:
7291 /* rule 124 can match eol */
7292 YY_RULE_SETUP
7293 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);
7294         YY_BREAK
7295 case 125:
7296 /* rule 125 can match eol */
7297 YY_RULE_SETUP
7298 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);
7299         YY_BREAK
7300 case 126:
7301 /* rule 126 can match eol */
7302 YY_RULE_SETUP
7303 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);
7304         YY_BREAK
7305 case 127:
7306 /* rule 127 can match eol */
7307 YY_RULE_SETUP
7308 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);
7309         YY_BREAK
7310 case 128:
7311 /* rule 128 can match eol */
7312 YY_RULE_SETUP
7313 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);
7314         YY_BREAK
7315 case 129:
7316 YY_RULE_SETUP
7317 {
7318   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7319   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7320   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7321   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7322   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
7323  }
7324         YY_BREAK
7325 case 130:
7326 YY_RULE_SETUP
7327 {
7328   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7329   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7330   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7331   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7332   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
7333   switch (YY_START) {
7334    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;
7335    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7336   }
7337  }
7338         YY_BREAK
7339 case 131:
7340 YY_RULE_SETUP
7341 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", yytext[0]);
7342         YY_BREAK
7343 case 132:
7344 YY_RULE_SETUP
7345 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",yytext);
7346         YY_BREAK
7347 case YY_STATE_EOF(AL_surfxml_bypassASroute):
7348 FAIL("EOF in attribute list of `bypassASroute' element.");
7349         YY_BREAK
7350
7351 case 133:
7352 /* rule 133 can match eol */
7353 YY_RULE_SETUP
7354 {
7355   LEAVE;
7356   ETag_surfxml_bypassASroute();
7357   popbuffer(); /* attribute */
7358   switch (YY_START) {
7359    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;
7360    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
7361   }
7362  }
7363         YY_BREAK
7364 case 134:
7365 /* rule 134 can match eol */
7366 YY_RULE_SETUP
7367 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",yytext);
7368         YY_BREAK
7369 case 135:
7370 YY_RULE_SETUP
7371 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",yytext[0]);
7372         YY_BREAK
7373 case YY_STATE_EOF(E_surfxml_bypassASroute):
7374 case YY_STATE_EOF(S_surfxml_bypassASroute):
7375 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
7376 FAIL("Premature EOF: `</bypassASroute>' expected.");
7377         YY_BREAK
7378
7379 case 136:
7380 /* rule 136 can match eol */
7381 YY_RULE_SETUP
7382 FAIL("Starting tag <bypassRoute> is not allowed here.");
7383         YY_BREAK
7384 case 137:
7385 /* rule 137 can match eol */
7386 YY_RULE_SETUP
7387 {
7388   AX_surfxml_bypassRoute_dst = 0;
7389   surfxml_bypassRoute_dst_isset = 0;
7390   AX_surfxml_bypassRoute_src = 0;
7391   surfxml_bypassRoute_src_isset = 0;
7392   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7393   }
7394         YY_BREAK
7395
7396 case 138:
7397 /* rule 138 can match eol */
7398 YY_RULE_SETUP
7399 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);
7400         YY_BREAK
7401 case 139:
7402 /* rule 139 can match eol */
7403 YY_RULE_SETUP
7404 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);
7405         YY_BREAK
7406 case 140:
7407 /* rule 140 can match eol */
7408 YY_RULE_SETUP
7409 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);
7410         YY_BREAK
7411 case 141:
7412 /* rule 141 can match eol */
7413 YY_RULE_SETUP
7414 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);
7415         YY_BREAK
7416 case 142:
7417 YY_RULE_SETUP
7418 {
7419   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7420   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7421   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7422  }
7423         YY_BREAK
7424 case 143:
7425 YY_RULE_SETUP
7426 {
7427   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7428   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7429   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7430   switch (YY_START) {
7431    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;
7432    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
7433   }
7434  }
7435         YY_BREAK
7436 case 144:
7437 YY_RULE_SETUP
7438 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", yytext[0]);
7439         YY_BREAK
7440 case 145:
7441 YY_RULE_SETUP
7442 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",yytext);
7443         YY_BREAK
7444 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7445 FAIL("EOF in attribute list of `bypassRoute' element.");
7446         YY_BREAK
7447
7448 case 146:
7449 /* rule 146 can match eol */
7450 YY_RULE_SETUP
7451 {
7452   LEAVE;
7453   ETag_surfxml_bypassRoute();
7454   popbuffer(); /* attribute */
7455   switch (YY_START) {
7456    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;
7457    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
7458   }
7459  }
7460         YY_BREAK
7461 case 147:
7462 /* rule 147 can match eol */
7463 YY_RULE_SETUP
7464 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",yytext);
7465         YY_BREAK
7466 case 148:
7467 YY_RULE_SETUP
7468 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",yytext[0]);
7469         YY_BREAK
7470 case YY_STATE_EOF(E_surfxml_bypassRoute):
7471 case YY_STATE_EOF(S_surfxml_bypassRoute):
7472 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7473 FAIL("Premature EOF: `</bypassRoute>' expected.");
7474         YY_BREAK
7475
7476 case 149:
7477 /* rule 149 can match eol */
7478 YY_RULE_SETUP
7479 FAIL("Starting tag <bypassZoneRoute> is not allowed here.");
7480         YY_BREAK
7481 case 150:
7482 /* rule 150 can match eol */
7483 YY_RULE_SETUP
7484 {
7485   AX_surfxml_bypassZoneRoute_dst = 0;
7486   surfxml_bypassZoneRoute_dst_isset = 0;
7487   AX_surfxml_bypassZoneRoute_gw___dst = 0;
7488   surfxml_bypassZoneRoute_gw___dst_isset = 0;
7489   AX_surfxml_bypassZoneRoute_gw___src = 0;
7490   surfxml_bypassZoneRoute_gw___src_isset = 0;
7491   AX_surfxml_bypassZoneRoute_src = 0;
7492   surfxml_bypassZoneRoute_src_isset = 0;
7493   ENTER(AL_surfxml_bypassZoneRoute); pushbuffer(0);
7494   }
7495         YY_BREAK
7496
7497 case 151:
7498 /* rule 151 can match eol */
7499 YY_RULE_SETUP
7500 if (surfxml_bypassZoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_dst);
7501         YY_BREAK
7502 case 152:
7503 /* rule 152 can match eol */
7504 YY_RULE_SETUP
7505 if (surfxml_bypassZoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_dst);
7506         YY_BREAK
7507 case 153:
7508 /* rule 153 can match eol */
7509 YY_RULE_SETUP
7510 if (surfxml_bypassZoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___dst);
7511         YY_BREAK
7512 case 154:
7513 /* rule 154 can match eol */
7514 YY_RULE_SETUP
7515 if (surfxml_bypassZoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___dst);
7516         YY_BREAK
7517 case 155:
7518 /* rule 155 can match eol */
7519 YY_RULE_SETUP
7520 if (surfxml_bypassZoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___src);
7521         YY_BREAK
7522 case 156:
7523 /* rule 156 can match eol */
7524 YY_RULE_SETUP
7525 if (surfxml_bypassZoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___src);
7526         YY_BREAK
7527 case 157:
7528 /* rule 157 can match eol */
7529 YY_RULE_SETUP
7530 if (surfxml_bypassZoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_src);
7531         YY_BREAK
7532 case 158:
7533 /* rule 158 can match eol */
7534 YY_RULE_SETUP
7535 if (surfxml_bypassZoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_src);
7536         YY_BREAK
7537 case 159:
7538 YY_RULE_SETUP
7539 {
7540   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7541   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7542   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7543   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7544   LEAVE; STag_surfxml_bypassZoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassZoneRoute);
7545  }
7546         YY_BREAK
7547 case 160:
7548 YY_RULE_SETUP
7549 {
7550   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7551   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7552   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7553   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7554   LEAVE; STag_surfxml_bypassZoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassZoneRoute(); popbuffer(); /* attribute */
7555   switch (YY_START) {
7556    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;
7557   }
7558  }
7559         YY_BREAK
7560 case 161:
7561 YY_RULE_SETUP
7562 FAIL("Unexpected character `%c' in attribute list of bypassZoneRoute element.", yytext[0]);
7563         YY_BREAK
7564 case 162:
7565 YY_RULE_SETUP
7566 FAIL("Bad attribute `%s' in `bypassZoneRoute' element start tag.",yytext);
7567         YY_BREAK
7568 case YY_STATE_EOF(AL_surfxml_bypassZoneRoute):
7569 FAIL("EOF in attribute list of `bypassZoneRoute' element.");
7570         YY_BREAK
7571
7572 case 163:
7573 /* rule 163 can match eol */
7574 YY_RULE_SETUP
7575 {
7576   LEAVE;
7577   ETag_surfxml_bypassZoneRoute();
7578   popbuffer(); /* attribute */
7579   switch (YY_START) {
7580    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;
7581   }
7582  }
7583         YY_BREAK
7584 case 164:
7585 /* rule 164 can match eol */
7586 YY_RULE_SETUP
7587 FAIL("Unexpected end-tag `%s': `</bypassZoneRoute>' expected.",yytext);
7588         YY_BREAK
7589 case 165:
7590 YY_RULE_SETUP
7591 FAIL("Unexpected character `%c': `</bypassZoneRoute>' expected.",yytext[0]);
7592         YY_BREAK
7593 case YY_STATE_EOF(E_surfxml_bypassZoneRoute):
7594 case YY_STATE_EOF(S_surfxml_bypassZoneRoute):
7595 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_2):
7596 FAIL("Premature EOF: `</bypassZoneRoute>' expected.");
7597         YY_BREAK
7598
7599 case 166:
7600 /* rule 166 can match eol */
7601 YY_RULE_SETUP
7602 FAIL("Starting tag <cabinet> is not allowed here.");
7603         YY_BREAK
7604 case 167:
7605 /* rule 167 can match eol */
7606 YY_RULE_SETUP
7607 {
7608   AX_surfxml_cabinet_bw = 0;
7609   surfxml_cabinet_bw_isset = 0;
7610   AX_surfxml_cabinet_id = 0;
7611   surfxml_cabinet_id_isset = 0;
7612   AX_surfxml_cabinet_lat = 0;
7613   surfxml_cabinet_lat_isset = 0;
7614   AX_surfxml_cabinet_prefix = 0;
7615   surfxml_cabinet_prefix_isset = 0;
7616   AX_surfxml_cabinet_radical = 0;
7617   surfxml_cabinet_radical_isset = 0;
7618   AX_surfxml_cabinet_speed = 0;
7619   surfxml_cabinet_speed_isset = 0;
7620   AX_surfxml_cabinet_suffix = 0;
7621   surfxml_cabinet_suffix_isset = 0;
7622   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7623   }
7624         YY_BREAK
7625
7626 case 168:
7627 /* rule 168 can match eol */
7628 YY_RULE_SETUP
7629 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);
7630         YY_BREAK
7631 case 169:
7632 /* rule 169 can match eol */
7633 YY_RULE_SETUP
7634 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);
7635         YY_BREAK
7636 case 170:
7637 /* rule 170 can match eol */
7638 YY_RULE_SETUP
7639 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);
7640         YY_BREAK
7641 case 171:
7642 /* rule 171 can match eol */
7643 YY_RULE_SETUP
7644 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);
7645         YY_BREAK
7646 case 172:
7647 /* rule 172 can match eol */
7648 YY_RULE_SETUP
7649 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);
7650         YY_BREAK
7651 case 173:
7652 /* rule 173 can match eol */
7653 YY_RULE_SETUP
7654 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);
7655         YY_BREAK
7656 case 174:
7657 /* rule 174 can match eol */
7658 YY_RULE_SETUP
7659 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);
7660         YY_BREAK
7661 case 175:
7662 /* rule 175 can match eol */
7663 YY_RULE_SETUP
7664 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);
7665         YY_BREAK
7666 case 176:
7667 /* rule 176 can match eol */
7668 YY_RULE_SETUP
7669 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);
7670         YY_BREAK
7671 case 177:
7672 /* rule 177 can match eol */
7673 YY_RULE_SETUP
7674 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);
7675         YY_BREAK
7676 case 178:
7677 /* rule 178 can match eol */
7678 YY_RULE_SETUP
7679 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);
7680         YY_BREAK
7681 case 179:
7682 /* rule 179 can match eol */
7683 YY_RULE_SETUP
7684 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);
7685         YY_BREAK
7686 case 180:
7687 /* rule 180 can match eol */
7688 YY_RULE_SETUP
7689 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);
7690         YY_BREAK
7691 case 181:
7692 /* rule 181 can match eol */
7693 YY_RULE_SETUP
7694 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);
7695         YY_BREAK
7696 case 182:
7697 YY_RULE_SETUP
7698 {
7699   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7700   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7701   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7702   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7703   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7704   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7705   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7706   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7707  }
7708         YY_BREAK
7709 case 183:
7710 YY_RULE_SETUP
7711 {
7712   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7713   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7714   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7715   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7716   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7717   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7718   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7719   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7720   switch (YY_START) {
7721    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;
7722    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7723    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;
7724    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
7725    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7726   }
7727  }
7728         YY_BREAK
7729 case 184:
7730 YY_RULE_SETUP
7731 FAIL("Unexpected character `%c' in attribute list of cabinet element.", yytext[0]);
7732         YY_BREAK
7733 case 185:
7734 YY_RULE_SETUP
7735 FAIL("Bad attribute `%s' in `cabinet' element start tag.",yytext);
7736         YY_BREAK
7737 case YY_STATE_EOF(AL_surfxml_cabinet):
7738 FAIL("EOF in attribute list of `cabinet' element.");
7739         YY_BREAK
7740
7741 case 186:
7742 /* rule 186 can match eol */
7743 YY_RULE_SETUP
7744 {
7745   LEAVE;
7746   ETag_surfxml_cabinet();
7747   popbuffer(); /* attribute */
7748   switch (YY_START) {
7749    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;
7750    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7751    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;
7752    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
7753    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7754   }
7755  }
7756         YY_BREAK
7757 case 187:
7758 /* rule 187 can match eol */
7759 YY_RULE_SETUP
7760 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",yytext);
7761         YY_BREAK
7762 case 188:
7763 YY_RULE_SETUP
7764 FAIL("Unexpected character `%c': `</cabinet>' expected.",yytext[0]);
7765         YY_BREAK
7766 case YY_STATE_EOF(E_surfxml_cabinet):
7767 FAIL("Premature EOF: `</cabinet>' expected.");
7768         YY_BREAK
7769
7770 case 189:
7771 /* rule 189 can match eol */
7772 YY_RULE_SETUP
7773 FAIL("Starting tag <cluster> is not allowed here.");
7774         YY_BREAK
7775 case 190:
7776 /* rule 190 can match eol */
7777 YY_RULE_SETUP
7778 {
7779   AX_surfxml_cluster_bb___bw = 0;
7780   surfxml_cluster_bb___bw_isset = 0;
7781   AX_surfxml_cluster_bb___lat = 28;
7782   surfxml_cluster_bb___lat_isset = 0;
7783   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7784   surfxml_cluster_bb___sharing___policy_isset = 0;
7785   AX_surfxml_cluster_bw = 0;
7786   surfxml_cluster_bw_isset = 0;
7787   AX_surfxml_cluster_core = 26;
7788   surfxml_cluster_core_isset = 0;
7789   AX_surfxml_cluster_id = 0;
7790   surfxml_cluster_id_isset = 0;
7791   AX_surfxml_cluster_lat = 0;
7792   surfxml_cluster_lat_isset = 0;
7793   AX_surfxml_cluster_limiter___link = 0;
7794   surfxml_cluster_limiter___link_isset = 0;
7795   AX_surfxml_cluster_loopback___bw = 0;
7796   surfxml_cluster_loopback___bw_isset = 0;
7797   AX_surfxml_cluster_loopback___lat = 0;
7798   surfxml_cluster_loopback___lat_isset = 0;
7799   AX_surfxml_cluster_prefix = 0;
7800   surfxml_cluster_prefix_isset = 0;
7801   AX_surfxml_cluster_radical = 0;
7802   surfxml_cluster_radical_isset = 0;
7803   AX_surfxml_cluster_router___id = 0;
7804   surfxml_cluster_router___id_isset = 0;
7805   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SPLITDUPLEX;
7806   surfxml_cluster_sharing___policy_isset = 0;
7807   AX_surfxml_cluster_speed = 0;
7808   surfxml_cluster_speed_isset = 0;
7809   AX_surfxml_cluster_suffix = 0;
7810   surfxml_cluster_suffix_isset = 0;
7811   AX_surfxml_cluster_topo___parameters = 0;
7812   surfxml_cluster_topo___parameters_isset = 0;
7813   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7814   surfxml_cluster_topology_isset = 0;
7815   ENTER(AL_surfxml_cluster); pushbuffer(0);
7816   }
7817         YY_BREAK
7818
7819 case 191:
7820 /* rule 191 can match eol */
7821 YY_RULE_SETUP
7822 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);
7823         YY_BREAK
7824 case 192:
7825 /* rule 192 can match eol */
7826 YY_RULE_SETUP
7827 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);
7828         YY_BREAK
7829 case 193:
7830 /* rule 193 can match eol */
7831 YY_RULE_SETUP
7832 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);
7833         YY_BREAK
7834 case 194:
7835 /* rule 194 can match eol */
7836 YY_RULE_SETUP
7837 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);
7838         YY_BREAK
7839 case 195:
7840 /* rule 195 can match eol */
7841 case 196:
7842 /* rule 196 can match eol */
7843 YY_RULE_SETUP
7844 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7845         YY_BREAK
7846 case 197:
7847 /* rule 197 can match eol */
7848 case 198:
7849 /* rule 198 can match eol */
7850 YY_RULE_SETUP
7851 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7852         YY_BREAK
7853 case 199:
7854 /* rule 199 can match eol */
7855 YY_RULE_SETUP
7856 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);
7857         YY_BREAK
7858 case 200:
7859 /* rule 200 can match eol */
7860 YY_RULE_SETUP
7861 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);
7862         YY_BREAK
7863 case 201:
7864 /* rule 201 can match eol */
7865 YY_RULE_SETUP
7866 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);
7867         YY_BREAK
7868 case 202:
7869 /* rule 202 can match eol */
7870 YY_RULE_SETUP
7871 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);
7872         YY_BREAK
7873 case 203:
7874 /* rule 203 can match eol */
7875 YY_RULE_SETUP
7876 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);
7877         YY_BREAK
7878 case 204:
7879 /* rule 204 can match eol */
7880 YY_RULE_SETUP
7881 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);
7882         YY_BREAK
7883 case 205:
7884 /* rule 205 can match eol */
7885 YY_RULE_SETUP
7886 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);
7887         YY_BREAK
7888 case 206:
7889 /* rule 206 can match eol */
7890 YY_RULE_SETUP
7891 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);
7892         YY_BREAK
7893 case 207:
7894 /* rule 207 can match eol */
7895 YY_RULE_SETUP
7896 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);
7897         YY_BREAK
7898 case 208:
7899 /* rule 208 can match eol */
7900 YY_RULE_SETUP
7901 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);
7902         YY_BREAK
7903 case 209:
7904 /* rule 209 can match eol */
7905 YY_RULE_SETUP
7906 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);
7907         YY_BREAK
7908 case 210:
7909 /* rule 210 can match eol */
7910 YY_RULE_SETUP
7911 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);
7912         YY_BREAK
7913 case 211:
7914 /* rule 211 can match eol */
7915 YY_RULE_SETUP
7916 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);
7917         YY_BREAK
7918 case 212:
7919 /* rule 212 can match eol */
7920 YY_RULE_SETUP
7921 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);
7922         YY_BREAK
7923 case 213:
7924 /* rule 213 can match eol */
7925 YY_RULE_SETUP
7926 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);
7927         YY_BREAK
7928 case 214:
7929 /* rule 214 can match eol */
7930 YY_RULE_SETUP
7931 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);
7932         YY_BREAK
7933 case 215:
7934 /* rule 215 can match eol */
7935 YY_RULE_SETUP
7936 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);
7937         YY_BREAK
7938 case 216:
7939 /* rule 216 can match eol */
7940 YY_RULE_SETUP
7941 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);
7942         YY_BREAK
7943 case 217:
7944 /* rule 217 can match eol */
7945 YY_RULE_SETUP
7946 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);
7947         YY_BREAK
7948 case 218:
7949 /* rule 218 can match eol */
7950 YY_RULE_SETUP
7951 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);
7952         YY_BREAK
7953 case 219:
7954 /* rule 219 can match eol */
7955 case 220:
7956 /* rule 220 can match eol */
7957 YY_RULE_SETUP
7958 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7959         YY_BREAK
7960 case 221:
7961 /* rule 221 can match eol */
7962 case 222:
7963 /* rule 222 can match eol */
7964 YY_RULE_SETUP
7965 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SPLITDUPLEX;
7966         YY_BREAK
7967 case 223:
7968 /* rule 223 can match eol */
7969 case 224:
7970 /* rule 224 can match eol */
7971 YY_RULE_SETUP
7972 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7973         YY_BREAK
7974 case 225:
7975 /* rule 225 can match eol */
7976 case 226:
7977 /* rule 226 can match eol */
7978 YY_RULE_SETUP
7979 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7980         YY_BREAK
7981 case 227:
7982 /* rule 227 can match eol */
7983 YY_RULE_SETUP
7984 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);
7985         YY_BREAK
7986 case 228:
7987 /* rule 228 can match eol */
7988 YY_RULE_SETUP
7989 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);
7990         YY_BREAK
7991 case 229:
7992 /* rule 229 can match eol */
7993 YY_RULE_SETUP
7994 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);
7995         YY_BREAK
7996 case 230:
7997 /* rule 230 can match eol */
7998 YY_RULE_SETUP
7999 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);
8000         YY_BREAK
8001 case 231:
8002 /* rule 231 can match eol */
8003 YY_RULE_SETUP
8004 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);
8005         YY_BREAK
8006 case 232:
8007 /* rule 232 can match eol */
8008 YY_RULE_SETUP
8009 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);
8010         YY_BREAK
8011 case 233:
8012 /* rule 233 can match eol */
8013 case 234:
8014 /* rule 234 can match eol */
8015 YY_RULE_SETUP
8016 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
8017         YY_BREAK
8018 case 235:
8019 /* rule 235 can match eol */
8020 case 236:
8021 /* rule 236 can match eol */
8022 YY_RULE_SETUP
8023 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
8024         YY_BREAK
8025 case 237:
8026 /* rule 237 can match eol */
8027 case 238:
8028 /* rule 238 can match eol */
8029 YY_RULE_SETUP
8030 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
8031         YY_BREAK
8032 case 239:
8033 /* rule 239 can match eol */
8034 case 240:
8035 /* rule 240 can match eol */
8036 YY_RULE_SETUP
8037 A_surfxml_cluster_topology = A_surfxml_cluster_topology_DRAGONFLY;
8038         YY_BREAK
8039 case 241:
8040 YY_RULE_SETUP
8041 {
8042   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
8043   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
8044   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
8045   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
8046   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
8047   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
8048   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
8049   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
8050  }
8051         YY_BREAK
8052 case 242:
8053 YY_RULE_SETUP
8054 {
8055   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
8056   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
8057   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
8058   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
8059   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
8060   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
8061   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
8062   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
8063   switch (YY_START) {
8064    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;
8065    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8066    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;
8067    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8068   }
8069  }
8070         YY_BREAK
8071 case 243:
8072 YY_RULE_SETUP
8073 FAIL("Unexpected character `%c' in attribute list of cluster element.", yytext[0]);
8074         YY_BREAK
8075 case 244:
8076 YY_RULE_SETUP
8077 FAIL("Bad attribute `%s' in `cluster' element start tag.",yytext);
8078         YY_BREAK
8079 case YY_STATE_EOF(AL_surfxml_cluster):
8080 FAIL("EOF in attribute list of `cluster' element.");
8081         YY_BREAK
8082
8083 case 245:
8084 /* rule 245 can match eol */
8085 YY_RULE_SETUP
8086 {
8087   LEAVE;
8088   ETag_surfxml_cluster();
8089   popbuffer(); /* attribute */
8090   switch (YY_START) {
8091    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;
8092    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8093    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;
8094    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8095   }
8096  }
8097         YY_BREAK
8098 case 246:
8099 /* rule 246 can match eol */
8100 YY_RULE_SETUP
8101 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",yytext);
8102         YY_BREAK
8103 case 247:
8104 YY_RULE_SETUP
8105 FAIL("Unexpected character `%c': `</cluster>' expected.",yytext[0]);
8106         YY_BREAK
8107 case YY_STATE_EOF(E_surfxml_cluster):
8108 case YY_STATE_EOF(S_surfxml_cluster):
8109 case YY_STATE_EOF(S_surfxml_cluster_2):
8110 FAIL("Premature EOF: `</cluster>' expected.");
8111         YY_BREAK
8112
8113 case 248:
8114 /* rule 248 can match eol */
8115 YY_RULE_SETUP
8116 FAIL("Starting tag <config> is not allowed here.");
8117         YY_BREAK
8118 case 249:
8119 /* rule 249 can match eol */
8120 YY_RULE_SETUP
8121 {
8122   AX_surfxml_config_id = 0;
8123   surfxml_config_id_isset = 0;
8124   ENTER(AL_surfxml_config); pushbuffer(0);
8125   }
8126         YY_BREAK
8127
8128 case 250:
8129 /* rule 250 can match eol */
8130 YY_RULE_SETUP
8131 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);
8132         YY_BREAK
8133 case 251:
8134 /* rule 251 can match eol */
8135 YY_RULE_SETUP
8136 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);
8137         YY_BREAK
8138 case 252:
8139 YY_RULE_SETUP
8140 {
8141   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8142  }
8143         YY_BREAK
8144 case 253:
8145 YY_RULE_SETUP
8146 {
8147   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8148   switch (YY_START) {
8149    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8150   }
8151  }
8152         YY_BREAK
8153 case 254:
8154 YY_RULE_SETUP
8155 FAIL("Unexpected character `%c' in attribute list of config element.", yytext[0]);
8156         YY_BREAK
8157 case 255:
8158 YY_RULE_SETUP
8159 FAIL("Bad attribute `%s' in `config' element start tag.",yytext);
8160         YY_BREAK
8161 case YY_STATE_EOF(AL_surfxml_config):
8162 FAIL("EOF in attribute list of `config' element.");
8163         YY_BREAK
8164
8165 case 256:
8166 /* rule 256 can match eol */
8167 YY_RULE_SETUP
8168 {
8169   LEAVE;
8170   ETag_surfxml_config();
8171   popbuffer(); /* attribute */
8172   switch (YY_START) {
8173    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8174   }
8175  }
8176         YY_BREAK
8177 case 257:
8178 /* rule 257 can match eol */
8179 YY_RULE_SETUP
8180 FAIL("Unexpected end-tag `%s': `</config>' expected.",yytext);
8181         YY_BREAK
8182 case 258:
8183 YY_RULE_SETUP
8184 FAIL("Unexpected character `%c': `</config>' expected.",yytext[0]);
8185         YY_BREAK
8186 case YY_STATE_EOF(E_surfxml_config):
8187 case YY_STATE_EOF(S_surfxml_config):
8188 case YY_STATE_EOF(S_surfxml_config_2):
8189 FAIL("Premature EOF: `</config>' expected.");
8190         YY_BREAK
8191
8192 case 259:
8193 /* rule 259 can match eol */
8194 YY_RULE_SETUP
8195 FAIL("Starting tag <host> is not allowed here.");
8196         YY_BREAK
8197 case 260:
8198 /* rule 260 can match eol */
8199 YY_RULE_SETUP
8200 {
8201   AX_surfxml_host_availability___file = 0;
8202   surfxml_host_availability___file_isset = 0;
8203   AX_surfxml_host_coordinates = 0;
8204   surfxml_host_coordinates_isset = 0;
8205   AX_surfxml_host_core = 20;
8206   surfxml_host_core_isset = 0;
8207   AX_surfxml_host_id = 0;
8208   surfxml_host_id_isset = 0;
8209   AX_surfxml_host_pstate = 22;
8210   surfxml_host_pstate_isset = 0;
8211   AX_surfxml_host_speed = 0;
8212   surfxml_host_speed_isset = 0;
8213   AX_surfxml_host_state___file = 0;
8214   surfxml_host_state___file_isset = 0;
8215   ENTER(AL_surfxml_host); pushbuffer(0);
8216   }
8217         YY_BREAK
8218
8219 case 261:
8220 /* rule 261 can match eol */
8221 YY_RULE_SETUP
8222 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);
8223         YY_BREAK
8224 case 262:
8225 /* rule 262 can match eol */
8226 YY_RULE_SETUP
8227 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);
8228         YY_BREAK
8229 case 263:
8230 /* rule 263 can match eol */
8231 YY_RULE_SETUP
8232 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);
8233         YY_BREAK
8234 case 264:
8235 /* rule 264 can match eol */
8236 YY_RULE_SETUP
8237 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);
8238         YY_BREAK
8239 case 265:
8240 /* rule 265 can match eol */
8241 YY_RULE_SETUP
8242 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);
8243         YY_BREAK
8244 case 266:
8245 /* rule 266 can match eol */
8246 YY_RULE_SETUP
8247 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);
8248         YY_BREAK
8249 case 267:
8250 /* rule 267 can match eol */
8251 YY_RULE_SETUP
8252 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);
8253         YY_BREAK
8254 case 268:
8255 /* rule 268 can match eol */
8256 YY_RULE_SETUP
8257 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);
8258         YY_BREAK
8259 case 269:
8260 /* rule 269 can match eol */
8261 YY_RULE_SETUP
8262 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);
8263         YY_BREAK
8264 case 270:
8265 /* rule 270 can match eol */
8266 YY_RULE_SETUP
8267 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);
8268         YY_BREAK
8269 case 271:
8270 /* rule 271 can match eol */
8271 YY_RULE_SETUP
8272 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);
8273         YY_BREAK
8274 case 272:
8275 /* rule 272 can match eol */
8276 YY_RULE_SETUP
8277 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);
8278         YY_BREAK
8279 case 273:
8280 /* rule 273 can match eol */
8281 YY_RULE_SETUP
8282 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);
8283         YY_BREAK
8284 case 274:
8285 /* rule 274 can match eol */
8286 YY_RULE_SETUP
8287 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);
8288         YY_BREAK
8289 case 275:
8290 YY_RULE_SETUP
8291 {
8292   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
8293   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
8294   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
8295  }
8296         YY_BREAK
8297 case 276:
8298 YY_RULE_SETUP
8299 {
8300   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
8301   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
8302   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
8303   switch (YY_START) {
8304    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;
8305    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8306   }
8307  }
8308         YY_BREAK
8309 case 277:
8310 YY_RULE_SETUP
8311 FAIL("Unexpected character `%c' in attribute list of host element.", yytext[0]);
8312         YY_BREAK
8313 case 278:
8314 YY_RULE_SETUP
8315 FAIL("Bad attribute `%s' in `host' element start tag.",yytext);
8316         YY_BREAK
8317 case YY_STATE_EOF(AL_surfxml_host):
8318 FAIL("EOF in attribute list of `host' element.");
8319         YY_BREAK
8320
8321 case 279:
8322 /* rule 279 can match eol */
8323 YY_RULE_SETUP
8324 {
8325   LEAVE;
8326   ETag_surfxml_host();
8327   popbuffer(); /* attribute */
8328   switch (YY_START) {
8329    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;
8330    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8331   }
8332  }
8333         YY_BREAK
8334 case 280:
8335 /* rule 280 can match eol */
8336 YY_RULE_SETUP
8337 FAIL("Unexpected end-tag `%s': `</host>' expected.",yytext);
8338         YY_BREAK
8339 case 281:
8340 YY_RULE_SETUP
8341 FAIL("Unexpected character `%c': `</host>' expected.",yytext[0]);
8342         YY_BREAK
8343 case YY_STATE_EOF(E_surfxml_host):
8344 case YY_STATE_EOF(S_surfxml_host):
8345 case YY_STATE_EOF(S_surfxml_host_2):
8346 FAIL("Premature EOF: `</host>' expected.");
8347         YY_BREAK
8348
8349 case 282:
8350 /* rule 282 can match eol */
8351 YY_RULE_SETUP
8352 FAIL("Starting tag <host_link> is not allowed here.");
8353         YY_BREAK
8354 case 283:
8355 /* rule 283 can match eol */
8356 YY_RULE_SETUP
8357 {
8358   AX_surfxml_host___link_down = 0;
8359   surfxml_host___link_down_isset = 0;
8360   AX_surfxml_host___link_id = 0;
8361   surfxml_host___link_id_isset = 0;
8362   AX_surfxml_host___link_up = 0;
8363   surfxml_host___link_up_isset = 0;
8364   ENTER(AL_surfxml_host___link); pushbuffer(0);
8365   }
8366         YY_BREAK
8367
8368 case 284:
8369 /* rule 284 can match eol */
8370 YY_RULE_SETUP
8371 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);
8372         YY_BREAK
8373 case 285:
8374 /* rule 285 can match eol */
8375 YY_RULE_SETUP
8376 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);
8377         YY_BREAK
8378 case 286:
8379 /* rule 286 can match eol */
8380 YY_RULE_SETUP
8381 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);
8382         YY_BREAK
8383 case 287:
8384 /* rule 287 can match eol */
8385 YY_RULE_SETUP
8386 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);
8387         YY_BREAK
8388 case 288:
8389 /* rule 288 can match eol */
8390 YY_RULE_SETUP
8391 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);
8392         YY_BREAK
8393 case 289:
8394 /* rule 289 can match eol */
8395 YY_RULE_SETUP
8396 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);
8397         YY_BREAK
8398 case 290:
8399 YY_RULE_SETUP
8400 {
8401   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8402   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8403   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8404   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
8405  }
8406         YY_BREAK
8407 case 291:
8408 YY_RULE_SETUP
8409 {
8410   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8411   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8412   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8413   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
8414   switch (YY_START) {
8415    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;
8416    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8417   }
8418  }
8419         YY_BREAK
8420 case 292:
8421 YY_RULE_SETUP
8422 FAIL("Unexpected character `%c' in attribute list of host_link element.", yytext[0]);
8423         YY_BREAK
8424 case 293:
8425 YY_RULE_SETUP
8426 FAIL("Bad attribute `%s' in `host_link' element start tag.",yytext);
8427         YY_BREAK
8428 case YY_STATE_EOF(AL_surfxml_host___link):
8429 FAIL("EOF in attribute list of `host_link' element.");
8430         YY_BREAK
8431
8432 case 294:
8433 /* rule 294 can match eol */
8434 YY_RULE_SETUP
8435 {
8436   LEAVE;
8437   ETag_surfxml_host___link();
8438   popbuffer(); /* attribute */
8439   switch (YY_START) {
8440    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;
8441    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
8442   }
8443  }
8444         YY_BREAK
8445 case 295:
8446 /* rule 295 can match eol */
8447 YY_RULE_SETUP
8448 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",yytext);
8449         YY_BREAK
8450 case 296:
8451 YY_RULE_SETUP
8452 FAIL("Unexpected character `%c': `</host_link>' expected.",yytext[0]);
8453         YY_BREAK
8454 case YY_STATE_EOF(E_surfxml_host___link):
8455 FAIL("Premature EOF: `</host_link>' expected.");
8456         YY_BREAK
8457
8458 /* <!-- tag include is deprecated. Not documented, and removed in v3.22 -->  */
8459 case 297:
8460 /* rule 297 can match eol */
8461 YY_RULE_SETUP
8462 FAIL("Starting tag <include> is not allowed here.");
8463         YY_BREAK
8464 case 298:
8465 /* rule 298 can match eol */
8466 YY_RULE_SETUP
8467 {
8468   AX_surfxml_include_file = 0;
8469   surfxml_include_file_isset = 0;
8470   ENTER(AL_surfxml_include); pushbuffer(0);
8471   }
8472         YY_BREAK
8473
8474 case 299:
8475 /* rule 299 can match eol */
8476 YY_RULE_SETUP
8477 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);
8478         YY_BREAK
8479 case 300:
8480 /* rule 300 can match eol */
8481 YY_RULE_SETUP
8482 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);
8483         YY_BREAK
8484 case 301:
8485 YY_RULE_SETUP
8486 {
8487   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8488   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
8489  }
8490         YY_BREAK
8491 case 302:
8492 YY_RULE_SETUP
8493 {
8494   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8495   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
8496   switch (YY_START) {
8497    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;
8498    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8499    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;
8500    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
8501    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8502   }
8503  }
8504         YY_BREAK
8505 case 303:
8506 YY_RULE_SETUP
8507 FAIL("Unexpected character `%c' in attribute list of include element.", yytext[0]);
8508         YY_BREAK
8509 case 304:
8510 YY_RULE_SETUP
8511 FAIL("Bad attribute `%s' in `include' element start tag.",yytext);
8512         YY_BREAK
8513 case YY_STATE_EOF(AL_surfxml_include):
8514 FAIL("EOF in attribute list of `include' element.");
8515         YY_BREAK
8516
8517 case 305:
8518 /* rule 305 can match eol */
8519 YY_RULE_SETUP
8520 {
8521   LEAVE;
8522   ETag_surfxml_include();
8523   popbuffer(); /* attribute */
8524   switch (YY_START) {
8525    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;
8526    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8527    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;
8528    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
8529    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8530   }
8531  }
8532         YY_BREAK
8533 case 306:
8534 /* rule 306 can match eol */
8535 YY_RULE_SETUP
8536 FAIL("Unexpected end-tag `%s': `</include>' expected.",yytext);
8537         YY_BREAK
8538 case 307:
8539 YY_RULE_SETUP
8540 FAIL("Unexpected character `%c': `</include>' expected.",yytext[0]);
8541         YY_BREAK
8542 case YY_STATE_EOF(E_surfxml_include):
8543 case YY_STATE_EOF(S_surfxml_include):
8544 case YY_STATE_EOF(S_surfxml_include_2):
8545 FAIL("Premature EOF: `</include>' expected.");
8546         YY_BREAK
8547
8548 case 308:
8549 /* rule 308 can match eol */
8550 YY_RULE_SETUP
8551 FAIL("Starting tag <link> is not allowed here.");
8552         YY_BREAK
8553 case 309:
8554 /* rule 309 can match eol */
8555 YY_RULE_SETUP
8556 {
8557   AX_surfxml_link_bandwidth = 0;
8558   surfxml_link_bandwidth_isset = 0;
8559   AX_surfxml_link_bandwidth___file = 0;
8560   surfxml_link_bandwidth___file_isset = 0;
8561   AX_surfxml_link_id = 0;
8562   surfxml_link_id_isset = 0;
8563   AX_surfxml_link_latency = 0;
8564   surfxml_link_latency_isset = 0;
8565   AX_surfxml_link_latency___file = 0;
8566   surfxml_link_latency___file_isset = 0;
8567   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8568   surfxml_link_sharing___policy_isset = 0;
8569   AX_surfxml_link_state___file = 0;
8570   surfxml_link_state___file_isset = 0;
8571   ENTER(AL_surfxml_link); pushbuffer(0);
8572   }
8573         YY_BREAK
8574
8575 case 310:
8576 /* rule 310 can match eol */
8577 YY_RULE_SETUP
8578 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);
8579         YY_BREAK
8580 case 311:
8581 /* rule 311 can match eol */
8582 YY_RULE_SETUP
8583 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);
8584         YY_BREAK
8585 case 312:
8586 /* rule 312 can match eol */
8587 YY_RULE_SETUP
8588 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);
8589         YY_BREAK
8590 case 313:
8591 /* rule 313 can match eol */
8592 YY_RULE_SETUP
8593 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);
8594         YY_BREAK
8595 case 314:
8596 /* rule 314 can match eol */
8597 YY_RULE_SETUP
8598 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);
8599         YY_BREAK
8600 case 315:
8601 /* rule 315 can match eol */
8602 YY_RULE_SETUP
8603 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);
8604         YY_BREAK
8605 case 316:
8606 /* rule 316 can match eol */
8607 YY_RULE_SETUP
8608 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);
8609         YY_BREAK
8610 case 317:
8611 /* rule 317 can match eol */
8612 YY_RULE_SETUP
8613 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);
8614         YY_BREAK
8615 case 318:
8616 /* rule 318 can match eol */
8617 YY_RULE_SETUP
8618 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);
8619         YY_BREAK
8620 case 319:
8621 /* rule 319 can match eol */
8622 YY_RULE_SETUP
8623 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);
8624         YY_BREAK
8625 case 320:
8626 /* rule 320 can match eol */
8627 case 321:
8628 /* rule 321 can match eol */
8629 YY_RULE_SETUP
8630 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8631         YY_BREAK
8632 case 322:
8633 /* rule 322 can match eol */
8634 case 323:
8635 /* rule 323 can match eol */
8636 YY_RULE_SETUP
8637 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SPLITDUPLEX;
8638         YY_BREAK
8639 case 324:
8640 /* rule 324 can match eol */
8641 case 325:
8642 /* rule 325 can match eol */
8643 YY_RULE_SETUP
8644 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8645         YY_BREAK
8646 case 326:
8647 /* rule 326 can match eol */
8648 case 327:
8649 /* rule 327 can match eol */
8650 YY_RULE_SETUP
8651 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8652         YY_BREAK
8653 case 328:
8654 /* rule 328 can match eol */
8655 YY_RULE_SETUP
8656 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);
8657         YY_BREAK
8658 case 329:
8659 /* rule 329 can match eol */
8660 YY_RULE_SETUP
8661 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);
8662         YY_BREAK
8663 case 330:
8664 YY_RULE_SETUP
8665 {
8666   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8667   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8668   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8669  }
8670         YY_BREAK
8671 case 331:
8672 YY_RULE_SETUP
8673 {
8674   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8675   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8676   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8677   switch (YY_START) {
8678    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;
8679    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
8680    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8681   }
8682  }
8683         YY_BREAK
8684 case 332:
8685 YY_RULE_SETUP
8686 FAIL("Unexpected character `%c' in attribute list of link element.", yytext[0]);
8687         YY_BREAK
8688 case 333:
8689 YY_RULE_SETUP
8690 FAIL("Bad attribute `%s' in `link' element start tag.",yytext);
8691         YY_BREAK
8692 case YY_STATE_EOF(AL_surfxml_link):
8693 FAIL("EOF in attribute list of `link' element.");
8694         YY_BREAK
8695
8696 case 334:
8697 /* rule 334 can match eol */
8698 YY_RULE_SETUP
8699 {
8700   LEAVE;
8701   ETag_surfxml_link();
8702   popbuffer(); /* attribute */
8703   switch (YY_START) {
8704    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;
8705    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: SET(S_surfxml_zone_14); break;
8706    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8707   }
8708  }
8709         YY_BREAK
8710 case 335:
8711 /* rule 335 can match eol */
8712 YY_RULE_SETUP
8713 FAIL("Unexpected end-tag `%s': `</link>' expected.",yytext);
8714         YY_BREAK
8715 case 336:
8716 YY_RULE_SETUP
8717 FAIL("Unexpected character `%c': `</link>' expected.",yytext[0]);
8718         YY_BREAK
8719 case YY_STATE_EOF(E_surfxml_link):
8720 case YY_STATE_EOF(S_surfxml_link):
8721 case YY_STATE_EOF(S_surfxml_link_2):
8722 FAIL("Premature EOF: `</link>' expected.");
8723         YY_BREAK
8724
8725 case 337:
8726 /* rule 337 can match eol */
8727 YY_RULE_SETUP
8728 FAIL("Starting tag <link_ctn> is not allowed here.");
8729         YY_BREAK
8730 case 338:
8731 /* rule 338 can match eol */
8732 YY_RULE_SETUP
8733 {
8734   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8735   surfxml_link___ctn_direction_isset = 0;
8736   AX_surfxml_link___ctn_id = 0;
8737   surfxml_link___ctn_id_isset = 0;
8738   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8739   }
8740         YY_BREAK
8741
8742 case 339:
8743 /* rule 339 can match eol */
8744 case 340:
8745 /* rule 340 can match eol */
8746 YY_RULE_SETUP
8747 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8748         YY_BREAK
8749 case 341:
8750 /* rule 341 can match eol */
8751 case 342:
8752 /* rule 342 can match eol */
8753 YY_RULE_SETUP
8754 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8755         YY_BREAK
8756 case 343:
8757 /* rule 343 can match eol */
8758 case 344:
8759 /* rule 344 can match eol */
8760 YY_RULE_SETUP
8761 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8762         YY_BREAK
8763 case 345:
8764 /* rule 345 can match eol */
8765 YY_RULE_SETUP
8766 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);
8767         YY_BREAK
8768 case 346:
8769 /* rule 346 can match eol */
8770 YY_RULE_SETUP
8771 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);
8772         YY_BREAK
8773 case 347:
8774 YY_RULE_SETUP
8775 {
8776   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8777   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8778  }
8779         YY_BREAK
8780 case 348:
8781 YY_RULE_SETUP
8782 {
8783   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8784   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8785   switch (YY_START) {
8786    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8787    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8788    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8789    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8790    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8791    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8792   }
8793  }
8794         YY_BREAK
8795 case 349:
8796 YY_RULE_SETUP
8797 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", yytext[0]);
8798         YY_BREAK
8799 case 350:
8800 YY_RULE_SETUP
8801 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",yytext);
8802         YY_BREAK
8803 case YY_STATE_EOF(AL_surfxml_link___ctn):
8804 FAIL("EOF in attribute list of `link_ctn' element.");
8805         YY_BREAK
8806
8807 case 351:
8808 /* rule 351 can match eol */
8809 YY_RULE_SETUP
8810 {
8811   LEAVE;
8812   ETag_surfxml_link___ctn();
8813   popbuffer(); /* attribute */
8814   switch (YY_START) {
8815    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8816    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8817    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8818    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8819    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8820    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8821   }
8822  }
8823         YY_BREAK
8824 case 352:
8825 /* rule 352 can match eol */
8826 YY_RULE_SETUP
8827 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",yytext);
8828         YY_BREAK
8829 case 353:
8830 YY_RULE_SETUP
8831 FAIL("Unexpected character `%c': `</link_ctn>' expected.",yytext[0]);
8832         YY_BREAK
8833 case YY_STATE_EOF(E_surfxml_link___ctn):
8834 FAIL("Premature EOF: `</link_ctn>' expected.");
8835         YY_BREAK
8836
8837 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
8838   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
8839 case 354:
8840 /* rule 354 can match eol */
8841 YY_RULE_SETUP
8842 FAIL("Starting tag <model_prop> is not allowed here.");
8843         YY_BREAK
8844 case 355:
8845 /* rule 355 can match eol */
8846 YY_RULE_SETUP
8847 {
8848   AX_surfxml_model___prop_id = 0;
8849   surfxml_model___prop_id_isset = 0;
8850   AX_surfxml_model___prop_value = 0;
8851   surfxml_model___prop_value_isset = 0;
8852   ENTER(AL_surfxml_model___prop); pushbuffer(0);
8853   }
8854         YY_BREAK
8855
8856 case 356:
8857 /* rule 356 can match eol */
8858 YY_RULE_SETUP
8859 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);
8860         YY_BREAK
8861 case 357:
8862 /* rule 357 can match eol */
8863 YY_RULE_SETUP
8864 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);
8865         YY_BREAK
8866 case 358:
8867 /* rule 358 can match eol */
8868 YY_RULE_SETUP
8869 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);
8870         YY_BREAK
8871 case 359:
8872 /* rule 359 can match eol */
8873 YY_RULE_SETUP
8874 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);
8875         YY_BREAK
8876 case 360:
8877 YY_RULE_SETUP
8878 {
8879   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
8880   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
8881   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
8882  }
8883         YY_BREAK
8884 case 361:
8885 YY_RULE_SETUP
8886 {
8887   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
8888   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
8889   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
8890   switch (YY_START) {
8891    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8892   }
8893  }
8894         YY_BREAK
8895 case 362:
8896 YY_RULE_SETUP
8897 FAIL("Unexpected character `%c' in attribute list of model_prop element.", yytext[0]);
8898         YY_BREAK
8899 case 363:
8900 YY_RULE_SETUP
8901 FAIL("Bad attribute `%s' in `model_prop' element start tag.",yytext);
8902         YY_BREAK
8903 case YY_STATE_EOF(AL_surfxml_model___prop):
8904 FAIL("EOF in attribute list of `model_prop' element.");
8905         YY_BREAK
8906
8907 case 364:
8908 /* rule 364 can match eol */
8909 YY_RULE_SETUP
8910 {
8911   LEAVE;
8912   ETag_surfxml_model___prop();
8913   popbuffer(); /* attribute */
8914   switch (YY_START) {
8915    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8916   }
8917  }
8918         YY_BREAK
8919 case 365:
8920 /* rule 365 can match eol */
8921 YY_RULE_SETUP
8922 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",yytext);
8923         YY_BREAK
8924 case 366:
8925 YY_RULE_SETUP
8926 FAIL("Unexpected character `%c': `</model_prop>' expected.",yytext[0]);
8927         YY_BREAK
8928 case YY_STATE_EOF(E_surfxml_model___prop):
8929 FAIL("Premature EOF: `</model_prop>' expected.");
8930         YY_BREAK
8931
8932 case 367:
8933 /* rule 367 can match eol */
8934 YY_RULE_SETUP
8935 FAIL("Starting tag <mount> is not allowed here.");
8936         YY_BREAK
8937 case 368:
8938 /* rule 368 can match eol */
8939 YY_RULE_SETUP
8940 {
8941   AX_surfxml_mount_name = 0;
8942   surfxml_mount_name_isset = 0;
8943   AX_surfxml_mount_storageId = 0;
8944   surfxml_mount_storageId_isset = 0;
8945   ENTER(AL_surfxml_mount); pushbuffer(0);
8946   }
8947         YY_BREAK
8948
8949 case 369:
8950 /* rule 369 can match eol */
8951 YY_RULE_SETUP
8952 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);
8953         YY_BREAK
8954 case 370:
8955 /* rule 370 can match eol */
8956 YY_RULE_SETUP
8957 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);
8958         YY_BREAK
8959 case 371:
8960 /* rule 371 can match eol */
8961 YY_RULE_SETUP
8962 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);
8963         YY_BREAK
8964 case 372:
8965 /* rule 372 can match eol */
8966 YY_RULE_SETUP
8967 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);
8968         YY_BREAK
8969 case 373:
8970 YY_RULE_SETUP
8971 {
8972   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
8973   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
8974   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
8975  }
8976         YY_BREAK
8977 case 374:
8978 YY_RULE_SETUP
8979 {
8980   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
8981   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
8982   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
8983   switch (YY_START) {
8984    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8985   }
8986  }
8987         YY_BREAK
8988 case 375:
8989 YY_RULE_SETUP
8990 FAIL("Unexpected character `%c' in attribute list of mount element.", yytext[0]);
8991         YY_BREAK
8992 case 376:
8993 YY_RULE_SETUP
8994 FAIL("Bad attribute `%s' in `mount' element start tag.",yytext);
8995         YY_BREAK
8996 case YY_STATE_EOF(AL_surfxml_mount):
8997 FAIL("EOF in attribute list of `mount' element.");
8998         YY_BREAK
8999
9000 case 377:
9001 /* rule 377 can match eol */
9002 YY_RULE_SETUP
9003 {
9004   LEAVE;
9005   ETag_surfxml_mount();
9006   popbuffer(); /* attribute */
9007   switch (YY_START) {
9008    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9009   }
9010  }
9011         YY_BREAK
9012 case 378:
9013 /* rule 378 can match eol */
9014 YY_RULE_SETUP
9015 FAIL("Unexpected end-tag `%s': `</mount>' expected.",yytext);
9016         YY_BREAK
9017 case 379:
9018 YY_RULE_SETUP
9019 FAIL("Unexpected character `%c': `</mount>' expected.",yytext[0]);
9020         YY_BREAK
9021 case YY_STATE_EOF(E_surfxml_mount):
9022 FAIL("Premature EOF: `</mount>' expected.");
9023         YY_BREAK
9024
9025 case 380:
9026 /* rule 380 can match eol */
9027 YY_RULE_SETUP
9028 FAIL("Starting tag <peer> is not allowed here.");
9029         YY_BREAK
9030 case 381:
9031 /* rule 381 can match eol */
9032 YY_RULE_SETUP
9033 {
9034   AX_surfxml_peer_availability___file = 0;
9035   surfxml_peer_availability___file_isset = 0;
9036   AX_surfxml_peer_bw___in = 0;
9037   surfxml_peer_bw___in_isset = 0;
9038   AX_surfxml_peer_bw___out = 0;
9039   surfxml_peer_bw___out_isset = 0;
9040   AX_surfxml_peer_coordinates = 0;
9041   surfxml_peer_coordinates_isset = 0;
9042   AX_surfxml_peer_id = 0;
9043   surfxml_peer_id_isset = 0;
9044   AX_surfxml_peer_lat = 0;
9045   surfxml_peer_lat_isset = 0;
9046   AX_surfxml_peer_speed = 0;
9047   surfxml_peer_speed_isset = 0;
9048   AX_surfxml_peer_state___file = 0;
9049   surfxml_peer_state___file_isset = 0;
9050   ENTER(AL_surfxml_peer); pushbuffer(0);
9051   }
9052         YY_BREAK
9053
9054 case 382:
9055 /* rule 382 can match eol */
9056 YY_RULE_SETUP
9057 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);
9058         YY_BREAK
9059 case 383:
9060 /* rule 383 can match eol */
9061 YY_RULE_SETUP
9062 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);
9063         YY_BREAK
9064 case 384:
9065 /* rule 384 can match eol */
9066 YY_RULE_SETUP
9067 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);
9068         YY_BREAK
9069 case 385:
9070 /* rule 385 can match eol */
9071 YY_RULE_SETUP
9072 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);
9073         YY_BREAK
9074 case 386:
9075 /* rule 386 can match eol */
9076 YY_RULE_SETUP
9077 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);
9078         YY_BREAK
9079 case 387:
9080 /* rule 387 can match eol */
9081 YY_RULE_SETUP
9082 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);
9083         YY_BREAK
9084 case 388:
9085 /* rule 388 can match eol */
9086 YY_RULE_SETUP
9087 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);
9088         YY_BREAK
9089 case 389:
9090 /* rule 389 can match eol */
9091 YY_RULE_SETUP
9092 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);
9093         YY_BREAK
9094 case 390:
9095 /* rule 390 can match eol */
9096 YY_RULE_SETUP
9097 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);
9098         YY_BREAK
9099 case 391:
9100 /* rule 391 can match eol */
9101 YY_RULE_SETUP
9102 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);
9103         YY_BREAK
9104 case 392:
9105 /* rule 392 can match eol */
9106 YY_RULE_SETUP
9107 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);
9108         YY_BREAK
9109 case 393:
9110 /* rule 393 can match eol */
9111 YY_RULE_SETUP
9112 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);
9113         YY_BREAK
9114 case 394:
9115 /* rule 394 can match eol */
9116 YY_RULE_SETUP
9117 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);
9118         YY_BREAK
9119 case 395:
9120 /* rule 395 can match eol */
9121 YY_RULE_SETUP
9122 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);
9123         YY_BREAK
9124 case 396:
9125 /* rule 396 can match eol */
9126 YY_RULE_SETUP
9127 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);
9128         YY_BREAK
9129 case 397:
9130 /* rule 397 can match eol */
9131 YY_RULE_SETUP
9132 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);
9133         YY_BREAK
9134 case 398:
9135 YY_RULE_SETUP
9136 {
9137   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
9138   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
9139   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
9140   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
9141   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
9142  }
9143         YY_BREAK
9144 case 399:
9145 YY_RULE_SETUP
9146 {
9147   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
9148   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
9149   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
9150   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
9151   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
9152   switch (YY_START) {
9153    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;
9154    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9155    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;
9156    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9157   }
9158  }
9159         YY_BREAK
9160 case 400:
9161 YY_RULE_SETUP
9162 FAIL("Unexpected character `%c' in attribute list of peer element.", yytext[0]);
9163         YY_BREAK
9164 case 401:
9165 YY_RULE_SETUP
9166 FAIL("Bad attribute `%s' in `peer' element start tag.",yytext);
9167         YY_BREAK
9168 case YY_STATE_EOF(AL_surfxml_peer):
9169 FAIL("EOF in attribute list of `peer' element.");
9170         YY_BREAK
9171
9172 case 402:
9173 /* rule 402 can match eol */
9174 YY_RULE_SETUP
9175 {
9176   LEAVE;
9177   ETag_surfxml_peer();
9178   popbuffer(); /* attribute */
9179   switch (YY_START) {
9180    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;
9181    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9182    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;
9183    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9184   }
9185  }
9186         YY_BREAK
9187 case 403:
9188 /* rule 403 can match eol */
9189 YY_RULE_SETUP
9190 FAIL("Unexpected end-tag `%s': `</peer>' expected.",yytext);
9191         YY_BREAK
9192 case 404:
9193 YY_RULE_SETUP
9194 FAIL("Unexpected character `%c': `</peer>' expected.",yytext[0]);
9195         YY_BREAK
9196 case YY_STATE_EOF(E_surfxml_peer):
9197 FAIL("Premature EOF: `</peer>' expected.");
9198         YY_BREAK
9199
9200 /* <!--
9201   *              DTD of SimGrid platform and deployment files.
9202   * More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
9203   * To upgrade your files, use the tool simgrid_update_xml
9204   * * Things that will change in upcoming version 5 (TODO):
9205   *   - The following tags will be removed:
9206   *     - <include> spits an error since v3.18
9207   *     - <random> does nothing since a very long time
9208   *     - <as>, <asroute>, <bypassZoneRoute> and <process>, deprecated in DTD4.1
9209   *   - FULLDUPLEX sharing will be removed, deprecated in DTD4.2 (v3.19)
9210   * * New in DTD version 4.2 (in SimGrid 3.19): backward compatible change (v4 files are valid v4.2 files)
9211   *    - SPLITDUPLEX is the new spelling of the deprecated FULLDUPLEX
9212   * * New in DTD version 4.1 (in SimGrid 3.16): backward compatible change (v4 files are valid v4.1 files)
9213   *    - <zone> can be used as a synonym for the now deprecated <as>
9214   *    - <zoneRoute> can be used as a synonym for the now deprecated <asroute>
9215   *    - <bypassZoneRoute> an be used as a synonym for the now deprecated <bypassAsRoute>
9216   *    - <actor> can be used as a synonym for the now deprecated <process>
9217   * * New in DTD version 4 (in SimGrid 3.13):
9218   *    - Rename (power->speed) the attributes describing the amount of flop
9219   *      that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
9220   *    - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
9221   *    - In <host> and <link>, attributes availability and state are gone.
9222   *      It was redundent with state and availability traces, and with peak values.
9223   *    - In <cluster>, cannot set the availability nor state traces.
9224   *      This was too complex and unused.
9225   *    - The DOCTYPE points to the right URL (this file):
9226   *      http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
9227   *    - Kill <gpu>. Was not doing anything.
9228   *    - A warning is emitted for unit-less values (they are still accepted).
9229   *      - speed. Default: 'f' or 'flops'. Also defined:
9230   *         'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
9231   *         'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
9232   *      - bandwidth. Default: 'Bps' bytes per second
9233   *        In bytes and powers of 2  (1 KiBps = 1024 Bps): 'EiBps', 'PiBps', 'TiBps', 'GiBps', 'MiBps', 'KiBps'
9234   *        In bits  and powers of 2  (1 Bps = 8 bps)     : 'Eibps', 'Pibps', 'Tibps', 'Gibps', 'Mibps', 'Kibps'
9235   *        In bytes and powers of 10 (1 KBps = 1000 Bps) : 'EBps', 'PBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
9236   *        In bits  and powers of 10                     : 'Ebps', 'Pbps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
9237   *        (Exa and Peta notations were introduced in SimGrid v3.14)
9238   *      - latency. Default: 's' second. Also defined:
9239   *        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
9240   * * New in DTD version 3 (in SimGrid 3.5):
9241   *    - The AS tag were introduced. Every platform should now
9242   *      contain an englobing AS tag.
9243   *    - Routes are now symmetric by default.
9244   *    - Renamed tags (for sake of XML sanity):
9245   *      - LINK:CTN -> LINK_CTN
9246   *      - TRACE:CONNECT -> TRACE_CONNECT
9247   * * New in DTD version 2 (in SimGrid 3.4):
9248   *    - Renamed tags:
9249   *      - CPU -> HOST
9250   *      - NETWORK_LINK -> LINK
9251   *      - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
9252   *      - PLATFORM_DESCRIPTION -> PLATFORM
9253   * * New in DTD version 1 (in SimGrid 3.3):
9254   *    - DTD is now versionned with the version attribute of platform
9255   *    - Unit change:
9256   *      - Link bandwidth: from Mb/s to b/s
9257   *      - CPU speed: from MFlop/s to Flop/s
9258   * -->  */
9259 case 405:
9260 /* rule 405 can match eol */
9261 YY_RULE_SETUP
9262 FAIL("Starting tag <platform> is not allowed here.");
9263         YY_BREAK
9264 case 406:
9265 /* rule 406 can match eol */
9266 YY_RULE_SETUP
9267 {
9268   AX_surfxml_platform_version = 1;
9269   surfxml_platform_version_isset = 0;
9270   ENTER(AL_surfxml_platform); pushbuffer(0);
9271   }
9272         YY_BREAK
9273
9274 case 407:
9275 /* rule 407 can match eol */
9276 YY_RULE_SETUP
9277 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);
9278         YY_BREAK
9279 case 408:
9280 /* rule 408 can match eol */
9281 YY_RULE_SETUP
9282 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);
9283         YY_BREAK
9284 case 409:
9285 YY_RULE_SETUP
9286 {
9287   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
9288  }
9289         YY_BREAK
9290 case 410:
9291 YY_RULE_SETUP
9292 {
9293   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
9294   switch (YY_START) {
9295    case ROOT_surfxml_platform: SET(EPILOG); break;
9296   }
9297  }
9298         YY_BREAK
9299 case 411:
9300 YY_RULE_SETUP
9301 FAIL("Unexpected character `%c' in attribute list of platform element.", yytext[0]);
9302         YY_BREAK
9303 case 412:
9304 YY_RULE_SETUP
9305 FAIL("Bad attribute `%s' in `platform' element start tag.",yytext);
9306         YY_BREAK
9307 case YY_STATE_EOF(AL_surfxml_platform):
9308 FAIL("EOF in attribute list of `platform' element.");
9309         YY_BREAK
9310
9311 case 413:
9312 /* rule 413 can match eol */
9313 YY_RULE_SETUP
9314 {
9315   LEAVE;
9316   ETag_surfxml_platform();
9317   popbuffer(); /* attribute */
9318   switch (YY_START) {
9319    case ROOT_surfxml_platform: SET(EPILOG); break;
9320   }
9321  }
9322         YY_BREAK
9323 case 414:
9324 /* rule 414 can match eol */
9325 YY_RULE_SETUP
9326 FAIL("Unexpected end-tag `%s': `</platform>' expected.",yytext);
9327         YY_BREAK
9328 case 415:
9329 YY_RULE_SETUP
9330 FAIL("Unexpected character `%c': `</platform>' expected.",yytext[0]);
9331         YY_BREAK
9332 case YY_STATE_EOF(E_surfxml_platform):
9333 case YY_STATE_EOF(S_surfxml_platform):
9334 case YY_STATE_EOF(S_surfxml_platform_1):
9335 case YY_STATE_EOF(S_surfxml_platform_3):
9336 case YY_STATE_EOF(S_surfxml_platform_4):
9337 case YY_STATE_EOF(S_surfxml_platform_6):
9338 case YY_STATE_EOF(S_surfxml_platform_8):
9339 FAIL("Premature EOF: `</platform>' expected.");
9340         YY_BREAK
9341
9342 case 416:
9343 /* rule 416 can match eol */
9344 YY_RULE_SETUP
9345 FAIL("Starting tag <process> is not allowed here.");
9346         YY_BREAK
9347 case 417:
9348 /* rule 417 can match eol */
9349 YY_RULE_SETUP
9350 {
9351   AX_surfxml_process_function = 0;
9352   surfxml_process_function_isset = 0;
9353   AX_surfxml_process_host = 0;
9354   surfxml_process_host_isset = 0;
9355   AX_surfxml_process_kill___time = 36;
9356   surfxml_process_kill___time_isset = 0;
9357   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9358   surfxml_process_on___failure_isset = 0;
9359   AX_surfxml_process_start___time = 31;
9360   surfxml_process_start___time_isset = 0;
9361   ENTER(AL_surfxml_process); pushbuffer(0);
9362   }
9363         YY_BREAK
9364
9365 case 418:
9366 /* rule 418 can match eol */
9367 YY_RULE_SETUP
9368 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);
9369         YY_BREAK
9370 case 419:
9371 /* rule 419 can match eol */
9372 YY_RULE_SETUP
9373 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);
9374         YY_BREAK
9375 case 420:
9376 /* rule 420 can match eol */
9377 YY_RULE_SETUP
9378 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);
9379         YY_BREAK
9380 case 421:
9381 /* rule 421 can match eol */
9382 YY_RULE_SETUP
9383 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);
9384         YY_BREAK
9385 case 422:
9386 /* rule 422 can match eol */
9387 YY_RULE_SETUP
9388 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);
9389         YY_BREAK
9390 case 423:
9391 /* rule 423 can match eol */
9392 YY_RULE_SETUP
9393 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);
9394         YY_BREAK
9395 case 424:
9396 /* rule 424 can match eol */
9397 case 425:
9398 /* rule 425 can match eol */
9399 YY_RULE_SETUP
9400 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9401         YY_BREAK
9402 case 426:
9403 /* rule 426 can match eol */
9404 case 427:
9405 /* rule 427 can match eol */
9406 YY_RULE_SETUP
9407 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9408         YY_BREAK
9409 case 428:
9410 /* rule 428 can match eol */
9411 YY_RULE_SETUP
9412 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);
9413         YY_BREAK
9414 case 429:
9415 /* rule 429 can match eol */
9416 YY_RULE_SETUP
9417 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);
9418         YY_BREAK
9419 case 430:
9420 YY_RULE_SETUP
9421 {
9422   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9423   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9424   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9425  }
9426         YY_BREAK
9427 case 431:
9428 YY_RULE_SETUP
9429 {
9430   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9431   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9432   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9433   switch (YY_START) {
9434    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;
9435   }
9436  }
9437         YY_BREAK
9438 case 432:
9439 YY_RULE_SETUP
9440 FAIL("Unexpected character `%c' in attribute list of process element.", yytext[0]);
9441         YY_BREAK
9442 case 433:
9443 YY_RULE_SETUP
9444 FAIL("Bad attribute `%s' in `process' element start tag.",yytext);
9445         YY_BREAK
9446 case YY_STATE_EOF(AL_surfxml_process):
9447 FAIL("EOF in attribute list of `process' element.");
9448         YY_BREAK
9449
9450 case 434:
9451 /* rule 434 can match eol */
9452 YY_RULE_SETUP
9453 {
9454   LEAVE;
9455   ETag_surfxml_process();
9456   popbuffer(); /* attribute */
9457   switch (YY_START) {
9458    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;
9459   }
9460  }
9461         YY_BREAK
9462 case 435:
9463 /* rule 435 can match eol */
9464 YY_RULE_SETUP
9465 FAIL("Unexpected end-tag `%s': `</process>' expected.",yytext);
9466         YY_BREAK
9467 case 436:
9468 YY_RULE_SETUP
9469 FAIL("Unexpected character `%c': `</process>' expected.",yytext[0]);
9470         YY_BREAK
9471 case YY_STATE_EOF(E_surfxml_process):
9472 case YY_STATE_EOF(S_surfxml_process):
9473 case YY_STATE_EOF(S_surfxml_process_2):
9474 FAIL("Premature EOF: `</process>' expected.");
9475         YY_BREAK
9476
9477 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9478   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9479 case 437:
9480 /* rule 437 can match eol */
9481 YY_RULE_SETUP
9482 FAIL("Starting tag <prop> is not allowed here.");
9483         YY_BREAK
9484 case 438:
9485 /* rule 438 can match eol */
9486 YY_RULE_SETUP
9487 {
9488   AX_surfxml_prop_id = 0;
9489   surfxml_prop_id_isset = 0;
9490   AX_surfxml_prop_value = 0;
9491   surfxml_prop_value_isset = 0;
9492   ENTER(AL_surfxml_prop); pushbuffer(0);
9493   }
9494         YY_BREAK
9495
9496 case 439:
9497 /* rule 439 can match eol */
9498 YY_RULE_SETUP
9499 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);
9500         YY_BREAK
9501 case 440:
9502 /* rule 440 can match eol */
9503 YY_RULE_SETUP
9504 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);
9505         YY_BREAK
9506 case 441:
9507 /* rule 441 can match eol */
9508 YY_RULE_SETUP
9509 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);
9510         YY_BREAK
9511 case 442:
9512 /* rule 442 can match eol */
9513 YY_RULE_SETUP
9514 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);
9515         YY_BREAK
9516 case 443:
9517 YY_RULE_SETUP
9518 {
9519   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9520   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9521   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9522  }
9523         YY_BREAK
9524 case 444:
9525 YY_RULE_SETUP
9526 {
9527   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9528   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9529   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9530   switch (YY_START) {
9531    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9532    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9533    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9534    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9535    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9536    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9537    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9538    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9539    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9540    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9541   }
9542  }
9543         YY_BREAK
9544 case 445:
9545 YY_RULE_SETUP
9546 FAIL("Unexpected character `%c' in attribute list of prop element.", yytext[0]);
9547         YY_BREAK
9548 case 446:
9549 YY_RULE_SETUP
9550 FAIL("Bad attribute `%s' in `prop' element start tag.",yytext);
9551         YY_BREAK
9552 case YY_STATE_EOF(AL_surfxml_prop):
9553 FAIL("EOF in attribute list of `prop' element.");
9554         YY_BREAK
9555
9556 case 447:
9557 /* rule 447 can match eol */
9558 YY_RULE_SETUP
9559 {
9560   LEAVE;
9561   ETag_surfxml_prop();
9562   popbuffer(); /* attribute */
9563   switch (YY_START) {
9564    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9565    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9566    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9567    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9568    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9569    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9570    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9571    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9572    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9573    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9574   }
9575  }
9576         YY_BREAK
9577 case 448:
9578 /* rule 448 can match eol */
9579 YY_RULE_SETUP
9580 FAIL("Unexpected end-tag `%s': `</prop>' expected.",yytext);
9581         YY_BREAK
9582 case 449:
9583 YY_RULE_SETUP
9584 FAIL("Unexpected character `%c': `</prop>' expected.",yytext[0]);
9585         YY_BREAK
9586 case YY_STATE_EOF(E_surfxml_prop):
9587 FAIL("Premature EOF: `</prop>' expected.");
9588         YY_BREAK
9589
9590 case 450:
9591 /* rule 450 can match eol */
9592 YY_RULE_SETUP
9593 FAIL("Starting tag <random> is not allowed here.");
9594         YY_BREAK
9595 case 451:
9596 /* rule 451 can match eol */
9597 YY_RULE_SETUP
9598 {
9599   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9600   surfxml_random_generator_isset = 0;
9601   AX_surfxml_random_id = 0;
9602   surfxml_random_id_isset = 0;
9603   AX_surfxml_random_max = 0;
9604   surfxml_random_max_isset = 0;
9605   AX_surfxml_random_mean = 0;
9606   surfxml_random_mean_isset = 0;
9607   AX_surfxml_random_min = 0;
9608   surfxml_random_min_isset = 0;
9609   AX_surfxml_random_radical = 0;
9610   surfxml_random_radical_isset = 0;
9611   AX_surfxml_random_seed = 5;
9612   surfxml_random_seed_isset = 0;
9613   AX_surfxml_random_std___deviation = 0;
9614   surfxml_random_std___deviation_isset = 0;
9615   ENTER(AL_surfxml_random); pushbuffer(0);
9616   }
9617         YY_BREAK
9618
9619 case 452:
9620 /* rule 452 can match eol */
9621 case 453:
9622 /* rule 453 can match eol */
9623 YY_RULE_SETUP
9624 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9625         YY_BREAK
9626 case 454:
9627 /* rule 454 can match eol */
9628 case 455:
9629 /* rule 455 can match eol */
9630 YY_RULE_SETUP
9631 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
9632         YY_BREAK
9633 case 456:
9634 /* rule 456 can match eol */
9635 case 457:
9636 /* rule 457 can match eol */
9637 YY_RULE_SETUP
9638 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
9639         YY_BREAK
9640 case 458:
9641 /* rule 458 can match eol */
9642 case 459:
9643 /* rule 459 can match eol */
9644 YY_RULE_SETUP
9645 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
9646         YY_BREAK
9647 case 460:
9648 /* rule 460 can match eol */
9649 YY_RULE_SETUP
9650 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);
9651         YY_BREAK
9652 case 461:
9653 /* rule 461 can match eol */
9654 YY_RULE_SETUP
9655 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);
9656         YY_BREAK
9657 case 462:
9658 /* rule 462 can match eol */
9659 YY_RULE_SETUP
9660 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);
9661         YY_BREAK
9662 case 463:
9663 /* rule 463 can match eol */
9664 YY_RULE_SETUP
9665 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);
9666         YY_BREAK
9667 case 464:
9668 /* rule 464 can match eol */
9669 YY_RULE_SETUP
9670 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);
9671         YY_BREAK
9672 case 465:
9673 /* rule 465 can match eol */
9674 YY_RULE_SETUP
9675 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);
9676         YY_BREAK
9677 case 466:
9678 /* rule 466 can match eol */
9679 YY_RULE_SETUP
9680 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);
9681         YY_BREAK
9682 case 467:
9683 /* rule 467 can match eol */
9684 YY_RULE_SETUP
9685 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);
9686         YY_BREAK
9687 case 468:
9688 /* rule 468 can match eol */
9689 YY_RULE_SETUP
9690 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);
9691         YY_BREAK
9692 case 469:
9693 /* rule 469 can match eol */
9694 YY_RULE_SETUP
9695 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);
9696         YY_BREAK
9697 case 470:
9698 /* rule 470 can match eol */
9699 YY_RULE_SETUP
9700 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);
9701         YY_BREAK
9702 case 471:
9703 /* rule 471 can match eol */
9704 YY_RULE_SETUP
9705 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);
9706         YY_BREAK
9707 case 472:
9708 /* rule 472 can match eol */
9709 YY_RULE_SETUP
9710 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);
9711         YY_BREAK
9712 case 473:
9713 /* rule 473 can match eol */
9714 YY_RULE_SETUP
9715 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);
9716         YY_BREAK
9717 case 474:
9718 YY_RULE_SETUP
9719 {
9720   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9721   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9722   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9723   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9724   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9725   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
9726  }
9727         YY_BREAK
9728 case 475:
9729 YY_RULE_SETUP
9730 {
9731   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9732   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9733   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9734   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9735   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9736   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
9737   switch (YY_START) {
9738    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9739   }
9740  }
9741         YY_BREAK
9742 case 476:
9743 YY_RULE_SETUP
9744 FAIL("Unexpected character `%c' in attribute list of random element.", yytext[0]);
9745         YY_BREAK
9746 case 477:
9747 YY_RULE_SETUP
9748 FAIL("Bad attribute `%s' in `random' element start tag.",yytext);
9749         YY_BREAK
9750 case YY_STATE_EOF(AL_surfxml_random):
9751 FAIL("EOF in attribute list of `random' element.");
9752         YY_BREAK
9753
9754 case 478:
9755 /* rule 478 can match eol */
9756 YY_RULE_SETUP
9757 {
9758   LEAVE;
9759   ETag_surfxml_random();
9760   popbuffer(); /* attribute */
9761   switch (YY_START) {
9762    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9763   }
9764  }
9765         YY_BREAK
9766 case 479:
9767 /* rule 479 can match eol */
9768 YY_RULE_SETUP
9769 FAIL("Unexpected end-tag `%s': `</random>' expected.",yytext);
9770         YY_BREAK
9771 case 480:
9772 YY_RULE_SETUP
9773 FAIL("Unexpected character `%c': `</random>' expected.",yytext[0]);
9774         YY_BREAK
9775 case YY_STATE_EOF(E_surfxml_random):
9776 FAIL("Premature EOF: `</random>' expected.");
9777         YY_BREAK
9778
9779 case 481:
9780 /* rule 481 can match eol */
9781 YY_RULE_SETUP
9782 FAIL("Starting tag <route> is not allowed here.");
9783         YY_BREAK
9784 case 482:
9785 /* rule 482 can match eol */
9786 YY_RULE_SETUP
9787 {
9788   AX_surfxml_route_dst = 0;
9789   surfxml_route_dst_isset = 0;
9790   AX_surfxml_route_src = 0;
9791   surfxml_route_src_isset = 0;
9792   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9793   surfxml_route_symmetrical_isset = 0;
9794   ENTER(AL_surfxml_route); pushbuffer(0);
9795   }
9796         YY_BREAK
9797
9798 case 483:
9799 /* rule 483 can match eol */
9800 YY_RULE_SETUP
9801 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);
9802         YY_BREAK
9803 case 484:
9804 /* rule 484 can match eol */
9805 YY_RULE_SETUP
9806 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);
9807         YY_BREAK
9808 case 485:
9809 /* rule 485 can match eol */
9810 YY_RULE_SETUP
9811 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);
9812         YY_BREAK
9813 case 486:
9814 /* rule 486 can match eol */
9815 YY_RULE_SETUP
9816 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);
9817         YY_BREAK
9818 case 487:
9819 /* rule 487 can match eol */
9820 case 488:
9821 /* rule 488 can match eol */
9822 YY_RULE_SETUP
9823 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9824         YY_BREAK
9825 case 489:
9826 /* rule 489 can match eol */
9827 case 490:
9828 /* rule 490 can match eol */
9829 YY_RULE_SETUP
9830 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
9831         YY_BREAK
9832 case 491:
9833 /* rule 491 can match eol */
9834 case 492:
9835 /* rule 492 can match eol */
9836 YY_RULE_SETUP
9837 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_yes;
9838         YY_BREAK
9839 case 493:
9840 /* rule 493 can match eol */
9841 case 494:
9842 /* rule 494 can match eol */
9843 YY_RULE_SETUP
9844 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_no;
9845         YY_BREAK
9846 case 495:
9847 YY_RULE_SETUP
9848 {
9849   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
9850   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
9851   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
9852  }
9853         YY_BREAK
9854 case 496:
9855 YY_RULE_SETUP
9856 {
9857   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
9858   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
9859   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
9860   switch (YY_START) {
9861    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;
9862    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
9863   }
9864  }
9865         YY_BREAK
9866 case 497:
9867 YY_RULE_SETUP
9868 FAIL("Unexpected character `%c' in attribute list of route element.", yytext[0]);
9869         YY_BREAK
9870 case 498:
9871 YY_RULE_SETUP
9872 FAIL("Bad attribute `%s' in `route' element start tag.",yytext);
9873         YY_BREAK
9874 case YY_STATE_EOF(AL_surfxml_route):
9875 FAIL("EOF in attribute list of `route' element.");
9876         YY_BREAK
9877
9878 case 499:
9879 /* rule 499 can match eol */
9880 YY_RULE_SETUP
9881 {
9882   LEAVE;
9883   ETag_surfxml_route();
9884   popbuffer(); /* attribute */
9885   switch (YY_START) {
9886    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;
9887    case S_surfxml_zone: case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
9888   }
9889  }
9890         YY_BREAK
9891 case 500:
9892 /* rule 500 can match eol */
9893 YY_RULE_SETUP
9894 FAIL("Unexpected end-tag `%s': `</route>' expected.",yytext);
9895         YY_BREAK
9896 case 501:
9897 YY_RULE_SETUP
9898 FAIL("Unexpected character `%c': `</route>' expected.",yytext[0]);
9899         YY_BREAK
9900 case YY_STATE_EOF(E_surfxml_route):
9901 case YY_STATE_EOF(S_surfxml_route):
9902 case YY_STATE_EOF(S_surfxml_route_2):
9903 FAIL("Premature EOF: `</route>' expected.");
9904         YY_BREAK
9905
9906 case 502:
9907 /* rule 502 can match eol */
9908 YY_RULE_SETUP
9909 FAIL("Starting tag <router> is not allowed here.");
9910         YY_BREAK
9911 case 503:
9912 /* rule 503 can match eol */
9913 YY_RULE_SETUP
9914 {
9915   AX_surfxml_router_coordinates = 0;
9916   surfxml_router_coordinates_isset = 0;
9917   AX_surfxml_router_id = 0;
9918   surfxml_router_id_isset = 0;
9919   ENTER(AL_surfxml_router); pushbuffer(0);
9920   }
9921         YY_BREAK
9922
9923 case 504:
9924 /* rule 504 can match eol */
9925 YY_RULE_SETUP
9926 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);
9927         YY_BREAK
9928 case 505:
9929 /* rule 505 can match eol */
9930 YY_RULE_SETUP
9931 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);
9932         YY_BREAK
9933 case 506:
9934 /* rule 506 can match eol */
9935 YY_RULE_SETUP
9936 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);
9937         YY_BREAK
9938 case 507:
9939 /* rule 507 can match eol */
9940 YY_RULE_SETUP
9941 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);
9942         YY_BREAK
9943 case 508:
9944 YY_RULE_SETUP
9945 {
9946   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
9947   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
9948  }
9949         YY_BREAK
9950 case 509:
9951 YY_RULE_SETUP
9952 {
9953   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
9954   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
9955   switch (YY_START) {
9956    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;
9957    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
9958   }
9959  }
9960         YY_BREAK
9961 case 510:
9962 YY_RULE_SETUP
9963 FAIL("Unexpected character `%c' in attribute list of router element.", yytext[0]);
9964         YY_BREAK
9965 case 511:
9966 YY_RULE_SETUP
9967 FAIL("Bad attribute `%s' in `router' element start tag.",yytext);
9968         YY_BREAK
9969 case YY_STATE_EOF(AL_surfxml_router):
9970 FAIL("EOF in attribute list of `router' element.");
9971         YY_BREAK
9972
9973 case 512:
9974 /* rule 512 can match eol */
9975 YY_RULE_SETUP
9976 {
9977   LEAVE;
9978   ETag_surfxml_router();
9979   popbuffer(); /* attribute */
9980   switch (YY_START) {
9981    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;
9982    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
9983   }
9984  }
9985         YY_BREAK
9986 case 513:
9987 /* rule 513 can match eol */
9988 YY_RULE_SETUP
9989 FAIL("Unexpected end-tag `%s': `</router>' expected.",yytext);
9990         YY_BREAK
9991 case 514:
9992 YY_RULE_SETUP
9993 FAIL("Unexpected character `%c': `</router>' expected.",yytext[0]);
9994         YY_BREAK
9995 case YY_STATE_EOF(E_surfxml_router):
9996 FAIL("Premature EOF: `</router>' expected.");
9997         YY_BREAK
9998
9999 case 515:
10000 /* rule 515 can match eol */
10001 YY_RULE_SETUP
10002 FAIL("Starting tag <storage> is not allowed here.");
10003         YY_BREAK
10004 case 516:
10005 /* rule 516 can match eol */
10006 YY_RULE_SETUP
10007 {
10008   AX_surfxml_storage_attach = 0;
10009   surfxml_storage_attach_isset = 0;
10010   AX_surfxml_storage_content = 0;
10011   surfxml_storage_content_isset = 0;
10012   AX_surfxml_storage_id = 0;
10013   surfxml_storage_id_isset = 0;
10014   AX_surfxml_storage_typeId = 0;
10015   surfxml_storage_typeId_isset = 0;
10016   ENTER(AL_surfxml_storage); pushbuffer(0);
10017   }
10018         YY_BREAK
10019
10020 case 517:
10021 /* rule 517 can match eol */
10022 YY_RULE_SETUP
10023 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);
10024         YY_BREAK
10025 case 518:
10026 /* rule 518 can match eol */
10027 YY_RULE_SETUP
10028 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);
10029         YY_BREAK
10030 case 519:
10031 /* rule 519 can match eol */
10032 YY_RULE_SETUP
10033 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);
10034         YY_BREAK
10035 case 520:
10036 /* rule 520 can match eol */
10037 YY_RULE_SETUP
10038 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);
10039         YY_BREAK
10040 case 521:
10041 /* rule 521 can match eol */
10042 YY_RULE_SETUP
10043 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);
10044         YY_BREAK
10045 case 522:
10046 /* rule 522 can match eol */
10047 YY_RULE_SETUP
10048 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);
10049         YY_BREAK
10050 case 523:
10051 /* rule 523 can match eol */
10052 YY_RULE_SETUP
10053 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);
10054         YY_BREAK
10055 case 524:
10056 /* rule 524 can match eol */
10057 YY_RULE_SETUP
10058 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);
10059         YY_BREAK
10060 case 525:
10061 YY_RULE_SETUP
10062 {
10063   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
10064   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
10065   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
10066   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
10067  }
10068         YY_BREAK
10069 case 526:
10070 YY_RULE_SETUP
10071 {
10072   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
10073   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
10074   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
10075   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
10076   switch (YY_START) {
10077    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;
10078    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10079   }
10080  }
10081         YY_BREAK
10082 case 527:
10083 YY_RULE_SETUP
10084 FAIL("Unexpected character `%c' in attribute list of storage element.", yytext[0]);
10085         YY_BREAK
10086 case 528:
10087 YY_RULE_SETUP
10088 FAIL("Bad attribute `%s' in `storage' element start tag.",yytext);
10089         YY_BREAK
10090 case YY_STATE_EOF(AL_surfxml_storage):
10091 FAIL("EOF in attribute list of `storage' element.");
10092         YY_BREAK
10093
10094 case 529:
10095 /* rule 529 can match eol */
10096 YY_RULE_SETUP
10097 {
10098   LEAVE;
10099   ETag_surfxml_storage();
10100   popbuffer(); /* attribute */
10101   switch (YY_START) {
10102    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;
10103    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10104   }
10105  }
10106         YY_BREAK
10107 case 530:
10108 /* rule 530 can match eol */
10109 YY_RULE_SETUP
10110 FAIL("Unexpected end-tag `%s': `</storage>' expected.",yytext);
10111         YY_BREAK
10112 case 531:
10113 YY_RULE_SETUP
10114 FAIL("Unexpected character `%c': `</storage>' expected.",yytext[0]);
10115         YY_BREAK
10116 case YY_STATE_EOF(E_surfxml_storage):
10117 case YY_STATE_EOF(S_surfxml_storage):
10118 case YY_STATE_EOF(S_surfxml_storage_2):
10119 FAIL("Premature EOF: `</storage>' expected.");
10120         YY_BREAK
10121
10122 case 532:
10123 /* rule 532 can match eol */
10124 YY_RULE_SETUP
10125 FAIL("Starting tag <storage_type> is not allowed here.");
10126         YY_BREAK
10127 case 533:
10128 /* rule 533 can match eol */
10129 YY_RULE_SETUP
10130 {
10131   AX_surfxml_storage___type_content = 0;
10132   surfxml_storage___type_content_isset = 0;
10133   AX_surfxml_storage___type_id = 0;
10134   surfxml_storage___type_id_isset = 0;
10135   AX_surfxml_storage___type_model = 16;
10136   surfxml_storage___type_model_isset = 0;
10137   AX_surfxml_storage___type_size = 0;
10138   surfxml_storage___type_size_isset = 0;
10139   ENTER(AL_surfxml_storage___type); pushbuffer(0);
10140   }
10141         YY_BREAK
10142
10143 case 534:
10144 /* rule 534 can match eol */
10145 YY_RULE_SETUP
10146 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);
10147         YY_BREAK
10148 case 535:
10149 /* rule 535 can match eol */
10150 YY_RULE_SETUP
10151 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);
10152         YY_BREAK
10153 case 536:
10154 /* rule 536 can match eol */
10155 YY_RULE_SETUP
10156 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);
10157         YY_BREAK
10158 case 537:
10159 /* rule 537 can match eol */
10160 YY_RULE_SETUP
10161 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);
10162         YY_BREAK
10163 case 538:
10164 /* rule 538 can match eol */
10165 YY_RULE_SETUP
10166 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);
10167         YY_BREAK
10168 case 539:
10169 /* rule 539 can match eol */
10170 YY_RULE_SETUP
10171 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);
10172         YY_BREAK
10173 case 540:
10174 /* rule 540 can match eol */
10175 YY_RULE_SETUP
10176 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);
10177         YY_BREAK
10178 case 541:
10179 /* rule 541 can match eol */
10180 YY_RULE_SETUP
10181 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);
10182         YY_BREAK
10183 case 542:
10184 YY_RULE_SETUP
10185 {
10186   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
10187   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
10188   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
10189  }
10190         YY_BREAK
10191 case 543:
10192 YY_RULE_SETUP
10193 {
10194   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
10195   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
10196   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
10197   switch (YY_START) {
10198    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;
10199    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10200   }
10201  }
10202         YY_BREAK
10203 case 544:
10204 YY_RULE_SETUP
10205 FAIL("Unexpected character `%c' in attribute list of storage_type element.", yytext[0]);
10206         YY_BREAK
10207 case 545:
10208 YY_RULE_SETUP
10209 FAIL("Bad attribute `%s' in `storage_type' element start tag.",yytext);
10210         YY_BREAK
10211 case YY_STATE_EOF(AL_surfxml_storage___type):
10212 FAIL("EOF in attribute list of `storage_type' element.");
10213         YY_BREAK
10214
10215 case 546:
10216 /* rule 546 can match eol */
10217 YY_RULE_SETUP
10218 {
10219   LEAVE;
10220   ETag_surfxml_storage___type();
10221   popbuffer(); /* attribute */
10222   switch (YY_START) {
10223    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;
10224    case S_surfxml_zone: case S_surfxml_zone_13: case S_surfxml_zone_14: case S_surfxml_zone_1: case S_surfxml_zone_3: SET(S_surfxml_zone_14); break;
10225   }
10226  }
10227         YY_BREAK
10228 case 547:
10229 /* rule 547 can match eol */
10230 YY_RULE_SETUP
10231 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",yytext);
10232         YY_BREAK
10233 case 548:
10234 YY_RULE_SETUP
10235 FAIL("Unexpected character `%c': `</storage_type>' expected.",yytext[0]);
10236         YY_BREAK
10237 case YY_STATE_EOF(E_surfxml_storage___type):
10238 case YY_STATE_EOF(S_surfxml_storage___type):
10239 case YY_STATE_EOF(S_surfxml_storage___type_2):
10240 FAIL("Premature EOF: `</storage_type>' expected.");
10241         YY_BREAK
10242
10243 case 549:
10244 /* rule 549 can match eol */
10245 YY_RULE_SETUP
10246 FAIL("Starting tag <trace> is not allowed here.");
10247         YY_BREAK
10248 case 550:
10249 /* rule 550 can match eol */
10250 YY_RULE_SETUP
10251 {
10252   AX_surfxml_trace_file = 0;
10253   surfxml_trace_file_isset = 0;
10254   AX_surfxml_trace_id = 0;
10255   surfxml_trace_id_isset = 0;
10256   AX_surfxml_trace_periodicity = 0;
10257   surfxml_trace_periodicity_isset = 0;
10258   ENTER(AL_surfxml_trace); pushbuffer(0);
10259   }
10260         YY_BREAK
10261
10262 case 551:
10263 /* rule 551 can match eol */
10264 YY_RULE_SETUP
10265 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);
10266         YY_BREAK
10267 case 552:
10268 /* rule 552 can match eol */
10269 YY_RULE_SETUP
10270 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);
10271         YY_BREAK
10272 case 553:
10273 /* rule 553 can match eol */
10274 YY_RULE_SETUP
10275 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);
10276         YY_BREAK
10277 case 554:
10278 /* rule 554 can match eol */
10279 YY_RULE_SETUP
10280 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);
10281         YY_BREAK
10282 case 555:
10283 /* rule 555 can match eol */
10284 YY_RULE_SETUP
10285 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);
10286         YY_BREAK
10287 case 556:
10288 /* rule 556 can match eol */
10289 YY_RULE_SETUP
10290 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);
10291         YY_BREAK
10292 case 557:
10293 YY_RULE_SETUP
10294 {
10295   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
10296   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
10297   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
10298  }
10299         YY_BREAK
10300 case 558:
10301 YY_RULE_SETUP
10302 {
10303   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
10304   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
10305   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
10306   switch (YY_START) {
10307    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;
10308    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10309    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;
10310    case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_4: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10311    case S_surfxml_zone: case S_surfxml_zone_13: SET(S_surfxml_zone_14); break;
10312    case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
10313    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10314    case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10315   }
10316  }
10317         YY_BREAK
10318 case 559:
10319 YY_RULE_SETUP
10320 FAIL("Unexpected character `%c' in attribute list of trace element.", yytext[0]);
10321         YY_BREAK
10322 case 560:
10323 YY_RULE_SETUP
10324 FAIL("Bad attribute `%s' in `trace' element start tag.",yytext);
10325         YY_BREAK
10326 case YY_STATE_EOF(AL_surfxml_trace):
10327 FAIL("EOF in attribute list of `trace' element.");
10328         YY_BREAK
10329
10330 case 561:
10331 /* rule 561 can match eol */
10332 YY_RULE_SETUP
10333 {
10334   LEAVE;
10335   BUFFERDONE;
10336   ETag_surfxml_trace();
10337   surfxml_pcdata_ix = popbuffer();
10338   popbuffer(); /* attribute */
10339   switch (YY_START) {
10340    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;
10341    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10342    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;
10343    case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_4: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10344    case S_surfxml_zone: case S_surfxml_zone_13: SET(S_surfxml_zone_14); break;
10345    case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
10346    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10347    case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10348   }
10349  }
10350         YY_BREAK
10351 case 562:
10352 /* rule 562 can match eol */
10353 YY_RULE_SETUP
10354 FAIL("Unexpected end-tag `%s': `</trace>' expected.",yytext);
10355         YY_BREAK
10356 case YY_STATE_EOF(IN_trace):
10357 FAIL("Premature EOF: `</trace>' expected.");
10358         YY_BREAK
10359
10360 case 563:
10361 /* rule 563 can match eol */
10362 YY_RULE_SETUP
10363 FAIL("Starting tag <trace_connect> is not allowed here.");
10364         YY_BREAK
10365 case 564:
10366 /* rule 564 can match eol */
10367 YY_RULE_SETUP
10368 {
10369   AX_surfxml_trace___connect_element = 0;
10370   surfxml_trace___connect_element_isset = 0;
10371   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10372   surfxml_trace___connect_kind_isset = 0;
10373   AX_surfxml_trace___connect_trace = 0;
10374   surfxml_trace___connect_trace_isset = 0;
10375   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
10376   }
10377         YY_BREAK
10378
10379 case 565:
10380 /* rule 565 can match eol */
10381 YY_RULE_SETUP
10382 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);
10383         YY_BREAK
10384 case 566:
10385 /* rule 566 can match eol */
10386 YY_RULE_SETUP
10387 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);
10388         YY_BREAK
10389 case 567:
10390 /* rule 567 can match eol */
10391 case 568:
10392 /* rule 568 can match eol */
10393 YY_RULE_SETUP
10394 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10395         YY_BREAK
10396 case 569:
10397 /* rule 569 can match eol */
10398 case 570:
10399 /* rule 570 can match eol */
10400 YY_RULE_SETUP
10401 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_SPEED;
10402         YY_BREAK
10403 case 571:
10404 /* rule 571 can match eol */
10405 case 572:
10406 /* rule 572 can match eol */
10407 YY_RULE_SETUP
10408 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
10409         YY_BREAK
10410 case 573:
10411 /* rule 573 can match eol */
10412 case 574:
10413 /* rule 574 can match eol */
10414 YY_RULE_SETUP
10415 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
10416         YY_BREAK
10417 case 575:
10418 /* rule 575 can match eol */
10419 case 576:
10420 /* rule 576 can match eol */
10421 YY_RULE_SETUP
10422 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
10423         YY_BREAK
10424 case 577:
10425 /* rule 577 can match eol */
10426 YY_RULE_SETUP
10427 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);
10428         YY_BREAK
10429 case 578:
10430 /* rule 578 can match eol */
10431 YY_RULE_SETUP
10432 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);
10433         YY_BREAK
10434 case 579:
10435 YY_RULE_SETUP
10436 {
10437   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10438   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10439   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
10440  }
10441         YY_BREAK
10442 case 580:
10443 YY_RULE_SETUP
10444 {
10445   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10446   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10447   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
10448   switch (YY_START) {
10449    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;
10450    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10451    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;
10452    case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_4: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10453    case S_surfxml_zone: case S_surfxml_zone_13: SET(S_surfxml_zone_14); break;
10454    case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
10455    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10456    case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10457   }
10458  }
10459         YY_BREAK
10460 case 581:
10461 YY_RULE_SETUP
10462 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", yytext[0]);
10463         YY_BREAK
10464 case 582:
10465 YY_RULE_SETUP
10466 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",yytext);
10467         YY_BREAK
10468 case YY_STATE_EOF(AL_surfxml_trace___connect):
10469 FAIL("EOF in attribute list of `trace_connect' element.");
10470         YY_BREAK
10471
10472 case 583:
10473 /* rule 583 can match eol */
10474 YY_RULE_SETUP
10475 {
10476   LEAVE;
10477   ETag_surfxml_trace___connect();
10478   popbuffer(); /* attribute */
10479   switch (YY_START) {
10480    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;
10481    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10482    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;
10483    case S_surfxml_zone_10: case S_surfxml_zone_11: case S_surfxml_zone_4: case S_surfxml_zone_7: SET(S_surfxml_zone_11); break;
10484    case S_surfxml_zone: case S_surfxml_zone_13: SET(S_surfxml_zone_14); break;
10485    case S_surfxml_zone_12: case S_surfxml_zone_14: case S_surfxml_zone_15: case S_surfxml_zone_16: case S_surfxml_zone_3: SET(S_surfxml_zone_16); break;
10486    case S_surfxml_zone_1: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10487    case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10488   }
10489  }
10490         YY_BREAK
10491 case 584:
10492 /* rule 584 can match eol */
10493 YY_RULE_SETUP
10494 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",yytext);
10495         YY_BREAK
10496 case 585:
10497 YY_RULE_SETUP
10498 FAIL("Unexpected character `%c': `</trace_connect>' expected.",yytext[0]);
10499         YY_BREAK
10500 case YY_STATE_EOF(E_surfxml_trace___connect):
10501 FAIL("Premature EOF: `</trace_connect>' expected.");
10502         YY_BREAK
10503
10504 /* <!-- A zone is either an internal node that contains other zones, 
10505   *      or a  leaf containing hosts and other leaf-like elements -->
10506   *           (((AS|zone|include|link|backbone|cabinet|cluster|peer|trace|trace_connect)*,
10507   *             (zoneRoute|ASroute|trace|trace_connect|bypassASroute)*,
10508   *         (trace|trace_connect)*)
10509   *        |((include|storage_type|storage|host|gpu|cabinet|router|link|backbone|trace|trace_connect|host_link)*,
10510   *          (route|trace|trace_connect|bypassRoute)*)))>  */
10511 case 586:
10512 /* rule 586 can match eol */
10513 YY_RULE_SETUP
10514 FAIL("Starting tag <zone> is not allowed here.");
10515         YY_BREAK
10516 case 587:
10517 /* rule 587 can match eol */
10518 YY_RULE_SETUP
10519 {
10520   AX_surfxml_zone_id = 0;
10521   surfxml_zone_id_isset = 0;
10522   AX_surfxml_zone_routing = AU_surfxml_zone_routing;
10523   surfxml_zone_routing_isset = 0;
10524   ENTER(AL_surfxml_zone); pushbuffer(0);
10525   }
10526         YY_BREAK
10527
10528 case 588:
10529 /* rule 588 can match eol */
10530 YY_RULE_SETUP
10531 if (surfxml_zone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_zone>");} surfxml_zone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zone_id);
10532         YY_BREAK
10533 case 589:
10534 /* rule 589 can match eol */
10535 YY_RULE_SETUP
10536 if (surfxml_zone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_zone>");}  surfxml_zone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zone_id);
10537         YY_BREAK
10538 case 590:
10539 /* rule 590 can match eol */
10540 case 591:
10541 /* rule 591 can match eol */
10542 YY_RULE_SETUP
10543 A_surfxml_zone_routing = A_surfxml_zone_routing_Full;
10544         YY_BREAK
10545 case 592:
10546 /* rule 592 can match eol */
10547 case 593:
10548 /* rule 593 can match eol */
10549 YY_RULE_SETUP
10550 A_surfxml_zone_routing = A_surfxml_zone_routing_Floyd;
10551         YY_BREAK
10552 case 594:
10553 /* rule 594 can match eol */
10554 case 595:
10555 /* rule 595 can match eol */
10556 YY_RULE_SETUP
10557 A_surfxml_zone_routing = A_surfxml_zone_routing_Dijkstra;
10558         YY_BREAK
10559 case 596:
10560 /* rule 596 can match eol */
10561 case 597:
10562 /* rule 597 can match eol */
10563 YY_RULE_SETUP
10564 A_surfxml_zone_routing = A_surfxml_zone_routing_DijkstraCache;
10565         YY_BREAK
10566 case 598:
10567 /* rule 598 can match eol */
10568 case 599:
10569 /* rule 599 can match eol */
10570 YY_RULE_SETUP
10571 A_surfxml_zone_routing = A_surfxml_zone_routing_None;
10572         YY_BREAK
10573 case 600:
10574 /* rule 600 can match eol */
10575 case 601:
10576 /* rule 601 can match eol */
10577 YY_RULE_SETUP
10578 A_surfxml_zone_routing = A_surfxml_zone_routing_Vivaldi;
10579         YY_BREAK
10580 case 602:
10581 /* rule 602 can match eol */
10582 case 603:
10583 /* rule 603 can match eol */
10584 YY_RULE_SETUP
10585 A_surfxml_zone_routing = A_surfxml_zone_routing_Cluster;
10586         YY_BREAK
10587 case 604:
10588 /* rule 604 can match eol */
10589 case 605:
10590 /* rule 605 can match eol */
10591 YY_RULE_SETUP
10592 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterTorus;
10593         YY_BREAK
10594 case 606:
10595 /* rule 606 can match eol */
10596 case 607:
10597 /* rule 607 can match eol */
10598 YY_RULE_SETUP
10599 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterFatTree;
10600         YY_BREAK
10601 case 608:
10602 /* rule 608 can match eol */
10603 case 609:
10604 /* rule 609 can match eol */
10605 YY_RULE_SETUP
10606 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterDragonfly;
10607         YY_BREAK
10608 case 610:
10609 YY_RULE_SETUP
10610 {
10611   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10612   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10613   LEAVE; STag_surfxml_zone();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zone);
10614  }
10615         YY_BREAK
10616 case 611:
10617 YY_RULE_SETUP
10618 {
10619   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10620   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10621   LEAVE; STag_surfxml_zone(); surfxml_pcdata_ix = 0; ETag_surfxml_zone(); popbuffer(); /* attribute */
10622   switch (YY_START) {
10623    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;
10624    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10625    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;
10626    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10627   }
10628  }
10629         YY_BREAK
10630 case 612:
10631 YY_RULE_SETUP
10632 FAIL("Unexpected character `%c' in attribute list of zone element.", yytext[0]);
10633         YY_BREAK
10634 case 613:
10635 YY_RULE_SETUP
10636 FAIL("Bad attribute `%s' in `zone' element start tag.",yytext);
10637         YY_BREAK
10638 case YY_STATE_EOF(AL_surfxml_zone):
10639 FAIL("EOF in attribute list of `zone' element.");
10640         YY_BREAK
10641
10642 case 614:
10643 /* rule 614 can match eol */
10644 YY_RULE_SETUP
10645 {
10646   LEAVE;
10647   ETag_surfxml_zone();
10648   popbuffer(); /* attribute */
10649   switch (YY_START) {
10650    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;
10651    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10652    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;
10653    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10654   }
10655  }
10656         YY_BREAK
10657 case 615:
10658 /* rule 615 can match eol */
10659 YY_RULE_SETUP
10660 FAIL("Unexpected end-tag `%s': `</zone>' expected.",yytext);
10661         YY_BREAK
10662 case 616:
10663 YY_RULE_SETUP
10664 FAIL("Unexpected character `%c': `</zone>' expected.",yytext[0]);
10665         YY_BREAK
10666 case YY_STATE_EOF(E_surfxml_zone):
10667 case YY_STATE_EOF(S_surfxml_zone):
10668 case YY_STATE_EOF(S_surfxml_zone_1):
10669 case YY_STATE_EOF(S_surfxml_zone_11):
10670 case YY_STATE_EOF(S_surfxml_zone_12):
10671 case YY_STATE_EOF(S_surfxml_zone_14):
10672 case YY_STATE_EOF(S_surfxml_zone_16):
10673 case YY_STATE_EOF(S_surfxml_zone_3):
10674 case YY_STATE_EOF(S_surfxml_zone_4):
10675 case YY_STATE_EOF(S_surfxml_zone_6):
10676 case YY_STATE_EOF(S_surfxml_zone_7):
10677 case YY_STATE_EOF(S_surfxml_zone_9):
10678 FAIL("Premature EOF: `</zone>' expected.");
10679         YY_BREAK
10680
10681 case 617:
10682 /* rule 617 can match eol */
10683 YY_RULE_SETUP
10684 FAIL("Starting tag <zoneRoute> is not allowed here.");
10685         YY_BREAK
10686 case 618:
10687 /* rule 618 can match eol */
10688 YY_RULE_SETUP
10689 {
10690   AX_surfxml_zoneRoute_dst = 0;
10691   surfxml_zoneRoute_dst_isset = 0;
10692   AX_surfxml_zoneRoute_gw___dst = 0;
10693   surfxml_zoneRoute_gw___dst_isset = 0;
10694   AX_surfxml_zoneRoute_gw___src = 0;
10695   surfxml_zoneRoute_gw___src_isset = 0;
10696   AX_surfxml_zoneRoute_src = 0;
10697   surfxml_zoneRoute_src_isset = 0;
10698   AX_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10699   surfxml_zoneRoute_symmetrical_isset = 0;
10700   ENTER(AL_surfxml_zoneRoute); pushbuffer(0);
10701   }
10702         YY_BREAK
10703
10704 case 619:
10705 /* rule 619 can match eol */
10706 YY_RULE_SETUP
10707 if (surfxml_zoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_zoneRoute>");} surfxml_zoneRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_dst);
10708         YY_BREAK
10709 case 620:
10710 /* rule 620 can match eol */
10711 YY_RULE_SETUP
10712 if (surfxml_zoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_zoneRoute>");}  surfxml_zoneRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_dst);
10713         YY_BREAK
10714 case 621:
10715 /* rule 621 can match eol */
10716 YY_RULE_SETUP
10717 if (surfxml_zoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_zoneRoute>");} surfxml_zoneRoute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_gw___dst);
10718         YY_BREAK
10719 case 622:
10720 /* rule 622 can match eol */
10721 YY_RULE_SETUP
10722 if (surfxml_zoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_zoneRoute>");}  surfxml_zoneRoute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_gw___dst);
10723         YY_BREAK
10724 case 623:
10725 /* rule 623 can match eol */
10726 YY_RULE_SETUP
10727 if (surfxml_zoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_zoneRoute>");} surfxml_zoneRoute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_gw___src);
10728         YY_BREAK
10729 case 624:
10730 /* rule 624 can match eol */
10731 YY_RULE_SETUP
10732 if (surfxml_zoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_zoneRoute>");}  surfxml_zoneRoute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_gw___src);
10733         YY_BREAK
10734 case 625:
10735 /* rule 625 can match eol */
10736 YY_RULE_SETUP
10737 if (surfxml_zoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_zoneRoute>");} surfxml_zoneRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_src);
10738         YY_BREAK
10739 case 626:
10740 /* rule 626 can match eol */
10741 YY_RULE_SETUP
10742 if (surfxml_zoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_zoneRoute>");}  surfxml_zoneRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_src);
10743         YY_BREAK
10744 case 627:
10745 /* rule 627 can match eol */
10746 case 628:
10747 /* rule 628 can match eol */
10748 YY_RULE_SETUP
10749 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10750         YY_BREAK
10751 case 629:
10752 /* rule 629 can match eol */
10753 case 630:
10754 /* rule 630 can match eol */
10755 YY_RULE_SETUP
10756 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_NO;
10757         YY_BREAK
10758 case 631:
10759 /* rule 631 can match eol */
10760 case 632:
10761 /* rule 632 can match eol */
10762 YY_RULE_SETUP
10763 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_yes;
10764         YY_BREAK
10765 case 633:
10766 /* rule 633 can match eol */
10767 case 634:
10768 /* rule 634 can match eol */
10769 YY_RULE_SETUP
10770 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_no;
10771         YY_BREAK
10772 case 635:
10773 YY_RULE_SETUP
10774 {
10775   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10776   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10777   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10778   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10779   LEAVE; STag_surfxml_zoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zoneRoute);
10780  }
10781         YY_BREAK
10782 case 636:
10783 YY_RULE_SETUP
10784 {
10785   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10786   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10787   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10788   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10789   LEAVE; STag_surfxml_zoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_zoneRoute(); popbuffer(); /* attribute */
10790   switch (YY_START) {
10791    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10792    case S_surfxml_AS: 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;
10793    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10794   }
10795  }
10796         YY_BREAK
10797 case 637:
10798 YY_RULE_SETUP
10799 FAIL("Unexpected character `%c' in attribute list of zoneRoute element.", yytext[0]);
10800         YY_BREAK
10801 case 638:
10802 YY_RULE_SETUP
10803 FAIL("Bad attribute `%s' in `zoneRoute' element start tag.",yytext);
10804         YY_BREAK
10805 case YY_STATE_EOF(AL_surfxml_zoneRoute):
10806 FAIL("EOF in attribute list of `zoneRoute' element.");
10807         YY_BREAK
10808
10809 case 639:
10810 /* rule 639 can match eol */
10811 YY_RULE_SETUP
10812 {
10813   LEAVE;
10814   ETag_surfxml_zoneRoute();
10815   popbuffer(); /* attribute */
10816   switch (YY_START) {
10817    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
10818    case S_surfxml_AS: 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;
10819    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_8: case S_surfxml_zone_9: SET(S_surfxml_zone_9); break;
10820   }
10821  }
10822         YY_BREAK
10823 case 640:
10824 /* rule 640 can match eol */
10825 YY_RULE_SETUP
10826 FAIL("Unexpected end-tag `%s': `</zoneRoute>' expected.",yytext);
10827         YY_BREAK
10828 case 641:
10829 YY_RULE_SETUP
10830 FAIL("Unexpected character `%c': `</zoneRoute>' expected.",yytext[0]);
10831         YY_BREAK
10832 case YY_STATE_EOF(E_surfxml_zoneRoute):
10833 case YY_STATE_EOF(S_surfxml_zoneRoute):
10834 case YY_STATE_EOF(S_surfxml_zoneRoute_2):
10835 FAIL("Premature EOF: `</zoneRoute>' expected.");
10836         YY_BREAK
10837
10838 /* EPILOG: after the root element. */
10839
10840 case 642:
10841 YY_RULE_SETUP
10842 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
10843         YY_BREAK
10844 case YY_STATE_EOF(EPILOG):
10845 SUCCEED;
10846         YY_BREAK
10847
10848 /* CHARACTER DATA. */
10849
10850 /* Non-defined standard entities... */
10851 case 643:
10852 YY_RULE_SETUP
10853 BUFFERPUTC('&');
10854         YY_BREAK
10855 case 644:
10856 YY_RULE_SETUP
10857 BUFFERPUTC('<');
10858         YY_BREAK
10859 case 645:
10860 YY_RULE_SETUP
10861 BUFFERPUTC('>');
10862         YY_BREAK
10863 case 646:
10864 YY_RULE_SETUP
10865 BUFFERPUTC('\'');
10866         YY_BREAK
10867 case 647:
10868 YY_RULE_SETUP
10869 BUFFERPUTC('"');
10870         YY_BREAK
10871 /* Character entities. */
10872 case 648:
10873 YY_RULE_SETUP
10874 BUFFERPUTC((unsigned char)atoi(yytext+2));
10875         YY_BREAK
10876 case 649:
10877 YY_RULE_SETUP
10878 BUFFERPUTC((unsigned char)strtol(yytext+3,NULL,16));
10879         YY_BREAK
10880
10881 case 650:
10882 /* rule 650 can match eol */
10883 case 651:
10884 /* rule 651 can match eol */
10885 case 652:
10886 /* rule 652 can match eol */
10887 case 653:
10888 /* rule 653 can match eol */
10889 YY_RULE_SETUP
10890 BUFFERPUTC('\n');
10891         YY_BREAK
10892
10893 case 654:
10894 YY_RULE_SETUP
10895 ENTER(CDATA);
10896         YY_BREAK
10897 case 655:
10898 YY_RULE_SETUP
10899 FAIL("Unexpected `]""]>' in character data.");
10900         YY_BREAK
10901
10902 case 656:
10903 YY_RULE_SETUP
10904 BUFFERDONE; LEAVE;
10905         YY_BREAK
10906 case YY_STATE_EOF(VALUE1):
10907 FAIL("EOF in literal (\"'\" expected).");
10908         YY_BREAK
10909
10910 case 657:
10911 YY_RULE_SETUP
10912 BUFFERDONE; LEAVE;
10913         YY_BREAK
10914 case YY_STATE_EOF(VALUE2):
10915 FAIL("EOF in literal (`\"' expected).");
10916         YY_BREAK
10917
10918 case 658:
10919 /* rule 658 can match eol */
10920 YY_RULE_SETUP
10921 BUFFERPUTC(yytext[0]);
10922         YY_BREAK
10923 case 659:
10924 YY_RULE_SETUP
10925 FAIL("Spurious `%c' in character data.",yytext[0]);
10926         YY_BREAK
10927
10928 case 660:
10929 YY_RULE_SETUP
10930 LEAVE;
10931         YY_BREAK
10932 /* "]""]"               BUFFERPUTC(yytext[0]); BUFFERPUTC(yytext[1]); */
10933 case 661:
10934 YY_RULE_SETUP
10935 BUFFERPUTC(yytext[0]);
10936         YY_BREAK
10937 case YY_STATE_EOF(CDATA):
10938 FAIL("EOF in CDATA section.");
10939         YY_BREAK
10940
10941 /* Impossible rules to avoid warnings from flex(1). */
10942 /* Ideally, this should be replaced by code in flexml.pl that
10943     generates just the states not covered by other rules. */
10944
10945 case 662:
10946 /* rule 662 can match eol */
10947 YY_RULE_SETUP
10948 FAIL("Syntax error on character `%c'.", yytext[0]);
10949         YY_BREAK
10950
10951 case 663:
10952 YY_RULE_SETUP
10953 ECHO;
10954         YY_BREAK
10955 case YY_STATE_EOF(INITIAL):
10956 case YY_STATE_EOF(S_surfxml_AS_2):
10957 case YY_STATE_EOF(S_surfxml_AS_5):
10958 case YY_STATE_EOF(S_surfxml_AS_7):
10959 case YY_STATE_EOF(S_surfxml_ASroute_1):
10960 case YY_STATE_EOF(S_surfxml_actor_1):
10961 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
10962 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
10963 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_1):
10964 case YY_STATE_EOF(S_surfxml_cluster_1):
10965 case YY_STATE_EOF(S_surfxml_config_1):
10966 case YY_STATE_EOF(S_surfxml_host_1):
10967 case YY_STATE_EOF(S_surfxml_include_1):
10968 case YY_STATE_EOF(S_surfxml_link_1):
10969 case YY_STATE_EOF(ROOT_surfxml_platform):
10970 case YY_STATE_EOF(S_surfxml_platform_2):
10971 case YY_STATE_EOF(S_surfxml_platform_5):
10972 case YY_STATE_EOF(S_surfxml_platform_7):
10973 case YY_STATE_EOF(S_surfxml_process_1):
10974 case YY_STATE_EOF(S_surfxml_route_1):
10975 case YY_STATE_EOF(S_surfxml_storage_1):
10976 case YY_STATE_EOF(S_surfxml_storage___type_1):
10977 case YY_STATE_EOF(S_surfxml_zone_2):
10978 case YY_STATE_EOF(S_surfxml_zone_5):
10979 case YY_STATE_EOF(S_surfxml_zone_8):
10980 case YY_STATE_EOF(S_surfxml_zone_10):
10981 case YY_STATE_EOF(S_surfxml_zone_13):
10982 case YY_STATE_EOF(S_surfxml_zone_15):
10983 case YY_STATE_EOF(S_surfxml_zoneRoute_1):
10984 case YY_STATE_EOF(IMPOSSIBLE):
10985         yyterminate();
10986
10987         case YY_END_OF_BUFFER:
10988                 {
10989                 /* Amount of text matched not including the EOB char. */
10990                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
10991
10992                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
10993                 *yy_cp = (yy_hold_char);
10994                 YY_RESTORE_YY_MORE_OFFSET
10995
10996                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
10997                         {
10998                         /* We're scanning a new file or input source.  It's
10999                          * possible that this happened because the user
11000                          * just pointed yyin at a new source and called
11001                          * yylex().  If so, then we have to assure
11002                          * consistency between YY_CURRENT_BUFFER and our
11003                          * globals.  Here is the right place to do so, because
11004                          * this is the first action (other than possibly a
11005                          * back-up) that will match for the new input source.
11006                          */
11007                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
11008                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
11009                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
11010                         }
11011
11012                 /* Note that here we test for yy_c_buf_p "<=" to the position
11013                  * of the first EOB in the buffer, since yy_c_buf_p will
11014                  * already have been incremented past the NUL character
11015                  * (since all states make transitions on EOB to the
11016                  * end-of-buffer state).  Contrast this with the test
11017                  * in input().
11018                  */
11019                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
11020                         { /* This was really a NUL. */
11021                         yy_state_type yy_next_state;
11022
11023                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
11024
11025                         yy_current_state = yy_get_previous_state(  );
11026
11027                         /* Okay, we're now positioned to make the NUL
11028                          * transition.  We couldn't have
11029                          * yy_get_previous_state() go ahead and do it
11030                          * for us because it doesn't know how to deal
11031                          * with the possibility of jamming (and we don't
11032                          * want to build jamming into it because then it
11033                          * will run more slowly).
11034                          */
11035
11036                         yy_next_state = yy_try_NUL_trans( yy_current_state );
11037
11038                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11039
11040                         if ( yy_next_state )
11041                                 {
11042                                 /* Consume the NUL. */
11043                                 yy_cp = ++(yy_c_buf_p);
11044                                 yy_current_state = yy_next_state;
11045                                 goto yy_match;
11046                                 }
11047
11048                         else
11049                                 {
11050                                 yy_cp = (yy_c_buf_p);
11051                                 goto yy_find_action;
11052                                 }
11053                         }
11054
11055                 else switch ( yy_get_next_buffer(  ) )
11056                         {
11057                         case EOB_ACT_END_OF_FILE:
11058                                 {
11059                                 (yy_did_buffer_switch_on_eof) = 0;
11060
11061                                 if ( yywrap(  ) )
11062                                         {
11063                                         /* Note: because we've taken care in
11064                                          * yy_get_next_buffer() to have set up
11065                                          * yytext, we can now set up
11066                                          * yy_c_buf_p so that if some total
11067                                          * hoser (like flex itself) wants to
11068                                          * call the scanner after we return the
11069                                          * YY_NULL, it'll still work - another
11070                                          * YY_NULL will get returned.
11071                                          */
11072                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
11073
11074                                         yy_act = YY_STATE_EOF(YY_START);
11075                                         goto do_action;
11076                                         }
11077
11078                                 else
11079                                         {
11080                                         if ( ! (yy_did_buffer_switch_on_eof) )
11081                                                 YY_NEW_FILE;
11082                                         }
11083                                 break;
11084                                 }
11085
11086                         case EOB_ACT_CONTINUE_SCAN:
11087                                 (yy_c_buf_p) =
11088                                         (yytext_ptr) + yy_amount_of_matched_text;
11089
11090                                 yy_current_state = yy_get_previous_state(  );
11091
11092                                 yy_cp = (yy_c_buf_p);
11093                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11094                                 goto yy_match;
11095
11096                         case EOB_ACT_LAST_MATCH:
11097                                 (yy_c_buf_p) =
11098                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
11099
11100                                 yy_current_state = yy_get_previous_state(  );
11101
11102                                 yy_cp = (yy_c_buf_p);
11103                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
11104                                 goto yy_find_action;
11105                         }
11106                 break;
11107                 }
11108
11109         default:
11110                 YY_FATAL_ERROR(
11111                         "fatal flex scanner internal error--no action found" );
11112         } /* end of action switch */
11113                 } /* end of scanning one token */
11114         } /* end of user's declarations */
11115 } /* end of yylex */
11116
11117 /* yy_get_next_buffer - try to read in a new buffer
11118  *
11119  * Returns a code representing an action:
11120  *      EOB_ACT_LAST_MATCH -
11121  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
11122  *      EOB_ACT_END_OF_FILE - end of file
11123  */
11124 static int yy_get_next_buffer (void)
11125 {
11126         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
11127         char *source = (yytext_ptr);
11128         int number_to_move, i;
11129         int ret_val;
11130
11131         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
11132                 YY_FATAL_ERROR(
11133                 "fatal flex scanner internal error--end of buffer missed" );
11134
11135         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
11136                 { /* Don't try to fill the buffer, so this is an EOF. */
11137                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
11138                         {
11139                         /* We matched a single character, the EOB, so
11140                          * treat this as a final EOF.
11141                          */
11142                         return EOB_ACT_END_OF_FILE;
11143                         }
11144
11145                 else
11146                         {
11147                         /* We matched some text prior to the EOB, first
11148                          * process it.
11149                          */
11150                         return EOB_ACT_LAST_MATCH;
11151                         }
11152                 }
11153
11154         /* Try to read more data. */
11155
11156         /* First move last chars to start of buffer. */
11157         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
11158
11159         for ( i = 0; i < number_to_move; ++i )
11160                 *(dest++) = *(source++);
11161
11162         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
11163                 /* don't do the read, it's not guaranteed to return an EOF,
11164                  * just force an EOF
11165                  */
11166                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
11167
11168         else
11169                 {
11170                         int num_to_read =
11171                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
11172
11173                 while ( num_to_read <= 0 )
11174                         { /* Not enough room in the buffer - grow it. */
11175
11176                         /* just a shorter name for the current buffer */
11177                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
11178
11179                         int yy_c_buf_p_offset =
11180                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
11181
11182                         if ( b->yy_is_our_buffer )
11183                                 {
11184                                 int new_size = b->yy_buf_size * 2;
11185
11186                                 if ( new_size <= 0 )
11187                                         b->yy_buf_size += b->yy_buf_size / 8;
11188                                 else
11189                                         b->yy_buf_size *= 2;
11190
11191                                 b->yy_ch_buf = (char *)
11192                                         /* Include room in for 2 EOB chars. */
11193                                         yyrealloc( (void *) b->yy_ch_buf,
11194                                                          (yy_size_t) (b->yy_buf_size + 2)  );
11195                                 }
11196                         else
11197                                 /* Can't grow it, we don't own it. */
11198                                 b->yy_ch_buf = NULL;
11199
11200                         if ( ! b->yy_ch_buf )
11201                                 YY_FATAL_ERROR(
11202                                 "fatal error - scanner input buffer overflow" );
11203
11204                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
11205
11206                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
11207                                                 number_to_move - 1;
11208
11209                         }
11210
11211                 if ( num_to_read > YY_READ_BUF_SIZE )
11212                         num_to_read = YY_READ_BUF_SIZE;
11213
11214                 /* Read in more data. */
11215                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
11216                         (yy_n_chars), num_to_read );
11217
11218                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11219                 }
11220
11221         if ( (yy_n_chars) == 0 )
11222                 {
11223                 if ( number_to_move == YY_MORE_ADJ )
11224                         {
11225                         ret_val = EOB_ACT_END_OF_FILE;
11226                         yyrestart( yyin  );
11227                         }
11228
11229                 else
11230                         {
11231                         ret_val = EOB_ACT_LAST_MATCH;
11232                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
11233                                 YY_BUFFER_EOF_PENDING;
11234                         }
11235                 }
11236
11237         else
11238                 ret_val = EOB_ACT_CONTINUE_SCAN;
11239
11240         if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
11241                 /* Extend the array by 50%, plus the number we really need. */
11242                 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
11243                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
11244                         (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
11245                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
11246                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
11247                 /* "- 2" to take care of EOB's */
11248                 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
11249         }
11250
11251         (yy_n_chars) += number_to_move;
11252         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
11253         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
11254
11255         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
11256
11257         return ret_val;
11258 }
11259
11260 /* yy_get_previous_state - get the state just before the EOB char was reached */
11261
11262     static yy_state_type yy_get_previous_state (void)
11263 {
11264         yy_state_type yy_current_state;
11265         char *yy_cp;
11266     
11267         yy_current_state = (yy_start);
11268
11269         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
11270                 {
11271                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
11272                 if ( yy_accept[yy_current_state] )
11273                         {
11274                         (yy_last_accepting_state) = yy_current_state;
11275                         (yy_last_accepting_cpos) = yy_cp;
11276                         }
11277                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
11278                         {
11279                         yy_current_state = (int) yy_def[yy_current_state];
11280                         if ( yy_current_state >= 4018 )
11281                                 yy_c = yy_meta[yy_c];
11282                         }
11283                 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
11284                 }
11285
11286         return yy_current_state;
11287 }
11288
11289 /* yy_try_NUL_trans - try to make a transition on the NUL character
11290  *
11291  * synopsis
11292  *      next_state = yy_try_NUL_trans( current_state );
11293  */
11294     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
11295 {
11296         int yy_is_jam;
11297         char *yy_cp = (yy_c_buf_p);
11298
11299         YY_CHAR yy_c = 1;
11300         if ( yy_accept[yy_current_state] )
11301                 {
11302                 (yy_last_accepting_state) = yy_current_state;
11303                 (yy_last_accepting_cpos) = yy_cp;
11304                 }
11305         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
11306                 {
11307                 yy_current_state = (int) yy_def[yy_current_state];
11308                 if ( yy_current_state >= 4018 )
11309                         yy_c = yy_meta[yy_c];
11310                 }
11311         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
11312         yy_is_jam = (yy_current_state == 4017);
11313
11314                 return yy_is_jam ? 0 : yy_current_state;
11315 }
11316
11317 #ifndef YY_NO_UNPUT
11318
11319 #endif
11320
11321 #ifndef YY_NO_INPUT
11322 #ifdef __cplusplus
11323     static int yyinput (void)
11324 #else
11325     static int input  (void)
11326 #endif
11327
11328 {
11329         int c;
11330     
11331         *(yy_c_buf_p) = (yy_hold_char);
11332
11333         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
11334                 {
11335                 /* yy_c_buf_p now points to the character we want to return.
11336                  * If this occurs *before* the EOB characters, then it's a
11337                  * valid NUL; if not, then we've hit the end of the buffer.
11338                  */
11339                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
11340                         /* This was really a NUL. */
11341                         *(yy_c_buf_p) = '\0';
11342
11343                 else
11344                         { /* need more input */
11345                         int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
11346                         ++(yy_c_buf_p);
11347
11348                         switch ( yy_get_next_buffer(  ) )
11349                                 {
11350                                 case EOB_ACT_LAST_MATCH:
11351                                         /* This happens because yy_g_n_b()
11352                                          * sees that we've accumulated a
11353                                          * token and flags that we need to
11354                                          * try matching the token before
11355                                          * proceeding.  But for input(),
11356                                          * there's no matching to consider.
11357                                          * So convert the EOB_ACT_LAST_MATCH
11358                                          * to EOB_ACT_END_OF_FILE.
11359                                          */
11360
11361                                         /* Reset buffer status. */
11362                                         yyrestart( yyin );
11363
11364                                         /*FALLTHROUGH*/
11365
11366                                 case EOB_ACT_END_OF_FILE:
11367                                         {
11368                                         if ( yywrap(  ) )
11369                                                 return 0;
11370
11371                                         if ( ! (yy_did_buffer_switch_on_eof) )
11372                                                 YY_NEW_FILE;
11373 #ifdef __cplusplus
11374                                         return yyinput();
11375 #else
11376                                         return input();
11377 #endif
11378                                         }
11379
11380                                 case EOB_ACT_CONTINUE_SCAN:
11381                                         (yy_c_buf_p) = (yytext_ptr) + offset;
11382                                         break;
11383                                 }
11384                         }
11385                 }
11386
11387         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
11388         *(yy_c_buf_p) = '\0';   /* preserve yytext */
11389         (yy_hold_char) = *++(yy_c_buf_p);
11390
11391         if ( c == '\n' )
11392                 
11393     yylineno++;
11394 ;
11395
11396         return c;
11397 }
11398 #endif  /* ifndef YY_NO_INPUT */
11399
11400 /** Immediately switch to a different input stream.
11401  * @param input_file A readable stream.
11402  * 
11403  * @note This function does not reset the start condition to @c INITIAL .
11404  */
11405     void yyrestart  (FILE * input_file )
11406 {
11407     
11408         if ( ! YY_CURRENT_BUFFER ){
11409         yyensure_buffer_stack ();
11410                 YY_CURRENT_BUFFER_LVALUE =
11411             yy_create_buffer( yyin, YY_BUF_SIZE );
11412         }
11413
11414         yy_init_buffer( YY_CURRENT_BUFFER, input_file );
11415         yy_load_buffer_state(  );
11416 }
11417
11418 /** Switch to a different input buffer.
11419  * @param new_buffer The new input buffer.
11420  * 
11421  */
11422     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
11423 {
11424     
11425         /* TODO. We should be able to replace this entire function body
11426          * with
11427          *              yypop_buffer_state();
11428          *              yypush_buffer_state(new_buffer);
11429      */
11430         yyensure_buffer_stack ();
11431         if ( YY_CURRENT_BUFFER == new_buffer )
11432                 return;
11433
11434         if ( YY_CURRENT_BUFFER )
11435                 {
11436                 /* Flush out information for old buffer. */
11437                 *(yy_c_buf_p) = (yy_hold_char);
11438                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11439                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11440                 }
11441
11442         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11443         yy_load_buffer_state(  );
11444
11445         /* We don't actually know whether we did this switch during
11446          * EOF (yywrap()) processing, but the only time this flag
11447          * is looked at is after yywrap() is called, so it's safe
11448          * to go ahead and always set it.
11449          */
11450         (yy_did_buffer_switch_on_eof) = 1;
11451 }
11452
11453 static void yy_load_buffer_state  (void)
11454 {
11455         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
11456         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
11457         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
11458         (yy_hold_char) = *(yy_c_buf_p);
11459 }
11460
11461 /** Allocate and initialize an input buffer state.
11462  * @param file A readable stream.
11463  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
11464  * 
11465  * @return the allocated buffer state.
11466  */
11467     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
11468 {
11469         YY_BUFFER_STATE b;
11470     
11471         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
11472         if ( ! b )
11473                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
11474
11475         b->yy_buf_size = size;
11476
11477         /* yy_ch_buf has to be 2 characters longer than the size given because
11478          * we need to put in 2 end-of-buffer characters.
11479          */
11480         b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
11481         if ( ! b->yy_ch_buf )
11482                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
11483
11484         b->yy_is_our_buffer = 1;
11485
11486         yy_init_buffer( b, file );
11487
11488         return b;
11489 }
11490
11491 /** Destroy the buffer.
11492  * @param b a buffer created with yy_create_buffer()
11493  * 
11494  */
11495     void yy_delete_buffer (YY_BUFFER_STATE  b )
11496 {
11497     
11498         if ( ! b )
11499                 return;
11500
11501         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
11502                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
11503
11504         if ( b->yy_is_our_buffer )
11505                 yyfree( (void *) b->yy_ch_buf  );
11506
11507         yyfree( (void *) b  );
11508 }
11509
11510 /* Initializes or reinitializes a buffer.
11511  * This function is sometimes called more than once on the same buffer,
11512  * such as during a yyrestart() or at EOF.
11513  */
11514     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
11515
11516 {
11517         int oerrno = errno;
11518     
11519         yy_flush_buffer( b );
11520
11521         b->yy_input_file = file;
11522         b->yy_fill_buffer = 1;
11523
11524     /* If b is the current buffer, then yy_init_buffer was _probably_
11525      * called from yyrestart() or through yy_get_next_buffer.
11526      * In that case, we don't want to reset the lineno or column.
11527      */
11528     if (b != YY_CURRENT_BUFFER){
11529         b->yy_bs_lineno = 1;
11530         b->yy_bs_column = 0;
11531     }
11532
11533         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
11534     
11535         errno = oerrno;
11536 }
11537
11538 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
11539  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
11540  * 
11541  */
11542     void yy_flush_buffer (YY_BUFFER_STATE  b )
11543 {
11544         if ( ! b )
11545                 return;
11546
11547         b->yy_n_chars = 0;
11548
11549         /* We always need two end-of-buffer characters.  The first causes
11550          * a transition to the end-of-buffer state.  The second causes
11551          * a jam in that state.
11552          */
11553         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
11554         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
11555
11556         b->yy_buf_pos = &b->yy_ch_buf[0];
11557
11558         b->yy_at_bol = 1;
11559         b->yy_buffer_status = YY_BUFFER_NEW;
11560
11561         if ( b == YY_CURRENT_BUFFER )
11562                 yy_load_buffer_state(  );
11563 }
11564
11565 /** Pushes the new state onto the stack. The new state becomes
11566  *  the current state. This function will allocate the stack
11567  *  if necessary.
11568  *  @param new_buffer The new state.
11569  *  
11570  */
11571 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
11572 {
11573         if (new_buffer == NULL)
11574                 return;
11575
11576         yyensure_buffer_stack();
11577
11578         /* This block is copied from yy_switch_to_buffer. */
11579         if ( YY_CURRENT_BUFFER )
11580                 {
11581                 /* Flush out information for old buffer. */
11582                 *(yy_c_buf_p) = (yy_hold_char);
11583                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11584                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11585                 }
11586
11587         /* Only push if top exists. Otherwise, replace top. */
11588         if (YY_CURRENT_BUFFER)
11589                 (yy_buffer_stack_top)++;
11590         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11591
11592         /* copied from yy_switch_to_buffer. */
11593         yy_load_buffer_state(  );
11594         (yy_did_buffer_switch_on_eof) = 1;
11595 }
11596
11597 /** Removes and deletes the top of the stack, if present.
11598  *  The next element becomes the new top.
11599  *  
11600  */
11601 void yypop_buffer_state (void)
11602 {
11603         if (!YY_CURRENT_BUFFER)
11604                 return;
11605
11606         yy_delete_buffer(YY_CURRENT_BUFFER );
11607         YY_CURRENT_BUFFER_LVALUE = NULL;
11608         if ((yy_buffer_stack_top) > 0)
11609                 --(yy_buffer_stack_top);
11610
11611         if (YY_CURRENT_BUFFER) {
11612                 yy_load_buffer_state(  );
11613                 (yy_did_buffer_switch_on_eof) = 1;
11614         }
11615 }
11616
11617 /* Allocates the stack if it does not exist.
11618  *  Guarantees space for at least one push.
11619  */
11620 static void yyensure_buffer_stack (void)
11621 {
11622         yy_size_t num_to_alloc;
11623     
11624         if (!(yy_buffer_stack)) {
11625
11626                 /* First allocation is just for 2 elements, since we don't know if this
11627                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
11628                  * immediate realloc on the next call.
11629          */
11630       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
11631                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
11632                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
11633                                                                 );
11634                 if ( ! (yy_buffer_stack) )
11635                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
11636
11637                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
11638
11639                 (yy_buffer_stack_max) = num_to_alloc;
11640                 (yy_buffer_stack_top) = 0;
11641                 return;
11642         }
11643
11644         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
11645
11646                 /* Increase the buffer to prepare for a possible push. */
11647                 yy_size_t grow_size = 8 /* arbitrary grow size */;
11648
11649                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
11650                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
11651                                                                 ((yy_buffer_stack),
11652                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
11653                                                                 );
11654                 if ( ! (yy_buffer_stack) )
11655                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
11656
11657                 /* zero only the new slots.*/
11658                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
11659                 (yy_buffer_stack_max) = num_to_alloc;
11660         }
11661 }
11662
11663 /** Setup the input buffer state to scan directly from a user-specified character buffer.
11664  * @param base the character buffer
11665  * @param size the size in bytes of the character buffer
11666  * 
11667  * @return the newly allocated buffer state object.
11668  */
11669 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
11670 {
11671         YY_BUFFER_STATE b;
11672     
11673         if ( size < 2 ||
11674              base[size-2] != YY_END_OF_BUFFER_CHAR ||
11675              base[size-1] != YY_END_OF_BUFFER_CHAR )
11676                 /* They forgot to leave room for the EOB's. */
11677                 return NULL;
11678
11679         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
11680         if ( ! b )
11681                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
11682
11683         b->yy_buf_size = (int) (size - 2);      /* "- 2" to take care of EOB's */
11684         b->yy_buf_pos = b->yy_ch_buf = base;
11685         b->yy_is_our_buffer = 0;
11686         b->yy_input_file = NULL;
11687         b->yy_n_chars = b->yy_buf_size;
11688         b->yy_is_interactive = 0;
11689         b->yy_at_bol = 1;
11690         b->yy_fill_buffer = 0;
11691         b->yy_buffer_status = YY_BUFFER_NEW;
11692
11693         yy_switch_to_buffer( b  );
11694
11695         return b;
11696 }
11697
11698 /** Setup the input buffer state to scan a string. The next call to yylex() will
11699  * scan from a @e copy of @a str.
11700  * @param yystr a NUL-terminated string to scan
11701  * 
11702  * @return the newly allocated buffer state object.
11703  * @note If you want to scan bytes that may contain NUL values, then use
11704  *       yy_scan_bytes() instead.
11705  */
11706 YY_BUFFER_STATE yy_scan_string (const char * yystr )
11707 {
11708     
11709         return yy_scan_bytes( yystr, (int) strlen(yystr) );
11710 }
11711
11712 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
11713  * scan from a @e copy of @a bytes.
11714  * @param yybytes the byte buffer to scan
11715  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
11716  * 
11717  * @return the newly allocated buffer state object.
11718  */
11719 YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
11720 {
11721         YY_BUFFER_STATE b;
11722         char *buf;
11723         yy_size_t n;
11724         int i;
11725     
11726         /* Get memory for full buffer, including space for trailing EOB's. */
11727         n = (yy_size_t) (_yybytes_len + 2);
11728         buf = (char *) yyalloc( n  );
11729         if ( ! buf )
11730                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
11731
11732         for ( i = 0; i < _yybytes_len; ++i )
11733                 buf[i] = yybytes[i];
11734
11735         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
11736
11737         b = yy_scan_buffer( buf, n );
11738         if ( ! b )
11739                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
11740
11741         /* It's okay to grow etc. this buffer, and we should throw it
11742          * away when we're done.
11743          */
11744         b->yy_is_our_buffer = 1;
11745
11746         return b;
11747 }
11748
11749     static void yy_push_state (int  _new_state )
11750 {
11751         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
11752                 {
11753                 yy_size_t new_size;
11754
11755                 (yy_start_stack_depth) += YY_START_STACK_INCR;
11756                 new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
11757
11758                 if ( ! (yy_start_stack) )
11759                         (yy_start_stack) = (int *) yyalloc( new_size  );
11760
11761                 else
11762                         (yy_start_stack) = (int *) yyrealloc(
11763                                         (void *) (yy_start_stack), new_size  );
11764
11765                 if ( ! (yy_start_stack) )
11766                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
11767                 }
11768
11769         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
11770
11771         BEGIN(_new_state);
11772 }
11773
11774     static void yy_pop_state  (void)
11775 {
11776         if ( --(yy_start_stack_ptr) < 0 )
11777                 YY_FATAL_ERROR( "start-condition stack underflow" );
11778
11779         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
11780 }
11781
11782 #ifndef YY_EXIT_FAILURE
11783 #define YY_EXIT_FAILURE 2
11784 #endif
11785
11786 static void yynoreturn yy_fatal_error (const char* msg )
11787 {
11788                         fprintf( stderr, "%s\n", msg );
11789         exit( YY_EXIT_FAILURE );
11790 }
11791
11792 /* Redefine yyless() so it works in section 3 code. */
11793
11794 #undef yyless
11795 #define yyless(n) \
11796         do \
11797                 { \
11798                 /* Undo effects of setting up yytext. */ \
11799         int yyless_macro_arg = (n); \
11800         YY_LESS_LINENO(yyless_macro_arg);\
11801                 yytext[yyleng] = (yy_hold_char); \
11802                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
11803                 (yy_hold_char) = *(yy_c_buf_p); \
11804                 *(yy_c_buf_p) = '\0'; \
11805                 yyleng = yyless_macro_arg; \
11806                 } \
11807         while ( 0 )
11808
11809 /* Accessor  methods (get/set functions) to struct members. */
11810
11811 /** Get the current line number.
11812  * 
11813  */
11814 int yyget_lineno  (void)
11815 {
11816     
11817     return yylineno;
11818 }
11819
11820 /** Get the input stream.
11821  * 
11822  */
11823 FILE *yyget_in  (void)
11824 {
11825         return yyin;
11826 }
11827
11828 /** Get the output stream.
11829  * 
11830  */
11831 FILE *yyget_out  (void)
11832 {
11833         return yyout;
11834 }
11835
11836 /** Get the length of the current token.
11837  * 
11838  */
11839 int yyget_leng  (void)
11840 {
11841         return yyleng;
11842 }
11843
11844 /** Get the current token.
11845  * 
11846  */
11847
11848 char *yyget_text  (void)
11849 {
11850         return yytext;
11851 }
11852
11853 /** Set the current line number.
11854  * @param _line_number line number
11855  * 
11856  */
11857 void yyset_lineno (int  _line_number )
11858 {
11859     
11860     yylineno = _line_number;
11861 }
11862
11863 /** Set the input stream. This does not discard the current
11864  * input buffer.
11865  * @param _in_str A readable stream.
11866  * 
11867  * @see yy_switch_to_buffer
11868  */
11869 void yyset_in (FILE *  _in_str )
11870 {
11871         yyin = _in_str ;
11872 }
11873
11874 void yyset_out (FILE *  _out_str )
11875 {
11876         yyout = _out_str ;
11877 }
11878
11879 int yyget_debug  (void)
11880 {
11881         return yy_flex_debug;
11882 }
11883
11884 void yyset_debug (int  _bdebug )
11885 {
11886         yy_flex_debug = _bdebug ;
11887 }
11888
11889 static int yy_init_globals (void)
11890 {
11891         /* Initialization is the same as for the non-reentrant scanner.
11892      * This function is called from yylex_destroy(), so don't allocate here.
11893      */
11894
11895     /* We do not touch yylineno unless the option is enabled. */
11896     yylineno =  1;
11897     
11898     (yy_buffer_stack) = NULL;
11899     (yy_buffer_stack_top) = 0;
11900     (yy_buffer_stack_max) = 0;
11901     (yy_c_buf_p) = NULL;
11902     (yy_init) = 0;
11903     (yy_start) = 0;
11904
11905     (yy_start_stack_ptr) = 0;
11906     (yy_start_stack_depth) = 0;
11907     (yy_start_stack) =  NULL;
11908
11909 /* Defined in main.c */
11910 #ifdef YY_STDINIT
11911     yyin = stdin;
11912     yyout = stdout;
11913 #else
11914     yyin = NULL;
11915     yyout = NULL;
11916 #endif
11917
11918     /* For future reference: Set errno on error, since we are called by
11919      * yylex_init()
11920      */
11921     return 0;
11922 }
11923
11924 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
11925 int yylex_destroy  (void)
11926 {
11927     
11928     /* Pop the buffer stack, destroying each element. */
11929         while(YY_CURRENT_BUFFER){
11930                 yy_delete_buffer( YY_CURRENT_BUFFER  );
11931                 YY_CURRENT_BUFFER_LVALUE = NULL;
11932                 yypop_buffer_state();
11933         }
11934
11935         /* Destroy the stack itself. */
11936         yyfree((yy_buffer_stack) );
11937         (yy_buffer_stack) = NULL;
11938
11939     /* Destroy the start condition stack. */
11940         yyfree( (yy_start_stack)  );
11941         (yy_start_stack) = NULL;
11942
11943     /* Reset the globals. This is important in a non-reentrant scanner so the next time
11944      * yylex() is called, initialization will occur. */
11945     yy_init_globals( );
11946
11947     return 0;
11948 }
11949
11950 /*
11951  * Internal utility routines.
11952  */
11953
11954 #ifndef yytext_ptr
11955 static void yy_flex_strncpy (char* s1, const char * s2, int n )
11956 {
11957                 
11958         int i;
11959         for ( i = 0; i < n; ++i )
11960                 s1[i] = s2[i];
11961 }
11962 #endif
11963
11964 #ifdef YY_NEED_STRLEN
11965 static int yy_flex_strlen (const char * s )
11966 {
11967         int n;
11968         for ( n = 0; s[n]; ++n )
11969                 ;
11970
11971         return n;
11972 }
11973 #endif
11974
11975 void *yyalloc (yy_size_t  size )
11976 {
11977                         return malloc(size);
11978 }
11979
11980 void *yyrealloc  (void * ptr, yy_size_t  size )
11981 {
11982                 
11983         /* The cast to (char *) in the following accommodates both
11984          * implementations that use char* generic pointers, and those
11985          * that use void* generic pointers.  It works with the latter
11986          * because both ANSI C and C++ allow castless assignment from
11987          * any pointer type to void*, and deal with argument conversions
11988          * as though doing an assignment.
11989          */
11990         return realloc(ptr, size);
11991 }
11992
11993 void yyfree (void * ptr )
11994 {
11995                         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
11996 }
11997
11998 #define YYTABLES_NAME "yytables"
11999
12000 /* Element context stack lookup. */
12001 int surfxml_element_context(int i)
12002 {
12003   return (0<i && i<yy_start_stack_depth
12004           ? yy_start_stack[yy_start_stack_ptr - i]
12005           : 0);
12006 }
12007
12008 #ifdef FLEX_DEBUG
12009 void print_yy_stack(char* fmt, ...)
12010 {
12011   int i = 0; va_list ap; va_start(ap, fmt);
12012   vfprintf(stderr, fmt, ap);
12013   if (surfxml_statenames) {
12014       for (i=1; i<yy_start_stack_ptr; i++) {
12015           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
12016       }
12017       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
12018   }
12019   va_end(ap);
12020 }
12021
12022 void print_surfxml_bufferstack()
12023 {
12024     int i;
12025     fputs("Buffer: ", stderr);
12026     for (i = 0; i < blimit; i++) {
12027        if ( surfxml_bufferstack[i] == '\377' ) break;
12028          putc(surfxml_bufferstack[i], stderr);
12029     }
12030     putc('\n', stderr);
12031 }
12032
12033 static void debug_enter(int state, const char* statename) {
12034   yy_push_state(state);
12035   if (yy_flex_debug) {
12036        print_yy_stack("--ENTER(%s) : ",statename);
12037        print_surfxml_bufferstack();
12038   }
12039 }
12040
12041 static void debug_leave(void) {
12042     if (yy_flex_debug) {
12043         print_yy_stack("--LEAVE : ");
12044         print_surfxml_bufferstack();
12045     }
12046   yy_pop_state();
12047 }
12048
12049 static void debug_set(int state, const char* statename) {
12050   BEGIN(state);
12051   if (yy_flex_debug) print_yy_stack("--SET(%s) : ",statename);
12052 }
12053 #endif
12054
12055 static void cleanup(void)
12056 {
12057     if (surfxml_statenames) {
12058         free(surfxml_statenames);
12059         surfxml_statenames = NULL;
12060     }
12061     free(surfxml_bufferstack);
12062     surfxml_bufferstack = NULL;
12063
12064     free(indexstack);
12065     indexstack = NULL;
12066 }
12067
12068 static int fail(const char* fmt, ...)
12069 {
12070     int chars_left, used;
12071     va_list ap; va_start(ap, fmt);
12072 #ifdef FLEXML_yylineno
12073     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
12074                    "Invalid XML (XML input line %d, state %d): ",
12075                    yylineno, YY_START);
12076 #else
12077     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
12078                    "Invalid XML (state %d): ",
12079                    YY_START);
12080 #endif
12081     chars_left = flexml_max_err_msg_size - used - 1;
12082     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
12083     va_end(ap);
12084
12085 #ifndef FLEXML_quiet_parser
12086     /* print directly to sdterr */
12087     fprintf(stderr, "%s\n", flexml_err_msg);
12088     flexml_err_msg[0] = '\0';
12089 #endif
12090
12091     cleanup();
12092
12093     return 1;
12094 }
12095