Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid into...
[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[3218] =
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,  101,   10,
453       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
454       128,   10,  128,  128,  128,  126,  128,  128,  132,   10,
455       132,  132,  546,  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,  100,  102,  102,  102,  102,    0,  127,  129,  129,
495       129,    0,    0,    0,    0,    0,    0,    0,    0,    0,
496         0,    0,    0,    0,    0,    0,    0,    0,    0,  144,
497       146,  146,  146,  146,  146,    0,  159,  161,  161,  161,
498       161,    0,  172,  174,  174,  174,    0,  185,  187,  187,
499       187,    0,  212,  214,  214,  214,  214,  214,  214,    0,
500         0,  227,  229,  229,  229,  229,    0,  272,  274,  274,
501       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
502       274,  274,    0,  295,  297,  297,  297,  297,  297,  297,
503       297,  297,    0,  320,  322,  322,  322,  322,  322,  322,
504
505       322,  322,    0,  333,  335,  335,  335,    0,  348,  350,
506       350,  350,  350,    0,  379,  381,  381,  381,  381,  381,
507       381,    0,  396,  398,  398,  398,  398,    0,    0,  417,
508       419,  419,  419,  419,  419,    0,  434,  436,  436,  436,
509         0,  447,  449,  449,  449,    0,  464,  466,  466,  466,
510       466,    0,  485,  487,  487,  487,  487,  487,  487,    0,
511         0,  496,  498,  498,    0,  507,  509,  509,    0,  520,
512       522,  522,  522,    0,    0,    0,    0,    0,    3,    0,
513         0,    0,    0,    0,    0,    0,  544,    0,   23,    0,
514         0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
515
516         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
517         0,    0,  106,    0,    0,    0,    0,    0,    0,   34,
518         0,    0,   49,    0,    0,   49,    0,    0,    0,  539,
519        79,    0,    0,   79,   79,   79,   79,   79,   79,    0,
520         0,  102,  102,  102,    0,    0,    0,    0,  129,    0,
521         0,  107,    0,    0,    0,    0,    0,    0,    0,  106,
522         0,    0,    0,    0,  146,    0,    0,  146,  146,    0,
523         0,  161,    0,    0,  161,    0,    0,    0,    0,  174,
524         0,    0,  187,  187,    0,    0,  214,  214,  214,    0,
525         0,  214,  214,    0,    0,    0,    0,  229,    0,    0,
526
527         0,    0,    0,    0,  274,  274,    0,    0,  274,    0,
528         0,  274,  274,  274,  274,  274,  274,  274,  274,    0,
529         0,    0,    0,    0,    0,  297,  297,  297,  297,  297,
530         0,    0,  322,  322,  322,    0,    0,  322,  322,  322,
531         0,    0,  335,    0,    0,    0,    0,  350,    0,    0,
532       350,    0,    0,  381,    0,    0,  381,  381,  381,    0,
533         0,  398,  398,  398,    0,    0,    0,  419,  419,  419,
534       419,    0,    0,  436,    0,    0,    0,    0,  449,  449,
535         0,    0,  466,  466,  466,    0,    0,  487,  487,  487,
536       487,  487,    0,    0,    0,  498,    0,    0,    0,    0,
537
538         0,    0,    0,    0,  522,    0,    0,    0,   14,    1,
539         0,    0,  532,    0,    0,    0,  529,  528,    0,    0,
540        23,    0,    0,   25,    0,  107,    0,    0,    0,    0,
541         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
542         0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
543         0,    0,    0,    0,   34,    0,    0,   36,    0,   49,
544         0,   41,   40,   49,    0,    0,    0,   51,    0,   79,
545         0,   55,   54,    0,    0,   79,    0,    0,   79,   79,
546        79,    0,    0,   81,    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,    0,  146,    0,  136,  135,  146,  146,    0,    0,
551       148,    0,  161,    0,  153,  152,  161,    0,    0,  163,
552         0,    0,  168,  167,  174,    0,    0,  176,    0,  187,
553       187,    0,    0,  189,    0,  214,  214,  214,    0,  194,
554       193,  214,  214,    0,    0,  216,    0,    0,    0,  229,
555         0,  221,  220,    0,  223,  222,    0,    0,  231,    0,
556       274,  274,  274,  274,    0,  248,  247,  274,    0,  236,
557       235,    0,    0,  274,  274,  274,  274,  274,  274,  274,
558         0,    0,  276,    0,    0,  291,  290,    0,  281,  280,
559
560         0,    0,  297,  297,  297,  297,    0,    0,  299,    0,
561       322,  322,  322,  322,    0,  304,  303,    0,    0,  322,
562       322,    0,    0,  324,    0,  335,    0,  329,  328,    0,
563         0,  337,    0,  350,    0,  342,  341,  350,    0,    0,
564       352,    0,  381,    0,  357,  356,  381,  381,  381,    0,
565         0,  383,    0,    0,    0,    0,    0,  398,    0,    0,
566       400,    0,    0,    0,    0,  419,  419,    0,    0,  419,
567         0,    0,  421,    0,  436,    0,  426,  425,    0,    0,
568       438,    0,    0,    0,    0,    0,    0,    0,  451,    0,
569         0,    0,  466,  466,    0,    0,    0,    0,  468,    0,
570
571       487,  487,  487,  487,  487,    0,    0,  489,    0,    0,
572       498,    0,    0,  500,    0,    0,  505,  504,    0,    0,
573       511,    0,    0,  516,  515,  522,    0,    0,  524,    0,
574         0,    0,  533,  527,    0,    0,    0,   23,    0,    0,
575         0,    0,    0,    0,    0,    0,  191,    0,  354,    0,
576         0,  302,    0,    0,  513,    0,    0,    0,    0,    0,
577         0,    0,    0,    0,  301,    0,    0,    0,    0,    0,
578         0,    0,   49,    0,    0,   79,    0,   59,   58,    0,
579         0,    0,   57,   56,   79,    0,    0,   79,    0,  102,
580         0,    0,  102,    0,  129,    0,  130,    0,    0,    0,
581
582       192,  355,  514,    0,    0,    0,    0,    0,    0,  146,
583       146,    0,    0,    0,  161,  161,    0,    0,    0,    0,
584         0,    0,  187,    0,  214,  214,    0,    0,  214,  214,
585         0,    0,    0,    0,    0,    0,  274,  274,  274,  274,
586         0,    0,    0,  250,  249,  274,  274,  274,  274,  274,
587       274,  274,    0,    0,  293,  292,  297,  297,  297,  297,
588         0,  322,  322,  322,  322,    0,  312,  311,  322,  322,
589         0,  335,    0,  350,  350,    0,  381,  381,  381,  381,
590         0,    0,  390,  389,    0,  388,  387,  398,    0,  354,
591         0,  407,  406,  419,  419,    0,  405,  404,  419,    0,
592
593       436,    0,    0,  445,  444,    0,  443,  442,    0,    0,
594       458,  457,  466,  466,    0,  456,  455,    0,  487,    0,
595         0,  487,  487,  487,    0,    0,  498,    0,    0,  522,
596         0,    0,    0,    0,   12,    0,  530,  531,    0,   23,
597         0,    0,    0,    0,    0,    0,    0,    0,  191,    0,
598         0,  354,    0,  165,    0,  302,    0,    0,  513,    0,
599       385,    0,   39,    0,    0,    0,    0,    0,  301,    0,
600        38,    0,   30,   29,    0,    0,   43,   42,   49,    0,
601         0,   79,    0,   61,   60,   79,    0,   65,   64,   79,
602         0,  102,    0,    0,    0,    0,    0,    0,  129,    0,
603
604         0,    0,  192,    0,  355,  514,  386,    0,    0,    0,
605       386,  385,  146,    0,    0,    0,  140,  139,    0,  161,
606       161,    0,    0,  170,  169,    0,    0,  183,  182,  187,
607         0,  214,  214,    0,  198,  197,    0,    0,    0,    0,
608       214,    0,  166,    0,    0,  225,  224,    0,  274,    0,
609         0,  274,  274,    0,  246,  245,    0,    0,  274,  274,
610       274,  274,  274,  274,    0,    0,    0,  297,  297,  297,
611         0,  322,    0,    0,  322,  322,    0,    0,  322,    0,
612       335,    0,  350,  350,    0,  381,  381,  381,    0,    0,
613       381,    0,  398,    0,    0,  419,  419,  419,    0,  436,
614
615         0,    0,  466,  466,    0,  487,    0,  473,  472,  487,
616       487,  487,    0,    0,    0,    0,    0,    0,    0,    0,
617         0,    0,    0,    0,   11,    0,   23,    0,    0,    0,
618         0,    0,    0,    0,  503,    0,    0,    0,  165,    0,
619         0,    0,   53,  385,  326,    0,   39,    0,  502,   52,
620         0,    0,    0,    0,   38,    0,    0,   49,    0,    0,
621        79,   79,   79,    0,  102,    0,    0,    0,    0,    0,
622         0,    0,    0,    0,   96,   95,    0,  129,    0,    0,
623         0,    0,  386,  327,    0,    0,    0,  146,    0,  138,
624       137,    0,  161,    0,    0,    0,    0,    0,    0,    0,
625
626       214,  214,    0,  196,  195,    0,    0,    0,  214,    0,
627       215,  166,    0,    0,  274,    0,  258,  257,    0,    0,
628       274,    0,  244,  243,    0,    0,  274,  274,  274,  274,
629         0,    0,    0,    0,  289,  288,    0,    0,  297,    0,
630         0,    0,  322,    0,  308,  307,    0,    0,  322,    0,
631       306,  305,  322,    0,  323,  335,    0,  350,  350,    0,
632       381,  381,  381,    0,    0,    0,  381,    0,  382,  398,
633         0,    0,    0,    0,    0,    0,  419,    0,  436,    0,
634         0,    0,    0,    0,    0,    0,  487,  487,  487,  487,
635         0,    0,    0,  494,  493,    0,    0,    0,  518,  517,
636
637         0,  523,    0,    0,    0,    0,    0,    0,    0,  402,
638         0,    0,    0,    0,  279,  234,  503,    0,   28,    0,
639         0,    0,  471,   53,  326,  150,    0,  502,   52,  278,
640       233,   27,  470,    0,    0,   49,    0,    0,   50,   79,
641         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
642         0,    0,    0,    0,    0,    0,    0,    0,    0,  403,
643         0,    0,    0,    0,  327,  151,    0,    0,    0,    0,
644         0,    0,  155,  154,    0,    0,  175,    0,  181,  180,
645         0,  214,  214,    0,    0,  214,    0,    0,  274,    0,
646       260,  259,  274,    0,  238,  237,    0,    0,  274,  274,
647
648       274,    0,  240,  239,    0,    0,  283,  282,    0,    0,
649         0,  285,  284,    0,  322,    0,  310,  309,  322,  322,
650       335,    0,  350,    0,    0,    0,  381,    0,    0,  381,
651       381,    0,    0,  381,  398,    0,  399,    0,    0,  411,
652       410,    0,  409,  408,  419,    0,  436,    0,    0,    0,
653       462,  461,    0,  460,  459,    0,  487,  487,  487,  487,
654         0,    0,    0,    0,    0,    0,    0,   17,    0,   19,
655        18,    0,  402,  491,  339,    0,    0,  279,  234,    0,
656        28,  423,  178,   16,  471,  150,    0,    0,  278,  233,
657        27,  470,    0,    0,   49,  538,   79,    0,   67,   66,
658
659        79,    0,   80,    0,   98,   97,    0,    0,    0,    0,
660         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
661       403,  340,    0,    0,    0,  151,    0,    0,  142,  141,
662         0,    0,  157,  156,    0,    0,  214,  214,    0,    0,
663         0,    0,  214,  179,    0,  274,  274,    0,  242,  241,
664       274,  274,  274,    0,    0,  287,  286,    0,  322,  322,
665       322,  335,    0,  336,  350,    0,  346,  345,    0,  381,
666         0,  363,  362,  381,  381,    0,    0,    0,    0,  381,
667       398,  424,  419,    0,  436,    0,    0,    0,    0,    0,
668       487,  487,  487,    0,  492,    0,    0,  510,    0,    0,
669
670         0,   17,    0,  491,  339,    0,    0,  218,  423,  178,
671        16,    0,    0,    0,    0,   35,   49,    0,    0,   79,
672         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
673         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,    0,  340,    0,    0,  219,    0,    0,    0,
675       162,    0,  214,  214,    0,  204,    0,  203,  214,  179,
676         0,  274,  274,    0,    0,  274,  274,    0,  275,    0,
677       298,  322,  322,  322,  335,    0,    0,    0,    0,    0,
678       381,  381,  381,    0,  367,    0,  366,  381,  398,  424,
679       419,    0,  420,    0,    0,    0,    0,    0,    0,  475,
680
681       474,    0,    0,  487,  487,    0,  488,  492,    0,    0,
682         0,    0,    0,   24,    0,    0,  218,    0,    0,    0,
683        49,    0,    0,    0,   79,    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,    0,  219,    0,    0,    0,  188,  214,  214,  206,
687       205,    0,    0,    0,  274,  274,    0,  270,  269,  274,
688         0,    0,  322,  322,    0,    0,  335,    0,  344,  343,
689         0,  351,    0,  359,  358,  381,  381,  381,  369,  368,
690         0,    0,  398,  419,    0,    0,    0,    0,  437,    0,
691
692         0,    0,  479,  478,    0,    0,    0,    0,    0,  499,
693         0,    0,    0,    0,  440,    0,    0,    0,    0,    0,
694         0,    0,    0,    0,    0,    0,   79,    0,    0,    0,
695         0,   88,    0,    0,    0,    0,   87,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,  441,    0,    0,  214,    0,    0,    0,
698       208,  207,    0,  230,  274,  274,  274,    0,  268,  267,
699       322,    0,    0,    0,  318,  317,    0,    0,  381,  381,
700       381,    0,  371,  370,    0,    0,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
702
703       477,  476,    0,    0,    0,    0,  440,  133,    0,    0,
704         0,   45,   44,    0,    0,    0,    0,    0,    0,    0,
705         0,   79,    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,    0,  441,  134,    0,    0,
708         0,  214,    0,  210,  209,  274,  274,  274,  322,    0,
709       314,  313,    0,  331,  330,  381,    0,    0,  381,    0,
710         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712         0,  453,  133,   84,   83,    0,    0,    0,    0,    0,
713
714         0,    0,    0,    0,    0,    0,    0,   94,    0,    0,
715         0,   93,    0,    0,    0,    0,    0,  111,  119,    0,
716         0,    0,    0,    0,  110,  118,    0,    0,  454,  134,
717         0,    0,  200,  199,  214,  274,  274,  274,  322,  381,
718         0,  365,  364,  381,    0,    0,    0,    0,    0,    0,
719         0,    0,    0,    0,  428,    0,    0,  427,    0,  450,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
721         0,  453,   84,   83,    0,    0,    0,    0,    0,    0,
722         0,    0,    0,   63,   62,    0,    0,    0,    0,    0,
723         0,    0,    0,    0,  113,    0,    0,    0,    0,  112,
724
725         0,    0,  454,    0,  147,  214,  274,  274,    0,    0,
726       322,    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,    0,   75,
729        71,    0,    0,   74,   70,    0,   92,    0,    0,   91,
730         0,    0,    0,  103,    0,    0,    0,    0,    0,    0,
731         0,    0,  214,  274,  274,    0,    0,    0,  322,    0,
732       361,  360,    0,    0,    0,  394,    0,  393,    0,  415,
733         0,  414,    0,  430,  432,  429,  431,    0,  467,  481,
734         0,  480,    0,    0,    0,    0,   12,    0,   12,    0,
735
736         0,    0,    0,    0,   86,   90,   85,   89,  125,    0,
737         0,  123,  124,    0,    0,  122,  214,  274,  274,    0,
738         0,    0,    0,  322,    0,    0,    0,    0,  392,  391,
739       413,  412,    0,    0,    0,    0,    0,    0,    0,    0,
740         0,    0,    0,  115,    0,    0,  114,    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,    0,   69,    0,   68,    0,    0,  121,    0,
744       120,    0,  202,  201,    0,  266,  265,    0,    0,    0,
745         0,    0,    0,    0,    0,    0,    0,  316,  315,    0,
746
747         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
748         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
749         0,    0,    0,    0,    0,    0,    0,    0,    0,  483,
750       482,    0,   73,   72,    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,    0,  117,  116,    0,    0,    0,    0,    0,    0,
755       252,    0,    0,  251,    0,    0,  373,    0,    0,  372,
756         0,    0,    0,    0,    0,  256,    0,  255,    0,  375,
757
758         0,  374,    0,    0,    0,    0,    0,    0,    0,    0,
759         0,    0,    0,    0,  262,    0,  261,    0,    0,    0,
760         0,    0,    0,  264,  263,  254,  253,  377,  376,    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,    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[3688] =
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       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
826       531,  534,  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, 8759,11752,
846     11752,   95,  100,   29,   41,11752,  103,   51,11752,11752,
847      8748,11752,11752, 8733,11752, 8748, 8748,  202,11752,11752,
848     11752,11752, 8742, 8742, 8697,  153,11752,  161, 8719,    0,
849       145,11752, 8685,11752,  165, 3607,   73, 2465,  315,  357,
850      8725, 8668,11752,  168, 8711,    0,  152,11752, 8673,11752,
851
852       261, 8713,   31,11752,  266, 8704,    0,  245,11752, 8666,
853      8666, 8664,  421, 8669,11752,  269, 8691,    0,  340,11752,
854      8657, 8657,  271, 8655,  238,11752,  441,  484,11752,  504,
855      8683,    0,  401,11752, 8642, 8640, 8630,11752,  561,  548,
856     11752,  571, 8675,    0,  481,11752, 8107, 8095,11752,  628,
857      3671, 8092,  163, 2399,  567,  206,   38, 8143,  954, 2473,
858       572,  907, 8142,   79,11752,  638, 8133,    0,  482,11752,
859      8089, 8099, 8087, 8091,11752,  697,  313,  368,11752,  703,
860      8127,    0,  546,11752, 8082, 8085, 8063,11752,  706,  426,
861       497,11752,  765, 8114,    0,  549,11752, 8074, 8076,11752,
862
863       771,  682,11752,  774, 8103,    0,  616,11752, 8068, 8042,
864     11752,  831,  690,11752,  837, 8090,    0,  750,11752, 8039,
865      8044, 8050, 8038, 8026,11752,  840,  825, 8080,   87,11752,
866       906, 8071,    0,  758,11752, 8026, 8024, 8011,11752,  914,
867       891,11752,  977, 8053,    0,  815,11752, 7995,  203, 8001,
868      8010, 8012,  157,  311,  902,11752,  981, 1019,11752, 1039,
869      8039,    0,  825,11752, 7983, 8001, 7998,  251, 7997, 7975,
870     11752, 1044, 1032,11752, 1048, 8012,    0,  956,11752, 7961,
871      7956, 7963, 7972, 7974, 7936, 7926,11752, 1088, 1092,11752,
872      1105, 7973,    0, 1033,11752, 7917, 7927,11752, 1112, 1154,
873
874     11752, 1115, 7957,    0, 1089,11752, 7923, 7919, 7920,11752,
875      1118, 1160,11752, 1174, 7944,    0, 1090,11752, 7914, 7909,
876      7903,   15,11752, 1180,  466,  597,11752, 1183, 7931,    0,
877      1158,11752, 7883,  181,11752, 1186,  963, 7935, 7886,11752,
878      1241, 7915,    0, 1225,11752, 7867, 7858,  299,11752, 1247,
879      7916,  785,11752, 1303, 7906,    0, 1226,11752, 7867, 7871,
880     11752, 1309, 1352,11752, 1365, 7901,    0, 1231,11752, 7848,
881      7841,11752, 1368, 7894,  851,11752, 1372, 7884,    0, 1287,
882     11752, 7831, 7826, 7829,11752, 1376, 7874, 1286,11752, 1433,
883      7861,    0, 1288,11752, 7798, 7798, 7803, 7796, 7771,11752,
884
885      1436, 1437, 7822,  507,11752, 1439, 7813,    0, 1360,11752,
886      7773,11752, 1444, 1482,11752, 1502, 7801,    0, 1423,11752,
887      7767,11752, 1507,  350,  814,11752, 1510, 7798,    0, 1486,
888     11752, 7764, 7762,11752, 1551, 1556, 1568,  687, 7727,11752,
889      7787, 7771,11752,11752,11752, 1566,  254, 7720, 7713, 7711,
890      7758, 7707,11752,    0, 7700, 7696, 7720, 7691,  104,  970,
891      7683, 7682, 7686,  372, 1574,  378, 7673, 7670, 1433,  627,
892      7696, 1500, 7671, 1575, 7666, 1590, 1643, 1644,11752,    0,
893      7657, 7659,11752,    0, 7637, 1964, 7630,  372, 7625, 7665,
894     11752,    0, 7613, 2031, 7602, 7614, 7600, 7604, 7601, 7601,
895
896      7585,11752,    0, 7593, 7579, 7590, 7570,11752,    0, 2098,
897      7567, 7606, 7584,  172, 7559, 7563, 1654,  695, 7547, 1655,
898      7574,  680,  707,  841,  914,  911, 1779, 1037, 1282,11752,
899         0, 7550, 2155, 7558, 7531, 7537,11752,    0, 7540, 2462,
900      7533, 7528,11752,    0, 2480, 7532, 7531,11752,    0, 7529,
901      7520, 7515,11752,    0, 7516,  434, 2522, 7487, 7508, 7499,
902       621,11752,    0, 7473, 2532, 2540, 7487,11752,    0, 7492,
903      7488, 2546, 7469, 2587, 7464, 7459, 7472, 7471, 7453, 7464,
904      7463, 7456, 7454,11752,    0, 2590, 2593, 7436, 7428, 7445,
905      7444, 7433, 7433,11752,    0, 7433, 7430, 7403, 2596, 7397,
906
907      7392, 7406, 7390,11752,    0, 7389, 2599, 7381,11752,    0,
908      7383, 2654, 7375, 7392,11752,    0, 7378, 2657, 7359, 7377,
909      7375, 7356,11752,    0, 7345, 7357, 7346, 7339, 7346,11752,
910         0, 7333, 7352, 7347, 7320, 7358,11752,    0, 7311, 2660,
911      7315,11752,    0, 7300, 7316, 7306,11752,    0, 7287, 7303,
912      7298, 7298,11752,    0, 7276, 7270, 7275, 7279, 7277, 7260,
913      7257,11752,    0, 7257, 7266,11752,    0, 2663, 7262,11752,
914         0, 2666, 7247, 7242, 7281, 7290, 1537, 7233,11752, 1630,
915         0, 7229, 7228, 7263, 7262, 7214,11752, 7227, 7206, 2466,
916      2721, 1847, 7212, 7201, 7187, 7199, 7171, 7177, 7170, 7181,
917
918      7163, 7155, 7154, 7160, 7159, 7144, 7139, 7127, 7132, 7144,
919      7123, 7122, 1856, 7132, 7110, 7125, 7098, 7086, 7093, 7088,
920      2724, 2729, 7086, 2732, 1914, 7081, 7105, 2735, 2780,11752,
921      7058, 2783, 1983, 2790, 7044, 2793, 7048, 7051, 7050, 2786,
922      2849, 7032, 7038, 7028, 2835, 2838, 2841, 2050, 7006, 2845,
923      2903, 2229, 7021, 7003, 6999, 7002, 6990, 6983, 6987, 2289,
924      6985, 6983, 6977, 6975, 6975, 2906, 2416, 6973, 6972, 2910,
925      2913, 6950, 2916, 2487, 6964, 2969, 2972, 2975, 2551, 6956,
926      2980, 2983, 6951, 6949, 2995, 3039, 6939, 6925, 6926, 3045,
927      2621, 6925, 6905, 3049, 3052, 6901, 6895, 6899, 3063, 2688,
928
929      3105, 2868, 3108, 3114, 6902, 1786, 3117, 2934, 6905, 3129,
930      3003, 3170, 6899, 6897, 6870, 6855, 6852, 6849, 6861, 3123,
931      3179, 3176, 3071, 3182, 3238, 3188, 3250, 3255, 3258, 3263,
932      3308, 3333, 6834,   37, 6824, 3319, 3269, 3322, 6835, 6815,
933      3327, 3377, 6816, 3381, 3277, 3385, 3388, 6817, 3391, 3340,
934      6803, 3434, 3438, 6802, 3443, 3446, 6799, 6781, 6768, 3491,
935      3500, 3494, 3497, 3503, 3506, 3563, 6773, 3521, 3566, 3570,
936      3573, 3576, 3597, 6771, 3591, 3461, 3600, 3603, 3611, 3635,
937      3639, 3642, 3646, 3677, 3682, 3649, 3685, 6769, 6751, 6748,
938      6752, 6739, 3696, 3704, 6746, 6731, 3710, 3739, 3700, 3527,
939
940      3743, 3746, 3707, 3751, 6726, 3765, 3769, 6774,11752,11752,
941       932, 6732,11752, 6757, 6752, 6700,11752,11752, 6698, 6696,
942      6699, 3772, 3775,11752, 3778, 1714, 6686, 6677, 6682, 6687,
943      6671, 6658, 6663, 6648, 6654, 6654, 6645, 6643, 6634, 6621,
944       701, 6632, 6615, 6615, 6629, 6624, 6618, 1923, 6611, 6600,
945      6605, 6583, 1109, 6596, 3784, 3797, 3804,11752, 3808, 3811,
946      3816,11752,11752, 3829, 6620, 3834, 3837,11752, 3840, 6578,
947      3843,11752,11752, 3859, 3862, 3871, 3877, 3882, 6590, 3891,
948      6587, 3895, 3898,11752, 3901, 6583, 3904, 6568, 3909, 3922,
949     11752, 3928, 3931,11752,11752, 6562, 3941, 3947,11752, 3950,
950
951      6552, 6551, 6559, 6535, 6543, 1648, 6532, 6517, 6533, 6512,
952      6482, 6481, 6494, 3953,11752,11752, 6482, 3962, 3969, 3972,
953     11752, 3976, 6488, 3981,11752,11752, 6500, 3991, 3995,11752,
954      3998, 4001,11752,11752, 4010, 4017, 4020,11752, 4023, 4028,
955      4032, 4046, 4050,11752, 4053, 6469, 6470, 4056, 4065,11752,
956     11752, 6430, 6442, 4061, 4074,11752, 4080, 6427, 6424, 4083,
957      4087,11752,11752, 4095,11752,11752, 4103, 4106,11752, 4109,
958      6418, 6406, 6424, 6412, 4113,11752,11752, 4129, 4132,11752,
959     11752, 4140, 4147, 6401, 6404, 6407, 6403, 6398, 6400, 6388,
960      4158, 4161,11752, 4164, 4168,11752,11752, 4183,11752,11752,
961
962      4191, 4194, 6375, 6382, 6387, 6379, 4202, 4205,11752, 4209,
963      6366, 6363, 6354, 6366, 4212,11752,11752, 4224, 4228, 6347,
964      6358, 4236, 4242,11752, 4245, 6358, 4248,11752,11752, 4264,
965      4267,11752, 4270, 6337, 4273,11752,11752, 6335, 4289, 4292,
966     11752, 4297, 6324, 4301,11752,11752, 6331, 6335, 6337, 4311,
967      4316,11752, 4320, 4323, 4326, 4341, 4347, 6336, 4355, 4359,
968     11752, 4363, 6328, 4366, 4384, 6315, 6308, 4370, 4392, 6320,
969      4400, 4403,11752, 4406, 6320, 4409,11752,11752, 4425, 4431,
970     11752, 4434, 4437, 4440, 4455, 4458, 4466, 4473,11752, 4477,
971      4480, 4485, 6295, 6294, 4498, 4501, 4509, 4512,11752, 4516,
972
973      6287, 4519, 6295, 6283, 6257, 4522, 4531,11752, 4541, 6254,
974      6262, 4544, 4550,11752, 4553, 4556,11752,11752, 4564, 4572,
975     11752, 4575, 4579,11752,11752, 6245, 4587, 4594,11752, 4597,
976      1538, 4607,11752,11752, 6280, 6265, 6227, 6216, 4616, 6207,
977      6202, 6210, 6146, 6129, 6109, 6117, 2116, 6102, 2173, 6044,
978      6029, 2349, 6034, 6032, 2358, 6010, 6019, 5996, 5968, 5939,
979      5927, 5849, 5823, 5821, 2361, 5814, 5788, 4619, 4637, 4622,
980      4628, 4646, 5731, 5741, 4654, 5665, 4659,11752,11752, 4667,
981      4674, 4685,11752,11752, 5644, 4693, 4697, 5540, 4705, 5530,
982      4711, 4714, 4724, 4729, 5506, 4631,11752, 5414, 5432,   22,
983
984      2425, 2428, 2528,  141,  322,  338,  369,  393,  439,  437,
985      4732, 4735, 4738, 4756,  448,  490, 4759, 4762, 4765, 4780,
986      4783, 4786,  498, 4794,  527,  561, 4801, 4804, 4813, 4824,
987      4827,  552,  577, 4831, 4835, 4849,  636, 4852,  694,  721,
988      4856, 4859, 4874,11752,11752, 4882,  740,  772,  757,  762,
989       783,  815, 4885, 4888,11752,11752, 4896, 4900, 4904, 4907,
990      4910,  843, 4918,  829,  845, 4925,11752,11752, 4936,  872,
991      4939,  880, 4942,  907,  935, 4945,  968,  977, 1009, 4954,
992      4966, 4972,11752,11752, 4981,11752,11752, 1030, 4989, 2559,
993      4992,11752,11752, 1037, 1088, 5009,11752,11752, 1086, 5004,
994
995      1090, 5017, 5024,11752,11752, 5032,11752,11752, 5040, 5043,
996     11752,11752, 1094, 1117, 5052,11752,11752, 5060, 1150, 5066,
997      5069, 1154, 1176, 1186, 5079, 1179, 5084, 5088, 5091, 5094,
998      5098, 1405, 1221, 5102,11752, 1249,11752,11752, 1221, 1233,
999      5112, 1228, 1249, 1240, 1247, 1301, 1305, 1305, 2629, 1322,
1000      1347, 2696, 1363, 2876, 1373, 2942, 1360, 1359, 3208, 1371,
1001      3247, 1378, 3348, 1412, 1427, 1437, 1463, 1465, 3212, 1467,
1002      3409, 5117,11752,11752, 5131, 5134,11752,11752, 1517, 1536,
1003      5144, 1515, 5150,11752,11752, 1524, 5165,11752,11752, 1531,
1004      5173, 1548, 5176, 2717, 3112, 5125, 5185, 5199, 1569, 1557,
1005
1006      1567, 1579, 3316, 1588, 3352, 3535, 5202, 1594, 1584, 1585,
1007      5205, 5208, 1602, 5211, 5214, 5222,11752,11752, 5230, 1617,
1008      5235, 5238, 5242,11752,11752, 5253, 5257,11752,11752, 5273,
1009      5278, 1643, 1632, 5282,11752,11752, 5291, 5297, 5305, 5309,
1010      1659, 5323, 4042, 1670, 5326,11752,11752, 5334, 1672, 5337,
1011      5343, 5355, 1747, 5358,11752,11752, 5366, 5369, 5377, 1777,
1012      1792, 1797, 1801, 5384, 5387, 5390, 5395, 5408, 5411, 5414,
1013      5417, 1806, 5420, 5432, 5440, 1800, 5443, 5447, 1826, 5461,
1014      1833, 5464, 1851, 1831, 5470, 1854, 1834, 1854, 5473, 5485,
1015      1865, 5493, 1863, 5496, 1896, 5499, 5502, 5505, 5508, 1905,
1016
1017      5527, 5523, 5531, 5534, 5537, 1907, 5542,11752,11752, 1914,
1018      1913, 1906, 5552, 1923, 5557, 5560, 5576, 5579, 5582, 5585,
1019      5604, 1977, 1976, 2043,11752, 1918, 5607, 5610, 1937, 1931,
1020      1932, 2019, 1961, 1971, 4374, 1983, 1990, 1983, 5613, 2005,
1021      1995, 1997, 5616, 5619, 5625, 2028, 5629, 2053, 5636, 5639,
1022      2037, 2041, 2055, 2043, 5642, 2063, 5645, 2064, 2099, 5648,
1023      2075, 5651, 2096, 5654, 5657, 2139, 2126, 2188, 2129, 2145,
1024      2135, 2248, 2136, 5660,11752,11752, 5675, 5679, 2125, 2133,
1025      2197, 2165, 5682, 5685, 2171, 2259, 2260, 5688, 5697,11752,
1026     11752, 5706, 5709, 5714, 5718, 5727, 5732, 5735, 5739, 5747,
1027
1028      2171, 2185, 5753,11752,11752, 5762, 2201, 2202, 2198, 5770,
1029     11752, 5773, 2224, 5777, 2227, 5782,11752,11752, 5790, 5796,
1030      2231, 5804,11752,11752, 5812, 5815, 5823, 2237, 2267, 2273,
1031      5826, 5830, 5844, 5847,11752,11752, 5855, 5859, 5867, 5873,
1032      5876, 5885, 2281, 5892,11752,11752, 5900, 5904, 2290, 5912,
1033     11752,11752, 2284, 5920,11752, 2293, 5923, 2276, 5926, 5929,
1034      2280, 5932, 2306, 5944, 2321, 2322, 2325, 5952,11752, 2340,
1035      5955, 2337, 5958, 5961, 5979, 5982, 2349, 5991, 2345, 5997,
1036      6000, 6003, 6006, 6021, 6024, 6032, 2347, 2354, 2355, 2404,
1037      6035, 2400, 6040,11752,11752, 6054, 6058, 6062,11752,11752,
1038
1039      6073,11752, 2452, 2477, 2472, 2414, 6077, 6080, 6088, 6101,
1040      2420, 2441, 2459, 2464, 6107, 6112, 6115, 2475, 6118, 2478,
1041      2492, 2495, 6121, 6124, 6127, 6130, 2495, 6133, 6136, 6139,
1042      6142, 6145, 6148, 2501, 6153, 2509, 2537, 6156,11752, 2538,
1043      6160, 6163, 2556, 6178, 6181, 6184, 2573, 2571, 2571, 2581,
1044      2574, 2585, 2582, 2586, 2593, 2586, 6192, 6199, 6205, 6213,
1045      2597, 2632, 2609, 2612, 6217, 6220, 6223, 6226, 6234, 6237,
1046      6242, 6255,11752,11752, 6263, 6268,11752, 6271,11752,11752,
1047      6282, 2615, 2609, 2660, 2661, 2618, 2630, 6287, 2624, 6290,
1048     11752,11752, 2631, 6302,11752,11752, 6310, 6315, 2665, 2665,
1049
1050      2670, 6324,11752,11752, 6332, 6336,11752,11752, 6344, 6347,
1051      6355,11752,11752, 6363, 2682, 6366,11752,11752, 2675, 2685,
1052      2684, 6374, 2700, 6377, 6382, 6397, 2701, 6400, 6403, 2720,
1053      2716, 2772, 2776, 2738, 2750, 6412,11752, 2746, 6418,11752,
1054     11752, 6431,11752,11752, 2762, 6426, 2752, 6440, 6445, 6448,
1055     11752,11752, 6460,11752,11752, 6468, 6472, 6478, 6482, 6490,
1056      6496, 2763, 6500, 6503, 6508, 2848, 2855, 6511, 6515,11752,
1057     11752, 6523, 6530, 6533, 6536, 2784, 2785, 6542, 6550, 2797,
1058      6553, 6556, 6562, 6565, 6568, 6571, 2789, 2797, 6574, 6577,
1059      6583, 6586, 2801, 6589, 2796,11752, 6592, 6595,11752,11752,
1060
1061      6603, 6610,11752, 6614,11752,11752, 2841, 2833, 2850, 2849,
1062      2895, 2899, 2886, 2901, 2899, 2906, 6622, 6625, 6608, 6613,
1063      6650, 6654, 2873, 2872, 2888, 6657, 2880, 6660,11752,11752,
1064      6670, 6673,11752,11752, 6684, 6689, 2908, 2927, 2961, 2984,
1065      2964, 2984, 2949, 6692, 6695, 2951, 2955, 6699,11752,11752,
1066      6708, 2948, 2960, 6717, 6720,11752,11752, 6728, 2957, 2979,
1067      2985, 2986, 6731,11752, 6736, 6741,11752,11752, 6750, 6756,
1068      6759,11752,11752, 6769, 6774, 3017, 3039, 3023, 3048, 6777,
1069      3009, 6780, 3011, 6787, 6783, 6795, 6807, 6814, 6810, 6819,
1070      6829, 6836, 6839, 6842, 6847, 6857, 6861,11752, 6864, 3061,
1071
1072      3118, 6869, 6876, 6872, 6883, 2998, 3002, 6891, 6895, 6898,
1073      6901, 3003, 3016, 3017, 6904,11752, 3026, 6907, 6910, 3048,
1074      3071, 3074, 3088, 3092, 3106, 3104, 3118, 3141, 3139, 3150,
1075      6918, 3133, 3137, 3186, 3135, 3131, 3145, 3143, 3148, 3216,
1076      3145, 3164, 3186, 6927, 3182, 3180, 6930, 3183, 6933, 6937,
1077     11752, 6940, 3200, 3203, 3278,11752, 3305,11752, 6943, 6946,
1078      6952, 3248, 3279, 6962, 6965, 3272, 6973, 6980,11752, 6983,
1079     11752, 3271, 3273, 6986, 3278, 6991, 7010, 6995, 7004, 7018,
1080      7026, 7029, 7032, 3342,11752, 3364,11752, 7035, 3326, 7038,
1081      3338, 7053,11752, 7056, 7059, 7067, 7074, 7079, 7082,11752,
1082
1083     11752, 7093, 7098, 7106, 7111, 7114,11752, 7117, 7120, 3379,
1084      3386, 3381, 7124,11752, 3333, 3354, 7129, 3345, 3400, 3403,
1085      7133, 7144, 3546, 3597, 3396, 3436, 3446, 3445, 3490, 3508,
1086      3485, 3497, 3497, 3505, 3523, 7152, 3465, 3477, 3500, 3522,
1087      3524, 3530, 3521, 3528, 3550, 3546, 3556, 3559, 3564, 3555,
1088      3558, 3578, 7155, 3576, 7158, 7161,11752, 3574, 7164,11752,
1089     11752, 7167, 7171, 7185, 3582, 3597, 7188,11752,11752, 3609,
1090      7196, 7200, 3597, 7208, 7214, 7217, 7226, 7232,11752,11752,
1091      7240,11752, 7244,11752,11752, 7252, 7255, 7259,11752,11752,
1092      7262, 7266, 7280, 7283, 7286, 3842, 4089, 7294,11752, 7301,
1093
1094      7308, 7316,11752,11752, 7327, 7330, 7338, 7341, 7350,11752,
1095      3674, 3671, 3731, 3604, 7356, 3624, 3627, 3631, 7359, 7370,
1096      3652, 3659, 3730, 3659, 3681, 3761, 3656, 3700, 3692, 3691,
1097      3698,11752, 3731, 3719, 3717, 3722,11752, 7362, 3717, 3731,
1098      3718, 3734, 3744, 3749, 3755, 3749, 3762, 3750, 3766, 3776,
1099      3781, 3801, 3783, 7381, 3800, 7384, 7387, 7390, 7393, 7408,
1100     11752,11752, 7416,11752, 3807, 3793, 3807, 7419,11752,11752,
1101      3821, 7427, 7435, 7447,11752,11752, 7455, 7458, 7466, 7469,
1102      7473, 7477,11752,11752, 7487, 7491, 7499, 7505, 3834, 3836,
1103      3839, 3846, 3851, 3872, 7513, 7517, 7525, 3889, 3903, 7536,
1104
1105     11752,11752, 3900, 3927, 7544, 3863, 7430, 7547, 3849, 3851,
1106      7550,11752,11752, 3900, 3901, 3903, 3911, 3924, 3923, 3925,
1107      3941, 7558, 3946, 3966, 3985, 3984, 3968, 3987, 4007, 3995,
1108      7565, 3960, 3966, 3986, 4035, 4036, 4049, 4019, 4012, 4021,
1109      4043, 4094, 4109, 4097, 4065, 4074, 7568, 7571, 7576, 7579,
1110      7585, 4074, 7597,11752,11752, 4083, 4079, 4067, 4091, 7605,
1111     11752,11752, 7615,11752,11752, 7623, 7628, 7631, 7641, 7646,
1112      4134, 4138, 7655, 4145, 4156, 4103, 4117, 4148, 4112, 4122,
1113      4149, 7663, 7666, 4145, 4156, 4158, 4173, 4182, 7669, 7675,
1114      7678, 7688, 7697, 7700, 7703, 4182, 4193, 4195, 4184, 4189,
1115
1116      4209, 4216, 4203, 7706, 7709, 4224, 4225,11752, 4228, 4231,
1117      4231,11752, 4233, 7717, 4211, 4210, 4274,11752,11752, 4232,
1118      4231, 4232, 4218, 4279,11752,11752, 4240, 4245, 7720, 7724,
1119      7727, 7736,11752,11752, 4245, 4249, 4251, 7746, 4254, 7749,
1120      7752,11752,11752, 7760, 4280, 4295, 4297, 4308, 4301, 4312,
1121      4305, 4320, 4312, 4326,11752, 4319, 4329,11752, 7767,11752,
1122      7770, 4338, 4332, 4354, 4342, 4402, 7773, 7780, 7792, 7823,
1123      7870, 7800, 7803, 7806, 4359, 4385, 4386, 4357, 4374, 4391,
1124      4405, 4376, 7811,11752,11752, 4411, 4386, 4388, 4415, 4392,
1125      4397, 7834, 4365, 4381,11752, 4381, 4393, 4386, 4387,11752,
1126
1127      4388, 4406, 7843, 7846,11752, 4406, 4411, 4422, 7849, 7853,
1128      4418, 7861, 7890, 7881, 7899, 4479, 4451, 4483, 4456, 4492,
1129      4467, 4499, 4470, 4521, 4522, 4521, 4522, 7907, 4531, 4499,
1130      4531, 4509, 4549, 7916, 4566, 4585, 7936, 7983, 4536,11752,
1131     11752, 4525, 4557,11752,11752, 4549,11752, 4587, 4596,11752,
1132      4594, 4597, 7910,11752, 4606, 4564, 4563, 4623, 4635, 4596,
1133      4600, 4645, 4606, 4611, 4593, 7956, 4640, 4646, 4619, 7964,
1134     11752,11752, 7972, 4654, 4663,11752, 4669,11752, 4683,11752,
1135      4692,11752, 4695,11752,11752,11752,11752, 7929,11752,11752,
1136      4688,11752, 4689, 4709, 4771, 4701, 4713, 4736, 4715, 7994,
1137
1138      4731, 4722, 4735, 4726,11752,11752,11752,11752,11752, 4749,
1139      4701,11752,11752, 4769, 4720,11752, 8003, 8006, 8009, 4753,
1140      4770, 4799, 4772, 8014, 4823, 4780, 4826, 4782,11752,11752,
1141     11752,11752, 4774, 4780, 8017, 4813, 4802, 4815, 8032, 4830,
1142      4824, 4840, 4844,11752, 4821, 4867,11752, 4825, 4870, 8036,
1143      8039, 8047, 8054, 8065, 8068, 4841, 4849, 4871, 4856, 4883,
1144      4896, 8076, 8084, 4884, 4892, 4910, 4893, 4902, 4914, 4910,
1145      4911, 8079, 4934,11752, 4926,11752, 4927, 4912,11752, 4913,
1146     11752, 8094,11752,11752, 8102,11752,11752, 8110, 4950, 4961,
1147      4929, 4938, 4942, 4945, 4964, 4961, 8118,11752,11752, 4966,
1148
1149      4981, 4978, 4980, 4989, 4985, 5023, 5022, 5020,11752, 5026,
1150      5030, 4992, 4994, 5029, 5024, 5037, 5037, 5044, 5052, 5053,
1151      5054, 5082, 5084, 5082, 5092, 5098, 5095, 5106, 5113,11752,
1152     11752, 5121,11752,11752, 5089, 5096, 5110, 5136, 5121, 5141,
1153      5128, 5129, 5148, 5144, 5142, 5159, 5149, 5149, 5167, 5158,
1154      5155, 5173, 5207, 5193, 5212, 5185, 5191, 5198, 5205, 5223,
1155      5216, 5256, 5238, 5228, 5258, 5243, 5233, 5266, 5252, 5246,
1156      5280, 5270,11752,11752, 5267, 5276, 5274, 5279, 5308, 5283,
1157     11752, 5308, 5286,11752, 5314, 5289,11752, 5314, 5298,11752,
1158      5314, 5296, 5317, 5313, 5326,11752, 5327,11752, 5329,11752,
1159
1160      5337,11752, 5339, 8126, 5340, 5370, 5351, 5374, 5340, 5351,
1161      5356, 5358, 8129, 5399,11752, 5397,11752, 5402, 5416, 5420,
1162      5419, 5437, 5458,11752,11752,11752,11752,11752,11752, 5412,
1163      5499, 5502, 5532, 5538, 5655, 5432, 5438, 5449, 5503, 5553,
1164      5583, 5465, 5605, 5577, 5578, 5409, 5685, 5647, 5705, 5420,
1165      5674, 5712, 5738, 5522, 5783, 5660, 5733, 5767, 5800, 5750,
1166      5758, 5781, 5791, 5818, 5846, 5889, 5897, 5820, 5840, 5832,
1167      5861, 5863, 5880, 5879, 5951, 5948, 5953, 5919, 5922, 5411,
1168      5967, 5958, 6021, 5769, 5977, 6031, 6034, 5684, 5954, 6027,
1169      6086, 6030, 6148, 6009, 6172, 5998, 6043, 6184, 6229, 6177,
1170
1171      6190, 6049, 6179, 6150, 6242, 6249, 6258, 6232, 6235, 6289,
1172      6302, 6169, 6311, 8137, 8140,11752,11752, 8160, 8169, 8178,
1173      8187, 8196, 8205, 8214, 8223, 8232, 8241, 8250, 8259, 8268,
1174      8277, 8286, 8295, 8304, 8313, 8322, 8331, 8340, 8349, 8358,
1175      8367, 8376, 8385, 8394, 8403, 8412, 8421, 8430, 8439, 8448,
1176      8457, 8466, 8475, 8484, 8493, 8502, 8511, 8520, 8529, 8538,
1177      8547, 8556, 8565, 8574, 8583, 8592, 8601, 8610, 8619, 8628,
1178      8637, 8646, 8655, 8664, 8673, 8682, 8689, 8696, 8703, 8710,
1179      8717, 8724, 8731, 8738, 8745, 8752, 8759, 8766, 8773, 8780,
1180      8787, 8794, 8801, 8808, 8815, 8822, 8829, 8836, 8843, 8850,
1181
1182      8857, 8864, 8871, 8880, 8887, 8892, 8899, 8904, 8911, 8916,
1183      8923, 8928, 8935, 8940, 8947, 8952, 8959, 8964, 8971, 8976,
1184      8983, 8988, 8995, 9000, 9007, 9012, 9019, 9024, 9031, 9036,
1185      9043, 9048, 9055, 9060, 9067, 9072, 9079, 9084, 9091, 9096,
1186      9103, 9108, 9115, 9120, 9127, 9132, 9139, 9144, 9151, 9156,
1187      9163, 9168, 9175, 9180, 9187, 9192, 9199, 9204, 9213, 9219,
1188      9226, 9234, 9241, 9249, 9256, 9264, 9271, 9279, 9286, 9294,
1189      9301, 9309, 9316, 9324, 9331, 9339, 9346, 9354, 9361, 9369,
1190      9376, 9384, 9391, 9399, 9406, 9414, 9422, 9430, 9437, 9445,
1191      9452, 9460, 9467, 9475, 9482, 9490, 9498, 9506, 9514, 9522,
1192
1193      9529, 9537, 9545, 9553, 9561, 9569, 9576, 9584, 9591, 9599,
1194      9607, 9614, 9622, 9631, 9637, 9644, 9652, 9660, 9668, 9676,
1195      9684, 9691, 9699, 9706, 9714, 9721, 9729, 9736, 9744, 9751,
1196      9759, 9767, 9775, 9783, 9791, 9798, 9806, 9814, 9822, 9829,
1197      9837, 9844, 9852, 9859, 9867, 9874, 9882, 9889, 9897, 9904,
1198      9912, 9919, 9927, 9934, 9942, 9949, 9957, 9965, 9972, 9980,
1199      9987, 9995,10002,10010,10018,10025,10033,10042,10051,10058,
1200     10066,10074,10081,10089,10096,10104,10111,10119,10126,10133,
1201     10141,10148,10156,10164,10171,10179,10186,10194,10202,10209,
1202     10217,10225,10233,10240,10248,10255,10263,10270,10278,10285,
1203
1204     10293,10300,10308,10315,10323,10330,10338,10346,10353,10361,
1205     10368,10376,10384,10392,10400,10408,10416,10425,10434,10441,
1206     10449,10457,10464,10472,10479,10487,10494,10502,10509,10516,
1207     10524,10531,10539,10547,10555,10563,10570,10578,10586,10593,
1208     10601,10609,10617,10624,10632,10639,10647,10654,10662,10669,
1209     10677,10684,10692,10700,10708,10715,10723,10731,10739,10747,
1210     10754,10762,10770,10778,10786,10795,10804,10812,10820,10828,
1211     10835,10843,10850,10858,10866,10874,10882,10890,10898,10906,
1212     10914,10922,10930,10937,10945,10952,10960,10968,10976,10983,
1213     10990,10998,11005,11013,11020,11027,11035,11042,11050,11057,
1214
1215     11065,11073,11081,11088,11096,11104,11112,11121,11130,11138,
1216     11146,11153,11160,11168,11176,11184,11192,11200,11207,11215,
1217     11222,11230,11238,11245,11252,11260,11267,11275,11282,11289,
1218     11296,11304,11311,11319,11327,11335,11343,11351,11359,11367,
1219     11376,11385,11393,11401,11408,11416,11424,11432,11440,11448,
1220     11455,11463,11470,11478,11486,11493,11500,11508,11516,11524,
1221     11531,11538,11546,11554,11562,11570,11578,11586,11594,11602,
1222     11611,11620,11628,11635,11642,11650,11658,11666,11673,11681,
1223     11688,11697,11706,11715,11724,11733,11742
1224     } ;
1225
1226 static yyconst flex_int16_t yy_def[3688] =
1227     {   0,
1228      3218, 3218, 3219, 3219, 3219, 3219, 3220, 3220, 3221, 3221,
1229      3222, 3222, 3223, 3223, 3223, 3223, 3224, 3224, 3218, 3218,
1230      3225, 3225, 3226, 3226, 3226, 3226, 3218, 3218, 3226, 3226,
1231      3226, 3226, 3218, 3218, 3226, 3226, 3218, 3218, 3226, 3226,
1232      3226, 3226, 3227, 3227, 3228, 3228, 3218, 3218, 3228, 3228,
1233      3228, 3228, 3229, 3229, 3223, 3223, 3230, 3230, 3231, 3231,
1234      3232, 3232, 3233, 3233, 3234, 3234, 3235, 3235, 3235, 3235,
1235      3218, 3218, 3235, 3235, 3235, 3235, 3218, 3218, 3235, 3235,
1236      3235, 3235, 3218, 3218, 3235, 3235, 3218, 3218, 3235, 3235,
1237      3235, 3235, 3218, 3218, 3235, 3235, 3218, 3218, 3235, 3235,
1238
1239      3235, 3235, 3236, 3236, 3237, 3237, 3218, 3218, 3237, 3237,
1240      3237, 3237, 3238, 3238, 3239, 3239, 3218, 3218, 3239, 3239,
1241      3239, 3239, 3240, 3240, 3241, 3241, 3242, 3242, 3243, 3243,
1242      3244, 3244, 3245, 3245, 3218, 3218, 3245, 3245, 3245, 3245,
1243      3246, 3246, 3247, 3247, 3217,  145, 3248, 3248, 3249, 3249,
1244      3250, 3250, 3251, 3251, 3252, 3252, 3253, 3253, 3254, 3254,
1245      3255, 3255, 3256, 3256, 3257, 3257, 3258, 3258, 3218, 3218,
1246      3258, 3258, 3258, 3258, 3259, 3259, 3260, 3260, 3218, 3218,
1247      3260, 3260, 3260, 3260, 3261, 3261, 3262, 3262, 3218, 3218,
1248      3262, 3262, 3262, 3262, 3263, 3263, 3264, 3264, 3265, 3265,
1249
1250      3266, 3266, 3218, 3218, 3266, 3266, 3266, 3266, 3267, 3267,
1251      3268, 3268, 3218, 3218, 3268, 3268, 3268, 3268, 3269, 3269,
1252      3270, 3270, 3218, 3218, 3270, 3270, 3270, 3270, 3271, 3271,
1253      3272, 3272, 3273, 3273, 3274, 3274, 3218, 3218, 3274, 3274,
1254      3274, 3274, 3275, 3275, 3276, 3276, 3218, 3218, 3217, 3217,
1255      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1256      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1257      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3277,
1258      3217, 3217, 3277, 3217, 3217, 3217,  286,  286,  288,  286,
1259       289,  289, 3217, 3217, 3217, 3278, 3217, 3217, 3278, 3217,
1260
1261      3217,  290,  289, 3217, 3217, 3217, 3279, 3217, 3217, 3279,
1262      3279, 3279, 3217, 3217, 3217, 3217, 3217, 3280, 3217, 3217,
1263      3280, 3280, 3280, 3280, 3280, 3217, 3217, 3217, 3217, 3217,
1264      3217, 3281, 3217, 3217, 3281, 3281, 3281, 3217, 3217, 3217,
1265      3217, 3217, 3217, 3282, 3217, 3217, 3282, 3282, 3217, 3217,
1266      3217,  351,  289,  289,  290,  355,  354,  354,  354,  354,
1267       355,  361,  360,  359, 3217, 3217, 3217, 3283, 3217, 3217,
1268      3283, 3283, 3283, 3283, 3217, 3217,  289,  289, 3217, 3217,
1269      3217, 3284, 3217, 3217, 3284, 3284, 3284, 3217, 3217,  289,
1270       289, 3217, 3217, 3217, 3285, 3217, 3217, 3285, 3285, 3217,
1271
1272      3217, 3217, 3217, 3217, 3217, 3286, 3217, 3217, 3286, 3286,
1273      3217, 3217, 3217, 3217, 3217, 3217, 3287, 3217, 3217, 3287,
1274      3287, 3287, 3287, 3287, 3217, 3217,  289,  427,  427, 3217,
1275      3217, 3217, 3288, 3217, 3217, 3288, 3288, 3288, 3217, 3217,
1276      3217, 3217, 3217, 3217, 3289, 3217, 3217, 3289, 3289, 3289,
1277      3289, 3289, 3289, 3289, 3289, 3217, 3217, 3217, 3217, 3217,
1278      3217, 3290, 3217, 3217, 3290, 3290, 3290, 3290, 3290, 3290,
1279      3217, 3217, 3217, 3217, 3217, 3217, 3291, 3217, 3217, 3291,
1280      3291, 3291, 3291, 3291, 3291, 3291, 3217, 3217, 3217, 3217,
1281      3217, 3217, 3292, 3217, 3217, 3292, 3292, 3217, 3217, 3217,
1282
1283      3217, 3217, 3217, 3293, 3217, 3217, 3293, 3293, 3293, 3217,
1284      3217, 3217, 3217, 3217, 3217, 3294, 3217, 3217, 3294, 3294,
1285      3294, 3294, 3217, 3217,  427,  289, 3217, 3217, 3217, 3295,
1286      3217, 3217, 3295, 3295, 3217, 3217,  289,  537,  537, 3217,
1287      3217, 3217, 3296, 3217, 3217, 3296, 3296, 3296, 3217, 3217,
1288       537,  537, 3217, 3217, 3217, 3297, 3217, 3217, 3297, 3297,
1289      3217, 3217, 3217, 3217, 3217, 3217, 3298, 3217, 3217, 3298,
1290      3298, 3217, 3217,  537,  537, 3217, 3217, 3217, 3299, 3217,
1291      3217, 3299, 3299, 3299, 3217, 3217,  537,  537, 3217, 3217,
1292      3217, 3300, 3217, 3217, 3300, 3300, 3300, 3300, 3300, 3217,
1293
1294      3217,  289,  602,  602, 3217, 3217, 3217, 3301, 3217, 3217,
1295      3301, 3217, 3217, 3217, 3217, 3217, 3217, 3302, 3217, 3217,
1296      3302, 3217, 3217,  602,  289, 3217, 3217, 3217, 3303, 3217,
1297      3217, 3303, 3303, 3217, 3217, 3217, 3217, 3304, 3217, 3217,
1298      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1299      3217, 3217, 3217, 3305, 3305, 3306, 3217, 3217, 3217, 3217,
1300      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1301      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3307,
1302      3307, 3308, 3217, 3309, 3309, 3309, 3309, 3217, 3310, 3217,
1303      3217, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311,
1304
1305      3312, 3217, 3313, 3313, 3313, 3313, 3314, 3217, 3315, 3315,
1306      3315, 3316, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1307      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1308      3317, 3317, 3317, 3317, 3317, 3318, 3217, 3319, 3319, 3319,
1309      3319, 3320, 3217, 3321, 3321, 3321, 3322, 3217, 3323, 3323,
1310      3323, 3324, 3217, 3325, 3325, 3325, 3325, 3325, 3325, 3326,
1311      3217, 3217, 3327, 3327, 3327, 3327, 3328, 3217, 3329, 3329,
1312      3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329,
1313      3329, 3329, 3330, 3217, 3331, 3331, 3331, 3331, 3331, 3331,
1314      3331, 3331, 3332, 3217, 3333, 3333, 3333, 3333, 3333, 3333,
1315
1316      3333, 3333, 3334, 3217, 3335, 3335, 3335, 3336, 3217, 3337,
1317      3337, 3337, 3337, 3338, 3217, 3339, 3339, 3339, 3339, 3339,
1318      3339, 3340, 3217, 3341, 3341, 3341, 3341, 3342, 3217, 3217,
1319      3343, 3343, 3343, 3343, 3343, 3344, 3217, 3345, 3345, 3345,
1320      3346, 3217, 3347, 3347, 3347, 3348, 3217, 3349, 3349, 3349,
1321      3349, 3350, 3217, 3351, 3351, 3351, 3351, 3351, 3351, 3352,
1322      3217, 3217, 3353, 3353, 3354, 3217, 3355, 3355, 3356, 3217,
1323      3357, 3357, 3357, 3358, 3359, 3217, 3359, 3217, 3217, 3217,
1324      3360, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3361, 3362,
1325      3362, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1326
1327      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1328      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3363,
1329      3364, 3364, 3365, 3217, 3217, 3365, 3217, 3366, 3366, 3217,
1330      3367, 3217, 3217, 3367, 3367, 3367, 3367, 3367, 3367, 3368,
1331      3368, 3369, 3369, 3369, 3370, 3370, 3217, 3217, 3371, 3372,
1332      3372, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1333      3217, 3217, 3217, 3217, 3373, 3217, 3217, 3373, 3373, 3374,
1334      3374, 3375, 3217, 3217, 3375, 3376, 3376, 3217, 3217, 3377,
1335      3378, 3378, 3379, 3379, 3380, 3380, 3381, 3381, 3381, 3217,
1336      3217, 3381, 3381, 3382, 3382, 3217, 3217, 3383, 3217, 3217,
1337
1338      3217, 3217, 3384, 3384, 3385, 3385, 3217, 3217, 3385, 3217,
1339      3217, 3385, 3385, 3385, 3385, 3385, 3385, 3385, 3385, 3386,
1340      3386, 3217, 3217, 3217, 3217, 3387, 3387, 3387, 3387, 3387,
1341      3388, 3388, 3389, 3389, 3389, 3217, 3217, 3389, 3389, 3389,
1342      3390, 3390, 3391, 3217, 3217, 3392, 3392, 3393, 3217, 3217,
1343      3393, 3394, 3394, 3395, 3217, 3217, 3395, 3395, 3395, 3396,
1344      3396, 3397, 3397, 3397, 3398, 3398, 3217, 3399, 3399, 3399,
1345      3399, 3400, 3400, 3401, 3217, 3217, 3402, 3402, 3403, 3403,
1346      3404, 3404, 3405, 3405, 3405, 3406, 3406, 3407, 3407, 3407,
1347      3407, 3407, 3408, 3408, 3217, 3409, 3410, 3410, 3217, 3217,
1348
1349      3411, 3411, 3217, 3217, 3412, 3413, 3413, 3414, 3217, 3217,
1350      3414, 3217, 3217, 3415, 3217, 3217, 3217, 3217, 3217, 3217,
1351      3416, 3217, 3417, 3217, 3417, 3217, 3217, 3217, 3217, 3217,
1352      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1353      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1354      3217, 3217, 3217, 3217, 3418, 3217, 3419, 3217, 3419, 3420,
1355      3217, 3217, 3217, 3420, 3217, 3217, 3421, 3217, 3421, 3422,
1356      3217, 3217, 3217, 3217, 3217, 3422, 3217, 3217, 3422, 3422,
1357      3422, 3217, 3423, 3217, 3423, 3424, 3424, 3424, 3217, 3425,
1358      3217, 3425, 3217, 3217, 3217, 3426, 3217, 3427, 3217, 3427,
1359
1360      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1361      3217, 3217, 3428, 3217, 3217, 3217, 3428, 3428, 3217, 3429,
1362      3217, 3429, 3430, 3217, 3217, 3217, 3430, 3217, 3431, 3217,
1363      3431, 3217, 3217, 3217, 3432, 3217, 3433, 3217, 3433, 3434,
1364      3434, 3217, 3435, 3217, 3435, 3436, 3436, 3436, 3217, 3217,
1365      3217, 3436, 3436, 3217, 3437, 3217, 3437, 3217, 3217, 3438,
1366      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3439, 3217, 3439,
1367      3440, 3440, 3440, 3440, 3217, 3217, 3217, 3440, 3217, 3217,
1368      3217, 3217, 3217, 3440, 3440, 3440, 3440, 3440, 3440, 3440,
1369      3217, 3441, 3217, 3441, 3217, 3217, 3217, 3217, 3217, 3217,
1370
1371      3217, 3217, 3442, 3442, 3442, 3442, 3217, 3443, 3217, 3443,
1372      3444, 3444, 3444, 3444, 3217, 3217, 3217, 3217, 3217, 3444,
1373      3444, 3217, 3445, 3217, 3445, 3446, 3217, 3217, 3217, 3217,
1374      3447, 3217, 3447, 3448, 3217, 3217, 3217, 3448, 3217, 3449,
1375      3217, 3449, 3450, 3217, 3217, 3217, 3450, 3450, 3450, 3217,
1376      3451, 3217, 3451, 3217, 3217, 3217, 3217, 3452, 3217, 3453,
1377      3217, 3453, 3217, 3217, 3217, 3454, 3454, 3217, 3217, 3454,
1378      3217, 3455, 3217, 3455, 3456, 3217, 3217, 3217, 3217, 3457,
1379      3217, 3457, 3217, 3217, 3217, 3217, 3217, 3458, 3217, 3458,
1380      3217, 3217, 3459, 3459, 3217, 3217, 3217, 3460, 3217, 3460,
1381
1382      3461, 3461, 3461, 3461, 3461, 3217, 3462, 3217, 3462, 3217,
1383      3463, 3217, 3464, 3217, 3464, 3217, 3217, 3217, 3217, 3465,
1384      3217, 3465, 3217, 3217, 3217, 3466, 3217, 3467, 3217, 3467,
1385      3468, 3469, 3217, 3217, 3217, 3217, 3217, 3470, 3471, 3217,
1386      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1387      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1388      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3472,
1389      3217, 3217, 3473, 3217, 3474, 3475, 3217, 3217, 3217, 3217,
1390      3217, 3217, 3217, 3217, 3475, 3217, 3217, 3475, 3476, 3477,
1391      3217, 3217, 3477, 3478, 3479, 3217, 3217, 3217, 3217, 3217,
1392
1393      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3480,
1394      3480, 3217, 3217, 3481, 3482, 3482, 3483, 3217, 3217, 3484,
1395      3217, 3217, 3485, 3486, 3487, 3487, 3217, 3217, 3487, 3487,
1396      3488, 3217, 3217, 3217, 3217, 3489, 3490, 3490, 3490, 3490,
1397      3217, 3217, 3217, 3217, 3217, 3490, 3490, 3490, 3490, 3490,
1398      3490, 3490, 3491, 3217, 3217, 3217, 3492, 3492, 3492, 3492,
1399      3493, 3494, 3494, 3494, 3494, 3217, 3217, 3217, 3494, 3494,
1400      3495, 3496, 3497, 3498, 3498, 3499, 3500, 3500, 3500, 3500,
1401      3501, 3217, 3217, 3217, 3217, 3217, 3217, 3502, 3503, 3217,
1402      3217, 3217, 3217, 3504, 3504, 3217, 3217, 3217, 3504, 3505,
1403
1404      3506, 3507, 3217, 3217, 3217, 3217, 3217, 3217, 3508, 3217,
1405      3217, 3217, 3509, 3509, 3217, 3217, 3217, 3510, 3511, 3217,
1406      3217, 3511, 3511, 3511, 3512, 3217, 3513, 3514, 3515, 3516,
1407      3517, 3518, 3519, 3519, 3217, 3519, 3217, 3217, 3217, 3520,
1408      3521, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1409      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1410      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1411      3217, 3217, 3217, 3217, 3522, 3217, 3217, 3217, 3523, 3217,
1412      3524, 3525, 3217, 3217, 3217, 3525, 3217, 3217, 3217, 3525,
1413      3526, 3527, 3217, 3217, 3217, 3217, 3217, 3528, 3529, 3217,
1414
1415      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1416      3217, 3217, 3530, 3217, 3217, 3217, 3217, 3217, 3531, 3532,
1417      3532, 3533, 3217, 3217, 3217, 3534, 3217, 3217, 3217, 3535,
1418      3536, 3537, 3537, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1419      3537, 3538, 3217, 3217, 3217, 3217, 3217, 3539, 3540, 3217,
1420      3217, 3540, 3540, 3217, 3217, 3217, 3217, 3217, 3540, 3540,
1421      3540, 3540, 3540, 3540, 3541, 3217, 3217, 3542, 3542, 3542,
1422      3543, 3544, 3217, 3217, 3544, 3544, 3217, 3217, 3544, 3545,
1423      3546, 3547, 3548, 3548, 3549, 3550, 3550, 3550, 3217, 3217,
1424      3550, 3551, 3552, 3553, 3217, 3554, 3554, 3554, 3555, 3556,
1425
1426      3557, 3558, 3559, 3559, 3560, 3561, 3217, 3217, 3217, 3561,
1427      3561, 3561, 3562, 3217, 3217, 3217, 3563, 3564, 3217, 3217,
1428      3565, 3566, 3567, 3567, 3217, 3217, 3568, 3569, 3217, 3217,
1429      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1430      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1431      3217, 3217, 3217, 3217, 3217, 3217, 3570, 3571, 3217, 3572,
1432      3573, 3573, 3573, 3574, 3575, 3217, 3217, 3217, 3217, 3217,
1433      3217, 3217, 3217, 3217, 3217, 3217, 3576, 3577, 3217, 3217,
1434      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3578, 3217, 3217,
1435      3217, 3579, 3580, 3217, 3217, 3581, 3582, 3217, 3217, 3583,
1436
1437      3584, 3584, 3217, 3217, 3217, 3217, 3217, 3217, 3584, 3217,
1438      3217, 3217, 3217, 3585, 3586, 3217, 3217, 3217, 3217, 3217,
1439      3586, 3217, 3217, 3217, 3217, 3217, 3586, 3586, 3586, 3586,
1440      3217, 3217, 3587, 3217, 3217, 3217, 3217, 3217, 3588, 3217,
1441      3217, 3589, 3590, 3217, 3217, 3217, 3217, 3217, 3590, 3217,
1442      3217, 3217, 3590, 3217, 3217, 3591, 3592, 3593, 3593, 3594,
1443      3595, 3595, 3595, 3217, 3217, 3217, 3595, 3217, 3217, 3596,
1444      3597, 3217, 3217, 3217, 3217, 3217, 3598, 3599, 3600, 3601,
1445      3602, 3217, 3217, 3217, 3217, 3603, 3604, 3604, 3604, 3604,
1446      3605, 3217, 3217, 3217, 3217, 3606, 3607, 3217, 3217, 3217,
1447
1448      3217, 3217, 3608, 3609, 3609, 3217, 3217, 3217, 3610, 3217,
1449      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1450      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1451      3217, 3217, 3217, 3217, 3611, 3612, 3217, 3217, 3217, 3613,
1452      3217, 3217, 3613, 3614, 3217, 3217, 3217, 3217, 3217, 3217,
1453      3217, 3217, 3217, 3217, 3217, 3217, 3615, 3217, 3217, 3217,
1454      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3616, 3217,
1455      3217, 3217, 3217, 3217, 3617, 3217, 3217, 3217, 3217, 3217,
1456      3618, 3619, 3619, 3217, 3217, 3619, 3217, 3620, 3621, 3217,
1457      3217, 3217, 3621, 3217, 3217, 3217, 3217, 3217, 3621, 3621,
1458
1459      3621, 3217, 3217, 3217, 3622, 3217, 3217, 3217, 3217, 3217,
1460      3217, 3217, 3217, 3623, 3624, 3217, 3217, 3217, 3624, 3624,
1461      3625, 3626, 3627, 3217, 3217, 3628, 3629, 3217, 3217, 3629,
1462      3629, 3217, 3217, 3629, 3630, 3217, 3217, 3217, 3217, 3217,
1463      3217, 3217, 3217, 3217, 3631, 3632, 3633, 3634, 3635, 3217,
1464      3217, 3217, 3217, 3217, 3217, 3636, 3637, 3637, 3637, 3637,
1465      3638, 3217, 3639, 3640, 3641, 3642, 3642, 3217, 3217, 3217,
1466      3217, 3643, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1467      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1468      3217, 3217, 3217, 3644, 3645, 3217, 3646, 3217, 3217, 3217,
1469
1470      3646, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1471      3217, 3217, 3217, 3217, 3217, 3217, 3647, 3217, 3217, 3217,
1472      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1473      3648, 3217, 3217, 3217, 3649, 3650, 3651, 3651, 3217, 3217,
1474      3217, 3217, 3651, 3217, 3652, 3653, 3653, 3217, 3217, 3217,
1475      3653, 3653, 3653, 3654, 3217, 3217, 3217, 3655, 3656, 3656,
1476      3656, 3657, 3217, 3217, 3658, 3217, 3217, 3217, 3659, 3660,
1477      3217, 3217, 3217, 3660, 3660, 3217, 3217, 3217, 3217, 3660,
1478      3661, 3217, 3662, 3663, 3664, 3665, 3666, 3667, 3217, 3217,
1479      3668, 3668, 3668, 3669, 3217, 3670, 3217, 3217, 3671, 3672,
1480
1481      3672, 3217, 3673, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1482      3217, 3217, 3217, 3217, 3217, 3217, 3674, 3217, 3217, 3675,
1483      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1484      3676, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1485      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3677, 3217,
1486      3217, 3678, 3679, 3679, 3217, 3217, 3217, 3217, 3679, 3217,
1487      3680, 3681, 3681, 3217, 3217, 3681, 3681, 3217, 3217, 3217,
1488      3217, 3656, 3656, 3656, 3657, 3217, 3217, 3659, 3217, 3217,
1489      3660, 3660, 3660, 3217, 3217, 3217, 3217, 3660, 3661, 3217,
1490      3662, 3217, 3217, 3217, 3217, 3665, 3666, 3667, 3217, 3217,
1491
1492      3217, 3217, 3217, 3668, 3668, 3217, 3217, 3217, 3670, 3671,
1493      3672, 3672, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1494      3674, 3217, 3217, 3217, 3675, 3217, 3217, 3217, 3217, 3217,
1495      3217, 3217, 3217, 3217, 3217, 3676, 3217, 3217, 3217, 3217,
1496      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1497      3217, 3217, 3217, 3217, 3677, 3217, 3217, 3679, 3679, 3217,
1498      3217, 3217, 3217, 3680, 3681, 3681, 3217, 3217, 3217, 3681,
1499      3217, 3217, 3656, 3656, 3217, 3217, 3657, 3217, 3217, 3217,
1500      3217, 3217, 3217, 3217, 3217, 3660, 3660, 3660, 3217, 3217,
1501      3217, 3217, 3661, 3662, 3217, 3217, 3217, 3217, 3217, 3666,
1502
1503      3667, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1504      3671, 3672, 3672, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1505      3217, 3217, 3217, 3217, 3217, 3217, 3675, 3217, 3217, 3217,
1506      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3676, 3217, 3217,
1507      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1508      3217, 3217, 3217, 3217, 3217, 3677, 3679, 3217, 3217, 3217,
1509      3217, 3217, 3217, 3217, 3681, 3681, 3681, 3217, 3217, 3217,
1510      3656, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3660, 3660,
1511      3660, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1512      3217, 3217, 3217, 3217, 3666, 3667, 3217, 3217, 3217, 3217,
1513
1514      3217, 3217, 3671, 3672, 3672, 3217, 3217, 3217, 3217, 3217,
1515      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1516      3217, 3675, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1517      3676, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1518      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3677, 3217,
1519      3217, 3679, 3217, 3217, 3217, 3681, 3681, 3681, 3656, 3217,
1520      3217, 3217, 3217, 3217, 3217, 3660, 3217, 3217, 3660, 3217,
1521      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1522      3217, 3666, 3667, 3217, 3217, 3217, 3217, 3671, 3672, 3672,
1523      3672, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1524
1525      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1526      3217, 3217, 3217, 3676, 3217, 3217, 3217, 3217, 3217, 3217,
1527      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1528      3677, 3217, 3217, 3217, 3679, 3681, 3681, 3681, 3656, 3660,
1529      3217, 3217, 3217, 3660, 3217, 3217, 3217, 3217, 3217, 3217,
1530      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1531      3667, 3217, 3217, 3217, 3217, 3671, 3672, 3672, 3672, 3682,
1532      3683, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1533      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1534      3217, 3676, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1535
1536      3217, 3217, 3217, 3217, 3217, 3679, 3681, 3681, 3217, 3217,
1537      3656, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1538      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3667, 3217, 3217,
1539      3217, 3217, 3671, 3672, 3684, 3685, 3682, 3683, 3217, 3217,
1540      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1541      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1542      3217, 3217, 3679, 3681, 3681, 3217, 3217, 3217, 3656, 3217,
1543      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1544      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1545      3217, 3217, 3217, 3671, 3684, 3672, 3686, 3685, 3687, 3672,
1546
1547      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1548      3217, 3217, 3217, 3217, 3217, 3217, 3679, 3681, 3681, 3217,
1549      3217, 3217, 3217, 3656, 3217, 3217, 3217, 3217, 3217, 3217,
1550      3217, 3217, 3217, 3217, 3671, 3686, 3217, 3687, 3672, 3217,
1551      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1552      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1553      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1554      3217, 3671, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1555      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1556      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1557
1558      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3671, 3217, 3217,
1559      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1560      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1561      3217, 3671, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1562      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1563      3217, 3217, 3671, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1564      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1565      3217, 3671, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1566      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1567      3671, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1568
1569      3217, 3217, 3217, 3671, 3217, 3217, 3217, 3217, 3217, 3217,
1570      3217, 3217, 3671, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1571      3217, 3671, 3671, 3217, 3217, 3217, 3217, 3217, 3217, 3671,
1572      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1573      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1574      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1575      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1576      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1577      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1578      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1579
1580      3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
1581      3671, 3671, 3671, 3671, 3671, 3217,    0, 3217, 3217, 3217,
1582      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1583      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1584      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1585      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1586      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1587      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1588      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1589      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1590
1591      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1592      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1593      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1594      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1595      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1596      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1597      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1598      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1599      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1600      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1601
1602      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1603      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1604      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1605      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1606      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1607      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1608      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1609      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1610      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1611      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1612
1613      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1614      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1615      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1616      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1617      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1618      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1619      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1620      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1621      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1622      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1623
1624      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1625      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1626      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1627      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1628      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1629      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1630      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1631      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
1632      3217, 3217, 3217, 3217, 3217, 3217, 3217
1633     } ;
1634
1635 static yyconst flex_int16_t yy_nxt[11827] =
1636     {   0,
1637      3217,  252,  253,  252,  252,  253,  252,  252,  253,  252,
1638       252,  253,  252,  257,  253,  257,  263,  254,  260,  263,
1639       254,  260, 3217,  255, 3217,  261,  255, 3217,  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, 3217,  270,  253,  253,  253,
1644       820,  640,  270,  253,  253,  253,  285,  253,  285,  285,
1645       253,  285,  821,  276,  285,  253,  285,  659, 1702,  276,
1646       712,  275,  286, 1312,  674,  286,  637,  637,  637, 1313,
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,  894,  277,  277,  286,  641,  641,  286,  285,
1654       253,  285,  637,  637,  637,  640,  637,  637,  637,  637,
1655       637,  637,  640,  640, 3217,  289,  895,  283,  277,  278,
1656       253,  278,  277,  277,  277,  277,  277,  277,  277,  279,
1657       277,  277,  277, 1707,  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,  712,  290,  776,
1661       953,  290,  777,  277,  277,  287,  720,  713,  287,  253,
1662       253,  253,  253,  253,  253,  285,  253,  285,  285,  253,
1663       285,  285,  253,  285,  954,  291,  826,  283,  291,  641,
1664       647,  289,  771,  827,  289,  724,  648,  292,  285,  253,
1665       285,  649,  637,  637,  637,  640,  650,  637,  637,  637,
1666       637,  637,  637,  772,  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,  789,  882,  302,  790,  883,  290,  695,
1672       293,  293,  290,  696,  736,  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,  778,
1676       640,  869,  266,  267,  834,  676,  302,  268, 3217,  303,
1677      1708,  835,  303,  779,  293,  293,  720,  313,  677,  736,
1678       670,  876,  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, 1709,  641,  314,  669,  327,  253,
1682       327,  327,  253,  327,  339,  253,  339,  927,  266,  267,
1683       678,  640,  670,  268,  328,  688,  907,  328,  304,  304,
1684       340,  674,  689,  313,  902, 1710,  310,  742,  903,  311,
1685       908,  640,  637,  637,  637, 1711,  312,  304,  305,  253,
1686       305,  304,  304,  304,  304,  304,  304,  304,  306,  304,
1687       304,  304,  314,  304,  308,  304,  309,  304,  339,  253,
1688       339,  350,  253,  350,  350,  253,  350,  822,  350,  253,
1689       350,  350,  253,  350,  340,  641,  641,  351,  641,  720,
1690       351, 1712,  304,  304,  352,  701,  988,  352, 1713,  989,
1691
1692       310,  640,  640,  311,  640,  637,  637,  637,  742, 1720,
1693       312,  315,  316,  253,  316,  315,  315,  315,  315,  315,
1694       315,  315,  317,  315,  315,  315,  664,  315,  319,  315,
1695       320,  315,  253,  253,  253,  253,  253,  253,  350,  253,
1696       350, 1721,  350,  253,  350,  350,  253,  350,  353, 1730,
1697       641,  353,  641,  641,  351,  658,  315,  315,  351,  707,
1698       674,  354,  637,  637,  637,  321,  640,  322,  640,  640,
1699       674,  323,  637,  637,  637, 1732,  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,  350,
1702
1703       253,  350,  253,  253,  253,  253,  253,  253,  822,  350,
1704       253,  350,  350,  253,  350,  354,  723, 1733,  355, 1743,
1705       641,  355,  727,  315,  315,  356,  716,  715,  356,  637,
1706       637,  637,  321,  719,  322,  674,  640,  728,  323,  637,
1707       637,  637, 1744,  324,  325,  329,  330,  253,  330,  329,
1708       329,  329,  329,  329,  329,  329,  331,  329,  329,  329,
1709       674,  329,  333,  329,  334,  329,  350,  253,  350,  350,
1710       253,  350,  253,  253,  253,  912,  253,  253,  253,  350,
1711       253,  350,  357,  996, 1749,  357,  641,  997,  358,  908,
1712       329,  329,  358,  747,  641,  354,  876,  335,  637,  637,
1713
1714       637,  752,  640,  336,  637,  637,  637,  637,  637,  637,
1715       640,  877,  337,  329,  330,  253,  330,  329,  329,  329,
1716       329,  329,  329,  329,  331,  329,  329,  329,  894,  329,
1717       333,  329,  334,  329,  350,  253,  350,  253,  253,  253,
1718       253,  253,  253,  912,  350,  253,  350,  350,  253,  350,
1719       354, 1454,  961,  359,  641,  953,  359,  958,  329,  329,
1720       357, 1752,  641,  357, 1455,  335,  637,  637,  637, 1753,
1721       640,  336,  637,  637,  637,  637,  637,  637,  640,  895,
1722       337,  341,  342,  253,  342,  341,  341,  341,  341,  341,
1723       341,  341,  343,  341,  341,  341,  836,  341,  345,  341,
1724
1725       346,  341,  350,  253,  350,  350,  253,  350,  253,  253,
1726       253, 1759,  253,  253,  253,  350,  253,  350,  360,  641,
1727      1760,  360, 1761, 1762,  361,  869,  341,  341,  361,  641,
1728      1763,  362,  637,  637,  637,  640,  760,  347,  637,  637,
1729       637,  637,  637,  637,  663,  640,  348,  341,  342,  253,
1730       342,  341,  341,  341,  341,  341,  341,  341,  343,  341,
1731       341,  341,  846,  341,  345,  341,  346,  341,  350,  253,
1732       350,  253,  253,  253,  253,  253,  253,  674,  350,  253,
1733       350,  350,  253,  350,  362,  761, 1764,  363,  720,  953,
1734       363, 1772,  341,  341,  360,  641, 1775,  360,  350,  253,
1735
1736       350, 1776,  767,  347,  350,  253,  350,  637,  637,  637,
1737       663,  640,  348,  961,  364,  637,  637,  637,  712, 1779,
1738       364,  365,  366,  253,  366,  365,  365,  365,  365,  365,
1739       365,  365,  367,  365,  365,  365, 1781,  365,  369,  365,
1740       370,  365,  376,  253,  376,  376,  253,  376,  253,  253,
1741       253, 1109,  253,  253,  253, 1431,  729,  780,  377,  912,
1742       641,  377,  894, 1783,  353, 3217,  365,  365,  353,  781,
1743       782,  371,  718,  963,  828,  671,  640,  372,  637,  637,
1744       637,  373,  637,  637,  637, 1784,  962,  374,  365,  366,
1745       253,  366,  365,  365,  365,  365,  365,  365,  365,  367,
1746
1747       365,  365,  365,  659,  365,  369,  365,  370,  365,  376,
1748       253,  376,  376,  253,  376,  376,  253,  376,  896,  376,
1749       253,  376,  829,  641, 1786,  377,  674, 1787,  377,  897,
1750       783,  378,  898,  365,  365,  378,  641,  641,  371,  640,
1751       637,  637,  637,  793,  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      1788,  379,  383,  379,  384,  379,  389,  253,  389,  389,
1755       253,  389,  253,  253,  253,  912,  253,  253,  253,  637,
1756       637,  637,  390,  641,  641,  390,  641, 1793,  353,  964,
1757
1758       379,  379,  353,  803, 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, 1798,  389,  253,  389, 1800,  641, 1466,
1764       390, 1803,  641,  390,  641,  808,  391, 1804,  379,  379,
1765       391,  814, 1455,  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, 1806,  392,  396,  392,
1770       397,  392,  401,  253,  401,  401,  253,  401,  412,  253,
1771       412, 1810,  412,  253,  412,  426,  253,  426,  402,  641,
1772       641,  402, 1811, 1812,  413,  641,  392,  392,  413, 1814,
1773      1635,  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, 1825,  392,
1776       396,  392,  397,  392,  426,  253,  426,  253,  253,  253,
1777       253,  253,  253, 1826,  426,  253,  426,  426,  253,  426,
1778       427,  641,  641,  428, 1827, 1829,  428,  852,  392,  392,
1779
1780       427, 1830, 1831,  427,  637,  637,  637,  640,  640,  398,
1781       637,  637,  637, 1832,  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,  663,  440,  253,  440,  457,
1785       253,  457,  429, 1833,  962,  429,  641, 1834,  441, 1835,
1786       403,  403,  441,  841,  641,  458,  637,  637,  637,  637,
1787       637,  637,  640,  637,  637,  637,  409,  637,  637,  637,
1788       640, 1836,  410,  403,  404,  253,  404,  403,  403,  403,
1789       403,  403,  403,  403,  405,  403,  403,  403, 1837,  403,
1790
1791       407,  403,  408,  403,  457,  253,  457,  472,  253,  472,
1792       472,  253,  472, 1838,  488,  253,  488,  488,  253,  488,
1793       458, 1840, 1841,  473, 1109, 1842,  473,  641,  403,  403,
1794       489, 1843, 1846,  489,  637,  637,  637,  637,  637,  637,
1795       637,  637,  637,  640,  409,  637,  637,  637,  860, 1822,
1796       410,  414,  415,  253,  415,  414,  414,  414,  414,  414,
1797       414,  414,  416,  414,  414,  414, 1849,  414,  418,  414,
1798       419,  414,  499,  253,  499,  499,  253,  499,  511,  253,
1799       511,  896,  511,  253,  511,  861,  641, 1850,  500, 1851,
1800       641,  500,  897,  865,  512,  911,  414,  414,  512,  420,
1801
1802       720,  421,  640,  637,  637,  637,  640,  422,  637,  637,
1803       637,  637,  637,  637,  423, 1852, 1853,  424,  414,  415,
1804       253,  415,  414,  414,  414,  414,  414,  414,  414,  416,
1805       414,  414,  414, 1854,  414,  418,  414,  419,  414,  524,
1806       253,  524,  524,  253,  524,  253,  253,  253,  914,  253,
1807       253,  253,  637,  637,  637,  525, 1109, 1109,  525,  915,
1808       641,  353,  898,  414,  414,  353,  420,  874,  421,  637,
1809       637,  637, 1111, 1858,  422, 1859,  640, 1632,  880,  880,
1810       880,  423, 1861, 1862,  424,  430,  431,  253,  431,  430,
1811       430,  430,  430,  430,  430,  430,  432,  430,  430,  430,
1812
1813      1863,  430,  434,  430,  435,  430,  524,  253,  524,  524,
1814       253,  524,  524,  253,  524, 1865,  524,  253,  524,  536,
1815       253,  536,  525, 1878, 1879,  525,  904,  917,  526, 1880,
1816       430,  430,  526,  905,  905,  537,  436,  881,  914,  906,
1817       918,  437,  880,  880,  880, 1881, 1113, 1882, 1885,  915,
1818      1886, 1887,  911,  438,  430,  431,  253,  431,  430,  430,
1819       430,  430,  430,  430,  430,  432,  430,  430,  430, 1888,
1820       430,  434,  430,  435,  430,  536,  253,  536,  253,  253,
1821       253,  253,  253,  253, 1893,  536,  253,  536,  536,  253,
1822       536,  537, 1901, 1902,  538,  917,  904,  538, 1466,  430,
1823
1824       430,  537,  905,  905,  537,  436,  904,  917,  906,  918,
1825       437, 1503, 1909,  905,  905, 1126, 1126, 1126, 1913,  957,
1826       957, 1915,  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, 1921,  459,  463,  459,  464,  459,  536,  253,
1837       536,  536,  253,  536,  550,  253,  550,  896,  550,  253,
1838       550,  253,  253,  253,  539, 1272, 1927,  539,  915, 1928,
1839       551,  911,  459,  459,  551, 1273,  465,  538, 1126, 1126,
1840      1126, 1929, 1274,  466, 1930, 1943,  467, 1148, 1148, 1148,
1841       468, 1949,  469,  470,  459,  460,  253,  460,  459,  459,
1842       459,  459,  459,  459,  459,  461,  459,  459,  459, 1953,
1843       459,  463,  459,  464,  459,  253,  253,  253,  550,  253,
1844       550,  550,  253,  550, 1956,  550,  253,  550,  550,  253,
1845
1846       550,  538, 1958, 1959,  551, 1961, 1962,  551, 1963,  459,
1847       459,  552, 1127,  465,  552, 1161, 1161, 1161, 1967, 1162,
1848       466, 1127, 1163,  467, 1148, 1148, 1148,  468, 1970,  469,
1849       470,  474,  475,  253,  475,  474,  474,  474,  474,  474,
1850       474,  474,  476,  474,  474,  474, 1972,  474,  478,  474,
1851       479,  474,  562,  253,  562,  562,  253,  562,  573,  253,
1852       573, 1979,  573,  253,  573,  924,  924,  924,  563, 1987,
1853      1988,  563, 1989, 1990,  574, 1992,  474,  474,  574,  480,
1854       481,  482,  925, 2006, 1171, 1171, 1171,  483, 1172, 2010,
1855       484, 1173, 2011, 2012,  485, 1635, 1109,  486,  474,  475,
1856
1857       253,  475,  474,  474,  474,  474,  474,  474,  474,  476,
1858       474,  474,  474, 2003,  474,  478,  474,  479,  474,  253,
1859       253,  253,  253,  253,  253,  573,  253,  573, 2015,  573,
1860       253,  573,  932,  932,  932,  538, 2016, 2004,  538, 2018,
1861      2013,  574, 2019,  474,  474,  574,  480,  481,  482,  933,
1862      2020, 1193, 1193, 1193,  483, 1194, 2014,  484, 1195, 2021,
1863      2022,  485, 1635, 2023,  486,  490,  491,  253,  491,  490,
1864       490,  490,  490,  490,  490,  490,  492,  490,  490,  490,
1865      2026,  490,  494,  490,  495,  490,  573,  253,  573,  573,
1866       253,  573,  586,  253,  586, 2005,  586,  253,  586,  947,
1867
1868       947,  947,  575, 2027, 2030,  575, 2031, 2032,  587, 2033,
1869       490,  490,  587, 2034, 2036,  496,  948, 1649, 1649, 1649,
1870      2037,  497,  490,  491,  253,  491,  490,  490,  490,  490,
1871       490,  490,  490,  492,  490,  490,  490, 2040,  490,  494,
1872       490,  495,  490,  253,  253,  253,  253,  253,  253,  586,
1873       253,  586, 2043,  586,  253,  586,  966,  966,  966,  538,
1874      2047, 2048,  538, 1650, 2051,  587, 2052,  490,  490,  587,
1875      2053, 2056,  496,  967, 1652, 1652, 1652, 2060,  497,  501,
1876       502,  253,  502,  501,  501,  501,  501,  501,  501,  501,
1877       503,  501,  501,  501, 2061,  501,  505,  501,  506,  501,
1878
1879       586,  253,  586,  586,  253,  586,  601,  253,  601, 2049,
1880       601,  253,  601,  253,  253,  253,  588, 2050, 2062,  588,
1881      1653, 2064,  602, 2066,  501,  501,  602, 2082,  507,  603,
1882      1126, 1126, 1126, 2083, 2063,  508, 2084, 2085,  509,  501,
1883       502,  253,  502,  501,  501,  501,  501,  501,  501,  501,
1884       503,  501,  501,  501, 2086,  501,  505,  501,  506,  501,
1885       253,  253,  253,  601,  253,  601,  601,  253,  601, 2054,
1886       601,  253,  601,  601,  253,  601,  603, 2055, 2087,  602,
1887      2062, 2013,  602, 2089,  501,  501,  604, 2093,  507,  604,
1888      1148, 1148, 1148, 2099, 1201,  508, 2014, 2063,  509,  513,
1889
1890       514,  253,  514,  513,  513,  513,  513,  513,  513,  513,
1891       515,  513,  513,  513, 2100,  513,  517,  513,  518,  513,
1892       613,  253,  613,  613,  253,  613,  623,  253,  623, 2101,
1893       623,  253,  623,  253,  253,  253,  614, 2115, 2119,  614,
1894      2120, 2121,  624, 2123,  513,  513,  624, 2127,  519,  353,
1895      1656, 1656, 1656, 2131, 1201,  520, 2132, 2133,  521, 1659,
1896      1659, 1659, 1669, 1669, 1669,  522,  513,  514,  253,  514,
1897       513,  513,  513,  513,  513,  513,  513,  515,  513,  513,
1898       513, 2134,  513,  517,  513,  518,  513,  253,  253,  253,
1899       623,  253,  623,  623,  253,  623, 2135,  623,  253,  623,
1900
1901       623,  253,  623,  353, 2138, 2145,  624, 2147, 2157,  624,
1902       712,  513,  513,  625, 2158,  519,  625, 1214, 1214, 1214,
1903       721, 1215,  520, 2159, 1216,  521, 1703, 1703, 1703, 1705,
1904      1705, 1705,  522,  527,  528,  253,  528,  527,  527,  527,
1905       527,  527,  527,  527,  529,  527,  527,  527,  722,  527,
1906       531,  527,  532,  527,  635,  253,  635,  635,  253,  635,
1907      2160, 2162,  674,  973,  973,  973,  668, 1122, 1122, 1122,
1908       636, 1109, 1704,  636, 2168, 1653, 3217, 2165,  527,  527,
1909       974,  978,  978,  978,  533, 1124,  671, 2174, 1224, 1224,
1910      1224, 1635, 1225, 2175,  671, 1226, 1635, 2176,  979,  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,  725,  990,  990,  990, 2177, 2166,  674, 1706,
1915      1706, 1706,  675,  999,  999,  999, 2180, 2167,  726, 2182,
1916       991, 1001, 1001, 1001, 2183,  527,  527, 1007, 1007, 1007,
1917      1000,  533, 1232, 1232, 1232, 2184, 1233, 2188, 1002, 1234,
1918      1652, 1652, 1652, 2193, 1008, 2195,  534,  540,  541,  253,
1919       541,  540,  540,  540,  540,  540,  540,  540,  542,  540,
1920       540,  540, 2196,  540,  544,  540,  545,  540, 1010, 1010,
1921      1010, 1022, 1022, 1022, 1024, 1024, 1024, 1036, 1036, 1036,
1922
1923      1044, 1044, 1044, 2197, 2201, 1011, 1795, 2207, 1023, 2208,
1924      2209, 1025,  540,  540, 1037, 2210, 2211, 1045,  546, 2212,
1925      2213,  547, 1249, 1249, 1249, 2214, 1250, 2215, 2216, 1251,
1926      1649, 1649, 1649,  548,  540,  541,  253,  541,  540,  540,
1927       540,  540,  540,  540,  540,  542,  540,  540,  540, 2222,
1928       540,  544,  540,  545,  540, 1049, 1049, 1049, 1055, 1055,
1929      1055, 1075, 1075, 1075, 1099, 1099, 1099, 1103, 1103, 1103,
1930      2223, 2224, 1050, 2225, 2237, 1056, 2238, 2243, 1076,  540,
1931       540, 1100, 2244, 2246, 1104,  546, 2239, 2241,  547, 1261,
1932      1261, 1261, 2247, 1262, 2240, 2242, 1263, 1652, 1652, 1652,
1933
1934       548,  553,  554,  253,  554,  553,  553,  553,  553,  553,
1935       553,  553,  555,  553,  553,  553, 2251,  553,  557,  553,
1936       558,  553, 1122, 1122, 1122, 1156, 1156, 1156, 2252, 2253,
1937      1156, 1156, 1156,  924,  924,  924, 1166, 1166, 1166, 1866,
1938      1124, 2259, 2260, 1158, 2261, 1867,  553,  553, 1158, 1868,
1939       925, 2262,  559, 1869, 1168, 2265, 2270,  560,  553,  554,
1940       253,  554,  553,  553,  553,  553,  553,  553,  553,  555,
1941       553,  553,  553, 2274,  553,  557,  553,  558,  553, 2275,
1942      1125, 1166, 1166, 1166,  932,  932,  932, 1182, 1182, 1182,
1943      1159, 1174, 1174, 1174, 1177, 1177, 1177, 2280, 2276, 1168,
1944
1945      2281,  933, 2278,  553,  553, 1184, 2277, 2282, 1175,  559,
1946      2279, 1178, 2283, 2285,  560,  564,  565,  253,  565,  564,
1947       564,  564,  564,  564,  564,  564,  566,  564,  564,  564,
1948      2295,  564,  568,  564,  569,  564, 1189, 1189, 1189, 1189,
1949      1189, 1189,  947,  947,  947, 1169, 1197, 1197, 1197, 2306,
1950      1182, 1182, 1182, 2307, 1191, 2308, 2312, 1191, 2313,  948,
1951       564,  564, 2314, 2317, 1199, 2321,  570, 1635, 1184, 1264,
1952      1264, 1264, 2322, 1265, 1635, 2323, 1266, 1839, 1839, 1839,
1953      2324,  571,  564,  565,  253,  565,  564,  564,  564,  564,
1954       564,  564,  564,  566,  564,  564,  564, 1185,  564,  568,
1955
1956       564,  569,  564, 1192, 1197, 1197, 1197,  966,  966,  966,
1957      2300, 1219, 1219, 1219, 1219, 1219, 1219,  973,  973,  973,
1958      2325, 2301, 1199, 2326,  967, 2327, 2328,  564,  564, 1221,
1959      2329, 2330, 1221,  570,  974, 1275, 1275, 1275, 2345, 1276,
1960      2346, 1200, 1277, 1656, 1656, 1656, 2347, 2348,  571,  576,
1961       577,  253,  577,  576,  576,  576,  576,  576,  576,  576,
1962       578,  576,  576,  576, 2353,  576,  580,  576,  581,  576,
1963      1228, 1228, 1228, 1228, 1228, 1228,  978,  978,  978, 2354,
1964      1222, 1236, 1236, 1236, 1236, 1236, 1236, 2355, 1230, 2356,
1965      2357, 1230, 2358,  979,  576,  576, 1242, 1242, 1242, 1238,
1966
1967       582, 2359, 1238,  583, 1279, 1279, 1279, 2362, 1280, 2363,
1968      2366, 1281, 2367, 2372, 1244,  584,  576,  577,  253,  577,
1969       576,  576,  576,  576,  576,  576,  576,  578,  576,  576,
1970       576, 2373,  576,  580,  576,  581,  576, 2374, 2375, 1231,
1971      1242, 1242, 1242, 2384, 2385, 1239,  990,  990,  990, 2386,
1972      1254, 1254, 1254, 1254, 1254, 1254, 2387, 2389, 1244, 2391,
1973      2415,  576,  576,  991,  999,  999,  999,  582, 1256, 2416,
1974       583, 1256, 1295, 1295, 1295, 2418, 1296, 2419, 2420, 1297,
1975      1635, 1000,  584,  589,  590,  253,  590,  589,  589,  589,
1976       589,  589,  589,  589,  591,  589,  589,  589, 2421,  589,
1977
1978       593,  589,  594,  589, 2425, 1245, 1001, 1001, 1001, 1267,
1979      1267, 1267, 2411, 2426, 1257, 1267, 1267, 1267, 1007, 1007,
1980      1007, 2427, 2428, 1002, 1291, 1291, 1291, 1269,  589,  589,
1981      1010, 1010, 1010, 1269, 1870, 1008,  595, 1635,  596, 2429,
1982      1871,  597, 1293, 2430, 1872,  598, 2431, 1011, 1873,  599,
1983       589,  590,  253,  590,  589,  589,  589,  589,  589,  589,
1984       589,  591,  589,  589,  589, 2432,  589,  593,  589,  594,
1985       589, 1282, 1282, 1282, 2412, 2433, 1270, 1022, 1022, 1022,
1986      1291, 1291, 1291, 1024, 1024, 1024, 2434, 2435, 1283, 1301,
1987      1301, 1301, 2437, 2438, 1023,  589,  589, 2441, 1293, 2442,
1988
1989      1025, 2443, 2444,  595, 2445,  596, 1302, 2448,  597, 1659,
1990      1659, 1659,  598, 1669, 1669, 1669,  599,  605,  606,  253,
1991       606,  605,  605,  605,  605,  605,  605,  605,  607,  605,
1992       605,  605, 2449,  605,  609,  605,  610,  605, 1294, 1298,
1993      1298, 1298, 2450, 1299, 2451, 2439, 1300, 2452, 1844, 1844,
1994      1844, 3217, 3217, 3217, 2440, 2454, 3217, 3217, 3217, 3217,
1995      3217, 3217,  605,  605, 3217, 3217, 3217, 2458, 3217, 2459,
1996      1315, 1315, 1315, 3217, 1316, 2446, 3217, 1317, 1327, 1327,
1997      1327, 3217, 1328, 2460, 2447, 1329,  611,  605,  606,  253,
1998       606,  605,  605,  605,  605,  605,  605,  605,  607,  605,
1999
2000       605,  605, 1303,  605,  609,  605,  610,  605, 1304, 1307,
2001      1307, 1307, 1845, 2461, 1305, 2465, 1306, 1703, 1703, 1703,
2002      1036, 1036, 1036, 1318, 1318, 1318, 2466, 1309, 1322, 1322,
2003      1322, 2470,  605,  605, 1307, 1307, 1307, 1037, 2473, 2474,
2004      1319, 1335, 1335, 1335, 2477, 1336, 1324, 2489, 1337, 1847,
2005      1847, 1847, 1309, 1705, 1705, 1705,  611,  615,  616,  253,
2006       616,  615,  615,  615,  615,  615,  615,  615,  617,  615,
2007       615,  615, 2490,  615,  619,  615,  620,  615, 1322, 1322,
2008      1322, 1310, 1044, 1044, 1044, 2493, 1330, 1330, 1330, 1330,
2009      1330, 1330, 1049, 1049, 1049, 1848, 1324, 2494, 1109, 1045,
2010
2011      1635, 2514,  615,  615, 1332, 1635, 2515, 1332, 2516, 1050,
2012      1855, 1855, 1855,  621,  615,  616,  253,  616,  615,  615,
2013       615,  615,  615,  615,  615,  617,  615,  615,  615, 1325,
2014       615,  619,  615,  620,  615, 1339, 1339, 1339, 2511, 1339,
2015      1339, 1339, 2512, 2513, 1055, 1055, 1055, 1344, 1344, 1344,
2016      1333, 1345, 2517, 1341, 1346, 2518, 1856, 1341, 2527,  615,
2017       615, 1056, 1376, 1376, 1376, 2528, 1377, 2529, 2530, 1378,
2018       621,  626,  627,  253,  627,  626,  626,  626,  626,  626,
2019       626,  626,  628,  626,  626,  626, 1342,  626,  630,  626,
2020       631,  626, 1350, 1350, 1350, 1354, 1354, 1354, 1356, 1356,
2021
2022      1356, 1350, 1350, 1350, 3217, 3217, 3217, 1359, 1359, 1359,
2023      1352, 2531, 1355, 2532, 2533, 1357,  626,  626, 2534, 1352,
2024      2535, 3217, 1364, 1364, 1364, 1361, 2536,  632, 1416, 1416,
2025      1416, 2537, 1417, 2539, 2540, 1418, 1706, 1706, 1706, 1365,
2026       633,  626,  627,  253,  627,  626,  626,  626,  626,  626,
2027       626,  626,  628,  626,  626,  626, 1353,  626,  630,  626,
2028       631,  626, 2541, 1358, 1359, 1359, 1359, 3217, 3217, 3217,
2029      2521, 1368, 1368, 1368, 3217, 3217, 3217, 1371, 1371, 1371,
2030      2522, 2542, 1361, 2523, 3217, 2543,  626,  626, 1369, 2544,
2031      2545, 3217, 1075, 1075, 1075, 1373, 2546,  632, 1371, 1371,
2032
2033      1371, 1379, 1379, 1379, 1379, 1379, 1379, 2547, 2548, 1076,
2034       633,  641, 1383, 1383, 1383, 2549, 1373, 1366,  656, 1381,
2035      2550, 2524, 1381, 2551, 2552, 1362, 2553,  640,  657, 1384,
2036      2554, 2525, 1367, 1370, 2526, 1374, 1385, 1385, 1385, 2555,
2037      1387, 1387, 1387, 1387, 1387, 1387, 2557, 1391, 1391, 1391,
2038      1397, 1397, 1397, 1386, 2565,  658,  659,  660, 1389, 1382,
2039      2566, 1389,  661,  662, 1392, 2567,  663,  664, 1399, 2571,
2040       665, 2606,  666,  667,  668,  641, 2608, 2609, 3217, 3217,
2041      3217, 2610,  712, 1395, 1395, 1395, 1397, 1397, 1397, 2614,
2042      1635,  640,  713, 1109, 2615, 3217, 2618, 1406, 1406, 1406,
2043
2044      1396, 1099, 1099, 1099, 1399, 1406, 1406, 1406, 1103, 1103,
2045      1103, 1412, 1412, 1412, 1390, 1408, 2619, 2622, 1100,  658,
2046       714,  669, 2603, 1408, 2623, 1104,  715,  662, 1393, 1414,
2047       716,  664, 2604, 2624,  717, 2625,  718,  719,  668, 2626,
2048      1412, 1412, 1412, 1394, 1419, 1419, 1419, 1419, 1419, 1419,
2049      1635, 2616, 1423, 1423, 1423, 2627, 1424, 1400, 1414, 1425,
2050      2628, 2629, 1421, 2630, 2617, 1421, 1427, 1427, 1427, 1409,
2051      1427, 1427, 1427, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
2052      1122, 1122, 2620, 2632, 1429, 1468, 1468, 1468, 1429, 2633,
2053      2634, 1124, 2605, 2635, 1124, 2621, 2636, 1124, 1156, 1156,
2054
2055      1156, 2637, 1469, 2638, 1415, 1156, 1156, 1156, 1422, 1156,
2056      1156, 1156, 1471, 1471, 1471, 2639, 1158, 1161, 1161, 1161,
2057      2640, 1162, 2641, 1158, 1163, 2642, 1439, 1158, 2643, 1472,
2058      3217, 3217, 3217, 2644, 1430, 1166, 1166, 1166, 1166, 1166,
2059      1166, 1166, 1166, 1166, 1171, 1171, 1171, 3217, 1172, 2645,
2060      2646, 1173, 2648, 1168, 2656, 2657, 1168, 2658, 1470, 1168,
2061      1174, 1174, 1174, 1477, 1477, 1477, 2589, 1478, 2659, 2676,
2062      1479, 2677, 1480, 1480, 1480, 2678, 2590, 1175, 1177, 1177,
2063      1177, 2679, 2591, 1482, 1482, 1482, 2680, 1483, 1475, 1481,
2064      1484, 1473, 1486, 1486, 1486, 1178, 1182, 1182, 1182, 1182,
2065
2066      1182, 1182, 1182, 1182, 1182, 1491, 1491, 1491, 2681, 1487,
2067      1189, 1189, 1189, 2684, 1184, 2692, 2694, 1184, 2695, 1109,
2068      1184, 2696, 1492, 1189, 1189, 1189, 2685, 2686, 1191, 1189,
2069      1189, 1189, 1193, 1193, 1193, 2697, 1194, 2698, 2699, 1195,
2070      2687, 1191, 1197, 1197, 1197, 2700, 1635, 1191, 1197, 1197,
2071      1197, 1496, 1496, 1496, 1214, 1214, 1214, 2701, 1215, 2702,
2072      1199, 1216, 1489, 1512, 1512, 1512, 1199, 2688, 2703, 1497,
2073      1219, 1219, 1219, 1219, 1219, 1219, 1494, 1219, 1219, 1219,
2074      1513, 2689, 1224, 1224, 1224, 2706, 1225, 2707, 1221, 1226,
2075      2708, 1221, 1228, 1228, 1228, 1221, 1228, 1228, 1228, 1228,
2076
2077      1228, 1228, 1232, 1232, 1232, 2709, 1233, 2710, 2711, 1234,
2078      1230, 1518, 1518, 1518, 1230, 2712, 2713, 1230, 1236, 1236,
2079      1236, 1236, 1236, 1236, 1236, 1236, 1236, 2715, 1519, 1521,
2080      1521, 1521, 2716, 3217, 3217, 3217, 1238, 2717, 1514, 1238,
2081      2718, 2719, 1238, 1912, 1912, 1912, 1522, 1242, 1242, 1242,
2082      3217, 1242, 1242, 1242, 1242, 1242, 1242, 1527, 1527, 1527,
2083      1517, 1523, 1254, 1254, 1254, 1244, 1249, 1249, 1249, 1244,
2084      1250, 2720, 1244, 1251, 1528, 1254, 1254, 1254, 2721, 2722,
2085      1256, 1254, 1254, 1254, 1534, 1534, 1534, 2723, 1261, 1261,
2086      1261, 1520, 1262, 1256, 2724, 1263, 1264, 1264, 1264, 1256,
2087
2088      1265, 1535, 2725, 1266, 1267, 1267, 1267, 1267, 1267, 1267,
2089      1267, 1267, 1267, 2592, 1275, 1275, 1275, 2726, 1276, 2727,
2090      1524, 1277, 1269, 2593, 2728, 1269, 2729, 2735, 1269, 2594,
2091      1541, 1541, 1541, 1279, 1279, 1279, 2736, 1280, 2737, 2738,
2092      1281, 1282, 1282, 1282, 2739, 2753, 1531, 1542, 1543, 1543,
2093      1543, 2754, 1544, 2755, 2756, 1545, 2757, 2758, 1283, 1291,
2094      1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 2745, 1295,
2095      1295, 1295, 2747, 1296, 2762, 1536, 1297, 1293, 2746, 2749,
2096      1293, 2763, 2748, 1293, 1298, 1298, 1298, 2764, 1299, 2750,
2097      2751, 1300, 1301, 1301, 1301, 1554, 1554, 1554, 2765, 1555,
2098
2099      2752, 1109, 1556, 1307, 1307, 1307, 1307, 1307, 1307, 1302,
2100      1307, 1307, 1307, 1315, 1315, 1315, 2775, 1316, 2776, 2777,
2101      1317, 1309, 2778, 2779, 1309, 1318, 1318, 1318, 1309, 1566,
2102      1566, 1566, 1553, 1567, 2780, 2766, 1568, 1322, 1322, 1322,
2103      2781, 2782, 1319, 1322, 1322, 1322, 1322, 1322, 1322, 1327,
2104      1327, 1327, 2786, 1328, 2787, 1324, 1329, 2788, 1561, 2789,
2105      2790, 1324, 2791, 2793, 1324, 1330, 1330, 1330, 1330, 1330,
2106      1330, 1330, 1330, 1330, 1335, 1335, 1335, 2794, 1336, 2795,
2107      2796, 1337, 2797, 1332, 2798, 2799, 1332, 2800, 2801, 1332,
2108      1339, 1339, 1339, 1339, 1339, 1339, 2802, 1571, 1339, 1339,
2109
2110      1339, 2806, 1344, 1344, 1344, 2807, 1345, 2808, 1341, 1346,
2111      2811, 1341, 1350, 1350, 1350, 2816, 1341, 1350, 1350, 1350,
2112      2817, 1350, 1350, 1350, 1354, 1354, 1354, 1582, 1582, 1582,
2113      1352, 1583, 2818, 2819, 1584, 1352, 2820, 2821, 1573, 1352,
2114      2822, 1355, 1356, 1356, 1356, 2823, 2824, 1576, 1585, 1585,
2115      1585, 2825, 1586, 2826, 2827, 1587, 1359, 1359, 1359, 1357,
2116      1359, 1359, 1359, 2829, 1359, 1359, 1359, 1364, 1364, 1364,
2117      2830, 1368, 1368, 1368, 1361, 2017, 2017, 2017, 1361, 2831,
2118      2832, 1581, 1361, 2839, 1365, 1591, 1591, 1591, 1369, 1592,
2119      2840, 2841, 1593, 1596, 1596, 1596, 2842, 1597, 2843, 2844,
2120
2121      1598, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371,
2122      1376, 1376, 1376, 2845, 1377, 2846, 2847, 1378, 2848, 1373,
2123      2849, 1109, 1373, 2850, 2851, 1373, 1379, 1379, 1379, 2852,
2124      2855, 1589, 1379, 1379, 1379, 1379, 1379, 1379, 1383, 1383,
2125      1383, 1603, 1603, 1603, 1381, 1604, 2856, 2857, 1605, 2858,
2126      1381, 2859, 2860, 1381, 2861, 1384, 1385, 1385, 1385, 1606,
2127      1606, 1606, 2862, 1607, 2833, 2863, 1608, 1387, 1387, 1387,
2128      2864, 1600, 2865, 1386, 1387, 1387, 1387, 2869, 1387, 1387,
2129      1387, 1391, 1391, 1391, 2876, 1389, 1610, 1610, 1610, 2877,
2130      1611, 2878, 1389, 1612, 2879, 1602, 1389, 2880, 1392, 1395,
2131
2132      1395, 1395, 1615, 1615, 1615, 2881, 1616, 2882, 2883, 1617,
2133      1397, 1397, 1397, 1397, 1397, 1397, 1396, 1397, 1397, 1397,
2134      1620, 1620, 1620, 1406, 1406, 1406, 2884, 2885, 1399, 2886,
2135      2887, 1399, 1406, 1406, 1406, 1399, 2890, 1621, 2891, 2892,
2136      1609, 1408, 1406, 1406, 1406, 1412, 1412, 1412, 2893, 2901,
2137      1408, 1412, 1412, 1412, 1412, 1412, 1412, 1416, 1416, 1416,
2138      1408, 1417, 2902, 1414, 1418, 1419, 1419, 1419, 1109, 1414,
2139      2903, 2896, 1414, 1419, 1419, 1419, 1419, 1419, 1419, 1618,
2140      1423, 1423, 1423, 1421, 1424, 2897, 2904, 1425, 1427, 1427,
2141      1427, 1421, 2905, 2896, 1421, 1427, 1427, 1427, 1427, 1427,
2142
2143      1427, 2906, 2907, 1625, 2899, 2908, 1429, 1628, 1634, 1634,
2144      1634, 2909, 2910, 1429, 2894, 2911, 1429, 1122, 1122, 1122,
2145      1468, 1468, 1468, 1156, 1156, 1156, 1635, 1636, 2912, 1471,
2146      1471, 1471, 1496, 1496, 1496, 1124, 1629, 1469, 1672, 1672,
2147      1672, 1158, 1673, 2913, 2914, 1674, 1472, 1676, 1676, 1676,
2148      1497, 1677, 2915, 2916, 1678, 1166, 1166, 1166, 2917, 1631,
2149      1477, 1477, 1477, 2918, 1478, 2919, 2920, 1479, 1480, 1480,
2150      1480, 2924, 2922, 1168, 2929, 1683, 1683, 1683, 2921, 1684,
2151      2925, 1675, 1685, 1641, 2923, 1481, 1482, 1482, 1482, 2927,
2152      1483, 2930, 2926, 1484, 1486, 1486, 1486, 2931, 1687, 1687,
2153
2154      1687, 2928, 1688, 2932, 1681, 1689, 1182, 1182, 1182, 2933,
2155      2934, 1487, 1491, 1491, 1491, 1693, 1693, 1693, 2937, 1694,
2156      1635, 1636, 1695, 2937, 1184, 1696, 1696, 1696, 1109, 1492,
2157      1189, 1189, 1189, 1714, 1714, 1714, 1512, 1512, 1512, 1716,
2158      1716, 1716, 1697, 1717, 2896, 2940, 1718, 2941, 1191, 2942,
2159      1715, 2943, 2946, 1513, 2944, 2899, 1691, 1219, 1219, 1219,
2160      1228, 1228, 1228, 1518, 1518, 1518, 1723, 1723, 1723, 2935,
2161      1724, 2949, 2945, 1725, 2956, 1221, 2896, 2947, 1230, 1698,
2162      1519, 1236, 1236, 1236, 1521, 1521, 1521, 1727, 1727, 1727,
2163      2897, 1728, 2948, 2957, 1729, 1242, 1242, 1242, 2958, 1238,
2164
2165      2961, 1522, 1527, 1527, 1527, 1734, 1734, 1734, 2966, 1735,
2166      2969, 2970, 1736, 1244, 1737, 1737, 1737, 2971, 2937, 1528,
2167      2959, 1719, 2973, 2937, 1722, 1739, 1739, 1739, 1254, 1254,
2168      1254, 1738, 1534, 1534, 1534, 2974, 1745, 1745, 1745, 2960,
2169      1746, 1726, 1740, 1747, 2964, 2975, 1256, 2967, 2976, 1535,
2170      1267, 1267, 1267, 1750, 1750, 1750, 1731, 1541, 1541, 1541,
2171      1754, 1754, 1754, 2965, 1755, 2977, 2968, 1756, 1269, 2978,
2172      1751, 1741, 2979, 2980, 1542, 1543, 1543, 1543, 2981, 1544,
2173      2991, 2992, 1545, 1757, 1757, 1757, 1291, 1291, 1291, 1554,
2174      1554, 1554, 2993, 1555, 1742, 2994, 1556, 1766, 1766, 1766,
2175
2176      1758, 3217, 3217, 3217, 1293, 3217, 3217, 3217, 3217, 3217,
2177      3217, 1307, 1307, 1307, 1767, 2995, 1748, 2996, 3217, 1773,
2178      1773, 1773, 3217, 3000, 3001, 3217, 1566, 1566, 1566, 1309,
2179      1567, 3002, 3003, 1568, 3004, 3005, 1774, 1777, 1777, 1777,
2180      1322, 1322, 1322, 1330, 1330, 1330, 1339, 1339, 1339, 3006,
2181      3007, 1765, 1769, 3009, 1778, 1789, 1789, 1789, 1324, 3010,
2182      3011, 1332, 3012, 3013, 1341, 3018, 1771, 1350, 1350, 1350,
2183      3019, 1768, 1790, 1582, 1582, 1582, 3014, 1583, 1770, 3020,
2184      1584, 3021, 1585, 1585, 1585, 1352, 1586, 3016, 3015, 1587,
2185      1359, 1359, 1359, 1591, 1591, 1591, 3022, 1592, 3023, 3017,
2186
2187      1593, 1791, 3024, 1785, 1780, 1371, 1371, 1371, 1361, 1782,
2188      1596, 1596, 1596, 3025, 1597, 3026, 3027, 1598, 1379, 1379,
2189      1379, 3028, 3029, 1373, 1792, 1603, 1603, 1603, 3030, 1604,
2190      3031, 3033, 1605, 1606, 1606, 1606, 1381, 1607, 3034, 1109,
2191      1608, 1387, 1387, 1387, 1610, 1610, 1610, 3035, 1611, 3036,
2192      3037, 1612, 3038, 1615, 1615, 1615, 1794, 1616, 3039, 1389,
2193      1617, 1397, 1397, 1397, 3032, 3040, 1799, 1620, 1620, 1620,
2194      1807, 1807, 1807, 3041, 1808, 1801, 3042, 1809, 3043, 1399,
2195      1406, 1406, 1406, 3044, 1621, 1815, 1815, 1815, 1802, 1412,
2196      1412, 1412, 1419, 1419, 1419, 1819, 1819, 1819, 1408, 1427,
2197
2198      1427, 1427, 1816, 1634, 1634, 1634, 3045, 1414, 1805, 3046,
2199      1421, 3047, 1820, 1122, 1122, 1122, 3048, 1429, 1672, 1672,
2200      1672, 1635, 1673, 3049, 3050, 1674, 1696, 1696, 1696, 1813,
2201      3051, 1124, 1156, 1156, 1156, 1676, 1676, 1676, 3052, 1677,
2202      1109, 3054, 1678, 1697, 1818, 1166, 1166, 1166, 3055, 3056,
2203      1158, 1683, 1683, 1683, 1823, 1684, 1817, 3057, 1685, 3053,
2204      3058, 1821, 3059, 1168, 3060, 1828, 1687, 1687, 1687, 3061,
2205      1688, 1824, 3062, 1689, 1182, 1182, 1182, 1693, 1693, 1693,
2206      3063, 1694, 3064, 3065, 1695, 3066, 1874, 1874, 1874, 3067,
2207      1875, 3068, 1184, 1876, 3069, 3070, 1860, 3071, 3073, 1857,
2208
2209      1189, 1189, 1189, 1883, 1883, 1883, 1883, 1883, 1883, 1844,
2210      1844, 1844, 1714, 1714, 1714, 1889, 1889, 1889, 1191, 1890,
2211      3074, 3075, 1891, 1716, 1716, 1716, 1109, 1717, 3076, 1715,
2212      1718, 1219, 1219, 1219, 3077, 1864, 1894, 1894, 1894, 1228,
2213      1228, 1228, 3078, 1723, 1723, 1723, 3072, 1724, 3079, 1221,
2214      1725, 1877, 3080, 1895, 1236, 1236, 1236, 1230, 1727, 1727,
2215      1727, 3081, 1728, 3082, 3083, 1729, 3084, 1884, 3085, 3086,
2216      1845, 3087, 1238, 1884, 1898, 1898, 1898, 3088, 1892, 1242,
2217      1242, 1242, 3089, 1734, 1734, 1734, 1896, 1735, 3090, 1109,
2218      1736, 1899, 1737, 1737, 1737, 3091, 3092, 1244, 1903, 1903,
2219
2220      1903, 3093, 1904, 3094, 3095, 1905, 1739, 1739, 1739, 1738,
2221      1906, 1906, 1906, 3096, 1907, 3097, 3098, 1908, 3099, 3100,
2222      1897, 3101, 3102, 1740, 1910, 1910, 1910, 1745, 1745, 1745,
2223      3103, 1746, 3105, 1109, 1747, 1267, 1267, 1267, 1750, 1750,
2224      1750, 3106, 1911, 1900, 1916, 1916, 1916, 3104, 1917, 3107,
2225      3108, 1918, 3109, 1269, 3110, 1751, 1919, 1919, 1919, 1754,
2226      1754, 1754, 3111, 1755, 3112, 3114, 1756, 1757, 1757, 1757,
2227      1922, 1922, 1922, 1920, 1923, 3115, 3116, 1924, 1925, 1925,
2228      1925, 1914, 3117, 3118, 1758, 1931, 1931, 1931, 1291, 1291,
2229      1291, 1766, 1766, 1766, 3119, 1926, 1934, 1934, 1934, 3120,
2230
2231      1935, 3121, 1932, 1936, 3124, 3125, 1293, 3126, 1767, 1937,
2232      1937, 1937, 3217, 3217, 3217, 1940, 1940, 1940, 1307, 1307,
2233      1307, 1773, 1773, 1773, 3127, 3128, 1938, 3129, 1109, 3217,
2234      1109, 1109, 1941, 1944, 1944, 1944, 1309, 1945, 1774, 1109,
2235      1946, 1947, 1947, 1947, 1777, 1777, 1777, 3138, 1950, 1950,
2236      1950, 1109, 1951, 3139, 1933, 1952, 1109, 1109, 1948, 3182,
2237      3140, 1778, 1954, 1954, 1954, 1330, 1330, 1330, 1109, 3148,
2238      1939, 1339, 1339, 1339, 1789, 1789, 1789, 1109, 1942, 3132,
2239      1955, 1701, 1700, 1332, 1109, 3152, 1964, 1964, 1964, 1341,
2240      1965, 1790, 3130, 1966, 1968, 1968, 1968, 1359, 1359, 1359,
2241
2242      1973, 1973, 1973, 1975, 1975, 1975, 3217, 3217, 3217, 1371,
2243      1371, 1371, 1969, 3131, 3141, 1361, 1957, 1974, 1109, 1960,
2244      1976, 1109, 1109, 3217, 1387, 1387, 1387, 1373, 1379, 1379,
2245      1379, 3144, 1982, 1982, 1982, 1984, 1984, 1984, 1397, 1397,
2246      1397, 1109, 1389, 1807, 1807, 1807, 1381, 1808, 1971, 1983,
2247      1809, 1109, 1985, 1406, 1406, 1406, 1399, 1109, 1815, 1815,
2248      1815, 1993, 1993, 1993, 3142, 1994, 3133, 1699, 1995, 3134,
2249      1977, 1408, 1109, 3156, 1980, 1816, 1978, 1412, 1412, 1412,
2250      1419, 1419, 1419, 1819, 1819, 1819, 1998, 1998, 1998, 1981,
2251      1999, 1692, 1690, 2000, 3143, 1414, 1109, 1109, 1421, 3135,
2252
2253      1820, 3136, 1109, 1986, 1991, 2001, 2001, 2001, 2007, 2007,
2254      2007, 1122, 1122, 1122, 1839, 1839, 1839, 2024, 2024, 2024,
2255      1844, 1844, 1844, 2002, 1109, 2008, 2025, 2025, 2025, 1124,
2256      1847, 1847, 1847, 3146, 3147, 1997, 1996, 2028, 2028, 2028,
2257      2029, 2029, 2029, 1855, 1855, 1855, 1156, 1156, 1156, 2038,
2258      2038, 2038, 2041, 2041, 2041, 1182, 1182, 1182, 2045, 2045,
2259      2045, 1874, 1874, 1874, 1158, 1875, 1109, 2039, 1876, 2042,
2260      3158, 3145, 2009, 1184, 1109, 2046, 1189, 1189, 1189, 1109,
2261      2058, 2058, 2058, 1883, 1883, 1883, 2065, 2065, 2065, 2067,
2262      2067, 2067, 1686, 1109, 1191, 3190, 2035, 2059, 1889, 1889,
2263
2264      1889, 3150, 1890, 1109, 1109, 1891, 2068, 1219, 1219, 1219,
2265      2070, 2070, 2070, 1682, 2044, 1894, 1894, 1894, 3137, 2072,
2266      2072, 2072, 2057, 2073, 1109, 1221, 2074, 2071, 1228, 1228,
2267      1228, 1109, 1895, 2076, 2076, 2076, 1898, 1898, 1898, 3153,
2268      2078, 2078, 2078, 3159, 2079, 3149, 1230, 2080, 1242, 1242,
2269      1242, 2077, 1109, 1899, 1903, 1903, 1903, 1109, 1904, 3151,
2270      2069, 1905, 1680, 1906, 1906, 1906, 1244, 1907, 3154, 1109,
2271      1908, 1910, 1910, 1910, 1912, 1912, 1912, 1109, 1267, 1267,
2272      1267, 2075, 1679, 1916, 1916, 1916, 1109, 1917, 1109, 1911,
2273      1918, 1919, 1919, 1919, 3155, 2081, 1269, 2090, 2090, 2090,
2274
2275      1109, 2091, 1109, 3162, 2092, 1922, 1922, 1922, 1920, 1923,
2276      1109, 3163, 1924, 1925, 1925, 1925, 2094, 2094, 2094, 1109,
2277      2095, 3160, 3186, 2096, 2097, 2097, 2097, 1931, 1931, 1931,
2278      1926, 2102, 2102, 2102, 3157, 2103, 2088, 1109, 2104, 1109,
2279      1671, 2098, 3172, 3164, 1932, 1291, 1291, 1291, 1934, 1934,
2280      1934, 1109, 1935, 3165, 3161, 1936, 1937, 1937, 1937, 1109,
2281      2106, 2106, 2106, 1293, 2107, 1109, 1670, 2108, 2109, 2109,
2282      2109, 3173, 3170, 1938, 1940, 1940, 1940, 2111, 2111, 2111,
2283      1109, 2112, 1109, 3166, 2113, 2110, 1307, 1307, 1307, 1668,
2284      1667, 1941, 3171, 1944, 1944, 1944, 2105, 1945, 1109, 1109,
2285
2286      1946, 1947, 1947, 1947, 1309, 2116, 2116, 2116, 1109, 2117,
2287      1666, 3167, 2118, 1950, 1950, 1950, 1109, 1951, 1948, 3174,
2288      1952, 1954, 1954, 1954, 1330, 1330, 1330, 2124, 2124, 2124,
2289      1339, 1339, 1339, 2128, 2128, 2128, 3175, 2114, 1109, 1955,
2290      3176, 1109, 1332, 3168, 2125, 1964, 1964, 1964, 1341, 1965,
2291      2129, 3169, 1966, 1968, 1968, 1968, 2136, 2136, 2136, 1973,
2292      1973, 1973, 2139, 2139, 2139, 3191, 2140, 1109, 3184, 2141,
2293      1109, 1969, 1109, 1109, 2137, 3180, 1974, 1109, 3181, 2130,
2294      1975, 1975, 1975, 2142, 2142, 2142, 1109, 2143, 2122, 1665,
2295      2144, 2126, 1371, 1371, 1371, 1664, 1109, 1976, 1379, 1379,
2296
2297      1379, 1387, 1387, 1387, 1982, 1982, 1982, 2150, 2150, 2150,
2298      1373, 2151, 3177, 3178, 2152, 3183, 1381, 1109, 3179, 1389,
2299      1663, 1983, 1984, 1984, 1984, 2153, 2153, 2153, 1109, 2154,
2300      3187, 3185, 2155, 1397, 1397, 1397, 1406, 1406, 1406, 1985,
2301      1109, 1993, 1993, 1993, 1662, 1994, 1109, 2148, 1995, 1109,
2302      1109, 1399, 3198, 1109, 1408, 1412, 1412, 1412, 2146, 1419,
2303      1419, 1419, 1109, 1998, 1998, 1998, 2149, 1999, 1109, 3196,
2304      2000, 1661, 1660, 1414, 2001, 2001, 2001, 1421, 2007, 2007,
2305      2007, 2169, 2169, 2169, 1658, 2170, 3194, 1657, 2171, 1122,
2306      1122, 1122, 2002, 3192, 1655, 2008, 3188, 3199, 2156, 3189,
2307
2308      3204, 2161, 2173, 2173, 2173, 1109, 2163, 1124, 2178, 2178,
2309      2178, 1654, 2164, 2179, 2179, 2179, 2017, 2017, 2017, 2181,
2310      2181, 2181, 2185, 2185, 2185, 2024, 2024, 2024, 2025, 2025,
2311      2025, 2186, 2186, 2186, 2028, 2028, 2028, 2029, 2029, 2029,
2312      2189, 2189, 2189, 2190, 2190, 2190, 2191, 2191, 2191, 2192,
2313      2192, 2192, 3193, 2172, 1156, 1156, 1156, 2038, 2038, 2038,
2314      3206, 2041, 2041, 2041, 2198, 2198, 2198, 1109, 2199, 1109,
2315      1651, 2200, 1158, 1648, 3214, 2039, 1647, 2187, 2042, 2202,
2316      2202, 2202, 2045, 2045, 2045, 2204, 2204, 2204, 1109, 2205,
2317      1646, 1109, 2206, 1189, 1189, 1189, 1109, 2203, 1109, 2046,
2318
2319      2058, 2058, 2058, 1109, 3195, 2194, 2218, 2218, 2218, 1109,
2320      2219, 1191, 1645, 2220, 2221, 2221, 2221, 2059, 2065, 2065,
2321      2065, 2226, 2226, 2226, 2067, 2067, 2067, 2228, 2228, 2228,
2322      3205, 2229, 3197, 3202, 2230, 1219, 1219, 1219, 2070, 2070,
2323      2070, 2068, 2217, 2232, 2232, 2232, 3203, 2233, 1109, 3200,
2324      2234, 1109, 3207, 1221, 1109, 2071, 2072, 2072, 2072, 1644,
2325      2073, 1109, 1643, 2074, 1228, 1228, 1228, 2227, 1109, 2076,
2326      2076, 2076, 2078, 2078, 2078, 1642, 2079, 1109, 1640, 2080,
2327      1639, 1638, 1230, 1242, 1242, 1242, 2231, 2077, 1267, 1267,
2328      1267, 2090, 2090, 2090, 3201, 2091, 1637, 1630, 2092, 3210,
2329
2330      3208, 1244, 3211, 2094, 2094, 2094, 1269, 2095, 1109, 3209,
2331      2096, 2097, 2097, 2097, 1627, 2235, 2248, 2248, 2248, 3214,
2332      2249, 1109, 1626, 2250, 1624, 2102, 2102, 2102, 2098, 2103,
2333      1109, 1623, 2104, 1291, 1291, 1291, 2236, 2106, 2106, 2106,
2334      3212, 2107, 1622, 2245, 2108, 2109, 2109, 2109, 2255, 2255,
2335      2255, 1293, 2256, 3213, 1619, 2257, 2111, 2111, 2111, 1614,
2336      2112, 1613, 2110, 2113, 1307, 1307, 1307, 2116, 2116, 2116,
2337      1601, 2117, 1599, 1595, 2118, 2263, 2263, 2263, 2124, 2124,
2338      2124, 1594, 1309, 2266, 2266, 2266, 1590, 2267, 1588, 1580,
2339      2268, 1579, 1578, 2264, 1577, 2125, 1575, 2254, 1339, 1339,
2340
2341      1339, 2128, 2128, 2128, 2271, 2271, 2271, 1574, 2272, 1572,
2342      1570, 2273, 1569, 2136, 2136, 2136, 1341, 1565, 2129, 2139,
2343      2139, 2139, 1564, 2140, 1563, 1562, 2141, 1371, 1371, 1371,
2344      2258, 2137, 2142, 2142, 2142, 1560, 2143, 1559, 1558, 2144,
2345      1557, 1379, 1379, 1379, 1552, 1373, 1387, 1387, 1387, 2150,
2346      2150, 2150, 1551, 2151, 1550, 1549, 2152, 1548, 2269, 1381,
2347      1547, 2153, 2153, 2153, 1389, 2154, 1546, 1540, 2155, 1397,
2348      1397, 1397, 1539, 2289, 2289, 2289, 1538, 1537, 2284, 3217,
2349      3217, 3217, 2287, 3217, 3217, 3217, 1533, 1399, 1532, 2288,
2350      2290, 3217, 3217, 3217, 1530, 1529, 3217, 1406, 1406, 1406,
2351
2352      3217, 1412, 1412, 1412, 2297, 2297, 2297, 2286, 3217, 2299,
2353      2299, 2299, 2302, 2302, 2302, 1408, 2169, 2169, 2169, 1414,
2354      2170, 1526, 2298, 2171, 1122, 1122, 1122, 1109, 1525, 1516,
2355      2291, 2173, 2173, 2173, 2304, 2304, 2304, 2305, 2305, 2305,
2356      1515, 1511, 1124, 2178, 2178, 2178, 1510, 2292, 1509, 1508,
2357      2293, 2179, 2179, 2179, 2181, 2181, 2181, 2309, 2309, 2309,
2358      1507, 2296, 2294, 2310, 2310, 2310, 2311, 2311, 2311, 2185,
2359      2185, 2185, 2186, 2186, 2186, 2189, 2189, 2189, 2190, 2190,
2360      2190, 1506, 1505, 2303, 2191, 2191, 2191, 2192, 2192, 2192,
2361      2315, 2315, 2315, 2318, 2318, 2318, 2198, 2198, 2198, 1504,
2362
2363      2199, 1502, 1501, 2200, 3217, 3217, 3217, 1500, 2316, 1499,
2364      2319, 2202, 2202, 2202, 1498, 2204, 2204, 2204, 1495, 2205,
2365      1493, 3217, 2206, 1189, 1189, 1189, 2218, 2218, 2218, 2203,
2366      2219, 2332, 2333, 2220, 2334, 1490, 2338, 2339, 1488, 2340,
2367      1485, 1191, 2335, 1476, 1474, 2336, 1467, 2341, 1465, 2337,
2368      2342, 2221, 2221, 2221, 2343, 2344, 2344, 2344, 2226, 2226,
2369      2226, 2228, 2228, 2228, 1464, 2229, 1463, 1462, 2230, 1461,
2370      2320, 1219, 1219, 1219, 2232, 2232, 2232, 1460, 2233, 1459,
2371      1458, 2234, 1457, 1456, 2331, 2350, 2350, 2350, 1453, 1221,
2372      1242, 1242, 1242, 2360, 2360, 2360, 1267, 1267, 1267, 1452,
2373
2374      2248, 2248, 2248, 2351, 2249, 1451, 1450, 2250, 1244, 2364,
2375      2364, 2364, 1449, 1448, 1269, 1447, 1446, 2349, 2368, 2368,
2376      2368, 2255, 2255, 2255, 1445, 2256, 2365, 1444, 2257, 2370,
2377      2370, 2370, 2263, 2263, 2263, 1443, 2369, 2376, 2376, 2376,
2378      1442, 2352, 2266, 2266, 2266, 1441, 2267, 2371, 1440, 2268,
2379      2264, 1339, 1339, 1339, 2377, 1438, 2361, 2379, 2379, 2379,
2380      2271, 2271, 2271, 1437, 2272, 1436, 1435, 2273, 1434, 1341,
2381      3217, 3217, 3217, 1433, 2380, 3217, 3217, 3217, 3217, 3217,
2382      3217, 2390, 2390, 2390, 2394, 2394, 2394, 3217, 2392, 2392,
2383      2392, 1432, 3217, 1109, 1426, 3217, 1379, 1379, 1379, 1411,
2384
2385      1410, 2395, 2378, 2381, 1405, 1404, 2393, 1403, 1387, 1387,
2386      1387, 2289, 2289, 2289, 1381, 1397, 1397, 1397, 1402, 1401,
2387      2399, 2399, 2399, 1375, 2400, 2382, 1389, 2401, 2290, 2388,
2388      2402, 2402, 2402, 1399, 1363, 1349, 2383, 3217, 3217, 3217,
2389      3217, 3217, 3217, 2406, 2406, 2406, 1348, 2403, 2408, 2408,
2390      2408, 1347, 2398, 1343, 3217, 1338, 2396, 3217, 1412, 1412,
2391      1412, 2407, 2297, 2297, 2297, 2299, 2299, 2299, 1334, 2397,
2392      2302, 2302, 2302, 2304, 2304, 2304, 1414, 2413, 2413, 2413,
2393      2298, 1326, 1321, 1109, 2305, 2305, 2305, 1320, 2404, 1314,
2394      1311, 2405, 2417, 2417, 2417, 2414, 2309, 2309, 2309, 2310,
2395
2396      2310, 2310, 2311, 2311, 2311, 2315, 2315, 2315, 2318, 2318,
2397      2318, 2422, 2422, 2422, 1290, 2423, 1289, 1288, 2424, 1189,
2398      1189, 1189, 1287, 2316, 2409, 2319, 1286, 2410, 2344, 2344,
2399      2344, 2453, 2453, 2453, 1219, 1219, 1219, 1191, 2350, 2350,
2400      2350, 2456, 2456, 2456, 2462, 2462, 2462, 2360, 2360, 2360,
2401      1285, 1284, 1221, 1267, 1267, 1267, 2351, 1278, 1271, 2457,
2402      1260, 2463, 1259, 2364, 2364, 2364, 2467, 2467, 2467, 1258,
2403      2468, 1269, 1253, 2469, 2471, 2471, 2471, 1252, 1248, 2436,
2404      2365, 2368, 2368, 2368, 2370, 2370, 2370, 2475, 2475, 2475,
2405      1247, 2472, 2376, 2376, 2376, 1246, 2481, 2481, 2481, 2369,
2406
2407      2455, 1241, 2371, 1240, 2476, 2379, 2379, 2379, 1235, 2377,
2408      2464, 2478, 2478, 2478, 2482, 2479, 1227, 1223, 2480, 2483,
2409      2483, 2483, 2380, 2484, 1218, 1217, 2485, 3217, 3217, 3217,
2410      3217, 3217, 3217, 3217, 3217, 3217, 2491, 2491, 2491, 2390,
2411      2390, 2390, 1213, 1212, 3217, 1211, 1210, 3217, 1209, 1208,
2412      3217, 1207, 1206, 2492, 2392, 2392, 2392, 2394, 2394, 2394,
2413      2495, 2495, 2495, 1205, 2496, 1204, 1203, 2497, 2498, 2498,
2414      2498, 1202, 2393, 1196, 2395, 1387, 1387, 1387, 1188, 2486,
2415      1397, 1397, 1397, 2399, 2399, 2399, 2499, 2400, 2487, 1187,
2416      2401, 2488, 1186, 1389, 2402, 2402, 2402, 1181, 1399, 2502,
2417
2418      2502, 2502, 1180, 2503, 1179, 1176, 2504, 2505, 2505, 2505,
2419      1170, 2403, 2507, 2507, 2507, 2406, 2406, 2406, 2408, 2408,
2420      2408, 2509, 2509, 2509, 2506, 2413, 2413, 2413, 1165, 2508,
2421      2417, 2417, 2417, 2407, 2519, 2519, 2519, 1164, 1160, 2510,
2422      1155, 1154, 2500, 2414, 2501, 2422, 2422, 2422, 1153, 2423,
2423      1152, 2520, 2424, 1189, 1189, 1189, 2453, 2453, 2453, 1219,
2424      1219, 1219, 2456, 2456, 2456, 2558, 2558, 2558, 2462, 2462,
2425      2462, 1191, 2560, 2560, 2560, 1151, 2561, 1221, 1150, 2562,
2426      2457, 1149, 2559, 1147, 1146, 2463, 2563, 2563, 2563, 2467,
2427      2467, 2467, 1145, 2468, 1144, 1143, 2469, 2471, 2471, 2471,
2428
2429      1142, 2568, 2568, 2568, 2564, 2569, 1141, 1140, 2570, 2572,
2430      2572, 2572, 1139, 2538, 2472, 2475, 2475, 2475, 2574, 2574,
2431      2574, 1138, 2575, 1137, 1136, 2576, 2573, 2577, 2577, 2577,
2432      2556, 1135, 2476, 2478, 2478, 2478, 1134, 2479, 1133, 1132,
2433      2480, 2481, 2481, 2481, 2578, 2483, 2483, 2483, 1131, 2484,
2434      1130, 1129, 2485, 3217, 3217, 3217, 3217, 3217, 3217, 2482,
2435      3217, 3217, 3217, 2491, 2491, 2491, 1128, 2582, 2582, 2582,
2436      3217, 2583, 1121, 3217, 2584, 1120, 1119, 3217, 1118, 1117,
2437      2492, 2585, 2585, 2585, 2587, 2587, 2587, 2495, 2495, 2495,
2438      1116, 2496, 1115, 1112, 2497, 2498, 2498, 2498, 2586, 1110,
2439
2440      1109, 2588, 1387, 1387, 1387, 1107, 1105, 2580, 2579, 1397,
2441      1397, 1397, 1102, 2499, 1098, 2581, 1096, 2502, 2502, 2502,
2442      1389, 2503, 1095, 1094, 2504, 1092, 1091, 1399, 2505, 2505,
2443      2505, 2597, 2597, 2597, 1090, 2598, 1089, 1088, 2599, 2507,
2444      2507, 2507, 2600, 2600, 2600, 2506, 2601, 1087, 1085, 2602,
2445      1084, 2509, 2509, 2509, 1083, 1082, 2508, 2607, 2607, 2607,
2446      2519, 2519, 2519, 1189, 1189, 1189, 1080, 1079, 2595, 2510,
2447      2596, 2611, 2611, 2611, 1078, 2612, 1074, 2520, 2613, 1073,
2448      1071, 1191, 2647, 2647, 2647, 1219, 1219, 1219, 2650, 2650,
2449      2650, 2558, 2558, 2558, 2653, 2653, 2653, 1070, 2654, 1069,
2450
2451      1068, 2655, 1067, 1221, 1066, 2651, 1064, 1063, 2559, 2560,
2452      2560, 2560, 1062, 2561, 2631, 1061, 2562, 2563, 2563, 2563,
2453      2568, 2568, 2568, 1059, 2569, 1058, 1057, 2570, 2572, 2572,
2454      2572, 2607, 2607, 2607, 2652, 2564, 2660, 2660, 2660, 1054,
2455      2661, 1053, 1051, 2662, 1048, 2573, 1047, 2649, 2574, 2574,
2456      2574, 1043, 2575, 1042, 1040, 2576, 2577, 2577, 2577, 2663,
2457      2663, 2663, 1039, 2664, 1038, 1035, 2665, 3217, 3217, 3217,
2458      2667, 2667, 2667, 2578, 3217, 3217, 3217, 1034, 2582, 2582,
2459      2582, 1033, 2583, 1032, 3217, 2584, 1030, 2668, 2585, 2585,
2460      2585, 3217, 2670, 2670, 2670, 1029, 2671, 1028, 1027, 2672,
2461
2462      2587, 2587, 2587, 1026, 1021, 2586, 2673, 2673, 2673, 1019,
2463      2674, 1018, 1017, 2675, 1387, 1387, 1387, 2588, 1397, 1397,
2464      1397, 1016, 1015, 2669, 1014, 2666, 2597, 2597, 2597, 1013,
2465      2598, 1012, 1389, 2599, 1009, 1006, 1399, 2600, 2600, 2600,
2466      1005, 2601, 1004,  998, 2602, 2690, 2690, 2690, 2693, 2693,
2467      2693, 2611, 2611, 2611,  995, 2612,  993,  992, 2613, 2704,
2468      2704, 2704, 2691, 1635,  987, 2682, 1189, 1189, 1189, 2647,
2469      2647, 2647, 2730, 2730, 2730,  986, 2705, 1219, 1219, 1219,
2470      2650, 2650, 2650,  984, 1191, 2683, 2732, 2732, 2732,  983,
2471      2733,  982,  980, 2734,  977, 1221,  975, 2651, 2653, 2653,
2472
2473      2653,  972, 2654,  971,  969, 2655, 2660, 2660, 2660,  968,
2474      2661,  965,  960, 2662,  959, 2714, 2663, 2663, 2663,  956,
2475      2664,  955,  952, 2665, 3217, 3217, 3217,  951, 2731, 2667,
2476      2667, 2667, 2741, 2741, 2741,  949, 2742,  946,  944, 2743,
2477       943, 3217, 3217, 3217, 3217,  942, 2668, 2670, 2670, 2670,
2478       941, 2671,  939,  938, 2672,  937, 2673, 2673, 2673, 3217,
2479      2674,  936,  935, 2675, 2759, 2759, 2759, 1397, 1397, 1397,
2480      2767, 2767, 2767,  934,  931, 2740, 2690, 2690, 2690, 2769,
2481      2769, 2769, 2760, 2770,  930, 1399, 2771, 2768, 1635, 2772,
2482      2772, 2772,  929, 2691, 1635,  926,  923, 1635, 2693, 2693,
2483
2484      2693, 2773, 2773, 2773, 2774, 2774, 2774, 2704, 2704, 2704,
2485      2783, 2783, 2783, 2744, 2784,  922,  920, 2785, 1189, 1189,
2486      1189, 2803, 2803, 2803, 2705, 2730, 2730, 2730, 2804, 2804,
2487      2804,  919,  916, 2761,  913,  910, 1191, 2732, 2732, 2732,
2488       909, 2733,  901,  900, 2734,  899, 2805, 2809, 2809, 2809,
2489      2812, 2812, 2812, 2741, 2741, 2741,  893, 2742,  892,  891,
2490      2743, 2814, 2814, 2814, 2810,  889,  888, 2813, 2759, 2759,
2491      2759, 1397, 1397, 1397, 2767, 2767, 2767,  887, 2815,  886,
2492       885, 2834, 2834, 2834, 2792, 2835, 2760,  884, 2836, 1399,
2493       879, 2768, 1635, 2769, 2769, 2769,  876, 2770,  878, 1635,
2494
2495      2771, 2772, 2772, 2772, 2773, 2773, 2773, 2774, 2774, 2774,
2496       873, 1635, 2783, 2783, 2783,  872, 2784,  870,  868, 2785,
2497       866,  864, 2828, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
2498      1633, 1633,  862, 3217, 1633, 2853, 2853, 2853,  859, 1633,
2499      1633, 1633, 1635, 1633, 2803, 2803, 2803, 2804, 2804, 2804,
2500      2809, 2809, 2809, 2854, 2866, 2866, 2866,  858, 2867,  857,
2501       856, 2868, 2812, 2812, 2812, 2805,  855, 2810, 1633, 1633,
2502      1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 2813,
2503       853, 1633, 2814, 2814, 2814,  852, 1633, 1633, 1633, 1635,
2504      1633, 2870, 2870, 2870,  851, 2871,  850,  849, 2872, 2815,
2505
2506      2873, 2873, 2873,  847, 2874,  846,  845, 2875, 2888, 2888,
2507      2888, 2853, 2853, 2853,  844, 1633, 1633, 2834, 2834, 2834,
2508       842, 2835,  840,  839, 2836,  837, 2889,  836,  833, 2854,
2509      2888, 2888, 2888,  832,  830, 1635, 1633, 1633, 1633, 1633,
2510      1633, 2900, 1633, 1633, 1633,  663, 3217, 1633, 2889,  825,
2511       823,  819, 1633, 1633, 1633, 1635, 1633, 2866, 2866, 2866,
2512       818, 2867,  817,  815, 2868, 2870, 2870, 2870,  813, 2871,
2513       812,  811, 2872, 2873, 2873, 2873,  809, 2874,  807,  806,
2514      2875, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
2515      1633, 2900,  804,  802, 1633, 2939, 2939, 2939,  801, 1633,
2516
2517      1633, 1633, 1635, 1633, 2950, 2950, 2950, 2952, 2952, 2952,
2518      2954, 2954, 2954, 1635, 1636, 2962, 2962, 2962, 2972, 2972,
2519      2972, 2951,  800,  799, 2953,  798,  797, 2955, 1633, 1633,
2520       796,  794, 2963, 2939, 2939, 2939, 1109, 2950, 2950, 2950,
2521      2982, 2982, 2982,  792, 2983,  791,  788, 2984, 2952, 2952,
2522      2952, 1635,  787,  786, 2951, 2985, 2985, 2985,  784, 2986,
2523       775,  774, 2987,  773,  770, 2953, 2954, 2954, 2954, 2988,
2524      2988, 2988,  768, 2989,  766,  765, 2990, 2962, 2962, 2962,
2525      2972, 2972, 2972, 2955, 1823, 2997, 2997, 2997,  764, 2998,
2526       762, 3217, 2999,  759, 2963, 2982, 2982, 2982, 1109, 2983,
2527
2528       758,  757, 2984, 2985, 2985, 2985,  756, 2986,  755,  753,
2529      2987, 2988, 2988, 2988,  751, 2989,  750, 3008, 2990, 2997,
2530      2997, 2997,  748, 2998,  746,  745, 2999, 3113, 3113, 3113,
2531      3113, 3113, 3113,  743, 3122,  741,  740, 3123, 3215, 3215,
2532      3215, 3215, 3215, 3215,  739, 1109,  737,  735, 1109,  734,
2533       733,  732,  730, 3217, 3217,  678, 3216,  711,  710, 3216,
2534       250,  250,  250,  250,  250,  250,  250,  250,  250,  251,
2535       251,  251,  251,  251,  251,  251,  251,  251,  256,  256,
2536       256,  256,  256,  256,  256,  256,  256,  259,  259,  259,
2537       259,  259,  259,  259,  259,  259,  262,  262,  262,  262,
2538
2539       262,  262,  262,  262,  262,  265,  265,  265,  265,  265,
2540       265,  265,  265,  265,  272,  272,  272,  272,  272,  272,
2541       272,  272,  272,  280,  280,  280,  280,  280,  280,  280,
2542       280,  280,  284,  284,  284,  284,  284,  284,  284,  284,
2543       284,  296,  296,  296,  296,  296,  296,  296,  296,  296,
2544       300,  300,  300,  300,  300,  300,  300,  300,  300,  307,
2545       307,  307,  307,  307,  307,  307,  307,  307,  318,  318,
2546       318,  318,  318,  318,  318,  318,  318,  326,  326,  326,
2547       326,  326,  326,  326,  326,  326,  332,  332,  332,  332,
2548       332,  332,  332,  332,  332,  338,  338,  338,  338,  338,
2549
2550       338,  338,  338,  338,  344,  344,  344,  344,  344,  344,
2551       344,  344,  344,  349,  349,  349,  349,  349,  349,  349,
2552       349,  349,  368,  368,  368,  368,  368,  368,  368,  368,
2553       368,  375,  375,  375,  375,  375,  375,  375,  375,  375,
2554       382,  382,  382,  382,  382,  382,  382,  382,  382,  388,
2555       388,  388,  388,  388,  388,  388,  388,  388,  395,  395,
2556       395,  395,  395,  395,  395,  395,  395,  400,  400,  400,
2557       400,  400,  400,  400,  400,  400,  406,  406,  406,  406,
2558       406,  406,  406,  406,  406,  411,  411,  411,  411,  411,
2559       411,  411,  411,  411,  417,  417,  417,  417,  417,  417,
2560
2561       417,  417,  417,  425,  425,  425,  425,  425,  425,  425,
2562       425,  425,  433,  433,  433,  433,  433,  433,  433,  433,
2563       433,  439,  439,  439,  439,  439,  439,  439,  439,  439,
2564       456,  456,  456,  456,  456,  456,  456,  456,  456,  462,
2565       462,  462,  462,  462,  462,  462,  462,  462,  471,  471,
2566       471,  471,  471,  471,  471,  471,  471,  477,  477,  477,
2567       477,  477,  477,  477,  477,  477,  487,  487,  487,  487,
2568       487,  487,  487,  487,  487,  493,  493,  493,  493,  493,
2569       493,  493,  493,  493,  498,  498,  498,  498,  498,  498,
2570       498,  498,  498,  504,  504,  504,  504,  504,  504,  504,
2571
2572       504,  504,  510,  510,  510,  510,  510,  510,  510,  510,
2573       510,  516,  516,  516,  516,  516,  516,  516,  516,  516,
2574       523,  523,  523,  523,  523,  523,  523,  523,  523,  530,
2575       530,  530,  530,  530,  530,  530,  530,  530,  535,  535,
2576       535,  535,  535,  535,  535,  535,  535,  543,  543,  543,
2577       543,  543,  543,  543,  543,  543,  549,  549,  549,  549,
2578       549,  549,  549,  549,  549,  556,  556,  556,  556,  556,
2579       556,  556,  556,  556,  561,  561,  561,  561,  561,  561,
2580       561,  561,  561,  567,  567,  567,  567,  567,  567,  567,
2581       567,  567,  572,  572,  572,  572,  572,  572,  572,  572,
2582
2583       572,  579,  579,  579,  579,  579,  579,  579,  579,  579,
2584       585,  585,  585,  585,  585,  585,  585,  585,  585,  592,
2585       592,  592,  592,  592,  592,  592,  592,  592,  600,  600,
2586       600,  600,  600,  600,  600,  600,  600,  608,  608,  608,
2587       608,  608,  608,  608,  608,  608,  612,  612,  612,  612,
2588       612,  612,  612,  612,  612,  618,  618,  618,  618,  618,
2589       618,  618,  618,  618,  622,  622,  622,  622,  622,  622,
2590       622,  622,  622,  629,  629,  629,  629,  629,  629,  629,
2591       629,  629,  634,  634,  634,  634,  634,  634,  634,  634,
2592       634,  654,  654,  654,  708,  706,  705,  654,  680,  680,
2593
2594       680,  704,  702,  698,  680,  684,  684,  684,  694,  693,
2595       691,  684,  692,  692,  692,  690,  687,  686,  692,  703,
2596       703,  703,  685,  683,  682,  703,  709,  709,  709,  681,
2597       679,  674,  709,  731,  731,  731, 3217,  655,  653,  731,
2598       738,  738,  738,  651,  645,  644,  738,  744,  744,  744,
2599       645,  644,  643,  744,  749,  749,  749,  642, 3217, 3217,
2600       749,  754,  754,  754, 3217, 3217, 3217,  754,  763,  763,
2601       763, 3217, 3217, 3217,  763,  769,  769,  769, 3217, 3217,
2602      3217,  769,  785,  785,  785, 3217, 3217, 3217,  785,  795,
2603       795,  795, 3217, 3217, 3217,  795,  805,  805,  805, 3217,
2604
2605      3217, 3217,  805,  810,  810,  810, 3217, 3217, 3217,  810,
2606       816,  816,  816, 3217, 3217, 3217,  816,  824,  824,  824,
2607      3217, 3217, 3217,  824,  831,  831,  831, 3217, 3217, 3217,
2608       831,  838,  838,  838, 3217, 3217, 3217,  838,  843,  843,
2609       843, 3217, 3217, 3217,  843,  848,  848,  848, 3217, 3217,
2610      3217,  848,  854,  854,  854, 3217, 3217, 3217,  854,  863,
2611       863,  863, 3217, 3217, 3217,  863,  867,  867,  867, 3217,
2612      3217, 3217,  867,  871,  871,  871, 3217, 3217, 3217,  871,
2613       875,  875,  875,  875,  875,  875,  875, 3217,  875,  654,
2614       654,  654, 3217, 3217, 3217,  654,  890, 3217, 3217, 3217,
2615
2616       890,  680,  680,  680, 3217, 3217, 3217,  680,  921, 3217,
2617      3217, 3217,  921,  684,  684,  684, 3217, 3217, 3217,  684,
2618       928, 3217, 3217, 3217,  928,  692,  692,  692, 3217, 3217,
2619      3217,  692,  940, 3217, 3217, 3217,  940,  703,  703,  703,
2620      3217, 3217, 3217,  703,  945, 3217, 3217, 3217,  945,  709,
2621       709,  709, 3217, 3217, 3217,  709,  950, 3217, 3217, 3217,
2622       950,  731,  731,  731, 3217, 3217, 3217,  731,  970, 3217,
2623      3217, 3217,  970,  738,  738,  738, 3217, 3217, 3217,  738,
2624       976, 3217, 3217, 3217,  976,  744,  744,  744, 3217, 3217,
2625      3217,  744,  981, 3217, 3217, 3217,  981,  749,  749,  749,
2626
2627      3217, 3217, 3217,  749,  985, 3217, 3217, 3217,  985,  754,
2628       754,  754, 3217, 3217, 3217,  754,  994, 3217, 3217, 3217,
2629       994,  763,  763,  763, 3217, 3217, 3217,  763, 1003, 3217,
2630      3217, 3217, 1003,  769,  769,  769, 3217, 3217, 3217,  769,
2631      1020, 3217, 3217, 3217, 1020,  785,  785,  785, 3217, 3217,
2632      3217,  785, 1031, 3217, 3217, 3217, 1031,  795,  795,  795,
2633      3217, 3217, 3217,  795, 1041, 3217, 3217, 3217, 1041,  805,
2634       805,  805, 3217, 3217, 3217,  805, 1046, 3217, 3217, 3217,
2635      1046,  810,  810,  810, 3217, 3217, 3217,  810, 1052, 3217,
2636      3217, 3217, 1052,  816,  816,  816, 3217, 3217, 3217,  816,
2637
2638      1060, 3217, 3217, 3217, 1060,  824,  824,  824, 3217, 3217,
2639      3217,  824, 1065, 3217, 3217, 3217, 1065,  831,  831,  831,
2640      3217, 3217, 3217,  831, 1072, 3217, 3217, 3217, 1072,  838,
2641       838,  838, 3217, 3217, 3217,  838, 1077, 3217, 3217, 3217,
2642      1077,  843,  843,  843, 3217, 3217, 3217,  843, 1081, 3217,
2643      3217, 3217, 1081,  848,  848,  848, 3217, 3217, 3217,  848,
2644      1086, 3217, 3217, 3217, 1086,  854,  854,  854, 3217, 3217,
2645      3217,  854, 1093, 3217, 3217, 3217, 1093,  863,  863,  863,
2646      3217, 3217, 3217,  863, 1097, 3217, 3217, 3217, 1097,  867,
2647       867,  867, 3217, 3217, 3217,  867, 1101, 3217, 3217, 3217,
2648
2649      1101,  871,  871,  871, 3217, 3217, 3217,  871, 1106, 3217,
2650      3217, 3217, 1106, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
2651      1108, 1108, 1114, 3217, 3217, 3217, 3217, 1114,  654,  654,
2652       654, 3217, 3217, 3217,  654, 1123, 1123, 1123, 1123, 3217,
2653      3217, 1123, 1123,  680,  680,  680, 3217, 3217, 3217,  680,
2654      1157, 1157, 1157, 1157, 3217, 3217, 1157, 1157,  684,  684,
2655       684, 3217, 3217, 3217,  684, 1167, 1167, 1167, 1167, 3217,
2656      3217, 1167, 1167,  692,  692,  692, 3217, 3217, 3217,  692,
2657      1183, 1183, 1183, 1183, 3217, 3217, 1183, 1183,  703,  703,
2658       703, 3217, 3217, 3217,  703, 1190, 1190, 1190, 1190, 3217,
2659
2660      3217, 1190, 1190,  709,  709,  709, 3217, 3217, 3217,  709,
2661      1198, 1198, 1198, 1198, 3217, 3217, 1198, 1198,  731,  731,
2662       731, 3217, 3217, 3217,  731, 1220, 1220, 1220, 1220, 3217,
2663      3217, 1220, 1220,  738,  738,  738, 3217, 3217, 3217,  738,
2664      1229, 1229, 1229, 1229, 3217, 3217, 1229, 1229,  744,  744,
2665       744, 3217, 3217, 3217,  744, 1237, 1237, 1237, 1237, 3217,
2666      3217, 1237, 1237,  749,  749,  749, 3217, 3217, 3217,  749,
2667      1243, 1243, 1243, 1243, 3217, 3217, 1243, 1243,  754,  754,
2668       754, 3217, 3217, 3217,  754, 1255, 1255, 1255, 1255, 3217,
2669      3217, 1255, 1255,  763,  763,  763, 3217, 3217, 3217,  763,
2670
2671      1268, 1268, 1268, 1268, 3217, 3217, 1268, 1268,  769,  769,
2672       769, 3217, 3217, 3217,  769, 1292, 1292, 1292, 1292, 3217,
2673      3217, 1292, 1292,  785,  785,  785,  785, 3217,  785, 3217,
2674       785, 1308, 1308, 1308, 1308, 3217, 3217, 1308, 1308,  795,
2675       795,  795, 3217, 3217, 3217,  795, 1323, 1323, 1323, 1323,
2676      3217, 3217, 1323, 1323,  805,  805,  805, 3217, 3217, 3217,
2677       805, 1331, 1331, 1331, 1331, 3217, 3217, 1331, 1331,  810,
2678       810,  810, 3217, 3217, 3217,  810, 1340, 1340, 1340, 1340,
2679      3217, 3217, 1340, 1340,  816,  816,  816, 3217, 3217, 3217,
2680       816, 1351, 1351, 1351, 1351, 3217, 3217, 1351, 1351,  824,
2681
2682       824,  824,  824, 3217,  824, 3217,  824, 1360, 1360, 1360,
2683      1360, 3217, 3217, 1360, 1360,  831,  831,  831,  831, 3217,
2684       831, 3217,  831, 1372, 1372, 1372, 1372, 3217, 3217, 1372,
2685      1372,  838,  838,  838, 3217, 3217, 3217,  838, 1380, 1380,
2686      1380, 1380, 3217, 3217, 1380, 1380,  843,  843,  843,  843,
2687      3217,  843, 3217,  843, 1388, 1388, 1388, 1388, 3217, 3217,
2688      1388, 1388,  848,  848,  848,  848, 3217,  848, 3217,  848,
2689      1398, 1398, 1398, 1398, 3217, 3217, 1398, 1398,  854,  854,
2690       854, 3217, 3217, 3217,  854, 1407, 1407, 1407, 1407, 3217,
2691      3217, 1407, 1407,  863,  863,  863, 3217, 3217, 3217,  863,
2692
2693      1413, 1413, 1413, 1413, 3217, 3217, 1413, 1413, 1420, 1420,
2694      1420, 1420, 3217, 3217, 1420, 1420,  871,  871,  871, 3217,
2695      3217, 3217,  871, 1428, 1428, 1428, 1428, 3217, 3217, 1428,
2696      1428, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
2697      1114, 3217, 1114, 3217, 3217, 1114,  654,  654,  654, 3217,
2698      3217, 3217,  654, 1123, 1123, 1123, 1123, 3217, 3217, 1123,
2699      1123,  680,  680,  680,  680, 3217,  680, 3217,  680, 1157,
2700      1157, 1157, 1157, 3217, 3217, 1157, 1157,  684,  684,  684,
2701       684, 3217,  684, 3217,  684, 1167, 1167, 1167, 1167, 3217,
2702      3217, 1167, 1167,  692,  692,  692, 3217, 3217, 3217,  692,
2703
2704      1183, 1183, 1183, 1183, 3217, 3217, 1183, 1183,  703,  703,
2705       703, 3217, 3217, 3217,  703, 1190, 1190, 1190, 1190, 3217,
2706      3217, 1190, 1190,  709,  709,  709, 3217, 3217, 3217,  709,
2707      1198, 1198, 1198, 1198, 3217, 3217, 1198, 1198,  731,  731,
2708       731, 3217, 3217, 3217,  731, 1220, 1220, 1220, 1220, 3217,
2709      3217, 1220, 1220,  738,  738,  738, 3217, 3217, 3217,  738,
2710      1229, 1229, 1229, 1229, 3217, 3217, 1229, 1229,  744,  744,
2711       744,  744, 3217,  744, 3217,  744, 1237, 1237, 1237, 1237,
2712      3217, 3217, 1237, 1237,  749,  749,  749,  749, 3217,  749,
2713      3217,  749, 1243, 1243, 1243, 1243, 3217, 3217, 1243, 1243,
2714
2715       754,  754,  754, 3217, 3217, 3217,  754, 1255, 1255, 1255,
2716      1255, 3217, 3217, 1255, 1255,  763,  763,  763,  763, 3217,
2717       763, 3217,  763, 1268, 1268, 1268, 1268, 3217, 3217, 1268,
2718      1268,  769,  769,  769, 3217, 3217, 3217,  769, 1292, 1292,
2719      1292, 1292, 3217, 3217, 1292, 1292,  785,  785,  785, 3217,
2720      3217, 3217,  785, 1308, 1308, 1308, 1308, 3217, 3217, 1308,
2721      1308,  795,  795,  795, 3217, 3217, 3217,  795, 1323, 1323,
2722      1323, 1323, 3217, 3217, 1323, 1323,  805,  805,  805, 3217,
2723      3217, 3217,  805, 1331, 1331, 1331, 1331, 3217, 3217, 1331,
2724      1331,  810,  810,  810, 3217, 3217, 3217,  810, 1340, 1340,
2725
2726      1340, 1340, 3217, 3217, 1340, 1340,  816,  816,  816, 3217,
2727      3217, 3217,  816, 1351, 1351, 1351, 1351, 3217, 3217, 1351,
2728      1351,  824,  824,  824, 3217, 3217, 3217,  824, 1360, 1360,
2729      1360, 1360, 3217, 3217, 1360, 1360,  831,  831,  831, 3217,
2730      3217, 3217,  831, 1372, 1372, 1372, 1372, 3217, 3217, 1372,
2731      1372,  838,  838,  838, 3217, 3217, 3217,  838, 1380, 1380,
2732      1380, 1380, 3217, 3217, 1380, 1380, 1388, 1388, 1388, 1388,
2733      3217, 3217, 1388, 1388,  848,  848,  848, 3217, 3217, 3217,
2734       848, 1398, 1398, 1398, 1398, 3217, 3217, 1398, 1398,  854,
2735       854,  854, 3217, 3217, 3217,  854, 1407, 1407, 1407, 1407,
2736
2737      3217, 3217, 1407, 1407,  863,  863,  863, 3217, 3217, 3217,
2738       863, 1413, 1413, 1413, 1413, 3217, 3217, 1413, 1413, 1420,
2739      1420, 1420, 1420, 3217, 3217, 1420, 1420,  871,  871,  871,
2740      3217, 3217, 3217,  871, 1428, 1428, 1428, 1428, 3217, 3217,
2741      1428, 1428, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
2742      1108, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633,
2743       654,  654,  654, 3217, 3217, 3217,  654, 1123, 1123, 1123,
2744      1123, 3217, 3217, 1123, 1123, 1157, 1157, 1157, 1157, 3217,
2745      3217, 1157, 1157,  684,  684,  684, 3217, 3217, 3217,  684,
2746      1167, 1167, 1167, 1167, 3217, 3217, 1167, 1167,  692,  692,
2747
2748       692, 3217, 3217, 3217,  692, 1183, 1183, 1183, 1183, 3217,
2749      3217, 1183, 1183,  703,  703,  703, 3217, 3217, 3217,  703,
2750      1190, 1190, 1190, 1190, 3217, 3217, 1190, 1190,  709,  709,
2751       709, 3217, 3217, 3217,  709,  731,  731,  731, 3217, 3217,
2752      3217,  731, 1220, 1220, 1220, 1220, 3217, 3217, 1220, 1220,
2753       738,  738,  738, 3217, 3217, 3217,  738, 1229, 1229, 1229,
2754      1229, 3217, 3217, 1229, 1229, 1237, 1237, 1237, 1237, 3217,
2755      3217, 1237, 1237,  749,  749,  749, 3217, 3217, 3217,  749,
2756      1243, 1243, 1243, 1243, 3217, 3217, 1243, 1243,  754,  754,
2757       754, 3217, 3217, 3217,  754, 1255, 1255, 1255, 1255, 3217,
2758
2759      3217, 1255, 1255, 1268, 1268, 1268, 1268, 3217, 3217, 1268,
2760      1268,  769,  769,  769, 3217, 3217, 3217,  769, 1292, 1292,
2761      1292, 1292, 3217, 3217, 1292, 1292,  785,  785,  785,  785,
2762      3217,  785, 3217,  785, 1308, 1308, 1308, 1308, 3217, 3217,
2763      1308, 1308,  795,  795,  795, 3217, 3217, 3217,  795, 1323,
2764      1323, 1323, 1323, 3217, 3217, 1323, 1323,  805,  805,  805,
2765      3217, 3217, 3217,  805, 1331, 1331, 1331, 1331, 3217, 3217,
2766      1331, 1331,  810,  810,  810, 3217, 3217, 3217,  810, 1340,
2767      1340, 1340, 1340, 3217, 3217, 1340, 1340,  816,  816,  816,
2768      3217, 3217, 3217,  816, 1351, 1351, 1351, 1351, 3217, 3217,
2769
2770      1351, 1351,  824,  824,  824, 3217, 3217, 3217,  824, 1360,
2771      1360, 1360, 1360, 3217, 3217, 1360, 1360,  831,  831,  831,
2772      3217, 3217, 3217,  831, 1372, 1372, 1372, 1372, 3217, 3217,
2773      1372, 1372,  838,  838,  838, 3217, 3217, 3217,  838, 1380,
2774      1380, 1380, 1380, 3217, 3217, 1380, 1380, 1388, 1388, 1388,
2775      1388, 3217, 3217, 1388, 1388,  848,  848,  848, 3217, 3217,
2776      3217,  848, 1398, 1398, 1398, 1398, 3217, 3217, 1398, 1398,
2777       854,  854,  854, 3217, 3217, 3217,  854, 1407, 1407, 1407,
2778      1407, 3217, 3217, 1407, 1407,  863,  863,  863,  863, 3217,
2779       863, 3217,  863, 1413, 1413, 1413, 1413, 3217, 3217, 1413,
2780
2781      1413, 1420, 1420, 1420, 1420, 3217, 3217, 1420, 1420,  871,
2782       871,  871,  871, 3217,  871, 3217,  871, 1428, 1428, 1428,
2783      1428, 3217, 3217, 1428, 1428, 1108, 1108, 1108, 1108, 1108,
2784      1108, 1108, 1108, 1108, 1633, 1633, 1633, 1633, 1633, 1633,
2785      1633, 1633, 1633,  654,  654,  654, 3217, 3217, 3217,  654,
2786      1123, 1123, 1123, 1123, 3217, 3217, 1123, 1123, 1157, 1157,
2787      1157, 1157, 3217, 3217, 1157, 1157,  684,  684,  684, 3217,
2788      3217, 3217,  684, 1167, 1167, 1167, 1167, 3217, 3217, 1167,
2789      1167,  692,  692,  692, 3217, 3217, 3217,  692, 1183, 1183,
2790      1183, 1183, 3217, 3217, 1183, 1183,  703,  703,  703, 3217,
2791
2792      3217, 3217,  703, 1190, 1190, 1190, 1190, 3217, 3217, 1190,
2793      1190,  709,  709,  709, 3217, 3217, 3217,  709,  731,  731,
2794       731, 3217, 3217, 3217,  731, 1220, 1220, 1220, 1220, 3217,
2795      3217, 1220, 1220,  738,  738,  738, 3217, 3217, 3217,  738,
2796      1229, 1229, 1229, 1229, 3217, 3217, 1229, 1229, 1237, 1237,
2797      1237, 1237, 3217, 3217, 1237, 1237,  749,  749,  749,  749,
2798      3217,  749, 3217,  749, 1243, 1243, 1243, 1243, 3217, 3217,
2799      1243, 1243,  754,  754,  754, 3217, 3217, 3217,  754, 1255,
2800      1255, 1255, 1255, 3217, 3217, 1255, 1255, 1268, 1268, 1268,
2801      1268, 3217, 3217, 1268, 1268,  769,  769,  769, 3217, 3217,
2802
2803      3217,  769, 1292, 1292, 1292, 1292, 3217, 3217, 1292, 1292,
2804       785,  785,  785,  785, 3217,  785, 3217,  785, 1308, 1308,
2805      1308, 1308, 3217, 3217, 1308, 1308,  795,  795,  795, 3217,
2806      3217, 3217,  795, 1323, 1323, 1323, 1323, 3217, 3217, 1323,
2807      1323,  805,  805,  805, 3217, 3217, 3217,  805, 1331, 1331,
2808      1331, 1331, 3217, 3217, 1331, 1331,  810,  810,  810, 3217,
2809      3217, 3217,  810, 1340, 1340, 1340, 1340, 3217, 3217, 1340,
2810      1340,  816,  816,  816, 3217, 3217, 3217,  816, 1351, 1351,
2811      1351, 1351, 3217, 3217, 1351, 1351,  824,  824,  824, 3217,
2812      3217, 3217,  824, 1360, 1360, 1360, 1360, 3217, 3217, 1360,
2813
2814      1360,  831,  831,  831,  831, 3217,  831, 3217,  831, 1372,
2815      1372, 1372, 1372, 3217, 3217, 1372, 1372,  838,  838,  838,
2816      3217, 3217, 3217,  838, 1380, 1380, 1380, 1380, 3217, 3217,
2817      1380, 1380, 1388, 1388, 1388, 1388, 3217, 3217, 1388, 1388,
2818       848,  848,  848,  848, 3217,  848, 3217,  848, 1398, 1398,
2819      1398, 1398, 3217, 3217, 1398, 1398,  854,  854,  854, 3217,
2820      3217, 3217,  854, 1407, 1407, 1407, 1407, 3217, 3217, 1407,
2821      1407, 1413, 1413, 1413, 1413, 3217, 3217, 1413, 1413, 1420,
2822      1420, 1420, 1420, 3217, 3217, 1420, 1420, 1428, 1428, 1428,
2823      1428, 3217, 3217, 1428, 1428, 1108, 1108, 1108, 1108, 1108,
2824
2825      1108, 1108, 1108, 1108, 1633, 1633, 1633, 1633, 1633, 1633,
2826      1633, 1633, 1633,  654,  654,  654,  654, 3217,  654, 3217,
2827       654, 1123, 1123, 1123, 1123, 3217, 3217, 1123, 1123, 1157,
2828      1157, 1157, 1157, 3217, 3217, 1157, 1157,  684,  684,  684,
2829      3217, 3217, 3217,  684, 1167, 1167, 1167, 1167, 3217, 3217,
2830      1167, 1167,  692,  692,  692, 3217, 3217, 3217,  692, 1183,
2831      1183, 1183, 1183, 3217, 3217, 1183, 1183,  703,  703,  703,
2832       703, 3217,  703, 3217,  703, 1190, 1190, 1190, 1190, 3217,
2833      3217, 1190, 1190,  709,  709,  709,  709, 3217,  709, 3217,
2834       709,  731,  731,  731,  731, 3217,  731, 3217,  731, 1220,
2835
2836      1220, 1220, 1220, 3217, 3217, 1220, 1220,  738,  738,  738,
2837       738, 3217,  738, 3217,  738, 1229, 1229, 1229, 1229, 3217,
2838      3217, 1229, 1229, 1237, 1237, 1237, 1237, 3217, 3217, 1237,
2839      1237, 1243, 1243, 1243, 1243, 3217, 3217, 1243, 1243,  754,
2840       754,  754, 3217, 3217, 3217,  754, 1268, 1268, 1268, 1268,
2841      3217, 3217, 1268, 1268,  769,  769,  769, 3217, 3217, 3217,
2842       769, 1292, 1292, 1292, 1292, 3217, 3217, 1292, 1292,  785,
2843       785,  785,  785, 3217,  785, 3217,  785, 1308, 1308, 1308,
2844      1308, 3217, 3217, 1308, 1308,  795,  795,  795, 3217, 3217,
2845      3217,  795,  805,  805,  805, 3217, 3217, 3217,  805, 1331,
2846
2847      1331, 1331, 1331, 3217, 3217, 1331, 1331,  810,  810,  810,
2848      3217, 3217, 3217,  810, 1340, 1340, 1340, 1340, 3217, 3217,
2849      1340, 1340,  816,  816,  816, 3217, 3217, 3217,  816,  824,
2850       824,  824, 3217, 3217, 3217,  824, 1360, 1360, 1360, 1360,
2851      3217, 3217, 1360, 1360,  831,  831,  831, 3217, 3217, 3217,
2852       831, 1372, 1372, 1372, 1372, 3217, 3217, 1372, 1372,  838,
2853       838,  838, 3217, 3217, 3217,  838, 1380, 1380, 1380, 1380,
2854      3217, 3217, 1380, 1380, 1388, 1388, 1388, 1388, 3217, 3217,
2855      1388, 1388, 1398, 1398, 1398, 1398, 3217, 3217, 1398, 1398,
2856       854,  854,  854, 3217, 3217, 3217,  854, 1407, 1407, 1407,
2857
2858      1407, 3217, 3217, 1407, 1407, 1413, 1413, 1413, 1413, 3217,
2859      3217, 1413, 1413, 1420, 1420, 1420, 1420, 3217, 3217, 1420,
2860      1420, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
2861      1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1123,
2862      1123, 1123, 1123, 3217, 3217, 1123, 1123, 1157, 1157, 1157,
2863      1157, 3217, 3217, 1157, 1157,  684,  684,  684, 3217, 3217,
2864      3217,  684,  692,  692,  692, 3217, 3217, 3217,  692, 1183,
2865      1183, 1183, 1183, 3217, 3217, 1183, 1183, 1190, 1190, 1190,
2866      1190, 3217, 3217, 1190, 1190, 1220, 1220, 1220, 1220, 3217,
2867      3217, 1220, 1220, 1229, 1229, 1229, 1229, 3217, 3217, 1229,
2868
2869      1229, 1243, 1243, 1243, 1243, 3217, 3217, 1243, 1243,  754,
2870       754,  754, 3217, 3217, 3217,  754, 1268, 1268, 1268, 1268,
2871      3217, 3217, 1268, 1268,  769,  769,  769, 3217, 3217, 3217,
2872       769, 1292, 1292, 1292, 1292, 3217, 3217, 1292, 1292, 1308,
2873      1308, 1308, 1308, 3217, 3217, 1308, 1308,  795,  795,  795,
2874      3217, 3217, 3217,  795,  805,  805,  805, 3217, 3217, 3217,
2875       805, 1331, 1331, 1331, 1331, 3217, 3217, 1331, 1331,  810,
2876       810,  810, 3217, 3217, 3217,  810, 1340, 1340, 1340, 1340,
2877      3217, 3217, 1340, 1340,  816,  816,  816, 3217, 3217, 3217,
2878       816,  824,  824,  824, 3217, 3217, 3217,  824,  831,  831,
2879
2880       831, 3217, 3217, 3217,  831, 1372, 1372, 1372, 1372, 3217,
2881      3217, 1372, 1372,  838,  838,  838, 3217, 3217, 3217,  838,
2882      1380, 1380, 1380, 1380, 3217, 3217, 1380, 1380, 1388, 1388,
2883      1388, 1388, 3217, 3217, 1388, 1388, 1398, 1398, 1398, 1398,
2884      3217, 3217, 1398, 1398,  854,  854,  854,  854, 3217,  854,
2885      3217,  854, 1407, 1407, 1407, 1407, 3217, 3217, 1407, 1407,
2886      1413, 1413, 1413, 1413, 3217, 3217, 1413, 1413, 1420, 1420,
2887      1420, 1420, 3217, 3217, 1420, 1420, 1108, 1108, 1108, 1108,
2888      1108, 1108, 1108, 1108, 1108, 1633, 1633, 1633, 1633, 1633,
2889      1633, 1633, 1633, 1633, 1123, 1123, 1123, 1123, 3217, 3217,
2890
2891      1123, 1123, 1157, 1157, 1157, 1157, 3217, 3217, 1157, 1157,
2892       684,  684,  684, 3217, 3217, 3217,  684,  692,  692,  692,
2893       692, 3217,  692, 3217,  692, 1190, 1190, 1190, 1190, 3217,
2894      3217, 1190, 1190, 1220, 1220, 1220, 1220, 3217, 3217, 1220,
2895      1220, 1229, 1229, 1229, 1229, 3217, 3217, 1229, 1229, 1243,
2896      1243, 1243, 1243, 3217, 3217, 1243, 1243,  754,  754,  754,
2897      3217, 3217, 3217,  754, 1268, 1268, 1268, 1268, 3217, 3217,
2898      1268, 1268,  769,  769,  769, 3217, 3217, 3217,  769, 1292,
2899      1292, 1292, 1292, 3217, 3217, 1292, 1292, 1308, 1308, 1308,
2900      1308, 3217, 3217, 1308, 1308,  795,  795,  795, 3217, 3217,
2901
2902      3217,  795,  805,  805,  805, 3217, 3217, 3217,  805,  810,
2903       810,  810,  810, 3217,  810, 3217,  810, 1340, 1340, 1340,
2904      1340, 3217, 3217, 1340, 1340,  816,  816,  816,  816, 3217,
2905       816, 3217,  816,  824,  824,  824, 3217, 3217, 3217,  824,
2906       831,  831,  831, 3217, 3217, 3217,  831, 1372, 1372, 1372,
2907      1372, 3217, 3217, 1372, 1372,  838,  838,  838,  838, 3217,
2908       838, 3217,  838, 1380, 1380, 1380, 1380, 3217, 3217, 1380,
2909      1380, 1388, 1388, 1388, 1388, 3217, 3217, 1388, 1388, 1398,
2910      1398, 1398, 1398, 3217, 3217, 1398, 1398,  854,  854,  854,
2911       854, 3217,  854, 3217,  854, 1407, 1407, 1407, 1407, 3217,
2912
2913      3217, 1407, 1407, 1413, 1413, 1413, 1413, 3217, 3217, 1413,
2914      1413, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
2915      1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1633, 1123,
2916      1123, 1123, 1123, 3217, 3217, 1123, 1123,  684,  684,  684,
2917      3217, 3217, 3217,  684,  692,  692,  692, 3217, 3217, 3217,
2918       692, 1190, 1190, 1190, 1190, 3217, 3217, 1190, 1190, 1220,
2919      1220, 1220, 1220, 3217, 3217, 1220, 1220, 1243, 1243, 1243,
2920      1243, 3217, 3217, 1243, 1243,  754,  754,  754, 3217, 3217,
2921      3217,  754, 1268, 1268, 1268, 1268, 3217, 3217, 1268, 1268,
2922       769,  769,  769, 3217, 3217, 3217,  769, 2837, 2837, 2837,
2923
2924      2837, 2837, 2837, 2837, 2837, 2837, 2838, 2838, 2838, 2838,
2925      2838, 2838, 2838, 2838, 2838, 2895, 2895, 2895, 2895, 2895,
2926      2895, 2895, 2895, 2895, 2898, 2898, 2898, 2898, 2898, 2898,
2927      2898, 2898, 2898, 2936, 2936, 2936, 2936, 2936, 2936, 2936,
2928      2936, 2936, 2938, 2938, 2938, 2938, 2938, 2938, 2938, 2938,
2929      2938,  249, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2930      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2931      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2932      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2933      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2934
2935      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2936      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
2937      3217, 3217, 3217, 3217, 3217, 3217
2938     } ;
2939
2940 static yyconst flex_int16_t yy_chk[11827] =
2941     {   0,
2942         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2943         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2944         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2945         8,    8,    8,  254,   11,   13,   13,   12,   14,   14,
2946        13,   13,  303,   14,   14,  255,    8,   17,   17,  254,
2947        13,   15,   15,   14,   15,  258,   15,   16,   16,  357,
2948        16,  255,   16,   18,   18,    0,   15,   19,   19,   19,
2949       522,  258,   16,   20,   20,   20,   23,   23,   23,   24,
2950        24,   24,  522,   19,   25,   25,   25,  357, 1500,   20,
2951       364,   17,   23, 1034,  303,   24,  252,  252,  252, 1034,
2952
2953        25,  253,  253,  253,  257,  257,  257,   18,   21,   21,
2954        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2955        21,   21,   21,  287,   21,   21,   21,   21,   21,   26,
2956        26,   26,   27,   27,   27,   28,   28,   28,  287,   29,
2957        29,   29,   30,   30,   30,   26,  364,  429,   27,  281,
2958       429,   28,  659,   21,   21,   29,  297,  276,   30,   31,
2959        31,   31,  278,  278,  278,  281,  285,  285,  285,  294,
2960       294,  294,  297,  276,  353,   31,  659,   21,   22,   22,
2961        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2962        22,   22,   22, 1504,   22,   22,   22,   22,   22,   32,
2963
2964        32,   32,   33,   33,   33,   34,   34,   34,  268,   35,
2965        35,   35,   36,   36,   36,   32,  276,  356,   33,  453,
2966       714,   34,  453,   22,   22,   35,  353,  356,   36,   37,
2967        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
2968        40,   41,   41,   41,  714,   37,  534,   22,   38,  308,
2969       268,   39,  449,  534,   40,  356,  268,   41,   42,   42,
2970        42,  268,  301,  301,  301,  308,  268,  305,  305,  305,
2971       316,  316,  316,  449,   42,   43,   43,   43,   43,   43,
2972        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
2973       325,   43,   43,   43,   43,   43,   45,   45,   45,   46,
2974
2975        46,   46,   47,   47,   47,  325,   48,   48,   48,   49,
2976        49,   49,   45,  468,  647,   46,  468,  647,   47,  323,
2977        43,   43,   48,  323,  377,   49,  289,  323,   43,   44,
2978        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2979        44,   44,   44,   44,  319,   44,   44,   44,   44,   44,
2980        50,   50,   50,   51,   51,   51,   52,   52,   52,  454,
2981       319,  624,   55,   55,  548,  289,   50,   55,  290,   51,
2982      1505,  548,   52,  454,   44,   44,  377,   55,  289,  378,
2983       289,  688,   44,   53,   53,   53,   53,   53,   53,   53,
2984        53,   53,   53,   53,   53,   53,   53,   53,  624,   53,
2985
2986        53,   53,   53,   53, 1506,  333,   55,  290,   59,   59,
2987        59,   60,   60,   60,   63,   63,   63,  688,   56,   56,
2988       290,  333,  290,   56,   59,  313,  666,   60,   53,   53,
2989        63,  378,  313,   56,  664, 1507,   53,  390,  664,   53,
2990       666,  313,  327,  327,  327, 1508,   53,   54,   54,   54,
2991        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2992        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
2993        64,   67,   67,   67,   68,   68,   68,  525,   69,   69,
2994        69,   70,   70,   70,   64,  345,  369,   67,  328,  390,
2995        68, 1509,   54,   54,   69,  328,  756,   70, 1510,  756,
2996
2997        54,  345,  369,   54,  328,  330,  330,  330,  391, 1515,
2998        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2999        57,   57,   57,   57,   57,   57,  525,   57,   57,   57,
3000        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3001        73, 1516,   74,   74,   74,   75,   75,   75,   71, 1523,
3002       383,   72,  340,  396,   73,  604,   57,   57,   74,  340,
3003       391,   75,  339,  339,  339,   57,  383,   57,  340,  396,
3004       604,   57,  342,  342,  342, 1525,   57,   57,   58,   58,
3005        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3006        58,   58,   58,  361,   58,   58,   58,   58,   58,   76,
3007
3008        76,   76,   77,   77,   77,   78,   78,   78,  526,   79,
3009        79,   79,   80,   80,   80,   76,  355, 1526,   77, 1532,
3010       407,   78,  361,   58,   58,   79,  355,  361,   80,  350,
3011       350,  350,   58,  355,   58,  361,  407,  361,   58,  366,
3012       366,  366, 1533,   58,   58,   61,   61,   61,   61,   61,
3013        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3014       526,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3015        82,   82,   83,   83,   83,  670,   84,   84,   84,   85,
3016        85,   85,   81,  761, 1537,   82,  402,  761,   83,  670,
3017        61,   61,   84,  402,  413,   85,  638,   61,  376,  376,
3018
3019       376,  413,  402,   61,  380,  380,  380,  389,  389,  389,
3020       413,  638,   61,   62,   62,   62,   62,   62,   62,   62,
3021        62,   62,   62,   62,   62,   62,   62,   62,  722,   62,
3022        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3023        88,   88,   88,  718,   89,   89,   89,   90,   90,   90,
3024        86, 1141,  722,   87,  418,  723,   88,  718,   62,   62,
3025        89, 1539,  434,   90, 1141,   62,  393,  393,  393, 1540,
3026       418,   62,  401,  401,  401,  404,  404,  404,  434,  723,
3027        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3028        65,   65,   65,   65,   65,   65,  552,   65,   65,   65,
3029
3030        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3031        93, 1547,   94,   94,   94,   95,   95,   95,   91,  446,
3032      1548,   92, 1549, 1550,   93,  625,   65,   65,   94,  463,
3033      1551,   95,  412,  412,  412,  446,  427,   65,  415,  415,
3034       415,  426,  426,  426,  552,  463,   65,   66,   66,   66,
3035        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3036        66,   66,  575,   66,   66,   66,   66,   66,   96,   96,
3037        96,   97,   97,   97,   98,   98,   98,  625,   99,   99,
3038        99,  100,  100,  100,   96,  427, 1552,   97,  427,  724,
3039        98, 1562,   66,   66,   99,  441, 1564,  100,  101,  101,
3040
3041       101, 1565,  441,   66,  102,  102,  102,  431,  431,  431,
3042       575,  441,   66,  724,  101,  440,  440,  440,  362, 1570,
3043       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3044       103,  103,  103,  103,  103,  103, 1572,  103,  103,  103,
3045       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3046       107, 1111,  108,  108,  108, 1111,  362,  455,  105,  726,
3047       478,  106,  725, 1574,  107,  359,  103,  103,  108,  455,
3048       455,  103,  362,  726,  537,  359,  478,  103,  443,  443,
3049       443,  103,  457,  457,  457, 1575,  725,  103,  104,  104,
3050       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3051
3052       104,  104,  104,  359,  104,  104,  104,  104,  104,  109,
3053       109,  109,  110,  110,  110,  111,  111,  111,  660,  112,
3054       112,  112,  537,  458, 1577,  109,  537, 1578,  110,  660,
3055       458,  111,  660,  104,  104,  112,  473,  494,  104,  458,
3056       460,  460,  460,  473,  104,  472,  472,  472,  104,  475,
3057       475,  475,  473,  494,  104,  113,  113,  113,  113,  113,
3058       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3059      1579,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3060       116,  116,  117,  117,  117,  728,  118,  118,  118,  488,
3061       488,  488,  115,  505,  517,  116,  489, 1588,  117,  728,
3062
3063       113,  113,  118,  489, 1594,  113,  491,  491,  491,  505,
3064       517,  113,  489,  499,  499,  499,  502,  502,  502,  511,
3065       511,  511,  113,  114,  114,  114,  114,  114,  114,  114,
3066       114,  114,  114,  114,  114,  114,  114,  114, 1595,  114,
3067       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3068       121,  121,  121, 1599,  122,  122,  122, 1601,  500, 1153,
3069       119, 1613,  531,  120,  512,  500,  121, 1614,  114,  114,
3070       122,  512, 1153,  114,  500,  514,  514,  514,  531,  114,
3071       512,  524,  524,  524,  528,  528,  528,  536,  536,  536,
3072       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3073
3074       123,  123,  123,  123,  123,  123, 1619,  123,  123,  123,
3075       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3076       129, 1622,  130,  130,  130,  133,  133,  133,  125,  544,
3077       557,  126, 1623, 1624,  129,  568,  123,  123,  130, 1626,
3078      1633,  133,  541,  541,  541,  544,  557,  123,  550,  550,
3079       550,  568,  123,  124,  124,  124,  124,  124,  124,  124,
3080       124,  124,  124,  124,  124,  124,  124,  124, 1636,  124,
3081       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
3082       136,  136,  136, 1639,  137,  137,  137,  138,  138,  138,
3083       134,  580,  593,  135, 1640, 1642,  136,  588,  124,  124,
3084
3085       137, 1643, 1644,  138,  554,  554,  554,  580,  593,  124,
3086       562,  562,  562, 1645,  124,  127,  127,  127,  127,  127,
3087       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3088       729,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3089       140,  140,  143,  143,  143,  588,  144,  144,  144,  147,
3090       147,  147,  139, 1646,  729,  140,  563, 1647,  143, 1648,
3091       127,  127,  144,  563,  609,  147,  565,  565,  565,  573,
3092       573,  573,  563,  577,  577,  577,  127,  586,  586,  586,
3093       609, 1650,  127,  128,  128,  128,  128,  128,  128,  128,
3094       128,  128,  128,  128,  128,  128,  128,  128, 1651,  128,
3095
3096       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3097       152,  152,  152, 1653,  155,  155,  155,  156,  156,  156,
3098       148, 1655, 1657,  151, 1632, 1658,  152,  619,  128,  128,
3099       155, 1660, 1662,  156,  590,  590,  590,  601,  601,  601,
3100       606,  606,  606,  619,  128,  613,  613,  613,  602, 1632,
3101       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3102       131,  131,  131,  131,  131,  131, 1664,  131,  131,  131,
3103       131,  131,  159,  159,  159,  160,  160,  160,  163,  163,
3104       163,  669,  164,  164,  164,  602,  614, 1665,  159, 1666,
3105       630,  160,  669,  614,  163,  669,  131,  131,  164,  131,
3106
3107       602,  131,  614,  616,  616,  616,  630,  131,  623,  623,
3108       623,  627,  627,  627,  131, 1667, 1668,  131,  132,  132,
3109       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3110       132,  132,  132, 1670,  132,  132,  132,  132,  132,  167,
3111       167,  167,  168,  168,  168,  169,  169,  169,  672,  170,
3112       170,  170,  635,  635,  635,  167,  877, 1431,  168,  672,
3113       636,  169,  672,  132,  132,  170,  132,  636,  132,  637,
3114       637,  637,  877, 1679,  132, 1680,  636, 1431,  646,  646,
3115       646,  132, 1682, 1686,  132,  141,  141,  141,  141,  141,
3116       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3117
3118      1690,  141,  141,  141,  141,  141,  171,  171,  171,  172,
3119       172,  172,  173,  173,  173, 1692,  174,  174,  174,  177,
3120       177,  177,  171, 1699, 1700,  172,  665,  674,  173, 1701,
3121       141,  141,  174,  665,  674,  177,  141,  646,  676,  665,
3122       674,  141,  880,  880,  880, 1702,  880, 1704, 1708,  676,
3123      1709, 1710,  676,  141,  142,  142,  142,  142,  142,  142,
3124       142,  142,  142,  142,  142,  142,  142,  142,  142, 1713,
3125       142,  142,  142,  142,  142,  178,  178,  178,  179,  179,
3126       179,  180,  180,  180, 1720,  181,  181,  181,  182,  182,
3127       182,  178, 1732, 1733,  179,  677,  678,  180, 1206,  142,
3128
3129       142,  181,  677,  678,  182,  142,  717,  720,  677,  678,
3130       142, 1206, 1741,  717,  720, 1126, 1126, 1126, 1744,  717,
3131       720, 1749,  142,  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,  145,  145,  145,
3137       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3138       145,  145,  145,  145,  145,  145,  145,  149,  149,  149,
3139
3140       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3141       149,  149, 1753,  149,  149,  149,  149,  149,  183,  183,
3142       183,  184,  184,  184,  187,  187,  187,  727,  188,  188,
3143       188,  189,  189,  189,  183, 1006, 1760,  184,  727, 1761,
3144       187,  727,  149,  149,  188, 1006,  149,  189,  892,  892,
3145       892, 1762, 1006,  149, 1763, 1772,  149,  913,  913,  913,
3146       149, 1776,  149,  149,  150,  150,  150,  150,  150,  150,
3147       150,  150,  150,  150,  150,  150,  150,  150,  150, 1779,
3148       150,  150,  150,  150,  150,  190,  190,  190,  191,  191,
3149       191,  192,  192,  192, 1781,  193,  193,  193,  194,  194,
3150
3151       194,  190, 1783, 1784,  191, 1786, 1787,  192, 1788,  150,
3152       150,  193,  892,  150,  194,  925,  925,  925, 1791,  925,
3153       150,  913,  925,  150, 1148, 1148, 1148,  150, 1793,  150,
3154       150,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3155       153,  153,  153,  153,  153,  153, 1795,  153,  153,  153,
3156       153,  153,  197,  197,  197,  198,  198,  198,  201,  201,
3157       201, 1800,  202,  202,  202,  686,  686,  686,  197, 1806,
3158      1810,  198, 1811, 1812,  201, 1814,  153,  153,  202,  153,
3159       153,  153,  686, 1826,  933,  933,  933,  153,  933, 1829,
3160       153,  933, 1830, 1831,  153, 1823, 1822,  153,  154,  154,
3161
3162       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3163       154,  154,  154, 1822,  154,  154,  154,  154,  154,  203,
3164       203,  203,  204,  204,  204,  205,  205,  205, 1833,  206,
3165       206,  206,  694,  694,  694,  203, 1834, 1823,  204, 1836,
3166      1832,  205, 1837,  154,  154,  206,  154,  154,  154,  694,
3167      1838,  948,  948,  948,  154,  948, 1832,  154,  948, 1840,
3168      1841,  154, 1824, 1842,  154,  157,  157,  157,  157,  157,
3169       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3170      1846,  157,  157,  157,  157,  157,  207,  207,  207,  208,
3171       208,  208,  211,  211,  211, 1824,  212,  212,  212,  710,
3172
3173       710,  710,  207, 1848, 1851,  208, 1852, 1853,  211, 1854,
3174       157,  157,  212, 1856, 1858,  157,  710, 1447, 1447, 1447,
3175      1859,  157,  158,  158,  158,  158,  158,  158,  158,  158,
3176       158,  158,  158,  158,  158,  158,  158, 1861,  158,  158,
3177       158,  158,  158,  213,  213,  213,  214,  214,  214,  215,
3178       215,  215, 1863,  216,  216,  216,  733,  733,  733,  213,
3179      1866, 1867,  214, 1447, 1869,  215, 1870,  158,  158,  216,
3180      1871, 1873,  158,  733, 1449, 1449, 1449, 1879,  158,  161,
3181       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
3182       161,  161,  161,  161, 1880,  161,  161,  161,  161,  161,
3183
3184       217,  217,  217,  218,  218,  218,  221,  221,  221, 1868,
3185       222,  222,  222,  223,  223,  223,  217, 1868, 1881,  218,
3186      1449, 1882,  221, 1885,  161,  161,  222, 1901,  161,  223,
3187       952,  952,  952, 1902, 1881,  161, 1907, 1908,  161,  162,
3188       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
3189       162,  162,  162,  162, 1909,  162,  162,  162,  162,  162,
3190       224,  224,  224,  225,  225,  225,  226,  226,  226, 1872,
3191       227,  227,  227,  228,  228,  228,  224, 1872, 1913,  225,
3192      1886, 1887,  226, 1915,  162,  162,  227, 1921,  162,  228,
3193       960,  960,  960, 1928,  952,  162, 1886, 1887,  162,  165,
3194
3195       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
3196       165,  165,  165,  165, 1929,  165,  165,  165,  165,  165,
3197       231,  231,  231,  232,  232,  232,  235,  235,  235, 1930,
3198       236,  236,  236,  237,  237,  237,  231, 1943, 1949,  232,
3199      1953, 1956,  235, 1958,  165,  165,  236, 1961,  165,  237,
3200      1452, 1452, 1452, 1963,  960,  165, 1965, 1966,  165, 1455,
3201      1455, 1455, 1465, 1465, 1465,  165,  166,  166,  166,  166,
3202       166,  166,  166,  166,  166,  166,  166,  166,  166,  166,
3203       166, 1967,  166,  166,  166,  166,  166,  238,  238,  238,
3204       239,  239,  239,  240,  240,  240, 1970,  241,  241,  241,
3205
3206       242,  242,  242,  238, 1972, 1977,  239, 1979, 1987,  240,
3207       354,  166,  166,  241, 1988,  166,  242,  967,  967,  967,
3208       354,  967,  166, 1989,  967,  166, 1501, 1501, 1501, 1502,
3209      1502, 1502,  166,  175,  175,  175,  175,  175,  175,  175,
3210       175,  175,  175,  175,  175,  175,  175,  175,  354,  175,
3211       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3212      1990, 1992,  354,  740,  740,  740,  354,  890,  890,  890,
3213       245, 2003, 1501,  246, 2006, 1502,  288, 2003,  175,  175,
3214       740,  745,  745,  745,  175,  890,  288, 2011,  974,  974,
3215       974, 2005,  974, 2012,  360,  974, 2004, 2013,  745,  175,
3216
3217       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3218       176,  176,  176,  176,  176,  288,  176,  176,  176,  176,
3219       176,  288,  360,  757,  757,  757, 2014, 2004,  288, 1503,
3220      1503, 1503,  288,  765,  765,  765, 2018, 2005,  360, 2020,
3221       757,  766,  766,  766, 2021,  176,  176,  772,  772,  772,
3222       765,  176,  979,  979,  979, 2022,  979, 2027,  766,  979,
3223      1590, 1590, 1590, 2034,  772, 2036,  176,  185,  185,  185,
3224       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3225       185,  185, 2037,  185,  185,  185,  185,  185,  774,  774,
3226       774,  786,  786,  786,  787,  787,  787,  799,  799,  799,
3227
3228       807,  807,  807, 2040, 2043,  774, 1590, 2047,  786, 2048,
3229      2049,  787,  185,  185,  799, 2050, 2051,  807,  185, 2052,
3230      2053,  185,  991,  991,  991, 2054,  991, 2055, 2056,  991,
3231      1649, 1649, 1649,  185,  186,  186,  186,  186,  186,  186,
3232       186,  186,  186,  186,  186,  186,  186,  186,  186, 2061,
3233       186,  186,  186,  186,  186,  812,  812,  812,  818,  818,
3234       818,  840,  840,  840,  868,  868,  868,  872,  872,  872,
3235      2062, 2063,  812, 2064, 2082,  818, 2083, 2086,  840,  186,
3236       186,  868, 2087, 2089,  872,  186, 2084, 2085,  186, 1000,
3237      1000, 1000, 2093, 1000, 2084, 2085, 1000, 1652, 1652, 1652,
3238
3239       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3240       195,  195,  195,  195,  195,  195, 2099,  195,  195,  195,
3241       195,  195,  891,  891,  891,  921,  921,  921, 2100, 2101,
3242       922,  922,  922,  924,  924,  924,  928,  928,  928, 1694,
3243       891, 2115, 2119,  921, 2120, 1694,  195,  195,  922, 1694,
3244       924, 2121,  195, 1694,  928, 2123, 2127,  195,  196,  196,
3245       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3246       196,  196,  196, 2130,  196,  196,  196,  196,  196, 2131,
3247       891,  929,  929,  929,  932,  932,  932,  940,  940,  940,
3248       922,  934,  934,  934,  936,  936,  936, 2134, 2132,  929,
3249
3250      2135,  932, 2133,  196,  196,  940, 2132, 2138,  934,  196,
3251      2133,  936, 2145, 2147,  196,  199,  199,  199,  199,  199,
3252       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
3253      2162,  199,  199,  199,  199,  199,  945,  945,  945,  946,
3254       946,  946,  947,  947,  947,  929,  950,  950,  950, 2176,
3255       941,  941,  941, 2177,  945, 2180, 2187,  946, 2188,  947,
3256       199,  199, 2193, 2195,  950, 2207,  199, 2166,  941, 1002,
3257      1002, 1002, 2208, 1002, 2167, 2209, 1002, 1654, 1654, 1654,
3258      2210,  199,  200,  200,  200,  200,  200,  200,  200,  200,
3259       200,  200,  200,  200,  200,  200,  200,  941,  200,  200,
3260
3261       200,  200,  200,  946,  951,  951,  951,  966,  966,  966,
3262      2166,  970,  970,  970,  971,  971,  971,  973,  973,  973,
3263      2211, 2167,  951, 2212,  966, 2213, 2214,  200,  200,  970,
3264      2215, 2216,  971,  200,  973, 1008, 1008, 1008, 2223, 1008,
3265      2224,  951, 1008, 1656, 1656, 1656, 2225, 2227,  200,  209,
3266       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3267       209,  209,  209,  209, 2237,  209,  209,  209,  209,  209,
3268       976,  976,  976,  977,  977,  977,  978,  978,  978, 2238,
3269       971,  981,  981,  981,  982,  982,  982, 2239,  976, 2240,
3270      2241,  977, 2242,  978,  209,  209,  985,  985,  985,  981,
3271
3272       209, 2243,  982,  209, 1011, 1011, 1011, 2246, 1011, 2247,
3273      2252, 1011, 2253, 2259,  985,  209,  210,  210,  210,  210,
3274       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3275       210, 2260,  210,  210,  210,  210,  210, 2261, 2262,  977,
3276       986,  986,  986, 2276, 2277,  982,  990,  990,  990, 2278,
3277       994,  994,  994,  995,  995,  995, 2279, 2281,  986, 2283,
3278      2306,  210,  210,  990,  999,  999,  999,  210,  994, 2307,
3279       210,  995, 1023, 1023, 1023, 2312, 1023, 2313, 2314, 1023,
3280      2300,  999,  210,  219,  219,  219,  219,  219,  219,  219,
3281       219,  219,  219,  219,  219,  219,  219,  219, 2317,  219,
3282
3283       219,  219,  219,  219, 2320,  986, 1001, 1001, 1001, 1003,
3284      1003, 1003, 2300, 2321,  995, 1004, 1004, 1004, 1007, 1007,
3285      1007, 2322, 2323, 1001, 1020, 1020, 1020, 1003,  219,  219,
3286      1010, 1010, 1010, 1004, 1695, 1007,  219, 2301,  219, 2324,
3287      1695,  219, 1020, 2325, 1695,  219, 2326, 1010, 1695,  219,
3288       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3289       220,  220,  220,  220,  220, 2327,  220,  220,  220,  220,
3290       220, 1012, 1012, 1012, 2301, 2328, 1004, 1022, 1022, 1022,
3291      1021, 1021, 1021, 1024, 1024, 1024, 2329, 2330, 1012, 1026,
3292      1026, 1026, 2332, 2333, 1022,  220,  220, 2335, 1021, 2336,
3293
3294      1024, 2337, 2338,  220, 2339,  220, 1026, 2341,  220, 1659,
3295      1659, 1659,  220, 1669, 1669, 1669,  220,  229,  229,  229,
3296       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3297       229,  229, 2342,  229,  229,  229,  229,  229, 1021, 1025,
3298      1025, 1025, 2343, 1025, 2345, 2334, 1025, 2346, 1661, 1661,
3299      1661, 1027, 1027, 1027, 2334, 2348, 1028, 1028, 1028, 1029,
3300      1029, 1029,  229,  229, 1030, 1030, 1030, 2353, 1027, 2354,
3301      1037, 1037, 1037, 1028, 1037, 2340, 1029, 1037, 1045, 1045,
3302      1045, 1030, 1045, 2355, 2340, 1045,  229,  230,  230,  230,
3303       230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
3304
3305       230,  230, 1027,  230,  230,  230,  230,  230, 1028, 1031,
3306      1031, 1031, 1661, 2357, 1029, 2362, 1030, 1703, 1703, 1703,
3307      1036, 1036, 1036, 1038, 1038, 1038, 2363, 1031, 1041, 1041,
3308      1041, 2366,  230,  230, 1032, 1032, 1032, 1036, 2372, 2373,
3309      1038, 1050, 1050, 1050, 2375, 1050, 1041, 2384, 1050, 1663,
3310      1663, 1663, 1032, 1705, 1705, 1705,  230,  233,  233,  233,
3311       233,  233,  233,  233,  233,  233,  233,  233,  233,  233,
3312       233,  233, 2386,  233,  233,  233,  233,  233, 1042, 1042,
3313      1042, 1032, 1044, 1044, 1044, 2389, 1046, 1046, 1046, 1047,
3314      1047, 1047, 1049, 1049, 1049, 1663, 1042, 2391, 2410, 1044,
3315
3316      2412, 2415,  233,  233, 1046, 2411, 2416, 1047, 2418, 1049,
3317      1671, 1671, 1671,  233,  234,  234,  234,  234,  234,  234,
3318       234,  234,  234,  234,  234,  234,  234,  234,  234, 1042,
3319       234,  234,  234,  234,  234, 1052, 1052, 1052, 2410, 1053,
3320      1053, 1053, 2411, 2412, 1055, 1055, 1055, 1056, 1056, 1056,
3321      1047, 1056, 2419, 1052, 1056, 2420, 1671, 1053, 2425,  234,
3322       234, 1055, 1076, 1076, 1076, 2426, 1076, 2427, 2428, 1076,
3323       234,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3324       243,  243,  243,  243,  243,  243, 1053,  243,  243,  243,
3325       243,  243, 1060, 1060, 1060, 1062, 1062, 1062, 1063, 1063,
3326
3327      1063, 1061, 1061, 1061, 1064, 1064, 1064, 1065, 1065, 1065,
3328      1060, 2429, 1062, 2430, 2431, 1063,  243,  243, 2432, 1061,
3329      2433, 1064, 1068, 1068, 1068, 1065, 2434,  243, 1100, 1100,
3330      1100, 2435, 1100, 2437, 2438, 1100, 1706, 1706, 1706, 1068,
3331       243,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3332       244,  244,  244,  244,  244,  244, 1061,  244,  244,  244,
3333       244,  244, 2439, 1064, 1066, 1066, 1066, 1069, 1069, 1069,
3334      2423, 1070, 1070, 1070, 1071, 1071, 1071, 1072, 1072, 1072,
3335      2423, 2440, 1066, 2423, 1069, 2441,  244,  244, 1070, 2442,
3336      2443, 1071, 1075, 1075, 1075, 1072, 2444,  244, 1073, 1073,
3337
3338      1073, 1077, 1077, 1077, 1078, 1078, 1078, 2445, 2446, 1075,
3339       244,  286, 1079, 1079, 1079, 2447, 1073, 1069,  286, 1077,
3340      2448, 2424, 1078, 2449, 2450, 1066, 2451,  286,  286, 1079,
3341      2452, 2424, 1069, 1071, 2424, 1073, 1080, 1080, 1080, 2454,
3342      1081, 1081, 1081, 1082, 1082, 1082, 2458, 1083, 1083, 1083,
3343      1086, 1086, 1086, 1080, 2465,  286,  286,  286, 1081, 1078,
3344      2466, 1082,  286,  286, 1083, 2470,  286,  286, 1086, 2473,
3345       286, 2514,  286,  286,  286,  351, 2516, 2517, 1084, 1084,
3346      1084, 2518,  351, 1085, 1085, 1085, 1087, 1087, 1087, 2521,
3347      2512,  351,  351, 2511, 2522, 1084, 2524, 1093, 1093, 1093,
3348
3349      1085, 1099, 1099, 1099, 1087, 1094, 1094, 1094, 1103, 1103,
3350      1103, 1097, 1097, 1097, 1082, 1093, 2525, 2527, 1099,  351,
3351       351,  351, 2511, 1094, 2528, 1103,  351,  351, 1084, 1097,
3352       351,  351, 2512, 2529,  351, 2530,  351,  351,  351, 2531,
3353      1098, 1098, 1098, 1084, 1101, 1101, 1101, 1102, 1102, 1102,
3354      2513, 2523, 1104, 1104, 1104, 2533, 1104, 1087, 1098, 1104,
3355      2534, 2535, 1101, 2536, 2523, 1102, 1106, 1106, 1106, 1094,
3356      1107, 1107, 1107, 1122, 1122, 1122, 1123, 1123, 1123, 1125,
3357      1125, 1125, 2526, 2539, 1106, 1155, 1155, 1155, 1107, 2540,
3358      2541, 1122, 2513, 2542, 1123, 2526, 2543, 1125, 1156, 1156,
3359
3360      1156, 2544, 1155, 2545, 1098, 1157, 1157, 1157, 1102, 1159,
3361      1159, 1159, 1160, 1160, 1160, 2546, 1156, 1161, 1161, 1161,
3362      2547, 1161, 2548, 1157, 1161, 2549, 1125, 1159, 2550, 1160,
3363      1164, 1164, 1164, 2551, 1107, 1166, 1166, 1166, 1167, 1167,
3364      1167, 1169, 1169, 1169, 1171, 1171, 1171, 1164, 1171, 2552,
3365      2553, 1171, 2555, 1166, 2565, 2566, 1167, 2567, 1159, 1169,
3366      1174, 1174, 1174, 1175, 1175, 1175, 2496, 1175, 2571, 2589,
3367      1175, 2590, 1176, 1176, 1176, 2591, 2496, 1174, 1177, 1177,
3368      1177, 2592, 2496, 1178, 1178, 1178, 2593, 1178, 1169, 1176,
3369      1178, 1164, 1180, 1180, 1180, 1177, 1182, 1182, 1182, 1183,
3370
3371      1183, 1183, 1185, 1185, 1185, 1187, 1187, 1187, 2594, 1180,
3372      1189, 1189, 1189, 2598, 1182, 2606, 2609, 1183, 2610, 2603,
3373      1185, 2614, 1187, 1190, 1190, 1190, 2598, 2599, 1189, 1192,
3374      1192, 1192, 1193, 1193, 1193, 2615, 1193, 2616, 2617, 1193,
3375      2599, 1190, 1197, 1197, 1197, 2618, 2604, 1192, 1198, 1198,
3376      1198, 1200, 1200, 1200, 1214, 1214, 1214, 2619, 1214, 2620,
3377      1197, 1214, 1185, 1218, 1218, 1218, 1198, 2603, 2621, 1200,
3378      1219, 1219, 1219, 1220, 1220, 1220, 1192, 1222, 1222, 1222,
3379      1218, 2604, 1224, 1224, 1224, 2623, 1224, 2624, 1219, 1224,
3380      2625, 1220, 1228, 1228, 1228, 1222, 1229, 1229, 1229, 1231,
3381
3382      1231, 1231, 1232, 1232, 1232, 2626, 1232, 2627, 2628, 1232,
3383      1228, 1235, 1235, 1235, 1229, 2629, 2630, 1231, 1236, 1236,
3384      1236, 1237, 1237, 1237, 1239, 1239, 1239, 2632, 1235, 1240,
3385      1240, 1240, 2633, 1241, 1241, 1241, 1236, 2634, 1222, 1237,
3386      2635, 2636, 1239, 1743, 1743, 1743, 1240, 1242, 1242, 1242,
3387      1241, 1243, 1243, 1243, 1245, 1245, 1245, 1248, 1248, 1248,
3388      1231, 1241, 1254, 1254, 1254, 1242, 1249, 1249, 1249, 1243,
3389      1249, 2637, 1245, 1249, 1248, 1255, 1255, 1255, 2638, 2639,
3390      1254, 1257, 1257, 1257, 1260, 1260, 1260, 2640, 1261, 1261,
3391      1261, 1239, 1261, 1255, 2641, 1261, 1264, 1264, 1264, 1257,
3392
3393      1264, 1260, 2642, 1264, 1267, 1267, 1267, 1268, 1268, 1268,
3394      1270, 1270, 1270, 2497, 1275, 1275, 1275, 2643, 1275, 2644,
3395      1245, 1275, 1267, 2497, 2645, 1268, 2646, 2652, 1270, 2497,
3396      1278, 1278, 1278, 1279, 1279, 1279, 2656, 1279, 2657, 2658,
3397      1279, 1282, 1282, 1282, 2659, 2676, 1257, 1278, 1283, 1283,
3398      1283, 2677, 1283, 2678, 2679, 1283, 2680, 2681, 1282, 1291,
3399      1291, 1291, 1292, 1292, 1292, 1294, 1294, 1294, 2671, 1295,
3400      1295, 1295, 2672, 1295, 2684, 1270, 1295, 1291, 2671, 2674,
3401      1292, 2685, 2672, 1294, 1298, 1298, 1298, 2686, 1298, 2674,
3402      2675, 1298, 1301, 1301, 1301, 1302, 1302, 1302, 2687, 1302,
3403
3404      2675, 2688, 1302, 1307, 1307, 1307, 1308, 1308, 1308, 1301,
3405      1310, 1310, 1310, 1315, 1315, 1315, 2696, 1315, 2697, 2698,
3406      1315, 1307, 2699, 2700, 1308, 1318, 1318, 1318, 1310, 1319,
3407      1319, 1319, 1294, 1319, 2701, 2688, 1319, 1322, 1322, 1322,
3408      2702, 2703, 1318, 1323, 1323, 1323, 1325, 1325, 1325, 1327,
3409      1327, 1327, 2706, 1327, 2707, 1322, 1327, 2709, 1310, 2710,
3410      2711, 1323, 2713, 2715, 1325, 1330, 1330, 1330, 1331, 1331,
3411      1331, 1333, 1333, 1333, 1335, 1335, 1335, 2716, 1335, 2717,
3412      2720, 1335, 2721, 1330, 2722, 2723, 1331, 2724, 2727, 1333,
3413      1339, 1339, 1339, 1340, 1340, 1340, 2728, 1325, 1342, 1342,
3414
3415      1342, 2735, 1344, 1344, 1344, 2736, 1344, 2737, 1339, 1344,
3416      2739, 1340, 1350, 1350, 1350, 2745, 1342, 1351, 1351, 1351,
3417      2746, 1353, 1353, 1353, 1354, 1354, 1354, 1355, 1355, 1355,
3418      1350, 1355, 2747, 2748, 1355, 1351, 2749, 2750, 1333, 1353,
3419      2751, 1354, 1356, 1356, 1356, 2752, 2753, 1342, 1357, 1357,
3420      1357, 2754, 1357, 2756, 2757, 1357, 1359, 1359, 1359, 1356,
3421      1360, 1360, 1360, 2762, 1362, 1362, 1362, 1364, 1364, 1364,
3422      2763, 1368, 1368, 1368, 1359, 1835, 1835, 1835, 1360, 2764,
3423      2765, 1353, 1362, 2775, 1364, 1365, 1365, 1365, 1368, 1365,
3424      2776, 2777, 1365, 1369, 1369, 1369, 2778, 1369, 2779, 2780,
3425
3426      1369, 1371, 1371, 1371, 1372, 1372, 1372, 1374, 1374, 1374,
3427      1376, 1376, 1376, 2781, 1376, 2782, 2786, 1376, 2787, 1371,
3428      2788, 2766, 1372, 2789, 2790, 1374, 1379, 1379, 1379, 2791,
3429      2793, 1362, 1380, 1380, 1380, 1382, 1382, 1382, 1383, 1383,
3430      1383, 1384, 1384, 1384, 1379, 1384, 2794, 2796, 1384, 2797,
3431      1380, 2798, 2799, 1382, 2801, 1383, 1385, 1385, 1385, 1386,
3432      1386, 1386, 2802, 1386, 2766, 2806, 1386, 1387, 1387, 1387,
3433      2807, 1374, 2808, 1385, 1388, 1388, 1388, 2811, 1390, 1390,
3434      1390, 1391, 1391, 1391, 2816, 1387, 1392, 1392, 1392, 2817,
3435      1392, 2818, 1388, 1392, 2819, 1382, 1390, 2820, 1391, 1395,
3436
3437      1395, 1395, 1396, 1396, 1396, 2821, 1396, 2822, 2823, 1396,
3438      1397, 1397, 1397, 1398, 1398, 1398, 1395, 1400, 1400, 1400,
3439      1402, 1402, 1402, 1406, 1406, 1406, 2824, 2825, 1397, 2826,
3440      2827, 1398, 1407, 1407, 1407, 1400, 2829, 1402, 2830, 2831,
3441      1390, 1406, 1409, 1409, 1409, 1412, 1412, 1412, 2832, 2839,
3442      1407, 1413, 1413, 1413, 1415, 1415, 1415, 1416, 1416, 1416,
3443      1409, 1416, 2842, 1412, 1416, 1419, 1419, 1419, 2833, 1413,
3444      2843, 2835, 1415, 1420, 1420, 1420, 1422, 1422, 1422, 1400,
3445      1423, 1423, 1423, 1419, 1423, 2835, 2846, 1423, 1427, 1427,
3446      1427, 1420, 2848, 2836, 1422, 1428, 1428, 1428, 1430, 1430,
3447
3448      1430, 2849, 2851, 1409, 2836, 2852, 1427, 1415, 1432, 1432,
3449      1432, 2855, 2856, 1428, 2833, 2857, 1430, 1439, 1439, 1439,
3450      1468, 1468, 1468, 1470, 1470, 1470, 1432, 1432, 2858, 1471,
3451      1471, 1471, 1496, 1496, 1496, 1439, 1422, 1468, 1469, 1469,
3452      1469, 1470, 1469, 2859, 2860, 1469, 1471, 1472, 1472, 1472,
3453      1496, 1472, 2861, 2862, 1472, 1475, 1475, 1475, 2863, 1430,
3454      1477, 1477, 1477, 2864, 1477, 2865, 2867, 1477, 1480, 1480,
3455      1480, 2869, 2868, 1475, 2877, 1481, 1481, 1481, 2867, 1481,
3456      2874, 1470, 1481, 1439, 2868, 1480, 1482, 1482, 1482, 2875,
3457      1482, 2879, 2874, 1482, 1486, 1486, 1486, 2881, 1487, 1487,
3458
3459      1487, 2875, 1487, 2883, 1475, 1487, 1489, 1489, 1489, 2891,
3460      2893, 1486, 1491, 1491, 1491, 1492, 1492, 1492, 2897, 1492,
3461      2896, 2896, 1492, 2899, 1489, 1493, 1493, 1493, 2894, 1491,
3462      1494, 1494, 1494, 1511, 1511, 1511, 1512, 1512, 1512, 1513,
3463      1513, 1513, 1493, 1513, 2898, 2901, 1513, 2902, 1494, 2903,
3464      1511, 2904, 2911, 1512, 2910, 2898, 1489, 1514, 1514, 1514,
3465      1517, 1517, 1517, 1518, 1518, 1518, 1519, 1519, 1519, 2894,
3466      1519, 2915, 2910, 1519, 2920, 1514, 2895, 2914, 1517, 1494,
3467      1518, 1520, 1520, 1520, 1521, 1521, 1521, 1522, 1522, 1522,
3468      2895, 1522, 2914, 2920, 1522, 1524, 1524, 1524, 2921, 1520,
3469
3470      2923, 1521, 1527, 1527, 1527, 1528, 1528, 1528, 2926, 1528,
3471      2928, 2933, 1528, 1524, 1529, 1529, 1529, 2934, 2936, 1527,
3472      2922, 1514, 2937, 2938, 1517, 1530, 1530, 1530, 1531, 1531,
3473      1531, 1529, 1534, 1534, 1534, 2940, 1535, 1535, 1535, 2922,
3474      1535, 1520, 1530, 1535, 2925, 2941, 1531, 2927, 2942, 1534,
3475      1536, 1536, 1536, 1538, 1538, 1538, 1524, 1541, 1541, 1541,
3476      1542, 1542, 1542, 2925, 1542, 2943, 2927, 1542, 1536, 2945,
3477      1538, 1530, 2946, 2948, 1541, 1543, 1543, 1543, 2949, 1543,
3478      2956, 2957, 1543, 1546, 1546, 1546, 1553, 1553, 1553, 1554,
3479      1554, 1554, 2958, 1554, 1531, 2959, 1554, 1557, 1557, 1557,
3480
3481      1546, 1558, 1558, 1558, 1553, 1559, 1559, 1559, 1560, 1560,
3482      1560, 1561, 1561, 1561, 1557, 2960, 1536, 2961, 1558, 1563,
3483      1563, 1563, 1559, 2964, 2965, 1560, 1566, 1566, 1566, 1561,
3484      1566, 2966, 2967, 1566, 2968, 2969, 1563, 1569, 1569, 1569,
3485      1571, 1571, 1571, 1573, 1573, 1573, 1576, 1576, 1576, 2970,
3486      2971, 1553, 1559, 2973, 1569, 1580, 1580, 1580, 1571, 2975,
3487      2977, 1573, 2978, 2980, 1576, 2991, 1561, 1581, 1581, 1581,
3488      2992, 1558, 1580, 1582, 1582, 1582, 2989, 1582, 1560, 2993,
3489      1582, 2994, 1585, 1585, 1585, 1581, 1585, 2990, 2989, 1585,
3490      1589, 1589, 1589, 1591, 1591, 1591, 2995, 1591, 2996, 2990,
3491
3492      1591, 1580, 3000, 1576, 1571, 1600, 1600, 1600, 1589, 1573,
3493      1596, 1596, 1596, 3001, 1596, 3002, 3003, 1596, 1602, 1602,
3494      1602, 3004, 3005, 1600, 1581, 1603, 1603, 1603, 3006, 1603,
3495      3007, 3010, 1603, 1606, 1606, 1606, 1602, 1606, 3011, 3008,
3496      1606, 1609, 1609, 1609, 1610, 1610, 1610, 3012, 1610, 3013,
3497      3014, 1610, 3015, 1615, 1615, 1615, 1589, 1615, 3016, 1609,
3498      1615, 1618, 1618, 1618, 3008, 3017, 1600, 1620, 1620, 1620,
3499      1621, 1621, 1621, 3018, 1621, 1602, 3019, 1621, 3020, 1618,
3500      1625, 1625, 1625, 3021, 1620, 1627, 1627, 1627, 1609, 1628,
3501      1628, 1628, 1629, 1629, 1629, 1630, 1630, 1630, 1625, 1631,
3502
3503      1631, 1631, 1627, 1634, 1634, 1634, 3022, 1628, 1618, 3023,
3504      1629, 3024, 1630, 1641, 1641, 1641, 3025, 1631, 1672, 1672,
3505      1672, 1634, 1672, 3026, 3027, 1672, 1696, 1696, 1696, 1625,
3506      3028, 1641, 1675, 1675, 1675, 1676, 1676, 1676, 3029, 1676,
3507      3032, 3035, 1676, 1696, 1629, 1681, 1681, 1681, 3036, 3037,
3508      1675, 1683, 1683, 1683, 1634, 1683, 1628, 3038, 1683, 3032,
3509      3039, 1631, 3040, 1681, 3041, 1641, 1687, 1687, 1687, 3042,
3510      1687, 1634, 3043, 1687, 1691, 1691, 1691, 1693, 1693, 1693,
3511      3044, 1693, 3045, 3046, 1693, 3047, 1697, 1697, 1697, 3048,
3512      1697, 3049, 1691, 1697, 3050, 3051, 1681, 3052, 3054, 1675,
3513
3514      1698, 1698, 1698, 1707, 1707, 1707, 1711, 1711, 1711, 1712,
3515      1712, 1712, 1714, 1714, 1714, 1715, 1715, 1715, 1698, 1715,
3516      3055, 3056, 1715, 1716, 1716, 1716, 3053, 1716, 3057, 1714,
3517      1716, 1719, 1719, 1719, 3058, 1691, 1721, 1721, 1721, 1722,
3518      1722, 1722, 3059, 1723, 1723, 1723, 3053, 1723, 3060, 1719,
3519      1723, 1698, 3061, 1721, 1726, 1726, 1726, 1722, 1727, 1727,
3520      1727, 3062, 1727, 3063, 3064, 1727, 3065, 1707, 3066, 3067,
3521      1711, 3068, 1726, 1712, 1730, 1730, 1730, 3069, 1719, 1731,
3522      1731, 1731, 3070, 1734, 1734, 1734, 1722, 1734, 3071, 3072,
3523      1734, 1730, 1737, 1737, 1737, 3072, 3075, 1731, 1738, 1738,
3524
3525      1738, 3076, 1738, 3077, 3078, 1738, 1739, 1739, 1739, 1737,
3526      1740, 1740, 1740, 3079, 1740, 3080, 3082, 1740, 3083, 3085,
3527      1726, 3086, 3088, 1739, 1742, 1742, 1742, 1745, 1745, 1745,
3528      3089, 1745, 3092, 3091, 1745, 1748, 1748, 1748, 1750, 1750,
3529      1750, 3093, 1742, 1731, 1751, 1751, 1751, 3091, 1751, 3094,
3530      3095, 1751, 3097, 1748, 3099, 1750, 1752, 1752, 1752, 1754,
3531      1754, 1754, 3101, 1754, 3103, 3105, 1754, 1757, 1757, 1757,
3532      1758, 1758, 1758, 1752, 1758, 3106, 3107, 1758, 1759, 1759,
3533      1759, 1748, 3108, 3109, 1757, 1764, 1764, 1764, 1765, 1765,
3534      1765, 1766, 1766, 1766, 3110, 1759, 1767, 1767, 1767, 3111,
3535
3536      1767, 3112, 1764, 1767, 3114, 3116, 1765, 3118, 1766, 1768,
3537      1768, 1768, 1769, 1769, 1769, 1770, 1770, 1770, 1771, 1771,
3538      1771, 1773, 1773, 1773, 3119, 3120, 1768, 3121, 3146, 1769,
3539      3180, 3130, 1770, 1774, 1774, 1774, 1771, 1774, 1773, 3150,
3540      1774, 1775, 1775, 1775, 1777, 1777, 1777, 3136, 1778, 1778,
3541      1778, 3136, 1778, 3137, 1765, 1778, 3122, 3137, 1775, 3180,
3542      3138, 1777, 1780, 1780, 1780, 1782, 1782, 1782, 3138, 3146,
3543      1769, 1785, 1785, 1785, 1789, 1789, 1789, 3123, 1771, 3130,
3544      1780, 1499, 1498, 1782, 3142, 3150, 1790, 1790, 1790, 1785,
3545      1790, 1789, 3122, 1790, 1792, 1792, 1792, 1794, 1794, 1794,
3546
3547      1796, 1796, 1796, 1797, 1797, 1797, 1798, 1798, 1798, 1799,
3548      1799, 1799, 1792, 3123, 3139, 1794, 1782, 1796, 3131, 1785,
3549      1797, 3132, 3139, 1798, 1802, 1802, 1802, 1799, 1801, 1801,
3550      1801, 3142, 1803, 1803, 1803, 1804, 1804, 1804, 1805, 1805,
3551      1805, 3154, 1802, 1807, 1807, 1807, 1801, 1807, 1794, 1803,
3552      1807, 3133, 1804, 1813, 1813, 1813, 1805, 3134, 1815, 1815,
3553      1815, 1816, 1816, 1816, 3140, 1816, 3131, 1495, 1816, 3132,
3554      1798, 1813, 3140, 3154, 1801, 1815, 1799, 1817, 1817, 1817,
3555      1818, 1818, 1818, 1819, 1819, 1819, 1820, 1820, 1820, 1802,
3556      1820, 1490, 1488, 1820, 3141, 1817, 3144, 3145, 1818, 3133,
3557
3558      1819, 3134, 3141, 1805, 1813, 1821, 1821, 1821, 1827, 1827,
3559      1827, 1828, 1828, 1828, 1839, 1839, 1839, 1843, 1843, 1843,
3560      1844, 1844, 1844, 1821, 3143, 1827, 1845, 1845, 1845, 1828,
3561      1847, 1847, 1847, 3144, 3145, 1818, 1817, 1849, 1849, 1849,
3562      1850, 1850, 1850, 1855, 1855, 1855, 1857, 1857, 1857, 1860,
3563      1860, 1860, 1862, 1862, 1862, 1864, 1864, 1864, 1865, 1865,
3564      1865, 1874, 1874, 1874, 1857, 1874, 3148, 1860, 1874, 1862,
3565      3156, 3143, 1828, 1864, 3135, 1865, 1877, 1877, 1877, 3156,
3566      1878, 1878, 1878, 1883, 1883, 1883, 1884, 1884, 1884, 1888,
3567      1888, 1888, 1485, 3151, 1877, 3188, 1857, 1878, 1889, 1889,
3568
3569      1889, 3148, 1889, 3188, 3147, 1889, 1888, 1892, 1892, 1892,
3570      1893, 1893, 1893, 1476, 1864, 1894, 1894, 1894, 3135, 1895,
3571      1895, 1895, 1877, 1895, 3149, 1892, 1895, 1893, 1896, 1896,
3572      1896, 3152, 1894, 1897, 1897, 1897, 1898, 1898, 1898, 3151,
3573      1899, 1899, 1899, 3157, 1899, 3147, 1896, 1899, 1900, 1900,
3574      1900, 1897, 3157, 1898, 1903, 1903, 1903, 3153, 1903, 3149,
3575      1892, 1903, 1474, 1906, 1906, 1906, 1900, 1906, 3152, 3160,
3576      1906, 1910, 1910, 1910, 1912, 1912, 1912, 3161, 1914, 1914,
3577      1914, 1896, 1473, 1916, 1916, 1916, 3158, 1916, 3184, 1910,
3578      1916, 1919, 1919, 1919, 3153, 1900, 1914, 1920, 1920, 1920,
3579
3580      3162, 1920, 3155, 3160, 1920, 1922, 1922, 1922, 1919, 1922,
3581      3163, 3161, 1922, 1925, 1925, 1925, 1926, 1926, 1926, 3159,
3582      1926, 3158, 3184, 1926, 1927, 1927, 1927, 1931, 1931, 1931,
3583      1925, 1932, 1932, 1932, 3155, 1932, 1914, 3164, 1932, 3168,
3584      1467, 1927, 3170, 3162, 1931, 1933, 1933, 1933, 1934, 1934,
3585      1934, 3170, 1934, 3163, 3159, 1934, 1937, 1937, 1937, 3169,
3586      1938, 1938, 1938, 1933, 1938, 3165, 1466, 1938, 1939, 1939,
3587      1939, 3171, 3168, 1937, 1940, 1940, 1940, 1941, 1941, 1941,
3588      3171, 1941, 3172, 3164, 1941, 1939, 1942, 1942, 1942, 1464,
3589      1463, 1940, 3169, 1944, 1944, 1944, 1933, 1944, 3174, 3173,
3590
3591      1944, 1947, 1947, 1947, 1942, 1948, 1948, 1948, 3166, 1948,
3592      1462, 3165, 1948, 1950, 1950, 1950, 3167, 1950, 1947, 3172,
3593      1950, 1954, 1954, 1954, 1957, 1957, 1957, 1959, 1959, 1959,
3594      1960, 1960, 1960, 1962, 1962, 1962, 3173, 1942, 3178, 1954,
3595      3174, 3179, 1957, 3166, 1959, 1964, 1964, 1964, 1960, 1964,
3596      1962, 3167, 1964, 1968, 1968, 1968, 1971, 1971, 1971, 1973,
3597      1973, 1973, 1974, 1974, 1974, 3189, 1974, 3176, 3182, 1974,
3598      3175, 1968, 3177, 3189, 1971, 3178, 1973, 3182, 3179, 1962,
3599      1975, 1975, 1975, 1976, 1976, 1976, 3181, 1976, 1957, 1461,
3600      1976, 1960, 1978, 1978, 1978, 1460, 3185, 1975, 1980, 1980,
3601
3602      1980, 1981, 1981, 1981, 1982, 1982, 1982, 1983, 1983, 1983,
3603      1978, 1983, 3175, 3176, 1983, 3181, 1980, 3196, 3177, 1981,
3604      1459, 1982, 1984, 1984, 1984, 1985, 1985, 1985, 3194, 1985,
3605      3185, 3183, 1985, 1986, 1986, 1986, 1991, 1991, 1991, 1984,
3606      3183, 1993, 1993, 1993, 1458, 1993, 3190, 1980, 1993, 3192,
3607      3186, 1986, 3196, 3187, 1991, 1996, 1996, 1996, 1978, 1997,
3608      1997, 1997, 3197, 1998, 1998, 1998, 1981, 1998, 3202, 3194,
3609      1998, 1457, 1456, 1996, 2001, 2001, 2001, 1997, 2007, 2007,
3610      2007, 2008, 2008, 2008, 1454, 2008, 3192, 1453, 2008, 2009,
3611      2009, 2009, 2001, 3190, 1451, 2007, 3186, 3197, 1986, 3187,
3612
3613      3202, 1991, 2010, 2010, 2010, 3191, 1996, 2009, 2015, 2015,
3614      2015, 1450, 1997, 2016, 2016, 2016, 2017, 2017, 2017, 2019,
3615      2019, 2019, 2023, 2023, 2023, 2024, 2024, 2024, 2025, 2025,
3616      2025, 2026, 2026, 2026, 2028, 2028, 2028, 2029, 2029, 2029,
3617      2030, 2030, 2030, 2031, 2031, 2031, 2032, 2032, 2032, 2033,
3618      2033, 2033, 3191, 2009, 2035, 2035, 2035, 2038, 2038, 2038,
3619      3204, 2041, 2041, 2041, 2042, 2042, 2042, 3193, 2042, 3204,
3620      1448, 2042, 2035, 1446, 3212, 2038, 1445, 2026, 2041, 2044,
3621      2044, 2044, 2045, 2045, 2045, 2046, 2046, 2046, 3212, 2046,
3622      1444, 3195, 2046, 2057, 2057, 2057, 3200, 2044, 3203, 2045,
3623
3624      2058, 2058, 2058, 3198, 3193, 2035, 2059, 2059, 2059, 3201,
3625      2059, 2057, 1443, 2059, 2060, 2060, 2060, 2058, 2065, 2065,
3626      2065, 2066, 2066, 2066, 2067, 2067, 2067, 2068, 2068, 2068,
3627      3203, 2068, 3195, 3200, 2068, 2069, 2069, 2069, 2070, 2070,
3628      2070, 2067, 2057, 2071, 2071, 2071, 3201, 2071, 3199, 3198,
3629      2071, 3208, 3205, 2069, 3209, 2070, 2072, 2072, 2072, 1442,
3630      2072, 3205, 1441, 2072, 2075, 2075, 2075, 2066, 3206, 2076,
3631      2076, 2076, 2078, 2078, 2078, 1440, 2078, 3207, 1438, 2078,
3632      1437, 1436, 2075, 2081, 2081, 2081, 2069, 2076, 2088, 2088,
3633      2088, 2090, 2090, 2090, 3199, 2090, 1435, 1426, 2090, 3208,
3634
3635      3206, 2081, 3209, 2094, 2094, 2094, 2088, 2094, 3210, 3207,
3636      2094, 2097, 2097, 2097, 1411, 2075, 2098, 2098, 2098, 3213,
3637      2098, 3211, 1410, 2098, 1405, 2102, 2102, 2102, 2097, 2102,
3638      3213, 1404, 2102, 2105, 2105, 2105, 2081, 2106, 2106, 2106,
3639      3210, 2106, 1403, 2088, 2106, 2109, 2109, 2109, 2110, 2110,
3640      2110, 2105, 2110, 3211, 1401, 2110, 2111, 2111, 2111, 1394,
3641      2111, 1393, 2109, 2111, 2114, 2114, 2114, 2116, 2116, 2116,
3642      1375, 2116, 1370, 1367, 2116, 2122, 2122, 2122, 2124, 2124,
3643      2124, 1366, 2114, 2125, 2125, 2125, 1363, 2125, 1358, 1349,
3644      2125, 1348, 1347, 2122, 1343, 2124, 1338, 2105, 2126, 2126,
3645
3646      2126, 2128, 2128, 2128, 2129, 2129, 2129, 1334, 2129, 1326,
3647      1321, 2129, 1320, 2136, 2136, 2136, 2126, 1314, 2128, 2139,
3648      2139, 2139, 1313, 2139, 1312, 1311, 2139, 2146, 2146, 2146,
3649      2114, 2136, 2142, 2142, 2142, 1306, 2142, 1305, 1304, 2142,
3650      1303, 2148, 2148, 2148, 1290, 2146, 2149, 2149, 2149, 2150,
3651      2150, 2150, 1289, 2150, 1288, 1287, 2150, 1286, 2126, 2148,
3652      1285, 2153, 2153, 2153, 2149, 2153, 1284, 1274, 2153, 2156,
3653      2156, 2156, 1273, 2157, 2157, 2157, 1272, 1271, 2146, 2158,
3654      2158, 2158, 2149, 2159, 2159, 2159, 1259, 2156, 1258, 2156,
3655      2157, 2160, 2160, 2160, 1253, 1252, 2158, 2161, 2161, 2161,
3656
3657      2159, 2163, 2163, 2163, 2164, 2164, 2164, 2148, 2160, 2165,
3658      2165, 2165, 2168, 2168, 2168, 2161, 2169, 2169, 2169, 2163,
3659      2169, 1247, 2164, 2169, 2172, 2172, 2172, 2165, 1246, 1227,
3660      2158, 2173, 2173, 2173, 2174, 2174, 2174, 2175, 2175, 2175,
3661      1223, 1217, 2172, 2178, 2178, 2178, 1213, 2159, 1212, 1211,
3662      2160, 2179, 2179, 2179, 2181, 2181, 2181, 2182, 2182, 2182,
3663      1210, 2163, 2161, 2183, 2183, 2183, 2184, 2184, 2184, 2185,
3664      2185, 2185, 2186, 2186, 2186, 2189, 2189, 2189, 2190, 2190,
3665      2190, 1209, 1208, 2172, 2191, 2191, 2191, 2192, 2192, 2192,
3666      2194, 2194, 2194, 2197, 2197, 2197, 2198, 2198, 2198, 1207,
3667
3668      2198, 1205, 1204, 2198, 2201, 2201, 2201, 1203, 2194, 1202,
3669      2197, 2202, 2202, 2202, 1201, 2204, 2204, 2204, 1196, 2204,
3670      1188, 2201, 2204, 2217, 2217, 2217, 2218, 2218, 2218, 2202,
3671      2218, 2219, 2219, 2218, 2219, 1186, 2220, 2220, 1181, 2220,
3672      1179, 2217, 2219, 1170, 1165, 2219, 1154, 2220, 1152, 2219,
3673      2220, 2221, 2221, 2221, 2220, 2222, 2222, 2222, 2226, 2226,
3674      2226, 2228, 2228, 2228, 1151, 2228, 1150, 1149, 2228, 1147,
3675      2201, 2231, 2231, 2231, 2232, 2232, 2232, 1146, 2232, 1145,
3676      1144, 2232, 1143, 1142, 2217, 2235, 2235, 2235, 1140, 2231,
3677      2236, 2236, 2236, 2244, 2244, 2244, 2245, 2245, 2245, 1139,
3678
3679      2248, 2248, 2248, 2235, 2248, 1138, 1137, 2248, 2236, 2251,
3680      2251, 2251, 1136, 1135, 2245, 1134, 1133, 2231, 2254, 2254,
3681      2254, 2255, 2255, 2255, 1132, 2255, 2251, 1131, 2255, 2258,
3682      2258, 2258, 2263, 2263, 2263, 1130, 2254, 2265, 2265, 2265,
3683      1129, 2236, 2266, 2266, 2266, 1128, 2266, 2258, 1127, 2266,
3684      2263, 2269, 2269, 2269, 2265, 1121, 2245, 2270, 2270, 2270,
3685      2271, 2271, 2271, 1120, 2271, 1119, 1116, 2271, 1115, 2269,
3686      2274, 2274, 2274, 1114, 2270, 2275, 2275, 2275, 2280, 2280,
3687      2280, 2282, 2282, 2282, 2285, 2285, 2285, 2274, 2284, 2284,
3688      2284, 1112, 2275, 1108, 1105, 2280, 2286, 2286, 2286, 1096,
3689
3690      1095, 2285, 2269, 2270, 1092, 1091, 2284, 1090, 2287, 2287,
3691      2287, 2289, 2289, 2289, 2286, 2288, 2288, 2288, 1089, 1088,
3692      2290, 2290, 2290, 1074, 2290, 2274, 2287, 2290, 2289, 2280,
3693      2291, 2291, 2291, 2288, 1067, 1059, 2275, 2292, 2292, 2292,
3694      2293, 2293, 2293, 2294, 2294, 2294, 1058, 2291, 2295, 2295,
3695      2295, 1057, 2288, 1054, 2292, 1051, 2286, 2293, 2296, 2296,
3696      2296, 2294, 2297, 2297, 2297, 2299, 2299, 2299, 1048, 2287,
3697      2302, 2302, 2302, 2304, 2304, 2304, 2296, 2303, 2303, 2303,
3698      2297, 1043, 1040, 2299, 2305, 2305, 2305, 1039, 2292, 1035,
3699      1033, 2293, 2308, 2308, 2308, 2303, 2309, 2309, 2309, 2310,
3700
3701      2310, 2310, 2311, 2311, 2311, 2315, 2315, 2315, 2318, 2318,
3702      2318, 2319, 2319, 2319, 1019, 2319, 1018, 1017, 2319, 2331,
3703      2331, 2331, 1016, 2315, 2296, 2318, 1015, 2299, 2344, 2344,
3704      2344, 2347, 2347, 2347, 2349, 2349, 2349, 2331, 2350, 2350,
3705      2350, 2352, 2352, 2352, 2359, 2359, 2359, 2360, 2360, 2360,
3706      1014, 1013, 2349, 2361, 2361, 2361, 2350, 1009, 1005, 2352,
3707       998, 2359,  997, 2364, 2364, 2364, 2365, 2365, 2365,  996,
3708      2365, 2361,  993, 2365, 2367, 2367, 2367,  992,  989, 2331,
3709      2364, 2368, 2368, 2368, 2370, 2370, 2370, 2374, 2374, 2374,
3710       988, 2367, 2376, 2376, 2376,  987, 2378, 2378, 2378, 2368,
3711
3712      2349,  984, 2370,  983, 2374, 2379, 2379, 2379,  980, 2376,
3713      2361, 2377, 2377, 2377, 2378, 2377,  975,  972, 2377, 2380,
3714      2380, 2380, 2379, 2380,  969,  968, 2380, 2381, 2381, 2381,
3715      2382, 2382, 2382, 2383, 2383, 2383, 2388, 2388, 2388, 2390,
3716      2390, 2390,  965,  964, 2381,  963,  962, 2382,  961,  959,
3717      2383,  958,  957, 2388, 2392, 2392, 2392, 2394, 2394, 2394,
3718      2395, 2395, 2395,  956, 2395,  955,  954, 2395, 2396, 2396,
3719      2396,  953, 2392,  949, 2394, 2397, 2397, 2397,  944, 2381,
3720      2398, 2398, 2398, 2399, 2399, 2399, 2396, 2399, 2382,  943,
3721      2399, 2383,  942, 2397, 2402, 2402, 2402,  939, 2398, 2403,
3722
3723      2403, 2403,  938, 2403,  937,  935, 2403, 2404, 2404, 2404,
3724       931, 2402, 2405, 2405, 2405, 2406, 2406, 2406, 2408, 2408,
3725      2408, 2409, 2409, 2409, 2404, 2413, 2413, 2413,  927, 2405,
3726      2417, 2417, 2417, 2406, 2421, 2421, 2421,  926,  923, 2409,
3727       920,  919, 2397, 2413, 2398, 2422, 2422, 2422,  918, 2422,
3728       917, 2421, 2422, 2436, 2436, 2436, 2453, 2453, 2453, 2455,
3729      2455, 2455, 2456, 2456, 2456, 2459, 2459, 2459, 2462, 2462,
3730      2462, 2436, 2463, 2463, 2463,  916, 2463, 2455,  915, 2463,
3731      2456,  914, 2459,  912,  911, 2462, 2464, 2464, 2464, 2467,
3732      2467, 2467,  910, 2467,  909,  908, 2467, 2471, 2471, 2471,
3733
3734       907, 2472, 2472, 2472, 2464, 2472,  906,  905, 2472, 2474,
3735      2474, 2474,  904, 2436, 2471, 2475, 2475, 2475, 2476, 2476,
3736      2476,  903, 2476,  902,  901, 2476, 2474, 2477, 2477, 2477,
3737      2455,  900, 2475, 2478, 2478, 2478,  899, 2478,  898,  897,
3738      2478, 2481, 2481, 2481, 2477, 2483, 2483, 2483,  896, 2483,
3739       895,  894, 2483, 2486, 2486, 2486, 2487, 2487, 2487, 2481,
3740      2488, 2488, 2488, 2491, 2491, 2491,  893, 2492, 2492, 2492,
3741      2486, 2492,  889, 2487, 2492,  888,  886, 2488,  885,  884,
3742      2491, 2493, 2493, 2493, 2494, 2494, 2494, 2495, 2495, 2495,
3743       883, 2495,  882,  878, 2495, 2498, 2498, 2498, 2493,  876,
3744
3745       875, 2494, 2500, 2500, 2500,  874,  873, 2487, 2486, 2501,
3746      2501, 2501,  869, 2498,  865, 2488,  864, 2502, 2502, 2502,
3747      2500, 2502,  861,  860, 2502,  859,  858, 2501, 2505, 2505,
3748      2505, 2506, 2506, 2506,  857, 2506,  856,  855, 2506, 2507,
3749      2507, 2507, 2508, 2508, 2508, 2505, 2508,  852,  851, 2508,
3750       850, 2509, 2509, 2509,  849,  846, 2507, 2515, 2515, 2515,
3751      2519, 2519, 2519, 2538, 2538, 2538,  845,  844, 2500, 2509,
3752      2501, 2520, 2520, 2520,  841, 2520,  839, 2519, 2520,  836,
3753       835, 2538, 2554, 2554, 2554, 2556, 2556, 2556, 2557, 2557,
3754      2557, 2558, 2558, 2558, 2559, 2559, 2559,  834, 2559,  833,
3755
3756       832, 2559,  829, 2556,  828, 2557,  827,  826, 2558, 2560,
3757      2560, 2560,  825, 2560, 2538,  822, 2560, 2563, 2563, 2563,
3758      2568, 2568, 2568,  821, 2568,  820,  819, 2568, 2572, 2572,
3759      2572, 2607, 2607, 2607, 2557, 2563, 2573, 2573, 2573,  817,
3760      2573,  814,  813, 2573,  811, 2572,  808, 2556, 2574, 2574,
3761      2574,  806, 2574,  803,  802, 2574, 2577, 2577, 2577, 2578,
3762      2578, 2578,  801, 2578,  800,  798, 2578, 2579, 2579, 2579,
3763      2580, 2580, 2580, 2577, 2581, 2581, 2581,  797, 2582, 2582,
3764      2582,  796, 2582,  793, 2579, 2582,  792, 2580, 2585, 2585,
3765      2585, 2581, 2586, 2586, 2586,  791, 2586,  790,  789, 2586,
3766
3767      2587, 2587, 2587,  788,  783, 2585, 2588, 2588, 2588,  782,
3768      2588,  781,  780, 2588, 2595, 2595, 2595, 2587, 2596, 2596,
3769      2596,  779,  778, 2581,  777, 2579, 2597, 2597, 2597,  776,
3770      2597,  775, 2595, 2597,  773,  771, 2596, 2600, 2600, 2600,
3771       770, 2600,  767,  764, 2600, 2605, 2605, 2605, 2608, 2608,
3772      2608, 2611, 2611, 2611,  760, 2611,  759,  758, 2611, 2622,
3773      2622, 2622, 2605, 2605,  755, 2595, 2631, 2631, 2631, 2647,
3774      2647, 2647, 2648, 2648, 2648,  752, 2622, 2649, 2649, 2649,
3775      2650, 2650, 2650,  751, 2631, 2596, 2651, 2651, 2651,  750,
3776      2651,  747,  746, 2651,  742, 2649,  741, 2650, 2653, 2653,
3777
3778      2653,  739, 2653,  736,  735, 2653, 2660, 2660, 2660,  734,
3779      2660,  732,  721, 2660,  719, 2631, 2663, 2663, 2663,  716,
3780      2663,  715,  713, 2663, 2666, 2666, 2666,  712, 2649, 2667,
3781      2667, 2667, 2668, 2668, 2668,  711, 2668,  707,  706, 2668,
3782       705, 2666, 2669, 2669, 2669,  704, 2667, 2670, 2670, 2670,
3783       701, 2670,  700,  699, 2670,  698, 2673, 2673, 2673, 2669,
3784      2673,  697,  696, 2673, 2682, 2682, 2682, 2683, 2683, 2683,
3785      2689, 2689, 2689,  695,  693, 2666, 2690, 2690, 2690, 2691,
3786      2691, 2691, 2682, 2691,  690, 2683, 2691, 2689, 2689, 2692,
3787      2692, 2692,  689, 2690, 2690,  687,  685, 2691, 2693, 2693,
3788
3789      2693, 2694, 2694, 2694, 2695, 2695, 2695, 2704, 2704, 2704,
3790      2705, 2705, 2705, 2669, 2705,  682,  681, 2705, 2714, 2714,
3791      2714, 2729, 2729, 2729, 2704, 2730, 2730, 2730, 2731, 2731,
3792      2731,  675,  673, 2683,  671,  668, 2714, 2732, 2732, 2732,
3793       667, 2732,  663,  662, 2732,  661, 2731, 2738, 2738, 2738,
3794      2740, 2740, 2740, 2741, 2741, 2741,  658, 2741,  657,  656,
3795      2741, 2744, 2744, 2744, 2738,  655,  652, 2740, 2759, 2759,
3796      2759, 2761, 2761, 2761, 2767, 2767, 2767,  651, 2744,  650,
3797       649, 2768, 2768, 2768, 2714, 2768, 2759,  648, 2768, 2761,
3798       642, 2767, 2767, 2769, 2769, 2769,  641, 2769,  639, 2768,
3799
3800      2769, 2772, 2772, 2772, 2773, 2773, 2773, 2774, 2774, 2774,
3801       633, 2769, 2783, 2783, 2783,  632, 2783,  628,  621, 2783,
3802       617,  611, 2761, 2770, 2770, 2770, 2770, 2770, 2770, 2770,
3803      2770, 2770,  607,  603, 2770, 2792, 2792, 2792,  599, 2770,
3804      2770, 2770, 2770, 2770, 2803, 2803, 2803, 2804, 2804, 2804,
3805      2809, 2809, 2809, 2792, 2810, 2810, 2810,  598, 2810,  597,
3806       596, 2810, 2812, 2812, 2812, 2804,  595, 2809, 2770, 2770,
3807      2771, 2771, 2771, 2771, 2771, 2771, 2771, 2771, 2771, 2812,
3808       591, 2771, 2814, 2814, 2814,  587, 2771, 2771, 2771, 2771,
3809      2771, 2813, 2813, 2813,  584, 2813,  583,  582, 2813, 2814,
3810
3811      2815, 2815, 2815,  578, 2815,  574,  571, 2815, 2828, 2828,
3812      2828, 2853, 2853, 2853,  570, 2771, 2771, 2834, 2834, 2834,
3813       566, 2834,  560,  559, 2834,  555, 2828,  551,  547, 2853,
3814      2888, 2888, 2888,  546,  542, 2834, 2837, 2837, 2837, 2837,
3815      2837, 2837, 2837, 2837, 2837,  539,  538, 2837, 2888,  533,
3816       529,  521, 2837, 2837, 2837, 2837, 2837, 2866, 2866, 2866,
3817       520, 2866,  519,  515, 2866, 2870, 2870, 2870,  509, 2870,
3818       508,  507, 2870, 2873, 2873, 2873,  503, 2873,  497,  496,
3819      2873, 2837, 2837, 2838, 2838, 2838, 2838, 2838, 2838, 2838,
3820      2838, 2838,  492,  486, 2838, 2900, 2900, 2900,  485, 2838,
3821
3822      2838, 2838, 2838, 2838, 2917, 2917, 2917, 2918, 2918, 2918,
3823      2919, 2919, 2919, 2900, 2900, 2924, 2924, 2924, 2935, 2935,
3824      2935, 2917,  484,  483, 2918,  482,  481, 2919, 2838, 2838,
3825       480,  476, 2924, 2939, 2939, 2939, 2935, 2950, 2950, 2950,
3826      2951, 2951, 2951,  470, 2951,  469,  467, 2951, 2952, 2952,
3827      2952, 2939,  466,  465, 2950, 2953, 2953, 2953,  461, 2953,
3828       452,  451, 2953,  450,  448, 2952, 2954, 2954, 2954, 2955,
3829      2955, 2955,  444, 2955,  438,  437, 2955, 2962, 2962, 2962,
3830      2972, 2972, 2972, 2954, 2939, 2963, 2963, 2963,  436, 2963,
3831       432,  428, 2963,  424, 2962, 2982, 2982, 2982, 2972, 2982,
3832
3833       423,  422, 2982, 2985, 2985, 2985,  421, 2985,  420,  416,
3834      2985, 2988, 2988, 2988,  410, 2988,  409, 2972, 2988, 2997,
3835      2997, 2997,  405, 2997,  399,  398, 2997, 3104, 3104, 3104,
3836      3113, 3113, 3113,  394, 3113,  387,  386, 3113, 3214, 3214,
3837      3214, 3215, 3215, 3215,  385, 3104,  381,  374, 3113,  373,
3838       372,  371,  367,  363,  358,  352, 3214,  348,  347, 3215,
3839      3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3219,
3840      3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3220, 3220,
3841      3220, 3220, 3220, 3220, 3220, 3220, 3220, 3221, 3221, 3221,
3842      3221, 3221, 3221, 3221, 3221, 3221, 3222, 3222, 3222, 3222,
3843
3844      3222, 3222, 3222, 3222, 3222, 3223, 3223, 3223, 3223, 3223,
3845      3223, 3223, 3223, 3223, 3224, 3224, 3224, 3224, 3224, 3224,
3846      3224, 3224, 3224, 3225, 3225, 3225, 3225, 3225, 3225, 3225,
3847      3225, 3225, 3226, 3226, 3226, 3226, 3226, 3226, 3226, 3226,
3848      3226, 3227, 3227, 3227, 3227, 3227, 3227, 3227, 3227, 3227,
3849      3228, 3228, 3228, 3228, 3228, 3228, 3228, 3228, 3228, 3229,
3850      3229, 3229, 3229, 3229, 3229, 3229, 3229, 3229, 3230, 3230,
3851      3230, 3230, 3230, 3230, 3230, 3230, 3230, 3231, 3231, 3231,
3852      3231, 3231, 3231, 3231, 3231, 3231, 3232, 3232, 3232, 3232,
3853      3232, 3232, 3232, 3232, 3232, 3233, 3233, 3233, 3233, 3233,
3854
3855      3233, 3233, 3233, 3233, 3234, 3234, 3234, 3234, 3234, 3234,
3856      3234, 3234, 3234, 3235, 3235, 3235, 3235, 3235, 3235, 3235,
3857      3235, 3235, 3236, 3236, 3236, 3236, 3236, 3236, 3236, 3236,
3858      3236, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237,
3859      3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3239,
3860      3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3240, 3240,
3861      3240, 3240, 3240, 3240, 3240, 3240, 3240, 3241, 3241, 3241,
3862      3241, 3241, 3241, 3241, 3241, 3241, 3242, 3242, 3242, 3242,
3863      3242, 3242, 3242, 3242, 3242, 3243, 3243, 3243, 3243, 3243,
3864      3243, 3243, 3243, 3243, 3244, 3244, 3244, 3244, 3244, 3244,
3865
3866      3244, 3244, 3244, 3245, 3245, 3245, 3245, 3245, 3245, 3245,
3867      3245, 3245, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246,
3868      3246, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247,
3869      3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3249,
3870      3249, 3249, 3249, 3249, 3249, 3249, 3249, 3249, 3250, 3250,
3871      3250, 3250, 3250, 3250, 3250, 3250, 3250, 3251, 3251, 3251,
3872      3251, 3251, 3251, 3251, 3251, 3251, 3252, 3252, 3252, 3252,
3873      3252, 3252, 3252, 3252, 3252, 3253, 3253, 3253, 3253, 3253,
3874      3253, 3253, 3253, 3253, 3254, 3254, 3254, 3254, 3254, 3254,
3875      3254, 3254, 3254, 3255, 3255, 3255, 3255, 3255, 3255, 3255,
3876
3877      3255, 3255, 3256, 3256, 3256, 3256, 3256, 3256, 3256, 3256,
3878      3256, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257, 3257,
3879      3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3259,
3880      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3260, 3260,
3881      3260, 3260, 3260, 3260, 3260, 3260, 3260, 3261, 3261, 3261,
3882      3261, 3261, 3261, 3261, 3261, 3261, 3262, 3262, 3262, 3262,
3883      3262, 3262, 3262, 3262, 3262, 3263, 3263, 3263, 3263, 3263,
3884      3263, 3263, 3263, 3263, 3264, 3264, 3264, 3264, 3264, 3264,
3885      3264, 3264, 3264, 3265, 3265, 3265, 3265, 3265, 3265, 3265,
3886      3265, 3265, 3266, 3266, 3266, 3266, 3266, 3266, 3266, 3266,
3887
3888      3266, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267,
3889      3268, 3268, 3268, 3268, 3268, 3268, 3268, 3268, 3268, 3269,
3890      3269, 3269, 3269, 3269, 3269, 3269, 3269, 3269, 3270, 3270,
3891      3270, 3270, 3270, 3270, 3270, 3270, 3270, 3271, 3271, 3271,
3892      3271, 3271, 3271, 3271, 3271, 3271, 3272, 3272, 3272, 3272,
3893      3272, 3272, 3272, 3272, 3272, 3273, 3273, 3273, 3273, 3273,
3894      3273, 3273, 3273, 3273, 3274, 3274, 3274, 3274, 3274, 3274,
3895      3274, 3274, 3274, 3275, 3275, 3275, 3275, 3275, 3275, 3275,
3896      3275, 3275, 3276, 3276, 3276, 3276, 3276, 3276, 3276, 3276,
3897      3276, 3277, 3277, 3277,  343,  337,  336, 3277, 3278, 3278,
3898
3899      3278,  335,  331,  324, 3278, 3279, 3279, 3279,  322,  321,
3900       317, 3279, 3280, 3280, 3280,  314,  312,  311, 3280, 3281,
3901      3281, 3281,  310,  306,  302, 3281, 3282, 3282, 3282,  299,
3902       295,  292, 3282, 3283, 3283, 3283,  291,  283,  279, 3283,
3903      3284, 3284, 3284,  275,  274,  273, 3284, 3285, 3285, 3285,
3904       267,  266,  264, 3285, 3286, 3286, 3286,  261,  249,    0,
3905      3286, 3287, 3287, 3287,    0,    0,    0, 3287, 3288, 3288,
3906      3288,    0,    0,    0, 3288, 3289, 3289, 3289,    0,    0,
3907         0, 3289, 3290, 3290, 3290,    0,    0,    0, 3290, 3291,
3908      3291, 3291,    0,    0,    0, 3291, 3292, 3292, 3292,    0,
3909
3910         0,    0, 3292, 3293, 3293, 3293,    0,    0,    0, 3293,
3911      3294, 3294, 3294,    0,    0,    0, 3294, 3295, 3295, 3295,
3912         0,    0,    0, 3295, 3296, 3296, 3296,    0,    0,    0,
3913      3296, 3297, 3297, 3297,    0,    0,    0, 3297, 3298, 3298,
3914      3298,    0,    0,    0, 3298, 3299, 3299, 3299,    0,    0,
3915         0, 3299, 3300, 3300, 3300,    0,    0,    0, 3300, 3301,
3916      3301, 3301,    0,    0,    0, 3301, 3302, 3302, 3302,    0,
3917         0,    0, 3302, 3303, 3303, 3303,    0,    0,    0, 3303,
3918      3304, 3304, 3304, 3304, 3304, 3304, 3304,    0, 3304, 3305,
3919      3305, 3305,    0,    0,    0, 3305, 3306,    0,    0,    0,
3920
3921      3306, 3307, 3307, 3307,    0,    0,    0, 3307, 3308,    0,
3922         0,    0, 3308, 3309, 3309, 3309,    0,    0,    0, 3309,
3923      3310,    0,    0,    0, 3310, 3311, 3311, 3311,    0,    0,
3924         0, 3311, 3312,    0,    0,    0, 3312, 3313, 3313, 3313,
3925         0,    0,    0, 3313, 3314,    0,    0,    0, 3314, 3315,
3926      3315, 3315,    0,    0,    0, 3315, 3316,    0,    0,    0,
3927      3316, 3317, 3317, 3317,    0,    0,    0, 3317, 3318,    0,
3928         0,    0, 3318, 3319, 3319, 3319,    0,    0,    0, 3319,
3929      3320,    0,    0,    0, 3320, 3321, 3321, 3321,    0,    0,
3930         0, 3321, 3322,    0,    0,    0, 3322, 3323, 3323, 3323,
3931
3932         0,    0,    0, 3323, 3324,    0,    0,    0, 3324, 3325,
3933      3325, 3325,    0,    0,    0, 3325, 3326,    0,    0,    0,
3934      3326, 3327, 3327, 3327,    0,    0,    0, 3327, 3328,    0,
3935         0,    0, 3328, 3329, 3329, 3329,    0,    0,    0, 3329,
3936      3330,    0,    0,    0, 3330, 3331, 3331, 3331,    0,    0,
3937         0, 3331, 3332,    0,    0,    0, 3332, 3333, 3333, 3333,
3938         0,    0,    0, 3333, 3334,    0,    0,    0, 3334, 3335,
3939      3335, 3335,    0,    0,    0, 3335, 3336,    0,    0,    0,
3940      3336, 3337, 3337, 3337,    0,    0,    0, 3337, 3338,    0,
3941         0,    0, 3338, 3339, 3339, 3339,    0,    0,    0, 3339,
3942
3943      3340,    0,    0,    0, 3340, 3341, 3341, 3341,    0,    0,
3944         0, 3341, 3342,    0,    0,    0, 3342, 3343, 3343, 3343,
3945         0,    0,    0, 3343, 3344,    0,    0,    0, 3344, 3345,
3946      3345, 3345,    0,    0,    0, 3345, 3346,    0,    0,    0,
3947      3346, 3347, 3347, 3347,    0,    0,    0, 3347, 3348,    0,
3948         0,    0, 3348, 3349, 3349, 3349,    0,    0,    0, 3349,
3949      3350,    0,    0,    0, 3350, 3351, 3351, 3351,    0,    0,
3950         0, 3351, 3352,    0,    0,    0, 3352, 3353, 3353, 3353,
3951         0,    0,    0, 3353, 3354,    0,    0,    0, 3354, 3355,
3952      3355, 3355,    0,    0,    0, 3355, 3356,    0,    0,    0,
3953
3954      3356, 3357, 3357, 3357,    0,    0,    0, 3357, 3358,    0,
3955         0,    0, 3358, 3359, 3359, 3359, 3359, 3359, 3359, 3359,
3956      3359, 3359, 3360,    0,    0,    0,    0, 3360, 3361, 3361,
3957      3361,    0,    0,    0, 3361, 3362, 3362, 3362, 3362,    0,
3958         0, 3362, 3362, 3363, 3363, 3363,    0,    0,    0, 3363,
3959      3364, 3364, 3364, 3364,    0,    0, 3364, 3364, 3365, 3365,
3960      3365,    0,    0,    0, 3365, 3366, 3366, 3366, 3366,    0,
3961         0, 3366, 3366, 3367, 3367, 3367,    0,    0,    0, 3367,
3962      3368, 3368, 3368, 3368,    0,    0, 3368, 3368, 3369, 3369,
3963      3369,    0,    0,    0, 3369, 3370, 3370, 3370, 3370,    0,
3964
3965         0, 3370, 3370, 3371, 3371, 3371,    0,    0,    0, 3371,
3966      3372, 3372, 3372, 3372,    0,    0, 3372, 3372, 3373, 3373,
3967      3373,    0,    0,    0, 3373, 3374, 3374, 3374, 3374,    0,
3968         0, 3374, 3374, 3375, 3375, 3375,    0,    0,    0, 3375,
3969      3376, 3376, 3376, 3376,    0,    0, 3376, 3376, 3377, 3377,
3970      3377,    0,    0,    0, 3377, 3378, 3378, 3378, 3378,    0,
3971         0, 3378, 3378, 3379, 3379, 3379,    0,    0,    0, 3379,
3972      3380, 3380, 3380, 3380,    0,    0, 3380, 3380, 3381, 3381,
3973      3381,    0,    0,    0, 3381, 3382, 3382, 3382, 3382,    0,
3974         0, 3382, 3382, 3383, 3383, 3383,    0,    0,    0, 3383,
3975
3976      3384, 3384, 3384, 3384,    0,    0, 3384, 3384, 3385, 3385,
3977      3385,    0,    0,    0, 3385, 3386, 3386, 3386, 3386,    0,
3978         0, 3386, 3386, 3387, 3387, 3387, 3387,    0, 3387,    0,
3979      3387, 3388, 3388, 3388, 3388,    0,    0, 3388, 3388, 3389,
3980      3389, 3389,    0,    0,    0, 3389, 3390, 3390, 3390, 3390,
3981         0,    0, 3390, 3390, 3391, 3391, 3391,    0,    0,    0,
3982      3391, 3392, 3392, 3392, 3392,    0,    0, 3392, 3392, 3393,
3983      3393, 3393,    0,    0,    0, 3393, 3394, 3394, 3394, 3394,
3984         0,    0, 3394, 3394, 3395, 3395, 3395,    0,    0,    0,
3985      3395, 3396, 3396, 3396, 3396,    0,    0, 3396, 3396, 3397,
3986
3987      3397, 3397, 3397,    0, 3397,    0, 3397, 3398, 3398, 3398,
3988      3398,    0,    0, 3398, 3398, 3399, 3399, 3399, 3399,    0,
3989      3399,    0, 3399, 3400, 3400, 3400, 3400,    0,    0, 3400,
3990      3400, 3401, 3401, 3401,    0,    0,    0, 3401, 3402, 3402,
3991      3402, 3402,    0,    0, 3402, 3402, 3403, 3403, 3403, 3403,
3992         0, 3403,    0, 3403, 3404, 3404, 3404, 3404,    0,    0,
3993      3404, 3404, 3405, 3405, 3405, 3405,    0, 3405,    0, 3405,
3994      3406, 3406, 3406, 3406,    0,    0, 3406, 3406, 3407, 3407,
3995      3407,    0,    0,    0, 3407, 3408, 3408, 3408, 3408,    0,
3996         0, 3408, 3408, 3409, 3409, 3409,    0,    0,    0, 3409,
3997
3998      3410, 3410, 3410, 3410,    0,    0, 3410, 3410, 3411, 3411,
3999      3411, 3411,    0,    0, 3411, 3411, 3412, 3412, 3412,    0,
4000         0,    0, 3412, 3413, 3413, 3413, 3413,    0,    0, 3413,
4001      3413, 3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414, 3414,
4002      3415,    0, 3415,    0,    0, 3415, 3416, 3416, 3416,    0,
4003         0,    0, 3416, 3417, 3417, 3417, 3417,    0,    0, 3417,
4004      3417, 3418, 3418, 3418, 3418,    0, 3418,    0, 3418, 3419,
4005      3419, 3419, 3419,    0,    0, 3419, 3419, 3420, 3420, 3420,
4006      3420,    0, 3420,    0, 3420, 3421, 3421, 3421, 3421,    0,
4007         0, 3421, 3421, 3422, 3422, 3422,    0,    0,    0, 3422,
4008
4009      3423, 3423, 3423, 3423,    0,    0, 3423, 3423, 3424, 3424,
4010      3424,    0,    0,    0, 3424, 3425, 3425, 3425, 3425,    0,
4011         0, 3425, 3425, 3426, 3426, 3426,    0,    0,    0, 3426,
4012      3427, 3427, 3427, 3427,    0,    0, 3427, 3427, 3428, 3428,
4013      3428,    0,    0,    0, 3428, 3429, 3429, 3429, 3429,    0,
4014         0, 3429, 3429, 3430, 3430, 3430,    0,    0,    0, 3430,
4015      3431, 3431, 3431, 3431,    0,    0, 3431, 3431, 3432, 3432,
4016      3432, 3432,    0, 3432,    0, 3432, 3433, 3433, 3433, 3433,
4017         0,    0, 3433, 3433, 3434, 3434, 3434, 3434,    0, 3434,
4018         0, 3434, 3435, 3435, 3435, 3435,    0,    0, 3435, 3435,
4019
4020      3436, 3436, 3436,    0,    0,    0, 3436, 3437, 3437, 3437,
4021      3437,    0,    0, 3437, 3437, 3438, 3438, 3438, 3438,    0,
4022      3438,    0, 3438, 3439, 3439, 3439, 3439,    0,    0, 3439,
4023      3439, 3440, 3440, 3440,    0,    0,    0, 3440, 3441, 3441,
4024      3441, 3441,    0,    0, 3441, 3441, 3442, 3442, 3442,    0,
4025         0,    0, 3442, 3443, 3443, 3443, 3443,    0,    0, 3443,
4026      3443, 3444, 3444, 3444,    0,    0,    0, 3444, 3445, 3445,
4027      3445, 3445,    0,    0, 3445, 3445, 3446, 3446, 3446,    0,
4028         0,    0, 3446, 3447, 3447, 3447, 3447,    0,    0, 3447,
4029      3447, 3448, 3448, 3448,    0,    0,    0, 3448, 3449, 3449,
4030
4031      3449, 3449,    0,    0, 3449, 3449, 3450, 3450, 3450,    0,
4032         0,    0, 3450, 3451, 3451, 3451, 3451,    0,    0, 3451,
4033      3451, 3452, 3452, 3452,    0,    0,    0, 3452, 3453, 3453,
4034      3453, 3453,    0,    0, 3453, 3453, 3454, 3454, 3454,    0,
4035         0,    0, 3454, 3455, 3455, 3455, 3455,    0,    0, 3455,
4036      3455, 3456, 3456, 3456,    0,    0,    0, 3456, 3457, 3457,
4037      3457, 3457,    0,    0, 3457, 3457, 3458, 3458, 3458, 3458,
4038         0,    0, 3458, 3458, 3459, 3459, 3459,    0,    0,    0,
4039      3459, 3460, 3460, 3460, 3460,    0,    0, 3460, 3460, 3461,
4040      3461, 3461,    0,    0,    0, 3461, 3462, 3462, 3462, 3462,
4041
4042         0,    0, 3462, 3462, 3463, 3463, 3463,    0,    0,    0,
4043      3463, 3464, 3464, 3464, 3464,    0,    0, 3464, 3464, 3465,
4044      3465, 3465, 3465,    0,    0, 3465, 3465, 3466, 3466, 3466,
4045         0,    0,    0, 3466, 3467, 3467, 3467, 3467,    0,    0,
4046      3467, 3467, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4047      3468, 3469, 3469, 3469, 3469, 3469, 3469, 3469, 3469, 3469,
4048      3470, 3470, 3470,    0,    0,    0, 3470, 3471, 3471, 3471,
4049      3471,    0,    0, 3471, 3471, 3472, 3472, 3472, 3472,    0,
4050         0, 3472, 3472, 3473, 3473, 3473,    0,    0,    0, 3473,
4051      3474, 3474, 3474, 3474,    0,    0, 3474, 3474, 3475, 3475,
4052
4053      3475,    0,    0,    0, 3475, 3476, 3476, 3476, 3476,    0,
4054         0, 3476, 3476, 3477, 3477, 3477,    0,    0,    0, 3477,
4055      3478, 3478, 3478, 3478,    0,    0, 3478, 3478, 3479, 3479,
4056      3479,    0,    0,    0, 3479, 3480, 3480, 3480,    0,    0,
4057         0, 3480, 3481, 3481, 3481, 3481,    0,    0, 3481, 3481,
4058      3482, 3482, 3482,    0,    0,    0, 3482, 3483, 3483, 3483,
4059      3483,    0,    0, 3483, 3483, 3484, 3484, 3484, 3484,    0,
4060         0, 3484, 3484, 3485, 3485, 3485,    0,    0,    0, 3485,
4061      3486, 3486, 3486, 3486,    0,    0, 3486, 3486, 3487, 3487,
4062      3487,    0,    0,    0, 3487, 3488, 3488, 3488, 3488,    0,
4063
4064         0, 3488, 3488, 3489, 3489, 3489, 3489,    0,    0, 3489,
4065      3489, 3490, 3490, 3490,    0,    0,    0, 3490, 3491, 3491,
4066      3491, 3491,    0,    0, 3491, 3491, 3492, 3492, 3492, 3492,
4067         0, 3492,    0, 3492, 3493, 3493, 3493, 3493,    0,    0,
4068      3493, 3493, 3494, 3494, 3494,    0,    0,    0, 3494, 3495,
4069      3495, 3495, 3495,    0,    0, 3495, 3495, 3496, 3496, 3496,
4070         0,    0,    0, 3496, 3497, 3497, 3497, 3497,    0,    0,
4071      3497, 3497, 3498, 3498, 3498,    0,    0,    0, 3498, 3499,
4072      3499, 3499, 3499,    0,    0, 3499, 3499, 3500, 3500, 3500,
4073         0,    0,    0, 3500, 3501, 3501, 3501, 3501,    0,    0,
4074
4075      3501, 3501, 3502, 3502, 3502,    0,    0,    0, 3502, 3503,
4076      3503, 3503, 3503,    0,    0, 3503, 3503, 3504, 3504, 3504,
4077         0,    0,    0, 3504, 3505, 3505, 3505, 3505,    0,    0,
4078      3505, 3505, 3506, 3506, 3506,    0,    0,    0, 3506, 3507,
4079      3507, 3507, 3507,    0,    0, 3507, 3507, 3508, 3508, 3508,
4080      3508,    0,    0, 3508, 3508, 3509, 3509, 3509,    0,    0,
4081         0, 3509, 3510, 3510, 3510, 3510,    0,    0, 3510, 3510,
4082      3511, 3511, 3511,    0,    0,    0, 3511, 3512, 3512, 3512,
4083      3512,    0,    0, 3512, 3512, 3513, 3513, 3513, 3513,    0,
4084      3513,    0, 3513, 3514, 3514, 3514, 3514,    0,    0, 3514,
4085
4086      3514, 3515, 3515, 3515, 3515,    0,    0, 3515, 3515, 3516,
4087      3516, 3516, 3516,    0, 3516,    0, 3516, 3517, 3517, 3517,
4088      3517,    0,    0, 3517, 3517, 3518, 3518, 3518, 3518, 3518,
4089      3518, 3518, 3518, 3518, 3519, 3519, 3519, 3519, 3519, 3519,
4090      3519, 3519, 3519, 3520, 3520, 3520,    0,    0,    0, 3520,
4091      3521, 3521, 3521, 3521,    0,    0, 3521, 3521, 3522, 3522,
4092      3522, 3522,    0,    0, 3522, 3522, 3523, 3523, 3523,    0,
4093         0,    0, 3523, 3524, 3524, 3524, 3524,    0,    0, 3524,
4094      3524, 3525, 3525, 3525,    0,    0,    0, 3525, 3526, 3526,
4095      3526, 3526,    0,    0, 3526, 3526, 3527, 3527, 3527,    0,
4096
4097         0,    0, 3527, 3528, 3528, 3528, 3528,    0,    0, 3528,
4098      3528, 3529, 3529, 3529,    0,    0,    0, 3529, 3530, 3530,
4099      3530,    0,    0,    0, 3530, 3531, 3531, 3531, 3531,    0,
4100         0, 3531, 3531, 3532, 3532, 3532,    0,    0,    0, 3532,
4101      3533, 3533, 3533, 3533,    0,    0, 3533, 3533, 3534, 3534,
4102      3534, 3534,    0,    0, 3534, 3534, 3535, 3535, 3535, 3535,
4103         0, 3535,    0, 3535, 3536, 3536, 3536, 3536,    0,    0,
4104      3536, 3536, 3537, 3537, 3537,    0,    0,    0, 3537, 3538,
4105      3538, 3538, 3538,    0,    0, 3538, 3538, 3539, 3539, 3539,
4106      3539,    0,    0, 3539, 3539, 3540, 3540, 3540,    0,    0,
4107
4108         0, 3540, 3541, 3541, 3541, 3541,    0,    0, 3541, 3541,
4109      3542, 3542, 3542, 3542,    0, 3542,    0, 3542, 3543, 3543,
4110      3543, 3543,    0,    0, 3543, 3543, 3544, 3544, 3544,    0,
4111         0,    0, 3544, 3545, 3545, 3545, 3545,    0,    0, 3545,
4112      3545, 3546, 3546, 3546,    0,    0,    0, 3546, 3547, 3547,
4113      3547, 3547,    0,    0, 3547, 3547, 3548, 3548, 3548,    0,
4114         0,    0, 3548, 3549, 3549, 3549, 3549,    0,    0, 3549,
4115      3549, 3550, 3550, 3550,    0,    0,    0, 3550, 3551, 3551,
4116      3551, 3551,    0,    0, 3551, 3551, 3552, 3552, 3552,    0,
4117         0,    0, 3552, 3553, 3553, 3553, 3553,    0,    0, 3553,
4118
4119      3553, 3554, 3554, 3554, 3554,    0, 3554,    0, 3554, 3555,
4120      3555, 3555, 3555,    0,    0, 3555, 3555, 3556, 3556, 3556,
4121         0,    0,    0, 3556, 3557, 3557, 3557, 3557,    0,    0,
4122      3557, 3557, 3558, 3558, 3558, 3558,    0,    0, 3558, 3558,
4123      3559, 3559, 3559, 3559,    0, 3559,    0, 3559, 3560, 3560,
4124      3560, 3560,    0,    0, 3560, 3560, 3561, 3561, 3561,    0,
4125         0,    0, 3561, 3562, 3562, 3562, 3562,    0,    0, 3562,
4126      3562, 3563, 3563, 3563, 3563,    0,    0, 3563, 3563, 3564,
4127      3564, 3564, 3564,    0,    0, 3564, 3564, 3565, 3565, 3565,
4128      3565,    0,    0, 3565, 3565, 3566, 3566, 3566, 3566, 3566,
4129
4130      3566, 3566, 3566, 3566, 3567, 3567, 3567, 3567, 3567, 3567,
4131      3567, 3567, 3567, 3568, 3568, 3568, 3568,    0, 3568,    0,
4132      3568, 3569, 3569, 3569, 3569,    0,    0, 3569, 3569, 3570,
4133      3570, 3570, 3570,    0,    0, 3570, 3570, 3571, 3571, 3571,
4134         0,    0,    0, 3571, 3572, 3572, 3572, 3572,    0,    0,
4135      3572, 3572, 3573, 3573, 3573,    0,    0,    0, 3573, 3574,
4136      3574, 3574, 3574,    0,    0, 3574, 3574, 3575, 3575, 3575,
4137      3575,    0, 3575,    0, 3575, 3576, 3576, 3576, 3576,    0,
4138         0, 3576, 3576, 3577, 3577, 3577, 3577,    0, 3577,    0,
4139      3577, 3578, 3578, 3578, 3578,    0, 3578,    0, 3578, 3579,
4140
4141      3579, 3579, 3579,    0,    0, 3579, 3579, 3580, 3580, 3580,
4142      3580,    0, 3580,    0, 3580, 3581, 3581, 3581, 3581,    0,
4143         0, 3581, 3581, 3582, 3582, 3582, 3582,    0,    0, 3582,
4144      3582, 3583, 3583, 3583, 3583,    0,    0, 3583, 3583, 3584,
4145      3584, 3584,    0,    0,    0, 3584, 3585, 3585, 3585, 3585,
4146         0,    0, 3585, 3585, 3586, 3586, 3586,    0,    0,    0,
4147      3586, 3587, 3587, 3587, 3587,    0,    0, 3587, 3587, 3588,
4148      3588, 3588, 3588,    0, 3588,    0, 3588, 3589, 3589, 3589,
4149      3589,    0,    0, 3589, 3589, 3590, 3590, 3590,    0,    0,
4150         0, 3590, 3591, 3591, 3591,    0,    0,    0, 3591, 3592,
4151
4152      3592, 3592, 3592,    0,    0, 3592, 3592, 3593, 3593, 3593,
4153         0,    0,    0, 3593, 3594, 3594, 3594, 3594,    0,    0,
4154      3594, 3594, 3595, 3595, 3595,    0,    0,    0, 3595, 3596,
4155      3596, 3596,    0,    0,    0, 3596, 3597, 3597, 3597, 3597,
4156         0,    0, 3597, 3597, 3598, 3598, 3598,    0,    0,    0,
4157      3598, 3599, 3599, 3599, 3599,    0,    0, 3599, 3599, 3600,
4158      3600, 3600,    0,    0,    0, 3600, 3601, 3601, 3601, 3601,
4159         0,    0, 3601, 3601, 3602, 3602, 3602, 3602,    0,    0,
4160      3602, 3602, 3603, 3603, 3603, 3603,    0,    0, 3603, 3603,
4161      3604, 3604, 3604,    0,    0,    0, 3604, 3605, 3605, 3605,
4162
4163      3605,    0,    0, 3605, 3605, 3606, 3606, 3606, 3606,    0,
4164         0, 3606, 3606, 3607, 3607, 3607, 3607,    0,    0, 3607,
4165      3607, 3608, 3608, 3608, 3608, 3608, 3608, 3608, 3608, 3608,
4166      3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3610,
4167      3610, 3610, 3610,    0,    0, 3610, 3610, 3611, 3611, 3611,
4168      3611,    0,    0, 3611, 3611, 3612, 3612, 3612,    0,    0,
4169         0, 3612, 3613, 3613, 3613,    0,    0,    0, 3613, 3614,
4170      3614, 3614, 3614,    0,    0, 3614, 3614, 3615, 3615, 3615,
4171      3615,    0,    0, 3615, 3615, 3616, 3616, 3616, 3616,    0,
4172         0, 3616, 3616, 3617, 3617, 3617, 3617,    0,    0, 3617,
4173
4174      3617, 3618, 3618, 3618, 3618,    0,    0, 3618, 3618, 3619,
4175      3619, 3619,    0,    0,    0, 3619, 3620, 3620, 3620, 3620,
4176         0,    0, 3620, 3620, 3621, 3621, 3621,    0,    0,    0,
4177      3621, 3622, 3622, 3622, 3622,    0,    0, 3622, 3622, 3623,
4178      3623, 3623, 3623,    0,    0, 3623, 3623, 3624, 3624, 3624,
4179         0,    0,    0, 3624, 3625, 3625, 3625,    0,    0,    0,
4180      3625, 3626, 3626, 3626, 3626,    0,    0, 3626, 3626, 3627,
4181      3627, 3627,    0,    0,    0, 3627, 3628, 3628, 3628, 3628,
4182         0,    0, 3628, 3628, 3629, 3629, 3629,    0,    0,    0,
4183      3629, 3630, 3630, 3630,    0,    0,    0, 3630, 3631, 3631,
4184
4185      3631,    0,    0,    0, 3631, 3632, 3632, 3632, 3632,    0,
4186         0, 3632, 3632, 3633, 3633, 3633,    0,    0,    0, 3633,
4187      3634, 3634, 3634, 3634,    0,    0, 3634, 3634, 3635, 3635,
4188      3635, 3635,    0,    0, 3635, 3635, 3636, 3636, 3636, 3636,
4189         0,    0, 3636, 3636, 3637, 3637, 3637, 3637,    0, 3637,
4190         0, 3637, 3638, 3638, 3638, 3638,    0,    0, 3638, 3638,
4191      3639, 3639, 3639, 3639,    0,    0, 3639, 3639, 3640, 3640,
4192      3640, 3640,    0,    0, 3640, 3640, 3641, 3641, 3641, 3641,
4193      3641, 3641, 3641, 3641, 3641, 3642, 3642, 3642, 3642, 3642,
4194      3642, 3642, 3642, 3642, 3643, 3643, 3643, 3643,    0,    0,
4195
4196      3643, 3643, 3644, 3644, 3644, 3644,    0,    0, 3644, 3644,
4197      3645, 3645, 3645,    0,    0,    0, 3645, 3646, 3646, 3646,
4198      3646,    0, 3646,    0, 3646, 3647, 3647, 3647, 3647,    0,
4199         0, 3647, 3647, 3648, 3648, 3648, 3648,    0,    0, 3648,
4200      3648, 3649, 3649, 3649, 3649,    0,    0, 3649, 3649, 3650,
4201      3650, 3650, 3650,    0,    0, 3650, 3650, 3651, 3651, 3651,
4202         0,    0,    0, 3651, 3652, 3652, 3652, 3652,    0,    0,
4203      3652, 3652, 3653, 3653, 3653,    0,    0,    0, 3653, 3654,
4204      3654, 3654, 3654,    0,    0, 3654, 3654, 3655, 3655, 3655,
4205      3655,    0,    0, 3655, 3655, 3656, 3656, 3656,    0,    0,
4206
4207         0, 3656, 3657, 3657, 3657,    0,    0,    0, 3657, 3658,
4208      3658, 3658, 3658,    0, 3658,    0, 3658, 3659, 3659, 3659,
4209      3659,    0,    0, 3659, 3659, 3660, 3660, 3660, 3660,    0,
4210      3660,    0, 3660, 3661, 3661, 3661,    0,    0,    0, 3661,
4211      3662, 3662, 3662,    0,    0,    0, 3662, 3663, 3663, 3663,
4212      3663,    0,    0, 3663, 3663, 3664, 3664, 3664, 3664,    0,
4213      3664,    0, 3664, 3665, 3665, 3665, 3665,    0,    0, 3665,
4214      3665, 3666, 3666, 3666, 3666,    0,    0, 3666, 3666, 3667,
4215      3667, 3667, 3667,    0,    0, 3667, 3667, 3668, 3668, 3668,
4216      3668,    0, 3668,    0, 3668, 3669, 3669, 3669, 3669,    0,
4217
4218         0, 3669, 3669, 3670, 3670, 3670, 3670,    0,    0, 3670,
4219      3670, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671, 3671,
4220      3672, 3672, 3672, 3672, 3672, 3672, 3672, 3672, 3672, 3673,
4221      3673, 3673, 3673,    0,    0, 3673, 3673, 3674, 3674, 3674,
4222         0,    0,    0, 3674, 3675, 3675, 3675,    0,    0,    0,
4223      3675, 3676, 3676, 3676, 3676,    0,    0, 3676, 3676, 3677,
4224      3677, 3677, 3677,    0,    0, 3677, 3677, 3678, 3678, 3678,
4225      3678,    0,    0, 3678, 3678, 3679, 3679, 3679,    0,    0,
4226         0, 3679, 3680, 3680, 3680, 3680,    0,    0, 3680, 3680,
4227      3681, 3681, 3681,    0,    0,    0, 3681, 3682, 3682, 3682,
4228
4229      3682, 3682, 3682, 3682, 3682, 3682, 3683, 3683, 3683, 3683,
4230      3683, 3683, 3683, 3683, 3683, 3684, 3684, 3684, 3684, 3684,
4231      3684, 3684, 3684, 3684, 3685, 3685, 3685, 3685, 3685, 3685,
4232      3685, 3685, 3685, 3686, 3686, 3686, 3686, 3686, 3686, 3686,
4233      3686, 3686, 3687, 3687, 3687, 3687, 3687, 3687, 3687, 3687,
4234      3687, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4235      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4236      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4237      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4238      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4239
4240      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4241      3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217,
4242      3217, 3217, 3217, 3217, 3217, 3217
4243     } ;
4244
4245 /* Table of booleans, true if rule could match eol. */
4246 static yyconst flex_int32_t yy_rule_can_match_eol[548] =
4247     {   0,
4248 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4249     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4250     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4251     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4252     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4253     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4254     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4255     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4256     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4257     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4258     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4259     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4260     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4261     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4262     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4263     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4264     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4265     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4266     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4267     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4268     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4269     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4270     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4271     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4272     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4273     1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 
4274     0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 
4275     0, 0, 1, 0, 0, 0, 1, 0,     };
4276
4277 static yy_state_type yy_last_accepting_state;
4278 static char *yy_last_accepting_cpos;
4279
4280 extern int surf_parse__flex_debug;
4281 int surf_parse__flex_debug = 0;
4282
4283 /* The intent behind this definition is that it'll catch
4284  * any uses of REJECT which flex missed.
4285  */
4286 #define REJECT reject_used_but_not_detected
4287 #define yymore() yymore_used_but_not_detected
4288 #define YY_MORE_ADJ 0
4289 #define YY_RESTORE_YY_MORE_OFFSET
4290 char *surf_parse_text;
4291 /* Validating XML processor for src/surf/simgrid.dtd.
4292  *
4293  * This program was generated with the FleXML XML processor generator.
4294  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4295  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
4296  * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
4297  * 
4298  * There are two, intertwined parts to this program, part A and part B.
4299  *
4300  * Part A
4301  * ------
4302  * 
4303  * Some parts, here collectively called "Part A", are found in the 
4304  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4305  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
4306  *
4307  * You can redistribute, use, perform, display and/or modify "Part A"
4308  * provided the following two conditions hold:
4309  *
4310  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4311  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4312  *    FITNESS FOR A PARTICULAR PURPOSE.
4313  *
4314  * 2. The program distribution conditions do not in any way affect the
4315  *    distribution conditions of the FleXML system used to generate this
4316  *    file or any version of FleXML derived from that system.
4317  *
4318  * Notice that these are explicit rights granted to you for files
4319  * generated by the FleXML system.  For your rights in connection with
4320  * the FleXML system itself please consult the GNU General Public License.
4321  * 
4322  * Part B
4323  * ------
4324  * 
4325  * The other parts, here collectively called "Part B", and which came 
4326  * from the DTD used by FleXML to generate this program, can be 
4327  * distributed (or not, as the case may be) under the terms of whoever
4328  * wrote them, provided these terms respect and obey the two conditions 
4329  * above under the heading "Part A".
4330  *
4331  * The author of and contributors to FleXML specifically disclaim
4332  * any copyright interest in "Part B", unless "Part B" was written 
4333  * by the author of or contributors to FleXML.
4334  * 
4335  */
4336
4337 /* Version strings. */
4338 const char rcs_surfxml_flexml_skeleton[] =
4339  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
4340 const char rcs_surfxml_flexml[] =
4341  "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
4342
4343 /* ANSI headers. */
4344 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4345 #include <stdio.h>
4346 #include <string.h>
4347 #include <assert.h>
4348 #include <stdarg.h>
4349 #include <ctype.h>
4350      
4351 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4352 # ifndef __STRICT_ANSI__
4353 #  include <io.h>
4354 #  include <process.h>
4355 # endif
4356 #else
4357 # include <unistd.h>
4358 #endif
4359      
4360 #ifndef FLEXML_INDEXSTACKSIZE
4361 #define FLEXML_INDEXSTACKSIZE 1000
4362 #endif
4363
4364 /* Generated definitions. */
4365 #define FLEXML_yylineno
4366 #ifndef FLEXML_BUFFERSTACKSIZE
4367 #define FLEXML_BUFFERSTACKSIZE 1000000
4368 #endif
4369 #define FLEXML_NEED_BUFFERLIT
4370
4371 /* XML processor api. */
4372 /* FleXML-provided data. */
4373 int surfxml_pcdata_ix;
4374 extern char *surfxml_bufferstack;
4375 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4376 AT_surfxml_mount_name AX_surfxml_mount_name;
4377 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4378 AT_surfxml_random_generator AX_surfxml_random_generator;
4379 #define A_surfxml_random_generator AX_surfxml_random_generator
4380 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
4381 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
4382 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
4383 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
4384 AT_surfxml_prop_id AX_surfxml_prop_id;
4385 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4386 AT_surfxml_host_link_up AX_surfxml_host_link_up;
4387 #define A_surfxml_host_link_up (surfxml_bufferstack + AX_surfxml_host_link_up)
4388 AT_surfxml_host_id AX_surfxml_host_id;
4389 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4390 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4391 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4392 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4393 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4394 AT_surfxml_process_on_failure AX_surfxml_process_on_failure;
4395 #define A_surfxml_process_on_failure AX_surfxml_process_on_failure
4396 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
4397 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
4398 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
4399 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
4400 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
4401 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
4402 AT_surfxml_host_state AX_surfxml_host_state;
4403 #define A_surfxml_host_state AX_surfxml_host_state
4404 AT_surfxml_AS_id AX_surfxml_AS_id;
4405 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4406 AT_surfxml_host_power AX_surfxml_host_power;
4407 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4408 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4409 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4410 AT_surfxml_router_id AX_surfxml_router_id;
4411 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4412 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
4413 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
4414 AT_surfxml_process_start_time AX_surfxml_process_start_time;
4415 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
4416 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4417 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4418 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4419 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4420 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4421 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4422 AT_surfxml_host_link_id AX_surfxml_host_link_id;
4423 #define A_surfxml_host_link_id (surfxml_bufferstack + AX_surfxml_host_link_id)
4424 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4425 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4426 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4427 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4428 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4429 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4430 AT_surfxml_trace_file AX_surfxml_trace_file;
4431 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4432 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
4433 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
4434 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4435 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4436 AT_surfxml_random_min AX_surfxml_random_min;
4437 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4438 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
4439 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
4440 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
4441 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
4442 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
4443 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
4444 AT_surfxml_storage_content AX_surfxml_storage_content;
4445 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4446 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
4447 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
4448 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
4449 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
4450 AT_surfxml_argument_value AX_surfxml_argument_value;
4451 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4452 AT_surfxml_link_state AX_surfxml_link_state;
4453 #define A_surfxml_link_state AX_surfxml_link_state
4454 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
4455 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
4456 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4457 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4458 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4459 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4460 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4461 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4462 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
4463 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
4464 AT_surfxml_random_mean AX_surfxml_random_mean;
4465 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4466 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
4467 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
4468 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
4469 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
4470 AT_surfxml_link_latency AX_surfxml_link_latency;
4471 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4472 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4473 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4474 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4475 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4476 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
4477 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
4478 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4479 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4480 AT_surfxml_random_seed AX_surfxml_random_seed;
4481 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4482 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4483 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4484 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4485 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4486 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4487 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4488 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4489 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4490 AT_surfxml_random_id AX_surfxml_random_id;
4491 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4492 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4493 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4494 AT_surfxml_random_max AX_surfxml_random_max;
4495 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4496 AT_surfxml_link_id AX_surfxml_link_id;
4497 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4498 AT_surfxml_process_host AX_surfxml_process_host;
4499 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4500 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4501 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4502 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4503 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4504 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4505 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4506 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4507 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4508 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4509 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4510 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4511 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4512 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4513 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4514 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4515 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4516 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4517 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4518 AT_surfxml_prop_value AX_surfxml_prop_value;
4519 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4520 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4521 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4522 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4523 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4524 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4525 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4526 AT_surfxml_random_radical AX_surfxml_random_radical;
4527 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4528 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4529 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4530 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4531 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4532 AT_surfxml_mount_id AX_surfxml_mount_id;
4533 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4534 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4535 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4536 AT_surfxml_process_function AX_surfxml_process_function;
4537 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4538 AT_surfxml_peer_id AX_surfxml_peer_id;
4539 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4540 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4541 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4542 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4543 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4544 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4545 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4546 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4547 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4548 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4549 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4550 AT_surfxml_host_core AX_surfxml_host_core;
4551 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4552 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4553 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4554 AT_surfxml_host_availability AX_surfxml_host_availability;
4555 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4556 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4557 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4558 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4559 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4560 AT_surfxml_route_src AX_surfxml_route_src;
4561 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4562 AT_surfxml_storage_id AX_surfxml_storage_id;
4563 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4564 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4565 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4566 AT_surfxml_trace_id AX_surfxml_trace_id;
4567 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4568 AT_surfxml_peer_power AX_surfxml_peer_power;
4569 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4570 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4571 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4572 AT_surfxml_config_id AX_surfxml_config_id;
4573 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4574 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4575 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4576 AT_surfxml_host_link_down AX_surfxml_host_link_down;
4577 #define A_surfxml_host_link_down (surfxml_bufferstack + AX_surfxml_host_link_down)
4578 AT_surfxml_include_file AX_surfxml_include_file;
4579 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4580 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4581 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4582 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4583 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4584 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4585 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4586 AT_surfxml_route_dst AX_surfxml_route_dst;
4587 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4588 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4589 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4590 AT_surfxml_platform_version AX_surfxml_platform_version;
4591 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4592
4593 /* XML state. */
4594 #ifdef FLEX_DEBUG
4595 # define ENTER(state)   debug_enter(state,#state)
4596 # define LEAVE          debug_leave()
4597 # define SET(state)     debug_set(state,#state)
4598   static void debug_enter(int, const char*);
4599   static void debug_leave(void);
4600   static void debug_set(int, const char*);
4601 #else
4602 # define ENTER(state)   (yy_push_state(state))
4603 # define LEAVE          (yy_pop_state())
4604 # define SET(state)     BEGIN(state)
4605 #endif
4606
4607 /* Generic actions. */
4608 #define SKIP    /*skip*/
4609 #define SUCCEED        CLEANUP; return 0
4610
4611 #define FAIL    return fail
4612 static int fail(const char*, ...);
4613
4614 enum {flexml_max_err_msg_size = 512};
4615 static char flexml_err_msg[flexml_max_err_msg_size];
4616 const char * surfxml_parse_err_msg()
4617 {
4618     return flexml_err_msg;
4619 }
4620 static void reset_surfxml_parse_err_msg()
4621 {
4622     flexml_err_msg[0] = '\0';
4623 }
4624
4625 /* Cleanup */
4626 static void cleanup(void);
4627 #define CLEANUP  cleanup()
4628
4629 /* Text buffer stack handling. */
4630 char *surfxml_bufferstack = NULL;
4631 static int blimit = FLEXML_BUFFERSTACKSIZE;
4632 static int bnext = 1;
4633
4634 static int *indexstack = NULL;
4635 static int ilimit = FLEXML_INDEXSTACKSIZE;
4636 static int inext = 1;
4637
4638 #define BUFFERSET(P)  (P = bnext)
4639 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4640 #define BUFFERDONE    (BUFFERPUTC('\0'))
4641
4642 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4643
4644 /* after this is called, there are at least 2 slots left in the stack */
4645 static int ck_blimit()
4646 {
4647      if (bnext >= blimit) {
4648          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4649          {
4650              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4651              assert(temp);
4652              surfxml_bufferstack = temp;
4653          }
4654      }
4655      return 0;
4656 }
4657
4658 /* after this is called, there are at least 2 slots left in the stack */
4659 static int ck_ilimit()
4660 {
4661      if (inext >= ilimit) {
4662          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4663          {
4664              int *temp = (int *) realloc(indexstack, ilimit);
4665              assert(temp);
4666              indexstack = temp;
4667          }
4668      }
4669      return 0;
4670 }
4671
4672 #ifdef FLEXML_NEED_BUFFERLIT
4673 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4674 {
4675   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4676   assert(s <= e); BUFFERSET(*pp);
4677   while (++s<e) {
4678     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4679     else BUFFERPUTC(*s);
4680   }
4681   BUFFERDONE;
4682 }
4683 #endif
4684
4685 static void pushbuffer(int p)
4686 {
4687     ck_ilimit();
4688     indexstack[inext++] = p;
4689     indexstack[inext++] = bnext;    
4690 }
4691
4692 static int popbuffer(void)
4693 {
4694     assert(inext >= 2);
4695     bnext = indexstack[--inext];
4696     return indexstack[--inext];
4697 }
4698
4699 /* General internal entities are `unput' back onto the input stream... */
4700 #define ENTITYTEXT(T) \
4701   { char *s = (T), *e = s+strlen(s);\
4702     while (--e >= s) { unput(*e); }}
4703
4704 /* Flex standard options. */
4705 #define YY_NO_INPUT 1
4706 /* Flex user-requested options. */
4707 /* XML character classes (currently restricted to ASCII). */
4708 /* "Common syntactic structures." */
4709 /* "Names and Tokens." */
4710 /* Miscellaneous. */
4711 /* Parser states (flex `exclusive start conditions'):
4712  *
4713  * PROLOG       the XML prolog of the document before <?xml...>
4714  * DOCTYPE      the XML prolog of the document after <?xml...>
4715  * EPILOG       after the root element
4716  * INCOMMENT    inside an XML comment <!--....-->
4717  * INPI         inside an XML PI <?...?>
4718  * VALUE1       inside a '...'-delimited literal
4719  * VALUE2       inside a "..."-delimited literal
4720  * CDATA        inside a <![CDATA[...] ]> section.
4721  * ROOT_<tag>   expect root element <tag>
4722  * AL_<tag>     inside the attribute list for <tag>
4723  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4724  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4725  */
4726
4727 /* State names. */
4728 const char* *surfxml_statenames=NULL;
4729
4730 #define INITIAL 0
4731 #define PROLOG 1
4732 #define DOCTYPE 2
4733 #define EPILOG 3
4734 #define INCOMMENT 4
4735 #define INPI 5
4736 #define VALUE1 6
4737 #define VALUE2 7
4738 #define CDATA 8
4739 #define ROOT_surfxml_platform 9
4740 #define AL_surfxml_platform 10
4741 #define S_surfxml_platform 11
4742 #define S_surfxml_platform_1 12
4743 #define S_surfxml_platform_2 13
4744 #define S_surfxml_platform_3 14
4745 #define S_surfxml_platform_4 15
4746 #define S_surfxml_platform_5 16
4747 #define S_surfxml_platform_6 17
4748 #define S_surfxml_platform_7 18
4749 #define S_surfxml_platform_8 19
4750 #define E_surfxml_platform 20
4751 #define AL_surfxml_include 21
4752 #define S_surfxml_include 22
4753 #define S_surfxml_include_1 23
4754 #define S_surfxml_include_2 24
4755 #define E_surfxml_include 25
4756 #define AL_surfxml_trace 26
4757 #define IN_trace 27
4758 #define AL_surfxml_random 28
4759 #define E_surfxml_random 29
4760 #define AL_surfxml_trace_connect 30
4761 #define E_surfxml_trace_connect 31
4762 #define AL_surfxml_AS 32
4763 #define S_surfxml_AS 33
4764 #define S_surfxml_AS_1 34
4765 #define S_surfxml_AS_2 35
4766 #define S_surfxml_AS_3 36
4767 #define S_surfxml_AS_4 37
4768 #define S_surfxml_AS_5 38
4769 #define S_surfxml_AS_6 39
4770 #define S_surfxml_AS_7 40
4771 #define S_surfxml_AS_8 41
4772 #define S_surfxml_AS_9 42
4773 #define S_surfxml_AS_10 43
4774 #define S_surfxml_AS_11 44
4775 #define S_surfxml_AS_12 45
4776 #define S_surfxml_AS_13 46
4777 #define S_surfxml_AS_14 47
4778 #define S_surfxml_AS_15 48
4779 #define S_surfxml_AS_16 49
4780 #define E_surfxml_AS 50
4781 #define AL_surfxml_storage_type 51
4782 #define S_surfxml_storage_type 52
4783 #define S_surfxml_storage_type_1 53
4784 #define S_surfxml_storage_type_2 54
4785 #define E_surfxml_storage_type 55
4786 #define AL_surfxml_storage 56
4787 #define S_surfxml_storage 57
4788 #define S_surfxml_storage_1 58
4789 #define S_surfxml_storage_2 59
4790 #define E_surfxml_storage 60
4791 #define AL_surfxml_mount 61
4792 #define E_surfxml_mount 62
4793 #define AL_surfxml_mstorage 63
4794 #define E_surfxml_mstorage 64
4795 #define AL_surfxml_host 65
4796 #define S_surfxml_host 66
4797 #define S_surfxml_host_1 67
4798 #define S_surfxml_host_2 68
4799 #define E_surfxml_host 69
4800 #define AL_surfxml_host_link 70
4801 #define E_surfxml_host_link 71
4802 #define AL_surfxml_cluster 72
4803 #define E_surfxml_cluster 73
4804 #define AL_surfxml_cabinet 74
4805 #define E_surfxml_cabinet 75
4806 #define AL_surfxml_peer 76
4807 #define E_surfxml_peer 77
4808 #define AL_surfxml_router 78
4809 #define E_surfxml_router 79
4810 #define AL_surfxml_backbone 80
4811 #define E_surfxml_backbone 81
4812 #define AL_surfxml_link 82
4813 #define S_surfxml_link 83
4814 #define S_surfxml_link_1 84
4815 #define S_surfxml_link_2 85
4816 #define E_surfxml_link 86
4817 #define AL_surfxml_route 87
4818 #define S_surfxml_route 88
4819 #define S_surfxml_route_1 89
4820 #define S_surfxml_route_2 90
4821 #define E_surfxml_route 91
4822 #define AL_surfxml_ASroute 92
4823 #define S_surfxml_ASroute 93
4824 #define S_surfxml_ASroute_1 94
4825 #define S_surfxml_ASroute_2 95
4826 #define E_surfxml_ASroute 96
4827 #define AL_surfxml_link_ctn 97
4828 #define E_surfxml_link_ctn 98
4829 #define AL_surfxml_bypassRoute 99
4830 #define S_surfxml_bypassRoute 100
4831 #define S_surfxml_bypassRoute_1 101
4832 #define S_surfxml_bypassRoute_2 102
4833 #define E_surfxml_bypassRoute 103
4834 #define AL_surfxml_bypassASroute 104
4835 #define S_surfxml_bypassASroute 105
4836 #define S_surfxml_bypassASroute_1 106
4837 #define S_surfxml_bypassASroute_2 107
4838 #define E_surfxml_bypassASroute 108
4839 #define AL_surfxml_process 109
4840 #define S_surfxml_process 110
4841 #define S_surfxml_process_1 111
4842 #define S_surfxml_process_2 112
4843 #define E_surfxml_process 113
4844 #define AL_surfxml_argument 114
4845 #define E_surfxml_argument 115
4846 #define AL_surfxml_config 116
4847 #define S_surfxml_config 117
4848 #define S_surfxml_config_1 118
4849 #define S_surfxml_config_2 119
4850 #define E_surfxml_config 120
4851 #define AL_surfxml_prop 121
4852 #define E_surfxml_prop 122
4853 #define IMPOSSIBLE 123
4854
4855 #ifndef YY_NO_UNISTD_H
4856 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4857  * down here because we want the user's section 1 to have been scanned first.
4858  * The user has a chance to override it with an option.
4859  */
4860 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4861 #  ifndef __STRICT_ANSI__
4862 #    include <io.h>
4863 #    include <process.h>
4864 #  endif
4865 #else
4866 #  include <unistd.h>
4867 #endif
4868 #endif
4869
4870 #ifndef YY_EXTRA_TYPE
4871 #define YY_EXTRA_TYPE void *
4872 #endif
4873
4874 static int yy_init_globals (void );
4875
4876 /* Accessor methods to globals.
4877    These are made visible to non-reentrant scanners for convenience. */
4878
4879 int surf_parse_lex_destroy (void );
4880
4881 int surf_parse_get_debug (void );
4882
4883 void surf_parse_set_debug (int debug_flag  );
4884
4885 YY_EXTRA_TYPE surf_parse_get_extra (void );
4886
4887 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4888
4889 FILE *surf_parse_get_in (void );
4890
4891 void surf_parse_set_in  (FILE * in_str  );
4892
4893 FILE *surf_parse_get_out (void );
4894
4895 void surf_parse_set_out  (FILE * out_str  );
4896
4897 int surf_parse_get_leng (void );
4898
4899 char *surf_parse_get_text (void );
4900
4901 int surf_parse_get_lineno (void );
4902
4903 void surf_parse_set_lineno (int line_number  );
4904
4905 /* Macros after this point can all be overridden by user definitions in
4906  * section 1.
4907  */
4908
4909 #ifndef YY_SKIP_YYWRAP
4910 #ifdef __cplusplus
4911 extern "C" int surf_parse_wrap (void );
4912 #else
4913 extern int surf_parse_wrap (void );
4914 #endif
4915 #endif
4916
4917 #ifndef yytext_ptr
4918 static void yy_flex_strncpy (char *,yyconst char *,int );
4919 #endif
4920
4921 #ifdef YY_NEED_STRLEN
4922 static int yy_flex_strlen (yyconst char * );
4923 #endif
4924
4925 #ifndef YY_NO_INPUT
4926
4927 #ifdef __cplusplus
4928 static int yyinput (void );
4929 #else
4930 static int input (void );
4931 #endif
4932
4933 #endif
4934
4935         static int yy_start_stack_ptr = 0;
4936         static int yy_start_stack_depth = 0;
4937         static int *yy_start_stack = NULL;
4938     
4939     static void yy_push_state (int new_state );
4940     
4941     static void yy_pop_state (void );
4942     
4943 /* Amount of stuff to slurp up with each read. */
4944 #ifndef YY_READ_BUF_SIZE
4945 #ifdef __ia64__
4946 /* On IA-64, the buffer size is 16k, not 8k */
4947 #define YY_READ_BUF_SIZE 16384
4948 #else
4949 #define YY_READ_BUF_SIZE 8192
4950 #endif /* __ia64__ */
4951 #endif
4952
4953 /* Copy whatever the last rule matched to the standard output. */
4954 #ifndef ECHO
4955 /* This used to be an fputs(), but since the string might contain NUL's,
4956  * we now use fwrite().
4957  */
4958 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
4959 #endif
4960
4961 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
4962  * is returned in "result".
4963  */
4964 #ifndef YY_INPUT
4965 #define YY_INPUT(buf,result,max_size) \
4966         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4967                 { \
4968                 int c = '*'; \
4969                 size_t n; \
4970                 for ( n = 0; n < max_size && \
4971                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
4972                         buf[n] = (char) c; \
4973                 if ( c == '\n' ) \
4974                         buf[n++] = (char) c; \
4975                 if ( c == EOF && ferror( surf_parse_in ) ) \
4976                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
4977                 result = n; \
4978                 } \
4979         else \
4980                 { \
4981                 errno=0; \
4982                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
4983                         { \
4984                         if( errno != EINTR) \
4985                                 { \
4986                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4987                                 break; \
4988                                 } \
4989                         errno=0; \
4990                         clearerr(surf_parse_in); \
4991                         } \
4992                 }\
4993 \
4994
4995 #endif
4996
4997 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4998  * we don't want an extra ';' after the "return" because that will cause
4999  * some compilers to complain about unreachable statements.
5000  */
5001 #ifndef yyterminate
5002 #define yyterminate() return YY_NULL
5003 #endif
5004
5005 /* Number of entries by which start-condition stack grows. */
5006 #ifndef YY_START_STACK_INCR
5007 #define YY_START_STACK_INCR 25
5008 #endif
5009
5010 /* Report a fatal error. */
5011 #ifndef YY_FATAL_ERROR
5012 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5013 #endif
5014
5015 /* end tables serialization structures and prototypes */
5016
5017 /* Default declaration of generated scanner - a define so the user can
5018  * easily add parameters.
5019  */
5020 #ifndef YY_DECL
5021 #define YY_DECL_IS_OURS 1
5022
5023 extern int surf_parse_lex (void);
5024
5025 #define YY_DECL int surf_parse_lex (void)
5026 #endif /* !YY_DECL */
5027
5028 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5029  * have been set up.
5030  */
5031 #ifndef YY_USER_ACTION
5032 #define YY_USER_ACTION
5033 #endif
5034
5035 /* Code executed at the end of each rule. */
5036 #ifndef YY_BREAK
5037 #define YY_BREAK break;
5038 #endif
5039
5040 #define YY_RULE_SETUP \
5041         YY_USER_ACTION
5042
5043 /** The main scanner function which does all the work.
5044  */
5045 YY_DECL
5046 {
5047         register yy_state_type yy_current_state;
5048         register char *yy_cp, *yy_bp;
5049         register int yy_act;
5050     
5051  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5052  SET(PROLOG);
5053  reset_surfxml_parse_err_msg();
5054  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5055  assert(surfxml_bufferstack);
5056  #ifdef FLEX_DEBUG
5057  {
5058      int i;
5059      for (i = 0; i < blimit; i++) {
5060          surfxml_bufferstack[i] = '\377';
5061      }
5062  }
5063  #endif
5064  surfxml_bufferstack[0] = '\0';
5065  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5066  assert(indexstack);
5067  indexstack[0] = 0;
5068
5069   /* FleXML_init */
5070   bnext = inext = 1;
5071   surfxml_bufferliteral('\0', &bnext, "0.0");
5072   surfxml_bufferliteral('\0', &bnext, "2147483647");
5073   surfxml_bufferliteral('\0', &bnext, "1");
5074   surfxml_bufferliteral('\0', &bnext, "1.0");
5075   surfxml_bufferliteral('\0', &bnext, "1");
5076   surfxml_bufferliteral('\0', &bnext, "0.0");
5077   surfxml_bufferliteral('\0', &bnext, "-1.0");
5078   surfxml_bufferliteral('\0', &bnext, "-1.0");
5079   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5080   surfxml_statenames[PROLOG] = NULL;
5081   surfxml_statenames[DOCTYPE] = NULL;
5082   surfxml_statenames[EPILOG] = NULL;
5083   surfxml_statenames[INCOMMENT] = NULL;
5084   surfxml_statenames[INPI] = NULL;
5085   surfxml_statenames[VALUE1] = NULL;
5086   surfxml_statenames[VALUE2] = NULL;
5087   surfxml_statenames[CDATA] = NULL;
5088   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5089   surfxml_statenames[AL_surfxml_platform] = NULL;
5090   surfxml_statenames[S_surfxml_platform] = "platform";
5091   surfxml_statenames[S_surfxml_platform_1] = "platform";
5092   surfxml_statenames[S_surfxml_platform_2] = "platform";
5093   surfxml_statenames[S_surfxml_platform_3] = "platform";
5094   surfxml_statenames[S_surfxml_platform_4] = "platform";
5095   surfxml_statenames[S_surfxml_platform_5] = "platform";
5096   surfxml_statenames[S_surfxml_platform_6] = "platform";
5097   surfxml_statenames[S_surfxml_platform_7] = "platform";
5098   surfxml_statenames[S_surfxml_platform_8] = "platform";
5099   surfxml_statenames[E_surfxml_platform] = "platform";
5100   surfxml_statenames[AL_surfxml_include] = NULL;
5101   surfxml_statenames[S_surfxml_include] = "include";
5102   surfxml_statenames[S_surfxml_include_1] = "include";
5103   surfxml_statenames[S_surfxml_include_2] = "include";
5104   surfxml_statenames[E_surfxml_include] = "include";
5105   surfxml_statenames[AL_surfxml_trace] = NULL;
5106   surfxml_statenames[IN_trace] = "trace";
5107   surfxml_statenames[AL_surfxml_random] = NULL;
5108   surfxml_statenames[E_surfxml_random] = "random";
5109   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
5110   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
5111   surfxml_statenames[AL_surfxml_AS] = NULL;
5112   surfxml_statenames[S_surfxml_AS] = "AS";
5113   surfxml_statenames[S_surfxml_AS_1] = "AS";
5114   surfxml_statenames[S_surfxml_AS_2] = "AS";
5115   surfxml_statenames[S_surfxml_AS_3] = "AS";
5116   surfxml_statenames[S_surfxml_AS_4] = "AS";
5117   surfxml_statenames[S_surfxml_AS_5] = "AS";
5118   surfxml_statenames[S_surfxml_AS_6] = "AS";
5119   surfxml_statenames[S_surfxml_AS_7] = "AS";
5120   surfxml_statenames[S_surfxml_AS_8] = "AS";
5121   surfxml_statenames[S_surfxml_AS_9] = "AS";
5122   surfxml_statenames[S_surfxml_AS_10] = "AS";
5123   surfxml_statenames[S_surfxml_AS_11] = "AS";
5124   surfxml_statenames[S_surfxml_AS_12] = "AS";
5125   surfxml_statenames[S_surfxml_AS_13] = "AS";
5126   surfxml_statenames[S_surfxml_AS_14] = "AS";
5127   surfxml_statenames[S_surfxml_AS_15] = "AS";
5128   surfxml_statenames[S_surfxml_AS_16] = "AS";
5129   surfxml_statenames[E_surfxml_AS] = "AS";
5130   surfxml_statenames[AL_surfxml_storage_type] = NULL;
5131   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
5132   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
5133   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
5134   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
5135   surfxml_statenames[AL_surfxml_storage] = NULL;
5136   surfxml_statenames[S_surfxml_storage] = "storage";
5137   surfxml_statenames[S_surfxml_storage_1] = "storage";
5138   surfxml_statenames[S_surfxml_storage_2] = "storage";
5139   surfxml_statenames[E_surfxml_storage] = "storage";
5140   surfxml_statenames[AL_surfxml_mount] = NULL;
5141   surfxml_statenames[E_surfxml_mount] = "mount";
5142   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5143   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5144   surfxml_statenames[AL_surfxml_host] = NULL;
5145   surfxml_statenames[S_surfxml_host] = "host";
5146   surfxml_statenames[S_surfxml_host_1] = "host";
5147   surfxml_statenames[S_surfxml_host_2] = "host";
5148   surfxml_statenames[E_surfxml_host] = "host";
5149   surfxml_statenames[AL_surfxml_host_link] = NULL;
5150   surfxml_statenames[E_surfxml_host_link] = "host_link";
5151   surfxml_statenames[AL_surfxml_cluster] = NULL;
5152   surfxml_statenames[E_surfxml_cluster] = "cluster";
5153   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5154   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5155   surfxml_statenames[AL_surfxml_peer] = NULL;
5156   surfxml_statenames[E_surfxml_peer] = "peer";
5157   surfxml_statenames[AL_surfxml_router] = NULL;
5158   surfxml_statenames[E_surfxml_router] = "router";
5159   surfxml_statenames[AL_surfxml_backbone] = NULL;
5160   surfxml_statenames[E_surfxml_backbone] = "backbone";
5161   surfxml_statenames[AL_surfxml_link] = NULL;
5162   surfxml_statenames[S_surfxml_link] = "link";
5163   surfxml_statenames[S_surfxml_link_1] = "link";
5164   surfxml_statenames[S_surfxml_link_2] = "link";
5165   surfxml_statenames[E_surfxml_link] = "link";
5166   surfxml_statenames[AL_surfxml_route] = NULL;
5167   surfxml_statenames[S_surfxml_route] = "route";
5168   surfxml_statenames[S_surfxml_route_1] = "route";
5169   surfxml_statenames[S_surfxml_route_2] = "route";
5170   surfxml_statenames[E_surfxml_route] = "route";
5171   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5172   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5173   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5174   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5175   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5176   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
5177   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
5178   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5179   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5180   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5181   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5182   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5183   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5184   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5185   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5186   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5187   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5188   surfxml_statenames[AL_surfxml_process] = NULL;
5189   surfxml_statenames[S_surfxml_process] = "process";
5190   surfxml_statenames[S_surfxml_process_1] = "process";
5191   surfxml_statenames[S_surfxml_process_2] = "process";
5192   surfxml_statenames[E_surfxml_process] = "process";
5193   surfxml_statenames[AL_surfxml_argument] = NULL;
5194   surfxml_statenames[E_surfxml_argument] = "argument";
5195   surfxml_statenames[AL_surfxml_config] = NULL;
5196   surfxml_statenames[S_surfxml_config] = "config";
5197   surfxml_statenames[S_surfxml_config_1] = "config";
5198   surfxml_statenames[S_surfxml_config_2] = "config";
5199   surfxml_statenames[E_surfxml_config] = "config";
5200   surfxml_statenames[AL_surfxml_prop] = NULL;
5201   surfxml_statenames[E_surfxml_prop] = "prop";
5202   }
5203
5204  /* COMMENTS and PIs: handled uniformly for efficiency. */
5205
5206         if ( !(yy_init) )
5207                 {
5208                 (yy_init) = 1;
5209
5210 #ifdef YY_USER_INIT
5211                 YY_USER_INIT;
5212 #endif
5213
5214                 if ( ! (yy_start) )
5215                         (yy_start) = 1; /* first start state */
5216
5217                 if ( ! surf_parse_in )
5218                         surf_parse_in = stdin;
5219
5220                 if ( ! surf_parse_out )
5221                         surf_parse_out = stdout;
5222
5223                 if ( ! YY_CURRENT_BUFFER ) {
5224                         surf_parse_ensure_buffer_stack ();
5225                         YY_CURRENT_BUFFER_LVALUE =
5226                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5227                 }
5228
5229                 surf_parse__load_buffer_state( );
5230                 }
5231
5232         while ( 1 )             /* loops until end-of-file is reached */
5233                 {
5234                 yy_cp = (yy_c_buf_p);
5235
5236                 /* Support of surf_parse_text. */
5237                 *yy_cp = (yy_hold_char);
5238
5239                 /* yy_bp points to the position in yy_ch_buf of the start of
5240                  * the current run.
5241                  */
5242                 yy_bp = yy_cp;
5243
5244                 yy_current_state = (yy_start);
5245 yy_match:
5246                 do
5247                         {
5248                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5249                         if ( yy_accept[yy_current_state] )
5250                                 {
5251                                 (yy_last_accepting_state) = yy_current_state;
5252                                 (yy_last_accepting_cpos) = yy_cp;
5253                                 }
5254                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5255                                 {
5256                                 yy_current_state = (int) yy_def[yy_current_state];
5257                                 if ( yy_current_state >= 3218 )
5258                                         yy_c = yy_meta[(unsigned int) yy_c];
5259                                 }
5260                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5261                         ++yy_cp;
5262                         }
5263                 while ( yy_base[yy_current_state] != 11752 );
5264
5265 yy_find_action:
5266                 yy_act = yy_accept[yy_current_state];
5267                 if ( yy_act == 0 )
5268                         { /* have to back up */
5269                         yy_cp = (yy_last_accepting_cpos);
5270                         yy_current_state = (yy_last_accepting_state);
5271                         yy_act = yy_accept[yy_current_state];
5272                         }
5273
5274                 YY_DO_BEFORE_ACTION;
5275
5276                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5277                         {
5278                         int yyl;
5279                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5280                                 if ( surf_parse_text[yyl] == '\n' )
5281                                            
5282     surf_parse_lineno++;
5283 ;
5284                         }
5285
5286 do_action:      /* This label is used only to access EOF actions. */
5287
5288                 switch ( yy_act )
5289         { /* beginning of action switch */
5290                         case 0: /* must back up */
5291                         /* undo the effects of YY_DO_BEFORE_ACTION */
5292                         *yy_cp = (yy_hold_char);
5293                         yy_cp = (yy_last_accepting_cpos);
5294                         yy_current_state = (yy_last_accepting_state);
5295                         goto yy_find_action;
5296
5297 case 1:
5298 YY_RULE_SETUP
5299 ENTER(INCOMMENT);
5300         YY_BREAK
5301 case 2:
5302 YY_RULE_SETUP
5303 ENTER(INPI);
5304         YY_BREAK
5305
5306 case 3:
5307 YY_RULE_SETUP
5308 LEAVE;
5309         YY_BREAK
5310 case 4:
5311 case 5:
5312 case 6:
5313 /* rule 6 can match eol */
5314 YY_RULE_SETUP
5315 SKIP;
5316         YY_BREAK
5317 case YY_STATE_EOF(INCOMMENT):
5318 FAIL("EOF in comment.");
5319         YY_BREAK
5320
5321 case 7:
5322 YY_RULE_SETUP
5323 LEAVE;
5324         YY_BREAK
5325 case 8:
5326 case 9:
5327 /* rule 9 can match eol */
5328 YY_RULE_SETUP
5329 SKIP;
5330         YY_BREAK
5331 case YY_STATE_EOF(INPI):
5332 FAIL("EOF in PI (processing instruction).");
5333         YY_BREAK
5334
5335 /* SPACES: skipped uniformly */
5336 case 10:
5337 /* rule 10 can match eol */
5338 YY_RULE_SETUP
5339 SKIP;
5340         YY_BREAK
5341 /* PROLOG: determine root element and process it. */
5342
5343 case 11:
5344 /* rule 11 can match eol */
5345 YY_RULE_SETUP
5346 SET(DOCTYPE); 
5347         YY_BREAK
5348 case 12:
5349 /* rule 12 can match eol */
5350 YY_RULE_SETUP
5351 FAIL("Bad declaration %s.",surf_parse_text);
5352         YY_BREAK
5353
5354 case 13:
5355 /* rule 13 can match eol */
5356 YY_RULE_SETUP
5357 SET(ROOT_surfxml_platform);
5358         YY_BREAK
5359 case 14:
5360 /* rule 14 can match eol */
5361 YY_RULE_SETUP
5362 FAIL("Bad declaration %s.",surf_parse_text);
5363         YY_BREAK
5364 case 15:
5365 YY_RULE_SETUP
5366 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5367         YY_BREAK
5368 case YY_STATE_EOF(PROLOG):
5369 case YY_STATE_EOF(DOCTYPE):
5370 FAIL("EOF in prolog.");
5371         YY_BREAK
5372
5373 /* RULES DERIVED FROM DTD. */
5374 /* <!-- Small DTD for SURF based tools. -->  */
5375 case 16:
5376 /* rule 16 can match eol */
5377 YY_RULE_SETUP
5378 FAIL("Starting tag <platform> is not allowed here.");
5379         YY_BREAK
5380 case 17:
5381 /* rule 17 can match eol */
5382 YY_RULE_SETUP
5383 {
5384   AX_surfxml_platform_version = 1;
5385   ENTER(AL_surfxml_platform); pushbuffer(0);
5386   }
5387         YY_BREAK
5388
5389 case 18:
5390 /* rule 18 can match eol */
5391 YY_RULE_SETUP
5392 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
5393         YY_BREAK
5394 case 19:
5395 /* rule 19 can match eol */
5396 YY_RULE_SETUP
5397 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
5398         YY_BREAK
5399 case 20:
5400 YY_RULE_SETUP
5401 {
5402   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5403  }
5404         YY_BREAK
5405 case 21:
5406 YY_RULE_SETUP
5407 {
5408   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5409   switch (YY_START) {
5410    case ROOT_surfxml_platform: SET(EPILOG); break;
5411   }
5412  }
5413         YY_BREAK
5414 case 22:
5415 YY_RULE_SETUP
5416 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5417         YY_BREAK
5418 case 23:
5419 YY_RULE_SETUP
5420 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5421         YY_BREAK
5422 case YY_STATE_EOF(AL_surfxml_platform):
5423 FAIL("EOF in attribute list of `platform' element.");
5424         YY_BREAK
5425
5426 case 24:
5427 /* rule 24 can match eol */
5428 YY_RULE_SETUP
5429 {
5430   LEAVE;
5431   ETag_surfxml_platform();
5432   popbuffer(); /* attribute */
5433   switch (YY_START) {
5434    case ROOT_surfxml_platform: SET(EPILOG); break;
5435   }
5436  }
5437         YY_BREAK
5438 case 25:
5439 /* rule 25 can match eol */
5440 YY_RULE_SETUP
5441 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5442         YY_BREAK
5443 case 26:
5444 YY_RULE_SETUP
5445 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5446         YY_BREAK
5447 case YY_STATE_EOF(S_surfxml_platform_8):
5448 case YY_STATE_EOF(S_surfxml_platform_1):
5449 case YY_STATE_EOF(S_surfxml_platform_3):
5450 case YY_STATE_EOF(S_surfxml_platform):
5451 case YY_STATE_EOF(S_surfxml_platform_4):
5452 case YY_STATE_EOF(S_surfxml_platform_6):
5453 case YY_STATE_EOF(E_surfxml_platform):
5454 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5455         YY_BREAK
5456
5457 case 27:
5458 /* rule 27 can match eol */
5459 YY_RULE_SETUP
5460 FAIL("Starting tag <include> is not allowed here.");
5461         YY_BREAK
5462 case 28:
5463 /* rule 28 can match eol */
5464 YY_RULE_SETUP
5465 {
5466   AX_surfxml_include_file = 0;
5467   ENTER(AL_surfxml_include); pushbuffer(0);
5468   }
5469         YY_BREAK
5470
5471 case 29:
5472 /* rule 29 can match eol */
5473 YY_RULE_SETUP
5474 ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
5475         YY_BREAK
5476 case 30:
5477 /* rule 30 can match eol */
5478 YY_RULE_SETUP
5479 ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
5480         YY_BREAK
5481 case 31:
5482 YY_RULE_SETUP
5483 {
5484   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5485   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5486  }
5487         YY_BREAK
5488 case 32:
5489 YY_RULE_SETUP
5490 {
5491   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5492   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5493   switch (YY_START) {
5494    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5495    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;
5496    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5497    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5498   }
5499  }
5500         YY_BREAK
5501 case 33:
5502 YY_RULE_SETUP
5503 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5504         YY_BREAK
5505 case 34:
5506 YY_RULE_SETUP
5507 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5508         YY_BREAK
5509 case YY_STATE_EOF(AL_surfxml_include):
5510 FAIL("EOF in attribute list of `include' element.");
5511         YY_BREAK
5512
5513 case 35:
5514 /* rule 35 can match eol */
5515 YY_RULE_SETUP
5516 {
5517   LEAVE;
5518   ETag_surfxml_include();
5519   popbuffer(); /* attribute */
5520   switch (YY_START) {
5521    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5522    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;
5523    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5524    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5525   }
5526  }
5527         YY_BREAK
5528 case 36:
5529 /* rule 36 can match eol */
5530 YY_RULE_SETUP
5531 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5532         YY_BREAK
5533 case 37:
5534 YY_RULE_SETUP
5535 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5536         YY_BREAK
5537 case YY_STATE_EOF(E_surfxml_include):
5538 case YY_STATE_EOF(S_surfxml_include):
5539 case YY_STATE_EOF(S_surfxml_include_2):
5540 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5541         YY_BREAK
5542
5543 case 38:
5544 /* rule 38 can match eol */
5545 YY_RULE_SETUP
5546 FAIL("Starting tag <trace> is not allowed here.");
5547         YY_BREAK
5548 case 39:
5549 /* rule 39 can match eol */
5550 YY_RULE_SETUP
5551 {
5552   AX_surfxml_trace_id = 0;
5553   AX_surfxml_trace_file = 0;
5554   AX_surfxml_trace_periodicity = 0;
5555   ENTER(AL_surfxml_trace); pushbuffer(0);
5556   }
5557         YY_BREAK
5558
5559 case 40:
5560 /* rule 40 can match eol */
5561 YY_RULE_SETUP
5562 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
5563         YY_BREAK
5564 case 41:
5565 /* rule 41 can match eol */
5566 YY_RULE_SETUP
5567 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
5568         YY_BREAK
5569 case 42:
5570 /* rule 42 can match eol */
5571 YY_RULE_SETUP
5572 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
5573         YY_BREAK
5574 case 43:
5575 /* rule 43 can match eol */
5576 YY_RULE_SETUP
5577 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
5578         YY_BREAK
5579 case 44:
5580 /* rule 44 can match eol */
5581 YY_RULE_SETUP
5582 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
5583         YY_BREAK
5584 case 45:
5585 /* rule 45 can match eol */
5586 YY_RULE_SETUP
5587 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
5588         YY_BREAK
5589 case 46:
5590 YY_RULE_SETUP
5591 {
5592   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5593   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5594   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5595  }
5596         YY_BREAK
5597 case 47:
5598 YY_RULE_SETUP
5599 {
5600   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5601   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5602   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5603   switch (YY_START) {
5604    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5605    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5606    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5607    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;
5608    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5609    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5610    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5611   }
5612  }
5613         YY_BREAK
5614 case 48:
5615 YY_RULE_SETUP
5616 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5617         YY_BREAK
5618 case 49:
5619 YY_RULE_SETUP
5620 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5621         YY_BREAK
5622 case YY_STATE_EOF(AL_surfxml_trace):
5623 FAIL("EOF in attribute list of `trace' element.");
5624         YY_BREAK
5625
5626 case 50:
5627 /* rule 50 can match eol */
5628 YY_RULE_SETUP
5629 {
5630   LEAVE;
5631   BUFFERDONE;
5632   ETag_surfxml_trace();
5633   surfxml_pcdata_ix = popbuffer();
5634   popbuffer(); /* attribute */
5635   switch (YY_START) {
5636    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5637    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5638    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5639    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;
5640    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5641    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5642    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5643   }
5644  }
5645         YY_BREAK
5646 case 51:
5647 /* rule 51 can match eol */
5648 YY_RULE_SETUP
5649 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5650         YY_BREAK
5651 case YY_STATE_EOF(IN_trace):
5652 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5653         YY_BREAK
5654
5655 case 52:
5656 /* rule 52 can match eol */
5657 YY_RULE_SETUP
5658 FAIL("Starting tag <random> is not allowed here.");
5659         YY_BREAK
5660 case 53:
5661 /* rule 53 can match eol */
5662 YY_RULE_SETUP
5663 {
5664   AX_surfxml_random_id = 0;
5665   AX_surfxml_random_min = 0;
5666   AX_surfxml_random_max = 0;
5667   AX_surfxml_random_mean = 0;
5668   AX_surfxml_random_std_deviation = 0;
5669   AX_surfxml_random_seed = 5;
5670   AX_surfxml_random_radical = 0;
5671   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5672   ENTER(AL_surfxml_random); pushbuffer(0);
5673   }
5674         YY_BREAK
5675
5676 case 54:
5677 /* rule 54 can match eol */
5678 YY_RULE_SETUP
5679 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
5680         YY_BREAK
5681 case 55:
5682 /* rule 55 can match eol */
5683 YY_RULE_SETUP
5684 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
5685         YY_BREAK
5686 case 56:
5687 /* rule 56 can match eol */
5688 YY_RULE_SETUP
5689 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
5690         YY_BREAK
5691 case 57:
5692 /* rule 57 can match eol */
5693 YY_RULE_SETUP
5694 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
5695         YY_BREAK
5696 case 58:
5697 /* rule 58 can match eol */
5698 YY_RULE_SETUP
5699 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
5700         YY_BREAK
5701 case 59:
5702 /* rule 59 can match eol */
5703 YY_RULE_SETUP
5704 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
5705         YY_BREAK
5706 case 60:
5707 /* rule 60 can match eol */
5708 YY_RULE_SETUP
5709 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
5710         YY_BREAK
5711 case 61:
5712 /* rule 61 can match eol */
5713 YY_RULE_SETUP
5714 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
5715         YY_BREAK
5716 case 62:
5717 /* rule 62 can match eol */
5718 YY_RULE_SETUP
5719 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
5720         YY_BREAK
5721 case 63:
5722 /* rule 63 can match eol */
5723 YY_RULE_SETUP
5724 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
5725         YY_BREAK
5726 case 64:
5727 /* rule 64 can match eol */
5728 YY_RULE_SETUP
5729 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
5730         YY_BREAK
5731 case 65:
5732 /* rule 65 can match eol */
5733 YY_RULE_SETUP
5734 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
5735         YY_BREAK
5736 case 66:
5737 /* rule 66 can match eol */
5738 YY_RULE_SETUP
5739 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
5740         YY_BREAK
5741 case 67:
5742 /* rule 67 can match eol */
5743 YY_RULE_SETUP
5744 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
5745         YY_BREAK
5746 case 68:
5747 /* rule 68 can match eol */
5748 case 69:
5749 /* rule 69 can match eol */
5750 YY_RULE_SETUP
5751 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5752         YY_BREAK
5753 case 70:
5754 /* rule 70 can match eol */
5755 case 71:
5756 /* rule 71 can match eol */
5757 YY_RULE_SETUP
5758 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5759         YY_BREAK
5760 case 72:
5761 /* rule 72 can match eol */
5762 case 73:
5763 /* rule 73 can match eol */
5764 YY_RULE_SETUP
5765 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5766         YY_BREAK
5767 case 74:
5768 /* rule 74 can match eol */
5769 case 75:
5770 /* rule 75 can match eol */
5771 YY_RULE_SETUP
5772 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5773         YY_BREAK
5774 case 76:
5775 YY_RULE_SETUP
5776 {
5777   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5778   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5779   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5780   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5781   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5782   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
5783  }
5784         YY_BREAK
5785 case 77:
5786 YY_RULE_SETUP
5787 {
5788   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5789   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5790   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5791   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5792   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5793   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5794   switch (YY_START) {
5795    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5796   }
5797  }
5798         YY_BREAK
5799 case 78:
5800 YY_RULE_SETUP
5801 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5802         YY_BREAK
5803 case 79:
5804 YY_RULE_SETUP
5805 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5806         YY_BREAK
5807 case YY_STATE_EOF(AL_surfxml_random):
5808 FAIL("EOF in attribute list of `random' element.");
5809         YY_BREAK
5810
5811 case 80:
5812 /* rule 80 can match eol */
5813 YY_RULE_SETUP
5814 {
5815   LEAVE;
5816   ETag_surfxml_random();
5817   popbuffer(); /* attribute */
5818   switch (YY_START) {
5819    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5820   }
5821  }
5822         YY_BREAK
5823 case 81:
5824 /* rule 81 can match eol */
5825 YY_RULE_SETUP
5826 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5827         YY_BREAK
5828 case 82:
5829 YY_RULE_SETUP
5830 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5831         YY_BREAK
5832 case YY_STATE_EOF(E_surfxml_random):
5833 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5834         YY_BREAK
5835
5836 case 83:
5837 /* rule 83 can match eol */
5838 YY_RULE_SETUP
5839 FAIL("Starting tag <trace_connect> is not allowed here.");
5840         YY_BREAK
5841 case 84:
5842 /* rule 84 can match eol */
5843 YY_RULE_SETUP
5844 {
5845   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5846   AX_surfxml_trace_connect_trace = 0;
5847   AX_surfxml_trace_connect_element = 0;
5848   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5849   }
5850         YY_BREAK
5851
5852 case 85:
5853 /* rule 85 can match eol */
5854 case 86:
5855 /* rule 86 can match eol */
5856 YY_RULE_SETUP
5857 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5858         YY_BREAK
5859 case 87:
5860 /* rule 87 can match eol */
5861 case 88:
5862 /* rule 88 can match eol */
5863 YY_RULE_SETUP
5864 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5865         YY_BREAK
5866 case 89:
5867 /* rule 89 can match eol */
5868 case 90:
5869 /* rule 90 can match eol */
5870 YY_RULE_SETUP
5871 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
5872         YY_BREAK
5873 case 91:
5874 /* rule 91 can match eol */
5875 case 92:
5876 /* rule 92 can match eol */
5877 YY_RULE_SETUP
5878 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
5879         YY_BREAK
5880 case 93:
5881 /* rule 93 can match eol */
5882 case 94:
5883 /* rule 94 can match eol */
5884 YY_RULE_SETUP
5885 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
5886         YY_BREAK
5887 case 95:
5888 /* rule 95 can match eol */
5889 YY_RULE_SETUP
5890 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_trace);
5891         YY_BREAK
5892 case 96:
5893 /* rule 96 can match eol */
5894 YY_RULE_SETUP
5895 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_trace);
5896         YY_BREAK
5897 case 97:
5898 /* rule 97 can match eol */
5899 YY_RULE_SETUP
5900 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_element);
5901         YY_BREAK
5902 case 98:
5903 /* rule 98 can match eol */
5904 YY_RULE_SETUP
5905 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_element);
5906         YY_BREAK
5907 case 99:
5908 YY_RULE_SETUP
5909 {
5910   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5911   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5912   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
5913  }
5914         YY_BREAK
5915 case 100:
5916 YY_RULE_SETUP
5917 {
5918   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5919   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5920   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
5921   switch (YY_START) {
5922    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5923    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5924    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5925    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;
5926    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5927    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5928    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5929   }
5930  }
5931         YY_BREAK
5932 case 101:
5933 YY_RULE_SETUP
5934 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
5935         YY_BREAK
5936 case 102:
5937 YY_RULE_SETUP
5938 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
5939         YY_BREAK
5940 case YY_STATE_EOF(AL_surfxml_trace_connect):
5941 FAIL("EOF in attribute list of `trace_connect' element.");
5942         YY_BREAK
5943
5944 case 103:
5945 /* rule 103 can match eol */
5946 YY_RULE_SETUP
5947 {
5948   LEAVE;
5949   ETag_surfxml_trace_connect();
5950   popbuffer(); /* attribute */
5951   switch (YY_START) {
5952    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5953    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5954    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5955    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;
5956    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5957    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5958    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5959   }
5960  }
5961         YY_BREAK
5962 case 104:
5963 /* rule 104 can match eol */
5964 YY_RULE_SETUP
5965 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
5966         YY_BREAK
5967 case 105:
5968 YY_RULE_SETUP
5969 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
5970         YY_BREAK
5971 case YY_STATE_EOF(E_surfxml_trace_connect):
5972 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
5973         YY_BREAK
5974
5975 case 106:
5976 /* rule 106 can match eol */
5977 YY_RULE_SETUP
5978 FAIL("Starting tag <AS> is not allowed here.");
5979         YY_BREAK
5980 case 107:
5981 /* rule 107 can match eol */
5982 YY_RULE_SETUP
5983 {
5984   AX_surfxml_AS_id = 0;
5985   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
5986   ENTER(AL_surfxml_AS); pushbuffer(0);
5987   }
5988         YY_BREAK
5989
5990 case 108:
5991 /* rule 108 can match eol */
5992 YY_RULE_SETUP
5993 ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
5994         YY_BREAK
5995 case 109:
5996 /* rule 109 can match eol */
5997 YY_RULE_SETUP
5998 ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
5999         YY_BREAK
6000 case 110:
6001 /* rule 110 can match eol */
6002 case 111:
6003 /* rule 111 can match eol */
6004 YY_RULE_SETUP
6005 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6006         YY_BREAK
6007 case 112:
6008 /* rule 112 can match eol */
6009 case 113:
6010 /* rule 113 can match eol */
6011 YY_RULE_SETUP
6012 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6013         YY_BREAK
6014 case 114:
6015 /* rule 114 can match eol */
6016 case 115:
6017 /* rule 115 can match eol */
6018 YY_RULE_SETUP
6019 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6020         YY_BREAK
6021 case 116:
6022 /* rule 116 can match eol */
6023 case 117:
6024 /* rule 117 can match eol */
6025 YY_RULE_SETUP
6026 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6027         YY_BREAK
6028 case 118:
6029 /* rule 118 can match eol */
6030 case 119:
6031 /* rule 119 can match eol */
6032 YY_RULE_SETUP
6033 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6034         YY_BREAK
6035 case 120:
6036 /* rule 120 can match eol */
6037 case 121:
6038 /* rule 121 can match eol */
6039 YY_RULE_SETUP
6040 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
6041         YY_BREAK
6042 case 122:
6043 /* rule 122 can match eol */
6044 case 123:
6045 /* rule 123 can match eol */
6046 YY_RULE_SETUP
6047 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6048         YY_BREAK
6049 case 124:
6050 /* rule 124 can match eol */
6051 case 125:
6052 /* rule 125 can match eol */
6053 YY_RULE_SETUP
6054 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6055         YY_BREAK
6056 case 126:
6057 YY_RULE_SETUP
6058 {
6059   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6060   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6061  }
6062         YY_BREAK
6063 case 127:
6064 YY_RULE_SETUP
6065 {
6066   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6067   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6068   switch (YY_START) {
6069    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;
6070    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;
6071    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6072   }
6073  }
6074         YY_BREAK
6075 case 128:
6076 YY_RULE_SETUP
6077 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6078         YY_BREAK
6079 case 129:
6080 YY_RULE_SETUP
6081 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6082         YY_BREAK
6083 case YY_STATE_EOF(AL_surfxml_AS):
6084 FAIL("EOF in attribute list of `AS' element.");
6085         YY_BREAK
6086
6087 case 130:
6088 /* rule 130 can match eol */
6089 YY_RULE_SETUP
6090 {
6091   LEAVE;
6092   ETag_surfxml_AS();
6093   popbuffer(); /* attribute */
6094   switch (YY_START) {
6095    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;
6096    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;
6097    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6098   }
6099  }
6100         YY_BREAK
6101 case 131:
6102 /* rule 131 can match eol */
6103 YY_RULE_SETUP
6104 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6105         YY_BREAK
6106 case 132:
6107 YY_RULE_SETUP
6108 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6109         YY_BREAK
6110 case YY_STATE_EOF(S_surfxml_AS_12):
6111 case YY_STATE_EOF(S_surfxml_AS_9):
6112 case YY_STATE_EOF(S_surfxml_AS_1):
6113 case YY_STATE_EOF(S_surfxml_AS_7):
6114 case YY_STATE_EOF(S_surfxml_AS_11):
6115 case YY_STATE_EOF(S_surfxml_AS_14):
6116 case YY_STATE_EOF(S_surfxml_AS_6):
6117 case YY_STATE_EOF(E_surfxml_AS):
6118 case YY_STATE_EOF(S_surfxml_AS_16):
6119 case YY_STATE_EOF(S_surfxml_AS_3):
6120 case YY_STATE_EOF(S_surfxml_AS):
6121 case YY_STATE_EOF(S_surfxml_AS_4):
6122 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6123         YY_BREAK
6124
6125 case 133:
6126 /* rule 133 can match eol */
6127 YY_RULE_SETUP
6128 FAIL("Starting tag <storage_type> is not allowed here.");
6129         YY_BREAK
6130 case 134:
6131 /* rule 134 can match eol */
6132 YY_RULE_SETUP
6133 {
6134   AX_surfxml_storage_type_id = 0;
6135   AX_surfxml_storage_type_model = 0;
6136   AX_surfxml_storage_type_size = 0;
6137   AX_surfxml_storage_type_content = 0;
6138   ENTER(AL_surfxml_storage_type); pushbuffer(0);
6139   }
6140         YY_BREAK
6141
6142 case 135:
6143 /* rule 135 can match eol */
6144 YY_RULE_SETUP
6145 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_id);
6146         YY_BREAK
6147 case 136:
6148 /* rule 136 can match eol */
6149 YY_RULE_SETUP
6150 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_id);
6151         YY_BREAK
6152 case 137:
6153 /* rule 137 can match eol */
6154 YY_RULE_SETUP
6155 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_model);
6156         YY_BREAK
6157 case 138:
6158 /* rule 138 can match eol */
6159 YY_RULE_SETUP
6160 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_model);
6161         YY_BREAK
6162 case 139:
6163 /* rule 139 can match eol */
6164 YY_RULE_SETUP
6165 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_size);
6166         YY_BREAK
6167 case 140:
6168 /* rule 140 can match eol */
6169 YY_RULE_SETUP
6170 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_size);
6171         YY_BREAK
6172 case 141:
6173 /* rule 141 can match eol */
6174 YY_RULE_SETUP
6175 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_content);
6176         YY_BREAK
6177 case 142:
6178 /* rule 142 can match eol */
6179 YY_RULE_SETUP
6180 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_content);
6181         YY_BREAK
6182 case 143:
6183 YY_RULE_SETUP
6184 {
6185   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6186   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6187   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6188   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
6189  }
6190         YY_BREAK
6191 case 144:
6192 YY_RULE_SETUP
6193 {
6194   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6195   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6196   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6197   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
6198   switch (YY_START) {
6199    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6200    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6201   }
6202  }
6203         YY_BREAK
6204 case 145:
6205 YY_RULE_SETUP
6206 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6207         YY_BREAK
6208 case 146:
6209 YY_RULE_SETUP
6210 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6211         YY_BREAK
6212 case YY_STATE_EOF(AL_surfxml_storage_type):
6213 FAIL("EOF in attribute list of `storage_type' element.");
6214         YY_BREAK
6215
6216 case 147:
6217 /* rule 147 can match eol */
6218 YY_RULE_SETUP
6219 {
6220   LEAVE;
6221   ETag_surfxml_storage_type();
6222   popbuffer(); /* attribute */
6223   switch (YY_START) {
6224    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6225    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6226   }
6227  }
6228         YY_BREAK
6229 case 148:
6230 /* rule 148 can match eol */
6231 YY_RULE_SETUP
6232 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6233         YY_BREAK
6234 case 149:
6235 YY_RULE_SETUP
6236 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6237         YY_BREAK
6238 case YY_STATE_EOF(E_surfxml_storage_type):
6239 case YY_STATE_EOF(S_surfxml_storage_type_2):
6240 case YY_STATE_EOF(S_surfxml_storage_type):
6241 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6242         YY_BREAK
6243
6244 case 150:
6245 /* rule 150 can match eol */
6246 YY_RULE_SETUP
6247 FAIL("Starting tag <storage> is not allowed here.");
6248         YY_BREAK
6249 case 151:
6250 /* rule 151 can match eol */
6251 YY_RULE_SETUP
6252 {
6253   AX_surfxml_storage_id = 0;
6254   AX_surfxml_storage_typeId = 0;
6255   AX_surfxml_storage_content = 0;
6256   ENTER(AL_surfxml_storage); pushbuffer(0);
6257   }
6258         YY_BREAK
6259
6260 case 152:
6261 /* rule 152 can match eol */
6262 YY_RULE_SETUP
6263 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
6264         YY_BREAK
6265 case 153:
6266 /* rule 153 can match eol */
6267 YY_RULE_SETUP
6268 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
6269         YY_BREAK
6270 case 154:
6271 /* rule 154 can match eol */
6272 YY_RULE_SETUP
6273 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
6274         YY_BREAK
6275 case 155:
6276 /* rule 155 can match eol */
6277 YY_RULE_SETUP
6278 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
6279         YY_BREAK
6280 case 156:
6281 /* rule 156 can match eol */
6282 YY_RULE_SETUP
6283 ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
6284         YY_BREAK
6285 case 157:
6286 /* rule 157 can match eol */
6287 YY_RULE_SETUP
6288 ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
6289         YY_BREAK
6290 case 158:
6291 YY_RULE_SETUP
6292 {
6293   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6294   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6295   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6296  }
6297         YY_BREAK
6298 case 159:
6299 YY_RULE_SETUP
6300 {
6301   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6302   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6303   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6304   switch (YY_START) {
6305    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6306    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6307   }
6308  }
6309         YY_BREAK
6310 case 160:
6311 YY_RULE_SETUP
6312 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6313         YY_BREAK
6314 case 161:
6315 YY_RULE_SETUP
6316 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6317         YY_BREAK
6318 case YY_STATE_EOF(AL_surfxml_storage):
6319 FAIL("EOF in attribute list of `storage' element.");
6320         YY_BREAK
6321
6322 case 162:
6323 /* rule 162 can match eol */
6324 YY_RULE_SETUP
6325 {
6326   LEAVE;
6327   ETag_surfxml_storage();
6328   popbuffer(); /* attribute */
6329   switch (YY_START) {
6330    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6331    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6332   }
6333  }
6334         YY_BREAK
6335 case 163:
6336 /* rule 163 can match eol */
6337 YY_RULE_SETUP
6338 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6339         YY_BREAK
6340 case 164:
6341 YY_RULE_SETUP
6342 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6343         YY_BREAK
6344 case YY_STATE_EOF(E_surfxml_storage):
6345 case YY_STATE_EOF(S_surfxml_storage):
6346 case YY_STATE_EOF(S_surfxml_storage_2):
6347 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6348         YY_BREAK
6349
6350 case 165:
6351 /* rule 165 can match eol */
6352 YY_RULE_SETUP
6353 FAIL("Starting tag <mount> is not allowed here.");
6354         YY_BREAK
6355 case 166:
6356 /* rule 166 can match eol */
6357 YY_RULE_SETUP
6358 {
6359   AX_surfxml_mount_id = 0;
6360   AX_surfxml_mount_name = 0;
6361   ENTER(AL_surfxml_mount); pushbuffer(0);
6362   }
6363         YY_BREAK
6364
6365 case 167:
6366 /* rule 167 can match eol */
6367 YY_RULE_SETUP
6368 ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
6369         YY_BREAK
6370 case 168:
6371 /* rule 168 can match eol */
6372 YY_RULE_SETUP
6373 ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
6374         YY_BREAK
6375 case 169:
6376 /* rule 169 can match eol */
6377 YY_RULE_SETUP
6378 ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
6379         YY_BREAK
6380 case 170:
6381 /* rule 170 can match eol */
6382 YY_RULE_SETUP
6383 ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
6384         YY_BREAK
6385 case 171:
6386 YY_RULE_SETUP
6387 {
6388   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6389   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6390   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6391  }
6392         YY_BREAK
6393 case 172:
6394 YY_RULE_SETUP
6395 {
6396   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6397   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6398   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6399   switch (YY_START) {
6400    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6401   }
6402  }
6403         YY_BREAK
6404 case 173:
6405 YY_RULE_SETUP
6406 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6407         YY_BREAK
6408 case 174:
6409 YY_RULE_SETUP
6410 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6411         YY_BREAK
6412 case YY_STATE_EOF(AL_surfxml_mount):
6413 FAIL("EOF in attribute list of `mount' element.");
6414         YY_BREAK
6415
6416 case 175:
6417 /* rule 175 can match eol */
6418 YY_RULE_SETUP
6419 {
6420   LEAVE;
6421   ETag_surfxml_mount();
6422   popbuffer(); /* attribute */
6423   switch (YY_START) {
6424    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6425   }
6426  }
6427         YY_BREAK
6428 case 176:
6429 /* rule 176 can match eol */
6430 YY_RULE_SETUP
6431 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6432         YY_BREAK
6433 case 177:
6434 YY_RULE_SETUP
6435 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6436         YY_BREAK
6437 case YY_STATE_EOF(E_surfxml_mount):
6438 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6439         YY_BREAK
6440
6441 case 178:
6442 /* rule 178 can match eol */
6443 YY_RULE_SETUP
6444 FAIL("Starting tag <mstorage> is not allowed here.");
6445         YY_BREAK
6446 case 179:
6447 /* rule 179 can match eol */
6448 YY_RULE_SETUP
6449 {
6450   AX_surfxml_mstorage_typeId = 0;
6451   AX_surfxml_mstorage_name = 0;
6452   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6453   }
6454         YY_BREAK
6455
6456 case 180:
6457 /* rule 180 can match eol */
6458 YY_RULE_SETUP
6459 ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
6460         YY_BREAK
6461 case 181:
6462 /* rule 181 can match eol */
6463 YY_RULE_SETUP
6464 ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
6465         YY_BREAK
6466 case 182:
6467 /* rule 182 can match eol */
6468 YY_RULE_SETUP
6469 ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
6470         YY_BREAK
6471 case 183:
6472 /* rule 183 can match eol */
6473 YY_RULE_SETUP
6474 ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
6475         YY_BREAK
6476 case 184:
6477 YY_RULE_SETUP
6478 {
6479   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6480   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6481   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6482  }
6483         YY_BREAK
6484 case 185:
6485 YY_RULE_SETUP
6486 {
6487   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6488   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6489   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6490   switch (YY_START) {
6491    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6492   }
6493  }
6494         YY_BREAK
6495 case 186:
6496 YY_RULE_SETUP
6497 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6498         YY_BREAK
6499 case 187:
6500 YY_RULE_SETUP
6501 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6502         YY_BREAK
6503 case YY_STATE_EOF(AL_surfxml_mstorage):
6504 FAIL("EOF in attribute list of `mstorage' element.");
6505         YY_BREAK
6506
6507 case 188:
6508 /* rule 188 can match eol */
6509 YY_RULE_SETUP
6510 {
6511   LEAVE;
6512   ETag_surfxml_mstorage();
6513   popbuffer(); /* attribute */
6514   switch (YY_START) {
6515    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6516   }
6517  }
6518         YY_BREAK
6519 case 189:
6520 /* rule 189 can match eol */
6521 YY_RULE_SETUP
6522 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6523         YY_BREAK
6524 case 190:
6525 YY_RULE_SETUP
6526 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6527         YY_BREAK
6528 case YY_STATE_EOF(E_surfxml_mstorage):
6529 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6530         YY_BREAK
6531
6532 case 191:
6533 /* rule 191 can match eol */
6534 YY_RULE_SETUP
6535 FAIL("Starting tag <host> is not allowed here.");
6536         YY_BREAK
6537 case 192:
6538 /* rule 192 can match eol */
6539 YY_RULE_SETUP
6540 {
6541   AX_surfxml_host_id = 0;
6542   AX_surfxml_host_power = 0;
6543   AX_surfxml_host_core = 16;
6544   AX_surfxml_host_availability = 18;
6545   AX_surfxml_host_availability_file = 0;
6546   AX_surfxml_host_state = A_surfxml_host_state_ON;
6547   AX_surfxml_host_state_file = 0;
6548   AX_surfxml_host_coordinates = 0;
6549   ENTER(AL_surfxml_host); pushbuffer(0);
6550   }
6551         YY_BREAK
6552
6553 case 193:
6554 /* rule 193 can match eol */
6555 YY_RULE_SETUP
6556 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
6557         YY_BREAK
6558 case 194:
6559 /* rule 194 can match eol */
6560 YY_RULE_SETUP
6561 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
6562         YY_BREAK
6563 case 195:
6564 /* rule 195 can match eol */
6565 YY_RULE_SETUP
6566 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
6567         YY_BREAK
6568 case 196:
6569 /* rule 196 can match eol */
6570 YY_RULE_SETUP
6571 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
6572         YY_BREAK
6573 case 197:
6574 /* rule 197 can match eol */
6575 YY_RULE_SETUP
6576 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
6577         YY_BREAK
6578 case 198:
6579 /* rule 198 can match eol */
6580 YY_RULE_SETUP
6581 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
6582         YY_BREAK
6583 case 199:
6584 /* rule 199 can match eol */
6585 YY_RULE_SETUP
6586 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
6587         YY_BREAK
6588 case 200:
6589 /* rule 200 can match eol */
6590 YY_RULE_SETUP
6591 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
6592         YY_BREAK
6593 case 201:
6594 /* rule 201 can match eol */
6595 YY_RULE_SETUP
6596 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
6597         YY_BREAK
6598 case 202:
6599 /* rule 202 can match eol */
6600 YY_RULE_SETUP
6601 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
6602         YY_BREAK
6603 case 203:
6604 /* rule 203 can match eol */
6605 case 204:
6606 /* rule 204 can match eol */
6607 YY_RULE_SETUP
6608 A_surfxml_host_state = A_surfxml_host_state_ON;
6609         YY_BREAK
6610 case 205:
6611 /* rule 205 can match eol */
6612 case 206:
6613 /* rule 206 can match eol */
6614 YY_RULE_SETUP
6615 A_surfxml_host_state = A_surfxml_host_state_OFF;
6616         YY_BREAK
6617 case 207:
6618 /* rule 207 can match eol */
6619 YY_RULE_SETUP
6620 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
6621         YY_BREAK
6622 case 208:
6623 /* rule 208 can match eol */
6624 YY_RULE_SETUP
6625 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
6626         YY_BREAK
6627 case 209:
6628 /* rule 209 can match eol */
6629 YY_RULE_SETUP
6630 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
6631         YY_BREAK
6632 case 210:
6633 /* rule 210 can match eol */
6634 YY_RULE_SETUP
6635 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
6636         YY_BREAK
6637 case 211:
6638 YY_RULE_SETUP
6639 {
6640   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6641   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6642   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6643  }
6644         YY_BREAK
6645 case 212:
6646 YY_RULE_SETUP
6647 {
6648   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6649   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6650   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6651   switch (YY_START) {
6652    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6653   }
6654  }
6655         YY_BREAK
6656 case 213:
6657 YY_RULE_SETUP
6658 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6659         YY_BREAK
6660 case 214:
6661 YY_RULE_SETUP
6662 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6663         YY_BREAK
6664 case YY_STATE_EOF(AL_surfxml_host):
6665 FAIL("EOF in attribute list of `host' element.");
6666         YY_BREAK
6667
6668 case 215:
6669 /* rule 215 can match eol */
6670 YY_RULE_SETUP
6671 {
6672   LEAVE;
6673   ETag_surfxml_host();
6674   popbuffer(); /* attribute */
6675   switch (YY_START) {
6676    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6677   }
6678  }
6679         YY_BREAK
6680 case 216:
6681 /* rule 216 can match eol */
6682 YY_RULE_SETUP
6683 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6684         YY_BREAK
6685 case 217:
6686 YY_RULE_SETUP
6687 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6688         YY_BREAK
6689 case YY_STATE_EOF(S_surfxml_host):
6690 case YY_STATE_EOF(E_surfxml_host):
6691 case YY_STATE_EOF(S_surfxml_host_2):
6692 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6693         YY_BREAK
6694
6695 case 218:
6696 /* rule 218 can match eol */
6697 YY_RULE_SETUP
6698 FAIL("Starting tag <host_link> is not allowed here.");
6699         YY_BREAK
6700 case 219:
6701 /* rule 219 can match eol */
6702 YY_RULE_SETUP
6703 {
6704   AX_surfxml_host_link_id = 0;
6705   AX_surfxml_host_link_up = 0;
6706   AX_surfxml_host_link_down = 0;
6707   ENTER(AL_surfxml_host_link); pushbuffer(0);
6708   }
6709         YY_BREAK
6710
6711 case 220:
6712 /* rule 220 can match eol */
6713 YY_RULE_SETUP
6714 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_id);
6715         YY_BREAK
6716 case 221:
6717 /* rule 221 can match eol */
6718 YY_RULE_SETUP
6719 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_id);
6720         YY_BREAK
6721 case 222:
6722 /* rule 222 can match eol */
6723 YY_RULE_SETUP
6724 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_up);
6725         YY_BREAK
6726 case 223:
6727 /* rule 223 can match eol */
6728 YY_RULE_SETUP
6729 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_up);
6730         YY_BREAK
6731 case 224:
6732 /* rule 224 can match eol */
6733 YY_RULE_SETUP
6734 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_link_down);
6735         YY_BREAK
6736 case 225:
6737 /* rule 225 can match eol */
6738 YY_RULE_SETUP
6739 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_link_down);
6740         YY_BREAK
6741 case 226:
6742 YY_RULE_SETUP
6743 {
6744   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6745   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6746   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6747   LEAVE; STag_surfxml_host_link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host_link);
6748  }
6749         YY_BREAK
6750 case 227:
6751 YY_RULE_SETUP
6752 {
6753   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
6754   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
6755   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
6756   LEAVE; STag_surfxml_host_link(); surfxml_pcdata_ix = 0; ETag_surfxml_host_link(); popbuffer(); /* attribute */
6757   switch (YY_START) {
6758    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6759   }
6760  }
6761         YY_BREAK
6762 case 228:
6763 YY_RULE_SETUP
6764 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
6765         YY_BREAK
6766 case 229:
6767 YY_RULE_SETUP
6768 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
6769         YY_BREAK
6770 case YY_STATE_EOF(AL_surfxml_host_link):
6771 FAIL("EOF in attribute list of `host_link' element.");
6772         YY_BREAK
6773
6774 case 230:
6775 /* rule 230 can match eol */
6776 YY_RULE_SETUP
6777 {
6778   LEAVE;
6779   ETag_surfxml_host_link();
6780   popbuffer(); /* attribute */
6781   switch (YY_START) {
6782    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6783   }
6784  }
6785         YY_BREAK
6786 case 231:
6787 /* rule 231 can match eol */
6788 YY_RULE_SETUP
6789 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
6790         YY_BREAK
6791 case 232:
6792 YY_RULE_SETUP
6793 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
6794         YY_BREAK
6795 case YY_STATE_EOF(E_surfxml_host_link):
6796 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
6797         YY_BREAK
6798
6799 case 233:
6800 /* rule 233 can match eol */
6801 YY_RULE_SETUP
6802 FAIL("Starting tag <cluster> is not allowed here.");
6803         YY_BREAK
6804 case 234:
6805 /* rule 234 can match eol */
6806 YY_RULE_SETUP
6807 {
6808   AX_surfxml_cluster_id = 0;
6809   AX_surfxml_cluster_prefix = 0;
6810   AX_surfxml_cluster_suffix = 0;
6811   AX_surfxml_cluster_radical = 0;
6812   AX_surfxml_cluster_power = 0;
6813   AX_surfxml_cluster_core = 22;
6814   AX_surfxml_cluster_bw = 0;
6815   AX_surfxml_cluster_lat = 0;
6816   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6817   AX_surfxml_cluster_bb_bw = 0;
6818   AX_surfxml_cluster_bb_lat = 0;
6819   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6820   AX_surfxml_cluster_availability_file = 0;
6821   AX_surfxml_cluster_state_file = 0;
6822   AX_surfxml_cluster_router_id = 0;
6823   ENTER(AL_surfxml_cluster); pushbuffer(0);
6824   }
6825         YY_BREAK
6826
6827 case 235:
6828 /* rule 235 can match eol */
6829 YY_RULE_SETUP
6830 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
6831         YY_BREAK
6832 case 236:
6833 /* rule 236 can match eol */
6834 YY_RULE_SETUP
6835 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
6836         YY_BREAK
6837 case 237:
6838 /* rule 237 can match eol */
6839 YY_RULE_SETUP
6840 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
6841         YY_BREAK
6842 case 238:
6843 /* rule 238 can match eol */
6844 YY_RULE_SETUP
6845 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
6846         YY_BREAK
6847 case 239:
6848 /* rule 239 can match eol */
6849 YY_RULE_SETUP
6850 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
6851         YY_BREAK
6852 case 240:
6853 /* rule 240 can match eol */
6854 YY_RULE_SETUP
6855 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
6856         YY_BREAK
6857 case 241:
6858 /* rule 241 can match eol */
6859 YY_RULE_SETUP
6860 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
6861         YY_BREAK
6862 case 242:
6863 /* rule 242 can match eol */
6864 YY_RULE_SETUP
6865 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
6866         YY_BREAK
6867 case 243:
6868 /* rule 243 can match eol */
6869 YY_RULE_SETUP
6870 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
6871         YY_BREAK
6872 case 244:
6873 /* rule 244 can match eol */
6874 YY_RULE_SETUP
6875 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
6876         YY_BREAK
6877 case 245:
6878 /* rule 245 can match eol */
6879 YY_RULE_SETUP
6880 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
6881         YY_BREAK
6882 case 246:
6883 /* rule 246 can match eol */
6884 YY_RULE_SETUP
6885 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
6886         YY_BREAK
6887 case 247:
6888 /* rule 247 can match eol */
6889 YY_RULE_SETUP
6890 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
6891         YY_BREAK
6892 case 248:
6893 /* rule 248 can match eol */
6894 YY_RULE_SETUP
6895 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
6896         YY_BREAK
6897 case 249:
6898 /* rule 249 can match eol */
6899 YY_RULE_SETUP
6900 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
6901         YY_BREAK
6902 case 250:
6903 /* rule 250 can match eol */
6904 YY_RULE_SETUP
6905 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
6906         YY_BREAK
6907 case 251:
6908 /* rule 251 can match eol */
6909 case 252:
6910 /* rule 252 can match eol */
6911 YY_RULE_SETUP
6912 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
6913         YY_BREAK
6914 case 253:
6915 /* rule 253 can match eol */
6916 case 254:
6917 /* rule 254 can match eol */
6918 YY_RULE_SETUP
6919 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6920         YY_BREAK
6921 case 255:
6922 /* rule 255 can match eol */
6923 case 256:
6924 /* rule 256 can match eol */
6925 YY_RULE_SETUP
6926 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
6927         YY_BREAK
6928 case 257:
6929 /* rule 257 can match eol */
6930 YY_RULE_SETUP
6931 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_bw);
6932         YY_BREAK
6933 case 258:
6934 /* rule 258 can match eol */
6935 YY_RULE_SETUP
6936 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
6937         YY_BREAK
6938 case 259:
6939 /* rule 259 can match eol */
6940 YY_RULE_SETUP
6941 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_lat);
6942         YY_BREAK
6943 case 260:
6944 /* rule 260 can match eol */
6945 YY_RULE_SETUP
6946 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_lat);
6947         YY_BREAK
6948 case 261:
6949 /* rule 261 can match eol */
6950 case 262:
6951 /* rule 262 can match eol */
6952 YY_RULE_SETUP
6953 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6954         YY_BREAK
6955 case 263:
6956 /* rule 263 can match eol */
6957 case 264:
6958 /* rule 264 can match eol */
6959 YY_RULE_SETUP
6960 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
6961         YY_BREAK
6962 case 265:
6963 /* rule 265 can match eol */
6964 YY_RULE_SETUP
6965 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability_file);
6966         YY_BREAK
6967 case 266:
6968 /* rule 266 can match eol */
6969 YY_RULE_SETUP
6970 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability_file);
6971         YY_BREAK
6972 case 267:
6973 /* rule 267 can match eol */
6974 YY_RULE_SETUP
6975 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state_file);
6976         YY_BREAK
6977 case 268:
6978 /* rule 268 can match eol */
6979 YY_RULE_SETUP
6980 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state_file);
6981         YY_BREAK
6982 case 269:
6983 /* rule 269 can match eol */
6984 YY_RULE_SETUP
6985 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router_id);
6986         YY_BREAK
6987 case 270:
6988 /* rule 270 can match eol */
6989 YY_RULE_SETUP
6990 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router_id);
6991         YY_BREAK
6992 case 271:
6993 YY_RULE_SETUP
6994 {
6995   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6996   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6997   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6998   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6999   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7000   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7001   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7002   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
7003  }
7004         YY_BREAK
7005 case 272:
7006 YY_RULE_SETUP
7007 {
7008   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7009   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7010   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7011   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7012   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7013   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7014   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7015   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7016   switch (YY_START) {
7017    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;
7018    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;
7019    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7020   }
7021  }
7022         YY_BREAK
7023 case 273:
7024 YY_RULE_SETUP
7025 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7026         YY_BREAK
7027 case 274:
7028 YY_RULE_SETUP
7029 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7030         YY_BREAK
7031 case YY_STATE_EOF(AL_surfxml_cluster):
7032 FAIL("EOF in attribute list of `cluster' element.");
7033         YY_BREAK
7034
7035 case 275:
7036 /* rule 275 can match eol */
7037 YY_RULE_SETUP
7038 {
7039   LEAVE;
7040   ETag_surfxml_cluster();
7041   popbuffer(); /* attribute */
7042   switch (YY_START) {
7043    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;
7044    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;
7045    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7046   }
7047  }
7048         YY_BREAK
7049 case 276:
7050 /* rule 276 can match eol */
7051 YY_RULE_SETUP
7052 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7053         YY_BREAK
7054 case 277:
7055 YY_RULE_SETUP
7056 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7057         YY_BREAK
7058 case YY_STATE_EOF(E_surfxml_cluster):
7059 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7060         YY_BREAK
7061
7062 case 278:
7063 /* rule 278 can match eol */
7064 YY_RULE_SETUP
7065 FAIL("Starting tag <cabinet> is not allowed here.");
7066         YY_BREAK
7067 case 279:
7068 /* rule 279 can match eol */
7069 YY_RULE_SETUP
7070 {
7071   AX_surfxml_cabinet_id = 0;
7072   AX_surfxml_cabinet_prefix = 0;
7073   AX_surfxml_cabinet_suffix = 0;
7074   AX_surfxml_cabinet_radical = 0;
7075   AX_surfxml_cabinet_power = 0;
7076   AX_surfxml_cabinet_bw = 0;
7077   AX_surfxml_cabinet_lat = 0;
7078   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7079   }
7080         YY_BREAK
7081
7082 case 280:
7083 /* rule 280 can match eol */
7084 YY_RULE_SETUP
7085 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
7086         YY_BREAK
7087 case 281:
7088 /* rule 281 can match eol */
7089 YY_RULE_SETUP
7090 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
7091         YY_BREAK
7092 case 282:
7093 /* rule 282 can match eol */
7094 YY_RULE_SETUP
7095 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
7096         YY_BREAK
7097 case 283:
7098 /* rule 283 can match eol */
7099 YY_RULE_SETUP
7100 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
7101         YY_BREAK
7102 case 284:
7103 /* rule 284 can match eol */
7104 YY_RULE_SETUP
7105 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
7106         YY_BREAK
7107 case 285:
7108 /* rule 285 can match eol */
7109 YY_RULE_SETUP
7110 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
7111         YY_BREAK
7112 case 286:
7113 /* rule 286 can match eol */
7114 YY_RULE_SETUP
7115 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
7116         YY_BREAK
7117 case 287:
7118 /* rule 287 can match eol */
7119 YY_RULE_SETUP
7120 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
7121         YY_BREAK
7122 case 288:
7123 /* rule 288 can match eol */
7124 YY_RULE_SETUP
7125 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7126         YY_BREAK
7127 case 289:
7128 /* rule 289 can match eol */
7129 YY_RULE_SETUP
7130 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7131         YY_BREAK
7132 case 290:
7133 /* rule 290 can match eol */
7134 YY_RULE_SETUP
7135 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
7136         YY_BREAK
7137 case 291:
7138 /* rule 291 can match eol */
7139 YY_RULE_SETUP
7140 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
7141         YY_BREAK
7142 case 292:
7143 /* rule 292 can match eol */
7144 YY_RULE_SETUP
7145 ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
7146         YY_BREAK
7147 case 293:
7148 /* rule 293 can match eol */
7149 YY_RULE_SETUP
7150 ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
7151         YY_BREAK
7152 case 294:
7153 YY_RULE_SETUP
7154 {
7155   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7156   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7157   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7158   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7159   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7160   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7161   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7162   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7163  }
7164         YY_BREAK
7165 case 295:
7166 YY_RULE_SETUP
7167 {
7168   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7169   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7170   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7171   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7172   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7173   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7174   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7175   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7176   switch (YY_START) {
7177    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7178    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;
7179    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7180    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7181   }
7182  }
7183         YY_BREAK
7184 case 296:
7185 YY_RULE_SETUP
7186 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7187         YY_BREAK
7188 case 297:
7189 YY_RULE_SETUP
7190 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7191         YY_BREAK
7192 case YY_STATE_EOF(AL_surfxml_cabinet):
7193 FAIL("EOF in attribute list of `cabinet' element.");
7194         YY_BREAK
7195
7196 case 298:
7197 /* rule 298 can match eol */
7198 YY_RULE_SETUP
7199 {
7200   LEAVE;
7201   ETag_surfxml_cabinet();
7202   popbuffer(); /* attribute */
7203   switch (YY_START) {
7204    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7205    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;
7206    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7207    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7208   }
7209  }
7210         YY_BREAK
7211 case 299:
7212 /* rule 299 can match eol */
7213 YY_RULE_SETUP
7214 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7215         YY_BREAK
7216 case 300:
7217 YY_RULE_SETUP
7218 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7219         YY_BREAK
7220 case YY_STATE_EOF(E_surfxml_cabinet):
7221 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7222         YY_BREAK
7223
7224 case 301:
7225 /* rule 301 can match eol */
7226 YY_RULE_SETUP
7227 FAIL("Starting tag <peer> is not allowed here.");
7228         YY_BREAK
7229 case 302:
7230 /* rule 302 can match eol */
7231 YY_RULE_SETUP
7232 {
7233   AX_surfxml_peer_id = 0;
7234   AX_surfxml_peer_power = 0;
7235   AX_surfxml_peer_bw_in = 0;
7236   AX_surfxml_peer_bw_out = 0;
7237   AX_surfxml_peer_lat = 0;
7238   AX_surfxml_peer_coordinates = 0;
7239   AX_surfxml_peer_availability_file = 0;
7240   AX_surfxml_peer_state_file = 0;
7241   ENTER(AL_surfxml_peer); pushbuffer(0);
7242   }
7243         YY_BREAK
7244
7245 case 303:
7246 /* rule 303 can match eol */
7247 YY_RULE_SETUP
7248 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
7249         YY_BREAK
7250 case 304:
7251 /* rule 304 can match eol */
7252 YY_RULE_SETUP
7253 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
7254         YY_BREAK
7255 case 305:
7256 /* rule 305 can match eol */
7257 YY_RULE_SETUP
7258 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
7259         YY_BREAK
7260 case 306:
7261 /* rule 306 can match eol */
7262 YY_RULE_SETUP
7263 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
7264         YY_BREAK
7265 case 307:
7266 /* rule 307 can match eol */
7267 YY_RULE_SETUP
7268 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_in);
7269         YY_BREAK
7270 case 308:
7271 /* rule 308 can match eol */
7272 YY_RULE_SETUP
7273 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_in);
7274         YY_BREAK
7275 case 309:
7276 /* rule 309 can match eol */
7277 YY_RULE_SETUP
7278 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_out);
7279         YY_BREAK
7280 case 310:
7281 /* rule 310 can match eol */
7282 YY_RULE_SETUP
7283 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_out);
7284         YY_BREAK
7285 case 311:
7286 /* rule 311 can match eol */
7287 YY_RULE_SETUP
7288 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
7289         YY_BREAK
7290 case 312:
7291 /* rule 312 can match eol */
7292 YY_RULE_SETUP
7293 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
7294         YY_BREAK
7295 case 313:
7296 /* rule 313 can match eol */
7297 YY_RULE_SETUP
7298 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
7299         YY_BREAK
7300 case 314:
7301 /* rule 314 can match eol */
7302 YY_RULE_SETUP
7303 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
7304         YY_BREAK
7305 case 315:
7306 /* rule 315 can match eol */
7307 YY_RULE_SETUP
7308 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability_file);
7309         YY_BREAK
7310 case 316:
7311 /* rule 316 can match eol */
7312 YY_RULE_SETUP
7313 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability_file);
7314         YY_BREAK
7315 case 317:
7316 /* rule 317 can match eol */
7317 YY_RULE_SETUP
7318 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state_file);
7319         YY_BREAK
7320 case 318:
7321 /* rule 318 can match eol */
7322 YY_RULE_SETUP
7323 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state_file);
7324         YY_BREAK
7325 case 319:
7326 YY_RULE_SETUP
7327 {
7328   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7329   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7330   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7331   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7332   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7333   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7334  }
7335         YY_BREAK
7336 case 320:
7337 YY_RULE_SETUP
7338 {
7339   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7340   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7341   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7342   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7343   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7344   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7345   switch (YY_START) {
7346    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;
7347    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;
7348    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7349   }
7350  }
7351         YY_BREAK
7352 case 321:
7353 YY_RULE_SETUP
7354 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7355         YY_BREAK
7356 case 322:
7357 YY_RULE_SETUP
7358 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7359         YY_BREAK
7360 case YY_STATE_EOF(AL_surfxml_peer):
7361 FAIL("EOF in attribute list of `peer' element.");
7362         YY_BREAK
7363
7364 case 323:
7365 /* rule 323 can match eol */
7366 YY_RULE_SETUP
7367 {
7368   LEAVE;
7369   ETag_surfxml_peer();
7370   popbuffer(); /* attribute */
7371   switch (YY_START) {
7372    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;
7373    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;
7374    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7375   }
7376  }
7377         YY_BREAK
7378 case 324:
7379 /* rule 324 can match eol */
7380 YY_RULE_SETUP
7381 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7382         YY_BREAK
7383 case 325:
7384 YY_RULE_SETUP
7385 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7386         YY_BREAK
7387 case YY_STATE_EOF(E_surfxml_peer):
7388 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7389         YY_BREAK
7390
7391 case 326:
7392 /* rule 326 can match eol */
7393 YY_RULE_SETUP
7394 FAIL("Starting tag <router> is not allowed here.");
7395         YY_BREAK
7396 case 327:
7397 /* rule 327 can match eol */
7398 YY_RULE_SETUP
7399 {
7400   AX_surfxml_router_id = 0;
7401   AX_surfxml_router_coordinates = 0;
7402   ENTER(AL_surfxml_router); pushbuffer(0);
7403   }
7404         YY_BREAK
7405
7406 case 328:
7407 /* rule 328 can match eol */
7408 YY_RULE_SETUP
7409 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
7410         YY_BREAK
7411 case 329:
7412 /* rule 329 can match eol */
7413 YY_RULE_SETUP
7414 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
7415         YY_BREAK
7416 case 330:
7417 /* rule 330 can match eol */
7418 YY_RULE_SETUP
7419 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
7420         YY_BREAK
7421 case 331:
7422 /* rule 331 can match eol */
7423 YY_RULE_SETUP
7424 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
7425         YY_BREAK
7426 case 332:
7427 YY_RULE_SETUP
7428 {
7429   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7430   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7431  }
7432         YY_BREAK
7433 case 333:
7434 YY_RULE_SETUP
7435 {
7436   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7437   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7438   switch (YY_START) {
7439    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7440   }
7441  }
7442         YY_BREAK
7443 case 334:
7444 YY_RULE_SETUP
7445 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7446         YY_BREAK
7447 case 335:
7448 YY_RULE_SETUP
7449 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7450         YY_BREAK
7451 case YY_STATE_EOF(AL_surfxml_router):
7452 FAIL("EOF in attribute list of `router' element.");
7453         YY_BREAK
7454
7455 case 336:
7456 /* rule 336 can match eol */
7457 YY_RULE_SETUP
7458 {
7459   LEAVE;
7460   ETag_surfxml_router();
7461   popbuffer(); /* attribute */
7462   switch (YY_START) {
7463    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7464   }
7465  }
7466         YY_BREAK
7467 case 337:
7468 /* rule 337 can match eol */
7469 YY_RULE_SETUP
7470 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7471         YY_BREAK
7472 case 338:
7473 YY_RULE_SETUP
7474 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7475         YY_BREAK
7476 case YY_STATE_EOF(E_surfxml_router):
7477 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7478         YY_BREAK
7479
7480 case 339:
7481 /* rule 339 can match eol */
7482 YY_RULE_SETUP
7483 FAIL("Starting tag <backbone> is not allowed here.");
7484         YY_BREAK
7485 case 340:
7486 /* rule 340 can match eol */
7487 YY_RULE_SETUP
7488 {
7489   AX_surfxml_backbone_id = 0;
7490   AX_surfxml_backbone_bandwidth = 0;
7491   AX_surfxml_backbone_latency = 0;
7492   ENTER(AL_surfxml_backbone); pushbuffer(0);
7493   }
7494         YY_BREAK
7495
7496 case 341:
7497 /* rule 341 can match eol */
7498 YY_RULE_SETUP
7499 ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
7500         YY_BREAK
7501 case 342:
7502 /* rule 342 can match eol */
7503 YY_RULE_SETUP
7504 ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
7505         YY_BREAK
7506 case 343:
7507 /* rule 343 can match eol */
7508 YY_RULE_SETUP
7509 ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
7510         YY_BREAK
7511 case 344:
7512 /* rule 344 can match eol */
7513 YY_RULE_SETUP
7514 ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
7515         YY_BREAK
7516 case 345:
7517 /* rule 345 can match eol */
7518 YY_RULE_SETUP
7519 ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
7520         YY_BREAK
7521 case 346:
7522 /* rule 346 can match eol */
7523 YY_RULE_SETUP
7524 ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
7525         YY_BREAK
7526 case 347:
7527 YY_RULE_SETUP
7528 {
7529   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7530   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7531   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7532   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7533  }
7534         YY_BREAK
7535 case 348:
7536 YY_RULE_SETUP
7537 {
7538   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7539   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7540   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7541   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7542   switch (YY_START) {
7543    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7544    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7545   }
7546  }
7547         YY_BREAK
7548 case 349:
7549 YY_RULE_SETUP
7550 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
7551         YY_BREAK
7552 case 350:
7553 YY_RULE_SETUP
7554 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
7555         YY_BREAK
7556 case YY_STATE_EOF(AL_surfxml_backbone):
7557 FAIL("EOF in attribute list of `backbone' element.");
7558         YY_BREAK
7559
7560 case 351:
7561 /* rule 351 can match eol */
7562 YY_RULE_SETUP
7563 {
7564   LEAVE;
7565   ETag_surfxml_backbone();
7566   popbuffer(); /* attribute */
7567   switch (YY_START) {
7568    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7569    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7570   }
7571  }
7572         YY_BREAK
7573 case 352:
7574 /* rule 352 can match eol */
7575 YY_RULE_SETUP
7576 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
7577         YY_BREAK
7578 case 353:
7579 YY_RULE_SETUP
7580 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
7581         YY_BREAK
7582 case YY_STATE_EOF(E_surfxml_backbone):
7583 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
7584         YY_BREAK
7585
7586 case 354:
7587 /* rule 354 can match eol */
7588 YY_RULE_SETUP
7589 FAIL("Starting tag <link> is not allowed here.");
7590         YY_BREAK
7591 case 355:
7592 /* rule 355 can match eol */
7593 YY_RULE_SETUP
7594 {
7595   AX_surfxml_link_id = 0;
7596   AX_surfxml_link_bandwidth = 0;
7597   AX_surfxml_link_bandwidth_file = 0;
7598   AX_surfxml_link_latency = 24;
7599   AX_surfxml_link_latency_file = 0;
7600   AX_surfxml_link_state = A_surfxml_link_state_ON;
7601   AX_surfxml_link_state_file = 0;
7602   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7603   ENTER(AL_surfxml_link); pushbuffer(0);
7604   }
7605         YY_BREAK
7606
7607 case 356:
7608 /* rule 356 can match eol */
7609 YY_RULE_SETUP
7610 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
7611         YY_BREAK
7612 case 357:
7613 /* rule 357 can match eol */
7614 YY_RULE_SETUP
7615 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
7616         YY_BREAK
7617 case 358:
7618 /* rule 358 can match eol */
7619 YY_RULE_SETUP
7620 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
7621         YY_BREAK
7622 case 359:
7623 /* rule 359 can match eol */
7624 YY_RULE_SETUP
7625 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
7626         YY_BREAK
7627 case 360:
7628 /* rule 360 can match eol */
7629 YY_RULE_SETUP
7630 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
7631         YY_BREAK
7632 case 361:
7633 /* rule 361 can match eol */
7634 YY_RULE_SETUP
7635 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
7636         YY_BREAK
7637 case 362:
7638 /* rule 362 can match eol */
7639 YY_RULE_SETUP
7640 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
7641         YY_BREAK
7642 case 363:
7643 /* rule 363 can match eol */
7644 YY_RULE_SETUP
7645 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
7646         YY_BREAK
7647 case 364:
7648 /* rule 364 can match eol */
7649 YY_RULE_SETUP
7650 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
7651         YY_BREAK
7652 case 365:
7653 /* rule 365 can match eol */
7654 YY_RULE_SETUP
7655 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
7656         YY_BREAK
7657 case 366:
7658 /* rule 366 can match eol */
7659 case 367:
7660 /* rule 367 can match eol */
7661 YY_RULE_SETUP
7662 A_surfxml_link_state = A_surfxml_link_state_ON;
7663         YY_BREAK
7664 case 368:
7665 /* rule 368 can match eol */
7666 case 369:
7667 /* rule 369 can match eol */
7668 YY_RULE_SETUP
7669 A_surfxml_link_state = A_surfxml_link_state_OFF;
7670         YY_BREAK
7671 case 370:
7672 /* rule 370 can match eol */
7673 YY_RULE_SETUP
7674 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
7675         YY_BREAK
7676 case 371:
7677 /* rule 371 can match eol */
7678 YY_RULE_SETUP
7679 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
7680         YY_BREAK
7681 case 372:
7682 /* rule 372 can match eol */
7683 case 373:
7684 /* rule 373 can match eol */
7685 YY_RULE_SETUP
7686 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
7687         YY_BREAK
7688 case 374:
7689 /* rule 374 can match eol */
7690 case 375:
7691 /* rule 375 can match eol */
7692 YY_RULE_SETUP
7693 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
7694         YY_BREAK
7695 case 376:
7696 /* rule 376 can match eol */
7697 case 377:
7698 /* rule 377 can match eol */
7699 YY_RULE_SETUP
7700 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
7701         YY_BREAK
7702 case 378:
7703 YY_RULE_SETUP
7704 {
7705   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7706   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7707   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7708  }
7709         YY_BREAK
7710 case 379:
7711 YY_RULE_SETUP
7712 {
7713   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7714   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7715   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7716   switch (YY_START) {
7717    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7718    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7719   }
7720  }
7721         YY_BREAK
7722 case 380:
7723 YY_RULE_SETUP
7724 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7725         YY_BREAK
7726 case 381:
7727 YY_RULE_SETUP
7728 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7729         YY_BREAK
7730 case YY_STATE_EOF(AL_surfxml_link):
7731 FAIL("EOF in attribute list of `link' element.");
7732         YY_BREAK
7733
7734 case 382:
7735 /* rule 382 can match eol */
7736 YY_RULE_SETUP
7737 {
7738   LEAVE;
7739   ETag_surfxml_link();
7740   popbuffer(); /* attribute */
7741   switch (YY_START) {
7742    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7743    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7744   }
7745  }
7746         YY_BREAK
7747 case 383:
7748 /* rule 383 can match eol */
7749 YY_RULE_SETUP
7750 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7751         YY_BREAK
7752 case 384:
7753 YY_RULE_SETUP
7754 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7755         YY_BREAK
7756 case YY_STATE_EOF(E_surfxml_link):
7757 case YY_STATE_EOF(S_surfxml_link_2):
7758 case YY_STATE_EOF(S_surfxml_link):
7759 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7760         YY_BREAK
7761
7762 case 385:
7763 /* rule 385 can match eol */
7764 YY_RULE_SETUP
7765 FAIL("Starting tag <route> is not allowed here.");
7766         YY_BREAK
7767 case 386:
7768 /* rule 386 can match eol */
7769 YY_RULE_SETUP
7770 {
7771   AX_surfxml_route_src = 0;
7772   AX_surfxml_route_dst = 0;
7773   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7774   ENTER(AL_surfxml_route); pushbuffer(0);
7775   }
7776         YY_BREAK
7777
7778 case 387:
7779 /* rule 387 can match eol */
7780 YY_RULE_SETUP
7781 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
7782         YY_BREAK
7783 case 388:
7784 /* rule 388 can match eol */
7785 YY_RULE_SETUP
7786 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
7787         YY_BREAK
7788 case 389:
7789 /* rule 389 can match eol */
7790 YY_RULE_SETUP
7791 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
7792         YY_BREAK
7793 case 390:
7794 /* rule 390 can match eol */
7795 YY_RULE_SETUP
7796 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
7797         YY_BREAK
7798 case 391:
7799 /* rule 391 can match eol */
7800 case 392:
7801 /* rule 392 can match eol */
7802 YY_RULE_SETUP
7803 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7804         YY_BREAK
7805 case 393:
7806 /* rule 393 can match eol */
7807 case 394:
7808 /* rule 394 can match eol */
7809 YY_RULE_SETUP
7810 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
7811         YY_BREAK
7812 case 395:
7813 YY_RULE_SETUP
7814 {
7815   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7816   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7817   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
7818  }
7819         YY_BREAK
7820 case 396:
7821 YY_RULE_SETUP
7822 {
7823   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7824   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7825   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
7826   switch (YY_START) {
7827    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
7828   }
7829  }
7830         YY_BREAK
7831 case 397:
7832 YY_RULE_SETUP
7833 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
7834         YY_BREAK
7835 case 398:
7836 YY_RULE_SETUP
7837 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
7838         YY_BREAK
7839 case YY_STATE_EOF(AL_surfxml_route):
7840 FAIL("EOF in attribute list of `route' element.");
7841         YY_BREAK
7842
7843 case 399:
7844 /* rule 399 can match eol */
7845 YY_RULE_SETUP
7846 {
7847   LEAVE;
7848   ETag_surfxml_route();
7849   popbuffer(); /* attribute */
7850   switch (YY_START) {
7851    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
7852   }
7853  }
7854         YY_BREAK
7855 case 400:
7856 /* rule 400 can match eol */
7857 YY_RULE_SETUP
7858 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
7859         YY_BREAK
7860 case 401:
7861 YY_RULE_SETUP
7862 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
7863         YY_BREAK
7864 case YY_STATE_EOF(S_surfxml_route):
7865 case YY_STATE_EOF(S_surfxml_route_2):
7866 case YY_STATE_EOF(E_surfxml_route):
7867 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
7868         YY_BREAK
7869
7870 case 402:
7871 /* rule 402 can match eol */
7872 YY_RULE_SETUP
7873 FAIL("Starting tag <ASroute> is not allowed here.");
7874         YY_BREAK
7875 case 403:
7876 /* rule 403 can match eol */
7877 YY_RULE_SETUP
7878 {
7879   AX_surfxml_ASroute_src = 0;
7880   AX_surfxml_ASroute_dst = 0;
7881   AX_surfxml_ASroute_gw_src = 0;
7882   AX_surfxml_ASroute_gw_dst = 0;
7883   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7884   ENTER(AL_surfxml_ASroute); pushbuffer(0);
7885   }
7886         YY_BREAK
7887
7888 case 404:
7889 /* rule 404 can match eol */
7890 YY_RULE_SETUP
7891 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
7892         YY_BREAK
7893 case 405:
7894 /* rule 405 can match eol */
7895 YY_RULE_SETUP
7896 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
7897         YY_BREAK
7898 case 406:
7899 /* rule 406 can match eol */
7900 YY_RULE_SETUP
7901 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
7902         YY_BREAK
7903 case 407:
7904 /* rule 407 can match eol */
7905 YY_RULE_SETUP
7906 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
7907         YY_BREAK
7908 case 408:
7909 /* rule 408 can match eol */
7910 YY_RULE_SETUP
7911 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_src);
7912         YY_BREAK
7913 case 409:
7914 /* rule 409 can match eol */
7915 YY_RULE_SETUP
7916 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_src);
7917         YY_BREAK
7918 case 410:
7919 /* rule 410 can match eol */
7920 YY_RULE_SETUP
7921 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_dst);
7922         YY_BREAK
7923 case 411:
7924 /* rule 411 can match eol */
7925 YY_RULE_SETUP
7926 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_dst);
7927         YY_BREAK
7928 case 412:
7929 /* rule 412 can match eol */
7930 case 413:
7931 /* rule 413 can match eol */
7932 YY_RULE_SETUP
7933 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7934         YY_BREAK
7935 case 414:
7936 /* rule 414 can match eol */
7937 case 415:
7938 /* rule 415 can match eol */
7939 YY_RULE_SETUP
7940 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
7941         YY_BREAK
7942 case 416:
7943 YY_RULE_SETUP
7944 {
7945   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7946   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7947   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7948   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7949   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
7950  }
7951         YY_BREAK
7952 case 417:
7953 YY_RULE_SETUP
7954 {
7955   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7956   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7957   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7958   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7959   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
7960   switch (YY_START) {
7961    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
7962   }
7963  }
7964         YY_BREAK
7965 case 418:
7966 YY_RULE_SETUP
7967 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
7968         YY_BREAK
7969 case 419:
7970 YY_RULE_SETUP
7971 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
7972         YY_BREAK
7973 case YY_STATE_EOF(AL_surfxml_ASroute):
7974 FAIL("EOF in attribute list of `ASroute' element.");
7975         YY_BREAK
7976
7977 case 420:
7978 /* rule 420 can match eol */
7979 YY_RULE_SETUP
7980 {
7981   LEAVE;
7982   ETag_surfxml_ASroute();
7983   popbuffer(); /* attribute */
7984   switch (YY_START) {
7985    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
7986   }
7987  }
7988         YY_BREAK
7989 case 421:
7990 /* rule 421 can match eol */
7991 YY_RULE_SETUP
7992 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
7993         YY_BREAK
7994 case 422:
7995 YY_RULE_SETUP
7996 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
7997         YY_BREAK
7998 case YY_STATE_EOF(E_surfxml_ASroute):
7999 case YY_STATE_EOF(S_surfxml_ASroute):
8000 case YY_STATE_EOF(S_surfxml_ASroute_2):
8001 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8002         YY_BREAK
8003
8004 case 423:
8005 /* rule 423 can match eol */
8006 YY_RULE_SETUP
8007 FAIL("Starting tag <link_ctn> is not allowed here.");
8008         YY_BREAK
8009 case 424:
8010 /* rule 424 can match eol */
8011 YY_RULE_SETUP
8012 {
8013   AX_surfxml_link_ctn_id = 0;
8014   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
8015   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
8016   }
8017         YY_BREAK
8018
8019 case 425:
8020 /* rule 425 can match eol */
8021 YY_RULE_SETUP
8022 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_ctn_id);
8023         YY_BREAK
8024 case 426:
8025 /* rule 426 can match eol */
8026 YY_RULE_SETUP
8027 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_ctn_id);
8028         YY_BREAK
8029 case 427:
8030 /* rule 427 can match eol */
8031 case 428:
8032 /* rule 428 can match eol */
8033 YY_RULE_SETUP
8034 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
8035         YY_BREAK
8036 case 429:
8037 /* rule 429 can match eol */
8038 case 430:
8039 /* rule 430 can match eol */
8040 YY_RULE_SETUP
8041 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
8042         YY_BREAK
8043 case 431:
8044 /* rule 431 can match eol */
8045 case 432:
8046 /* rule 432 can match eol */
8047 YY_RULE_SETUP
8048 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
8049         YY_BREAK
8050 case 433:
8051 YY_RULE_SETUP
8052 {
8053   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8054   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
8055  }
8056         YY_BREAK
8057 case 434:
8058 YY_RULE_SETUP
8059 {
8060   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8061   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
8062   switch (YY_START) {
8063    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8064    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8065    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8066    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8067   }
8068  }
8069         YY_BREAK
8070 case 435:
8071 YY_RULE_SETUP
8072 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8073         YY_BREAK
8074 case 436:
8075 YY_RULE_SETUP
8076 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8077         YY_BREAK
8078 case YY_STATE_EOF(AL_surfxml_link_ctn):
8079 FAIL("EOF in attribute list of `link_ctn' element.");
8080         YY_BREAK
8081
8082 case 437:
8083 /* rule 437 can match eol */
8084 YY_RULE_SETUP
8085 {
8086   LEAVE;
8087   ETag_surfxml_link_ctn();
8088   popbuffer(); /* attribute */
8089   switch (YY_START) {
8090    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8091    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8092    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8093    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8094   }
8095  }
8096         YY_BREAK
8097 case 438:
8098 /* rule 438 can match eol */
8099 YY_RULE_SETUP
8100 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8101         YY_BREAK
8102 case 439:
8103 YY_RULE_SETUP
8104 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8105         YY_BREAK
8106 case YY_STATE_EOF(E_surfxml_link_ctn):
8107 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8108         YY_BREAK
8109
8110 case 440:
8111 /* rule 440 can match eol */
8112 YY_RULE_SETUP
8113 FAIL("Starting tag <bypassRoute> is not allowed here.");
8114         YY_BREAK
8115 case 441:
8116 /* rule 441 can match eol */
8117 YY_RULE_SETUP
8118 {
8119   AX_surfxml_bypassRoute_src = 0;
8120   AX_surfxml_bypassRoute_dst = 0;
8121   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8122   }
8123         YY_BREAK
8124
8125 case 442:
8126 /* rule 442 can match eol */
8127 YY_RULE_SETUP
8128 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
8129         YY_BREAK
8130 case 443:
8131 /* rule 443 can match eol */
8132 YY_RULE_SETUP
8133 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
8134         YY_BREAK
8135 case 444:
8136 /* rule 444 can match eol */
8137 YY_RULE_SETUP
8138 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
8139         YY_BREAK
8140 case 445:
8141 /* rule 445 can match eol */
8142 YY_RULE_SETUP
8143 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
8144         YY_BREAK
8145 case 446:
8146 YY_RULE_SETUP
8147 {
8148   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8149   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8150   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8151  }
8152         YY_BREAK
8153 case 447:
8154 YY_RULE_SETUP
8155 {
8156   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8157   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8158   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8159   switch (YY_START) {
8160    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8161   }
8162  }
8163         YY_BREAK
8164 case 448:
8165 YY_RULE_SETUP
8166 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8167         YY_BREAK
8168 case 449:
8169 YY_RULE_SETUP
8170 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8171         YY_BREAK
8172 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8173 FAIL("EOF in attribute list of `bypassRoute' element.");
8174         YY_BREAK
8175
8176 case 450:
8177 /* rule 450 can match eol */
8178 YY_RULE_SETUP
8179 {
8180   LEAVE;
8181   ETag_surfxml_bypassRoute();
8182   popbuffer(); /* attribute */
8183   switch (YY_START) {
8184    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8185   }
8186  }
8187         YY_BREAK
8188 case 451:
8189 /* rule 451 can match eol */
8190 YY_RULE_SETUP
8191 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8192         YY_BREAK
8193 case 452:
8194 YY_RULE_SETUP
8195 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8196         YY_BREAK
8197 case YY_STATE_EOF(S_surfxml_bypassRoute):
8198 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8199 case YY_STATE_EOF(E_surfxml_bypassRoute):
8200 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8201         YY_BREAK
8202
8203 case 453:
8204 /* rule 453 can match eol */
8205 YY_RULE_SETUP
8206 FAIL("Starting tag <bypassASroute> is not allowed here.");
8207         YY_BREAK
8208 case 454:
8209 /* rule 454 can match eol */
8210 YY_RULE_SETUP
8211 {
8212   AX_surfxml_bypassASroute_src = 0;
8213   AX_surfxml_bypassASroute_dst = 0;
8214   AX_surfxml_bypassASroute_gw_src = 0;
8215   AX_surfxml_bypassASroute_gw_dst = 0;
8216   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8217   }
8218         YY_BREAK
8219
8220 case 455:
8221 /* rule 455 can match eol */
8222 YY_RULE_SETUP
8223 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
8224         YY_BREAK
8225 case 456:
8226 /* rule 456 can match eol */
8227 YY_RULE_SETUP
8228 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
8229         YY_BREAK
8230 case 457:
8231 /* rule 457 can match eol */
8232 YY_RULE_SETUP
8233 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
8234         YY_BREAK
8235 case 458:
8236 /* rule 458 can match eol */
8237 YY_RULE_SETUP
8238 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
8239         YY_BREAK
8240 case 459:
8241 /* rule 459 can match eol */
8242 YY_RULE_SETUP
8243 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
8244         YY_BREAK
8245 case 460:
8246 /* rule 460 can match eol */
8247 YY_RULE_SETUP
8248 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
8249         YY_BREAK
8250 case 461:
8251 /* rule 461 can match eol */
8252 YY_RULE_SETUP
8253 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
8254         YY_BREAK
8255 case 462:
8256 /* rule 462 can match eol */
8257 YY_RULE_SETUP
8258 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
8259         YY_BREAK
8260 case 463:
8261 YY_RULE_SETUP
8262 {
8263   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8264   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8265   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8266   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8267   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8268  }
8269         YY_BREAK
8270 case 464:
8271 YY_RULE_SETUP
8272 {
8273   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8274   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8275   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8276   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8277   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8278   switch (YY_START) {
8279    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8280   }
8281  }
8282         YY_BREAK
8283 case 465:
8284 YY_RULE_SETUP
8285 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8286         YY_BREAK
8287 case 466:
8288 YY_RULE_SETUP
8289 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8290         YY_BREAK
8291 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8292 FAIL("EOF in attribute list of `bypassASroute' element.");
8293         YY_BREAK
8294
8295 case 467:
8296 /* rule 467 can match eol */
8297 YY_RULE_SETUP
8298 {
8299   LEAVE;
8300   ETag_surfxml_bypassASroute();
8301   popbuffer(); /* attribute */
8302   switch (YY_START) {
8303    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8304   }
8305  }
8306         YY_BREAK
8307 case 468:
8308 /* rule 468 can match eol */
8309 YY_RULE_SETUP
8310 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8311         YY_BREAK
8312 case 469:
8313 YY_RULE_SETUP
8314 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8315         YY_BREAK
8316 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8317 case YY_STATE_EOF(E_surfxml_bypassASroute):
8318 case YY_STATE_EOF(S_surfxml_bypassASroute):
8319 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8320         YY_BREAK
8321
8322 case 470:
8323 /* rule 470 can match eol */
8324 YY_RULE_SETUP
8325 FAIL("Starting tag <process> is not allowed here.");
8326         YY_BREAK
8327 case 471:
8328 /* rule 471 can match eol */
8329 YY_RULE_SETUP
8330 {
8331   AX_surfxml_process_host = 0;
8332   AX_surfxml_process_function = 0;
8333   AX_surfxml_process_start_time = 28;
8334   AX_surfxml_process_kill_time = 33;
8335   AX_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8336   ENTER(AL_surfxml_process); pushbuffer(0);
8337   }
8338         YY_BREAK
8339
8340 case 472:
8341 /* rule 472 can match eol */
8342 YY_RULE_SETUP
8343 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
8344         YY_BREAK
8345 case 473:
8346 /* rule 473 can match eol */
8347 YY_RULE_SETUP
8348 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
8349         YY_BREAK
8350 case 474:
8351 /* rule 474 can match eol */
8352 YY_RULE_SETUP
8353 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
8354         YY_BREAK
8355 case 475:
8356 /* rule 475 can match eol */
8357 YY_RULE_SETUP
8358 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
8359         YY_BREAK
8360 case 476:
8361 /* rule 476 can match eol */
8362 YY_RULE_SETUP
8363 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
8364         YY_BREAK
8365 case 477:
8366 /* rule 477 can match eol */
8367 YY_RULE_SETUP
8368 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
8369         YY_BREAK
8370 case 478:
8371 /* rule 478 can match eol */
8372 YY_RULE_SETUP
8373 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
8374         YY_BREAK
8375 case 479:
8376 /* rule 479 can match eol */
8377 YY_RULE_SETUP
8378 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
8379         YY_BREAK
8380 case 480:
8381 /* rule 480 can match eol */
8382 case 481:
8383 /* rule 481 can match eol */
8384 YY_RULE_SETUP
8385 A_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8386         YY_BREAK
8387 case 482:
8388 /* rule 482 can match eol */
8389 case 483:
8390 /* rule 483 can match eol */
8391 YY_RULE_SETUP
8392 A_surfxml_process_on_failure = A_surfxml_process_on_failure_RESTART;
8393         YY_BREAK
8394 case 484:
8395 YY_RULE_SETUP
8396 {
8397   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8398   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8399   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8400  }
8401         YY_BREAK
8402 case 485:
8403 YY_RULE_SETUP
8404 {
8405   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8406   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8407   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8408   switch (YY_START) {
8409    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;
8410   }
8411  }
8412         YY_BREAK
8413 case 486:
8414 YY_RULE_SETUP
8415 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8416         YY_BREAK
8417 case 487:
8418 YY_RULE_SETUP
8419 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8420         YY_BREAK
8421 case YY_STATE_EOF(AL_surfxml_process):
8422 FAIL("EOF in attribute list of `process' element.");
8423         YY_BREAK
8424
8425 case 488:
8426 /* rule 488 can match eol */
8427 YY_RULE_SETUP
8428 {
8429   LEAVE;
8430   ETag_surfxml_process();
8431   popbuffer(); /* attribute */
8432   switch (YY_START) {
8433    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;
8434   }
8435  }
8436         YY_BREAK
8437 case 489:
8438 /* rule 489 can match eol */
8439 YY_RULE_SETUP
8440 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8441         YY_BREAK
8442 case 490:
8443 YY_RULE_SETUP
8444 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8445         YY_BREAK
8446 case YY_STATE_EOF(E_surfxml_process):
8447 case YY_STATE_EOF(S_surfxml_process):
8448 case YY_STATE_EOF(S_surfxml_process_2):
8449 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8450         YY_BREAK
8451
8452 case 491:
8453 /* rule 491 can match eol */
8454 YY_RULE_SETUP
8455 FAIL("Starting tag <argument> is not allowed here.");
8456         YY_BREAK
8457 case 492:
8458 /* rule 492 can match eol */
8459 YY_RULE_SETUP
8460 {
8461   AX_surfxml_argument_value = 0;
8462   ENTER(AL_surfxml_argument); pushbuffer(0);
8463   }
8464         YY_BREAK
8465
8466 case 493:
8467 /* rule 493 can match eol */
8468 YY_RULE_SETUP
8469 ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
8470         YY_BREAK
8471 case 494:
8472 /* rule 494 can match eol */
8473 YY_RULE_SETUP
8474 ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
8475         YY_BREAK
8476 case 495:
8477 YY_RULE_SETUP
8478 {
8479   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8480   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8481  }
8482         YY_BREAK
8483 case 496:
8484 YY_RULE_SETUP
8485 {
8486   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8487   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8488   switch (YY_START) {
8489    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8490   }
8491  }
8492         YY_BREAK
8493 case 497:
8494 YY_RULE_SETUP
8495 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8496         YY_BREAK
8497 case 498:
8498 YY_RULE_SETUP
8499 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8500         YY_BREAK
8501 case YY_STATE_EOF(AL_surfxml_argument):
8502 FAIL("EOF in attribute list of `argument' element.");
8503         YY_BREAK
8504
8505 case 499:
8506 /* rule 499 can match eol */
8507 YY_RULE_SETUP
8508 {
8509   LEAVE;
8510   ETag_surfxml_argument();
8511   popbuffer(); /* attribute */
8512   switch (YY_START) {
8513    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8514   }
8515  }
8516         YY_BREAK
8517 case 500:
8518 /* rule 500 can match eol */
8519 YY_RULE_SETUP
8520 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8521         YY_BREAK
8522 case 501:
8523 YY_RULE_SETUP
8524 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8525         YY_BREAK
8526 case YY_STATE_EOF(E_surfxml_argument):
8527 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8528         YY_BREAK
8529
8530 case 502:
8531 /* rule 502 can match eol */
8532 YY_RULE_SETUP
8533 FAIL("Starting tag <config> is not allowed here.");
8534         YY_BREAK
8535 case 503:
8536 /* rule 503 can match eol */
8537 YY_RULE_SETUP
8538 {
8539   AX_surfxml_config_id = 0;
8540   ENTER(AL_surfxml_config); pushbuffer(0);
8541   }
8542         YY_BREAK
8543
8544 case 504:
8545 /* rule 504 can match eol */
8546 YY_RULE_SETUP
8547 ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
8548         YY_BREAK
8549 case 505:
8550 /* rule 505 can match eol */
8551 YY_RULE_SETUP
8552 ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
8553         YY_BREAK
8554 case 506:
8555 YY_RULE_SETUP
8556 {
8557   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8558  }
8559         YY_BREAK
8560 case 507:
8561 YY_RULE_SETUP
8562 {
8563   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8564   switch (YY_START) {
8565    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8566   }
8567  }
8568         YY_BREAK
8569 case 508:
8570 YY_RULE_SETUP
8571 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
8572         YY_BREAK
8573 case 509:
8574 YY_RULE_SETUP
8575 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
8576         YY_BREAK
8577 case YY_STATE_EOF(AL_surfxml_config):
8578 FAIL("EOF in attribute list of `config' element.");
8579         YY_BREAK
8580
8581 case 510:
8582 /* rule 510 can match eol */
8583 YY_RULE_SETUP
8584 {
8585   LEAVE;
8586   ETag_surfxml_config();
8587   popbuffer(); /* attribute */
8588   switch (YY_START) {
8589    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8590   }
8591  }
8592         YY_BREAK
8593 case 511:
8594 /* rule 511 can match eol */
8595 YY_RULE_SETUP
8596 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
8597         YY_BREAK
8598 case 512:
8599 YY_RULE_SETUP
8600 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
8601         YY_BREAK
8602 case YY_STATE_EOF(S_surfxml_config):
8603 case YY_STATE_EOF(S_surfxml_config_2):
8604 case YY_STATE_EOF(E_surfxml_config):
8605 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
8606         YY_BREAK
8607
8608 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8609   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8610 case 513:
8611 /* rule 513 can match eol */
8612 YY_RULE_SETUP
8613 FAIL("Starting tag <prop> is not allowed here.");
8614         YY_BREAK
8615 case 514:
8616 /* rule 514 can match eol */
8617 YY_RULE_SETUP
8618 {
8619   AX_surfxml_prop_id = 0;
8620   AX_surfxml_prop_value = 0;
8621   ENTER(AL_surfxml_prop); pushbuffer(0);
8622   }
8623         YY_BREAK
8624
8625 case 515:
8626 /* rule 515 can match eol */
8627 YY_RULE_SETUP
8628 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
8629         YY_BREAK
8630 case 516:
8631 /* rule 516 can match eol */
8632 YY_RULE_SETUP
8633 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
8634         YY_BREAK
8635 case 517:
8636 /* rule 517 can match eol */
8637 YY_RULE_SETUP
8638 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
8639         YY_BREAK
8640 case 518:
8641 /* rule 518 can match eol */
8642 YY_RULE_SETUP
8643 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
8644         YY_BREAK
8645 case 519:
8646 YY_RULE_SETUP
8647 {
8648   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8649   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8650   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8651  }
8652         YY_BREAK
8653 case 520:
8654 YY_RULE_SETUP
8655 {
8656   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8657   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8658   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8659   switch (YY_START) {
8660    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8661    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8662    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8663    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8664    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8665    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8666    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8667   }
8668  }
8669         YY_BREAK
8670 case 521:
8671 YY_RULE_SETUP
8672 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8673         YY_BREAK
8674 case 522:
8675 YY_RULE_SETUP
8676 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8677         YY_BREAK
8678 case YY_STATE_EOF(AL_surfxml_prop):
8679 FAIL("EOF in attribute list of `prop' element.");
8680         YY_BREAK
8681
8682 case 523:
8683 /* rule 523 can match eol */
8684 YY_RULE_SETUP
8685 {
8686   LEAVE;
8687   ETag_surfxml_prop();
8688   popbuffer(); /* attribute */
8689   switch (YY_START) {
8690    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8691    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
8692    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8693    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8694    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
8695    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
8696    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
8697   }
8698  }
8699         YY_BREAK
8700 case 524:
8701 /* rule 524 can match eol */
8702 YY_RULE_SETUP
8703 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8704         YY_BREAK
8705 case 525:
8706 YY_RULE_SETUP
8707 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8708         YY_BREAK
8709 case YY_STATE_EOF(E_surfxml_prop):
8710 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8711         YY_BREAK
8712
8713 /* EPILOG: after the root element. */
8714
8715 case 526:
8716 YY_RULE_SETUP
8717 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
8718         YY_BREAK
8719 case YY_STATE_EOF(EPILOG):
8720 SUCCEED;
8721         YY_BREAK
8722
8723 /* CHARACTER DATA. */
8724
8725 /* Non-defined standard entities... */
8726 case 527:
8727 YY_RULE_SETUP
8728 BUFFERPUTC('&');
8729         YY_BREAK
8730 case 528:
8731 YY_RULE_SETUP
8732 BUFFERPUTC('<');
8733         YY_BREAK
8734 case 529:
8735 YY_RULE_SETUP
8736 BUFFERPUTC('>');
8737         YY_BREAK
8738 case 530:
8739 YY_RULE_SETUP
8740 BUFFERPUTC('\'');
8741         YY_BREAK
8742 case 531:
8743 YY_RULE_SETUP
8744 BUFFERPUTC('"');
8745         YY_BREAK
8746 /* Character entities. */
8747 case 532:
8748 YY_RULE_SETUP
8749 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
8750         YY_BREAK
8751 case 533:
8752 YY_RULE_SETUP
8753 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
8754         YY_BREAK
8755
8756 case 534:
8757 /* rule 534 can match eol */
8758 case 535:
8759 /* rule 535 can match eol */
8760 case 536:
8761 /* rule 536 can match eol */
8762 case 537:
8763 /* rule 537 can match eol */
8764 YY_RULE_SETUP
8765 BUFFERPUTC('\n');
8766         YY_BREAK
8767
8768 case 538:
8769 YY_RULE_SETUP
8770 ENTER(CDATA);
8771         YY_BREAK
8772 case 539:
8773 YY_RULE_SETUP
8774 FAIL("Unexpected `]""]>' in character data.");
8775         YY_BREAK
8776
8777 case 540:
8778 YY_RULE_SETUP
8779 BUFFERDONE; LEAVE;
8780         YY_BREAK
8781 case YY_STATE_EOF(VALUE1):
8782 FAIL("EOF in literal (\"'\" expected).");
8783         YY_BREAK
8784
8785 case 541:
8786 YY_RULE_SETUP
8787 BUFFERDONE; LEAVE;
8788         YY_BREAK
8789 case YY_STATE_EOF(VALUE2):
8790 FAIL("EOF in literal (`\"' expected).");
8791         YY_BREAK
8792
8793 case 542:
8794 /* rule 542 can match eol */
8795 YY_RULE_SETUP
8796 BUFFERPUTC(surf_parse_text[0]);
8797         YY_BREAK
8798 case 543:
8799 YY_RULE_SETUP
8800 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
8801         YY_BREAK
8802
8803 case 544:
8804 YY_RULE_SETUP
8805 LEAVE;
8806         YY_BREAK
8807 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
8808 case 545:
8809 YY_RULE_SETUP
8810 BUFFERPUTC(surf_parse_text[0]);
8811         YY_BREAK
8812 case YY_STATE_EOF(CDATA):
8813 FAIL("EOF in CDATA section.");
8814         YY_BREAK
8815
8816 /* Impossible rules to avoid warnings from flex(1). */
8817 /* Ideally, this should be replaced by code in flexml.pl that
8818     generates just the states not covered by other rules. */
8819
8820 case 546:
8821 /* rule 546 can match eol */
8822 YY_RULE_SETUP
8823 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
8824         YY_BREAK
8825
8826 case 547:
8827 YY_RULE_SETUP
8828 ECHO;
8829         YY_BREAK
8830 case YY_STATE_EOF(INITIAL):
8831 case YY_STATE_EOF(ROOT_surfxml_platform):
8832 case YY_STATE_EOF(S_surfxml_platform_2):
8833 case YY_STATE_EOF(S_surfxml_platform_5):
8834 case YY_STATE_EOF(S_surfxml_platform_7):
8835 case YY_STATE_EOF(S_surfxml_include_1):
8836 case YY_STATE_EOF(S_surfxml_AS_2):
8837 case YY_STATE_EOF(S_surfxml_AS_5):
8838 case YY_STATE_EOF(S_surfxml_AS_8):
8839 case YY_STATE_EOF(S_surfxml_AS_10):
8840 case YY_STATE_EOF(S_surfxml_AS_13):
8841 case YY_STATE_EOF(S_surfxml_AS_15):
8842 case YY_STATE_EOF(S_surfxml_storage_type_1):
8843 case YY_STATE_EOF(S_surfxml_storage_1):
8844 case YY_STATE_EOF(S_surfxml_host_1):
8845 case YY_STATE_EOF(S_surfxml_link_1):
8846 case YY_STATE_EOF(S_surfxml_route_1):
8847 case YY_STATE_EOF(S_surfxml_ASroute_1):
8848 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
8849 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
8850 case YY_STATE_EOF(S_surfxml_process_1):
8851 case YY_STATE_EOF(S_surfxml_config_1):
8852 case YY_STATE_EOF(IMPOSSIBLE):
8853         yyterminate();
8854
8855         case YY_END_OF_BUFFER:
8856                 {
8857                 /* Amount of text matched not including the EOB char. */
8858                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
8859
8860                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
8861                 *yy_cp = (yy_hold_char);
8862                 YY_RESTORE_YY_MORE_OFFSET
8863
8864                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
8865                         {
8866                         /* We're scanning a new file or input source.  It's
8867                          * possible that this happened because the user
8868                          * just pointed surf_parse_in at a new source and called
8869                          * surf_parse_lex().  If so, then we have to assure
8870                          * consistency between YY_CURRENT_BUFFER and our
8871                          * globals.  Here is the right place to do so, because
8872                          * this is the first action (other than possibly a
8873                          * back-up) that will match for the new input source.
8874                          */
8875                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8876                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
8877                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
8878                         }
8879
8880                 /* Note that here we test for yy_c_buf_p "<=" to the position
8881                  * of the first EOB in the buffer, since yy_c_buf_p will
8882                  * already have been incremented past the NUL character
8883                  * (since all states make transitions on EOB to the
8884                  * end-of-buffer state).  Contrast this with the test
8885                  * in input().
8886                  */
8887                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8888                         { /* This was really a NUL. */
8889                         yy_state_type yy_next_state;
8890
8891                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
8892
8893                         yy_current_state = yy_get_previous_state(  );
8894
8895                         /* Okay, we're now positioned to make the NUL
8896                          * transition.  We couldn't have
8897                          * yy_get_previous_state() go ahead and do it
8898                          * for us because it doesn't know how to deal
8899                          * with the possibility of jamming (and we don't
8900                          * want to build jamming into it because then it
8901                          * will run more slowly).
8902                          */
8903
8904                         yy_next_state = yy_try_NUL_trans( yy_current_state );
8905
8906                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8907
8908                         if ( yy_next_state )
8909                                 {
8910                                 /* Consume the NUL. */
8911                                 yy_cp = ++(yy_c_buf_p);
8912                                 yy_current_state = yy_next_state;
8913                                 goto yy_match;
8914                                 }
8915
8916                         else
8917                                 {
8918                                 yy_cp = (yy_c_buf_p);
8919                                 goto yy_find_action;
8920                                 }
8921                         }
8922
8923                 else switch ( yy_get_next_buffer(  ) )
8924                         {
8925                         case EOB_ACT_END_OF_FILE:
8926                                 {
8927                                 (yy_did_buffer_switch_on_eof) = 0;
8928
8929                                 if ( surf_parse_wrap( ) )
8930                                         {
8931                                         /* Note: because we've taken care in
8932                                          * yy_get_next_buffer() to have set up
8933                                          * surf_parse_text, we can now set up
8934                                          * yy_c_buf_p so that if some total
8935                                          * hoser (like flex itself) wants to
8936                                          * call the scanner after we return the
8937                                          * YY_NULL, it'll still work - another
8938                                          * YY_NULL will get returned.
8939                                          */
8940                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
8941
8942                                         yy_act = YY_STATE_EOF(YY_START);
8943                                         goto do_action;
8944                                         }
8945
8946                                 else
8947                                         {
8948                                         if ( ! (yy_did_buffer_switch_on_eof) )
8949                                                 YY_NEW_FILE;
8950                                         }
8951                                 break;
8952                                 }
8953
8954                         case EOB_ACT_CONTINUE_SCAN:
8955                                 (yy_c_buf_p) =
8956                                         (yytext_ptr) + yy_amount_of_matched_text;
8957
8958                                 yy_current_state = yy_get_previous_state(  );
8959
8960                                 yy_cp = (yy_c_buf_p);
8961                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8962                                 goto yy_match;
8963
8964                         case EOB_ACT_LAST_MATCH:
8965                                 (yy_c_buf_p) =
8966                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
8967
8968                                 yy_current_state = yy_get_previous_state(  );
8969
8970                                 yy_cp = (yy_c_buf_p);
8971                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8972                                 goto yy_find_action;
8973                         }
8974                 break;
8975                 }
8976
8977         default:
8978                 YY_FATAL_ERROR(
8979                         "fatal flex scanner internal error--no action found" );
8980         } /* end of action switch */
8981                 } /* end of scanning one token */
8982 } /* end of surf_parse_lex */
8983
8984 /* yy_get_next_buffer - try to read in a new buffer
8985  *
8986  * Returns a code representing an action:
8987  *      EOB_ACT_LAST_MATCH -
8988  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
8989  *      EOB_ACT_END_OF_FILE - end of file
8990  */
8991 static int yy_get_next_buffer (void)
8992 {
8993         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
8994         register char *source = (yytext_ptr);
8995         register int number_to_move, i;
8996         int ret_val;
8997
8998         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
8999                 YY_FATAL_ERROR(
9000                 "fatal flex scanner internal error--end of buffer missed" );
9001
9002         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9003                 { /* Don't try to fill the buffer, so this is an EOF. */
9004                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9005                         {
9006                         /* We matched a single character, the EOB, so
9007                          * treat this as a final EOF.
9008                          */
9009                         return EOB_ACT_END_OF_FILE;
9010                         }
9011
9012                 else
9013                         {
9014                         /* We matched some text prior to the EOB, first
9015                          * process it.
9016                          */
9017                         return EOB_ACT_LAST_MATCH;
9018                         }
9019                 }
9020
9021         /* Try to read more data. */
9022
9023         /* First move last chars to start of buffer. */
9024         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9025
9026         for ( i = 0; i < number_to_move; ++i )
9027                 *(dest++) = *(source++);
9028
9029         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9030                 /* don't do the read, it's not guaranteed to return an EOF,
9031                  * just force an EOF
9032                  */
9033                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9034
9035         else
9036                 {
9037                         int num_to_read =
9038                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9039
9040                 while ( num_to_read <= 0 )
9041                         { /* Not enough room in the buffer - grow it. */
9042
9043                         /* just a shorter name for the current buffer */
9044                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9045
9046                         int yy_c_buf_p_offset =
9047                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9048
9049                         if ( b->yy_is_our_buffer )
9050                                 {
9051                                 int new_size = b->yy_buf_size * 2;
9052
9053                                 if ( new_size <= 0 )
9054                                         b->yy_buf_size += b->yy_buf_size / 8;
9055                                 else
9056                                         b->yy_buf_size *= 2;
9057
9058                                 b->yy_ch_buf = (char *)
9059                                         /* Include room in for 2 EOB chars. */
9060                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9061                                 }
9062                         else
9063                                 /* Can't grow it, we don't own it. */
9064                                 b->yy_ch_buf = 0;
9065
9066                         if ( ! b->yy_ch_buf )
9067                                 YY_FATAL_ERROR(
9068                                 "fatal error - scanner input buffer overflow" );
9069
9070                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9071
9072                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9073                                                 number_to_move - 1;
9074
9075                         }
9076
9077                 if ( num_to_read > YY_READ_BUF_SIZE )
9078                         num_to_read = YY_READ_BUF_SIZE;
9079
9080                 /* Read in more data. */
9081                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9082                         (yy_n_chars), (size_t) num_to_read );
9083
9084                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9085                 }
9086
9087         if ( (yy_n_chars) == 0 )
9088                 {
9089                 if ( number_to_move == YY_MORE_ADJ )
9090                         {
9091                         ret_val = EOB_ACT_END_OF_FILE;
9092                         surf_parse_restart(surf_parse_in  );
9093                         }
9094
9095                 else
9096                         {
9097                         ret_val = EOB_ACT_LAST_MATCH;
9098                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9099                                 YY_BUFFER_EOF_PENDING;
9100                         }
9101                 }
9102
9103         else
9104                 ret_val = EOB_ACT_CONTINUE_SCAN;
9105
9106         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9107                 /* Extend the array by 50%, plus the number we really need. */
9108                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9109                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9110                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9111                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9112         }
9113
9114         (yy_n_chars) += number_to_move;
9115         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9116         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9117
9118         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9119
9120         return ret_val;
9121 }
9122
9123 /* yy_get_previous_state - get the state just before the EOB char was reached */
9124
9125     static yy_state_type yy_get_previous_state (void)
9126 {
9127         register yy_state_type yy_current_state;
9128         register char *yy_cp;
9129     
9130         yy_current_state = (yy_start);
9131
9132         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9133                 {
9134                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9135                 if ( yy_accept[yy_current_state] )
9136                         {
9137                         (yy_last_accepting_state) = yy_current_state;
9138                         (yy_last_accepting_cpos) = yy_cp;
9139                         }
9140                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9141                         {
9142                         yy_current_state = (int) yy_def[yy_current_state];
9143                         if ( yy_current_state >= 3218 )
9144                                 yy_c = yy_meta[(unsigned int) yy_c];
9145                         }
9146                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9147                 }
9148
9149         return yy_current_state;
9150 }
9151
9152 /* yy_try_NUL_trans - try to make a transition on the NUL character
9153  *
9154  * synopsis
9155  *      next_state = yy_try_NUL_trans( current_state );
9156  */
9157     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9158 {
9159         register int yy_is_jam;
9160         register char *yy_cp = (yy_c_buf_p);
9161
9162         register YY_CHAR yy_c = 1;
9163         if ( yy_accept[yy_current_state] )
9164                 {
9165                 (yy_last_accepting_state) = yy_current_state;
9166                 (yy_last_accepting_cpos) = yy_cp;
9167                 }
9168         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9169                 {
9170                 yy_current_state = (int) yy_def[yy_current_state];
9171                 if ( yy_current_state >= 3218 )
9172                         yy_c = yy_meta[(unsigned int) yy_c];
9173                 }
9174         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9175         yy_is_jam = (yy_current_state == 3217);
9176
9177         return yy_is_jam ? 0 : yy_current_state;
9178 }
9179
9180 #ifndef YY_NO_INPUT
9181 #ifdef __cplusplus
9182     static int yyinput (void)
9183 #else
9184     static int input  (void)
9185 #endif
9186
9187 {
9188         int c;
9189     
9190         *(yy_c_buf_p) = (yy_hold_char);
9191
9192         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9193                 {
9194                 /* yy_c_buf_p now points to the character we want to return.
9195                  * If this occurs *before* the EOB characters, then it's a
9196                  * valid NUL; if not, then we've hit the end of the buffer.
9197                  */
9198                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9199                         /* This was really a NUL. */
9200                         *(yy_c_buf_p) = '\0';
9201
9202                 else
9203                         { /* need more input */
9204                         int offset = (yy_c_buf_p) - (yytext_ptr);
9205                         ++(yy_c_buf_p);
9206
9207                         switch ( yy_get_next_buffer(  ) )
9208                                 {
9209                                 case EOB_ACT_LAST_MATCH:
9210                                         /* This happens because yy_g_n_b()
9211                                          * sees that we've accumulated a
9212                                          * token and flags that we need to
9213                                          * try matching the token before
9214                                          * proceeding.  But for input(),
9215                                          * there's no matching to consider.
9216                                          * So convert the EOB_ACT_LAST_MATCH
9217                                          * to EOB_ACT_END_OF_FILE.
9218                                          */
9219
9220                                         /* Reset buffer status. */
9221                                         surf_parse_restart(surf_parse_in );
9222
9223                                         /*FALLTHROUGH*/
9224
9225                                 case EOB_ACT_END_OF_FILE:
9226                                         {
9227                                         if ( surf_parse_wrap( ) )
9228                                                 return EOF;
9229
9230                                         if ( ! (yy_did_buffer_switch_on_eof) )
9231                                                 YY_NEW_FILE;
9232 #ifdef __cplusplus
9233                                         return yyinput();
9234 #else
9235                                         return input();
9236 #endif
9237                                         }
9238
9239                                 case EOB_ACT_CONTINUE_SCAN:
9240                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9241                                         break;
9242                                 }
9243                         }
9244                 }
9245
9246         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9247         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9248         (yy_hold_char) = *++(yy_c_buf_p);
9249
9250         if ( c == '\n' )
9251                    
9252     surf_parse_lineno++;
9253 ;
9254
9255         return c;
9256 }
9257 #endif  /* ifndef YY_NO_INPUT */
9258
9259 /** Immediately switch to a different input stream.
9260  * @param input_file A readable stream.
9261  * 
9262  * @note This function does not reset the start condition to @c INITIAL .
9263  */
9264     void surf_parse_restart  (FILE * input_file )
9265 {
9266     
9267         if ( ! YY_CURRENT_BUFFER ){
9268         surf_parse_ensure_buffer_stack ();
9269                 YY_CURRENT_BUFFER_LVALUE =
9270             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9271         }
9272
9273         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9274         surf_parse__load_buffer_state( );
9275 }
9276
9277 /** Switch to a different input buffer.
9278  * @param new_buffer The new input buffer.
9279  * 
9280  */
9281     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9282 {
9283     
9284         /* TODO. We should be able to replace this entire function body
9285          * with
9286          *              surf_parse_pop_buffer_state();
9287          *              surf_parse_push_buffer_state(new_buffer);
9288      */
9289         surf_parse_ensure_buffer_stack ();
9290         if ( YY_CURRENT_BUFFER == new_buffer )
9291                 return;
9292
9293         if ( YY_CURRENT_BUFFER )
9294                 {
9295                 /* Flush out information for old buffer. */
9296                 *(yy_c_buf_p) = (yy_hold_char);
9297                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9298                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9299                 }
9300
9301         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9302         surf_parse__load_buffer_state( );
9303
9304         /* We don't actually know whether we did this switch during
9305          * EOF (surf_parse_wrap()) processing, but the only time this flag
9306          * is looked at is after surf_parse_wrap() is called, so it's safe
9307          * to go ahead and always set it.
9308          */
9309         (yy_did_buffer_switch_on_eof) = 1;
9310 }
9311
9312 static void surf_parse__load_buffer_state  (void)
9313 {
9314         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9315         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9316         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9317         (yy_hold_char) = *(yy_c_buf_p);
9318 }
9319
9320 /** Allocate and initialize an input buffer state.
9321  * @param file A readable stream.
9322  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9323  * 
9324  * @return the allocated buffer state.
9325  */
9326     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9327 {
9328         YY_BUFFER_STATE b;
9329     
9330         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9331         if ( ! b )
9332                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9333
9334         b->yy_buf_size = size;
9335
9336         /* yy_ch_buf has to be 2 characters longer than the size given because
9337          * we need to put in 2 end-of-buffer characters.
9338          */
9339         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9340         if ( ! b->yy_ch_buf )
9341                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9342
9343         b->yy_is_our_buffer = 1;
9344
9345         surf_parse__init_buffer(b,file );
9346
9347         return b;
9348 }
9349
9350 /** Destroy the buffer.
9351  * @param b a buffer created with surf_parse__create_buffer()
9352  * 
9353  */
9354     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9355 {
9356     
9357         if ( ! b )
9358                 return;
9359
9360         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9361                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9362
9363         if ( b->yy_is_our_buffer )
9364                 surf_parse_free((void *) b->yy_ch_buf  );
9365
9366         surf_parse_free((void *) b  );
9367 }
9368
9369 #ifndef __cplusplus
9370 extern int isatty (int );
9371 #endif /* __cplusplus */
9372     
9373 /* Initializes or reinitializes a buffer.
9374  * This function is sometimes called more than once on the same buffer,
9375  * such as during a surf_parse_restart() or at EOF.
9376  */
9377     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9378
9379 {
9380         int oerrno = errno;
9381     
9382         surf_parse__flush_buffer(b );
9383
9384         b->yy_input_file = file;
9385         b->yy_fill_buffer = 1;
9386
9387     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9388      * called from surf_parse_restart() or through yy_get_next_buffer.
9389      * In that case, we don't want to reset the lineno or column.
9390      */
9391     if (b != YY_CURRENT_BUFFER){
9392         b->yy_bs_lineno = 1;
9393         b->yy_bs_column = 0;
9394     }
9395
9396         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9397     
9398         errno = oerrno;
9399 }
9400
9401 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9402  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9403  * 
9404  */
9405     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9406 {
9407         if ( ! b )
9408                 return;
9409
9410         b->yy_n_chars = 0;
9411
9412         /* We always need two end-of-buffer characters.  The first causes
9413          * a transition to the end-of-buffer state.  The second causes
9414          * a jam in that state.
9415          */
9416         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9417         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9418
9419         b->yy_buf_pos = &b->yy_ch_buf[0];
9420
9421         b->yy_at_bol = 1;
9422         b->yy_buffer_status = YY_BUFFER_NEW;
9423
9424         if ( b == YY_CURRENT_BUFFER )
9425                 surf_parse__load_buffer_state( );
9426 }
9427
9428 /** Pushes the new state onto the stack. The new state becomes
9429  *  the current state. This function will allocate the stack
9430  *  if necessary.
9431  *  @param new_buffer The new state.
9432  *  
9433  */
9434 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9435 {
9436         if (new_buffer == NULL)
9437                 return;
9438
9439         surf_parse_ensure_buffer_stack();
9440
9441         /* This block is copied from surf_parse__switch_to_buffer. */
9442         if ( YY_CURRENT_BUFFER )
9443                 {
9444                 /* Flush out information for old buffer. */
9445                 *(yy_c_buf_p) = (yy_hold_char);
9446                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9447                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9448                 }
9449
9450         /* Only push if top exists. Otherwise, replace top. */
9451         if (YY_CURRENT_BUFFER)
9452                 (yy_buffer_stack_top)++;
9453         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9454
9455         /* copied from surf_parse__switch_to_buffer. */
9456         surf_parse__load_buffer_state( );
9457         (yy_did_buffer_switch_on_eof) = 1;
9458 }
9459
9460 /** Removes and deletes the top of the stack, if present.
9461  *  The next element becomes the new top.
9462  *  
9463  */
9464 void surf_parse_pop_buffer_state (void)
9465 {
9466         if (!YY_CURRENT_BUFFER)
9467                 return;
9468
9469         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9470         YY_CURRENT_BUFFER_LVALUE = NULL;
9471         if ((yy_buffer_stack_top) > 0)
9472                 --(yy_buffer_stack_top);
9473
9474         if (YY_CURRENT_BUFFER) {
9475                 surf_parse__load_buffer_state( );
9476                 (yy_did_buffer_switch_on_eof) = 1;
9477         }
9478 }
9479
9480 /* Allocates the stack if it does not exist.
9481  *  Guarantees space for at least one push.
9482  */
9483 static void surf_parse_ensure_buffer_stack (void)
9484 {
9485         int num_to_alloc;
9486     
9487         if (!(yy_buffer_stack)) {
9488
9489                 /* First allocation is just for 2 elements, since we don't know if this
9490                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9491                  * immediate realloc on the next call.
9492          */
9493                 num_to_alloc = 1;
9494                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9495                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9496                                                                 );
9497                 if ( ! (yy_buffer_stack) )
9498                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9499                                                                   
9500                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9501                                 
9502                 (yy_buffer_stack_max) = num_to_alloc;
9503                 (yy_buffer_stack_top) = 0;
9504                 return;
9505         }
9506
9507         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9508
9509                 /* Increase the buffer to prepare for a possible push. */
9510                 int grow_size = 8 /* arbitrary grow size */;
9511
9512                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9513                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9514                                                                 ((yy_buffer_stack),
9515                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9516                                                                 );
9517                 if ( ! (yy_buffer_stack) )
9518                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9519
9520                 /* zero only the new slots.*/
9521                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9522                 (yy_buffer_stack_max) = num_to_alloc;
9523         }
9524 }
9525
9526 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9527  * @param base the character buffer
9528  * @param size the size in bytes of the character buffer
9529  * 
9530  * @return the newly allocated buffer state object. 
9531  */
9532 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9533 {
9534         YY_BUFFER_STATE b;
9535     
9536         if ( size < 2 ||
9537              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9538              base[size-1] != YY_END_OF_BUFFER_CHAR )
9539                 /* They forgot to leave room for the EOB's. */
9540                 return 0;
9541
9542         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9543         if ( ! b )
9544                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9545
9546         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
9547         b->yy_buf_pos = b->yy_ch_buf = base;
9548         b->yy_is_our_buffer = 0;
9549         b->yy_input_file = 0;
9550         b->yy_n_chars = b->yy_buf_size;
9551         b->yy_is_interactive = 0;
9552         b->yy_at_bol = 1;
9553         b->yy_fill_buffer = 0;
9554         b->yy_buffer_status = YY_BUFFER_NEW;
9555
9556         surf_parse__switch_to_buffer(b  );
9557
9558         return b;
9559 }
9560
9561 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
9562  * scan from a @e copy of @a str.
9563  * @param yystr a NUL-terminated string to scan
9564  * 
9565  * @return the newly allocated buffer state object.
9566  * @note If you want to scan bytes that may contain NUL values, then use
9567  *       surf_parse__scan_bytes() instead.
9568  */
9569 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
9570 {
9571     
9572         return surf_parse__scan_bytes(yystr,strlen(yystr) );
9573 }
9574
9575 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
9576  * scan from a @e copy of @a bytes.
9577  * @param yybytes the byte buffer to scan
9578  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
9579  * 
9580  * @return the newly allocated buffer state object.
9581  */
9582 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
9583 {
9584         YY_BUFFER_STATE b;
9585         char *buf;
9586         yy_size_t n;
9587         int i;
9588     
9589         /* Get memory for full buffer, including space for trailing EOB's. */
9590         n = _yybytes_len + 2;
9591         buf = (char *) surf_parse_alloc(n  );
9592         if ( ! buf )
9593                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
9594
9595         for ( i = 0; i < _yybytes_len; ++i )
9596                 buf[i] = yybytes[i];
9597
9598         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
9599
9600         b = surf_parse__scan_buffer(buf,n );
9601         if ( ! b )
9602                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
9603
9604         /* It's okay to grow etc. this buffer, and we should throw it
9605          * away when we're done.
9606          */
9607         b->yy_is_our_buffer = 1;
9608
9609         return b;
9610 }
9611
9612     static void yy_push_state (int  new_state )
9613 {
9614         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
9615                 {
9616                 yy_size_t new_size;
9617
9618                 (yy_start_stack_depth) += YY_START_STACK_INCR;
9619                 new_size = (yy_start_stack_depth) * sizeof( int );
9620
9621                 if ( ! (yy_start_stack) )
9622                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
9623
9624                 else
9625                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
9626
9627                 if ( ! (yy_start_stack) )
9628                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
9629                 }
9630
9631         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
9632
9633         BEGIN(new_state);
9634 }
9635
9636     static void yy_pop_state  (void)
9637 {
9638         if ( --(yy_start_stack_ptr) < 0 )
9639                 YY_FATAL_ERROR( "start-condition stack underflow" );
9640
9641         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
9642 }
9643
9644 #ifndef YY_EXIT_FAILURE
9645 #define YY_EXIT_FAILURE 2
9646 #endif
9647
9648 static void yy_fatal_error (yyconst char* msg )
9649 {
9650         (void) fprintf( stderr, "%s\n", msg );
9651         exit( YY_EXIT_FAILURE );
9652 }
9653
9654 /* Redefine yyless() so it works in section 3 code. */
9655
9656 #undef yyless
9657 #define yyless(n) \
9658         do \
9659                 { \
9660                 /* Undo effects of setting up surf_parse_text. */ \
9661         int yyless_macro_arg = (n); \
9662         YY_LESS_LINENO(yyless_macro_arg);\
9663                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
9664                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
9665                 (yy_hold_char) = *(yy_c_buf_p); \
9666                 *(yy_c_buf_p) = '\0'; \
9667                 surf_parse_leng = yyless_macro_arg; \
9668                 } \
9669         while ( 0 )
9670
9671 /* Accessor  methods (get/set functions) to struct members. */
9672
9673 /** Get the current line number.
9674  * 
9675  */
9676 int surf_parse_get_lineno  (void)
9677 {
9678         
9679     return surf_parse_lineno;
9680 }
9681
9682 /** Get the input stream.
9683  * 
9684  */
9685 FILE *surf_parse_get_in  (void)
9686 {
9687         return surf_parse_in;
9688 }
9689
9690 /** Get the output stream.
9691  * 
9692  */
9693 FILE *surf_parse_get_out  (void)
9694 {
9695         return surf_parse_out;
9696 }
9697
9698 /** Get the length of the current token.
9699  * 
9700  */
9701 int surf_parse_get_leng  (void)
9702 {
9703         return surf_parse_leng;
9704 }
9705
9706 /** Get the current token.
9707  * 
9708  */
9709
9710 char *surf_parse_get_text  (void)
9711 {
9712         return surf_parse_text;
9713 }
9714
9715 /** Set the current line number.
9716  * @param line_number
9717  * 
9718  */
9719 void surf_parse_set_lineno (int  line_number )
9720 {
9721     
9722     surf_parse_lineno = line_number;
9723 }
9724
9725 /** Set the input stream. This does not discard the current
9726  * input buffer.
9727  * @param in_str A readable stream.
9728  * 
9729  * @see surf_parse__switch_to_buffer
9730  */
9731 void surf_parse_set_in (FILE *  in_str )
9732 {
9733         surf_parse_in = in_str ;
9734 }
9735
9736 void surf_parse_set_out (FILE *  out_str )
9737 {
9738         surf_parse_out = out_str ;
9739 }
9740
9741 int surf_parse_get_debug  (void)
9742 {
9743         return surf_parse__flex_debug;
9744 }
9745
9746 void surf_parse_set_debug (int  bdebug )
9747 {
9748         surf_parse__flex_debug = bdebug ;
9749 }
9750
9751 static int yy_init_globals (void)
9752 {
9753         /* Initialization is the same as for the non-reentrant scanner.
9754      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
9755      */
9756
9757     /* We do not touch surf_parse_lineno unless the option is enabled. */
9758     surf_parse_lineno =  1;
9759     
9760     (yy_buffer_stack) = 0;
9761     (yy_buffer_stack_top) = 0;
9762     (yy_buffer_stack_max) = 0;
9763     (yy_c_buf_p) = (char *) 0;
9764     (yy_init) = 0;
9765     (yy_start) = 0;
9766
9767     (yy_start_stack_ptr) = 0;
9768     (yy_start_stack_depth) = 0;
9769     (yy_start_stack) =  NULL;
9770
9771 /* Defined in main.c */
9772 #ifdef YY_STDINIT
9773     surf_parse_in = stdin;
9774     surf_parse_out = stdout;
9775 #else
9776     surf_parse_in = (FILE *) 0;
9777     surf_parse_out = (FILE *) 0;
9778 #endif
9779
9780     /* For future reference: Set errno on error, since we are called by
9781      * surf_parse_lex_init()
9782      */
9783     return 0;
9784 }
9785
9786 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
9787 int surf_parse_lex_destroy  (void)
9788 {
9789     
9790     /* Pop the buffer stack, destroying each element. */
9791         while(YY_CURRENT_BUFFER){
9792                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
9793                 YY_CURRENT_BUFFER_LVALUE = NULL;
9794                 surf_parse_pop_buffer_state();
9795         }
9796
9797         /* Destroy the stack itself. */
9798         surf_parse_free((yy_buffer_stack) );
9799         (yy_buffer_stack) = NULL;
9800
9801     /* Destroy the start condition stack. */
9802         surf_parse_free((yy_start_stack)  );
9803         (yy_start_stack) = NULL;
9804
9805     /* Reset the globals. This is important in a non-reentrant scanner so the next time
9806      * surf_parse_lex() is called, initialization will occur. */
9807     yy_init_globals( );
9808
9809     return 0;
9810 }
9811
9812 /*
9813  * Internal utility routines.
9814  */
9815
9816 #ifndef yytext_ptr
9817 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
9818 {
9819         register int i;
9820         for ( i = 0; i < n; ++i )
9821                 s1[i] = s2[i];
9822 }
9823 #endif
9824
9825 #ifdef YY_NEED_STRLEN
9826 static int yy_flex_strlen (yyconst char * s )
9827 {
9828         register int n;
9829         for ( n = 0; s[n]; ++n )
9830                 ;
9831
9832         return n;
9833 }
9834 #endif
9835
9836 void *surf_parse_alloc (yy_size_t  size )
9837 {
9838         return (void *) malloc( size );
9839 }
9840
9841 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
9842 {
9843         /* The cast to (char *) in the following accommodates both
9844          * implementations that use char* generic pointers, and those
9845          * that use void* generic pointers.  It works with the latter
9846          * because both ANSI C and C++ allow castless assignment from
9847          * any pointer type to void*, and deal with argument conversions
9848          * as though doing an assignment.
9849          */
9850         return (void *) realloc( (char *) ptr, size );
9851 }
9852
9853 void surf_parse_free (void * ptr )
9854 {
9855         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
9856 }
9857
9858 #define YYTABLES_NAME "yytables"
9859
9860 /* Element context stack lookup. */
9861 int surfxml_element_context(int i)
9862 {
9863   return (0<i && i<yy_start_stack_depth
9864           ? yy_start_stack[yy_start_stack_ptr - i]
9865           : 0);
9866 }
9867
9868 #ifdef FLEX_DEBUG
9869 void print_yy_stack(char* fmt, ...)
9870 {
9871   int i = 0; va_list ap; va_start(ap, fmt);
9872   vfprintf(stderr, fmt, ap);
9873   if (surfxml_statenames) {
9874       for (i=1; i<yy_start_stack_ptr; i++) {
9875           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
9876       }
9877       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
9878   }
9879   va_end(ap);
9880 }
9881
9882 void print_surfxml_bufferstack()
9883 {
9884     int i;
9885     fputs("Buffer: ", stderr);
9886     for (i = 0; i < blimit; i++) {
9887        if ( surfxml_bufferstack[i] == '\377' ) break;
9888          putc(surfxml_bufferstack[i], stderr);
9889     }
9890     putc('\n', stderr);
9891 }
9892
9893 static void debug_enter(int state, const char* statename) {
9894   yy_push_state(state);
9895   if (surf_parse__flex_debug) {
9896        print_yy_stack("--ENTER(%s) : ",statename);
9897        print_surfxml_bufferstack();
9898   }
9899 }
9900
9901 static void debug_leave(void) {
9902     if (surf_parse__flex_debug) {
9903         print_yy_stack("--LEAVE : ");
9904         print_surfxml_bufferstack();
9905     }
9906   yy_pop_state();
9907 }
9908
9909 static void debug_set(int state, const char* statename) {
9910   BEGIN(state);
9911   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
9912 }
9913 #endif
9914
9915 static void cleanup(void)
9916 {
9917     if (surfxml_statenames) {
9918         free(surfxml_statenames);
9919         surfxml_statenames = NULL;
9920     }
9921     free(surfxml_bufferstack);
9922     surfxml_bufferstack = NULL;
9923
9924     free(indexstack);
9925     indexstack = NULL;
9926 }
9927
9928 static int fail(const char* fmt, ...)
9929 {
9930     int chars_left, used;
9931     va_list ap; va_start(ap, fmt);
9932 #ifdef FLEXML_yylineno
9933     used = sprintf(flexml_err_msg,
9934                    "Invalid XML (XML input line %d, state %d): ",
9935                    surf_parse_lineno, YY_START);
9936 #else
9937     used = sprintf(flexml_err_msg,
9938                    "Invalid XML (state %d): ",
9939                    YY_START);
9940 #endif
9941     chars_left = flexml_max_err_msg_size - used - 1;
9942     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
9943     va_end(ap);
9944
9945 #ifndef FLEXML_quiet_parser
9946     /* print directly to sdterr */
9947     fprintf(stderr, "%s\n", flexml_err_msg);
9948     flexml_err_msg[0] = '\0';
9949 #endif
9950
9951     cleanup();
9952
9953     return 1;
9954 }
9955