Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Platform generation : add the Barabasi-Albert algorithm to build the graph
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 547
407 #define YY_END_OF_BUFFER 548
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[3217] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,  548,  546,
444        15,   10,   10,   15,   15,  526,   10,  526,    5,    6,
445         5,    8,    9,    8,  542,  534,  535,  543,  540,  543,
446       541,  545,  534,  535,  545,  546,   22,   10,   22,   22,
447        22,   20,   22,   26,   10,   26,   26,  546,   26,  546,
448       546,   26,   33,   10,   33,   33,   33,   31,   33,   37,
449
450        10,   37,   37,   48,   10,   48,   48,   48,   46,   48,
451        48,   48,  543,  542,   78,   10,   78,   78,   78,   76,
452        78,   78,   78,   78,   78,   82,   10,   82,  546,   82,
453       101,   10,  101,  101,  101,   99,  101,  101,  101,  105,
454        10,  105,  128,   10,  128,  128,  128,  126,  128,  128,
455       132,   10,  132,  132,  546,  132,  132,  546,  546,  132,
456       546,  132,  546,  132,  145,   10,  145,  145,  145,  143,
457       145,  145,  145,  145,  149,   10,  149,  149,  160,   10,
458       160,  160,  160,  158,  160,  160,  160,  164,   10,  164,
459       164,  173,   10,  173,  173,  173,  171,  173,  173,  177,
460
461        10,  177,  186,   10,  186,  186,  186,  184,  186,  186,
462       190,   10,  190,  213,   10,  213,  213,  213,  211,  213,
463       213,  213,  213,  213,  217,   10,  217,  546,  217,  228,
464        10,  228,  228,  228,  226,  228,  228,  228,  232,   10,
465       232,  273,   10,  273,  273,  273,  271,  273,  273,  273,
466       273,  273,  273,  273,  273,  277,   10,  277,  296,   10,
467       296,  296,  296,  294,  296,  296,  296,  296,  296,  296,
468       300,   10,  300,  321,   10,  321,  321,  321,  319,  321,
469       321,  321,  321,  321,  321,  321,  325,   10,  325,  334,
470        10,  334,  334,  334,  332,  334,  334,  338,   10,  338,
471
472       349,   10,  349,  349,  349,  347,  349,  349,  349,  353,
473        10,  353,  380,   10,  380,  380,  380,  378,  380,  380,
474       380,  380,  384,   10,  384,  384,  397,   10,  397,  397,
475       397,  395,  397,  397,  401,   10,  401,  546,  401,  418,
476        10,  418,  418,  418,  416,  418,  418,  418,  422,   10,
477       422,  422,  435,   10,  435,  435,  435,  433,  435,  435,
478       439,   10,  439,  448,   10,  448,  448,  448,  446,  448,
479       448,  452,   10,  452,  452,  465,   10,  465,  465,  465,
480       463,  465,  465,  465,  469,   10,  469,  469,  486,   10,
481       486,  486,  486,  484,  486,  486,  486,  486,  486,  490,
482
483        10,  490,  546,  490,  497,   10,  497,  497,  497,  495,
484       497,  501,   10,  501,  508,   10,  508,  508,  508,  506,
485       508,  512,   10,  512,  512,  521,   10,  521,  521,  521,
486       519,  521,  521,  525,   10,  525,   10,    0,    2,    2,
487         0,    4,    7,  537,  536,    0,    0,    0,    0,    0,
488         0,    0,   21,   23,   23,    0,    0,    0,    0,    0,
489         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
490         0,    0,    0,    0,    0,    0,    0,    0,   32,   34,
491        34,    0,   47,   49,   49,   49,   49,    0,    0,    0,
492        77,   79,   79,   79,   79,   79,   79,   79,   79,   79,
493
494         0,    0,  100,  102,  102,  102,  102,    0,  127,  129,
495       129,  129,    0,    0,    0,    0,    0,    0,    0,    0,
496         0,    0,    0,    0,    0,    0,    0,    0,  144,  146,
497       146,  146,  146,  146,    0,  159,  161,  161,  161,  161,
498         0,  172,  174,  174,  174,    0,  185,  187,  187,  187,
499         0,  212,  214,  214,  214,  214,  214,  214,    0,    0,
500       227,  229,  229,  229,  229,    0,  272,  274,  274,  274,
501       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
502       274,    0,  295,  297,  297,  297,  297,  297,  297,  297,
503       297,    0,  320,  322,  322,  322,  322,  322,  322,  322,
504
505       322,    0,  333,  335,  335,  335,    0,  348,  350,  350,
506       350,  350,    0,  379,  381,  381,  381,  381,  381,  381,
507         0,  396,  398,  398,  398,  398,    0,    0,  417,  419,
508       419,  419,  419,  419,    0,  434,  436,  436,  436,    0,
509       447,  449,  449,  449,    0,  464,  466,  466,  466,  466,
510         0,  485,  487,  487,  487,  487,  487,  487,    0,    0,
511       496,  498,  498,    0,  507,  509,  509,    0,  520,  522,
512       522,  522,    0,    0,    0,    0,    0,    3,    0,    0,
513         0,    0,    0,    0,    0,  544,    0,   23,    0,    0,
514       107,    0,    0,    0,    0,    0,    0,    0,    0,    0,
515
516         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
517         0,  106,    0,    0,    0,    0,    0,    0,   34,    0,
518         0,   49,    0,    0,   49,    0,    0,    0,  539,   79,
519         0,    0,   79,   79,   79,   79,   79,   79,    0,    0,
520         0,  102,  102,  102,    0,    0,    0,    0,  129,    0,
521         0,  107,    0,    0,    0,    0,    0,    0,  106,    0,
522         0,    0,    0,  146,    0,    0,  146,  146,    0,    0,
523       161,    0,    0,  161,    0,    0,    0,    0,  174,    0,
524         0,  187,  187,    0,    0,  214,  214,  214,    0,    0,
525       214,  214,    0,    0,    0,    0,  229,    0,    0,    0,
526
527         0,    0,    0,  274,  274,    0,    0,  274,    0,    0,
528       274,  274,  274,  274,  274,  274,  274,  274,    0,    0,
529         0,    0,    0,    0,  297,  297,  297,  297,  297,    0,
530         0,  322,  322,  322,    0,    0,  322,  322,  322,    0,
531         0,  335,    0,    0,    0,    0,  350,    0,    0,  350,
532         0,    0,  381,    0,    0,  381,  381,  381,    0,    0,
533       398,  398,  398,    0,    0,    0,  419,  419,  419,  419,
534         0,    0,  436,    0,    0,    0,    0,  449,  449,    0,
535         0,  466,  466,  466,    0,    0,  487,  487,  487,  487,
536       487,    0,    0,    0,  498,    0,    0,    0,    0,    0,
537
538         0,    0,    0,  522,    0,    0,    0,   14,    1,    0,
539         0,  532,    0,    0,    0,  529,  528,    0,    0,   23,
540         0,    0,   25,    0,  107,    0,    0,    0,    0,    0,
541         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
542         0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
543         0,    0,    0,   34,    0,    0,   36,    0,   49,    0,
544        41,   40,   49,    0,    0,    0,   51,    0,   79,    0,
545        55,   54,    0,    0,   79,    0,    0,   79,   79,   79,
546         0,    0,   81,    0,    0,  102,  102,  102,    0,    0,
547       104,    0,    0,  109,  108,  129,    0,    0,  131,    0,
548
549         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
550         0,  146,    0,  136,  135,  146,  146,    0,    0,  148,
551         0,  161,    0,  153,  152,  161,    0,    0,  163,    0,
552         0,  168,  167,  174,    0,    0,  176,    0,  187,  187,
553         0,    0,  189,    0,  214,  214,  214,    0,  194,  193,
554       214,  214,    0,    0,  216,    0,    0,    0,  229,    0,
555       221,  220,    0,  223,  222,    0,    0,  231,    0,  274,
556       274,  274,  274,    0,  248,  247,  274,    0,  236,  235,
557         0,    0,  274,  274,  274,  274,  274,  274,  274,    0,
558         0,  276,    0,    0,  291,  290,    0,  281,  280,    0,
559
560         0,  297,  297,  297,  297,    0,    0,  299,    0,  322,
561       322,  322,  322,    0,  304,  303,    0,    0,  322,  322,
562         0,    0,  324,    0,  335,    0,  329,  328,    0,    0,
563       337,    0,  350,    0,  342,  341,  350,    0,    0,  352,
564         0,  381,    0,  357,  356,  381,  381,  381,    0,    0,
565       383,    0,    0,    0,    0,    0,  398,    0,    0,  400,
566         0,    0,    0,    0,  419,  419,    0,    0,  419,    0,
567         0,  421,    0,  436,    0,  426,  425,    0,    0,  438,
568         0,    0,    0,    0,    0,    0,    0,  451,    0,    0,
569         0,  466,  466,    0,    0,    0,    0,  468,    0,  487,
570
571       487,  487,  487,  487,    0,    0,  489,    0,    0,  498,
572         0,    0,  500,    0,    0,  505,  504,    0,    0,  511,
573         0,    0,  516,  515,  522,    0,    0,  524,    0,    0,
574         0,  533,  527,    0,    0,    0,   23,    0,    0,    0,
575         0,    0,    0,    0,    0,  191,    0,  354,    0,    0,
576       302,    0,    0,  513,    0,    0,    0,    0,    0,    0,
577         0,    0,    0,  301,    0,    0,    0,    0,    0,    0,
578         0,   49,    0,    0,   79,    0,   59,   58,    0,    0,
579         0,   57,   56,   79,    0,    0,   79,    0,  514,  102,
580         0,    0,  102,    0,  129,    0,  130,    0,    0,    0,
581
582       192,  355,    0,    0,    0,    0,    0,    0,  146,  146,
583         0,    0,    0,  161,  161,    0,    0,    0,    0,    0,
584         0,  187,    0,  214,  214,    0,    0,  214,  214,    0,
585         0,    0,    0,    0,    0,  274,  274,  274,  274,    0,
586         0,    0,  250,  249,  274,  274,  274,  274,  274,  274,
587       274,    0,    0,  293,  292,  297,  297,  297,  297,    0,
588       322,  322,  322,  322,    0,  312,  311,  322,  322,    0,
589       335,    0,  350,  350,    0,  381,  381,  381,  381,    0,
590         0,  390,  389,    0,  388,  387,  398,    0,  354,    0,
591       407,  406,  419,  419,    0,  405,  404,  419,    0,  436,
592
593         0,    0,  445,  444,    0,  443,  442,    0,    0,  458,
594       457,  466,  466,    0,  456,  455,    0,  487,    0,    0,
595       487,  487,  487,    0,    0,  498,    0,    0,  522,    0,
596         0,    0,    0,   12,    0,  530,  531,    0,   23,    0,
597         0,    0,    0,    0,    0,    0,    0,  191,    0,    0,
598       354,    0,  165,    0,  302,    0,    0,  513,    0,  385,
599         0,   39,    0,    0,    0,    0,    0,  301,    0,   38,
600         0,   30,   29,    0,    0,   43,   42,   49,    0,    0,
601        79,    0,   61,   60,   79,    0,   65,   64,   79,    0,
602       514,  102,    0,    0,    0,    0,    0,    0,  129,    0,
603
604         0,    0,  192,    0,  355,  386,    0,    0,    0,  386,
605       385,  146,    0,    0,    0,  140,  139,    0,  161,  161,
606         0,    0,  170,  169,    0,    0,  183,  182,  187,    0,
607       214,  214,    0,  198,  197,    0,    0,    0,    0,  214,
608         0,  166,    0,    0,  225,  224,    0,  274,    0,    0,
609       274,  274,    0,  246,  245,    0,    0,  274,  274,  274,
610       274,  274,  274,    0,    0,    0,  297,  297,  297,    0,
611       322,    0,    0,  322,  322,    0,    0,  322,    0,  335,
612         0,  350,  350,    0,  381,  381,  381,    0,    0,  381,
613         0,  398,    0,    0,  419,  419,  419,    0,  436,    0,
614
615         0,  466,  466,    0,  487,    0,  473,  472,  487,  487,
616       487,    0,    0,    0,    0,    0,    0,    0,    0,    0,
617         0,    0,    0,   11,    0,   23,    0,    0,    0,    0,
618         0,    0,    0,  503,    0,    0,    0,  165,    0,    0,
619         0,   53,  385,  326,    0,   39,    0,  502,   52,    0,
620         0,    0,    0,   38,    0,    0,   49,    0,    0,   79,
621        79,   79,    0,  102,    0,    0,    0,    0,    0,    0,
622         0,    0,    0,   96,   95,    0,  129,    0,    0,    0,
623         0,  386,  327,    0,    0,    0,  146,    0,  138,  137,
624         0,  161,    0,    0,    0,    0,    0,    0,    0,  214,
625
626       214,    0,  196,  195,    0,    0,    0,  214,    0,  215,
627       166,    0,    0,  274,    0,  258,  257,    0,    0,  274,
628         0,  244,  243,    0,    0,  274,  274,  274,  274,    0,
629         0,    0,    0,  289,  288,    0,    0,  297,    0,    0,
630         0,  322,    0,  308,  307,    0,    0,  322,    0,  306,
631       305,  322,    0,  323,  335,    0,  350,  350,    0,  381,
632       381,  381,    0,    0,    0,  381,    0,  382,  398,    0,
633         0,    0,    0,    0,    0,  419,    0,  436,    0,    0,
634         0,    0,    0,    0,    0,  487,  487,  487,  487,    0,
635         0,    0,  494,  493,    0,    0,    0,  518,  517,    0,
636
637       523,    0,    0,    0,    0,    0,    0,    0,  402,    0,
638         0,    0,    0,  279,  234,  503,    0,   28,    0,    0,
639         0,  471,   53,  326,  150,    0,  502,   52,  278,  233,
640        27,  470,    0,    0,   49,    0,    0,   50,   79,    0,
641         0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
642         0,    0,    0,    0,    0,    0,    0,    0,  403,    0,
643         0,    0,    0,  327,  151,    0,    0,    0,    0,    0,
644         0,  155,  154,    0,    0,  175,    0,  181,  180,    0,
645       214,  214,    0,    0,  214,    0,    0,  274,    0,  260,
646       259,  274,    0,  238,  237,    0,    0,  274,  274,  274,
647
648         0,  240,  239,    0,    0,  283,  282,    0,    0,    0,
649       285,  284,    0,  322,    0,  310,  309,  322,  322,  335,
650         0,  350,    0,    0,    0,  381,    0,    0,  381,  381,
651         0,    0,  381,  398,    0,  399,    0,    0,  411,  410,
652         0,  409,  408,  419,    0,  436,    0,    0,    0,  462,
653       461,    0,  460,  459,    0,  487,  487,  487,  487,    0,
654         0,    0,    0,    0,    0,    0,   17,    0,   19,   18,
655         0,  402,  491,  339,    0,    0,  279,  234,    0,   28,
656       423,  178,   16,  471,  150,    0,    0,  278,  233,   27,
657       470,    0,    0,   49,  538,   79,    0,   67,   66,   79,
658
659         0,   80,    0,   98,   97,    0,    0,    0,    0,    0,
660         0,    0,    0,    0,    0,    0,    0,    0,    0,  403,
661       340,    0,    0,    0,  151,    0,    0,  142,  141,    0,
662         0,  157,  156,    0,    0,  214,  214,    0,    0,    0,
663         0,  214,  179,    0,  274,  274,    0,  242,  241,  274,
664       274,  274,    0,    0,  287,  286,    0,  322,  322,  322,
665       335,    0,  336,  350,    0,  346,  345,    0,  381,    0,
666       363,  362,  381,  381,    0,    0,    0,    0,  381,  398,
667       424,  419,    0,  436,    0,    0,    0,    0,    0,  487,
668       487,  487,    0,  492,    0,    0,  510,    0,    0,    0,
669
670        17,    0,  491,  339,    0,    0,  218,  423,  178,   16,
671         0,    0,    0,    0,   35,   49,    0,    0,   79,    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,  340,    0,    0,  219,    0,    0,    0,  162,
675         0,  214,  214,    0,  204,    0,  203,  214,  179,    0,
676       274,  274,    0,    0,  274,  274,    0,  275,    0,  298,
677       322,  322,  322,  335,    0,    0,    0,    0,    0,  381,
678       381,  381,    0,  367,    0,  366,  381,  398,  424,  419,
679         0,  420,    0,    0,    0,    0,    0,    0,  475,  474,
680
681         0,    0,  487,  487,    0,  488,  492,    0,    0,    0,
682         0,    0,   24,    0,    0,  218,    0,    0,    0,   49,
683         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
684         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
685         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
686         0,  219,    0,    0,    0,  188,  214,  214,  206,  205,
687         0,    0,    0,  274,  274,    0,  270,  269,  274,    0,
688         0,  322,  322,    0,    0,  335,    0,  344,  343,    0,
689       351,    0,  359,  358,  381,  381,  381,  369,  368,    0,
690         0,  398,  419,    0,    0,    0,    0,  437,    0,    0,
691
692         0,  479,  478,    0,    0,    0,    0,    0,  499,    0,
693         0,    0,    0,  440,    0,    0,    0,    0,    0,    0,
694         0,    0,    0,    0,    0,   79,    0,    0,    0,    0,
695        88,    0,    0,    0,    0,   87,    0,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,  441,    0,    0,  214,    0,    0,    0,  208,
698       207,    0,  230,  274,  274,  274,    0,  268,  267,  322,
699         0,    0,    0,  318,  317,    0,    0,  381,  381,  381,
700         0,  371,  370,    0,    0,    0,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,    0,    0,    0,    0,  477,
702
703       476,    0,    0,    0,    0,  440,  133,    0,    0,    0,
704        45,   44,    0,    0,    0,    0,    0,    0,    0,    0,
705        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
706         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,    0,    0,    0,  441,  134,    0,    0,    0,
708       214,    0,  210,  209,  274,  274,  274,  322,    0,  314,
709       313,    0,  331,  330,  381,    0,    0,  381,    0,    0,
710         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712       453,  133,   84,   83,    0,    0,    0,    0,    0,    0,
713
714         0,    0,    0,    0,    0,    0,   94,    0,    0,    0,
715        93,    0,    0,    0,    0,    0,  111,  119,    0,    0,
716         0,    0,    0,  110,  118,    0,    0,  454,  134,    0,
717         0,  200,  199,  214,  274,  274,  274,  322,  381,    0,
718       365,  364,  381,    0,    0,    0,    0,    0,    0,    0,
719         0,    0,    0,  428,    0,    0,  427,    0,  450,    0,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
721       453,   84,   83,    0,    0,    0,    0,    0,    0,    0,
722         0,    0,   63,   62,    0,    0,    0,    0,    0,    0,
723         0,    0,    0,  113,    0,    0,    0,    0,  112,    0,
724
725         0,  454,    0,  147,  214,  274,  274,    0,    0,  322,
726         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
727         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
728         0,    0,    0,    0,    0,    0,    0,    0,   75,   71,
729         0,    0,   74,   70,    0,   92,    0,    0,   91,    0,
730         0,    0,  103,    0,    0,    0,    0,    0,    0,    0,
731         0,  214,  274,  274,    0,    0,    0,  322,    0,  361,
732       360,    0,    0,    0,  394,    0,  393,    0,  415,    0,
733       414,    0,  430,  432,  429,  431,    0,  467,  481,    0,
734       480,    0,    0,    0,    0,   12,    0,   12,    0,    0,
735
736         0,    0,    0,   86,   90,   85,   89,  125,    0,    0,
737       123,  124,    0,    0,  122,  214,  274,  274,    0,    0,
738         0,    0,  322,    0,    0,    0,    0,  392,  391,  413,
739       412,    0,    0,    0,    0,    0,    0,    0,    0,    0,
740         0,    0,  115,    0,    0,  114,    0,    0,    0,    0,
741         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
742         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
743         0,    0,   69,    0,   68,    0,    0,  121,    0,  120,
744         0,  202,  201,    0,  266,  265,    0,    0,    0,    0,
745         0,    0,    0,    0,    0,    0,  316,  315,    0,    0,
746
747         0,    0,    0,    0,    0,    0,    0,   11,    0,    0,
748         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
749         0,    0,    0,    0,    0,    0,    0,    0,  483,  482,
750         0,   73,   72,    0,    0,    0,    0,    0,    0,    0,
751         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
752         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
753         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754         0,  117,  116,    0,    0,    0,    0,    0,    0,  252,
755         0,    0,  251,    0,    0,  373,    0,    0,  372,    0,
756         0,    0,    0,    0,  256,    0,  255,    0,  375,    0,
757
758       374,    0,    0,    0,    0,    0,    0,    0,    0,    0,
759         0,    0,    0,  262,    0,  261,    0,    0,    0,    0,
760         0,    0,  264,  263,  254,  253,  377,  376,    0,    0,
761         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
764         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
765         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
766         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
767         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
768
769         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
770         0,    0,    0,    0,   13,    0
771     } ;
772
773 static yyconst flex_int32_t yy_ec[256] =
774     {   0,
775         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
776         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
777         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
778         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
779         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
780        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
781        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
782        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
783        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
784        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
785
786        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
787        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
788        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
789         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
790         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
791         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
792         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
793         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
794         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
795         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
796
797         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
798         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
799         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
800         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
801         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
802         1,    1,    1,    1,    1
803     } ;
804
805 static yyconst flex_int32_t yy_meta[75] =
806     {   0,
807         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
808         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
809         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
810         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
811         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
812         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
813         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
814         5,    5,    5,    5
815     } ;
816
817 static yyconst flex_int16_t yy_base[3687] =
818     {   0,
819         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
820        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
821       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
822       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
823       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
824       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
825       413,  467,  470,  473,  477,  480,  645,  713,  531,  534,
826       781,  847,  537,  541,  544,  598,  601,  604,  608,  611,
827       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
828       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
829
830       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
831      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
832      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
833      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
834      1585, 1654, 1341, 1345, 1723,    0, 1348, 1403, 1797, 1864,
835      1406, 1409, 1931, 1998, 1413, 1416, 2065, 2122, 1471, 1474,
836      2179, 2239, 1477, 1481, 2299, 2366, 1538, 1541, 1544, 1548,
837      1605, 1608, 1611, 1615, 2433, 2500, 1618, 1674, 1677, 1680,
838      1684, 1687, 1817, 1820, 2567, 2634, 1823, 1827, 1830, 1884,
839      1887, 1890, 1894, 1897, 2701, 2758, 1951, 1954, 2815, 2882,
840
841      1957, 1961, 2018, 2021, 2024, 2028, 2085, 2088, 2949, 3016,
842      2091, 2095, 2142, 2145, 2148, 2152, 2199, 2202, 3083, 3150,
843      2205, 2209, 2212, 2259, 2262, 2265, 2269, 2272, 3217, 3287,
844      2319, 2322, 3357, 3414, 2325, 2329, 2332, 2386, 2389, 2392,
845      2396, 2399, 3471, 3541, 2453, 2456,    0,    0, 8755,11735,
846     11735,   95,  100,   29,   41,11735,  103,   51,11735,11735,
847      8740,11735,11735, 8729,11735, 8744, 8740,  202,11735,11735,
848     11735,11735, 8738, 8738, 8689,  153,11735,  161, 8715,    0,
849       145,11735, 8681,11735,  165, 3607,   73, 2465,  315,  357,
850      8717, 8664,11735,  168, 8707,    0,  152,11735, 8665,11735,
851
852       261, 8709,   31,11735,  266, 8700,    0,  245,11735, 8658,
853      8662, 8660,  421, 8661,11735,  269, 8687,    0,  340,11735,
854      8653, 8649,  271, 8651,  238,11735,  441,  163,  313,  368,
855     11735,  503, 8679,    0,  401,11735, 8634, 8636, 8626,11735,
856       506,  548,11735,  561, 8667,    0,  481,11735, 8634, 8622,
857     11735,  571, 2474, 2399,  567,  206,   38, 8668,  477, 2473,
858       572,  907, 8667,   79,11735,  628, 8658,    0,  482,11735,
859      8079, 8089, 8076, 8081,11735,  638,  426,  597,11735,  697,
860      8117,    0,  546,11735, 8073, 8083, 8061,11735,  703,  631,
861       691,11735,  706, 8113,    0,  549,11735, 8079, 8081,11735,
862
863       765,  753,11735,  773, 8108,    0,  616,11735, 8071, 8046,
864     11735,  776,  818,11735,  831, 8097,    0,  815,11735, 8039,
865      8045, 8054, 8037, 8030,11735,  838,  825, 8081,   87,11735,
866       841, 8072,    0,  882,11735, 8027, 8033, 8020,11735,  906,
867       958,11735,  914, 8057,    0,  891,11735, 8005,  203, 8011,
868      8020, 8010,  157,  311,  908,11735,  981, 1019,11735, 1039,
869      8038,    0,  953,11735, 7985, 7996, 7998,  251, 7996, 7975,
870     11735, 1044, 1032,11735, 1048, 8022,    0,  966,11735, 7967,
871      7965, 7967, 7977, 7978, 7952, 7946,11735, 1088, 1092,11735,
872      1105, 7990,    0, 1033,11735, 7946, 7955,11735, 1112, 1154,
873
874     11735, 1115, 7986,    0, 1089,11735, 7933, 7925, 7927,11735,
875      1118, 1160,11735, 1174, 7943,    0, 1090,11735, 7913, 7908,
876      7906,   15,11735, 1180,  559,  699,11735, 1183, 7934,    0,
877      1158,11735, 7885,  181,11735, 1186,  963, 7935, 7886,11735,
878      1241, 7924,    0, 1225,11735, 7868, 7863,  299,11735, 1247,
879      7921,  761,11735, 1303, 7910,    0, 1226,11735, 7872, 7866,
880     11735, 1309, 1352,11735, 1365, 7897,    0, 1231,11735, 7845,
881      7845,11735, 1368, 7897,  851,11735, 1372, 7887,    0, 1287,
882     11735, 7839, 7833, 7832,11735, 1376, 7878,  944,11735, 1433,
883      7869,    0, 1288,11735, 7818, 7818, 7823, 7816, 7801,11735,
884
885      1436, 1437, 7852,  512,11735, 1439, 7830,    0, 1293,11735,
886      7795,11735, 1444, 1482,11735, 1502, 7823,    0, 1360,11735,
887      7789,11735, 1507,  350,  814,11735, 1510, 7802,    0, 1423,
888     11735, 7765, 7767,11735, 1551, 1556, 1568,  677, 7733,11735,
889      7794, 7782,11735,11735,11735, 1566,  254, 7733, 7731, 7725,
890      7762, 7720,11735,    0, 7708, 7707, 7725, 7697,  104,  970,
891      7698, 7688, 7692,  372, 1574,  378, 7675, 7676, 1433,  429,
892      7701, 1500, 7667, 1575, 7661, 1590, 1643, 1644,11735,    0,
893      7666, 7667,11735,    0, 7659, 1964, 7652,  372, 7648, 7695,
894     11735,    0, 7638, 2031, 7627, 7631, 7617, 7624, 7615, 7606,
895
896      7591, 1654,11735,    0, 7593, 7583, 7590, 7569,11735,    0,
897      2098, 7567, 7612, 7590,  172, 7561, 7565,  493, 7553, 7580,
898       639,  680,  841,  888,  627, 1659,  707, 1282,11735,    0,
899      7549, 2155, 7554, 7531, 7536,11735,    0, 7536, 2462, 7532,
900      7528,11735,    0, 2480, 7532, 7527,11735,    0, 7526, 7521,
901      7519,11735,    0, 7529,  434, 2523, 7505, 7526, 7517, 1091,
902     11735,    0, 7496, 2534, 2541, 7503,11735,    0, 7499, 7493,
903      2546, 7474, 2587, 7470, 7456, 7473, 7472, 7450, 7469, 7466,
904      7459, 7457,11735,    0, 2590, 2593, 7438, 7434, 7443, 7443,
905      7439, 7437,11735,    0, 7438, 7434, 7418, 2596, 7411, 7399,
906
907      7418, 7401,11735,    0, 7398, 2599, 7383,11735,    0, 7386,
908      2654, 7378, 7388,11735,    0, 7375, 2657, 7367, 7381, 7379,
909      7366,11735,    0, 7357, 7372, 7349, 7343, 7350,11735,    0,
910      7331, 7348, 7340, 7329, 7366,11735,    0, 7320, 2660, 7324,
911     11735,    0, 7315, 7330, 7314,11735,    0, 7295, 7312, 7307,
912      7301,11735,    0, 7288, 7272, 7278, 7286, 7283, 7267, 7255,
913     11735,    0, 7260, 7269,11735,    0, 2663, 7259,11735,    0,
914      2666, 7249, 7243, 7286, 7290, 1471, 7237,11735, 1630,    0,
915      7232, 7227, 7272, 7267, 7220,11735, 7228, 7209, 2721, 2724,
916      1847, 7219, 7212, 7198, 7210, 7190, 7194, 7183, 7184, 7172,
917
918      7163, 7155, 7169, 7171, 7152, 7146, 7138, 7142, 7147, 7129,
919      7128, 1856, 7134, 7110, 7127, 7123, 7105, 7118, 7112, 2729,
920      2732, 7109, 2735, 1914, 7102, 7110, 2778, 2783,11735, 7079,
921      2787, 1983, 2793, 7063, 2835, 7067, 7070, 7073, 2838, 2849,
922      7049, 7033, 7037, 7037, 2843, 2853, 2862, 2050, 7018, 2902,
923      2905, 2229, 7030, 7012, 7006, 7000, 6988, 6992, 2289, 6986,
924      6985, 6978, 6967, 6967, 2908, 2416, 6980, 6979, 2911, 2970,
925      6962, 2914, 2466, 6976, 2973, 2977, 2980, 2488, 6974, 2983,
926      3044, 6973, 6956, 3037, 3047, 6951, 6935, 6947, 3040, 2552,
927      6939, 6919, 3050, 3113, 6916, 6911, 6912, 3106, 2621, 3109,
928
929      2688, 3116, 3120, 6905, 1786, 3170, 2805, 6908, 3175, 2868,
930      3182, 6903, 6899, 6889, 6876, 6876, 6873, 6881, 3178, 3188,
931      3237, 2933, 3240, 3003, 3243, 3250, 3263, 3316, 3325, 3310,
932      3334, 6877,   37, 6844, 3307, 3070, 3320, 6853, 6833, 3378,
933      3385, 6834, 3382, 3268, 3388, 3391, 6846, 3437, 3277, 6821,
934      3442, 3445, 6821, 3448, 3339, 6818, 6800, 6797, 3493, 3500,
935      3496, 3503, 3506, 3561, 3569, 6790, 3566, 3572, 3575, 3580,
936      3593, 3598, 6786, 3601, 3347, 3605, 3613, 3619, 3632, 3640,
937      3645, 3650, 3674, 3677, 3680, 3683, 6786, 6767, 6770, 6765,
938      6752, 3686, 3695, 6752, 6734, 3705, 3708, 3717, 3527, 3720,
939
940      3727, 3730, 3742, 6733, 3735, 3750, 6771,11735,11735, 1334,
941      6729,11735, 6771, 6767, 6716,11735,11735, 6710, 6709, 6718,
942      3755, 3760,11735, 3763, 1713, 6694, 6683, 6691, 6700, 6690,
943      6672, 6678, 6661, 6664, 6660, 6649, 6645, 6634, 6631,  633,
944      6645, 6628, 6624, 6638, 6629, 6620, 1923, 6610, 6599, 6604,
945      6597, 1109, 6610, 3769, 3774, 3782,11735, 3789, 3794, 3797,
946     11735,11735, 3815, 6628, 3818, 3821,11735, 3824, 6585, 3827,
947     11735,11735, 3843, 3846, 3855, 3861, 3866, 6599, 3879, 6596,
948      3882, 3885,11735, 3888, 1648, 6579, 3891, 6577, 3897, 3909,
949     11735, 3912, 3916,11735,11735, 6571, 3924, 3931,11735, 3934,
950
951      6564, 6565, 6573, 6551, 6545, 6534, 6532, 6544, 6542, 6518,
952      6517, 6530, 3937,11735,11735, 6506, 3945, 3953, 3956,11735,
953      3963, 6512, 3966,11735,11735, 6514, 3975, 3978,11735, 3982,
954      3985,11735,11735, 3997, 4001, 4004,11735, 4007, 4010, 4016,
955      4028, 4034,11735, 4037, 6473, 6480, 4040, 4047,11735,11735,
956      6464, 6472, 4058, 4061,11735, 4064, 6462, 6450, 4067, 4071,
957     11735,11735, 4085,11735,11735, 4093, 4096,11735, 4099, 6452,
958      6434, 6430, 6422, 4105,11735,11735, 4118, 4121,11735,11735,
959      4130, 4136, 6406, 6413, 6410, 6407, 6399, 6398, 6393, 4144,
960      4148,11735, 4151, 4154,11735,11735, 4170,11735,11735, 4178,
961
962      4181, 6378, 6384, 6388, 6381, 4189, 4192,11735, 4196, 6376,
963      6366, 6355, 6370, 4199,11735,11735, 4211, 4215, 6355, 6366,
964      4223, 4229,11735, 4232, 6357, 4235,11735,11735, 4251, 4254,
965     11735, 4257, 6335, 4260,11735,11735, 6339, 4276, 4279,11735,
966      4284, 6325, 4288,11735,11735, 6332, 6336, 6338, 4298, 4303,
967     11735, 4307, 4310, 4313, 4328, 4334, 6327, 4342, 4346,11735,
968      4350, 6319, 4353, 4371, 6306, 6306, 4357, 4379, 6317, 4387,
969      4390,11735, 4393, 6314, 4396,11735,11735, 4412, 4418,11735,
970      4421, 4424, 4427, 4442, 4445, 4453, 4460,11735, 4464, 4467,
971      4472, 6290, 6290, 4485, 4488, 4496, 4499,11735, 4503, 6286,
972
973      4506, 6297, 6277, 6247, 4509, 4518,11735, 4528, 6245, 6255,
974      4531, 4537,11735, 4540, 4543,11735,11735, 4551, 4559,11735,
975      4562, 4566,11735,11735, 6250, 4574, 4581,11735, 4584,  940,
976      4594,11735,11735, 6276, 6264, 6226, 6201, 4603, 6190, 6191,
977      6195, 6169, 6173, 6146, 6139, 2116, 6088, 2173, 6086, 6012,
978      2349, 6002, 6002, 2358, 5990, 5920, 5921, 5896, 5838, 5793,
979      5788, 5716, 5684, 2361, 5693, 5649, 4606, 4624, 4609, 4615,
980      4633, 5635, 5641, 4641, 5557, 4646,11735,11735, 4654, 4661,
981      4672,11735,11735, 5555, 4680, 4684, 5550, 4692, 2425, 5520,
982      4698, 4701, 4711, 4716, 5517, 4618,11735, 5485, 5418, 5394,
983
984      2428, 2560,   13,   40,  127,  304,  352,  383,  384, 4719,
985      4722, 4725, 4743,  434,  498, 4746, 4749, 4752, 4767, 4770,
986      4773,  566, 4781,  636,  637, 4788, 4791, 4800, 4811, 4814,
987       676,  686, 4818, 4822, 4836,  713, 4839,  703,  748, 4843,
988      4846, 4861,11735,11735, 4869,  740,  775,  765,  784,  844,
989       825, 4872, 4875,11735,11735, 4883, 4887, 4891, 4894, 4897,
990       853, 4905,  852,  895, 4912,11735,11735, 4923,  918, 4926,
991       924, 4929,  929,  974, 4932,  971, 1020, 1024, 4941, 4953,
992      4959,11735,11735, 4968,11735,11735, 1030, 4976, 2629, 4979,
993     11735,11735, 1032, 1054, 4996,11735,11735, 1071, 4991, 1094,
994
995      5004, 5011,11735,11735, 5019,11735,11735, 5027, 5030,11735,
996     11735, 1100, 1156, 5039,11735,11735, 5047, 1165, 5053, 5056,
997      1165, 1177, 1192, 5066, 1180, 5071, 5075, 5078, 5081, 5085,
998      1405, 1249, 5089,11735, 1264,11735,11735, 1232, 1234, 5099,
999      1234, 1250, 1283, 1293, 1329, 1346, 1359, 2696, 1362, 1371,
1000      2753, 1375, 2797, 1383, 2876, 1370, 1400, 2943, 1427, 3011,
1001      1435, 3078, 1461, 1456, 1481, 1504, 1506, 3141, 1506, 3145,
1002      5104,11735,11735, 5118, 5121,11735,11735, 1517, 1536, 5131,
1003      1510, 5137,11735,11735, 1523, 5152,11735,11735, 1514, 5160,
1004      3208, 1533, 5163, 2965, 3032, 5112, 5172, 5186, 1561, 1556,
1005
1006      1562, 1563, 3212, 1586, 3247, 3455, 1593, 1582, 1584, 3466,
1007      5189, 1584, 5192, 5195, 5206,11735,11735, 5214, 1602, 5217,
1008      5222, 5226,11735,11735, 5241, 5244,11735,11735, 5254, 5262,
1009      1635, 1631, 5266,11735,11735, 5274, 5277, 5285, 5288, 1640,
1010      5296, 3535, 1664, 5299,11735,11735, 5309, 1668, 5315, 5318,
1011      5328, 1655, 5333,11735,11735, 5341, 5346, 5359, 1753, 1780,
1012      1782, 1785, 5362, 5365, 5368, 5371, 5380, 5386, 5389, 5392,
1013      1790, 5398, 5407, 5416, 1780, 5419, 5422, 1798, 5437, 1793,
1014      5440, 1804, 1789, 5445, 1828, 1822, 1848, 5448, 5460, 1850,
1015      5468, 1840, 5471, 1856, 5475, 5478, 5481, 5499, 1852, 5502,
1016
1017      5505, 5508, 5511, 5514, 1856, 5529,11735,11735, 1872, 1887,
1018      1894, 5537, 1917, 5540, 5549, 5558, 5563, 5567, 5571, 5585,
1019      1953, 1976, 2043,11735, 1905, 5589, 5592, 1921, 1914, 1922,
1020      2019, 1925, 1928, 4361, 1940, 1961, 1961, 5595, 1982, 1974,
1021      1976, 5598, 5607, 5611, 1998, 5614, 2009, 5619, 5622, 1993,
1022      1998, 2028, 2037, 5625, 2054, 5628, 2056, 2086, 5631, 2047,
1023      5634, 2057, 5637, 5640, 2093, 2085, 2131, 2102, 2140, 2129,
1024      2188, 2131, 5643,11735,11735, 5658, 5662, 2118, 2110, 2197,
1025      2121, 5665, 5668, 2142, 2200, 2256, 5671, 5680,11735,11735,
1026      5689, 5692, 5697, 5701, 5710, 5715, 5718, 5722, 5730, 2167,
1027
1028      2179, 5736,11735,11735, 5745, 2198, 2201, 2198, 5753,11735,
1029      5756, 2215, 5760, 2222, 5765,11735,11735, 5773, 5779, 2224,
1030      5787,11735,11735, 5795, 5798, 5806, 2225, 2236, 2231, 5809,
1031      5813, 5827, 5830,11735,11735, 5838, 5842, 5850, 5856, 5859,
1032      5868, 2240, 5875,11735,11735, 5883, 5887, 2249, 5895,11735,
1033     11735, 2258, 5903,11735, 2281, 5906, 2270, 5909, 5912, 2271,
1034      5915, 2293, 5927, 2306, 2308, 2291, 5935,11735, 2297, 5938,
1035      2289, 5941, 5944, 5962, 5965, 2301, 5974, 2319, 5980, 5983,
1036      5986, 5989, 6004, 6007, 6015, 2335, 2344, 2337, 2351, 6018,
1037      2347, 6023,11735,11735, 6037, 6041, 6045,11735,11735, 6056,
1038
1039     11735, 2531, 2442, 2395, 2363, 6060, 6063, 6071, 6084, 2405,
1040      2425, 2449, 2426, 6090, 6095, 6098, 2436, 6101, 2466, 2478,
1041      2471, 6104, 6107, 6110, 6113, 2472, 6116, 6119, 6122, 6125,
1042      6128, 6131, 2496, 6136, 2509, 2537, 6139,11735, 2538, 6143,
1043      6146, 2556, 6161, 6164, 6167, 2572, 2571, 2571, 2581, 2574,
1044      2585, 2582, 2586, 2593, 2586, 6175, 6182, 6188, 6196, 2597,
1045      2632, 2609, 2612, 6200, 6203, 6206, 6209, 6217, 6220, 6225,
1046      6238,11735,11735, 6246, 6251,11735, 6254,11735,11735, 6265,
1047      2615, 2610, 2660, 2661, 2623, 2631, 6270, 2633, 6273,11735,
1048     11735, 2655, 6285,11735,11735, 6293, 6298, 2677, 2666, 2680,
1049
1050      6307,11735,11735, 6315, 6319,11735,11735, 6327, 6330, 6338,
1051     11735,11735, 6346, 2682, 6349,11735,11735, 2675, 2685, 2678,
1052      6357, 2694, 6360, 6365, 6380, 2695, 6383, 6386, 2720, 2719,
1053      2833, 2897, 2728, 2741, 6395,11735, 2731, 6401,11735,11735,
1054      6414,11735,11735, 2751, 6409, 2751, 6423, 6428, 6431,11735,
1055     11735, 6443,11735,11735, 6451, 6455, 6461, 6465, 6473, 6479,
1056      2763, 6483, 6486, 6491, 2928, 2856, 6494, 6498,11735,11735,
1057      6506, 6513, 6516, 6519, 2777, 2775, 6525, 6533, 2789, 6536,
1058      6539, 6545, 6548, 6551, 6554, 2782, 2797, 6557, 6560, 6566,
1059      6569, 2813, 6572, 2852,11735, 6575, 6578,11735,11735, 6586,
1060
1061      6593,11735, 6597,11735,11735, 2896, 2886, 2904, 2906, 2914,
1062      2916, 2903, 2939, 2939, 2952, 6605, 6608, 6591, 6596, 6633,
1063      6637, 2923, 2923, 2941, 6640, 2940, 6643,11735,11735, 6653,
1064      6656,11735,11735, 6667, 6672, 2953, 2958, 3005, 3050, 3031,
1065      3051, 3013, 6675, 6678, 3018, 3023, 6682,11735,11735, 6691,
1066      3036, 3052, 6700, 6703,11735,11735, 6711, 3049, 3068, 3074,
1067      3078, 6714,11735, 6719, 6724,11735,11735, 6733, 6739, 6742,
1068     11735,11735, 6752, 6757, 3105, 3128, 3108, 3129, 6760, 3092,
1069      6763, 3117, 6770, 6766, 6778, 6790, 6797, 6793, 6802, 6812,
1070      6819, 6822, 6825, 6830, 6840, 6844,11735, 6847, 3155, 3258,
1071
1072      6852, 6859, 6855, 6866, 3124, 3120, 6874, 6878, 6881, 6884,
1073      3122, 3137, 3138, 6887,11735, 3129, 6890, 6893, 3146, 3162,
1074      3185, 3220, 3209, 3220, 3217, 3213, 3233, 3225, 3237, 6901,
1075      3216, 3227, 3256, 3222, 3252, 3274, 3272, 3283, 3286, 3284,
1076      3283, 3339, 6910, 3334, 3331, 6913, 3327, 6916, 6920,11735,
1077      6923, 3334, 3339, 3401,11735, 3400,11735, 6926, 6929, 6935,
1078      3342, 3364, 6945, 6948, 3353, 6956, 6963,11735, 6966,11735,
1079      3362, 3369, 6969, 3370, 6974, 6993, 6978, 6987, 7001, 7009,
1080      7012, 7015, 3436,11735, 3434,11735, 7018, 3393, 7021, 3395,
1081      7036,11735, 7039, 7042, 7050, 7057, 7062, 7065,11735,11735,
1082
1083      7076, 7081, 7089, 7094, 7097,11735, 7100, 7103, 3467, 3444,
1084      3503, 7107,11735, 3394, 3413, 7112, 3429, 3458, 3459, 7116,
1085      7127, 3555, 3666, 3451, 3486, 3497, 3500, 3504, 3528, 3505,
1086      3518, 3562, 3570, 3597, 7135, 3541, 3556, 3563, 3567, 3568,
1087      3571, 3570, 3576, 3588, 3587, 3595, 3597, 3601, 3592, 3597,
1088      3619, 7138, 3628, 7141, 7144,11735, 3621, 7147,11735,11735,
1089      7150, 7154, 7168, 3622, 3638, 7171,11735,11735, 3648, 7179,
1090      7183, 3640, 7191, 7197, 7200, 7209, 7215,11735,11735, 7223,
1091     11735, 7227,11735,11735, 7235, 7238, 7242,11735,11735, 7245,
1092      7249, 7263, 7266, 7269, 3754, 3826, 7277,11735, 7284, 7291,
1093
1094      7299,11735,11735, 7310, 7313, 7321, 7324, 7333,11735, 3694,
1095      3707, 3748, 3648, 7339, 3664, 3684, 3691, 7342, 7353, 3712,
1096      3724, 3821, 3743, 3746, 3831, 3725, 3779, 3763, 3762, 3766,
1097     11735, 3786, 3772, 3770, 3790,11735, 7345, 3768, 3778, 3766,
1098      3782, 3801, 3807, 3822, 3809, 3818, 3806, 3836, 3844, 3850,
1099      3855, 3838, 7364, 3854, 7367, 7370, 7373, 7376, 7391,11735,
1100     11735, 7399,11735, 3861, 3858, 3872, 7402,11735,11735, 3876,
1101      7410, 7418, 7430,11735,11735, 7438, 7441, 7449, 7452, 7456,
1102      7460,11735,11735, 7470, 7474, 7482, 7488, 3894, 3895, 3905,
1103      3909, 3916, 3916, 7496, 7500, 7508, 3990, 4009, 7519,11735,
1104
1105     11735, 3954, 3942, 7527, 3910, 7413, 7530, 3903, 3922, 7533,
1106     11735,11735, 3970, 3958, 3961, 3989, 4001, 3990, 3998, 4024,
1107      7541, 4015, 4036, 4066, 4057, 4042, 4061, 4076, 4068, 7548,
1108      4024, 4026, 4052, 4100, 4104, 4089, 4055, 4049, 4051, 4074,
1109      4119, 4120, 4112, 4076, 4088, 7551, 7554, 7559, 7562, 7568,
1110      4089, 7580,11735,11735, 4090, 4099, 4088, 4108, 7588,11735,
1111     11735, 7598,11735,11735, 7606, 7611, 7614, 7624, 7629, 4130,
1112      4132, 7638, 4143, 4205, 4126, 4135, 4180, 4146, 4169, 4197,
1113      7646, 7649, 4177, 4184, 4181, 4196, 4222, 7652, 7658, 7661,
1114      7671, 7680, 7683, 7686, 4188, 4202, 4204, 4206, 4212, 4222,
1115
1116      4226, 4226, 7689, 7692, 4238, 4238,11735, 4240, 4243, 4243,
1117     11735, 4245, 7700, 4231, 4221, 4287,11735,11735, 4246, 4246,
1118      4250, 4240, 4311,11735,11735, 4272, 4272, 7703, 7707, 7710,
1119      7719,11735,11735, 4268, 4271, 4276, 7729, 4277, 7732, 7735,
1120     11735,11735, 7743, 4303, 4315, 4306, 4325, 4322, 4341, 4332,
1121      4345, 4343, 4353,11735, 4349, 4360,11735, 7750,11735, 7753,
1122      4361, 4362, 4377, 4365, 4389, 7756, 7763, 7775, 7806, 7853,
1123      7783, 7786, 7789, 4381, 4402, 4405, 4372, 4392, 4409, 4425,
1124      4395, 7794,11735,11735, 4431, 4406, 4407, 4433, 4417, 4420,
1125      7817, 4392, 4394,11735, 4398, 4415, 4411, 4413,11735, 4415,
1126
1127      4428, 7826, 7829,11735, 4433, 4435, 4445, 7832, 7836, 4454,
1128      7844, 7873, 7864, 7882, 4509, 4478, 4509, 4485, 4520, 4488,
1129      4527, 4498, 4544, 4550, 4549, 4550, 7890, 4567, 4534, 4571,
1130      4541, 4580, 7899, 4583, 4631, 7919, 7966, 4576,11735,11735,
1131      4554, 4579,11735,11735, 4561,11735, 4596, 4610,11735, 4622,
1132      4623, 7893,11735, 4635, 4604, 4601, 4653, 4651, 4613, 4613,
1133      4659, 4619, 4624, 4606, 7939, 4658, 4759, 4627, 7947,11735,
1134     11735, 7955, 4769, 4772,11735, 4683,11735, 4682,11735, 4692,
1135     11735, 4697,11735,11735,11735,11735, 7912,11735,11735, 4686,
1136     11735, 4687, 4696, 4758, 4712, 4705, 4848, 4726, 7977, 4722,
1137
1138      4713, 4725, 4716,11735,11735,11735,11735,11735, 4756, 4691,
1139     11735,11735, 4827, 4707,11735, 7986, 7989, 7992, 4813, 4731,
1140      4839, 4736, 7997, 4881, 4752, 4897, 4759,11735,11735,11735,
1141     11735, 4767, 4768, 8000, 4804, 4802, 4818, 8015, 4826, 4811,
1142      4844, 4838,11735, 4817, 4863,11735, 4834, 4896, 8019, 8022,
1143      8030, 8037, 8048, 8051, 4871, 4879, 4898, 4883, 4904, 4919,
1144      8059, 8067, 4907, 4915, 4928, 4911, 4920, 4936, 4924, 4927,
1145      8062, 4949,11735, 4941,11735, 4942, 4933,11735, 4935,11735,
1146      8077,11735,11735, 8085,11735,11735, 8093, 4977, 4999, 4950,
1147      4957, 4963, 4966, 4976, 4972, 8101,11735,11735, 4981, 4986,
1148
1149      4989, 4998, 5004, 5002, 5040, 5043, 5084,11735, 5047, 5052,
1150      5008, 5010, 5049, 5065, 5075, 5070, 5081, 5087, 5092, 5096,
1151      5103, 5110, 5107, 5120, 5121, 5118, 5125, 5126,11735,11735,
1152      5140,11735,11735, 5104, 5115, 5130, 5149, 5133, 5155, 5145,
1153      5142, 5160, 5149, 5159, 5177, 5166, 5164, 5182, 5176, 5173,
1154      5197, 5211, 5221, 5224, 5200, 5200, 5203, 5203, 5223, 5215,
1155      5248, 5233, 5223, 5253, 5241, 5237, 5278, 5259, 5258, 5287,
1156      5320,11735,11735, 5276, 5281, 5280, 5288, 5309, 5290,11735,
1157      5316, 5293,11735, 5327, 5305,11735, 5332, 5318,11735, 5395,
1158      5316, 5329, 5319, 5333,11735, 5333,11735, 5350,11735, 5353,
1159
1160     11735, 5360, 8109, 5371, 5392, 5377, 5395, 5362, 5363, 5370,
1161      5383, 8112, 5424,11735, 5423,11735, 5428, 5427, 5431, 5436,
1162      5433, 5436,11735,11735,11735,11735,11735,11735, 5478, 5508,
1163      5516, 5517, 5435, 5456, 5470, 5529, 5509, 5536, 5638, 5665,
1164      5587, 5656, 5439, 5506, 5503, 5636, 5688, 5732, 5695, 5752,
1165      5709, 5721, 5774, 5775, 5668, 5716, 5750, 5766, 5783, 5829,
1166      5803, 5804, 5854, 5856, 5818, 5872, 5904, 5959, 5844, 5883,
1167      5786, 5905, 5934, 5939, 5931, 5936, 5979, 5995, 5438, 5984,
1168      5941, 6017, 5960, 6014, 6004, 6116, 6069, 6160, 5815, 6010,
1169      6026, 6131, 6155, 6223, 5880, 6138, 6167, 6212, 6226, 6241,
1170
1171      6210, 6272, 6060, 6133, 6285, 6286, 6197, 6218, 6323, 6356,
1172      6154, 6075, 8120, 8123,11735,11735, 8143, 8152, 8161, 8170,
1173      8179, 8188, 8197, 8206, 8215, 8224, 8233, 8242, 8251, 8260,
1174      8269, 8278, 8287, 8296, 8305, 8314, 8323, 8332, 8341, 8350,
1175      8359, 8368, 8377, 8386, 8395, 8404, 8413, 8422, 8431, 8440,
1176      8449, 8458, 8467, 8476, 8485, 8494, 8503, 8512, 8521, 8530,
1177      8539, 8548, 8557, 8566, 8575, 8584, 8593, 8602, 8611, 8620,
1178      8629, 8638, 8647, 8656, 8665, 8672, 8679, 8686, 8693, 8700,
1179      8707, 8714, 8721, 8728, 8735, 8742, 8749, 8756, 8763, 8770,
1180      8777, 8784, 8791, 8798, 8805, 8812, 8819, 8826, 8833, 8840,
1181
1182      8847, 8854, 8863, 8870, 8875, 8882, 8887, 8894, 8899, 8906,
1183      8911, 8918, 8923, 8930, 8935, 8942, 8947, 8954, 8959, 8966,
1184      8971, 8978, 8983, 8990, 8995, 9002, 9007, 9014, 9019, 9026,
1185      9031, 9038, 9043, 9050, 9055, 9062, 9067, 9074, 9079, 9086,
1186      9091, 9098, 9103, 9110, 9115, 9122, 9127, 9134, 9139, 9146,
1187      9151, 9158, 9163, 9170, 9175, 9182, 9187, 9196, 9202, 9209,
1188      9217, 9224, 9232, 9239, 9247, 9254, 9262, 9269, 9277, 9284,
1189      9292, 9299, 9307, 9314, 9322, 9329, 9337, 9344, 9352, 9359,
1190      9367, 9374, 9382, 9389, 9397, 9405, 9413, 9420, 9428, 9435,
1191      9443, 9450, 9458, 9465, 9473, 9481, 9489, 9497, 9505, 9512,
1192
1193      9520, 9528, 9536, 9544, 9552, 9559, 9567, 9574, 9582, 9590,
1194      9597, 9605, 9614, 9620, 9627, 9635, 9643, 9651, 9659, 9667,
1195      9674, 9682, 9689, 9697, 9704, 9712, 9719, 9727, 9734, 9742,
1196      9750, 9758, 9766, 9774, 9781, 9789, 9797, 9805, 9812, 9820,
1197      9827, 9835, 9842, 9850, 9857, 9865, 9872, 9880, 9887, 9895,
1198      9902, 9910, 9917, 9925, 9932, 9940, 9948, 9955, 9963, 9970,
1199      9978, 9985, 9993,10001,10008,10016,10025,10034,10041,10049,
1200     10057,10064,10072,10079,10087,10094,10102,10109,10116,10124,
1201     10131,10139,10147,10154,10162,10169,10177,10185,10192,10200,
1202     10208,10216,10223,10231,10238,10246,10253,10261,10268,10276,
1203
1204     10283,10291,10298,10306,10313,10321,10329,10336,10344,10351,
1205     10359,10367,10375,10383,10391,10399,10408,10417,10424,10432,
1206     10440,10447,10455,10462,10470,10477,10485,10492,10499,10507,
1207     10514,10522,10530,10538,10546,10553,10561,10569,10576,10584,
1208     10592,10600,10607,10615,10622,10630,10637,10645,10652,10660,
1209     10667,10675,10683,10691,10698,10706,10714,10722,10730,10737,
1210     10745,10753,10761,10769,10778,10787,10795,10803,10811,10818,
1211     10826,10833,10841,10849,10857,10865,10873,10881,10889,10897,
1212     10905,10913,10920,10928,10935,10943,10951,10959,10966,10973,
1213     10981,10988,10996,11003,11010,11018,11025,11033,11040,11048,
1214
1215     11056,11064,11071,11079,11087,11095,11104,11113,11121,11129,
1216     11136,11143,11151,11159,11167,11175,11183,11190,11198,11205,
1217     11213,11221,11228,11235,11243,11250,11258,11265,11272,11279,
1218     11287,11294,11302,11310,11318,11326,11334,11342,11350,11359,
1219     11368,11376,11384,11391,11399,11407,11415,11423,11431,11438,
1220     11446,11453,11461,11469,11476,11483,11491,11499,11507,11514,
1221     11521,11529,11537,11545,11553,11561,11569,11577,11585,11594,
1222     11603,11611,11618,11625,11633,11641,11649,11656,11664,11671,
1223     11680,11689,11698,11707,11716,11725
1224     } ;
1225
1226 static yyconst flex_int16_t yy_def[3687] =
1227     {   0,
1228      3217, 3217, 3218, 3218, 3218, 3218, 3219, 3219, 3220, 3220,
1229      3221, 3221, 3222, 3222, 3222, 3222, 3223, 3223, 3217, 3217,
1230      3224, 3224, 3225, 3225, 3225, 3225, 3217, 3217, 3225, 3225,
1231      3225, 3225, 3217, 3217, 3225, 3225, 3217, 3217, 3225, 3225,
1232      3225, 3225, 3226, 3226, 3227, 3227, 3217, 3217, 3227, 3227,
1233      3227, 3227, 3228, 3228, 3222, 3222, 3229, 3229, 3230, 3230,
1234      3217, 3217, 3230, 3230, 3230, 3230, 3231, 3231, 3232, 3232,
1235      3233, 3233, 3234, 3234, 3234, 3234, 3217, 3217, 3234, 3234,
1236      3234, 3234, 3217, 3217, 3234, 3234, 3217, 3217, 3234, 3234,
1237      3234, 3234, 3217, 3217, 3234, 3234, 3217, 3217, 3234, 3234,
1238
1239      3234, 3234, 3235, 3235, 3236, 3236, 3217, 3217, 3236, 3236,
1240      3236, 3236, 3237, 3237, 3238, 3238, 3217, 3217, 3238, 3238,
1241      3238, 3238, 3239, 3239, 3240, 3240, 3241, 3241, 3242, 3242,
1242      3243, 3243, 3244, 3244, 3217, 3217, 3244, 3244, 3244, 3244,
1243      3245, 3245, 3246, 3246, 3216,  145, 3247, 3247, 3248, 3248,
1244      3249, 3249, 3250, 3250, 3251, 3251, 3252, 3252, 3253, 3253,
1245      3254, 3254, 3255, 3255, 3256, 3256, 3257, 3257, 3217, 3217,
1246      3257, 3257, 3257, 3257, 3258, 3258, 3259, 3259, 3217, 3217,
1247      3259, 3259, 3259, 3259, 3260, 3260, 3261, 3261, 3217, 3217,
1248      3261, 3261, 3261, 3261, 3262, 3262, 3263, 3263, 3264, 3264,
1249
1250      3265, 3265, 3217, 3217, 3265, 3265, 3265, 3265, 3266, 3266,
1251      3267, 3267, 3217, 3217, 3267, 3267, 3267, 3267, 3268, 3268,
1252      3269, 3269, 3217, 3217, 3269, 3269, 3269, 3269, 3270, 3270,
1253      3271, 3271, 3272, 3272, 3273, 3273, 3217, 3217, 3273, 3273,
1254      3273, 3273, 3274, 3274, 3275, 3275, 3217, 3217, 3216, 3216,
1255      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1256      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1257      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3276,
1258      3216, 3216, 3276, 3216, 3216, 3216,  286,  286,  288,  286,
1259       289,  289, 3216, 3216, 3216, 3277, 3216, 3216, 3277, 3216,
1260
1261      3216,  290,  289, 3216, 3216, 3216, 3278, 3216, 3216, 3278,
1262      3278, 3278, 3216, 3216, 3216, 3216, 3216, 3279, 3216, 3216,
1263      3279, 3279, 3279, 3279, 3279, 3216, 3216,  289,  289,  289,
1264      3216, 3216, 3216, 3280, 3216, 3216, 3280, 3280, 3280, 3216,
1265      3216, 3216, 3216, 3216, 3216, 3281, 3216, 3216, 3281, 3281,
1266      3216, 3216,  290,  289,  290,  355,  354,  354,  354,  354,
1267       355,  361,  360,  359, 3216, 3216, 3216, 3282, 3216, 3216,
1268      3282, 3282, 3282, 3282, 3216, 3216,  289,  289, 3216, 3216,
1269      3216, 3283, 3216, 3216, 3283, 3283, 3283, 3216, 3216,  289,
1270       289, 3216, 3216, 3216, 3284, 3216, 3216, 3284, 3284, 3216,
1271
1272      3216, 3216, 3216, 3216, 3216, 3285, 3216, 3216, 3285, 3285,
1273      3216, 3216, 3216, 3216, 3216, 3216, 3286, 3216, 3216, 3286,
1274      3286, 3286, 3286, 3286, 3216, 3216,  289,  427,  427, 3216,
1275      3216, 3216, 3287, 3216, 3216, 3287, 3287, 3287, 3216, 3216,
1276      3216, 3216, 3216, 3216, 3288, 3216, 3216, 3288, 3288, 3288,
1277      3288, 3288, 3288, 3288, 3288, 3216, 3216, 3216, 3216, 3216,
1278      3216, 3289, 3216, 3216, 3289, 3289, 3289, 3289, 3289, 3289,
1279      3216, 3216, 3216, 3216, 3216, 3216, 3290, 3216, 3216, 3290,
1280      3290, 3290, 3290, 3290, 3290, 3290, 3216, 3216, 3216, 3216,
1281      3216, 3216, 3291, 3216, 3216, 3291, 3291, 3216, 3216, 3216,
1282
1283      3216, 3216, 3216, 3292, 3216, 3216, 3292, 3292, 3292, 3216,
1284      3216, 3216, 3216, 3216, 3216, 3293, 3216, 3216, 3293, 3293,
1285      3293, 3293, 3216, 3216,  427,  289, 3216, 3216, 3216, 3294,
1286      3216, 3216, 3294, 3294, 3216, 3216,  289,  537,  537, 3216,
1287      3216, 3216, 3295, 3216, 3216, 3295, 3295, 3295, 3216, 3216,
1288       537,  537, 3216, 3216, 3216, 3296, 3216, 3216, 3296, 3296,
1289      3216, 3216, 3216, 3216, 3216, 3216, 3297, 3216, 3216, 3297,
1290      3297, 3216, 3216,  537,  537, 3216, 3216, 3216, 3298, 3216,
1291      3216, 3298, 3298, 3298, 3216, 3216,  537,  537, 3216, 3216,
1292      3216, 3299, 3216, 3216, 3299, 3299, 3299, 3299, 3299, 3216,
1293
1294      3216,  289,  602,  602, 3216, 3216, 3216, 3300, 3216, 3216,
1295      3300, 3216, 3216, 3216, 3216, 3216, 3216, 3301, 3216, 3216,
1296      3301, 3216, 3216,  602,  289, 3216, 3216, 3216, 3302, 3216,
1297      3216, 3302, 3302, 3216, 3216, 3216, 3216, 3303, 3216, 3216,
1298      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1299      3216, 3216, 3216, 3304, 3304, 3305, 3216, 3216, 3216, 3216,
1300      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1301      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3306,
1302      3306, 3307, 3216, 3308, 3308, 3308, 3308, 3216, 3309, 3216,
1303      3216, 3310, 3310, 3310, 3310, 3310, 3310, 3310, 3310, 3310,
1304
1305      3311, 3216, 3216, 3312, 3312, 3312, 3312, 3313, 3216, 3314,
1306      3314, 3314, 3315, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1307      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3316,
1308      3316, 3316, 3316, 3316, 3317, 3216, 3318, 3318, 3318, 3318,
1309      3319, 3216, 3320, 3320, 3320, 3321, 3216, 3322, 3322, 3322,
1310      3323, 3216, 3324, 3324, 3324, 3324, 3324, 3324, 3325, 3216,
1311      3216, 3326, 3326, 3326, 3326, 3327, 3216, 3328, 3328, 3328,
1312      3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328,
1313      3328, 3329, 3216, 3330, 3330, 3330, 3330, 3330, 3330, 3330,
1314      3330, 3331, 3216, 3332, 3332, 3332, 3332, 3332, 3332, 3332,
1315
1316      3332, 3333, 3216, 3334, 3334, 3334, 3335, 3216, 3336, 3336,
1317      3336, 3336, 3337, 3216, 3338, 3338, 3338, 3338, 3338, 3338,
1318      3339, 3216, 3340, 3340, 3340, 3340, 3341, 3216, 3216, 3342,
1319      3342, 3342, 3342, 3342, 3343, 3216, 3344, 3344, 3344, 3345,
1320      3216, 3346, 3346, 3346, 3347, 3216, 3348, 3348, 3348, 3348,
1321      3349, 3216, 3350, 3350, 3350, 3350, 3350, 3350, 3351, 3216,
1322      3216, 3352, 3352, 3353, 3216, 3354, 3354, 3355, 3216, 3356,
1323      3356, 3356, 3357, 3358, 3216, 3358, 3216, 3216, 3216, 3359,
1324      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3360, 3361, 3361,
1325      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1326
1327      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1328      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3362, 3363,
1329      3363, 3364, 3216, 3216, 3364, 3216, 3365, 3365, 3216, 3366,
1330      3216, 3216, 3366, 3366, 3366, 3366, 3366, 3366, 3367, 3367,
1331      3216, 3368, 3368, 3368, 3369, 3369, 3216, 3216, 3370, 3371,
1332      3371, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1333      3216, 3216, 3216, 3372, 3216, 3216, 3372, 3372, 3373, 3373,
1334      3374, 3216, 3216, 3374, 3375, 3375, 3216, 3216, 3376, 3377,
1335      3377, 3378, 3378, 3379, 3379, 3380, 3380, 3380, 3216, 3216,
1336      3380, 3380, 3381, 3381, 3216, 3216, 3382, 3216, 3216, 3216,
1337
1338      3216, 3383, 3383, 3384, 3384, 3216, 3216, 3384, 3216, 3216,
1339      3384, 3384, 3384, 3384, 3384, 3384, 3384, 3384, 3385, 3385,
1340      3216, 3216, 3216, 3216, 3386, 3386, 3386, 3386, 3386, 3387,
1341      3387, 3388, 3388, 3388, 3216, 3216, 3388, 3388, 3388, 3389,
1342      3389, 3390, 3216, 3216, 3391, 3391, 3392, 3216, 3216, 3392,
1343      3393, 3393, 3394, 3216, 3216, 3394, 3394, 3394, 3395, 3395,
1344      3396, 3396, 3396, 3397, 3397, 3216, 3398, 3398, 3398, 3398,
1345      3399, 3399, 3400, 3216, 3216, 3401, 3401, 3402, 3402, 3403,
1346      3403, 3404, 3404, 3404, 3405, 3405, 3406, 3406, 3406, 3406,
1347      3406, 3407, 3407, 3216, 3408, 3409, 3409, 3216, 3216, 3410,
1348
1349      3410, 3216, 3216, 3411, 3412, 3412, 3413, 3216, 3216, 3413,
1350      3216, 3216, 3414, 3216, 3216, 3216, 3216, 3216, 3216, 3415,
1351      3216, 3416, 3216, 3416, 3216, 3216, 3216, 3216, 3216, 3216,
1352      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1353      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1354      3216, 3216, 3216, 3417, 3216, 3418, 3216, 3418, 3419, 3216,
1355      3216, 3216, 3419, 3216, 3216, 3420, 3216, 3420, 3421, 3216,
1356      3216, 3216, 3216, 3216, 3421, 3216, 3216, 3421, 3421, 3421,
1357      3216, 3422, 3216, 3422, 3216, 3423, 3423, 3423, 3216, 3424,
1358      3216, 3424, 3216, 3216, 3216, 3425, 3216, 3426, 3216, 3426,
1359
1360      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1361      3216, 3427, 3216, 3216, 3216, 3427, 3427, 3216, 3428, 3216,
1362      3428, 3429, 3216, 3216, 3216, 3429, 3216, 3430, 3216, 3430,
1363      3216, 3216, 3216, 3431, 3216, 3432, 3216, 3432, 3433, 3433,
1364      3216, 3434, 3216, 3434, 3435, 3435, 3435, 3216, 3216, 3216,
1365      3435, 3435, 3216, 3436, 3216, 3436, 3216, 3216, 3437, 3216,
1366      3216, 3216, 3216, 3216, 3216, 3216, 3438, 3216, 3438, 3439,
1367      3439, 3439, 3439, 3216, 3216, 3216, 3439, 3216, 3216, 3216,
1368      3216, 3216, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 3216,
1369      3440, 3216, 3440, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1370
1371      3216, 3441, 3441, 3441, 3441, 3216, 3442, 3216, 3442, 3443,
1372      3443, 3443, 3443, 3216, 3216, 3216, 3216, 3216, 3443, 3443,
1373      3216, 3444, 3216, 3444, 3445, 3216, 3216, 3216, 3216, 3446,
1374      3216, 3446, 3447, 3216, 3216, 3216, 3447, 3216, 3448, 3216,
1375      3448, 3449, 3216, 3216, 3216, 3449, 3449, 3449, 3216, 3450,
1376      3216, 3450, 3216, 3216, 3216, 3216, 3451, 3216, 3452, 3216,
1377      3452, 3216, 3216, 3216, 3453, 3453, 3216, 3216, 3453, 3216,
1378      3454, 3216, 3454, 3455, 3216, 3216, 3216, 3216, 3456, 3216,
1379      3456, 3216, 3216, 3216, 3216, 3216, 3457, 3216, 3457, 3216,
1380      3216, 3458, 3458, 3216, 3216, 3216, 3459, 3216, 3459, 3460,
1381
1382      3460, 3460, 3460, 3460, 3216, 3461, 3216, 3461, 3216, 3462,
1383      3216, 3463, 3216, 3463, 3216, 3216, 3216, 3216, 3464, 3216,
1384      3464, 3216, 3216, 3216, 3465, 3216, 3466, 3216, 3466, 3467,
1385      3468, 3216, 3216, 3216, 3216, 3216, 3469, 3470, 3216, 3216,
1386      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1387      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1388      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3471, 3216,
1389      3216, 3472, 3216, 3473, 3474, 3216, 3216, 3216, 3216, 3216,
1390      3216, 3216, 3216, 3474, 3216, 3216, 3474, 3475, 3216, 3476,
1391      3216, 3216, 3476, 3477, 3478, 3216, 3216, 3216, 3216, 3216,
1392
1393      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3479, 3479,
1394      3216, 3216, 3480, 3481, 3481, 3482, 3216, 3216, 3483, 3216,
1395      3216, 3484, 3485, 3486, 3486, 3216, 3216, 3486, 3486, 3487,
1396      3216, 3216, 3216, 3216, 3488, 3489, 3489, 3489, 3489, 3216,
1397      3216, 3216, 3216, 3216, 3489, 3489, 3489, 3489, 3489, 3489,
1398      3489, 3490, 3216, 3216, 3216, 3491, 3491, 3491, 3491, 3492,
1399      3493, 3493, 3493, 3493, 3216, 3216, 3216, 3493, 3493, 3494,
1400      3495, 3496, 3497, 3497, 3498, 3499, 3499, 3499, 3499, 3500,
1401      3216, 3216, 3216, 3216, 3216, 3216, 3501, 3502, 3216, 3216,
1402      3216, 3216, 3503, 3503, 3216, 3216, 3216, 3503, 3504, 3505,
1403
1404      3506, 3216, 3216, 3216, 3216, 3216, 3216, 3507, 3216, 3216,
1405      3216, 3508, 3508, 3216, 3216, 3216, 3509, 3510, 3216, 3216,
1406      3510, 3510, 3510, 3511, 3216, 3512, 3513, 3514, 3515, 3516,
1407      3517, 3518, 3518, 3216, 3518, 3216, 3216, 3216, 3519, 3520,
1408      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1409      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1410      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1411      3216, 3216, 3216, 3521, 3216, 3216, 3216, 3522, 3216, 3523,
1412      3524, 3216, 3216, 3216, 3524, 3216, 3216, 3216, 3524, 3525,
1413      3216, 3526, 3216, 3216, 3216, 3216, 3216, 3527, 3528, 3216,
1414
1415      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1416      3216, 3529, 3216, 3216, 3216, 3216, 3216, 3530, 3531, 3531,
1417      3532, 3216, 3216, 3216, 3533, 3216, 3216, 3216, 3534, 3535,
1418      3536, 3536, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3536,
1419      3537, 3216, 3216, 3216, 3216, 3216, 3538, 3539, 3216, 3216,
1420      3539, 3539, 3216, 3216, 3216, 3216, 3216, 3539, 3539, 3539,
1421      3539, 3539, 3539, 3540, 3216, 3216, 3541, 3541, 3541, 3542,
1422      3543, 3216, 3216, 3543, 3543, 3216, 3216, 3543, 3544, 3545,
1423      3546, 3547, 3547, 3548, 3549, 3549, 3549, 3216, 3216, 3549,
1424      3550, 3551, 3552, 3216, 3553, 3553, 3553, 3554, 3555, 3556,
1425
1426      3557, 3558, 3558, 3559, 3560, 3216, 3216, 3216, 3560, 3560,
1427      3560, 3561, 3216, 3216, 3216, 3562, 3563, 3216, 3216, 3564,
1428      3565, 3566, 3566, 3216, 3216, 3567, 3568, 3216, 3216, 3216,
1429      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1430      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1431      3216, 3216, 3216, 3216, 3216, 3569, 3570, 3216, 3571, 3572,
1432      3572, 3572, 3573, 3574, 3216, 3216, 3216, 3216, 3216, 3216,
1433      3216, 3216, 3216, 3216, 3216, 3575, 3576, 3216, 3216, 3216,
1434      3216, 3216, 3216, 3216, 3216, 3216, 3577, 3216, 3216, 3216,
1435      3578, 3579, 3216, 3216, 3580, 3581, 3216, 3216, 3582, 3583,
1436
1437      3583, 3216, 3216, 3216, 3216, 3216, 3216, 3583, 3216, 3216,
1438      3216, 3216, 3584, 3585, 3216, 3216, 3216, 3216, 3216, 3585,
1439      3216, 3216, 3216, 3216, 3216, 3585, 3585, 3585, 3585, 3216,
1440      3216, 3586, 3216, 3216, 3216, 3216, 3216, 3587, 3216, 3216,
1441      3588, 3589, 3216, 3216, 3216, 3216, 3216, 3589, 3216, 3216,
1442      3216, 3589, 3216, 3216, 3590, 3591, 3592, 3592, 3593, 3594,
1443      3594, 3594, 3216, 3216, 3216, 3594, 3216, 3216, 3595, 3596,
1444      3216, 3216, 3216, 3216, 3216, 3597, 3598, 3599, 3600, 3601,
1445      3216, 3216, 3216, 3216, 3602, 3603, 3603, 3603, 3603, 3604,
1446      3216, 3216, 3216, 3216, 3605, 3606, 3216, 3216, 3216, 3216,
1447
1448      3216, 3607, 3608, 3608, 3216, 3216, 3216, 3609, 3216, 3216,
1449      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1450      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1451      3216, 3216, 3216, 3610, 3611, 3216, 3216, 3216, 3612, 3216,
1452      3216, 3612, 3613, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1453      3216, 3216, 3216, 3216, 3216, 3614, 3216, 3216, 3216, 3216,
1454      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3615, 3216, 3216,
1455      3216, 3216, 3216, 3616, 3216, 3216, 3216, 3216, 3216, 3617,
1456      3618, 3618, 3216, 3216, 3618, 3216, 3619, 3620, 3216, 3216,
1457      3216, 3620, 3216, 3216, 3216, 3216, 3216, 3620, 3620, 3620,
1458
1459      3216, 3216, 3216, 3621, 3216, 3216, 3216, 3216, 3216, 3216,
1460      3216, 3216, 3622, 3623, 3216, 3216, 3216, 3623, 3623, 3624,
1461      3625, 3626, 3216, 3216, 3627, 3628, 3216, 3216, 3628, 3628,
1462      3216, 3216, 3628, 3629, 3216, 3216, 3216, 3216, 3216, 3216,
1463      3216, 3216, 3216, 3630, 3631, 3632, 3633, 3634, 3216, 3216,
1464      3216, 3216, 3216, 3216, 3635, 3636, 3636, 3636, 3636, 3637,
1465      3216, 3638, 3639, 3640, 3641, 3641, 3216, 3216, 3216, 3216,
1466      3642, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1467      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1468      3216, 3216, 3643, 3644, 3216, 3645, 3216, 3216, 3216, 3645,
1469
1470      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1471      3216, 3216, 3216, 3216, 3216, 3646, 3216, 3216, 3216, 3216,
1472      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3647,
1473      3216, 3216, 3216, 3648, 3649, 3650, 3650, 3216, 3216, 3216,
1474      3216, 3650, 3216, 3651, 3652, 3652, 3216, 3216, 3216, 3652,
1475      3652, 3652, 3653, 3216, 3216, 3216, 3654, 3655, 3655, 3655,
1476      3656, 3216, 3216, 3657, 3216, 3216, 3216, 3658, 3659, 3216,
1477      3216, 3216, 3659, 3659, 3216, 3216, 3216, 3216, 3659, 3660,
1478      3216, 3661, 3662, 3663, 3664, 3665, 3666, 3216, 3216, 3667,
1479      3667, 3667, 3668, 3216, 3669, 3216, 3216, 3670, 3671, 3671,
1480
1481      3216, 3672, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1482      3216, 3216, 3216, 3216, 3216, 3673, 3216, 3216, 3674, 3216,
1483      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3675,
1484      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1485      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3676, 3216, 3216,
1486      3677, 3678, 3678, 3216, 3216, 3216, 3216, 3678, 3216, 3679,
1487      3680, 3680, 3216, 3216, 3680, 3680, 3216, 3216, 3216, 3216,
1488      3655, 3655, 3655, 3656, 3216, 3216, 3658, 3216, 3216, 3659,
1489      3659, 3659, 3216, 3216, 3216, 3216, 3659, 3660, 3216, 3661,
1490      3216, 3216, 3216, 3216, 3664, 3665, 3666, 3216, 3216, 3216,
1491
1492      3216, 3216, 3667, 3667, 3216, 3216, 3216, 3669, 3670, 3671,
1493      3671, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3673,
1494      3216, 3216, 3216, 3674, 3216, 3216, 3216, 3216, 3216, 3216,
1495      3216, 3216, 3216, 3216, 3675, 3216, 3216, 3216, 3216, 3216,
1496      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1497      3216, 3216, 3216, 3676, 3216, 3216, 3678, 3678, 3216, 3216,
1498      3216, 3216, 3679, 3680, 3680, 3216, 3216, 3216, 3680, 3216,
1499      3216, 3655, 3655, 3216, 3216, 3656, 3216, 3216, 3216, 3216,
1500      3216, 3216, 3216, 3216, 3659, 3659, 3659, 3216, 3216, 3216,
1501      3216, 3660, 3661, 3216, 3216, 3216, 3216, 3216, 3665, 3666,
1502
1503      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3670,
1504      3671, 3671, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1505      3216, 3216, 3216, 3216, 3216, 3674, 3216, 3216, 3216, 3216,
1506      3216, 3216, 3216, 3216, 3216, 3216, 3675, 3216, 3216, 3216,
1507      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1508      3216, 3216, 3216, 3216, 3676, 3678, 3216, 3216, 3216, 3216,
1509      3216, 3216, 3216, 3680, 3680, 3680, 3216, 3216, 3216, 3655,
1510      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3659, 3659, 3659,
1511      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1512      3216, 3216, 3216, 3665, 3666, 3216, 3216, 3216, 3216, 3216,
1513
1514      3216, 3670, 3671, 3671, 3216, 3216, 3216, 3216, 3216, 3216,
1515      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1516      3674, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3675,
1517      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1518      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3676, 3216, 3216,
1519      3678, 3216, 3216, 3216, 3680, 3680, 3680, 3655, 3216, 3216,
1520      3216, 3216, 3216, 3216, 3659, 3216, 3216, 3659, 3216, 3216,
1521      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1522      3665, 3666, 3216, 3216, 3216, 3216, 3670, 3671, 3671, 3671,
1523      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1524
1525      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1526      3216, 3216, 3675, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1527      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3676,
1528      3216, 3216, 3216, 3678, 3680, 3680, 3680, 3655, 3659, 3216,
1529      3216, 3216, 3659, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1530      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3666,
1531      3216, 3216, 3216, 3216, 3670, 3671, 3671, 3671, 3681, 3682,
1532      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1533      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1534      3675, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1535
1536      3216, 3216, 3216, 3216, 3678, 3680, 3680, 3216, 3216, 3655,
1537      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1538      3216, 3216, 3216, 3216, 3216, 3216, 3666, 3216, 3216, 3216,
1539      3216, 3670, 3671, 3683, 3684, 3681, 3682, 3216, 3216, 3216,
1540      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1541      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1542      3216, 3678, 3680, 3680, 3216, 3216, 3216, 3655, 3216, 3216,
1543      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1544      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1545      3216, 3216, 3670, 3683, 3671, 3685, 3684, 3686, 3671, 3216,
1546
1547      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1548      3216, 3216, 3216, 3216, 3216, 3678, 3680, 3680, 3216, 3216,
1549      3216, 3216, 3655, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1550      3216, 3216, 3216, 3670, 3685, 3216, 3686, 3671, 3216, 3216,
1551      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1552      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1553      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1554      3670, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1555      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1556      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1557
1558      3216, 3216, 3216, 3216, 3216, 3216, 3670, 3216, 3216, 3216,
1559      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1560      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1561      3670, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1562      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1563      3216, 3670, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1564      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1565      3670, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1566      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3670,
1567      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1568
1569      3216, 3216, 3670, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1570      3216, 3670, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1571      3670, 3670, 3216, 3216, 3216, 3216, 3216, 3216, 3670, 3670,
1572      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1573      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1574      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1575      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1576      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1577      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1578      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1579
1580      3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
1581      3670, 3670, 3670, 3670, 3216,    0, 3216, 3216, 3216, 3216,
1582      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1583      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1584      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1585      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1586      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1587      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1588      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1589      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1590
1591      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1592      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1593      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1594      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1595      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1596      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1597      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1598      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1599      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1600      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1601
1602      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1603      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1604      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1605      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1606      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1607      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1608      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1609      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1610      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1611      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1612
1613      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1614      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1615      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1616      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1617      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1618      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1619      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1620      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1621      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1622      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1623
1624      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1625      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1626      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1627      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1628      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1629      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1630      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1631      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
1632      3216, 3216, 3216, 3216, 3216, 3216
1633     } ;
1634
1635 static yyconst flex_int16_t yy_nxt[11810] =
1636     {   0,
1637      3216,  252,  253,  252,  252,  253,  252,  252,  253,  252,
1638       252,  253,  252,  257,  253,  257,  263,  254,  260,  263,
1639       254,  260, 3216,  255, 3216,  261,  255, 3216,  261,  258,
1640       257,  253,  257,  638,  264,  266,  267,  264,  266,  267,
1641       268,  269,  682,  268,  269,  638,  258,  273,  274,  639,
1642       270,  266,  267,  270,  271,  641,  268,  266,  267,  671,
1643       271,  640,  268,  273,  274, 1706,  270,  253,  253,  253,
1644       819,  640,  270,  253,  253,  253,  285,  253,  285,  285,
1645       253,  285,  820,  276,  285,  253,  285,  659, 1707,  276,
1646       713,  275,  286, 1311,  674,  286,  637,  637,  637, 1312,
1647
1648       287,  637,  637,  637,  637,  637,  637,  275,  277,  278,
1649       253,  278,  277,  277,  277,  277,  277,  277,  277,  279,
1650       277,  277,  277,  669,  277,  281,  277,  282,  277,  285,
1651       253,  285,  253,  253,  253,  253,  253,  253,  670,  285,
1652       253,  285,  285,  253,  285,  287,  675,  664,  288,  641,
1653       674,  288,  893,  277,  277,  286,  641,  641,  286,  285,
1654       253,  285,  637,  637,  637,  640,  637,  637,  637,  637,
1655       637,  637,  640,  640,  701,  289,  894,  283,  277,  278,
1656       253,  278,  277,  277,  277,  277,  277,  277,  277,  279,
1657       277,  277,  277, 1708,  277,  281,  277,  282,  277,  285,
1658
1659       253,  285,  253,  253,  253,  253,  253,  253,  646,  285,
1660       253,  285,  285,  253,  285,  289,  652,  713,  290,  775,
1661       953,  290,  776,  277,  277,  287,  702,  714,  287,  253,
1662       253,  253,  253,  253,  253,  285,  253,  285,  285,  253,
1663       285,  285,  253,  285,  954,  291,  825,  283,  291,  641,
1664       647,  289,  770,  826,  289,  723,  648,  292,  285,  253,
1665       285,  649,  637,  637,  637,  640,  650,  637,  637,  637,
1666       637,  637,  637,  771,  292,  293,  294,  253,  294,  293,
1667       293,  293,  293,  293,  293,  293,  295,  293,  293,  293,
1668       699,  293,  297,  293,  298,  293,  301,  253,  301,  301,
1669
1670       253,  301,  253,  253,  253,  700,  253,  253,  253,  301,
1671       253,  301,  302,  788,  881,  302,  789,  882,  290,  695,
1672       293,  293,  290,  696, 3216,  302,  656,  697,  299,  293,
1673       294,  253,  294,  293,  293,  293,  293,  293,  293,  293,
1674       295,  293,  293,  293,  641,  293,  297,  293,  298,  293,
1675       301,  253,  301,  301,  253,  301,  301,  253,  301,  777,
1676       640,  868,  266,  267,  833,  676,  302,  268, 3216,  303,
1677      1709,  834,  303,  778,  293,  293,  702,  313,  677,  701,
1678       670,  875,  299,  304,  305,  253,  305,  304,  304,  304,
1679       304,  304,  304,  304,  306,  304,  304,  304,  658,  304,
1680
1681       308,  304,  309,  304, 1710,  641,  314,  669,  327,  253,
1682       327,  327,  253,  327,  253,  253,  253,  926,  266,  267,
1683       678,  640,  670,  268,  328,  688,  906,  328,  304,  304,
1684       329,  674,  689,  313,  901, 1711,  310,  735,  902,  311,
1685       907,  640,  637,  637,  637, 1712,  312,  304,  305,  253,
1686       305,  304,  304,  304,  304,  304,  304,  304,  306,  304,
1687       304,  304,  314,  304,  308,  304,  309,  304,  253,  253,
1688       253,  327,  253,  327,  327,  253,  327,  911,  327,  253,
1689       327,  327,  253,  327,  329,  641,  641,  328, 3216,  702,
1690       328,  907,  304,  304,  330, 1719,  987,  330,  671,  988,
1691
1692       310,  640,  640,  311,  637,  637,  637,  637,  637,  637,
1693       312,  315,  316,  253,  316,  315,  315,  315,  315,  315,
1694       315,  315,  317,  315,  315,  315,  659,  315,  319,  315,
1695       320,  315,  341,  253,  341,  341,  253,  341,  352,  253,
1696       352,  911,  352,  253,  352,  352,  253,  352,  342, 1720,
1697       641,  342,  641,  641,  353,  957,  315,  315,  353,  708,
1698       658,  354,  637,  637,  637,  321,  640,  322,  640,  640,
1699       821,  323,  637,  637,  637,  674,  324,  325,  315,  316,
1700       253,  316,  315,  315,  315,  315,  315,  315,  315,  317,
1701       315,  315,  315,  671,  315,  319,  315,  320,  315,  352,
1702
1703       253,  352,  253,  253,  253,  253,  253,  253,  735,  352,
1704       253,  352,  352,  253,  352,  354,  722, 1729,  355,  664,
1705       641,  355,  726,  315,  315,  356,  717,  716,  356,  637,
1706       637,  637,  321,  719,  322,  674,  640,  727,  323,  637,
1707       637,  637,  741,  324,  325,  331,  332,  253,  332,  331,
1708       331,  331,  331,  331,  331,  331,  333,  331,  331,  331,
1709       674,  331,  335,  331,  336,  331,  352,  253,  352,  352,
1710       253,  352,  253,  253,  253,  911,  253,  253,  253,  352,
1711       253,  352,  357, 1453, 1731,  357,  875,  893,  358,  962,
1712       331,  331,  358, 1732,  702,  354, 1454,  337,  637,  637,
1713
1714       637,  876,  741,  338,  637,  637,  637,  637,  637,  637,
1715       821,  960,  339,  331,  332,  253,  332,  331,  331,  331,
1716       331,  331,  331,  331,  333,  331,  331,  331,  953,  331,
1717       335,  331,  336,  331,  352,  253,  352,  253,  253,  253,
1718       253,  253,  253, 1742,  352,  253,  352,  352,  253,  352,
1719       354, 1743,  894,  359,  674,  911,  359,  641,  331,  331,
1720       357, 1748,  674,  357,  746,  337,  637,  637,  637,  963,
1721      1751,  338,  835,  640,  637,  637,  637,  637,  637,  637,
1722       339,  343,  344,  253,  344,  343,  343,  343,  343,  343,
1723       343,  343,  345,  343,  343,  343, 1752,  343,  347,  343,
1724
1725       348,  343,  352,  253,  352,  352,  253,  352,  253,  253,
1726       253, 1758,  253,  253,  253,  352,  253,  352,  360,  641,
1727       663,  360,  641, 1759,  361,  868,  343,  343,  361,  751,
1728      1760,  362,  637,  637,  637,  640,  759,  349,  640,  637,
1729       637,  637,  637,  637,  637, 1761,  350,  343,  344,  253,
1730       344,  343,  343,  343,  343,  343,  343,  343,  345,  343,
1731       343,  343,  845,  343,  347,  343,  348,  343,  352,  253,
1732       352,  253,  253,  253,  253,  253,  253,  674,  352,  253,
1733       352,  352,  253,  352,  362,  760,  641,  363,  702,  953,
1734       363, 1762,  343,  343,  360,  641, 1763,  360,  352,  253,
1735
1736       352, 1771,  640,  349,  352,  253,  352,  637,  637,  637,
1737       663,  640,  350,  960,  364,  637,  637,  637,  713, 1774,
1738       364,  365,  366,  253,  366,  365,  365,  365,  365,  365,
1739       365,  365,  367,  365,  365,  365,  893,  365,  369,  365,
1740       370,  365,  376,  253,  376,  376,  253,  376,  253,  253,
1741       253, 1775,  253,  253,  253,  851,  728,  641,  377, 1108,
1742       961,  377,  641,  779,  329, 1778,  365,  365,  329,  766,
1743       641,  371,  718,  640,  827,  780,  781,  372,  640, 1631,
1744      1780,  373,  637,  637,  637, 1782,  640,  374,  365,  366,
1745       253,  366,  365,  365,  365,  365,  365,  365,  365,  367,
1746
1747       365,  365,  365,  663,  365,  369,  365,  370,  365,  376,
1748       253,  376,  376,  253,  376,  376,  253,  376,  895,  376,
1749       253,  376,  828,  641, 1783,  377,  674, 1785,  377,  896,
1750       782,  378,  897,  365,  365,  378,  641,  641,  371,  640,
1751       637,  637,  637,  792,  372,  637,  637,  637,  373,  637,
1752       637,  637,  640,  640,  374,  379,  380,  253,  380,  379,
1753       379,  379,  379,  379,  379,  379,  381,  379,  379,  379,
1754      1786,  379,  383,  379,  384,  379,  389,  253,  389,  389,
1755       253,  389,  253,  253,  253, 1787,  253,  253,  253,  637,
1756       637,  637,  390,  641,  641,  390,  641, 1792,  329, 1795,
1757
1758       379,  379,  329,  802, 1796,  385,  637,  637,  637,  640,
1759       640,  386,  640,  637,  637,  637,  637,  637,  637,  637,
1760       637,  637,  387,  379,  380,  253,  380,  379,  379,  379,
1761       379,  379,  379,  379,  381,  379,  379,  379, 1797,  379,
1762       383,  379,  384,  379,  389,  253,  389,  389,  253,  389,
1763       389,  253,  389,  995,  389,  253,  389,  996,  641, 1465,
1764       390, 1799,  641,  390,  641,  807,  391, 1802,  379,  379,
1765       391,  813, 1454,  385,  640,  637,  637,  637,  640,  386,
1766       640,  637,  637,  637,  637,  637,  637,  637,  637,  637,
1767       387,  392,  393,  253,  393,  392,  392,  392,  392,  392,
1768
1769       392,  392,  394,  392,  392,  392, 1803,  392,  396,  392,
1770       397,  392,  401,  253,  401,  401,  253,  401,  412,  253,
1771       412, 1805,  412,  253,  412,  426,  253,  426,  402,  641,
1772       641,  402, 1809, 1810,  413,  641,  392,  392,  413, 1811,
1773      1813,  427,  637,  637,  637,  640,  640,  398,  637,  637,
1774       637,  640,  399,  392,  393,  253,  393,  392,  392,  392,
1775       392,  392,  392,  392,  394,  392,  392,  392, 1634,  392,
1776       396,  392,  397,  392,  426,  253,  426,  253,  253,  253,
1777       253,  253,  253, 1824,  426,  253,  426,  426,  253,  426,
1778       427,  641,  641,  428, 1825, 1826,  428,  641,  392,  392,
1779
1780       427, 1828, 1829,  427,  637,  637,  637,  640,  640,  398,
1781       637,  637,  637,  640,  399,  403,  404,  253,  404,  403,
1782       403,  403,  403,  403,  403,  403,  405,  403,  403,  403,
1783       953,  403,  407,  403,  408,  403,  426,  253,  426,  426,
1784       253,  426,  440,  253,  440, 1830,  440,  253,  440,  457,
1785       253,  457,  429, 1108,  961,  429,  641, 1430,  441, 1831,
1786       403,  403,  441,  840,  641,  458,  637,  637,  637,  637,
1787       637,  637,  640,  637,  637,  637,  409,  637,  637,  637,
1788       640, 1832,  410,  403,  404,  253,  404,  403,  403,  403,
1789       403,  403,  403,  403,  405,  403,  403,  403, 1833,  403,
1790
1791       407,  403,  408,  403,  457,  253,  457,  472,  253,  472,
1792       472,  253,  472, 1834,  488,  253,  488,  488,  253,  488,
1793       458, 1835, 1836,  473, 1108, 1837,  473,  641,  403,  403,
1794       489, 1839, 1840,  489,  637,  637,  637,  637,  637,  637,
1795       637,  637,  637,  640,  409,  637,  637,  637,  859, 1821,
1796       410,  414,  415,  253,  415,  414,  414,  414,  414,  414,
1797       414,  414,  416,  414,  414,  414, 1841,  414,  418,  414,
1798       419,  414,  499,  253,  499,  499,  253,  499,  511,  253,
1799       511,  895,  511,  253,  511,  860,  641, 1842,  500, 1845,
1800      1108,  500,  896,  864,  512,  910,  414,  414,  512,  420,
1801
1802       702,  421,  640,  637,  637,  637, 1110,  422,  637,  637,
1803       637,  637,  637,  637,  423, 1848, 1849,  424,  414,  415,
1804       253,  415,  414,  414,  414,  414,  414,  414,  414,  416,
1805       414,  414,  414, 1850,  414,  418,  414,  419,  414,  524,
1806       253,  524,  524,  253,  524,  253,  253,  253,  913,  253,
1807       253,  253,  637,  637,  637,  525, 1851, 1852,  525,  914,
1808       641,  329,  897,  414,  414,  329,  420,  873,  421,  637,
1809       637,  637, 1853, 1857,  422, 1858,  640, 1860,  879,  879,
1810       879,  423, 1861, 1862,  424,  430,  431,  253,  431,  430,
1811       430,  430,  430,  430,  430,  430,  432,  430,  430,  430,
1812
1813      1864,  430,  434,  430,  435,  430,  524,  253,  524,  524,
1814       253,  524,  524,  253,  524, 1877,  524,  253,  524,  536,
1815       253,  536,  525, 1878, 1879,  525,  903,  916,  526, 1880,
1816       430,  430,  526,  904,  904,  537,  436,  880,  913,  905,
1817       917,  437,  879,  879,  879, 1881, 1112, 1884, 1885,  914,
1818      1886, 1887,  910,  438,  430,  431,  253,  431,  430,  430,
1819       430,  430,  430,  430,  430,  432,  430,  430,  430, 1892,
1820       430,  434,  430,  435,  430,  536,  253,  536,  253,  253,
1821       253,  253,  253,  253, 1900,  536,  253,  536,  536,  253,
1822       536,  537, 1901, 1908,  538,  916,  903,  538, 1465,  430,
1823
1824       430,  537,  904,  904,  537,  436,  916,  895,  905,  917,
1825       437, 1489, 1912,  904, 1125, 1125, 1125, 1914,  914,  941,
1826      1920,  910,  438,  442,  443,  253,  443,  442,  442,  442,
1827       442,  442,  442,  442,  444,  442,  442,  442,  445,  442,
1828       446,  442,  447,  442,  445,  445,  445,  445,  445,  445,
1829       445,  445,  445,  445,  445,  445,  445,  445,  445,  445,
1830       445,  445,  445,  445,  445,  445,  445,  445,  442,  442,
1831       445,  448,  449,  450,  445,  445,  445,  445,  445,  451,
1832       445,  445,  452,  445,  445,  445,  453,  445,  454,  455,
1833       445,  445,  445,  445,  445,  445,  445,  459,  460,  253,
1834
1835       460,  459,  459,  459,  459,  459,  459,  459,  461,  459,
1836       459,  459, 1926,  459,  463,  459,  464,  459,  536,  253,
1837       536,  536,  253,  536,  550,  253,  550, 1927,  550,  253,
1838       550,  253,  253,  253,  539, 1271, 1928,  539, 1929, 1942,
1839       551, 1948,  459,  459,  551, 1272,  465,  538, 1125, 1125,
1840      1125, 1952, 1273,  466, 1955, 1957,  467, 1147, 1147, 1147,
1841       468, 1958,  469,  470,  459,  460,  253,  460,  459,  459,
1842       459,  459,  459,  459,  459,  461,  459,  459,  459, 1960,
1843       459,  463,  459,  464,  459,  253,  253,  253,  550,  253,
1844       550,  550,  253,  550, 1961,  550,  253,  550,  550,  253,
1845
1846       550,  538, 1962, 1966,  551, 1969, 1971,  551, 1978,  459,
1847       459,  552, 1126,  465,  552, 1160, 1160, 1160, 1986, 1161,
1848       466, 1126, 1162,  467, 1147, 1147, 1147,  468, 1987,  469,
1849       470,  474,  475,  253,  475,  474,  474,  474,  474,  474,
1850       474,  474,  476,  474,  474,  474, 1988,  474,  478,  474,
1851       479,  474,  562,  253,  562,  562,  253,  562,  573,  253,
1852       573, 1989,  573,  253,  573,  923,  923,  923,  563, 1991,
1853      2005,  563, 1108, 2009,  574, 2010,  474,  474,  574,  480,
1854       481,  482,  924, 2011, 1170, 1170, 1170,  483, 1171, 2002,
1855       484, 1172, 2014, 2015,  485, 1634, 2017,  486,  474,  475,
1856
1857       253,  475,  474,  474,  474,  474,  474,  474,  474,  476,
1858       474,  474,  474, 2018,  474,  478,  474,  479,  474,  253,
1859       253,  253,  253,  253,  253,  573,  253,  573, 2019,  573,
1860       253,  573,  931,  931,  931,  538, 2020, 2003,  538, 2021,
1861      2012,  574, 2022,  474,  474,  574,  480,  481,  482,  932,
1862      2025, 1193, 1193, 1193,  483, 1194, 2013,  484, 1195, 2026,
1863      2029,  485, 1634, 2030,  486,  490,  491,  253,  491,  490,
1864       490,  490,  490,  490,  490,  490,  492,  490,  490,  490,
1865      2031,  490,  494,  490,  495,  490,  573,  253,  573,  573,
1866       253,  573,  586,  253,  586, 2004,  586,  253,  586,  947,
1867
1868       947,  947,  575, 2032, 2033,  575, 2035, 2036,  587, 2039,
1869       490,  490,  587, 2042, 2046,  496,  948, 1648, 1648, 1648,
1870      2047,  497,  490,  491,  253,  491,  490,  490,  490,  490,
1871       490,  490,  490,  492,  490,  490,  490, 2050,  490,  494,
1872       490,  495,  490,  253,  253,  253,  253,  253,  253,  586,
1873       253,  586, 2048,  586,  253,  586,  965,  965,  965,  538,
1874      2049, 2051,  538, 1649, 2052,  587, 2055,  490,  490,  587,
1875      2059, 2060,  496,  966, 1651, 1651, 1651, 2063,  497,  501,
1876       502,  253,  502,  501,  501,  501,  501,  501,  501,  501,
1877       503,  501,  501,  501, 2065,  501,  505,  501,  506,  501,
1878
1879       586,  253,  586,  586,  253,  586,  601,  253,  601, 2053,
1880       601,  253,  601,  253,  253,  253,  588, 2054, 2061,  588,
1881      1652, 2061,  602, 2081,  501,  501,  602, 2082,  507,  603,
1882      1125, 1125, 1125, 2083, 2062,  508, 2084, 2013,  509,  501,
1883       502,  253,  502,  501,  501,  501,  501,  501,  501,  501,
1884       503,  501,  501,  501, 2085,  501,  505,  501,  506,  501,
1885       253,  253,  253,  601,  253,  601,  601,  253,  601, 2086,
1886       601,  253,  601,  601,  253,  601,  603, 2012, 2088,  602,
1887      2092, 2098,  602, 2099,  501,  501,  604, 2100,  507,  604,
1888      1147, 1147, 1147, 2062, 1201,  508, 2114, 2118,  509,  513,
1889
1890       514,  253,  514,  513,  513,  513,  513,  513,  513,  513,
1891       515,  513,  513,  513, 2119,  513,  517,  513,  518,  513,
1892       613,  253,  613,  613,  253,  613,  623,  253,  623, 2120,
1893       623,  253,  623,  253,  253,  253,  614, 2122, 2126,  614,
1894      2130, 2131,  624, 2132,  513,  513,  624, 2133,  519,  329,
1895      1655, 1655, 1655, 2134, 1201,  520, 2137, 2144,  521, 1658,
1896      1658, 1658, 1668, 1668, 1668,  522,  513,  514,  253,  514,
1897       513,  513,  513,  513,  513,  513,  513,  515,  513,  513,
1898       513, 2146,  513,  517,  513,  518,  513,  253,  253,  253,
1899       623,  253,  623,  623,  253,  623, 2156,  623,  253,  623,
1900
1901       623,  253,  623,  329, 2157, 2158,  624, 2159, 2161,  624,
1902       713,  513,  513,  625, 1634,  519,  625, 1213, 1213, 1213,
1903       720, 1214,  520, 2167, 1215,  521, 1691, 1691, 1691, 1703,
1904      1703, 1703,  522,  527,  528,  253,  528,  527,  527,  527,
1905       527,  527,  527,  527,  529,  527,  527,  527,  721,  527,
1906       531,  527,  532,  527,  635,  253,  635,  635,  253,  635,
1907      2166, 1634,  674,  972,  972,  972,  668, 1223, 1223, 1223,
1908       636, 1224, 2173,  636, 1225, 1704, 3216, 2174,  527,  527,
1909       973,  977,  977,  977,  533,  713,  671, 2175, 2176, 1231,
1910      1231, 1231, 2165, 1232,  671,  714, 1233, 2179,  978,  534,
1911
1912       527,  528,  253,  528,  527,  527,  527,  527,  527,  527,
1913       527,  529,  527,  527,  527,  672,  527,  531,  527,  532,
1914       527,  673,  724,  715,  989,  989,  989, 2181,  674,  716,
1915      2182, 2183,  675,  717, 2187,  998,  998,  998,  725,  718,
1916       719,  990, 1000, 1000, 1000,  527,  527, 1006, 1006, 1006,
1917      1108,  533,  999, 1248, 1248, 1248, 2164, 1249, 2192, 1001,
1918      1250, 1705, 1705, 1705, 1007, 2194,  534,  540,  541,  253,
1919       541,  540,  540,  540,  540,  540,  540,  540,  542,  540,
1920       540,  540, 2195,  540,  544,  540,  545,  540, 1009, 1009,
1921      1009, 1021, 1021, 1021, 1023, 1023, 1023, 1035, 1035, 1035,
1922
1923      1043, 1043, 1043, 2196, 2200, 1010, 2206, 1652, 1022, 2207,
1924      2208, 1024,  540,  540, 1036, 2209, 2210, 1044,  546, 2211,
1925      2212,  547, 1260, 1260, 1260, 2213, 1261, 2214, 2215, 1262,
1926      1651, 1651, 1651,  548,  540,  541,  253,  541,  540,  540,
1927       540,  540,  540,  540,  540,  542,  540,  540,  540, 2221,
1928       540,  544,  540,  545,  540, 1048, 1048, 1048, 1054, 1054,
1929      1054, 1074, 1074, 1074, 1098, 1098, 1098, 1102, 1102, 1102,
1930      2222, 2223, 1049, 2224, 2236, 1055, 1794, 2237, 1075,  540,
1931       540, 1099, 2242, 2243, 1103,  546, 2238, 2240,  547, 1263,
1932      1263, 1263, 2245, 1264, 2239, 2241, 1265, 1648, 1648, 1648,
1933
1934       548,  553,  554,  253,  554,  553,  553,  553,  553,  553,
1935       553,  553,  555,  553,  553,  553, 2246,  553,  557,  553,
1936       558,  553, 1121, 1121, 1121, 1121, 1121, 1121, 2250, 2251,
1937      1155, 1155, 1155, 1155, 1155, 1155,  923,  923,  923, 2252,
1938      1123, 2258, 2259, 1123, 2260, 2261,  553,  553, 1157, 2264,
1939      2269, 1157,  559,  924, 1651, 1651, 1651,  560,  553,  554,
1940       253,  554,  553,  553,  553,  553,  553,  553,  553,  555,
1941       553,  553,  553, 2273,  553,  557,  553,  558,  553, 1165,
1942      1165, 1165, 2274, 1124, 1165, 1165, 1165, 2279,  931,  931,
1943       931, 2280, 2281, 1158, 1173, 1173, 1173, 1167, 1838, 1838,
1944
1945      1838, 2282, 1167,  553,  553,  932, 1274, 1274, 1274,  559,
1946      1275, 1174, 2284, 1276,  560,  564,  565,  253,  565,  564,
1947       564,  564,  564,  564,  564,  564,  566,  564,  564,  564,
1948      2294,  564,  568,  564,  569,  564, 1176, 1176, 1176, 1181,
1949      1181, 1181, 2305, 2306, 1189, 1189, 1189, 2307, 1168, 2311,
1950      1181, 1181, 1181, 1177, 1189, 1189, 1189, 1183, 2312, 2275,
1951       564,  564, 1191,  947,  947,  947,  570, 2276, 1183, 1278,
1952      1278, 1278, 1191, 1279, 2313, 1634, 1280, 1655, 1655, 1655,
1953       948,  571,  564,  565,  253,  565,  564,  564,  564,  564,
1954       564,  564,  564,  566,  564,  564,  564, 1184,  564,  568,
1955
1956       564,  569,  564, 1197, 1197, 1197, 1197, 1197, 1197,  965,
1957       965,  965, 1218, 1218, 1218,  972,  972,  972, 1192, 2316,
1958      2320, 1199, 2300, 2277, 1199, 2321,  966,  564,  564, 2322,
1959      1220, 2278,  973,  570, 1294, 1294, 1294, 2323, 1295, 2324,
1960      2325, 1296, 2326, 1200, 1658, 1658, 1658, 1634,  571,  576,
1961       577,  253,  577,  576,  576,  576,  576,  576,  576,  576,
1962       578,  576,  576,  576, 2327,  576,  580,  576,  581,  576,
1963      2328, 1218, 1218, 1218, 1227, 1227, 1227, 2329, 1227, 1227,
1964      1227,  977,  977,  977, 1235, 1235, 1235, 1865, 2344, 1220,
1965      2299, 2345, 1229, 1866,  576,  576, 1229, 1867,  978, 2346,
1966
1967       582, 1868, 1237,  583, 1297, 1297, 1297, 2347, 1298, 2352,
1968      2353, 1299, 1843, 1843, 1843,  584,  576,  577,  253,  577,
1969       576,  576,  576,  576,  576,  576,  576,  578,  576,  576,
1970       576, 2354,  576,  580,  576,  581,  576, 1221, 1241, 1241,
1971      1241,  989,  989,  989, 1230, 1235, 1235, 1235, 1241, 1241,
1972      1241, 1253, 1253, 1253, 1869, 2355, 1243, 2356,  990, 2357,
1973      1870,  576,  576, 1237, 1871, 2358, 1243,  582, 1872, 1255,
1974       583, 1314, 1314, 1314, 2361, 1315, 1844, 2362, 1316, 1846,
1975      1846, 1846,  584,  589,  590,  253,  590,  589,  589,  589,
1976       589,  589,  589,  589,  591,  589,  589,  589, 2365,  589,
1977
1978       593,  589,  594,  589, 2366, 2371, 1238,  998,  998,  998,
1979      1000, 1000, 1000, 1244, 1253, 1253, 1253, 1266, 1266, 1266,
1980      2372, 1266, 1266, 1266,  999, 1847, 2373, 1001,  589,  589,
1981      2374, 2383, 1255, 2384, 2385, 1268,  595, 2386,  596, 1268,
1982      2388,  597, 1668, 1668, 1668,  598, 1854, 1854, 1854,  599,
1983       589,  590,  253,  590,  589,  589,  589,  589,  589,  589,
1984       589,  591,  589,  589,  589, 2390,  589,  593,  589,  594,
1985       589, 1006, 1006, 1006, 1634, 1256, 1009, 1009, 1009, 1290,
1986      1290, 1290, 1269, 1281, 1281, 1281, 2414, 2415, 1007, 1290,
1987      1290, 1290, 1855, 1010, 2417,  589,  589, 1292, 2418, 2419,
1988
1989      1282, 2420, 2424,  595, 2425,  596, 2410, 1292,  597, 1691,
1990      1691, 1691,  598, 1703, 1703, 1703,  599,  605,  606,  253,
1991       606,  605,  605,  605,  605,  605,  605,  605,  607,  605,
1992       605,  605, 2426,  605,  609,  605,  610,  605, 1021, 1021,
1993      1021, 1023, 1023, 1023, 1300, 1300, 1300, 1293, 1705, 1705,
1994      1705, 3216, 3216, 3216, 2427, 1022, 2428, 2429, 1024, 2430,
1995      2431, 1301,  605,  605, 3216, 3216, 3216, 2432, 3216, 1326,
1996      1326, 1326, 2433, 1327, 2434, 2436, 1328, 1634, 1334, 1334,
1997      1334, 3216, 1335, 2437, 2440, 1336,  611,  605,  606,  253,
1998       606,  605,  605,  605,  605,  605,  605,  605,  607,  605,
1999
2000       605,  605, 1302,  605,  609,  605,  610,  605, 1035, 1035,
2001      1035, 1306, 1306, 1306, 2411, 2438, 1303, 3216, 3216, 3216,
2002      2441, 1317, 1317, 1317, 2439, 1036, 3216, 3216, 3216, 1308,
2003      2442, 2443,  605,  605, 3216, 1306, 1306, 1306, 1318, 2444,
2004      1343, 1343, 1343, 3216, 1344, 2445, 2447, 1345, 1375, 1375,
2005      1375, 2448, 1376, 1308, 2446, 1377,  611,  615,  616,  253,
2006       616,  615,  615,  615,  615,  615,  615,  615,  617,  615,
2007       615,  615, 1304,  615,  619,  615,  620,  615, 1305, 1321,
2008      1321, 1321, 1309, 1043, 1043, 1043, 1321, 1321, 1321, 1329,
2009      1329, 1329, 1329, 1329, 1329, 2449, 2450, 1323, 2451, 2453,
2010
2011      1044, 2457,  615,  615, 1323, 2458, 2459, 1331, 2460, 2464,
2012      1331, 2465, 2469,  621,  615,  616,  253,  616,  615,  615,
2013       615,  615,  615,  615,  615,  617,  615,  615,  615, 2472,
2014       615,  619,  615,  620,  615, 2473, 2476, 1324, 1048, 1048,
2015      1048, 2488, 2489, 1338, 1338, 1338, 1338, 1338, 1338, 1054,
2016      1054, 1054, 2492, 1332, 2493, 1049, 1882, 1882, 1882,  615,
2017       615, 1340, 2513, 1634, 1340, 2514, 1055, 1882, 1882, 1882,
2018       621,  626,  627,  253,  627,  626,  626,  626,  626,  626,
2019       626,  626,  628,  626,  626,  626, 1108,  626,  630,  626,
2020       631,  626, 2515, 1341, 1349, 1349, 1349, 1353, 1353, 1353,
2021
2022      2511, 1349, 1349, 1349, 1355, 1355, 1355, 3216, 3216, 3216,
2023      2516, 2517, 1351, 2526, 1354, 2527,  626,  626, 2528, 1351,
2024      1883, 1356, 1634, 2529, 3216, 2530, 2510,  632, 1415, 1415,
2025      1415, 1844, 1416, 2531, 2532, 1417, 1911, 1911, 1911, 2533,
2026       633,  626,  627,  253,  627,  626,  626,  626,  626,  626,
2027       626,  626,  628,  626,  626,  626, 1352,  626,  630,  626,
2028       631,  626, 1358, 1358, 1358, 2512, 1357, 1363, 1363, 1363,
2029      1358, 1358, 1358, 3216, 3216, 3216, 1367, 1367, 1367, 2520,
2030      1360, 3216, 3216, 3216, 1364, 2534,  626,  626, 1360, 2521,
2031      3216, 2535, 2522, 1368, 1370, 1370, 1370,  632, 3216, 1370,
2032
2033      1370, 1370, 1074, 1074, 1074, 2536, 1378, 1378, 1378, 2538,
2034       633,  641, 1372, 2539, 1378, 1378, 1378, 1372,  656, 1075,
2035      1382, 1382, 1382, 1365, 1380, 2540, 2541,  640,  657, 2542,
2036      2543, 1361, 1380, 1384, 1384, 1384, 1373, 1383, 1366, 2544,
2037      1369, 1386, 1386, 1386, 2545, 2546, 1386, 1386, 1386, 2547,
2038      1385, 1390, 1390, 1390, 2548,  658,  659,  660, 2549, 1388,
2039      2550, 2551,  661,  662, 1388, 2552,  663,  664, 1391, 1381,
2040       665, 2553,  666,  667,  668, 3216, 3216, 3216, 1394, 1394,
2041      1394, 1396, 1396, 1396, 1396, 1396, 1396, 1405, 1405, 1405,
2042      2523, 2554, 3216, 2556, 2564, 1395, 1405, 1405, 1405, 1398,
2043
2044      2524, 2565, 1398, 2525, 2566, 1407, 1411, 1411, 1411, 1411,
2045      1411, 1411, 2570, 1108, 1407, 2605, 2607, 1389, 1098, 1098,
2046      1098, 1418, 1418, 1418, 1413, 1392, 1634, 1413, 1418, 1418,
2047      1418, 1102, 1102, 1102, 2608, 1099, 1426, 1426, 1426, 1420,
2048      1393, 2609, 2602, 1422, 1422, 1422, 1420, 1423, 1103, 2613,
2049      1424, 1426, 1426, 1426, 1428, 1399, 1121, 1121, 1121, 2614,
2050      1408, 1121, 1121, 1121, 1121, 1121, 1121, 1634, 2603, 1428,
2051      1467, 1467, 1467, 1414, 1123, 1155, 1155, 1155, 2588, 1123,
2052      2617, 2618, 1123, 1155, 1155, 1155, 2621, 1468, 2589, 1421,
2053      1155, 1155, 1155, 1157, 2590, 1470, 1470, 1470, 1160, 1160,
2054
2055      1160, 1157, 1161, 2622, 2623, 1162, 2624, 2625, 1157, 2604,
2056      2626, 1438, 1471, 2627, 2628, 1429, 3216, 3216, 3216, 1165,
2057      1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1170, 1170,
2058      1170, 2629, 1171, 3216, 2631, 1172, 2632, 1167, 2633, 1469,
2059      1167, 2634, 2615, 1167, 1173, 1173, 1173, 1476, 1476, 1476,
2060      2591, 1477, 2619, 2635, 1478, 2616, 1479, 1479, 1479, 2636,
2061      2592, 1174, 1176, 1176, 1176, 2620, 2593, 1481, 1481, 1481,
2062      2637, 1482, 1474, 1480, 1483, 2638, 2639, 1472, 2640, 1177,
2063      1485, 1485, 1485, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
2064      1181, 1181, 1491, 1491, 1491, 2641, 2642, 1486, 1189, 1189,
2065
2066      1189, 1183, 2643, 2644, 1183, 2645, 2647, 1183, 2655, 1492,
2067      1189, 1189, 1189, 1189, 1189, 1189, 1191, 1193, 1193, 1193,
2068      2656, 1194, 2657, 2658, 1195, 1197, 1197, 1197, 1191, 2675,
2069      2676, 1191, 1197, 1197, 1197, 1496, 1496, 1496, 1213, 1213,
2070      1213, 2677, 1214, 1199, 2678, 1215, 1511, 1511, 1511, 1488,
2071      1199, 2679, 2680, 1497, 1218, 1218, 1218, 1218, 1218, 1218,
2072      1494, 1634, 2691, 1512, 1218, 1218, 1218, 1223, 1223, 1223,
2073      2693, 1224, 1220, 1108, 1225, 1220, 1227, 1227, 1227, 1227,
2074      1227, 1227, 1220, 1227, 1227, 1227, 1231, 1231, 1231, 2694,
2075      1232, 2695, 2696, 1233, 1229, 2697, 2688, 1229, 1517, 1517,
2076
2077      1517, 1229, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235,
2078      1235, 1520, 1520, 1520, 2683, 1518, 2698, 3216, 3216, 3216,
2079      1237, 2687, 2699, 1237, 2700, 1513, 1237, 2684, 1521, 1241,
2080      1241, 1241, 2701, 2685, 3216, 1241, 1241, 1241, 1241, 1241,
2081      1241, 1526, 1526, 1526, 1516, 1522, 2686, 1243, 1248, 1248,
2082      1248, 2702, 1249, 1243, 2705, 1250, 1243, 2706, 1527, 1253,
2083      1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1533, 1533,
2084      1533, 2707, 1260, 1260, 1260, 1519, 1261, 1255, 2708, 1262,
2085      1255, 2709, 2710, 1255, 2711, 1534, 1263, 1263, 1263, 2712,
2086      1264, 2714, 2715, 1265, 1266, 1266, 1266, 1266, 1266, 1266,
2087
2088      1266, 1266, 1266, 2716, 1523, 2717, 1274, 1274, 1274, 2718,
2089      1275, 2719, 1268, 1276, 2720, 1268, 2721, 2722, 1268, 1540,
2090      1540, 1540, 1278, 1278, 1278, 2723, 1279, 2724, 2725, 1280,
2091      1530, 1281, 1281, 1281, 2726, 2727, 1541, 1542, 1542, 1542,
2092      2728, 1543, 2734, 2735, 1544, 1290, 1290, 1290, 1282, 1290,
2093      1290, 1290, 1290, 1290, 1290, 1294, 1294, 1294, 2736, 1295,
2094      2737, 2738, 1296, 1292, 2744, 1535, 2746, 1292, 2752, 2753,
2095      1292, 1297, 1297, 1297, 2745, 1298, 2747, 2748, 1299, 1300,
2096      1300, 1300, 1553, 1553, 1553, 2754, 1554, 2749, 2755, 1555,
2097      1306, 1306, 1306, 1306, 1306, 1306, 1301, 1306, 1306, 1306,
2098
2099      1314, 1314, 1314, 2756, 1315, 2757, 2761, 1316, 1308, 2762,
2100      2763, 1308, 1317, 1317, 1317, 1308, 1565, 1565, 1565, 1552,
2101      1566, 2764, 2774, 1567, 1321, 1321, 1321, 2775, 2776, 1318,
2102      1321, 1321, 1321, 1321, 1321, 1321, 1326, 1326, 1326, 2750,
2103      1327, 1108, 1323, 1328, 2777, 1560, 2778, 2779, 1323, 2751,
2104      2780, 1323, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
2105      1329, 1334, 1334, 1334, 2781, 1335, 2785, 2786, 1336, 2787,
2106      1331, 2788, 2789, 1331, 2790, 2765, 1331, 1338, 1338, 1338,
2107      1338, 1338, 1338, 2792, 1570, 1338, 1338, 1338, 2793, 1343,
2108      1343, 1343, 2794, 1344, 2795, 1340, 1345, 2796, 1340, 1349,
2109
2110      1349, 1349, 2797, 1340, 1349, 1349, 1349, 2798, 1349, 1349,
2111      1349, 1353, 1353, 1353, 1581, 1581, 1581, 1351, 1582, 2799,
2112      2800, 1583, 1351, 2801, 2805, 1572, 1351, 2806, 1354, 1355,
2113      1355, 1355, 2807, 2810, 1575, 1584, 1584, 1584, 2815, 1585,
2114      2816, 2817, 1586, 1358, 1358, 1358, 1356, 1358, 1358, 1358,
2115      2818, 1358, 1358, 1358, 1363, 1363, 1363, 2819, 1367, 1367,
2116      1367, 1360, 2016, 2016, 2016, 1360, 2820, 2821, 1580, 1360,
2117      2822, 1364, 1590, 1590, 1590, 1368, 1591, 2823, 2824, 1592,
2118      1595, 1595, 1595, 2825, 1596, 2826, 2828, 1597, 1370, 1370,
2119      1370, 1370, 1370, 1370, 1370, 1370, 1370, 1375, 1375, 1375,
2120
2121      2829, 1376, 2830, 2831, 1377, 2838, 1372, 2839, 1108, 1372,
2122      2840, 2841, 1372, 1378, 1378, 1378, 2842, 2843, 1588, 1378,
2123      1378, 1378, 1378, 1378, 1378, 1382, 1382, 1382, 1602, 1602,
2124      1602, 1380, 1603, 2844, 2845, 1604, 2846, 1380, 2847, 2848,
2125      1380, 2849, 1383, 1384, 1384, 1384, 1605, 1605, 1605, 2850,
2126      1606, 2832, 2851, 1607, 1386, 1386, 1386, 2854, 1599, 2855,
2127      1385, 1386, 1386, 1386, 2856, 1386, 1386, 1386, 1390, 1390,
2128      1390, 2857, 1388, 1609, 1609, 1609, 2858, 1610, 2859, 1388,
2129      1611, 2860, 1601, 1388, 2861, 1391, 1394, 1394, 1394, 1614,
2130      1614, 1614, 2862, 1615, 2863, 2864, 1616, 1396, 1396, 1396,
2131
2132      1396, 1396, 1396, 1395, 1396, 1396, 1396, 1619, 1619, 1619,
2133      1405, 1405, 1405, 2868, 2875, 1398, 2876, 2877, 1398, 1405,
2134      1405, 1405, 1398, 2878, 1620, 2879, 2880, 1608, 1407, 1405,
2135      1405, 1405, 1411, 1411, 1411, 2881, 2882, 1407, 1411, 1411,
2136      1411, 1411, 1411, 1411, 1415, 1415, 1415, 1407, 1416, 2883,
2137      1413, 1417, 1418, 1418, 1418, 2884, 1413, 2885, 2886, 1413,
2138      1418, 1418, 1418, 1418, 1418, 1418, 1617, 1422, 1422, 1422,
2139      1420, 1423, 2889, 2890, 1424, 1426, 1426, 1426, 1420, 2891,
2140      2892, 1420, 1426, 1426, 1426, 1426, 1426, 1426, 2895, 2900,
2141      1624, 2901, 2902, 1428, 1627, 1633, 1633, 1633, 2903, 1108,
2142
2143      1428, 2904, 2896, 1428, 1121, 1121, 1121, 1467, 1467, 1467,
2144      1155, 1155, 1155, 1634, 1635, 2905, 1470, 1470, 1470, 1496,
2145      1496, 1496, 1123, 1628, 1468, 1671, 1671, 1671, 1157, 1672,
2146      2906, 2907, 1673, 1471, 1675, 1675, 1675, 1497, 1676, 2895,
2147      2908, 1677, 1165, 1165, 1165, 2893, 1630, 1476, 1476, 1476,
2148      2898, 1477, 2909, 2910, 1478, 1479, 1479, 1479, 2911, 2912,
2149      1167, 2913, 1682, 1682, 1682, 2914, 1683, 2915, 1674, 1684,
2150      1640, 2916, 1480, 1481, 1481, 1481, 2917, 1482, 2918, 2923,
2151      1483, 1485, 1485, 1485, 2919, 1686, 1686, 1686, 2928, 1687,
2152      2929, 1680, 1688, 1181, 1181, 1181, 2920, 2930, 1486, 1491,
2153
2154      1491, 1491, 1693, 1693, 1693, 2931, 1694, 2932, 2933, 1695,
2155      2936, 1183, 1696, 1696, 1696, 1108, 1492, 1189, 1189, 1189,
2156      1713, 1713, 1713, 1511, 1511, 1511, 1715, 1715, 1715, 1697,
2157      1716, 1634, 1635, 1717, 2936, 1191, 2939, 1714, 2940, 2941,
2158      1512, 2942, 2945, 1690, 1218, 1218, 1218, 1227, 1227, 1227,
2159      1517, 1517, 1517, 1722, 1722, 1722, 2934, 1723, 2948, 2957,
2160      1724, 2943, 1220, 2895, 2960, 1229, 1698, 1518, 1235, 1235,
2161      1235, 1520, 1520, 1520, 1726, 1726, 1726, 2896, 1727, 2944,
2162      2965, 1728, 1241, 1241, 1241, 2921, 1237, 2968, 1521, 1526,
2163      1526, 1526, 1733, 1733, 1733, 2924, 1734, 2922, 2926, 1735,
2164
2165      1243, 1736, 1736, 1736, 2969, 2970, 1527, 2925, 1718, 2936,
2166      2927, 1721, 1738, 1738, 1738, 1253, 1253, 1253, 1737, 1533,
2167      1533, 1533, 2972, 1744, 1744, 1744, 2936, 1745, 1725, 1739,
2168      1746, 2973, 2974, 1255, 2955, 2946, 1534, 1266, 1266, 1266,
2169      1749, 1749, 1749, 1730, 1540, 1540, 1540, 1753, 1753, 1753,
2170      2947, 1754, 2975, 2956, 1755, 1268, 2895, 1750, 1740, 2976,
2171      2958, 1541, 1542, 1542, 1542, 2977, 1543, 2898, 2978, 1544,
2172      1756, 1756, 1756, 1290, 1290, 1290, 1553, 1553, 1553, 2959,
2173      1554, 1741, 2979, 1555, 1765, 1765, 1765, 1757, 3216, 3216,
2174      3216, 1292, 3216, 3216, 3216, 3216, 3216, 3216, 1306, 1306,
2175
2176      1306, 1766, 2963, 1747, 2980, 3216, 1772, 1772, 1772, 3216,
2177      2990, 2991, 3216, 1565, 1565, 1565, 1308, 1566, 2966, 2992,
2178      1567, 2964, 2993, 1773, 1776, 1776, 1776, 1321, 1321, 1321,
2179      1329, 1329, 1329, 1338, 1338, 1338, 2994, 2967, 1764, 1768,
2180      2995, 1777, 1788, 1788, 1788, 1323, 2999, 3000, 1331, 3001,
2181      3002, 1340, 3003, 1770, 1349, 1349, 1349, 3004, 1767, 1789,
2182      1581, 1581, 1581, 3005, 1582, 1769, 3006, 1583, 3008, 1584,
2183      1584, 1584, 1351, 1585, 3009, 3010, 1586, 1358, 1358, 1358,
2184      1590, 1590, 1590, 3011, 1591, 3012, 3017, 1592, 1790, 3018,
2185      1784, 1779, 1370, 1370, 1370, 1360, 1781, 1595, 1595, 1595,
2186
2187      3019, 1596, 3020, 3013, 1597, 1378, 1378, 1378, 3021, 3022,
2188      1372, 1791, 1602, 1602, 1602, 3014, 1603, 3023, 3024, 1604,
2189      1605, 1605, 1605, 1380, 1606, 3015, 3025, 1607, 1386, 1386,
2190      1386, 1609, 1609, 1609, 3026, 1610, 3027, 3016, 1611, 3028,
2191      1614, 1614, 1614, 1793, 1615, 3029, 1388, 1616, 1396, 1396,
2192      1396, 3030, 3032, 1798, 1619, 1619, 1619, 1806, 1806, 1806,
2193      3033, 1807, 1800, 3034, 1808, 3035, 1398, 1405, 1405, 1405,
2194      3036, 1620, 1814, 1814, 1814, 1801, 1411, 1411, 1411, 1418,
2195      1418, 1418, 1818, 1818, 1818, 1407, 1426, 1426, 1426, 1815,
2196      1633, 1633, 1633, 3037, 1413, 1804, 3038, 1420, 3039, 1819,
2197
2198      1121, 1121, 1121, 1108, 1428, 1671, 1671, 1671, 1634, 1672,
2199      3040, 3041, 1673, 1696, 1696, 1696, 1812, 3042, 1123, 1155,
2200      1155, 1155, 1675, 1675, 1675, 3043, 1676, 3044, 3031, 1677,
2201      1697, 1817, 1165, 1165, 1165, 3045, 3046, 1157, 1682, 1682,
2202      1682, 1822, 1683, 1816, 3047, 1684, 3048, 3049, 1820, 3050,
2203      1167, 3051, 1827, 1686, 1686, 1686, 3053, 1687, 1823, 1108,
2204      1688, 1181, 1181, 1181, 1693, 1693, 1693, 3054, 1694, 3055,
2205      3056, 1695, 3057, 1873, 1873, 1873, 3058, 1874, 3052, 1183,
2206      1875, 3059, 3060, 1859, 3061, 3062, 1856, 1189, 1189, 1189,
2207      1843, 1843, 1843, 1713, 1713, 1713, 1888, 1888, 1888, 3063,
2208
2209      1889, 3064, 3065, 1890, 3066, 1191, 3067, 1715, 1715, 1715,
2210      1714, 1716, 3068, 3069, 1717, 1218, 1218, 1218, 1893, 1893,
2211      1893, 3070, 1863, 1227, 1227, 1227, 3072, 1722, 1722, 1722,
2212      1108, 1723, 3073, 1220, 1724, 1894, 3074, 3075, 1876, 3076,
2213      3077, 1229, 1235, 1235, 1235, 1726, 1726, 1726, 3078, 1727,
2214      3071, 3079, 1728, 3080, 1883, 1897, 1897, 1897, 3081, 3082,
2215      1237, 3083, 1891, 1241, 1241, 1241, 3084, 1733, 1733, 1733,
2216      1895, 1734, 1898, 3085, 1735, 1736, 1736, 1736, 1902, 1902,
2217      1902, 1243, 1903, 3086, 3087, 1904, 1738, 1738, 1738, 1905,
2218      1905, 1905, 1737, 1906, 3088, 3089, 1907, 1909, 1909, 1909,
2219
2220      1744, 1744, 1744, 1739, 1745, 3091, 3092, 1746, 1896, 3093,
2221      1266, 1266, 1266, 3094, 3095, 1910, 1749, 1749, 1749, 1915,
2222      1915, 1915, 3096, 1916, 3097, 3098, 1917, 1899, 1268, 1918,
2223      1918, 1918, 3099, 1750, 1753, 1753, 1753, 3100, 1754, 1108,
2224      3101, 1755, 1756, 1756, 1756, 3090, 1919, 1921, 1921, 1921,
2225      3102, 1922, 3104, 3105, 1923, 3106, 1913, 3107, 3108, 1757,
2226      1924, 1924, 1924, 1930, 1930, 1930, 1290, 1290, 1290, 1765,
2227      1765, 1765, 1933, 1933, 1933, 3109, 1934, 1925, 3110, 1935,
2228      1931, 1936, 1936, 1936, 1292, 3111, 1766, 3216, 3216, 3216,
2229      1939, 1939, 1939, 1306, 1306, 1306, 3113, 3114, 1937, 1772,
2230
2231      1772, 1772, 3115, 3116, 3216, 3117, 3118, 1940, 1943, 1943,
2232      1943, 1308, 1944, 3119, 1108, 1945, 1773, 1946, 1946, 1946,
2233      1776, 1776, 1776, 1949, 1949, 1949, 3120, 1950, 3103, 3123,
2234      1951, 3124, 1932, 3125, 1947, 3126, 3127, 1777, 1953, 1953,
2235      1953, 1329, 1329, 1329, 3128, 1938, 1338, 1338, 1338, 1788,
2236      1788, 1788, 1108, 1941, 1108, 1108, 1954, 1108, 1108, 1331,
2237      1702, 1963, 1963, 1963, 1340, 1964, 1789, 1701, 1965, 1967,
2238      1967, 1967, 1358, 1358, 1358, 1108, 1972, 1972, 1972, 1974,
2239      1974, 1974, 3216, 3216, 3216, 3137, 3181, 1968, 3129, 1108,
2240      1360, 3130, 1956, 1973, 1959, 3145, 1975, 1108, 3135, 3216,
2241
2242      1370, 1370, 1370, 1378, 1378, 1378, 1386, 1386, 1386, 1981,
2243      1981, 1981, 1983, 1983, 1983, 1396, 1396, 1396, 1372, 3136,
2244      3139, 1380, 1108, 1970, 1388, 1108, 1982, 1108, 1108, 1984,
2245      1806, 1806, 1806, 1398, 1807, 1108, 1108, 1808, 1405, 1405,
2246      1405, 1814, 1814, 1814, 3138, 3131, 1976, 3140, 1108, 1979,
2247      1992, 1992, 1992, 1700, 1993, 1108, 1407, 1994, 1815, 1411,
2248      1411, 1411, 3146, 3147, 1418, 1418, 1418, 1977, 1818, 1818,
2249      1818, 1980, 1997, 1997, 1997, 3132, 1998, 1413, 1699, 1999,
2250      1985, 1692, 1420, 3133, 3134, 1819, 2000, 2000, 2000, 1990,
2251      2006, 2006, 2006, 1121, 1121, 1121, 1838, 1838, 1838, 2023,
2252
2253      2023, 2023, 1689, 1685, 2001, 1681, 1108, 2007, 1843, 1843,
2254      1843, 1123, 2024, 2024, 2024, 1846, 1846, 1846, 1995, 1996,
2255      2027, 2027, 2027, 2028, 2028, 2028, 1854, 1854, 1854, 1155,
2256      1155, 1155, 2037, 2037, 2037, 2040, 2040, 2040, 1181, 1181,
2257      1181, 2044, 2044, 2044, 1873, 1873, 1873, 1157, 1874, 3141,
2258      2038, 1875, 2041, 3143, 2008, 1108, 1183, 1108, 2045, 1189,
2259      1189, 1189, 1679, 2057, 2057, 2057, 1882, 1882, 1882, 2064,
2260      2064, 2064, 2066, 2066, 2066, 1108, 3142, 1191, 3157, 2034,
2261      2058, 1888, 1888, 1888, 1108, 1889, 1678, 1108, 1890, 2067,
2262      1218, 1218, 1218, 2069, 2069, 2069, 3148, 2043, 1893, 1893,
2263
2264      1893, 1670, 2071, 2071, 2071, 2056, 2072, 1108, 1220, 2073,
2265      2070, 1227, 1227, 1227, 1108, 1894, 2075, 2075, 2075, 1897,
2266      1897, 1897, 3144, 2077, 2077, 2077, 3158, 2078, 1108, 1229,
2267      2079, 1241, 1241, 1241, 2076, 1108, 1898, 1902, 1902, 1902,
2268      1108, 1903, 3149, 2068, 1904, 1669, 1905, 1905, 1905, 1243,
2269      1906, 1108, 1667, 1907, 1909, 1909, 1909, 1911, 1911, 1911,
2270      3151, 1266, 1266, 1266, 2074, 3153, 1915, 1915, 1915, 1108,
2271      1916, 1108, 1910, 1917, 1918, 1918, 1918, 3154, 2080, 1268,
2272      2089, 2089, 2089, 1666, 2090, 1108, 3150, 2091, 1921, 1921,
2273      1921, 1919, 1922, 1108, 1108, 1923, 1924, 1924, 1924, 2093,
2274
2275      2093, 2093, 1108, 2094, 3159, 1108, 2095, 2096, 2096, 2096,
2276      1930, 1930, 1930, 1925, 2101, 2101, 2101, 3152, 2102, 2087,
2277      3160, 2103, 1108, 1108, 2097, 3155, 3156, 1931, 1290, 1290,
2278      1290, 1933, 1933, 1933, 1108, 1934, 3161, 1108, 1935, 1936,
2279      1936, 1936, 3173, 2105, 2105, 2105, 1292, 2106, 1108, 1665,
2280      2107, 2108, 2108, 2108, 3171, 1664, 1937, 1939, 1939, 1939,
2281      2110, 2110, 2110, 1108, 2111, 3163, 3164, 2112, 2109, 1306,
2282      1306, 1306, 3167, 1108, 1940, 1108, 1943, 1943, 1943, 2104,
2283      1944, 3191, 3162, 1945, 1946, 1946, 1946, 1308, 2115, 2115,
2284      2115, 1108, 2116, 3172, 1663, 2117, 1949, 1949, 1949, 1108,
2285
2286      1950, 1947, 1108, 1951, 1953, 1953, 1953, 1329, 1329, 1329,
2287      2123, 2123, 2123, 1338, 1338, 1338, 2127, 2127, 2127, 3165,
2288      2113, 3166, 1954, 1108, 1108, 1331, 3168, 2124, 1963, 1963,
2289      1963, 1340, 1964, 2128, 3197, 1965, 1967, 1967, 1967, 2135,
2290      2135, 2135, 1972, 1972, 1972, 2138, 2138, 2138, 1662, 2139,
2291      1108, 3183, 2140, 1108, 1968, 1108, 3169, 2136, 1108, 1973,
2292      1108, 3174, 2129, 1974, 1974, 1974, 2141, 2141, 2141, 1661,
2293      2142, 2121, 1660, 2143, 2125, 1370, 1370, 1370, 1108, 1108,
2294      1975, 1378, 1378, 1378, 1386, 1386, 1386, 1981, 1981, 1981,
2295      2149, 2149, 2149, 1372, 2150, 3175, 3177, 2151, 1108, 1380,
2296
2297      3176, 3178, 1388, 1108, 1982, 1983, 1983, 1983, 2152, 2152,
2298      2152, 3170, 2153, 3185, 1108, 2154, 1396, 1396, 1396, 1405,
2299      1405, 1405, 1984, 1108, 1992, 1992, 1992, 3184, 1993, 1108,
2300      2147, 1994, 3182, 1108, 1398, 3179, 1108, 1407, 1411, 1411,
2301      1411, 2145, 1418, 1418, 1418, 1108, 1997, 1997, 1997, 2148,
2302      1998, 3180, 1659, 1999, 1657, 1656, 1413, 2000, 2000, 2000,
2303      1420, 2006, 2006, 2006, 2168, 2168, 2168, 3186, 2169, 3187,
2304      3205, 2170, 1121, 1121, 1121, 2001, 3192, 1654, 2007, 1108,
2305      3189, 2155, 3193, 3213, 2160, 2172, 2172, 2172, 1108, 2162,
2306      1123, 2177, 2177, 2177, 1108, 2163, 2178, 2178, 2178, 2016,
2307
2308      2016, 2016, 2180, 2180, 2180, 2184, 2184, 2184, 2023, 2023,
2309      2023, 2024, 2024, 2024, 2185, 2185, 2185, 2027, 2027, 2027,
2310      2028, 2028, 2028, 2188, 2188, 2188, 2189, 2189, 2189, 2190,
2311      2190, 2190, 2191, 2191, 2191, 1108, 2171, 1155, 1155, 1155,
2312      2037, 2037, 2037, 3206, 2040, 2040, 2040, 2197, 2197, 2197,
2313      1108, 2198, 1108, 1653, 2199, 1157, 1650, 1108, 2038, 3213,
2314      2186, 2041, 2201, 2201, 2201, 2044, 2044, 2044, 2203, 2203,
2315      2203, 3190, 2204, 1108, 1108, 2205, 1189, 1189, 1189, 1108,
2316      2202, 3188, 2045, 2057, 2057, 2057, 1108, 3194, 2193, 2217,
2317      2217, 2217, 3198, 2218, 1191, 1647, 2219, 2220, 2220, 2220,
2318
2319      2058, 2064, 2064, 2064, 2225, 2225, 2225, 2066, 2066, 2066,
2320      2227, 2227, 2227, 1646, 2228, 3195, 1108, 2229, 1218, 1218,
2321      1218, 2069, 2069, 2069, 2067, 2216, 2231, 2231, 2231, 1108,
2322      2232, 1108, 3199, 2233, 1645, 1644, 1220, 1108, 2070, 2071,
2323      2071, 2071, 1108, 2072, 1643, 1108, 2073, 1227, 1227, 1227,
2324      2226, 1642, 2075, 2075, 2075, 2077, 2077, 2077, 1641, 2078,
2325      1108, 3203, 2079, 1639, 3209, 1229, 1241, 1241, 1241, 2230,
2326      2076, 1266, 1266, 1266, 2089, 2089, 2089, 3200, 2090, 1638,
2327      1637, 2091, 3201, 3196, 1243, 3210, 2093, 2093, 2093, 1268,
2328      2094, 1108, 1636, 2095, 2096, 2096, 2096, 3202, 2234, 2247,
2329
2330      2247, 2247, 1629, 2248, 1108, 1108, 2249, 1626, 2101, 2101,
2331      2101, 2097, 2102, 1625, 1623, 2103, 1290, 1290, 1290, 2235,
2332      2105, 2105, 2105, 3204, 2106, 1622, 2244, 2107, 2108, 2108,
2333      2108, 2254, 2254, 2254, 1292, 2255, 3207, 3208, 2256, 2110,
2334      2110, 2110, 1108, 2111, 1621, 2109, 2112, 1306, 1306, 1306,
2335      2115, 2115, 2115, 1618, 2116, 1613, 1612, 2117, 2262, 2262,
2336      2262, 2123, 2123, 2123, 1600, 1308, 2265, 2265, 2265, 1598,
2337      2266, 1594, 1593, 2267, 3211, 1108, 2263, 1589, 2124, 1587,
2338      2253, 1338, 1338, 1338, 2127, 2127, 2127, 2270, 2270, 2270,
2339      1579, 2271, 1578, 1577, 2272, 1576, 2135, 2135, 2135, 1340,
2340
2341      1574, 2128, 2138, 2138, 2138, 1573, 2139, 3212, 1571, 2140,
2342      1370, 1370, 1370, 2257, 2136, 2141, 2141, 2141, 1569, 2142,
2343      1568, 1564, 2143, 1563, 1378, 1378, 1378, 1562, 1372, 1386,
2344      1386, 1386, 2149, 2149, 2149, 1561, 2150, 1559, 1558, 2151,
2345      1557, 2268, 1380, 1556, 2152, 2152, 2152, 1388, 2153, 1551,
2346      1550, 2154, 1396, 1396, 1396, 1549, 2288, 2288, 2288, 1548,
2347      1547, 2283, 3216, 3216, 3216, 2286, 3216, 3216, 3216, 1546,
2348      1398, 1545, 2287, 2289, 3216, 3216, 3216, 1539, 1538, 3216,
2349      1405, 1405, 1405, 3216, 1411, 1411, 1411, 2296, 2296, 2296,
2350      2285, 3216, 2298, 2298, 2298, 2301, 2301, 2301, 1407, 2168,
2351
2352      2168, 2168, 1413, 2169, 1537, 2297, 2170, 1121, 1121, 1121,
2353      1108, 1536, 1532, 2290, 2172, 2172, 2172, 2303, 2303, 2303,
2354      2304, 2304, 2304, 1531, 1529, 1123, 2177, 2177, 2177, 1528,
2355      2291, 1525, 1524, 2292, 2178, 2178, 2178, 2180, 2180, 2180,
2356      2308, 2308, 2308, 1515, 2295, 2293, 2309, 2309, 2309, 2310,
2357      2310, 2310, 2184, 2184, 2184, 2185, 2185, 2185, 2188, 2188,
2358      2188, 2189, 2189, 2189, 1514, 1510, 2302, 2190, 2190, 2190,
2359      2191, 2191, 2191, 2314, 2314, 2314, 2317, 2317, 2317, 2197,
2360      2197, 2197, 1509, 2198, 1508, 1507, 2199, 3216, 3216, 3216,
2361      1506, 2315, 1505, 2318, 2201, 2201, 2201, 1504, 2203, 2203,
2362
2363      2203, 1503, 2204, 1502, 3216, 2205, 1189, 1189, 1189, 2217,
2364      2217, 2217, 2202, 2218, 2331, 2332, 2219, 2333, 1501, 2337,
2365      2338, 1500, 2339, 1499, 1191, 2334, 1498, 1495, 2335, 1493,
2366      2340, 1490, 2336, 2341, 2220, 2220, 2220, 2342, 2343, 2343,
2367      2343, 2225, 2225, 2225, 2227, 2227, 2227, 1487, 2228, 1484,
2368      1475, 2229, 1473, 2319, 1218, 1218, 1218, 2231, 2231, 2231,
2369      1466, 2232, 1464, 1463, 2233, 1462, 1461, 2330, 2349, 2349,
2370      2349, 1460, 1220, 1241, 1241, 1241, 2359, 2359, 2359, 1266,
2371      1266, 1266, 1459, 2247, 2247, 2247, 2350, 2248, 1458, 1457,
2372      2249, 1243, 2363, 2363, 2363, 1456, 1455, 1268, 1452, 1451,
2373
2374      2348, 2367, 2367, 2367, 2254, 2254, 2254, 1450, 2255, 2364,
2375      1449, 2256, 2369, 2369, 2369, 2262, 2262, 2262, 1448, 2368,
2376      2375, 2375, 2375, 1447, 2351, 2265, 2265, 2265, 1446, 2266,
2377      2370, 1445, 2267, 2263, 1338, 1338, 1338, 2376, 1444, 2360,
2378      2378, 2378, 2378, 2270, 2270, 2270, 1443, 2271, 1442, 1441,
2379      2272, 1440, 1340, 3216, 3216, 3216, 1439, 2379, 3216, 3216,
2380      3216, 3216, 3216, 3216, 2389, 2389, 2389, 2393, 2393, 2393,
2381      3216, 2391, 2391, 2391, 1437, 3216, 1436, 1435, 3216, 1378,
2382      1378, 1378, 1434, 1433, 2394, 2377, 2380, 1432, 1431, 2392,
2383      1108, 1386, 1386, 1386, 2288, 2288, 2288, 1380, 1396, 1396,
2384
2385      1396, 1425, 1410, 2398, 2398, 2398, 1409, 2399, 2381, 1388,
2386      2400, 2289, 2387, 2401, 2401, 2401, 1398, 1404, 1403, 2382,
2387      3216, 3216, 3216, 3216, 3216, 3216, 2405, 2405, 2405, 1402,
2388      2402, 2407, 2407, 2407, 1401, 2397, 1400, 3216, 1374, 2395,
2389      3216, 1411, 1411, 1411, 2406, 2296, 2296, 2296, 2298, 2298,
2390      2298, 1362, 2396, 2301, 2301, 2301, 2303, 2303, 2303, 1413,
2391      2412, 2412, 2412, 2297, 1348, 1347, 1108, 2304, 2304, 2304,
2392      1346, 2403, 1342, 1337, 2404, 2416, 2416, 2416, 2413, 2308,
2393      2308, 2308, 2309, 2309, 2309, 2310, 2310, 2310, 2314, 2314,
2394      2314, 2317, 2317, 2317, 2421, 2421, 2421, 1333, 2422, 1325,
2395
2396      1320, 2423, 1189, 1189, 1189, 1319, 2315, 2408, 2318, 1313,
2397      2409, 2343, 2343, 2343, 2452, 2452, 2452, 1218, 1218, 1218,
2398      1191, 2349, 2349, 2349, 2455, 2455, 2455, 2461, 2461, 2461,
2399      2359, 2359, 2359, 1310, 1289, 1220, 1266, 1266, 1266, 2350,
2400      1288, 1287, 2456, 1286, 2462, 1285, 2363, 2363, 2363, 2466,
2401      2466, 2466, 1284, 2467, 1268, 1283, 2468, 2470, 2470, 2470,
2402      1277, 1270, 2435, 2364, 2367, 2367, 2367, 2369, 2369, 2369,
2403      2474, 2474, 2474, 1259, 2471, 2375, 2375, 2375, 1258, 2480,
2404      2480, 2480, 2368, 2454, 1257, 2370, 1252, 2475, 2378, 2378,
2405      2378, 1251, 2376, 2463, 2477, 2477, 2477, 2481, 2478, 1247,
2406
2407      1246, 2479, 2482, 2482, 2482, 2379, 2483, 1245, 1240, 2484,
2408      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 2490,
2409      2490, 2490, 2389, 2389, 2389, 1239, 1234, 3216, 1226, 1222,
2410      3216, 1217, 1216, 3216, 1212, 1211, 2491, 2391, 2391, 2391,
2411      2393, 2393, 2393, 2494, 2494, 2494, 1210, 2495, 1209, 1208,
2412      2496, 2497, 2497, 2497, 1207, 2392, 1206, 2394, 1386, 1386,
2413      1386, 1205, 2485, 1396, 1396, 1396, 2398, 2398, 2398, 2498,
2414      2399, 2486, 1204, 2400, 2487, 1203, 1388, 2401, 2401, 2401,
2415      1202, 1398, 2501, 2501, 2501, 1196, 2502, 1188, 1187, 2503,
2416      2504, 2504, 2504, 1186, 2402, 2506, 2506, 2506, 2405, 2405,
2417
2418      2405, 2407, 2407, 2407, 2508, 2508, 2508, 2505, 2412, 2412,
2419      2412, 1185, 2507, 2416, 2416, 2416, 2406, 2518, 2518, 2518,
2420      1180, 1179, 2509, 1178, 1175, 2499, 2413, 2500, 2421, 2421,
2421      2421, 1169, 2422, 1164, 2519, 2423, 1189, 1189, 1189, 2452,
2422      2452, 2452, 1218, 1218, 1218, 2455, 2455, 2455, 2557, 2557,
2423      2557, 2461, 2461, 2461, 1191, 2559, 2559, 2559, 1163, 2560,
2424      1220, 1159, 2561, 2456, 1154, 2558, 1153, 1152, 2462, 2562,
2425      2562, 2562, 2466, 2466, 2466, 1151, 2467, 1150, 1149, 2468,
2426      2470, 2470, 2470, 1148, 2567, 2567, 2567, 2563, 2568, 1146,
2427      1145, 2569, 2571, 2571, 2571, 1144, 2537, 2471, 2474, 2474,
2428
2429      2474, 2573, 2573, 2573, 1143, 2574, 1142, 1141, 2575, 2572,
2430      2576, 2576, 2576, 2555, 1140, 2475, 2477, 2477, 2477, 1139,
2431      2478, 1138, 1137, 2479, 2480, 2480, 2480, 2577, 2482, 2482,
2432      2482, 1136, 2483, 1135, 1134, 2484, 3216, 3216, 3216, 3216,
2433      3216, 3216, 2481, 3216, 3216, 3216, 2490, 2490, 2490, 1133,
2434      2581, 2581, 2581, 3216, 2582, 1132, 3216, 2583, 1131, 1130,
2435      3216, 1129, 1128, 2491, 2584, 2584, 2584, 2586, 2586, 2586,
2436      2494, 2494, 2494, 1127, 2495, 1120, 1119, 2496, 2497, 2497,
2437      2497, 2585, 1118, 1117, 2587, 1386, 1386, 1386, 1116, 1115,
2438      2579, 2578, 1396, 1396, 1396, 1114, 2498, 1111, 2580, 1109,
2439
2440      2501, 2501, 2501, 1388, 2502, 1108, 1106, 2503, 1104, 1101,
2441      1398, 2504, 2504, 2504, 2596, 2596, 2596, 1097, 2597, 1095,
2442      1094, 2598, 2506, 2506, 2506, 2599, 2599, 2599, 2505, 2600,
2443      1093, 1091, 2601, 1090, 2508, 2508, 2508, 1089, 1088, 2507,
2444      2606, 2606, 2606, 2518, 2518, 2518, 1189, 1189, 1189, 1087,
2445      1086, 2594, 2509, 2595, 2610, 2610, 2610, 1084, 2611, 1083,
2446      2519, 2612, 1082, 1081, 1191, 2646, 2646, 2646, 1218, 1218,
2447      1218, 2649, 2649, 2649, 2557, 2557, 2557, 2652, 2652, 2652,
2448      1079, 2653, 1078, 1077, 2654, 1073, 1220, 1072, 2650, 1070,
2449      1069, 2558, 2559, 2559, 2559, 1068, 2560, 2630, 1067, 2561,
2450
2451      2562, 2562, 2562, 2567, 2567, 2567, 1066, 2568, 1065, 1063,
2452      2569, 2571, 2571, 2571, 2606, 2606, 2606, 2651, 2563, 2659,
2453      2659, 2659, 1062, 2660, 1061, 1060, 2661, 1058, 2572, 1057,
2454      2648, 2573, 2573, 2573, 1056, 2574, 1053, 1052, 2575, 2576,
2455      2576, 2576, 2662, 2662, 2662, 1050, 2663, 1047, 1046, 2664,
2456      3216, 3216, 3216, 2666, 2666, 2666, 2577, 3216, 3216, 3216,
2457      1042, 2581, 2581, 2581, 1041, 2582, 1039, 3216, 2583, 1038,
2458      2667, 2584, 2584, 2584, 3216, 2669, 2669, 2669, 1037, 2670,
2459      1034, 1033, 2671, 2586, 2586, 2586, 1032, 1031, 2585, 2672,
2460      2672, 2672, 1029, 2673, 1028, 1027, 2674, 1386, 1386, 1386,
2461
2462      2587, 1396, 1396, 1396, 1026, 1025, 2668, 1020, 2665, 2596,
2463      2596, 2596, 1018, 2597, 1017, 1388, 2598, 1016, 1015, 1398,
2464      2599, 2599, 2599, 1014, 2600, 1013, 1012, 2601, 2689, 2689,
2465      2689, 2692, 2692, 2692, 2610, 2610, 2610, 1011, 2611, 1008,
2466      1005, 2612, 2703, 2703, 2703, 2690, 1634, 1004, 2681, 1189,
2467      1189, 1189, 2646, 2646, 2646, 2729, 2729, 2729, 1003, 2704,
2468      1218, 1218, 1218, 2649, 2649, 2649,  997, 1191, 2682, 2731,
2469      2731, 2731,  994, 2732,  992,  991, 2733,  986, 1220,  985,
2470      2650, 2652, 2652, 2652,  983, 2653,  982,  981, 2654, 2659,
2471      2659, 2659,  979, 2660,  976,  974, 2661,  971, 2713, 2662,
2472
2473      2662, 2662,  970, 2663,  968,  967, 2664, 3216, 3216, 3216,
2474       964, 2730, 2666, 2666, 2666, 2740, 2740, 2740,  959, 2741,
2475       958,  956, 2742,  955, 3216, 3216, 3216, 3216,  952, 2667,
2476      2669, 2669, 2669,  951, 2670,  949,  946, 2671,  944, 2672,
2477      2672, 2672, 3216, 2673,  943,  942, 2674, 2758, 2758, 2758,
2478      1396, 1396, 1396, 2766, 2766, 2766,  940,  938, 2739, 2689,
2479      2689, 2689, 2768, 2768, 2768, 2759, 2769,  937, 1398, 2770,
2480      2767, 1634, 2771, 2771, 2771,  936, 2690, 1634,  935,  934,
2481      1634, 2692, 2692, 2692, 2772, 2772, 2772, 2773, 2773, 2773,
2482      2703, 2703, 2703, 2782, 2782, 2782, 2743, 2783,  933,  930,
2483
2484      2784, 1189, 1189, 1189, 2802, 2802, 2802, 2704, 2729, 2729,
2485      2729, 2803, 2803, 2803,  929,  928, 2760,  925,  922, 1191,
2486      2731, 2731, 2731,  921, 2732,  919,  918, 2733,  915, 2804,
2487      2808, 2808, 2808, 2811, 2811, 2811, 2740, 2740, 2740,  912,
2488      2741,  909,  908, 2742, 2813, 2813, 2813, 2809,  900,  899,
2489      2812, 2758, 2758, 2758, 1396, 1396, 1396, 2766, 2766, 2766,
2490       898, 2814,  892,  891, 2833, 2833, 2833, 2791, 2834, 2759,
2491       890, 2835, 1398,  888, 2767, 1634, 2768, 2768, 2768,  887,
2492      2769,  886, 1634, 2770, 2771, 2771, 2771, 2772, 2772, 2772,
2493      2773, 2773, 2773,  885, 1634, 2782, 2782, 2782,  884, 2783,
2494
2495       883,  878, 2784,  875,  877, 2827, 1632, 1632, 1632, 1632,
2496      1632, 1632, 1632, 1632, 1632,  872,  871, 1632, 2852, 2852,
2497      2852,  869, 1632, 1632, 1632, 1634, 1632, 2802, 2802, 2802,
2498      2803, 2803, 2803, 2808, 2808, 2808, 2853, 2865, 2865, 2865,
2499       867, 2866,  865,  863, 2867, 2811, 2811, 2811, 2804,  861,
2500      2809, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
2501      1632, 1632, 2812, 3216, 1632, 2813, 2813, 2813,  858, 1632,
2502      1632, 1632, 1634, 1632, 2869, 2869, 2869,  857, 2870,  856,
2503       855, 2871, 2814, 2872, 2872, 2872,  854, 2873,  852,  851,
2504      2874, 2887, 2887, 2887, 2852, 2852, 2852,  850, 1632, 1632,
2505
2506      2833, 2833, 2833,  849, 2834,  848,  846, 2835,  845, 2888,
2507       844,  843, 2853, 2887, 2887, 2887,  841,  839, 1634, 1632,
2508      1632, 1632, 1632, 1632, 2899, 1632, 1632, 1632,  838,  836,
2509      1632, 2888,  835,  832,  831, 1632, 1632, 1632, 1634, 1632,
2510      2865, 2865, 2865,  829, 2866,  663, 3216, 2867, 2869, 2869,
2511      2869,  824, 2870,  822,  818, 2871, 2872, 2872, 2872,  817,
2512      2873,  816,  814, 2874, 1632, 1632, 1632, 1632, 1632, 1632,
2513      1632, 1632, 1632, 1632, 2899,  812,  811, 1632, 2938, 2938,
2514      2938,  810, 1632, 1632, 1632, 1634, 1632, 2949, 2949, 2949,
2515      2951, 2951, 2951, 2953, 2953, 2953, 1634, 1635, 2961, 2961,
2516
2517      2961, 2971, 2971, 2971, 2950,  808,  806, 2952,  805,  803,
2518      2954, 1632, 1632,  801,  800, 2962, 2938, 2938, 2938, 1108,
2519      2949, 2949, 2949, 2981, 2981, 2981,  799, 2982,  798,  797,
2520      2983, 2951, 2951, 2951, 1634,  796,  795, 2950, 2984, 2984,
2521      2984,  793, 2985,  791,  790, 2986,  787,  786, 2952, 2953,
2522      2953, 2953, 2987, 2987, 2987,  785, 2988,  783,  774, 2989,
2523      2961, 2961, 2961, 2971, 2971, 2971, 2954, 1822, 2996, 2996,
2524      2996,  773, 2997,  772,  769, 2998,  767, 2962, 2981, 2981,
2525      2981, 1108, 2982,  765,  764, 2983, 2984, 2984, 2984,  763,
2526      2985,  761, 3216, 2986, 2987, 2987, 2987,  758, 2988,  757,
2527
2528      3007, 2989, 2996, 2996, 2996,  756, 2997,  755,  754, 2998,
2529      3112, 3112, 3112, 3112, 3112, 3112,  752, 3121,  750,  749,
2530      3122, 3214, 3214, 3214, 3214, 3214, 3214,  747, 1108,  745,
2531       744, 1108,  742,  740,  739,  738,  736,  734,  733, 3215,
2532       732,  731, 3215,  250,  250,  250,  250,  250,  250,  250,
2533       250,  250,  251,  251,  251,  251,  251,  251,  251,  251,
2534       251,  256,  256,  256,  256,  256,  256,  256,  256,  256,
2535       259,  259,  259,  259,  259,  259,  259,  259,  259,  262,
2536       262,  262,  262,  262,  262,  262,  262,  262,  265,  265,
2537       265,  265,  265,  265,  265,  265,  265,  272,  272,  272,
2538
2539       272,  272,  272,  272,  272,  272,  280,  280,  280,  280,
2540       280,  280,  280,  280,  280,  284,  284,  284,  284,  284,
2541       284,  284,  284,  284,  296,  296,  296,  296,  296,  296,
2542       296,  296,  296,  300,  300,  300,  300,  300,  300,  300,
2543       300,  300,  307,  307,  307,  307,  307,  307,  307,  307,
2544       307,  318,  318,  318,  318,  318,  318,  318,  318,  318,
2545       326,  326,  326,  326,  326,  326,  326,  326,  326,  334,
2546       334,  334,  334,  334,  334,  334,  334,  334,  340,  340,
2547       340,  340,  340,  340,  340,  340,  340,  346,  346,  346,
2548       346,  346,  346,  346,  346,  346,  351,  351,  351,  351,
2549
2550       351,  351,  351,  351,  351,  368,  368,  368,  368,  368,
2551       368,  368,  368,  368,  375,  375,  375,  375,  375,  375,
2552       375,  375,  375,  382,  382,  382,  382,  382,  382,  382,
2553       382,  382,  388,  388,  388,  388,  388,  388,  388,  388,
2554       388,  395,  395,  395,  395,  395,  395,  395,  395,  395,
2555       400,  400,  400,  400,  400,  400,  400,  400,  400,  406,
2556       406,  406,  406,  406,  406,  406,  406,  406,  411,  411,
2557       411,  411,  411,  411,  411,  411,  411,  417,  417,  417,
2558       417,  417,  417,  417,  417,  417,  425,  425,  425,  425,
2559       425,  425,  425,  425,  425,  433,  433,  433,  433,  433,
2560
2561       433,  433,  433,  433,  439,  439,  439,  439,  439,  439,
2562       439,  439,  439,  456,  456,  456,  456,  456,  456,  456,
2563       456,  456,  462,  462,  462,  462,  462,  462,  462,  462,
2564       462,  471,  471,  471,  471,  471,  471,  471,  471,  471,
2565       477,  477,  477,  477,  477,  477,  477,  477,  477,  487,
2566       487,  487,  487,  487,  487,  487,  487,  487,  493,  493,
2567       493,  493,  493,  493,  493,  493,  493,  498,  498,  498,
2568       498,  498,  498,  498,  498,  498,  504,  504,  504,  504,
2569       504,  504,  504,  504,  504,  510,  510,  510,  510,  510,
2570       510,  510,  510,  510,  516,  516,  516,  516,  516,  516,
2571
2572       516,  516,  516,  523,  523,  523,  523,  523,  523,  523,
2573       523,  523,  530,  530,  530,  530,  530,  530,  530,  530,
2574       530,  535,  535,  535,  535,  535,  535,  535,  535,  535,
2575       543,  543,  543,  543,  543,  543,  543,  543,  543,  549,
2576       549,  549,  549,  549,  549,  549,  549,  549,  556,  556,
2577       556,  556,  556,  556,  556,  556,  556,  561,  561,  561,
2578       561,  561,  561,  561,  561,  561,  567,  567,  567,  567,
2579       567,  567,  567,  567,  567,  572,  572,  572,  572,  572,
2580       572,  572,  572,  572,  579,  579,  579,  579,  579,  579,
2581       579,  579,  579,  585,  585,  585,  585,  585,  585,  585,
2582
2583       585,  585,  592,  592,  592,  592,  592,  592,  592,  592,
2584       592,  600,  600,  600,  600,  600,  600,  600,  600,  600,
2585       608,  608,  608,  608,  608,  608,  608,  608,  608,  612,
2586       612,  612,  612,  612,  612,  612,  612,  612,  618,  618,
2587       618,  618,  618,  618,  618,  618,  618,  622,  622,  622,
2588       622,  622,  622,  622,  622,  622,  629,  629,  629,  629,
2589       629,  629,  629,  629,  629,  634,  634,  634,  634,  634,
2590       634,  634,  634,  634,  654,  654,  654,  729, 3216, 3216,
2591       654,  680,  680,  680,  712,  711,  709,  680,  684,  684,
2592       684,  707,  706,  705,  684,  692,  692,  692,  703,  698,
2593
2594       694,  692,  704,  704,  704,  693,  691,  690,  704,  710,
2595       710,  710,  687,  686,  685,  710,  730,  730,  730,  683,
2596       682,  681,  730,  737,  737,  737,  679,  674, 3216,  737,
2597       743,  743,  743,  655,  653,  651,  743,  748,  748,  748,
2598       645,  644,  645,  748,  753,  753,  753,  644,  643,  642,
2599       753,  762,  762,  762, 3216, 3216, 3216,  762,  768,  768,
2600       768, 3216, 3216, 3216,  768,  784,  784,  784, 3216, 3216,
2601      3216,  784,  794,  794,  794, 3216, 3216, 3216,  794,  804,
2602       804,  804, 3216, 3216, 3216,  804,  809,  809,  809, 3216,
2603      3216, 3216,  809,  815,  815,  815, 3216, 3216, 3216,  815,
2604
2605       823,  823,  823, 3216, 3216, 3216,  823,  830,  830,  830,
2606      3216, 3216, 3216,  830,  837,  837,  837, 3216, 3216, 3216,
2607       837,  842,  842,  842, 3216, 3216, 3216,  842,  847,  847,
2608       847, 3216, 3216, 3216,  847,  853,  853,  853, 3216, 3216,
2609      3216,  853,  862,  862,  862, 3216, 3216, 3216,  862,  866,
2610       866,  866, 3216, 3216, 3216,  866,  870,  870,  870, 3216,
2611      3216, 3216,  870,  874,  874,  874,  874,  874,  874,  874,
2612      3216,  874,  654,  654,  654, 3216, 3216, 3216,  654,  889,
2613      3216, 3216, 3216,  889,  680,  680,  680, 3216, 3216, 3216,
2614       680,  920, 3216, 3216, 3216,  920,  684,  684,  684, 3216,
2615
2616      3216, 3216,  684,  927, 3216, 3216, 3216,  927,  692,  692,
2617       692, 3216, 3216, 3216,  692,  939, 3216, 3216, 3216,  939,
2618       704,  704,  704, 3216, 3216, 3216,  704,  945, 3216, 3216,
2619      3216,  945,  710,  710,  710, 3216, 3216, 3216,  710,  950,
2620      3216, 3216, 3216,  950,  730,  730,  730, 3216, 3216, 3216,
2621       730,  969, 3216, 3216, 3216,  969,  737,  737,  737, 3216,
2622      3216, 3216,  737,  975, 3216, 3216, 3216,  975,  743,  743,
2623       743, 3216, 3216, 3216,  743,  980, 3216, 3216, 3216,  980,
2624       748,  748,  748, 3216, 3216, 3216,  748,  984, 3216, 3216,
2625      3216,  984,  753,  753,  753, 3216, 3216, 3216,  753,  993,
2626
2627      3216, 3216, 3216,  993,  762,  762,  762, 3216, 3216, 3216,
2628       762, 1002, 3216, 3216, 3216, 1002,  768,  768,  768, 3216,
2629      3216, 3216,  768, 1019, 3216, 3216, 3216, 1019,  784,  784,
2630       784, 3216, 3216, 3216,  784, 1030, 3216, 3216, 3216, 1030,
2631       794,  794,  794, 3216, 3216, 3216,  794, 1040, 3216, 3216,
2632      3216, 1040,  804,  804,  804, 3216, 3216, 3216,  804, 1045,
2633      3216, 3216, 3216, 1045,  809,  809,  809, 3216, 3216, 3216,
2634       809, 1051, 3216, 3216, 3216, 1051,  815,  815,  815, 3216,
2635      3216, 3216,  815, 1059, 3216, 3216, 3216, 1059,  823,  823,
2636       823, 3216, 3216, 3216,  823, 1064, 3216, 3216, 3216, 1064,
2637
2638       830,  830,  830, 3216, 3216, 3216,  830, 1071, 3216, 3216,
2639      3216, 1071,  837,  837,  837, 3216, 3216, 3216,  837, 1076,
2640      3216, 3216, 3216, 1076,  842,  842,  842, 3216, 3216, 3216,
2641       842, 1080, 3216, 3216, 3216, 1080,  847,  847,  847, 3216,
2642      3216, 3216,  847, 1085, 3216, 3216, 3216, 1085,  853,  853,
2643       853, 3216, 3216, 3216,  853, 1092, 3216, 3216, 3216, 1092,
2644       862,  862,  862, 3216, 3216, 3216,  862, 1096, 3216, 3216,
2645      3216, 1096,  866,  866,  866, 3216, 3216, 3216,  866, 1100,
2646      3216, 3216, 3216, 1100,  870,  870,  870, 3216, 3216, 3216,
2647       870, 1105, 3216, 3216, 3216, 1105, 1107, 1107, 1107, 1107,
2648
2649      1107, 1107, 1107, 1107, 1107, 1113, 3216, 3216, 3216, 3216,
2650      1113,  654,  654,  654, 3216, 3216, 3216,  654, 1122, 1122,
2651      1122, 1122, 3216, 3216, 1122, 1122,  680,  680,  680, 3216,
2652      3216, 3216,  680, 1156, 1156, 1156, 1156, 3216, 3216, 1156,
2653      1156,  684,  684,  684, 3216, 3216, 3216,  684, 1166, 1166,
2654      1166, 1166, 3216, 3216, 1166, 1166,  692,  692,  692, 3216,
2655      3216, 3216,  692, 1182, 1182, 1182, 1182, 3216, 3216, 1182,
2656      1182,  704,  704,  704, 3216, 3216, 3216,  704, 1190, 1190,
2657      1190, 1190, 3216, 3216, 1190, 1190,  710,  710,  710, 3216,
2658      3216, 3216,  710, 1198, 1198, 1198, 1198, 3216, 3216, 1198,
2659
2660      1198,  730,  730,  730, 3216, 3216, 3216,  730, 1219, 1219,
2661      1219, 1219, 3216, 3216, 1219, 1219,  737,  737,  737, 3216,
2662      3216, 3216,  737, 1228, 1228, 1228, 1228, 3216, 3216, 1228,
2663      1228,  743,  743,  743, 3216, 3216, 3216,  743, 1236, 1236,
2664      1236, 1236, 3216, 3216, 1236, 1236,  748,  748,  748, 3216,
2665      3216, 3216,  748, 1242, 1242, 1242, 1242, 3216, 3216, 1242,
2666      1242,  753,  753,  753, 3216, 3216, 3216,  753, 1254, 1254,
2667      1254, 1254, 3216, 3216, 1254, 1254,  762,  762,  762, 3216,
2668      3216, 3216,  762, 1267, 1267, 1267, 1267, 3216, 3216, 1267,
2669      1267,  768,  768,  768, 3216, 3216, 3216,  768, 1291, 1291,
2670
2671      1291, 1291, 3216, 3216, 1291, 1291,  784,  784,  784,  784,
2672      3216,  784, 3216,  784, 1307, 1307, 1307, 1307, 3216, 3216,
2673      1307, 1307,  794,  794,  794, 3216, 3216, 3216,  794, 1322,
2674      1322, 1322, 1322, 3216, 3216, 1322, 1322,  804,  804,  804,
2675      3216, 3216, 3216,  804, 1330, 1330, 1330, 1330, 3216, 3216,
2676      1330, 1330,  809,  809,  809, 3216, 3216, 3216,  809, 1339,
2677      1339, 1339, 1339, 3216, 3216, 1339, 1339,  815,  815,  815,
2678      3216, 3216, 3216,  815, 1350, 1350, 1350, 1350, 3216, 3216,
2679      1350, 1350,  823,  823,  823,  823, 3216,  823, 3216,  823,
2680      1359, 1359, 1359, 1359, 3216, 3216, 1359, 1359,  830,  830,
2681
2682       830,  830, 3216,  830, 3216,  830, 1371, 1371, 1371, 1371,
2683      3216, 3216, 1371, 1371,  837,  837,  837, 3216, 3216, 3216,
2684       837, 1379, 1379, 1379, 1379, 3216, 3216, 1379, 1379,  842,
2685       842,  842,  842, 3216,  842, 3216,  842, 1387, 1387, 1387,
2686      1387, 3216, 3216, 1387, 1387,  847,  847,  847,  847, 3216,
2687       847, 3216,  847, 1397, 1397, 1397, 1397, 3216, 3216, 1397,
2688      1397,  853,  853,  853, 3216, 3216, 3216,  853, 1406, 1406,
2689      1406, 1406, 3216, 3216, 1406, 1406,  862,  862,  862, 3216,
2690      3216, 3216,  862, 1412, 1412, 1412, 1412, 3216, 3216, 1412,
2691      1412, 1419, 1419, 1419, 1419, 3216, 3216, 1419, 1419,  870,
2692
2693       870,  870, 3216, 3216, 3216,  870, 1427, 1427, 1427, 1427,
2694      3216, 3216, 1427, 1427, 1107, 1107, 1107, 1107, 1107, 1107,
2695      1107, 1107, 1107, 1113, 3216, 1113, 3216, 3216, 1113,  654,
2696       654,  654, 3216, 3216, 3216,  654, 1122, 1122, 1122, 1122,
2697      3216, 3216, 1122, 1122,  680,  680,  680,  680, 3216,  680,
2698      3216,  680, 1156, 1156, 1156, 1156, 3216, 3216, 1156, 1156,
2699       684,  684,  684,  684, 3216,  684, 3216,  684, 1166, 1166,
2700      1166, 1166, 3216, 3216, 1166, 1166,  692,  692,  692, 3216,
2701      3216, 3216,  692, 1182, 1182, 1182, 1182, 3216, 3216, 1182,
2702      1182,  704,  704,  704, 3216, 3216, 3216,  704, 1190, 1190,
2703
2704      1190, 1190, 3216, 3216, 1190, 1190,  710,  710,  710, 3216,
2705      3216, 3216,  710, 1198, 1198, 1198, 1198, 3216, 3216, 1198,
2706      1198,  730,  730,  730, 3216, 3216, 3216,  730, 1219, 1219,
2707      1219, 1219, 3216, 3216, 1219, 1219,  737,  737,  737, 3216,
2708      3216, 3216,  737, 1228, 1228, 1228, 1228, 3216, 3216, 1228,
2709      1228,  743,  743,  743,  743, 3216,  743, 3216,  743, 1236,
2710      1236, 1236, 1236, 3216, 3216, 1236, 1236,  748,  748,  748,
2711       748, 3216,  748, 3216,  748, 1242, 1242, 1242, 1242, 3216,
2712      3216, 1242, 1242,  753,  753,  753, 3216, 3216, 3216,  753,
2713      1254, 1254, 1254, 1254, 3216, 3216, 1254, 1254,  762,  762,
2714
2715       762,  762, 3216,  762, 3216,  762, 1267, 1267, 1267, 1267,
2716      3216, 3216, 1267, 1267,  768,  768,  768, 3216, 3216, 3216,
2717       768, 1291, 1291, 1291, 1291, 3216, 3216, 1291, 1291,  784,
2718       784,  784, 3216, 3216, 3216,  784, 1307, 1307, 1307, 1307,
2719      3216, 3216, 1307, 1307,  794,  794,  794, 3216, 3216, 3216,
2720       794, 1322, 1322, 1322, 1322, 3216, 3216, 1322, 1322,  804,
2721       804,  804, 3216, 3216, 3216,  804, 1330, 1330, 1330, 1330,
2722      3216, 3216, 1330, 1330,  809,  809,  809, 3216, 3216, 3216,
2723       809, 1339, 1339, 1339, 1339, 3216, 3216, 1339, 1339,  815,
2724       815,  815, 3216, 3216, 3216,  815, 1350, 1350, 1350, 1350,
2725
2726      3216, 3216, 1350, 1350,  823,  823,  823, 3216, 3216, 3216,
2727       823, 1359, 1359, 1359, 1359, 3216, 3216, 1359, 1359,  830,
2728       830,  830, 3216, 3216, 3216,  830, 1371, 1371, 1371, 1371,
2729      3216, 3216, 1371, 1371,  837,  837,  837, 3216, 3216, 3216,
2730       837, 1379, 1379, 1379, 1379, 3216, 3216, 1379, 1379, 1387,
2731      1387, 1387, 1387, 3216, 3216, 1387, 1387,  847,  847,  847,
2732      3216, 3216, 3216,  847, 1397, 1397, 1397, 1397, 3216, 3216,
2733      1397, 1397,  853,  853,  853, 3216, 3216, 3216,  853, 1406,
2734      1406, 1406, 1406, 3216, 3216, 1406, 1406,  862,  862,  862,
2735      3216, 3216, 3216,  862, 1412, 1412, 1412, 1412, 3216, 3216,
2736
2737      1412, 1412, 1419, 1419, 1419, 1419, 3216, 3216, 1419, 1419,
2738       870,  870,  870, 3216, 3216, 3216,  870, 1427, 1427, 1427,
2739      1427, 3216, 3216, 1427, 1427, 1107, 1107, 1107, 1107, 1107,
2740      1107, 1107, 1107, 1107, 1632, 1632, 1632, 1632, 1632, 1632,
2741      1632, 1632, 1632,  654,  654,  654, 3216, 3216, 3216,  654,
2742      1122, 1122, 1122, 1122, 3216, 3216, 1122, 1122, 1156, 1156,
2743      1156, 1156, 3216, 3216, 1156, 1156,  684,  684,  684, 3216,
2744      3216, 3216,  684, 1166, 1166, 1166, 1166, 3216, 3216, 1166,
2745      1166,  692,  692,  692, 3216, 3216, 3216,  692, 1182, 1182,
2746      1182, 1182, 3216, 3216, 1182, 1182,  704,  704,  704, 3216,
2747
2748      3216, 3216,  704, 1190, 1190, 1190, 1190, 3216, 3216, 1190,
2749      1190,  710,  710,  710, 3216, 3216, 3216,  710,  730,  730,
2750       730, 3216, 3216, 3216,  730, 1219, 1219, 1219, 1219, 3216,
2751      3216, 1219, 1219,  737,  737,  737, 3216, 3216, 3216,  737,
2752      1228, 1228, 1228, 1228, 3216, 3216, 1228, 1228, 1236, 1236,
2753      1236, 1236, 3216, 3216, 1236, 1236,  748,  748,  748, 3216,
2754      3216, 3216,  748, 1242, 1242, 1242, 1242, 3216, 3216, 1242,
2755      1242,  753,  753,  753, 3216, 3216, 3216,  753, 1254, 1254,
2756      1254, 1254, 3216, 3216, 1254, 1254, 1267, 1267, 1267, 1267,
2757      3216, 3216, 1267, 1267,  768,  768,  768, 3216, 3216, 3216,
2758
2759       768, 1291, 1291, 1291, 1291, 3216, 3216, 1291, 1291,  784,
2760       784,  784,  784, 3216,  784, 3216,  784, 1307, 1307, 1307,
2761      1307, 3216, 3216, 1307, 1307,  794,  794,  794, 3216, 3216,
2762      3216,  794, 1322, 1322, 1322, 1322, 3216, 3216, 1322, 1322,
2763       804,  804,  804, 3216, 3216, 3216,  804, 1330, 1330, 1330,
2764      1330, 3216, 3216, 1330, 1330,  809,  809,  809, 3216, 3216,
2765      3216,  809, 1339, 1339, 1339, 1339, 3216, 3216, 1339, 1339,
2766       815,  815,  815, 3216, 3216, 3216,  815, 1350, 1350, 1350,
2767      1350, 3216, 3216, 1350, 1350,  823,  823,  823, 3216, 3216,
2768      3216,  823, 1359, 1359, 1359, 1359, 3216, 3216, 1359, 1359,
2769
2770       830,  830,  830, 3216, 3216, 3216,  830, 1371, 1371, 1371,
2771      1371, 3216, 3216, 1371, 1371,  837,  837,  837, 3216, 3216,
2772      3216,  837, 1379, 1379, 1379, 1379, 3216, 3216, 1379, 1379,
2773      1387, 1387, 1387, 1387, 3216, 3216, 1387, 1387,  847,  847,
2774       847, 3216, 3216, 3216,  847, 1397, 1397, 1397, 1397, 3216,
2775      3216, 1397, 1397,  853,  853,  853, 3216, 3216, 3216,  853,
2776      1406, 1406, 1406, 1406, 3216, 3216, 1406, 1406,  862,  862,
2777       862,  862, 3216,  862, 3216,  862, 1412, 1412, 1412, 1412,
2778      3216, 3216, 1412, 1412, 1419, 1419, 1419, 1419, 3216, 3216,
2779      1419, 1419,  870,  870,  870,  870, 3216,  870, 3216,  870,
2780
2781      1427, 1427, 1427, 1427, 3216, 3216, 1427, 1427, 1107, 1107,
2782      1107, 1107, 1107, 1107, 1107, 1107, 1107, 1632, 1632, 1632,
2783      1632, 1632, 1632, 1632, 1632, 1632,  654,  654,  654, 3216,
2784      3216, 3216,  654, 1122, 1122, 1122, 1122, 3216, 3216, 1122,
2785      1122, 1156, 1156, 1156, 1156, 3216, 3216, 1156, 1156,  684,
2786       684,  684, 3216, 3216, 3216,  684, 1166, 1166, 1166, 1166,
2787      3216, 3216, 1166, 1166,  692,  692,  692, 3216, 3216, 3216,
2788       692, 1182, 1182, 1182, 1182, 3216, 3216, 1182, 1182,  704,
2789       704,  704, 3216, 3216, 3216,  704, 1190, 1190, 1190, 1190,
2790      3216, 3216, 1190, 1190,  710,  710,  710, 3216, 3216, 3216,
2791
2792       710,  730,  730,  730, 3216, 3216, 3216,  730, 1219, 1219,
2793      1219, 1219, 3216, 3216, 1219, 1219,  737,  737,  737, 3216,
2794      3216, 3216,  737, 1228, 1228, 1228, 1228, 3216, 3216, 1228,
2795      1228, 1236, 1236, 1236, 1236, 3216, 3216, 1236, 1236,  748,
2796       748,  748,  748, 3216,  748, 3216,  748, 1242, 1242, 1242,
2797      1242, 3216, 3216, 1242, 1242,  753,  753,  753, 3216, 3216,
2798      3216,  753, 1254, 1254, 1254, 1254, 3216, 3216, 1254, 1254,
2799      1267, 1267, 1267, 1267, 3216, 3216, 1267, 1267,  768,  768,
2800       768, 3216, 3216, 3216,  768, 1291, 1291, 1291, 1291, 3216,
2801      3216, 1291, 1291,  784,  784,  784,  784, 3216,  784, 3216,
2802
2803       784, 1307, 1307, 1307, 1307, 3216, 3216, 1307, 1307,  794,
2804       794,  794, 3216, 3216, 3216,  794, 1322, 1322, 1322, 1322,
2805      3216, 3216, 1322, 1322,  804,  804,  804, 3216, 3216, 3216,
2806       804, 1330, 1330, 1330, 1330, 3216, 3216, 1330, 1330,  809,
2807       809,  809, 3216, 3216, 3216,  809, 1339, 1339, 1339, 1339,
2808      3216, 3216, 1339, 1339,  815,  815,  815, 3216, 3216, 3216,
2809       815, 1350, 1350, 1350, 1350, 3216, 3216, 1350, 1350,  823,
2810       823,  823, 3216, 3216, 3216,  823, 1359, 1359, 1359, 1359,
2811      3216, 3216, 1359, 1359,  830,  830,  830,  830, 3216,  830,
2812      3216,  830, 1371, 1371, 1371, 1371, 3216, 3216, 1371, 1371,
2813
2814       837,  837,  837, 3216, 3216, 3216,  837, 1379, 1379, 1379,
2815      1379, 3216, 3216, 1379, 1379, 1387, 1387, 1387, 1387, 3216,
2816      3216, 1387, 1387,  847,  847,  847,  847, 3216,  847, 3216,
2817       847, 1397, 1397, 1397, 1397, 3216, 3216, 1397, 1397,  853,
2818       853,  853, 3216, 3216, 3216,  853, 1406, 1406, 1406, 1406,
2819      3216, 3216, 1406, 1406, 1412, 1412, 1412, 1412, 3216, 3216,
2820      1412, 1412, 1419, 1419, 1419, 1419, 3216, 3216, 1419, 1419,
2821      1427, 1427, 1427, 1427, 3216, 3216, 1427, 1427, 1107, 1107,
2822      1107, 1107, 1107, 1107, 1107, 1107, 1107, 1632, 1632, 1632,
2823      1632, 1632, 1632, 1632, 1632, 1632,  654,  654,  654,  654,
2824
2825      3216,  654, 3216,  654, 1122, 1122, 1122, 1122, 3216, 3216,
2826      1122, 1122, 1156, 1156, 1156, 1156, 3216, 3216, 1156, 1156,
2827       684,  684,  684, 3216, 3216, 3216,  684, 1166, 1166, 1166,
2828      1166, 3216, 3216, 1166, 1166,  692,  692,  692, 3216, 3216,
2829      3216,  692, 1182, 1182, 1182, 1182, 3216, 3216, 1182, 1182,
2830       704,  704,  704,  704, 3216,  704, 3216,  704, 1190, 1190,
2831      1190, 1190, 3216, 3216, 1190, 1190,  710,  710,  710,  710,
2832      3216,  710, 3216,  710,  730,  730,  730,  730, 3216,  730,
2833      3216,  730, 1219, 1219, 1219, 1219, 3216, 3216, 1219, 1219,
2834       737,  737,  737,  737, 3216,  737, 3216,  737, 1228, 1228,
2835
2836      1228, 1228, 3216, 3216, 1228, 1228, 1236, 1236, 1236, 1236,
2837      3216, 3216, 1236, 1236, 1242, 1242, 1242, 1242, 3216, 3216,
2838      1242, 1242,  753,  753,  753, 3216, 3216, 3216,  753, 1267,
2839      1267, 1267, 1267, 3216, 3216, 1267, 1267,  768,  768,  768,
2840      3216, 3216, 3216,  768, 1291, 1291, 1291, 1291, 3216, 3216,
2841      1291, 1291,  784,  784,  784,  784, 3216,  784, 3216,  784,
2842      1307, 1307, 1307, 1307, 3216, 3216, 1307, 1307,  794,  794,
2843       794, 3216, 3216, 3216,  794,  804,  804,  804, 3216, 3216,
2844      3216,  804, 1330, 1330, 1330, 1330, 3216, 3216, 1330, 1330,
2845       809,  809,  809, 3216, 3216, 3216,  809, 1339, 1339, 1339,
2846
2847      1339, 3216, 3216, 1339, 1339,  815,  815,  815, 3216, 3216,
2848      3216,  815,  823,  823,  823, 3216, 3216, 3216,  823, 1359,
2849      1359, 1359, 1359, 3216, 3216, 1359, 1359,  830,  830,  830,
2850      3216, 3216, 3216,  830, 1371, 1371, 1371, 1371, 3216, 3216,
2851      1371, 1371,  837,  837,  837, 3216, 3216, 3216,  837, 1379,
2852      1379, 1379, 1379, 3216, 3216, 1379, 1379, 1387, 1387, 1387,
2853      1387, 3216, 3216, 1387, 1387, 1397, 1397, 1397, 1397, 3216,
2854      3216, 1397, 1397,  853,  853,  853, 3216, 3216, 3216,  853,
2855      1406, 1406, 1406, 1406, 3216, 3216, 1406, 1406, 1412, 1412,
2856      1412, 1412, 3216, 3216, 1412, 1412, 1419, 1419, 1419, 1419,
2857
2858      3216, 3216, 1419, 1419, 1107, 1107, 1107, 1107, 1107, 1107,
2859      1107, 1107, 1107, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
2860      1632, 1632, 1122, 1122, 1122, 1122, 3216, 3216, 1122, 1122,
2861      1156, 1156, 1156, 1156, 3216, 3216, 1156, 1156,  684,  684,
2862       684, 3216, 3216, 3216,  684,  692,  692,  692, 3216, 3216,
2863      3216,  692, 1182, 1182, 1182, 1182, 3216, 3216, 1182, 1182,
2864      1190, 1190, 1190, 1190, 3216, 3216, 1190, 1190, 1219, 1219,
2865      1219, 1219, 3216, 3216, 1219, 1219, 1228, 1228, 1228, 1228,
2866      3216, 3216, 1228, 1228, 1242, 1242, 1242, 1242, 3216, 3216,
2867      1242, 1242,  753,  753,  753, 3216, 3216, 3216,  753, 1267,
2868
2869      1267, 1267, 1267, 3216, 3216, 1267, 1267,  768,  768,  768,
2870      3216, 3216, 3216,  768, 1291, 1291, 1291, 1291, 3216, 3216,
2871      1291, 1291, 1307, 1307, 1307, 1307, 3216, 3216, 1307, 1307,
2872       794,  794,  794, 3216, 3216, 3216,  794,  804,  804,  804,
2873      3216, 3216, 3216,  804, 1330, 1330, 1330, 1330, 3216, 3216,
2874      1330, 1330,  809,  809,  809, 3216, 3216, 3216,  809, 1339,
2875      1339, 1339, 1339, 3216, 3216, 1339, 1339,  815,  815,  815,
2876      3216, 3216, 3216,  815,  823,  823,  823, 3216, 3216, 3216,
2877       823,  830,  830,  830, 3216, 3216, 3216,  830, 1371, 1371,
2878      1371, 1371, 3216, 3216, 1371, 1371,  837,  837,  837, 3216,
2879
2880      3216, 3216,  837, 1379, 1379, 1379, 1379, 3216, 3216, 1379,
2881      1379, 1387, 1387, 1387, 1387, 3216, 3216, 1387, 1387, 1397,
2882      1397, 1397, 1397, 3216, 3216, 1397, 1397,  853,  853,  853,
2883       853, 3216,  853, 3216,  853, 1406, 1406, 1406, 1406, 3216,
2884      3216, 1406, 1406, 1412, 1412, 1412, 1412, 3216, 3216, 1412,
2885      1412, 1419, 1419, 1419, 1419, 3216, 3216, 1419, 1419, 1107,
2886      1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1632, 1632,
2887      1632, 1632, 1632, 1632, 1632, 1632, 1632, 1122, 1122, 1122,
2888      1122, 3216, 3216, 1122, 1122, 1156, 1156, 1156, 1156, 3216,
2889      3216, 1156, 1156,  684,  684,  684, 3216, 3216, 3216,  684,
2890
2891       692,  692,  692,  692, 3216,  692, 3216,  692, 1190, 1190,
2892      1190, 1190, 3216, 3216, 1190, 1190, 1219, 1219, 1219, 1219,
2893      3216, 3216, 1219, 1219, 1228, 1228, 1228, 1228, 3216, 3216,
2894      1228, 1228, 1242, 1242, 1242, 1242, 3216, 3216, 1242, 1242,
2895       753,  753,  753, 3216, 3216, 3216,  753, 1267, 1267, 1267,
2896      1267, 3216, 3216, 1267, 1267,  768,  768,  768, 3216, 3216,
2897      3216,  768, 1291, 1291, 1291, 1291, 3216, 3216, 1291, 1291,
2898      1307, 1307, 1307, 1307, 3216, 3216, 1307, 1307,  794,  794,
2899       794, 3216, 3216, 3216,  794,  804,  804,  804, 3216, 3216,
2900      3216,  804,  809,  809,  809,  809, 3216,  809, 3216,  809,
2901
2902      1339, 1339, 1339, 1339, 3216, 3216, 1339, 1339,  815,  815,
2903       815,  815, 3216,  815, 3216,  815,  823,  823,  823, 3216,
2904      3216, 3216,  823,  830,  830,  830, 3216, 3216, 3216,  830,
2905      1371, 1371, 1371, 1371, 3216, 3216, 1371, 1371,  837,  837,
2906       837,  837, 3216,  837, 3216,  837, 1379, 1379, 1379, 1379,
2907      3216, 3216, 1379, 1379, 1387, 1387, 1387, 1387, 3216, 3216,
2908      1387, 1387, 1397, 1397, 1397, 1397, 3216, 3216, 1397, 1397,
2909       853,  853,  853,  853, 3216,  853, 3216,  853, 1406, 1406,
2910      1406, 1406, 3216, 3216, 1406, 1406, 1412, 1412, 1412, 1412,
2911      3216, 3216, 1412, 1412, 1107, 1107, 1107, 1107, 1107, 1107,
2912
2913      1107, 1107, 1107, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
2914      1632, 1632, 1122, 1122, 1122, 1122, 3216, 3216, 1122, 1122,
2915       684,  684,  684, 3216, 3216, 3216,  684,  692,  692,  692,
2916      3216, 3216, 3216,  692, 1190, 1190, 1190, 1190, 3216, 3216,
2917      1190, 1190, 1219, 1219, 1219, 1219, 3216, 3216, 1219, 1219,
2918      1242, 1242, 1242, 1242, 3216, 3216, 1242, 1242,  753,  753,
2919       753, 3216, 3216, 3216,  753, 1267, 1267, 1267, 1267, 3216,
2920      3216, 1267, 1267,  768,  768,  768, 3216, 3216, 3216,  768,
2921      2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2837,
2922      2837, 2837, 2837, 2837, 2837, 2837, 2837, 2837, 2894, 2894,
2923
2924      2894, 2894, 2894, 2894, 2894, 2894, 2894, 2897, 2897, 2897,
2925      2897, 2897, 2897, 2897, 2897, 2897, 2935, 2935, 2935, 2935,
2926      2935, 2935, 2935, 2935, 2935, 2937, 2937, 2937, 2937, 2937,
2927      2937, 2937, 2937, 2937,  249, 3216, 3216, 3216, 3216, 3216,
2928      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
2929      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
2930      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
2931      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
2932      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
2933      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
2934
2935      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216
2936     } ;
2937
2938 static yyconst flex_int16_t yy_chk[11810] =
2939     {   0,
2940         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2941         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2942         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2943         8,    8,    8,  254,   11,   13,   13,   12,   14,   14,
2944        13,   13,  303,   14,   14,  255,    8,   17,   17,  254,
2945        13,   15,   15,   14,   15,  258,   15,   16,   16,  357,
2946        16,  255,   16,   18,   18, 1503,   15,   19,   19,   19,
2947       522,  258,   16,   20,   20,   20,   23,   23,   23,   24,
2948        24,   24,  522,   19,   25,   25,   25,  357, 1504,   20,
2949       364,   17,   23, 1033,  303,   24,  252,  252,  252, 1033,
2950
2951        25,  253,  253,  253,  257,  257,  257,   18,   21,   21,
2952        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2953        21,   21,   21,  287,   21,   21,   21,   21,   21,   26,
2954        26,   26,   27,   27,   27,   28,   28,   28,  287,   29,
2955        29,   29,   30,   30,   30,   26,  364,  429,   27,  281,
2956       429,   28,  659,   21,   21,   29,  297,  276,   30,   31,
2957        31,   31,  278,  278,  278,  281,  285,  285,  285,  294,
2958       294,  294,  297,  276,  328,   31,  659,   21,   22,   22,
2959        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2960        22,   22,   22, 1505,   22,   22,   22,   22,   22,   32,
2961
2962        32,   32,   33,   33,   33,   34,   34,   34,  268,   35,
2963        35,   35,   36,   36,   36,   32,  276,  356,   33,  453,
2964       715,   34,  453,   22,   22,   35,  328,  356,   36,   37,
2965        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
2966        40,   41,   41,   41,  715,   37,  534,   22,   38,  308,
2967       268,   39,  449,  534,   40,  356,  268,   41,   42,   42,
2968        42,  268,  301,  301,  301,  308,  268,  305,  305,  305,
2969       316,  316,  316,  449,   42,   43,   43,   43,   43,   43,
2970        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2971       325,   43,   43,   43,   43,   43,   45,   45,   45,   46,
2972
2973        46,   46,   47,   47,   47,  325,   48,   48,   48,   49,
2974        49,   49,   45,  468,  647,   46,  468,  647,   47,  323,
2975        43,   43,   48,  323,  329,   49,  289,  323,   43,   44,
2976        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2977        44,   44,   44,   44,  319,   44,   44,   44,   44,   44,
2978        50,   50,   50,   51,   51,   51,   52,   52,   52,  454,
2979       319,  624,   55,   55,  548,  289,   50,   55,  290,   51,
2980      1506,  548,   52,  454,   44,   44,  329,   55,  289,  330,
2981       289,  688,   44,   53,   53,   53,   53,   53,   53,   53,
2982        53,   53,   53,   53,   53,   53,   53,   53,  624,   53,
2983
2984        53,   53,   53,   53, 1507,  335,   55,  290,   59,   59,
2985        59,   60,   60,   60,   61,   61,   61,  688,   56,   56,
2986       290,  335,  290,   56,   59,  313,  666,   60,   53,   53,
2987        61,  330,  313,   56,  664, 1508,   53,  377,  664,   53,
2988       666,  313,  327,  327,  327, 1509,   53,   54,   54,   54,
2989        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2990        54,   54,   56,   54,   54,   54,   54,   54,   62,   62,
2991        62,   63,   63,   63,   64,   64,   64,  670,   65,   65,
2992        65,   66,   66,   66,   62,  347,  369,   63,  359,  377,
2993        64,  670,   54,   54,   65, 1514,  755,   66,  359,  755,
2994
2995        54,  347,  369,   54,  332,  332,  332,  341,  341,  341,
2996        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2997        57,   57,   57,   57,   57,   57,  359,   57,   57,   57,
2998        57,   57,   69,   69,   69,   70,   70,   70,   73,   73,
2999        73,  718,   74,   74,   74,   75,   75,   75,   69, 1515,
3000       383,   70,  342,  396,   73,  718,   57,   57,   74,  342,
3001       604,   75,  344,  344,  344,   57,  383,   57,  342,  396,
3002       525,   57,  352,  352,  352,  604,   57,   57,   58,   58,
3003        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3004        58,   58,   58,  361,   58,   58,   58,   58,   58,   76,
3005
3006        76,   76,   77,   77,   77,   78,   78,   78,  378,   79,
3007        79,   79,   80,   80,   80,   76,  355, 1522,   77,  525,
3008       407,   78,  361,   58,   58,   79,  355,  361,   80,  366,
3009       366,  366,   58,  355,   58,  361,  407,  361,   58,  376,
3010       376,  376,  390,   58,   58,   67,   67,   67,   67,   67,
3011        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
3012       378,   67,   67,   67,   67,   67,   81,   81,   81,   82,
3013        82,   82,   83,   83,   83,  725,   84,   84,   84,   85,
3014        85,   85,   81, 1140, 1524,   82,  638,  721,   83,  725,
3015        67,   67,   84, 1525,  390,   85, 1140,   67,  380,  380,
3016
3017       380,  638,  391,   67,  389,  389,  389,  393,  393,  393,
3018       526,  721,   67,   68,   68,   68,   68,   68,   68,   68,
3019        68,   68,   68,   68,   68,   68,   68,   68,  722,   68,
3020        68,   68,   68,   68,   86,   86,   86,   87,   87,   87,
3021        88,   88,   88, 1531,   89,   89,   89,   90,   90,   90,
3022        86, 1532,  722,   87,  391,  727,   88,  402,   68,   68,
3023        89, 1536,  526,   90,  402,   68,  401,  401,  401,  727,
3024      1538,   68,  552,  402,  404,  404,  404,  412,  412,  412,
3025        68,   71,   71,   71,   71,   71,   71,   71,   71,   71,
3026        71,   71,   71,   71,   71,   71, 1539,   71,   71,   71,
3027
3028        71,   71,   91,   91,   91,   92,   92,   92,   93,   93,
3029        93, 1546,   94,   94,   94,   95,   95,   95,   91,  418,
3030       552,   92,  413, 1547,   93,  625,   71,   71,   94,  413,
3031      1548,   95,  415,  415,  415,  418,  427,   71,  413,  426,
3032       426,  426,  431,  431,  431, 1549,   71,   72,   72,   72,
3033        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
3034        72,   72,  575,   72,   72,   72,   72,   72,   96,   96,
3035        96,   97,   97,   97,   98,   98,   98,  625,   99,   99,
3036        99,  100,  100,  100,   96,  427,  434,   97,  427,  723,
3037        98, 1550,   72,   72,   99,  446, 1551,  100,  101,  101,
3038
3039       101, 1561,  434,   72,  102,  102,  102,  440,  440,  440,
3040       575,  446,   72,  723,  101,  443,  443,  443,  362, 1563,
3041       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3042       103,  103,  103,  103,  103,  103,  724,  103,  103,  103,
3043       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3044       107, 1564,  108,  108,  108,  588,  362,  463,  105, 1430,
3045       724,  106,  441,  455,  107, 1569,  103,  103,  108,  441,
3046       478,  103,  362,  463,  537,  455,  455,  103,  441, 1430,
3047      1571,  103,  457,  457,  457, 1573,  478,  103,  104,  104,
3048       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3049
3050       104,  104,  104,  588,  104,  104,  104,  104,  104,  109,
3051       109,  109,  110,  110,  110,  111,  111,  111,  660,  112,
3052       112,  112,  537,  458, 1574,  109,  537, 1576,  110,  660,
3053       458,  111,  660,  104,  104,  112,  473,  494,  104,  458,
3054       460,  460,  460,  473,  104,  472,  472,  472,  104,  475,
3055       475,  475,  473,  494,  104,  113,  113,  113,  113,  113,
3056       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3057      1577,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3058       116,  116,  117,  117,  117, 1578,  118,  118,  118,  488,
3059       488,  488,  115,  505,  517,  116,  489, 1587,  117, 1593,
3060
3061       113,  113,  118,  489, 1594,  113,  491,  491,  491,  505,
3062       517,  113,  489,  499,  499,  499,  502,  502,  502,  511,
3063       511,  511,  113,  114,  114,  114,  114,  114,  114,  114,
3064       114,  114,  114,  114,  114,  114,  114,  114, 1598,  114,
3065       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3066       121,  121,  121,  760,  122,  122,  122,  760,  500, 1152,
3067       119, 1600,  531,  120,  512,  500,  121, 1612,  114,  114,
3068       122,  512, 1152,  114,  500,  514,  514,  514,  531,  114,
3069       512,  524,  524,  524,  528,  528,  528,  536,  536,  536,
3070       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3071
3072       123,  123,  123,  123,  123,  123, 1613,  123,  123,  123,
3073       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3074       129, 1618,  130,  130,  130,  133,  133,  133,  125,  544,
3075       557,  126, 1621, 1622,  129,  568,  123,  123,  130, 1623,
3076      1625,  133,  541,  541,  541,  544,  557,  123,  550,  550,
3077       550,  568,  123,  124,  124,  124,  124,  124,  124,  124,
3078       124,  124,  124,  124,  124,  124,  124,  124, 1632,  124,
3079       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
3080       136,  136,  136, 1635,  137,  137,  137,  138,  138,  138,
3081       134,  580,  593,  135, 1638, 1639,  136,  609,  124,  124,
3082
3083       137, 1641, 1642,  138,  554,  554,  554,  580,  593,  124,
3084       562,  562,  562,  609,  124,  127,  127,  127,  127,  127,
3085       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3086       728,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3087       140,  140,  143,  143,  143, 1643,  144,  144,  144,  147,
3088       147,  147,  139, 1110,  728,  140,  563, 1110,  143, 1644,
3089       127,  127,  144,  563,  619,  147,  565,  565,  565,  573,
3090       573,  573,  563,  577,  577,  577,  127,  586,  586,  586,
3091       619, 1645,  127,  128,  128,  128,  128,  128,  128,  128,
3092       128,  128,  128,  128,  128,  128,  128,  128, 1646,  128,
3093
3094       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3095       152,  152,  152, 1647,  155,  155,  155,  156,  156,  156,
3096       148, 1649, 1650,  151, 1631, 1652,  152,  630,  128,  128,
3097       155, 1654, 1656,  156,  590,  590,  590,  601,  601,  601,
3098       606,  606,  606,  630,  128,  613,  613,  613,  602, 1631,
3099       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3100       131,  131,  131,  131,  131,  131, 1657,  131,  131,  131,
3101       131,  131,  159,  159,  159,  160,  160,  160,  163,  163,
3102       163,  669,  164,  164,  164,  602,  614, 1659,  159, 1661,
3103       876,  160,  669,  614,  163,  669,  131,  131,  164,  131,
3104
3105       602,  131,  614,  616,  616,  616,  876,  131,  623,  623,
3106       623,  627,  627,  627,  131, 1663, 1664,  131,  132,  132,
3107       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3108       132,  132,  132, 1665,  132,  132,  132,  132,  132,  167,
3109       167,  167,  168,  168,  168,  169,  169,  169,  672,  170,
3110       170,  170,  635,  635,  635,  167, 1666, 1667,  168,  672,
3111       636,  169,  672,  132,  132,  170,  132,  636,  132,  637,
3112       637,  637, 1669, 1678,  132, 1679,  636, 1681,  646,  646,
3113       646,  132, 1685, 1689,  132,  141,  141,  141,  141,  141,
3114       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3115
3116      1692,  141,  141,  141,  141,  141,  171,  171,  171,  172,
3117       172,  172,  173,  173,  173, 1699,  174,  174,  174,  177,
3118       177,  177,  171, 1700, 1701,  172,  665,  674,  173, 1702,
3119       141,  141,  174,  665,  674,  177,  141,  646,  676,  665,
3120       674,  141,  879,  879,  879, 1704,  879, 1707, 1708,  676,
3121      1709, 1712,  676,  141,  142,  142,  142,  142,  142,  142,
3122       142,  142,  142,  142,  142,  142,  142,  142,  142, 1719,
3123       142,  142,  142,  142,  142,  178,  178,  178,  179,  179,
3124       179,  180,  180,  180, 1731,  181,  181,  181,  182,  182,
3125       182,  178, 1732, 1740,  179,  677,  678,  180, 1185,  142,
3126
3127       142,  181,  677,  678,  182,  142,  702,  726,  677,  678,
3128       142, 1185, 1743,  702, 1125, 1125, 1125, 1748,  726,  702,
3129      1752,  726,  142,  145,  145,  145,  145,  145,  145,  145,
3130       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3131       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3132       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3133       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3134       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3135       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3136       145,  145,  145,  145,  145,  145,  145,  149,  149,  149,
3137
3138       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3139       149,  149, 1759,  149,  149,  149,  149,  149,  183,  183,
3140       183,  184,  184,  184,  187,  187,  187, 1760,  188,  188,
3141       188,  189,  189,  189,  183, 1005, 1761,  184, 1762, 1771,
3142       187, 1775,  149,  149,  188, 1005,  149,  189,  891,  891,
3143       891, 1778, 1005,  149, 1780, 1782,  149,  912,  912,  912,
3144       149, 1783,  149,  149,  150,  150,  150,  150,  150,  150,
3145       150,  150,  150,  150,  150,  150,  150,  150,  150, 1785,
3146       150,  150,  150,  150,  150,  190,  190,  190,  191,  191,
3147       191,  192,  192,  192, 1786,  193,  193,  193,  194,  194,
3148
3149       194,  190, 1787, 1790,  191, 1792, 1794,  192, 1799,  150,
3150       150,  193,  891,  150,  194,  924,  924,  924, 1805,  924,
3151       150,  912,  924,  150, 1147, 1147, 1147,  150, 1809,  150,
3152       150,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3153       153,  153,  153,  153,  153,  153, 1810,  153,  153,  153,
3154       153,  153,  197,  197,  197,  198,  198,  198,  201,  201,
3155       201, 1811,  202,  202,  202,  686,  686,  686,  197, 1813,
3156      1825,  198, 1821, 1828,  201, 1829,  153,  153,  202,  153,
3157       153,  153,  686, 1830,  932,  932,  932,  153,  932, 1821,
3158       153,  932, 1832, 1833,  153, 1822, 1835,  153,  154,  154,
3159
3160       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3161       154,  154,  154, 1836,  154,  154,  154,  154,  154,  203,
3162       203,  203,  204,  204,  204,  205,  205,  205, 1837,  206,
3163       206,  206,  694,  694,  694,  203, 1839, 1822,  204, 1840,
3164      1831,  205, 1841,  154,  154,  206,  154,  154,  154,  694,
3165      1845,  948,  948,  948,  154,  948, 1831,  154,  948, 1847,
3166      1850,  154, 1823, 1851,  154,  157,  157,  157,  157,  157,
3167       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3168      1852,  157,  157,  157,  157,  157,  207,  207,  207,  208,
3169       208,  208,  211,  211,  211, 1823,  212,  212,  212,  711,
3170
3171       711,  711,  207, 1853, 1855,  208, 1857, 1858,  211, 1860,
3172       157,  157,  212, 1862, 1865,  157,  711, 1446, 1446, 1446,
3173      1866,  157,  158,  158,  158,  158,  158,  158,  158,  158,
3174       158,  158,  158,  158,  158,  158,  158, 1868,  158,  158,
3175       158,  158,  158,  213,  213,  213,  214,  214,  214,  215,
3176       215,  215, 1867,  216,  216,  216,  732,  732,  732,  213,
3177      1867, 1869,  214, 1446, 1870,  215, 1872,  158,  158,  216,
3178      1878, 1879,  158,  732, 1448, 1448, 1448, 1881,  158,  161,
3179       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
3180       161,  161,  161,  161, 1884,  161,  161,  161,  161,  161,
3181
3182       217,  217,  217,  218,  218,  218,  221,  221,  221, 1871,
3183       222,  222,  222,  223,  223,  223,  217, 1871, 1880,  218,
3184      1448, 1885,  221, 1900,  161,  161,  222, 1901,  161,  223,
3185       952,  952,  952, 1906, 1880,  161, 1907, 1885,  161,  162,
3186       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
3187       162,  162,  162,  162, 1908,  162,  162,  162,  162,  162,
3188       224,  224,  224,  225,  225,  225,  226,  226,  226, 1912,
3189       227,  227,  227,  228,  228,  228,  224, 1886, 1914,  225,
3190      1920, 1927,  226, 1928,  162,  162,  227, 1929,  162,  228,
3191       959,  959,  959, 1886,  952,  162, 1942, 1948,  162,  165,
3192
3193       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
3194       165,  165,  165,  165, 1952,  165,  165,  165,  165,  165,
3195       231,  231,  231,  232,  232,  232,  235,  235,  235, 1955,
3196       236,  236,  236,  237,  237,  237,  231, 1957, 1960,  232,
3197      1962, 1964,  235, 1965,  165,  165,  236, 1966,  165,  237,
3198      1451, 1451, 1451, 1969,  959,  165, 1971, 1976,  165, 1454,
3199      1454, 1454, 1464, 1464, 1464,  165,  166,  166,  166,  166,
3200       166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
3201       166, 1978,  166,  166,  166,  166,  166,  238,  238,  238,
3202       239,  239,  239,  240,  240,  240, 1986,  241,  241,  241,
3203
3204       242,  242,  242,  238, 1987, 1988,  239, 1989, 1991,  240,
3205       354,  166,  166,  241, 2004,  166,  242,  966,  966,  966,
3206       354,  966,  166, 2005,  966,  166, 1489, 1489, 1489, 1501,
3207      1501, 1501,  166,  175,  175,  175,  175,  175,  175,  175,
3208       175,  175,  175,  175,  175,  175,  175,  175,  354,  175,
3209       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3210      2004, 2003,  354,  739,  739,  739,  354,  973,  973,  973,
3211       245,  973, 2010,  246,  973, 1501,  288, 2011,  175,  175,
3212       739,  744,  744,  744,  175,  353,  288, 2012, 2013,  978,
3213       978,  978, 2003,  978,  360,  353,  978, 2017,  744,  175,
3214
3215       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3216       176,  176,  176,  176,  176,  288,  176,  176,  176,  176,
3217       176,  288,  360,  353,  756,  756,  756, 2019,  288,  353,
3218      2020, 2021,  288,  353, 2026,  764,  764,  764,  360,  353,
3219       353,  756,  765,  765,  765,  176,  176,  771,  771,  771,
3220      2002,  176,  764,  990,  990,  990, 2002,  990, 2033,  765,
3221       990, 1502, 1502, 1502,  771, 2035,  176,  185,  185,  185,
3222       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3223       185,  185, 2036,  185,  185,  185,  185,  185,  773,  773,
3224       773,  785,  785,  785,  786,  786,  786,  798,  798,  798,
3225
3226       806,  806,  806, 2039, 2042,  773, 2046, 1502,  785, 2047,
3227      2048,  786,  185,  185,  798, 2049, 2050,  806,  185, 2051,
3228      2052,  185,  999,  999,  999, 2053,  999, 2054, 2055,  999,
3229      1589, 1589, 1589,  185,  186,  186,  186,  186,  186,  186,
3230       186,  186,  186,  186,  186,  186,  186,  186,  186, 2060,
3231       186,  186,  186,  186,  186,  811,  811,  811,  817,  817,
3232       817,  839,  839,  839,  867,  867,  867,  871,  871,  871,
3233      2061, 2062,  811, 2063, 2081,  817, 1589, 2082,  839,  186,
3234       186,  867, 2085, 2086,  871,  186, 2083, 2084,  186, 1001,
3235      1001, 1001, 2088, 1001, 2083, 2084, 1001, 1648, 1648, 1648,
3236
3237       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3238       195,  195,  195,  195,  195,  195, 2092,  195,  195,  195,
3239       195,  195,  889,  889,  889,  890,  890,  890, 2098, 2099,
3240       920,  920,  920,  921,  921,  921,  923,  923,  923, 2100,
3241       889, 2114, 2118,  890, 2119, 2120,  195,  195,  920, 2122,
3242      2126,  921,  195,  923, 1651, 1651, 1651,  195,  196,  196,
3243       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3244       196,  196,  196, 2129,  196,  196,  196,  196,  196,  927,
3245       927,  927, 2130,  890,  928,  928,  928, 2133,  931,  931,
3246       931, 2134, 2137,  921,  933,  933,  933,  927, 1653, 1653,
3247
3248      1653, 2144,  928,  196,  196,  931, 1007, 1007, 1007,  196,
3249      1007,  933, 2146, 1007,  196,  199,  199,  199,  199,  199,
3250       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
3251      2161,  199,  199,  199,  199,  199,  935,  935,  935,  939,
3252       939,  939, 2175, 2176,  945,  945,  945, 2179,  928, 2186,
3253       940,  940,  940,  935,  946,  946,  946,  939, 2187, 2131,
3254       199,  199,  945,  947,  947,  947,  199, 2131,  940, 1010,
3255      1010, 1010,  946, 1010, 2192, 2166, 1010, 1655, 1655, 1655,
3256       947,  199,  200,  200,  200,  200,  200,  200,  200,  200,
3257       200,  200,  200,  200,  200,  200,  200,  940,  200,  200,
3258
3259       200,  200,  200,  950,  950,  950,  951,  951,  951,  965,
3260       965,  965,  969,  969,  969,  972,  972,  972,  946, 2194,
3261      2206,  950, 2166, 2132,  951, 2207,  965,  200,  200, 2208,
3262       969, 2132,  972,  200, 1022, 1022, 1022, 2209, 1022, 2210,
3263      2211, 1022, 2212,  951, 1658, 1658, 1658, 2165,  200,  209,
3264       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3265       209,  209,  209,  209, 2213,  209,  209,  209,  209,  209,
3266      2214,  970,  970,  970,  975,  975,  975, 2215,  976,  976,
3267       976,  977,  977,  977,  980,  980,  980, 1694, 2222,  970,
3268      2165, 2223,  975, 1694,  209,  209,  976, 1694,  977, 2224,
3269
3270       209, 1694,  980,  209, 1024, 1024, 1024, 2226, 1024, 2236,
3271      2237, 1024, 1660, 1660, 1660,  209,  210,  210,  210,  210,
3272       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3273       210, 2238,  210,  210,  210,  210,  210,  970,  984,  984,
3274       984,  989,  989,  989,  976,  981,  981,  981,  985,  985,
3275       985,  993,  993,  993, 1695, 2239,  984, 2240,  989, 2241,
3276      1695,  210,  210,  981, 1695, 2242,  985,  210, 1695,  993,
3277       210, 1036, 1036, 1036, 2245, 1036, 1660, 2246, 1036, 1662,
3278      1662, 1662,  210,  219,  219,  219,  219,  219,  219,  219,
3279       219,  219,  219,  219,  219,  219,  219,  219, 2251,  219,
3280
3281       219,  219,  219,  219, 2252, 2258,  981,  998,  998,  998,
3282      1000, 1000, 1000,  985,  994,  994,  994, 1002, 1002, 1002,
3283      2259, 1003, 1003, 1003,  998, 1662, 2260, 1000,  219,  219,
3284      2261, 2275,  994, 2276, 2277, 1002,  219, 2278,  219, 1003,
3285      2280,  219, 1668, 1668, 1668,  219, 1670, 1670, 1670,  219,
3286       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3287       220,  220,  220,  220,  220, 2282,  220,  220,  220,  220,
3288       220, 1006, 1006, 1006, 2299,  994, 1009, 1009, 1009, 1019,
3289      1019, 1019, 1003, 1011, 1011, 1011, 2305, 2306, 1006, 1020,
3290      1020, 1020, 1670, 1009, 2311,  220,  220, 1019, 2312, 2313,
3291
3292      1011, 2316, 2319,  220, 2320,  220, 2299, 1020,  220, 1691,
3293      1691, 1691,  220, 1703, 1703, 1703,  220,  229,  229,  229,
3294       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3295       229,  229, 2321,  229,  229,  229,  229,  229, 1021, 1021,
3296      1021, 1023, 1023, 1023, 1025, 1025, 1025, 1020, 1705, 1705,
3297      1705, 1026, 1026, 1026, 2322, 1021, 2323, 2324, 1023, 2325,
3298      2326, 1025,  229,  229, 1027, 1027, 1027, 2327, 1026, 1044,
3299      1044, 1044, 2328, 1044, 2329, 2331, 1044, 2300, 1049, 1049,
3300      1049, 1027, 1049, 2332, 2334, 1049,  229,  230,  230,  230,
3301       230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
3302
3303       230,  230, 1026,  230,  230,  230,  230,  230, 1035, 1035,
3304      1035, 1030, 1030, 1030, 2300, 2333, 1027, 1028, 1028, 1028,
3305      2335, 1037, 1037, 1037, 2333, 1035, 1029, 1029, 1029, 1030,
3306      2336, 2337,  230,  230, 1028, 1031, 1031, 1031, 1037, 2338,
3307      1055, 1055, 1055, 1029, 1055, 2339, 2340, 1055, 1075, 1075,
3308      1075, 2341, 1075, 1031, 2339, 1075,  230,  233,  233,  233,
3309       233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
3310       233,  233, 1028,  233,  233,  233,  233,  233, 1029, 1040,
3311      1040, 1040, 1031, 1043, 1043, 1043, 1041, 1041, 1041, 1045,
3312      1045, 1045, 1046, 1046, 1046, 2342, 2344, 1040, 2345, 2347,
3313
3314      1043, 2352,  233,  233, 1041, 2353, 2354, 1045, 2356, 2361,
3315      1046, 2362, 2365,  233,  234,  234,  234,  234,  234,  234,
3316       234,  234,  234,  234,  234,  234,  234,  234,  234, 2371,
3317       234,  234,  234,  234,  234, 2372, 2374, 1041, 1048, 1048,
3318      1048, 2383, 2385, 1051, 1051, 1051, 1052, 1052, 1052, 1054,
3319      1054, 1054, 2388, 1046, 2390, 1048, 1706, 1706, 1706,  234,
3320       234, 1051, 2414, 2410, 1052, 2415, 1054, 1710, 1710, 1710,
3321       234,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3322       243,  243,  243,  243,  243,  243, 2409,  243,  243,  243,
3323       243,  243, 2417, 1052, 1059, 1059, 1059, 1061, 1061, 1061,
3324
3325      2410, 1060, 1060, 1060, 1062, 1062, 1062, 1063, 1063, 1063,
3326      2418, 2419, 1059, 2424, 1061, 2425,  243,  243, 2426, 1060,
3327      1706, 1062, 2411, 2427, 1063, 2428, 2409,  243, 1099, 1099,
3328      1099, 1710, 1099, 2429, 2430, 1099, 1742, 1742, 1742, 2431,
3329       243,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3330       244,  244,  244,  244,  244,  244, 1060,  244,  244,  244,
3331       244,  244, 1064, 1064, 1064, 2411, 1063, 1067, 1067, 1067,
3332      1065, 1065, 1065, 1068, 1068, 1068, 1069, 1069, 1069, 2422,
3333      1064, 1070, 1070, 1070, 1067, 2432,  244,  244, 1065, 2422,
3334      1068, 2433, 2422, 1069, 1071, 1071, 1071,  244, 1070, 1072,
3335
3336      1072, 1072, 1074, 1074, 1074, 2434, 1076, 1076, 1076, 2436,
3337       244,  286, 1071, 2437, 1077, 1077, 1077, 1072,  286, 1074,
3338      1078, 1078, 1078, 1068, 1076, 2438, 2439,  286,  286, 2440,
3339      2441, 1065, 1077, 1079, 1079, 1079, 1072, 1078, 1068, 2442,
3340      1070, 1080, 1080, 1080, 2443, 2444, 1081, 1081, 1081, 2445,
3341      1079, 1082, 1082, 1082, 2446,  286,  286,  286, 2447, 1080,
3342      2448, 2449,  286,  286, 1081, 2450,  286,  286, 1082, 1077,
3343       286, 2451,  286,  286,  286, 1083, 1083, 1083, 1084, 1084,
3344      1084, 1085, 1085, 1085, 1086, 1086, 1086, 1092, 1092, 1092,
3345      2423, 2453, 1083, 2457, 2464, 1084, 1093, 1093, 1093, 1085,
3346
3347      2423, 2465, 1086, 2423, 2469, 1092, 1096, 1096, 1096, 1097,
3348      1097, 1097, 2472, 2510, 1093, 2513, 2515, 1081, 1098, 1098,
3349      1098, 1100, 1100, 1100, 1096, 1083, 2511, 1097, 1101, 1101,
3350      1101, 1102, 1102, 1102, 2516, 1098, 1105, 1105, 1105, 1100,
3351      1083, 2517, 2510, 1103, 1103, 1103, 1101, 1103, 1102, 2520,
3352      1103, 1106, 1106, 1106, 1105, 1086, 1121, 1121, 1121, 2521,
3353      1093, 1122, 1122, 1122, 1124, 1124, 1124, 2512, 2511, 1106,
3354      1154, 1154, 1154, 1097, 1121, 1155, 1155, 1155, 2495, 1122,
3355      2523, 2524, 1124, 1156, 1156, 1156, 2526, 1154, 2495, 1101,
3356      1158, 1158, 1158, 1155, 2495, 1159, 1159, 1159, 1160, 1160,
3357
3358      1160, 1156, 1160, 2527, 2528, 1160, 2529, 2530, 1158, 2512,
3359      2532, 1124, 1159, 2533, 2534, 1106, 1163, 1163, 1163, 1165,
3360      1165, 1165, 1166, 1166, 1166, 1168, 1168, 1168, 1170, 1170,
3361      1170, 2535, 1170, 1163, 2538, 1170, 2539, 1165, 2540, 1158,
3362      1166, 2541, 2522, 1168, 1173, 1173, 1173, 1174, 1174, 1174,
3363      2496, 1174, 2525, 2542, 1174, 2522, 1175, 1175, 1175, 2543,
3364      2496, 1173, 1176, 1176, 1176, 2525, 2496, 1177, 1177, 1177,
3365      2544, 1177, 1168, 1175, 1177, 2545, 2546, 1163, 2547, 1176,
3366      1179, 1179, 1179, 1181, 1181, 1181, 1182, 1182, 1182, 1184,
3367      1184, 1184, 1187, 1187, 1187, 2548, 2549, 1179, 1189, 1189,
3368
3369      1189, 1181, 2550, 2551, 1182, 2552, 2554, 1184, 2564, 1187,
3370      1190, 1190, 1190, 1192, 1192, 1192, 1189, 1193, 1193, 1193,
3371      2565, 1193, 2566, 2570, 1193, 1197, 1197, 1197, 1190, 2588,
3372      2589, 1192, 1198, 1198, 1198, 1200, 1200, 1200, 1213, 1213,
3373      1213, 2590, 1213, 1197, 2591, 1213, 1217, 1217, 1217, 1184,
3374      1198, 2592, 2593, 1200, 1218, 1218, 1218, 1219, 1219, 1219,
3375      1192, 2603, 2605, 1217, 1221, 1221, 1221, 1223, 1223, 1223,
3376      2608, 1223, 1218, 2602, 1223, 1219, 1227, 1227, 1227, 1228,
3377      1228, 1228, 1221, 1230, 1230, 1230, 1231, 1231, 1231, 2609,
3378      1231, 2613, 2614, 1231, 1227, 2615, 2603, 1228, 1234, 1234,
3379
3380      1234, 1230, 1235, 1235, 1235, 1236, 1236, 1236, 1238, 1238,
3381      1238, 1239, 1239, 1239, 2597, 1234, 2616, 1240, 1240, 1240,
3382      1235, 2602, 2617, 1236, 2618, 1221, 1238, 2597, 1239, 1241,
3383      1241, 1241, 2619, 2598, 1240, 1242, 1242, 1242, 1244, 1244,
3384      1244, 1247, 1247, 1247, 1230, 1240, 2598, 1241, 1248, 1248,
3385      1248, 2620, 1248, 1242, 2622, 1248, 1244, 2623, 1247, 1253,
3386      1253, 1253, 1254, 1254, 1254, 1256, 1256, 1256, 1259, 1259,
3387      1259, 2624, 1260, 1260, 1260, 1238, 1260, 1253, 2625, 1260,
3388      1254, 2626, 2627, 1256, 2628, 1259, 1263, 1263, 1263, 2629,
3389      1263, 2631, 2632, 1263, 1266, 1266, 1266, 1267, 1267, 1267,
3390
3391      1269, 1269, 1269, 2633, 1244, 2634, 1274, 1274, 1274, 2635,
3392      1274, 2636, 1266, 1274, 2637, 1267, 2638, 2639, 1269, 1277,
3393      1277, 1277, 1278, 1278, 1278, 2640, 1278, 2641, 2642, 1278,
3394      1256, 1281, 1281, 1281, 2643, 2644, 1277, 1282, 1282, 1282,
3395      2645, 1282, 2651, 2655, 1282, 1290, 1290, 1290, 1281, 1291,
3396      1291, 1291, 1293, 1293, 1293, 1294, 1294, 1294, 2656, 1294,
3397      2657, 2658, 1294, 1290, 2670, 1269, 2671, 1291, 2675, 2676,
3398      1293, 1297, 1297, 1297, 2670, 1297, 2671, 2673, 1297, 1300,
3399      1300, 1300, 1301, 1301, 1301, 2677, 1301, 2673, 2678, 1301,
3400      1306, 1306, 1306, 1307, 1307, 1307, 1300, 1309, 1309, 1309,
3401
3402      1314, 1314, 1314, 2679, 1314, 2680, 2683, 1314, 1306, 2684,
3403      2685, 1307, 1317, 1317, 1317, 1309, 1318, 1318, 1318, 1293,
3404      1318, 2686, 2695, 1318, 1321, 1321, 1321, 2696, 2697, 1317,
3405      1322, 1322, 1322, 1324, 1324, 1324, 1326, 1326, 1326, 2674,
3406      1326, 2687, 1321, 1326, 2698, 1309, 2699, 2700, 1322, 2674,
3407      2701, 1324, 1329, 1329, 1329, 1330, 1330, 1330, 1332, 1332,
3408      1332, 1334, 1334, 1334, 2702, 1334, 2705, 2706, 1334, 2708,
3409      1329, 2709, 2710, 1330, 2712, 2687, 1332, 1338, 1338, 1338,
3410      1339, 1339, 1339, 2714, 1324, 1341, 1341, 1341, 2715, 1343,
3411      1343, 1343, 2716, 1343, 2719, 1338, 1343, 2720, 1339, 1349,
3412
3413      1349, 1349, 2721, 1341, 1350, 1350, 1350, 2722, 1352, 1352,
3414      1352, 1353, 1353, 1353, 1354, 1354, 1354, 1349, 1354, 2723,
3415      2726, 1354, 1350, 2727, 2734, 1332, 1352, 2735, 1353, 1355,
3416      1355, 1355, 2736, 2738, 1341, 1356, 1356, 1356, 2744, 1356,
3417      2745, 2746, 1356, 1358, 1358, 1358, 1355, 1359, 1359, 1359,
3418      2747, 1361, 1361, 1361, 1363, 1363, 1363, 2748, 1367, 1367,
3419      1367, 1358, 1834, 1834, 1834, 1359, 2749, 2750, 1352, 1361,
3420      2751, 1363, 1364, 1364, 1364, 1367, 1364, 2752, 2753, 1364,
3421      1368, 1368, 1368, 2755, 1368, 2756, 2761, 1368, 1370, 1370,
3422      1370, 1371, 1371, 1371, 1373, 1373, 1373, 1375, 1375, 1375,
3423
3424      2762, 1375, 2763, 2764, 1375, 2774, 1370, 2775, 2765, 1371,
3425      2776, 2777, 1373, 1378, 1378, 1378, 2778, 2779, 1361, 1379,
3426      1379, 1379, 1381, 1381, 1381, 1382, 1382, 1382, 1383, 1383,
3427      1383, 1378, 1383, 2780, 2781, 1383, 2785, 1379, 2786, 2787,
3428      1381, 2788, 1382, 1384, 1384, 1384, 1385, 1385, 1385, 2789,
3429      1385, 2765, 2790, 1385, 1386, 1386, 1386, 2792, 1373, 2793,
3430      1384, 1387, 1387, 1387, 2795, 1389, 1389, 1389, 1390, 1390,
3431      1390, 2796, 1386, 1391, 1391, 1391, 2797, 1391, 2798, 1387,
3432      1391, 2800, 1381, 1389, 2801, 1390, 1394, 1394, 1394, 1395,
3433      1395, 1395, 2805, 1395, 2806, 2807, 1395, 1396, 1396, 1396,
3434
3435      1397, 1397, 1397, 1394, 1399, 1399, 1399, 1401, 1401, 1401,
3436      1405, 1405, 1405, 2810, 2815, 1396, 2816, 2817, 1397, 1406,
3437      1406, 1406, 1399, 2818, 1401, 2819, 2820, 1389, 1405, 1408,
3438      1408, 1408, 1411, 1411, 1411, 2821, 2822, 1406, 1412, 1412,
3439      1412, 1414, 1414, 1414, 1415, 1415, 1415, 1408, 1415, 2823,
3440      1411, 1415, 1418, 1418, 1418, 2824, 1412, 2825, 2826, 1414,
3441      1419, 1419, 1419, 1421, 1421, 1421, 1399, 1422, 1422, 1422,
3442      1418, 1422, 2828, 2829, 1422, 1426, 1426, 1426, 1419, 2830,
3443      2831, 1421, 1427, 1427, 1427, 1429, 1429, 1429, 2834, 2838,
3444      1408, 2841, 2842, 1426, 1414, 1431, 1431, 1431, 2845, 2832,
3445
3446      1427, 2847, 2834, 1429, 1438, 1438, 1438, 1467, 1467, 1467,
3447      1469, 1469, 1469, 1431, 1431, 2848, 1470, 1470, 1470, 1496,
3448      1496, 1496, 1438, 1421, 1467, 1468, 1468, 1468, 1469, 1468,
3449      2850, 2851, 1468, 1470, 1471, 1471, 1471, 1496, 1471, 2835,
3450      2854, 1471, 1474, 1474, 1474, 2832, 1429, 1476, 1476, 1476,
3451      2835, 1476, 2855, 2856, 1476, 1479, 1479, 1479, 2857, 2858,
3452      1474, 2859, 1480, 1480, 1480, 2860, 1480, 2861, 1469, 1480,
3453      1438, 2862, 1479, 1481, 1481, 1481, 2863, 1481, 2864, 2868,
3454      1481, 1485, 1485, 1485, 2866, 1486, 1486, 1486, 2876, 1486,
3455      2878, 1474, 1486, 1488, 1488, 1488, 2866, 2880, 1485, 1491,
3456
3457      1491, 1491, 1492, 1492, 1492, 2882, 1492, 2890, 2892, 1492,
3458      2896, 1488, 1493, 1493, 1493, 2893, 1491, 1494, 1494, 1494,
3459      1510, 1510, 1510, 1511, 1511, 1511, 1512, 1512, 1512, 1493,
3460      1512, 2895, 2895, 1512, 2898, 1494, 2900, 1510, 2901, 2902,
3461      1511, 2903, 2910, 1488, 1513, 1513, 1513, 1516, 1516, 1516,
3462      1517, 1517, 1517, 1518, 1518, 1518, 2893, 1518, 2914, 2920,
3463      1518, 2909, 1513, 2894, 2922, 1516, 1494, 1517, 1519, 1519,
3464      1519, 1520, 1520, 1520, 1521, 1521, 1521, 2894, 1521, 2909,
3465      2925, 1521, 1523, 1523, 1523, 2867, 1519, 2927, 1520, 1526,
3466      1526, 1526, 1527, 1527, 1527, 2873, 1527, 2867, 2874, 1527,
3467
3468      1523, 1528, 1528, 1528, 2932, 2933, 1526, 2873, 1513, 2935,
3469      2874, 1516, 1529, 1529, 1529, 1530, 1530, 1530, 1528, 1533,
3470      1533, 1533, 2936, 1534, 1534, 1534, 2937, 1534, 1519, 1529,
3471      1534, 2939, 2940, 1530, 2919, 2913, 1533, 1535, 1535, 1535,
3472      1537, 1537, 1537, 1523, 1540, 1540, 1540, 1541, 1541, 1541,
3473      2913, 1541, 2941, 2919, 1541, 1535, 2897, 1537, 1529, 2942,
3474      2921, 1540, 1542, 1542, 1542, 2944, 1542, 2897, 2945, 1542,
3475      1545, 1545, 1545, 1552, 1552, 1552, 1553, 1553, 1553, 2921,
3476      1553, 1530, 2947, 1553, 1556, 1556, 1556, 1545, 1557, 1557,
3477      1557, 1552, 1558, 1558, 1558, 1559, 1559, 1559, 1560, 1560,
3478
3479      1560, 1556, 2924, 1535, 2948, 1557, 1562, 1562, 1562, 1558,
3480      2955, 2956, 1559, 1565, 1565, 1565, 1560, 1565, 2926, 2957,
3481      1565, 2924, 2958, 1562, 1568, 1568, 1568, 1570, 1570, 1570,
3482      1572, 1572, 1572, 1575, 1575, 1575, 2959, 2926, 1552, 1558,
3483      2960, 1568, 1579, 1579, 1579, 1570, 2963, 2964, 1572, 2965,
3484      2966, 1575, 2967, 1560, 1580, 1580, 1580, 2968, 1557, 1579,
3485      1581, 1581, 1581, 2969, 1581, 1559, 2970, 1581, 2972, 1584,
3486      1584, 1584, 1580, 1584, 2974, 2976, 1584, 1588, 1588, 1588,
3487      1590, 1590, 1590, 2977, 1590, 2979, 2990, 1590, 1579, 2991,
3488      1575, 1570, 1599, 1599, 1599, 1588, 1572, 1595, 1595, 1595,
3489
3490      2992, 1595, 2993, 2988, 1595, 1601, 1601, 1601, 2994, 2995,
3491      1599, 1580, 1602, 1602, 1602, 2988, 1602, 2999, 3000, 1602,
3492      1605, 1605, 1605, 1601, 1605, 2989, 3001, 1605, 1608, 1608,
3493      1608, 1609, 1609, 1609, 3002, 1609, 3003, 2989, 1609, 3004,
3494      1614, 1614, 1614, 1588, 1614, 3005, 1608, 1614, 1617, 1617,
3495      1617, 3006, 3009, 1599, 1619, 1619, 1619, 1620, 1620, 1620,
3496      3010, 1620, 1601, 3011, 1620, 3012, 1617, 1624, 1624, 1624,
3497      3013, 1619, 1626, 1626, 1626, 1608, 1627, 1627, 1627, 1628,
3498      1628, 1628, 1629, 1629, 1629, 1624, 1630, 1630, 1630, 1626,
3499      1633, 1633, 1633, 3014, 1627, 1617, 3015, 1628, 3016, 1629,
3500
3501      1640, 1640, 1640, 3007, 1630, 1671, 1671, 1671, 1633, 1671,
3502      3017, 3018, 1671, 1696, 1696, 1696, 1624, 3019, 1640, 1674,
3503      1674, 1674, 1675, 1675, 1675, 3020, 1675, 3021, 3007, 1675,
3504      1696, 1628, 1680, 1680, 1680, 3022, 3023, 1674, 1682, 1682,
3505      1682, 1633, 1682, 1627, 3024, 1682, 3025, 3026, 1630, 3027,
3506      1680, 3028, 1640, 1686, 1686, 1686, 3034, 1686, 1633, 3031,
3507      1686, 1690, 1690, 1690, 1693, 1693, 1693, 3035, 1693, 3036,
3508      3037, 1693, 3038, 1697, 1697, 1697, 3039, 1697, 3031, 1690,
3509      1697, 3040, 3041, 1680, 3042, 3043, 1674, 1698, 1698, 1698,
3510      1711, 1711, 1711, 1713, 1713, 1713, 1714, 1714, 1714, 3044,
3511
3512      1714, 3045, 3046, 1714, 3047, 1698, 3048, 1715, 1715, 1715,
3513      1713, 1715, 3049, 3050, 1715, 1718, 1718, 1718, 1720, 1720,
3514      1720, 3051, 1690, 1721, 1721, 1721, 3053, 1722, 1722, 1722,
3515      3052, 1722, 3054, 1718, 1722, 1720, 3055, 3056, 1698, 3057,
3516      3058, 1721, 1725, 1725, 1725, 1726, 1726, 1726, 3059, 1726,
3517      3052, 3060, 1726, 3061, 1711, 1729, 1729, 1729, 3062, 3063,
3518      1725, 3064, 1718, 1730, 1730, 1730, 3065, 1733, 1733, 1733,
3519      1721, 1733, 1729, 3066, 1733, 1736, 1736, 1736, 1737, 1737,
3520      1737, 1730, 1737, 3067, 3068, 1737, 1738, 1738, 1738, 1739,
3521      1739, 1739, 1736, 1739, 3069, 3070, 1739, 1741, 1741, 1741,
3522
3523      1744, 1744, 1744, 1738, 1744, 3074, 3075, 1744, 1725, 3076,
3524      1747, 1747, 1747, 3077, 3078, 1741, 1749, 1749, 1749, 1750,
3525      1750, 1750, 3079, 1750, 3081, 3082, 1750, 1730, 1747, 1751,
3526      1751, 1751, 3084, 1749, 1753, 1753, 1753, 3085, 1753, 3071,
3527      3087, 1753, 1756, 1756, 1756, 3071, 1751, 1757, 1757, 1757,
3528      3088, 1757, 3091, 3092, 1757, 3093, 1747, 3094, 3096, 1756,
3529      1758, 1758, 1758, 1763, 1763, 1763, 1764, 1764, 1764, 1765,
3530      1765, 1765, 1766, 1766, 1766, 3098, 1766, 1758, 3100, 1766,
3531      1763, 1767, 1767, 1767, 1764, 3102, 1765, 1768, 1768, 1768,
3532      1769, 1769, 1769, 1770, 1770, 1770, 3104, 3105, 1767, 1772,
3533
3534      1772, 1772, 3106, 3107, 1768, 3108, 3109, 1769, 1773, 1773,
3535      1773, 1770, 1773, 3110, 3090, 1773, 1772, 1774, 1774, 1774,
3536      1776, 1776, 1776, 1777, 1777, 1777, 3111, 1777, 3090, 3113,
3537      1777, 3115, 1764, 3117, 1774, 3118, 3119, 1776, 1779, 1779,
3538      1779, 1781, 1781, 1781, 3120, 1768, 1784, 1784, 1784, 1788,
3539      1788, 1788, 3121, 1770, 3133, 3122, 1779, 3179, 3143, 1781,
3540      1500, 1789, 1789, 1789, 1784, 1789, 1788, 1499, 1789, 1791,
3541      1791, 1791, 1793, 1793, 1793, 3134, 1795, 1795, 1795, 1796,
3542      1796, 1796, 1797, 1797, 1797, 3135, 3179, 1791, 3121, 3135,
3543      1793, 3122, 1781, 1795, 1784, 3143, 1796, 3129, 3133, 1797,
3544
3545      1798, 1798, 1798, 1800, 1800, 1800, 1801, 1801, 1801, 1802,
3546      1802, 1802, 1803, 1803, 1803, 1804, 1804, 1804, 1798, 3134,
3547      3137, 1800, 3145, 1793, 1801, 3144, 1802, 3130, 3137, 1803,
3548      1806, 1806, 1806, 1804, 1806, 3131, 3132, 1806, 1812, 1812,
3549      1812, 1814, 1814, 1814, 3136, 3129, 1797, 3138, 3136, 1800,
3550      1815, 1815, 1815, 1498, 1815, 3138, 1812, 1815, 1814, 1816,
3551      1816, 1816, 3144, 3145, 1817, 1817, 1817, 1798, 1818, 1818,
3552      1818, 1801, 1819, 1819, 1819, 3130, 1819, 1816, 1495, 1819,
3553      1804, 1490, 1817, 3131, 3132, 1818, 1820, 1820, 1820, 1812,
3554      1826, 1826, 1826, 1827, 1827, 1827, 1838, 1838, 1838, 1842,
3555
3556      1842, 1842, 1487, 1484, 1820, 1475, 3141, 1826, 1843, 1843,
3557      1843, 1827, 1844, 1844, 1844, 1846, 1846, 1846, 1816, 1817,
3558      1848, 1848, 1848, 1849, 1849, 1849, 1854, 1854, 1854, 1856,
3559      1856, 1856, 1859, 1859, 1859, 1861, 1861, 1861, 1863, 1863,
3560      1863, 1864, 1864, 1864, 1873, 1873, 1873, 1856, 1873, 3139,
3561      1859, 1873, 1861, 3141, 1827, 3146, 1863, 3139, 1864, 1876,
3562      1876, 1876, 1473, 1877, 1877, 1877, 1882, 1882, 1882, 1883,
3563      1883, 1883, 1887, 1887, 1887, 3142, 3140, 1876, 3155, 1856,
3564      1877, 1888, 1888, 1888, 3140, 1888, 1472, 3155, 1888, 1887,
3565      1891, 1891, 1891, 1892, 1892, 1892, 3146, 1863, 1893, 1893,
3566
3567      1893, 1466, 1894, 1894, 1894, 1876, 1894, 3147, 1891, 1894,
3568      1892, 1895, 1895, 1895, 3149, 1893, 1896, 1896, 1896, 1897,
3569      1897, 1897, 3142, 1898, 1898, 1898, 3156, 1898, 3151, 1895,
3570      1898, 1899, 1899, 1899, 1896, 3156, 1897, 1902, 1902, 1902,
3571      3152, 1902, 3147, 1891, 1902, 1465, 1905, 1905, 1905, 1899,
3572      1905, 3148, 1463, 1905, 1909, 1909, 1909, 1911, 1911, 1911,
3573      3149, 1913, 1913, 1913, 1895, 3151, 1915, 1915, 1915, 3157,
3574      1915, 3150, 1909, 1915, 1918, 1918, 1918, 3152, 1899, 1913,
3575      1919, 1919, 1919, 1462, 1919, 3158, 3148, 1919, 1921, 1921,
3576      1921, 1918, 1921, 3153, 3154, 1921, 1924, 1924, 1924, 1925,
3577
3578      1925, 1925, 3159, 1925, 3157, 3171, 1925, 1926, 1926, 1926,
3579      1930, 1930, 1930, 1924, 1931, 1931, 1931, 3150, 1931, 1913,
3580      3158, 1931, 3161, 3162, 1926, 3153, 3154, 1930, 1932, 1932,
3581      1932, 1933, 1933, 1933, 3189, 1933, 3159, 3165, 1933, 1936,
3582      1936, 1936, 3171, 1937, 1937, 1937, 1932, 1937, 3160, 1461,
3583      1937, 1938, 1938, 1938, 3169, 1460, 1936, 1939, 1939, 1939,
3584      1940, 1940, 1940, 3169, 1940, 3161, 3162, 1940, 1938, 1941,
3585      1941, 1941, 3165, 3163, 1939, 3164, 1943, 1943, 1943, 1932,
3586      1943, 3189, 3160, 1943, 1946, 1946, 1946, 1941, 1947, 1947,
3587      1947, 3166, 1947, 3170, 1459, 1947, 1949, 1949, 1949, 3195,
3588
3589      1949, 1946, 3170, 1949, 1953, 1953, 1953, 1956, 1956, 1956,
3590      1958, 1958, 1958, 1959, 1959, 1959, 1961, 1961, 1961, 3163,
3591      1941, 3164, 1953, 3167, 3172, 1956, 3166, 1958, 1963, 1963,
3592      1963, 1959, 1963, 1961, 3195, 1963, 1967, 1967, 1967, 1970,
3593      1970, 1970, 1972, 1972, 1972, 1973, 1973, 1973, 1458, 1973,
3594      3175, 3181, 1973, 3173, 1967, 3176, 3167, 1970, 3174, 1972,
3595      3181, 3172, 1961, 1974, 1974, 1974, 1975, 1975, 1975, 1457,
3596      1975, 1956, 1456, 1975, 1959, 1977, 1977, 1977, 3168, 3183,
3597      1974, 1979, 1979, 1979, 1980, 1980, 1980, 1981, 1981, 1981,
3598      1982, 1982, 1982, 1977, 1982, 3173, 3175, 1982, 3177, 1979,
3599
3600      3174, 3176, 1980, 3180, 1981, 1983, 1983, 1983, 1984, 1984,
3601      1984, 3168, 1984, 3183, 3178, 1984, 1985, 1985, 1985, 1990,
3602      1990, 1990, 1983, 3185, 1992, 1992, 1992, 3182, 1992, 3190,
3603      1979, 1992, 3180, 3184, 1985, 3177, 3182, 1990, 1995, 1995,
3604      1995, 1977, 1996, 1996, 1996, 3191, 1997, 1997, 1997, 1980,
3605      1997, 3178, 1455, 1997, 1453, 1452, 1995, 2000, 2000, 2000,
3606      1996, 2006, 2006, 2006, 2007, 2007, 2007, 3184, 2007, 3185,
3607      3203, 2007, 2008, 2008, 2008, 2000, 3190, 1450, 2006, 3203,
3608      3187, 1985, 3191, 3212, 1990, 2009, 2009, 2009, 3187, 1995,
3609      2008, 2014, 2014, 2014, 3212, 1996, 2015, 2015, 2015, 2016,
3610
3611      2016, 2016, 2018, 2018, 2018, 2022, 2022, 2022, 2023, 2023,
3612      2023, 2024, 2024, 2024, 2025, 2025, 2025, 2027, 2027, 2027,
3613      2028, 2028, 2028, 2029, 2029, 2029, 2030, 2030, 2030, 2031,
3614      2031, 2031, 2032, 2032, 2032, 3186, 2008, 2034, 2034, 2034,
3615      2037, 2037, 2037, 3204, 2040, 2040, 2040, 2041, 2041, 2041,
3616      3192, 2041, 3204, 1449, 2041, 2034, 1447, 3196, 2037, 3211,
3617      2025, 2040, 2043, 2043, 2043, 2044, 2044, 2044, 2045, 2045,
3618      2045, 3188, 2045, 3211, 3193, 2045, 2056, 2056, 2056, 3188,
3619      2043, 3186, 2044, 2057, 2057, 2057, 3197, 3192, 2034, 2058,
3620      2058, 2058, 3196, 2058, 2056, 1445, 2058, 2059, 2059, 2059,
3621
3622      2057, 2064, 2064, 2064, 2065, 2065, 2065, 2066, 2066, 2066,
3623      2067, 2067, 2067, 1444, 2067, 3193, 3207, 2067, 2068, 2068,
3624      2068, 2069, 2069, 2069, 2066, 2056, 2070, 2070, 2070, 3201,
3625      2070, 3198, 3197, 2070, 1443, 1442, 2068, 3208, 2069, 2071,
3626      2071, 2071, 3194, 2071, 1441, 3199, 2071, 2074, 2074, 2074,
3627      2065, 1440, 2075, 2075, 2075, 2077, 2077, 2077, 1439, 2077,
3628      3200, 3201, 2077, 1437, 3207, 2074, 2080, 2080, 2080, 2068,
3629      2075, 2087, 2087, 2087, 2089, 2089, 2089, 3198, 2089, 1436,
3630      1435, 2089, 3199, 3194, 2080, 3208, 2093, 2093, 2093, 2087,
3631      2093, 3202, 1434, 2093, 2096, 2096, 2096, 3200, 2074, 2097,
3632
3633      2097, 2097, 1425, 2097, 3205, 3206, 2097, 1410, 2101, 2101,
3634      2101, 2096, 2101, 1409, 1404, 2101, 2104, 2104, 2104, 2080,
3635      2105, 2105, 2105, 3202, 2105, 1403, 2087, 2105, 2108, 2108,
3636      2108, 2109, 2109, 2109, 2104, 2109, 3205, 3206, 2109, 2110,
3637      2110, 2110, 3209, 2110, 1402, 2108, 2110, 2113, 2113, 2113,
3638      2115, 2115, 2115, 1400, 2115, 1393, 1392, 2115, 2121, 2121,
3639      2121, 2123, 2123, 2123, 1374, 2113, 2124, 2124, 2124, 1369,
3640      2124, 1366, 1365, 2124, 3209, 3210, 2121, 1362, 2123, 1357,
3641      2104, 2125, 2125, 2125, 2127, 2127, 2127, 2128, 2128, 2128,
3642      1348, 2128, 1347, 1346, 2128, 1342, 2135, 2135, 2135, 2125,
3643
3644      1337, 2127, 2138, 2138, 2138, 1333, 2138, 3210, 1325, 2138,
3645      2145, 2145, 2145, 2113, 2135, 2141, 2141, 2141, 1320, 2141,
3646      1319, 1313, 2141, 1312, 2147, 2147, 2147, 1311, 2145, 2148,
3647      2148, 2148, 2149, 2149, 2149, 1310, 2149, 1305, 1304, 2149,
3648      1303, 2125, 2147, 1302, 2152, 2152, 2152, 2148, 2152, 1289,
3649      1288, 2152, 2155, 2155, 2155, 1287, 2156, 2156, 2156, 1286,
3650      1285, 2145, 2157, 2157, 2157, 2148, 2158, 2158, 2158, 1284,
3651      2155, 1283, 2155, 2156, 2159, 2159, 2159, 1273, 1272, 2157,
3652      2160, 2160, 2160, 2158, 2162, 2162, 2162, 2163, 2163, 2163,
3653      2147, 2159, 2164, 2164, 2164, 2167, 2167, 2167, 2160, 2168,
3654
3655      2168, 2168, 2162, 2168, 1271, 2163, 2168, 2171, 2171, 2171,
3656      2164, 1270, 1258, 2157, 2172, 2172, 2172, 2173, 2173, 2173,
3657      2174, 2174, 2174, 1257, 1252, 2171, 2177, 2177, 2177, 1251,
3658      2158, 1246, 1245, 2159, 2178, 2178, 2178, 2180, 2180, 2180,
3659      2181, 2181, 2181, 1226, 2162, 2160, 2182, 2182, 2182, 2183,
3660      2183, 2183, 2184, 2184, 2184, 2185, 2185, 2185, 2188, 2188,
3661      2188, 2189, 2189, 2189, 1222, 1216, 2171, 2190, 2190, 2190,
3662      2191, 2191, 2191, 2193, 2193, 2193, 2196, 2196, 2196, 2197,
3663      2197, 2197, 1212, 2197, 1211, 1210, 2197, 2200, 2200, 2200,
3664      1209, 2193, 1208, 2196, 2201, 2201, 2201, 1207, 2203, 2203,
3665
3666      2203, 1206, 2203, 1205, 2200, 2203, 2216, 2216, 2216, 2217,
3667      2217, 2217, 2201, 2217, 2218, 2218, 2217, 2218, 1204, 2219,
3668      2219, 1203, 2219, 1202, 2216, 2218, 1201, 1196, 2218, 1188,
3669      2219, 1186, 2218, 2219, 2220, 2220, 2220, 2219, 2221, 2221,
3670      2221, 2225, 2225, 2225, 2227, 2227, 2227, 1180, 2227, 1178,
3671      1169, 2227, 1164, 2200, 2230, 2230, 2230, 2231, 2231, 2231,
3672      1153, 2231, 1151, 1150, 2231, 1149, 1148, 2216, 2234, 2234,
3673      2234, 1146, 2230, 2235, 2235, 2235, 2243, 2243, 2243, 2244,
3674      2244, 2244, 1145, 2247, 2247, 2247, 2234, 2247, 1144, 1143,
3675      2247, 2235, 2250, 2250, 2250, 1142, 1141, 2244, 1139, 1138,
3676
3677      2230, 2253, 2253, 2253, 2254, 2254, 2254, 1137, 2254, 2250,
3678      1136, 2254, 2257, 2257, 2257, 2262, 2262, 2262, 1135, 2253,
3679      2264, 2264, 2264, 1134, 2235, 2265, 2265, 2265, 1133, 2265,
3680      2257, 1132, 2265, 2262, 2268, 2268, 2268, 2264, 1131, 2244,
3681      2269, 2269, 2269, 2270, 2270, 2270, 1130, 2270, 1129, 1128,
3682      2270, 1127, 2268, 2273, 2273, 2273, 1126, 2269, 2274, 2274,
3683      2274, 2279, 2279, 2279, 2281, 2281, 2281, 2284, 2284, 2284,
3684      2273, 2283, 2283, 2283, 1120, 2274, 1119, 1118, 2279, 2285,
3685      2285, 2285, 1115, 1114, 2284, 2268, 2269, 1113, 1111, 2283,
3686      1107, 2286, 2286, 2286, 2288, 2288, 2288, 2285, 2287, 2287,
3687
3688      2287, 1104, 1095, 2289, 2289, 2289, 1094, 2289, 2273, 2286,
3689      2289, 2288, 2279, 2290, 2290, 2290, 2287, 1091, 1090, 2274,
3690      2291, 2291, 2291, 2292, 2292, 2292, 2293, 2293, 2293, 1089,
3691      2290, 2294, 2294, 2294, 1088, 2287, 1087, 2291, 1073, 2285,
3692      2292, 2295, 2295, 2295, 2293, 2296, 2296, 2296, 2298, 2298,
3693      2298, 1066, 2286, 2301, 2301, 2301, 2303, 2303, 2303, 2295,
3694      2302, 2302, 2302, 2296, 1058, 1057, 2298, 2304, 2304, 2304,
3695      1056, 2291, 1053, 1050, 2292, 2307, 2307, 2307, 2302, 2308,
3696      2308, 2308, 2309, 2309, 2309, 2310, 2310, 2310, 2314, 2314,
3697      2314, 2317, 2317, 2317, 2318, 2318, 2318, 1047, 2318, 1042,
3698
3699      1039, 2318, 2330, 2330, 2330, 1038, 2314, 2295, 2317, 1034,
3700      2298, 2343, 2343, 2343, 2346, 2346, 2346, 2348, 2348, 2348,
3701      2330, 2349, 2349, 2349, 2351, 2351, 2351, 2358, 2358, 2358,
3702      2359, 2359, 2359, 1032, 1018, 2348, 2360, 2360, 2360, 2349,
3703      1017, 1016, 2351, 1015, 2358, 1014, 2363, 2363, 2363, 2364,
3704      2364, 2364, 1013, 2364, 2360, 1012, 2364, 2366, 2366, 2366,
3705      1008, 1004, 2330, 2363, 2367, 2367, 2367, 2369, 2369, 2369,
3706      2373, 2373, 2373,  997, 2366, 2375, 2375, 2375,  996, 2377,
3707      2377, 2377, 2367, 2348,  995, 2369,  992, 2373, 2378, 2378,
3708      2378,  991, 2375, 2360, 2376, 2376, 2376, 2377, 2376,  988,
3709
3710       987, 2376, 2379, 2379, 2379, 2378, 2379,  986,  983, 2379,
3711      2380, 2380, 2380, 2381, 2381, 2381, 2382, 2382, 2382, 2387,
3712      2387, 2387, 2389, 2389, 2389,  982,  979, 2380,  974,  971,
3713      2381,  968,  967, 2382,  964,  963, 2387, 2391, 2391, 2391,
3714      2393, 2393, 2393, 2394, 2394, 2394,  962, 2394,  961,  960,
3715      2394, 2395, 2395, 2395,  958, 2391,  957, 2393, 2396, 2396,
3716      2396,  956, 2380, 2397, 2397, 2397, 2398, 2398, 2398, 2395,
3717      2398, 2381,  955, 2398, 2382,  954, 2396, 2401, 2401, 2401,
3718       953, 2397, 2402, 2402, 2402,  949, 2402,  944,  943, 2402,
3719      2403, 2403, 2403,  942, 2401, 2404, 2404, 2404, 2405, 2405,
3720
3721      2405, 2407, 2407, 2407, 2408, 2408, 2408, 2403, 2412, 2412,
3722      2412,  941, 2404, 2416, 2416, 2416, 2405, 2420, 2420, 2420,
3723       938,  937, 2408,  936,  934, 2396, 2412, 2397, 2421, 2421,
3724      2421,  930, 2421,  926, 2420, 2421, 2435, 2435, 2435, 2452,
3725      2452, 2452, 2454, 2454, 2454, 2455, 2455, 2455, 2458, 2458,
3726      2458, 2461, 2461, 2461, 2435, 2462, 2462, 2462,  925, 2462,
3727      2454,  922, 2462, 2455,  919, 2458,  918,  917, 2461, 2463,
3728      2463, 2463, 2466, 2466, 2466,  916, 2466,  915,  914, 2466,
3729      2470, 2470, 2470,  913, 2471, 2471, 2471, 2463, 2471,  911,
3730       910, 2471, 2473, 2473, 2473,  909, 2435, 2470, 2474, 2474,
3731
3732      2474, 2475, 2475, 2475,  908, 2475,  907,  906, 2475, 2473,
3733      2476, 2476, 2476, 2454,  905, 2474, 2477, 2477, 2477,  904,
3734      2477,  903,  902, 2477, 2480, 2480, 2480, 2476, 2482, 2482,
3735      2482,  901, 2482,  900,  899, 2482, 2485, 2485, 2485, 2486,
3736      2486, 2486, 2480, 2487, 2487, 2487, 2490, 2490, 2490,  898,
3737      2491, 2491, 2491, 2485, 2491,  897, 2486, 2491,  896,  895,
3738      2487,  894,  893, 2490, 2492, 2492, 2492, 2493, 2493, 2493,
3739      2494, 2494, 2494,  892, 2494,  888,  887, 2494, 2497, 2497,
3740      2497, 2492,  885,  884, 2493, 2499, 2499, 2499,  883,  882,
3741      2486, 2485, 2500, 2500, 2500,  881, 2497,  877, 2487,  875,
3742
3743      2501, 2501, 2501, 2499, 2501,  874,  873, 2501,  872,  868,
3744      2500, 2504, 2504, 2504, 2505, 2505, 2505,  864, 2505,  863,
3745       860, 2505, 2506, 2506, 2506, 2507, 2507, 2507, 2504, 2507,
3746       859,  858, 2507,  857, 2508, 2508, 2508,  856,  855, 2506,
3747      2514, 2514, 2514, 2518, 2518, 2518, 2537, 2537, 2537,  854,
3748       851, 2499, 2508, 2500, 2519, 2519, 2519,  850, 2519,  849,
3749      2518, 2519,  848,  845, 2537, 2553, 2553, 2553, 2555, 2555,
3750      2555, 2556, 2556, 2556, 2557, 2557, 2557, 2558, 2558, 2558,
3751       844, 2558,  843,  840, 2558,  838, 2555,  835, 2556,  834,
3752       833, 2557, 2559, 2559, 2559,  832, 2559, 2537,  831, 2559,
3753
3754      2562, 2562, 2562, 2567, 2567, 2567,  828, 2567,  827,  826,
3755      2567, 2571, 2571, 2571, 2606, 2606, 2606, 2556, 2562, 2572,
3756      2572, 2572,  825, 2572,  824,  821, 2572,  820, 2571,  819,
3757      2555, 2573, 2573, 2573,  818, 2573,  816,  813, 2573, 2576,
3758      2576, 2576, 2577, 2577, 2577,  812, 2577,  810,  807, 2577,
3759      2578, 2578, 2578, 2579, 2579, 2579, 2576, 2580, 2580, 2580,
3760       805, 2581, 2581, 2581,  802, 2581,  801, 2578, 2581,  800,
3761      2579, 2584, 2584, 2584, 2580, 2585, 2585, 2585,  799, 2585,
3762       797,  796, 2585, 2586, 2586, 2586,  795,  792, 2584, 2587,
3763      2587, 2587,  791, 2587,  790,  789, 2587, 2594, 2594, 2594,
3764
3765      2586, 2595, 2595, 2595,  788,  787, 2580,  782, 2578, 2596,
3766      2596, 2596,  781, 2596,  780, 2594, 2596,  779,  778, 2595,
3767      2599, 2599, 2599,  777, 2599,  776,  775, 2599, 2604, 2604,
3768      2604, 2607, 2607, 2607, 2610, 2610, 2610,  774, 2610,  772,
3769       770, 2610, 2621, 2621, 2621, 2604, 2604,  769, 2594, 2630,
3770      2630, 2630, 2646, 2646, 2646, 2647, 2647, 2647,  766, 2621,
3771      2648, 2648, 2648, 2649, 2649, 2649,  763, 2630, 2595, 2650,
3772      2650, 2650,  759, 2650,  758,  757, 2650,  754, 2648,  751,
3773      2649, 2652, 2652, 2652,  750, 2652,  749,  746, 2652, 2659,
3774      2659, 2659,  745, 2659,  741,  740, 2659,  738, 2630, 2662,
3775
3776      2662, 2662,  735, 2662,  734,  733, 2662, 2665, 2665, 2665,
3777       731, 2648, 2666, 2666, 2666, 2667, 2667, 2667,  720, 2667,
3778       719,  717, 2667,  716, 2665, 2668, 2668, 2668,  714, 2666,
3779      2669, 2669, 2669,  713, 2669,  712,  708, 2669,  707, 2672,
3780      2672, 2672, 2668, 2672,  706,  705, 2672, 2681, 2681, 2681,
3781      2682, 2682, 2682, 2688, 2688, 2688,  701,  700, 2665, 2689,
3782      2689, 2689, 2690, 2690, 2690, 2681, 2690,  699, 2682, 2690,
3783      2688, 2688, 2691, 2691, 2691,  698, 2689, 2689,  697,  696,
3784      2690, 2692, 2692, 2692, 2693, 2693, 2693, 2694, 2694, 2694,
3785      2703, 2703, 2703, 2704, 2704, 2704, 2668, 2704,  695,  693,
3786
3787      2704, 2713, 2713, 2713, 2728, 2728, 2728, 2703, 2729, 2729,
3788      2729, 2730, 2730, 2730,  690,  689, 2682,  687,  685, 2713,
3789      2731, 2731, 2731,  682, 2731,  681,  675, 2731,  673, 2730,
3790      2737, 2737, 2737, 2739, 2739, 2739, 2740, 2740, 2740,  671,
3791      2740,  668,  667, 2740, 2743, 2743, 2743, 2737,  663,  662,
3792      2739, 2758, 2758, 2758, 2760, 2760, 2760, 2766, 2766, 2766,
3793       661, 2743,  658,  657, 2767, 2767, 2767, 2713, 2767, 2758,
3794       656, 2767, 2760,  655, 2766, 2766, 2768, 2768, 2768,  652,
3795      2768,  651, 2767, 2768, 2771, 2771, 2771, 2772, 2772, 2772,
3796      2773, 2773, 2773,  650, 2768, 2782, 2782, 2782,  649, 2782,
3797
3798       648,  642, 2782,  641,  639, 2760, 2769, 2769, 2769, 2769,
3799      2769, 2769, 2769, 2769, 2769,  633,  632, 2769, 2791, 2791,
3800      2791,  628, 2769, 2769, 2769, 2769, 2769, 2802, 2802, 2802,
3801      2803, 2803, 2803, 2808, 2808, 2808, 2791, 2809, 2809, 2809,
3802       621, 2809,  617,  611, 2809, 2811, 2811, 2811, 2803,  607,
3803      2808, 2769, 2769, 2770, 2770, 2770, 2770, 2770, 2770, 2770,
3804      2770, 2770, 2811,  603, 2770, 2813, 2813, 2813,  599, 2770,
3805      2770, 2770, 2770, 2770, 2812, 2812, 2812,  598, 2812,  597,
3806       596, 2812, 2813, 2814, 2814, 2814,  595, 2814,  591,  587,
3807      2814, 2827, 2827, 2827, 2852, 2852, 2852,  584, 2770, 2770,
3808
3809      2833, 2833, 2833,  583, 2833,  582,  578, 2833,  574, 2827,
3810       571,  570, 2852, 2887, 2887, 2887,  566,  560, 2833, 2836,
3811      2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836,  559,  555,
3812      2836, 2887,  551,  547,  546, 2836, 2836, 2836, 2836, 2836,
3813      2865, 2865, 2865,  542, 2865,  539,  538, 2865, 2869, 2869,
3814      2869,  533, 2869,  529,  521, 2869, 2872, 2872, 2872,  520,
3815      2872,  519,  515, 2872, 2836, 2836, 2837, 2837, 2837, 2837,
3816      2837, 2837, 2837, 2837, 2837,  509,  508, 2837, 2899, 2899,
3817      2899,  507, 2837, 2837, 2837, 2837, 2837, 2916, 2916, 2916,
3818      2917, 2917, 2917, 2918, 2918, 2918, 2899, 2899, 2923, 2923,
3819
3820      2923, 2934, 2934, 2934, 2916,  503,  497, 2917,  496,  492,
3821      2918, 2837, 2837,  486,  485, 2923, 2938, 2938, 2938, 2934,
3822      2949, 2949, 2949, 2950, 2950, 2950,  484, 2950,  483,  482,
3823      2950, 2951, 2951, 2951, 2938,  481,  480, 2949, 2952, 2952,
3824      2952,  476, 2952,  470,  469, 2952,  467,  466, 2951, 2953,
3825      2953, 2953, 2954, 2954, 2954,  465, 2954,  461,  452, 2954,
3826      2961, 2961, 2961, 2971, 2971, 2971, 2953, 2938, 2962, 2962,
3827      2962,  451, 2962,  450,  448, 2962,  444, 2961, 2981, 2981,
3828      2981, 2971, 2981,  438,  437, 2981, 2984, 2984, 2984,  436,
3829      2984,  432,  428, 2984, 2987, 2987, 2987,  424, 2987,  423,
3830
3831      2971, 2987, 2996, 2996, 2996,  422, 2996,  421,  420, 2996,
3832      3103, 3103, 3103, 3112, 3112, 3112,  416, 3112,  410,  409,
3833      3112, 3213, 3213, 3213, 3214, 3214, 3214,  405, 3103,  399,
3834       398, 3112,  394,  387,  386,  385,  381,  374,  373, 3213,
3835       372,  371, 3214, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
3836      3217, 3217, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
3837      3218, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219,
3838      3220, 3220, 3220, 3220, 3220, 3220, 3220, 3220, 3220, 3221,
3839      3221, 3221, 3221, 3221, 3221, 3221, 3221, 3221, 3222, 3222,
3840      3222, 3222, 3222, 3222, 3222, 3222, 3222, 3223, 3223, 3223,
3841
3842      3223, 3223, 3223, 3223, 3223, 3223, 3224, 3224, 3224, 3224,
3843      3224, 3224, 3224, 3224, 3224, 3225, 3225, 3225, 3225, 3225,
3844      3225, 3225, 3225, 3225, 3226, 3226, 3226, 3226, 3226, 3226,
3845      3226, 3226, 3226, 3227, 3227, 3227, 3227, 3227, 3227, 3227,
3846      3227, 3227, 3228, 3228, 3228, 3228, 3228, 3228, 3228, 3228,
3847      3228, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229,
3848      3230, 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3230, 3231,
3849      3231, 3231, 3231, 3231, 3231, 3231, 3231, 3231, 3232, 3232,
3850      3232, 3232, 3232, 3232, 3232, 3232, 3232, 3233, 3233, 3233,
3851      3233, 3233, 3233, 3233, 3233, 3233, 3234, 3234, 3234, 3234,
3852
3853      3234, 3234, 3234, 3234, 3234, 3235, 3235, 3235, 3235, 3235,
3854      3235, 3235, 3235, 3235, 3236, 3236, 3236, 3236, 3236, 3236,
3855      3236, 3236, 3236, 3237, 3237, 3237, 3237, 3237, 3237, 3237,
3856      3237, 3237, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238,
3857      3238, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239,
3858      3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3240, 3241,
3859      3241, 3241, 3241, 3241, 3241, 3241, 3241, 3241, 3242, 3242,
3860      3242, 3242, 3242, 3242, 3242, 3242, 3242, 3243, 3243, 3243,
3861      3243, 3243, 3243, 3243, 3243, 3243, 3244, 3244, 3244, 3244,
3862      3244, 3244, 3244, 3244, 3244, 3245, 3245, 3245, 3245, 3245,
3863
3864      3245, 3245, 3245, 3245, 3246, 3246, 3246, 3246, 3246, 3246,
3865      3246, 3246, 3246, 3247, 3247, 3247, 3247, 3247, 3247, 3247,
3866      3247, 3247, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248,
3867      3248, 3249, 3249, 3249, 3249, 3249, 3249, 3249, 3249, 3249,
3868      3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3251,
3869      3251, 3251, 3251, 3251, 3251, 3251, 3251, 3251, 3252, 3252,
3870      3252, 3252, 3252, 3252, 3252, 3252, 3252, 3253, 3253, 3253,
3871      3253, 3253, 3253, 3253, 3253, 3253, 3254, 3254, 3254, 3254,
3872      3254, 3254, 3254, 3254, 3254, 3255, 3255, 3255, 3255, 3255,
3873      3255, 3255, 3255, 3255, 3256, 3256, 3256, 3256, 3256, 3256,
3874
3875      3256, 3256, 3256, 3257, 3257, 3257, 3257, 3257, 3257, 3257,
3876      3257, 3257, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258,
3877      3258, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
3878      3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3261,
3879      3261, 3261, 3261, 3261, 3261, 3261, 3261, 3261, 3262, 3262,
3880      3262, 3262, 3262, 3262, 3262, 3262, 3262, 3263, 3263, 3263,
3881      3263, 3263, 3263, 3263, 3263, 3263, 3264, 3264, 3264, 3264,
3882      3264, 3264, 3264, 3264, 3264, 3265, 3265, 3265, 3265, 3265,
3883      3265, 3265, 3265, 3265, 3266, 3266, 3266, 3266, 3266, 3266,
3884      3266, 3266, 3266, 3267, 3267, 3267, 3267, 3267, 3267, 3267,
3885
3886      3267, 3267, 3268, 3268, 3268, 3268, 3268, 3268, 3268, 3268,
3887      3268, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269,
3888      3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3271,
3889      3271, 3271, 3271, 3271, 3271, 3271, 3271, 3271, 3272, 3272,
3890      3272, 3272, 3272, 3272, 3272, 3272, 3272, 3273, 3273, 3273,
3891      3273, 3273, 3273, 3273, 3273, 3273, 3274, 3274, 3274, 3274,
3892      3274, 3274, 3274, 3274, 3274, 3275, 3275, 3275, 3275, 3275,
3893      3275, 3275, 3275, 3275, 3276, 3276, 3276,  367,  363,  358,
3894      3276, 3277, 3277, 3277,  350,  349,  345, 3277, 3278, 3278,
3895      3278,  339,  338,  337, 3278, 3279, 3279, 3279,  333,  324,
3896
3897       322, 3279, 3280, 3280, 3280,  321,  317,  314, 3280, 3281,
3898      3281, 3281,  312,  311,  310, 3281, 3282, 3282, 3282,  306,
3899       302,  299, 3282, 3283, 3283, 3283,  295,  292,  291, 3283,
3900      3284, 3284, 3284,  283,  279,  275, 3284, 3285, 3285, 3285,
3901       274,  273,  267, 3285, 3286, 3286, 3286,  266,  264,  261,
3902      3286, 3287, 3287, 3287,  249,    0,    0, 3287, 3288, 3288,
3903      3288,    0,    0,    0, 3288, 3289, 3289, 3289,    0,    0,
3904         0, 3289, 3290, 3290, 3290,    0,    0,    0, 3290, 3291,
3905      3291, 3291,    0,    0,    0, 3291, 3292, 3292, 3292,    0,
3906         0,    0, 3292, 3293, 3293, 3293,    0,    0,    0, 3293,
3907
3908      3294, 3294, 3294,    0,    0,    0, 3294, 3295, 3295, 3295,
3909         0,    0,    0, 3295, 3296, 3296, 3296,    0,    0,    0,
3910      3296, 3297, 3297, 3297,    0,    0,    0, 3297, 3298, 3298,
3911      3298,    0,    0,    0, 3298, 3299, 3299, 3299,    0,    0,
3912         0, 3299, 3300, 3300, 3300,    0,    0,    0, 3300, 3301,
3913      3301, 3301,    0,    0,    0, 3301, 3302, 3302, 3302,    0,
3914         0,    0, 3302, 3303, 3303, 3303, 3303, 3303, 3303, 3303,
3915         0, 3303, 3304, 3304, 3304,    0,    0,    0, 3304, 3305,
3916         0,    0,    0, 3305, 3306, 3306, 3306,    0,    0,    0,
3917      3306, 3307,    0,    0,    0, 3307, 3308, 3308, 3308,    0,
3918
3919         0,    0, 3308, 3309,    0,    0,    0, 3309, 3310, 3310,
3920      3310,    0,    0,    0, 3310, 3311,    0,    0,    0, 3311,
3921      3312, 3312, 3312,    0,    0,    0, 3312, 3313,    0,    0,
3922         0, 3313, 3314, 3314, 3314,    0,    0,    0, 3314, 3315,
3923         0,    0,    0, 3315, 3316, 3316, 3316,    0,    0,    0,
3924      3316, 3317,    0,    0,    0, 3317, 3318, 3318, 3318,    0,
3925         0,    0, 3318, 3319,    0,    0,    0, 3319, 3320, 3320,
3926      3320,    0,    0,    0, 3320, 3321,    0,    0,    0, 3321,
3927      3322, 3322, 3322,    0,    0,    0, 3322, 3323,    0,    0,
3928         0, 3323, 3324, 3324, 3324,    0,    0,    0, 3324, 3325,
3929
3930         0,    0,    0, 3325, 3326, 3326, 3326,    0,    0,    0,
3931      3326, 3327,    0,    0,    0, 3327, 3328, 3328, 3328,    0,
3932         0,    0, 3328, 3329,    0,    0,    0, 3329, 3330, 3330,
3933      3330,    0,    0,    0, 3330, 3331,    0,    0,    0, 3331,
3934      3332, 3332, 3332,    0,    0,    0, 3332, 3333,    0,    0,
3935         0, 3333, 3334, 3334, 3334,    0,    0,    0, 3334, 3335,
3936         0,    0,    0, 3335, 3336, 3336, 3336,    0,    0,    0,
3937      3336, 3337,    0,    0,    0, 3337, 3338, 3338, 3338,    0,
3938         0,    0, 3338, 3339,    0,    0,    0, 3339, 3340, 3340,
3939      3340,    0,    0,    0, 3340, 3341,    0,    0,    0, 3341,
3940
3941      3342, 3342, 3342,    0,    0,    0, 3342, 3343,    0,    0,
3942         0, 3343, 3344, 3344, 3344,    0,    0,    0, 3344, 3345,
3943         0,    0,    0, 3345, 3346, 3346, 3346,    0,    0,    0,
3944      3346, 3347,    0,    0,    0, 3347, 3348, 3348, 3348,    0,
3945         0,    0, 3348, 3349,    0,    0,    0, 3349, 3350, 3350,
3946      3350,    0,    0,    0, 3350, 3351,    0,    0,    0, 3351,
3947      3352, 3352, 3352,    0,    0,    0, 3352, 3353,    0,    0,
3948         0, 3353, 3354, 3354, 3354,    0,    0,    0, 3354, 3355,
3949         0,    0,    0, 3355, 3356, 3356, 3356,    0,    0,    0,
3950      3356, 3357,    0,    0,    0, 3357, 3358, 3358, 3358, 3358,
3951
3952      3358, 3358, 3358, 3358, 3358, 3359,    0,    0,    0,    0,
3953      3359, 3360, 3360, 3360,    0,    0,    0, 3360, 3361, 3361,
3954      3361, 3361,    0,    0, 3361, 3361, 3362, 3362, 3362,    0,
3955         0,    0, 3362, 3363, 3363, 3363, 3363,    0,    0, 3363,
3956      3363, 3364, 3364, 3364,    0,    0,    0, 3364, 3365, 3365,
3957      3365, 3365,    0,    0, 3365, 3365, 3366, 3366, 3366,    0,
3958         0,    0, 3366, 3367, 3367, 3367, 3367,    0,    0, 3367,
3959      3367, 3368, 3368, 3368,    0,    0,    0, 3368, 3369, 3369,
3960      3369, 3369,    0,    0, 3369, 3369, 3370, 3370, 3370,    0,
3961         0,    0, 3370, 3371, 3371, 3371, 3371,    0,    0, 3371,
3962
3963      3371, 3372, 3372, 3372,    0,    0,    0, 3372, 3373, 3373,
3964      3373, 3373,    0,    0, 3373, 3373, 3374, 3374, 3374,    0,
3965         0,    0, 3374, 3375, 3375, 3375, 3375,    0,    0, 3375,
3966      3375, 3376, 3376, 3376,    0,    0,    0, 3376, 3377, 3377,
3967      3377, 3377,    0,    0, 3377, 3377, 3378, 3378, 3378,    0,
3968         0,    0, 3378, 3379, 3379, 3379, 3379,    0,    0, 3379,
3969      3379, 3380, 3380, 3380,    0,    0,    0, 3380, 3381, 3381,
3970      3381, 3381,    0,    0, 3381, 3381, 3382, 3382, 3382,    0,
3971         0,    0, 3382, 3383, 3383, 3383, 3383,    0,    0, 3383,
3972      3383, 3384, 3384, 3384,    0,    0,    0, 3384, 3385, 3385,
3973
3974      3385, 3385,    0,    0, 3385, 3385, 3386, 3386, 3386, 3386,
3975         0, 3386,    0, 3386, 3387, 3387, 3387, 3387,    0,    0,
3976      3387, 3387, 3388, 3388, 3388,    0,    0,    0, 3388, 3389,
3977      3389, 3389, 3389,    0,    0, 3389, 3389, 3390, 3390, 3390,
3978         0,    0,    0, 3390, 3391, 3391, 3391, 3391,    0,    0,
3979      3391, 3391, 3392, 3392, 3392,    0,    0,    0, 3392, 3393,
3980      3393, 3393, 3393,    0,    0, 3393, 3393, 3394, 3394, 3394,
3981         0,    0,    0, 3394, 3395, 3395, 3395, 3395,    0,    0,
3982      3395, 3395, 3396, 3396, 3396, 3396,    0, 3396,    0, 3396,
3983      3397, 3397, 3397, 3397,    0,    0, 3397, 3397, 3398, 3398,
3984
3985      3398, 3398,    0, 3398,    0, 3398, 3399, 3399, 3399, 3399,
3986         0,    0, 3399, 3399, 3400, 3400, 3400,    0,    0,    0,
3987      3400, 3401, 3401, 3401, 3401,    0,    0, 3401, 3401, 3402,
3988      3402, 3402, 3402,    0, 3402,    0, 3402, 3403, 3403, 3403,
3989      3403,    0,    0, 3403, 3403, 3404, 3404, 3404, 3404,    0,
3990      3404,    0, 3404, 3405, 3405, 3405, 3405,    0,    0, 3405,
3991      3405, 3406, 3406, 3406,    0,    0,    0, 3406, 3407, 3407,
3992      3407, 3407,    0,    0, 3407, 3407, 3408, 3408, 3408,    0,
3993         0,    0, 3408, 3409, 3409, 3409, 3409,    0,    0, 3409,
3994      3409, 3410, 3410, 3410, 3410,    0,    0, 3410, 3410, 3411,
3995
3996      3411, 3411,    0,    0,    0, 3411, 3412, 3412, 3412, 3412,
3997         0,    0, 3412, 3412, 3413, 3413, 3413, 3413, 3413, 3413,
3998      3413, 3413, 3413, 3414,    0, 3414,    0,    0, 3414, 3415,
3999      3415, 3415,    0,    0,    0, 3415, 3416, 3416, 3416, 3416,
4000         0,    0, 3416, 3416, 3417, 3417, 3417, 3417,    0, 3417,
4001         0, 3417, 3418, 3418, 3418, 3418,    0,    0, 3418, 3418,
4002      3419, 3419, 3419, 3419,    0, 3419,    0, 3419, 3420, 3420,
4003      3420, 3420,    0,    0, 3420, 3420, 3421, 3421, 3421,    0,
4004         0,    0, 3421, 3422, 3422, 3422, 3422,    0,    0, 3422,
4005      3422, 3423, 3423, 3423,    0,    0,    0, 3423, 3424, 3424,
4006
4007      3424, 3424,    0,    0, 3424, 3424, 3425, 3425, 3425,    0,
4008         0,    0, 3425, 3426, 3426, 3426, 3426,    0,    0, 3426,
4009      3426, 3427, 3427, 3427,    0,    0,    0, 3427, 3428, 3428,
4010      3428, 3428,    0,    0, 3428, 3428, 3429, 3429, 3429,    0,
4011         0,    0, 3429, 3430, 3430, 3430, 3430,    0,    0, 3430,
4012      3430, 3431, 3431, 3431, 3431,    0, 3431,    0, 3431, 3432,
4013      3432, 3432, 3432,    0,    0, 3432, 3432, 3433, 3433, 3433,
4014      3433,    0, 3433,    0, 3433, 3434, 3434, 3434, 3434,    0,
4015         0, 3434, 3434, 3435, 3435, 3435,    0,    0,    0, 3435,
4016      3436, 3436, 3436, 3436,    0,    0, 3436, 3436, 3437, 3437,
4017
4018      3437, 3437,    0, 3437,    0, 3437, 3438, 3438, 3438, 3438,
4019         0,    0, 3438, 3438, 3439, 3439, 3439,    0,    0,    0,
4020      3439, 3440, 3440, 3440, 3440,    0,    0, 3440, 3440, 3441,
4021      3441, 3441,    0,    0,    0, 3441, 3442, 3442, 3442, 3442,
4022         0,    0, 3442, 3442, 3443, 3443, 3443,    0,    0,    0,
4023      3443, 3444, 3444, 3444, 3444,    0,    0, 3444, 3444, 3445,
4024      3445, 3445,    0,    0,    0, 3445, 3446, 3446, 3446, 3446,
4025         0,    0, 3446, 3446, 3447, 3447, 3447,    0,    0,    0,
4026      3447, 3448, 3448, 3448, 3448,    0,    0, 3448, 3448, 3449,
4027      3449, 3449,    0,    0,    0, 3449, 3450, 3450, 3450, 3450,
4028
4029         0,    0, 3450, 3450, 3451, 3451, 3451,    0,    0,    0,
4030      3451, 3452, 3452, 3452, 3452,    0,    0, 3452, 3452, 3453,
4031      3453, 3453,    0,    0,    0, 3453, 3454, 3454, 3454, 3454,
4032         0,    0, 3454, 3454, 3455, 3455, 3455,    0,    0,    0,
4033      3455, 3456, 3456, 3456, 3456,    0,    0, 3456, 3456, 3457,
4034      3457, 3457, 3457,    0,    0, 3457, 3457, 3458, 3458, 3458,
4035         0,    0,    0, 3458, 3459, 3459, 3459, 3459,    0,    0,
4036      3459, 3459, 3460, 3460, 3460,    0,    0,    0, 3460, 3461,
4037      3461, 3461, 3461,    0,    0, 3461, 3461, 3462, 3462, 3462,
4038         0,    0,    0, 3462, 3463, 3463, 3463, 3463,    0,    0,
4039
4040      3463, 3463, 3464, 3464, 3464, 3464,    0,    0, 3464, 3464,
4041      3465, 3465, 3465,    0,    0,    0, 3465, 3466, 3466, 3466,
4042      3466,    0,    0, 3466, 3466, 3467, 3467, 3467, 3467, 3467,
4043      3467, 3467, 3467, 3467, 3468, 3468, 3468, 3468, 3468, 3468,
4044      3468, 3468, 3468, 3469, 3469, 3469,    0,    0,    0, 3469,
4045      3470, 3470, 3470, 3470,    0,    0, 3470, 3470, 3471, 3471,
4046      3471, 3471,    0,    0, 3471, 3471, 3472, 3472, 3472,    0,
4047         0,    0, 3472, 3473, 3473, 3473, 3473,    0,    0, 3473,
4048      3473, 3474, 3474, 3474,    0,    0,    0, 3474, 3475, 3475,
4049      3475, 3475,    0,    0, 3475, 3475, 3476, 3476, 3476,    0,
4050
4051         0,    0, 3476, 3477, 3477, 3477, 3477,    0,    0, 3477,
4052      3477, 3478, 3478, 3478,    0,    0,    0, 3478, 3479, 3479,
4053      3479,    0,    0,    0, 3479, 3480, 3480, 3480, 3480,    0,
4054         0, 3480, 3480, 3481, 3481, 3481,    0,    0,    0, 3481,
4055      3482, 3482, 3482, 3482,    0,    0, 3482, 3482, 3483, 3483,
4056      3483, 3483,    0,    0, 3483, 3483, 3484, 3484, 3484,    0,
4057         0,    0, 3484, 3485, 3485, 3485, 3485,    0,    0, 3485,
4058      3485, 3486, 3486, 3486,    0,    0,    0, 3486, 3487, 3487,
4059      3487, 3487,    0,    0, 3487, 3487, 3488, 3488, 3488, 3488,
4060         0,    0, 3488, 3488, 3489, 3489, 3489,    0,    0,    0,
4061
4062      3489, 3490, 3490, 3490, 3490,    0,    0, 3490, 3490, 3491,
4063      3491, 3491, 3491,    0, 3491,    0, 3491, 3492, 3492, 3492,
4064      3492,    0,    0, 3492, 3492, 3493, 3493, 3493,    0,    0,
4065         0, 3493, 3494, 3494, 3494, 3494,    0,    0, 3494, 3494,
4066      3495, 3495, 3495,    0,    0,    0, 3495, 3496, 3496, 3496,
4067      3496,    0,    0, 3496, 3496, 3497, 3497, 3497,    0,    0,
4068         0, 3497, 3498, 3498, 3498, 3498,    0,    0, 3498, 3498,
4069      3499, 3499, 3499,    0,    0,    0, 3499, 3500, 3500, 3500,
4070      3500,    0,    0, 3500, 3500, 3501, 3501, 3501,    0,    0,
4071         0, 3501, 3502, 3502, 3502, 3502,    0,    0, 3502, 3502,
4072
4073      3503, 3503, 3503,    0,    0,    0, 3503, 3504, 3504, 3504,
4074      3504,    0,    0, 3504, 3504, 3505, 3505, 3505,    0,    0,
4075         0, 3505, 3506, 3506, 3506, 3506,    0,    0, 3506, 3506,
4076      3507, 3507, 3507, 3507,    0,    0, 3507, 3507, 3508, 3508,
4077      3508,    0,    0,    0, 3508, 3509, 3509, 3509, 3509,    0,
4078         0, 3509, 3509, 3510, 3510, 3510,    0,    0,    0, 3510,
4079      3511, 3511, 3511, 3511,    0,    0, 3511, 3511, 3512, 3512,
4080      3512, 3512,    0, 3512,    0, 3512, 3513, 3513, 3513, 3513,
4081         0,    0, 3513, 3513, 3514, 3514, 3514, 3514,    0,    0,
4082      3514, 3514, 3515, 3515, 3515, 3515,    0, 3515,    0, 3515,
4083
4084      3516, 3516, 3516, 3516,    0,    0, 3516, 3516, 3517, 3517,
4085      3517, 3517, 3517, 3517, 3517, 3517, 3517, 3518, 3518, 3518,
4086      3518, 3518, 3518, 3518, 3518, 3518, 3519, 3519, 3519,    0,
4087         0,    0, 3519, 3520, 3520, 3520, 3520,    0,    0, 3520,
4088      3520, 3521, 3521, 3521, 3521,    0,    0, 3521, 3521, 3522,
4089      3522, 3522,    0,    0,    0, 3522, 3523, 3523, 3523, 3523,
4090         0,    0, 3523, 3523, 3524, 3524, 3524,    0,    0,    0,
4091      3524, 3525, 3525, 3525, 3525,    0,    0, 3525, 3525, 3526,
4092      3526, 3526,    0,    0,    0, 3526, 3527, 3527, 3527, 3527,
4093         0,    0, 3527, 3527, 3528, 3528, 3528,    0,    0,    0,
4094
4095      3528, 3529, 3529, 3529,    0,    0,    0, 3529, 3530, 3530,
4096      3530, 3530,    0,    0, 3530, 3530, 3531, 3531, 3531,    0,
4097         0,    0, 3531, 3532, 3532, 3532, 3532,    0,    0, 3532,
4098      3532, 3533, 3533, 3533, 3533,    0,    0, 3533, 3533, 3534,
4099      3534, 3534, 3534,    0, 3534,    0, 3534, 3535, 3535, 3535,
4100      3535,    0,    0, 3535, 3535, 3536, 3536, 3536,    0,    0,
4101         0, 3536, 3537, 3537, 3537, 3537,    0,    0, 3537, 3537,
4102      3538, 3538, 3538, 3538,    0,    0, 3538, 3538, 3539, 3539,
4103      3539,    0,    0,    0, 3539, 3540, 3540, 3540, 3540,    0,
4104         0, 3540, 3540, 3541, 3541, 3541, 3541,    0, 3541,    0,
4105
4106      3541, 3542, 3542, 3542, 3542,    0,    0, 3542, 3542, 3543,
4107      3543, 3543,    0,    0,    0, 3543, 3544, 3544, 3544, 3544,
4108         0,    0, 3544, 3544, 3545, 3545, 3545,    0,    0,    0,
4109      3545, 3546, 3546, 3546, 3546,    0,    0, 3546, 3546, 3547,
4110      3547, 3547,    0,    0,    0, 3547, 3548, 3548, 3548, 3548,
4111         0,    0, 3548, 3548, 3549, 3549, 3549,    0,    0,    0,
4112      3549, 3550, 3550, 3550, 3550,    0,    0, 3550, 3550, 3551,
4113      3551, 3551,    0,    0,    0, 3551, 3552, 3552, 3552, 3552,
4114         0,    0, 3552, 3552, 3553, 3553, 3553, 3553,    0, 3553,
4115         0, 3553, 3554, 3554, 3554, 3554,    0,    0, 3554, 3554,
4116
4117      3555, 3555, 3555,    0,    0,    0, 3555, 3556, 3556, 3556,
4118      3556,    0,    0, 3556, 3556, 3557, 3557, 3557, 3557,    0,
4119         0, 3557, 3557, 3558, 3558, 3558, 3558,    0, 3558,    0,
4120      3558, 3559, 3559, 3559, 3559,    0,    0, 3559, 3559, 3560,
4121      3560, 3560,    0,    0,    0, 3560, 3561, 3561, 3561, 3561,
4122         0,    0, 3561, 3561, 3562, 3562, 3562, 3562,    0,    0,
4123      3562, 3562, 3563, 3563, 3563, 3563,    0,    0, 3563, 3563,
4124      3564, 3564, 3564, 3564,    0,    0, 3564, 3564, 3565, 3565,
4125      3565, 3565, 3565, 3565, 3565, 3565, 3565, 3566, 3566, 3566,
4126      3566, 3566, 3566, 3566, 3566, 3566, 3567, 3567, 3567, 3567,
4127
4128         0, 3567,    0, 3567, 3568, 3568, 3568, 3568,    0,    0,
4129      3568, 3568, 3569, 3569, 3569, 3569,    0,    0, 3569, 3569,
4130      3570, 3570, 3570,    0,    0,    0, 3570, 3571, 3571, 3571,
4131      3571,    0,    0, 3571, 3571, 3572, 3572, 3572,    0,    0,
4132         0, 3572, 3573, 3573, 3573, 3573,    0,    0, 3573, 3573,
4133      3574, 3574, 3574, 3574,    0, 3574,    0, 3574, 3575, 3575,
4134      3575, 3575,    0,    0, 3575, 3575, 3576, 3576, 3576, 3576,
4135         0, 3576,    0, 3576, 3577, 3577, 3577, 3577,    0, 3577,
4136         0, 3577, 3578, 3578, 3578, 3578,    0,    0, 3578, 3578,
4137      3579, 3579, 3579, 3579,    0, 3579,    0, 3579, 3580, 3580,
4138
4139      3580, 3580,    0,    0, 3580, 3580, 3581, 3581, 3581, 3581,
4140         0,    0, 3581, 3581, 3582, 3582, 3582, 3582,    0,    0,
4141      3582, 3582, 3583, 3583, 3583,    0,    0,    0, 3583, 3584,
4142      3584, 3584, 3584,    0,    0, 3584, 3584, 3585, 3585, 3585,
4143         0,    0,    0, 3585, 3586, 3586, 3586, 3586,    0,    0,
4144      3586, 3586, 3587, 3587, 3587, 3587,    0, 3587,    0, 3587,
4145      3588, 3588, 3588, 3588,    0,    0, 3588, 3588, 3589, 3589,
4146      3589,    0,    0,    0, 3589, 3590, 3590, 3590,    0,    0,
4147         0, 3590, 3591, 3591, 3591, 3591,    0,    0, 3591, 3591,
4148      3592, 3592, 3592,    0,    0,    0, 3592, 3593, 3593, 3593,
4149
4150      3593,    0,    0, 3593, 3593, 3594, 3594, 3594,    0,    0,
4151         0, 3594, 3595, 3595, 3595,    0,    0,    0, 3595, 3596,
4152      3596, 3596, 3596,    0,    0, 3596, 3596, 3597, 3597, 3597,
4153         0,    0,    0, 3597, 3598, 3598, 3598, 3598,    0,    0,
4154      3598, 3598, 3599, 3599, 3599,    0,    0,    0, 3599, 3600,
4155      3600, 3600, 3600,    0,    0, 3600, 3600, 3601, 3601, 3601,
4156      3601,    0,    0, 3601, 3601, 3602, 3602, 3602, 3602,    0,
4157         0, 3602, 3602, 3603, 3603, 3603,    0,    0,    0, 3603,
4158      3604, 3604, 3604, 3604,    0,    0, 3604, 3604, 3605, 3605,
4159      3605, 3605,    0,    0, 3605, 3605, 3606, 3606, 3606, 3606,
4160
4161         0,    0, 3606, 3606, 3607, 3607, 3607, 3607, 3607, 3607,
4162      3607, 3607, 3607, 3608, 3608, 3608, 3608, 3608, 3608, 3608,
4163      3608, 3608, 3609, 3609, 3609, 3609,    0,    0, 3609, 3609,
4164      3610, 3610, 3610, 3610,    0,    0, 3610, 3610, 3611, 3611,
4165      3611,    0,    0,    0, 3611, 3612, 3612, 3612,    0,    0,
4166         0, 3612, 3613, 3613, 3613, 3613,    0,    0, 3613, 3613,
4167      3614, 3614, 3614, 3614,    0,    0, 3614, 3614, 3615, 3615,
4168      3615, 3615,    0,    0, 3615, 3615, 3616, 3616, 3616, 3616,
4169         0,    0, 3616, 3616, 3617, 3617, 3617, 3617,    0,    0,
4170      3617, 3617, 3618, 3618, 3618,    0,    0,    0, 3618, 3619,
4171
4172      3619, 3619, 3619,    0,    0, 3619, 3619, 3620, 3620, 3620,
4173         0,    0,    0, 3620, 3621, 3621, 3621, 3621,    0,    0,
4174      3621, 3621, 3622, 3622, 3622, 3622,    0,    0, 3622, 3622,
4175      3623, 3623, 3623,    0,    0,    0, 3623, 3624, 3624, 3624,
4176         0,    0,    0, 3624, 3625, 3625, 3625, 3625,    0,    0,
4177      3625, 3625, 3626, 3626, 3626,    0,    0,    0, 3626, 3627,
4178      3627, 3627, 3627,    0,    0, 3627, 3627, 3628, 3628, 3628,
4179         0,    0,    0, 3628, 3629, 3629, 3629,    0,    0,    0,
4180      3629, 3630, 3630, 3630,    0,    0,    0, 3630, 3631, 3631,
4181      3631, 3631,    0,    0, 3631, 3631, 3632, 3632, 3632,    0,
4182
4183         0,    0, 3632, 3633, 3633, 3633, 3633,    0,    0, 3633,
4184      3633, 3634, 3634, 3634, 3634,    0,    0, 3634, 3634, 3635,
4185      3635, 3635, 3635,    0,    0, 3635, 3635, 3636, 3636, 3636,
4186      3636,    0, 3636,    0, 3636, 3637, 3637, 3637, 3637,    0,
4187         0, 3637, 3637, 3638, 3638, 3638, 3638,    0,    0, 3638,
4188      3638, 3639, 3639, 3639, 3639,    0,    0, 3639, 3639, 3640,
4189      3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3641, 3641,
4190      3641, 3641, 3641, 3641, 3641, 3641, 3641, 3642, 3642, 3642,
4191      3642,    0,    0, 3642, 3642, 3643, 3643, 3643, 3643,    0,
4192         0, 3643, 3643, 3644, 3644, 3644,    0,    0,    0, 3644,
4193
4194      3645, 3645, 3645, 3645,    0, 3645,    0, 3645, 3646, 3646,
4195      3646, 3646,    0,    0, 3646, 3646, 3647, 3647, 3647, 3647,
4196         0,    0, 3647, 3647, 3648, 3648, 3648, 3648,    0,    0,
4197      3648, 3648, 3649, 3649, 3649, 3649,    0,    0, 3649, 3649,
4198      3650, 3650, 3650,    0,    0,    0, 3650, 3651, 3651, 3651,
4199      3651,    0,    0, 3651, 3651, 3652, 3652, 3652,    0,    0,
4200         0, 3652, 3653, 3653, 3653, 3653,    0,    0, 3653, 3653,
4201      3654, 3654, 3654, 3654,    0,    0, 3654, 3654, 3655, 3655,
4202      3655,    0,    0,    0, 3655, 3656, 3656, 3656,    0,    0,
4203         0, 3656, 3657, 3657, 3657, 3657,    0, 3657,    0, 3657,
4204
4205      3658, 3658, 3658, 3658,    0,    0, 3658, 3658, 3659, 3659,
4206      3659, 3659,    0, 3659,    0, 3659, 3660, 3660, 3660,    0,
4207         0,    0, 3660, 3661, 3661, 3661,    0,    0,    0, 3661,
4208      3662, 3662, 3662, 3662,    0,    0, 3662, 3662, 3663, 3663,
4209      3663, 3663,    0, 3663,    0, 3663, 3664, 3664, 3664, 3664,
4210         0,    0, 3664, 3664, 3665, 3665, 3665, 3665,    0,    0,
4211      3665, 3665, 3666, 3666, 3666, 3666,    0,    0, 3666, 3666,
4212      3667, 3667, 3667, 3667,    0, 3667,    0, 3667, 3668, 3668,
4213      3668, 3668,    0,    0, 3668, 3668, 3669, 3669, 3669, 3669,
4214         0,    0, 3669, 3669, 3670, 3670, 3670, 3670, 3670, 3670,
4215
4216      3670, 3670, 3670, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
4217      3671, 3671, 3672, 3672, 3672, 3672,    0,    0, 3672, 3672,
4218      3673, 3673, 3673,    0,    0,    0, 3673, 3674, 3674, 3674,
4219         0,    0,    0, 3674, 3675, 3675, 3675, 3675,    0,    0,
4220      3675, 3675, 3676, 3676, 3676, 3676,    0,    0, 3676, 3676,
4221      3677, 3677, 3677, 3677,    0,    0, 3677, 3677, 3678, 3678,
4222      3678,    0,    0,    0, 3678, 3679, 3679, 3679, 3679,    0,
4223         0, 3679, 3679, 3680, 3680, 3680,    0,    0,    0, 3680,
4224      3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3681, 3682,
4225      3682, 3682, 3682, 3682, 3682, 3682, 3682, 3682, 3683, 3683,
4226
4227      3683, 3683, 3683, 3683, 3683, 3683, 3683, 3684, 3684, 3684,
4228      3684, 3684, 3684, 3684, 3684, 3684, 3685, 3685, 3685, 3685,
4229      3685, 3685, 3685, 3685, 3685, 3686, 3686, 3686, 3686, 3686,
4230      3686, 3686, 3686, 3686, 3216, 3216, 3216, 3216, 3216, 3216,
4231      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
4232      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
4233      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
4234      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
4235      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
4236      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216,
4237
4238      3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216
4239     } ;
4240
4241 /* Table of booleans, true if rule could match eol. */
4242 static yyconst flex_int32_t yy_rule_can_match_eol[548] =
4243     {   0,
4244 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4245     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4246     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4247     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4248     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4249     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4250     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4251     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4252     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4253     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4254     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4255     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4256     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4257     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4258     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4259     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4260     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4261     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4262     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4263     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4264     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4265     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4266     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4267     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4268     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4269     1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 
4270     0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 
4271     0, 0, 1, 0, 0, 0, 1, 0,     };
4272
4273 static yy_state_type yy_last_accepting_state;
4274 static char *yy_last_accepting_cpos;
4275
4276 extern int surf_parse__flex_debug;
4277 int surf_parse__flex_debug = 0;
4278
4279 /* The intent behind this definition is that it'll catch
4280  * any uses of REJECT which flex missed.
4281  */
4282 #define REJECT reject_used_but_not_detected
4283 #define yymore() yymore_used_but_not_detected
4284 #define YY_MORE_ADJ 0
4285 #define YY_RESTORE_YY_MORE_OFFSET
4286 char *surf_parse_text;
4287 /* Validating XML processor for src/surf/simgrid.dtd.
4288  *
4289  * This program was generated with the FleXML XML processor generator.
4290  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4291  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
4292  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
4293  * 
4294  * There are two, intertwined parts to this program, part A and part B.
4295  *
4296  * Part A
4297  * ------
4298  * 
4299  * Some parts, here collectively called "Part A", are found in the 
4300  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4301  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
4302  *
4303  * You can redistribute, use, perform, display and/or modify "Part A"
4304  * provided the following two conditions hold:
4305  *
4306  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4307  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4308  *    FITNESS FOR A PARTICULAR PURPOSE.
4309  *
4310  * 2. The program distribution conditions do not in any way affect the
4311  *    distribution conditions of the FleXML system used to generate this
4312  *    file or any version of FleXML derived from that system.
4313  *
4314  * Notice that these are explicit rights granted to you for files
4315  * generated by the FleXML system.  For your rights in connection with
4316  * the FleXML system itself please consult the GNU General Public License.
4317  * 
4318  * Part B
4319  * ------
4320  * 
4321  * The other parts, here collectively called "Part B", and which came 
4322  * from the DTD used by FleXML to generate this program, can be 
4323  * distributed (or not, as the case may be) under the terms of whoever
4324  * wrote them, provided these terms respect and obey the two conditions 
4325  * above under the heading "Part A".
4326  *
4327  * The author of and contributors to FleXML specifically disclaim
4328  * any copyright interest in "Part B", unless "Part B" was written 
4329  * by the author of or contributors to FleXML.
4330  * 
4331  */
4332
4333 /* Version strings. */
4334 const char rcs_surfxml_flexml_skeleton[] =
4335  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
4336 const char rcs_surfxml_flexml[] =
4337  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
4338
4339 /* ANSI headers. */
4340 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4341 #include <stdio.h>
4342 #include <string.h>
4343 #include <assert.h>
4344 #include <stdarg.h>
4345 #include <ctype.h>
4346      
4347 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4348 # ifndef __STRICT_ANSI__
4349 #  include <io.h>
4350 #  include <process.h>
4351 # endif
4352 #else
4353 # include <unistd.h>
4354 #endif
4355      
4356 #ifndef FLEXML_INDEXSTACKSIZE
4357 #define FLEXML_INDEXSTACKSIZE 1000
4358 #endif
4359
4360 /* Generated definitions. */
4361 #define FLEXML_yylineno
4362 #ifndef FLEXML_BUFFERSTACKSIZE
4363 #define FLEXML_BUFFERSTACKSIZE 1000000
4364 #endif
4365 #define FLEXML_NEED_BUFFERLIT
4366
4367 /* XML processor api. */
4368 /* FleXML-provided data. */
4369 int surfxml_pcdata_ix;
4370 extern char *surfxml_bufferstack;
4371 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4372 AT_surfxml_mount_name AX_surfxml_mount_name;
4373 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4374 short int surfxml_mount_name_isset;
4375 AT_surfxml_random_generator AX_surfxml_random_generator;
4376 #define A_surfxml_random_generator AX_surfxml_random_generator
4377 short int surfxml_random_generator_isset;
4378 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
4379 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
4380 short int surfxml_ASroute_gw_dst_isset;
4381 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
4382 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
4383 short int surfxml_trace_connect_element_isset;
4384 AT_surfxml_prop_id AX_surfxml_prop_id;
4385 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4386 short int surfxml_prop_id_isset;
4387 AT_surfxml_host_link_up AX_surfxml_host_link_up;
4388 #define A_surfxml_host_link_up (surfxml_bufferstack + AX_surfxml_host_link_up)
4389 short int surfxml_host_link_up_isset;
4390 AT_surfxml_host_id AX_surfxml_host_id;
4391 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4392 short int surfxml_host_id_isset;
4393 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4394 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4395 short int surfxml_ASroute_symmetrical_isset;
4396 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4397 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4398 short int surfxml_peer_lat_isset;
4399 AT_surfxml_process_on_failure AX_surfxml_process_on_failure;
4400 #define A_surfxml_process_on_failure AX_surfxml_process_on_failure
4401 short int surfxml_process_on_failure_isset;
4402 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
4403 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
4404 short int surfxml_link_latency_file_isset;
4405 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
4406 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
4407 short int surfxml_peer_availability_file_isset;
4408 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
4409 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
4410 short int surfxml_link_ctn_direction_isset;
4411 AT_surfxml_host_state AX_surfxml_host_state;
4412 #define A_surfxml_host_state AX_surfxml_host_state
4413 short int surfxml_host_state_isset;
4414 AT_surfxml_AS_id AX_surfxml_AS_id;
4415 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4416 short int surfxml_AS_id_isset;
4417 AT_surfxml_host_power AX_surfxml_host_power;
4418 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4419 short int surfxml_host_power_isset;
4420 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4421 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4422 short int surfxml_cabinet_suffix_isset;
4423 AT_surfxml_router_id AX_surfxml_router_id;
4424 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4425 short int surfxml_router_id_isset;
4426 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
4427 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
4428 short int surfxml_storage_type_id_isset;
4429 AT_surfxml_process_start_time AX_surfxml_process_start_time;
4430 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
4431 short int surfxml_process_start_time_isset;
4432 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4433 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4434 short int surfxml_cabinet_bw_isset;
4435 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4436 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4437 short int surfxml_cluster_suffix_isset;
4438 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4439 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4440 short int surfxml_bypassASroute_dst_isset;
4441 AT_surfxml_host_link_id AX_surfxml_host_link_id;
4442 #define A_surfxml_host_link_id (surfxml_bufferstack + AX_surfxml_host_link_id)
4443 short int surfxml_host_link_id_isset;
4444 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4445 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4446 short int surfxml_ASroute_src_isset;
4447 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4448 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4449 short int surfxml_cluster_prefix_isset;
4450 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4451 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4452 short int surfxml_cabinet_prefix_isset;
4453 AT_surfxml_trace_file AX_surfxml_trace_file;
4454 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4455 short int surfxml_trace_file_isset;
4456 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
4457 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
4458 short int surfxml_link_sharing_policy_isset;
4459 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4460 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4461 short int surfxml_storage_typeId_isset;
4462 AT_surfxml_random_min AX_surfxml_random_min;
4463 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4464 short int surfxml_random_min_isset;
4465 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
4466 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
4467 short int surfxml_link_ctn_id_isset;
4468 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
4469 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
4470 short int surfxml_peer_bw_out_isset;
4471 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
4472 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
4473 short int surfxml_cluster_availability_file_isset;
4474 AT_surfxml_storage_content AX_surfxml_storage_content;
4475 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4476 short int surfxml_storage_content_isset;
4477 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
4478 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
4479 short int surfxml_process_kill_time_isset;
4480 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
4481 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
4482 short int surfxml_cluster_bb_bw_isset;
4483 AT_surfxml_argument_value AX_surfxml_argument_value;
4484 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4485 short int surfxml_argument_value_isset;
4486 AT_surfxml_link_state AX_surfxml_link_state;
4487 #define A_surfxml_link_state AX_surfxml_link_state
4488 short int surfxml_link_state_isset;
4489 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
4490 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
4491 short int surfxml_ASroute_gw_src_isset;
4492 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4493 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4494 short int surfxml_AS_routing_isset;
4495 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4496 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4497 short int surfxml_link_bandwidth_isset;
4498 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4499 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4500 short int surfxml_cluster_id_isset;
4501 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
4502 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
4503 short int surfxml_peer_bw_in_isset;
4504 AT_surfxml_random_mean AX_surfxml_random_mean;
4505 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4506 short int surfxml_random_mean_isset;
4507 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
4508 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
4509 short int surfxml_storage_type_size_isset;
4510 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
4511 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
4512 short int surfxml_cluster_bb_lat_isset;
4513 AT_surfxml_link_latency AX_surfxml_link_latency;
4514 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4515 short int surfxml_link_latency_isset;
4516 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4517 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4518 short int surfxml_backbone_bandwidth_isset;
4519 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4520 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4521 short int surfxml_backbone_id_isset;
4522 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
4523 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
4524 short int surfxml_trace_connect_kind_isset;
4525 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4526 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4527 short int surfxml_cabinet_lat_isset;
4528 AT_surfxml_random_seed AX_surfxml_random_seed;
4529 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4530 short int surfxml_random_seed_isset;
4531 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4532 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4533 short int surfxml_cluster_state_file_isset;
4534 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4535 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4536 short int surfxml_link_bandwidth_file_isset;
4537 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4538 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4539 short int surfxml_storage_type_content_isset;
4540 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4541 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4542 short int surfxml_route_symmetrical_isset;
4543 AT_surfxml_random_id AX_surfxml_random_id;
4544 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4545 short int surfxml_random_id_isset;
4546 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4547 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4548 short int surfxml_mstorage_name_isset;
4549 AT_surfxml_random_max AX_surfxml_random_max;
4550 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4551 short int surfxml_random_max_isset;
4552 AT_surfxml_link_id AX_surfxml_link_id;
4553 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4554 short int surfxml_link_id_isset;
4555 AT_surfxml_process_host AX_surfxml_process_host;
4556 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4557 short int surfxml_process_host_isset;
4558 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4559 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4560 short int surfxml_cabinet_id_isset;
4561 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4562 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4563 short int surfxml_host_availability_file_isset;
4564 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4565 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4566 short int surfxml_cluster_lat_isset;
4567 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4568 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4569 short int surfxml_router_coordinates_isset;
4570 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4571 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4572 short int surfxml_trace_periodicity_isset;
4573 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4574 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4575 short int surfxml_cluster_bb_sharing_policy_isset;
4576 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4577 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4578 short int surfxml_peer_state_file_isset;
4579 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4580 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4581 short int surfxml_peer_coordinates_isset;
4582 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4583 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4584 short int surfxml_bypassASroute_src_isset;
4585 AT_surfxml_prop_value AX_surfxml_prop_value;
4586 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4587 short int surfxml_prop_value_isset;
4588 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4589 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4590 short int surfxml_mstorage_typeId_isset;
4591 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4592 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4593 short int surfxml_ASroute_dst_isset;
4594 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4595 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4596 short int surfxml_link_state_file_isset;
4597 AT_surfxml_random_radical AX_surfxml_random_radical;
4598 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4599 short int surfxml_random_radical_isset;
4600 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4601 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4602 short int surfxml_bypassASroute_gw_src_isset;
4603 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4604 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4605 short int surfxml_trace_connect_trace_isset;
4606 AT_surfxml_mount_id AX_surfxml_mount_id;
4607 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4608 short int surfxml_mount_id_isset;
4609 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4610 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4611 short int surfxml_cluster_power_isset;
4612 AT_surfxml_process_function AX_surfxml_process_function;
4613 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4614 short int surfxml_process_function_isset;
4615 AT_surfxml_peer_id AX_surfxml_peer_id;
4616 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4617 short int surfxml_peer_id_isset;
4618 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4619 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4620 short int surfxml_cluster_router_id_isset;
4621 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4622 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4623 short int surfxml_cabinet_radical_isset;
4624 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4625 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4626 short int surfxml_cluster_sharing_policy_isset;
4627 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4628 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4629 short int surfxml_bypassRoute_dst_isset;
4630 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4631 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4632 short int surfxml_cabinet_power_isset;
4633 AT_surfxml_host_core AX_surfxml_host_core;
4634 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4635 short int surfxml_host_core_isset;
4636 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4637 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4638 short int surfxml_storage_type_model_isset;
4639 AT_surfxml_host_availability AX_surfxml_host_availability;
4640 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4641 short int surfxml_host_availability_isset;
4642 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4643 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4644 short int surfxml_bypassRoute_src_isset;
4645 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4646 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4647 short int surfxml_backbone_latency_isset;
4648 AT_surfxml_route_src AX_surfxml_route_src;
4649 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4650 short int surfxml_route_src_isset;
4651 AT_surfxml_storage_id AX_surfxml_storage_id;
4652 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4653 short int surfxml_storage_id_isset;
4654 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4655 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4656 short int surfxml_host_coordinates_isset;
4657 AT_surfxml_trace_id AX_surfxml_trace_id;
4658 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4659 short int surfxml_trace_id_isset;
4660 AT_surfxml_peer_power AX_surfxml_peer_power;
4661 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4662 short int surfxml_peer_power_isset;
4663 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4664 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4665 short int surfxml_cluster_radical_isset;
4666 AT_surfxml_config_id AX_surfxml_config_id;
4667 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4668 short int surfxml_config_id_isset;
4669 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4670 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4671 short int surfxml_bypassASroute_gw_dst_isset;
4672 AT_surfxml_host_link_down AX_surfxml_host_link_down;
4673 #define A_surfxml_host_link_down (surfxml_bufferstack + AX_surfxml_host_link_down)
4674 short int surfxml_host_link_down_isset;
4675 AT_surfxml_include_file AX_surfxml_include_file;
4676 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4677 short int surfxml_include_file_isset;
4678 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4679 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4680 short int surfxml_random_std_deviation_isset;
4681 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4682 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4683 short int surfxml_cluster_core_isset;
4684 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4685 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4686 short int surfxml_host_state_file_isset;
4687 AT_surfxml_route_dst AX_surfxml_route_dst;
4688 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4689 short int surfxml_route_dst_isset;
4690 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4691 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4692 short int surfxml_cluster_bw_isset;
4693 AT_surfxml_platform_version AX_surfxml_platform_version;
4694 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4695 short int surfxml_platform_version_isset;
4696
4697 /* XML state. */
4698 #ifdef FLEX_DEBUG
4699 # define ENTER(state)   debug_enter(state,#state)
4700 # define LEAVE          debug_leave()
4701 # define SET(state)     debug_set(state,#state)
4702   static void debug_enter(int, const char*);
4703   static void debug_leave(void);
4704   static void debug_set(int, const char*);
4705 #else
4706 # define ENTER(state)   (yy_push_state(state))
4707 # define LEAVE          (yy_pop_state())
4708 # define SET(state)     BEGIN(state)
4709 #endif
4710
4711 /* Generic actions. */
4712 #define SKIP    /*skip*/
4713 #define SUCCEED        CLEANUP; return 0
4714
4715 #define FAIL    return fail
4716 static int fail(const char*, ...);
4717
4718 enum {flexml_max_err_msg_size = 512};
4719 static char flexml_err_msg[flexml_max_err_msg_size];
4720 const char * surfxml_parse_err_msg()
4721 {
4722     return flexml_err_msg;
4723 }
4724 static void reset_surfxml_parse_err_msg()
4725 {
4726     flexml_err_msg[0] = '\0';
4727 }
4728
4729 /* Cleanup */
4730 static void cleanup(void);
4731 #define CLEANUP  cleanup()
4732
4733 /* Text buffer stack handling. */
4734 char *surfxml_bufferstack = NULL;
4735 static int blimit = FLEXML_BUFFERSTACKSIZE;
4736 static int bnext = 1;
4737
4738 static int *indexstack = NULL;
4739 static int ilimit = FLEXML_INDEXSTACKSIZE;
4740 static int inext = 1;
4741
4742 #define BUFFERSET(P)  (P = bnext)
4743 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4744 #define BUFFERDONE    (BUFFERPUTC('\0'))
4745
4746 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4747
4748 /* after this is called, there are at least 2 slots left in the stack */
4749 static int ck_blimit()
4750 {
4751      if (bnext >= blimit) {
4752          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4753          {
4754              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4755              assert(temp);
4756              surfxml_bufferstack = temp;
4757          }
4758      }
4759      return 0;
4760 }
4761
4762 /* after this is called, there are at least 2 slots left in the stack */
4763 static int ck_ilimit()
4764 {
4765      if (inext >= ilimit) {
4766          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4767          {
4768              int *temp = (int *) realloc(indexstack, ilimit);
4769              assert(temp);
4770              indexstack = temp;
4771          }
4772      }
4773      return 0;
4774 }
4775
4776 #ifdef FLEXML_NEED_BUFFERLIT
4777 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4778 {
4779    BUFFERSET(*pp);
4780    if (c) {
4781       const char *s = strchr(text, c), *e = strrchr(text, c);
4782       assert(s && e && s <= e);
4783       ++s;
4784       while (s < e) {
4785          if (isspace(*s)) {
4786             BUFFERPUTC(' ');
4787             do ++s; while (s < e && isspace(*s));
4788          } else
4789            BUFFERPUTC(*s++);
4790       }
4791    } else {
4792       const char *s = text;
4793       while (*s)
4794         BUFFERPUTC(*s++);
4795    }
4796    BUFFERDONE;
4797 }
4798 #endif
4799
4800 static void pushbuffer(int p)
4801 {
4802     ck_ilimit();
4803     indexstack[inext++] = p;
4804     indexstack[inext++] = bnext;    
4805 }
4806
4807 static int popbuffer(void)
4808 {
4809     assert(inext >= 2);
4810     bnext = indexstack[--inext];
4811     return indexstack[--inext];
4812 }
4813
4814 /* General internal entities are `unput' back onto the input stream... */
4815 #define ENTITYTEXT(T) \
4816   { char *s = (T), *e = s+strlen(s);\
4817     while (--e >= s) { unput(*e); }}
4818
4819 /* Flex standard options. */
4820 #define YY_NO_INPUT 1
4821 /* Flex user-requested options. */
4822 /* XML character classes (currently restricted to ASCII). */
4823 /* "Common syntactic structures." */
4824 /* "Names and Tokens." */
4825 /* Miscellaneous. */
4826 /* Parser states (flex `exclusive start conditions'):
4827  *
4828  * PROLOG       the XML prolog of the document before <?xml...>
4829  * DOCTYPE      the XML prolog of the document after <?xml...>
4830  * EPILOG       after the root element
4831  * INCOMMENT    inside an XML comment <!--....-->
4832  * INPI         inside an XML PI <?...?>
4833  * VALUE1       inside a '...'-delimited literal
4834  * VALUE2       inside a "..."-delimited literal
4835  * CDATA        inside a <![CDATA[...] ]> section.
4836  * ROOT_<tag>   expect root element <tag>
4837  * AL_<tag>     inside the attribute list for <tag>
4838  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4839  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4840  */
4841
4842 /* State names. */
4843 const char* *surfxml_statenames=NULL;
4844
4845 #define INITIAL 0
4846 #define PROLOG 1
4847 #define DOCTYPE 2
4848 #define EPILOG 3
4849 #define INCOMMENT 4
4850 #define INPI 5
4851 #define VALUE1 6
4852 #define VALUE2 7
4853 #define CDATA 8
4854 #define ROOT_surfxml_platform 9
4855 #define AL_surfxml_platform 10
4856 #define S_surfxml_platform 11
4857 #define S_surfxml_platform_1 12
4858 #define S_surfxml_platform_2 13
4859 #define S_surfxml_platform_3 14
4860 #define S_surfxml_platform_4 15
4861 #define S_surfxml_platform_5 16
4862 #define S_surfxml_platform_6 17
4863 #define S_surfxml_platform_7 18
4864 #define S_surfxml_platform_8 19
4865 #define E_surfxml_platform 20
4866 #define AL_surfxml_include 21
4867 #define S_surfxml_include 22
4868 #define S_surfxml_include_1 23
4869 #define S_surfxml_include_2 24
4870 #define E_surfxml_include 25
4871 #define AL_surfxml_trace 26
4872 #define IN_trace 27
4873 #define AL_surfxml_random 28
4874 #define S_surfxml_random 29
4875 #define S_surfxml_random_1 30
4876 #define S_surfxml_random_2 31
4877 #define E_surfxml_random 32
4878 #define AL_surfxml_trace_connect 33
4879 #define E_surfxml_trace_connect 34
4880 #define AL_surfxml_AS 35
4881 #define S_surfxml_AS 36
4882 #define S_surfxml_AS_1 37
4883 #define S_surfxml_AS_2 38
4884 #define S_surfxml_AS_3 39
4885 #define S_surfxml_AS_4 40
4886 #define S_surfxml_AS_5 41
4887 #define S_surfxml_AS_6 42
4888 #define S_surfxml_AS_7 43
4889 #define S_surfxml_AS_8 44
4890 #define S_surfxml_AS_9 45
4891 #define S_surfxml_AS_10 46
4892 #define S_surfxml_AS_11 47
4893 #define S_surfxml_AS_12 48
4894 #define S_surfxml_AS_13 49
4895 #define E_surfxml_AS 50
4896 #define AL_surfxml_storage_type 51
4897 #define S_surfxml_storage_type 52
4898 #define S_surfxml_storage_type_1 53
4899 #define S_surfxml_storage_type_2 54
4900 #define E_surfxml_storage_type 55
4901 #define AL_surfxml_storage 56
4902 #define S_surfxml_storage 57
4903 #define S_surfxml_storage_1 58
4904 #define S_surfxml_storage_2 59
4905 #define E_surfxml_storage 60
4906 #define AL_surfxml_mount 61
4907 #define E_surfxml_mount 62
4908 #define AL_surfxml_mstorage 63
4909 #define E_surfxml_mstorage 64
4910 #define AL_surfxml_host 65
4911 #define S_surfxml_host 66
4912 #define S_surfxml_host_1 67
4913 #define S_surfxml_host_2 68
4914 #define E_surfxml_host 69
4915 #define AL_surfxml_host_link 70
4916 #define E_surfxml_host_link 71
4917 #define AL_surfxml_cluster 72
4918 #define E_surfxml_cluster 73
4919 #define AL_surfxml_cabinet 74
4920 #define E_surfxml_cabinet 75
4921 #define AL_surfxml_peer 76
4922 #define E_surfxml_peer 77
4923 #define AL_surfxml_router 78
4924 #define E_surfxml_router 79
4925 #define AL_surfxml_backbone 80
4926 #define E_surfxml_backbone 81
4927 #define AL_surfxml_link 82
4928 #define S_surfxml_link 83
4929 #define S_surfxml_link_1 84
4930 #define S_surfxml_link_2 85
4931 #define E_surfxml_link 86
4932 #define AL_surfxml_route 87
4933 #define S_surfxml_route 88
4934 #define S_surfxml_route_1 89
4935 #define S_surfxml_route_2 90
4936 #define E_surfxml_route 91
4937 #define AL_surfxml_ASroute 92
4938 #define S_surfxml_ASroute 93
4939 #define S_surfxml_ASroute_1 94
4940 #define S_surfxml_ASroute_2 95
4941 #define E_surfxml_ASroute 96
4942 #define AL_surfxml_link_ctn 97
4943 #define E_surfxml_link_ctn 98
4944 #define AL_surfxml_bypassRoute 99
4945 #define S_surfxml_bypassRoute 100
4946 #define S_surfxml_bypassRoute_1 101
4947 #define S_surfxml_bypassRoute_2 102
4948 #define E_surfxml_bypassRoute 103
4949 #define AL_surfxml_bypassASroute 104
4950 #define S_surfxml_bypassASroute 105
4951 #define S_surfxml_bypassASroute_1 106
4952 #define S_surfxml_bypassASroute_2 107
4953 #define E_surfxml_bypassASroute 108
4954 #define AL_surfxml_process 109
4955 #define S_surfxml_process 110
4956 #define S_surfxml_process_1 111
4957 #define S_surfxml_process_2 112
4958 #define E_surfxml_process 113
4959 #define AL_surfxml_argument 114
4960 #define E_surfxml_argument 115
4961 #define AL_surfxml_config 116
4962 #define S_surfxml_config 117
4963 #define S_surfxml_config_1 118
4964 #define S_surfxml_config_2 119
4965 #define E_surfxml_config 120
4966 #define AL_surfxml_prop 121
4967 #define E_surfxml_prop 122
4968 #define IMPOSSIBLE 123
4969
4970 #ifndef YY_NO_UNISTD_H
4971 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4972  * down here because we want the user's section 1 to have been scanned first.
4973  * The user has a chance to override it with an option.
4974  */
4975 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4976 #  ifndef __STRICT_ANSI__
4977 #    include <io.h>
4978 #    include <process.h>
4979 #  endif
4980 #else
4981 #  include <unistd.h>
4982 #endif
4983 #endif
4984
4985 #ifndef YY_EXTRA_TYPE
4986 #define YY_EXTRA_TYPE void *
4987 #endif
4988
4989 static int yy_init_globals (void );
4990
4991 /* Accessor methods to globals.
4992    These are made visible to non-reentrant scanners for convenience. */
4993
4994 int surf_parse_lex_destroy (void );
4995
4996 int surf_parse_get_debug (void );
4997
4998 void surf_parse_set_debug (int debug_flag  );
4999
5000 YY_EXTRA_TYPE surf_parse_get_extra (void );
5001
5002 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5003
5004 FILE *surf_parse_get_in (void );
5005
5006 void surf_parse_set_in  (FILE * in_str  );
5007
5008 FILE *surf_parse_get_out (void );
5009
5010 void surf_parse_set_out  (FILE * out_str  );
5011
5012 int surf_parse_get_leng (void );
5013
5014 char *surf_parse_get_text (void );
5015
5016 int surf_parse_get_lineno (void );
5017
5018 void surf_parse_set_lineno (int line_number  );
5019
5020 /* Macros after this point can all be overridden by user definitions in
5021  * section 1.
5022  */
5023
5024 #ifndef YY_SKIP_YYWRAP
5025 #ifdef __cplusplus
5026 extern "C" int surf_parse_wrap (void );
5027 #else
5028 extern int surf_parse_wrap (void );
5029 #endif
5030 #endif
5031
5032 #ifndef yytext_ptr
5033 static void yy_flex_strncpy (char *,yyconst char *,int );
5034 #endif
5035
5036 #ifdef YY_NEED_STRLEN
5037 static int yy_flex_strlen (yyconst char * );
5038 #endif
5039
5040 #ifndef YY_NO_INPUT
5041
5042 #ifdef __cplusplus
5043 static int yyinput (void );
5044 #else
5045 static int input (void );
5046 #endif
5047
5048 #endif
5049
5050         static int yy_start_stack_ptr = 0;
5051         static int yy_start_stack_depth = 0;
5052         static int *yy_start_stack = NULL;
5053     
5054     static void yy_push_state (int new_state );
5055     
5056     static void yy_pop_state (void );
5057     
5058 /* Amount of stuff to slurp up with each read. */
5059 #ifndef YY_READ_BUF_SIZE
5060 #ifdef __ia64__
5061 /* On IA-64, the buffer size is 16k, not 8k */
5062 #define YY_READ_BUF_SIZE 16384
5063 #else
5064 #define YY_READ_BUF_SIZE 8192
5065 #endif /* __ia64__ */
5066 #endif
5067
5068 /* Copy whatever the last rule matched to the standard output. */
5069 #ifndef ECHO
5070 /* This used to be an fputs(), but since the string might contain NUL's,
5071  * we now use fwrite().
5072  */
5073 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5074 #endif
5075
5076 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5077  * is returned in "result".
5078  */
5079 #ifndef YY_INPUT
5080 #define YY_INPUT(buf,result,max_size) \
5081         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5082                 { \
5083                 int c = '*'; \
5084                 size_t n; \
5085                 for ( n = 0; n < max_size && \
5086                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5087                         buf[n] = (char) c; \
5088                 if ( c == '\n' ) \
5089                         buf[n++] = (char) c; \
5090                 if ( c == EOF && ferror( surf_parse_in ) ) \
5091                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5092                 result = n; \
5093                 } \
5094         else \
5095                 { \
5096                 errno=0; \
5097                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5098                         { \
5099                         if( errno != EINTR) \
5100                                 { \
5101                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5102                                 break; \
5103                                 } \
5104                         errno=0; \
5105                         clearerr(surf_parse_in); \
5106                         } \
5107                 }\
5108 \
5109
5110 #endif
5111
5112 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5113  * we don't want an extra ';' after the "return" because that will cause
5114  * some compilers to complain about unreachable statements.
5115  */
5116 #ifndef yyterminate
5117 #define yyterminate() return YY_NULL
5118 #endif
5119
5120 /* Number of entries by which start-condition stack grows. */
5121 #ifndef YY_START_STACK_INCR
5122 #define YY_START_STACK_INCR 25
5123 #endif
5124
5125 /* Report a fatal error. */
5126 #ifndef YY_FATAL_ERROR
5127 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5128 #endif
5129
5130 /* end tables serialization structures and prototypes */
5131
5132 /* Default declaration of generated scanner - a define so the user can
5133  * easily add parameters.
5134  */
5135 #ifndef YY_DECL
5136 #define YY_DECL_IS_OURS 1
5137
5138 extern int surf_parse_lex (void);
5139
5140 #define YY_DECL int surf_parse_lex (void)
5141 #endif /* !YY_DECL */
5142
5143 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5144  * have been set up.
5145  */
5146 #ifndef YY_USER_ACTION
5147 #define YY_USER_ACTION
5148 #endif
5149
5150 /* Code executed at the end of each rule. */
5151 #ifndef YY_BREAK
5152 #define YY_BREAK break;
5153 #endif
5154
5155 #define YY_RULE_SETUP \
5156         YY_USER_ACTION
5157
5158 /** The main scanner function which does all the work.
5159  */
5160 YY_DECL
5161 {
5162         register yy_state_type yy_current_state;
5163         register char *yy_cp, *yy_bp;
5164         register int yy_act;
5165     
5166  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5167  SET(PROLOG);
5168  reset_surfxml_parse_err_msg();
5169  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5170  assert(surfxml_bufferstack);
5171  #ifdef FLEX_DEBUG
5172  {
5173      int i;
5174      for (i = 0; i < blimit; i++) {
5175          surfxml_bufferstack[i] = '\377';
5176      }
5177  }
5178  #endif
5179  surfxml_bufferstack[0] = '\0';
5180  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5181  assert(indexstack);
5182  indexstack[0] = 0;
5183
5184   /* FleXML_init */
5185   bnext = inext = 1;
5186   surfxml_bufferliteral('\0', &bnext, "0.0");
5187   surfxml_bufferliteral('\0', &bnext, "2147483647");
5188   surfxml_bufferliteral('\0', &bnext, "1");
5189   surfxml_bufferliteral('\0', &bnext, "1.0");
5190   surfxml_bufferliteral('\0', &bnext, "1");
5191   surfxml_bufferliteral('\0', &bnext, "0.0");
5192   surfxml_bufferliteral('\0', &bnext, "-1.0");
5193   surfxml_bufferliteral('\0', &bnext, "-1.0");
5194   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5195   surfxml_statenames[PROLOG] = NULL;
5196   surfxml_statenames[DOCTYPE] = NULL;
5197   surfxml_statenames[EPILOG] = NULL;
5198   surfxml_statenames[INCOMMENT] = NULL;
5199   surfxml_statenames[INPI] = NULL;
5200   surfxml_statenames[VALUE1] = NULL;
5201   surfxml_statenames[VALUE2] = NULL;
5202   surfxml_statenames[CDATA] = NULL;
5203   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5204   surfxml_statenames[AL_surfxml_platform] = NULL;
5205   surfxml_statenames[S_surfxml_platform] = "platform";
5206   surfxml_statenames[S_surfxml_platform_1] = "platform";
5207   surfxml_statenames[S_surfxml_platform_2] = "platform";
5208   surfxml_statenames[S_surfxml_platform_3] = "platform";
5209   surfxml_statenames[S_surfxml_platform_4] = "platform";
5210   surfxml_statenames[S_surfxml_platform_5] = "platform";
5211   surfxml_statenames[S_surfxml_platform_6] = "platform";
5212   surfxml_statenames[S_surfxml_platform_7] = "platform";
5213   surfxml_statenames[S_surfxml_platform_8] = "platform";
5214   surfxml_statenames[E_surfxml_platform] = "platform";
5215   surfxml_statenames[AL_surfxml_include] = NULL;
5216   surfxml_statenames[S_surfxml_include] = "include";
5217   surfxml_statenames[S_surfxml_include_1] = "include";
5218   surfxml_statenames[S_surfxml_include_2] = "include";
5219   surfxml_statenames[E_surfxml_include] = "include";
5220   surfxml_statenames[AL_surfxml_trace] = NULL;
5221   surfxml_statenames[IN_trace] = "trace";
5222   surfxml_statenames[AL_surfxml_random] = NULL;
5223   surfxml_statenames[S_surfxml_random] = "random";
5224   surfxml_statenames[S_surfxml_random_1] = "random";
5225   surfxml_statenames[S_surfxml_random_2] = "random";
5226   surfxml_statenames[E_surfxml_random] = "random";
5227   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
5228   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
5229   surfxml_statenames[AL_surfxml_AS] = NULL;
5230   surfxml_statenames[S_surfxml_AS] = "AS";
5231   surfxml_statenames[S_surfxml_AS_1] = "AS";
5232   surfxml_statenames[S_surfxml_AS_2] = "AS";
5233   surfxml_statenames[S_surfxml_AS_3] = "AS";
5234   surfxml_statenames[S_surfxml_AS_4] = "AS";
5235   surfxml_statenames[S_surfxml_AS_5] = "AS";
5236   surfxml_statenames[S_surfxml_AS_6] = "AS";
5237   surfxml_statenames[S_surfxml_AS_7] = "AS";
5238   surfxml_statenames[S_surfxml_AS_8] = "AS";
5239   surfxml_statenames[S_surfxml_AS_9] = "AS";
5240   surfxml_statenames[S_surfxml_AS_10] = "AS";
5241   surfxml_statenames[S_surfxml_AS_11] = "AS";
5242   surfxml_statenames[S_surfxml_AS_12] = "AS";
5243   surfxml_statenames[S_surfxml_AS_13] = "AS";
5244   surfxml_statenames[E_surfxml_AS] = "AS";
5245   surfxml_statenames[AL_surfxml_storage_type] = NULL;
5246   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
5247   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
5248   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
5249   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
5250   surfxml_statenames[AL_surfxml_storage] = NULL;
5251   surfxml_statenames[S_surfxml_storage] = "storage";
5252   surfxml_statenames[S_surfxml_storage_1] = "storage";
5253   surfxml_statenames[S_surfxml_storage_2] = "storage";
5254   surfxml_statenames[E_surfxml_storage] = "storage";
5255   surfxml_statenames[AL_surfxml_mount] = NULL;
5256   surfxml_statenames[E_surfxml_mount] = "mount";
5257   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5258   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5259   surfxml_statenames[AL_surfxml_host] = NULL;
5260   surfxml_statenames[S_surfxml_host] = "host";
5261   surfxml_statenames[S_surfxml_host_1] = "host";
5262   surfxml_statenames[S_surfxml_host_2] = "host";
5263   surfxml_statenames[E_surfxml_host] = "host";
5264   surfxml_statenames[AL_surfxml_host_link] = NULL;
5265   surfxml_statenames[E_surfxml_host_link] = "host_link";
5266   surfxml_statenames[AL_surfxml_cluster] = NULL;
5267   surfxml_statenames[E_surfxml_cluster] = "cluster";
5268   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5269   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5270   surfxml_statenames[AL_surfxml_peer] = NULL;
5271   surfxml_statenames[E_surfxml_peer] = "peer";
5272   surfxml_statenames[AL_surfxml_router] = NULL;
5273   surfxml_statenames[E_surfxml_router] = "router";
5274   surfxml_statenames[AL_surfxml_backbone] = NULL;
5275   surfxml_statenames[E_surfxml_backbone] = "backbone";
5276   surfxml_statenames[AL_surfxml_link] = NULL;
5277   surfxml_statenames[S_surfxml_link] = "link";
5278   surfxml_statenames[S_surfxml_link_1] = "link";
5279   surfxml_statenames[S_surfxml_link_2] = "link";
5280   surfxml_statenames[E_surfxml_link] = "link";
5281   surfxml_statenames[AL_surfxml_route] = NULL;
5282   surfxml_statenames[S_surfxml_route] = "route";
5283   surfxml_statenames[S_surfxml_route_1] = "route";
5284   surfxml_statenames[S_surfxml_route_2] = "route";
5285   surfxml_statenames[E_surfxml_route] = "route";
5286   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5287   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5288   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5289   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5290   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5291   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
5292   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
5293   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5294   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5295   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5296   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5297   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5298   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5299   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5300   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5301   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5302   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5303   surfxml_statenames[AL_surfxml_process] = NULL;
5304   surfxml_statenames[S_surfxml_process] = "process";
5305   surfxml_statenames[S_surfxml_process_1] = "process";
5306   surfxml_statenames[S_surfxml_process_2] = "process";
5307   surfxml_statenames[E_surfxml_process] = "process";
5308   surfxml_statenames[AL_surfxml_argument] = NULL;
5309   surfxml_statenames[E_surfxml_argument] = "argument";
5310   surfxml_statenames[AL_surfxml_config] = NULL;
5311   surfxml_statenames[S_surfxml_config] = "config";
5312   surfxml_statenames[S_surfxml_config_1] = "config";
5313   surfxml_statenames[S_surfxml_config_2] = "config";
5314   surfxml_statenames[E_surfxml_config] = "config";
5315   surfxml_statenames[AL_surfxml_prop] = NULL;
5316   surfxml_statenames[E_surfxml_prop] = "prop";
5317   }
5318
5319  /* COMMENTS and PIs: handled uniformly for efficiency. */
5320
5321         if ( !(yy_init) )
5322                 {
5323                 (yy_init) = 1;
5324
5325 #ifdef YY_USER_INIT
5326                 YY_USER_INIT;
5327 #endif
5328
5329                 if ( ! (yy_start) )
5330                         (yy_start) = 1; /* first start state */
5331
5332                 if ( ! surf_parse_in )
5333                         surf_parse_in = stdin;
5334
5335                 if ( ! surf_parse_out )
5336                         surf_parse_out = stdout;
5337
5338                 if ( ! YY_CURRENT_BUFFER ) {
5339                         surf_parse_ensure_buffer_stack ();
5340                         YY_CURRENT_BUFFER_LVALUE =
5341                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5342                 }
5343
5344                 surf_parse__load_buffer_state( );
5345                 }
5346
5347         while ( 1 )             /* loops until end-of-file is reached */
5348                 {
5349                 yy_cp = (yy_c_buf_p);
5350
5351                 /* Support of surf_parse_text. */
5352                 *yy_cp = (yy_hold_char);
5353
5354                 /* yy_bp points to the position in yy_ch_buf of the start of
5355                  * the current run.
5356                  */
5357                 yy_bp = yy_cp;
5358
5359                 yy_current_state = (yy_start);
5360 yy_match:
5361                 do
5362                         {
5363                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5364                         if ( yy_accept[yy_current_state] )
5365                                 {
5366                                 (yy_last_accepting_state) = yy_current_state;
5367                                 (yy_last_accepting_cpos) = yy_cp;
5368                                 }
5369                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5370                                 {
5371                                 yy_current_state = (int) yy_def[yy_current_state];
5372                                 if ( yy_current_state >= 3217 )
5373                                         yy_c = yy_meta[(unsigned int) yy_c];
5374                                 }
5375                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5376                         ++yy_cp;
5377                         }
5378                 while ( yy_base[yy_current_state] != 11735 );
5379
5380 yy_find_action:
5381                 yy_act = yy_accept[yy_current_state];
5382                 if ( yy_act == 0 )
5383                         { /* have to back up */
5384                         yy_cp = (yy_last_accepting_cpos);
5385                         yy_current_state = (yy_last_accepting_state);
5386                         yy_act = yy_accept[yy_current_state];
5387                         }
5388
5389                 YY_DO_BEFORE_ACTION;
5390
5391                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5392                         {
5393                         int yyl;
5394                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5395                                 if ( surf_parse_text[yyl] == '\n' )
5396                                            
5397     surf_parse_lineno++;
5398 ;
5399                         }
5400
5401 do_action:      /* This label is used only to access EOF actions. */
5402
5403                 switch ( yy_act )
5404         { /* beginning of action switch */
5405                         case 0: /* must back up */
5406                         /* undo the effects of YY_DO_BEFORE_ACTION */
5407                         *yy_cp = (yy_hold_char);
5408                         yy_cp = (yy_last_accepting_cpos);
5409                         yy_current_state = (yy_last_accepting_state);
5410                         goto yy_find_action;
5411
5412 case 1:
5413 YY_RULE_SETUP
5414 ENTER(INCOMMENT);
5415         YY_BREAK
5416 case 2:
5417 YY_RULE_SETUP
5418 ENTER(INPI);
5419         YY_BREAK
5420
5421 case 3:
5422 YY_RULE_SETUP
5423 LEAVE;
5424         YY_BREAK
5425 case 4:
5426 case 5:
5427 case 6:
5428 /* rule 6 can match eol */
5429 YY_RULE_SETUP
5430 SKIP;
5431         YY_BREAK
5432 case YY_STATE_EOF(INCOMMENT):
5433 FAIL("EOF in comment.");
5434         YY_BREAK
5435
5436 case 7:
5437 YY_RULE_SETUP
5438 LEAVE;
5439         YY_BREAK
5440 case 8:
5441 case 9:
5442 /* rule 9 can match eol */
5443 YY_RULE_SETUP
5444 SKIP;
5445         YY_BREAK
5446 case YY_STATE_EOF(INPI):
5447 FAIL("EOF in PI (processing instruction).");
5448         YY_BREAK
5449
5450 /* SPACES: skipped uniformly */
5451 case 10:
5452 /* rule 10 can match eol */
5453 YY_RULE_SETUP
5454 SKIP;
5455         YY_BREAK
5456 /* PROLOG: determine root element and process it. */
5457
5458 case 11:
5459 /* rule 11 can match eol */
5460 YY_RULE_SETUP
5461 SET(DOCTYPE); 
5462         YY_BREAK
5463 case 12:
5464 /* rule 12 can match eol */
5465 YY_RULE_SETUP
5466 FAIL("Bad declaration %s.",surf_parse_text);
5467         YY_BREAK
5468
5469 case 13:
5470 /* rule 13 can match eol */
5471 YY_RULE_SETUP
5472 SET(ROOT_surfxml_platform);
5473         YY_BREAK
5474 case 14:
5475 /* rule 14 can match eol */
5476 YY_RULE_SETUP
5477 FAIL("Bad declaration %s.",surf_parse_text);
5478         YY_BREAK
5479 case 15:
5480 YY_RULE_SETUP
5481 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5482         YY_BREAK
5483 case YY_STATE_EOF(PROLOG):
5484 case YY_STATE_EOF(DOCTYPE):
5485 FAIL("EOF in prolog.");
5486         YY_BREAK
5487
5488 /* RULES DERIVED FROM DTD. */
5489 /* <!-- Small DTD for SURF based tools. -->  */
5490 case 16:
5491 /* rule 16 can match eol */
5492 YY_RULE_SETUP
5493 FAIL("Starting tag <platform> is not allowed here.");
5494         YY_BREAK
5495 case 17:
5496 /* rule 17 can match eol */
5497 YY_RULE_SETUP
5498 {
5499   AX_surfxml_platform_version = 1;
5500   surfxml_platform_version_isset = 0;
5501   ENTER(AL_surfxml_platform); pushbuffer(0);
5502   }
5503         YY_BREAK
5504
5505 case 18:
5506 /* rule 18 can match eol */
5507 YY_RULE_SETUP
5508 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);
5509         YY_BREAK
5510 case 19:
5511 /* rule 19 can match eol */
5512 YY_RULE_SETUP
5513 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);
5514         YY_BREAK
5515 case 20:
5516 YY_RULE_SETUP
5517 {
5518   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5519  }
5520         YY_BREAK
5521 case 21:
5522 YY_RULE_SETUP
5523 {
5524   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5525   switch (YY_START) {
5526    case ROOT_surfxml_platform: SET(EPILOG); break;
5527   }
5528  }
5529         YY_BREAK
5530 case 22:
5531 YY_RULE_SETUP
5532 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5533         YY_BREAK
5534 case 23:
5535 YY_RULE_SETUP
5536 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5537         YY_BREAK
5538 case YY_STATE_EOF(AL_surfxml_platform):
5539 FAIL("EOF in attribute list of `platform' element.");
5540         YY_BREAK
5541
5542 case 24:
5543 /* rule 24 can match eol */
5544 YY_RULE_SETUP
5545 {
5546   LEAVE;
5547   ETag_surfxml_platform();
5548   popbuffer(); /* attribute */
5549   switch (YY_START) {
5550    case ROOT_surfxml_platform: SET(EPILOG); break;
5551   }
5552  }
5553         YY_BREAK
5554 case 25:
5555 /* rule 25 can match eol */
5556 YY_RULE_SETUP
5557 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5558         YY_BREAK
5559 case 26:
5560 YY_RULE_SETUP
5561 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5562         YY_BREAK
5563 case YY_STATE_EOF(S_surfxml_platform_8):
5564 case YY_STATE_EOF(S_surfxml_platform_1):
5565 case YY_STATE_EOF(S_surfxml_platform_3):
5566 case YY_STATE_EOF(S_surfxml_platform):
5567 case YY_STATE_EOF(S_surfxml_platform_4):
5568 case YY_STATE_EOF(S_surfxml_platform_6):
5569 case YY_STATE_EOF(E_surfxml_platform):
5570 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5571         YY_BREAK
5572
5573 case 27:
5574 /* rule 27 can match eol */
5575 YY_RULE_SETUP
5576 FAIL("Starting tag <include> is not allowed here.");
5577         YY_BREAK
5578 case 28:
5579 /* rule 28 can match eol */
5580 YY_RULE_SETUP
5581 {
5582   AX_surfxml_include_file = 0;
5583   surfxml_include_file_isset = 0;
5584   ENTER(AL_surfxml_include); pushbuffer(0);
5585   }
5586         YY_BREAK
5587
5588 case 29:
5589 /* rule 29 can match eol */
5590 YY_RULE_SETUP
5591 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);
5592         YY_BREAK
5593 case 30:
5594 /* rule 30 can match eol */
5595 YY_RULE_SETUP
5596 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);
5597         YY_BREAK
5598 case 31:
5599 YY_RULE_SETUP
5600 {
5601   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5602   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5603  }
5604         YY_BREAK
5605 case 32:
5606 YY_RULE_SETUP
5607 {
5608   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5609   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5610   switch (YY_START) {
5611    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5612    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5613    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5614    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5615   }
5616  }
5617         YY_BREAK
5618 case 33:
5619 YY_RULE_SETUP
5620 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5621         YY_BREAK
5622 case 34:
5623 YY_RULE_SETUP
5624 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5625         YY_BREAK
5626 case YY_STATE_EOF(AL_surfxml_include):
5627 FAIL("EOF in attribute list of `include' element.");
5628         YY_BREAK
5629
5630 case 35:
5631 /* rule 35 can match eol */
5632 YY_RULE_SETUP
5633 {
5634   LEAVE;
5635   ETag_surfxml_include();
5636   popbuffer(); /* attribute */
5637   switch (YY_START) {
5638    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5639    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5640    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5641    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5642   }
5643  }
5644         YY_BREAK
5645 case 36:
5646 /* rule 36 can match eol */
5647 YY_RULE_SETUP
5648 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5649         YY_BREAK
5650 case 37:
5651 YY_RULE_SETUP
5652 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5653         YY_BREAK
5654 case YY_STATE_EOF(E_surfxml_include):
5655 case YY_STATE_EOF(S_surfxml_include):
5656 case YY_STATE_EOF(S_surfxml_include_2):
5657 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5658         YY_BREAK
5659
5660 case 38:
5661 /* rule 38 can match eol */
5662 YY_RULE_SETUP
5663 FAIL("Starting tag <trace> is not allowed here.");
5664         YY_BREAK
5665 case 39:
5666 /* rule 39 can match eol */
5667 YY_RULE_SETUP
5668 {
5669   AX_surfxml_trace_id = 0;
5670   surfxml_trace_id_isset = 0;
5671   AX_surfxml_trace_file = 0;
5672   surfxml_trace_file_isset = 0;
5673   AX_surfxml_trace_periodicity = 0;
5674   surfxml_trace_periodicity_isset = 0;
5675   ENTER(AL_surfxml_trace); pushbuffer(0);
5676   }
5677         YY_BREAK
5678
5679 case 40:
5680 /* rule 40 can match eol */
5681 YY_RULE_SETUP
5682 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);
5683         YY_BREAK
5684 case 41:
5685 /* rule 41 can match eol */
5686 YY_RULE_SETUP
5687 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);
5688         YY_BREAK
5689 case 42:
5690 /* rule 42 can match eol */
5691 YY_RULE_SETUP
5692 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);
5693         YY_BREAK
5694 case 43:
5695 /* rule 43 can match eol */
5696 YY_RULE_SETUP
5697 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);
5698         YY_BREAK
5699 case 44:
5700 /* rule 44 can match eol */
5701 YY_RULE_SETUP
5702 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);
5703         YY_BREAK
5704 case 45:
5705 /* rule 45 can match eol */
5706 YY_RULE_SETUP
5707 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);
5708         YY_BREAK
5709 case 46:
5710 YY_RULE_SETUP
5711 {
5712   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5713   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5714   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5715  }
5716         YY_BREAK
5717 case 47:
5718 YY_RULE_SETUP
5719 {
5720   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5721   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5722   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5723   switch (YY_START) {
5724    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5725    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5726    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5727    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5728    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5729    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5730    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5731   }
5732  }
5733         YY_BREAK
5734 case 48:
5735 YY_RULE_SETUP
5736 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5737         YY_BREAK
5738 case 49:
5739 YY_RULE_SETUP
5740 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5741         YY_BREAK
5742 case YY_STATE_EOF(AL_surfxml_trace):
5743 FAIL("EOF in attribute list of `trace' element.");
5744         YY_BREAK
5745
5746 case 50:
5747 /* rule 50 can match eol */
5748 YY_RULE_SETUP
5749 {
5750   LEAVE;
5751   BUFFERDONE;
5752   ETag_surfxml_trace();
5753   surfxml_pcdata_ix = popbuffer();
5754   popbuffer(); /* attribute */
5755   switch (YY_START) {
5756    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5757    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5758    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5759    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5760    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5761    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5762    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5763   }
5764  }
5765         YY_BREAK
5766 case 51:
5767 /* rule 51 can match eol */
5768 YY_RULE_SETUP
5769 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5770         YY_BREAK
5771 case YY_STATE_EOF(IN_trace):
5772 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5773         YY_BREAK
5774
5775 case 52:
5776 /* rule 52 can match eol */
5777 YY_RULE_SETUP
5778 FAIL("Starting tag <random> is not allowed here.");
5779         YY_BREAK
5780 case 53:
5781 /* rule 53 can match eol */
5782 YY_RULE_SETUP
5783 {
5784   AX_surfxml_random_id = 0;
5785   surfxml_random_id_isset = 0;
5786   AX_surfxml_random_min = 0;
5787   surfxml_random_min_isset = 0;
5788   AX_surfxml_random_max = 0;
5789   surfxml_random_max_isset = 0;
5790   AX_surfxml_random_mean = 0;
5791   surfxml_random_mean_isset = 0;
5792   AX_surfxml_random_std_deviation = 0;
5793   surfxml_random_std_deviation_isset = 0;
5794   AX_surfxml_random_seed = 5;
5795   surfxml_random_seed_isset = 0;
5796   AX_surfxml_random_radical = 0;
5797   surfxml_random_radical_isset = 0;
5798   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5799   surfxml_random_generator_isset = 0;
5800   ENTER(AL_surfxml_random); pushbuffer(0);
5801   }
5802         YY_BREAK
5803
5804 case 54:
5805 /* rule 54 can match eol */
5806 YY_RULE_SETUP
5807 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);
5808         YY_BREAK
5809 case 55:
5810 /* rule 55 can match eol */
5811 YY_RULE_SETUP
5812 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);
5813         YY_BREAK
5814 case 56:
5815 /* rule 56 can match eol */
5816 YY_RULE_SETUP
5817 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);
5818         YY_BREAK
5819 case 57:
5820 /* rule 57 can match eol */
5821 YY_RULE_SETUP
5822 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);
5823         YY_BREAK
5824 case 58:
5825 /* rule 58 can match eol */
5826 YY_RULE_SETUP
5827 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);
5828         YY_BREAK
5829 case 59:
5830 /* rule 59 can match eol */
5831 YY_RULE_SETUP
5832 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);
5833         YY_BREAK
5834 case 60:
5835 /* rule 60 can match eol */
5836 YY_RULE_SETUP
5837 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);
5838         YY_BREAK
5839 case 61:
5840 /* rule 61 can match eol */
5841 YY_RULE_SETUP
5842 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);
5843         YY_BREAK
5844 case 62:
5845 /* rule 62 can match eol */
5846 YY_RULE_SETUP
5847 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);
5848         YY_BREAK
5849 case 63:
5850 /* rule 63 can match eol */
5851 YY_RULE_SETUP
5852 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);
5853         YY_BREAK
5854 case 64:
5855 /* rule 64 can match eol */
5856 YY_RULE_SETUP
5857 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);
5858         YY_BREAK
5859 case 65:
5860 /* rule 65 can match eol */
5861 YY_RULE_SETUP
5862 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);
5863         YY_BREAK
5864 case 66:
5865 /* rule 66 can match eol */
5866 YY_RULE_SETUP
5867 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);
5868         YY_BREAK
5869 case 67:
5870 /* rule 67 can match eol */
5871 YY_RULE_SETUP
5872 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);
5873         YY_BREAK
5874 case 68:
5875 /* rule 68 can match eol */
5876 case 69:
5877 /* rule 69 can match eol */
5878 YY_RULE_SETUP
5879 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5880         YY_BREAK
5881 case 70:
5882 /* rule 70 can match eol */
5883 case 71:
5884 /* rule 71 can match eol */
5885 YY_RULE_SETUP
5886 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5887         YY_BREAK
5888 case 72:
5889 /* rule 72 can match eol */
5890 case 73:
5891 /* rule 73 can match eol */
5892 YY_RULE_SETUP
5893 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5894         YY_BREAK
5895 case 74:
5896 /* rule 74 can match eol */
5897 case 75:
5898 /* rule 75 can match eol */
5899 YY_RULE_SETUP
5900 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5901         YY_BREAK
5902 case 76:
5903 YY_RULE_SETUP
5904 {
5905   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5906   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5907   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5908   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5909   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5910   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5911  }
5912         YY_BREAK
5913 case 77:
5914 YY_RULE_SETUP
5915 {
5916   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5917   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5918   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5919   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5920   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5921   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5922   switch (YY_START) {
5923    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5924   }
5925  }
5926         YY_BREAK
5927 case 78:
5928 YY_RULE_SETUP
5929 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5930         YY_BREAK
5931 case 79:
5932 YY_RULE_SETUP
5933 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5934         YY_BREAK
5935 case YY_STATE_EOF(AL_surfxml_random):
5936 FAIL("EOF in attribute list of `random' element.");
5937         YY_BREAK
5938
5939 case 80:
5940 /* rule 80 can match eol */
5941 YY_RULE_SETUP
5942 {
5943   LEAVE;
5944   ETag_surfxml_random();
5945   popbuffer(); /* attribute */
5946   switch (YY_START) {
5947    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5948   }
5949  }
5950         YY_BREAK
5951 case 81:
5952 /* rule 81 can match eol */
5953 YY_RULE_SETUP
5954 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5955         YY_BREAK
5956 case 82:
5957 YY_RULE_SETUP
5958 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5959         YY_BREAK
5960 case YY_STATE_EOF(S_surfxml_random):
5961 case YY_STATE_EOF(S_surfxml_random_2):
5962 case YY_STATE_EOF(E_surfxml_random):
5963 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5964         YY_BREAK
5965
5966 case 83:
5967 /* rule 83 can match eol */
5968 YY_RULE_SETUP
5969 FAIL("Starting tag <trace_connect> is not allowed here.");
5970         YY_BREAK
5971 case 84:
5972 /* rule 84 can match eol */
5973 YY_RULE_SETUP
5974 {
5975   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5976   surfxml_trace_connect_kind_isset = 0;
5977   AX_surfxml_trace_connect_trace = 0;
5978   surfxml_trace_connect_trace_isset = 0;
5979   AX_surfxml_trace_connect_element = 0;
5980   surfxml_trace_connect_element_isset = 0;
5981   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5982   }
5983         YY_BREAK
5984
5985 case 85:
5986 /* rule 85 can match eol */
5987 case 86:
5988 /* rule 86 can match eol */
5989 YY_RULE_SETUP
5990 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5991         YY_BREAK
5992 case 87:
5993 /* rule 87 can match eol */
5994 case 88:
5995 /* rule 88 can match eol */
5996 YY_RULE_SETUP
5997 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5998         YY_BREAK
5999 case 89:
6000 /* rule 89 can match eol */
6001 case 90:
6002 /* rule 90 can match eol */
6003 YY_RULE_SETUP
6004 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
6005         YY_BREAK
6006 case 91:
6007 /* rule 91 can match eol */
6008 case 92:
6009 /* rule 92 can match eol */
6010 YY_RULE_SETUP
6011 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
6012         YY_BREAK
6013 case 93:
6014 /* rule 93 can match eol */
6015 case 94:
6016 /* rule 94 can match eol */
6017 YY_RULE_SETUP
6018 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
6019         YY_BREAK
6020 case 95:
6021 /* rule 95 can match eol */
6022 YY_RULE_SETUP
6023 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);
6024         YY_BREAK
6025 case 96:
6026 /* rule 96 can match eol */
6027 YY_RULE_SETUP
6028 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);
6029         YY_BREAK
6030 case 97:
6031 /* rule 97 can match eol */
6032 YY_RULE_SETUP
6033 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);
6034         YY_BREAK
6035 case 98:
6036 /* rule 98 can match eol */
6037 YY_RULE_SETUP
6038 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);
6039         YY_BREAK
6040 case 99:
6041 YY_RULE_SETUP
6042 {
6043   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6044   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6045   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
6046  }
6047         YY_BREAK
6048 case 100:
6049 YY_RULE_SETUP
6050 {
6051   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6052   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6053   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
6054   switch (YY_START) {
6055    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
6056    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6057    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
6058    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6059    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6060    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
6061    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6062   }
6063  }
6064         YY_BREAK
6065 case 101:
6066 YY_RULE_SETUP
6067 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6068         YY_BREAK
6069 case 102:
6070 YY_RULE_SETUP
6071 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6072         YY_BREAK
6073 case YY_STATE_EOF(AL_surfxml_trace_connect):
6074 FAIL("EOF in attribute list of `trace_connect' element.");
6075         YY_BREAK
6076
6077 case 103:
6078 /* rule 103 can match eol */
6079 YY_RULE_SETUP
6080 {
6081   LEAVE;
6082   ETag_surfxml_trace_connect();
6083   popbuffer(); /* attribute */
6084   switch (YY_START) {
6085    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
6086    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6087    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
6088    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6089    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6090    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
6091    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6092   }
6093  }
6094         YY_BREAK
6095 case 104:
6096 /* rule 104 can match eol */
6097 YY_RULE_SETUP
6098 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6099         YY_BREAK
6100 case 105:
6101 YY_RULE_SETUP
6102 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6103         YY_BREAK
6104 case YY_STATE_EOF(E_surfxml_trace_connect):
6105 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6106         YY_BREAK
6107
6108 case 106:
6109 /* rule 106 can match eol */
6110 YY_RULE_SETUP
6111 FAIL("Starting tag <AS> is not allowed here.");
6112         YY_BREAK
6113 case 107:
6114 /* rule 107 can match eol */
6115 YY_RULE_SETUP
6116 {
6117   AX_surfxml_AS_id = 0;
6118   surfxml_AS_id_isset = 0;
6119   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6120   surfxml_AS_routing_isset = 0;
6121   ENTER(AL_surfxml_AS); pushbuffer(0);
6122   }
6123         YY_BREAK
6124
6125 case 108:
6126 /* rule 108 can match eol */
6127 YY_RULE_SETUP
6128 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);
6129         YY_BREAK
6130 case 109:
6131 /* rule 109 can match eol */
6132 YY_RULE_SETUP
6133 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);
6134         YY_BREAK
6135 case 110:
6136 /* rule 110 can match eol */
6137 case 111:
6138 /* rule 111 can match eol */
6139 YY_RULE_SETUP
6140 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6141         YY_BREAK
6142 case 112:
6143 /* rule 112 can match eol */
6144 case 113:
6145 /* rule 113 can match eol */
6146 YY_RULE_SETUP
6147 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6148         YY_BREAK
6149 case 114:
6150 /* rule 114 can match eol */
6151 case 115:
6152 /* rule 115 can match eol */
6153 YY_RULE_SETUP
6154 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6155         YY_BREAK
6156 case 116:
6157 /* rule 116 can match eol */
6158 case 117:
6159 /* rule 117 can match eol */
6160 YY_RULE_SETUP
6161 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6162         YY_BREAK
6163 case 118:
6164 /* rule 118 can match eol */
6165 case 119:
6166 /* rule 119 can match eol */
6167 YY_RULE_SETUP
6168 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6169         YY_BREAK
6170 case 120:
6171 /* rule 120 can match eol */
6172 case 121:
6173 /* rule 121 can match eol */
6174 YY_RULE_SETUP
6175 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
6176         YY_BREAK
6177 case 122:
6178 /* rule 122 can match eol */
6179 case 123:
6180 /* rule 123 can match eol */
6181 YY_RULE_SETUP
6182 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6183         YY_BREAK
6184 case 124:
6185 /* rule 124 can match eol */
6186 case 125:
6187 /* rule 125 can match eol */
6188 YY_RULE_SETUP
6189 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6190         YY_BREAK
6191 case 126:
6192 YY_RULE_SETUP
6193 {
6194   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6195   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6196  }
6197         YY_BREAK
6198 case 127:
6199 YY_RULE_SETUP
6200 {
6201   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6202   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6203   switch (YY_START) {
6204    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6205    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6206    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6207   }
6208  }
6209         YY_BREAK
6210 case 128:
6211 YY_RULE_SETUP
6212 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6213         YY_BREAK
6214 case 129:
6215 YY_RULE_SETUP
6216 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6217         YY_BREAK
6218 case YY_STATE_EOF(AL_surfxml_AS):
6219 FAIL("EOF in attribute list of `AS' element.");
6220         YY_BREAK
6221
6222 case 130:
6223 /* rule 130 can match eol */
6224 YY_RULE_SETUP
6225 {
6226   LEAVE;
6227   ETag_surfxml_AS();
6228   popbuffer(); /* attribute */
6229   switch (YY_START) {
6230    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6231    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6232    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6233   }
6234  }
6235         YY_BREAK
6236 case 131:
6237 /* rule 131 can match eol */
6238 YY_RULE_SETUP
6239 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6240         YY_BREAK
6241 case 132:
6242 YY_RULE_SETUP
6243 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6244         YY_BREAK
6245 case YY_STATE_EOF(S_surfxml_AS_9):
6246 case YY_STATE_EOF(S_surfxml_AS_1):
6247 case YY_STATE_EOF(S_surfxml_AS_11):
6248 case YY_STATE_EOF(S_surfxml_AS_6):
6249 case YY_STATE_EOF(E_surfxml_AS):
6250 case YY_STATE_EOF(S_surfxml_AS_3):
6251 case YY_STATE_EOF(S_surfxml_AS_13):
6252 case YY_STATE_EOF(S_surfxml_AS_8):
6253 case YY_STATE_EOF(S_surfxml_AS):
6254 case YY_STATE_EOF(S_surfxml_AS_4):
6255 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6256         YY_BREAK
6257
6258 case 133:
6259 /* rule 133 can match eol */
6260 YY_RULE_SETUP
6261 FAIL("Starting tag <storage_type> is not allowed here.");
6262         YY_BREAK
6263 case 134:
6264 /* rule 134 can match eol */
6265 YY_RULE_SETUP
6266 {
6267   AX_surfxml_storage_type_id = 0;
6268   surfxml_storage_type_id_isset = 0;
6269   AX_surfxml_storage_type_model = 0;
6270   surfxml_storage_type_model_isset = 0;
6271   AX_surfxml_storage_type_size = 0;
6272   surfxml_storage_type_size_isset = 0;
6273   AX_surfxml_storage_type_content = 0;
6274   surfxml_storage_type_content_isset = 0;
6275   ENTER(AL_surfxml_storage_type); pushbuffer(0);
6276   }
6277         YY_BREAK
6278
6279 case 135:
6280 /* rule 135 can match eol */
6281 YY_RULE_SETUP
6282 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);
6283         YY_BREAK
6284 case 136:
6285 /* rule 136 can match eol */
6286 YY_RULE_SETUP
6287 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);
6288         YY_BREAK
6289 case 137:
6290 /* rule 137 can match eol */
6291 YY_RULE_SETUP
6292 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);
6293         YY_BREAK
6294 case 138:
6295 /* rule 138 can match eol */
6296 YY_RULE_SETUP
6297 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);
6298         YY_BREAK
6299 case 139:
6300 /* rule 139 can match eol */
6301 YY_RULE_SETUP
6302 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);
6303         YY_BREAK
6304 case 140:
6305 /* rule 140 can match eol */
6306 YY_RULE_SETUP
6307 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);
6308         YY_BREAK
6309 case 141:
6310 /* rule 141 can match eol */
6311 YY_RULE_SETUP
6312 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);
6313         YY_BREAK
6314 case 142:
6315 /* rule 142 can match eol */
6316 YY_RULE_SETUP
6317 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);
6318         YY_BREAK
6319 case 143:
6320 YY_RULE_SETUP
6321 {
6322   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6323   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6324   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6325   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
6326  }
6327         YY_BREAK
6328 case 144:
6329 YY_RULE_SETUP
6330 {
6331   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6332   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6333   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6334   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
6335   switch (YY_START) {
6336    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6337    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6338   }
6339  }
6340         YY_BREAK
6341 case 145:
6342 YY_RULE_SETUP
6343 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6344         YY_BREAK
6345 case 146:
6346 YY_RULE_SETUP
6347 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6348         YY_BREAK
6349 case YY_STATE_EOF(AL_surfxml_storage_type):
6350 FAIL("EOF in attribute list of `storage_type' element.");
6351         YY_BREAK
6352
6353 case 147:
6354 /* rule 147 can match eol */
6355 YY_RULE_SETUP
6356 {
6357   LEAVE;
6358   ETag_surfxml_storage_type();
6359   popbuffer(); /* attribute */
6360   switch (YY_START) {
6361    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6362    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6363   }
6364  }
6365         YY_BREAK
6366 case 148:
6367 /* rule 148 can match eol */
6368 YY_RULE_SETUP
6369 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6370         YY_BREAK
6371 case 149:
6372 YY_RULE_SETUP
6373 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6374         YY_BREAK
6375 case YY_STATE_EOF(E_surfxml_storage_type):
6376 case YY_STATE_EOF(S_surfxml_storage_type_2):
6377 case YY_STATE_EOF(S_surfxml_storage_type):
6378 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6379         YY_BREAK
6380
6381 case 150:
6382 /* rule 150 can match eol */
6383 YY_RULE_SETUP
6384 FAIL("Starting tag <storage> is not allowed here.");
6385         YY_BREAK
6386 case 151:
6387 /* rule 151 can match eol */
6388 YY_RULE_SETUP
6389 {
6390   AX_surfxml_storage_id = 0;
6391   surfxml_storage_id_isset = 0;
6392   AX_surfxml_storage_typeId = 0;
6393   surfxml_storage_typeId_isset = 0;
6394   AX_surfxml_storage_content = 0;
6395   surfxml_storage_content_isset = 0;
6396   ENTER(AL_surfxml_storage); pushbuffer(0);
6397   }
6398         YY_BREAK
6399
6400 case 152:
6401 /* rule 152 can match eol */
6402 YY_RULE_SETUP
6403 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);
6404         YY_BREAK
6405 case 153:
6406 /* rule 153 can match eol */
6407 YY_RULE_SETUP
6408 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);
6409         YY_BREAK
6410 case 154:
6411 /* rule 154 can match eol */
6412 YY_RULE_SETUP
6413 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);
6414         YY_BREAK
6415 case 155:
6416 /* rule 155 can match eol */
6417 YY_RULE_SETUP
6418 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);
6419         YY_BREAK
6420 case 156:
6421 /* rule 156 can match eol */
6422 YY_RULE_SETUP
6423 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);
6424         YY_BREAK
6425 case 157:
6426 /* rule 157 can match eol */
6427 YY_RULE_SETUP
6428 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);
6429         YY_BREAK
6430 case 158:
6431 YY_RULE_SETUP
6432 {
6433   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6434   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6435   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6436  }
6437         YY_BREAK
6438 case 159:
6439 YY_RULE_SETUP
6440 {
6441   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6442   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6443   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6444   switch (YY_START) {
6445    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6446    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6447   }
6448  }
6449         YY_BREAK
6450 case 160:
6451 YY_RULE_SETUP
6452 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6453         YY_BREAK
6454 case 161:
6455 YY_RULE_SETUP
6456 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6457         YY_BREAK
6458 case YY_STATE_EOF(AL_surfxml_storage):
6459 FAIL("EOF in attribute list of `storage' element.");
6460         YY_BREAK
6461
6462 case 162:
6463 /* rule 162 can match eol */
6464 YY_RULE_SETUP
6465 {
6466   LEAVE;
6467   ETag_surfxml_storage();
6468   popbuffer(); /* attribute */
6469   switch (YY_START) {
6470    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6471    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6472   }
6473  }
6474         YY_BREAK
6475 case 163:
6476 /* rule 163 can match eol */
6477 YY_RULE_SETUP
6478 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6479         YY_BREAK
6480 case 164:
6481 YY_RULE_SETUP
6482 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6483         YY_BREAK
6484 case YY_STATE_EOF(E_surfxml_storage):
6485 case YY_STATE_EOF(S_surfxml_storage):
6486 case YY_STATE_EOF(S_surfxml_storage_2):
6487 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6488         YY_BREAK
6489
6490 case 165:
6491 /* rule 165 can match eol */
6492 YY_RULE_SETUP
6493 FAIL("Starting tag <mount> is not allowed here.");
6494         YY_BREAK
6495 case 166:
6496 /* rule 166 can match eol */
6497 YY_RULE_SETUP
6498 {
6499   AX_surfxml_mount_id = 0;
6500   surfxml_mount_id_isset = 0;
6501   AX_surfxml_mount_name = 0;
6502   surfxml_mount_name_isset = 0;
6503   ENTER(AL_surfxml_mount); pushbuffer(0);
6504   }
6505         YY_BREAK
6506
6507 case 167:
6508 /* rule 167 can match eol */
6509 YY_RULE_SETUP
6510 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");} surfxml_mount_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
6511         YY_BREAK
6512 case 168:
6513 /* rule 168 can match eol */
6514 YY_RULE_SETUP
6515 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");}  surfxml_mount_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
6516         YY_BREAK
6517 case 169:
6518 /* rule 169 can match eol */
6519 YY_RULE_SETUP
6520 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);
6521         YY_BREAK
6522 case 170:
6523 /* rule 170 can match eol */
6524 YY_RULE_SETUP
6525 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);
6526         YY_BREAK
6527 case 171:
6528 YY_RULE_SETUP
6529 {
6530   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6531   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6532   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6533  }
6534         YY_BREAK
6535 case 172:
6536 YY_RULE_SETUP
6537 {
6538   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6539   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6540   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6541   switch (YY_START) {
6542    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6543   }
6544  }
6545         YY_BREAK
6546 case 173:
6547 YY_RULE_SETUP
6548 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6549         YY_BREAK
6550 case 174:
6551 YY_RULE_SETUP
6552 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6553         YY_BREAK
6554 case YY_STATE_EOF(AL_surfxml_mount):
6555 FAIL("EOF in attribute list of `mount' element.");
6556         YY_BREAK
6557
6558 case 175:
6559 /* rule 175 can match eol */
6560 YY_RULE_SETUP
6561 {
6562   LEAVE;
6563   ETag_surfxml_mount();
6564   popbuffer(); /* attribute */
6565   switch (YY_START) {
6566    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6567   }
6568  }
6569         YY_BREAK
6570 case 176:
6571 /* rule 176 can match eol */
6572 YY_RULE_SETUP
6573 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6574         YY_BREAK
6575 case 177:
6576 YY_RULE_SETUP
6577 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6578         YY_BREAK
6579 case YY_STATE_EOF(E_surfxml_mount):
6580 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6581         YY_BREAK
6582
6583 case 178:
6584 /* rule 178 can match eol */
6585 YY_RULE_SETUP
6586 FAIL("Starting tag <mstorage> is not allowed here.");
6587         YY_BREAK
6588 case 179:
6589 /* rule 179 can match eol */
6590 YY_RULE_SETUP
6591 {
6592   AX_surfxml_mstorage_typeId = 0;
6593   surfxml_mstorage_typeId_isset = 0;
6594   AX_surfxml_mstorage_name = 0;
6595   surfxml_mstorage_name_isset = 0;
6596   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6597   }
6598         YY_BREAK
6599
6600 case 180:
6601 /* rule 180 can match eol */
6602 YY_RULE_SETUP
6603 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
6604         YY_BREAK
6605 case 181:
6606 /* rule 181 can match eol */
6607 YY_RULE_SETUP
6608 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
6609         YY_BREAK
6610 case 182:
6611 /* rule 182 can match eol */
6612 YY_RULE_SETUP
6613 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
6614         YY_BREAK
6615 case 183:
6616 /* rule 183 can match eol */
6617 YY_RULE_SETUP
6618 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
6619         YY_BREAK
6620 case 184:
6621 YY_RULE_SETUP
6622 {
6623   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6624   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6625   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6626  }
6627         YY_BREAK
6628 case 185:
6629 YY_RULE_SETUP
6630 {
6631   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6632   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6633   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6634   switch (YY_START) {
6635    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6636   }
6637  }
6638         YY_BREAK
6639 case 186:
6640 YY_RULE_SETUP
6641 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6642         YY_BREAK
6643 case 187:
6644 YY_RULE_SETUP
6645 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6646         YY_BREAK
6647 case YY_STATE_EOF(AL_surfxml_mstorage):
6648 FAIL("EOF in attribute list of `mstorage' element.");
6649         YY_BREAK
6650
6651 case 188:
6652 /* rule 188 can match eol */
6653 YY_RULE_SETUP
6654 {
6655   LEAVE;
6656   ETag_surfxml_mstorage();
6657   popbuffer(); /* attribute */
6658   switch (YY_START) {
6659    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6660   }
6661  }
6662         YY_BREAK
6663 case 189:
6664 /* rule 189 can match eol */
6665 YY_RULE_SETUP
6666 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6667         YY_BREAK
6668 case 190:
6669 YY_RULE_SETUP
6670 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6671         YY_BREAK
6672 case YY_STATE_EOF(E_surfxml_mstorage):
6673 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6674         YY_BREAK
6675
6676 case 191:
6677 /* rule 191 can match eol */
6678 YY_RULE_SETUP
6679 FAIL("Starting tag <host> is not allowed here.");
6680         YY_BREAK
6681 case 192:
6682 /* rule 192 can match eol */
6683 YY_RULE_SETUP
6684 {
6685   AX_surfxml_host_id = 0;
6686   surfxml_host_id_isset = 0;
6687   AX_surfxml_host_power = 0;
6688   surfxml_host_power_isset = 0;
6689   AX_surfxml_host_core = 16;
6690   surfxml_host_core_isset = 0;
6691   AX_surfxml_host_availability = 18;
6692   surfxml_host_availability_isset = 0;
6693   AX_surfxml_host_availability_file = 0;
6694   surfxml_host_availability_file_isset = 0;
6695   AX_surfxml_host_state = A_surfxml_host_state_ON;
6696   surfxml_host_state_isset = 0;
6697   AX_surfxml_host_state_file = 0;
6698   surfxml_host_state_file_isset = 0;
6699   AX_surfxml_host_coordinates = 0;
6700   surfxml_host_coordinates_isset = 0;
6701   ENTER(AL_surfxml_host); pushbuffer(0);
6702   }
6703         YY_BREAK
6704
6705 case 193:
6706 /* rule 193 can match eol */
6707 YY_RULE_SETUP
6708 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);
6709         YY_BREAK
6710 case 194:
6711 /* rule 194 can match eol */
6712 YY_RULE_SETUP
6713 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);
6714         YY_BREAK
6715 case 195:
6716 /* rule 195 can match eol */
6717 YY_RULE_SETUP
6718 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
6719         YY_BREAK
6720 case 196:
6721 /* rule 196 can match eol */
6722 YY_RULE_SETUP
6723 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
6724         YY_BREAK
6725 case 197:
6726 /* rule 197 can match eol */
6727 YY_RULE_SETUP
6728 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);
6729         YY_BREAK
6730 case 198:
6731 /* rule 198 can match eol */
6732 YY_RULE_SETUP
6733 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);
6734         YY_BREAK
6735 case 199:
6736 /* rule 199 can match eol */
6737 YY_RULE_SETUP
6738 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
6739         YY_BREAK
6740 case 200:
6741 /* rule 200 can match eol */
6742 YY_RULE_SETUP
6743 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
6744         YY_BREAK
6745 case 201:
6746 /* rule 201 can match eol */
6747 YY_RULE_SETUP
6748 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);
6749         YY_BREAK
6750 case 202:
6751 /* rule 202 can match eol */
6752 YY_RULE_SETUP
6753 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);
6754         YY_BREAK
6755 case 203:
6756 /* rule 203 can match eol */
6757 case 204:
6758 /* rule 204 can match eol */
6759 YY_RULE_SETUP
6760 A_surfxml_host_state = A_surfxml_host_state_ON;
6761         YY_BREAK
6762 case 205:
6763 /* rule 205 can match eol */
6764 case 206:
6765 /* rule 206 can match eol */
6766 YY_RULE_SETUP
6767 A_surfxml_host_state = A_surfxml_host_state_OFF;
6768         YY_BREAK
6769 case 207:
6770 /* rule 207 can match eol */
6771 YY_RULE_SETUP
6772 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);
6773         YY_BREAK
6774 case 208:
6775 /* rule 208 can match eol */
6776 YY_RULE_SETUP
6777 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);
6778         YY_BREAK
6779 case 209:
6780 /* rule 209 can match eol */
6781 YY_RULE_SETUP
6782 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);
6783         YY_BREAK
6784 case 210:
6785 /* rule 210 can match eol */
6786 YY_RULE_SETUP
6787 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);
6788         YY_BREAK
6789 case 211:
6790 YY_RULE_SETUP
6791 {
6792   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6793   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6794   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6795  }
6796         YY_BREAK
6797 case 212:
6798 YY_RULE_SETUP
6799 {
6800   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6801   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6802   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6803   switch (YY_START) {
6804    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6805   }
6806  }
6807         YY_BREAK
6808 case 213:
6809 YY_RULE_SETUP
6810 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6811         YY_BREAK
6812 case 214:
6813 YY_RULE_SETUP
6814 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6815         YY_BREAK
6816 case YY_STATE_EOF(AL_surfxml_host):
6817 FAIL("EOF in attribute list of `host' element.");
6818         YY_BREAK
6819
6820 case 215:
6821 /* rule 215 can match eol */
6822 YY_RULE_SETUP
6823 {
6824   LEAVE;
6825   ETag_surfxml_host();
6826   popbuffer(); /* attribute */
6827   switch (YY_START) {
6828    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6829   }
6830  }
6831         YY_BREAK
6832 case 216:
6833 /* rule 216 can match eol */
6834 YY_RULE_SETUP
6835 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6836         YY_BREAK
6837 case 217:
6838 YY_RULE_SETUP
6839 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6840         YY_BREAK
6841 case YY_STATE_EOF(S_surfxml_host):
6842 case YY_STATE_EOF(E_surfxml_host):
6843 case YY_STATE_EOF(S_surfxml_host_2):
6844 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6845         YY_BREAK
6846
6847 case 218:
6848 /* rule 218 can match eol */
6849 YY_RULE_SETUP
6850 FAIL("Starting tag <host_link> is not allowed here.");
6851         YY_BREAK
6852 case 219:
6853 /* rule 219 can match eol */
6854 YY_RULE_SETUP
6855 {
6856   AX_surfxml_host_link_id = 0;
6857   surfxml_host_link_id_isset = 0;
6858   AX_surfxml_host_link_up = 0;
6859   surfxml_host_link_up_isset = 0;
6860   AX_surfxml_host_link_down = 0;
6861   surfxml_host_link_down_isset = 0;
6862   ENTER(AL_surfxml_host_link); pushbuffer(0);
6863   }
6864         YY_BREAK
6865
6866 case 220:
6867 /* rule 220 can match eol */
6868 YY_RULE_SETUP
6869 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);
6870         YY_BREAK
6871 case 221:
6872 /* rule 221 can match eol */
6873 YY_RULE_SETUP
6874 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);
6875         YY_BREAK
6876 case 222:
6877 /* rule 222 can match eol */
6878 YY_RULE_SETUP
6879 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);
6880         YY_BREAK
6881 case 223:
6882 /* rule 223 can match eol */
6883 YY_RULE_SETUP
6884 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);
6885         YY_BREAK
6886 case 224:
6887 /* rule 224 can match eol */
6888 YY_RULE_SETUP
6889 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);
6890         YY_BREAK
6891 case 225:
6892 /* rule 225 can match eol */
6893 YY_RULE_SETUP
6894 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);
6895         YY_BREAK
6896 case 226:
6897 YY_RULE_SETUP
6898 {
6899   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6900   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6901   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6902   LEAVE; STag_surfxml_host_link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host_link);
6903  }
6904         YY_BREAK
6905 case 227:
6906 YY_RULE_SETUP
6907 {
6908   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6909   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6910   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6911   LEAVE; STag_surfxml_host_link(); surfxml_pcdata_ix = 0; ETag_surfxml_host_link(); popbuffer(); /* attribute */
6912   switch (YY_START) {
6913    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6914   }
6915  }
6916         YY_BREAK
6917 case 228:
6918 YY_RULE_SETUP
6919 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
6920         YY_BREAK
6921 case 229:
6922 YY_RULE_SETUP
6923 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
6924         YY_BREAK
6925 case YY_STATE_EOF(AL_surfxml_host_link):
6926 FAIL("EOF in attribute list of `host_link' element.");
6927         YY_BREAK
6928
6929 case 230:
6930 /* rule 230 can match eol */
6931 YY_RULE_SETUP
6932 {
6933   LEAVE;
6934   ETag_surfxml_host_link();
6935   popbuffer(); /* attribute */
6936   switch (YY_START) {
6937    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6938   }
6939  }
6940         YY_BREAK
6941 case 231:
6942 /* rule 231 can match eol */
6943 YY_RULE_SETUP
6944 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
6945         YY_BREAK
6946 case 232:
6947 YY_RULE_SETUP
6948 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
6949         YY_BREAK
6950 case YY_STATE_EOF(E_surfxml_host_link):
6951 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
6952         YY_BREAK
6953
6954 case 233:
6955 /* rule 233 can match eol */
6956 YY_RULE_SETUP
6957 FAIL("Starting tag <cluster> is not allowed here.");
6958         YY_BREAK
6959 case 234:
6960 /* rule 234 can match eol */
6961 YY_RULE_SETUP
6962 {
6963   AX_surfxml_cluster_id = 0;
6964   surfxml_cluster_id_isset = 0;
6965   AX_surfxml_cluster_prefix = 0;
6966   surfxml_cluster_prefix_isset = 0;
6967   AX_surfxml_cluster_suffix = 0;
6968   surfxml_cluster_suffix_isset = 0;
6969   AX_surfxml_cluster_radical = 0;
6970   surfxml_cluster_radical_isset = 0;
6971   AX_surfxml_cluster_power = 0;
6972   surfxml_cluster_power_isset = 0;
6973   AX_surfxml_cluster_core = 22;
6974   surfxml_cluster_core_isset = 0;
6975   AX_surfxml_cluster_bw = 0;
6976   surfxml_cluster_bw_isset = 0;
6977   AX_surfxml_cluster_lat = 0;
6978   surfxml_cluster_lat_isset = 0;
6979   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6980   surfxml_cluster_sharing_policy_isset = 0;
6981   AX_surfxml_cluster_bb_bw = 0;
6982   surfxml_cluster_bb_bw_isset = 0;
6983   AX_surfxml_cluster_bb_lat = 0;
6984   surfxml_cluster_bb_lat_isset = 0;
6985   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6986   surfxml_cluster_bb_sharing_policy_isset = 0;
6987   AX_surfxml_cluster_availability_file = 0;
6988   surfxml_cluster_availability_file_isset = 0;
6989   AX_surfxml_cluster_state_file = 0;
6990   surfxml_cluster_state_file_isset = 0;
6991   AX_surfxml_cluster_router_id = 0;
6992   surfxml_cluster_router_id_isset = 0;
6993   ENTER(AL_surfxml_cluster); pushbuffer(0);
6994   }
6995         YY_BREAK
6996
6997 case 235:
6998 /* rule 235 can match eol */
6999 YY_RULE_SETUP
7000 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);
7001         YY_BREAK
7002 case 236:
7003 /* rule 236 can match eol */
7004 YY_RULE_SETUP
7005 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);
7006         YY_BREAK
7007 case 237:
7008 /* rule 237 can match eol */
7009 YY_RULE_SETUP
7010 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);
7011         YY_BREAK
7012 case 238:
7013 /* rule 238 can match eol */
7014 YY_RULE_SETUP
7015 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);
7016         YY_BREAK
7017 case 239:
7018 /* rule 239 can match eol */
7019 YY_RULE_SETUP
7020 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);
7021         YY_BREAK
7022 case 240:
7023 /* rule 240 can match eol */
7024 YY_RULE_SETUP
7025 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);
7026         YY_BREAK
7027 case 241:
7028 /* rule 241 can match eol */
7029 YY_RULE_SETUP
7030 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);
7031         YY_BREAK
7032 case 242:
7033 /* rule 242 can match eol */
7034 YY_RULE_SETUP
7035 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);
7036         YY_BREAK
7037 case 243:
7038 /* rule 243 can match eol */
7039 YY_RULE_SETUP
7040 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
7041         YY_BREAK
7042 case 244:
7043 /* rule 244 can match eol */
7044 YY_RULE_SETUP
7045 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
7046         YY_BREAK
7047 case 245:
7048 /* rule 245 can match eol */
7049 YY_RULE_SETUP
7050 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);
7051         YY_BREAK
7052 case 246:
7053 /* rule 246 can match eol */
7054 YY_RULE_SETUP
7055 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);
7056         YY_BREAK
7057 case 247:
7058 /* rule 247 can match eol */
7059 YY_RULE_SETUP
7060 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);
7061         YY_BREAK
7062 case 248:
7063 /* rule 248 can match eol */
7064 YY_RULE_SETUP
7065 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);
7066         YY_BREAK
7067 case 249:
7068 /* rule 249 can match eol */
7069 YY_RULE_SETUP
7070 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);
7071         YY_BREAK
7072 case 250:
7073 /* rule 250 can match eol */
7074 YY_RULE_SETUP
7075 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);
7076         YY_BREAK
7077 case 251:
7078 /* rule 251 can match eol */
7079 case 252:
7080 /* rule 252 can match eol */
7081 YY_RULE_SETUP
7082 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
7083         YY_BREAK
7084 case 253:
7085 /* rule 253 can match eol */
7086 case 254:
7087 /* rule 254 can match eol */
7088 YY_RULE_SETUP
7089 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
7090         YY_BREAK
7091 case 255:
7092 /* rule 255 can match eol */
7093 case 256:
7094 /* rule 256 can match eol */
7095 YY_RULE_SETUP
7096 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
7097         YY_BREAK
7098 case 257:
7099 /* rule 257 can match eol */
7100 YY_RULE_SETUP
7101 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);
7102         YY_BREAK
7103 case 258:
7104 /* rule 258 can match eol */
7105 YY_RULE_SETUP
7106 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);
7107         YY_BREAK
7108 case 259:
7109 /* rule 259 can match eol */
7110 YY_RULE_SETUP
7111 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);
7112         YY_BREAK
7113 case 260:
7114 /* rule 260 can match eol */
7115 YY_RULE_SETUP
7116 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);
7117         YY_BREAK
7118 case 261:
7119 /* rule 261 can match eol */
7120 case 262:
7121 /* rule 262 can match eol */
7122 YY_RULE_SETUP
7123 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
7124         YY_BREAK
7125 case 263:
7126 /* rule 263 can match eol */
7127 case 264:
7128 /* rule 264 can match eol */
7129 YY_RULE_SETUP
7130 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
7131         YY_BREAK
7132 case 265:
7133 /* rule 265 can match eol */
7134 YY_RULE_SETUP
7135 if (surfxml_cluster_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability_file);
7136         YY_BREAK
7137 case 266:
7138 /* rule 266 can match eol */
7139 YY_RULE_SETUP
7140 if (surfxml_cluster_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability_file);
7141         YY_BREAK
7142 case 267:
7143 /* rule 267 can match eol */
7144 YY_RULE_SETUP
7145 if (surfxml_cluster_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state_file);
7146         YY_BREAK
7147 case 268:
7148 /* rule 268 can match eol */
7149 YY_RULE_SETUP
7150 if (surfxml_cluster_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state_file);
7151         YY_BREAK
7152 case 269:
7153 /* rule 269 can match eol */
7154 YY_RULE_SETUP
7155 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);
7156         YY_BREAK
7157 case 270:
7158 /* rule 270 can match eol */
7159 YY_RULE_SETUP
7160 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);
7161         YY_BREAK
7162 case 271:
7163 YY_RULE_SETUP
7164 {
7165   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7166   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7167   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7168   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7169   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7170   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7171   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7172   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
7173  }
7174         YY_BREAK
7175 case 272:
7176 YY_RULE_SETUP
7177 {
7178   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7179   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7180   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7181   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7182   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7183   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7184   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7185   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7186   switch (YY_START) {
7187    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7188    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7189    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7190   }
7191  }
7192         YY_BREAK
7193 case 273:
7194 YY_RULE_SETUP
7195 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7196         YY_BREAK
7197 case 274:
7198 YY_RULE_SETUP
7199 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7200         YY_BREAK
7201 case YY_STATE_EOF(AL_surfxml_cluster):
7202 FAIL("EOF in attribute list of `cluster' element.");
7203         YY_BREAK
7204
7205 case 275:
7206 /* rule 275 can match eol */
7207 YY_RULE_SETUP
7208 {
7209   LEAVE;
7210   ETag_surfxml_cluster();
7211   popbuffer(); /* attribute */
7212   switch (YY_START) {
7213    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7214    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7215    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7216   }
7217  }
7218         YY_BREAK
7219 case 276:
7220 /* rule 276 can match eol */
7221 YY_RULE_SETUP
7222 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7223         YY_BREAK
7224 case 277:
7225 YY_RULE_SETUP
7226 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7227         YY_BREAK
7228 case YY_STATE_EOF(E_surfxml_cluster):
7229 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7230         YY_BREAK
7231
7232 case 278:
7233 /* rule 278 can match eol */
7234 YY_RULE_SETUP
7235 FAIL("Starting tag <cabinet> is not allowed here.");
7236         YY_BREAK
7237 case 279:
7238 /* rule 279 can match eol */
7239 YY_RULE_SETUP
7240 {
7241   AX_surfxml_cabinet_id = 0;
7242   surfxml_cabinet_id_isset = 0;
7243   AX_surfxml_cabinet_prefix = 0;
7244   surfxml_cabinet_prefix_isset = 0;
7245   AX_surfxml_cabinet_suffix = 0;
7246   surfxml_cabinet_suffix_isset = 0;
7247   AX_surfxml_cabinet_radical = 0;
7248   surfxml_cabinet_radical_isset = 0;
7249   AX_surfxml_cabinet_power = 0;
7250   surfxml_cabinet_power_isset = 0;
7251   AX_surfxml_cabinet_bw = 0;
7252   surfxml_cabinet_bw_isset = 0;
7253   AX_surfxml_cabinet_lat = 0;
7254   surfxml_cabinet_lat_isset = 0;
7255   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7256   }
7257         YY_BREAK
7258
7259 case 280:
7260 /* rule 280 can match eol */
7261 YY_RULE_SETUP
7262 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);
7263         YY_BREAK
7264 case 281:
7265 /* rule 281 can match eol */
7266 YY_RULE_SETUP
7267 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);
7268         YY_BREAK
7269 case 282:
7270 /* rule 282 can match eol */
7271 YY_RULE_SETUP
7272 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);
7273         YY_BREAK
7274 case 283:
7275 /* rule 283 can match eol */
7276 YY_RULE_SETUP
7277 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);
7278         YY_BREAK
7279 case 284:
7280 /* rule 284 can match eol */
7281 YY_RULE_SETUP
7282 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);
7283         YY_BREAK
7284 case 285:
7285 /* rule 285 can match eol */
7286 YY_RULE_SETUP
7287 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);
7288         YY_BREAK
7289 case 286:
7290 /* rule 286 can match eol */
7291 YY_RULE_SETUP
7292 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);
7293         YY_BREAK
7294 case 287:
7295 /* rule 287 can match eol */
7296 YY_RULE_SETUP
7297 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);
7298         YY_BREAK
7299 case 288:
7300 /* rule 288 can match eol */
7301 YY_RULE_SETUP
7302 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7303         YY_BREAK
7304 case 289:
7305 /* rule 289 can match eol */
7306 YY_RULE_SETUP
7307 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7308         YY_BREAK
7309 case 290:
7310 /* rule 290 can match eol */
7311 YY_RULE_SETUP
7312 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);
7313         YY_BREAK
7314 case 291:
7315 /* rule 291 can match eol */
7316 YY_RULE_SETUP
7317 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);
7318         YY_BREAK
7319 case 292:
7320 /* rule 292 can match eol */
7321 YY_RULE_SETUP
7322 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);
7323         YY_BREAK
7324 case 293:
7325 /* rule 293 can match eol */
7326 YY_RULE_SETUP
7327 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);
7328         YY_BREAK
7329 case 294:
7330 YY_RULE_SETUP
7331 {
7332   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7333   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7334   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7335   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7336   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7337   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7338   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7339   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7340  }
7341         YY_BREAK
7342 case 295:
7343 YY_RULE_SETUP
7344 {
7345   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7346   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7347   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7348   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7349   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7350   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7351   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7352   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7353   switch (YY_START) {
7354    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7355    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7356    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7357    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7358   }
7359  }
7360         YY_BREAK
7361 case 296:
7362 YY_RULE_SETUP
7363 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7364         YY_BREAK
7365 case 297:
7366 YY_RULE_SETUP
7367 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7368         YY_BREAK
7369 case YY_STATE_EOF(AL_surfxml_cabinet):
7370 FAIL("EOF in attribute list of `cabinet' element.");
7371         YY_BREAK
7372
7373 case 298:
7374 /* rule 298 can match eol */
7375 YY_RULE_SETUP
7376 {
7377   LEAVE;
7378   ETag_surfxml_cabinet();
7379   popbuffer(); /* attribute */
7380   switch (YY_START) {
7381    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7382    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7383    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7384    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7385   }
7386  }
7387         YY_BREAK
7388 case 299:
7389 /* rule 299 can match eol */
7390 YY_RULE_SETUP
7391 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7392         YY_BREAK
7393 case 300:
7394 YY_RULE_SETUP
7395 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7396         YY_BREAK
7397 case YY_STATE_EOF(E_surfxml_cabinet):
7398 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7399         YY_BREAK
7400
7401 case 301:
7402 /* rule 301 can match eol */
7403 YY_RULE_SETUP
7404 FAIL("Starting tag <peer> is not allowed here.");
7405         YY_BREAK
7406 case 302:
7407 /* rule 302 can match eol */
7408 YY_RULE_SETUP
7409 {
7410   AX_surfxml_peer_id = 0;
7411   surfxml_peer_id_isset = 0;
7412   AX_surfxml_peer_power = 0;
7413   surfxml_peer_power_isset = 0;
7414   AX_surfxml_peer_bw_in = 0;
7415   surfxml_peer_bw_in_isset = 0;
7416   AX_surfxml_peer_bw_out = 0;
7417   surfxml_peer_bw_out_isset = 0;
7418   AX_surfxml_peer_lat = 0;
7419   surfxml_peer_lat_isset = 0;
7420   AX_surfxml_peer_coordinates = 0;
7421   surfxml_peer_coordinates_isset = 0;
7422   AX_surfxml_peer_availability_file = 0;
7423   surfxml_peer_availability_file_isset = 0;
7424   AX_surfxml_peer_state_file = 0;
7425   surfxml_peer_state_file_isset = 0;
7426   ENTER(AL_surfxml_peer); pushbuffer(0);
7427   }
7428         YY_BREAK
7429
7430 case 303:
7431 /* rule 303 can match eol */
7432 YY_RULE_SETUP
7433 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);
7434         YY_BREAK
7435 case 304:
7436 /* rule 304 can match eol */
7437 YY_RULE_SETUP
7438 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);
7439         YY_BREAK
7440 case 305:
7441 /* rule 305 can match eol */
7442 YY_RULE_SETUP
7443 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
7444         YY_BREAK
7445 case 306:
7446 /* rule 306 can match eol */
7447 YY_RULE_SETUP
7448 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
7449         YY_BREAK
7450 case 307:
7451 /* rule 307 can match eol */
7452 YY_RULE_SETUP
7453 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);
7454         YY_BREAK
7455 case 308:
7456 /* rule 308 can match eol */
7457 YY_RULE_SETUP
7458 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);
7459         YY_BREAK
7460 case 309:
7461 /* rule 309 can match eol */
7462 YY_RULE_SETUP
7463 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);
7464         YY_BREAK
7465 case 310:
7466 /* rule 310 can match eol */
7467 YY_RULE_SETUP
7468 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);
7469         YY_BREAK
7470 case 311:
7471 /* rule 311 can match eol */
7472 YY_RULE_SETUP
7473 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);
7474         YY_BREAK
7475 case 312:
7476 /* rule 312 can match eol */
7477 YY_RULE_SETUP
7478 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);
7479         YY_BREAK
7480 case 313:
7481 /* rule 313 can match eol */
7482 YY_RULE_SETUP
7483 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);
7484         YY_BREAK
7485 case 314:
7486 /* rule 314 can match eol */
7487 YY_RULE_SETUP
7488 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);
7489         YY_BREAK
7490 case 315:
7491 /* rule 315 can match eol */
7492 YY_RULE_SETUP
7493 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);
7494         YY_BREAK
7495 case 316:
7496 /* rule 316 can match eol */
7497 YY_RULE_SETUP
7498 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);
7499         YY_BREAK
7500 case 317:
7501 /* rule 317 can match eol */
7502 YY_RULE_SETUP
7503 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);
7504         YY_BREAK
7505 case 318:
7506 /* rule 318 can match eol */
7507 YY_RULE_SETUP
7508 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);
7509         YY_BREAK
7510 case 319:
7511 YY_RULE_SETUP
7512 {
7513   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7514   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7515   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7516   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7517   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7518   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7519  }
7520         YY_BREAK
7521 case 320:
7522 YY_RULE_SETUP
7523 {
7524   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7525   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7526   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7527   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7528   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7529   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7530   switch (YY_START) {
7531    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7532    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7533    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7534   }
7535  }
7536         YY_BREAK
7537 case 321:
7538 YY_RULE_SETUP
7539 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7540         YY_BREAK
7541 case 322:
7542 YY_RULE_SETUP
7543 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7544         YY_BREAK
7545 case YY_STATE_EOF(AL_surfxml_peer):
7546 FAIL("EOF in attribute list of `peer' element.");
7547         YY_BREAK
7548
7549 case 323:
7550 /* rule 323 can match eol */
7551 YY_RULE_SETUP
7552 {
7553   LEAVE;
7554   ETag_surfxml_peer();
7555   popbuffer(); /* attribute */
7556   switch (YY_START) {
7557    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7558    case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7559    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7560   }
7561  }
7562         YY_BREAK
7563 case 324:
7564 /* rule 324 can match eol */
7565 YY_RULE_SETUP
7566 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7567         YY_BREAK
7568 case 325:
7569 YY_RULE_SETUP
7570 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7571         YY_BREAK
7572 case YY_STATE_EOF(E_surfxml_peer):
7573 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7574         YY_BREAK
7575
7576 case 326:
7577 /* rule 326 can match eol */
7578 YY_RULE_SETUP
7579 FAIL("Starting tag <router> is not allowed here.");
7580         YY_BREAK
7581 case 327:
7582 /* rule 327 can match eol */
7583 YY_RULE_SETUP
7584 {
7585   AX_surfxml_router_id = 0;
7586   surfxml_router_id_isset = 0;
7587   AX_surfxml_router_coordinates = 0;
7588   surfxml_router_coordinates_isset = 0;
7589   ENTER(AL_surfxml_router); pushbuffer(0);
7590   }
7591         YY_BREAK
7592
7593 case 328:
7594 /* rule 328 can match eol */
7595 YY_RULE_SETUP
7596 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);
7597         YY_BREAK
7598 case 329:
7599 /* rule 329 can match eol */
7600 YY_RULE_SETUP
7601 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);
7602         YY_BREAK
7603 case 330:
7604 /* rule 330 can match eol */
7605 YY_RULE_SETUP
7606 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);
7607         YY_BREAK
7608 case 331:
7609 /* rule 331 can match eol */
7610 YY_RULE_SETUP
7611 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);
7612         YY_BREAK
7613 case 332:
7614 YY_RULE_SETUP
7615 {
7616   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7617   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7618  }
7619         YY_BREAK
7620 case 333:
7621 YY_RULE_SETUP
7622 {
7623   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7624   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7625   switch (YY_START) {
7626    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7627   }
7628  }
7629         YY_BREAK
7630 case 334:
7631 YY_RULE_SETUP
7632 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7633         YY_BREAK
7634 case 335:
7635 YY_RULE_SETUP
7636 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7637         YY_BREAK
7638 case YY_STATE_EOF(AL_surfxml_router):
7639 FAIL("EOF in attribute list of `router' element.");
7640         YY_BREAK
7641
7642 case 336:
7643 /* rule 336 can match eol */
7644 YY_RULE_SETUP
7645 {
7646   LEAVE;
7647   ETag_surfxml_router();
7648   popbuffer(); /* attribute */
7649   switch (YY_START) {
7650    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7651   }
7652  }
7653         YY_BREAK
7654 case 337:
7655 /* rule 337 can match eol */
7656 YY_RULE_SETUP
7657 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7658         YY_BREAK
7659 case 338:
7660 YY_RULE_SETUP
7661 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7662         YY_BREAK
7663 case YY_STATE_EOF(E_surfxml_router):
7664 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7665         YY_BREAK
7666
7667 case 339:
7668 /* rule 339 can match eol */
7669 YY_RULE_SETUP
7670 FAIL("Starting tag <backbone> is not allowed here.");
7671         YY_BREAK
7672 case 340:
7673 /* rule 340 can match eol */
7674 YY_RULE_SETUP
7675 {
7676   AX_surfxml_backbone_id = 0;
7677   surfxml_backbone_id_isset = 0;
7678   AX_surfxml_backbone_bandwidth = 0;
7679   surfxml_backbone_bandwidth_isset = 0;
7680   AX_surfxml_backbone_latency = 0;
7681   surfxml_backbone_latency_isset = 0;
7682   ENTER(AL_surfxml_backbone); pushbuffer(0);
7683   }
7684         YY_BREAK
7685
7686 case 341:
7687 /* rule 341 can match eol */
7688 YY_RULE_SETUP
7689 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);
7690         YY_BREAK
7691 case 342:
7692 /* rule 342 can match eol */
7693 YY_RULE_SETUP
7694 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);
7695         YY_BREAK
7696 case 343:
7697 /* rule 343 can match eol */
7698 YY_RULE_SETUP
7699 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);
7700         YY_BREAK
7701 case 344:
7702 /* rule 344 can match eol */
7703 YY_RULE_SETUP
7704 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);
7705         YY_BREAK
7706 case 345:
7707 /* rule 345 can match eol */
7708 YY_RULE_SETUP
7709 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);
7710         YY_BREAK
7711 case 346:
7712 /* rule 346 can match eol */
7713 YY_RULE_SETUP
7714 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);
7715         YY_BREAK
7716 case 347:
7717 YY_RULE_SETUP
7718 {
7719   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7720   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7721   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7722   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7723  }
7724         YY_BREAK
7725 case 348:
7726 YY_RULE_SETUP
7727 {
7728   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7729   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7730   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7731   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7732   switch (YY_START) {
7733    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7734    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7735   }
7736  }
7737         YY_BREAK
7738 case 349:
7739 YY_RULE_SETUP
7740 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
7741         YY_BREAK
7742 case 350:
7743 YY_RULE_SETUP
7744 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
7745         YY_BREAK
7746 case YY_STATE_EOF(AL_surfxml_backbone):
7747 FAIL("EOF in attribute list of `backbone' element.");
7748         YY_BREAK
7749
7750 case 351:
7751 /* rule 351 can match eol */
7752 YY_RULE_SETUP
7753 {
7754   LEAVE;
7755   ETag_surfxml_backbone();
7756   popbuffer(); /* attribute */
7757   switch (YY_START) {
7758    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7759    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7760   }
7761  }
7762         YY_BREAK
7763 case 352:
7764 /* rule 352 can match eol */
7765 YY_RULE_SETUP
7766 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
7767         YY_BREAK
7768 case 353:
7769 YY_RULE_SETUP
7770 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
7771         YY_BREAK
7772 case YY_STATE_EOF(E_surfxml_backbone):
7773 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
7774         YY_BREAK
7775
7776 case 354:
7777 /* rule 354 can match eol */
7778 YY_RULE_SETUP
7779 FAIL("Starting tag <link> is not allowed here.");
7780         YY_BREAK
7781 case 355:
7782 /* rule 355 can match eol */
7783 YY_RULE_SETUP
7784 {
7785   AX_surfxml_link_id = 0;
7786   surfxml_link_id_isset = 0;
7787   AX_surfxml_link_bandwidth = 0;
7788   surfxml_link_bandwidth_isset = 0;
7789   AX_surfxml_link_bandwidth_file = 0;
7790   surfxml_link_bandwidth_file_isset = 0;
7791   AX_surfxml_link_latency = 24;
7792   surfxml_link_latency_isset = 0;
7793   AX_surfxml_link_latency_file = 0;
7794   surfxml_link_latency_file_isset = 0;
7795   AX_surfxml_link_state = A_surfxml_link_state_ON;
7796   surfxml_link_state_isset = 0;
7797   AX_surfxml_link_state_file = 0;
7798   surfxml_link_state_file_isset = 0;
7799   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7800   surfxml_link_sharing_policy_isset = 0;
7801   ENTER(AL_surfxml_link); pushbuffer(0);
7802   }
7803         YY_BREAK
7804
7805 case 356:
7806 /* rule 356 can match eol */
7807 YY_RULE_SETUP
7808 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);
7809         YY_BREAK
7810 case 357:
7811 /* rule 357 can match eol */
7812 YY_RULE_SETUP
7813 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);
7814         YY_BREAK
7815 case 358:
7816 /* rule 358 can match eol */
7817 YY_RULE_SETUP
7818 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);
7819         YY_BREAK
7820 case 359:
7821 /* rule 359 can match eol */
7822 YY_RULE_SETUP
7823 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);
7824         YY_BREAK
7825 case 360:
7826 /* rule 360 can match eol */
7827 YY_RULE_SETUP
7828 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);
7829         YY_BREAK
7830 case 361:
7831 /* rule 361 can match eol */
7832 YY_RULE_SETUP
7833 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);
7834         YY_BREAK
7835 case 362:
7836 /* rule 362 can match eol */
7837 YY_RULE_SETUP
7838 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);
7839         YY_BREAK
7840 case 363:
7841 /* rule 363 can match eol */
7842 YY_RULE_SETUP
7843 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);
7844         YY_BREAK
7845 case 364:
7846 /* rule 364 can match eol */
7847 YY_RULE_SETUP
7848 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);
7849         YY_BREAK
7850 case 365:
7851 /* rule 365 can match eol */
7852 YY_RULE_SETUP
7853 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);
7854         YY_BREAK
7855 case 366:
7856 /* rule 366 can match eol */
7857 case 367:
7858 /* rule 367 can match eol */
7859 YY_RULE_SETUP
7860 A_surfxml_link_state = A_surfxml_link_state_ON;
7861         YY_BREAK
7862 case 368:
7863 /* rule 368 can match eol */
7864 case 369:
7865 /* rule 369 can match eol */
7866 YY_RULE_SETUP
7867 A_surfxml_link_state = A_surfxml_link_state_OFF;
7868         YY_BREAK
7869 case 370:
7870 /* rule 370 can match eol */
7871 YY_RULE_SETUP
7872 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);
7873         YY_BREAK
7874 case 371:
7875 /* rule 371 can match eol */
7876 YY_RULE_SETUP
7877 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);
7878         YY_BREAK
7879 case 372:
7880 /* rule 372 can match eol */
7881 case 373:
7882 /* rule 373 can match eol */
7883 YY_RULE_SETUP
7884 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7885         YY_BREAK
7886 case 374:
7887 /* rule 374 can match eol */
7888 case 375:
7889 /* rule 375 can match eol */
7890 YY_RULE_SETUP
7891 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
7892         YY_BREAK
7893 case 376:
7894 /* rule 376 can match eol */
7895 case 377:
7896 /* rule 377 can match eol */
7897 YY_RULE_SETUP
7898 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
7899         YY_BREAK
7900 case 378:
7901 YY_RULE_SETUP
7902 {
7903   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7904   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7905   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7906  }
7907         YY_BREAK
7908 case 379:
7909 YY_RULE_SETUP
7910 {
7911   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7912   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7913   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7914   switch (YY_START) {
7915    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7916    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7917   }
7918  }
7919         YY_BREAK
7920 case 380:
7921 YY_RULE_SETUP
7922 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7923         YY_BREAK
7924 case 381:
7925 YY_RULE_SETUP
7926 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7927         YY_BREAK
7928 case YY_STATE_EOF(AL_surfxml_link):
7929 FAIL("EOF in attribute list of `link' element.");
7930         YY_BREAK
7931
7932 case 382:
7933 /* rule 382 can match eol */
7934 YY_RULE_SETUP
7935 {
7936   LEAVE;
7937   ETag_surfxml_link();
7938   popbuffer(); /* attribute */
7939   switch (YY_START) {
7940    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
7941    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
7942   }
7943  }
7944         YY_BREAK
7945 case 383:
7946 /* rule 383 can match eol */
7947 YY_RULE_SETUP
7948 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7949         YY_BREAK
7950 case 384:
7951 YY_RULE_SETUP
7952 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7953         YY_BREAK
7954 case YY_STATE_EOF(E_surfxml_link):
7955 case YY_STATE_EOF(S_surfxml_link_2):
7956 case YY_STATE_EOF(S_surfxml_link):
7957 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7958         YY_BREAK
7959
7960 case 385:
7961 /* rule 385 can match eol */
7962 YY_RULE_SETUP
7963 FAIL("Starting tag <route> is not allowed here.");
7964         YY_BREAK
7965 case 386:
7966 /* rule 386 can match eol */
7967 YY_RULE_SETUP
7968 {
7969   AX_surfxml_route_src = 0;
7970   surfxml_route_src_isset = 0;
7971   AX_surfxml_route_dst = 0;
7972   surfxml_route_dst_isset = 0;
7973   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7974   surfxml_route_symmetrical_isset = 0;
7975   ENTER(AL_surfxml_route); pushbuffer(0);
7976   }
7977         YY_BREAK
7978
7979 case 387:
7980 /* rule 387 can match eol */
7981 YY_RULE_SETUP
7982 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);
7983         YY_BREAK
7984 case 388:
7985 /* rule 388 can match eol */
7986 YY_RULE_SETUP
7987 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);
7988         YY_BREAK
7989 case 389:
7990 /* rule 389 can match eol */
7991 YY_RULE_SETUP
7992 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);
7993         YY_BREAK
7994 case 390:
7995 /* rule 390 can match eol */
7996 YY_RULE_SETUP
7997 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);
7998         YY_BREAK
7999 case 391:
8000 /* rule 391 can match eol */
8001 case 392:
8002 /* rule 392 can match eol */
8003 YY_RULE_SETUP
8004 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8005         YY_BREAK
8006 case 393:
8007 /* rule 393 can match eol */
8008 case 394:
8009 /* rule 394 can match eol */
8010 YY_RULE_SETUP
8011 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8012         YY_BREAK
8013 case 395:
8014 YY_RULE_SETUP
8015 {
8016   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8017   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8018   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8019  }
8020         YY_BREAK
8021 case 396:
8022 YY_RULE_SETUP
8023 {
8024   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8025   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8026   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8027   switch (YY_START) {
8028    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
8029   }
8030  }
8031         YY_BREAK
8032 case 397:
8033 YY_RULE_SETUP
8034 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8035         YY_BREAK
8036 case 398:
8037 YY_RULE_SETUP
8038 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8039         YY_BREAK
8040 case YY_STATE_EOF(AL_surfxml_route):
8041 FAIL("EOF in attribute list of `route' element.");
8042         YY_BREAK
8043
8044 case 399:
8045 /* rule 399 can match eol */
8046 YY_RULE_SETUP
8047 {
8048   LEAVE;
8049   ETag_surfxml_route();
8050   popbuffer(); /* attribute */
8051   switch (YY_START) {
8052    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
8053   }
8054  }
8055         YY_BREAK
8056 case 400:
8057 /* rule 400 can match eol */
8058 YY_RULE_SETUP
8059 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8060         YY_BREAK
8061 case 401:
8062 YY_RULE_SETUP
8063 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8064         YY_BREAK
8065 case YY_STATE_EOF(S_surfxml_route):
8066 case YY_STATE_EOF(S_surfxml_route_2):
8067 case YY_STATE_EOF(E_surfxml_route):
8068 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8069         YY_BREAK
8070
8071 case 402:
8072 /* rule 402 can match eol */
8073 YY_RULE_SETUP
8074 FAIL("Starting tag <ASroute> is not allowed here.");
8075         YY_BREAK
8076 case 403:
8077 /* rule 403 can match eol */
8078 YY_RULE_SETUP
8079 {
8080   AX_surfxml_ASroute_src = 0;
8081   surfxml_ASroute_src_isset = 0;
8082   AX_surfxml_ASroute_dst = 0;
8083   surfxml_ASroute_dst_isset = 0;
8084   AX_surfxml_ASroute_gw_src = 0;
8085   surfxml_ASroute_gw_src_isset = 0;
8086   AX_surfxml_ASroute_gw_dst = 0;
8087   surfxml_ASroute_gw_dst_isset = 0;
8088   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8089   surfxml_ASroute_symmetrical_isset = 0;
8090   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8091   }
8092         YY_BREAK
8093
8094 case 404:
8095 /* rule 404 can match eol */
8096 YY_RULE_SETUP
8097 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);
8098         YY_BREAK
8099 case 405:
8100 /* rule 405 can match eol */
8101 YY_RULE_SETUP
8102 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);
8103         YY_BREAK
8104 case 406:
8105 /* rule 406 can match eol */
8106 YY_RULE_SETUP
8107 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);
8108         YY_BREAK
8109 case 407:
8110 /* rule 407 can match eol */
8111 YY_RULE_SETUP
8112 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);
8113         YY_BREAK
8114 case 408:
8115 /* rule 408 can match eol */
8116 YY_RULE_SETUP
8117 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);
8118         YY_BREAK
8119 case 409:
8120 /* rule 409 can match eol */
8121 YY_RULE_SETUP
8122 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);
8123         YY_BREAK
8124 case 410:
8125 /* rule 410 can match eol */
8126 YY_RULE_SETUP
8127 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);
8128         YY_BREAK
8129 case 411:
8130 /* rule 411 can match eol */
8131 YY_RULE_SETUP
8132 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);
8133         YY_BREAK
8134 case 412:
8135 /* rule 412 can match eol */
8136 case 413:
8137 /* rule 413 can match eol */
8138 YY_RULE_SETUP
8139 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8140         YY_BREAK
8141 case 414:
8142 /* rule 414 can match eol */
8143 case 415:
8144 /* rule 415 can match eol */
8145 YY_RULE_SETUP
8146 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8147         YY_BREAK
8148 case 416:
8149 YY_RULE_SETUP
8150 {
8151   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8152   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8153   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8154   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8155   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8156  }
8157         YY_BREAK
8158 case 417:
8159 YY_RULE_SETUP
8160 {
8161   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8162   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8163   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8164   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8165   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8166   switch (YY_START) {
8167    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8168   }
8169  }
8170         YY_BREAK
8171 case 418:
8172 YY_RULE_SETUP
8173 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8174         YY_BREAK
8175 case 419:
8176 YY_RULE_SETUP
8177 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8178         YY_BREAK
8179 case YY_STATE_EOF(AL_surfxml_ASroute):
8180 FAIL("EOF in attribute list of `ASroute' element.");
8181         YY_BREAK
8182
8183 case 420:
8184 /* rule 420 can match eol */
8185 YY_RULE_SETUP
8186 {
8187   LEAVE;
8188   ETag_surfxml_ASroute();
8189   popbuffer(); /* attribute */
8190   switch (YY_START) {
8191    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8192   }
8193  }
8194         YY_BREAK
8195 case 421:
8196 /* rule 421 can match eol */
8197 YY_RULE_SETUP
8198 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8199         YY_BREAK
8200 case 422:
8201 YY_RULE_SETUP
8202 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8203         YY_BREAK
8204 case YY_STATE_EOF(E_surfxml_ASroute):
8205 case YY_STATE_EOF(S_surfxml_ASroute):
8206 case YY_STATE_EOF(S_surfxml_ASroute_2):
8207 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8208         YY_BREAK
8209
8210 case 423:
8211 /* rule 423 can match eol */
8212 YY_RULE_SETUP
8213 FAIL("Starting tag <link_ctn> is not allowed here.");
8214         YY_BREAK
8215 case 424:
8216 /* rule 424 can match eol */
8217 YY_RULE_SETUP
8218 {
8219   AX_surfxml_link_ctn_id = 0;
8220   surfxml_link_ctn_id_isset = 0;
8221   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
8222   surfxml_link_ctn_direction_isset = 0;
8223   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
8224   }
8225         YY_BREAK
8226
8227 case 425:
8228 /* rule 425 can match eol */
8229 YY_RULE_SETUP
8230 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);
8231         YY_BREAK
8232 case 426:
8233 /* rule 426 can match eol */
8234 YY_RULE_SETUP
8235 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);
8236         YY_BREAK
8237 case 427:
8238 /* rule 427 can match eol */
8239 case 428:
8240 /* rule 428 can match eol */
8241 YY_RULE_SETUP
8242 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
8243         YY_BREAK
8244 case 429:
8245 /* rule 429 can match eol */
8246 case 430:
8247 /* rule 430 can match eol */
8248 YY_RULE_SETUP
8249 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
8250         YY_BREAK
8251 case 431:
8252 /* rule 431 can match eol */
8253 case 432:
8254 /* rule 432 can match eol */
8255 YY_RULE_SETUP
8256 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
8257         YY_BREAK
8258 case 433:
8259 YY_RULE_SETUP
8260 {
8261   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8262   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
8263  }
8264         YY_BREAK
8265 case 434:
8266 YY_RULE_SETUP
8267 {
8268   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8269   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
8270   switch (YY_START) {
8271    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8272    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8273    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8274    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8275   }
8276  }
8277         YY_BREAK
8278 case 435:
8279 YY_RULE_SETUP
8280 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8281         YY_BREAK
8282 case 436:
8283 YY_RULE_SETUP
8284 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8285         YY_BREAK
8286 case YY_STATE_EOF(AL_surfxml_link_ctn):
8287 FAIL("EOF in attribute list of `link_ctn' element.");
8288         YY_BREAK
8289
8290 case 437:
8291 /* rule 437 can match eol */
8292 YY_RULE_SETUP
8293 {
8294   LEAVE;
8295   ETag_surfxml_link_ctn();
8296   popbuffer(); /* attribute */
8297   switch (YY_START) {
8298    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8299    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8300    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8301    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8302   }
8303  }
8304         YY_BREAK
8305 case 438:
8306 /* rule 438 can match eol */
8307 YY_RULE_SETUP
8308 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8309         YY_BREAK
8310 case 439:
8311 YY_RULE_SETUP
8312 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8313         YY_BREAK
8314 case YY_STATE_EOF(E_surfxml_link_ctn):
8315 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8316         YY_BREAK
8317
8318 case 440:
8319 /* rule 440 can match eol */
8320 YY_RULE_SETUP
8321 FAIL("Starting tag <bypassRoute> is not allowed here.");
8322         YY_BREAK
8323 case 441:
8324 /* rule 441 can match eol */
8325 YY_RULE_SETUP
8326 {
8327   AX_surfxml_bypassRoute_src = 0;
8328   surfxml_bypassRoute_src_isset = 0;
8329   AX_surfxml_bypassRoute_dst = 0;
8330   surfxml_bypassRoute_dst_isset = 0;
8331   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8332   }
8333         YY_BREAK
8334
8335 case 442:
8336 /* rule 442 can match eol */
8337 YY_RULE_SETUP
8338 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);
8339         YY_BREAK
8340 case 443:
8341 /* rule 443 can match eol */
8342 YY_RULE_SETUP
8343 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);
8344         YY_BREAK
8345 case 444:
8346 /* rule 444 can match eol */
8347 YY_RULE_SETUP
8348 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);
8349         YY_BREAK
8350 case 445:
8351 /* rule 445 can match eol */
8352 YY_RULE_SETUP
8353 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);
8354         YY_BREAK
8355 case 446:
8356 YY_RULE_SETUP
8357 {
8358   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8359   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8360   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8361  }
8362         YY_BREAK
8363 case 447:
8364 YY_RULE_SETUP
8365 {
8366   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8367   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8368   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8369   switch (YY_START) {
8370    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
8371   }
8372  }
8373         YY_BREAK
8374 case 448:
8375 YY_RULE_SETUP
8376 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8377         YY_BREAK
8378 case 449:
8379 YY_RULE_SETUP
8380 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8381         YY_BREAK
8382 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8383 FAIL("EOF in attribute list of `bypassRoute' element.");
8384         YY_BREAK
8385
8386 case 450:
8387 /* rule 450 can match eol */
8388 YY_RULE_SETUP
8389 {
8390   LEAVE;
8391   ETag_surfxml_bypassRoute();
8392   popbuffer(); /* attribute */
8393   switch (YY_START) {
8394    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_11: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_13); break;
8395   }
8396  }
8397         YY_BREAK
8398 case 451:
8399 /* rule 451 can match eol */
8400 YY_RULE_SETUP
8401 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8402         YY_BREAK
8403 case 452:
8404 YY_RULE_SETUP
8405 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8406         YY_BREAK
8407 case YY_STATE_EOF(S_surfxml_bypassRoute):
8408 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8409 case YY_STATE_EOF(E_surfxml_bypassRoute):
8410 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8411         YY_BREAK
8412
8413 case 453:
8414 /* rule 453 can match eol */
8415 YY_RULE_SETUP
8416 FAIL("Starting tag <bypassASroute> is not allowed here.");
8417         YY_BREAK
8418 case 454:
8419 /* rule 454 can match eol */
8420 YY_RULE_SETUP
8421 {
8422   AX_surfxml_bypassASroute_src = 0;
8423   surfxml_bypassASroute_src_isset = 0;
8424   AX_surfxml_bypassASroute_dst = 0;
8425   surfxml_bypassASroute_dst_isset = 0;
8426   AX_surfxml_bypassASroute_gw_src = 0;
8427   surfxml_bypassASroute_gw_src_isset = 0;
8428   AX_surfxml_bypassASroute_gw_dst = 0;
8429   surfxml_bypassASroute_gw_dst_isset = 0;
8430   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8431   }
8432         YY_BREAK
8433
8434 case 455:
8435 /* rule 455 can match eol */
8436 YY_RULE_SETUP
8437 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);
8438         YY_BREAK
8439 case 456:
8440 /* rule 456 can match eol */
8441 YY_RULE_SETUP
8442 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);
8443         YY_BREAK
8444 case 457:
8445 /* rule 457 can match eol */
8446 YY_RULE_SETUP
8447 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);
8448         YY_BREAK
8449 case 458:
8450 /* rule 458 can match eol */
8451 YY_RULE_SETUP
8452 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);
8453         YY_BREAK
8454 case 459:
8455 /* rule 459 can match eol */
8456 YY_RULE_SETUP
8457 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);
8458         YY_BREAK
8459 case 460:
8460 /* rule 460 can match eol */
8461 YY_RULE_SETUP
8462 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);
8463         YY_BREAK
8464 case 461:
8465 /* rule 461 can match eol */
8466 YY_RULE_SETUP
8467 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);
8468         YY_BREAK
8469 case 462:
8470 /* rule 462 can match eol */
8471 YY_RULE_SETUP
8472 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);
8473         YY_BREAK
8474 case 463:
8475 YY_RULE_SETUP
8476 {
8477   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8478   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8479   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8480   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8481   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8482  }
8483         YY_BREAK
8484 case 464:
8485 YY_RULE_SETUP
8486 {
8487   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8488   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8489   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8490   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8491   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8492   switch (YY_START) {
8493    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8494   }
8495  }
8496         YY_BREAK
8497 case 465:
8498 YY_RULE_SETUP
8499 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8500         YY_BREAK
8501 case 466:
8502 YY_RULE_SETUP
8503 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8504         YY_BREAK
8505 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8506 FAIL("EOF in attribute list of `bypassASroute' element.");
8507         YY_BREAK
8508
8509 case 467:
8510 /* rule 467 can match eol */
8511 YY_RULE_SETUP
8512 {
8513   LEAVE;
8514   ETag_surfxml_bypassASroute();
8515   popbuffer(); /* attribute */
8516   switch (YY_START) {
8517    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
8518   }
8519  }
8520         YY_BREAK
8521 case 468:
8522 /* rule 468 can match eol */
8523 YY_RULE_SETUP
8524 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8525         YY_BREAK
8526 case 469:
8527 YY_RULE_SETUP
8528 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8529         YY_BREAK
8530 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8531 case YY_STATE_EOF(E_surfxml_bypassASroute):
8532 case YY_STATE_EOF(S_surfxml_bypassASroute):
8533 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8534         YY_BREAK
8535
8536 case 470:
8537 /* rule 470 can match eol */
8538 YY_RULE_SETUP
8539 FAIL("Starting tag <process> is not allowed here.");
8540         YY_BREAK
8541 case 471:
8542 /* rule 471 can match eol */
8543 YY_RULE_SETUP
8544 {
8545   AX_surfxml_process_host = 0;
8546   surfxml_process_host_isset = 0;
8547   AX_surfxml_process_function = 0;
8548   surfxml_process_function_isset = 0;
8549   AX_surfxml_process_start_time = 28;
8550   surfxml_process_start_time_isset = 0;
8551   AX_surfxml_process_kill_time = 33;
8552   surfxml_process_kill_time_isset = 0;
8553   AX_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8554   surfxml_process_on_failure_isset = 0;
8555   ENTER(AL_surfxml_process); pushbuffer(0);
8556   }
8557         YY_BREAK
8558
8559 case 472:
8560 /* rule 472 can match eol */
8561 YY_RULE_SETUP
8562 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);
8563         YY_BREAK
8564 case 473:
8565 /* rule 473 can match eol */
8566 YY_RULE_SETUP
8567 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);
8568         YY_BREAK
8569 case 474:
8570 /* rule 474 can match eol */
8571 YY_RULE_SETUP
8572 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);
8573         YY_BREAK
8574 case 475:
8575 /* rule 475 can match eol */
8576 YY_RULE_SETUP
8577 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);
8578         YY_BREAK
8579 case 476:
8580 /* rule 476 can match eol */
8581 YY_RULE_SETUP
8582 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);
8583         YY_BREAK
8584 case 477:
8585 /* rule 477 can match eol */
8586 YY_RULE_SETUP
8587 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);
8588         YY_BREAK
8589 case 478:
8590 /* rule 478 can match eol */
8591 YY_RULE_SETUP
8592 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);
8593         YY_BREAK
8594 case 479:
8595 /* rule 479 can match eol */
8596 YY_RULE_SETUP
8597 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);
8598         YY_BREAK
8599 case 480:
8600 /* rule 480 can match eol */
8601 case 481:
8602 /* rule 481 can match eol */
8603 YY_RULE_SETUP
8604 A_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8605         YY_BREAK
8606 case 482:
8607 /* rule 482 can match eol */
8608 case 483:
8609 /* rule 483 can match eol */
8610 YY_RULE_SETUP
8611 A_surfxml_process_on_failure = A_surfxml_process_on_failure_RESTART;
8612         YY_BREAK
8613 case 484:
8614 YY_RULE_SETUP
8615 {
8616   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8617   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8618   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8619  }
8620         YY_BREAK
8621 case 485:
8622 YY_RULE_SETUP
8623 {
8624   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8625   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8626   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8627   switch (YY_START) {
8628    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8629   }
8630  }
8631         YY_BREAK
8632 case 486:
8633 YY_RULE_SETUP
8634 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8635         YY_BREAK
8636 case 487:
8637 YY_RULE_SETUP
8638 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8639         YY_BREAK
8640 case YY_STATE_EOF(AL_surfxml_process):
8641 FAIL("EOF in attribute list of `process' element.");
8642         YY_BREAK
8643
8644 case 488:
8645 /* rule 488 can match eol */
8646 YY_RULE_SETUP
8647 {
8648   LEAVE;
8649   ETag_surfxml_process();
8650   popbuffer(); /* attribute */
8651   switch (YY_START) {
8652    case S_surfxml_platform_6: case S_surfxml_platform_4: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_8: case S_surfxml_platform_7: case S_surfxml_platform_3: SET(S_surfxml_platform_8); break;
8653   }
8654  }
8655         YY_BREAK
8656 case 489:
8657 /* rule 489 can match eol */
8658 YY_RULE_SETUP
8659 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8660         YY_BREAK
8661 case 490:
8662 YY_RULE_SETUP
8663 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8664         YY_BREAK
8665 case YY_STATE_EOF(E_surfxml_process):
8666 case YY_STATE_EOF(S_surfxml_process):
8667 case YY_STATE_EOF(S_surfxml_process_2):
8668 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8669         YY_BREAK
8670
8671 case 491:
8672 /* rule 491 can match eol */
8673 YY_RULE_SETUP
8674 FAIL("Starting tag <argument> is not allowed here.");
8675         YY_BREAK
8676 case 492:
8677 /* rule 492 can match eol */
8678 YY_RULE_SETUP
8679 {
8680   AX_surfxml_argument_value = 0;
8681   surfxml_argument_value_isset = 0;
8682   ENTER(AL_surfxml_argument); pushbuffer(0);
8683   }
8684         YY_BREAK
8685
8686 case 493:
8687 /* rule 493 can match eol */
8688 YY_RULE_SETUP
8689 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);
8690         YY_BREAK
8691 case 494:
8692 /* rule 494 can match eol */
8693 YY_RULE_SETUP
8694 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);
8695         YY_BREAK
8696 case 495:
8697 YY_RULE_SETUP
8698 {
8699   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8700   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8701  }
8702         YY_BREAK
8703 case 496:
8704 YY_RULE_SETUP
8705 {
8706   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8707   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8708   switch (YY_START) {
8709    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8710   }
8711  }
8712         YY_BREAK
8713 case 497:
8714 YY_RULE_SETUP
8715 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8716         YY_BREAK
8717 case 498:
8718 YY_RULE_SETUP
8719 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8720         YY_BREAK
8721 case YY_STATE_EOF(AL_surfxml_argument):
8722 FAIL("EOF in attribute list of `argument' element.");
8723         YY_BREAK
8724
8725 case 499:
8726 /* rule 499 can match eol */
8727 YY_RULE_SETUP
8728 {
8729   LEAVE;
8730   ETag_surfxml_argument();
8731   popbuffer(); /* attribute */
8732   switch (YY_START) {
8733    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8734   }
8735  }
8736         YY_BREAK
8737 case 500:
8738 /* rule 500 can match eol */
8739 YY_RULE_SETUP
8740 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8741         YY_BREAK
8742 case 501:
8743 YY_RULE_SETUP
8744 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8745         YY_BREAK
8746 case YY_STATE_EOF(E_surfxml_argument):
8747 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8748         YY_BREAK
8749
8750 case 502:
8751 /* rule 502 can match eol */
8752 YY_RULE_SETUP
8753 FAIL("Starting tag <config> is not allowed here.");
8754         YY_BREAK
8755 case 503:
8756 /* rule 503 can match eol */
8757 YY_RULE_SETUP
8758 {
8759   AX_surfxml_config_id = 0;
8760   surfxml_config_id_isset = 0;
8761   ENTER(AL_surfxml_config); pushbuffer(0);
8762   }
8763         YY_BREAK
8764
8765 case 504:
8766 /* rule 504 can match eol */
8767 YY_RULE_SETUP
8768 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);
8769         YY_BREAK
8770 case 505:
8771 /* rule 505 can match eol */
8772 YY_RULE_SETUP
8773 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);
8774         YY_BREAK
8775 case 506:
8776 YY_RULE_SETUP
8777 {
8778   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8779  }
8780         YY_BREAK
8781 case 507:
8782 YY_RULE_SETUP
8783 {
8784   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8785   switch (YY_START) {
8786    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8787   }
8788  }
8789         YY_BREAK
8790 case 508:
8791 YY_RULE_SETUP
8792 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
8793         YY_BREAK
8794 case 509:
8795 YY_RULE_SETUP
8796 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
8797         YY_BREAK
8798 case YY_STATE_EOF(AL_surfxml_config):
8799 FAIL("EOF in attribute list of `config' element.");
8800         YY_BREAK
8801
8802 case 510:
8803 /* rule 510 can match eol */
8804 YY_RULE_SETUP
8805 {
8806   LEAVE;
8807   ETag_surfxml_config();
8808   popbuffer(); /* attribute */
8809   switch (YY_START) {
8810    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8811   }
8812  }
8813         YY_BREAK
8814 case 511:
8815 /* rule 511 can match eol */
8816 YY_RULE_SETUP
8817 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
8818         YY_BREAK
8819 case 512:
8820 YY_RULE_SETUP
8821 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
8822         YY_BREAK
8823 case YY_STATE_EOF(S_surfxml_config):
8824 case YY_STATE_EOF(S_surfxml_config_2):
8825 case YY_STATE_EOF(E_surfxml_config):
8826 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
8827         YY_BREAK
8828
8829 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8830   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8831 case 513:
8832 /* rule 513 can match eol */
8833 YY_RULE_SETUP
8834 FAIL("Starting tag <prop> is not allowed here.");
8835         YY_BREAK
8836 case 514:
8837 /* rule 514 can match eol */
8838 YY_RULE_SETUP
8839 {
8840   AX_surfxml_prop_id = 0;
8841   surfxml_prop_id_isset = 0;
8842   AX_surfxml_prop_value = 0;
8843   surfxml_prop_value_isset = 0;
8844   ENTER(AL_surfxml_prop); pushbuffer(0);
8845   }
8846         YY_BREAK
8847
8848 case 515:
8849 /* rule 515 can match eol */
8850 YY_RULE_SETUP
8851 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);
8852         YY_BREAK
8853 case 516:
8854 /* rule 516 can match eol */
8855 YY_RULE_SETUP
8856 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);
8857         YY_BREAK
8858 case 517:
8859 /* rule 517 can match eol */
8860 YY_RULE_SETUP
8861 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);
8862         YY_BREAK
8863 case 518:
8864 /* rule 518 can match eol */
8865 YY_RULE_SETUP
8866 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);
8867         YY_BREAK
8868 case 519:
8869 YY_RULE_SETUP
8870 {
8871   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8872   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8873   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8874  }
8875         YY_BREAK
8876 case 520:
8877 YY_RULE_SETUP
8878 {
8879   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8880   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8881   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8882   switch (YY_START) {
8883    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
8884    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8885    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8886    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8887    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8888    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8889    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8890   }
8891  }
8892         YY_BREAK
8893 case 521:
8894 YY_RULE_SETUP
8895 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8896         YY_BREAK
8897 case 522:
8898 YY_RULE_SETUP
8899 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8900         YY_BREAK
8901 case YY_STATE_EOF(AL_surfxml_prop):
8902 FAIL("EOF in attribute list of `prop' element.");
8903         YY_BREAK
8904
8905 case 523:
8906 /* rule 523 can match eol */
8907 YY_RULE_SETUP
8908 {
8909   LEAVE;
8910   ETag_surfxml_prop();
8911   popbuffer(); /* attribute */
8912   switch (YY_START) {
8913    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
8914    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8915    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8916    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8917    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8918    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8919    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8920   }
8921  }
8922         YY_BREAK
8923 case 524:
8924 /* rule 524 can match eol */
8925 YY_RULE_SETUP
8926 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8927         YY_BREAK
8928 case 525:
8929 YY_RULE_SETUP
8930 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8931         YY_BREAK
8932 case YY_STATE_EOF(E_surfxml_prop):
8933 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8934         YY_BREAK
8935
8936 /* EPILOG: after the root element. */
8937
8938 case 526:
8939 YY_RULE_SETUP
8940 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
8941         YY_BREAK
8942 case YY_STATE_EOF(EPILOG):
8943 SUCCEED;
8944         YY_BREAK
8945
8946 /* CHARACTER DATA. */
8947
8948 /* Non-defined standard entities... */
8949 case 527:
8950 YY_RULE_SETUP
8951 BUFFERPUTC('&');
8952         YY_BREAK
8953 case 528:
8954 YY_RULE_SETUP
8955 BUFFERPUTC('<');
8956         YY_BREAK
8957 case 529:
8958 YY_RULE_SETUP
8959 BUFFERPUTC('>');
8960         YY_BREAK
8961 case 530:
8962 YY_RULE_SETUP
8963 BUFFERPUTC('\'');
8964         YY_BREAK
8965 case 531:
8966 YY_RULE_SETUP
8967 BUFFERPUTC('"');
8968         YY_BREAK
8969 /* Character entities. */
8970 case 532:
8971 YY_RULE_SETUP
8972 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
8973         YY_BREAK
8974 case 533:
8975 YY_RULE_SETUP
8976 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
8977         YY_BREAK
8978
8979 case 534:
8980 /* rule 534 can match eol */
8981 case 535:
8982 /* rule 535 can match eol */
8983 case 536:
8984 /* rule 536 can match eol */
8985 case 537:
8986 /* rule 537 can match eol */
8987 YY_RULE_SETUP
8988 BUFFERPUTC('\n');
8989         YY_BREAK
8990
8991 case 538:
8992 YY_RULE_SETUP
8993 ENTER(CDATA);
8994         YY_BREAK
8995 case 539:
8996 YY_RULE_SETUP
8997 FAIL("Unexpected `]""]>' in character data.");
8998         YY_BREAK
8999
9000 case 540:
9001 YY_RULE_SETUP
9002 BUFFERDONE; LEAVE;
9003         YY_BREAK
9004 case YY_STATE_EOF(VALUE1):
9005 FAIL("EOF in literal (\"'\" expected).");
9006         YY_BREAK
9007
9008 case 541:
9009 YY_RULE_SETUP
9010 BUFFERDONE; LEAVE;
9011         YY_BREAK
9012 case YY_STATE_EOF(VALUE2):
9013 FAIL("EOF in literal (`\"' expected).");
9014         YY_BREAK
9015
9016 case 542:
9017 /* rule 542 can match eol */
9018 YY_RULE_SETUP
9019 BUFFERPUTC(surf_parse_text[0]);
9020         YY_BREAK
9021 case 543:
9022 YY_RULE_SETUP
9023 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9024         YY_BREAK
9025
9026 case 544:
9027 YY_RULE_SETUP
9028 LEAVE;
9029         YY_BREAK
9030 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9031 case 545:
9032 YY_RULE_SETUP
9033 BUFFERPUTC(surf_parse_text[0]);
9034         YY_BREAK
9035 case YY_STATE_EOF(CDATA):
9036 FAIL("EOF in CDATA section.");
9037         YY_BREAK
9038
9039 /* Impossible rules to avoid warnings from flex(1). */
9040 /* Ideally, this should be replaced by code in flexml.pl that
9041     generates just the states not covered by other rules. */
9042
9043 case 546:
9044 /* rule 546 can match eol */
9045 YY_RULE_SETUP
9046 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9047         YY_BREAK
9048
9049 case 547:
9050 YY_RULE_SETUP
9051 ECHO;
9052         YY_BREAK
9053 case YY_STATE_EOF(INITIAL):
9054 case YY_STATE_EOF(ROOT_surfxml_platform):
9055 case YY_STATE_EOF(S_surfxml_platform_2):
9056 case YY_STATE_EOF(S_surfxml_platform_5):
9057 case YY_STATE_EOF(S_surfxml_platform_7):
9058 case YY_STATE_EOF(S_surfxml_include_1):
9059 case YY_STATE_EOF(S_surfxml_random_1):
9060 case YY_STATE_EOF(S_surfxml_AS_2):
9061 case YY_STATE_EOF(S_surfxml_AS_5):
9062 case YY_STATE_EOF(S_surfxml_AS_7):
9063 case YY_STATE_EOF(S_surfxml_AS_10):
9064 case YY_STATE_EOF(S_surfxml_AS_12):
9065 case YY_STATE_EOF(S_surfxml_storage_type_1):
9066 case YY_STATE_EOF(S_surfxml_storage_1):
9067 case YY_STATE_EOF(S_surfxml_host_1):
9068 case YY_STATE_EOF(S_surfxml_link_1):
9069 case YY_STATE_EOF(S_surfxml_route_1):
9070 case YY_STATE_EOF(S_surfxml_ASroute_1):
9071 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9072 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9073 case YY_STATE_EOF(S_surfxml_process_1):
9074 case YY_STATE_EOF(S_surfxml_config_1):
9075 case YY_STATE_EOF(IMPOSSIBLE):
9076         yyterminate();
9077
9078         case YY_END_OF_BUFFER:
9079                 {
9080                 /* Amount of text matched not including the EOB char. */
9081                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9082
9083                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9084                 *yy_cp = (yy_hold_char);
9085                 YY_RESTORE_YY_MORE_OFFSET
9086
9087                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9088                         {
9089                         /* We're scanning a new file or input source.  It's
9090                          * possible that this happened because the user
9091                          * just pointed surf_parse_in at a new source and called
9092                          * surf_parse_lex().  If so, then we have to assure
9093                          * consistency between YY_CURRENT_BUFFER and our
9094                          * globals.  Here is the right place to do so, because
9095                          * this is the first action (other than possibly a
9096                          * back-up) that will match for the new input source.
9097                          */
9098                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9099                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9100                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9101                         }
9102
9103                 /* Note that here we test for yy_c_buf_p "<=" to the position
9104                  * of the first EOB in the buffer, since yy_c_buf_p will
9105                  * already have been incremented past the NUL character
9106                  * (since all states make transitions on EOB to the
9107                  * end-of-buffer state).  Contrast this with the test
9108                  * in input().
9109                  */
9110                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9111                         { /* This was really a NUL. */
9112                         yy_state_type yy_next_state;
9113
9114                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9115
9116                         yy_current_state = yy_get_previous_state(  );
9117
9118                         /* Okay, we're now positioned to make the NUL
9119                          * transition.  We couldn't have
9120                          * yy_get_previous_state() go ahead and do it
9121                          * for us because it doesn't know how to deal
9122                          * with the possibility of jamming (and we don't
9123                          * want to build jamming into it because then it
9124                          * will run more slowly).
9125                          */
9126
9127                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9128
9129                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9130
9131                         if ( yy_next_state )
9132                                 {
9133                                 /* Consume the NUL. */
9134                                 yy_cp = ++(yy_c_buf_p);
9135                                 yy_current_state = yy_next_state;
9136                                 goto yy_match;
9137                                 }
9138
9139                         else
9140                                 {
9141                                 yy_cp = (yy_c_buf_p);
9142                                 goto yy_find_action;
9143                                 }
9144                         }
9145
9146                 else switch ( yy_get_next_buffer(  ) )
9147                         {
9148                         case EOB_ACT_END_OF_FILE:
9149                                 {
9150                                 (yy_did_buffer_switch_on_eof) = 0;
9151
9152                                 if ( surf_parse_wrap( ) )
9153                                         {
9154                                         /* Note: because we've taken care in
9155                                          * yy_get_next_buffer() to have set up
9156                                          * surf_parse_text, we can now set up
9157                                          * yy_c_buf_p so that if some total
9158                                          * hoser (like flex itself) wants to
9159                                          * call the scanner after we return the
9160                                          * YY_NULL, it'll still work - another
9161                                          * YY_NULL will get returned.
9162                                          */
9163                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9164
9165                                         yy_act = YY_STATE_EOF(YY_START);
9166                                         goto do_action;
9167                                         }
9168
9169                                 else
9170                                         {
9171                                         if ( ! (yy_did_buffer_switch_on_eof) )
9172                                                 YY_NEW_FILE;
9173                                         }
9174                                 break;
9175                                 }
9176
9177                         case EOB_ACT_CONTINUE_SCAN:
9178                                 (yy_c_buf_p) =
9179                                         (yytext_ptr) + yy_amount_of_matched_text;
9180
9181                                 yy_current_state = yy_get_previous_state(  );
9182
9183                                 yy_cp = (yy_c_buf_p);
9184                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9185                                 goto yy_match;
9186
9187                         case EOB_ACT_LAST_MATCH:
9188                                 (yy_c_buf_p) =
9189                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9190
9191                                 yy_current_state = yy_get_previous_state(  );
9192
9193                                 yy_cp = (yy_c_buf_p);
9194                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9195                                 goto yy_find_action;
9196                         }
9197                 break;
9198                 }
9199
9200         default:
9201                 YY_FATAL_ERROR(
9202                         "fatal flex scanner internal error--no action found" );
9203         } /* end of action switch */
9204                 } /* end of scanning one token */
9205 } /* end of surf_parse_lex */
9206
9207 /* yy_get_next_buffer - try to read in a new buffer
9208  *
9209  * Returns a code representing an action:
9210  *      EOB_ACT_LAST_MATCH -
9211  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9212  *      EOB_ACT_END_OF_FILE - end of file
9213  */
9214 static int yy_get_next_buffer (void)
9215 {
9216         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9217         register char *source = (yytext_ptr);
9218         register int number_to_move, i;
9219         int ret_val;
9220
9221         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9222                 YY_FATAL_ERROR(
9223                 "fatal flex scanner internal error--end of buffer missed" );
9224
9225         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9226                 { /* Don't try to fill the buffer, so this is an EOF. */
9227                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9228                         {
9229                         /* We matched a single character, the EOB, so
9230                          * treat this as a final EOF.
9231                          */
9232                         return EOB_ACT_END_OF_FILE;
9233                         }
9234
9235                 else
9236                         {
9237                         /* We matched some text prior to the EOB, first
9238                          * process it.
9239                          */
9240                         return EOB_ACT_LAST_MATCH;
9241                         }
9242                 }
9243
9244         /* Try to read more data. */
9245
9246         /* First move last chars to start of buffer. */
9247         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9248
9249         for ( i = 0; i < number_to_move; ++i )
9250                 *(dest++) = *(source++);
9251
9252         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9253                 /* don't do the read, it's not guaranteed to return an EOF,
9254                  * just force an EOF
9255                  */
9256                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9257
9258         else
9259                 {
9260                         int num_to_read =
9261                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9262
9263                 while ( num_to_read <= 0 )
9264                         { /* Not enough room in the buffer - grow it. */
9265
9266                         /* just a shorter name for the current buffer */
9267                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9268
9269                         int yy_c_buf_p_offset =
9270                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9271
9272                         if ( b->yy_is_our_buffer )
9273                                 {
9274                                 int new_size = b->yy_buf_size * 2;
9275
9276                                 if ( new_size <= 0 )
9277                                         b->yy_buf_size += b->yy_buf_size / 8;
9278                                 else
9279                                         b->yy_buf_size *= 2;
9280
9281                                 b->yy_ch_buf = (char *)
9282                                         /* Include room in for 2 EOB chars. */
9283                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9284                                 }
9285                         else
9286                                 /* Can't grow it, we don't own it. */
9287                                 b->yy_ch_buf = 0;
9288
9289                         if ( ! b->yy_ch_buf )
9290                                 YY_FATAL_ERROR(
9291                                 "fatal error - scanner input buffer overflow" );
9292
9293                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9294
9295                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9296                                                 number_to_move - 1;
9297
9298                         }
9299
9300                 if ( num_to_read > YY_READ_BUF_SIZE )
9301                         num_to_read = YY_READ_BUF_SIZE;
9302
9303                 /* Read in more data. */
9304                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9305                         (yy_n_chars), (size_t) num_to_read );
9306
9307                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9308                 }
9309
9310         if ( (yy_n_chars) == 0 )
9311                 {
9312                 if ( number_to_move == YY_MORE_ADJ )
9313                         {
9314                         ret_val = EOB_ACT_END_OF_FILE;
9315                         surf_parse_restart(surf_parse_in  );
9316                         }
9317
9318                 else
9319                         {
9320                         ret_val = EOB_ACT_LAST_MATCH;
9321                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9322                                 YY_BUFFER_EOF_PENDING;
9323                         }
9324                 }
9325
9326         else
9327                 ret_val = EOB_ACT_CONTINUE_SCAN;
9328
9329         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9330                 /* Extend the array by 50%, plus the number we really need. */
9331                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9332                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9333                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9334                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9335         }
9336
9337         (yy_n_chars) += number_to_move;
9338         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9339         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9340
9341         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9342
9343         return ret_val;
9344 }
9345
9346 /* yy_get_previous_state - get the state just before the EOB char was reached */
9347
9348     static yy_state_type yy_get_previous_state (void)
9349 {
9350         register yy_state_type yy_current_state;
9351         register char *yy_cp;
9352     
9353         yy_current_state = (yy_start);
9354
9355         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9356                 {
9357                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9358                 if ( yy_accept[yy_current_state] )
9359                         {
9360                         (yy_last_accepting_state) = yy_current_state;
9361                         (yy_last_accepting_cpos) = yy_cp;
9362                         }
9363                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9364                         {
9365                         yy_current_state = (int) yy_def[yy_current_state];
9366                         if ( yy_current_state >= 3217 )
9367                                 yy_c = yy_meta[(unsigned int) yy_c];
9368                         }
9369                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9370                 }
9371
9372         return yy_current_state;
9373 }
9374
9375 /* yy_try_NUL_trans - try to make a transition on the NUL character
9376  *
9377  * synopsis
9378  *      next_state = yy_try_NUL_trans( current_state );
9379  */
9380     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9381 {
9382         register int yy_is_jam;
9383         register char *yy_cp = (yy_c_buf_p);
9384
9385         register YY_CHAR yy_c = 1;
9386         if ( yy_accept[yy_current_state] )
9387                 {
9388                 (yy_last_accepting_state) = yy_current_state;
9389                 (yy_last_accepting_cpos) = yy_cp;
9390                 }
9391         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9392                 {
9393                 yy_current_state = (int) yy_def[yy_current_state];
9394                 if ( yy_current_state >= 3217 )
9395                         yy_c = yy_meta[(unsigned int) yy_c];
9396                 }
9397         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9398         yy_is_jam = (yy_current_state == 3216);
9399
9400         return yy_is_jam ? 0 : yy_current_state;
9401 }
9402
9403 #ifndef YY_NO_INPUT
9404 #ifdef __cplusplus
9405     static int yyinput (void)
9406 #else
9407     static int input  (void)
9408 #endif
9409
9410 {
9411         int c;
9412     
9413         *(yy_c_buf_p) = (yy_hold_char);
9414
9415         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9416                 {
9417                 /* yy_c_buf_p now points to the character we want to return.
9418                  * If this occurs *before* the EOB characters, then it's a
9419                  * valid NUL; if not, then we've hit the end of the buffer.
9420                  */
9421                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9422                         /* This was really a NUL. */
9423                         *(yy_c_buf_p) = '\0';
9424
9425                 else
9426                         { /* need more input */
9427                         int offset = (yy_c_buf_p) - (yytext_ptr);
9428                         ++(yy_c_buf_p);
9429
9430                         switch ( yy_get_next_buffer(  ) )
9431                                 {
9432                                 case EOB_ACT_LAST_MATCH:
9433                                         /* This happens because yy_g_n_b()
9434                                          * sees that we've accumulated a
9435                                          * token and flags that we need to
9436                                          * try matching the token before
9437                                          * proceeding.  But for input(),
9438                                          * there's no matching to consider.
9439                                          * So convert the EOB_ACT_LAST_MATCH
9440                                          * to EOB_ACT_END_OF_FILE.
9441                                          */
9442
9443                                         /* Reset buffer status. */
9444                                         surf_parse_restart(surf_parse_in );
9445
9446                                         /*FALLTHROUGH*/
9447
9448                                 case EOB_ACT_END_OF_FILE:
9449                                         {
9450                                         if ( surf_parse_wrap( ) )
9451                                                 return EOF;
9452
9453                                         if ( ! (yy_did_buffer_switch_on_eof) )
9454                                                 YY_NEW_FILE;
9455 #ifdef __cplusplus
9456                                         return yyinput();
9457 #else
9458                                         return input();
9459 #endif
9460                                         }
9461
9462                                 case EOB_ACT_CONTINUE_SCAN:
9463                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9464                                         break;
9465                                 }
9466                         }
9467                 }
9468
9469         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9470         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9471         (yy_hold_char) = *++(yy_c_buf_p);
9472
9473         if ( c == '\n' )
9474                    
9475     surf_parse_lineno++;
9476 ;
9477
9478         return c;
9479 }
9480 #endif  /* ifndef YY_NO_INPUT */
9481
9482 /** Immediately switch to a different input stream.
9483  * @param input_file A readable stream.
9484  * 
9485  * @note This function does not reset the start condition to @c INITIAL .
9486  */
9487     void surf_parse_restart  (FILE * input_file )
9488 {
9489     
9490         if ( ! YY_CURRENT_BUFFER ){
9491         surf_parse_ensure_buffer_stack ();
9492                 YY_CURRENT_BUFFER_LVALUE =
9493             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9494         }
9495
9496         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9497         surf_parse__load_buffer_state( );
9498 }
9499
9500 /** Switch to a different input buffer.
9501  * @param new_buffer The new input buffer.
9502  * 
9503  */
9504     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9505 {
9506     
9507         /* TODO. We should be able to replace this entire function body
9508          * with
9509          *              surf_parse_pop_buffer_state();
9510          *              surf_parse_push_buffer_state(new_buffer);
9511      */
9512         surf_parse_ensure_buffer_stack ();
9513         if ( YY_CURRENT_BUFFER == new_buffer )
9514                 return;
9515
9516         if ( YY_CURRENT_BUFFER )
9517                 {
9518                 /* Flush out information for old buffer. */
9519                 *(yy_c_buf_p) = (yy_hold_char);
9520                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9521                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9522                 }
9523
9524         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9525         surf_parse__load_buffer_state( );
9526
9527         /* We don't actually know whether we did this switch during
9528          * EOF (surf_parse_wrap()) processing, but the only time this flag
9529          * is looked at is after surf_parse_wrap() is called, so it's safe
9530          * to go ahead and always set it.
9531          */
9532         (yy_did_buffer_switch_on_eof) = 1;
9533 }
9534
9535 static void surf_parse__load_buffer_state  (void)
9536 {
9537         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9538         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9539         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9540         (yy_hold_char) = *(yy_c_buf_p);
9541 }
9542
9543 /** Allocate and initialize an input buffer state.
9544  * @param file A readable stream.
9545  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9546  * 
9547  * @return the allocated buffer state.
9548  */
9549     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9550 {
9551         YY_BUFFER_STATE b;
9552     
9553         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9554         if ( ! b )
9555                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9556
9557         b->yy_buf_size = size;
9558
9559         /* yy_ch_buf has to be 2 characters longer than the size given because
9560          * we need to put in 2 end-of-buffer characters.
9561          */
9562         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9563         if ( ! b->yy_ch_buf )
9564                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9565
9566         b->yy_is_our_buffer = 1;
9567
9568         surf_parse__init_buffer(b,file );
9569
9570         return b;
9571 }
9572
9573 /** Destroy the buffer.
9574  * @param b a buffer created with surf_parse__create_buffer()
9575  * 
9576  */
9577     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9578 {
9579     
9580         if ( ! b )
9581                 return;
9582
9583         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9584                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9585
9586         if ( b->yy_is_our_buffer )
9587                 surf_parse_free((void *) b->yy_ch_buf  );
9588
9589         surf_parse_free((void *) b  );
9590 }
9591
9592 #ifndef __cplusplus
9593 extern int isatty (int );
9594 #endif /* __cplusplus */
9595     
9596 /* Initializes or reinitializes a buffer.
9597  * This function is sometimes called more than once on the same buffer,
9598  * such as during a surf_parse_restart() or at EOF.
9599  */
9600     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9601
9602 {
9603         int oerrno = errno;
9604     
9605         surf_parse__flush_buffer(b );
9606
9607         b->yy_input_file = file;
9608         b->yy_fill_buffer = 1;
9609
9610     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9611      * called from surf_parse_restart() or through yy_get_next_buffer.
9612      * In that case, we don't want to reset the lineno or column.
9613      */
9614     if (b != YY_CURRENT_BUFFER){
9615         b->yy_bs_lineno = 1;
9616         b->yy_bs_column = 0;
9617     }
9618
9619         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9620     
9621         errno = oerrno;
9622 }
9623
9624 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9625  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9626  * 
9627  */
9628     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9629 {
9630         if ( ! b )
9631                 return;
9632
9633         b->yy_n_chars = 0;
9634
9635         /* We always need two end-of-buffer characters.  The first causes
9636          * a transition to the end-of-buffer state.  The second causes
9637          * a jam in that state.
9638          */
9639         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9640         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9641
9642         b->yy_buf_pos = &b->yy_ch_buf[0];
9643
9644         b->yy_at_bol = 1;
9645         b->yy_buffer_status = YY_BUFFER_NEW;
9646
9647         if ( b == YY_CURRENT_BUFFER )
9648                 surf_parse__load_buffer_state( );
9649 }
9650
9651 /** Pushes the new state onto the stack. The new state becomes
9652  *  the current state. This function will allocate the stack
9653  *  if necessary.
9654  *  @param new_buffer The new state.
9655  *  
9656  */
9657 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9658 {
9659         if (new_buffer == NULL)
9660                 return;
9661
9662         surf_parse_ensure_buffer_stack();
9663
9664         /* This block is copied from surf_parse__switch_to_buffer. */
9665         if ( YY_CURRENT_BUFFER )
9666                 {
9667                 /* Flush out information for old buffer. */
9668                 *(yy_c_buf_p) = (yy_hold_char);
9669                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9670                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9671                 }
9672
9673         /* Only push if top exists. Otherwise, replace top. */
9674         if (YY_CURRENT_BUFFER)
9675                 (yy_buffer_stack_top)++;
9676         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9677
9678         /* copied from surf_parse__switch_to_buffer. */
9679         surf_parse__load_buffer_state( );
9680         (yy_did_buffer_switch_on_eof) = 1;
9681 }
9682
9683 /** Removes and deletes the top of the stack, if present.
9684  *  The next element becomes the new top.
9685  *  
9686  */
9687 void surf_parse_pop_buffer_state (void)
9688 {
9689         if (!YY_CURRENT_BUFFER)
9690                 return;
9691
9692         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9693         YY_CURRENT_BUFFER_LVALUE = NULL;
9694         if ((yy_buffer_stack_top) > 0)
9695                 --(yy_buffer_stack_top);
9696
9697         if (YY_CURRENT_BUFFER) {
9698                 surf_parse__load_buffer_state( );
9699                 (yy_did_buffer_switch_on_eof) = 1;
9700         }
9701 }
9702
9703 /* Allocates the stack if it does not exist.
9704  *  Guarantees space for at least one push.
9705  */
9706 static void surf_parse_ensure_buffer_stack (void)
9707 {
9708         int num_to_alloc;
9709     
9710         if (!(yy_buffer_stack)) {
9711
9712                 /* First allocation is just for 2 elements, since we don't know if this
9713                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9714                  * immediate realloc on the next call.
9715          */
9716                 num_to_alloc = 1;
9717                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9718                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9719                                                                 );
9720                 if ( ! (yy_buffer_stack) )
9721                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9722                                                                   
9723                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9724                                 
9725                 (yy_buffer_stack_max) = num_to_alloc;
9726                 (yy_buffer_stack_top) = 0;
9727                 return;
9728         }
9729
9730         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9731
9732                 /* Increase the buffer to prepare for a possible push. */
9733                 int grow_size = 8 /* arbitrary grow size */;
9734
9735                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9736                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9737                                                                 ((yy_buffer_stack),
9738                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9739                                                                 );
9740                 if ( ! (yy_buffer_stack) )
9741                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9742
9743                 /* zero only the new slots.*/
9744                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9745                 (yy_buffer_stack_max) = num_to_alloc;
9746         }
9747 }
9748
9749 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9750  * @param base the character buffer
9751  * @param size the size in bytes of the character buffer
9752  * 
9753  * @return the newly allocated buffer state object. 
9754  */
9755 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9756 {
9757         YY_BUFFER_STATE b;
9758     
9759         if ( size < 2 ||
9760              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9761              base[size-1] != YY_END_OF_BUFFER_CHAR )
9762                 /* They forgot to leave room for the EOB's. */
9763                 return 0;
9764
9765         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9766         if ( ! b )
9767                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9768
9769         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
9770         b->yy_buf_pos = b->yy_ch_buf = base;
9771         b->yy_is_our_buffer = 0;
9772         b->yy_input_file = 0;
9773         b->yy_n_chars = b->yy_buf_size;
9774         b->yy_is_interactive = 0;
9775         b->yy_at_bol = 1;
9776         b->yy_fill_buffer = 0;
9777         b->yy_buffer_status = YY_BUFFER_NEW;
9778
9779         surf_parse__switch_to_buffer(b  );
9780
9781         return b;
9782 }
9783
9784 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
9785  * scan from a @e copy of @a str.
9786  * @param yystr a NUL-terminated string to scan
9787  * 
9788  * @return the newly allocated buffer state object.
9789  * @note If you want to scan bytes that may contain NUL values, then use
9790  *       surf_parse__scan_bytes() instead.
9791  */
9792 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
9793 {
9794     
9795         return surf_parse__scan_bytes(yystr,strlen(yystr) );
9796 }
9797
9798 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
9799  * scan from a @e copy of @a bytes.
9800  * @param yybytes the byte buffer to scan
9801  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
9802  * 
9803  * @return the newly allocated buffer state object.
9804  */
9805 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
9806 {
9807         YY_BUFFER_STATE b;
9808         char *buf;
9809         yy_size_t n;
9810         int i;
9811     
9812         /* Get memory for full buffer, including space for trailing EOB's. */
9813         n = _yybytes_len + 2;
9814         buf = (char *) surf_parse_alloc(n  );
9815         if ( ! buf )
9816                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
9817
9818         for ( i = 0; i < _yybytes_len; ++i )
9819                 buf[i] = yybytes[i];
9820
9821         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
9822
9823         b = surf_parse__scan_buffer(buf,n );
9824         if ( ! b )
9825                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
9826
9827         /* It's okay to grow etc. this buffer, and we should throw it
9828          * away when we're done.
9829          */
9830         b->yy_is_our_buffer = 1;
9831
9832         return b;
9833 }
9834
9835     static void yy_push_state (int  new_state )
9836 {
9837         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
9838                 {
9839                 yy_size_t new_size;
9840
9841                 (yy_start_stack_depth) += YY_START_STACK_INCR;
9842                 new_size = (yy_start_stack_depth) * sizeof( int );
9843
9844                 if ( ! (yy_start_stack) )
9845                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
9846
9847                 else
9848                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
9849
9850                 if ( ! (yy_start_stack) )
9851                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
9852                 }
9853
9854         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
9855
9856         BEGIN(new_state);
9857 }
9858
9859     static void yy_pop_state  (void)
9860 {
9861         if ( --(yy_start_stack_ptr) < 0 )
9862                 YY_FATAL_ERROR( "start-condition stack underflow" );
9863
9864         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
9865 }
9866
9867 #ifndef YY_EXIT_FAILURE
9868 #define YY_EXIT_FAILURE 2
9869 #endif
9870
9871 static void yy_fatal_error (yyconst char* msg )
9872 {
9873         (void) fprintf( stderr, "%s\n", msg );
9874         exit( YY_EXIT_FAILURE );
9875 }
9876
9877 /* Redefine yyless() so it works in section 3 code. */
9878
9879 #undef yyless
9880 #define yyless(n) \
9881         do \
9882                 { \
9883                 /* Undo effects of setting up surf_parse_text. */ \
9884         int yyless_macro_arg = (n); \
9885         YY_LESS_LINENO(yyless_macro_arg);\
9886                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
9887                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
9888                 (yy_hold_char) = *(yy_c_buf_p); \
9889                 *(yy_c_buf_p) = '\0'; \
9890                 surf_parse_leng = yyless_macro_arg; \
9891                 } \
9892         while ( 0 )
9893
9894 /* Accessor  methods (get/set functions) to struct members. */
9895
9896 /** Get the current line number.
9897  * 
9898  */
9899 int surf_parse_get_lineno  (void)
9900 {
9901         
9902     return surf_parse_lineno;
9903 }
9904
9905 /** Get the input stream.
9906  * 
9907  */
9908 FILE *surf_parse_get_in  (void)
9909 {
9910         return surf_parse_in;
9911 }
9912
9913 /** Get the output stream.
9914  * 
9915  */
9916 FILE *surf_parse_get_out  (void)
9917 {
9918         return surf_parse_out;
9919 }
9920
9921 /** Get the length of the current token.
9922  * 
9923  */
9924 int surf_parse_get_leng  (void)
9925 {
9926         return surf_parse_leng;
9927 }
9928
9929 /** Get the current token.
9930  * 
9931  */
9932
9933 char *surf_parse_get_text  (void)
9934 {
9935         return surf_parse_text;
9936 }
9937
9938 /** Set the current line number.
9939  * @param line_number
9940  * 
9941  */
9942 void surf_parse_set_lineno (int  line_number )
9943 {
9944     
9945     surf_parse_lineno = line_number;
9946 }
9947
9948 /** Set the input stream. This does not discard the current
9949  * input buffer.
9950  * @param in_str A readable stream.
9951  * 
9952  * @see surf_parse__switch_to_buffer
9953  */
9954 void surf_parse_set_in (FILE *  in_str )
9955 {
9956         surf_parse_in = in_str ;
9957 }
9958
9959 void surf_parse_set_out (FILE *  out_str )
9960 {
9961         surf_parse_out = out_str ;
9962 }
9963
9964 int surf_parse_get_debug  (void)
9965 {
9966         return surf_parse__flex_debug;
9967 }
9968
9969 void surf_parse_set_debug (int  bdebug )
9970 {
9971         surf_parse__flex_debug = bdebug ;
9972 }
9973
9974 static int yy_init_globals (void)
9975 {
9976         /* Initialization is the same as for the non-reentrant scanner.
9977      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
9978      */
9979
9980     /* We do not touch surf_parse_lineno unless the option is enabled. */
9981     surf_parse_lineno =  1;
9982     
9983     (yy_buffer_stack) = 0;
9984     (yy_buffer_stack_top) = 0;
9985     (yy_buffer_stack_max) = 0;
9986     (yy_c_buf_p) = (char *) 0;
9987     (yy_init) = 0;
9988     (yy_start) = 0;
9989
9990     (yy_start_stack_ptr) = 0;
9991     (yy_start_stack_depth) = 0;
9992     (yy_start_stack) =  NULL;
9993
9994 /* Defined in main.c */
9995 #ifdef YY_STDINIT
9996     surf_parse_in = stdin;
9997     surf_parse_out = stdout;
9998 #else
9999     surf_parse_in = (FILE *) 0;
10000     surf_parse_out = (FILE *) 0;
10001 #endif
10002
10003     /* For future reference: Set errno on error, since we are called by
10004      * surf_parse_lex_init()
10005      */
10006     return 0;
10007 }
10008
10009 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10010 int surf_parse_lex_destroy  (void)
10011 {
10012     
10013     /* Pop the buffer stack, destroying each element. */
10014         while(YY_CURRENT_BUFFER){
10015                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10016                 YY_CURRENT_BUFFER_LVALUE = NULL;
10017                 surf_parse_pop_buffer_state();
10018         }
10019
10020         /* Destroy the stack itself. */
10021         surf_parse_free((yy_buffer_stack) );
10022         (yy_buffer_stack) = NULL;
10023
10024     /* Destroy the start condition stack. */
10025         surf_parse_free((yy_start_stack)  );
10026         (yy_start_stack) = NULL;
10027
10028     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10029      * surf_parse_lex() is called, initialization will occur. */
10030     yy_init_globals( );
10031
10032     return 0;
10033 }
10034
10035 /*
10036  * Internal utility routines.
10037  */
10038
10039 #ifndef yytext_ptr
10040 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10041 {
10042         register int i;
10043         for ( i = 0; i < n; ++i )
10044                 s1[i] = s2[i];
10045 }
10046 #endif
10047
10048 #ifdef YY_NEED_STRLEN
10049 static int yy_flex_strlen (yyconst char * s )
10050 {
10051         register int n;
10052         for ( n = 0; s[n]; ++n )
10053                 ;
10054
10055         return n;
10056 }
10057 #endif
10058
10059 void *surf_parse_alloc (yy_size_t  size )
10060 {
10061         return (void *) malloc( size );
10062 }
10063
10064 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10065 {
10066         /* The cast to (char *) in the following accommodates both
10067          * implementations that use char* generic pointers, and those
10068          * that use void* generic pointers.  It works with the latter
10069          * because both ANSI C and C++ allow castless assignment from
10070          * any pointer type to void*, and deal with argument conversions
10071          * as though doing an assignment.
10072          */
10073         return (void *) realloc( (char *) ptr, size );
10074 }
10075
10076 void surf_parse_free (void * ptr )
10077 {
10078         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10079 }
10080
10081 #define YYTABLES_NAME "yytables"
10082
10083 /* Element context stack lookup. */
10084 int surfxml_element_context(int i)
10085 {
10086   return (0<i && i<yy_start_stack_depth
10087           ? yy_start_stack[yy_start_stack_ptr - i]
10088           : 0);
10089 }
10090
10091 #ifdef FLEX_DEBUG
10092 void print_yy_stack(char* fmt, ...)
10093 {
10094   int i = 0; va_list ap; va_start(ap, fmt);
10095   vfprintf(stderr, fmt, ap);
10096   if (surfxml_statenames) {
10097       for (i=1; i<yy_start_stack_ptr; i++) {
10098           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10099       }
10100       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10101   }
10102   va_end(ap);
10103 }
10104
10105 void print_surfxml_bufferstack()
10106 {
10107     int i;
10108     fputs("Buffer: ", stderr);
10109     for (i = 0; i < blimit; i++) {
10110        if ( surfxml_bufferstack[i] == '\377' ) break;
10111          putc(surfxml_bufferstack[i], stderr);
10112     }
10113     putc('\n', stderr);
10114 }
10115
10116 static void debug_enter(int state, const char* statename) {
10117   yy_push_state(state);
10118   if (surf_parse__flex_debug) {
10119        print_yy_stack("--ENTER(%s) : ",statename);
10120        print_surfxml_bufferstack();
10121   }
10122 }
10123
10124 static void debug_leave(void) {
10125     if (surf_parse__flex_debug) {
10126         print_yy_stack("--LEAVE : ");
10127         print_surfxml_bufferstack();
10128     }
10129   yy_pop_state();
10130 }
10131
10132 static void debug_set(int state, const char* statename) {
10133   BEGIN(state);
10134   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10135 }
10136 #endif
10137
10138 static void cleanup(void)
10139 {
10140     if (surfxml_statenames) {
10141         free(surfxml_statenames);
10142         surfxml_statenames = NULL;
10143     }
10144     free(surfxml_bufferstack);
10145     surfxml_bufferstack = NULL;
10146
10147     free(indexstack);
10148     indexstack = NULL;
10149 }
10150
10151 static int fail(const char* fmt, ...)
10152 {
10153     int chars_left, used;
10154     va_list ap; va_start(ap, fmt);
10155 #ifdef FLEXML_yylineno
10156     used = sprintf(flexml_err_msg,
10157                    "Invalid XML (XML input line %d, state %d): ",
10158                    surf_parse_lineno, YY_START);
10159 #else
10160     used = sprintf(flexml_err_msg,
10161                    "Invalid XML (state %d): ",
10162                    YY_START);
10163 #endif
10164     chars_left = flexml_max_err_msg_size - used - 1;
10165     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10166     va_end(ap);
10167
10168 #ifndef FLEXML_quiet_parser
10169     /* print directly to sdterr */
10170     fprintf(stderr, "%s\n", flexml_err_msg);
10171     flexml_err_msg[0] = '\0';
10172 #endif
10173
10174     cleanup();
10175
10176     return 1;
10177 }
10178