Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
ff4fcd6334611f66ab5bdabd897d4f37a1f3f373
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "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 34
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 #ifdef WIN32
44 #include <io.h>
45 #endif
46
47 /* end standard C headers. */
48
49 /* flex integer type definitions */
50
51 #ifndef FLEXINT_H
52 #define FLEXINT_H
53
54 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
55
56 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
57
58 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
59  * if you want the limit (max/min) macros for int types. 
60  */
61 #ifndef __STDC_LIMIT_MACROS
62 #define __STDC_LIMIT_MACROS 1
63 #endif
64
65 #include <inttypes.h>
66 typedef int8_t flex_int8_t;
67 typedef uint8_t flex_uint8_t;
68 typedef int16_t flex_int16_t;
69 typedef uint16_t flex_uint16_t;
70 typedef int32_t flex_int32_t;
71 typedef uint32_t flex_uint32_t;
72 #else
73 typedef signed char flex_int8_t;
74 typedef short int flex_int16_t;
75 typedef int flex_int32_t;
76 typedef unsigned char flex_uint8_t; 
77 typedef unsigned short int flex_uint16_t;
78 typedef unsigned int flex_uint32_t;
79 #endif /* ! C99 */
80
81 /* Limits of integral types. */
82 #ifndef INT8_MIN
83 #define INT8_MIN               (-128)
84 #endif
85 #ifndef INT16_MIN
86 #define INT16_MIN              (-32767-1)
87 #endif
88 #ifndef INT32_MIN
89 #define INT32_MIN              (-2147483647-1)
90 #endif
91 #ifndef INT8_MAX
92 #define INT8_MAX               (127)
93 #endif
94 #ifndef INT16_MAX
95 #define INT16_MAX              (32767)
96 #endif
97 #ifndef INT32_MAX
98 #define INT32_MAX              (2147483647)
99 #endif
100 #ifndef UINT8_MAX
101 #define UINT8_MAX              (255U)
102 #endif
103 #ifndef UINT16_MAX
104 #define UINT16_MAX             (65535U)
105 #endif
106 #ifndef UINT32_MAX
107 #define UINT32_MAX             (4294967295U)
108 #endif
109
110 #endif /* ! FLEXINT_H */
111
112 #ifdef __cplusplus
113
114 /* The "const" storage-class-modifier is valid. */
115 #define YY_USE_CONST
116
117 #else   /* ! __cplusplus */
118
119 /* C99 requires __STDC__ to be defined as 1. */
120 #if defined (__STDC__)
121
122 #define YY_USE_CONST
123
124 #endif  /* defined (__STDC__) */
125 #endif  /* ! __cplusplus */
126
127 #ifdef YY_USE_CONST
128 #define yyconst const
129 #else
130 #define yyconst
131 #endif
132
133 /* Returned upon end-of-file. */
134 #define YY_NULL 0
135
136 /* Promotes a possibly negative, possibly signed char to an unsigned
137  * integer for use as an array index.  If the signed char is negative,
138  * we want to instead treat it as an 8-bit unsigned char, hence the
139  * double cast.
140  */
141 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
142
143 /* Enter a start condition.  This macro really ought to take a parameter,
144  * but we do it the disgusting crufty way forced on us by the ()-less
145  * definition of BEGIN.
146  */
147 #define BEGIN (yy_start) = 1 + 2 *
148
149 /* Translate the current start state into a value that can be later handed
150  * to BEGIN to return to the state.  The YYSTATE alias is for lex
151  * compatibility.
152  */
153 #define YY_START (((yy_start) - 1) / 2)
154 #define YYSTATE YY_START
155
156 /* Action number for EOF rule of a given start state. */
157 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
158
159 /* Special action meaning "start processing a new file". */
160 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
161
162 #define YY_END_OF_BUFFER_CHAR 0
163
164 /* Size of default input buffer. */
165 #ifndef YY_BUF_SIZE
166 #define YY_BUF_SIZE 16384
167 #endif
168
169 /* The state buf must be large enough to hold one state per character in the main buffer.
170  */
171 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
172
173 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
174 #define YY_TYPEDEF_YY_BUFFER_STATE
175 typedef struct yy_buffer_state *YY_BUFFER_STATE;
176 #endif
177
178 extern int surf_parse_leng;
179
180 extern FILE *surf_parse_in, *surf_parse_out;
181
182 #define EOB_ACT_CONTINUE_SCAN 0
183 #define EOB_ACT_END_OF_FILE 1
184 #define EOB_ACT_LAST_MATCH 2
185
186     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
187      *       access to the local variable yy_act. Since yyless() is a macro, it would break
188      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
189      *       One obvious solution it to make yy_act a global. I tried that, and saw
190      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
191      *       normally declared as a register variable-- so it is not worth it.
192      */
193     #define  YY_LESS_LINENO(n) \
194             do { \
195                 int yyl;\
196                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
197                     if ( surf_parse_text[yyl] == '\n' )\
198                         --surf_parse_lineno;\
199             }while(0)
200     
201 /* Return all but the first "n" matched characters back to the input stream. */
202 #define yyless(n) \
203         do \
204                 { \
205                 /* Undo effects of setting up surf_parse_text. */ \
206         int yyless_macro_arg = (n); \
207         YY_LESS_LINENO(yyless_macro_arg);\
208                 *yy_cp = (yy_hold_char); \
209                 YY_RESTORE_YY_MORE_OFFSET \
210                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
211                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
212                 } \
213         while ( 0 )
214
215 #define unput(c) yyunput( c, (yytext_ptr)  )
216
217 /* The following is because we cannot portably get our hands on size_t
218  * (without autoconf's help, which isn't available because we want
219  * flex-generated scanners to compile on their own).
220  * Given that the standard has decreed that size_t exists since 1989,
221  * I guess we can afford to depend on it. Manoj.
222  */
223
224 #ifndef YY_TYPEDEF_YY_SIZE_T
225 #define YY_TYPEDEF_YY_SIZE_T
226 typedef size_t yy_size_t;
227 #endif
228
229 #ifndef YY_STRUCT_YY_BUFFER_STATE
230 #define YY_STRUCT_YY_BUFFER_STATE
231 struct yy_buffer_state
232         {
233         FILE *yy_input_file;
234
235         char *yy_ch_buf;                /* input buffer */
236         char *yy_buf_pos;               /* current position in input buffer */
237
238         /* Size of input buffer in bytes, not including room for EOB
239          * characters.
240          */
241         yy_size_t yy_buf_size;
242
243         /* Number of characters read into yy_ch_buf, not including EOB
244          * characters.
245          */
246         int yy_n_chars;
247
248         /* Whether we "own" the buffer - i.e., we know we created it,
249          * and can realloc() it to grow it, and should free() it to
250          * delete it.
251          */
252         int yy_is_our_buffer;
253
254         /* Whether this is an "interactive" input source; if so, and
255          * if we're using stdio for input, then we want to use getc()
256          * instead of fread(), to make sure we stop fetching input after
257          * each newline.
258          */
259         int yy_is_interactive;
260
261         /* Whether we're considered to be at the beginning of a line.
262          * If so, '^' rules will be active on the next match, otherwise
263          * not.
264          */
265         int yy_at_bol;
266
267     int yy_bs_lineno; /**< The line count. */
268     int yy_bs_column; /**< The column count. */
269     
270         /* Whether to try to fill the input buffer when we reach the
271          * end of it.
272          */
273         int yy_fill_buffer;
274
275         int yy_buffer_status;
276
277 #define YY_BUFFER_NEW 0
278 #define YY_BUFFER_NORMAL 1
279         /* When an EOF's been seen but there's still some text to process
280          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
281          * shouldn't try reading from the input source any more.  We might
282          * still have a bunch of tokens to match, though, because of
283          * possible backing-up.
284          *
285          * When we actually see the EOF, we change the status to "new"
286          * (via surf_parse_restart()), so that the user can continue scanning by
287          * just pointing surf_parse_in at a new input file.
288          */
289 #define YY_BUFFER_EOF_PENDING 2
290
291         };
292 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
293
294 /* Stack of input buffers. */
295 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
296 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
297 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
298
299 /* We provide macros for accessing buffer states in case in the
300  * future we want to put the buffer states in a more general
301  * "scanner state".
302  *
303  * Returns the top of the stack, or NULL.
304  */
305 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
306                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
307                           : NULL)
308
309 /* Same as previous macro, but useful when we know that the buffer stack is not
310  * NULL or when we need an lvalue. For internal use only.
311  */
312 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
313
314 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
315 static char yy_hold_char;
316 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
317 int surf_parse_leng;
318
319 /* Points to current character in buffer. */
320 static char *yy_c_buf_p = (char *) 0;
321 static int yy_init = 0;         /* whether we need to initialize */
322 static int yy_start = 0;        /* start state number */
323
324 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
325  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
326  */
327 static int yy_did_buffer_switch_on_eof;
328
329 void surf_parse_restart (FILE *input_file  );
330 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
331 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
332 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
333 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
334 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
335 void surf_parse_pop_buffer_state (void );
336
337 static void surf_parse_ensure_buffer_stack (void );
338 static void surf_parse__load_buffer_state (void );
339 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
340
341 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
342
343 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
344 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
345 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
346
347 void *surf_parse_alloc (yy_size_t  );
348 void *surf_parse_realloc (void *,yy_size_t  );
349 void surf_parse_free (void *  );
350
351 #define yy_new_buffer surf_parse__create_buffer
352
353 #define yy_set_interactive(is_interactive) \
354         { \
355         if ( ! YY_CURRENT_BUFFER ){ \
356         surf_parse_ensure_buffer_stack (); \
357                 YY_CURRENT_BUFFER_LVALUE =    \
358             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
359         } \
360         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
361         }
362
363 #define yy_set_bol(at_bol) \
364         { \
365         if ( ! YY_CURRENT_BUFFER ){\
366         surf_parse_ensure_buffer_stack (); \
367                 YY_CURRENT_BUFFER_LVALUE =    \
368             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
369         } \
370         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
371         }
372
373 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
374
375 /* Begin user sect3 */
376
377 #ifndef WIN32
378 #define surf_parse_wrap(n) 1
379 #else
380 #define surf_parse_wrap() 1
381 #endif
382 #define YY_SKIP_YYWRAP
383
384 typedef unsigned char YY_CHAR;
385
386 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
387
388 typedef int yy_state_type;
389
390 extern int surf_parse_lineno;
391
392 int surf_parse_lineno = 1;
393
394 extern char *surf_parse_text;
395 #define yytext_ptr surf_parse_text
396
397 static yy_state_type yy_get_previous_state (void );
398 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
399 static int yy_get_next_buffer (void );
400 static void yy_fatal_error (yyconst char msg[]  );
401
402 /* Done after the current pattern has been matched and before the
403  * corresponding action - sets up surf_parse_text.
404  */
405 #define YY_DO_BEFORE_ACTION \
406         (yytext_ptr) = yy_bp; \
407         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
408         (yy_hold_char) = *yy_cp; \
409         *yy_cp = '\0'; \
410         (yy_c_buf_p) = yy_cp;
411
412 #define YY_NUM_RULES 351
413 #define YY_END_OF_BUFFER 352
414 /* This struct is not used in this scanner,
415    but its presence is necessary. */
416 struct yy_trans_info
417         {
418         flex_int32_t yy_verify;
419         flex_int32_t yy_nxt;
420         };
421 static yyconst flex_int16_t yy_accept[2023] =
422     {   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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433
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         0,    0,  352,  350,   15,   10,   10,   15,   15,  330,
439        10,  330,    5,    6,    5,    8,    9,    8,  346,  338,
440       339,  347,  344,  347,  345,  349,  338,  339,  349,  350,
441        26,   10,   26,   26,   26,   24,   26,   26,   30,   10,
442        30,   30,  350,  350,   30,   37,   10,   37,   37,   37,
443        35,   37,   41,   10,   41,   52,   10,   52,   52,   52,
444
445        50,   52,   52,   52,  347,  346,   74,   10,   74,   74,
446        74,   72,   74,   74,   74,   74,   78,   10,   78,  350,
447        78,   97,   10,   97,   97,   97,   95,   97,   97,   97,
448       101,   10,  101,  114,   10,  114,  114,  114,  112,  114,
449       114,  114,  114,  118,   10,  118,  125,   10,  125,  125,
450       125,  123,  125,  350,  350,  129,   10,  129,  156,   10,
451       156,  156,  156,  154,  156,  156,  156,  156,  156,  160,
452        10,  160,  160,  169,   10,  169,  169,  169,  167,  169,
453       169,  173,   10,  173,  196,   10,  196,  196,  196,  194,
454       196,  196,  196,  196,  196,  196,  200,   10,  200,  207,
455
456        10,  207,  207,  207,  205,  207,  211,   10,  211,  236,
457        10,  236,  236,  236,  234,  236,  236,  236,  236,  240,
458        10,  240,  240,  259,   10,  259,  259,  259,  257,  259,
459       259,  259,  350,  263,   10,  263,  263,  286,   10,  286,
460       286,  286,  284,  286,  286,  286,  286,  290,   10,  290,
461       290,  297,   10,  297,  297,  297,  295,  297,  301,   10,
462       301,  314,   10,  314,  314,  314,  312,  314,  314,  314,
463       314,  318,   10,  318,  350,  318,  325,   10,  325,  325,
464       325,  323,  325,  329,   10,  329,   10,    0,    2,    2,
465         0,    4,    7,  341,  340,    0,    0,    0,    0,    0,
466
467         0,    0,   25,   27,   27,   27,    0,    0,    0,    0,
468         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
469         0,    0,    0,    0,    0,    0,    0,    0,    0,   36,
470        38,   38,    0,   51,   53,   53,   53,   53,    0,    0,
471         0,   73,   75,   75,   75,   75,   75,   75,   75,    0,
472         0,   96,   98,   98,   98,   98,    0,  113,  115,  115,
473       115,  115,  115,    0,  124,  126,  126,    0,  155,  157,
474       157,  157,  157,  157,  157,  157,    0,  168,  170,  170,
475       170,    0,  195,  197,  197,  197,  197,  197,  197,  197,
476       197,  197,    0,  206,  208,  208,    0,  235,  237,  237,
477
478       237,  237,  237,  237,    0,  258,  260,  260,  260,  260,
479       260,    0,    0,  285,  287,  287,  287,  287,  287,    0,
480       296,  298,  298,    0,  313,  315,  315,  315,  315,  315,
481         0,    0,  324,  326,  326,    0,    0,    0,    0,    0,
482         3,    0,    0,    0,    0,    0,    0,    0,  348,    0,
483        27,   27,    0,    0,    0,    0,    0,    0,    0,    0,
484         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
485         0,    0,    0,    0,    0,    0,    0,    0,    0,   38,
486         0,    0,   53,    0,    0,   53,    0,    0,    0,  343,
487        75,    0,    0,   75,   75,   75,   75,    0,    0,    0,
488
489        98,   98,   98,    0,    0,    0,    0,  115,  115,  115,
490         0,    0,  126,    0,    0,  157,    0,    0,  157,  157,
491       157,  157,    0,    0,    0,    0,  170,    0,    0,  197,
492         0,    0,    0,    0,  197,  197,  197,  197,  197,    0,
493         0,    0,    0,    0,    0,  237,    0,    0,  237,  237,
494       237,    0,    0,  260,  260,  260,  260,    0,    0,    0,
495       287,  287,  287,  287,    0,    0,    0,    0,    0,    0,
496       315,  315,  315,  315,    0,    0,    0,  326,    0,    0,
497         0,   14,    1,    0,    0,  336,    0,    0,    0,  333,
498       332,    0,    0,   27,   27,    0,    0,   29,    0,    0,
499
500         0,    0,    0,    0,    0,    0,    0,    0,    0,  103,
501         0,    0,    0,    0,    0,    0,    0,  102,    0,    0,
502         0,    0,    0,    0,   38,    0,    0,   40,    0,   53,
503         0,   45,   44,   53,    0,    0,    0,   55,    0,   75,
504         0,   59,   58,    0,    0,   75,    0,    0,   75,    0,
505         0,   77,    0,    0,   98,   98,   98,    0,    0,  100,
506         0,    0,  105,  104,  115,  115,  115,    0,    0,  117,
507         0,  126,    0,    0,  128,    0,  157,    0,  133,  132,
508       157,  157,  157,  157,    0,    0,  159,    0,    0,  164,
509       163,  170,    0,    0,  172,    0,  197,  197,    0,  187,
510
511       186,    0,  177,  176,    0,    0,  197,  197,  197,  197,
512         0,    0,  199,    0,    0,  204,  203,    0,    0,  210,
513         0,  237,    0,  215,  214,  237,  237,  237,    0,    0,
514       239,    0,  260,    0,    0,    0,    0,  260,    0,    0,
515         0,  262,    0,  287,    0,    0,  287,    0,    0,    0,
516         0,  289,    0,    0,  294,  293,    0,    0,  300,    0,
517       315,  315,  315,  315,    0,    0,  317,    0,    0,  326,
518         0,    0,  328,    0,    0,    0,  337,  331,    0,    0,
519         0,   27,   27,    0,    0,    0,    0,  131,    0,  213,
520         0,    0,  161,    0,    0,  103,    0,    0,    0,  130,
521
522       212,    0,    0,  102,    0,    0,    0,    0,    0,    0,
523         0,    0,    0,    0,    0,   53,    0,    0,   75,    0,
524        63,   62,    0,    0,    0,   61,   60,   75,    0,  162,
525        98,    0,    0,   98,    0,  115,  115,  115,    0,  126,
526         0,  157,  157,  157,  157,  157,    0,  170,    0,  197,
527       197,    0,  189,  188,  197,  197,  197,  197,    0,    0,
528       237,  237,  237,  237,    0,  260,    0,  246,  245,    0,
529       244,  243,  260,  212,    0,  287,    0,  269,  268,  287,
530         0,  267,  266,    0,    0,  315,    0,    0,  315,  315,
531         0,    0,  326,    0,    0,    0,    0,   12,    0,  334,
532
533       335,    0,   27,   27,    0,    0,    0,    0,  131,    0,
534       213,    0,    0,    0,  161,    0,  265,   43,    0,    0,
535       130,  212,    0,  265,   42,    0,  264,    0,  264,   42,
536         0,   34,   33,    0,    0,   47,   46,   53,    0,    0,
537        75,    0,   65,   64,   75,    0,  162,   98,    0,    0,
538         0,    0,    0,    0,  115,  115,  115,    0,  116,  126,
539         0,  157,  157,  157,    0,    0,    0,    0,  157,    0,
540         0,    0,    0,    0,    0,  197,    0,    0,  197,  197,
541       197,    0,    0,  237,  237,  237,    0,    0,  237,    0,
542       260,  260,    0,    0,  287,  287,    0,    0,  315,    0,
543
544       305,  304,  315,  315,    0,    0,    0,    0,    0,    0,
545         0,    0,   11,    0,   27,   27,   27,    0,    0,    0,
546         0,    0,    0,    0,    0,   57,  265,    0,  202,   43,
547         0,    0,    0,   56,  201,   42,    0,  264,    0,    0,
548         0,    0,   53,    0,    0,   75,   75,    0,   98,    0,
549         0,    0,    0,    0,    0,    0,    0,    0,   92,   91,
550         0,    0,    0,  115,    0,    0,    0,    0,    0,  157,
551       157,  157,    0,  135,  134,    0,    0,    0,  157,    0,
552       158,    0,  166,  165,    0,  171,    0,  191,  190,    0,
553         0,    0,  185,  184,    0,    0,  197,    0,    0,    0,
554
555         0,  237,  237,  237,    0,    0,    0,  237,    0,  238,
556         0,    0,  260,    0,    0,    0,    0,  287,    0,    0,
557       315,  315,  315,    0,    0,    0,  322,  321,    0,    0,
558         0,    0,    0,    0,    0,   27,   27,    0,    0,  175,
559       120,   32,    0,    0,  303,   57,    0,  202,    0,  174,
560       119,   56,  201,  302,    0,   31,    0,    0,   53,    0,
561         0,   54,   75,   75,    0,    0,    0,    0,    0,    0,
562         0,    0,    0,    0,    0,    0,    0,    0,    0,  107,
563       106,    0,    0,    0,  109,  108,    0,  122,  121,    0,
564       157,  157,  157,    0,    0,  157,    0,  193,  192,    0,
565
566       179,  178,    0,    0,    0,  181,  180,    0,    0,  237,
567         0,    0,  237,  237,    0,    0,  237,    0,    0,    0,
568       260,    0,    0,    0,    0,    0,  287,    0,  288,    0,
569       315,  315,  315,    0,    0,    0,    0,    0,    0,   17,
570         0,   19,   18,   27,   27,    0,  319,  175,  120,   32,
571       291,   16,  303,    0,    0,  174,  119,  302,    0,   31,
572         0,    0,   53,  342,   75,   75,    0,   76,    0,   94,
573        93,    0,    0,    0,    0,    0,    0,    0,    0,    0,
574         0,    0,    0,  111,  110,    0,  157,  157,  157,    0,
575         0,    0,    0,  157,    0,  183,  182,    0,    0,  209,
576
577       237,    0,  221,  220,  237,  237,    0,    0,    0,    0,
578       237,    0,    0,    0,    0,  260,  292,    0,    0,    0,
579         0,    0,  287,    0,    0,    0,  315,  315,    0,  320,
580         0,    0,    0,    0,   17,   27,   27,    0,  319,  291,
581        16,    0,    0,    0,    0,    0,   39,   53,    0,    0,
582        75,    0,    0,    0,    0,    0,    0,    0,    0,    0,
583         0,    0,    0,  127,  157,  157,  157,    0,  141,    0,
584       140,  157,    0,  198,    0,    0,  237,  237,  237,    0,
585       225,    0,  224,  237,    0,    0,    0,    0,    0,    0,
586         0,    0,  292,    0,    0,    0,    0,    0,    0,    0,
587
588       287,    0,    0,  307,  306,    0,    0,  315,    0,  316,
589       320,    0,    0,    0,    0,    0,    0,   27,    0,   28,
590         0,    0,    0,    0,   53,    0,    0,    0,   75,    0,
591         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
592       157,  157,  157,  143,  142,    0,    0,    0,  217,  216,
593       237,  237,  237,  227,  226,    0,    0,    0,    0,    0,
594         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
595         0,    0,    0,  287,  287,    0,  299,    0,  311,  310,
596         0,    0,    0,  327,    0,    0,    0,    0,   21,   20,
597         0,    0,  242,    0,  241,    0,    0,    0,    0,    0,
598
599         0,    0,   75,    0,    0,    0,    0,   84,    0,    0,
600         0,    0,   83,    0,  157,  157,  157,    0,  145,  144,
601       237,  237,  237,    0,  229,  228,    0,    0,    0,    0,
602         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
603         0,    0,    0,  287,  287,    0,  309,  308,    0,    0,
604         0,    0,   23,   22,  242,    0,  241,    0,    0,   49,
605        48,    0,    0,    0,    0,   75,    0,    0,    0,    0,
606         0,    0,    0,    0,    0,    0,    0,  157,  157,  157,
607       237,    0,    0,  237,    0,    0,    0,    0,    0,    0,
608         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
609
610         0,  287,  287,    0,    0,    0,    0,   80,   79,    0,
611         0,    0,    0,    0,    0,    0,    0,   90,    0,    0,
612         0,   89,    0,    0,    0,  137,  136,  157,  157,  157,
613       157,  237,    0,  223,  222,  237,    0,    0,    0,    0,
614         0,    0,  256,    0,  255,    0,    0,  261,    0,    0,
615         0,    0,    0,    0,    0,    0,  287,    0,    0,  287,
616         0,    0,    0,    0,    0,    0,   80,   79,    0,    0,
617         0,    0,    0,   67,   66,    0,    0,    0,    0,    0,
618         0,    0,  157,  157,  157,  157,    0,    0,    0,    0,
619         0,    0,    0,    0,    0,    0,  254,  253,    0,    0,
620
621         0,    0,    0,    0,    0,  273,  272,  287,    0,  271,
622       270,  287,    0,    0,    0,    0,    0,    0,    0,   71,
623         0,   70,   88,    0,    0,   87,    0,    0,    0,   99,
624       157,  157,  157,  157,    0,  219,  218,    0,    0,    0,
625         0,    0,  250,    0,    0,  249,    0,    0,  281,    0,
626         0,  280,  287,  287,    0,    0,    0,   12,    0,   12,
627         0,    0,    0,   82,   86,   81,   85,  157,  157,  157,
628       157,    0,    0,    0,    0,  252,  248,  251,  247,  283,
629       279,  282,  278,  287,  287,    0,    0,    0,    0,    0,
630         0,    0,    0,    0,    0,    0,    0,    0,  157,    0,
631
632         0,    0,    0,    0,    0,  287,  287,    0,    0,   69,
633        68,    0,  139,  138,    0,  149,  148,    0,  147,  146,
634       157,    0,  153,  152,    0,    0,    0,    0,  287,  287,
635         0,   11,  157,    0,    0,    0,    0,  287,  287,    0,
636       157,    0,    0,    0,    0,  287,  287,    0,  157,    0,
637         0,    0,    0,  287,  287,    0,    0,    0,    0,  231,
638         0,  230,  287,  287,    0,    0,  151,  150,  233,  232,
639       287,  287,    0,  287,  287,    0,  287,  287,    0,    0,
640       287,  287,    0,    0,  287,  287,    0,    0,  287,  287,
641         0,    0,    0,    0,    0,    0,    0,    0,    0,  277,
642
643       276,    0,  275,  274,    0,    0,    0,    0,    0,    0,
644         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
645        13,    0
646     } ;
647
648 static yyconst flex_int32_t yy_ec[256] =
649     {   0,
650         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
651         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
652         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
653         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
654         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
655        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
656        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
657        28,   29,   30,   28,   31,   32,   33,   34,   35,   36,
658        28,   37,   38,   39,   28,   40,   41,   28,   42,   28,
659        43,    1,   44,    1,   45,    1,   46,   47,   48,   49,
660
661        50,   51,   52,   53,   54,   28,   55,   56,   57,   58,
662        59,   60,   61,   62,   63,   64,   65,   66,   67,   68,
663        69,   28,    1,    1,    1,    1,    1,    1,    1,    1,
664         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
665         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
666         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
667         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
668         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
669         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
670         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
671
672         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
673         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
674         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
675         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
676         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
677         1,    1,    1,    1,    1
678     } ;
679
680 static yyconst flex_int32_t yy_meta[70] =
681     {   0,
682         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
683         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
684         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
685         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
686         5,    5,    1,    1,    5,    9,    9,    9,    9,    9,
687         9,    5,    5,    5,    5,    5,    5,    5,    5,    5,
688         5,    5,    5,    5,    5,    5,    5,    5,    5
689     } ;
690
691 static yyconst flex_int16_t yy_base[2256] =
692     {   0,
693         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
694        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
695       105,  173,   75,   78,   83,  125,  128,  132,  135,  138,
696       193,  196,  200,  203,  206,  224,  242,  293,  262,  265,
697       344,  404,  271,  273,  464,  527,  269,  316,  320,  323,
698       364,  367,  371,  374,  590,  654,  424,  427,  718,  781,
699       431,  434,  844,  907,  484,  487,  491,  494,  497,  547,
700       970, 1033,  550,  554,  557,  560,  610,  613,  617,  620,
701      1096, 1162,  623,  674, 1228,    0,  677,  681, 1297, 1351,
702       684,  687, 1405, 1468,  738,  741,  745,  748,  751,  801,
703
704       804,  808, 1531, 1594,  811,  814,  864,  867,  871,  874,
705       877,  927, 1657, 1720,  930,  934,  937,  940,  990,  993,
706       997, 1000, 1783, 1837, 1003, 1053, 1891, 1954, 1056, 1060,
707      1063, 1066, 1116, 1119, 1123, 1126, 2017, 2083, 1129, 1182,
708         0,    0, 5066, 7094, 7094,   95,  100,   29,   41, 7094,
709       155,   51, 7094, 7094, 5055, 7094, 7094, 5043, 7094, 5058,
710      5042, 1141, 7094, 7094, 7094, 7094, 5036, 5032, 4990,  210,
711      7094,  158, 5012,    0,  142, 7094, 4977, 4969, 7094,  162,
712      2145, 2205,  160, 5007,  176, 7094,  165, 4998,    0,  149,
713      7094, 4961, 7094,  230,  378, 7094,  326, 4994,    0,  208,
714
715      7094, 4958, 4949, 4947,  379, 4950, 7094,  329, 4972,    0,
716       214, 7094, 4938, 4937,  238, 4915, 7094,  377,   11,   31,
717      4965, 7094,  399, 4948,    0,  435, 7094, 4907, 4905, 4888,
718      7094,  457,  441, 7094,  520, 4922,    0,  436, 7094, 4892,
719      4870, 4871, 4851, 7094,  583,  498, 7094,  640, 4894,    0,
720       499, 7094, 4862,  513, 4840, 7094,  644, 4879, 7094,  647,
721      4870,    0,  562, 7094, 4802,   34, 4821, 4797, 4788, 7094,
722       704,  177, 4838, 7094,  708, 4827,    0,  568, 7094, 4793,
723      4783, 7094,  711,  752, 7094,  772, 4808,    0,  631, 7094,
724       211, 4777, 4775,   93, 4773, 4753, 7094,  834,  818, 7094,
725
726       894, 4796,    0,  632, 7094, 4753, 7094,  897,  881, 7094,
727       901, 4781,    0,  695, 7094, 4739, 4735, 4736,   80, 7094,
728       957,  360, 4765, 7094,  960, 4755,    0,  696, 7094, 4726,
729      4709,   26,  304, 7094,  963,  330, 4746, 7094, 1149, 4726,
730         0,  885, 7094, 4694, 4675, 4679, 4673, 7094, 1152,  499,
731      4721, 7094, 1155, 4705,    0,  948, 7094, 4672, 7094, 1186,
732      1005, 7094, 1192, 4696,    0, 1004, 7094, 4650, 4654, 4655,
733      4643, 7094, 1205, 1100, 4694, 4691, 7094, 1208, 4678,    0,
734      1007, 7094, 4650, 7094, 1211, 1068, 1215,  429, 4627, 7094,
735      4683, 4665, 7094, 7094, 7094, 1306,  283, 4614, 4612, 4607,
736
737      4647, 4609, 7094,    0, 4598, 4601, 4586, 4583, 4584, 4580,
738      4574, 4570, 4573,    4,  166, 4567, 4554, 4558, 4546, 4545,
739      4541,  404, 4544, 4530,   38,  467, 4530,  712, 4523, 7094,
740         0, 4526, 4527, 7094,    0, 4523, 1320, 4516,  533, 4512,
741      4555, 7094,    0, 4514, 1323, 4486, 4507, 4493, 4497, 4477,
742        89, 7094,    0, 4488, 4462, 4473, 4453, 7094,    0, 1326,
743      4459, 4459, 4455, 4435, 7094,    0, 4429, 4441, 7094,    0,
744      4444, 1329, 4422, 4400, 4400, 4419, 4407, 7094,    0, 1373,
745      4398, 4393, 7094,    0, 4406, 1377, 1380, 4375, 4371, 4386,
746      4372, 4366, 4367, 7094,    0, 1383, 4348, 7094,    0, 4351,
747
748      1425, 4340, 4357, 4355, 4340, 7094,    0, 4327, 4326, 4340,
749      4326, 4323, 4308, 7094,    0, 4305, 4289, 4291, 4298, 4283,
750      7094,    0, 1428, 4287, 7094,    0, 4277, 4271, 4272, 4280,
751      4264, 4261, 7094,    0, 4265, 4267, 4286, 4295,  807, 4246,
752      7094, 1207,    0, 4229, 4229, 4269, 4268, 4224, 7094, 4231,
753      4213, 4213, 1431, 1434, 4218, 4203, 4205, 4201, 4215, 4194,
754      4202, 4187, 4187, 4178, 4170, 4186, 4165, 4167, 4164, 4155,
755      4154, 4145, 4145, 4157, 4143, 4135, 4141, 4122, 4139, 4128,
756      1437, 1489, 4127, 1494, 1497, 4108, 4137, 1551, 1556, 7094,
757      4106, 1559, 1514, 1562, 4097, 1565, 4108, 1619, 1627, 4090,
758
759      4091, 4097, 4083, 1622, 1630, 1677, 1583, 4079, 4065, 4067,
760      1682, 1695, 4068, 1685, 1740, 4058, 1691, 1642, 4059, 4062,
761      4056, 4037, 1745, 1748, 1751, 1710, 4035, 1755, 1808,  583,
762      1811, 1814, 1857, 1860, 1869, 4032, 4030, 4025, 4021, 1911,
763      1920, 1914, 1880, 1917, 1923, 4022, 1926, 1975, 4014, 3994,
764      3987, 1983, 1986, 3996, 1989, 1992, 3981, 3977, 2039, 2046,
765      3979, 1997, 3983, 2043, 2049, 2052, 2061, 2072, 2104, 2110,
766      3976, 3952, 3959, 3943, 2113, 2116, 3952, 3927, 2119, 2138,
767      3970, 7094, 7094,  315, 3922, 7094, 3934, 3933, 3878, 7094,
768      7094, 3872, 3870, 3879, 3868, 2141, 2149, 7094, 2168, 3865,
769
770      3859, 3871, 3849, 3854, 3849, 3830,  261, 3839, 3819, 1223,
771      3834, 3802, 3814, 3798, 3796, 3801, 3784, 1332, 3795,  384,
772      3777, 3784, 3774, 3788, 2144, 2172, 2177, 7094, 2182, 2209,
773      2216, 7094, 7094, 2229, 3810, 2232, 2235, 7094, 2240, 3756,
774      2268, 7094, 7094, 2243, 2276, 2287, 2290, 2293, 3767, 2301,
775      2308, 7094, 2311,  432, 3761, 2314, 3760, 2320, 2323, 7094,
776      2332, 2335, 7094, 7094, 3754, 3751, 3743, 2343, 2346, 7094,
777      2351, 3739, 2354, 2357, 7094, 2377, 3735, 2380, 7094, 7094,
778      3728, 3721, 3717, 3727, 2388, 2391, 7094, 2396, 2400, 7094,
779      7094, 3722, 2410, 2415, 7094, 2418, 3702, 3717, 2422, 7094,
780
781      7094, 2438, 7094, 7094, 2430, 2448, 3700, 3698, 3703, 3695,
782      2458, 2461, 7094, 2464, 2467, 7094, 7094, 2483, 2486, 7094,
783      2489, 3673, 2492, 7094, 7094, 3679, 3672, 3662, 2508, 2511,
784      7094, 2514, 3611, 2517, 2521, 2536, 2539, 3618, 3612, 2547,
785      2554, 7094, 2557, 3602, 2560, 2567, 3607, 2578, 2581, 2589,
786      2592, 7094, 2596, 2599, 7094, 7094, 2611, 2615, 7094, 2621,
787      3590, 2624, 3607, 3576, 2630, 2634, 7094, 2642, 3573, 3586,
788      2645, 2649, 7094, 2653,  726, 2656, 7094, 7094, 3618, 3616,
789      3569, 3560, 3587, 2664, 3545, 3528, 3544, 1386, 3520, 2152,
790      3533, 3532, 1460, 3512, 3519, 1463, 3518, 3502, 3518, 1523,
791
792      2678, 3504, 3511, 1526, 3497, 3496, 3494, 3478, 3491, 3490,
793      2668, 2686, 2694, 2700, 2704, 3489, 3504, 2713, 3479, 2718,
794      7094, 7094, 2727, 2732, 2745, 7094, 7094, 3473, 2740, 1650,
795      3457, 2753, 2760, 2771, 2774, 3446, 3466, 3439, 2777, 3457,
796      2780, 3458, 3452, 3436, 2783, 2789, 2801, 2807, 2811, 2814,
797      2821, 2833, 7094, 7094, 2825, 2843, 2847, 2850, 2853, 2856,
798      3442, 3447, 3431, 2876, 2879, 3430, 2885, 7094, 7094, 2894,
799      7094, 7094, 3418, 2903, 2906, 3419, 2921, 7094, 7094, 3412,
800      2929, 7094, 7094, 2937, 2940, 3420, 2910, 2943, 3401, 3418,
801      2951, 3402, 2959, 2962,  181, 3437, 2965, 7094, 3436, 7094,
802
803      7094, 3395, 3388,  518, 2970, 3395, 3393, 3394, 1705, 3391,
804      1769, 3387, 3375, 3365, 1774, 3370, 2973, 2977, 3375, 3365,
805      1777, 1829, 3354, 2984, 2994, 3347, 3000, 3358, 3003, 3009,
806      3020, 7094, 7094, 3030, 3034, 7094, 7094, 3351, 3362, 3049,
807      3328, 3052, 7094, 7094, 3325, 3064, 1832, 3325, 3068, 1059,
808      1113, 3045, 3076, 3084, 3087, 3090, 3094, 3098, 7094, 3108,
809      3112, 3337, 3333, 3317, 3117, 3122, 3135, 3138, 3328, 3146,
810      3149, 3153, 3161, 3167, 3170, 3180, 3185, 3188, 3198, 3203,
811      3206, 3209, 3212, 3328, 3307, 3321, 3216, 3224, 3321, 3234,
812      3237, 3241, 3322, 3244, 3247, 3265, 3268, 3273, 3310, 3276,
813
814      7094, 7094, 3313, 3302, 3288, 3306, 3293, 3296, 3311, 1422,
815       612,  568, 7094, 3279, 3317, 3320, 3323, 3326, 3282, 3275,
816      3282, 3267, 3252, 3249, 3246, 1875, 1945, 3250, 1948, 2010,
817      3258, 3242, 3248, 3330, 3341, 3345, 3224, 3348, 3229, 3233,
818      3233, 3351, 3226, 3243, 3355, 3204, 3207, 3358, 3361, 3236,
819      3222,  260, 3220, 3231, 3217,  421, 3207, 3384, 7094, 7094,
820      3392, 3395, 3400, 3414, 3417, 3420, 3428, 3435, 3446, 3180,
821      3169, 3172, 3449, 7094, 7094, 3458, 3188, 3186, 3149, 3466,
822      7094, 3469, 7094, 7094, 3477, 7094, 3481, 7094, 7094, 3489,
823      3496, 3507, 7094, 7094, 3515, 3518, 3526, 3529, 3533, 3547,
824
825      3550, 3134, 3553, 3151, 3556, 3160, 3158, 3131, 3571, 7094,
826      3574, 3577, 3585, 3116, 3597, 3592, 3612, 3603, 3606, 3621,
827      3120, 3120, 3121, 3625, 3109, 3628, 7094, 7094, 3640,  808,
828      1330,  747, 3104, 3644, 3647, 3655, 3662, 3669, 3096, 3673,
829      3676, 3680, 3087, 3086, 3683, 3689, 3070, 3692, 3074, 3695,
830      3698, 3701, 3704, 3707, 3065, 3712, 3070, 3715, 3068, 3074,
831      3718, 7094, 3046, 3061, 3721, 3726, 3730, 3071, 3065, 3044,
832      3047, 3035, 3041, 3035, 3024, 3026, 3018, 3740, 3744, 7094,
833      7094, 3752, 3755, 3764, 7094, 7094, 3772, 7094, 7094, 3780,
834      3001, 2995, 2985,  669,  743, 2986, 3783, 7094, 7094, 3792,
835
836      7094, 7094, 3800, 3803, 3811, 7094, 7094, 3819, 3822, 2988,
837      3825, 3828, 2988, 2970,  806,  857, 2972, 3843,  358,  361,
838      3851, 2962, 3854, 3857,  658,  785, 3865, 3869, 7094, 3873,
839      3876, 2968, 2960, 3883, 2950, 3894, 3888,  927, 1009, 3898,
840      3903, 7094, 7094, 3913, 3916, 3922, 3925, 3936, 3941, 3945,
841      3951, 3954, 3957, 2953, 2950, 3960, 3963, 3967, 2938, 3970,
842      2934, 3973, 2927, 7094, 3979, 2920, 3982, 7094, 3985, 7094,
843      7094, 2958, 2920, 2932, 2925, 2925, 2925, 2909, 2911, 2905,
844      2902, 3993, 3997, 7094, 7094, 4005, 2868, 2859, 2848, 2865,
845      2878, 2850, 2865, 2818, 4008, 7094, 7094, 4016, 4019, 7094,
846
847      4024, 4028, 7094, 7094, 2810, 2784, 2761, 2746, 2713, 2723,
848      2624,   81,  919,  466,  985, 4038, 4042, 4045,  474, 1048,
849       477, 1057, 4051, 4056, 4059, 4071, 4064,  527, 4082, 4085,
850      4088, 4091,  748,  840, 4095, 4101, 4113, 4119, 4122, 4125,
851      4131,  518,  548,  565,  624, 4134, 7094,  665, 4138, 4141,
852       706,  738,  786,  838,  838,  886,  894,  901,  915,  912,
853       931, 4156, 4162, 7094,  934,  971,  965, 1025, 7094, 1023,
854      7094, 4165, 4168, 7094, 4171, 4177,  998, 1005, 1019, 1080,
855      7094, 1115, 7094, 4189, 1109, 1100, 1117, 1135, 1140, 1165,
856      4192, 4195, 4203, 4213, 1166, 1160, 1173, 1175, 1165, 1178,
857
858      4216, 4219, 4222, 7094, 7094, 4234, 4238, 4247, 4252, 7094,
859      4255, 4258, 1293, 1347, 1384, 4271, 4278, 4289, 4292, 7094,
860      1169, 1287, 1284, 1293, 4295, 4298, 1366, 1470, 1285, 1316,
861      1325, 1349, 1371, 1391, 1368, 1378, 1397, 1423, 1437, 4307,
862      1381, 1403, 1403, 7094, 7094, 4313, 4316, 4327, 7094, 7094,
863      1402, 1410, 1430, 7094, 7094, 4335, 4338, 1457, 1463, 1468,
864      1468, 1469, 1474, 4346, 1548, 1549, 4354, 1477, 1480, 1485,
865      1519, 1518, 1534, 4357, 4360, 4364, 7094, 4369, 7094, 7094,
866      4378, 4383, 4391, 7094, 1573, 1552, 1559, 4396, 7094, 7094,
867      4404, 4410, 4422, 1525, 4425, 1540, 4428, 4431, 1579, 1598,
868
869      1590, 1606, 1577, 1611, 1601, 1607, 1615, 7094, 1631, 1642,
870      1641, 1650, 7094, 4439, 4442, 1646, 1659, 4446, 7094, 7094,
871      1661, 4454, 1670, 4460, 7094, 7094, 1699, 1710, 1730, 1724,
872      1726, 1741, 1747, 1779, 1771, 1782, 4468, 1772, 1783, 1795,
873      1785, 1788, 1799, 4472, 4475, 4493, 7094, 7094, 1916, 1833,
874      4481, 4501, 7094, 7094, 4478, 1765, 4509, 1801, 4512, 7094,
875      7094, 1845, 1834, 1852, 1841, 4522, 1848, 1868, 1901, 1910,
876      1899, 1917, 1932, 1931, 4525, 4528, 4531, 1919, 1995, 1921,
877      1952, 4540, 4546, 1935, 1980, 1989, 1999, 2009, 2018, 2033,
878      2062, 2032, 2062, 2035, 4554, 2047, 2053, 2048, 2069, 2083,
879
880      2076, 4558, 4561, 2108, 4564, 4567, 4587, 4595, 4598, 2091,
881      2104, 2097, 2107, 4606, 4609, 2105, 2105, 7094, 2107, 2109,
882      2130, 7094, 2132, 4617, 4620, 7094, 7094, 2111, 2117, 2123,
883      2131, 4628, 4632, 7094, 7094, 4640, 2157, 2149, 2162, 2164,
884      2156, 2169, 7094, 2189, 7094, 2194, 4646, 7094, 2179, 2172,
885      2190, 2191, 2187, 2198, 4649, 4652, 4660, 4667, 4671, 4680,
886      2204, 4685, 4688, 4708, 4747, 4791, 4698, 4716, 2202, 2223,
887      2215, 2232, 4720, 7094, 7094, 2243, 2218, 2222, 2248, 2232,
888      2234, 4737, 2217, 2227, 2218, 2217, 4741, 4728, 4759, 4767,
889      2257, 2259, 2281, 2272, 2275, 2292, 7094, 7094, 2281, 2283,
890
891      2313, 2294, 2304, 2321, 4777, 7094, 7094, 4785, 4811, 7094,
892      7094, 4803, 2345, 4821, 2356, 2355, 4857, 4901, 2318, 7094,
893      2328, 7094, 7094, 2345, 2361, 7094, 2359, 2361, 4829, 7094,
894      2322, 2307, 2336, 2337, 4834, 7094, 7094, 4842, 2410, 2418,
895      2382, 2390, 7094, 2392, 2396, 7094, 2404, 2417, 7094, 2418,
896      2420, 7094, 4851, 4869, 2423, 2452, 2454, 2430, 2488, 2437,
897      4877, 2438, 2440, 7094, 7094, 7094, 7094, 4880, 4892, 4921,
898      4924, 2457, 2453, 2461, 2470, 7094, 7094, 7094, 7094, 7094,
899      7094, 7094, 7094, 4927, 4932, 4935, 2494, 2481, 2495, 4945,
900      2499, 2498, 4950, 4883, 4954, 4958, 4968, 4972, 2460, 4980,
901
902      4987, 2487, 2510, 2494, 2513, 4998, 5001, 5004, 2517, 7094,
903      7094, 5007, 7094, 7094, 5019, 7094, 7094, 5027, 7094, 7094,
904      2494, 5035, 7094, 7094, 2510, 2510, 2516, 2516, 5045, 5048,
905      2546, 7094, 2517, 2538, 2549, 2548, 2560, 5051, 5054, 2569,
906      2538, 2570, 2585, 2575, 2595, 5057, 5075, 2601, 5078, 2603,
907      2624, 2613, 2633, 5081, 5084, 2665, 5087, 5110, 2657, 7094,
908      2655, 7094, 5118, 5121, 2666, 5139, 7094, 7094, 7094, 7094,
909      5147, 5150, 5153, 5156, 5159, 5168, 5182, 5187, 2655, 2663,
910      5194, 5201, 2658, 2691, 5205, 5208, 2680, 2738, 5212, 5226,
911      2673, 2719, 5231, 5237, 5253, 5256, 2703, 2739, 5264, 7094,
912
913      7094, 5273, 7094, 7094, 2778, 2787, 2747, 2750, 2850, 2852,
914      2799, 2818, 2689, 2748, 2855, 2866, 2800, 2881, 5281, 5284,
915      7094, 7094, 5304, 5313, 5322, 5331, 5340, 5349, 5358, 5367,
916      5376, 5385, 5394, 5403, 5412, 5421, 5430, 5439, 5448, 5457,
917      5466, 5475, 5484, 5493, 5502, 5511, 5520, 5529, 5538, 5547,
918      5556, 5565, 5574, 5583, 5592, 5601, 5610, 5619, 5628, 5637,
919      5646, 5653, 5660, 5667, 5674, 5681, 5688, 5695, 5702, 5709,
920      5716, 5723, 5730, 5737, 5744, 5751, 5758, 5765, 5774, 5779,
921      5784, 5789, 5794, 5799, 5804, 5809, 5814, 5819, 5826, 5831,
922      5838, 5843, 5850, 5855, 5862, 5867, 5874, 5879, 5886, 5891,
923
924      5898, 5903, 5910, 5915, 5924, 5930, 5937, 5945, 5952, 5960,
925      5967, 5975, 5982, 5990, 5997, 6005, 6012, 6020, 6027, 6035,
926      6042, 6050, 6057, 6065, 6072, 6080, 6088, 6095, 6103, 6110,
927      6118, 6125, 6133, 6141, 6148, 6156, 6163, 6171, 6180, 6186,
928      6193, 6201, 6209, 6217, 6225, 6233, 6240, 6248, 6255, 6263,
929      6270, 6278, 6285, 6293, 6300, 6308, 6315, 6323, 6330, 6338,
930      6346, 6353, 6361, 6368, 6376, 6383, 6391, 6399, 6406, 6414,
931      6421, 6429, 6438, 6447, 6454, 6462, 6470, 6477, 6485, 6492,
932      6500, 6507, 6515, 6522, 6530, 6537, 6545, 6552, 6560, 6568,
933      6576, 6584, 6592, 6600, 6607, 6615, 6622, 6630, 6637, 6645,
934
935      6653, 6660, 6668, 6676, 6684, 6693, 6702, 6709, 6717, 6725,
936      6732, 6740, 6747, 6755, 6762, 6770, 6778, 6786, 6794, 6801,
937      6809, 6817, 6825, 6833, 6841, 6848, 6856, 6864, 6872, 6880,
938      6888, 6896, 6903, 6911, 6919, 6928, 6937, 6945, 6953, 6961,
939      6968, 6976, 6983, 6991, 6999, 7007, 7015, 7023, 7030, 7039,
940      7048, 7057, 7066, 7075, 7084
941     } ;
942
943 static yyconst flex_int16_t yy_def[2256] =
944     {   0,
945      2023, 2023, 2024, 2024, 2024, 2024, 2025, 2025, 2026, 2026,
946      2027, 2027, 2028, 2028, 2028, 2028, 2029, 2029, 2023, 2023,
947      2030, 2030, 2031, 2031, 2031, 2031, 2023, 2023, 2031, 2031,
948      2023, 2023, 2031, 2031, 2031, 2031, 2032, 2032, 2033, 2033,
949      2034, 2034, 2028, 2028, 2035, 2035, 2036, 2036, 2023, 2023,
950      2036, 2036, 2036, 2036, 2037, 2037, 2038, 2038, 2039, 2039,
951      2040, 2040, 2041, 2041, 2023, 2023, 2023, 2023, 2042, 2042,
952      2043, 2043, 2044, 2044, 2023, 2023, 2044, 2044, 2044, 2044,
953      2045, 2045, 2046, 2046, 2022,   85, 2047, 2047, 2048, 2048,
954      2049, 2049, 2050, 2050, 2051, 2051, 2023, 2023, 2051, 2051,
955
956      2051, 2051, 2052, 2052, 2023, 2023, 2023, 2023, 2053, 2053,
957      2053, 2053, 2054, 2054, 2055, 2055, 2023, 2023, 2055, 2055,
958      2055, 2055, 2056, 2056, 2057, 2057, 2058, 2058, 2059, 2059,
959      2023, 2023, 2059, 2059, 2059, 2059, 2060, 2060, 2061, 2061,
960      2023, 2023, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
961      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
962      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
963      2022, 2022, 2022, 2062, 2022, 2022, 2062, 2062, 2022, 2022,
964      2022, 2022,  181,  182,  182, 2022, 2022, 2022, 2063, 2022,
965      2022, 2063, 2022, 2022, 2022, 2022, 2022, 2022, 2064, 2022,
966
967      2022, 2064, 2064, 2064, 2022, 2022, 2022, 2022, 2022, 2065,
968      2022, 2022, 2065, 2065, 2065, 2065, 2022, 2022,  185,  185,
969       185, 2022, 2022, 2022, 2066, 2022, 2022, 2066, 2066, 2066,
970      2022, 2022, 2022, 2022, 2022, 2022, 2067, 2022, 2022, 2067,
971      2067, 2067, 2067, 2022, 2022, 2022, 2022, 2022, 2022, 2068,
972      2022, 2022, 2068,  185,  254, 2022, 2022,  185, 2022, 2022,
973      2022, 2069, 2022, 2022, 2069, 2069, 2069, 2069, 2069, 2022,
974      2022,  185,  185, 2022, 2022, 2022, 2070, 2022, 2022, 2070,
975      2070, 2022, 2022, 2022, 2022, 2022, 2022, 2071, 2022, 2022,
976      2071, 2071, 2071, 2071, 2071, 2071, 2022, 2022, 2022, 2022,
977
978      2022, 2022, 2072, 2022, 2022, 2072, 2022, 2022, 2022, 2022,
979      2022, 2022, 2073, 2022, 2022, 2073, 2073, 2073, 2073, 2022,
980      2022,  185,  185, 2022, 2022, 2022, 2074, 2022, 2022, 2074,
981      2074, 2074,  185, 2022, 2022,  185,  185, 2022, 2022, 2022,
982      2075, 2022, 2022, 2075, 2075, 2075, 2075, 2022, 2022,  185,
983       185, 2022, 2022, 2022, 2076, 2022, 2022, 2076, 2022, 2022,
984      2022, 2022, 2022, 2022, 2077, 2022, 2022, 2077, 2077, 2077,
985      2077, 2022, 2022,  185,  374,  185, 2022, 2022, 2022, 2078,
986      2022, 2022, 2078, 2022, 2022, 2022, 2022, 2079, 2022, 2022,
987      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
988
989      2022, 2022, 2022, 2062, 2062, 2062, 2080, 2022, 2022, 2022,
990      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
991      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
992      2063, 2063, 2081, 2022, 2064, 2064, 2064, 2064, 2022, 2082,
993      2022, 2022, 2065, 2065, 2065, 2065, 2065, 2065, 2065, 2083,
994      2022, 2022, 2066, 2066, 2066, 2066, 2084, 2022, 2067, 2067,
995      2067, 2067, 2067, 2085, 2022, 2068, 2068, 2086, 2022, 2069,
996      2069, 2069, 2069, 2069, 2069, 2069, 2087, 2022, 2070, 2070,
997      2070, 2088, 2022, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
998      2089, 2089, 2090, 2022, 2091, 2091, 2092, 2022, 2093, 2093,
999
1000      2093, 2093, 2093, 2093, 2094, 2022, 2095, 2095, 2095, 2095,
1001      2095, 2022, 2096, 2022, 2097, 2097, 2097, 2097, 2097, 2098,
1002      2022, 2099, 2099, 2100, 2022, 2101, 2101, 2101, 2101, 2101,
1003      2102, 2022, 2022, 2103, 2103, 2104, 2105, 2022, 2105, 2022,
1004      2022, 2022, 2106, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1005      2107, 2107, 2108, 2108, 2022, 2022, 2022, 2022, 2022, 2022,
1006      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1007      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2109,
1008      2110, 2110, 2111, 2022, 2022, 2111, 2022, 2112, 2112, 2022,
1009      2113, 2022, 2022, 2113, 2113, 2113, 2113, 2114, 2114, 2022,
1010
1011      2115, 2115, 2115, 2116, 2116, 2022, 2022, 2117, 2117, 2117,
1012      2118, 2118, 2119, 2120, 2120, 2121, 2022, 2022, 2121, 2121,
1013      2121, 2121, 2122, 2122, 2022, 2022, 2123, 2124, 2124, 2125,
1014      2022, 2022, 2022, 2022, 2125, 2125, 2125, 2125, 2125, 2126,
1015      2126, 2022, 2022, 2127, 2127, 2128, 2022, 2022, 2128, 2128,
1016      2128, 2129, 2129, 2130, 2130, 2130, 2130, 2022, 2131, 2131,
1017      2132, 2132, 2132, 2132, 2133, 2133, 2022, 2022, 2134, 2134,
1018      2135, 2135, 2135, 2135, 2136, 2136, 2022, 2137, 2138, 2138,
1019      2139, 2022, 2022, 2139, 2022, 2022, 2140, 2022, 2022, 2022,
1020      2022, 2022, 2022, 2141, 2141, 2022, 2142, 2022, 2142, 2022,
1021
1022      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1023      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1024      2022, 2022, 2022, 2022, 2143, 2022, 2144, 2022, 2144, 2145,
1025      2022, 2022, 2022, 2145, 2022, 2022, 2146, 2022, 2146, 2147,
1026      2022, 2022, 2022, 2022, 2022, 2147, 2022, 2022, 2147, 2022,
1027      2148, 2022, 2148, 2022, 2149, 2149, 2149, 2022, 2150, 2022,
1028      2150, 2022, 2022, 2022, 2151, 2151, 2151, 2022, 2152, 2022,
1029      2152, 2153, 2022, 2154, 2022, 2154, 2155, 2022, 2022, 2022,
1030      2155, 2155, 2155, 2155, 2022, 2156, 2022, 2156, 2022, 2022,
1031      2022, 2157, 2022, 2158, 2022, 2158, 2159, 2159, 2022, 2022,
1032
1033      2022, 2022, 2022, 2022, 2022, 2022, 2159, 2159, 2159, 2159,
1034      2022, 2160, 2022, 2160, 2022, 2022, 2022, 2022, 2161, 2022,
1035      2161, 2162, 2022, 2022, 2022, 2162, 2162, 2162, 2022, 2163,
1036      2022, 2163, 2164, 2022, 2022, 2022, 2022, 2164, 2022, 2022,
1037      2165, 2022, 2165, 2166, 2022, 2022, 2166, 2022, 2022, 2022,
1038      2167, 2022, 2167, 2022, 2022, 2022, 2022, 2168, 2022, 2168,
1039      2169, 2169, 2169, 2169, 2022, 2170, 2022, 2170, 2022, 2171,
1040      2022, 2172, 2022, 2172, 2173, 2174, 2022, 2022, 2022, 2022,
1041      2022, 2175, 2175, 2176, 2022, 2022, 2022, 2022, 2022, 2022,
1042      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1043
1044      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1045      2022, 2022, 2177, 2022, 2022, 2178, 2022, 2179, 2180, 2022,
1046      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2180, 2181, 2022,
1047      2182, 2022, 2022, 2182, 2183, 2184, 2184, 2184, 2185, 2186,
1048      2187, 2188, 2188, 2188, 2188, 2188, 2189, 2190, 2191, 2192,
1049      2192, 2022, 2022, 2022, 2192, 2192, 2192, 2192, 2193, 2194,
1050      2195, 2195, 2195, 2195, 2196, 2197, 2022, 2022, 2022, 2022,
1051      2022, 2022, 2197, 2022, 2198, 2199, 2022, 2022, 2022, 2199,
1052      2022, 2022, 2022, 2200, 2201, 2202, 2022, 2022, 2202, 2202,
1053      2203, 2022, 2204, 2205, 2206, 2207, 2207, 2022, 2207, 2022,
1054
1055      2022, 2022, 2208, 2208, 2209, 2022, 2022, 2022, 2022, 2022,
1056      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1057      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1058      2022, 2022, 2022, 2210, 2022, 2022, 2022, 2211, 2022, 2212,
1059      2213, 2022, 2022, 2022, 2213, 2214, 2022, 2215, 2022, 2022,
1060      2022, 2022, 2022, 2216, 2217, 2217, 2217, 2022, 2022, 2218,
1061      2219, 2220, 2220, 2220, 2022, 2022, 2022, 2022, 2220, 2221,
1062      2022, 2022, 2222, 2022, 2022, 2223, 2022, 2022, 2223, 2223,
1063      2223, 2224, 2225, 2226, 2226, 2226, 2022, 2022, 2226, 2227,
1064      2228, 2228, 2022, 2229, 2230, 2230, 2231, 2232, 2233, 2022,
1065
1066      2022, 2022, 2233, 2233, 2234, 2022, 2022, 2022, 2235, 2236,
1067      2237, 2237, 2022, 2022, 2238, 2238, 2238, 2239, 2022, 2022,
1068      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1069      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1070      2022, 2240, 2241, 2022, 2242, 2243, 2243, 2244, 2245, 2022,
1071      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1072      2246, 2022, 2022, 2247, 2022, 2022, 2022, 2022, 2248, 2249,
1073      2249, 2249, 2022, 2022, 2022, 2022, 2022, 2022, 2249, 2022,
1074      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1075      2022, 2022, 2022, 2022, 2022, 2022, 2223, 2022, 2022, 2224,
1076
1077      2225, 2226, 2226, 2226, 2022, 2022, 2022, 2226, 2022, 2022,
1078      2022, 2022, 2228, 2022, 2229, 2022, 2022, 2230, 2231, 2232,
1079      2233, 2233, 2233, 2234, 2022, 2022, 2022, 2022, 2235, 2236,
1080      2237, 2237, 2022, 2022, 2022, 2238, 2238, 2239, 2022, 2022,
1081      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1082      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2240, 2241, 2022,
1083      2022, 2022, 2243, 2243, 2244, 2022, 2022, 2022, 2022, 2022,
1084      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2246, 2022, 2022,
1085      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2248,
1086      2249, 2249, 2249, 2022, 2022, 2249, 2022, 2022, 2022, 2022,
1087
1088      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2224, 2225, 2226,
1089      2022, 2022, 2226, 2226, 2022, 2022, 2226, 2022, 2022, 2022,
1090      2228, 2022, 2229, 2022, 2022, 2022, 2230, 2022, 2022, 2232,
1091      2233, 2233, 2233, 2234, 2022, 2235, 2236, 2237, 2237, 2022,
1092      2022, 2022, 2022, 2238, 2238, 2239, 2022, 2022, 2022, 2022,
1093      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1094      2022, 2240, 2241, 2022, 2243, 2243, 2022, 2022, 2022, 2022,
1095      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1096      2022, 2246, 2022, 2022, 2022, 2248, 2249, 2249, 2249, 2022,
1097      2022, 2022, 2022, 2249, 2022, 2022, 2022, 2224, 2022, 2022,
1098
1099      2226, 2022, 2022, 2022, 2226, 2226, 2022, 2022, 2022, 2022,
1100      2226, 2022, 2022, 2022, 2022, 2228, 2022, 2229, 2022, 2022,
1101      2022, 2022, 2230, 2232, 2022, 2022, 2233, 2233, 2234, 2022,
1102      2235, 2236, 2237, 2237, 2022, 2238, 2238, 2239, 2022, 2022,
1103      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2241, 2022, 2022,
1104      2243, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1105      2022, 2246, 2022, 2022, 2249, 2249, 2249, 2022, 2022, 2022,
1106      2022, 2249, 2022, 2022, 2022, 2022, 2226, 2226, 2226, 2022,
1107      2022, 2022, 2022, 2226, 2022, 2022, 2022, 2022, 2022, 2022,
1108      2022, 2022, 2022, 2229, 2022, 2022, 2022, 2022, 2022, 2022,
1109
1110      2230, 2232, 2022, 2022, 2022, 2022, 2022, 2233, 2022, 2022,
1111      2022, 2235, 2236, 2237, 2237, 2022, 2022, 2238, 2022, 2022,
1112      2022, 2022, 2022, 2022, 2241, 2022, 2022, 2022, 2243, 2022,
1113      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2246,
1114      2249, 2249, 2249, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1115      2226, 2226, 2226, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1116      2022, 2022, 2022, 2022, 2022, 2022, 2229, 2022, 2022, 2022,
1117      2022, 2022, 2022, 2230, 2230, 2022, 2022, 2022, 2022, 2022,
1118      2022, 2022, 2022, 2022, 2236, 2237, 2237, 2022, 2022, 2022,
1119      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1120
1121      2022, 2022, 2243, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1122      2022, 2022, 2022, 2246, 2249, 2249, 2249, 2022, 2022, 2022,
1123      2226, 2226, 2226, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1124      2022, 2022, 2022, 2022, 2022, 2022, 2229, 2022, 2022, 2022,
1125      2022, 2022, 2022, 2230, 2230, 2022, 2022, 2022, 2236, 2237,
1126      2237, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1127      2022, 2022, 2022, 2022, 2022, 2243, 2022, 2022, 2022, 2022,
1128      2022, 2022, 2022, 2022, 2246, 2022, 2022, 2249, 2249, 2249,
1129      2226, 2022, 2022, 2226, 2022, 2022, 2022, 2022, 2022, 2022,
1130      2022, 2022, 2022, 2022, 2229, 2022, 2022, 2022, 2022, 2022,
1131
1132      2022, 2230, 2230, 2236, 2237, 2237, 2237, 2022, 2022, 2022,
1133      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1134      2022, 2022, 2022, 2246, 2022, 2022, 2022, 2249, 2249, 2249,
1135      2249, 2226, 2022, 2022, 2022, 2226, 2022, 2022, 2022, 2022,
1136      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1137      2022, 2022, 2022, 2022, 2022, 2022, 2230, 2022, 2022, 2230,
1138      2236, 2237, 2237, 2237, 2250, 2251, 2022, 2022, 2022, 2022,
1139      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1140      2022, 2246, 2249, 2249, 2249, 2249, 2022, 2022, 2022, 2022,
1141      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1142
1143      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2230, 2022, 2022,
1144      2022, 2230, 2236, 2237, 2252, 2253, 2250, 2251, 2022, 2022,
1145      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1146      2249, 2249, 2249, 2249, 2022, 2022, 2022, 2022, 2022, 2022,
1147      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1148      2022, 2022, 2230, 2230, 2236, 2252, 2237, 2254, 2253, 2255,
1149      2237, 2022, 2022, 2022, 2022, 2022, 2022, 2249, 2249, 2249,
1150      2249, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1151      2022, 2022, 2022, 2230, 2230, 2236, 2254, 2022, 2255, 2237,
1152      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2249, 2022,
1153
1154      2022, 2022, 2022, 2022, 2022, 2230, 2230, 2236, 2022, 2022,
1155      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1156      2249, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2230, 2230,
1157      2236, 2022, 2249, 2022, 2022, 2022, 2022, 2230, 2230, 2236,
1158      2249, 2022, 2022, 2022, 2022, 2230, 2230, 2236, 2249, 2022,
1159      2022, 2022, 2022, 2230, 2230, 2236, 2022, 2022, 2022, 2022,
1160      2022, 2022, 2230, 2230, 2236, 2022, 2022, 2022, 2022, 2022,
1161      2230, 2230, 2236, 2230, 2230, 2236, 2230, 2230, 2236, 2236,
1162      2230, 2230, 2236, 2236, 2230, 2230, 2236, 2236, 2230, 2230,
1163      2236, 2236, 2022, 2022, 2022, 2022, 2236, 2236, 2022, 2022,
1164
1165      2022, 2022, 2022, 2022, 2236, 2236, 2236, 2236, 2236, 2236,
1166      2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236,
1167      2022,    0, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1168      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1169      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1170      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1171      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1172      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1173      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1174      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1175
1176      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1177      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1178      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1179      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1180      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1181      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1182      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1183      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1184      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1185      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1186
1187      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1188      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1189      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1190      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1191      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1192      2022, 2022, 2022, 2022, 2022
1193     } ;
1194
1195 static yyconst flex_int16_t yy_nxt[7164] =
1196     {   0,
1197      2022,  146,  147,  146,  146,  147,  146,  146,  147,  146,
1198       146,  147,  146,  151,  147,  151,  157,  148,  154,  157,
1199       148,  154,  450,  149, 2022,  155,  149, 2022,  155,  152,
1200       151,  147,  151,  388,  158,  160,  161,  158,  160,  161,
1201       162,  163, 2022,  162,  163,  388,  152,  167,  168,  389,
1202       164,  160,  161,  164,  165,  391,  162,  160,  161,  561,
1203       165,  390,  162,  167,  168,  562,  164,  147,  147,  147,
1204       451,  390,  164,  147,  147,  147,  180,  147,  180,  180,
1205       147,  180,  472,  170,  180,  147,  180,  510,  169,  170,
1206       451,  473,  181,  561,  511,  181,  387,  387,  387,  575,
1207
1208       182,  387,  387,  387,  169,  171,  172,  147,  172,  171,
1209       171,  171,  171,  171,  171,  171,  173,  171,  171,  171,
1210      1485,  171,  175,  171,  176,  171,  180,  147,  180,  147,
1211       147,  147,  503,  147,  147,  147,  180,  147,  180,  180,
1212       147,  180,  182,  504,  561,  183,  391,  171,  171,  183,
1213       600,  489,  181,  391,  490,  181,  387,  387,  387,  387,
1214       387,  387,  390,  387,  387,  387,  387,  387,  387,  390,
1215       177, 2022,  178,  171,  172,  147,  172,  171,  171,  171,
1216       171,  171,  171,  171,  173,  171,  171,  171,  477,  171,
1217       175,  171,  176,  171,  147,  147,  147,  147,  147,  147,
1218
1219       682,  180,  147,  180,  180,  147,  180,  180,  147,  180,
1220       184,  563,  391,  184,  391,  171,  171,  182,  391,  425,
1221       182,  426, 1110,  185,  564,  180,  147,  180,  390,  427,
1222       390,  387,  387,  387,  390,  425,  451,  428,  177,  429,
1223       178,  185,  186,  187,  147,  187,  186,  186,  186,  186,
1224       186,  186,  186,  188,  186,  186,  186,  485,  186,  190,
1225       186,  191,  186,  194,  147,  194,  194,  147,  194,  402,
1226       218,  147,  218,  160,  161,  160,  161,  486,  162,  195,
1227       162, 1270,  195,  446,  186,  186,  219,  447,  205, 1271,
1228       205,  448,  192,  186,  187,  147,  187,  186,  186,  186,
1229
1230       186,  186,  186,  186,  188,  186,  186,  186,  892,  186,
1231       190,  186,  191,  186,  206, 2022,  206,  218,  147,  218,
1232       893,  147,  147,  147,  147,  147,  147,  387,  387,  387,
1233       387,  387,  387,  219,  682,  186,  186,  220,  875,  544,
1234       220,  513,  545,  192,  196,  197,  147,  197,  196,  196,
1235       196,  196,  196,  196,  196,  198,  196,  196,  196,  512,
1236       196,  200,  196,  201,  196,  218,  147,  218,  218,  147,
1237       218,  505,  218,  147,  218,  218,  147,  218,  387,  387,
1238       387,  219,  391,  439,  219,  512,  196,  196,  221,  433,
1239       440,  221, 1412, 1413,  202, 1414, 1415,  203,  390,  390,
1240
1241       387,  387,  387,  204,  196,  197,  147,  197,  196,  196,
1242       196,  196,  196,  196,  196,  198,  196,  196,  196,  451,
1243       196,  200,  196,  201,  196,  232,  147,  232,  232,  147,
1244       232,  906,  245,  147,  245,  245,  147,  245,  538,  391,
1245       391,  233, 1275,  893,  233,  391,  196,  196,  246,  571,
1246      1276,  246,  457,  539,  202,  390,  390,  203,  387,  387,
1247       387,  390,  572,  204,  207,  208,  147,  208,  207,  207,
1248       207,  207,  207,  207,  207,  209,  207,  207,  207,  906,
1249       207,  211,  207,  212,  207,  147,  147,  147,  147,  147,
1250       147,  930,  147,  147,  147,  147,  147,  147,  257,  147,
1251
1252       257,  254,  391,  391,  254, 1488,  207,  207,  255,  464,
1253       520,  255,  563, 1495,  258,  213, 1498,  214,  390,  390,
1254       215,  387,  387,  387, 2022,  576,  216,  207,  208,  147,
1255       208,  207,  207,  207,  207,  207,  207,  207,  209,  207,
1256       207,  207,  538,  207,  211,  207,  212,  207,  257,  147,
1257       257,  271,  147,  271,  512,  271,  147,  271,  147,  147,
1258       147,  147,  147,  147,  258,  411,  391,  272,  413,  207,
1259       207,  272,  391, 1116,  220,  587, 1508,  220,  213, 1117,
1260       214, 1521,  390,  215,  387,  387,  387,  998,  390,  216,
1261       222,  223,  147,  223,  222,  222,  222,  222,  222,  222,
1262
1263       222,  224,  222,  222,  222, 1522,  222,  226,  222,  227,
1264       222,  271,  147,  271,  271,  147,  271, 1232,  271,  147,
1265       271,  271,  147,  271,  283,  147,  283,  272, 1523,  797,
1266       272,  998,  222,  222,  273,  391,  391,  273,  798,  228,
1267       284,  387,  387,  387,  229,  387,  387,  387,  387,  387,
1268       387,  390,  390,  230,  222,  223,  147,  223,  222,  222,
1269       222,  222,  222,  222,  222,  224,  222,  222,  222, 1231,
1270       222,  226,  222,  227,  222,  283,  147,  283,  298,  147,
1271       298, 1524,  298,  147,  298,  308,  147,  308,  308,  147,
1272       308,  284, 1419, 1420,  299, 1390,  222,  222,  299,  391,
1273
1274       391,  309, 1391,  228,  309,  387,  387,  387,  229,  387,
1275       387,  387,  387,  387,  387,  390,  390,  230,  234,  235,
1276       147,  235,  234,  234,  234,  234,  234,  234,  234,  236,
1277       234,  234,  234, 1525,  234,  238,  234,  239,  234,  321,
1278       147,  321,  321,  147,  321,  682,  147,  147,  147,  147,
1279       147,  147,  321,  147,  321,  322,  391,  571,  322, 1529,
1280       234,  234,  220,  482,  995,  220,  998,  998,  322, 1392,
1281       578,  240,  390,  387,  387,  387, 1393,  241, 1530,  242,
1282       243,  234,  235,  147,  235,  234,  234,  234,  234,  234,
1283       234,  234,  236,  234,  234,  234, 1514,  234,  238,  234,
1284
1285       239,  234,  321,  147,  321,  321,  147,  321, 1339,  321,
1286       147,  321,  147,  147,  147,  147,  147,  147,  322, 1421,
1287      1422,  323,  391,  234,  234,  323,  682,  682,  333,  493,
1288      1531,  333, 1407, 1337,  240,  387,  387,  387,  390, 1408,
1289       241,  684,  242,  243,  247,  248,  147,  248,  247,  247,
1290       247,  247,  247,  247,  247,  249,  247,  247,  247,  998,
1291       247,  251,  247,  252,  247,  147,  147,  147,  147,  147,
1292       147, 1532,  335,  147,  335,  335,  147,  335,  335,  147,
1293       335,  333, 1533, 1409,  333,  391,  247,  247,  336,  391,
1294      1410,  336,  497, 1515,  337,  387,  387,  387,  387,  387,
1295
1296       387,  390,  387,  387,  387,  390,  253,  247,  248,  147,
1297       248,  247,  247,  247,  247,  247,  247,  247,  249,  247,
1298       247,  247, 1534,  247,  251,  247,  252,  247,  335,  147,
1299       335,  349,  147,  349, 1535,  349,  147,  349,  147,  147,
1300       147,  147,  147,  147,  337, 1536,  998,  350, 1537,  247,
1301       247,  350,  391, 1486,  333, 1487, 1538,  333,  387,  387,
1302       387,  387,  387,  387,  387,  387,  387, 1539,  390,  253,
1303       259,  260,  147,  260,  259,  259,  259,  259,  259,  259,
1304       259,  261,  259,  259,  259, 1433,  259,  263,  259,  264,
1305       259,  349,  147,  349,  349,  147,  349, 1541,  349,  147,
1306
1307       349,  349,  147,  349,  360,  147,  360,  350,  391,  391,
1308       350,  391,  259,  259,  351,  265,  524,  351, 1542, 1489,
1309       361, 1490, 1543,  266,  390,  390,  267,  390,  998,  268,
1310      1544, 1545,  269,  259,  260,  147,  260,  259,  259,  259,
1311       259,  259,  259,  259,  261,  259,  259,  259, 1551,  259,
1312       263,  259,  264,  259,  360,  147,  360,  373,  147,  373,
1313      1552,  373,  147,  373,  147,  147,  147,  147,  147,  147,
1314       361, 1434,  391,  374, 1553,  259,  259,  374,  265,  536,
1315       375, 1150, 1496,  375, 1497, 1554,  266, 1151,  390,  267,
1316      1152, 1499,  268, 1500, 1153,  269,  274,  275,  147,  275,
1317
1318       274,  274,  274,  274,  274,  274,  274,  276,  274,  274,
1319       274,  531,  274,  278,  274,  279,  274,  373,  147,  373,
1320       373,  147,  373, 1555,  373,  147,  373,  373,  147,  373,
1321       385,  147,  385,  374, 1558, 1154,  374, 1559,  274,  274,
1322       376, 1155, 1560,  376, 1156,  532,  386,  396, 1157,  280,
1323       387,  387,  387,  387,  387,  387,  387,  387,  387,  451,
1324      1561,  281,  274,  275,  147,  275,  274,  274,  274,  274,
1325       274,  274,  274,  276,  274,  274,  274, 1562,  274,  278,
1326       274,  279,  274,  385,  147,  385,  397,  387,  387,  387,
1327      1563, 1568,  398,  387,  387,  387,  399, 1569, 1570,  386,
1328
1329      1571,  400, 1572, 1573,  274,  274,  387,  387,  387,  387,
1330       387,  387,  387,  387,  387,  280,  387,  387,  387,  542,
1331       542,  542, 1593,  686,  896,  896,  896,  281,  285,  286,
1332       147,  286,  285,  285,  285,  285,  285,  285,  285,  287,
1333       285,  285,  285,  288,  285,  289,  285,  290,  285,  288,
1334       288,  288,  288,  288,  288,  288,  288,  288,  288,  288,
1335       288,  288,  288,  288,  288,  288,  288,  288,  288,  288,
1336       285,  285,  288,  288,  291,  288,  288,  288,  288,  288,
1337       288,  292,  288,  293,  288,  288,  288,  294,  288,  295,
1338       296,  288,  288,  288,  288,  288,  288,  300,  301,  147,
1339
1340       301,  300,  300,  300,  300,  300,  300,  300,  302,  300,
1341       300,  300,  682,  300,  304,  300,  305,  300,  542,  542,
1342       542,  584,  584,  584,  592,  592,  592,  606,  606,  606,
1343       617,  617,  617,  904,  904,  904, 1594, 1595,  585,  300,
1344       300,  593, 1596, 1603,  607, 1604, 1605,  618, 1585,  998,
1345       306,  300,  301,  147,  301,  300,  300,  300,  300,  300,
1346       300,  300,  302,  300,  300,  300,  998,  300,  304,  300,
1347       305,  300, 1606,  543,  625,  625,  625, 1338,  631,  631,
1348       631,  633,  633,  633,  642,  642,  642, 1009, 1009, 1009,
1349      1599,  626, 1607,  300,  300,  632, 1608, 1609,  634, 1610,
1350
1351      1586,  643, 1600,  998,  306,  310,  311,  147,  311,  310,
1352       310,  310,  310,  310,  310,  310,  312,  310,  310,  310,
1353      1611,  310,  314,  310,  315,  310,  647,  647,  647,  667,
1354       667,  667,  696,  696,  696,  696,  696,  696,  726,  726,
1355       726,  682, 1587,  648, 1612, 1613,  668,  310,  310, 1615,
1356       698,  316, 1616,  698, 1617, 1621,  728, 1230,  317, 1622,
1357       318, 1015, 1015, 1015,  896,  896,  896,  319,  310,  311,
1358       147,  311,  310,  310,  310,  310,  310,  310,  310,  312,
1359       310,  310,  310, 1623,  310,  314,  310,  315,  310,  699,
1360       726,  726,  726, 1627, 1601,  584,  584,  584,  731,  731,
1361
1362       731, 1628,  732, 1629, 1630,  733, 1602, 1631,  728, 1632,
1363       310,  310,  585, 1638,  316,  741,  741,  741, 1639,  742,
1364      1640,  317,  743,  318, 1021, 1021, 1021,  904,  904,  904,
1365       319,  324,  325,  147,  325,  324,  324,  324,  324,  324,
1366       324,  324,  326,  324,  324,  324,  729,  324,  328,  324,
1367       329,  324,  736,  736,  736, 1641, 1642,  736,  736,  736,
1368       592,  592,  592,  744,  744,  744,  747,  747,  747, 1643,
1369       738,  998, 1656,  324,  324,  738,  330,  593,  998,  331,
1370       745, 1633, 1635,  748,  762,  762,  762, 1658,  763, 1634,
1371      1636,  764,  682,  332,  324,  325,  147,  325,  324,  324,
1372
1373       324,  324,  324,  324,  324,  326,  324,  324,  324, 1650,
1374       324,  328,  324,  329,  324, 1662, 1651,  739, 1649, 1663,
1375       750,  750,  750,  758,  758,  758, 1664, 1665,  750,  750,
1376       750,  758,  758,  758, 1666, 1667,  324,  324,  752,  330,
1377      1668,  760,  331,  778,  778,  778,  752,  779, 1669,  760,
1378       780, 1047, 1047, 1047, 1670, 1671,  332,  338,  339,  147,
1379       339,  338,  338,  338,  338,  338,  338,  338,  340,  338,
1380       338,  338,  753,  338,  342,  338,  343,  338,  606,  606,
1381       606, 1672, 1673,  768,  768,  768,  773,  773,  773, 1674,
1382      1679,  761,  617,  617,  617,  607,  768,  768,  768,  338,
1383
1384       338,  770,  344, 1680,  775,  345, 1009, 1009, 1009,  618,
1385       346,  789,  789,  789,  770,  790, 1681, 1684,  791,  347,
1386       338,  339,  147,  339,  338,  338,  338,  338,  338,  338,
1387       338,  340,  338,  338,  338, 1685,  338,  342,  338,  343,
1388       338,  773,  773,  773,  771, 1686,  785,  785,  785,  785,
1389       785,  785,  625,  625,  625, 1687,  793,  793,  793,  775,
1390      1688, 1689,  338,  338,  787,  344, 1690,  787,  345,  626,
1391      1011, 1011, 1011,  346,  795, 1015, 1015, 1015, 1021, 1021,
1392      1021, 1691,  347,  352,  353,  147,  353,  352,  352,  352,
1393       352,  352,  352,  352,  354,  352,  352,  352,  776,  352,
1394
1395       356,  352,  357,  352, 1692, 1693,  788, 1694, 1696,  793,
1396       793,  793,  631,  631,  631,  799,  799,  799, 1697,  800,
1397      1698, 1699,  801, 1700, 1701,  352,  352,  795, 1708,  632,
1398      1022, 1022, 1022, 1047, 1047, 1047,  358,  352,  353,  147,
1399       353,  352,  352,  352,  352,  352,  352,  352,  354,  352,
1400       352,  352,  998,  352,  356,  352,  357,  352,  633,  633,
1401       633,  802,  802,  802, 1709,  803, 1710, 1711,  804,  796,
1402       805,  805,  805, 1712, 1713,  634, 1246, 1246, 1246,  352,
1403       352,  815,  815,  815, 1705,  816, 1716,  806,  817, 1717,
1404       358,  362,  363,  147,  363,  362,  362,  362,  362,  362,
1405
1406       362,  362,  364,  362,  362,  362, 1718,  362,  366,  362,
1407       367,  362,  811,  811,  811,  642,  642,  642,  818,  818,
1408       818,  811,  811,  811,  818,  818,  818,  647,  647,  647,
1409       813, 1719,  643,  362,  362,  682,  820, 1720, 1721,  813,
1410      1722,  368,  820,  369,  648,  370, 1127, 1127, 1127, 1248,
1411      1248, 1248, 1723,  371,  362,  363,  147,  363,  362,  362,
1412       362,  362,  362,  362,  362,  364,  362,  362,  362, 1728,
1413       362,  366,  362,  367,  362,  814,  823,  823,  823, 1704,
1414       824,  821, 1731,  825,  829,  829,  829,  829,  829,  829,
1415       834,  834,  834,  836,  836,  836,  362,  362,  845,  845,
1416
1417       845, 1732,  831, 1736,  368,  831,  369,  835,  370, 1737,
1418       837, 1130, 1130, 1130, 1738,  846,  371,  377,  378,  147,
1419       378,  377,  377,  377,  377,  377,  377,  377,  379,  377,
1420       377,  377, 1739,  377,  381,  377,  382,  377, 1740,  832,
1421       840,  840,  840, 1741,  848,  848,  848,  840,  840,  840,
1422       850,  850,  850,  850,  850,  850, 1729, 1730,  842,  377,
1423       377,  849,  667,  667,  667,  842, 1742, 1743,  852, 1744,
1424      1745,  852, 1746,  854,  854,  854, 1749,  855, 1750,  668,
1425       856, 1751,  383,  377,  378,  147,  378,  377,  377,  377,
1426       377,  377,  377,  377,  379,  377,  377,  377, 1752,  377,
1427
1428       381,  377,  382,  377,  843,  857,  857,  857, 1753, 1754,
1429       853,  857,  857,  857,  865,  865,  865,  865,  865,  865,
1430       871,  871,  871,  859, 1769,  377,  377,  682, 1770,  859,
1431      1771, 1772,  867, 1776, 1777,  867, 1778, 1779,  873,  871,
1432       871,  871,  696,  696,  696,  911,  911,  911,  383,  391,
1433       696,  696,  696, 1011, 1011, 1011,  407,  873, 1761, 1780,
1434       698, 1781,  912,  860, 1783,  390, 1784, 1012,  698,  696,
1435       696,  696, 1785,  726,  726,  726, 1786,  868,  726,  726,
1436       726, 1791, 1792,  726,  726,  726, 1793,  698, 1794, 1795,
1437       408,  728,  409, 1796, 1797,  410,  728,  411,  412,  874,
1438
1439       413,  728, 1798, 1799,  414, 1800,  415,  416,  417,  391,
1440       914,  914,  914,  884, 1801, 1802,  407,  731,  731,  731,
1441      1803,  732, 1804,  682,  733,  390, 1819,  915, 1820,  913,
1442      2022, 2022, 2022,  736,  736,  736,  736,  736,  736, 1821,
1443      1822,  736,  736,  736,  744,  744,  744, 2022, 1823, 1824,
1444       408,  738,  418, 1825,  738,  419, 1826,  420,  412,  738,
1445       421,  745, 1813, 1827,  414, 1828,  422,  423,  424,  741,
1446       741,  741, 1831,  742, 1832, 1833,  743,  920,  920,  920,
1447      1834,  921, 1841, 1842,  922,  918, 1843,  916,  923,  923,
1448       923,  747,  747,  747,  925,  925,  925, 1844,  926, 1845,
1449
1450      1846,  927,  750,  750,  750,  924, 1847, 1848,  748,  750,
1451       750,  750,  750,  750,  750,  932,  932,  932, 1849, 1850,
1452       752,  758,  758,  758,  758,  758,  758,  752, 1851, 1852,
1453       752, 1862,  933,  758,  758,  758,  762,  762,  762,  760,
1454       763, 1863,  760,  764,  768,  768,  768,  768,  768,  768,
1455      1864,  760,  768,  768,  768,  773,  773,  773,  773,  773,
1456       773, 1857,  770, 1857,  682,  770, 1865, 1866,  929, 1867,
1457       770, 1868, 1869,  775, 1860, 1858,  775,  935,  773,  773,
1458       773,  778,  778,  778, 1870,  779, 1871, 1876,  780,  785,
1459       785,  785,  785,  785,  785, 1877,  775,  785,  785,  785,
1460
1461      1878,  789,  789,  789, 1879,  790, 1855,  787,  791, 1880,
1462       787,  793,  793,  793,  939,  787,  793,  793,  793,  793,
1463       793,  793, 1881,  799,  799,  799, 1882,  800, 1883,  795,
1464       801,  805,  805,  805,  795, 1888, 1872,  795,  941,  802,
1465       802,  802,  682,  803, 1874, 1888,  804, 1873,  806,  952,
1466       952,  952, 1891,  953, 1892, 1875,  954, 1857,  947,  811,
1467       811,  811,  811,  811,  811,  811,  811,  811,  815,  815,
1468       815, 1858,  816,  998,  999,  817,  949,  813, 1902, 1886,
1469       813, 1903, 1904,  813,  818,  818,  818,  818,  818,  818,
1470       818,  818,  818,  823,  823,  823, 1857,  824, 1905, 1888,
1471
1472       825, 1909,  820, 1888, 1910,  820, 1911, 1860,  820,  829,
1473       829,  829,  829,  829,  829,  829,  829,  829,  834,  834,
1474       834, 1921,  967,  967,  967, 1925,  968,  831,  959,  969,
1475       831, 1926, 1927,  831, 1928,  835, 1932,  836,  836,  836,
1476       970,  970,  970, 1933,  971, 1934, 1935,  972,  840,  840,
1477       840, 1936, 1937,  960,  837,  840,  840,  840,  840,  840,
1478       840,  845,  845,  845, 1941,  682,  842, 1942,  977,  977,
1479       977,  965,  978,  842, 1943,  979,  842, 1944,  846,  848,
1480       848,  848,  981,  981,  981, 1945,  982, 1940,  682,  983,
1481       850,  850,  850,  850,  850,  850,  849,  850,  850,  850,
1482
1483       854,  854,  854, 1949,  855, 1950, 1948,  856,  852, 1951,
1484      1952,  852,  857,  857,  857,  852,  857,  857,  857, 1953,
1485       682,  975,  857,  857,  857,  987,  987,  987, 1959, 1960,
1486       859,  865,  865,  865,  859,  865,  865,  865, 1961, 1956,
1487       859, 1962,  988,  865,  865,  865,  871,  871,  871,  867,
1488       871,  871,  871,  867,  871,  871,  871,  997,  997,  997,
1489       984,  867, 1969, 1970,  873,  696,  696,  696,  873,  911,
1490       911,  911,  873, 1484,  682,  998,  999,  682,  985, 1022,
1491      1022, 1022,  682,  698,  682,  682,  912, 1031, 1031, 1031,
1492      1965, 1032,  682, 1012, 1033,  726,  726,  726, 1973,  682,
1493
1494       991,  914,  914,  914,  994, 1035, 1035, 1035,  682, 1036,
1495       682, 1987, 1037,  728,  736,  736,  736, 1983,  915,  920,
1496       920,  920,  682,  921, 1997, 1984,  922, 1005,  923,  923,
1497       923, 1483,  738, 1042, 1042, 1042, 1991, 1043,  682, 1482,
1498      1044,  750,  750,  750, 1988,  924,  925,  925,  925, 1034,
1499       926, 1481, 2015,  927,  932,  932,  932,  682,  682,  752,
1500      1040, 1049, 1049, 1049, 2005, 1050,  682,  682, 1051,  682,
1501      1998,  933, 1052, 1052, 1052,  758,  758,  758, 1058, 1058,
1502      1058,  773,  773,  773, 1065, 1065, 1065, 1480, 1046, 1053,
1503      1067, 1067, 1067,  760, 1992, 2009, 1059,  682, 2010,  775,
1504
1505      2006, 1066,  785,  785,  785, 2019,  682, 1068, 1071, 1071,
1506      1071, 2016,  793,  793,  793, 1074, 1074, 1074,  682,  682,
1507       787, 1054, 2022, 2022, 2022, 1072, 1077, 1077, 1077, 1061,
1508       795, 2007, 1075, 1069,  952,  952,  952,  682,  953, 2022,
1509      2008,  954, 1479, 1078, 2022, 2022, 2022, 2013, 2022, 2022,
1510      2022, 2022, 2022, 2022,  811,  811,  811,  818,  818,  818,
1511      2011, 2022, 2012, 1478, 1070, 2022, 2014, 1472, 2022,  682,
1512      1073,  682,  813, 1471,  682,  820, 1470, 1087, 1087, 1087,
1513       829,  829,  829, 1469, 1076,  682,  967,  967,  967, 2019,
1514       968, 1468, 1080,  969, 1088,  970,  970,  970,  831,  971,
1515
1516       682, 1467,  972, 2017, 1022, 1022, 1022,  840,  840,  840,
1517      1079,  987,  987,  987, 2018, 1082, 1466, 1081, 1093, 1083,
1518      1089, 1465,  977,  977,  977,  842,  978, 1461,  988,  979,
1519       981,  981,  981, 1090,  982, 1460, 1459,  983,  850,  850,
1520       850,  857,  857,  857, 1100, 1100, 1100, 1458, 1101, 1457,
1521      1456, 1102,  865,  865,  865, 1455,  852, 1454, 1453,  859,
1522      1107, 1107, 1107,  871,  871,  871,  997,  997,  997, 1094,
1523       867,  696,  696,  696, 1127, 1127, 1127, 1108, 1130, 1130,
1524      1130,  873, 1452, 1451,  998, 1127, 1127, 1127, 1128,  698,
1525      1448, 1445, 1131, 1444, 1098, 1136, 1136, 1136, 1105, 1128,
1526
1527      1097, 1138, 1138, 1138, 1138, 1138, 1138, 1443, 1442, 1131,
1528      1136, 1136, 1136, 1430, 1111, 1139, 1428, 1427, 1139, 1417,
1529      1118, 1031, 1031, 1031, 1141, 1032, 1109, 1411, 1033, 1406,
1530      1112,  726,  726,  726, 1129, 1035, 1035, 1035, 1405, 1036,
1531      1401, 1394, 1037, 1389, 1388, 1135, 1052, 1052, 1052,  728,
1532       736,  736,  736, 1042, 1042, 1042, 1387, 1043, 1381, 1380,
1533      1044, 1129, 1379, 1053, 1135,  750,  750,  750,  738, 1049,
1534      1049, 1049, 1378, 1050, 1377, 1376, 1051, 1158, 1158, 1158,
1535      1375, 1159, 1374,  752, 1160,  758,  758,  758, 1162, 1162,
1536      1162, 2022, 2022, 2022, 1142, 1165, 1165, 1165, 1145, 1058,
1537
1538      1058, 1058, 1373,  760, 1372, 1163, 1366, 1365, 2022, 1167,
1539      1167, 1167, 1166,  773,  773,  773, 1364, 1059, 1065, 1065,
1540      1065, 1363, 1148, 1173, 1173, 1173, 1168, 1174, 1361, 1359,
1541      1175,  775, 1355, 1161, 1354, 1066, 1067, 1067, 1067, 1176,
1542      1176, 1176, 1352, 1177, 1351, 1164, 1178, 1180, 1180, 1180,
1543      1071, 1071, 1071, 1068, 1182, 1182, 1182, 1169, 1183, 1347,
1544      1340, 1184, 1185, 1185, 1185, 1181, 1335, 1072, 1074, 1074,
1545      1074, 1187, 1187, 1187, 1333, 1188, 1332, 1331, 1189, 1322,
1546      1186, 1190, 1190, 1190, 1317, 1075, 1077, 1077, 1077, 1192,
1547      1192, 1192, 1316, 1193, 1315, 1314, 1194, 1310, 1191, 1195,
1548
1549      1195, 1195, 1296, 1078, 2022, 2022, 2022, 1198, 1198, 1198,
1550       811,  811,  811,  818,  818,  818, 1196, 1087, 1087, 1087,
1551      1295, 2022, 1294, 1293, 1199, 1205, 1205, 1205,  813, 1206,
1552      1292,  820, 1207, 1291, 1088, 1209, 1209, 1209, 1211, 1211,
1553      1211, 1277, 2022, 2022, 2022,  840,  840,  840, 1216, 1216,
1554      1216, 1274, 1273, 1210, 1272, 1212, 1269, 1268, 1197, 2022,
1555      1264, 1201, 1263,  842, 1260, 1217, 2022, 2022, 2022,  850,
1556       850,  850, 1200, 1259,  857,  857,  857, 1100, 1100, 1100,
1557      1257, 1101, 1256, 2022, 1102, 1255, 1254,  852, 1220,  865,
1558       865,  865,  859, 1215, 1107, 1107, 1107, 1226, 1226, 1226,
1559
1560      1251, 1227, 1213, 1250, 1228, 1249, 1247,  867, 1245, 1218,
1561      1244, 1108,  871,  871,  871, 1243, 1242, 1219, 1234, 1234,
1562      1234, 2022, 2022, 2022, 2022, 2022, 2022,  696,  696,  696,
1563       873, 1252, 1252, 1252, 1241, 1235, 1240, 1224, 2022, 1239,
1564      1233, 2022, 1253, 1253, 1253,  698, 1136, 1136, 1136, 1138,
1565      1138, 1138,  726,  726,  726, 1225, 1261, 1261, 1261,  750,
1566       750,  750, 1266, 1266, 1266, 1223, 1222, 1229, 1221, 1214,
1567       728, 1208, 1204, 1236, 1262, 1203, 1202,  752, 1179, 1267,
1568      1172, 1237, 1171, 1170, 1238, 1158, 1158, 1158, 1149, 1159,
1569      1147, 1146, 1160,  758,  758,  758, 1162, 1162, 1162, 1258,
1570
1571      1144, 1279, 1279, 1279, 1143, 1280, 1140, 1278, 1281, 1137,
1572      1134,  760, 1133, 1163, 1265, 1282, 1282, 1282, 1165, 1165,
1573      1165, 1284, 1284, 1284, 1132, 1285, 1126, 1125, 1286, 1167,
1574      1167, 1167, 1283, 1124, 1123, 1166, 1287, 1287, 1287, 1122,
1575      1288, 1121, 1120, 1289, 1119, 1115, 1168,  773,  773,  773,
1576      1173, 1173, 1173, 1114, 1174, 1113,  998, 1175, 1106, 1176,
1577      1176, 1176, 1104, 1177, 1103,  775, 1178, 1180, 1180, 1180,
1578      1182, 1182, 1182, 1099, 1183, 1096, 1095, 1184, 1185, 1185,
1579      1185, 1092, 1187, 1187, 1187, 1181, 1188, 1091, 1086, 1189,
1580      1190, 1190, 1190, 1290, 1085, 1084, 1186, 1297, 1297, 1297,
1581
1582      1064, 1298, 1063, 1062, 1299, 1060, 1057, 1191, 1192, 1192,
1583      1192, 1056, 1193, 1055, 1048, 1194, 1195, 1195, 1195, 1300,
1584      1300, 1300, 1045, 1301, 1041, 1039, 1302, 1303, 1303, 1303,
1585      1198, 1198, 1198, 1196, 1305, 1305, 1305, 1038, 1306, 1030,
1586      1029, 1307, 1028, 1027, 1304, 1026, 1025, 1199,  811,  811,
1587       811,  818,  818,  818, 1311, 1311, 1311, 1205, 1205, 1205,
1588      1024, 1206, 1023, 1020, 1207, 1019,  813, 1018, 1017,  820,
1589      1016, 1312, 1209, 1209, 1209, 1211, 1211, 1211, 1318, 1318,
1590      1318, 1014, 1319, 1013, 1010, 1320, 2022, 2022, 2022, 1008,
1591      1210, 1007, 1212, 1216, 1216, 1216, 1308, 1313,  840,  840,
1592
1593       840, 1006, 1004, 2022, 2022, 2022, 2022, 1328, 1328, 1328,
1594      1217, 1309, 1323, 1324, 1324, 1324,  842, 1325, 1003, 1002,
1595      1326, 2022,  857,  857,  857, 1329,  865,  865,  865, 1226,
1596      1226, 1226, 1001, 1227, 1000,  993, 1228,  992, 1321,  990,
1597       859,  871,  871,  871,  867, 1234, 1234, 1234, 1341, 1341,
1598      1341,  989, 1342,  986,  980, 1343, 2022, 2022, 2022,  873,
1599       976, 1327, 1235, 2022, 2022, 2022,  974,  973, 1330,  966,
1600       696,  696,  696, 2022, 1348, 1348, 1348, 1349, 1349, 1349,
1601      2022, 1350, 1350, 1350, 1353, 1353, 1353, 1334,  698, 1336,
1602      1246, 1246, 1246, 1248, 1248, 1248, 1356, 1356, 1356, 1357,
1603
1604      1357, 1357, 1252, 1252, 1252, 1253, 1253, 1253, 1358, 1358,
1605      1358,  964, 1344, 1360, 1360, 1360,  726,  726,  726, 1261,
1606      1261, 1261, 1367, 1367, 1367,  963, 1345, 1266, 1266, 1266,
1607      1346, 1369, 1369, 1369,  728, 1370,  962, 1262, 1371,  961,
1608      1368,  758,  758,  758, 1267, 1279, 1279, 1279,  958, 1280,
1609       957,  956, 1281, 1282, 1282, 1282, 1383, 1383, 1383,  760,
1610      1384,  955,  951, 1385, 1362, 1284, 1284, 1284,  950, 1285,
1611      1283,  948, 1286, 1287, 1287, 1287,  946, 1288,  945,  944,
1612      1289,  773,  773,  773, 1297, 1297, 1297, 1382, 1298,  943,
1613       942, 1299,  940, 1300, 1300, 1300,  938, 1301,  937,  775,
1614
1615      1302, 1303, 1303, 1303, 1395, 1395, 1395,  936, 1396,  934,
1616       931, 1397, 1305, 1305, 1305,  928, 1306,  919, 1304, 1307,
1617       811,  811,  811, 1399, 1399, 1399, 1311, 1311, 1311, 1402,
1618      1402, 1402, 1386, 1403,  917,  910, 1404,  909,  813,  908,
1619       907, 1400,  905, 1312, 1318, 1318, 1318,  903, 1319,  902,
1620       901, 1320, 2022, 2022, 2022,  840,  840,  840, 1324, 1324,
1621      1324,  900, 1325,  899,  898, 1326, 2022, 2022, 2022, 2022,
1622      1328, 1328, 1328,  842,  857,  857,  857, 1425, 1425, 1425,
1623      1398,  897,  895, 2022,  865,  865,  865,  894, 1329, 1432,
1624      1432, 1432,  859,  891, 1426,  871,  871,  871, 1416, 1435,
1625
1626      1435, 1435,  867,  890, 1341, 1341, 1341,  682, 1342,  889,
1627      1418, 1343,  888,  873, 2022, 2022, 2022, 2022, 2022, 2022,
1628       887,  886, 1423,  696,  696,  696, 1439, 1439, 1439,  885,
1629       883, 2022,  882,  881, 2022,  880, 1424, 1348, 1348, 1348,
1630       879,  698, 1349, 1349, 1349, 1429, 1350, 1350, 1350,  878,
1631       877, 1431, 1440, 1440, 1440, 1441, 1441, 1441, 1353, 1353,
1632      1353, 1356, 1356, 1356, 1357, 1357, 1357, 1436, 1358, 1358,
1633      1358, 1360, 1360, 1360, 1446, 1446, 1446,  876, 1438, 1437,
1634      1449, 1449, 1449, 1367, 1367, 1367, 1369, 1369, 1369,  682,
1635      1370,  870, 1447, 1371,  758,  758,  758, 1450, 1383, 1383,
1636
1637      1383, 1368, 1384,  869,  864, 1385, 1463, 1463, 1463, 1395,
1638      1395, 1395,  760, 1396,  863,  862, 1397, 1473, 1473, 1473,
1639      1399, 1399, 1399,  861, 1464, 1475, 1475, 1475,  847, 1402,
1640      1402, 1402,  844, 1403,  839, 1474, 1404,  838, 1400, 1491,
1641      1491, 1491, 1476, 1493, 1493, 1493,  840,  840,  840,  833,
1642       828, 1462, 2022, 2022, 2022,  827, 1492,  857,  857,  857,
1643      1425, 1425, 1425,  826,  842, 1506, 1506, 1506, 1477, 2022,
1644       822,  810, 1503, 1503, 1503,  859, 1504, 1426,  809, 1505,
1645       808,  807, 1507, 1509, 1509, 1509, 1511, 1511, 1511,  871,
1646       871,  871, 1432, 1432, 1432, 1501, 1435, 1435, 1435,  792,
1647
1648       784, 1510, 1516, 1516, 1516,  783,  782,  873,  781, 1494,
1649       682,  777,  772, 1502, 2022, 2022, 2022,  767,  766, 1517,
1650      1519, 1519, 1519, 1439, 1439, 1439, 1440, 1440, 1440,  765,
1651       757, 2022, 1441, 1441, 1441, 1446, 1446, 1446, 1520, 1449,
1652      1449, 1449, 1526, 1526, 1526,  756, 1527,  755,  754, 1528,
1653      1513, 1512,  749, 1447,  746,  740, 1450,  758,  758,  758,
1654       735,  734, 1518, 1463, 1463, 1463, 1546, 1546, 1546, 1473,
1655      1473, 1473, 1475, 1475, 1475,  760,  730,  725, 1548, 1548,
1656      1548, 1464, 1549, 1547,  724, 1550,  723, 1474,  722, 1476,
1657      1556, 1556, 1556, 1491, 1491, 1491, 1564, 1564, 1564,  721,
1658
1659      1565,  720,  719, 1566, 1493, 1493, 1493, 1557,  718,  717,
1660      1492,  716,  715, 1540,  840,  840,  840, 2022, 2022, 2022,
1661      1576, 1576, 1576, 1503, 1503, 1503,  714, 1504,  713,  712,
1662      1505,  711,  842,  710, 2022, 1506, 1506, 1506, 1577, 1578,
1663      1578, 1578,  709, 1579,  708,  707, 1580,  706, 1581, 1581,
1664      1581,  705, 1507, 1509, 1509, 1509, 1511, 1511, 1511, 1583,
1665      1583, 1583,  704,  703, 1574, 1582,  702,  701, 1567,  700,
1666       695, 1510, 1516, 1516, 1516,  694,  693, 1584, 1575, 1588,
1667      1588, 1588,  692, 1589,  691,  690, 1590,  689,  688, 1517,
1668      1591, 1591, 1591, 1519, 1519, 1519, 1597, 1597, 1597, 1526,
1669
1670      1526, 1526,  685, 1527,  683,  682, 1528, 1592,  758,  758,
1671       758, 1520,  680, 1598, 1546, 1546, 1546, 1618, 1618, 1618,
1672       678, 1619,  677,  676, 1620,  674,  760,  673, 1548, 1548,
1673      1548, 1547, 1549,  672,  671, 1550, 1556, 1556, 1556, 1624,
1674      1624, 1624,  670, 1625,  666,  664, 1626, 1564, 1564, 1564,
1675       663, 1565,  662, 1557, 1566,  840,  840,  840, 2022, 2022,
1676      2022, 2022, 2022, 2022, 1614, 1576, 1576, 1576,  661,  660,
1677      1578, 1578, 1578,  842, 1579, 2022,  658, 1580, 2022, 1581,
1678      1581, 1581,  657, 1577, 1646, 1646, 1646,  656, 1647,  655,
1679       654, 1648, 1583, 1583, 1583,  653, 1582, 1588, 1588, 1588,
1680
1681       651, 1589,  650,  649, 1590, 1591, 1591, 1591,  646,  645,
1682      1584, 1652, 1652, 1652,  641, 1653,  639, 1637, 1654, 1644,
1683       638, 1645, 1592, 1655, 1655, 1655, 1657, 1657, 1657, 1597,
1684      1597, 1597, 1659, 1659, 1659,  637, 1660,  636,  635, 1661,
1685       758,  758,  758, 1676, 1676, 1676, 1598, 1618, 1618, 1618,
1686       630, 1619,  629,  627, 1620, 1682, 1682, 1682,  760,  624,
1687      1677, 1624, 1624, 1624,  622, 1625,  621,  620, 1626,  840,
1688       840,  840, 1683, 2022, 2022, 2022, 2022, 2022, 2022, 1655,
1689      1655, 1655, 1706, 1706, 1706,  619, 1678,  842, 1675,  616,
1690      2022,  615,  613, 2022, 1646, 1646, 1646,  612, 1647, 1707,
1691
1692       998, 1648, 1652, 1652, 1652,  610, 1653,  609,  608, 1654,
1693      1657, 1657, 1657, 1659, 1659, 1659,  605, 1660,  603,  602,
1694      1661, 1695, 1703, 1714, 1714, 1714,  758,  758,  758, 1676,
1695      1676, 1676, 1725, 1725, 1725, 1702, 1726,  601,  599, 1727,
1696      1715, 1682, 1682, 1682,  760,  597, 1677, 1733, 1733, 1733,
1697       596, 1734,  595,  594, 1735, 1747, 1747, 1747, 1683, 1755,
1698      1755, 1755, 1758, 1758, 1758, 1762, 1762, 1762, 1706, 1706,
1699      1706,  591, 1724, 1748,  590,  589, 1756,  586,  583, 1759,
1700       582,  580, 1763,  998,  579, 1707,  998,  577, 1764, 1764,
1701      1764,  574, 1765,  573,  570, 1766, 1767, 1767, 1767, 1768,
1702
1703      1768, 1768, 1757,  569,  568, 1760,  998, 1714, 1714, 1714,
1704      1773, 1773, 1773,  567, 1774,  566,  565, 1775,  758,  758,
1705       758, 1725, 1725, 1725, 1715, 1726,  560,  559, 1727, 1787,
1706      1787, 1787,  558, 1733, 1733, 1733,  760, 1734,  557,  556,
1707      1735, 1789, 1789, 1789,  555,  554, 1788, 1747, 1747, 1747,
1708      1755, 1755, 1755, 1805, 1805, 1805,  552, 1806, 1790,  551,
1709      1807, 2022, 2022, 2022,  550, 1748,  549, 1756, 1758, 1758,
1710      1758,  548, 1809, 1809, 1809,  547, 1810,  546, 2022, 1811,
1711      1782, 2022, 2022, 2022,  541, 1759, 1762, 1762, 1762, 1814,
1712      1814, 1814,  538, 1815,  540,  535, 1816,  533, 2022, 1767,
1713
1714      1767, 1767,  531, 1763,  998, 2022,  530,  998,  529, 1764,
1715      1764, 1764,  528, 1765,  527,  525, 1766, 1768, 1768, 1768,
1716       523, 1773, 1773, 1773,  521, 1774, 1808,  998, 1775, 1835,
1717      1835, 1835,  520, 1836,  519,  518, 1837,  517, 1829, 1829,
1718      1829,  516, 1787, 1787, 1787,  514, 1812,  996,  996,  996,
1719       996,  996,  996,  996,  996,  996, 1830,  513,  996, 1788,
1720      1789, 1789, 1789,  996,  996,  996,  998,  996, 1838, 1838,
1721      1838,  509, 1839,  508,  506, 1840,  505, 1790, 1805, 1805,
1722      1805,  502, 1806,  501,  500, 1807, 2022, 2022, 2022,  996,
1723       996,  996,  996,  996,  996,  996,  996,  996,  996,  996,
1724
1725       498,  496,  996, 2022, 2022, 2022, 2022,  996,  996,  996,
1726       998,  996, 1809, 1809, 1809,  494, 1810,  492,  491, 1811,
1727       488, 2022, 1814, 1814, 1814,  487, 1815,  483,  481, 1816,
1728      1829, 1829, 1829,  996,  996, 1835, 1835, 1835, 1853, 1836,
1729       998,  480, 1837, 1838, 1838, 1838,  478, 1839, 1830,  477,
1730      1840,  476, 2022, 2022, 2022,  475, 1854,  996,  996,  996,
1731       996,  996, 1861,  996,  996,  996,  474,  471,  996, 2022,
1732      2022, 2022, 2022,  996,  996,  996,  998,  996, 1890, 1890,
1733      1890, 1893, 1893, 1893, 1912, 1912, 1912, 2022, 1913,  469,
1734       468, 1914,  420, 1895, 1895, 1895,  998,  999, 1894,  996,
1735
1736       996,  996,  996,  996,  996,  996,  996,  996,  996, 1861,
1737      1896,  467,  996,  465, 1884,  463,  462,  996,  996,  996,
1738       998,  996, 1897, 1897, 1897, 1900, 1900, 1900, 2022, 2022,
1739      2022,  461, 1885, 2022, 2022, 2022, 1908, 1908, 1908, 1898,
1740       460,  458, 1901,  996,  996, 2022, 1890, 1890, 1890,  456,
1741      2022, 1893, 1893, 1893,  682, 1895, 1895, 1895,  455, 1915,
1742      1915, 1915,  454, 1916,  998, 1899, 1917,  452, 1894, 1897,
1743      1897, 1897, 1896, 1918, 1918, 1918,  450, 1919,  449, 1906,
1744      1920, 1900, 1900, 1900, 1907,  445, 1898,  444, 1922, 1922,
1745      1922,  442, 1923,  441, 1111, 1924,  438,  437, 1901, 2022,
1746
1747      2022, 2022, 2022, 2022, 2022, 1908, 1908, 1908, 1912, 1912,
1748      1912,  436, 1913,  434,  432, 1914, 2022,  430, 2022, 2022,
1749      1915, 1915, 1915,  682, 1916,  406,  405, 1917, 1918, 1918,
1750      1918,  403, 1919,  401,  395, 1920, 1922, 1922, 1922,  394,
1751      1923, 1931, 1929, 1924,  395, 1930, 2022, 2022, 2022, 2022,
1752      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1753      2022,  394,  393, 2022,  392, 2022, 2022, 2022, 2022, 2022,
1754      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 1957,
1755      1957, 1957, 2022, 2022, 2022, 2022, 2022, 2022, 1957, 1957,
1756      1957, 2022, 2022, 2022, 2022, 2022, 1958, 2022, 2022, 2022,
1757
1758      2022, 2022, 2022, 1938, 2022, 1958, 1939, 2022, 2022, 1954,
1759      2022, 1966, 1966, 1966, 1946, 1967, 2022, 1947, 1968, 2022,
1760      2022, 2022, 2022, 2022, 2022, 2022, 2022, 1955, 2022, 2022,
1761      1963, 2022, 2022, 1964, 2022, 2022, 2022, 2022, 2022, 2022,
1762      1966, 1966, 1966, 2022, 1967, 2022, 2022, 1968, 2022, 2022,
1763      2022, 2022, 2022, 2022, 1976, 1976, 1976, 2022, 2022, 2022,
1764      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 1976,
1765      1976, 1976,  682, 1979, 2022, 2022, 1980, 2022, 2022, 1971,
1766      2022, 2022, 1972, 2022, 2022, 2022, 2022,  682, 2022, 2022,
1767      2022, 1974, 2022, 2022, 1975, 2022, 2022, 2022, 2022, 2022,
1768
1769      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1770      2022, 2022, 2022, 1993, 1993, 1993, 2022, 2022, 1977, 2022,
1771      1978, 2022, 2022, 2022, 2022, 2022, 2022, 1995, 1995, 1995,
1772      1994, 1981, 1993, 1993, 1993, 2022, 1982, 2022, 1999, 1999,
1773      1999, 2022, 2000, 2022, 1996, 2001, 2022, 2022, 1986, 1994,
1774      2022, 1985, 2022, 1989, 1995, 1995, 1995, 2002, 2002, 2002,
1775      2022, 2003, 2022, 2022, 2004, 1999, 1999, 1999, 2022, 2000,
1776      2022, 1996, 2001, 1990, 2002, 2002, 2002, 2022, 2003, 2022,
1777      2022, 2004, 2020, 2020, 2020, 2020, 2020, 2020, 2022, 2022,
1778      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1779
1780      2021, 2022, 2022, 2021,  144,  144,  144,  144,  144,  144,
1781       144,  144,  144,  145,  145,  145,  145,  145,  145,  145,
1782       145,  145,  150,  150,  150,  150,  150,  150,  150,  150,
1783       150,  153,  153,  153,  153,  153,  153,  153,  153,  153,
1784       156,  156,  156,  156,  156,  156,  156,  156,  156,  159,
1785       159,  159,  159,  159,  159,  159,  159,  159,  166,  166,
1786       166,  166,  166,  166,  166,  166,  166,  174,  174,  174,
1787       174,  174,  174,  174,  174,  174,  179,  179,  179,  179,
1788       179,  179,  179,  179,  179,  189,  189,  189,  189,  189,
1789       189,  189,  189,  189,  193,  193,  193,  193,  193,  193,
1790
1791       193,  193,  193,  199,  199,  199,  199,  199,  199,  199,
1792       199,  199,  210,  210,  210,  210,  210,  210,  210,  210,
1793       210,  217,  217,  217,  217,  217,  217,  217,  217,  217,
1794       225,  225,  225,  225,  225,  225,  225,  225,  225,  231,
1795       231,  231,  231,  231,  231,  231,  231,  231,  237,  237,
1796       237,  237,  237,  237,  237,  237,  237,  244,  244,  244,
1797       244,  244,  244,  244,  244,  244,  250,  250,  250,  250,
1798       250,  250,  250,  250,  250,  256,  256,  256,  256,  256,
1799       256,  256,  256,  256,  262,  262,  262,  262,  262,  262,
1800       262,  262,  262,  270,  270,  270,  270,  270,  270,  270,
1801
1802       270,  270,  277,  277,  277,  277,  277,  277,  277,  277,
1803       277,  282,  282,  282,  282,  282,  282,  282,  282,  282,
1804       297,  297,  297,  297,  297,  297,  297,  297,  297,  303,
1805       303,  303,  303,  303,  303,  303,  303,  303,  307,  307,
1806       307,  307,  307,  307,  307,  307,  307,  313,  313,  313,
1807       313,  313,  313,  313,  313,  313,  320,  320,  320,  320,
1808       320,  320,  320,  320,  320,  327,  327,  327,  327,  327,
1809       327,  327,  327,  327,  334,  334,  334,  334,  334,  334,
1810       334,  334,  334,  341,  341,  341,  341,  341,  341,  341,
1811       341,  341,  348,  348,  348,  348,  348,  348,  348,  348,
1812
1813       348,  355,  355,  355,  355,  355,  355,  355,  355,  355,
1814       359,  359,  359,  359,  359,  359,  359,  359,  359,  365,
1815       365,  365,  365,  365,  365,  365,  365,  365,  372,  372,
1816       372,  372,  372,  372,  372,  372,  372,  380,  380,  380,
1817       380,  380,  380,  380,  380,  380,  384,  384,  384,  384,
1818       384,  384,  384,  384,  384,  404,  404,  404, 2022, 2022,
1819      2022,  404,  431,  431,  431, 2022, 2022, 2022,  431,  435,
1820       435,  435, 2022, 2022, 2022,  435,  443,  443,  443, 2022,
1821      2022, 2022,  443,  453,  453,  453, 2022, 2022, 2022,  453,
1822       459,  459,  459, 2022, 2022, 2022,  459,  466,  466,  466,
1823
1824      2022, 2022, 2022,  466,  470,  470,  470, 2022, 2022, 2022,
1825       470,  479,  479,  479, 2022, 2022, 2022,  479,  484,  484,
1826       484, 2022, 2022, 2022,  484,  495,  495,  495, 2022, 2022,
1827      2022,  495,  499,  499,  499, 2022, 2022, 2022,  499,  507,
1828       507,  507, 2022, 2022, 2022,  507,  515,  515,  515, 2022,
1829      2022, 2022,  515,  522,  522,  522, 2022, 2022, 2022,  522,
1830       526,  526,  526, 2022, 2022, 2022,  526,  534,  534,  534,
1831      2022, 2022, 2022,  534,  537,  537,  537,  537,  537,  537,
1832       537, 2022,  537,  553, 2022, 2022, 2022,  553,  581, 2022,
1833      2022, 2022,  581,  588, 2022, 2022, 2022,  588,  598, 2022,
1834
1835      2022, 2022,  598,  604, 2022, 2022, 2022,  604,  611, 2022,
1836      2022, 2022,  611,  614, 2022, 2022, 2022,  614,  623, 2022,
1837      2022, 2022,  623,  628, 2022, 2022, 2022,  628,  484,  484,
1838       484, 2022, 2022, 2022,  484,  640, 2022, 2022, 2022,  640,
1839       495,  495,  495, 2022, 2022, 2022,  495,  644, 2022, 2022,
1840      2022,  644,  499,  499,  499, 2022, 2022, 2022,  499,  652,
1841      2022, 2022, 2022,  652,  507,  507,  507, 2022, 2022, 2022,
1842       507,  659, 2022, 2022, 2022,  659,  515,  515,  515, 2022,
1843      2022, 2022,  515,  665, 2022, 2022, 2022,  665,  522,  522,
1844       522, 2022, 2022, 2022,  522,  669, 2022, 2022, 2022,  669,
1845
1846       526,  526,  526, 2022, 2022, 2022,  526,  675, 2022, 2022,
1847      2022,  675,  534,  534,  534, 2022, 2022, 2022,  534,  679,
1848      2022, 2022, 2022,  679,  681,  681,  681,  681,  681,  681,
1849       681,  681,  681,  687, 2022, 2022, 2022, 2022,  687,  404,
1850       404,  404, 2022, 2022, 2022,  404,  697,  697,  697,  697,
1851      2022, 2022,  697,  697,  431,  431,  431, 2022, 2022, 2022,
1852       431,  727,  727,  727,  727, 2022, 2022,  727,  727,  435,
1853       435,  435, 2022, 2022, 2022,  435,  737,  737,  737,  737,
1854      2022, 2022,  737,  737,  443,  443,  443, 2022, 2022, 2022,
1855       443,  751,  751,  751,  751, 2022, 2022,  751,  751,  453,
1856
1857       453,  453, 2022, 2022, 2022,  453,  759,  759,  759,  759,
1858      2022, 2022,  759,  759,  459,  459,  459, 2022, 2022, 2022,
1859       459,  769,  769,  769,  769, 2022, 2022,  769,  769,  466,
1860       466,  466, 2022, 2022, 2022,  466,  774,  774,  774,  774,
1861      2022, 2022,  774,  774,  470,  470,  470, 2022, 2022, 2022,
1862       470,  786,  786,  786,  786, 2022, 2022,  786,  786,  479,
1863       479,  479, 2022, 2022, 2022,  479,  794,  794,  794,  794,
1864      2022, 2022,  794,  794,  484,  484,  484, 2022, 2022, 2022,
1865       484,  812,  812,  812,  812, 2022, 2022,  812,  812,  819,
1866       819,  819,  819, 2022, 2022,  819,  819,  499,  499,  499,
1867
1868      2022, 2022, 2022,  499,  830,  830,  830,  830, 2022, 2022,
1869       830,  830,  507,  507,  507, 2022, 2022, 2022,  507,  841,
1870       841,  841,  841, 2022, 2022,  841,  841,  515,  515,  515,
1871      2022, 2022, 2022,  515,  851,  851,  851,  851, 2022, 2022,
1872       851,  851,  858,  858,  858,  858, 2022, 2022,  858,  858,
1873       526,  526,  526, 2022, 2022, 2022,  526,  866,  866,  866,
1874       866, 2022, 2022,  866,  866,  534,  534,  534, 2022, 2022,
1875      2022,  534,  872,  872,  872,  872, 2022, 2022,  872,  872,
1876       681,  681,  681,  681,  681,  681,  681,  681,  681,  687,
1877      2022,  687, 2022, 2022,  687,  404,  404,  404, 2022, 2022,
1878
1879      2022,  404,  697,  697,  697,  697, 2022, 2022,  697,  697,
1880       431,  431,  431,  431, 2022,  431, 2022,  431,  727,  727,
1881       727,  727, 2022, 2022,  727,  727,  435,  435,  435,  435,
1882      2022,  435, 2022,  435,  737,  737,  737,  737, 2022, 2022,
1883       737,  737,  443,  443,  443, 2022, 2022, 2022,  443,  751,
1884       751,  751,  751, 2022, 2022,  751,  751,  453,  453,  453,
1885      2022, 2022, 2022,  453,  759,  759,  759,  759, 2022, 2022,
1886       759,  759,  459,  459,  459, 2022, 2022, 2022,  459,  769,
1887       769,  769,  769, 2022, 2022,  769,  769,  466,  466,  466,
1888      2022, 2022, 2022,  466,  774,  774,  774,  774, 2022, 2022,
1889
1890       774,  774,  470,  470,  470, 2022, 2022, 2022,  470,  786,
1891       786,  786,  786, 2022, 2022,  786,  786,  479,  479,  479,
1892      2022, 2022, 2022,  479,  794,  794,  794,  794, 2022, 2022,
1893       794,  794,  484,  484,  484, 2022, 2022, 2022,  484,  812,
1894       812,  812,  812, 2022, 2022,  812,  812,  819,  819,  819,
1895       819, 2022, 2022,  819,  819,  499,  499,  499, 2022, 2022,
1896      2022,  499,  830,  830,  830,  830, 2022, 2022,  830,  830,
1897       507,  507,  507, 2022, 2022, 2022,  507,  841,  841,  841,
1898       841, 2022, 2022,  841,  841,  515,  515,  515, 2022, 2022,
1899      2022,  515,  851,  851,  851,  851, 2022, 2022,  851,  851,
1900
1901       858,  858,  858,  858, 2022, 2022,  858,  858,  526,  526,
1902       526, 2022, 2022, 2022,  526,  866,  866,  866,  866, 2022,
1903      2022,  866,  866,  534,  534,  534, 2022, 2022, 2022,  534,
1904       872,  872,  872,  872, 2022, 2022,  872,  872,  681,  681,
1905       681,  681,  681,  681,  681,  681,  681,  996,  996,  996,
1906       996,  996,  996,  996,  996,  996,  404,  404,  404, 2022,
1907      2022, 2022,  404,  697,  697,  697,  697, 2022, 2022,  697,
1908       697,  727,  727,  727,  727, 2022, 2022,  727,  727,  435,
1909       435,  435, 2022, 2022, 2022,  435,  737,  737,  737,  737,
1910      2022, 2022,  737,  737,  443,  443,  443, 2022, 2022, 2022,
1911
1912       443,  751,  751,  751,  751, 2022, 2022,  751,  751,  453,
1913       453,  453, 2022, 2022, 2022,  453,  759,  759,  759,  759,
1914      2022, 2022,  759,  759,  459,  459,  459, 2022, 2022, 2022,
1915       459,  769,  769,  769,  769, 2022, 2022,  769,  769,  466,
1916       466,  466, 2022, 2022, 2022,  466,  774,  774,  774,  774,
1917      2022, 2022,  774,  774,  470,  470,  470, 2022, 2022, 2022,
1918       470,  786,  786,  786,  786, 2022, 2022,  786,  786,  479,
1919       479,  479,  479, 2022,  479, 2022,  479,  794,  794,  794,
1920       794, 2022, 2022,  794,  794,  484,  484,  484,  484, 2022,
1921       484, 2022,  484,  812,  812,  812,  812, 2022, 2022,  812,
1922
1923       812,  819,  819,  819,  819, 2022, 2022,  819,  819,  499,
1924       499,  499, 2022, 2022, 2022,  499,  830,  830,  830,  830,
1925      2022, 2022,  830,  830,  507,  507,  507, 2022, 2022, 2022,
1926       507,  841,  841,  841,  841, 2022, 2022,  841,  841,  515,
1927       515,  515, 2022, 2022, 2022,  515,  851,  851,  851,  851,
1928      2022, 2022,  851,  851,  858,  858,  858,  858, 2022, 2022,
1929       858,  858,  526,  526,  526, 2022, 2022, 2022,  526,  866,
1930       866,  866,  866, 2022, 2022,  866,  866,  534,  534,  534,
1931       534, 2022,  534, 2022,  534,  872,  872,  872,  872, 2022,
1932      2022,  872,  872,  681,  681,  681,  681,  681,  681,  681,
1933
1934       681,  681,  996,  996,  996,  996,  996,  996,  996,  996,
1935       996,  404,  404,  404, 2022, 2022, 2022,  404,  697,  697,
1936       697,  697, 2022, 2022,  697,  697,  727,  727,  727,  727,
1937      2022, 2022,  727,  727,  435,  435,  435, 2022, 2022, 2022,
1938       435,  737,  737,  737,  737, 2022, 2022,  737,  737,  443,
1939       443,  443, 2022, 2022, 2022,  443,  751,  751,  751,  751,
1940      2022, 2022,  751,  751,  453,  453,  453, 2022, 2022, 2022,
1941       453,  759,  759,  759,  759, 2022, 2022,  759,  759,  459,
1942       459,  459,  459, 2022,  459, 2022,  459,  466,  466,  466,
1943       466, 2022,  466, 2022,  466,  774,  774,  774,  774, 2022,
1944
1945      2022,  774,  774,  470,  470,  470, 2022, 2022, 2022,  470,
1946       786,  786,  786,  786, 2022, 2022,  786,  786,  794,  794,
1947       794,  794, 2022, 2022,  794,  794,  484,  484,  484,  484,
1948      2022,  484, 2022,  484,  812,  812,  812,  812, 2022, 2022,
1949       812,  812,  819,  819,  819,  819, 2022, 2022,  819,  819,
1950       499,  499,  499, 2022, 2022, 2022,  499,  830,  830,  830,
1951       830, 2022, 2022,  830,  830,  507,  507,  507,  507, 2022,
1952       507, 2022,  507,  841,  841,  841,  841, 2022, 2022,  841,
1953       841,  515,  515,  515,  515, 2022,  515, 2022,  515,  851,
1954       851,  851,  851, 2022, 2022,  851,  851,  858,  858,  858,
1955
1956       858, 2022, 2022,  858,  858,  526,  526,  526, 2022, 2022,
1957      2022,  526,  866,  866,  866,  866, 2022, 2022,  866,  866,
1958       872,  872,  872,  872, 2022, 2022,  872,  872,  681,  681,
1959       681,  681,  681,  681,  681,  681,  681,  996,  996,  996,
1960       996,  996,  996,  996,  996,  996,  404,  404,  404,  404,
1961      2022,  404, 2022,  404,  697,  697,  697,  697, 2022, 2022,
1962       697,  697,  727,  727,  727,  727, 2022, 2022,  727,  727,
1963       435,  435,  435, 2022, 2022, 2022,  435,  737,  737,  737,
1964       737, 2022, 2022,  737,  737,  443,  443,  443, 2022, 2022,
1965      2022,  443,  751,  751,  751,  751, 2022, 2022,  751,  751,
1966
1967       453,  453,  453,  453, 2022,  453, 2022,  453,  759,  759,
1968       759,  759, 2022, 2022,  759,  759,  459,  459,  459,  459,
1969      2022,  459, 2022,  459,  774,  774,  774,  774, 2022, 2022,
1970       774,  774,  470,  470,  470, 2022, 2022, 2022,  470, 1817,
1971      1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1818, 1818,
1972      1818, 1818, 1818, 1818, 1818, 1818, 1818, 1856, 1856, 1856,
1973      1856, 1856, 1856, 1856, 1856, 1856, 1859, 1859, 1859, 1859,
1974      1859, 1859, 1859, 1859, 1859, 1887, 1887, 1887, 1887, 1887,
1975      1887, 1887, 1887, 1887, 1889, 1889, 1889, 1889, 1889, 1889,
1976      1889, 1889, 1889,  143, 2022, 2022, 2022, 2022, 2022, 2022,
1977
1978      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1979      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1980      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1981      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1982      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1983      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1984      2022, 2022, 2022
1985     } ;
1986
1987 static yyconst flex_int16_t yy_chk[7164] =
1988     {   0,
1989         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
1990         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
1991         4,   10,  219,    5,    0,    9,    6,    0,   10,    7,
1992         8,    8,    8,  148,   11,   13,   13,   12,   14,   14,
1993        13,   13,  220,   14,   14,  149,    8,   17,   17,  148,
1994        13,   15,   15,   14,   15,  152,   15,   16,   16,  414,
1995        16,  149,   16,   18,   18,  414,   15,   19,   19,   19,
1996       219,  152,   16,   20,   20,   20,   23,   23,   23,   24,
1997        24,   24,  266,   19,   25,   25,   25,  332,   17,   20,
1998       220,  266,   23,  425,  332,   24,  146,  146,  146,  425,
1999
2000        25,  147,  147,  147,   18,   21,   21,   21,   21,   21,
2001        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2002      1412,   21,   21,   21,   21,   21,   26,   26,   26,   27,
2003        27,   27,  319,   28,   28,   28,   29,   29,   29,   30,
2004        30,   30,   26,  319,  451,   27,  175,   21,   21,   28,
2005       451,  294,   29,  190,  294,   30,  151,  151,  151,  172,
2006       172,  172,  175,  180,  180,  180,  187,  187,  187,  190,
2007        21,  183,   21,   22,   22,   22,   22,   22,   22,   22,
2008        22,   22,   22,   22,   22,   22,   22,   22,  272,   22,
2009        22,   22,   22,   22,   31,   31,   31,   32,   32,   32,
2010
2011       995,   33,   33,   33,   34,   34,   34,   35,   35,   35,
2012        31,  415,  200,   32,  170,   22,   22,   33,  211,  183,
2013        34,  183,  995,   35,  415,   36,   36,   36,  200,  185,
2014       170,  194,  194,  194,  211,  185,  272,  185,   22,  185,
2015        22,   36,   37,   37,   37,   37,   37,   37,   37,   37,
2016        37,   37,   37,   37,   37,   37,   37,  291,   37,   37,
2017        37,   37,   37,   39,   39,   39,   40,   40,   40,  170,
2018        47,   47,   47,   43,   43,   44,   44,  291,   43,   39,
2019        44, 1152,   40,  215,   37,   37,   47,  215,   43, 1152,
2020        44,  215,   37,   38,   38,   38,   38,   38,   38,   38,
2021
2022        38,   38,   38,   38,   38,   38,   38,   38,  707,   38,
2023        38,   38,   38,   38,   43,  333,   44,   48,   48,   48,
2024       707,   49,   49,   49,   50,   50,   50,  197,  197,  197,
2025       208,  208,  208,   48,  684,   38,   38,   49,  684,  397,
2026        50,  336,  397,   38,   41,   41,   41,   41,   41,   41,
2027        41,   41,   41,   41,   41,   41,   41,   41,   41,  333,
2028        41,   41,   41,   41,   41,   51,   51,   51,   52,   52,
2029        52,  322,   53,   53,   53,   54,   54,   54,  218,  218,
2030       218,   51,  195,  205,   52,  336,   41,   41,   53,  195,
2031       205,   54, 1319, 1319,   41, 1320, 1320,   41,  195,  205,
2032
2033       223,  223,  223,   41,   42,   42,   42,   42,   42,   42,
2034        42,   42,   42,   42,   42,   42,   42,   42,   42,  322,
2035        42,   42,   42,   42,   42,   57,   57,   57,   58,   58,
2036        58,  720,   61,   61,   61,   62,   62,   62,  388,  226,
2037       238,   57, 1156,  720,   58,  233,   42,   42,   61,  422,
2038      1156,   62,  233,  388,   42,  226,  238,   42,  232,  232,
2039       232,  233,  422,   42,   45,   45,   45,   45,   45,   45,
2040        45,   45,   45,   45,   45,   45,   45,   45,   45,  754,
2041        45,   45,   45,   45,   45,   65,   65,   65,   66,   66,
2042        66,  754,   67,   67,   67,   68,   68,   68,   69,   69,
2043
2044        69,   65,  246,  251,   66, 1414,   45,   45,   67,  246,
2045       350,   68,  426, 1419,   69,   45, 1421,   45,  246,  251,
2046        45,  235,  235,  235,  254,  426,   45,   46,   46,   46,
2047        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
2048        46,   46,  439,   46,   46,   46,   46,   46,   70,   70,
2049        70,   73,   73,   73,  350,   74,   74,   74,   75,   75,
2050        75,   76,   76,   76,   70,  254,  263,   73,  254,   46,
2051        46,   74,  278, 1004,   75,  439, 1428,   76,   46, 1004,
2052        46, 1442,  263,   46,  245,  245,  245, 1112,  278,   46,
2053        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
2054
2055        55,   55,   55,   55,   55, 1443,   55,   55,   55,   55,
2056        55,   77,   77,   77,   78,   78,   78, 1112,   79,   79,
2057        79,   80,   80,   80,   83,   83,   83,   77, 1444,  630,
2058        78, 1111,   55,   55,   79,  289,  304,   80,  630,   55,
2059        83,  248,  248,  248,   55,  257,  257,  257,  260,  260,
2060       260,  289,  304,   55,   56,   56,   56,   56,   56,   56,
2061        56,   56,   56,   56,   56,   56,   56,   56,   56, 1111,
2062        56,   56,   56,   56,   56,   84,   84,   84,   87,   87,
2063        87, 1445,   88,   88,   88,   91,   91,   91,   92,   92,
2064        92,   84, 1325, 1325,   87, 1294,   56,   56,   88,  314,
2065
2066       328,   91, 1294,   56,   92,  271,  271,  271,   56,  275,
2067       275,  275,  283,  283,  283,  314,  328,   56,   59,   59,
2068        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
2069        59,   59,   59, 1448,   59,   59,   59,   59,   59,   95,
2070        95,   95,   96,   96,   96,  875,   97,   97,   97,   98,
2071        98,   98,   99,   99,   99,   95,  284,  428,   96, 1451,
2072        59,   59,   97,  284,  875,   98, 1232, 1433,   99, 1295,
2073       428,   59,  284,  286,  286,  286, 1295,   59, 1452,   59,
2074        59,   60,   60,   60,   60,   60,   60,   60,   60,   60,
2075        60,   60,   60,   60,   60,   60, 1433,   60,   60,   60,
2076
2077        60,   60,  100,  100,  100,  101,  101,  101, 1232,  102,
2078       102,  102,  105,  105,  105,  106,  106,  106,  100, 1326,
2079      1326,  101,  299,   60,   60,  102,  539, 1230,  105,  299,
2080      1453,  106, 1315, 1230,   60,  298,  298,  298,  299, 1315,
2081        60,  539,   60,   60,   63,   63,   63,   63,   63,   63,
2082        63,   63,   63,   63,   63,   63,   63,   63,   63, 1434,
2083        63,   63,   63,   63,   63,  107,  107,  107,  108,  108,
2084       108, 1454,  109,  109,  109,  110,  110,  110,  111,  111,
2085       111,  107, 1455, 1316,  108,  309,   63,   63,  109,  342,
2086      1316,  110,  309, 1434,  111,  301,  301,  301,  308,  308,
2087
2088       308,  309,  311,  311,  311,  342,   63,   64,   64,   64,
2089        64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
2090        64,   64, 1456,   64,   64,   64,   64,   64,  112,  112,
2091       112,  115,  115,  115, 1457,  116,  116,  116,  117,  117,
2092       117,  118,  118,  118,  112, 1458, 1338,  115, 1459,   64,
2093        64,  116,  356, 1413,  117, 1413, 1460,  118,  321,  321,
2094       321,  325,  325,  325,  335,  335,  335, 1461,  356,   64,
2095        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2096        71,   71,   71,   71,   71, 1338,   71,   71,   71,   71,
2097        71,  119,  119,  119,  120,  120,  120, 1465,  121,  121,
2098
2099       121,  122,  122,  122,  125,  125,  125,  119,  366,  361,
2100       120,  381,   71,   71,  121,   71,  361,  122, 1466, 1415,
2101       125, 1415, 1467,   71,  366,  361,   71,  381, 1339,   71,
2102      1468, 1470,   71,   72,   72,   72,   72,   72,   72,   72,
2103        72,   72,   72,   72,   72,   72,   72,   72, 1477,   72,
2104        72,   72,   72,   72,  126,  126,  126,  129,  129,  129,
2105      1478,  130,  130,  130,  131,  131,  131,  132,  132,  132,
2106       126, 1339,  386,  129, 1479,   72,   72,  130,   72,  386,
2107       131, 1050, 1420,  132, 1420, 1480,   72, 1050,  386,   72,
2108      1050, 1422,   72, 1422, 1050,   72,   81,   81,   81,   81,
2109
2110        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
2111        81,  374,   81,   81,   81,   81,   81,  133,  133,  133,
2112       134,  134,  134, 1482,  135,  135,  135,  136,  136,  136,
2113       139,  139,  139,  133, 1485, 1051,  134, 1486,   81,   81,
2114       135, 1051, 1487,  136, 1051,  374,  139,  162, 1051,   81,
2115       339,  339,  339,  349,  349,  349,  353,  353,  353,  374,
2116      1488,   81,   82,   82,   82,   82,   82,   82,   82,   82,
2117        82,   82,   82,   82,   82,   82,   82, 1489,   82,   82,
2118        82,   82,   82,  140,  140,  140,  162,  360,  360,  360,
2119      1490, 1495,  162,  363,  363,  363,  162, 1496, 1497,  140,
2120
2121      1498,  162, 1499, 1500,   82,   82,  373,  373,  373,  378,
2122       378,  378,  385,  385,  385,   82,  387,  387,  387,  542,
2123       542,  542, 1521,  542,  710,  710,  710,   82,   85,   85,
2124        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2125        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2126        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2127        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2128        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2129        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2130        85,   85,   85,   85,   85,   85,   85,   89,   89,   89,
2131
2132        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
2133        89,   89, 1513,   89,   89,   89,   89,   89,  396,  396,
2134       396,  437,  437,  437,  445,  445,  445,  460,  460,  460,
2135       472,  472,  472,  718,  718,  718, 1522, 1523,  437,   89,
2136        89,  445, 1524, 1529,  460, 1530, 1531,  472, 1513, 1231,
2137        89,   90,   90,   90,   90,   90,   90,   90,   90,   90,
2138        90,   90,   90,   90,   90,   90, 1514,   90,   90,   90,
2139        90,   90, 1532,  396,  480,  480,  480, 1231,  486,  486,
2140       486,  487,  487,  487,  496,  496,  496,  888,  888,  888,
2141      1527,  480, 1533,   90,   90,  486, 1534, 1535,  487, 1536,
2142
2143      1514,  496, 1527, 1515,   90,   93,   93,   93,   93,   93,
2144        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
2145      1537,   93,   93,   93,   93,   93,  501,  501,  501,  523,
2146       523,  523,  553,  553,  553,  554,  554,  554,  581,  581,
2147       581, 1110, 1515,  501, 1538, 1539,  523,   93,   93, 1541,
2148       553,   93, 1542,  554, 1543, 1551,  581, 1110,   93, 1552,
2149        93,  893,  893,  893,  896,  896,  896,   93,   94,   94,
2150        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
2151        94,   94,   94, 1553,   94,   94,   94,   94,   94,  554,
2152       582,  582,  582, 1558, 1528,  584,  584,  584,  585,  585,
2153
2154       585, 1559,  585, 1560, 1561,  585, 1528, 1562,  582, 1563,
2155        94,   94,  584, 1568,   94,  593,  593,  593, 1569,  593,
2156      1570,   94,  593,   94,  900,  900,  900,  904,  904,  904,
2157        94,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2158       103,  103,  103,  103,  103,  103,  582,  103,  103,  103,
2159       103,  103,  588,  588,  588, 1571, 1572,  589,  589,  589,
2160       592,  592,  592,  594,  594,  594,  596,  596,  596, 1573,
2161       588, 1586, 1594,  103,  103,  589,  103,  592, 1587,  103,
2162       594, 1565, 1566,  596,  607,  607,  607, 1596,  607, 1565,
2163      1566,  607, 1585,  103,  104,  104,  104,  104,  104,  104,
2164
2165       104,  104,  104,  104,  104,  104,  104,  104,  104, 1586,
2166       104,  104,  104,  104,  104, 1599, 1587,  589, 1585, 1600,
2167       598,  598,  598,  604,  604,  604, 1601, 1602,  599,  599,
2168       599,  605,  605,  605, 1603, 1604,  104,  104,  598,  104,
2169      1605,  604,  104,  618,  618,  618,  599,  618, 1606,  605,
2170       618,  930,  930,  930, 1607, 1609,  104,  113,  113,  113,
2171       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2172       113,  113,  599,  113,  113,  113,  113,  113,  606,  606,
2173       606, 1610, 1611,  611,  611,  611,  614,  614,  614, 1612,
2174      1616,  605,  617,  617,  617,  606,  612,  612,  612,  113,
2175
2176       113,  611,  113, 1617,  614,  113, 1009, 1009, 1009,  617,
2177       113,  626,  626,  626,  612,  626, 1621, 1623,  626,  113,
2178       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
2179       114,  114,  114,  114,  114, 1627,  114,  114,  114,  114,
2180       114,  615,  615,  615,  612, 1628,  623,  623,  623,  624,
2181       624,  624,  625,  625,  625, 1629,  628,  628,  628,  615,
2182      1630, 1631,  114,  114,  623,  114, 1632,  624,  114,  625,
2183      1011, 1011, 1011,  114,  628, 1015, 1015, 1015, 1021, 1021,
2184      1021, 1633,  114,  123,  123,  123,  123,  123,  123,  123,
2185       123,  123,  123,  123,  123,  123,  123,  123,  615,  123,
2186
2187       123,  123,  123,  123, 1634, 1635,  624, 1636, 1638,  629,
2188       629,  629,  631,  631,  631,  632,  632,  632, 1639,  632,
2189      1640, 1641,  632, 1642, 1643,  123,  123,  629, 1656,  631,
2190      1022, 1022, 1022, 1047, 1047, 1047,  123,  124,  124,  124,
2191       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
2192       124,  124, 1650,  124,  124,  124,  124,  124,  633,  633,
2193       633,  634,  634,  634, 1658,  634, 1662, 1663,  634,  629,
2194       635,  635,  635, 1664, 1665,  633, 1126, 1126, 1126,  124,
2195       124,  643,  643,  643, 1650,  643, 1667,  635,  643, 1668,
2196       124,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2197
2198       127,  127,  127,  127,  127,  127, 1669,  127,  127,  127,
2199       127,  127,  640,  640,  640,  642,  642,  642,  644,  644,
2200       644,  641,  641,  641,  645,  645,  645,  647,  647,  647,
2201       640, 1670,  642,  127,  127, 1649,  644, 1671, 1672,  641,
2202      1673,  127,  645,  127,  647,  127, 1127, 1127, 1127, 1129,
2203      1129, 1129, 1674,  127,  128,  128,  128,  128,  128,  128,
2204       128,  128,  128,  128,  128,  128,  128,  128,  128, 1678,
2205       128,  128,  128,  128,  128,  641,  648,  648,  648, 1649,
2206       648,  645, 1680,  648,  652,  652,  652,  653,  653,  653,
2207       655,  655,  655,  656,  656,  656,  128,  128,  662,  662,
2208
2209       662, 1681,  652, 1684,  128,  653,  128,  655,  128, 1685,
2210       656, 1130, 1130, 1130, 1686,  662,  128,  137,  137,  137,
2211       137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
2212       137,  137, 1687,  137,  137,  137,  137,  137, 1688,  653,
2213       659,  659,  659, 1689,  664,  664,  664,  660,  660,  660,
2214       665,  665,  665,  666,  666,  666, 1679, 1679,  659,  137,
2215       137,  664,  667,  667,  667,  660, 1690, 1691,  665, 1692,
2216      1693,  666, 1694,  668,  668,  668, 1696,  668, 1697,  667,
2217       668, 1698,  137,  138,  138,  138,  138,  138,  138,  138,
2218       138,  138,  138,  138,  138,  138,  138,  138, 1699,  138,
2219
2220       138,  138,  138,  138,  660,  669,  669,  669, 1700, 1701,
2221       666,  670,  670,  670,  675,  675,  675,  676,  676,  676,
2222       679,  679,  679,  669, 1710,  138,  138, 1704, 1711,  670,
2223      1712, 1713,  675, 1716, 1717,  676, 1719, 1720,  679,  680,
2224       680,  680,  696,  696,  696,  725,  725,  725,  138,  181,
2225       697,  697,  697,  890,  890,  890,  181,  680, 1704, 1721,
2226       696, 1723,  725,  670, 1728,  181, 1729,  890,  697,  699,
2227       699,  699, 1730,  726,  726,  726, 1731,  676,  727,  727,
2228       727, 1737, 1738,  729,  729,  729, 1739,  699, 1740, 1741,
2229       181,  726,  181, 1742, 1744,  181,  727,  181,  181,  680,
2230
2231       181,  729, 1746, 1749,  181, 1750,  181,  181,  181,  182,
2232       730,  730,  730,  699, 1751, 1752,  182,  731,  731,  731,
2233      1753,  731, 1754, 1761,  731,  182, 1769,  730, 1770,  729,
2234       734,  734,  734,  736,  736,  736,  737,  737,  737, 1771,
2235      1772,  739,  739,  739,  744,  744,  744,  734, 1776, 1777,
2236       182,  736,  182, 1778,  737,  182, 1779,  182,  182,  739,
2237       182,  744, 1761, 1780,  182, 1781,  182,  182,  182,  741,
2238       741,  741, 1783,  741, 1784, 1785,  741,  745,  745,  745,
2239      1786,  745, 1791, 1792,  745,  739, 1793,  734,  746,  746,
2240       746,  747,  747,  747,  748,  748,  748, 1794,  748, 1795,
2241
2242      1796,  748,  750,  750,  750,  746, 1799, 1800,  747,  751,
2243       751,  751,  753,  753,  753,  756,  756,  756, 1801, 1802,
2244       750,  758,  758,  758,  759,  759,  759,  751, 1803, 1804,
2245       753, 1819,  756,  761,  761,  761,  762,  762,  762,  758,
2246       762, 1821,  759,  762,  768,  768,  768,  769,  769,  769,
2247      1824,  761,  771,  771,  771,  773,  773,  773,  774,  774,
2248       774, 1815,  768, 1816, 1813,  769, 1825, 1827,  753, 1828,
2249       771, 1831, 1832,  773, 1816, 1815,  774,  761,  776,  776,
2250       776,  778,  778,  778, 1833,  778, 1834, 1841,  778,  785,
2251       785,  785,  786,  786,  786, 1842,  776,  788,  788,  788,
2252
2253      1844,  789,  789,  789, 1845,  789, 1813,  785,  789, 1847,
2254       786,  793,  793,  793,  771,  788,  794,  794,  794,  796,
2255       796,  796, 1848,  799,  799,  799, 1850,  799, 1851,  793,
2256       799,  805,  805,  805,  794, 1858, 1839,  796,  776,  802,
2257       802,  802, 1855,  802, 1840, 1860,  802, 1839,  805,  806,
2258       806,  806, 1862,  806, 1863, 1840,  806, 1856,  788,  811,
2259       811,  811,  812,  812,  812,  814,  814,  814,  815,  815,
2260       815, 1856,  815, 1857, 1857,  815,  796,  811, 1872, 1855,
2261       812, 1873, 1874,  814,  818,  818,  818,  819,  819,  819,
2262       821,  821,  821,  823,  823,  823, 1859,  823, 1875, 1887,
2263
2264       823, 1888,  818, 1889, 1891,  819, 1892, 1859,  821,  829,
2265       829,  829,  830,  830,  830,  832,  832,  832,  834,  834,
2266       834, 1899,  835,  835,  835, 1902,  835,  829,  814,  835,
2267       830, 1903, 1904,  832, 1905,  834, 1909,  836,  836,  836,
2268       837,  837,  837, 1921,  837, 1925, 1926,  837,  840,  840,
2269       840, 1927, 1928,  821,  836,  841,  841,  841,  843,  843,
2270       843,  845,  845,  845, 1933, 1931,  840, 1934,  846,  846,
2271       846,  832,  846,  841, 1935,  846,  843, 1936,  845,  848,
2272       848,  848,  849,  849,  849, 1937,  849, 1931, 1940,  849,
2273       850,  850,  850,  851,  851,  851,  848,  853,  853,  853,
2274
2275       854,  854,  854, 1941,  854, 1942, 1940,  854,  850, 1943,
2276      1944,  851,  857,  857,  857,  853,  858,  858,  858, 1945,
2277      1948,  843,  860,  860,  860,  862,  862,  862, 1950, 1951,
2278       857,  865,  865,  865,  858,  866,  866,  866, 1952, 1948,
2279       860, 1953,  862,  868,  868,  868,  871,  871,  871,  865,
2280       872,  872,  872,  866,  874,  874,  874,  876,  876,  876,
2281       853,  868, 1959, 1961,  871,  884,  884,  884,  872,  911,
2282       911,  911,  874, 1411, 1979,  876,  876, 1983,  860,  901,
2283       901,  901, 1980,  884, 1956, 1965,  911,  912,  912,  912,
2284      1956,  912, 1991,  901,  912,  913,  913,  913, 1965, 1987,
2285
2286       868,  914,  914,  914,  874,  915,  915,  915, 2013,  915,
2287      1984, 1983,  915,  913,  918,  918,  918, 1979,  914,  920,
2288       920,  920, 1997,  920, 1991, 1980,  920,  884,  923,  923,
2289       923, 1410,  918,  924,  924,  924, 1987,  924, 1992, 1409,
2290       924,  929,  929,  929, 1984,  923,  925,  925,  925,  913,
2291       925, 1408, 2013,  925,  932,  932,  932, 1988, 1998,  929,
2292       918,  933,  933,  933, 1997,  933, 2007, 2014,  933, 2008,
2293      1992,  932,  934,  934,  934,  935,  935,  935,  939,  939,
2294       939,  941,  941,  941,  945,  945,  945, 1407,  929,  934,
2295       946,  946,  946,  935, 1988, 2007,  939, 2005, 2008,  941,
2296
2297      1998,  945,  947,  947,  947, 2017, 2006,  946,  948,  948,
2298       948, 2014,  949,  949,  949,  950,  950,  950, 2011, 2017,
2299       947,  935,  951,  951,  951,  948,  955,  955,  955,  941,
2300       949, 2005,  950,  946,  952,  952,  952, 2012,  952,  951,
2301      2006,  952, 1406,  955,  956,  956,  956, 2011,  957,  957,
2302       957,  958,  958,  958,  959,  959,  959,  960,  960,  960,
2303      2009,  956, 2010, 1405,  947,  957, 2012, 1394,  958, 2009,
2304       949, 2010,  959, 1393, 2015,  960, 1392,  964,  964,  964,
2305       965,  965,  965, 1391,  951, 2016,  967,  967,  967, 2018,
2306       967, 1390,  957,  967,  964,  970,  970,  970,  965,  970,
2307
2308      2018, 1389,  970, 2015,  974,  974,  974,  975,  975,  975,
2309       956,  987,  987,  987, 2016,  959, 1388,  958,  974,  960,
2310       964, 1387,  977,  977,  977,  975,  977, 1381,  987,  977,
2311       981,  981,  981,  965,  981, 1380, 1379,  981,  984,  984,
2312       984,  985,  985,  985,  988,  988,  988, 1378,  988, 1377,
2313      1376,  988,  991,  991,  991, 1375,  984, 1374, 1373,  985,
2314       993,  993,  993,  994,  994,  994,  997,  997,  997,  975,
2315       991, 1005, 1005, 1005, 1017, 1017, 1017,  993, 1018, 1018,
2316      1018,  994, 1372, 1366,  997, 1024, 1024, 1024, 1017, 1005,
2317      1363, 1361, 1018, 1359,  985, 1025, 1025, 1025,  991, 1024,
2318
2319       984, 1027, 1027, 1027, 1029, 1029, 1029, 1355, 1354, 1025,
2320      1030, 1030, 1030, 1335,  997, 1027, 1333, 1332, 1029, 1322,
2321      1005, 1031, 1031, 1031, 1030, 1031,  994, 1317, 1031, 1314,
2322       997, 1034, 1034, 1034, 1017, 1035, 1035, 1035, 1313, 1035,
2323      1310, 1296, 1035, 1293, 1292, 1024, 1052, 1052, 1052, 1034,
2324      1040, 1040, 1040, 1042, 1042, 1042, 1291, 1042, 1277, 1276,
2325      1042, 1027, 1275, 1052, 1029, 1046, 1046, 1046, 1040, 1049,
2326      1049, 1049, 1274, 1049, 1273, 1272, 1049, 1053, 1053, 1053,
2327      1271, 1053, 1270, 1046, 1053, 1054, 1054, 1054, 1055, 1055,
2328      1055, 1056, 1056, 1056, 1034, 1057, 1057, 1057, 1040, 1058,
2329
2330      1058, 1058, 1269, 1054, 1268, 1055, 1264, 1263, 1056, 1060,
2331      1060, 1060, 1057, 1061, 1061, 1061, 1260, 1058, 1065, 1065,
2332      1065, 1259, 1046, 1066, 1066, 1066, 1060, 1066, 1257, 1255,
2333      1066, 1061, 1249, 1054, 1247, 1065, 1067, 1067, 1067, 1068,
2334      1068, 1068, 1244, 1068, 1243, 1056, 1068, 1070, 1070, 1070,
2335      1071, 1071, 1071, 1067, 1072, 1072, 1072, 1061, 1072, 1239,
2336      1233, 1072, 1073, 1073, 1073, 1070, 1225, 1071, 1074, 1074,
2337      1074, 1075, 1075, 1075, 1223, 1075, 1222, 1221, 1075, 1214,
2338      1073, 1076, 1076, 1076, 1208, 1074, 1077, 1077, 1077, 1078,
2339      1078, 1078, 1207, 1078, 1206, 1204, 1078, 1202, 1076, 1079,
2340
2341      1079, 1079, 1179, 1077, 1080, 1080, 1080, 1081, 1081, 1081,
2342      1082, 1082, 1082, 1083, 1083, 1083, 1079, 1087, 1087, 1087,
2343      1178, 1080, 1177, 1172, 1081, 1088, 1088, 1088, 1082, 1088,
2344      1171, 1083, 1088, 1170, 1087, 1090, 1090, 1090, 1091, 1091,
2345      1091, 1157, 1092, 1092, 1092, 1094, 1094, 1094, 1095, 1095,
2346      1095, 1155, 1154, 1090, 1153, 1091, 1151, 1150, 1080, 1092,
2347      1147, 1083, 1146, 1094, 1144, 1095, 1096, 1096, 1096, 1097,
2348      1097, 1097, 1082, 1143, 1098, 1098, 1098, 1100, 1100, 1100,
2349      1141, 1100, 1140, 1096, 1100, 1139, 1137, 1097, 1098, 1105,
2350      1105, 1105, 1098, 1094, 1107, 1107, 1107, 1108, 1108, 1108,
2351
2352      1133, 1108, 1092, 1132, 1108, 1131, 1128, 1105, 1125, 1096,
2353      1124, 1107, 1109, 1109, 1109, 1123, 1122, 1097, 1115, 1115,
2354      1115, 1116, 1116, 1116, 1117, 1117, 1117, 1118, 1118, 1118,
2355      1109, 1134, 1134, 1134, 1121, 1115, 1120, 1105, 1116, 1119,
2356      1114, 1117, 1135, 1135, 1135, 1118, 1136, 1136, 1136, 1138,
2357      1138, 1138, 1142, 1142, 1142, 1106, 1145, 1145, 1145, 1148,
2358      1148, 1148, 1149, 1149, 1149, 1104, 1103, 1109, 1099, 1093,
2359      1142, 1089, 1086, 1116, 1145, 1085, 1084, 1148, 1069, 1149,
2360      1064, 1117, 1063, 1062, 1118, 1158, 1158, 1158, 1048, 1158,
2361      1045, 1041, 1158, 1161, 1161, 1161, 1162, 1162, 1162, 1142,
2362
2363      1039, 1163, 1163, 1163, 1038, 1163, 1028, 1161, 1163, 1026,
2364      1023, 1161, 1020, 1162, 1148, 1164, 1164, 1164, 1165, 1165,
2365      1165, 1166, 1166, 1166, 1019, 1166, 1016, 1014, 1166, 1167,
2366      1167, 1167, 1164, 1013, 1012, 1165, 1168, 1168, 1168, 1010,
2367      1168, 1008, 1007, 1168, 1006, 1003, 1167, 1169, 1169, 1169,
2368      1173, 1173, 1173, 1002, 1173,  999,  996, 1173,  992, 1176,
2369      1176, 1176,  990, 1176,  989, 1169, 1176, 1180, 1180, 1180,
2370      1182, 1182, 1182,  986, 1182,  980,  976, 1182, 1185, 1185,
2371      1185,  973, 1187, 1187, 1187, 1180, 1187,  966,  963, 1187,
2372      1190, 1190, 1190, 1169,  962,  961, 1185, 1191, 1191, 1191,
2373
2374       944, 1191,  943,  942, 1191,  940,  938, 1190, 1192, 1192,
2375      1192,  937, 1192,  936,  931, 1192, 1195, 1195, 1195, 1196,
2376      1196, 1196,  928, 1196,  919,  917, 1196, 1197, 1197, 1197,
2377      1198, 1198, 1198, 1195, 1199, 1199, 1199,  916, 1199,  910,
2378       909, 1199,  908,  907, 1197,  906,  905, 1198, 1200, 1200,
2379      1200, 1201, 1201, 1201, 1203, 1203, 1203, 1205, 1205, 1205,
2380       903, 1205,  902,  899, 1205,  898, 1200,  897,  895, 1201,
2381       894, 1203, 1209, 1209, 1209, 1211, 1211, 1211, 1212, 1212,
2382      1212,  892, 1212,  891,  889, 1212, 1213, 1213, 1213,  887,
2383      1209,  886, 1211, 1216, 1216, 1216, 1200, 1203, 1215, 1215,
2384
2385      1215,  885,  883, 1213, 1218, 1218, 1218, 1219, 1219, 1219,
2386      1216, 1201, 1215, 1217, 1217, 1217, 1215, 1217,  882,  881,
2387      1217, 1218, 1220, 1220, 1220, 1219, 1224, 1224, 1224, 1226,
2388      1226, 1226,  880, 1226,  879,  870, 1226,  869, 1213,  864,
2389      1220, 1229, 1229, 1229, 1224, 1234, 1234, 1234, 1235, 1235,
2390      1235,  863, 1235,  861,  847, 1235, 1236, 1236, 1236, 1229,
2391       844, 1218, 1234, 1237, 1237, 1237,  839,  838, 1220,  833,
2392      1238, 1238, 1238, 1236, 1240, 1240, 1240, 1241, 1241, 1241,
2393      1237, 1242, 1242, 1242, 1245, 1245, 1245, 1224, 1238, 1229,
2394      1246, 1246, 1246, 1248, 1248, 1248, 1250, 1250, 1250, 1251,
2395
2396      1251, 1251, 1252, 1252, 1252, 1253, 1253, 1253, 1254, 1254,
2397      1254,  828, 1236, 1256, 1256, 1256, 1258, 1258, 1258, 1261,
2398      1261, 1261, 1265, 1265, 1265,  827, 1237, 1266, 1266, 1266,
2399      1238, 1267, 1267, 1267, 1258, 1267,  826, 1261, 1267,  822,
2400      1265, 1278, 1278, 1278, 1266, 1279, 1279, 1279,  810, 1279,
2401       809,  808, 1279, 1282, 1282, 1282, 1283, 1283, 1283, 1278,
2402      1283,  807,  798, 1283, 1258, 1284, 1284, 1284,  797, 1284,
2403      1282,  792, 1284, 1287, 1287, 1287,  784, 1287,  783,  782,
2404      1287, 1290, 1290, 1290, 1297, 1297, 1297, 1278, 1297,  781,
2405       777, 1297,  772, 1300, 1300, 1300,  767, 1300,  766, 1290,
2406
2407      1300, 1303, 1303, 1303, 1304, 1304, 1304,  765, 1304,  757,
2408       755, 1304, 1305, 1305, 1305,  749, 1305,  740, 1303, 1305,
2409      1308, 1308, 1308, 1309, 1309, 1309, 1311, 1311, 1311, 1312,
2410      1312, 1312, 1290, 1312,  735,  724, 1312,  723, 1308,  722,
2411       721, 1309,  719, 1311, 1318, 1318, 1318,  717, 1318,  716,
2412       715, 1318, 1321, 1321, 1321, 1323, 1323, 1323, 1324, 1324,
2413      1324,  714, 1324,  713,  712, 1324, 1327, 1327, 1327, 1321,
2414      1328, 1328, 1328, 1323, 1330, 1330, 1330, 1331, 1331, 1331,
2415      1308,  711,  709, 1327, 1334, 1334, 1334,  708, 1328, 1337,
2416      1337, 1337, 1330,  706, 1331, 1336, 1336, 1336, 1321, 1340,
2417
2418      1340, 1340, 1334,  705, 1341, 1341, 1341, 1337, 1341,  704,
2419      1323, 1341,  703, 1336, 1344, 1344, 1344, 1345, 1345, 1345,
2420       702,  701, 1327, 1346, 1346, 1346, 1347, 1347, 1347,  700,
2421       695, 1344,  694,  693, 1345,  692, 1330, 1348, 1348, 1348,
2422       689, 1346, 1349, 1349, 1349, 1334, 1350, 1350, 1350,  688,
2423       687, 1336, 1351, 1351, 1351, 1352, 1352, 1352, 1353, 1353,
2424      1353, 1356, 1356, 1356, 1357, 1357, 1357, 1344, 1358, 1358,
2425      1358, 1360, 1360, 1360, 1362, 1362, 1362,  685, 1346, 1345,
2426      1365, 1365, 1365, 1367, 1367, 1367, 1369, 1369, 1369,  681,
2427      1369,  678, 1362, 1369, 1382, 1382, 1382, 1365, 1383, 1383,
2428
2429      1383, 1367, 1383,  677,  674, 1383, 1386, 1386, 1386, 1395,
2430      1395, 1395, 1382, 1395,  673,  672, 1395, 1398, 1398, 1398,
2431      1399, 1399, 1399,  671, 1386, 1401, 1401, 1401,  663, 1402,
2432      1402, 1402,  661, 1402,  658, 1398, 1402,  657, 1399, 1416,
2433      1416, 1416, 1401, 1417, 1417, 1417, 1418, 1418, 1418,  654,
2434       651, 1382, 1423, 1423, 1423,  650, 1416, 1424, 1424, 1424,
2435      1425, 1425, 1425,  649, 1418, 1427, 1427, 1427, 1401, 1423,
2436       646,  639, 1426, 1426, 1426, 1424, 1426, 1425,  638, 1426,
2437       637,  636, 1427, 1429, 1429, 1429, 1430, 1430, 1430, 1431,
2438      1431, 1431, 1432, 1432, 1432, 1423, 1435, 1435, 1435,  627,
2439
2440       622, 1429, 1436, 1436, 1436,  621,  620, 1431,  619, 1418,
2441      1432,  616,  613, 1424, 1437, 1437, 1437,  610,  609, 1436,
2442      1438, 1438, 1438, 1439, 1439, 1439, 1440, 1440, 1440,  608,
2443       603, 1437, 1441, 1441, 1441, 1446, 1446, 1446, 1438, 1449,
2444      1449, 1449, 1450, 1450, 1450,  602, 1450,  601,  600, 1450,
2445      1432, 1431,  597, 1446,  595,  591, 1449, 1462, 1462, 1462,
2446       587,  586, 1437, 1463, 1463, 1463, 1472, 1472, 1472, 1473,
2447      1473, 1473, 1475, 1475, 1475, 1462,  583,  580, 1476, 1476,
2448      1476, 1463, 1476, 1472,  579, 1476,  578, 1473,  577, 1475,
2449      1484, 1484, 1484, 1491, 1491, 1491, 1492, 1492, 1492,  576,
2450
2451      1492,  575,  574, 1492, 1493, 1493, 1493, 1484,  573,  572,
2452      1491,  571,  570, 1462, 1494, 1494, 1494, 1501, 1501, 1501,
2453      1502, 1502, 1502, 1503, 1503, 1503,  569, 1503,  568,  567,
2454      1503,  566, 1494,  565, 1501, 1506, 1506, 1506, 1502, 1507,
2455      1507, 1507,  564, 1507,  563,  562, 1507,  561, 1508, 1508,
2456      1508,  560, 1506, 1509, 1509, 1509, 1511, 1511, 1511, 1512,
2457      1512, 1512,  559,  558, 1501, 1508,  557,  556, 1494,  555,
2458       552, 1509, 1516, 1516, 1516,  551,  550, 1512, 1501, 1517,
2459      1517, 1517,  548, 1517,  547,  546, 1517,  545,  544, 1516,
2460      1518, 1518, 1518, 1519, 1519, 1519, 1525, 1525, 1525, 1526,
2461
2462      1526, 1526,  540, 1526,  538,  537, 1526, 1518, 1540, 1540,
2463      1540, 1519,  536, 1525, 1546, 1546, 1546, 1547, 1547, 1547,
2464       535, 1547,  532,  531, 1547,  530, 1540,  529, 1548, 1548,
2465      1548, 1546, 1548,  528,  527, 1548, 1556, 1556, 1556, 1557,
2466      1557, 1557,  524, 1557,  520,  519, 1557, 1564, 1564, 1564,
2467       518, 1564,  517, 1556, 1564, 1567, 1567, 1567, 1574, 1574,
2468      1574, 1575, 1575, 1575, 1540, 1576, 1576, 1576,  516,  513,
2469      1578, 1578, 1578, 1567, 1578, 1574,  512, 1578, 1575, 1581,
2470      1581, 1581,  511, 1576, 1582, 1582, 1582,  510, 1582,  509,
2471       508, 1582, 1583, 1583, 1583,  505, 1581, 1588, 1588, 1588,
2472
2473       504, 1588,  503,  502, 1588, 1591, 1591, 1591,  500,  497,
2474      1583, 1592, 1592, 1592,  493, 1592,  492, 1567, 1592, 1574,
2475       491, 1575, 1591, 1593, 1593, 1593, 1595, 1595, 1595, 1597,
2476      1597, 1597, 1598, 1598, 1598,  490, 1598,  489,  488, 1598,
2477      1614, 1614, 1614, 1615, 1615, 1615, 1597, 1618, 1618, 1618,
2478       485, 1618,  482,  481, 1618, 1622, 1622, 1622, 1614,  477,
2479      1615, 1624, 1624, 1624,  476, 1624,  475,  474, 1624, 1637,
2480      1637, 1637, 1622, 1644, 1644, 1644, 1645, 1645, 1645, 1655,
2481      1655, 1655, 1651, 1651, 1651,  473, 1615, 1637, 1614,  471,
2482      1644,  468,  467, 1645, 1646, 1646, 1646,  464, 1646, 1651,
2483
2484      1651, 1646, 1652, 1652, 1652,  463, 1652,  462,  461, 1652,
2485      1657, 1657, 1657, 1659, 1659, 1659,  457, 1659,  456,  455,
2486      1659, 1637, 1645, 1666, 1666, 1666, 1675, 1675, 1675, 1676,
2487      1676, 1676, 1677, 1677, 1677, 1644, 1677,  454,  450, 1677,
2488      1666, 1682, 1682, 1682, 1675,  449, 1676, 1683, 1683, 1683,
2489       448, 1683,  447,  446, 1683, 1695, 1695, 1695, 1682, 1702,
2490      1702, 1702, 1703, 1703, 1703, 1705, 1705, 1705, 1706, 1706,
2491      1706,  444, 1675, 1695,  441,  440, 1702,  438,  436, 1703,
2492       433,  432, 1705, 1705,  429, 1706, 1706,  427, 1707, 1707,
2493      1707,  424, 1707,  423,  421, 1707, 1708, 1708, 1708, 1709,
2494
2495      1709, 1709, 1702,  420,  419, 1703, 1707, 1714, 1714, 1714,
2496      1715, 1715, 1715,  418, 1715,  417,  416, 1715, 1724, 1724,
2497      1724, 1725, 1725, 1725, 1714, 1725,  413,  412, 1725, 1732,
2498      1732, 1732,  411, 1733, 1733, 1733, 1724, 1733,  410,  409,
2499      1733, 1736, 1736, 1736,  408,  407, 1732, 1747, 1747, 1747,
2500      1755, 1755, 1755, 1756, 1756, 1756,  406, 1756, 1736,  405,
2501      1756, 1757, 1757, 1757,  402, 1747,  401, 1755, 1758, 1758,
2502      1758,  400, 1759, 1759, 1759,  399, 1759,  398, 1757, 1759,
2503      1724, 1760, 1760, 1760,  392, 1758, 1762, 1762, 1762, 1763,
2504      1763, 1763,  391, 1763,  389,  383, 1763,  379, 1760, 1767,
2505
2506      1767, 1767,  376, 1762, 1762,  375,  371, 1763,  370, 1764,
2507      1764, 1764,  369, 1764,  368,  364, 1764, 1768, 1768, 1768,
2508       358, 1773, 1773, 1773,  354, 1773, 1757, 1764, 1773, 1788,
2509      1788, 1788,  351, 1788,  347,  346, 1788,  345, 1782, 1782,
2510      1782,  344, 1787, 1787, 1787,  340, 1760, 1765, 1765, 1765,
2511      1765, 1765, 1765, 1765, 1765, 1765, 1782,  337, 1765, 1787,
2512      1789, 1789, 1789, 1765, 1765, 1765, 1765, 1765, 1790, 1790,
2513      1790,  331, 1790,  330,  326, 1790,  323, 1789, 1805, 1805,
2514      1805,  318, 1805,  317,  316, 1805, 1808, 1808, 1808, 1765,
2515      1765, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766,
2516
2517       312,  306, 1766, 1808, 1812, 1812, 1812, 1766, 1766, 1766,
2518      1766, 1766, 1809, 1809, 1809,  302, 1809,  296,  295, 1809,
2519       293, 1812, 1814, 1814, 1814,  292, 1814,  287,  281, 1814,
2520      1829, 1829, 1829, 1766, 1766, 1835, 1835, 1835, 1808, 1835,
2521      1814,  280, 1835, 1838, 1838, 1838,  276, 1838, 1829,  273,
2522      1838,  269, 1853, 1853, 1853,  268, 1812, 1817, 1817, 1817,
2523      1817, 1817, 1817, 1817, 1817, 1817,  267,  265, 1817, 1853,
2524      1854, 1854, 1854, 1817, 1817, 1817, 1817, 1817, 1861, 1861,
2525      1861, 1868, 1868, 1868, 1894, 1894, 1894, 1854, 1894,  261,
2526       258, 1894,  255, 1869, 1869, 1869, 1861, 1861, 1868, 1817,
2527
2528      1817, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
2529      1869,  253, 1818,  249, 1853,  243,  242, 1818, 1818, 1818,
2530      1818, 1818, 1870, 1870, 1870, 1871, 1871, 1871, 1884, 1884,
2531      1884,  241, 1854, 1885, 1885, 1885, 1886, 1886, 1886, 1870,
2532       240,  236, 1871, 1818, 1818, 1884, 1890, 1890, 1890,  230,
2533      1885, 1893, 1893, 1893, 1886, 1895, 1895, 1895,  229, 1896,
2534      1896, 1896,  228, 1896, 1890, 1870, 1896,  224, 1893, 1897,
2535      1897, 1897, 1895, 1898, 1898, 1898,  221, 1898,  216, 1884,
2536      1898, 1900, 1900, 1900, 1885,  214, 1897,  213, 1901, 1901,
2537      1901,  209, 1901,  206, 1890, 1901,  204,  203, 1900, 1906,
2538
2539      1906, 1906, 1907, 1907, 1907, 1908, 1908, 1908, 1912, 1912,
2540      1912,  202, 1912,  198,  192, 1912, 1906,  188,  184, 1907,
2541      1915, 1915, 1915, 1908, 1915,  178,  177, 1915, 1918, 1918,
2542      1918,  173, 1918,  169,  168, 1918, 1922, 1922, 1922,  167,
2543      1922, 1908, 1906, 1922,  161, 1907, 1929, 1929, 1929, 1930,
2544      1930, 1930, 1938, 1938, 1938, 1939, 1939, 1939, 1946, 1946,
2545      1946,  160,  158, 1929,  155,  143, 1930,    0,    0, 1938,
2546         0,    0, 1939,    0,    0, 1946, 1947, 1947, 1947, 1949,
2547      1949, 1949, 1954, 1954, 1954, 1955, 1955, 1955, 1957, 1957,
2548      1957,    0,    0, 1947,    0,    0, 1949,    0,    0, 1954,
2549
2550         0,    0, 1955, 1929,    0, 1957, 1930,    0,    0, 1946,
2551         0, 1958, 1958, 1958, 1938, 1958,    0, 1939, 1958, 1963,
2552      1963, 1963, 1964, 1964, 1964,    0,    0, 1947,    0,    0,
2553      1954,    0,    0, 1955,    0,    0, 1963,    0,    0, 1964,
2554      1966, 1966, 1966,    0, 1966,    0,    0, 1966, 1971, 1971,
2555      1971, 1972, 1972, 1972, 1973, 1973, 1973, 1974, 1974, 1974,
2556      1975, 1975, 1975,    0,    0, 1971,    0,    0, 1972, 1976,
2557      1976, 1976, 1973, 1976, 1974,    0, 1976, 1975,    0, 1963,
2558         0,    0, 1964, 1977, 1977, 1977,    0, 1976, 1978, 1978,
2559      1978, 1971,    0,    0, 1972, 1981, 1981, 1981,    0,    0,
2560
2561      1977,    0, 1982, 1982, 1982, 1978, 1985, 1985, 1985, 1986,
2562      1986, 1986, 1981, 1989, 1989, 1989,    0,    0, 1974, 1982,
2563      1975,    0,    0, 1985,    0,    0, 1986, 1990, 1990, 1990,
2564      1989, 1977, 1993, 1993, 1993,    0, 1978,    0, 1994, 1994,
2565      1994,    0, 1994,    0, 1990, 1994,    0,    0, 1982, 1993,
2566         0, 1981,    0, 1985, 1995, 1995, 1995, 1996, 1996, 1996,
2567         0, 1996,    0,    0, 1996, 1999, 1999, 1999,    0, 1999,
2568         0, 1995, 1999, 1986, 2002, 2002, 2002,    0, 2002,    0,
2569         0, 2002, 2019, 2019, 2019, 2020, 2020, 2020,    0,    0,
2570         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2571
2572      2019,    0,    0, 2020, 2023, 2023, 2023, 2023, 2023, 2023,
2573      2023, 2023, 2023, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
2574      2024, 2024, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025,
2575      2025, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026,
2576      2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2028,
2577      2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2029, 2029,
2578      2029, 2029, 2029, 2029, 2029, 2029, 2029, 2030, 2030, 2030,
2579      2030, 2030, 2030, 2030, 2030, 2030, 2031, 2031, 2031, 2031,
2580      2031, 2031, 2031, 2031, 2031, 2032, 2032, 2032, 2032, 2032,
2581      2032, 2032, 2032, 2032, 2033, 2033, 2033, 2033, 2033, 2033,
2582
2583      2033, 2033, 2033, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
2584      2034, 2034, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
2585      2035, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036,
2586      2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2038,
2587      2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2039, 2039,
2588      2039, 2039, 2039, 2039, 2039, 2039, 2039, 2040, 2040, 2040,
2589      2040, 2040, 2040, 2040, 2040, 2040, 2041, 2041, 2041, 2041,
2590      2041, 2041, 2041, 2041, 2041, 2042, 2042, 2042, 2042, 2042,
2591      2042, 2042, 2042, 2042, 2043, 2043, 2043, 2043, 2043, 2043,
2592      2043, 2043, 2043, 2044, 2044, 2044, 2044, 2044, 2044, 2044,
2593
2594      2044, 2044, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045,
2595      2045, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2596      2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2048,
2597      2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2049, 2049,
2598      2049, 2049, 2049, 2049, 2049, 2049, 2049, 2050, 2050, 2050,
2599      2050, 2050, 2050, 2050, 2050, 2050, 2051, 2051, 2051, 2051,
2600      2051, 2051, 2051, 2051, 2051, 2052, 2052, 2052, 2052, 2052,
2601      2052, 2052, 2052, 2052, 2053, 2053, 2053, 2053, 2053, 2053,
2602      2053, 2053, 2053, 2054, 2054, 2054, 2054, 2054, 2054, 2054,
2603      2054, 2054, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055,
2604
2605      2055, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056,
2606      2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2058,
2607      2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2059, 2059,
2608      2059, 2059, 2059, 2059, 2059, 2059, 2059, 2060, 2060, 2060,
2609      2060, 2060, 2060, 2060, 2060, 2060, 2061, 2061, 2061, 2061,
2610      2061, 2061, 2061, 2061, 2061, 2062, 2062, 2062,    0,    0,
2611         0, 2062, 2063, 2063, 2063,    0,    0,    0, 2063, 2064,
2612      2064, 2064,    0,    0,    0, 2064, 2065, 2065, 2065,    0,
2613         0,    0, 2065, 2066, 2066, 2066,    0,    0,    0, 2066,
2614      2067, 2067, 2067,    0,    0,    0, 2067, 2068, 2068, 2068,
2615
2616         0,    0,    0, 2068, 2069, 2069, 2069,    0,    0,    0,
2617      2069, 2070, 2070, 2070,    0,    0,    0, 2070, 2071, 2071,
2618      2071,    0,    0,    0, 2071, 2072, 2072, 2072,    0,    0,
2619         0, 2072, 2073, 2073, 2073,    0,    0,    0, 2073, 2074,
2620      2074, 2074,    0,    0,    0, 2074, 2075, 2075, 2075,    0,
2621         0,    0, 2075, 2076, 2076, 2076,    0,    0,    0, 2076,
2622      2077, 2077, 2077,    0,    0,    0, 2077, 2078, 2078, 2078,
2623         0,    0,    0, 2078, 2079, 2079, 2079, 2079, 2079, 2079,
2624      2079,    0, 2079, 2080,    0,    0,    0, 2080, 2081,    0,
2625         0,    0, 2081, 2082,    0,    0,    0, 2082, 2083,    0,
2626
2627         0,    0, 2083, 2084,    0,    0,    0, 2084, 2085,    0,
2628         0,    0, 2085, 2086,    0,    0,    0, 2086, 2087,    0,
2629         0,    0, 2087, 2088,    0,    0,    0, 2088, 2089, 2089,
2630      2089,    0,    0,    0, 2089, 2090,    0,    0,    0, 2090,
2631      2091, 2091, 2091,    0,    0,    0, 2091, 2092,    0,    0,
2632         0, 2092, 2093, 2093, 2093,    0,    0,    0, 2093, 2094,
2633         0,    0,    0, 2094, 2095, 2095, 2095,    0,    0,    0,
2634      2095, 2096,    0,    0,    0, 2096, 2097, 2097, 2097,    0,
2635         0,    0, 2097, 2098,    0,    0,    0, 2098, 2099, 2099,
2636      2099,    0,    0,    0, 2099, 2100,    0,    0,    0, 2100,
2637
2638      2101, 2101, 2101,    0,    0,    0, 2101, 2102,    0,    0,
2639         0, 2102, 2103, 2103, 2103,    0,    0,    0, 2103, 2104,
2640         0,    0,    0, 2104, 2105, 2105, 2105, 2105, 2105, 2105,
2641      2105, 2105, 2105, 2106,    0,    0,    0,    0, 2106, 2107,
2642      2107, 2107,    0,    0,    0, 2107, 2108, 2108, 2108, 2108,
2643         0,    0, 2108, 2108, 2109, 2109, 2109,    0,    0,    0,
2644      2109, 2110, 2110, 2110, 2110,    0,    0, 2110, 2110, 2111,
2645      2111, 2111,    0,    0,    0, 2111, 2112, 2112, 2112, 2112,
2646         0,    0, 2112, 2112, 2113, 2113, 2113,    0,    0,    0,
2647      2113, 2114, 2114, 2114, 2114,    0,    0, 2114, 2114, 2115,
2648
2649      2115, 2115,    0,    0,    0, 2115, 2116, 2116, 2116, 2116,
2650         0,    0, 2116, 2116, 2117, 2117, 2117,    0,    0,    0,
2651      2117, 2118, 2118, 2118, 2118,    0,    0, 2118, 2118, 2119,
2652      2119, 2119,    0,    0,    0, 2119, 2120, 2120, 2120, 2120,
2653         0,    0, 2120, 2120, 2121, 2121, 2121,    0,    0,    0,
2654      2121, 2122, 2122, 2122, 2122,    0,    0, 2122, 2122, 2123,
2655      2123, 2123,    0,    0,    0, 2123, 2124, 2124, 2124, 2124,
2656         0,    0, 2124, 2124, 2125, 2125, 2125,    0,    0,    0,
2657      2125, 2126, 2126, 2126, 2126,    0,    0, 2126, 2126, 2127,
2658      2127, 2127, 2127,    0,    0, 2127, 2127, 2128, 2128, 2128,
2659
2660         0,    0,    0, 2128, 2129, 2129, 2129, 2129,    0,    0,
2661      2129, 2129, 2130, 2130, 2130,    0,    0,    0, 2130, 2131,
2662      2131, 2131, 2131,    0,    0, 2131, 2131, 2132, 2132, 2132,
2663         0,    0,    0, 2132, 2133, 2133, 2133, 2133,    0,    0,
2664      2133, 2133, 2134, 2134, 2134, 2134,    0,    0, 2134, 2134,
2665      2135, 2135, 2135,    0,    0,    0, 2135, 2136, 2136, 2136,
2666      2136,    0,    0, 2136, 2136, 2137, 2137, 2137,    0,    0,
2667         0, 2137, 2138, 2138, 2138, 2138,    0,    0, 2138, 2138,
2668      2139, 2139, 2139, 2139, 2139, 2139, 2139, 2139, 2139, 2140,
2669         0, 2140,    0,    0, 2140, 2141, 2141, 2141,    0,    0,
2670
2671         0, 2141, 2142, 2142, 2142, 2142,    0,    0, 2142, 2142,
2672      2143, 2143, 2143, 2143,    0, 2143,    0, 2143, 2144, 2144,
2673      2144, 2144,    0,    0, 2144, 2144, 2145, 2145, 2145, 2145,
2674         0, 2145,    0, 2145, 2146, 2146, 2146, 2146,    0,    0,
2675      2146, 2146, 2147, 2147, 2147,    0,    0,    0, 2147, 2148,
2676      2148, 2148, 2148,    0,    0, 2148, 2148, 2149, 2149, 2149,
2677         0,    0,    0, 2149, 2150, 2150, 2150, 2150,    0,    0,
2678      2150, 2150, 2151, 2151, 2151,    0,    0,    0, 2151, 2152,
2679      2152, 2152, 2152,    0,    0, 2152, 2152, 2153, 2153, 2153,
2680         0,    0,    0, 2153, 2154, 2154, 2154, 2154,    0,    0,
2681
2682      2154, 2154, 2155, 2155, 2155,    0,    0,    0, 2155, 2156,
2683      2156, 2156, 2156,    0,    0, 2156, 2156, 2157, 2157, 2157,
2684         0,    0,    0, 2157, 2158, 2158, 2158, 2158,    0,    0,
2685      2158, 2158, 2159, 2159, 2159,    0,    0,    0, 2159, 2160,
2686      2160, 2160, 2160,    0,    0, 2160, 2160, 2161, 2161, 2161,
2687      2161,    0,    0, 2161, 2161, 2162, 2162, 2162,    0,    0,
2688         0, 2162, 2163, 2163, 2163, 2163,    0,    0, 2163, 2163,
2689      2164, 2164, 2164,    0,    0,    0, 2164, 2165, 2165, 2165,
2690      2165,    0,    0, 2165, 2165, 2166, 2166, 2166,    0,    0,
2691         0, 2166, 2167, 2167, 2167, 2167,    0,    0, 2167, 2167,
2692
2693      2168, 2168, 2168, 2168,    0,    0, 2168, 2168, 2169, 2169,
2694      2169,    0,    0,    0, 2169, 2170, 2170, 2170, 2170,    0,
2695         0, 2170, 2170, 2171, 2171, 2171,    0,    0,    0, 2171,
2696      2172, 2172, 2172, 2172,    0,    0, 2172, 2172, 2173, 2173,
2697      2173, 2173, 2173, 2173, 2173, 2173, 2173, 2174, 2174, 2174,
2698      2174, 2174, 2174, 2174, 2174, 2174, 2175, 2175, 2175,    0,
2699         0,    0, 2175, 2176, 2176, 2176, 2176,    0,    0, 2176,
2700      2176, 2177, 2177, 2177, 2177,    0,    0, 2177, 2177, 2178,
2701      2178, 2178,    0,    0,    0, 2178, 2179, 2179, 2179, 2179,
2702         0,    0, 2179, 2179, 2180, 2180, 2180,    0,    0,    0,
2703
2704      2180, 2181, 2181, 2181, 2181,    0,    0, 2181, 2181, 2182,
2705      2182, 2182,    0,    0,    0, 2182, 2183, 2183, 2183, 2183,
2706         0,    0, 2183, 2183, 2184, 2184, 2184,    0,    0,    0,
2707      2184, 2185, 2185, 2185, 2185,    0,    0, 2185, 2185, 2186,
2708      2186, 2186,    0,    0,    0, 2186, 2187, 2187, 2187, 2187,
2709         0,    0, 2187, 2187, 2188, 2188, 2188,    0,    0,    0,
2710      2188, 2189, 2189, 2189, 2189,    0,    0, 2189, 2189, 2190,
2711      2190, 2190, 2190,    0, 2190,    0, 2190, 2191, 2191, 2191,
2712      2191,    0,    0, 2191, 2191, 2192, 2192, 2192, 2192,    0,
2713      2192,    0, 2192, 2193, 2193, 2193, 2193,    0,    0, 2193,
2714
2715      2193, 2194, 2194, 2194, 2194,    0,    0, 2194, 2194, 2195,
2716      2195, 2195,    0,    0,    0, 2195, 2196, 2196, 2196, 2196,
2717         0,    0, 2196, 2196, 2197, 2197, 2197,    0,    0,    0,
2718      2197, 2198, 2198, 2198, 2198,    0,    0, 2198, 2198, 2199,
2719      2199, 2199,    0,    0,    0, 2199, 2200, 2200, 2200, 2200,
2720         0,    0, 2200, 2200, 2201, 2201, 2201, 2201,    0,    0,
2721      2201, 2201, 2202, 2202, 2202,    0,    0,    0, 2202, 2203,
2722      2203, 2203, 2203,    0,    0, 2203, 2203, 2204, 2204, 2204,
2723      2204,    0, 2204,    0, 2204, 2205, 2205, 2205, 2205,    0,
2724         0, 2205, 2205, 2206, 2206, 2206, 2206, 2206, 2206, 2206,
2725
2726      2206, 2206, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
2727      2207, 2208, 2208, 2208,    0,    0,    0, 2208, 2209, 2209,
2728      2209, 2209,    0,    0, 2209, 2209, 2210, 2210, 2210, 2210,
2729         0,    0, 2210, 2210, 2211, 2211, 2211,    0,    0,    0,
2730      2211, 2212, 2212, 2212, 2212,    0,    0, 2212, 2212, 2213,
2731      2213, 2213,    0,    0,    0, 2213, 2214, 2214, 2214, 2214,
2732         0,    0, 2214, 2214, 2215, 2215, 2215,    0,    0,    0,
2733      2215, 2216, 2216, 2216, 2216,    0,    0, 2216, 2216, 2217,
2734      2217, 2217, 2217,    0, 2217,    0, 2217, 2218, 2218, 2218,
2735      2218,    0, 2218,    0, 2218, 2219, 2219, 2219, 2219,    0,
2736
2737         0, 2219, 2219, 2220, 2220, 2220,    0,    0,    0, 2220,
2738      2221, 2221, 2221, 2221,    0,    0, 2221, 2221, 2222, 2222,
2739      2222, 2222,    0,    0, 2222, 2222, 2223, 2223, 2223, 2223,
2740         0, 2223,    0, 2223, 2224, 2224, 2224, 2224,    0,    0,
2741      2224, 2224, 2225, 2225, 2225, 2225,    0,    0, 2225, 2225,
2742      2226, 2226, 2226,    0,    0,    0, 2226, 2227, 2227, 2227,
2743      2227,    0,    0, 2227, 2227, 2228, 2228, 2228, 2228,    0,
2744      2228,    0, 2228, 2229, 2229, 2229, 2229,    0,    0, 2229,
2745      2229, 2230, 2230, 2230, 2230,    0, 2230,    0, 2230, 2231,
2746      2231, 2231, 2231,    0,    0, 2231, 2231, 2232, 2232, 2232,
2747
2748      2232,    0,    0, 2232, 2232, 2233, 2233, 2233,    0,    0,
2749         0, 2233, 2234, 2234, 2234, 2234,    0,    0, 2234, 2234,
2750      2235, 2235, 2235, 2235,    0,    0, 2235, 2235, 2236, 2236,
2751      2236, 2236, 2236, 2236, 2236, 2236, 2236, 2237, 2237, 2237,
2752      2237, 2237, 2237, 2237, 2237, 2237, 2238, 2238, 2238, 2238,
2753         0, 2238,    0, 2238, 2239, 2239, 2239, 2239,    0,    0,
2754      2239, 2239, 2240, 2240, 2240, 2240,    0,    0, 2240, 2240,
2755      2241, 2241, 2241,    0,    0,    0, 2241, 2242, 2242, 2242,
2756      2242,    0,    0, 2242, 2242, 2243, 2243, 2243,    0,    0,
2757         0, 2243, 2244, 2244, 2244, 2244,    0,    0, 2244, 2244,
2758
2759      2245, 2245, 2245, 2245,    0, 2245,    0, 2245, 2246, 2246,
2760      2246, 2246,    0,    0, 2246, 2246, 2247, 2247, 2247, 2247,
2761         0, 2247,    0, 2247, 2248, 2248, 2248, 2248,    0,    0,
2762      2248, 2248, 2249, 2249, 2249,    0,    0,    0, 2249, 2250,
2763      2250, 2250, 2250, 2250, 2250, 2250, 2250, 2250, 2251, 2251,
2764      2251, 2251, 2251, 2251, 2251, 2251, 2251, 2252, 2252, 2252,
2765      2252, 2252, 2252, 2252, 2252, 2252, 2253, 2253, 2253, 2253,
2766      2253, 2253, 2253, 2253, 2253, 2254, 2254, 2254, 2254, 2254,
2767      2254, 2254, 2254, 2254, 2255, 2255, 2255, 2255, 2255, 2255,
2768      2255, 2255, 2255, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2769
2770      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2771      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2772      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2773      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2774      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2775      2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2776      2022, 2022, 2022
2777     } ;
2778
2779 /* Table of booleans, true if rule could match eol. */
2780 static yyconst flex_int32_t yy_rule_can_match_eol[352] =
2781     {   0,
2782 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
2783     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2784     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 
2785     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2786     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2787     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2788     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2789     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2790     0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
2791     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2792     0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
2793     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
2794     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
2795     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2796     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
2797     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2798     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 
2799     1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
2800
2801 static yy_state_type yy_last_accepting_state;
2802 static char *yy_last_accepting_cpos;
2803
2804 extern int surf_parse__flex_debug;
2805 int surf_parse__flex_debug = 0;
2806
2807 /* The intent behind this definition is that it'll catch
2808  * any uses of REJECT which flex missed.
2809  */
2810 #define REJECT reject_used_but_not_detected
2811 #define yymore() yymore_used_but_not_detected
2812 #define YY_MORE_ADJ 0
2813 #define YY_RESTORE_YY_MORE_OFFSET
2814 char *surf_parse_text;
2815 /* Validating XML processor for surf/simgrid.dtd.
2816  * Generated 2008/02/03 11:50:45.
2817  *
2818  * This program was generated with the FleXML XML processor generator.
2819  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
2820  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
2821  * (Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp).
2822  * 
2823  * There are two, intertwined parts to this program, part A and part B.
2824  *
2825  * Part A
2826  * ------
2827  * 
2828  * Some parts, here collectively called "Part A", are found in the 
2829  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
2830  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2831  *
2832  * You can redistribute, use, perform, display and/or modify "Part A"
2833  * provided the following two conditions hold:
2834  *
2835  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
2836  *    FleXML; without even the implied warranty of MERCHANTABILITY or
2837  *    FITNESS FOR A PARTICULAR PURPOSE.
2838  *
2839  * 2. The program distribution conditions do not in any way affect the
2840  *    distribution conditions of the FleXML system used to generate this
2841  *    file or any version of FleXML derived from that system.
2842  *
2843  * Notice that these are explicit rights granted to you for files
2844  * generated by the FleXML system.  For your rights in connection with
2845  * the FleXML system itself please consult the GNU General Public License.
2846  * 
2847  * Part B
2848  * ------
2849  * 
2850  * The other parts, here collectively called "Part B", and which came 
2851  * from the DTD used by FleXML to generate this program, can be 
2852  * distributed (or not, as the case may be) under the terms of whoever
2853  * wrote them, provided these terms respect and obey the two conditions 
2854  * above under the heading "Part A".
2855  *
2856  * The author of and contributors to FleXML specifically disclaim
2857  * any copyright interest in "Part B", unless "Part B" was written 
2858  * by the author of or contributors to FleXML.
2859  * 
2860  */
2861
2862 /* Version strings. */
2863 const char rcs_surfxml_flexml_skeleton[] =
2864  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
2865 const char rcs_surfxml_flexml[] =
2866  "$" "Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp $";
2867
2868 /* ANSI headers. */
2869 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
2870 #include <stdio.h>
2871 #include <string.h>
2872 #include <assert.h>
2873 #include <stdarg.h>
2874 #include <ctype.h>
2875      
2876 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2877 # ifndef __STRICT_ANSI__
2878 #  include <io.h>
2879 #  include <process.h>
2880 # endif
2881 #else
2882 # include <unistd.h>
2883 #endif
2884      
2885 #ifndef FLEXML_INDEXSTACKSIZE
2886 #define FLEXML_INDEXSTACKSIZE 1000
2887 #endif
2888
2889 /* Generated definitions. */
2890 #define FLEXML_yylineno
2891 #ifndef FLEXML_BUFFERSTACKSIZE
2892 #define FLEXML_BUFFERSTACKSIZE 1000000
2893 #endif
2894 #define FLEXML_NEED_BUFFERLIT
2895
2896 /* XML processor api. */
2897 /* FleXML-provided data. */
2898 int surfxml_pcdata_ix;
2899 extern char *surfxml_bufferstack;
2900 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2901 AT_surfxml_random_generator AX_surfxml_random_generator;
2902 #define A_surfxml_random_generator AX_surfxml_random_generator
2903 AT_surfxml_prop_id AX_surfxml_prop_id;
2904 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2905 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
2906 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
2907 AT_surfxml_host_id AX_surfxml_host_id;
2908 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2909 AT_surfxml_set_id AX_surfxml_set_id;
2910 #define A_surfxml_set_id (surfxml_bufferstack + AX_surfxml_set_id)
2911 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2912 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2913 AT_surfxml_host_state AX_surfxml_host_state;
2914 #define A_surfxml_host_state AX_surfxml_host_state
2915 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
2916 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
2917 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
2918 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
2919 AT_surfxml_set_suffix AX_surfxml_set_suffix;
2920 #define A_surfxml_set_suffix (surfxml_bufferstack + AX_surfxml_set_suffix)
2921 AT_surfxml_route_impact_on_dst AX_surfxml_route_impact_on_dst;
2922 #define A_surfxml_route_impact_on_dst (surfxml_bufferstack + AX_surfxml_route_impact_on_dst)
2923 AT_surfxml_host_power AX_surfxml_host_power;
2924 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2925 AT_surfxml_router_id AX_surfxml_router_id;
2926 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2927 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2928 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2929 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
2930 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
2931 AT_surfxml_platform_xmlns_c_route AX_surfxml_platform_xmlns_c_route;
2932 #define A_surfxml_platform_xmlns_c_route (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_route)
2933 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
2934 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
2935 AT_surfxml_trace_file AX_surfxml_trace_file;
2936 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
2937 AT_surfxml_route_action AX_surfxml_route_action;
2938 #define A_surfxml_route_action AX_surfxml_route_action
2939 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2940 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2941 AT_surfxml_random_min AX_surfxml_random_min;
2942 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
2943 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2944 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2945 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
2946 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
2947 AT_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element;
2948 #define A_surfxml_trace_c_connect_element (surfxml_bufferstack + AX_surfxml_trace_c_connect_element)
2949 AT_surfxml_argument_value AX_surfxml_argument_value;
2950 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2951 AT_surfxml_link_state AX_surfxml_link_state;
2952 #define A_surfxml_link_state AX_surfxml_link_state
2953 AT_surfxml_route_impact_on_src AX_surfxml_route_impact_on_src;
2954 #define A_surfxml_route_impact_on_src (surfxml_bufferstack + AX_surfxml_route_impact_on_src)
2955 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2956 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2957 AT_surfxml_cluster_id AX_surfxml_cluster_id;
2958 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
2959 AT_surfxml_random_mean AX_surfxml_random_mean;
2960 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
2961 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
2962 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
2963 AT_surfxml_link_latency AX_surfxml_link_latency;
2964 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2965 AT_surfxml_platform_xmlns_c_link AX_surfxml_platform_xmlns_c_link;
2966 #define A_surfxml_platform_xmlns_c_link (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_link)
2967 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2968 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2969 AT_surfxml_random_id AX_surfxml_random_id;
2970 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
2971 AT_surfxml_set_radical AX_surfxml_set_radical;
2972 #define A_surfxml_set_radical (surfxml_bufferstack + AX_surfxml_set_radical)
2973 AT_surfxml_random_max AX_surfxml_random_max;
2974 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
2975 AT_surfxml_link_id AX_surfxml_link_id;
2976 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2977 AT_surfxml_process_host AX_surfxml_process_host;
2978 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2979 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2980 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2981 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
2982 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
2983 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
2984 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
2985 AT_surfxml_foreach_set_id AX_surfxml_foreach_set_id;
2986 #define A_surfxml_foreach_set_id (surfxml_bufferstack + AX_surfxml_foreach_set_id)
2987 AT_surfxml_route_impact_on_dst_with_other_send AX_surfxml_route_impact_on_dst_with_other_send;
2988 #define A_surfxml_route_impact_on_dst_with_other_send (surfxml_bufferstack + AX_surfxml_route_impact_on_dst_with_other_send)
2989 AT_surfxml_prop_value AX_surfxml_prop_value;
2990 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2991 AT_surfxml_route_impact_on_src_with_other_recv AX_surfxml_route_impact_on_src_with_other_recv;
2992 #define A_surfxml_route_impact_on_src_with_other_recv (surfxml_bufferstack + AX_surfxml_route_impact_on_src_with_other_recv)
2993 AT_surfxml_link_state_file AX_surfxml_link_state_file;
2994 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
2995 AT_surfxml_set_prefix AX_surfxml_set_prefix;
2996 #define A_surfxml_set_prefix (surfxml_bufferstack + AX_surfxml_set_prefix)
2997 AT_surfxml_cluster_power AX_surfxml_cluster_power;
2998 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
2999 AT_surfxml_process_function AX_surfxml_process_function;
3000 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
3001 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
3002 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
3003 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
3004 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
3005 AT_surfxml_host_availability AX_surfxml_host_availability;
3006 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
3007 AT_surfxml_route_src AX_surfxml_route_src;
3008 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
3009 AT_surfxml_route_c_multi_src AX_surfxml_route_c_multi_src;
3010 #define A_surfxml_route_c_multi_src (surfxml_bufferstack + AX_surfxml_route_c_multi_src)
3011 AT_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action;
3012 #define A_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action
3013 AT_surfxml_trace_c_connect_trace AX_surfxml_trace_c_connect_trace;
3014 #define A_surfxml_trace_c_connect_trace (surfxml_bufferstack + AX_surfxml_trace_c_connect_trace)
3015 AT_surfxml_trace_id AX_surfxml_trace_id;
3016 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
3017 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
3018 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3019 AT_surfxml_include_file AX_surfxml_include_file;
3020 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
3021 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3022 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3023 AT_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind;
3024 #define A_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind
3025 AT_surfxml_route_c_multi_dst AX_surfxml_route_c_multi_dst;
3026 #define A_surfxml_route_c_multi_dst (surfxml_bufferstack + AX_surfxml_route_c_multi_dst)
3027 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3028 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3029 AT_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric;
3030 #define A_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric
3031 AT_surfxml_route_dst AX_surfxml_route_dst;
3032 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3033 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3034 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3035 AT_surfxml_platform_version AX_surfxml_platform_version;
3036 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3037
3038 /* XML state. */
3039 #ifdef FLEX_DEBUG
3040 # define ENTER(state)   debug_enter(state,#state)
3041 # define LEAVE          debug_leave()
3042 # define SET(state)     debug_set(state,#state)
3043   static void debug_enter(int, const char*);
3044   static void debug_leave(void);
3045   static void debug_set(int, const char*);
3046 #else
3047 # define ENTER(state)   (yy_push_state(state))
3048 # define LEAVE          (yy_pop_state())
3049 # define SET(state)     BEGIN(state)
3050 #endif
3051
3052 /* Generic actions. */
3053 #define SKIP    /*skip*/
3054 #define SUCCEED        CLEANUP; return 0
3055
3056 #define FAIL    return fail
3057 static int fail(const char*, ...);
3058
3059 enum {flexml_max_err_msg_size = 512};
3060 static char flexml_err_msg[flexml_max_err_msg_size];
3061 const char * surfxml_parse_err_msg()
3062 {
3063     return flexml_err_msg;
3064 }
3065 static void reset_surfxml_parse_err_msg()
3066 {
3067     flexml_err_msg[0] = '\0';
3068 }
3069
3070 /* Cleanup */
3071 static void cleanup(void);
3072 #define CLEANUP  cleanup()
3073
3074 /* Text buffer stack handling. */
3075 char *surfxml_bufferstack = NULL;
3076 static int blimit = FLEXML_BUFFERSTACKSIZE;
3077 static int bnext = 1;
3078
3079 static int *indexstack = NULL;
3080 static int ilimit = FLEXML_INDEXSTACKSIZE;
3081 static int inext = 1;
3082
3083 #define BUFFERSET(P)  (P = bnext)
3084 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3085 #define BUFFERDONE    (BUFFERPUTC('\0'))
3086
3087 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3088
3089 /* after this is called, there are at least 2 slots left in the stack */
3090 static int ck_blimit()
3091 {
3092      if (bnext >= blimit) {
3093          blimit += FLEXML_BUFFERSTACKSIZE + 2;
3094          {
3095              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3096              assert(temp);
3097              surfxml_bufferstack = temp;
3098          }
3099      }
3100      return 0;
3101 }
3102
3103 /* after this is called, there are at least 2 slots left in the stack */
3104 static int ck_ilimit()
3105 {
3106      if (inext >= ilimit) {
3107          ilimit += FLEXML_INDEXSTACKSIZE + 2;
3108          {
3109              int *temp = (int *) realloc(indexstack, ilimit);
3110              assert(temp);
3111              indexstack = temp;
3112          }
3113      }
3114      return 0;
3115 }
3116
3117 #ifdef FLEXML_NEED_BUFFERLIT
3118 static void surfxml_bufferliteral(char c, int* pp, const char* text)
3119 {
3120   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
3121   assert(s <= e); BUFFERSET(*pp);
3122   while (++s<e) {
3123     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
3124     else BUFFERPUTC(*s);
3125   }
3126   BUFFERDONE;
3127 }
3128 #endif
3129
3130 static void pushbuffer(int p)
3131 {
3132     ck_ilimit();
3133     indexstack[inext++] = p;
3134     indexstack[inext++] = bnext;    
3135 }
3136
3137 static int popbuffer(void)
3138 {
3139     assert(inext >= 2);
3140     bnext = indexstack[--inext];
3141     return indexstack[--inext];
3142 }
3143
3144 /* General internal entities are `unput' back onto the input stream... */
3145 #define ENTITYTEXT(T) \
3146   { char *s = (T), *e = s+strlen(s);\
3147     while (--e >= s) { unput(*e); }}
3148
3149 /* Flex standard options. */
3150 #define YY_NO_INPUT 1
3151 /* Flex user-requested options. */
3152 /* XML character classes (currently restricted to ASCII). */
3153 /* "Common syntactic structures." */
3154 /* "Names and Tokens." */
3155 /* Miscellaneous. */
3156 /* Parser states (flex `exclusive start conditions'):
3157  *
3158  * PROLOG       the XML prolog of the document before <?xml...>
3159  * DOCTYPE      the XML prolog of the document after <?xml...>
3160  * EPILOG       after the root element
3161  * INCOMMENT    inside an XML comment <!--....-->
3162  * INPI         inside an XML PI <?...?>
3163  * VALUE1       inside a '...'-delimited literal
3164  * VALUE2       inside a "..."-delimited literal
3165  * CDATA        inside a <![CDATA[...] ]> section.
3166  * ROOT_<tag>   expect root element <tag>
3167  * AL_<tag>     inside the attribute list for <tag>
3168  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
3169  * IMPOSSIBLE   dummy to permit disabling rules; must be last
3170  */
3171
3172 /* State names. */
3173 const char* *surfxml_statenames=NULL;
3174
3175 #define INITIAL 0
3176 #define PROLOG 1
3177 #define DOCTYPE 2
3178 #define EPILOG 3
3179 #define INCOMMENT 4
3180 #define INPI 5
3181 #define VALUE1 6
3182 #define VALUE2 7
3183 #define CDATA 8
3184 #define ROOT_surfxml_platform 9
3185 #define AL_surfxml_platform 10
3186 #define S_surfxml_platform 11
3187 #define S_surfxml_platform_1 12
3188 #define S_surfxml_platform_2 13
3189 #define S_surfxml_platform_3 14
3190 #define S_surfxml_platform_4 15
3191 #define S_surfxml_platform_5 16
3192 #define E_surfxml_platform 17
3193 #define AL_surfxml_include 18
3194 #define E_surfxml_include 19
3195 #define AL_surfxml_trace 20
3196 #define IN_trace 21
3197 #define AL_surfxml_random 22
3198 #define S_surfxml_random 23
3199 #define S_surfxml_random_1 24
3200 #define S_surfxml_random_2 25
3201 #define E_surfxml_random 26
3202 #define AL_surfxml_trace_c_connect 27
3203 #define E_surfxml_trace_c_connect 28
3204 #define AL_surfxml_set 29
3205 #define E_surfxml_set 30
3206 #define AL_surfxml_foreach 31
3207 #define S_surfxml_foreach 32
3208 #define S_surfxml_foreach_1 33
3209 #define E_surfxml_foreach 34
3210 #define AL_surfxml_host 35
3211 #define S_surfxml_host 36
3212 #define S_surfxml_host_1 37
3213 #define S_surfxml_host_2 38
3214 #define E_surfxml_host 39
3215 #define AL_surfxml_prop 40
3216 #define E_surfxml_prop 41
3217 #define AL_surfxml_cluster 42
3218 #define E_surfxml_cluster 43
3219 #define AL_surfxml_router 44
3220 #define E_surfxml_router 45
3221 #define AL_surfxml_link 46
3222 #define S_surfxml_link 47
3223 #define S_surfxml_link_1 48
3224 #define S_surfxml_link_2 49
3225 #define E_surfxml_link 50
3226 #define AL_surfxml_route_c_multi 51
3227 #define S_surfxml_route_c_multi 52
3228 #define S_surfxml_route_c_multi_1 53
3229 #define S_surfxml_route_c_multi_2 54
3230 #define E_surfxml_route_c_multi 55
3231 #define AL_surfxml_route 56
3232 #define S_surfxml_route 57
3233 #define S_surfxml_route_1 58
3234 #define S_surfxml_route_2 59
3235 #define E_surfxml_route 60
3236 #define AL_surfxml_link_c_ctn 61
3237 #define E_surfxml_link_c_ctn 62
3238 #define AL_surfxml_process 63
3239 #define S_surfxml_process 64
3240 #define S_surfxml_process_1 65
3241 #define S_surfxml_process_2 66
3242 #define E_surfxml_process 67
3243 #define AL_surfxml_argument 68
3244 #define E_surfxml_argument 69
3245 #define IMPOSSIBLE 70
3246
3247 #ifndef YY_NO_UNISTD_H
3248 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3249  * down here because we want the user's section 1 to have been scanned first.
3250  * The user has a chance to override it with an option.
3251  */
3252 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3253 #  ifndef __STRICT_ANSI__
3254 #    include <io.h>
3255 #    include <process.h>
3256 #  endif
3257 #else
3258 #  include <unistd.h>
3259 #endif
3260 #endif
3261
3262 #ifndef YY_EXTRA_TYPE
3263 #define YY_EXTRA_TYPE void *
3264 #endif
3265
3266 static int yy_init_globals (void );
3267
3268 /* Macros after this point can all be overridden by user definitions in
3269  * section 1.
3270  */
3271
3272 #ifndef YY_SKIP_YYWRAP
3273 #ifdef __cplusplus
3274 extern "C" int surf_parse_wrap (void );
3275 #else
3276 extern int surf_parse_wrap (void );
3277 #endif
3278 #endif
3279
3280 #ifndef yytext_ptr
3281 static void yy_flex_strncpy (char *,yyconst char *,int );
3282 #endif
3283
3284 #ifdef YY_NEED_STRLEN
3285 static int yy_flex_strlen (yyconst char * );
3286 #endif
3287
3288 #ifndef YY_NO_INPUT
3289
3290 #ifdef __cplusplus
3291 static int yyinput (void );
3292 #else
3293 static int input (void );
3294 #endif
3295
3296 #endif
3297
3298         static int yy_start_stack_ptr = 0;
3299         static int yy_start_stack_depth = 0;
3300         static int *yy_start_stack = NULL;
3301     
3302     static void yy_push_state (int new_state );
3303     
3304     static void yy_pop_state (void );
3305     
3306 /* Amount of stuff to slurp up with each read. */
3307 #ifndef YY_READ_BUF_SIZE
3308 #define YY_READ_BUF_SIZE 8192
3309 #endif
3310
3311 /* Copy whatever the last rule matched to the standard output. */
3312 #ifndef ECHO
3313 /* This used to be an fputs(), but since the string might contain NUL's,
3314  * we now use fwrite().
3315  */
3316 #define ECHO fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
3317 #endif
3318
3319 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3320  * is returned in "result".
3321  */
3322 #ifndef YY_INPUT
3323 #define YY_INPUT(buf,result,max_size) \
3324         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3325                 { \
3326                 int c = '*'; \
3327                 int n; \
3328                 for ( n = 0; n < max_size && \
3329                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
3330                         buf[n] = (char) c; \
3331                 if ( c == '\n' ) \
3332                         buf[n++] = (char) c; \
3333                 if ( c == EOF && ferror( surf_parse_in ) ) \
3334                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3335                 result = n; \
3336                 } \
3337         else \
3338                 { \
3339                 errno=0; \
3340                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
3341                         { \
3342                         if( errno != EINTR) \
3343                                 { \
3344                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3345                                 break; \
3346                                 } \
3347                         errno=0; \
3348                         clearerr(surf_parse_in); \
3349                         } \
3350                 }\
3351 \
3352
3353 #endif
3354
3355 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3356  * we don't want an extra ';' after the "return" because that will cause
3357  * some compilers to complain about unreachable statements.
3358  */
3359 #ifndef yyterminate
3360 #define yyterminate() return YY_NULL
3361 #endif
3362
3363 /* Number of entries by which start-condition stack grows. */
3364 #ifndef YY_START_STACK_INCR
3365 #define YY_START_STACK_INCR 25
3366 #endif
3367
3368 /* Report a fatal error. */
3369 #ifndef YY_FATAL_ERROR
3370 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3371 #endif
3372
3373 /* end tables serialization structures and prototypes */
3374
3375 /* Default declaration of generated scanner - a define so the user can
3376  * easily add parameters.
3377  */
3378 #ifndef YY_DECL
3379 #define YY_DECL_IS_OURS 1
3380
3381 extern int surf_parse_lex (void);
3382
3383 #define YY_DECL int surf_parse_lex (void)
3384 #endif /* !YY_DECL */
3385
3386 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
3387  * have been set up.
3388  */
3389 #ifndef YY_USER_ACTION
3390 #define YY_USER_ACTION
3391 #endif
3392
3393 /* Code executed at the end of each rule. */
3394 #ifndef YY_BREAK
3395 #define YY_BREAK break;
3396 #endif
3397
3398 #define YY_RULE_SETUP \
3399         YY_USER_ACTION
3400
3401 /** The main scanner function which does all the work.
3402  */
3403 YY_DECL
3404 {
3405         register yy_state_type yy_current_state;
3406         register char *yy_cp, *yy_bp;
3407         register int yy_act;
3408     
3409  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3410  SET(PROLOG);
3411  reset_surfxml_parse_err_msg();
3412  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3413  assert(surfxml_bufferstack);
3414  #ifdef FLEX_DEBUG
3415  {
3416      int i;
3417      for (i = 0; i < blimit; i++) {
3418          surfxml_bufferstack[i] = '\377';
3419      }
3420  }
3421  #endif
3422  surfxml_bufferstack[0] = '\0';
3423  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3424  assert(indexstack);
3425  indexstack[0] = 0;
3426
3427   /* FleXML_init */
3428   bnext = inext = 1;
3429   surfxml_bufferliteral('\0', &bnext, "0.0");
3430   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3431   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3432   surfxml_bufferliteral('\0', &bnext, "1.0");
3433   surfxml_bufferliteral('\0', &bnext, "1.0");
3434   surfxml_bufferliteral('\0', &bnext, "1.0");
3435   surfxml_bufferliteral('\0', &bnext, "1.0");
3436   surfxml_bufferliteral('\0', &bnext, "-1.0");
3437   surfxml_bufferliteral('\0', &bnext, "0.0");
3438   surfxml_bufferliteral('\0', &bnext, "0.0");
3439   surfxml_bufferliteral('\0', &bnext, "0.0");
3440   surfxml_bufferliteral('\0', &bnext, "0.0");
3441   surfxml_bufferliteral('\0', &bnext, "0.0");
3442   surfxml_bufferliteral('\0', &bnext, "-1.0");
3443   surfxml_bufferliteral('\0', &bnext, "-1.0");
3444   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3445   surfxml_statenames[PROLOG] = NULL;
3446   surfxml_statenames[DOCTYPE] = NULL;
3447   surfxml_statenames[EPILOG] = NULL;
3448   surfxml_statenames[INCOMMENT] = NULL;
3449   surfxml_statenames[INPI] = NULL;
3450   surfxml_statenames[VALUE1] = NULL;
3451   surfxml_statenames[VALUE2] = NULL;
3452   surfxml_statenames[CDATA] = NULL;
3453   surfxml_statenames[ROOT_surfxml_platform] = NULL;
3454   surfxml_statenames[AL_surfxml_platform] = NULL;
3455   surfxml_statenames[S_surfxml_platform] = "platform";
3456   surfxml_statenames[S_surfxml_platform_1] = "platform";
3457   surfxml_statenames[S_surfxml_platform_2] = "platform";
3458   surfxml_statenames[S_surfxml_platform_3] = "platform";
3459   surfxml_statenames[S_surfxml_platform_4] = "platform";
3460   surfxml_statenames[S_surfxml_platform_5] = "platform";
3461   surfxml_statenames[E_surfxml_platform] = "platform";
3462   surfxml_statenames[AL_surfxml_include] = NULL;
3463   surfxml_statenames[E_surfxml_include] = "include";
3464   surfxml_statenames[AL_surfxml_trace] = NULL;
3465   surfxml_statenames[IN_trace] = "trace";
3466   surfxml_statenames[AL_surfxml_random] = NULL;
3467   surfxml_statenames[S_surfxml_random] = "random";
3468   surfxml_statenames[S_surfxml_random_1] = "random";
3469   surfxml_statenames[S_surfxml_random_2] = "random";
3470   surfxml_statenames[E_surfxml_random] = "random";
3471   surfxml_statenames[AL_surfxml_trace_c_connect] = NULL;
3472   surfxml_statenames[E_surfxml_trace_c_connect] = "trace:connect";
3473   surfxml_statenames[AL_surfxml_set] = NULL;
3474   surfxml_statenames[E_surfxml_set] = "set";
3475   surfxml_statenames[AL_surfxml_foreach] = NULL;
3476   surfxml_statenames[S_surfxml_foreach] = "foreach";
3477   surfxml_statenames[S_surfxml_foreach_1] = "foreach";
3478   surfxml_statenames[E_surfxml_foreach] = "foreach";
3479   surfxml_statenames[AL_surfxml_host] = NULL;
3480   surfxml_statenames[S_surfxml_host] = "host";
3481   surfxml_statenames[S_surfxml_host_1] = "host";
3482   surfxml_statenames[S_surfxml_host_2] = "host";
3483   surfxml_statenames[E_surfxml_host] = "host";
3484   surfxml_statenames[AL_surfxml_prop] = NULL;
3485   surfxml_statenames[E_surfxml_prop] = "prop";
3486   surfxml_statenames[AL_surfxml_cluster] = NULL;
3487   surfxml_statenames[E_surfxml_cluster] = "cluster";
3488   surfxml_statenames[AL_surfxml_router] = NULL;
3489   surfxml_statenames[E_surfxml_router] = "router";
3490   surfxml_statenames[AL_surfxml_link] = NULL;
3491   surfxml_statenames[S_surfxml_link] = "link";
3492   surfxml_statenames[S_surfxml_link_1] = "link";
3493   surfxml_statenames[S_surfxml_link_2] = "link";
3494   surfxml_statenames[E_surfxml_link] = "link";
3495   surfxml_statenames[AL_surfxml_route_c_multi] = NULL;
3496   surfxml_statenames[S_surfxml_route_c_multi] = "route:multi";
3497   surfxml_statenames[S_surfxml_route_c_multi_1] = "route:multi";
3498   surfxml_statenames[S_surfxml_route_c_multi_2] = "route:multi";
3499   surfxml_statenames[E_surfxml_route_c_multi] = "route:multi";
3500   surfxml_statenames[AL_surfxml_route] = NULL;
3501   surfxml_statenames[S_surfxml_route] = "route";
3502   surfxml_statenames[S_surfxml_route_1] = "route";
3503   surfxml_statenames[S_surfxml_route_2] = "route";
3504   surfxml_statenames[E_surfxml_route] = "route";
3505   surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
3506   surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
3507   surfxml_statenames[AL_surfxml_process] = NULL;
3508   surfxml_statenames[S_surfxml_process] = "process";
3509   surfxml_statenames[S_surfxml_process_1] = "process";
3510   surfxml_statenames[S_surfxml_process_2] = "process";
3511   surfxml_statenames[E_surfxml_process] = "process";
3512   surfxml_statenames[AL_surfxml_argument] = NULL;
3513   surfxml_statenames[E_surfxml_argument] = "argument";
3514   }
3515
3516  /* COMMENTS and PIs: handled uniformly for efficiency. */
3517
3518         if ( !(yy_init) )
3519                 {
3520                 (yy_init) = 1;
3521
3522 #ifdef YY_USER_INIT
3523                 YY_USER_INIT;
3524 #endif
3525
3526                 if ( ! (yy_start) )
3527                         (yy_start) = 1; /* first start state */
3528
3529                 if ( ! surf_parse_in )
3530                         surf_parse_in = stdin;
3531
3532                 if ( ! surf_parse_out )
3533                         surf_parse_out = stdout;
3534
3535                 if ( ! YY_CURRENT_BUFFER ) {
3536                         surf_parse_ensure_buffer_stack ();
3537                         YY_CURRENT_BUFFER_LVALUE =
3538                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3539                 }
3540
3541                 surf_parse__load_buffer_state( );
3542                 }
3543
3544         while ( 1 )             /* loops until end-of-file is reached */
3545                 {
3546                 yy_cp = (yy_c_buf_p);
3547
3548                 /* Support of surf_parse_text. */
3549                 *yy_cp = (yy_hold_char);
3550
3551                 /* yy_bp points to the position in yy_ch_buf of the start of
3552                  * the current run.
3553                  */
3554                 yy_bp = yy_cp;
3555
3556                 yy_current_state = (yy_start);
3557 yy_match:
3558                 do
3559                         {
3560                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3561                         if ( yy_accept[yy_current_state] )
3562                                 {
3563                                 (yy_last_accepting_state) = yy_current_state;
3564                                 (yy_last_accepting_cpos) = yy_cp;
3565                       &