Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Reindent everything (possibly breaking all branches, but for the last time)
[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 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42 #ifdef WIN32
43 #include <io.h>
44 #endif
45 /* end standard C headers. */
46
47 /* flex integer type definitions */
48
49 #ifndef FLEXINT_H
50 #define FLEXINT_H
51
52 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
53
54 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
55
56 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
57  * if you want the limit (max/min) macros for int types. 
58  */
59 #ifndef __STDC_LIMIT_MACROS
60 #define __STDC_LIMIT_MACROS 1
61 #endif
62
63 #include <inttypes.h>
64 typedef int8_t flex_int8_t;
65 typedef uint8_t flex_uint8_t;
66 typedef int16_t flex_int16_t;
67 typedef uint16_t flex_uint16_t;
68 typedef int32_t flex_int32_t;
69 typedef uint32_t flex_uint32_t;
70 #else
71 typedef signed char flex_int8_t;
72 typedef short int flex_int16_t;
73 typedef int flex_int32_t;
74 typedef unsigned char flex_uint8_t;
75 typedef unsigned short int flex_uint16_t;
76 typedef unsigned int flex_uint32_t;
77
78 /* Limits of integral types. */
79 #ifndef INT8_MIN
80 #define INT8_MIN               (-128)
81 #endif
82 #ifndef INT16_MIN
83 #define INT16_MIN              (-32767-1)
84 #endif
85 #ifndef INT32_MIN
86 #define INT32_MIN              (-2147483647-1)
87 #endif
88 #ifndef INT8_MAX
89 #define INT8_MAX               (127)
90 #endif
91 #ifndef INT16_MAX
92 #define INT16_MAX              (32767)
93 #endif
94 #ifndef INT32_MAX
95 #define INT32_MAX              (2147483647)
96 #endif
97 #ifndef UINT8_MAX
98 #define UINT8_MAX              (255U)
99 #endif
100 #ifndef UINT16_MAX
101 #define UINT16_MAX             (65535U)
102 #endif
103 #ifndef UINT32_MAX
104 #define UINT32_MAX             (4294967295U)
105 #endif
106
107 #endif /* ! C99 */
108
109 #endif /* ! FLEXINT_H */
110
111 #ifdef __cplusplus
112
113 /* The "const" storage-class-modifier is valid. */
114 #define YY_USE_CONST
115
116 #else /* ! __cplusplus */
117
118 /* C99 requires __STDC__ to be defined as 1. */
119 #if defined (__STDC__)
120
121 #define YY_USE_CONST
122
123 #endif /* defined (__STDC__) */
124 #endif /* ! __cplusplus */
125
126 #ifdef YY_USE_CONST
127 #define yyconst const
128 #else
129 #define yyconst
130 #endif
131
132 /* Returned upon end-of-file. */
133 #define YY_NULL 0
134
135 /* Promotes a possibly negative, possibly signed char to an unsigned
136  * integer for use as an array index.  If the signed char is negative,
137  * we want to instead treat it as an 8-bit unsigned char, hence the
138  * double cast.
139  */
140 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
141
142 /* Enter a start condition.  This macro really ought to take a parameter,
143  * but we do it the disgusting crufty way forced on us by the ()-less
144  * definition of BEGIN.
145  */
146 #define BEGIN (yy_start) = 1 + 2 *
147
148 /* Translate the current start state into a value that can be later handed
149  * to BEGIN to return to the state.  The YYSTATE alias is for lex
150  * compatibility.
151  */
152 #define YY_START (((yy_start) - 1) / 2)
153 #define YYSTATE YY_START
154
155 /* Action number for EOF rule of a given start state. */
156 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
157
158 /* Special action meaning "start processing a new file". */
159 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
160
161 #define YY_END_OF_BUFFER_CHAR 0
162
163 /* Size of default input buffer. */
164 #ifndef YY_BUF_SIZE
165 #define YY_BUF_SIZE 16384
166 #endif
167
168 /* The state buf must be large enough to hold one state per character in the main buffer.
169  */
170 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
171
172 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
173 #define YY_TYPEDEF_YY_BUFFER_STATE
174 typedef struct yy_buffer_state *YY_BUFFER_STATE;
175 #endif
176
177 extern int surf_parse_leng;
178
179 extern FILE *surf_parse_in, *surf_parse_out;
180
181 #define EOB_ACT_CONTINUE_SCAN 0
182 #define EOB_ACT_END_OF_FILE 1
183 #define EOB_ACT_LAST_MATCH 2
184
185     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
186      *       access to the local variable yy_act. Since yyless() is a macro, it would break
187      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
188      *       One obvious solution it to make yy_act a global. I tried that, and saw
189      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
190      *       normally declared as a register variable-- so it is not worth it.
191      */
192 #define  YY_LESS_LINENO(n) \
193             do { \
194                 int yyl;\
195                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
196                     if ( surf_parse_text[yyl] == '\n' )\
197                         --surf_parse_lineno;\
198             }while(0)
199
200 /* Return all but the first "n" matched characters back to the input stream. */
201 #define yyless(n) \
202         do \
203                 { \
204                 /* Undo effects of setting up surf_parse_text. */ \
205         int yyless_macro_arg = (n); \
206         YY_LESS_LINENO(yyless_macro_arg);\
207                 *yy_cp = (yy_hold_char); \
208                 YY_RESTORE_YY_MORE_OFFSET \
209                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
210                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
211                 } \
212         while ( 0 )
213
214 #define unput(c) yyunput( c, (yytext_ptr)  )
215
216 #ifndef YY_TYPEDEF_YY_SIZE_T
217 #define YY_TYPEDEF_YY_SIZE_T
218 typedef size_t yy_size_t;
219 #endif
220
221 #ifndef YY_STRUCT_YY_BUFFER_STATE
222 #define YY_STRUCT_YY_BUFFER_STATE
223 struct yy_buffer_state {
224   FILE *yy_input_file;
225
226   char *yy_ch_buf;              /* input buffer */
227   char *yy_buf_pos;             /* current position in input buffer */
228
229   /* Size of input buffer in bytes, not including room for EOB
230    * characters.
231    */
232   yy_size_t yy_buf_size;
233
234   /* Number of characters read into yy_ch_buf, not including EOB
235    * characters.
236    */
237   int yy_n_chars;
238
239   /* Whether we "own" the buffer - i.e., we know we created it,
240    * and can realloc() it to grow it, and should free() it to
241    * delete it.
242    */
243   int yy_is_our_buffer;
244
245   /* Whether this is an "interactive" input source; if so, and
246    * if we're using stdio for input, then we want to use getc()
247    * instead of fread(), to make sure we stop fetching input after
248    * each newline.
249    */
250   int yy_is_interactive;
251
252   /* Whether we're considered to be at the beginning of a line.
253    * If so, '^' rules will be active on the next match, otherwise
254    * not.
255    */
256   int yy_at_bol;
257
258   int yy_bs_lineno;   /**< The line count. */
259   int yy_bs_column;   /**< The column count. */
260
261   /* Whether to try to fill the input buffer when we reach the
262    * end of it.
263    */
264   int yy_fill_buffer;
265
266   int yy_buffer_status;
267
268 #define YY_BUFFER_NEW 0
269 #define YY_BUFFER_NORMAL 1
270   /* When an EOF's been seen but there's still some text to process
271    * then we mark the buffer as YY_EOF_PENDING, to indicate that we
272    * shouldn't try reading from the input source any more.  We might
273    * still have a bunch of tokens to match, though, because of
274    * possible backing-up.
275    *
276    * When we actually see the EOF, we change the status to "new"
277    * (via surf_parse_restart()), so that the user can continue scanning by
278    * just pointing surf_parse_in at a new input file.
279    */
280 #define YY_BUFFER_EOF_PENDING 2
281
282 };
283 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
284
285 /* Stack of input buffers. */
286 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
287 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
288 static YY_BUFFER_STATE *yy_buffer_stack = 0;  /**< Stack as an array. */
289
290 /* We provide macros for accessing buffer states in case in the
291  * future we want to put the buffer states in a more general
292  * "scanner state".
293  *
294  * Returns the top of the stack, or NULL.
295  */
296 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
297                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
298                           : NULL)
299
300 /* Same as previous macro, but useful when we know that the buffer stack is not
301  * NULL or when we need an lvalue. For internal use only.
302  */
303 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
304
305 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
306 static char yy_hold_char;
307 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
308 int surf_parse_leng;
309
310 /* Points to current character in buffer. */
311 static char *yy_c_buf_p = (char *) 0;
312 static int yy_init = 0;         /* whether we need to initialize */
313 static int yy_start = 0;        /* start state number */
314
315 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
316  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
317  */
318 static int yy_did_buffer_switch_on_eof;
319
320 void surf_parse_restart(FILE * input_file);
321 void surf_parse__switch_to_buffer(YY_BUFFER_STATE new_buffer);
322 YY_BUFFER_STATE surf_parse__create_buffer(FILE * file, int size);
323 void surf_parse__delete_buffer(YY_BUFFER_STATE b);
324 void surf_parse__flush_buffer(YY_BUFFER_STATE b);
325 void surf_parse_push_buffer_state(YY_BUFFER_STATE new_buffer);
326 void surf_parse_pop_buffer_state(void);
327
328 static void surf_parse_ensure_buffer_stack(void);
329 static void surf_parse__load_buffer_state(void);
330 static void surf_parse__init_buffer(YY_BUFFER_STATE b, FILE * file);
331
332 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
333
334 YY_BUFFER_STATE surf_parse__scan_buffer(char *base, yy_size_t size);
335 YY_BUFFER_STATE surf_parse__scan_string(yyconst char *yy_str);
336 YY_BUFFER_STATE surf_parse__scan_bytes(yyconst char *bytes, int len);
337
338 void *surf_parse_alloc(yy_size_t);
339 void *surf_parse_realloc(void *, yy_size_t);
340 void surf_parse_free(void *);
341
342 #define yy_new_buffer surf_parse__create_buffer
343
344 #define yy_set_interactive(is_interactive) \
345         { \
346         if ( ! YY_CURRENT_BUFFER ){ \
347         surf_parse_ensure_buffer_stack (); \
348                 YY_CURRENT_BUFFER_LVALUE =    \
349             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
350         } \
351         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
352         }
353
354 #define yy_set_bol(at_bol) \
355         { \
356         if ( ! YY_CURRENT_BUFFER ){\
357         surf_parse_ensure_buffer_stack (); \
358                 YY_CURRENT_BUFFER_LVALUE =    \
359             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
360         } \
361         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
362         }
363
364 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
365
366 /* Begin user sect3 */
367
368 #define surf_parse_wrap(n) 1
369 #define YY_SKIP_YYWRAP
370
371 typedef unsigned char YY_CHAR;
372
373 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
374
375 typedef int yy_state_type;
376
377 extern int surf_parse_lineno;
378
379 int surf_parse_lineno = 1;
380
381 extern char *surf_parse_text;
382 #define yytext_ptr surf_parse_text
383
384 static yy_state_type yy_get_previous_state(void);
385 static yy_state_type yy_try_NUL_trans(yy_state_type current_state);
386 static int yy_get_next_buffer(void);
387 static void yy_fatal_error(yyconst char msg[]);
388
389 /* Done after the current pattern has been matched and before the
390  * corresponding action - sets up surf_parse_text.
391  */
392 #define YY_DO_BEFORE_ACTION \
393         (yytext_ptr) = yy_bp; \
394         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
395         (yy_hold_char) = *yy_cp; \
396         *yy_cp = '\0'; \
397         (yy_c_buf_p) = yy_cp;
398
399 #define YY_NUM_RULES 351
400 #define YY_END_OF_BUFFER 352
401 /* This struct is not used in this scanner,
402    but its presence is necessary. */
403 struct yy_trans_info {
404   flex_int32_t yy_verify;
405   flex_int32_t yy_nxt;
406 };
407 static yyconst flex_int16_t yy_accept[2023] = { 0,
408   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
409   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
410   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
411   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
412   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
413   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
414   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
415   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
416   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
417   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
418
419   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
420   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
421   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
422   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
423   0, 0, 352, 350, 15, 10, 10, 15, 15, 330,
424   10, 330, 5, 6, 5, 8, 9, 8, 346, 338,
425   339, 347, 344, 347, 345, 349, 338, 339, 349, 350,
426   26, 10, 26, 26, 26, 24, 26, 26, 30, 10,
427   30, 30, 350, 350, 30, 37, 10, 37, 37, 37,
428   35, 37, 41, 10, 41, 52, 10, 52, 52, 52,
429
430   50, 52, 52, 52, 347, 346, 74, 10, 74, 74,
431   74, 72, 74, 74, 74, 74, 78, 10, 78, 350,
432   78, 97, 10, 97, 97, 97, 95, 97, 97, 97,
433   101, 10, 101, 114, 10, 114, 114, 114, 112, 114,
434   114, 114, 114, 118, 10, 118, 125, 10, 125, 125,
435   125, 123, 125, 350, 350, 129, 10, 129, 156, 10,
436   156, 156, 156, 154, 156, 156, 156, 156, 156, 160,
437   10, 160, 160, 169, 10, 169, 169, 169, 167, 169,
438   169, 173, 10, 173, 196, 10, 196, 196, 196, 194,
439   196, 196, 196, 196, 196, 196, 200, 10, 200, 207,
440
441   10, 207, 207, 207, 205, 207, 211, 10, 211, 236,
442   10, 236, 236, 236, 234, 236, 236, 236, 236, 240,
443   10, 240, 240, 259, 10, 259, 259, 259, 257, 259,
444   259, 259, 350, 263, 10, 263, 263, 286, 10, 286,
445   286, 286, 284, 286, 286, 286, 286, 290, 10, 290,
446   290, 297, 10, 297, 297, 297, 295, 297, 301, 10,
447   301, 314, 10, 314, 314, 314, 312, 314, 314, 314,
448   314, 318, 10, 318, 350, 318, 325, 10, 325, 325,
449   325, 323, 325, 329, 10, 329, 10, 0, 2, 2,
450   0, 4, 7, 341, 340, 0, 0, 0, 0, 0,
451
452   0, 0, 25, 27, 27, 27, 0, 0, 0, 0,
453   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
454   0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
455   38, 38, 0, 51, 53, 53, 53, 53, 0, 0,
456   0, 73, 75, 75, 75, 75, 75, 75, 75, 0,
457   0, 96, 98, 98, 98, 98, 0, 113, 115, 115,
458   115, 115, 115, 0, 124, 126, 126, 0, 155, 157,
459   157, 157, 157, 157, 157, 157, 0, 168, 170, 170,
460   170, 0, 195, 197, 197, 197, 197, 197, 197, 197,
461   197, 197, 0, 206, 208, 208, 0, 235, 237, 237,
462
463   237, 237, 237, 237, 0, 258, 260, 260, 260, 260,
464   260, 0, 0, 285, 287, 287, 287, 287, 287, 0,
465   296, 298, 298, 0, 313, 315, 315, 315, 315, 315,
466   0, 0, 324, 326, 326, 0, 0, 0, 0, 0,
467   3, 0, 0, 0, 0, 0, 0, 0, 348, 0,
468   27, 27, 0, 0, 0, 0, 0, 0, 0, 0,
469   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
470   0, 0, 0, 0, 0, 0, 0, 0, 0, 38,
471   0, 0, 53, 0, 0, 53, 0, 0, 0, 343,
472   75, 0, 0, 75, 75, 75, 75, 0, 0, 0,
473
474   98, 98, 98, 0, 0, 0, 0, 115, 115, 115,
475   0, 0, 126, 0, 0, 157, 0, 0, 157, 157,
476   157, 157, 0, 0, 0, 0, 170, 0, 0, 197,
477   0, 0, 0, 0, 197, 197, 197, 197, 197, 0,
478   0, 0, 0, 0, 0, 237, 0, 0, 237, 237,
479   237, 0, 0, 260, 260, 260, 260, 0, 0, 0,
480   287, 287, 287, 287, 0, 0, 0, 0, 0, 0,
481   315, 315, 315, 315, 0, 0, 0, 326, 0, 0,
482   0, 14, 1, 0, 0, 336, 0, 0, 0, 333,
483   332, 0, 0, 27, 27, 0, 0, 29, 0, 0,
484
485   0, 0, 0, 0, 0, 0, 0, 0, 0, 103,
486   0, 0, 0, 0, 0, 0, 0, 102, 0, 0,
487   0, 0, 0, 0, 38, 0, 0, 40, 0, 53,
488   0, 45, 44, 53, 0, 0, 0, 55, 0, 75,
489   0, 59, 58, 0, 0, 75, 0, 0, 75, 0,
490   0, 77, 0, 0, 98, 98, 98, 0, 0, 100,
491   0, 0, 105, 104, 115, 115, 115, 0, 0, 117,
492   0, 126, 0, 0, 128, 0, 157, 0, 133, 132,
493   157, 157, 157, 157, 0, 0, 159, 0, 0, 164,
494   163, 170, 0, 0, 172, 0, 197, 197, 0, 187,
495
496   186, 0, 177, 176, 0, 0, 197, 197, 197, 197,
497   0, 0, 199, 0, 0, 204, 203, 0, 0, 210,
498   0, 237, 0, 215, 214, 237, 237, 237, 0, 0,
499   239, 0, 260, 0, 0, 0, 0, 260, 0, 0,
500   0, 262, 0, 287, 0, 0, 287, 0, 0, 0,
501   0, 289, 0, 0, 294, 293, 0, 0, 300, 0,
502   315, 315, 315, 315, 0, 0, 317, 0, 0, 326,
503   0, 0, 328, 0, 0, 0, 337, 331, 0, 0,
504   0, 27, 27, 0, 0, 0, 0, 131, 0, 213,
505   0, 0, 161, 0, 0, 103, 0, 0, 0, 130,
506
507   212, 0, 0, 102, 0, 0, 0, 0, 0, 0,
508   0, 0, 0, 0, 0, 53, 0, 0, 75, 0,
509   63, 62, 0, 0, 0, 61, 60, 75, 0, 162,
510   98, 0, 0, 98, 0, 115, 115, 115, 0, 126,
511   0, 157, 157, 157, 157, 157, 0, 170, 0, 197,
512   197, 0, 189, 188, 197, 197, 197, 197, 0, 0,
513   237, 237, 237, 237, 0, 260, 0, 246, 245, 0,
514   244, 243, 260, 212, 0, 287, 0, 269, 268, 287,
515   0, 267, 266, 0, 0, 315, 0, 0, 315, 315,
516   0, 0, 326, 0, 0, 0, 0, 12, 0, 334,
517
518   335, 0, 27, 27, 0, 0, 0, 0, 131, 0,
519   213, 0, 0, 0, 161, 0, 265, 43, 0, 0,
520   130, 212, 0, 265, 42, 0, 264, 0, 264, 42,
521   0, 34, 33, 0, 0, 47, 46, 53, 0, 0,
522   75, 0, 65, 64, 75, 0, 162, 98, 0, 0,
523   0, 0, 0, 0, 115, 115, 115, 0, 116, 126,
524   0, 157, 157, 157, 0, 0, 0, 0, 157, 0,
525   0, 0, 0, 0, 0, 197, 0, 0, 197, 197,
526   197, 0, 0, 237, 237, 237, 0, 0, 237, 0,
527   260, 260, 0, 0, 287, 287, 0, 0, 315, 0,
528
529   305, 304, 315, 315, 0, 0, 0, 0, 0, 0,
530   0, 0, 11, 0, 27, 27, 27, 0, 0, 0,
531   0, 0, 0, 0, 0, 57, 265, 0, 202, 43,
532   0, 0, 0, 56, 201, 42, 0, 264, 0, 0,
533   0, 0, 53, 0, 0, 75, 75, 0, 98, 0,
534   0, 0, 0, 0, 0, 0, 0, 0, 92, 91,
535   0, 0, 0, 115, 0, 0, 0, 0, 0, 157,
536   157, 157, 0, 135, 134, 0, 0, 0, 157, 0,
537   158, 0, 166, 165, 0, 171, 0, 191, 190, 0,
538   0, 0, 185, 184, 0, 0, 197, 0, 0, 0,
539
540   0, 237, 237, 237, 0, 0, 0, 237, 0, 238,
541   0, 0, 260, 0, 0, 0, 0, 287, 0, 0,
542   315, 315, 315, 0, 0, 0, 322, 321, 0, 0,
543   0, 0, 0, 0, 0, 27, 27, 0, 0, 175,
544   120, 32, 0, 0, 303, 57, 0, 202, 0, 174,
545   119, 56, 201, 302, 0, 31, 0, 0, 53, 0,
546   0, 54, 75, 75, 0, 0, 0, 0, 0, 0,
547   0, 0, 0, 0, 0, 0, 0, 0, 0, 107,
548   106, 0, 0, 0, 109, 108, 0, 122, 121, 0,
549   157, 157, 157, 0, 0, 157, 0, 193, 192, 0,
550
551   179, 178, 0, 0, 0, 181, 180, 0, 0, 237,
552   0, 0, 237, 237, 0, 0, 237, 0, 0, 0,
553   260, 0, 0, 0, 0, 0, 287, 0, 288, 0,
554   315, 315, 315, 0, 0, 0, 0, 0, 0, 17,
555   0, 19, 18, 27, 27, 0, 319, 175, 120, 32,
556   291, 16, 303, 0, 0, 174, 119, 302, 0, 31,
557   0, 0, 53, 342, 75, 75, 0, 76, 0, 94,
558   93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
559   0, 0, 0, 111, 110, 0, 157, 157, 157, 0,
560   0, 0, 0, 157, 0, 183, 182, 0, 0, 209,
561
562   237, 0, 221, 220, 237, 237, 0, 0, 0, 0,
563   237, 0, 0, 0, 0, 260, 292, 0, 0, 0,
564   0, 0, 287, 0, 0, 0, 315, 315, 0, 320,
565   0, 0, 0, 0, 17, 27, 27, 0, 319, 291,
566   16, 0, 0, 0, 0, 0, 39, 53, 0, 0,
567   75, 0, 0, 0, 0, 0, 0, 0, 0, 0,
568   0, 0, 0, 127, 157, 157, 157, 0, 141, 0,
569   140, 157, 0, 198, 0, 0, 237, 237, 237, 0,
570   225, 0, 224, 237, 0, 0, 0, 0, 0, 0,
571   0, 0, 292, 0, 0, 0, 0, 0, 0, 0,
572
573   287, 0, 0, 307, 306, 0, 0, 315, 0, 316,
574   320, 0, 0, 0, 0, 0, 0, 27, 0, 28,
575   0, 0, 0, 0, 53, 0, 0, 0, 75, 0,
576   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
577   157, 157, 157, 143, 142, 0, 0, 0, 217, 216,
578   237, 237, 237, 227, 226, 0, 0, 0, 0, 0,
579   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
580   0, 0, 0, 287, 287, 0, 299, 0, 311, 310,
581   0, 0, 0, 327, 0, 0, 0, 0, 21, 20,
582   0, 0, 242, 0, 241, 0, 0, 0, 0, 0,
583
584   0, 0, 75, 0, 0, 0, 0, 84, 0, 0,
585   0, 0, 83, 0, 157, 157, 157, 0, 145, 144,
586   237, 237, 237, 0, 229, 228, 0, 0, 0, 0,
587   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
588   0, 0, 0, 287, 287, 0, 309, 308, 0, 0,
589   0, 0, 23, 22, 242, 0, 241, 0, 0, 49,
590   48, 0, 0, 0, 0, 75, 0, 0, 0, 0,
591   0, 0, 0, 0, 0, 0, 0, 157, 157, 157,
592   237, 0, 0, 237, 0, 0, 0, 0, 0, 0,
593   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
594
595   0, 287, 287, 0, 0, 0, 0, 80, 79, 0,
596   0, 0, 0, 0, 0, 0, 0, 90, 0, 0,
597   0, 89, 0, 0, 0, 137, 136, 157, 157, 157,
598   157, 237, 0, 223, 222, 237, 0, 0, 0, 0,
599   0, 0, 256, 0, 255, 0, 0, 261, 0, 0,
600   0, 0, 0, 0, 0, 0, 287, 0, 0, 287,
601   0, 0, 0, 0, 0, 0, 80, 79, 0, 0,
602   0, 0, 0, 67, 66, 0, 0, 0, 0, 0,
603   0, 0, 157, 157, 157, 157, 0, 0, 0, 0,
604   0, 0, 0, 0, 0, 0, 254, 253, 0, 0,
605
606   0, 0, 0, 0, 0, 273, 272, 287, 0, 271,
607   270, 287, 0, 0, 0, 0, 0, 0, 0, 71,
608   0, 70, 88, 0, 0, 87, 0, 0, 0, 99,
609   157, 157, 157, 157, 0, 219, 218, 0, 0, 0,
610   0, 0, 250, 0, 0, 249, 0, 0, 281, 0,
611   0, 280, 287, 287, 0, 0, 0, 12, 0, 12,
612   0, 0, 0, 82, 86, 81, 85, 157, 157, 157,
613   157, 0, 0, 0, 0, 252, 248, 251, 247, 283,
614   279, 282, 278, 287, 287, 0, 0, 0, 0, 0,
615   0, 0, 0, 0, 0, 0, 0, 0, 157, 0,
616
617   0, 0, 0, 0, 0, 287, 287, 0, 0, 69,
618   68, 0, 139, 138, 0, 149, 148, 0, 147, 146,
619   157, 0, 153, 152, 0, 0, 0, 0, 287, 287,
620   0, 11, 157, 0, 0, 0, 0, 287, 287, 0,
621   157, 0, 0, 0, 0, 287, 287, 0, 157, 0,
622   0, 0, 0, 287, 287, 0, 0, 0, 0, 231,
623   0, 230, 287, 287, 0, 0, 151, 150, 233, 232,
624   287, 287, 0, 287, 287, 0, 287, 287, 0, 0,
625   287, 287, 0, 0, 287, 287, 0, 0, 287, 287,
626   0, 0, 0, 0, 0, 0, 0, 0, 0, 277,
627
628   276, 0, 275, 274, 0, 0, 0, 0, 0, 0,
629   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
630   13, 0
631 };
632
633 static yyconst flex_int32_t yy_ec[256] = { 0,
634   1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
635   1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
636   1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
637   1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
638   1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
639   13, 14, 13, 13, 13, 15, 13, 16, 17, 18,
640   19, 20, 21, 1, 22, 23, 24, 25, 26, 27,
641   28, 29, 30, 28, 31, 32, 33, 34, 35, 36,
642   28, 37, 38, 39, 28, 40, 41, 28, 42, 28,
643   43, 1, 44, 1, 45, 1, 46, 47, 48, 49,
644
645   50, 51, 52, 53, 54, 28, 55, 56, 57, 58,
646   59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
647   69, 28, 1, 1, 1, 1, 1, 1, 1, 1,
648   1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
649   1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
650   1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
651   1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
652   1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
653   1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
654   1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
655
656   1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
657   1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
658   1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
659   1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
660   1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
661   1, 1, 1, 1, 1
662 };
663
664 static yyconst flex_int32_t yy_meta[70] = { 0,
665   1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
666   3, 1, 4, 4, 4, 5, 6, 1, 7, 8,
667   1, 9, 9, 9, 9, 9, 9, 5, 5, 5,
668   5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
669   5, 5, 1, 1, 5, 9, 9, 9, 9, 9,
670   9, 5, 5, 5, 5, 5, 5, 5, 5, 5,
671   5, 5, 5, 5, 5, 5, 5, 5, 5
672 };
673
674 static yyconst flex_int16_t yy_base[2256] = { 0,
675   0, 0, 0, 3, 6, 9, 12, 29, 16, 19,
676   14, 17, 33, 36, 49, 55, 45, 61, 66, 72,
677   105, 173, 75, 78, 83, 125, 128, 132, 135, 138,
678   193, 196, 200, 203, 206, 224, 242, 293, 262, 265,
679   344, 404, 271, 273, 464, 527, 269, 316, 320, 323,
680   364, 367, 371, 374, 590, 654, 424, 427, 718, 781,
681   431, 434, 844, 907, 484, 487, 491, 494, 497, 547,
682   970, 1033, 550, 554, 557, 560, 610, 613, 617, 620,
683   1096, 1162, 623, 674, 1228, 0, 677, 681, 1297, 1351,
684   684, 687, 1405, 1468, 738, 741, 745, 748, 751, 801,
685
686   804, 808, 1531, 1594, 811, 814, 864, 867, 871, 874,
687   877, 927, 1657, 1720, 930, 934, 937, 940, 990, 993,
688   997, 1000, 1783, 1837, 1003, 1053, 1891, 1954, 1056, 1060,
689   1063, 1066, 1116, 1119, 1123, 1126, 2017, 2083, 1129, 1182,
690   0, 0, 5066, 7094, 7094, 95, 100, 29, 41, 7094,
691   155, 51, 7094, 7094, 5055, 7094, 7094, 5043, 7094, 5058,
692   5042, 1141, 7094, 7094, 7094, 7094, 5036, 5032, 4990, 210,
693   7094, 158, 5012, 0, 142, 7094, 4977, 4969, 7094, 162,
694   2145, 2205, 160, 5007, 176, 7094, 165, 4998, 0, 149,
695   7094, 4961, 7094, 230, 378, 7094, 326, 4994, 0, 208,
696
697   7094, 4958, 4949, 4947, 379, 4950, 7094, 329, 4972, 0,
698   214, 7094, 4938, 4937, 238, 4915, 7094, 377, 11, 31,
699   4965, 7094, 399, 4948, 0, 435, 7094, 4907, 4905, 4888,
700   7094, 457, 441, 7094, 520, 4922, 0, 436, 7094, 4892,
701   4870, 4871, 4851, 7094, 583, 498, 7094, 640, 4894, 0,
702   499, 7094, 4862, 513, 4840, 7094, 644, 4879, 7094, 647,
703   4870, 0, 562, 7094, 4802, 34, 4821, 4797, 4788, 7094,
704   704, 177, 4838, 7094, 708, 4827, 0, 568, 7094, 4793,
705   4783, 7094, 711, 752, 7094, 772, 4808, 0, 631, 7094,
706   211, 4777, 4775, 93, 4773, 4753, 7094, 834, 818, 7094,
707
708   894, 4796, 0, 632, 7094, 4753, 7094, 897, 881, 7094,
709   901, 4781, 0, 695, 7094, 4739, 4735, 4736, 80, 7094,
710   957, 360, 4765, 7094, 960, 4755, 0, 696, 7094, 4726,
711   4709, 26, 304, 7094, 963, 330, 4746, 7094, 1149, 4726,
712   0, 885, 7094, 4694, 4675, 4679, 4673, 7094, 1152, 499,
713   4721, 7094, 1155, 4705, 0, 948, 7094, 4672, 7094, 1186,
714   1005, 7094, 1192, 4696, 0, 1004, 7094, 4650, 4654, 4655,
715   4643, 7094, 1205, 1100, 4694, 4691, 7094, 1208, 4678, 0,
716   1007, 7094, 4650, 7094, 1211, 1068, 1215, 429, 4627, 7094,
717   4683, 4665, 7094, 7094, 7094, 1306, 283, 4614, 4612, 4607,
718
719   4647, 4609, 7094, 0, 4598, 4601, 4586, 4583, 4584, 4580,
720   4574, 4570, 4573, 4, 166, 4567, 4554, 4558, 4546, 4545,
721   4541, 404, 4544, 4530, 38, 467, 4530, 712, 4523, 7094,
722   0, 4526, 4527, 7094, 0, 4523, 1320, 4516, 533, 4512,
723   4555, 7094, 0, 4514, 1323, 4486, 4507, 4493, 4497, 4477,
724   89, 7094, 0, 4488, 4462, 4473, 4453, 7094, 0, 1326,
725   4459, 4459, 4455, 4435, 7094, 0, 4429, 4441, 7094, 0,
726   4444, 1329, 4422, 4400, 4400, 4419, 4407, 7094, 0, 1373,
727   4398, 4393, 7094, 0, 4406, 1377, 1380, 4375, 4371, 4386,
728   4372, 4366, 4367, 7094, 0, 1383, 4348, 7094, 0, 4351,
729
730   1425, 4340, 4357, 4355, 4340, 7094, 0, 4327, 4326, 4340,
731   4326, 4323, 4308, 7094, 0, 4305, 4289, 4291, 4298, 4283,
732   7094, 0, 1428, 4287, 7094, 0, 4277, 4271, 4272, 4280,
733   4264, 4261, 7094, 0, 4265, 4267, 4286, 4295, 807, 4246,
734   7094, 1207, 0, 4229, 4229, 4269, 4268, 4224, 7094, 4231,
735   4213, 4213, 1431, 1434, 4218, 4203, 4205, 4201, 4215, 4194,
736   4202, 4187, 4187, 4178, 4170, 4186, 4165, 4167, 4164, 4155,
737   4154, 4145, 4145, 4157, 4143, 4135, 4141, 4122, 4139, 4128,
738   1437, 1489, 4127, 1494, 1497, 4108, 4137, 1551, 1556, 7094,
739   4106, 1559, 1514, 1562, 4097, 1565, 4108, 1619, 1627, 4090,
740
741   4091, 4097, 4083, 1622, 1630, 1677, 1583, 4079, 4065, 4067,
742   1682, 1695, 4068, 1685, 1740, 4058, 1691, 1642, 4059, 4062,
743   4056, 4037, 1745, 1748, 1751, 1710, 4035, 1755, 1808, 583,
744   1811, 1814, 1857, 1860, 1869, 4032, 4030, 4025, 4021, 1911,
745   1920, 1914, 1880, 1917, 1923, 4022, 1926, 1975, 4014, 3994,
746   3987, 1983, 1986, 3996, 1989, 1992, 3981, 3977, 2039, 2046,
747   3979, 1997, 3983, 2043, 2049, 2052, 2061, 2072, 2104, 2110,
748   3976, 3952, 3959, 3943, 2113, 2116, 3952, 3927, 2119, 2138,
749   3970, 7094, 7094, 315, 3922, 7094, 3934, 3933, 3878, 7094,
750   7094, 3872, 3870, 3879, 3868, 2141, 2149, 7094, 2168, 3865,
751
752   3859, 3871, 3849, 3854, 3849, 3830, 261, 3839, 3819, 1223,
753   3834, 3802, 3814, 3798, 3796, 3801, 3784, 1332, 3795, 384,
754   3777, 3784, 3774, 3788, 2144, 2172, 2177, 7094, 2182, 2209,
755   2216, 7094, 7094, 2229, 3810, 2232, 2235, 7094, 2240, 3756,
756   2268, 7094, 7094, 2243, 2276, 2287, 2290, 2293, 3767, 2301,
757   2308, 7094, 2311, 432, 3761, 2314, 3760, 2320, 2323, 7094,
758   2332, 2335, 7094, 7094, 3754, 3751, 3743, 2343, 2346, 7094,
759   2351, 3739, 2354, 2357, 7094, 2377, 3735, 2380, 7094, 7094,
760   3728, 3721, 3717, 3727, 2388, 2391, 7094, 2396, 2400, 7094,
761   7094, 3722, 2410, 2415, 7094, 2418, 3702, 3717, 2422, 7094,
762
763   7094, 2438, 7094, 7094, 2430, 2448, 3700, 3698, 3703, 3695,
764   2458, 2461, 7094, 2464, 2467, 7094, 7094, 2483, 2486, 7094,
765   2489, 3673, 2492, 7094, 7094, 3679, 3672, 3662, 2508, 2511,
766   7094, 2514, 3611, 2517, 2521, 2536, 2539, 3618, 3612, 2547,
767   2554, 7094, 2557, 3602, 2560, 2567, 3607, 2578, 2581, 2589,
768   2592, 7094, 2596, 2599, 7094, 7094, 2611, 2615, 7094, 2621,
769   3590, 2624, 3607, 3576, 2630, 2634, 7094, 2642, 3573, 3586,
770   2645, 2649, 7094, 2653, 726, 2656, 7094, 7094, 3618, 3616,
771   3569, 3560, 3587, 2664, 3545, 3528, 3544, 1386, 3520, 2152,
772   3533, 3532, 1460, 3512, 3519, 1463, 3518, 3502, 3518, 1523,
773
774   2678, 3504, 3511, 1526, 3497, 3496, 3494, 3478, 3491, 3490,
775   2668, 2686, 2694, 2700, 2704, 3489, 3504, 2713, 3479, 2718,
776   7094, 7094, 2727, 2732, 2745, 7094, 7094, 3473, 2740, 1650,
777   3457, 2753, 2760, 2771, 2774, 3446, 3466, 3439, 2777, 3457,
778   2780, 3458, 3452, 3436, 2783, 2789, 2801, 2807, 2811, 2814,
779   2821, 2833, 7094, 7094, 2825, 2843, 2847, 2850, 2853, 2856,
780   3442, 3447, 3431, 2876, 2879, 3430, 2885, 7094, 7094, 2894,
781   7094, 7094, 3418, 2903, 2906, 3419, 2921, 7094, 7094, 3412,
782   2929, 7094, 7094, 2937, 2940, 3420, 2910, 2943, 3401, 3418,
783   2951, 3402, 2959, 2962, 181, 3437, 2965, 7094, 3436, 7094,
784
785   7094, 3395, 3388, 518, 2970, 3395, 3393, 3394, 1705, 3391,
786   1769, 3387, 3375, 3365, 1774, 3370, 2973, 2977, 3375, 3365,
787   1777, 1829, 3354, 2984, 2994, 3347, 3000, 3358, 3003, 3009,
788   3020, 7094, 7094, 3030, 3034, 7094, 7094, 3351, 3362, 3049,
789   3328, 3052, 7094, 7094, 3325, 3064, 1832, 3325, 3068, 1059,
790   1113, 3045, 3076, 3084, 3087, 3090, 3094, 3098, 7094, 3108,
791   3112, 3337, 3333, 3317, 3117, 3122, 3135, 3138, 3328, 3146,
792   3149, 3153, 3161, 3167, 3170, 3180, 3185, 3188, 3198, 3203,
793   3206, 3209, 3212, 3328, 3307, 3321, 3216, 3224, 3321, 3234,
794   3237, 3241, 3322, 3244, 3247, 3265, 3268, 3273, 3310, 3276,
795
796   7094, 7094, 3313, 3302, 3288, 3306, 3293, 3296, 3311, 1422,
797   612, 568, 7094, 3279, 3317, 3320, 3323, 3326, 3282, 3275,
798   3282, 3267, 3252, 3249, 3246, 1875, 1945, 3250, 1948, 2010,
799   3258, 3242, 3248, 3330, 3341, 3345, 3224, 3348, 3229, 3233,
800   3233, 3351, 3226, 3243, 3355, 3204, 3207, 3358, 3361, 3236,
801   3222, 260, 3220, 3231, 3217, 421, 3207, 3384, 7094, 7094,
802   3392, 3395, 3400, 3414, 3417, 3420, 3428, 3435, 3446, 3180,
803   3169, 3172, 3449, 7094, 7094, 3458, 3188, 3186, 3149, 3466,
804   7094, 3469, 7094, 7094, 3477, 7094, 3481, 7094, 7094, 3489,
805   3496, 3507, 7094, 7094, 3515, 3518, 3526, 3529, 3533, 3547,
806
807   3550, 3134, 3553, 3151, 3556, 3160, 3158, 3131, 3571, 7094,
808   3574, 3577, 3585, 3116, 3597, 3592, 3612, 3603, 3606, 3621,
809   3120, 3120, 3121, 3625, 3109, 3628, 7094, 7094, 3640, 808,
810   1330, 747, 3104, 3644, 3647, 3655, 3662, 3669, 3096, 3673,
811   3676, 3680, 3087, 3086, 3683, 3689, 3070, 3692, 3074, 3695,
812   3698, 3701, 3704, 3707, 3065, 3712, 3070, 3715, 3068, 3074,
813   3718, 7094, 3046, 3061, 3721, 3726, 3730, 3071, 3065, 3044,
814   3047, 3035, 3041, 3035, 3024, 3026, 3018, 3740, 3744, 7094,
815   7094, 3752, 3755, 3764, 7094, 7094, 3772, 7094, 7094, 3780,
816   3001, 2995, 2985, 669, 743, 2986, 3783, 7094, 7094, 3792,
817
818   7094, 7094, 3800, 3803, 3811, 7094, 7094, 3819, 3822, 2988,
819   3825, 3828, 2988, 2970, 806, 857, 2972, 3843, 358, 361,
820   3851, 2962, 3854, 3857, 658, 785, 3865, 3869, 7094, 3873,
821   3876, 2968, 2960, 3883, 2950, 3894, 3888, 927, 1009, 3898,
822   3903, 7094, 7094, 3913, 3916, 3922, 3925, 3936, 3941, 3945,
823   3951, 3954, 3957, 2953, 2950, 3960, 3963, 3967, 2938, 3970,
824   2934, 3973, 2927, 7094, 3979, 2920, 3982, 7094, 3985, 7094,
825   7094, 2958, 2920, 2932, 2925, 2925, 2925, 2909, 2911, 2905,
826   2902, 3993, 3997, 7094, 7094, 4005, 2868, 2859, 2848, 2865,
827   2878, 2850, 2865, 2818, 4008, 7094, 7094, 4016, 4019, 7094,
828
829   4024, 4028, 7094, 7094, 2810, 2784, 2761, 2746, 2713, 2723,
830   2624, 81, 919, 466, 985, 4038, 4042, 4045, 474, 1048,
831   477, 1057, 4051, 4056, 4059, 4071, 4064, 527, 4082, 4085,
832   4088, 4091, 748, 840, 4095, 4101, 4113, 4119, 4122, 4125,
833   4131, 518, 548, 565, 624, 4134, 7094, 665, 4138, 4141,
834   706, 738, 786, 838, 838, 886, 894, 901, 915, 912,
835   931, 4156, 4162, 7094, 934, 971, 965, 1025, 7094, 1023,
836   7094, 4165, 4168, 7094, 4171, 4177, 998, 1005, 1019, 1080,
837   7094, 1115, 7094, 4189, 1109, 1100, 1117, 1135, 1140, 1165,
838   4192, 4195, 4203, 4213, 1166, 1160, 1173, 1175, 1165, 1178,
839
840   4216, 4219, 4222, 7094, 7094, 4234, 4238, 4247, 4252, 7094,
841   4255, 4258, 1293, 1347, 1384, 4271, 4278, 4289, 4292, 7094,
842   1169, 1287, 1284, 1293, 4295, 4298, 1366, 1470, 1285, 1316,
843   1325, 1349, 1371, 1391, 1368, 1378, 1397, 1423, 1437, 4307,
844   1381, 1403, 1403, 7094, 7094, 4313, 4316, 4327, 7094, 7094,
845   1402, 1410, 1430, 7094, 7094, 4335, 4338, 1457, 1463, 1468,
846   1468, 1469, 1474, 4346, 1548, 1549, 4354, 1477, 1480, 1485,
847   1519, 1518, 1534, 4357, 4360, 4364, 7094, 4369, 7094, 7094,
848   4378, 4383, 4391, 7094, 1573, 1552, 1559, 4396, 7094, 7094,
849   4404, 4410, 4422, 1525, 4425, 1540, 4428, 4431, 1579, 1598,
850
851   1590, 1606, 1577, 1611, 1601, 1607, 1615, 7094, 1631, 1642,
852   1641, 1650, 7094, 4439, 4442, 1646, 1659, 4446, 7094, 7094,
853   1661, 4454, 1670, 4460, 7094, 7094, 1699, 1710, 1730, 1724,
854   1726, 1741, 1747, 1779, 1771, 1782, 4468, 1772, 1783, 1795,
855   1785, 1788, 1799, 4472, 4475, 4493, 7094, 7094, 1916, 1833,
856   4481, 4501, 7094, 7094, 4478, 1765, 4509, 1801, 4512, 7094,
857   7094, 1845, 1834, 1852, 1841, 4522, 1848, 1868, 1901, 1910,
858   1899, 1917, 1932, 1931, 4525, 4528, 4531, 1919, 1995, 1921,
859   1952, 4540, 4546, 1935, 1980, 1989, 1999, 2009, 2018, 2033,
860   2062, 2032, 2062, 2035, 4554, 2047, 2053, 2048, 2069, 2083,
861
862   2076, 4558, 4561, 2108, 4564, 4567, 4587, 4595, 4598, 2091,
863   2104, 2097, 2107, 4606, 4609, 2105, 2105, 7094, 2107, 2109,
864   2130, 7094, 2132, 4617, 4620, 7094, 7094, 2111, 2117, 2123,
865   2131, 4628, 4632, 7094, 7094, 4640, 2157, 2149, 2162, 2164,
866   2156, 2169, 7094, 2189, 7094, 2194, 4646, 7094, 2179, 2172,
867   2190, 2191, 2187, 2198, 4649, 4652, 4660, 4667, 4671, 4680,
868   2204, 4685, 4688, 4708, 4747, 4791, 4698, 4716, 2202, 2223,
869   2215, 2232, 4720, 7094, 7094, 2243, 2218, 2222, 2248, 2232,
870   2234, 4737, 2217, 2227, 2218, 2217, 4741, 4728, 4759, 4767,
871   2257, 2259, 2281, 2272, 2275, 2292, 7094, 7094, 2281, 2283,
872
873   2313, 2294, 2304, 2321, 4777, 7094, 7094, 4785, 4811, 7094,
874   7094, 4803, 2345, 4821, 2356, 2355, 4857, 4901, 2318, 7094,
875   2328, 7094, 7094, 2345, 2361, 7094, 2359, 2361, 4829, 7094,
876   2322, 2307, 2336, 2337, 4834, 7094, 7094, 4842, 2410, 2418,
877   2382, 2390, 7094, 2392, 2396, 7094, 2404, 2417, 7094, 2418,
878   2420, 7094, 4851, 4869, 2423, 2452, 2454, 2430, 2488, 2437,
879   4877, 2438, 2440, 7094, 7094, 7094, 7094, 4880, 4892, 4921,
880   4924, 2457, 2453, 2461, 2470, 7094, 7094, 7094, 7094, 7094,
881   7094, 7094, 7094, 4927, 4932, 4935, 2494, 2481, 2495, 4945,
882   2499, 2498, 4950, 4883, 4954, 4958, 4968, 4972, 2460, 4980,
883
884   4987, 2487, 2510, 2494, 2513, 4998, 5001, 5004, 2517, 7094,
885   7094, 5007, 7094, 7094, 5019, 7094, 7094, 5027, 7094, 7094,
886   2494, 5035, 7094, 7094, 2510, 2510, 2516, 2516, 5045, 5048,
887   2546, 7094, 2517, 2538, 2549, 2548, 2560, 5051, 5054, 2569,
888   2538, 2570, 2585, 2575, 2595, 5057, 5075, 2601, 5078, 2603,
889   2624, 2613, 2633, 5081, 5084, 2665, 5087, 5110, 2657, 7094,
890   2655, 7094, 5118, 5121, 2666, 5139, 7094, 7094, 7094, 7094,
891   5147, 5150, 5153, 5156, 5159, 5168, 5182, 5187, 2655, 2663,
892   5194, 5201, 2658, 2691, 5205, 5208, 2680, 2738, 5212, 5226,
893   2673, 2719, 5231, 5237, 5253, 5256, 2703, 2739, 5264, 7094,
894
895   7094, 5273, 7094, 7094, 2778, 2787, 2747, 2750, 2850, 2852,
896   2799, 2818, 2689, 2748, 2855, 2866, 2800, 2881, 5281, 5284,
897   7094, 7094, 5304, 5313, 5322, 5331, 5340, 5349, 5358, 5367,
898   5376, 5385, 5394, 5403, 5412, 5421, 5430, 5439, 5448, 5457,
899   5466, 5475, 5484, 5493, 5502, 5511, 5520, 5529, 5538, 5547,
900   5556, 5565, 5574, 5583, 5592, 5601, 5610, 5619, 5628, 5637,
901   5646, 5653, 5660, 5667, 5674, 5681, 5688, 5695, 5702, 5709,
902   5716, 5723, 5730, 5737, 5744, 5751, 5758, 5765, 5774, 5779,
903   5784, 5789, 5794, 5799, 5804, 5809, 5814, 5819, 5826, 5831,
904   5838, 5843, 5850, 5855, 5862, 5867, 5874, 5879, 5886, 5891,
905
906   5898, 5903, 5910, 5915, 5924, 5930, 5937, 5945, 5952, 5960,
907   5967, 5975, 5982, 5990, 5997, 6005, 6012, 6020, 6027, 6035,
908   6042, 6050, 6057, 6065, 6072, 6080, 6088, 6095, 6103, 6110,
909   6118, 6125, 6133, 6141, 6148, 6156, 6163, 6171, 6180, 6186,
910   6193, 6201, 6209, 6217, 6225, 6233, 6240, 6248, 6255, 6263,
911   6270, 6278, 6285, 6293, 6300, 6308, 6315, 6323, 6330, 6338,
912   6346, 6353, 6361, 6368, 6376, 6383, 6391, 6399, 6406, 6414,
913   6421, 6429, 6438, 6447, 6454, 6462, 6470, 6477, 6485, 6492,
914   6500, 6507, 6515, 6522, 6530, 6537, 6545, 6552, 6560, 6568,
915   6576, 6584, 6592, 6600, 6607, 6615, 6622, 6630, 6637, 6645,
916
917   6653, 6660, 6668, 6676, 6684, 6693, 6702, 6709, 6717, 6725,
918   6732, 6740, 6747, 6755, 6762, 6770, 6778, 6786, 6794, 6801,
919   6809, 6817, 6825, 6833, 6841, 6848, 6856, 6864, 6872, 6880,
920   6888, 6896, 6903, 6911, 6919, 6928, 6937, 6945, 6953, 6961,
921   6968, 6976, 6983, 6991, 6999, 7007, 7015, 7023, 7030, 7039,
922   7048, 7057, 7066, 7075, 7084
923 };
924
925 static yyconst flex_int16_t yy_def[2256] = { 0,
926   2023, 2023, 2024, 2024, 2024, 2024, 2025, 2025, 2026, 2026,
927   2027, 2027, 2028, 2028, 2028, 2028, 2029, 2029, 2023, 2023,
928   2030, 2030, 2031, 2031, 2031, 2031, 2023, 2023, 2031, 2031,
929   2023, 2023, 2031, 2031, 2031, 2031, 2032, 2032, 2033, 2033,
930   2034, 2034, 2028, 2028, 2035, 2035, 2036, 2036, 2023, 2023,
931   2036, 2036, 2036, 2036, 2037, 2037, 2038, 2038, 2039, 2039,
932   2040, 2040, 2041, 2041, 2023, 2023, 2023, 2023, 2042, 2042,
933   2043, 2043, 2044, 2044, 2023, 2023, 2044, 2044, 2044, 2044,
934   2045, 2045, 2046, 2046, 2022, 85, 2047, 2047, 2048, 2048,
935   2049, 2049, 2050, 2050, 2051, 2051, 2023, 2023, 2051, 2051,
936
937   2051, 2051, 2052, 2052, 2023, 2023, 2023, 2023, 2053, 2053,
938   2053, 2053, 2054, 2054, 2055, 2055, 2023, 2023, 2055, 2055,
939   2055, 2055, 2056, 2056, 2057, 2057, 2058, 2058, 2059, 2059,
940   2023, 2023, 2059, 2059, 2059, 2059, 2060, 2060, 2061, 2061,
941   2023, 2023, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
942   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
943   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
944   2022, 2022, 2022, 2062, 2022, 2022, 2062, 2062, 2022, 2022,
945   2022, 2022, 181, 182, 182, 2022, 2022, 2022, 2063, 2022,
946   2022, 2063, 2022, 2022, 2022, 2022, 2022, 2022, 2064, 2022,
947
948   2022, 2064, 2064, 2064, 2022, 2022, 2022, 2022, 2022, 2065,
949   2022, 2022, 2065, 2065, 2065, 2065, 2022, 2022, 185, 185,
950   185, 2022, 2022, 2022, 2066, 2022, 2022, 2066, 2066, 2066,
951   2022, 2022, 2022, 2022, 2022, 2022, 2067, 2022, 2022, 2067,
952   2067, 2067, 2067, 2022, 2022, 2022, 2022, 2022, 2022, 2068,
953   2022, 2022, 2068, 185, 254, 2022, 2022, 185, 2022, 2022,
954   2022, 2069, 2022, 2022, 2069, 2069, 2069, 2069, 2069, 2022,
955   2022, 185, 185, 2022, 2022, 2022, 2070, 2022, 2022, 2070,
956   2070, 2022, 2022, 2022, 2022, 2022, 2022, 2071, 2022, 2022,
957   2071, 2071, 2071, 2071, 2071, 2071, 2022, 2022, 2022, 2022,
958
959   2022, 2022, 2072, 2022, 2022, 2072, 2022, 2022, 2022, 2022,
960   2022, 2022, 2073, 2022, 2022, 2073, 2073, 2073, 2073, 2022,
961   2022, 185, 185, 2022, 2022, 2022, 2074, 2022, 2022, 2074,
962   2074, 2074, 185, 2022, 2022, 185, 185, 2022, 2022, 2022,
963   2075, 2022, 2022, 2075, 2075, 2075, 2075, 2022, 2022, 185,
964   185, 2022, 2022, 2022, 2076, 2022, 2022, 2076, 2022, 2022,
965   2022, 2022, 2022, 2022, 2077, 2022, 2022, 2077, 2077, 2077,
966   2077, 2022, 2022, 185, 374, 185, 2022, 2022, 2022, 2078,
967   2022, 2022, 2078, 2022, 2022, 2022, 2022, 2079, 2022, 2022,
968   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
969
970   2022, 2022, 2022, 2062, 2062, 2062, 2080, 2022, 2022, 2022,
971   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
972   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
973   2063, 2063, 2081, 2022, 2064, 2064, 2064, 2064, 2022, 2082,
974   2022, 2022, 2065, 2065, 2065, 2065, 2065, 2065, 2065, 2083,
975   2022, 2022, 2066, 2066, 2066, 2066, 2084, 2022, 2067, 2067,
976   2067, 2067, 2067, 2085, 2022, 2068, 2068, 2086, 2022, 2069,
977   2069, 2069, 2069, 2069, 2069, 2069, 2087, 2022, 2070, 2070,
978   2070, 2088, 2022, 2089, 2089, 2089, 2089, 2089, 2089, 2089,
979   2089, 2089, 2090, 2022, 2091, 2091, 2092, 2022, 2093, 2093,
980
981   2093, 2093, 2093, 2093, 2094, 2022, 2095, 2095, 2095, 2095,
982   2095, 2022, 2096, 2022, 2097, 2097, 2097, 2097, 2097, 2098,
983   2022, 2099, 2099, 2100, 2022, 2101, 2101, 2101, 2101, 2101,
984   2102, 2022, 2022, 2103, 2103, 2104, 2105, 2022, 2105, 2022,
985   2022, 2022, 2106, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
986   2107, 2107, 2108, 2108, 2022, 2022, 2022, 2022, 2022, 2022,
987   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
988   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2109,
989   2110, 2110, 2111, 2022, 2022, 2111, 2022, 2112, 2112, 2022,
990   2113, 2022, 2022, 2113, 2113, 2113, 2113, 2114, 2114, 2022,
991
992   2115, 2115, 2115, 2116, 2116, 2022, 2022, 2117, 2117, 2117,
993   2118, 2118, 2119, 2120, 2120, 2121, 2022, 2022, 2121, 2121,
994   2121, 2121, 2122, 2122, 2022, 2022, 2123, 2124, 2124, 2125,
995   2022, 2022, 2022, 2022, 2125, 2125, 2125, 2125, 2125, 2126,
996   2126, 2022, 2022, 2127, 2127, 2128, 2022, 2022, 2128, 2128,
997   2128, 2129, 2129, 2130, 2130, 2130, 2130, 2022, 2131, 2131,
998   2132, 2132, 2132, 2132, 2133, 2133, 2022, 2022, 2134, 2134,
999   2135, 2135, 2135, 2135, 2136, 2136, 2022, 2137, 2138, 2138,
1000   2139, 2022, 2022, 2139, 2022, 2022, 2140, 2022, 2022, 2022,
1001   2022, 2022, 2022, 2141, 2141, 2022, 2142, 2022, 2142, 2022,
1002
1003   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1004   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1005   2022, 2022, 2022, 2022, 2143, 2022, 2144, 2022, 2144, 2145,
1006   2022, 2022, 2022, 2145, 2022, 2022, 2146, 2022, 2146, 2147,
1007   2022, 2022, 2022, 2022, 2022, 2147, 2022, 2022, 2147, 2022,
1008   2148, 2022, 2148, 2022, 2149, 2149, 2149, 2022, 2150, 2022,
1009   2150, 2022, 2022, 2022, 2151, 2151, 2151, 2022, 2152, 2022,
1010   2152, 2153, 2022, 2154, 2022, 2154, 2155, 2022, 2022, 2022,
1011   2155, 2155, 2155, 2155, 2022, 2156, 2022, 2156, 2022, 2022,
1012   2022, 2157, 2022, 2158, 2022, 2158, 2159, 2159, 2022, 2022,
1013
1014   2022, 2022, 2022, 2022, 2022, 2022, 2159, 2159, 2159, 2159,
1015   2022, 2160, 2022, 2160, 2022, 2022, 2022, 2022, 2161, 2022,
1016   2161, 2162, 2022, 2022, 2022, 2162, 2162, 2162, 2022, 2163,
1017   2022, 2163, 2164, 2022, 2022, 2022, 2022, 2164, 2022, 2022,
1018   2165, 2022, 2165, 2166, 2022, 2022, 2166, 2022, 2022, 2022,
1019   2167, 2022, 2167, 2022, 2022, 2022, 2022, 2168, 2022, 2168,
1020   2169, 2169, 2169, 2169, 2022, 2170, 2022, 2170, 2022, 2171,
1021   2022, 2172, 2022, 2172, 2173, 2174, 2022, 2022, 2022, 2022,
1022   2022, 2175, 2175, 2176, 2022, 2022, 2022, 2022, 2022, 2022,
1023   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1024
1025   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1026   2022, 2022, 2177, 2022, 2022, 2178, 2022, 2179, 2180, 2022,
1027   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2180, 2181, 2022,
1028   2182, 2022, 2022, 2182, 2183, 2184, 2184, 2184, 2185, 2186,
1029   2187, 2188, 2188, 2188, 2188, 2188, 2189, 2190, 2191, 2192,
1030   2192, 2022, 2022, 2022, 2192, 2192, 2192, 2192, 2193, 2194,
1031   2195, 2195, 2195, 2195, 2196, 2197, 2022, 2022, 2022, 2022,
1032   2022, 2022, 2197, 2022, 2198, 2199, 2022, 2022, 2022, 2199,
1033   2022, 2022, 2022, 2200, 2201, 2202, 2022, 2022, 2202, 2202,
1034   2203, 2022, 2204, 2205, 2206, 2207, 2207, 2022, 2207, 2022,
1035
1036   2022, 2022, 2208, 2208, 2209, 2022, 2022, 2022, 2022, 2022,
1037   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1038   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1039   2022, 2022, 2022, 2210, 2022, 2022, 2022, 2211, 2022, 2212,
1040   2213, 2022, 2022, 2022, 2213, 2214, 2022, 2215, 2022, 2022,
1041   2022, 2022, 2022, 2216, 2217, 2217, 2217, 2022, 2022, 2218,
1042   2219, 2220, 2220, 2220, 2022, 2022, 2022, 2022, 2220, 2221,
1043   2022, 2022, 2222, 2022, 2022, 2223, 2022, 2022, 2223, 2223,
1044   2223, 2224, 2225, 2226, 2226, 2226, 2022, 2022, 2226, 2227,
1045   2228, 2228, 2022, 2229, 2230, 2230, 2231, 2232, 2233, 2022,
1046
1047   2022, 2022, 2233, 2233, 2234, 2022, 2022, 2022, 2235, 2236,
1048   2237, 2237, 2022, 2022, 2238, 2238, 2238, 2239, 2022, 2022,
1049   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1050   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1051   2022, 2240, 2241, 2022, 2242, 2243, 2243, 2244, 2245, 2022,
1052   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1053   2246, 2022, 2022, 2247, 2022, 2022, 2022, 2022, 2248, 2249,
1054   2249, 2249, 2022, 2022, 2022, 2022, 2022, 2022, 2249, 2022,
1055   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1056   2022, 2022, 2022, 2022, 2022, 2022, 2223, 2022, 2022, 2224,
1057
1058   2225, 2226, 2226, 2226, 2022, 2022, 2022, 2226, 2022, 2022,
1059   2022, 2022, 2228, 2022, 2229, 2022, 2022, 2230, 2231, 2232,
1060   2233, 2233, 2233, 2234, 2022, 2022, 2022, 2022, 2235, 2236,
1061   2237, 2237, 2022, 2022, 2022, 2238, 2238, 2239, 2022, 2022,
1062   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1063   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2240, 2241, 2022,
1064   2022, 2022, 2243, 2243, 2244, 2022, 2022, 2022, 2022, 2022,
1065   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2246, 2022, 2022,
1066   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2248,
1067   2249, 2249, 2249, 2022, 2022, 2249, 2022, 2022, 2022, 2022,
1068
1069   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2224, 2225, 2226,
1070   2022, 2022, 2226, 2226, 2022, 2022, 2226, 2022, 2022, 2022,
1071   2228, 2022, 2229, 2022, 2022, 2022, 2230, 2022, 2022, 2232,
1072   2233, 2233, 2233, 2234, 2022, 2235, 2236, 2237, 2237, 2022,
1073   2022, 2022, 2022, 2238, 2238, 2239, 2022, 2022, 2022, 2022,
1074   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1075   2022, 2240, 2241, 2022, 2243, 2243, 2022, 2022, 2022, 2022,
1076   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1077   2022, 2246, 2022, 2022, 2022, 2248, 2249, 2249, 2249, 2022,
1078   2022, 2022, 2022, 2249, 2022, 2022, 2022, 2224, 2022, 2022,
1079
1080   2226, 2022, 2022, 2022, 2226, 2226, 2022, 2022, 2022, 2022,
1081   2226, 2022, 2022, 2022, 2022, 2228, 2022, 2229, 2022, 2022,
1082   2022, 2022, 2230, 2232, 2022, 2022, 2233, 2233, 2234, 2022,
1083   2235, 2236, 2237, 2237, 2022, 2238, 2238, 2239, 2022, 2022,
1084   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2241, 2022, 2022,
1085   2243, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1086   2022, 2246, 2022, 2022, 2249, 2249, 2249, 2022, 2022, 2022,
1087   2022, 2249, 2022, 2022, 2022, 2022, 2226, 2226, 2226, 2022,
1088   2022, 2022, 2022, 2226, 2022, 2022, 2022, 2022, 2022, 2022,
1089   2022, 2022, 2022, 2229, 2022, 2022, 2022, 2022, 2022, 2022,
1090
1091   2230, 2232, 2022, 2022, 2022, 2022, 2022, 2233, 2022, 2022,
1092   2022, 2235, 2236, 2237, 2237, 2022, 2022, 2238, 2022, 2022,
1093   2022, 2022, 2022, 2022, 2241, 2022, 2022, 2022, 2243, 2022,
1094   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2246,
1095   2249, 2249, 2249, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1096   2226, 2226, 2226, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1097   2022, 2022, 2022, 2022, 2022, 2022, 2229, 2022, 2022, 2022,
1098   2022, 2022, 2022, 2230, 2230, 2022, 2022, 2022, 2022, 2022,
1099   2022, 2022, 2022, 2022, 2236, 2237, 2237, 2022, 2022, 2022,
1100   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1101
1102   2022, 2022, 2243, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1103   2022, 2022, 2022, 2246, 2249, 2249, 2249, 2022, 2022, 2022,
1104   2226, 2226, 2226, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1105   2022, 2022, 2022, 2022, 2022, 2022, 2229, 2022, 2022, 2022,
1106   2022, 2022, 2022, 2230, 2230, 2022, 2022, 2022, 2236, 2237,
1107   2237, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1108   2022, 2022, 2022, 2022, 2022, 2243, 2022, 2022, 2022, 2022,
1109   2022, 2022, 2022, 2022, 2246, 2022, 2022, 2249, 2249, 2249,
1110   2226, 2022, 2022, 2226, 2022, 2022, 2022, 2022, 2022, 2022,
1111   2022, 2022, 2022, 2022, 2229, 2022, 2022, 2022, 2022, 2022,
1112
1113   2022, 2230, 2230, 2236, 2237, 2237, 2237, 2022, 2022, 2022,
1114   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1115   2022, 2022, 2022, 2246, 2022, 2022, 2022, 2249, 2249, 2249,
1116   2249, 2226, 2022, 2022, 2022, 2226, 2022, 2022, 2022, 2022,
1117   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1118   2022, 2022, 2022, 2022, 2022, 2022, 2230, 2022, 2022, 2230,
1119   2236, 2237, 2237, 2237, 2250, 2251, 2022, 2022, 2022, 2022,
1120   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1121   2022, 2246, 2249, 2249, 2249, 2249, 2022, 2022, 2022, 2022,
1122   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1123
1124   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2230, 2022, 2022,
1125   2022, 2230, 2236, 2237, 2252, 2253, 2250, 2251, 2022, 2022,
1126   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1127   2249, 2249, 2249, 2249, 2022, 2022, 2022, 2022, 2022, 2022,
1128   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1129   2022, 2022, 2230, 2230, 2236, 2252, 2237, 2254, 2253, 2255,
1130   2237, 2022, 2022, 2022, 2022, 2022, 2022, 2249, 2249, 2249,
1131   2249, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1132   2022, 2022, 2022, 2230, 2230, 2236, 2254, 2022, 2255, 2237,
1133   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2249, 2022,
1134
1135   2022, 2022, 2022, 2022, 2022, 2230, 2230, 2236, 2022, 2022,
1136   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1137   2249, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2230, 2230,
1138   2236, 2022, 2249, 2022, 2022, 2022, 2022, 2230, 2230, 2236,
1139   2249, 2022, 2022, 2022, 2022, 2230, 2230, 2236, 2249, 2022,
1140   2022, 2022, 2022, 2230, 2230, 2236, 2022, 2022, 2022, 2022,
1141   2022, 2022, 2230, 2230, 2236, 2022, 2022, 2022, 2022, 2022,
1142   2230, 2230, 2236, 2230, 2230, 2236, 2230, 2230, 2236, 2236,
1143   2230, 2230, 2236, 2236, 2230, 2230, 2236, 2236, 2230, 2230,
1144   2236, 2236, 2022, 2022, 2022, 2022, 2236, 2236, 2022, 2022,
1145
1146   2022, 2022, 2022, 2022, 2236, 2236, 2236, 2236, 2236, 2236,
1147   2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236, 2236,
1148   2022, 0, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1149   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1150   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1151   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1152   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1153   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1154   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1155   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1156
1157   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1158   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1159   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1160   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1161   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1162   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1163   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1164   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1165   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1166   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1167
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
1174 };
1175
1176 static yyconst flex_int16_t yy_nxt[7164] = { 0,
1177   2022, 146, 147, 146, 146, 147, 146, 146, 147, 146,
1178   146, 147, 146, 151, 147, 151, 157, 148, 154, 157,
1179   148, 154, 450, 149, 2022, 155, 149, 2022, 155, 152,
1180   151, 147, 151, 388, 158, 160, 161, 158, 160, 161,
1181   162, 163, 2022, 162, 163, 388, 152, 167, 168, 389,
1182   164, 160, 161, 164, 165, 391, 162, 160, 161, 561,
1183   165, 390, 162, 167, 168, 562, 164, 147, 147, 147,
1184   451, 390, 164, 147, 147, 147, 180, 147, 180, 180,
1185   147, 180, 472, 170, 180, 147, 180, 510, 169, 170,
1186   451, 473, 181, 561, 511, 181, 387, 387, 387, 575,
1187
1188   182, 387, 387, 387, 169, 171, 172, 147, 172, 171,
1189   171, 171, 171, 171, 171, 171, 173, 171, 171, 171,
1190   1485, 171, 175, 171, 176, 171, 180, 147, 180, 147,
1191   147, 147, 503, 147, 147, 147, 180, 147, 180, 180,
1192   147, 180, 182, 504, 561, 183, 391, 171, 171, 183,
1193   600, 489, 181, 391, 490, 181, 387, 387, 387, 387,
1194   387, 387, 390, 387, 387, 387, 387, 387, 387, 390,
1195   177, 2022, 178, 171, 172, 147, 172, 171, 171, 171,
1196   171, 171, 171, 171, 173, 171, 171, 171, 477, 171,
1197   175, 171, 176, 171, 147, 147, 147, 147, 147, 147,
1198
1199   682, 180, 147, 180, 180, 147, 180, 180, 147, 180,
1200   184, 563, 391, 184, 391, 171, 171, 182, 391, 425,
1201   182, 426, 1110, 185, 564, 180, 147, 180, 390, 427,
1202   390, 387, 387, 387, 390, 425, 451, 428, 177, 429,
1203   178, 185, 186, 187, 147, 187, 186, 186, 186, 186,
1204   186, 186, 186, 188, 186, 186, 186, 485, 186, 190,
1205   186, 191, 186, 194, 147, 194, 194, 147, 194, 402,
1206   218, 147, 218, 160, 161, 160, 161, 486, 162, 195,
1207   162, 1270, 195, 446, 186, 186, 219, 447, 205, 1271,
1208   205, 448, 192, 186, 187, 147, 187, 186, 186, 186,
1209
1210   186, 186, 186, 186, 188, 186, 186, 186, 892, 186,
1211   190, 186, 191, 186, 206, 2022, 206, 218, 147, 218,
1212   893, 147, 147, 147, 147, 147, 147, 387, 387, 387,
1213   387, 387, 387, 219, 682, 186, 186, 220, 875, 544,
1214   220, 513, 545, 192, 196, 197, 147, 197, 196, 196,
1215   196, 196, 196, 196, 196, 198, 196, 196, 196, 512,
1216   196, 200, 196, 201, 196, 218, 147, 218, 218, 147,
1217   218, 505, 218, 147, 218, 218, 147, 218, 387, 387,
1218   387, 219, 391, 439, 219, 512, 196, 196, 221, 433,
1219   440, 221, 1412, 1413, 202, 1414, 1415, 203, 390, 390,
1220
1221   387, 387, 387, 204, 196, 197, 147, 197, 196, 196,
1222   196, 196, 196, 196, 196, 198, 196, 196, 196, 451,
1223   196, 200, 196, 201, 196, 232, 147, 232, 232, 147,
1224   232, 906, 245, 147, 245, 245, 147, 245, 538, 391,
1225   391, 233, 1275, 893, 233, 391, 196, 196, 246, 571,
1226   1276, 246, 457, 539, 202, 390, 390, 203, 387, 387,
1227   387, 390, 572, 204, 207, 208, 147, 208, 207, 207,
1228   207, 207, 207, 207, 207, 209, 207, 207, 207, 906,
1229   207, 211, 207, 212, 207, 147, 147, 147, 147, 147,
1230   147, 930, 147, 147, 147, 147, 147, 147, 257, 147,
1231
1232   257, 254, 391, 391, 254, 1488, 207, 207, 255, 464,
1233   520, 255, 563, 1495, 258, 213, 1498, 214, 390, 390,
1234   215, 387, 387, 387, 2022, 576, 216, 207, 208, 147,
1235   208, 207, 207, 207, 207, 207, 207, 207, 209, 207,
1236   207, 207, 538, 207, 211, 207, 212, 207, 257, 147,
1237   257, 271, 147, 271, 512, 271, 147, 271, 147, 147,
1238   147, 147, 147, 147, 258, 411, 391, 272, 413, 207,
1239   207, 272, 391, 1116, 220, 587, 1508, 220, 213, 1117,
1240   214, 1521, 390, 215, 387, 387, 387, 998, 390, 216,
1241   222, 223, 147, 223, 222, 222, 222, 222, 222, 222,
1242
1243   222, 224, 222, 222, 222, 1522, 222, 226, 222, 227,
1244   222, 271, 147, 271, 271, 147, 271, 1232, 271, 147,
1245   271, 271, 147, 271, 283, 147, 283, 272, 1523, 797,
1246   272, 998, 222, 222, 273, 391, 391, 273, 798, 228,
1247   284, 387, 387, 387, 229, 387, 387, 387, 387, 387,
1248   387, 390, 390, 230, 222, 223, 147, 223, 222, 222,
1249   222, 222, 222, 222, 222, 224, 222, 222, 222, 1231,
1250   222, 226, 222, 227, 222, 283, 147, 283, 298, 147,
1251   298, 1524, 298, 147, 298, 308, 147, 308, 308, 147,
1252   308, 284, 1419, 1420, 299, 1390, 222, 222, 299, 391,
1253
1254   391, 309, 1391, 228, 309, 387, 387, 387, 229, 387,
1255   387, 387, 387, 387, 387, 390, 390, 230, 234, 235,
1256   147, 235, 234, 234, 234, 234, 234, 234, 234, 236,
1257   234, 234, 234, 1525, 234, 238, 234, 239, 234, 321,
1258   147, 321, 321, 147, 321, 682, 147, 147, 147, 147,
1259   147, 147, 321, 147, 321, 322, 391, 571, 322, 1529,
1260   234, 234, 220, 482, 995, 220, 998, 998, 322, 1392,
1261   578, 240, 390, 387, 387, 387, 1393, 241, 1530, 242,
1262   243, 234, 235, 147, 235, 234, 234, 234, 234, 234,
1263   234, 234, 236, 234, 234, 234, 1514, 234, 238, 234,
1264
1265   239, 234, 321, 147, 321, 321, 147, 321, 1339, 321,
1266   147, 321, 147, 147, 147, 147, 147, 147, 322, 1421,
1267   1422, 323, 391, 234, 234, 323, 682, 682, 333, 493,
1268   1531, 333, 1407, 1337, 240, 387, 387, 387, 390, 1408,
1269   241, 684, 242, 243, 247, 248, 147, 248, 247, 247,
1270   247, 247, 247, 247, 247, 249, 247, 247, 247, 998,
1271   247, 251, 247, 252, 247, 147, 147, 147, 147, 147,
1272   147, 1532, 335, 147, 335, 335, 147, 335, 335, 147,
1273   335, 333, 1533, 1409, 333, 391, 247, 247, 336, 391,
1274   1410, 336, 497, 1515, 337, 387, 387, 387, 387, 387,
1275
1276   387, 390, 387, 387, 387, 390, 253, 247, 248, 147,
1277   248, 247, 247, 247, 247, 247, 247, 247, 249, 247,
1278   247, 247, 1534, 247, 251, 247, 252, 247, 335, 147,
1279   335, 349, 147, 349, 1535, 349, 147, 349, 147, 147,
1280   147, 147, 147, 147, 337, 1536, 998, 350, 1537, 247,
1281   247, 350, 391, 1486, 333, 1487, 1538, 333, 387, 387,
1282   387, 387, 387, 387, 387, 387, 387, 1539, 390, 253,
1283   259, 260, 147, 260, 259, 259, 259, 259, 259, 259,
1284   259, 261, 259, 259, 259, 1433, 259, 263, 259, 264,
1285   259, 349, 147, 349, 349, 147, 349, 1541, 349, 147,
1286
1287   349, 349, 147, 349, 360, 147, 360, 350, 391, 391,
1288   350, 391, 259, 259, 351, 265, 524, 351, 1542, 1489,
1289   361, 1490, 1543, 266, 390, 390, 267, 390, 998, 268,
1290   1544, 1545, 269, 259, 260, 147, 260, 259, 259, 259,
1291   259, 259, 259, 259, 261, 259, 259, 259, 1551, 259,
1292   263, 259, 264, 259, 360, 147, 360, 373, 147, 373,
1293   1552, 373, 147, 373, 147, 147, 147, 147, 147, 147,
1294   361, 1434, 391, 374, 1553, 259, 259, 374, 265, 536,
1295   375, 1150, 1496, 375, 1497, 1554, 266, 1151, 390, 267,
1296   1152, 1499, 268, 1500, 1153, 269, 274, 275, 147, 275,
1297
1298   274, 274, 274, 274, 274, 274, 274, 276, 274, 274,
1299   274, 531, 274, 278, 274, 279, 274, 373, 147, 373,
1300   373, 147, 373, 1555, 373, 147, 373, 373, 147, 373,
1301   385, 147, 385, 374, 1558, 1154, 374, 1559, 274, 274,
1302   376, 1155, 1560, 376, 1156, 532, 386, 396, 1157, 280,
1303   387, 387, 387, 387, 387, 387, 387, 387, 387, 451,
1304   1561, 281, 274, 275, 147, 275, 274, 274, 274, 274,
1305   274, 274, 274, 276, 274, 274, 274, 1562, 274, 278,
1306   274, 279, 274, 385, 147, 385, 397, 387, 387, 387,
1307   1563, 1568, 398, 387, 387, 387, 399, 1569, 1570, 386,
1308
1309   1571, 400, 1572, 1573, 274, 274, 387, 387, 387, 387,
1310   387, 387, 387, 387, 387, 280, 387, 387, 387, 542,
1311   542, 542, 1593, 686, 896, 896, 896, 281, 285, 286,
1312   147, 286, 285, 285, 285, 285, 285, 285, 285, 287,
1313   285, 285, 285, 288, 285, 289, 285, 290, 285, 288,
1314   288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
1315   288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
1316   285, 285, 288, 288, 291, 288, 288, 288, 288, 288,
1317   288, 292, 288, 293, 288, 288, 288, 294, 288, 295,
1318   296, 288, 288, 288, 288, 288, 288, 300, 301, 147,
1319
1320   301, 300, 300, 300, 300, 300, 300, 300, 302, 300,
1321   300, 300, 682, 300, 304, 300, 305, 300, 542, 542,
1322   542, 584, 584, 584, 592, 592, 592, 606, 606, 606,
1323   617, 617, 617, 904, 904, 904, 1594, 1595, 585, 300,
1324   300, 593, 1596, 1603, 607, 1604, 1605, 618, 1585, 998,
1325   306, 300, 301, 147, 301, 300, 300, 300, 300, 300,
1326   300, 300, 302, 300, 300, 300, 998, 300, 304, 300,
1327   305, 300, 1606, 543, 625, 625, 625, 1338, 631, 631,
1328   631, 633, 633, 633, 642, 642, 642, 1009, 1009, 1009,
1329   1599, 626, 1607, 300, 300, 632, 1608, 1609, 634, 1610,
1330
1331   1586, 643, 1600, 998, 306, 310, 311, 147, 311, 310,
1332   310, 310, 310, 310, 310, 310, 312, 310, 310, 310,
1333   1611, 310, 314, 310, 315, 310, 647, 647, 647, 667,
1334   667, 667, 696, 696, 696, 696, 696, 696, 726, 726,
1335   726, 682, 1587, 648, 1612, 1613, 668, 310, 310, 1615,
1336   698, 316, 1616, 698, 1617, 1621, 728, 1230, 317, 1622,
1337   318, 1015, 1015, 1015, 896, 896, 896, 319, 310, 311,
1338   147, 311, 310, 310, 310, 310, 310, 310, 310, 312,
1339   310, 310, 310, 1623, 310, 314, 310, 315, 310, 699,
1340   726, 726, 726, 1627, 1601, 584, 584, 584, 731, 731,
1341
1342   731, 1628, 732, 1629, 1630, 733, 1602, 1631, 728, 1632,
1343   310, 310, 585, 1638, 316, 741, 741, 741, 1639, 742,
1344   1640, 317, 743, 318, 1021, 1021, 1021, 904, 904, 904,
1345   319, 324, 325, 147, 325, 324, 324, 324, 324, 324,
1346   324, 324, 326, 324, 324, 324, 729, 324, 328, 324,
1347   329, 324, 736, 736, 736, 1641, 1642, 736, 736, 736,
1348   592, 592, 592, 744, 744, 744, 747, 747, 747, 1643,
1349   738, 998, 1656, 324, 324, 738, 330, 593, 998, 331,
1350   745, 1633, 1635, 748, 762, 762, 762, 1658, 763, 1634,
1351   1636, 764, 682, 332, 324, 325, 147, 325, 324, 324,
1352
1353   324, 324, 324, 324, 324, 326, 324, 324, 324, 1650,
1354   324, 328, 324, 329, 324, 1662, 1651, 739, 1649, 1663,
1355   750, 750, 750, 758, 758, 758, 1664, 1665, 750, 750,
1356   750, 758, 758, 758, 1666, 1667, 324, 324, 752, 330,
1357   1668, 760, 331, 778, 778, 778, 752, 779, 1669, 760,
1358   780, 1047, 1047, 1047, 1670, 1671, 332, 338, 339, 147,
1359   339, 338, 338, 338, 338, 338, 338, 338, 340, 338,
1360   338, 338, 753, 338, 342, 338, 343, 338, 606, 606,
1361   606, 1672, 1673, 768, 768, 768, 773, 773, 773, 1674,
1362   1679, 761, 617, 617, 617, 607, 768, 768, 768, 338,
1363
1364   338, 770, 344, 1680, 775, 345, 1009, 1009, 1009, 618,
1365   346, 789, 789, 789, 770, 790, 1681, 1684, 791, 347,
1366   338, 339, 147, 339, 338, 338, 338, 338, 338, 338,
1367   338, 340, 338, 338, 338, 1685, 338, 342, 338, 343,
1368   338, 773, 773, 773, 771, 1686, 785, 785, 785, 785,
1369   785, 785, 625, 625, 625, 1687, 793, 793, 793, 775,
1370   1688, 1689, 338, 338, 787, 344, 1690, 787, 345, 626,
1371   1011, 1011, 1011, 346, 795, 1015, 1015, 1015, 1021, 1021,
1372   1021, 1691, 347, 352, 353, 147, 353, 352, 352, 352,
1373   352, 352, 352, 352, 354, 352, 352, 352, 776, 352,
1374
1375   356, 352, 357, 352, 1692, 1693, 788, 1694, 1696, 793,
1376   793, 793, 631, 631, 631, 799, 799, 799, 1697, 800,
1377   1698, 1699, 801, 1700, 1701, 352, 352, 795, 1708, 632,
1378   1022, 1022, 1022, 1047, 1047, 1047, 358, 352, 353, 147,
1379   353, 352, 352, 352, 352, 352, 352, 352, 354, 352,
1380   352, 352, 998, 352, 356, 352, 357, 352, 633, 633,
1381   633, 802, 802, 802, 1709, 803, 1710, 1711, 804, 796,
1382   805, 805, 805, 1712, 1713, 634, 1246, 1246, 1246, 352,
1383   352, 815, 815, 815, 1705, 816, 1716, 806, 817, 1717,
1384   358, 362, 363, 147, 363, 362, 362, 362, 362, 362,
1385
1386   362, 362, 364, 362, 362, 362, 1718, 362, 366, 362,
1387   367, 362, 811, 811, 811, 642, 642, 642, 818, 818,
1388   818, 811, 811, 811, 818, 818, 818, 647, 647, 647,
1389   813, 1719, 643, 362, 362, 682, 820, 1720, 1721, 813,
1390   1722, 368, 820, 369, 648, 370, 1127, 1127, 1127, 1248,
1391   1248, 1248, 1723, 371, 362, 363, 147, 363, 362, 362,
1392   362, 362, 362, 362, 362, 364, 362, 362, 362, 1728,
1393   362, 366, 362, 367, 362, 814, 823, 823, 823, 1704,
1394   824, 821, 1731, 825, 829, 829, 829, 829, 829, 829,
1395   834, 834, 834, 836, 836, 836, 362, 362, 845, 845,
1396
1397   845, 1732, 831, 1736, 368, 831, 369, 835, 370, 1737,
1398   837, 1130, 1130, 1130, 1738, 846, 371, 377, 378, 147,
1399   378, 377, 377, 377, 377, 377, 377, 377, 379, 377,
1400   377, 377, 1739, 377, 381, 377, 382, 377, 1740, 832,
1401   840, 840, 840, 1741, 848, 848, 848, 840, 840, 840,
1402   850, 850, 850, 850, 850, 850, 1729, 1730, 842, 377,
1403   377, 849, 667, 667, 667, 842, 1742, 1743, 852, 1744,
1404   1745, 852, 1746, 854, 854, 854, 1749, 855, 1750, 668,
1405   856, 1751, 383, 377, 378, 147, 378, 377, 377, 377,
1406   377, 377, 377, 377, 379, 377, 377, 377, 1752, 377,
1407
1408   381, 377, 382, 377, 843, 857, 857, 857, 1753, 1754,
1409   853, 857, 857, 857, 865, 865, 865, 865, 865, 865,
1410   871, 871, 871, 859, 1769, 377, 377, 682, 1770, 859,
1411   1771, 1772, 867, 1776, 1777, 867, 1778, 1779, 873, 871,
1412   871, 871, 696, 696, 696, 911, 911, 911, 383, 391,
1413   696, 696, 696, 1011, 1011, 1011, 407, 873, 1761, 1780,
1414   698, 1781, 912, 860, 1783, 390, 1784, 1012, 698, 696,
1415   696, 696, 1785, 726, 726, 726, 1786, 868, 726, 726,
1416   726, 1791, 1792, 726, 726, 726, 1793, 698, 1794, 1795,
1417   408, 728, 409, 1796, 1797, 410, 728, 411, 412, 874,
1418
1419   413, 728, 1798, 1799, 414, 1800, 415, 416, 417, 391,
1420   914, 914, 914, 884, 1801, 1802, 407, 731, 731, 731,
1421   1803, 732, 1804, 682, 733, 390, 1819, 915, 1820, 913,
1422   2022, 2022, 2022, 736, 736, 736, 736, 736, 736, 1821,
1423   1822, 736, 736, 736, 744, 744, 744, 2022, 1823, 1824,
1424   408, 738, 418, 1825, 738, 419, 1826, 420, 412, 738,
1425   421, 745, 1813, 1827, 414, 1828, 422, 423, 424, 741,
1426   741, 741, 1831, 742, 1832, 1833, 743, 920, 920, 920,
1427   1834, 921, 1841, 1842, 922, 918, 1843, 916, 923, 923,
1428   923, 747, 747, 747, 925, 925, 925, 1844, 926, 1845,
1429
1430   1846, 927, 750, 750, 750, 924, 1847, 1848, 748, 750,
1431   750, 750, 750, 750, 750, 932, 932, 932, 1849, 1850,
1432   752, 758, 758, 758, 758, 758, 758, 752, 1851, 1852,
1433   752, 1862, 933, 758, 758, 758, 762, 762, 762, 760,
1434   763, 1863, 760, 764, 768, 768, 768, 768, 768, 768,
1435   1864, 760, 768, 768, 768, 773, 773, 773, 773, 773,
1436   773, 1857, 770, 1857, 682, 770, 1865, 1866, 929, 1867,
1437   770, 1868, 1869, 775, 1860, 1858, 775, 935, 773, 773,
1438   773, 778, 778, 778, 1870, 779, 1871, 1876, 780, 785,
1439   785, 785, 785, 785, 785, 1877, 775, 785, 785, 785,
1440
1441   1878, 789, 789, 789, 1879, 790, 1855, 787, 791, 1880,
1442   787, 793, 793, 793, 939, 787, 793, 793, 793, 793,
1443   793, 793, 1881, 799, 799, 799, 1882, 800, 1883, 795,
1444   801, 805, 805, 805, 795, 1888, 1872, 795, 941, 802,
1445   802, 802, 682, 803, 1874, 1888, 804, 1873, 806, 952,
1446   952, 952, 1891, 953, 1892, 1875, 954, 1857, 947, 811,
1447   811, 811, 811, 811, 811, 811, 811, 811, 815, 815,
1448   815, 1858, 816, 998, 999, 817, 949, 813, 1902, 1886,
1449   813, 1903, 1904, 813, 818, 818, 818, 818, 818, 818,
1450   818, 818, 818, 823, 823, 823, 1857, 824, 1905, 1888,
1451
1452   825, 1909, 820, 1888, 1910, 820, 1911, 1860, 820, 829,
1453   829, 829, 829, 829, 829, 829, 829, 829, 834, 834,
1454   834, 1921, 967, 967, 967, 1925, 968, 831, 959, 969,
1455   831, 1926, 1927, 831, 1928, 835, 1932, 836, 836, 836,
1456   970, 970, 970, 1933, 971, 1934, 1935, 972, 840, 840,
1457   840, 1936, 1937, 960, 837, 840, 840, 840, 840, 840,
1458   840, 845, 845, 845, 1941, 682, 842, 1942, 977, 977,
1459   977, 965, 978, 842, 1943, 979, 842, 1944, 846, 848,
1460   848, 848, 981, 981, 981, 1945, 982, 1940, 682, 983,
1461   850, 850, 850, 850, 850, 850, 849, 850, 850, 850,
1462
1463   854, 854, 854, 1949, 855, 1950, 1948, 856, 852, 1951,
1464   1952, 852, 857, 857, 857, 852, 857, 857, 857, 1953,
1465   682, 975, 857, 857, 857, 987, 987, 987, 1959, 1960,
1466   859, 865, 865, 865, 859, 865, 865, 865, 1961, 1956,
1467   859, 1962, 988, 865, 865, 865, 871, 871, 871, 867,
1468   871, 871, 871, 867, 871, 871, 871, 997, 997, 997,
1469   984, 867, 1969, 1970, 873, 696, 696, 696, 873, 911,
1470   911, 911, 873, 1484, 682, 998, 999, 682, 985, 1022,
1471   1022, 1022, 682, 698, 682, 682, 912, 1031, 1031, 1031,
1472   1965, 1032, 682, 1012, 1033, 726, 726, 726, 1973, 682,
1473
1474   991, 914, 914, 914, 994, 1035, 1035, 1035, 682, 1036,
1475   682, 1987, 1037, 728, 736, 736, 736, 1983, 915, 920,
1476   920, 920, 682, 921, 1997, 1984, 922, 1005, 923, 923,
1477   923, 1483, 738, 1042, 1042, 1042, 1991, 1043, 682, 1482,
1478   1044, 750, 750, 750, 1988, 924, 925, 925, 925, 1034,
1479   926, 1481, 2015, 927, 932, 932, 932, 682, 682, 752,
1480   1040, 1049, 1049, 1049, 2005, 1050, 682, 682, 1051, 682,
1481   1998, 933, 1052, 1052, 1052, 758, 758, 758, 1058, 1058,
1482   1058, 773, 773, 773, 1065, 1065, 1065, 1480, 1046, 1053,
1483   1067, 1067, 1067, 760, 1992, 2009, 1059, 682, 2010, 775,
1484
1485   2006, 1066, 785, 785, 785, 2019, 682, 1068, 1071, 1071,
1486   1071, 2016, 793, 793, 793, 1074, 1074, 1074, 682, 682,
1487   787, 1054, 2022, 2022, 2022, 1072, 1077, 1077, 1077, 1061,
1488   795, 2007, 1075, 1069, 952, 952, 952, 682, 953, 2022,
1489   2008, 954, 1479, 1078, 2022, 2022, 2022, 2013, 2022, 2022,
1490   2022, 2022, 2022, 2022, 811, 811, 811, 818, 818, 818,
1491   2011, 2022, 2012, 1478, 1070, 2022, 2014, 1472, 2022, 682,
1492   1073, 682, 813, 1471, 682, 820, 1470, 1087, 1087, 1087,
1493   829, 829, 829, 1469, 1076, 682, 967, 967, 967, 2019,
1494   968, 1468, 1080, 969, 1088, 970, 970, 970, 831, 971,
1495
1496   682, 1467, 972, 2017, 1022, 1022, 1022, 840, 840, 840,
1497   1079, 987, 987, 987, 2018, 1082, 1466, 1081, 1093, 1083,
1498   1089, 1465, 977, 977, 977, 842, 978, 1461, 988, 979,
1499   981, 981, 981, 1090, 982, 1460, 1459, 983, 850, 850,
1500   850, 857, 857, 857, 1100, 1100, 1100, 1458, 1101, 1457,
1501   1456, 1102, 865, 865, 865, 1455, 852, 1454, 1453, 859,
1502   1107, 1107, 1107, 871, 871, 871, 997, 997, 997, 1094,
1503   867, 696, 696, 696, 1127, 1127, 1127, 1108, 1130, 1130,
1504   1130, 873, 1452, 1451, 998, 1127, 1127, 1127, 1128, 698,
1505   1448, 1445, 1131, 1444, 1098, 1136, 1136, 1136, 1105, 1128,
1506
1507   1097, 1138, 1138, 1138, 1138, 1138, 1138, 1443, 1442, 1131,
1508   1136, 1136, 1136, 1430, 1111, 1139, 1428, 1427, 1139, 1417,
1509   1118, 1031, 1031, 1031, 1141, 1032, 1109, 1411, 1033, 1406,
1510   1112, 726, 726, 726, 1129, 1035, 1035, 1035, 1405, 1036,
1511   1401, 1394, 1037, 1389, 1388, 1135, 1052, 1052, 1052, 728,
1512   736, 736, 736, 1042, 1042, 1042, 1387, 1043, 1381, 1380,
1513   1044, 1129, 1379, 1053, 1135, 750, 750, 750, 738, 1049,
1514   1049, 1049, 1378, 1050, 1377, 1376, 1051, 1158, 1158, 1158,
1515   1375, 1159, 1374, 752, 1160, 758, 758, 758, 1162, 1162,
1516   1162, 2022, 2022, 2022, 1142, 1165, 1165, 1165, 1145, 1058,
1517
1518   1058, 1058, 1373, 760, 1372, 1163, 1366, 1365, 2022, 1167,
1519   1167, 1167, 1166, 773, 773, 773, 1364, 1059, 1065, 1065,
1520   1065, 1363, 1148, 1173, 1173, 1173, 1168, 1174, 1361, 1359,
1521   1175, 775, 1355, 1161, 1354, 1066, 1067, 1067, 1067, 1176,
1522   1176, 1176, 1352, 1177, 1351, 1164, 1178, 1180, 1180, 1180,
1523   1071, 1071, 1071, 1068, 1182, 1182, 1182, 1169, 1183, 1347,
1524   1340, 1184, 1185, 1185, 1185, 1181, 1335, 1072, 1074, 1074,
1525   1074, 1187, 1187, 1187, 1333, 1188, 1332, 1331, 1189, 1322,
1526   1186, 1190, 1190, 1190, 1317, 1075, 1077, 1077, 1077, 1192,
1527   1192, 1192, 1316, 1193, 1315, 1314, 1194, 1310, 1191, 1195,
1528
1529   1195, 1195, 1296, 1078, 2022, 2022, 2022, 1198, 1198, 1198,
1530   811, 811, 811, 818, 818, 818, 1196, 1087, 1087, 1087,
1531   1295, 2022, 1294, 1293, 1199, 1205, 1205, 1205, 813, 1206,
1532   1292, 820, 1207, 1291, 1088, 1209, 1209, 1209, 1211, 1211,
1533   1211, 1277, 2022, 2022, 2022, 840, 840, 840, 1216, 1216,
1534   1216, 1274, 1273, 1210, 1272, 1212, 1269, 1268, 1197, 2022,
1535   1264, 1201, 1263, 842, 1260, 1217, 2022, 2022, 2022, 850,
1536   850, 850, 1200, 1259, 857, 857, 857, 1100, 1100, 1100,
1537   1257, 1101, 1256, 2022, 1102, 1255, 1254, 852, 1220, 865,
1538   865, 865, 859, 1215, 1107, 1107, 1107, 1226, 1226, 1226,
1539
1540   1251, 1227, 1213, 1250, 1228, 1249, 1247, 867, 1245, 1218,
1541   1244, 1108, 871, 871, 871, 1243, 1242, 1219, 1234, 1234,
1542   1234, 2022, 2022, 2022, 2022, 2022, 2022, 696, 696, 696,
1543   873, 1252, 1252, 1252, 1241, 1235, 1240, 1224, 2022, 1239,
1544   1233, 2022, 1253, 1253, 1253, 698, 1136, 1136, 1136, 1138,
1545   1138, 1138, 726, 726, 726, 1225, 1261, 1261, 1261, 750,
1546   750, 750, 1266, 1266, 1266, 1223, 1222, 1229, 1221, 1214,
1547   728, 1208, 1204, 1236, 1262, 1203, 1202, 752, 1179, 1267,
1548   1172, 1237, 1171, 1170, 1238, 1158, 1158, 1158, 1149, 1159,
1549   1147, 1146, 1160, 758, 758, 758, 1162, 1162, 1162, 1258,
1550
1551   1144, 1279, 1279, 1279, 1143, 1280, 1140, 1278, 1281, 1137,
1552   1134, 760, 1133, 1163, 1265, 1282, 1282, 1282, 1165, 1165,
1553   1165, 1284, 1284, 1284, 1132, 1285, 1126, 1125, 1286, 1167,
1554   1167, 1167, 1283, 1124, 1123, 1166, 1287, 1287, 1287, 1122,
1555   1288, 1121, 1120, 1289, 1119, 1115, 1168, 773, 773, 773,
1556   1173, 1173, 1173, 1114, 1174, 1113, 998, 1175, 1106, 1176,
1557   1176, 1176, 1104, 1177, 1103, 775, 1178, 1180, 1180, 1180,
1558   1182, 1182, 1182, 1099, 1183, 1096, 1095, 1184, 1185, 1185,
1559   1185, 1092, 1187, 1187, 1187, 1181, 1188, 1091, 1086, 1189,
1560   1190, 1190, 1190, 1290, 1085, 1084, 1186, 1297, 1297, 1297,
1561
1562   1064, 1298, 1063, 1062, 1299, 1060, 1057, 1191, 1192, 1192,
1563   1192, 1056, 1193, 1055, 1048, 1194, 1195, 1195, 1195, 1300,
1564   1300, 1300, 1045, 1301, 1041, 1039, 1302, 1303, 1303, 1303,
1565   1198, 1198, 1198, 1196, 1305, 1305, 1305, 1038, 1306, 1030,
1566   1029, 1307, 1028, 1027, 1304, 1026, 1025, 1199, 811, 811,
1567   811, 818, 818, 818, 1311, 1311, 1311, 1205, 1205, 1205,
1568   1024, 1206, 1023, 1020, 1207, 1019, 813, 1018, 1017, 820,
1569   1016, 1312, 1209, 1209, 1209, 1211, 1211, 1211, 1318, 1318,
1570   1318, 1014, 1319, 1013, 1010, 1320, 2022, 2022, 2022, 1008,
1571   1210, 1007, 1212, 1216, 1216, 1216, 1308, 1313, 840, 840,
1572
1573   840, 1006, 1004, 2022, 2022, 2022, 2022, 1328, 1328, 1328,
1574   1217, 1309, 1323, 1324, 1324, 1324, 842, 1325, 1003, 1002,
1575   1326, 2022, 857, 857, 857, 1329, 865, 865, 865, 1226,
1576   1226, 1226, 1001, 1227, 1000, 993, 1228, 992, 1321, 990,
1577   859, 871, 871, 871, 867, 1234, 1234, 1234, 1341, 1341,
1578   1341, 989, 1342, 986, 980, 1343, 2022, 2022, 2022, 873,
1579   976, 1327, 1235, 2022, 2022, 2022, 974, 973, 1330, 966,
1580   696, 696, 696, 2022, 1348, 1348, 1348, 1349, 1349, 1349,
1581   2022, 1350, 1350, 1350, 1353, 1353, 1353, 1334, 698, 1336,
1582   1246, 1246, 1246, 1248, 1248, 1248, 1356, 1356, 1356, 1357,
1583
1584   1357, 1357, 1252, 1252, 1252, 1253, 1253, 1253, 1358, 1358,
1585   1358, 964, 1344, 1360, 1360, 1360, 726, 726, 726, 1261,
1586   1261, 1261, 1367, 1367, 1367, 963, 1345, 1266, 1266, 1266,
1587   1346, 1369, 1369, 1369, 728, 1370, 962, 1262, 1371, 961,
1588   1368, 758, 758, 758, 1267, 1279, 1279, 1279, 958, 1280,
1589   957, 956, 1281, 1282, 1282, 1282, 1383, 1383, 1383, 760,
1590   1384, 955, 951, 1385, 1362, 1284, 1284, 1284, 950, 1285,
1591   1283, 948, 1286, 1287, 1287, 1287, 946, 1288, 945, 944,
1592   1289, 773, 773, 773, 1297, 1297, 1297, 1382, 1298, 943,
1593   942, 1299, 940, 1300, 1300, 1300, 938, 1301, 937, 775,
1594
1595   1302, 1303, 1303, 1303, 1395, 1395, 1395, 936, 1396, 934,
1596   931, 1397, 1305, 1305, 1305, 928, 1306, 919, 1304, 1307,
1597   811, 811, 811, 1399, 1399, 1399, 1311, 1311, 1311, 1402,
1598   1402, 1402, 1386, 1403, 917, 910, 1404, 909, 813, 908,
1599   907, 1400, 905, 1312, 1318, 1318, 1318, 903, 1319, 902,
1600   901, 1320, 2022, 2022, 2022, 840, 840, 840, 1324, 1324,
1601   1324, 900, 1325, 899, 898, 1326, 2022, 2022, 2022, 2022,
1602   1328, 1328, 1328, 842, 857, 857, 857, 1425, 1425, 1425,
1603   1398, 897, 895, 2022, 865, 865, 865, 894, 1329, 1432,
1604   1432, 1432, 859, 891, 1426, 871, 871, 871, 1416, 1435,
1605
1606   1435, 1435, 867, 890, 1341, 1341, 1341, 682, 1342, 889,
1607   1418, 1343, 888, 873, 2022, 2022, 2022, 2022, 2022, 2022,
1608   887, 886, 1423, 696, 696, 696, 1439, 1439, 1439, 885,
1609   883, 2022, 882, 881, 2022, 880, 1424, 1348, 1348, 1348,
1610   879, 698, 1349, 1349, 1349, 1429, 1350, 1350, 1350, 878,
1611   877, 1431, 1440, 1440, 1440, 1441, 1441, 1441, 1353, 1353,
1612   1353, 1356, 1356, 1356, 1357, 1357, 1357, 1436, 1358, 1358,
1613   1358, 1360, 1360, 1360, 1446, 1446, 1446, 876, 1438, 1437,
1614   1449, 1449, 1449, 1367, 1367, 1367, 1369, 1369, 1369, 682,
1615   1370, 870, 1447, 1371, 758, 758, 758, 1450, 1383, 1383,
1616
1617   1383, 1368, 1384, 869, 864, 1385, 1463, 1463, 1463, 1395,
1618   1395, 1395, 760, 1396, 863, 862, 1397, 1473, 1473, 1473,
1619   1399, 1399, 1399, 861, 1464, 1475, 1475, 1475, 847, 1402,
1620   1402, 1402, 844, 1403, 839, 1474, 1404, 838, 1400, 1491,
1621   1491, 1491, 1476, 1493, 1493, 1493, 840, 840, 840, 833,
1622   828, 1462, 2022, 2022, 2022, 827, 1492, 857, 857, 857,
1623   1425, 1425, 1425, 826, 842, 1506, 1506, 1506, 1477, 2022,
1624   822, 810, 1503, 1503, 1503, 859, 1504, 1426, 809, 1505,
1625   808, 807, 1507, 1509, 1509, 1509, 1511, 1511, 1511, 871,
1626   871, 871, 1432, 1432, 1432, 1501, 1435, 1435, 1435, 792,
1627
1628   784, 1510, 1516, 1516, 1516, 783, 782, 873, 781, 1494,
1629   682, 777, 772, 1502, 2022, 2022, 2022, 767, 766, 1517,
1630   1519, 1519, 1519, 1439, 1439, 1439, 1440, 1440, 1440, 765,
1631   757, 2022, 1441, 1441, 1441, 1446, 1446, 1446, 1520, 1449,
1632   1449, 1449, 1526, 1526, 1526, 756, 1527, 755, 754, 1528,
1633   1513, 1512, 749, 1447, 746, 740, 1450, 758, 758, 758,
1634   735, 734, 1518, 1463, 1463, 1463, 1546, 1546, 1546, 1473,
1635   1473, 1473, 1475, 1475, 1475, 760, 730, 725, 1548, 1548,
1636   1548, 1464, 1549, 1547, 724, 1550, 723, 1474, 722, 1476,
1637   1556, 1556, 1556, 1491, 1491, 1491, 1564, 1564, 1564, 721,
1638
1639   1565, 720, 719, 1566, 1493, 1493, 1493, 1557, 718, 717,
1640   1492, 716, 715, 1540, 840, 840, 840, 2022, 2022, 2022,
1641   1576, 1576, 1576, 1503, 1503, 1503, 714, 1504, 713, 712,
1642   1505, 711, 842, 710, 2022, 1506, 1506, 1506, 1577, 1578,
1643   1578, 1578, 709, 1579, 708, 707, 1580, 706, 1581, 1581,
1644   1581, 705, 1507, 1509, 1509, 1509, 1511, 1511, 1511, 1583,
1645   1583, 1583, 704, 703, 1574, 1582, 702, 701, 1567, 700,
1646   695, 1510, 1516, 1516, 1516, 694, 693, 1584, 1575, 1588,
1647   1588, 1588, 692, 1589, 691, 690, 1590, 689, 688, 1517,
1648   1591, 1591, 1591, 1519, 1519, 1519, 1597, 1597, 1597, 1526,
1649
1650   1526, 1526, 685, 1527, 683, 682, 1528, 1592, 758, 758,
1651   758, 1520, 680, 1598, 1546, 1546, 1546, 1618, 1618, 1618,
1652   678, 1619, 677, 676, 1620, 674, 760, 673, 1548, 1548,
1653   1548, 1547, 1549, 672, 671, 1550, 1556, 1556, 1556, 1624,
1654   1624, 1624, 670, 1625, 666, 664, 1626, 1564, 1564, 1564,
1655   663, 1565, 662, 1557, 1566, 840, 840, 840, 2022, 2022,
1656   2022, 2022, 2022, 2022, 1614, 1576, 1576, 1576, 661, 660,
1657   1578, 1578, 1578, 842, 1579, 2022, 658, 1580, 2022, 1581,
1658   1581, 1581, 657, 1577, 1646, 1646, 1646, 656, 1647, 655,
1659   654, 1648, 1583, 1583, 1583, 653, 1582, 1588, 1588, 1588,
1660
1661   651, 1589, 650, 649, 1590, 1591, 1591, 1591, 646, 645,
1662   1584, 1652, 1652, 1652, 641, 1653, 639, 1637, 1654, 1644,
1663   638, 1645, 1592, 1655, 1655, 1655, 1657, 1657, 1657, 1597,
1664   1597, 1597, 1659, 1659, 1659, 637, 1660, 636, 635, 1661,
1665   758, 758, 758, 1676, 1676, 1676, 1598, 1618, 1618, 1618,
1666   630, 1619, 629, 627, 1620, 1682, 1682, 1682, 760, 624,
1667   1677, 1624, 1624, 1624, 622, 1625, 621, 620, 1626, 840,
1668   840, 840, 1683, 2022, 2022, 2022, 2022, 2022, 2022, 1655,
1669   1655, 1655, 1706, 1706, 1706, 619, 1678, 842, 1675, 616,
1670   2022, 615, 613, 2022, 1646, 1646, 1646, 612, 1647, 1707,
1671
1672   998, 1648, 1652, 1652, 1652, 610, 1653, 609, 608, 1654,
1673   1657, 1657, 1657, 1659, 1659, 1659, 605, 1660, 603, 602,
1674   1661, 1695, 1703, 1714, 1714, 1714, 758, 758, 758, 1676,
1675   1676, 1676, 1725, 1725, 1725, 1702, 1726, 601, 599, 1727,
1676   1715, 1682, 1682, 1682, 760, 597, 1677, 1733, 1733, 1733,
1677   596, 1734, 595, 594, 1735, 1747, 1747, 1747, 1683, 1755,
1678   1755, 1755, 1758, 1758, 1758, 1762, 1762, 1762, 1706, 1706,
1679   1706, 591, 1724, 1748, 590, 589, 1756, 586, 583, 1759,
1680   582, 580, 1763, 998, 579, 1707, 998, 577, 1764, 1764,
1681   1764, 574, 1765, 573, 570, 1766, 1767, 1767, 1767, 1768,
1682
1683   1768, 1768, 1757, 569, 568, 1760, 998, 1714, 1714, 1714,
1684   1773, 1773, 1773, 567, 1774, 566, 565, 1775, 758, 758,
1685   758, 1725, 1725, 1725, 1715, 1726, 560, 559, 1727, 1787,
1686   1787, 1787, 558, 1733, 1733, 1733, 760, 1734, 557, 556,
1687   1735, 1789, 1789, 1789, 555, 554, 1788, 1747, 1747, 1747,
1688   1755, 1755, 1755, 1805, 1805, 1805, 552, 1806, 1790, 551,
1689   1807, 2022, 2022, 2022, 550, 1748, 549, 1756, 1758, 1758,
1690   1758, 548, 1809, 1809, 1809, 547, 1810, 546, 2022, 1811,
1691   1782, 2022, 2022, 2022, 541, 1759, 1762, 1762, 1762, 1814,
1692   1814, 1814, 538, 1815, 540, 535, 1816, 533, 2022, 1767,
1693
1694   1767, 1767, 531, 1763, 998, 2022, 530, 998, 529, 1764,
1695   1764, 1764, 528, 1765, 527, 525, 1766, 1768, 1768, 1768,
1696   523, 1773, 1773, 1773, 521, 1774, 1808, 998, 1775, 1835,
1697   1835, 1835, 520, 1836, 519, 518, 1837, 517, 1829, 1829,
1698   1829, 516, 1787, 1787, 1787, 514, 1812, 996, 996, 996,
1699   996, 996, 996, 996, 996, 996, 1830, 513, 996, 1788,
1700   1789, 1789, 1789, 996, 996, 996, 998, 996, 1838, 1838,
1701   1838, 509, 1839, 508, 506, 1840, 505, 1790, 1805, 1805,
1702   1805, 502, 1806, 501, 500, 1807, 2022, 2022, 2022, 996,
1703   996, 996, 996, 996, 996, 996, 996, 996, 996, 996,
1704
1705   498, 496, 996, 2022, 2022, 2022, 2022, 996, 996, 996,
1706   998, 996, 1809, 1809, 1809, 494, 1810, 492, 491, 1811,
1707   488, 2022, 1814, 1814, 1814, 487, 1815, 483, 481, 1816,
1708   1829, 1829, 1829, 996, 996, 1835, 1835, 1835, 1853, 1836,
1709   998, 480, 1837, 1838, 1838, 1838, 478, 1839, 1830, 477,
1710   1840, 476, 2022, 2022, 2022, 475, 1854, 996, 996, 996,
1711   996, 996, 1861, 996, 996, 996, 474, 471, 996, 2022,
1712   2022, 2022, 2022, 996, 996, 996, 998, 996, 1890, 1890,
1713   1890, 1893, 1893, 1893, 1912, 1912, 1912, 2022, 1913, 469,
1714   468, 1914, 420, 1895, 1895, 1895, 998, 999, 1894, 996,
1715
1716   996, 996, 996, 996, 996, 996, 996, 996, 996, 1861,
1717   1896, 467, 996, 465, 1884, 463, 462, 996, 996, 996,
1718   998, 996, 1897, 1897, 1897, 1900, 1900, 1900, 2022, 2022,
1719   2022, 461, 1885, 2022, 2022, 2022, 1908, 1908, 1908, 1898,
1720   460, 458, 1901, 996, 996, 2022, 1890, 1890, 1890, 456,
1721   2022, 1893, 1893, 1893, 682, 1895, 1895, 1895, 455, 1915,
1722   1915, 1915, 454, 1916, 998, 1899, 1917, 452, 1894, 1897,
1723   1897, 1897, 1896, 1918, 1918, 1918, 450, 1919, 449, 1906,
1724   1920, 1900, 1900, 1900, 1907, 445, 1898, 444, 1922, 1922,
1725   1922, 442, 1923, 441, 1111, 1924, 438, 437, 1901, 2022,
1726
1727   2022, 2022, 2022, 2022, 2022, 1908, 1908, 1908, 1912, 1912,
1728   1912, 436, 1913, 434, 432, 1914, 2022, 430, 2022, 2022,
1729   1915, 1915, 1915, 682, 1916, 406, 405, 1917, 1918, 1918,
1730   1918, 403, 1919, 401, 395, 1920, 1922, 1922, 1922, 394,
1731   1923, 1931, 1929, 1924, 395, 1930, 2022, 2022, 2022, 2022,
1732   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1733   2022, 394, 393, 2022, 392, 2022, 2022, 2022, 2022, 2022,
1734   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 1957,
1735   1957, 1957, 2022, 2022, 2022, 2022, 2022, 2022, 1957, 1957,
1736   1957, 2022, 2022, 2022, 2022, 2022, 1958, 2022, 2022, 2022,
1737
1738   2022, 2022, 2022, 1938, 2022, 1958, 1939, 2022, 2022, 1954,
1739   2022, 1966, 1966, 1966, 1946, 1967, 2022, 1947, 1968, 2022,
1740   2022, 2022, 2022, 2022, 2022, 2022, 2022, 1955, 2022, 2022,
1741   1963, 2022, 2022, 1964, 2022, 2022, 2022, 2022, 2022, 2022,
1742   1966, 1966, 1966, 2022, 1967, 2022, 2022, 1968, 2022, 2022,
1743   2022, 2022, 2022, 2022, 1976, 1976, 1976, 2022, 2022, 2022,
1744   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 1976,
1745   1976, 1976, 682, 1979, 2022, 2022, 1980, 2022, 2022, 1971,
1746   2022, 2022, 1972, 2022, 2022, 2022, 2022, 682, 2022, 2022,
1747   2022, 1974, 2022, 2022, 1975, 2022, 2022, 2022, 2022, 2022,
1748
1749   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1750   2022, 2022, 2022, 1993, 1993, 1993, 2022, 2022, 1977, 2022,
1751   1978, 2022, 2022, 2022, 2022, 2022, 2022, 1995, 1995, 1995,
1752   1994, 1981, 1993, 1993, 1993, 2022, 1982, 2022, 1999, 1999,
1753   1999, 2022, 2000, 2022, 1996, 2001, 2022, 2022, 1986, 1994,
1754   2022, 1985, 2022, 1989, 1995, 1995, 1995, 2002, 2002, 2002,
1755   2022, 2003, 2022, 2022, 2004, 1999, 1999, 1999, 2022, 2000,
1756   2022, 1996, 2001, 1990, 2002, 2002, 2002, 2022, 2003, 2022,
1757   2022, 2004, 2020, 2020, 2020, 2020, 2020, 2020, 2022, 2022,
1758   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1759
1760   2021, 2022, 2022, 2021, 144, 144, 144, 144, 144, 144,
1761   144, 144, 144, 145, 145, 145, 145, 145, 145, 145,
1762   145, 145, 150, 150, 150, 150, 150, 150, 150, 150,
1763   150, 153, 153, 153, 153, 153, 153, 153, 153, 153,
1764   156, 156, 156, 156, 156, 156, 156, 156, 156, 159,
1765   159, 159, 159, 159, 159, 159, 159, 159, 166, 166,
1766   166, 166, 166, 166, 166, 166, 166, 174, 174, 174,
1767   174, 174, 174, 174, 174, 174, 179, 179, 179, 179,
1768   179, 179, 179, 179, 179, 189, 189, 189, 189, 189,
1769   189, 189, 189, 189, 193, 193, 193, 193, 193, 193,
1770
1771   193, 193, 193, 199, 199, 199, 199, 199, 199, 199,
1772   199, 199, 210, 210, 210, 210, 210, 210, 210, 210,
1773   210, 217, 217, 217, 217, 217, 217, 217, 217, 217,
1774   225, 225, 225, 225, 225, 225, 225, 225, 225, 231,
1775   231, 231, 231, 231, 231, 231, 231, 231, 237, 237,
1776   237, 237, 237, 237, 237, 237, 237, 244, 244, 244,
1777   244, 244, 244, 244, 244, 244, 250, 250, 250, 250,
1778   250, 250, 250, 250, 250, 256, 256, 256, 256, 256,
1779   256, 256, 256, 256, 262, 262, 262, 262, 262, 262,
1780   262, 262, 262, 270, 270, 270, 270, 270, 270, 270,
1781
1782   270, 270, 277, 277, 277, 277, 277, 277, 277, 277,
1783   277, 282, 282, 282, 282, 282, 282, 282, 282, 282,
1784   297, 297, 297, 297, 297, 297, 297, 297, 297, 303,
1785   303, 303, 303, 303, 303, 303, 303, 303, 307, 307,
1786   307, 307, 307, 307, 307, 307, 307, 313, 313, 313,
1787   313, 313, 313, 313, 313, 313, 320, 320, 320, 320,
1788   320, 320, 320, 320, 320, 327, 327, 327, 327, 327,
1789   327, 327, 327, 327, 334, 334, 334, 334, 334, 334,
1790   334, 334, 334, 341, 341, 341, 341, 341, 341, 341,
1791   341, 341, 348, 348, 348, 348, 348, 348, 348, 348,
1792
1793   348, 355, 355, 355, 355, 355, 355, 355, 355, 355,
1794   359, 359, 359, 359, 359, 359, 359, 359, 359, 365,
1795   365, 365, 365, 365, 365, 365, 365, 365, 372, 372,
1796   372, 372, 372, 372, 372, 372, 372, 380, 380, 380,
1797   380, 380, 380, 380, 380, 380, 384, 384, 384, 384,
1798   384, 384, 384, 384, 384, 404, 404, 404, 2022, 2022,
1799   2022, 404, 431, 431, 431, 2022, 2022, 2022, 431, 435,
1800   435, 435, 2022, 2022, 2022, 435, 443, 443, 443, 2022,
1801   2022, 2022, 443, 453, 453, 453, 2022, 2022, 2022, 453,
1802   459, 459, 459, 2022, 2022, 2022, 459, 466, 466, 466,
1803
1804   2022, 2022, 2022, 466, 470, 470, 470, 2022, 2022, 2022,
1805   470, 479, 479, 479, 2022, 2022, 2022, 479, 484, 484,
1806   484, 2022, 2022, 2022, 484, 495, 495, 495, 2022, 2022,
1807   2022, 495, 499, 499, 499, 2022, 2022, 2022, 499, 507,
1808   507, 507, 2022, 2022, 2022, 507, 515, 515, 515, 2022,
1809   2022, 2022, 515, 522, 522, 522, 2022, 2022, 2022, 522,
1810   526, 526, 526, 2022, 2022, 2022, 526, 534, 534, 534,
1811   2022, 2022, 2022, 534, 537, 537, 537, 537, 537, 537,
1812   537, 2022, 537, 553, 2022, 2022, 2022, 553, 581, 2022,
1813   2022, 2022, 581, 588, 2022, 2022, 2022, 588, 598, 2022,
1814
1815   2022, 2022, 598, 604, 2022, 2022, 2022, 604, 611, 2022,
1816   2022, 2022, 611, 614, 2022, 2022, 2022, 614, 623, 2022,
1817   2022, 2022, 623, 628, 2022, 2022, 2022, 628, 484, 484,
1818   484, 2022, 2022, 2022, 484, 640, 2022, 2022, 2022, 640,
1819   495, 495, 495, 2022, 2022, 2022, 495, 644, 2022, 2022,
1820   2022, 644, 499, 499, 499, 2022, 2022, 2022, 499, 652,
1821   2022, 2022, 2022, 652, 507, 507, 507, 2022, 2022, 2022,
1822   507, 659, 2022, 2022, 2022, 659, 515, 515, 515, 2022,
1823   2022, 2022, 515, 665, 2022, 2022, 2022, 665, 522, 522,
1824   522, 2022, 2022, 2022, 522, 669, 2022, 2022, 2022, 669,
1825
1826   526, 526, 526, 2022, 2022, 2022, 526, 675, 2022, 2022,
1827   2022, 675, 534, 534, 534, 2022, 2022, 2022, 534, 679,
1828   2022, 2022, 2022, 679, 681, 681, 681, 681, 681, 681,
1829   681, 681, 681, 687, 2022, 2022, 2022, 2022, 687, 404,
1830   404, 404, 2022, 2022, 2022, 404, 697, 697, 697, 697,
1831   2022, 2022, 697, 697, 431, 431, 431, 2022, 2022, 2022,
1832   431, 727, 727, 727, 727, 2022, 2022, 727, 727, 435,
1833   435, 435, 2022, 2022, 2022, 435, 737, 737, 737, 737,
1834   2022, 2022, 737, 737, 443, 443, 443, 2022, 2022, 2022,
1835   443, 751, 751, 751, 751, 2022, 2022, 751, 751, 453,
1836
1837   453, 453, 2022, 2022, 2022, 453, 759, 759, 759, 759,
1838   2022, 2022, 759, 759, 459, 459, 459, 2022, 2022, 2022,
1839   459, 769, 769, 769, 769, 2022, 2022, 769, 769, 466,
1840   466, 466, 2022, 2022, 2022, 466, 774, 774, 774, 774,
1841   2022, 2022, 774, 774, 470, 470, 470, 2022, 2022, 2022,
1842   470, 786, 786, 786, 786, 2022, 2022, 786, 786, 479,
1843   479, 479, 2022, 2022, 2022, 479, 794, 794, 794, 794,
1844   2022, 2022, 794, 794, 484, 484, 484, 2022, 2022, 2022,
1845   484, 812, 812, 812, 812, 2022, 2022, 812, 812, 819,
1846   819, 819, 819, 2022, 2022, 819, 819, 499, 499, 499,
1847
1848   2022, 2022, 2022, 499, 830, 830, 830, 830, 2022, 2022,
1849   830, 830, 507, 507, 507, 2022, 2022, 2022, 507, 841,
1850   841, 841, 841, 2022, 2022, 841, 841, 515, 515, 515,
1851   2022, 2022, 2022, 515, 851, 851, 851, 851, 2022, 2022,
1852   851, 851, 858, 858, 858, 858, 2022, 2022, 858, 858,
1853   526, 526, 526, 2022, 2022, 2022, 526, 866, 866, 866,
1854   866, 2022, 2022, 866, 866, 534, 534, 534, 2022, 2022,
1855   2022, 534, 872, 872, 872, 872, 2022, 2022, 872, 872,
1856   681, 681, 681, 681, 681, 681, 681, 681, 681, 687,
1857   2022, 687, 2022, 2022, 687, 404, 404, 404, 2022, 2022,
1858
1859   2022, 404, 697, 697, 697, 697, 2022, 2022, 697, 697,
1860   431, 431, 431, 431, 2022, 431, 2022, 431, 727, 727,
1861   727, 727, 2022, 2022, 727, 727, 435, 435, 435, 435,
1862   2022, 435, 2022, 435, 737, 737, 737, 737, 2022, 2022,
1863   737, 737, 443, 443, 443, 2022, 2022, 2022, 443, 751,
1864   751, 751, 751, 2022, 2022, 751, 751, 453, 453, 453,
1865   2022, 2022, 2022, 453, 759, 759, 759, 759, 2022, 2022,
1866   759, 759, 459, 459, 459, 2022, 2022, 2022, 459, 769,
1867   769, 769, 769, 2022, 2022, 769, 769, 466, 466, 466,
1868   2022, 2022, 2022, 466, 774, 774, 774, 774, 2022, 2022,
1869
1870   774, 774, 470, 470, 470, 2022, 2022, 2022, 470, 786,
1871   786, 786, 786, 2022, 2022, 786, 786, 479, 479, 479,
1872   2022, 2022, 2022, 479, 794, 794, 794, 794, 2022, 2022,
1873   794, 794, 484, 484, 484, 2022, 2022, 2022, 484, 812,
1874   812, 812, 812, 2022, 2022, 812, 812, 819, 819, 819,
1875   819, 2022, 2022, 819, 819, 499, 499, 499, 2022, 2022,
1876   2022, 499, 830, 830, 830, 830, 2022, 2022, 830, 830,
1877   507, 507, 507, 2022, 2022, 2022, 507, 841, 841, 841,
1878   841, 2022, 2022, 841, 841, 515, 515, 515, 2022, 2022,
1879   2022, 515, 851, 851, 851, 851, 2022, 2022, 851, 851,
1880
1881   858, 858, 858, 858, 2022, 2022, 858, 858, 526, 526,
1882   526, 2022, 2022, 2022, 526, 866, 866, 866, 866, 2022,
1883   2022, 866, 866, 534, 534, 534, 2022, 2022, 2022, 534,
1884   872, 872, 872, 872, 2022, 2022, 872, 872, 681, 681,
1885   681, 681, 681, 681, 681, 681, 681, 996, 996, 996,
1886   996, 996, 996, 996, 996, 996, 404, 404, 404, 2022,
1887   2022, 2022, 404, 697, 697, 697, 697, 2022, 2022, 697,
1888   697, 727, 727, 727, 727, 2022, 2022, 727, 727, 435,
1889   435, 435, 2022, 2022, 2022, 435, 737, 737, 737, 737,
1890   2022, 2022, 737, 737, 443, 443, 443, 2022, 2022, 2022,
1891
1892   443, 751, 751, 751, 751, 2022, 2022, 751, 751, 453,
1893   453, 453, 2022, 2022, 2022, 453, 759, 759, 759, 759,
1894   2022, 2022, 759, 759, 459, 459, 459, 2022, 2022, 2022,
1895   459, 769, 769, 769, 769, 2022, 2022, 769, 769, 466,
1896   466, 466, 2022, 2022, 2022, 466, 774, 774, 774, 774,
1897   2022, 2022, 774, 774, 470, 470, 470, 2022, 2022, 2022,
1898   470, 786, 786, 786, 786, 2022, 2022, 786, 786, 479,
1899   479, 479, 479, 2022, 479, 2022, 479, 794, 794, 794,
1900   794, 2022, 2022, 794, 794, 484, 484, 484, 484, 2022,
1901   484, 2022, 484, 812, 812, 812, 812, 2022, 2022, 812,
1902
1903   812, 819, 819, 819, 819, 2022, 2022, 819, 819, 499,
1904   499, 499, 2022, 2022, 2022, 499, 830, 830, 830, 830,
1905   2022, 2022, 830, 830, 507, 507, 507, 2022, 2022, 2022,
1906   507, 841, 841, 841, 841, 2022, 2022, 841, 841, 515,
1907   515, 515, 2022, 2022, 2022, 515, 851, 851, 851, 851,
1908   2022, 2022, 851, 851, 858, 858, 858, 858, 2022, 2022,
1909   858, 858, 526, 526, 526, 2022, 2022, 2022, 526, 866,
1910   866, 866, 866, 2022, 2022, 866, 866, 534, 534, 534,
1911   534, 2022, 534, 2022, 534, 872, 872, 872, 872, 2022,
1912   2022, 872, 872, 681, 681, 681, 681, 681, 681, 681,
1913
1914   681, 681, 996, 996, 996, 996, 996, 996, 996, 996,
1915   996, 404, 404, 404, 2022, 2022, 2022, 404, 697, 697,
1916   697, 697, 2022, 2022, 697, 697, 727, 727, 727, 727,
1917   2022, 2022, 727, 727, 435, 435, 435, 2022, 2022, 2022,
1918   435, 737, 737, 737, 737, 2022, 2022, 737, 737, 443,
1919   443, 443, 2022, 2022, 2022, 443, 751, 751, 751, 751,
1920   2022, 2022, 751, 751, 453, 453, 453, 2022, 2022, 2022,
1921   453, 759, 759, 759, 759, 2022, 2022, 759, 759, 459,
1922   459, 459, 459, 2022, 459, 2022, 459, 466, 466, 466,
1923   466, 2022, 466, 2022, 466, 774, 774, 774, 774, 2022,
1924
1925   2022, 774, 774, 470, 470, 470, 2022, 2022, 2022, 470,
1926   786, 786, 786, 786, 2022, 2022, 786, 786, 794, 794,
1927   794, 794, 2022, 2022, 794, 794, 484, 484, 484, 484,
1928   2022, 484, 2022, 484, 812, 812, 812, 812, 2022, 2022,
1929   812, 812, 819, 819, 819, 819, 2022, 2022, 819, 819,
1930   499, 499, 499, 2022, 2022, 2022, 499, 830, 830, 830,
1931   830, 2022, 2022, 830, 830, 507, 507, 507, 507, 2022,
1932   507, 2022, 507, 841, 841, 841, 841, 2022, 2022, 841,
1933   841, 515, 515, 515, 515, 2022, 515, 2022, 515, 851,
1934   851, 851, 851, 2022, 2022, 851, 851, 858, 858, 858,
1935
1936   858, 2022, 2022, 858, 858, 526, 526, 526, 2022, 2022,
1937   2022, 526, 866, 866, 866, 866, 2022, 2022, 866, 866,
1938   872, 872, 872, 872, 2022, 2022, 872, 872, 681, 681,
1939   681, 681, 681, 681, 681, 681, 681, 996, 996, 996,
1940   996, 996, 996, 996, 996, 996, 404, 404, 404, 404,
1941   2022, 404, 2022, 404, 697, 697, 697, 697, 2022, 2022,
1942   697, 697, 727, 727, 727, 727, 2022, 2022, 727, 727,
1943   435, 435, 435, 2022, 2022, 2022, 435, 737, 737, 737,
1944   737, 2022, 2022, 737, 737, 443, 443, 443, 2022, 2022,
1945   2022, 443, 751, 751, 751, 751, 2022, 2022, 751, 751,
1946
1947   453, 453, 453, 453, 2022, 453, 2022, 453, 759, 759,
1948   759, 759, 2022, 2022, 759, 759, 459, 459, 459, 459,
1949   2022, 459, 2022, 459, 774, 774, 774, 774, 2022, 2022,
1950   774, 774, 470, 470, 470, 2022, 2022, 2022, 470, 1817,
1951   1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1818, 1818,
1952   1818, 1818, 1818, 1818, 1818, 1818, 1818, 1856, 1856, 1856,
1953   1856, 1856, 1856, 1856, 1856, 1856, 1859, 1859, 1859, 1859,
1954   1859, 1859, 1859, 1859, 1859, 1887, 1887, 1887, 1887, 1887,
1955   1887, 1887, 1887, 1887, 1889, 1889, 1889, 1889, 1889, 1889,
1956   1889, 1889, 1889, 143, 2022, 2022, 2022, 2022, 2022, 2022,
1957
1958   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1959   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1960   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1961   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1962   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1963   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
1964   2022, 2022, 2022
1965 };
1966
1967 static yyconst flex_int16_t yy_chk[7164] = { 0,
1968   0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1969   6, 6, 6, 7, 7, 7, 11, 3, 9, 12,
1970   4, 10, 219, 5, 0, 9, 6, 0, 10, 7,
1971   8, 8, 8, 148, 11, 13, 13, 12, 14, 14,
1972   13, 13, 220, 14, 14, 149, 8, 17, 17, 148,
1973   13, 15, 15, 14, 15, 152, 15, 16, 16, 414,
1974   16, 149, 16, 18, 18, 414, 15, 19, 19, 19,
1975   219, 152, 16, 20, 20, 20, 23, 23, 23, 24,
1976   24, 24, 266, 19, 25, 25, 25, 332, 17, 20,
1977   220, 266, 23, 425, 332, 24, 146, 146, 146, 425,
1978
1979   25, 147, 147, 147, 18, 21, 21, 21, 21, 21,
1980   21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1981   1412, 21, 21, 21, 21, 21, 26, 26, 26, 27,
1982   27, 27, 319, 28, 28, 28, 29, 29, 29, 30,
1983   30, 30, 26, 319, 451, 27, 175, 21, 21, 28,
1984   451, 294, 29, 190, 294, 30, 151, 151, 151, 172,
1985   172, 172, 175, 180, 180, 180, 187, 187, 187, 190,
1986   21, 183, 21, 22, 22, 22, 22, 22, 22, 22,
1987   22, 22, 22, 22, 22, 22, 22, 22, 272, 22,
1988   22, 22, 22, 22, 31, 31, 31, 32, 32, 32,
1989
1990   995, 33, 33, 33, 34, 34, 34, 35, 35, 35,
1991   31, 415, 200, 32, 170, 22, 22, 33, 211, 183,
1992   34, 183, 995, 35, 415, 36, 36, 36, 200, 185,
1993   170, 194, 194, 194, 211, 185, 272, 185, 22, 185,
1994   22, 36, 37, 37, 37, 37, 37, 37, 37, 37,
1995   37, 37, 37, 37, 37, 37, 37, 291, 37, 37,
1996   37, 37, 37, 39, 39, 39, 40, 40, 40, 170,
1997   47, 47, 47, 43, 43, 44, 44, 291, 43, 39,
1998   44, 1152, 40, 215, 37, 37, 47, 215, 43, 1152,
1999   44, 215, 37, 38, 38, 38, 38, 38, 38, 38,
2000
2001   38, 38, 38, 38, 38, 38, 38, 38, 707, 38,
2002   38, 38, 38, 38, 43, 333, 44, 48, 48, 48,
2003   707, 49, 49, 49, 50, 50, 50, 197, 197, 197,
2004   208, 208, 208, 48, 684, 38, 38, 49, 684, 397,
2005   50, 336, 397, 38, 41, 41, 41, 41, 41, 41,
2006   41, 41, 41, 41, 41, 41, 41, 41, 41, 333,
2007   41, 41, 41, 41, 41, 51, 51, 51, 52, 52,
2008   52, 322, 53, 53, 53, 54, 54, 54, 218, 218,
2009   218, 51, 195, 205, 52, 336, 41, 41, 53, 195,
2010   205, 54, 1319, 1319, 41, 1320, 1320, 41, 195, 205,
2011
2012   223, 223, 223, 41, 42, 42, 42, 42, 42, 42,
2013   42, 42, 42, 42, 42, 42, 42, 42, 42, 322,
2014   42, 42, 42, 42, 42, 57, 57, 57, 58, 58,
2015   58, 720, 61, 61, 61, 62, 62, 62, 388, 226,
2016   238, 57, 1156, 720, 58, 233, 42, 42, 61, 422,
2017   1156, 62, 233, 388, 42, 226, 238, 42, 232, 232,
2018   232, 233, 422, 42, 45, 45, 45, 45, 45, 45,
2019   45, 45, 45, 45, 45, 45, 45, 45, 45, 754,
2020   45, 45, 45, 45, 45, 65, 65, 65, 66, 66,
2021   66, 754, 67, 67, 67, 68, 68, 68, 69, 69,
2022
2023   69, 65, 246, 251, 66, 1414, 45, 45, 67, 246,
2024   350, 68, 426, 1419, 69, 45, 1421, 45, 246, 251,
2025   45, 235, 235, 235, 254, 426, 45, 46, 46, 46,
2026   46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
2027   46, 46, 439, 46, 46, 46, 46, 46, 70, 70,
2028   70, 73, 73, 73, 350, 74, 74, 74, 75, 75,
2029   75, 76, 76, 76, 70, 254, 263, 73, 254, 46,
2030   46, 74, 278, 1004, 75, 439, 1428, 76, 46, 1004,
2031   46, 1442, 263, 46, 245, 245, 245, 1112, 278, 46,
2032   55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
2033
2034   55, 55, 55, 55, 55, 1443, 55, 55, 55, 55,
2035   55, 77, 77, 77, 78, 78, 78, 1112, 79, 79,
2036   79, 80, 80, 80, 83, 83, 83, 77, 1444, 630,
2037   78, 1111, 55, 55, 79, 289, 304, 80, 630, 55,
2038   83, 248, 248, 248, 55, 257, 257, 257, 260, 260,
2039   260, 289, 304, 55, 56, 56, 56, 56, 56, 56,
2040   56, 56, 56, 56, 56, 56, 56, 56, 56, 1111,
2041   56, 56, 56, 56, 56, 84, 84, 84, 87, 87,
2042   87, 1445, 88, 88, 88, 91, 91, 91, 92, 92,
2043   92, 84, 1325, 1325, 87, 1294, 56, 56, 88, 314,
2044
2045   328, 91, 1294, 56, 92, 271, 271, 271, 56, 275,
2046   275, 275, 283, 283, 283, 314, 328, 56, 59, 59,
2047   59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
2048   59, 59, 59, 1448, 59, 59, 59, 59, 59, 95,
2049   95, 95, 96, 96, 96, 875, 97, 97, 97, 98,
2050   98, 98, 99, 99, 99, 95, 284, 428, 96, 1451,
2051   59, 59, 97, 284, 875, 98, 1232, 1433, 99, 1295,
2052   428, 59, 284, 286, 286, 286, 1295, 59, 1452, 59,
2053   59, 60, 60, 60, 60, 60, 60, 60, 60, 60,
2054   60, 60, 60, 60, 60, 60, 1433, 60, 60, 60,
2055
2056   60, 60, 100, 100, 100, 101, 101, 101, 1232, 102,
2057   102, 102, 105, 105, 105, 106, 106, 106, 100, 1326,
2058   1326, 101, 299, 60, 60, 102, 539, 1230, 105, 299,
2059   1453, 106, 1315, 1230, 60, 298, 298, 298, 299, 1315,
2060   60, 539, 60, 60, 63, 63, 63, 63, 63, 63,
2061   63, 63, 63, 63, 63, 63, 63, 63, 63, 1434,
2062   63, 63, 63, 63, 63, 107, 107, 107, 108, 108,
2063   108, 1454, 109, 109, 109, 110, 110, 110, 111, 111,
2064   111, 107, 1455, 1316, 108, 309, 63, 63, 109, 342,
2065   1316, 110, 309, 1434, 111, 301, 301, 301, 308, 308,
2066
2067   308, 309, 311, 311, 311, 342, 63, 64, 64, 64,
2068   64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
2069   64, 64, 1456, 64, 64, 64, 64, 64, 112, 112,
2070   112, 115, 115, 115, 1457, 116, 116, 116, 117, 117,
2071   117, 118, 118, 118, 112, 1458, 1338, 115, 1459, 64,
2072   64, 116, 356, 1413, 117, 1413, 1460, 118, 321, 321,
2073   321, 325, 325, 325, 335, 335, 335, 1461, 356, 64,
2074   71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
2075   71, 71, 71, 71, 71, 1338, 71, 71, 71, 71,
2076   71, 119, 119, 119, 120, 120, 120, 1465, 121, 121,
2077
2078   121, 122, 122, 122, 125, 125, 125, 119, 366, 361,
2079   120, 381, 71, 71, 121, 71, 361, 122, 1466, 1415,
2080   125, 1415, 1467, 71, 366, 361, 71, 381, 1339, 71,
2081   1468, 1470, 71, 72, 72, 72, 72, 72, 72, 72,
2082   72, 72, 72, 72, 72, 72, 72, 72, 1477, 72,
2083   72, 72, 72, 72, 126, 126, 126, 129, 129, 129,
2084   1478, 130, 130, 130, 131, 131, 131, 132, 132, 132,
2085   126, 1339, 386, 129, 1479, 72, 72, 130, 72, 386,
2086   131, 1050, 1420, 132, 1420, 1480, 72, 1050, 386, 72,
2087   1050, 1422, 72, 1422, 1050, 72, 81, 81, 81, 81,
2088
2089   81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
2090   81, 374, 81, 81, 81, 81, 81, 133, 133, 133,
2091   134, 134, 134, 1482, 135, 135, 135, 136, 136, 136,
2092   139, 139, 139, 133, 1485, 1051, 134, 1486, 81, 81,
2093   135, 1051, 1487, 136, 1051, 374, 139, 162, 1051, 81,
2094   339, 339, 339, 349, 349, 349, 353, 353, 353, 374,
2095   1488, 81, 82, 82, 82, 82, 82, 82, 82, 82,
2096   82, 82, 82, 82, 82, 82, 82, 1489, 82, 82,
2097   82, 82, 82, 140, 140, 140, 162, 360, 360, 360,
2098   1490, 1495, 162, 363, 363, 363, 162, 1496, 1497, 140,
2099
2100   1498, 162, 1499, 1500, 82, 82, 373, 373, 373, 378,
2101   378, 378, 385, 385, 385, 82, 387, 387, 387, 542,
2102   542, 542, 1521, 542, 710, 710, 710, 82, 85, 85,
2103   85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
2104   85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
2105   85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
2106   85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
2107   85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
2108   85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
2109   85, 85, 85, 85, 85, 85, 85, 89, 89, 89,
2110
2111   89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
2112   89, 89, 1513, 89, 89, 89, 89, 89, 396, 396,
2113   396, 437, 437, 437, 445, 445, 445, 460, 460, 460,
2114   472, 472, 472, 718, 718, 718, 1522, 1523, 437, 89,
2115   89, 445, 1524, 1529, 460, 1530, 1531, 472, 1513, 1231,
2116   89, 90, 90, 90, 90, 90, 90, 90, 90, 90,
2117   90, 90, 90, 90, 90, 90, 1514, 90, 90, 90,
2118   90, 90, 1532, 396, 480, 480, 480, 1231, 486, 486,
2119   486, 487, 487, 487, 496, 496, 496, 888, 888, 888,
2120   1527, 480, 1533, 90, 90, 486, 1534, 1535, 487, 1536,
2121
2122   1514, 496, 1527, 1515, 90, 93, 93, 93, 93, 93,
2123   93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
2124   1537, 93, 93, 93, 93, 93, 501, 501, 501, 523,
2125   523, 523, 553, 553, 553, 554, 554, 554, 581, 581,
2126   581, 1110, 1515, 501, 1538, 1539, 523, 93, 93, 1541,
2127   553, 93, 1542, 554, 1543, 1551, 581, 1110, 93, 1552,
2128   93, 893, 893, 893, 896, 896, 896, 93, 94, 94,
2129   94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
2130   94, 94, 94, 1553, 94, 94, 94, 94, 94, 554,
2131   582, 582, 582, 1558, 1528, 584, 584, 584, 585, 585,
2132
2133   585, 1559, 585, 1560, 1561, 585, 1528, 1562, 582, 1563,
2134   94, 94, 584, 1568, 94, 593, 593, 593, 1569, 593,
2135   1570, 94, 593, 94, 900, 900, 900, 904, 904, 904,
2136   94, 103, 103, 103, 103, 103, 103, 103, 103, 103,
2137   103, 103, 103, 103, 103, 103, 582, 103, 103, 103,
2138   103, 103, 588, 588, 588, 1571, 1572, 589, 589, 589,
2139   592, 592, 592, 594, 594, 594, 596, 596, 596, 1573,
2140   588, 1586, 1594, 103, 103, 589, 103, 592, 1587, 103,
2141   594, 1565, 1566, 596, 607, 607, 607, 1596, 607, 1565,
2142   1566, 607, 1585, 103, 104, 104, 104, 104, 104, 104,
2143
2144   104, 104, 104, 104, 104, 104, 104, 104, 104, 1586,
2145   104, 104, 104, 104, 104, 1599, 1587, 589, 1585, 1600,
2146   598, 598, 598, 604, 604, 604, 1601, 1602, 599, 599,
2147   599, 605, 605, 605, 1603, 1604, 104, 104, 598, 104,
2148   1605, 604, 104, 618, 618, 618, 599, 618, 1606, 605,
2149   618, 930, 930, 930, 1607, 1609, 104, 113, 113, 113,
2150   113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
2151   113, 113, 599, 113, 113, 113, 113, 113, 606, 606,
2152   606, 1610, 1611, 611, 611, 611, 614, 614, 614, 1612,
2153   1616, 605, 617, 617, 617, 606, 612, 612, 612, 113,
2154
2155   113, 611, 113, 1617, 614, 113, 1009, 1009, 1009, 617,
2156   113, 626, 626, 626, 612, 626, 1621, 1623, 626, 113,
2157   114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
2158   114, 114, 114, 114, 114, 1627, 114, 114, 114, 114,
2159   114, 615, 615, 615, 612, 1628, 623, 623, 623, 624,
2160   624, 624, 625, 625, 625, 1629, 628, 628, 628, 615,
2161   1630, 1631, 114, 114, 623, 114, 1632, 624, 114, 625,
2162   1011, 1011, 1011, 114, 628, 1015, 1015, 1015, 1021, 1021,
2163   1021, 1633, 114, 123, 123, 123, 123, 123, 123, 123,
2164   123, 123, 123, 123, 123, 123, 123, 123, 615, 123,
2165
2166   123, 123, 123, 123, 1634, 1635, 624, 1636, 1638, 629,
2167   629, 629, 631, 631, 631, 632, 632, 632, 1639, 632,
2168   1640, 1641, 632, 1642, 1643, 123, 123, 629, 1656, 631,
2169   1022, 1022, 1022, 1047, 1047, 1047, 123, 124, 124, 124,
2170   124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
2171   124, 124, 1650, 124, 124, 124, 124, 124, 633, 633,
2172   633, 634, 634, 634, 1658, 634, 1662, 1663, 634, 629,
2173   635, 635, 635, 1664, 1665, 633, 1126, 1126, 1126, 124,
2174   124, 643, 643, 643, 1650, 643, 1667, 635, 643, 1668,
2175   124, 127, 127, 127, 127, 127, 127, 127, 127, 127,
2176
2177   127, 127, 127, 127, 127, 127, 1669, 127, 127, 127,
2178   127, 127, 640, 640, 640, 642, 642, 642, 644, 644,
2179   644, 641, 641, 641, 645, 645, 645, 647, 647, 647,
2180   640, 1670, 642, 127, 127, 1649, 644, 1671, 1672, 641,
2181   1673, 127, 645, 127, 647, 127, 1127, 1127, 1127, 1129,
2182   1129, 1129, 1674, 127, 128, 128, 128, 128, 128, 128,
2183   128, 128, 128, 128, 128, 128, 128, 128, 128, 1678,
2184   128, 128, 128, 128, 128, 641, 648, 648, 648, 1649,
2185   648, 645, 1680, 648, 652, 652, 652, 653, 653, 653,
2186   655, 655, 655, 656, 656, 656, 128, 128, 662, 662,
2187
2188   662, 1681, 652, 1684, 128, 653, 128, 655, 128, 1685,
2189   656, 1130, 1130, 1130, 1686, 662, 128, 137, 137, 137,
2190   137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
2191   137, 137, 1687, 137, 137, 137, 137, 137, 1688, 653,
2192   659, 659, 659, 1689, 664, 664, 664, 660, 660, 660,
2193   665, 665, 665, 666, 666, 666, 1679, 1679, 659, 137,
2194   137, 664, 667, 667, 667, 660, 1690, 1691, 665, 1692,
2195   1693, 666, 1694, 668, 668, 668, 1696, 668, 1697, 667,
2196   668, 1698, 137, 138, 138, 138, 138, 138, 138, 138,
2197   138, 138, 138, 138, 138, 138, 138, 138, 1699, 138,
2198
2199   138, 138, 138, 138, 660, 669, 669, 669, 1700, 1701,
2200   666, 670, 670, 670, 675, 675, 675, 676, 676, 676,
2201   679, 679, 679, 669, 1710, 138, 138, 1704, 1711, 670,
2202   1712, 1713, 675, 1716, 1717, 676, 1719, 1720, 679, 680,
2203   680, 680, 696, 696, 696, 725, 725, 725, 138, 181,
2204   697, 697, 697, 890, 890, 890, 181, 680, 1704, 1721,
2205   696, 1723, 725, 670, 1728, 181, 1729, 890, 697, 699,
2206   699, 699, 1730, 726, 726, 726, 1731, 676, 727, 727,
2207   727, 1737, 1738, 729, 729, 729, 1739, 699, 1740, 1741,
2208   181, 726, 181, 1742, 1744, 181, 727, 181, 181, 680,
2209
2210   181, 729, 1746, 1749, 181, 1750, 181, 181, 181, 182,
2211   730, 730, 730, 699, 1751, 1752, 182, 731, 731, 731,
2212   1753, 731, 1754, 1761, 731, 182, 1769, 730, 1770, 729,
2213   734, 734, 734, 736, 736, 736, 737, 737, 737, 1771,
2214   1772, 739, 739, 739, 744, 744, 744, 734, 1776, 1777,
2215   182, 736, 182, 1778, 737, 182, 1779, 182, 182, 739,
2216   182, 744, 1761, 1780, 182, 1781, 182, 182, 182, 741,
2217   741, 741, 1783, 741, 1784, 1785, 741, 745, 745, 745,
2218   1786, 745, 1791, 1792, 745, 739, 1793, 734, 746, 746,
2219   746, 747, 747, 747, 748, 748, 748, 1794, 748, 1795,
2220
2221   1796, 748, 750, 750, 750, 746, 1799, 1800, 747, 751,
2222   751, 751, 753, 753, 753, 756, 756, 756, 1801, 1802,
2223   750, 758, 758, 758, 759, 759, 759, 751, 1803, 1804,
2224   753, 1819, 756, 761, 761, 761, 762, 762, 762, 758,
2225   762, 1821, 759, 762, 768, 768, 768, 769, 769, 769,
2226   1824, 761, 771, 771, 771, 773, 773, 773, 774, 774,
2227   774, 1815, 768, 1816, 1813, 769, 1825, 1827, 753, 1828,
2228   771, 1831, 1832, 773, 1816, 1815, 774, 761, 776, 776,
2229   776, 778, 778, 778, 1833, 778, 1834, 1841, 778, 785,
2230   785, 785, 786, 786, 786, 1842, 776, 788, 788, 788,
2231
2232   1844, 789, 789, 789, 1845, 789, 1813, 785, 789, 1847,
2233   786, 793, 793, 793, 771, 788, 794, 794, 794, 796,
2234   796, 796, 1848, 799, 799, 799, 1850, 799, 1851, 793,
2235   799, 805, 805, 805, 794, 1858, 1839, 796, 776, 802,
2236   802, 802, 1855, 802, 1840, 1860, 802, 1839, 805, 806,
2237   806, 806, 1862, 806, 1863, 1840, 806, 1856, 788, 811,
2238   811, 811, 812, 812, 812, 814, 814, 814, 815, 815,
2239   815, 1856, 815, 1857, 1857, 815, 796, 811, 1872, 1855,
2240   812, 1873, 1874, 814, 818, 818, 818, 819, 819, 819,
2241   821, 821, 821, 823, 823, 823, 1859, 823, 1875, 1887,
2242
2243   823, 1888, 818, 1889, 1891, 819, 1892, 1859, 821, 829,
2244   829, 829, 830, 830, 830, 832, 832, 832, 834, 834,
2245   834, 1899, 835, 835, 835, 1902, 835, 829, 814, 835,
2246   830, 1903, 1904, 832, 1905, 834, 1909, 836, 836, 836,
2247   837, 837, 837, 1921, 837, 1925, 1926, 837, 840, 840,
2248   840, 1927, 1928, 821, 836, 841, 841, 841, 843, 843,
2249   843, 845, 845, 845, 1933, 1931, 840, 1934, 846, 846,
2250   846, 832, 846, 841, 1935, 846, 843, 1936, 845, 848,
2251   848, 848, 849, 849, 849, 1937, 849, 1931, 1940, 849,
2252   850, 850, 850, 851, 851, 851, 848, 853, 853, 853,
2253
2254   854, 854, 854, 1941, 854, 1942, 1940, 854, 850, 1943,
2255   1944, 851, 857, 857, 857, 853, 858, 858, 858, 1945,
2256   1948, 843, 860, 860, 860, 862, 862, 862, 1950, 1951,
2257   857, 865, 865, 865, 858, 866, 866, 866, 1952, 1948,
2258   860, 1953, 862, 868, 868, 868, 871, 871, 871, 865,
2259   872, 872, 872, 866, 874, 874, 874, 876, 876, 876,
2260   853, 868, 1959, 1961, 871, 884, 884, 884, 872, 911,
2261   911, 911, 874, 1411, 1979, 876, 876, 1983, 860, 901,
2262   901, 901, 1980, 884, 1956, 1965, 911, 912, 912, 912,
2263   1956, 912, 1991, 901, 912, 913, 913, 913, 1965, 1987,
2264
2265   868, 914, 914, 914, 874, 915, 915, 915, 2013, 915,
2266   1984, 1983, 915, 913, 918, 918, 918, 1979, 914, 920,
2267   920, 920, 1997, 920, 1991, 1980, 920, 884, 923, 923,
2268   923, 1410, 918, 924, 924, 924, 1987, 924, 1992, 1409,
2269   924, 929, 929, 929, 1984, 923, 925, 925, 925, 913,
2270   925, 1408, 2013, 925, 932, 932, 932, 1988, 1998, 929,
2271   918, 933, 933, 933, 1997, 933, 2007, 2014, 933, 2008,
2272   1992, 932, 934, 934, 934, 935, 935, 935, 939, 939,
2273   939, 941, 941, 941, 945, 945, 945, 1407, 929, 934,
2274   946, 946, 946, 935, 1988, 2007, 939, 2005, 2008, 941,
2275
2276   1998, 945, 947, 947, 947, 2017, 2006, 946, 948, 948,
2277   948, 2014, 949, 949, 949, 950, 950, 950, 2011, 2017,
2278   947, 935, 951, 951, 951, 948, 955, 955, 955, 941,
2279   949, 2005, 950, 946, 952, 952, 952, 2012, 952, 951,
2280   2006, 952, 1406, 955, 956, 956, 956, 2011, 957, 957,
2281   957, 958, 958, 958, 959, 959, 959, 960, 960, 960,
2282   2009, 956, 2010, 1405, 947, 957, 2012, 1394, 958, 2009,
2283   949, 2010, 959, 1393, 2015, 960, 1392, 964, 964, 964,
2284   965, 965, 965, 1391, 951, 2016, 967, 967, 967, 2018,
2285   967, 1390, 957, 967, 964, 970, 970, 970, 965, 970,
2286
2287   2018, 1389, 970, 2015, 974, 974, 974, 975, 975, 975,
2288   956, 987, 987, 987, 2016, 959, 1388, 958, 974, 960,
2289   964, 1387, 977, 977, 977, 975, 977, 1381, 987, 977,
2290   981, 981, 981, 965, 981, 1380, 1379, 981, 984, 984,
2291   984, 985, 985, 985, 988, 988, 988, 1378, 988, 1377,
2292   1376, 988, 991, 991, 991, 1375, 984, 1374, 1373, 985,
2293   993, 993, 993, 994, 994, 994, 997, 997, 997, 975,
2294   991, 1005, 1005, 1005, 1017, 1017, 1017, 993, 1018, 1018,
2295   1018, 994, 1372, 1366, 997, 1024, 1024, 1024, 1017, 1005,
2296   1363, 1361, 1018, 1359, 985, 1025, 1025, 1025, 991, 1024,
2297
2298   984, 1027, 1027, 1027, 1029, 1029, 1029, 1355, 1354, 1025,
2299   1030, 1030, 1030, 1335, 997, 1027, 1333, 1332, 1029, 1322,
2300   1005, 1031, 1031, 1031, 1030, 1031, 994, 1317, 1031, 1314,
2301   997, 1034, 1034, 1034, 1017, 1035, 1035, 1035, 1313, 1035,
2302   1310, 1296, 1035, 1293, 1292, 1024, 1052, 1052, 1052, 1034,
2303   1040, 1040, 1040, 1042, 1042, 1042, 1291, 1042, 1277, 1276,
2304   1042, 1027, 1275, 1052, 1029, 1046, 1046, 1046, 1040, 1049,
2305   1049, 1049, 1274, 1049, 1273, 1272, 1049, 1053, 1053, 1053,
2306   1271, 1053, 1270, 1046, 1053, 1054, 1054, 1054, 1055, 1055,
2307   1055, 1056, 1056, 1056, 1034, 1057, 1057, 1057, 1040, 1058,
2308
2309   1058, 1058, 1269, 1054, 1268, 1055, 1264, 1263, 1056, 1060,
2310   1060, 1060, 1057, 1061, 1061, 1061, 1260, 1058, 1065, 1065,
2311   1065, 1259, 1046, 1066, 1066, 1066, 1060, 1066, 1257, 1255,
2312   1066, 1061, 1249, 1054, 1247, 1065, 1067, 1067, 1067, 1068,
2313   1068, 1068, 1244, 1068, 1243, 1056, 1068, 1070, 1070, 1070,
2314   1071, 1071, 1071, 1067, 1072, 1072, 1072, 1061, 1072, 1239,
2315   1233, 1072, 1073, 1073, 1073, 1070, 1225, 1071, 1074, 1074,
2316   1074, 1075, 1075, 1075, 1223, 1075, 1222, 1221, 1075, 1214,
2317   1073, 1076, 1076, 1076, 1208, 1074, 1077, 1077, 1077, 1078,
2318   1078, 1078, 1207, 1078, 1206, 1204, 1078, 1202, 1076, 1079,
2319
2320   1079, 1079, 1179, 1077, 1080, 1080, 1080, 1081, 1081, 1081,
2321   1082, 1082, 1082, 1083, 1083, 1083, 1079, 1087, 1087, 1087,
2322   1178, 1080, 1177, 1172, 1081, 1088, 1088, 1088, 1082, 1088,
2323   1171, 1083, 1088, 1170, 1087, 1090, 1090, 1090, 1091, 1091,
2324   1091, 1157, 1092, 1092, 1092, 1094, 1094, 1094, 1095, 1095,
2325   1095, 1155, 1154, 1090, 1153, 1091, 1151, 1150, 1080, 1092,
2326   1147, 1083, 1146, 1094, 1144, 1095, 1096, 1096, 1096, 1097,
2327   1097, 1097, 1082, 1143, 1098, 1098, 1098, 1100, 1100, 1100,
2328   1141, 1100, 1140, 1096, 1100, 1139, 1137, 1097, 1098, 1105,
2329   1105, 1105, 1098, 1094, 1107, 1107, 1107, 1108, 1108, 1108,
2330
2331   1133, 1108, 1092, 1132, 1108, 1131, 1128, 1105, 1125, 1096,
2332   1124, 1107, 1109, 1109, 1109, 1123, 1122, 1097, 1115, 1115,
2333   1115, 1116, 1116, 1116, 1117, 1117, 1117, 1118, 1118, 1118,
2334   1109, 1134, 1134, 1134, 1121, 1115, 1120, 1105, 1116, 1119,
2335   1114, 1117, 1135, 1135, 1135, 1118, 1136, 1136, 1136, 1138,
2336   1138, 1138, 1142, 1142, 1142, 1106, 1145, 1145, 1145, 1148,
2337   1148, 1148, 1149, 1149, 1149, 1104, 1103, 1109, 1099, 1093,
2338   1142, 1089, 1086, 1116, 1145, 1085, 1084, 1148, 1069, 1149,
2339   1064, 1117, 1063, 1062, 1118, 1158, 1158, 1158, 1048, 1158,
2340   1045, 1041, 1158, 1161, 1161, 1161, 1162, 1162, 1162, 1142,
2341
2342   1039, 1163, 1163, 1163, 1038, 1163, 1028, 1161, 1163, 1026,
2343   1023, 1161, 1020, 1162, 1148, 1164, 1164, 1164, 1165, 1165,
2344   1165, 1166, 1166, 1166, 1019, 1166, 1016, 1014, 1166, 1167,
2345   1167, 1167, 1164, 1013, 1012, 1165, 1168, 1168, 1168, 1010,
2346   1168, 1008, 1007, 1168, 1006, 1003, 1167, 1169, 1169, 1169,
2347   1173, 1173, 1173, 1002, 1173, 999, 996, 1173, 992, 1176,
2348   1176, 1176, 990, 1176, 989, 1169, 1176, 1180, 1180, 1180,
2349   1182, 1182, 1182, 986, 1182, 980, 976, 1182, 1185, 1185,
2350   1185, 973, 1187, 1187, 1187, 1180, 1187, 966, 963, 1187,
2351   1190, 1190, 1190, 1169, 962, 961, 1185, 1191, 1191, 1191,
2352
2353   944, 1191, 943, 942, 1191, 940, 938, 1190, 1192, 1192,
2354   1192, 937, 1192, 936, 931, 1192, 1195, 1195, 1195, 1196,
2355   1196, 1196, 928, 1196, 919, 917, 1196, 1197, 1197, 1197,
2356   1198, 1198, 1198, 1195, 1199, 1199, 1199, 916, 1199, 910,
2357   909, 1199, 908, 907, 1197, 906, 905, 1198, 1200, 1200,
2358   1200, 1201, 1201, 1201, 1203, 1203, 1203, 1205, 1205, 1205,
2359   903, 1205, 902, 899, 1205, 898, 1200, 897, 895, 1201,
2360   894, 1203, 1209, 1209, 1209, 1211, 1211, 1211, 1212, 1212,
2361   1212, 892, 1212, 891, 889, 1212, 1213, 1213, 1213, 887,
2362   1209, 886, 1211, 1216, 1216, 1216, 1200, 1203, 1215, 1215,
2363
2364   1215, 885, 883, 1213, 1218, 1218, 1218, 1219, 1219, 1219,
2365   1216, 1201, 1215, 1217, 1217, 1217, 1215, 1217, 882, 881,
2366   1217, 1218, 1220, 1220, 1220, 1219, 1224, 1224, 1224, 1226,
2367   1226, 1226, 880, 1226, 879, 870, 1226, 869, 1213, 864,
2368   1220, 1229, 1229, 1229, 1224, 1234, 1234, 1234, 1235, 1235,
2369   1235, 863, 1235, 861, 847, 1235, 1236, 1236, 1236, 1229,
2370   844, 1218, 1234, 1237, 1237, 1237, 839, 838, 1220, 833,
2371   1238, 1238, 1238, 1236, 1240, 1240, 1240, 1241, 1241, 1241,
2372   1237, 1242, 1242, 1242, 1245, 1245, 1245, 1224, 1238, 1229,
2373   1246, 1246, 1246, 1248, 1248, 1248, 1250, 1250, 1250, 1251,
2374
2375   1251, 1251, 1252, 1252, 1252, 1253, 1253, 1253, 1254, 1254,
2376   1254, 828, 1236, 1256, 1256, 1256, 1258, 1258, 1258, 1261,
2377   1261, 1261, 1265, 1265, 1265, 827, 1237, 1266, 1266, 1266,
2378   1238, 1267, 1267, 1267, 1258, 1267, 826, 1261, 1267, 822,
2379   1265, 1278, 1278, 1278, 1266, 1279, 1279, 1279, 810, 1279,
2380   809, 808, 1279, 1282, 1282, 1282, 1283, 1283, 1283, 1278,
2381   1283, 807, 798, 1283, 1258, 1284, 1284, 1284, 797, 1284,
2382   1282, 792, 1284, 1287, 1287, 1287, 784, 1287, 783, 782,
2383   1287, 1290, 1290, 1290, 1297, 1297, 1297, 1278, 1297, 781,
2384   777, 1297, 772, 1300, 1300, 1300, 767, 1300, 766, 1290,
2385
2386   1300, 1303, 1303, 1303, 1304, 1304, 1304, 765, 1304, 757,
2387   755, 1304, 1305, 1305, 1305, 749, 1305, 740, 1303, 1305,
2388   1308, 1308, 1308, 1309, 1309, 1309, 1311, 1311, 1311, 1312,
2389   1312, 1312, 1290, 1312, 735, 724, 1312, 723, 1308, 722,
2390   721, 1309, 719, 1311, 1318, 1318, 1318, 717, 1318, 716,
2391   715, 1318, 1321, 1321, 1321, 1323, 1323, 1323, 1324, 1324,
2392   1324, 714, 1324, 713, 712, 1324, 1327, 1327, 1327, 1321,
2393   1328, 1328, 1328, 1323, 1330, 1330, 1330, 1331, 1331, 1331,
2394   1308, 711, 709, 1327, 1334, 1334, 1334, 708, 1328, 1337,
2395   1337, 1337, 1330, 706, 1331, 1336, 1336, 1336, 1321, 1340,
2396
2397   1340, 1340, 1334, 705, 1341, 1341, 1341, 1337, 1341, 704,
2398   1323, 1341, 703, 1336, 1344, 1344, 1344, 1345, 1345, 1345,
2399   702, 701, 1327, 1346, 1346, 1346, 1347, 1347, 1347, 700,
2400   695, 1344, 694, 693, 1345, 692, 1330, 1348, 1348, 1348,
2401   689, 1346, 1349, 1349, 1349, 1334, 1350, 1350, 1350, 688,
2402   687, 1336, 1351, 1351, 1351, 1352, 1352, 1352, 1353, 1353,
2403   1353, 1356, 1356, 1356, 1357, 1357, 1357, 1344, 1358, 1358,
2404   1358, 1360, 1360, 1360, 1362, 1362, 1362, 685, 1346, 1345,
2405   1365, 1365, 1365, 1367, 1367, 1367, 1369, 1369, 1369, 681,
2406   1369, 678, 1362, 1369, 1382, 1382, 1382, 1365, 1383, 1383,
2407
2408   1383, 1367, 1383, 677, 674, 1383, 1386, 1386, 1386, 1395,
2409   1395, 1395, 1382, 1395, 673, 672, 1395, 1398, 1398, 1398,
2410   1399, 1399, 1399, 671, 1386, 1401, 1401, 1401, 663, 1402,
2411   1402, 1402, 661, 1402, 658, 1398, 1402, 657, 1399, 1416,
2412   1416, 1416, 1401, 1417, 1417, 1417, 1418, 1418, 1418, 654,
2413   651, 1382, 1423, 1423, 1423, 650, 1416, 1424, 1424, 1424,
2414   1425, 1425, 1425, 649, 1418, 1427, 1427, 1427, 1401, 1423,
2415   646, 639, 1426, 1426, 1426, 1424, 1426, 1425, 638, 1426,
2416   637, 636, 1427, 1429, 1429, 1429, 1430, 1430, 1430, 1431,
2417   1431, 1431, 1432, 1432, 1432, 1423, 1435, 1435, 1435, 627,
2418
2419   622, 1429, 1436, 1436, 1436, 621, 620, 1431, 619, 1418,
2420   1432, 616, 613, 1424, 1437, 1437, 1437, 610, 609, 1436,
2421   1438, 1438, 1438, 1439, 1439, 1439, 1440, 1440, 1440, 608,
2422   603, 1437, 1441, 1441, 1441, 1446, 1446, 1446, 1438, 1449,
2423   1449, 1449, 1450, 1450, 1450, 602, 1450, 601, 600, 1450,
2424   1432, 1431, 597, 1446, 595, 591, 1449, 1462, 1462, 1462,
2425   587, 586, 1437, 1463, 1463, 1463, 1472, 1472, 1472, 1473,
2426   1473, 1473, 1475, 1475, 1475, 1462, 583, 580, 1476, 1476,
2427   1476, 1463, 1476, 1472, 579, 1476, 578, 1473, 577, 1475,
2428   1484, 1484, 1484, 1491, 1491, 1491, 1492, 1492, 1492, 576,
2429
2430   1492, 575, 574, 1492, 1493, 1493, 1493, 1484, 573, 572,
2431   1491, 571, 570, 1462, 1494, 1494, 1494, 1501, 1501, 1501,
2432   1502, 1502, 1502, 1503, 1503, 1503, 569, 1503, 568, 567,
2433   1503, 566, 1494, 565, 1501, 1506, 1506, 1506, 1502, 1507,
2434   1507, 1507, 564, 1507, 563, 562, 1507, 561, 1508, 1508,
2435   1508, 560, 1506, 1509, 1509, 1509, 1511, 1511, 1511, 1512,
2436   1512, 1512, 559, 558, 1501, 1508, 557, 556, 1494, 555,
2437   552, 1509, 1516, 1516, 1516, 551, 550, 1512, 1501, 1517,
2438   1517, 1517, 548, 1517, 547, 546, 1517, 545, 544, 1516,
2439   1518, 1518, 1518, 1519, 1519, 1519, 1525, 1525, 1525, 1526,
2440
2441   1526, 1526, 540, 1526, 538, 537, 1526, 1518, 1540, 1540,
2442   1540, 1519, 536, 1525, 1546, 1546, 1546, 1547, 1547, 1547,
2443   535, 1547, 532, 531, 1547, 530, 1540, 529, 1548, 1548,
2444   1548, 1546, 1548, 528, 527, 1548, 1556, 1556, 1556, 1557,
2445   1557, 1557, 524, 1557, 520, 519, 1557, 1564, 1564, 1564,
2446   518, 1564, 517, 1556, 1564, 1567, 1567, 1567, 1574, 1574,
2447   1574, 1575, 1575, 1575, 1540, 1576, 1576, 1576, 516, 513,
2448   1578, 1578, 1578, 1567, 1578, 1574, 512, 1578, 1575, 1581,
2449   1581, 1581, 511, 1576, 1582, 1582, 1582, 510, 1582, 509,
2450   508, 1582, 1583, 1583, 1583, 505, 1581, 1588, 1588, 1588,
2451
2452   504, 1588, 503, 502, 1588, 1591, 1591, 1591, 500, 497,
2453   1583, 1592, 1592, 1592, 493, 1592, 492, 1567, 1592, 1574,
2454   491, 1575, 1591, 1593, 1593, 1593, 1595, 1595, 1595, 1597,
2455   1597, 1597, 1598, 1598, 1598, 490, 1598, 489, 488, 1598,
2456   1614, 1614, 1614, 1615, 1615, 1615, 1597, 1618, 1618, 1618,
2457   485, 1618, 482, 481, 1618, 1622, 1622, 1622, 1614, 477,
2458   1615, 1624, 1624, 1624, 476, 1624, 475, 474, 1624, 1637,
2459   1637, 1637, 1622, 1644, 1644, 1644, 1645, 1645, 1645, 1655,
2460   1655, 1655, 1651, 1651, 1651, 473, 1615, 1637, 1614, 471,
2461   1644, 468, 467, 1645, 1646, 1646, 1646, 464, 1646, 1651,
2462
2463   1651, 1646, 1652, 1652, 1652, 463, 1652, 462, 461, 1652,
2464   1657, 1657, 1657, 1659, 1659, 1659, 457, 1659, 456, 455,
2465   1659, 1637, 1645, 1666, 1666, 1666, 1675, 1675, 1675, 1676,
2466   1676, 1676, 1677, 1677, 1677, 1644, 1677, 454, 450, 1677,
2467   1666, 1682, 1682, 1682, 1675, 449, 1676, 1683, 1683, 1683,
2468   448, 1683, 447, 446, 1683, 1695, 1695, 1695, 1682, 1702,
2469   1702, 1702, 1703, 1703, 1703, 1705, 1705, 1705, 1706, 1706,
2470   1706, 444, 1675, 1695, 441, 440, 1702, 438, 436, 1703,
2471   433, 432, 1705, 1705, 429, 1706, 1706, 427, 1707, 1707,
2472   1707, 424, 1707, 423, 421, 1707, 1708, 1708, 1708, 1709,
2473
2474   1709, 1709, 1702, 420, 419, 1703, 1707, 1714, 1714, 1714,
2475   1715, 1715, 1715, 418, 1715, 417, 416, 1715, 1724, 1724,
2476   1724, 1725, 1725, 1725, 1714, 1725, 413, 412, 1725, 1732,
2477   1732, 1732, 411, 1733, 1733, 1733, 1724, 1733, 410, 409,
2478   1733, 1736, 1736, 1736, 408, 407, 1732, 1747, 1747, 1747,
2479   1755, 1755, 1755, 1756, 1756, 1756, 406, 1756, 1736, 405,
2480   1756, 1757, 1757, 1757, 402, 1747, 401, 1755, 1758, 1758,
2481   1758, 400, 1759, 1759, 1759, 399, 1759, 398, 1757, 1759,
2482   1724, 1760, 1760, 1760, 392, 1758, 1762, 1762, 1762, 1763,
2483   1763, 1763, 391, 1763, 389, 383, 1763, 379, 1760, 1767,
2484
2485   1767, 1767, 376, 1762, 1762, 375, 371, 1763, 370, 1764,
2486   1764, 1764, 369, 1764, 368, 364, 1764, 1768, 1768, 1768,
2487   358, 1773, 1773, 1773, 354, 1773, 1757, 1764, 1773, 1788,
2488   1788, 1788, 351, 1788, 347, 346, 1788, 345, 1782, 1782,
2489   1782, 344, 1787, 1787, 1787, 340, 1760, 1765, 1765, 1765,
2490   1765, 1765, 1765, 1765, 1765, 1765, 1782, 337, 1765, 1787,
2491   1789, 1789, 1789, 1765, 1765, 1765, 1765, 1765, 1790, 1790,
2492   1790, 331, 1790, 330, 326, 1790, 323, 1789, 1805, 1805,
2493   1805, 318, 1805, 317, 316, 1805, 1808, 1808, 1808, 1765,
2494   1765, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766,
2495
2496   312, 306, 1766, 1808, 1812, 1812, 1812, 1766, 1766, 1766,
2497   1766, 1766, 1809, 1809, 1809, 302, 1809, 296, 295, 1809,
2498   293, 1812, 1814, 1814, 1814, 292, 1814, 287, 281, 1814,
2499   1829, 1829, 1829, 1766, 1766, 1835, 1835, 1835, 1808, 1835,
2500   1814, 280, 1835, 1838, 1838, 1838, 276, 1838, 1829, 273,
2501   1838, 269, 1853, 1853, 1853, 268, 1812, 1817, 1817, 1817,
2502   1817, 1817, 1817, 1817, 1817, 1817, 267, 265, 1817, 1853,
2503   1854, 1854, 1854, 1817, 1817, 1817, 1817, 1817, 1861, 1861,
2504   1861, 1868, 1868, 1868, 1894, 1894, 1894, 1854, 1894, 261,
2505   258, 1894, 255, 1869, 1869, 1869, 1861, 1861, 1868, 1817,
2506
2507   1817, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
2508   1869, 253, 1818, 249, 1853, 243, 242, 1818, 1818, 1818,
2509   1818, 1818, 1870, 1870, 1870, 1871, 1871, 1871, 1884, 1884,
2510   1884, 241, 1854, 1885, 1885, 1885, 1886, 1886, 1886, 1870,
2511   240, 236, 1871, 1818, 1818, 1884, 1890, 1890, 1890, 230,
2512   1885, 1893, 1893, 1893, 1886, 1895, 1895, 1895, 229, 1896,
2513   1896, 1896, 228, 1896, 1890, 1870, 1896, 224, 1893, 1897,
2514   1897, 1897, 1895, 1898, 1898, 1898, 221, 1898, 216, 1884,
2515   1898, 1900, 1900, 1900, 1885, 214, 1897, 213, 1901, 1901,
2516   1901, 209, 1901, 206, 1890, 1901, 204, 203, 1900, 1906,
2517
2518   1906, 1906, 1907, 1907, 1907, 1908, 1908, 1908, 1912, 1912,
2519   1912, 202, 1912, 198, 192, 1912, 1906, 188, 184, 1907,
2520   1915, 1915, 1915, 1908, 1915, 178, 177, 1915, 1918, 1918,
2521   1918, 173, 1918, 169, 168, 1918, 1922, 1922, 1922, 167,
2522   1922, 1908, 1906, 1922, 161, 1907, 1929, 1929, 1929, 1930,
2523   1930, 1930, 1938, 1938, 1938, 1939, 1939, 1939, 1946, 1946,
2524   1946, 160, 158, 1929, 155, 143, 1930, 0, 0, 1938,
2525   0, 0, 1939, 0, 0, 1946, 1947, 1947, 1947, 1949,
2526   1949, 1949, 1954, 1954, 1954, 1955, 1955, 1955, 1957, 1957,
2527   1957, 0, 0, 1947, 0, 0, 1949, 0, 0, 1954,
2528
2529   0, 0, 1955, 1929, 0, 1957, 1930, 0, 0, 1946,
2530   0, 1958, 1958, 1958, 1938, 1958, 0, 1939, 1958, 1963,
2531   1963, 1963, 1964, 1964, 1964, 0, 0, 1947, 0, 0,
2532   1954, 0, 0, 1955, 0, 0, 1963, 0, 0, 1964,
2533   1966, 1966, 1966, 0, 1966, 0, 0, 1966, 1971, 1971,
2534   1971, 1972, 1972, 1972, 1973, 1973, 1973, 1974, 1974, 1974,
2535   1975, 1975, 1975, 0, 0, 1971, 0, 0, 1972, 1976,
2536   1976, 1976, 1973, 1976, 1974, 0, 1976, 1975, 0, 1963,
2537   0, 0, 1964, 1977, 1977, 1977, 0, 1976, 1978, 1978,
2538   1978, 1971, 0, 0, 1972, 1981, 1981, 1981, 0, 0,
2539
2540   1977, 0, 1982, 1982, 1982, 1978, 1985, 1985, 1985, 1986,
2541   1986, 1986, 1981, 1989, 1989, 1989, 0, 0, 1974, 1982,
2542   1975, 0, 0, 1985, 0, 0, 1986, 1990, 1990, 1990,
2543   1989, 1977, 1993, 1993, 1993, 0, 1978, 0, 1994, 1994,
2544   1994, 0, 1994, 0, 1990, 1994, 0, 0, 1982, 1993,
2545   0, 1981, 0, 1985, 1995, 1995, 1995, 1996, 1996, 1996,
2546   0, 1996, 0, 0, 1996, 1999, 1999, 1999, 0, 1999,
2547   0, 1995, 1999, 1986, 2002, 2002, 2002, 0, 2002, 0,
2548   0, 2002, 2019, 2019, 2019, 2020, 2020, 2020, 0, 0,
2549   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2550
2551   2019, 0, 0, 2020, 2023, 2023, 2023, 2023, 2023, 2023,
2552   2023, 2023, 2023, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
2553   2024, 2024, 2025, 2025, 2025, 2025, 2025, 2025, 2025, 2025,
2554   2025, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026,
2555   2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2028,
2556   2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2029, 2029,
2557   2029, 2029, 2029, 2029, 2029, 2029, 2029, 2030, 2030, 2030,
2558   2030, 2030, 2030, 2030, 2030, 2030, 2031, 2031, 2031, 2031,
2559   2031, 2031, 2031, 2031, 2031, 2032, 2032, 2032, 2032, 2032,
2560   2032, 2032, 2032, 2032, 2033, 2033, 2033, 2033, 2033, 2033,
2561
2562   2033, 2033, 2033, 2034, 2034, 2034, 2034, 2034, 2034, 2034,
2563   2034, 2034, 2035, 2035, 2035, 2035, 2035, 2035, 2035, 2035,
2564   2035, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036,
2565   2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2037, 2038,
2566   2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2039, 2039,
2567   2039, 2039, 2039, 2039, 2039, 2039, 2039, 2040, 2040, 2040,
2568   2040, 2040, 2040, 2040, 2040, 2040, 2041, 2041, 2041, 2041,
2569   2041, 2041, 2041, 2041, 2041, 2042, 2042, 2042, 2042, 2042,
2570   2042, 2042, 2042, 2042, 2043, 2043, 2043, 2043, 2043, 2043,
2571   2043, 2043, 2043, 2044, 2044, 2044, 2044, 2044, 2044, 2044,
2572
2573   2044, 2044, 2045, 2045, 2045, 2045, 2045, 2045, 2045, 2045,
2574   2045, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046, 2046,
2575   2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2048,
2576   2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2049, 2049,
2577   2049, 2049, 2049, 2049, 2049, 2049, 2049, 2050, 2050, 2050,
2578   2050, 2050, 2050, 2050, 2050, 2050, 2051, 2051, 2051, 2051,
2579   2051, 2051, 2051, 2051, 2051, 2052, 2052, 2052, 2052, 2052,
2580   2052, 2052, 2052, 2052, 2053, 2053, 2053, 2053, 2053, 2053,
2581   2053, 2053, 2053, 2054, 2054, 2054, 2054, 2054, 2054, 2054,
2582   2054, 2054, 2055, 2055, 2055, 2055, 2055, 2055, 2055, 2055,
2583
2584   2055, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056,
2585   2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2057, 2058,
2586   2058, 2058, 2058, 2058, 2058, 2058, 2058, 2058, 2059, 2059,
2587   2059, 2059, 2059, 2059, 2059, 2059, 2059, 2060, 2060, 2060,
2588   2060, 2060, 2060, 2060, 2060, 2060, 2061, 2061, 2061, 2061,
2589   2061, 2061, 2061, 2061, 2061, 2062, 2062, 2062, 0, 0,
2590   0, 2062, 2063, 2063, 2063, 0, 0, 0, 2063, 2064,
2591   2064, 2064, 0, 0, 0, 2064, 2065, 2065, 2065, 0,
2592   0, 0, 2065, 2066, 2066, 2066, 0, 0, 0, 2066,
2593   2067, 2067, 2067, 0, 0, 0, 2067, 2068, 2068, 2068,
2594
2595   0, 0, 0, 2068, 2069, 2069, 2069, 0, 0, 0,
2596   2069, 2070, 2070, 2070, 0, 0, 0, 2070, 2071, 2071,
2597   2071, 0, 0, 0, 2071, 2072, 2072, 2072, 0, 0,
2598   0, 2072, 2073, 2073, 2073, 0, 0, 0, 2073, 2074,
2599   2074, 2074, 0, 0, 0, 2074, 2075, 2075, 2075, 0,
2600   0, 0, 2075, 2076, 2076, 2076, 0, 0, 0, 2076,
2601   2077, 2077, 2077, 0, 0, 0, 2077, 2078, 2078, 2078,
2602   0, 0, 0, 2078, 2079, 2079, 2079, 2079, 2079, 2079,
2603   2079, 0, 2079, 2080, 0, 0, 0, 2080, 2081, 0,
2604   0, 0, 2081, 2082, 0, 0, 0, 2082, 2083, 0,
2605
2606   0, 0, 2083, 2084, 0, 0, 0, 2084, 2085, 0,
2607   0, 0, 2085, 2086, 0, 0, 0, 2086, 2087, 0,
2608   0, 0, 2087, 2088, 0, 0, 0, 2088, 2089, 2089,
2609   2089, 0, 0, 0, 2089, 2090, 0, 0, 0, 2090,
2610   2091, 2091, 2091, 0, 0, 0, 2091, 2092, 0, 0,
2611   0, 2092, 2093, 2093, 2093, 0, 0, 0, 2093, 2094,
2612   0, 0, 0, 2094, 2095, 2095, 2095, 0, 0, 0,
2613   2095, 2096, 0, 0, 0, 2096, 2097, 2097, 2097, 0,
2614   0, 0, 2097, 2098, 0, 0, 0, 2098, 2099, 2099,
2615   2099, 0, 0, 0, 2099, 2100, 0, 0, 0, 2100,
2616
2617   2101, 2101, 2101, 0, 0, 0, 2101, 2102, 0, 0,
2618   0, 2102, 2103, 2103, 2103, 0, 0, 0, 2103, 2104,
2619   0, 0, 0, 2104, 2105, 2105, 2105, 2105, 2105, 2105,
2620   2105, 2105, 2105, 2106, 0, 0, 0, 0, 2106, 2107,
2621   2107, 2107, 0, 0, 0, 2107, 2108, 2108, 2108, 2108,
2622   0, 0, 2108, 2108, 2109, 2109, 2109, 0, 0, 0,
2623   2109, 2110, 2110, 2110, 2110, 0, 0, 2110, 2110, 2111,
2624   2111, 2111, 0, 0, 0, 2111, 2112, 2112, 2112, 2112,
2625   0, 0, 2112, 2112, 2113, 2113, 2113, 0, 0, 0,
2626   2113, 2114, 2114, 2114, 2114, 0, 0, 2114, 2114, 2115,
2627
2628   2115, 2115, 0, 0, 0, 2115, 2116, 2116, 2116, 2116,
2629   0, 0, 2116, 2116, 2117, 2117, 2117, 0, 0, 0,
2630   2117, 2118, 2118, 2118, 2118, 0, 0, 2118, 2118, 2119,
2631   2119, 2119, 0, 0, 0, 2119, 2120, 2120, 2120, 2120,
2632   0, 0, 2120, 2120, 2121, 2121, 2121, 0, 0, 0,
2633   2121, 2122, 2122, 2122, 2122, 0, 0, 2122, 2122, 2123,
2634   2123, 2123, 0, 0, 0, 2123, 2124, 2124, 2124, 2124,
2635   0, 0, 2124, 2124, 2125, 2125, 2125, 0, 0, 0,
2636   2125, 2126, 2126, 2126, 2126, 0, 0, 2126, 2126, 2127,
2637   2127, 2127, 2127, 0, 0, 2127, 2127, 2128, 2128, 2128,
2638
2639   0, 0, 0, 2128, 2129, 2129, 2129, 2129, 0, 0,
2640   2129, 2129, 2130, 2130, 2130, 0, 0, 0, 2130, 2131,
2641   2131, 2131, 2131, 0, 0, 2131, 2131, 2132, 2132, 2132,
2642   0, 0, 0, 2132, 2133, 2133, 2133, 2133, 0, 0,
2643   2133, 2133, 2134, 2134, 2134, 2134, 0, 0, 2134, 2134,
2644   2135, 2135, 2135, 0, 0, 0, 2135, 2136, 2136, 2136,
2645   2136, 0, 0, 2136, 2136, 2137, 2137, 2137, 0, 0,
2646   0, 2137, 2138, 2138, 2138, 2138, 0, 0, 2138, 2138,
2647   2139, 2139, 2139, 2139, 2139, 2139, 2139, 2139, 2139, 2140,
2648   0, 2140, 0, 0, 2140, 2141, 2141, 2141, 0, 0,
2649
2650   0, 2141, 2142, 2142, 2142, 2142, 0, 0, 2142, 2142,
2651   2143, 2143, 2143, 2143, 0, 2143, 0, 2143, 2144, 2144,
2652   2144, 2144, 0, 0, 2144, 2144, 2145, 2145, 2145, 2145,
2653   0, 2145, 0, 2145, 2146, 2146, 2146, 2146, 0, 0,
2654   2146, 2146, 2147, 2147, 2147, 0, 0, 0, 2147, 2148,
2655   2148, 2148, 2148, 0, 0, 2148, 2148, 2149, 2149, 2149,
2656   0, 0, 0, 2149, 2150, 2150, 2150, 2150, 0, 0,
2657   2150, 2150, 2151, 2151, 2151, 0, 0, 0, 2151, 2152,
2658   2152, 2152, 2152, 0, 0, 2152, 2152, 2153, 2153, 2153,
2659   0, 0, 0, 2153, 2154, 2154, 2154, 2154, 0, 0,
2660
2661   2154, 2154, 2155, 2155, 2155, 0, 0, 0, 2155, 2156,
2662   2156, 2156, 2156, 0, 0, 2156, 2156, 2157, 2157, 2157,
2663   0, 0, 0, 2157, 2158, 2158, 2158, 2158, 0, 0,
2664   2158, 2158, 2159, 2159, 2159, 0, 0, 0, 2159, 2160,
2665   2160, 2160, 2160, 0, 0, 2160, 2160, 2161, 2161, 2161,
2666   2161, 0, 0, 2161, 2161, 2162, 2162, 2162, 0, 0,
2667   0, 2162, 2163, 2163, 2163, 2163, 0, 0, 2163, 2163,
2668   2164, 2164, 2164, 0, 0, 0, 2164, 2165, 2165, 2165,
2669   2165, 0, 0, 2165, 2165, 2166, 2166, 2166, 0, 0,
2670   0, 2166, 2167, 2167, 2167, 2167, 0, 0, 2167, 2167,
2671
2672   2168, 2168, 2168, 2168, 0, 0, 2168, 2168, 2169, 2169,
2673   2169, 0, 0, 0, 2169, 2170, 2170, 2170, 2170, 0,
2674   0, 2170, 2170, 2171, 2171, 2171, 0, 0, 0, 2171,
2675   2172, 2172, 2172, 2172, 0, 0, 2172, 2172, 2173, 2173,
2676   2173, 2173, 2173, 2173, 2173, 2173, 2173, 2174, 2174, 2174,
2677   2174, 2174, 2174, 2174, 2174, 2174, 2175, 2175, 2175, 0,
2678   0, 0, 2175, 2176, 2176, 2176, 2176, 0, 0, 2176,
2679   2176, 2177, 2177, 2177, 2177, 0, 0, 2177, 2177, 2178,
2680   2178, 2178, 0, 0, 0, 2178, 2179, 2179, 2179, 2179,
2681   0, 0, 2179, 2179, 2180, 2180, 2180, 0, 0, 0,
2682
2683   2180, 2181, 2181, 2181, 2181, 0, 0, 2181, 2181, 2182,
2684   2182, 2182, 0, 0, 0, 2182, 2183, 2183, 2183, 2183,
2685   0, 0, 2183, 2183, 2184, 2184, 2184, 0, 0, 0,
2686   2184, 2185, 2185, 2185, 2185, 0, 0, 2185, 2185, 2186,
2687   2186, 2186, 0, 0, 0, 2186, 2187, 2187, 2187, 2187,
2688   0, 0, 2187, 2187, 2188, 2188, 2188, 0, 0, 0,
2689   2188, 2189, 2189, 2189, 2189, 0, 0, 2189, 2189, 2190,
2690   2190, 2190, 2190, 0, 2190, 0, 2190, 2191, 2191, 2191,
2691   2191, 0, 0, 2191, 2191, 2192, 2192, 2192, 2192, 0,
2692   2192, 0, 2192, 2193, 2193, 2193, 2193, 0, 0, 2193,
2693
2694   2193, 2194, 2194, 2194, 2194, 0, 0, 2194, 2194, 2195,
2695   2195, 2195, 0, 0, 0, 2195, 2196, 2196, 2196, 2196,
2696   0, 0, 2196, 2196, 2197, 2197, 2197, 0, 0, 0,
2697   2197, 2198, 2198, 2198, 2198, 0, 0, 2198, 2198, 2199,
2698   2199, 2199, 0, 0, 0, 2199, 2200, 2200, 2200, 2200,
2699   0, 0, 2200, 2200, 2201, 2201, 2201, 2201, 0, 0,
2700   2201, 2201, 2202, 2202, 2202, 0, 0, 0, 2202, 2203,
2701   2203, 2203, 2203, 0, 0, 2203, 2203, 2204, 2204, 2204,
2702   2204, 0, 2204, 0, 2204, 2205, 2205, 2205, 2205, 0,
2703   0, 2205, 2205, 2206, 2206, 2206, 2206, 2206, 2206, 2206,
2704
2705   2206, 2206, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
2706   2207, 2208, 2208, 2208, 0, 0, 0, 2208, 2209, 2209,
2707   2209, 2209, 0, 0, 2209, 2209, 2210, 2210, 2210, 2210,
2708   0, 0, 2210, 2210, 2211, 2211, 2211, 0, 0, 0,
2709   2211, 2212, 2212, 2212, 2212, 0, 0, 2212, 2212, 2213,
2710   2213, 2213, 0, 0, 0, 2213, 2214, 2214, 2214, 2214,
2711   0, 0, 2214, 2214, 2215, 2215, 2215, 0, 0, 0,
2712   2215, 2216, 2216, 2216, 2216, 0, 0, 2216, 2216, 2217,
2713   2217, 2217, 2217, 0, 2217, 0, 2217, 2218, 2218, 2218,
2714   2218, 0, 2218, 0, 2218, 2219, 2219, 2219, 2219, 0,
2715
2716   0, 2219, 2219, 2220, 2220, 2220, 0, 0, 0, 2220,
2717   2221, 2221, 2221, 2221, 0, 0, 2221, 2221, 2222, 2222,
2718   2222, 2222, 0, 0, 2222, 2222, 2223, 2223, 2223, 2223,
2719   0, 2223, 0, 2223, 2224, 2224, 2224, 2224, 0, 0,
2720   2224, 2224, 2225, 2225, 2225, 2225, 0, 0, 2225, 2225,
2721   2226, 2226, 2226, 0, 0, 0, 2226, 2227, 2227, 2227,
2722   2227, 0, 0, 2227, 2227, 2228, 2228, 2228, 2228, 0,
2723   2228, 0, 2228, 2229, 2229, 2229, 2229, 0, 0, 2229,
2724   2229, 2230, 2230, 2230, 2230, 0, 2230, 0, 2230, 2231,
2725   2231, 2231, 2231, 0, 0, 2231, 2231, 2232, 2232, 2232,
2726
2727   2232, 0, 0, 2232, 2232, 2233, 2233, 2233, 0, 0,
2728   0, 2233, 2234, 2234, 2234, 2234, 0, 0, 2234, 2234,
2729   2235, 2235, 2235, 2235, 0, 0, 2235, 2235, 2236, 2236,
2730   2236, 2236, 2236, 2236, 2236, 2236, 2236, 2237, 2237, 2237,
2731   2237, 2237, 2237, 2237, 2237, 2237, 2238, 2238, 2238, 2238,
2732   0, 2238, 0, 2238, 2239, 2239, 2239, 2239, 0, 0,
2733   2239, 2239, 2240, 2240, 2240, 2240, 0, 0, 2240, 2240,
2734   2241, 2241, 2241, 0, 0, 0, 2241, 2242, 2242, 2242,
2735   2242, 0, 0, 2242, 2242, 2243, 2243, 2243, 0, 0,
2736   0, 2243, 2244, 2244, 2244, 2244, 0, 0, 2244, 2244,
2737
2738   2245, 2245, 2245, 2245, 0, 2245, 0, 2245, 2246, 2246,
2739   2246, 2246, 0, 0, 2246, 2246, 2247, 2247, 2247, 2247,
2740   0, 2247, 0, 2247, 2248, 2248, 2248, 2248, 0, 0,
2741   2248, 2248, 2249, 2249, 2249, 0, 0, 0, 2249, 2250,
2742   2250, 2250, 2250, 2250, 2250, 2250, 2250, 2250, 2251, 2251,
2743   2251, 2251, 2251, 2251, 2251, 2251, 2251, 2252, 2252, 2252,
2744   2252, 2252, 2252, 2252, 2252, 2252, 2253, 2253, 2253, 2253,
2745   2253, 2253, 2253, 2253, 2253, 2254, 2254, 2254, 2254, 2254,
2746   2254, 2254, 2254, 2254, 2255, 2255, 2255, 2255, 2255, 2255,
2747   2255, 2255, 2255, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2748
2749   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2750   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2751   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2752   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2753   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2754   2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022,
2755   2022, 2022, 2022
2756 };
2757
2758 /* Table of booleans, true if rule could match eol. */
2759 static yyconst flex_int32_t yy_rule_can_match_eol[352] = { 0,
2760   0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
2761   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1,
2762   1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
2763   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1,
2764   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
2765   1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1,
2766   1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2767   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
2768   0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1,
2769   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
2770   0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
2771   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
2772   0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
2773   0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2774   1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1,
2775   1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1,
2776   1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
2777   1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,
2778 };
2779
2780 static yy_state_type yy_last_accepting_state;
2781 static char *yy_last_accepting_cpos;
2782
2783 extern int surf_parse__flex_debug;
2784 int surf_parse__flex_debug = 0;
2785
2786 /* The intent behind this definition is that it'll catch
2787  * any uses of REJECT which flex missed.
2788  */
2789 #define REJECT reject_used_but_not_detected
2790 #define yymore() yymore_used_but_not_detected
2791 #define YY_MORE_ADJ 0
2792 #define YY_RESTORE_YY_MORE_OFFSET
2793 char *surf_parse_text;
2794 /* Validating XML processor for surf/simgrid.dtd.
2795  * Generated 2008/02/03 11:50:45.
2796  *
2797  * This program was generated with the FleXML XML processor generator.
2798  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
2799  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
2800  * (Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp).
2801  * 
2802  * There are two, intertwined parts to this program, part A and part B.
2803  *
2804  * Part A
2805  * ------
2806  * 
2807  * Some parts, here collectively called "Part A", are found in the 
2808  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
2809  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2810  *
2811  * You can redistribute, use, perform, display and/or modify "Part A"
2812  * provided the following two conditions hold:
2813  *
2814  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
2815  *    FleXML; without even the implied warranty of MERCHANTABILITY or
2816  *    FITNESS FOR A PARTICULAR PURPOSE.
2817  *
2818  * 2. The program distribution conditions do not in any way affect the
2819  *    distribution conditions of the FleXML system used to generate this
2820  *    file or any version of FleXML derived from that system.
2821  *
2822  * Notice that these are explicit rights granted to you for files
2823  * generated by the FleXML system.  For your rights in connection with
2824  * the FleXML system itself please consult the GNU General Public License.
2825  * 
2826  * Part B
2827  * ------
2828  * 
2829  * The other parts, here collectively called "Part B", and which came 
2830  * from the DTD used by FleXML to generate this program, can be 
2831  * distributed (or not, as the case may be) under the terms of whoever
2832  * wrote them, provided these terms respect and obey the two conditions 
2833  * above under the heading "Part A".
2834  *
2835  * The author of and contributors to FleXML specifically disclaim
2836  * any copyright interest in "Part B", unless "Part B" was written 
2837  * by the author of or contributors to FleXML.
2838  * 
2839  */
2840
2841 /* Version strings. */
2842 const char rcs_surfxml_flexml_skeleton[] =
2843   "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
2844 const char rcs_surfxml_flexml[] =
2845   "$" "Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp $";
2846
2847 /* ANSI headers. */
2848 #include <stdlib.h>             /* for realloc() -- needed here when using flex 2.5.4 */
2849 #include <stdio.h>
2850 #include <string.h>
2851 #include <assert.h>
2852 #include <stdarg.h>
2853 #include <ctype.h>
2854
2855 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2856 # ifndef __STRICT_ANSI__
2857 #  include <io.h>
2858 #  include <process.h>
2859 # endif
2860 #else
2861 # include <unistd.h>
2862 #endif
2863
2864 #ifndef FLEXML_INDEXSTACKSIZE
2865 #define FLEXML_INDEXSTACKSIZE 1000
2866 #endif
2867
2868 /* Generated definitions. */
2869 #define FLEXML_yylineno
2870 #ifndef FLEXML_BUFFERSTACKSIZE
2871 #define FLEXML_BUFFERSTACKSIZE 1000000
2872 #endif
2873 #define FLEXML_NEED_BUFFERLIT
2874
2875 /* XML processor api. */
2876 /* FleXML-provided data. */
2877 int surfxml_pcdata_ix;
2878 extern char *surfxml_bufferstack;
2879 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2880 AT_surfxml_random_generator AX_surfxml_random_generator;
2881 #define A_surfxml_random_generator AX_surfxml_random_generator
2882 AT_surfxml_prop_id AX_surfxml_prop_id;
2883 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2884 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
2885 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
2886 AT_surfxml_host_id AX_surfxml_host_id;
2887 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2888 AT_surfxml_set_id AX_surfxml_set_id;
2889 #define A_surfxml_set_id (surfxml_bufferstack + AX_surfxml_set_id)
2890 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2891 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2892 AT_surfxml_host_state AX_surfxml_host_state;
2893 #define A_surfxml_host_state AX_surfxml_host_state
2894 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
2895 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
2896 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
2897 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
2898 AT_surfxml_set_suffix AX_surfxml_set_suffix;
2899 #define A_surfxml_set_suffix (surfxml_bufferstack + AX_surfxml_set_suffix)
2900 AT_surfxml_route_impact_on_dst AX_surfxml_route_impact_on_dst;
2901 #define A_surfxml_route_impact_on_dst (surfxml_bufferstack + AX_surfxml_route_impact_on_dst)
2902 AT_surfxml_host_power AX_surfxml_host_power;
2903 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2904 AT_surfxml_router_id AX_surfxml_router_id;
2905 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2906 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2907 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2908 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
2909 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
2910 AT_surfxml_platform_xmlns_c_route AX_surfxml_platform_xmlns_c_route;
2911 #define A_surfxml_platform_xmlns_c_route (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_route)
2912 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
2913 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
2914 AT_surfxml_trace_file AX_surfxml_trace_file;
2915 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
2916 AT_surfxml_route_action AX_surfxml_route_action;
2917 #define A_surfxml_route_action AX_surfxml_route_action
2918 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2919 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2920 AT_surfxml_random_min AX_surfxml_random_min;
2921 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
2922 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2923 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2924 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
2925 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
2926 AT_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element;
2927 #define A_surfxml_trace_c_connect_element (surfxml_bufferstack + AX_surfxml_trace_c_connect_element)
2928 AT_surfxml_argument_value AX_surfxml_argument_value;
2929 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2930 AT_surfxml_link_state AX_surfxml_link_state;
2931 #define A_surfxml_link_state AX_surfxml_link_state
2932 AT_surfxml_route_impact_on_src AX_surfxml_route_impact_on_src;
2933 #define A_surfxml_route_impact_on_src (surfxml_bufferstack + AX_surfxml_route_impact_on_src)
2934 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2935 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2936 AT_surfxml_cluster_id AX_surfxml_cluster_id;
2937 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
2938 AT_surfxml_random_mean AX_surfxml_random_mean;
2939 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
2940 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
2941 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
2942 AT_surfxml_link_latency AX_surfxml_link_latency;
2943 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2944 AT_surfxml_platform_xmlns_c_link AX_surfxml_platform_xmlns_c_link;
2945 #define A_surfxml_platform_xmlns_c_link (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_link)
2946 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2947 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2948 AT_surfxml_random_id AX_surfxml_random_id;
2949 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
2950 AT_surfxml_set_radical AX_surfxml_set_radical;
2951 #define A_surfxml_set_radical (surfxml_bufferstack + AX_surfxml_set_radical)
2952 AT_surfxml_random_max AX_surfxml_random_max;
2953 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
2954 AT_surfxml_link_id AX_surfxml_link_id;
2955 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2956 AT_surfxml_process_host AX_surfxml_process_host;
2957 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2958 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2959 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2960 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
2961 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
2962 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
2963 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
2964 AT_surfxml_foreach_set_id AX_surfxml_foreach_set_id;
2965 #define A_surfxml_foreach_set_id (surfxml_bufferstack + AX_surfxml_foreach_set_id)
2966 AT_surfxml_route_impact_on_dst_with_other_send
2967   AX_surfxml_route_impact_on_dst_with_other_send;
2968 #define A_surfxml_route_impact_on_dst_with_other_send (surfxml_bufferstack + AX_surfxml_route_impact_on_dst_with_other_send)
2969 AT_surfxml_prop_value AX_surfxml_prop_value;
2970 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2971 AT_surfxml_route_impact_on_src_with_other_recv
2972   AX_surfxml_route_impact_on_src_with_other_recv;
2973 #define A_surfxml_route_impact_on_src_with_other_recv (surfxml_bufferstack + AX_surfxml_route_impact_on_src_with_other_recv)
2974 AT_surfxml_link_state_file AX_surfxml_link_state_file;
2975 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
2976 AT_surfxml_set_prefix AX_surfxml_set_prefix;
2977 #define A_surfxml_set_prefix (surfxml_bufferstack + AX_surfxml_set_prefix)
2978 AT_surfxml_cluster_power AX_surfxml_cluster_power;
2979 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
2980 AT_surfxml_process_function AX_surfxml_process_function;
2981 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
2982 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
2983 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
2984 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
2985 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
2986 AT_surfxml_host_availability AX_surfxml_host_availability;
2987 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
2988 AT_surfxml_route_src AX_surfxml_route_src;
2989 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
2990 AT_surfxml_route_c_multi_src AX_surfxml_route_c_multi_src;
2991 #define A_surfxml_route_c_multi_src (surfxml_bufferstack + AX_surfxml_route_c_multi_src)
2992 AT_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action;
2993 #define A_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action
2994 AT_surfxml_trace_c_connect_trace AX_surfxml_trace_c_connect_trace;
2995 #define A_surfxml_trace_c_connect_trace (surfxml_bufferstack + AX_surfxml_trace_c_connect_trace)
2996 AT_surfxml_trace_id AX_surfxml_trace_id;
2997 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
2998 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
2999 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3000 AT_surfxml_include_file AX_surfxml_include_file;
3001 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
3002 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3003 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3004 AT_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind;
3005 #define A_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind
3006 AT_surfxml_route_c_multi_dst AX_surfxml_route_c_multi_dst;
3007 #define A_surfxml_route_c_multi_dst (surfxml_bufferstack + AX_surfxml_route_c_multi_dst)
3008 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3009 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3010 AT_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric;
3011 #define A_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric
3012 AT_surfxml_route_dst AX_surfxml_route_dst;
3013 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3014 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3015 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3016 AT_surfxml_platform_version AX_surfxml_platform_version;
3017 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3018
3019 /* XML state. */
3020 #ifdef FLEX_DEBUG
3021 # define ENTER(state)   debug_enter(state,#state)
3022 # define LEAVE          debug_leave()
3023 # define SET(state)     debug_set(state,#state)
3024 static void debug_enter(int, const char *);
3025 static void debug_leave(void);
3026 static void debug_set(int, const char *);
3027 #else
3028 # define ENTER(state)   (yy_push_state(state))
3029 # define LEAVE          (yy_pop_state())
3030 # define SET(state)     BEGIN(state)
3031 #endif
3032
3033 /* Generic actions. */
3034 #define SKIP                    /*skip */
3035 #define SUCCEED        CLEANUP; return 0
3036
3037 #define FAIL    return fail
3038 static int fail(const char *, ...);
3039
3040 enum { flexml_max_err_msg_size = 512 };
3041 static char flexml_err_msg[flexml_max_err_msg_size];
3042 const char *surfxml_parse_err_msg()
3043 {
3044   return flexml_err_msg;
3045 }
3046
3047 static void reset_surfxml_parse_err_msg()
3048 {
3049   flexml_err_msg[0] = '\0';
3050 }
3051
3052 /* Cleanup */
3053 static void cleanup(void);
3054 #define CLEANUP  cleanup()
3055
3056 /* Text buffer stack handling. */
3057 char *surfxml_bufferstack = NULL;
3058 static int blimit = FLEXML_BUFFERSTACKSIZE;
3059 static int bnext = 1;
3060
3061 static int *indexstack = NULL;
3062 static int ilimit = FLEXML_INDEXSTACKSIZE;
3063 static int inext = 1;
3064
3065 #define BUFFERSET(P)  (P = bnext)
3066 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3067 #define BUFFERDONE    (BUFFERPUTC('\0'))
3068
3069 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3070
3071 /* after this is called, there are at least 2 slots left in the stack */
3072 static int ck_blimit()
3073 {
3074   if (bnext >= blimit) {
3075     blimit += FLEXML_BUFFERSTACKSIZE + 2;
3076     {
3077       char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3078       assert(temp);
3079       surfxml_bufferstack = temp;
3080     }
3081   }
3082   return 0;
3083 }
3084
3085 /* after this is called, there are at least 2 slots left in the stack */
3086 static int ck_ilimit()
3087 {
3088   if (inext >= ilimit) {
3089     ilimit += FLEXML_INDEXSTACKSIZE + 2;
3090     {
3091       int *temp = (int *) realloc(indexstack, ilimit);
3092       assert(temp);
3093       indexstack = temp;
3094     }
3095   }
3096   return 0;
3097 }
3098
3099 #ifdef FLEXML_NEED_BUFFERLIT
3100 static void surfxml_bufferliteral(char c, int *pp, const char *text)
3101 {
3102   const char *s = (c ? strchr(text, c) : text - 1), *e = strrchr(text, c);
3103   assert(s <= e);
3104   BUFFERSET(*pp);
3105   while (++s < e) {
3106     if (isspace(*s) && c) {
3107       BUFFERPUTC(' ');
3108       while (isspace(*s))
3109         ++s;
3110     } else
3111       BUFFERPUTC(*s);
3112   }
3113   BUFFERDONE;
3114 }
3115 #endif
3116
3117 static void pushbuffer(int p)
3118 {
3119   ck_ilimit();
3120   indexstack[inext++] = p;
3121   indexstack[inext++] = bnext;
3122 }
3123
3124 static int popbuffer(void)
3125 {
3126   assert(inext >= 2);
3127   bnext = indexstack[--inext];
3128   return indexstack[--inext];
3129 }
3130
3131 /* General internal entities are `unput' back onto the input stream... */
3132 #define ENTITYTEXT(T) \
3133   { char *s = (T), *e = s+strlen(s);\
3134     while (--e >= s) { unput(*e); }}
3135
3136 /* Flex standard options. */
3137 #define YY_NO_INPUT 1
3138 /* Flex user-requested options. */
3139 /* XML character classes (currently restricted to ASCII). */
3140 /* "Common syntactic structures." */
3141 /* "Names and Tokens." */
3142 /* Miscellaneous. */
3143 /* Parser states (flex `exclusive start conditions'):
3144  *
3145  * PROLOG       the XML prolog of the document before <?xml...>
3146  * DOCTYPE      the XML prolog of the document after <?xml...>
3147  * EPILOG       after the root element
3148  * INCOMMENT    inside an XML comment <!--....-->
3149  * INPI         inside an XML PI <?...?>
3150  * VALUE1       inside a '...'-delimited literal
3151  * VALUE2       inside a "..."-delimited literal
3152  * CDATA        inside a <![CDATA[...] ]> section.
3153  * ROOT_<tag>   expect root element <tag>
3154  * AL_<tag>     inside the attribute list for <tag>
3155  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
3156  * IMPOSSIBLE   dummy to permit disabling rules; must be last
3157  */
3158
3159 /* State names. */
3160 const char **surfxml_statenames = NULL;
3161
3162 #define INITIAL 0
3163 #define PROLOG 1
3164 #define DOCTYPE 2
3165 #define EPILOG 3
3166 #define INCOMMENT 4
3167 #define INPI 5
3168 #define VALUE1 6
3169 #define VALUE2 7
3170 #define CDATA 8
3171 #define ROOT_surfxml_platform 9
3172 #define AL_surfxml_platform 10
3173 #define S_surfxml_platform 11
3174 #define S_surfxml_platform_1 12
3175 #define S_surfxml_platform_2 13
3176 #define S_surfxml_platform_3 14
3177 #define S_surfxml_platform_4 15
3178 #define S_surfxml_platform_5 16
3179 #define E_surfxml_platform 17
3180 #define AL_surfxml_include 18
3181 #define E_surfxml_include 19
3182 #define AL_surfxml_trace 20
3183 #define IN_trace 21
3184 #define AL_surfxml_random 22
3185 #define S_surfxml_random 23
3186 #define S_surfxml_random_1 24
3187 #define S_surfxml_random_2 25
3188 #define E_surfxml_random 26
3189 #define AL_surfxml_trace_c_connect 27
3190 #define E_surfxml_trace_c_connect 28
3191 #define AL_surfxml_set 29
3192 #define E_surfxml_set 30
3193 #define AL_surfxml_foreach 31
3194 #define S_surfxml_foreach 32
3195 #define S_surfxml_foreach_1 33
3196 #define E_surfxml_foreach 34
3197 #define AL_surfxml_host 35
3198 #define S_surfxml_host 36
3199 #define S_surfxml_host_1 37
3200 #define S_surfxml_host_2 38
3201 #define E_surfxml_host 39
3202 #define AL_surfxml_prop 40
3203 #define E_surfxml_prop 41
3204 #define AL_surfxml_cluster 42
3205 #define E_surfxml_cluster 43
3206 #define AL_surfxml_router 44
3207 #define E_surfxml_router 45
3208 #define AL_surfxml_link 46
3209 #define S_surfxml_link 47
3210 #define S_surfxml_link_1 48
3211 #define S_surfxml_link_2 49
3212 #define E_surfxml_link 50
3213 #define AL_surfxml_route_c_multi 51
3214 #define S_surfxml_route_c_multi 52
3215 #define S_surfxml_route_c_multi_1 53
3216 #define S_surfxml_route_c_multi_2 54
3217 #define E_surfxml_route_c_multi 55
3218 #define AL_surfxml_route 56
3219 #define S_surfxml_route 57
3220 #define S_surfxml_route_1 58
3221 #define S_surfxml_route_2 59
3222 #define E_surfxml_route 60
3223 #define AL_surfxml_link_c_ctn 61
3224 #define E_surfxml_link_c_ctn 62
3225 #define AL_surfxml_process 63
3226 #define S_surfxml_process 64
3227 #define S_surfxml_process_1 65
3228 #define S_surfxml_process_2 66
3229 #define E_surfxml_process 67
3230 #define AL_surfxml_argument 68
3231 #define E_surfxml_argument 69
3232 #define IMPOSSIBLE 70
3233
3234 #ifndef YY_NO_UNISTD_H
3235 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3236  * down here because we want the user's section 1 to have been scanned first.
3237  * The user has a chance to override it with an option.
3238  */
3239 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3240 #  ifndef __STRICT_ANSI__
3241 #    include <io.h>
3242 #    include <process.h>
3243 #  endif
3244 #else
3245 #  include <unistd.h>
3246 #endif
3247 #endif
3248
3249 #ifndef YY_EXTRA_TYPE
3250 #define YY_EXTRA_TYPE void *
3251 #endif
3252
3253 static int yy_init_globals(void);
3254
3255 /* Accessor methods to globals.
3256    These are made visible to non-reentrant scanners for convenience. */
3257
3258 int surf_parse_lex_destroy(void);
3259
3260 int surf_parse_get_debug(void);
3261
3262 void surf_parse_set_debug(int debug_flag);
3263
3264 YY_EXTRA_TYPE surf_parse_get_extra(void);
3265
3266 void surf_parse_set_extra(YY_EXTRA_TYPE user_defined);
3267
3268 FILE *surf_parse_get_in(void);
3269
3270 void surf_parse_set_in(FILE * in_str);
3271
3272 FILE *surf_parse_get_out(void);
3273
3274 void surf_parse_set_out(FILE * out_str);
3275
3276 int surf_parse_get_leng(void);
3277
3278 char *surf_parse_get_text(void);
3279
3280 int surf_parse_get_lineno(void);
3281
3282 void surf_parse_set_lineno(int line_number);
3283
3284 /* Macros after this point can all be overridden by user definitions in
3285  * section 1.
3286  */
3287
3288 #ifndef YY_SKIP_YYWRAP
3289 #ifdef __cplusplus
3290 extern "C" int surf_parse_wrap(void);
3291 #else
3292 extern int surf_parse_wrap(void);
3293 #endif
3294 #endif
3295
3296 #ifndef yytext_ptr
3297 static void yy_flex_strncpy(char *, yyconst char *, int);
3298 #endif
3299
3300 #ifdef YY_NEED_STRLEN
3301 static int yy_flex_strlen(yyconst char *);
3302 #endif
3303
3304 #ifndef YY_NO_INPUT
3305
3306 #ifdef __cplusplus
3307 static int yyinput(void);
3308 #else
3309 static int input(void);
3310 #endif
3311
3312 #endif
3313
3314 static int yy_start_stack_ptr = 0;
3315 static int yy_start_stack_depth = 0;
3316 static int *yy_start_stack = NULL;
3317
3318 static void yy_push_state(int new_state);
3319
3320 static void yy_pop_state(void);
3321
3322 /* Amount of stuff to slurp up with each read. */
3323 #ifndef YY_READ_BUF_SIZE
3324 #define YY_READ_BUF_SIZE 8192
3325 #endif
3326
3327 /* Copy whatever the last rule matched to the standard output. */
3328 #ifndef ECHO
3329 /* This used to be an fputs(), but since the string might contain NUL's,
3330  * we now use fwrite().
3331  */
3332 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
3333 #endif
3334
3335 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3336  * is returned in "result".
3337  */
3338 #ifndef YY_INPUT
3339 #define YY_INPUT(buf,result,max_size) \
3340         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3341                 { \
3342                 int c = '*'; \
3343                 size_t n; \
3344                 for ( n = 0; n < max_size && \
3345                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
3346                         buf[n] = (char) c; \
3347                 if ( c == '\n' ) \
3348                         buf[n++] = (char) c; \
3349                 if ( c == EOF && ferror( surf_parse_in ) ) \
3350                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3351                 result = n; \
3352                 } \
3353         else \
3354                 { \
3355                 errno=0; \
3356                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
3357                         { \
3358                         if( errno != EINTR) \
3359                                 { \
3360                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3361                                 break; \
3362                                 } \
3363                         errno=0; \
3364                         clearerr(surf_parse_in); \
3365                         } \
3366                 }\
3367 \
3368
3369 #endif
3370
3371 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3372  * we don't want an extra ';' after the "return" because that will cause
3373  * some compilers to complain about unreachable statements.
3374  */
3375 #ifndef yyterminate
3376 #define yyterminate() return YY_NULL
3377 #endif
3378
3379 /* Number of entries by which start-condition stack grows. */
3380 #ifndef YY_START_STACK_INCR
3381 #define YY_START_STACK_INCR 25
3382 #endif
3383
3384 /* Report a fatal error. */
3385 #ifndef YY_FATAL_ERROR
3386 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3387 #endif
3388
3389 /* end tables serialization structures and prototypes */
3390
3391 /* Default declaration of generated scanner - a define so the user can
3392  * easily add parameters.
3393  */
3394 #ifndef YY_DECL
3395 #define YY_DECL_IS_OURS 1
3396
3397 extern int surf_parse_lex(void);
3398
3399 #define YY_DECL int surf_parse_lex (void)
3400 #endif /* !YY_DECL */
3401
3402 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
3403  * have been set up.
3404  */
3405 #ifndef YY_USER_ACTION
3406 #define YY_USER_ACTION
3407 #endif
3408
3409 /* Code executed at the end of each rule. */
3410 #ifndef YY_BREAK
3411 #define YY_BREAK break;
3412 #endif
3413
3414 #define YY_RULE_SETUP \
3415         YY_USER_ACTION
3416
3417 /** The main scanner function which does all the work.
3418  */
3419 YY_DECL {
3420   register yy_state_type yy_current_state;
3421   register char *yy_cp, *yy_bp;
3422   register int yy_act;
3423
3424   /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3425   SET(PROLOG);
3426   reset_surfxml_parse_err_msg();
3427   surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3428   assert(surfxml_bufferstack);
3429 #ifdef FLEX_DEBUG
3430   {
3431     int i;
3432     for (i = 0; i < blimit; i++) {
3433       surfxml_bufferstack[i] = '\377';
3434     }
3435   }
3436 #endif
3437   surfxml_bufferstack[0] = '\0';
3438   indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3439   assert(indexstack);
3440   indexstack[0] = 0;
3441
3442   /* FleXML_init */
3443   bnext = inext = 1;
3444   surfxml_bufferliteral('\0', &bnext, "0.0");
3445   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3446   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3447   surfxml_bufferliteral('\0', &bnext, "1.0");
3448   surfxml_bufferliteral('\0', &bnext, "1.0");
3449   surfxml_bufferliteral('\0', &bnext, "1.0");
3450   surfxml_bufferliteral('\0', &bnext, "1.0");
3451   surfxml_bufferliteral('\0', &bnext, "-1.0");
3452   surfxml_bufferliteral('\0', &bnext, "0.0");
3453   surfxml_bufferliteral('\0', &bnext, "0.0");
3454   surfxml_bufferliteral('\0', &bnext, "0.0");
3455   surfxml_bufferliteral('\0', &bnext, "0.0");
3456   surfxml_bufferliteral('\0', &bnext, "0.0");
3457   surfxml_bufferliteral('\0', &bnext, "-1.0");
3458   surfxml_bufferliteral('\0', &bnext, "-1.0");
3459   if (!surfxml_statenames) {
3460     surfxml_statenames = (const char **) calloc(IMPOSSIBLE, sizeof(char *));
3461     surfxml_statenames[PROLOG] = NULL;
3462     surfxml_statenames[DOCTYPE] = NULL;
3463     surfxml_statenames[EPILOG] = NULL;
3464     surfxml_statenames[INCOMMENT] = NULL;
3465     surfxml_statenames[INPI] = NULL;
3466     surfxml_statenames[VALUE1] = NULL;
3467     surfxml_statenames[VALUE2] = NULL;
3468     surfxml_statenames[CDATA] = NULL;
3469     surfxml_statenames[ROOT_surfxml_platform] = NULL;
3470     surfxml_statenames[AL_surfxml_platform] = NULL;
3471     surfxml_statenames[S_surfxml_platform] = "platform";
3472     surfxml_statenames[S_surfxml_platform_1] = "platform";
3473     surfxml_statenames[S_surfxml_platform_2] = "platform";
3474     surfxml_statenames[S_surfxml_platform_3] = "platform";
3475     surfxml_statenames[S_surfxml_platform_4] = "platform";
3476     surfxml_statenames[S_surfxml_platform_5] = "platform";
3477     surfxml_statenames[E_surfxml_platform] = "platform";
3478     surfxml_statenames[AL_surfxml_include] = NULL;
3479     surfxml_statenames[E_surfxml_include] = "include";
3480     surfxml_statenames[AL_surfxml_trace] = NULL;
3481     surfxml_statenames[IN_trace] = "trace";
3482     surfxml_statenames[AL_surfxml_random] = NULL;
3483     surfxml_statenames[S_surfxml_random] = "random";
3484     surfxml_statenames[S_surfxml_random_1] = "random";
3485     surfxml_statenames[S_surfxml_random_2] = "random";
3486     surfxml_statenames[E_surfxml_random] = "random";
3487     surfxml_statenames[AL_surfxml_trace_c_connect] = NULL;
3488     surfxml_statenames[E_surfxml_trace_c_connect] = "trace:connect";
3489     surfxml_statenames[AL_surfxml_set] = NULL;
3490     surfxml_statenames[E_surfxml_set] = "set";
3491     surfxml_statenames[AL_surfxml_foreach] = NULL;
3492     surfxml_statenames[S_surfxml_foreach] = "foreach";
3493     surfxml_statenames[S_surfxml_foreach_1] = "foreach";
3494     surfxml_statenames[E_surfxml_foreach] = "foreach";
3495     surfxml_statenames[AL_surfxml_host] = NULL;
3496     surfxml_statenames[S_surfxml_host] = "host";
3497     surfxml_statenames[S_surfxml_host_1] = "host";
3498     surfxml_statenames[S_surfxml_host_2] = "host";
3499     surfxml_statenames[E_surfxml_host] = "host";
3500     surfxml_statenames[AL_surfxml_prop] = NULL;
3501     surfxml_statenames[E_surfxml_prop] = "prop";
3502     surfxml_statenames[AL_surfxml_cluster] = NULL;
3503     surfxml_statenames[E_surfxml_cluster] = "cluster";
3504     surfxml_statenames[AL_surfxml_router] = NULL;
3505     surfxml_statenames[E_surfxml_router] = "router";
3506     surfxml_statenames[AL_surfxml_link] = NULL;
3507     surfxml_statenames[S_surfxml_link] = "link";
3508     surfxml_statenames[S_surfxml_link_1] = "link";
3509     surfxml_statenames[S_surfxml_link_2] = "link";
3510     surfxml_statenames[E_surfxml_link] = "link";
3511     surfxml_statenames[AL_surfxml_route_c_multi] = NULL;
3512     surfxml_statenames[S_surfxml_route_c_multi] = "route:multi";
3513     surfxml_statenames[S_surfxml_route_c_multi_1] = "route:multi";
3514     surfxml_statenames[S_surfxml_route_c_multi_2] = "route:multi";
3515     surfxml_statenames[E_surfxml_route_c_multi] = "route:multi";
3516     surfxml_statenames[AL_surfxml_route] = NULL;
3517     surfxml_statenames[S_surfxml_route] = "route";
3518     surfxml_statenames[S_surfxml_route_1] = "route";
3519     surfxml_statenames[S_surfxml_route_2] = "route";
3520     surfxml_statenames[E_surfxml_route] = "route";
3521     surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
3522     surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
3523     surfxml_statenames[AL_surfxml_process] = NULL;
3524     surfxml_statenames[S_surfxml_process] = "process";
3525     surfxml_statenames[S_surfxml_process_1] = "process";
3526     surfxml_statenames[S_surfxml_process_2] = "process";
3527     surfxml_statenames[E_surfxml_process] = "process";
3528     surfxml_statenames[AL_surfxml_argument] = NULL;
3529     surfxml_statenames[E_surfxml_argument] = "argument";
3530   }
3531
3532   /* COMMENTS and PIs: handled uniformly for efficiency. */
3533
3534   if (!(yy_init)) {
3535     (yy_init) = 1;
3536
3537 #ifdef YY_USER_INIT
3538     YY_USER_INIT;
3539 #endif
3540
3541     if (!(yy_start))
3542       (yy_start) = 1;           /* first start state */
3543
3544     if (!surf_parse_in)
3545       surf_parse_in = stdin;
3546
3547     if (!surf_parse_out)
3548       surf_parse_out = stdout;
3549
3550     if (!YY_CURRENT_BUFFER) {
3551       surf_parse_ensure_buffer_stack();
3552       YY_CURRENT_BUFFER_LVALUE =
3553         surf_parse__create_buffer(surf_parse_in, YY_BUF_SIZE);
3554     }
3555
3556     surf_parse__load_buffer_state();
3557   }
3558
3559   while (1) {                   /* loops until end-of-file is reached */
3560     yy_cp = (yy_c_buf_p);
3561
3562     /* Support of surf_parse_text. */
3563     *yy_cp = (yy_hold_char);
3564
3565     /* yy_bp points to the position in yy_ch_buf of the start of
3566      * the current run.
3567      */
3568     yy_bp = yy_cp;
3569
3570     yy_current_state = (yy_start);
3571   yy_match:
3572     do {
3573       register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3574       if (yy_accept[yy_current_state]) {
3575         (yy_last_accepting_state) = yy_current_state;
3576         (yy_last_accepting_cpos) = yy_cp;
3577       }
3578       while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) {
3579         yy_current_state = (int) yy_def[yy_current_state];
3580         if (yy_current_state >= 2023)
3581           yy_c = yy_meta[(unsigned int) yy_c];
3582       }
3583       yy_current_state =
3584         yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3585       ++yy_cp;
3586     }
3587     while (yy_base[yy_current_state] != 7094);
3588
3589   yy_find_action:
3590     yy_act = yy_accept[yy_current_state];
3591     if (yy_act == 0) {          /* have to back up */
3592       yy_cp = (yy_last_accepting_cpos);
3593       yy_current_state = (yy_last_accepting_state);
3594       yy_act = yy_accept[yy_current_state];
3595     }
3596
3597     YY_DO_BEFORE_ACTION;
3598
3599     if (yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act]) {
3600       int yyl;
3601       for (yyl = 0; yyl < surf_parse_leng; ++yyl)
3602         if (surf_parse_text[yyl] == '\n')
3603
3604           surf_parse_lineno++;
3605       ;
3606     }
3607
3608   do_action:                   /* This label is used only to access EOF actions. */
3609
3610     switch (yy_act) {           /* beginning of action switch */
3611     case 0:                    /* must back up */
3612       /* undo the effects of YY_DO_BEFORE_ACTION */
3613       *yy_cp = (yy_hold_char);
3614       yy_cp = (yy_last_accepting_cpos);
3615       yy_current_state = (yy_last_accepting_state);
3616       goto yy_find_action;
3617
3618     case 1:
3619       YY_RULE_SETUP ENTER(INCOMMENT);
3620       YY_BREAK case 2:YY_RULE_SETUP ENTER(INPI);
3621       YY_BREAK case 3:YY_RULE_SETUP LEAVE;
3622       YY_BREAK case 4:case 5:case 6:
3623 /* rule 6 can match eol */
3624         YY_RULE_SETUP SKIP;
3625       YY_BREAK case YY_STATE_EOF(INCOMMENT):FAIL("EOF in comment.");
3626       YY_BREAK case 7:YY_RULE_SETUP LEAVE;
3627       YY_BREAK case 8:case 9:
3628 /* rule 9 can match eol */
3629         YY_RULE_SETUP SKIP;
3630       YY_BREAK case
3631         YY_STATE_EOF(INPI):FAIL("EOF in PI (processing instruction).");
3632       YY_BREAK
3633 /* SPACES: skipped uniformly */
3634     case 10:
3635 /* rule 10 can match eol */
3636       YY_RULE_SETUP SKIP;
3637       YY_BREAK
3638 /* PROLOG: determine root element and process it. */
3639     case 11:
3640 /* rule 11 can match eol */
3641       YY_RULE_SETUP SET(DOCTYPE);
3642       YY_BREAK case 12:
3643 /* rule 12 can match eol */
3644         YY_RULE_SETUP FAIL("Bad declaration %s.", surf_parse_text);
3645       YY_BREAK case 13:
3646 /* rule 13 can match eol */
3647         YY_RULE_SETUP SET(ROOT_surfxml_platform);
3648       YY_BREAK case 14:
3649 /* rule 14 can match eol */
3650         YY_RULE_SETUP FAIL("Bad declaration %s.", surf_parse_text);
3651       YY_BREAK case 15:YY_RULE_SETUP
3652         FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
3653       YY_BREAK case YY_STATE_EOF(PROLOG):case
3654         YY_STATE_EOF(DOCTYPE):FAIL("EOF in prolog.");
3655       YY_BREAK
3656 /* RULES DERIVED FROM DTD. */
3657 /* <!-- Small DTD for SURF based tools. -->  */
3658     case 16:
3659 /* rule 16 can match eol */
3660       YY_RULE_SETUP FAIL("Starting tag <platform> is not allowed here.");
3661       YY_BREAK case 17:
3662 /* rule 17 can match eol */
3663         YY_RULE_SETUP {
3664         AX_surfxml_platform_version = 1;
3665         AX_surfxml_platform_xmlns_c_link = 5;
3666         AX_surfxml_platform_xmlns_c_route = 37;
3667         ENTER(AL_surfxml_platform);
3668         pushbuffer(0);
3669       } YY_BREAK case 18:
3670 /* rule 18 can match eol */
3671         YY_RULE_SETUP ENTER(VALUE1);
3672       BUFFERSET(AX_surfxml_platform_version);
3673       YY_BREAK case 19:
3674 /* rule 19 can match eol */
3675         YY_RULE_SETUP ENTER(VALUE2);
3676       BUFFERSET(AX_surfxml_platform_version);
3677       YY_BREAK case 20:
3678 /* rule 20 can match eol */
3679         YY_RULE_SETUP ENTER(VALUE1);
3680       BUFFERSET(AX_surfxml_platform_xmlns_c_link);
3681       YY_BREAK case 21:
3682 /* rule 21 can match eol */
3683         YY_RULE_SETUP ENTER(VALUE2);
3684       BUFFERSET(AX_surfxml_platform_xmlns_c_link);
3685       YY_BREAK case 22:
3686 /* rule 22 can match eol */
3687         YY_RULE_SETUP ENTER(VALUE1);
3688       BUFFERSET(AX_surfxml_platform_xmlns_c_route);
3689       YY_BREAK case 23:
3690 /* rule 23 can match eol */
3691         YY_RULE_SETUP ENTER(VALUE2);
3692       BUFFERSET(AX_surfxml_platform_xmlns_c_route);
3693       YY_BREAK case 24:YY_RULE_SETUP {
3694         LEAVE;
3695         STag_surfxml_platform();
3696         surfxml_pcdata_ix = 0;
3697         ENTER(S_surfxml_platform);
3698       } YY_BREAK case 25:YY_RULE_SETUP {
3699         LEAVE;
3700         STag_surfxml_platform();
3701         surfxml_pcdata_ix = 0;
3702         ETag_surfxml_platform();
3703         popbuffer();            /* attribute */
3704         switch (YY_START) {
3705         case ROOT_surfxml_platform:
3706           SET(EPILOG);
3707           break;
3708       }} YY_BREAK case 26:YY_RULE_SETUP
3709         FAIL
3710         ("Unexpected character `%c' in attribute list of platform element.",
3711          surf_parse_text[0]);
3712       YY_BREAK case 27:YY_RULE_SETUP
3713         FAIL("Bad attribute `%s' in `platform' element start tag.",
3714              surf_parse_text);
3715       YY_BREAK case
3716         YY_STATE_EOF(AL_surfxml_platform):FAIL
3717         ("EOF in attribute list of `platform' element.");
3718       YY_BREAK case 28:
3719 /* rule 28 can match eol */
3720         YY_RULE_SETUP {
3721         LEAVE;
3722         ETag_surfxml_platform();
3723         popbuffer();            /* attribute */
3724         switch (YY_START) {
3725         case ROOT_surfxml_platform:
3726           SET(EPILOG);
3727           break;
3728       }} YY_BREAK case 29:
3729 /* rule 29 can match eol */
3730        
3731         YY_RULE_SETUP
3732         FAIL("Unexpected end-tag `%s': `</platform>' expected.",
3733              surf_parse_text);
3734       YY_BREAK case 30:YY_RULE_SETUP
3735         FAIL("Unexpected character `%c': `</platform>' expected.",
3736              surf_parse_text[0]);
3737       YY_BREAK case YY_STATE_EOF(S_surfxml_platform_5):case
3738         YY_STATE_EOF(S_surfxml_platform_1):case
3739         YY_STATE_EOF(S_surfxml_platform_3):case
3740         YY_STATE_EOF(S_surfxml_platform):case
3741         YY_STATE_EOF(E_surfxml_platform):FAIL
3742         ("Premature EOF: `</platform>' expected.");
3743       YY_BREAK case 31:
3744 /* rule 31 can match eol */
3745         YY_RULE_SETUP FAIL("Starting tag <include> is not allowed here.");
3746       YY_BREAK case 32:
3747 /* rule 32 can match eol */
3748         YY_RULE_SETUP {
3749         AX_surfxml_include_file = 0;
3750         ENTER(AL_surfxml_include);
3751         pushbuffer(0);
3752       } YY_BREAK case 33:
3753 /* rule 33 can match eol */
3754         YY_RULE_SETUP ENTER(VALUE1);
3755       BUFFERSET(AX_surfxml_include_file);
3756       YY_BREAK case 34:
3757 /* rule 34 can match eol */
3758         YY_RULE_SETUP ENTER(VALUE2);
3759       BUFFERSET(AX_surfxml_include_file);
3760       YY_BREAK case 35:YY_RULE_SETUP {
3761         if (!AX_surfxml_include_file)
3762           FAIL("Required attribute `file' not set for `include' element.");
3763         LEAVE;
3764         STag_surfxml_include();
3765         surfxml_pcdata_ix = 0;
3766         ENTER(E_surfxml_include);
3767       } YY_BREAK case 36:YY_RULE_SETUP {
3768         if (!AX_surfxml_include_file)
3769           FAIL("Required attribute `file' not set for `include' element.");
3770         LEAVE;
3771         STag_surfxml_include();
3772         surfxml_pcdata_ix = 0;
3773         ETag_surfxml_include();
3774         popbuffer();            /* attribute */
3775         switch (YY_START) {
3776         case S_surfxml_platform_5:
3777         case S_surfxml_platform_1:
3778         case S_surfxml_platform_3:
3779         case S_surfxml_platform:
3780         case S_surfxml_platform_4:
3781           SET(S_surfxml_platform_5);
3782           break;
3783           case S_surfxml_platform_2:SET(S_surfxml_platform_3);
3784           break;
3785       }} YY_BREAK case 37:YY_RULE_SETUP
3786         FAIL
3787         ("Unexpected character `%c' in attribute list of include element.",
3788          surf_parse_text[0]);
3789       YY_BREAK case 38:YY_RULE_SETUP
3790         FAIL("Bad attribute `%s' in `include' element start tag.",
3791              surf_parse_text);
3792       YY_BREAK case
3793         YY_STATE_EOF(AL_surfxml_include):FAIL
3794         ("EOF in attribute list of `include' element.");
3795       YY_BREAK case 39:
3796 /* rule 39 can match eol */
3797         YY_RULE_SETUP {
3798         LEAVE;
3799         ETag_surfxml_include();
3800         popbuffer();            /* attribute */
3801         switch (YY_START) {
3802         case S_surfxml_platform_5:
3803         case S_surfxml_platform_1:
3804         case S_surfxml_platform_3:
3805         case S_surfxml_platform:
3806         case S_surfxml_platform_4:
3807           SET(S_surfxml_platform_5);
3808           break;
3809           case S_surfxml_platform_2:SET(S_surfxml_platform_3);
3810           break;
3811       }} YY_BREAK case 40:
3812 /* rule 40 can match eol */
3813        
3814         YY_RULE_SETUP
3815         FAIL("Unexpected end-tag `%s': `</include>' expected.",
3816              surf_parse_text);
3817       YY_BREAK case 41:YY_RULE_SETUP
3818         FAIL("Unexpected character `%c': `</include>' expected.",
3819              surf_parse_text[0]);
3820       YY_BREAK case
3821         YY_STATE_EOF(E_surfxml_include):FAIL
3822         ("Premature EOF: `</include>' expected.");
3823       YY_BREAK case 42:
3824 /* rule 42 can match eol */
3825         YY_RULE_SETUP FAIL("Starting tag <trace> is not allowed here.");
3826       YY_BREAK case 43:
3827 /* rule 43 can match eol */
3828         YY_RULE_SETUP {
3829         AX_surfxml_trace_id = 0;
3830         AX_surfxml_trace_file = 0;
3831         AX_surfxml_trace_periodicity = 0;
3832         ENTER(AL_surfxml_trace);
3833         pushbuffer(0);
3834       } YY_BREAK case 44:
3835 /* rule 44 can match eol */
3836         YY_RULE_SETUP ENTER(VALUE1);
3837       BUFFERSET(AX_surfxml_trace_id);
3838       YY_BREAK case 45:
3839 /* rule 45 can match eol */
3840         YY_RULE_SETUP ENTER(VALUE2);
3841       BUFFERSET(AX_surfxml_trace_id);
3842       YY_BREAK case 46:
3843 /* rule 46 can match eol */
3844         YY_RULE_SETUP ENTER(VALUE1);
3845       BUFFERSET(AX_surfxml_trace_file);
3846       YY_BREAK case 47:
3847 /* rule 47 can match eol */
3848         YY_RULE_SETUP ENTER(VALUE2);
3849       BUFFERSET(AX_surfxml_trace_file);
3850       YY_BREAK case 48:
3851 /* rule 48 can match eol */
3852         YY_RULE_SETUP ENTER(VALUE1);
3853       BUFFERSET(AX_surfxml_trace_periodicity);
3854       YY_BREAK case 49:
3855 /* rule 49 can match eol */
3856         YY_RULE_SETUP ENTER(VALUE2);
3857       BUFFERSET(AX_surfxml_trace_periodicity);
3858       YY_BREAK case 50:YY_RULE_SETUP {
3859         if (!AX_surfxml_trace_id)
3860           FAIL("Required attribute `id' not set for `trace' element.");
3861         if (!AX_surfxml_trace_periodicity)
3862           FAIL
3863             ("Required attribute `periodicity' not set for `trace' element.");
3864         LEAVE;
3865         STag_surfxml_trace();
3866         pushbuffer(surfxml_pcdata_ix);
3867         BUFFERSET(surfxml_pcdata_ix);;
3868         ENTER(IN_trace);
3869       } YY_BREAK case 51:YY_RULE_SETUP {
3870         if (!AX_surfxml_trace_id)
3871           FAIL("Required attribute `id' not set for `trace' element.");
3872         if (!AX_surfxml_trace_periodicity)
3873           FAIL
3874             ("Required attribute `periodicity' not set for `trace' element.");
3875         LEAVE;
3876         STag_surfxml_trace();
3877         surfxml_pcdata_ix = 0;
3878         ETag_surfxml_trace();
3879         popbuffer();            /* attribute */
3880         switch (YY_START) {
3881         case S_surfxml_platform_2:
3882         case S_surfxml_platform_3:
3883         case S_surfxml_platform:
3884           SET(S_surfxml_platform_3);
3885           break;
3886       }} YY_BREAK case 52:YY_RULE_SETUP
3887         FAIL("Unexpected character `%c' in attribute list of trace element.",
3888              surf_parse_text[0]);
3889       YY_BREAK case 53:YY_RULE_SETUP
3890         FAIL("Bad attribute `%s' in `trace' element start tag.",
3891              surf_parse_text);
3892       YY_BREAK case
3893         YY_STATE_EOF(AL_surfxml_trace):FAIL
3894         ("EOF in attribute list of `trace' element.");
3895       YY_BREAK case 54:
3896 /* rule 54 can match eol */
3897         YY_RULE_SETUP {
3898         LEAVE;
3899         BUFFERDONE;
3900         ETag_surfxml_trace();
3901         surfxml_pcdata_ix = popbuffer();
3902         popbuffer();            /* attribute */
3903         switch (YY_START) {
3904         case S_surfxml_platform_2:
3905         case S_surfxml_platform_3:
3906         case S_surfxml_platform:
3907           SET(S_surfxml_platform_3);
3908           break;
3909       }} YY_BREAK case 55:
3910 /* rule 55 can match eol */
3911        
3912         YY_RULE_SETUP
3913         FAIL("Unexpected end-tag `%s': `</trace>' expected.",
3914              surf_parse_text);
3915       YY_BREAK case
3916         YY_STATE_EOF(IN_trace):FAIL("Premature EOF: `</trace>' expected.");
3917       YY_BREAK case 56:
3918 /* rule 56 can match eol */
3919         YY_RULE_SETUP FAIL("Starting tag <random> is not allowed here.");
3920       YY_BREAK case 57:
3921 /* rule 57 can match eol */
3922         YY_RULE_SETUP {
3923         AX_surfxml_random_id = 0;
3924         AX_surfxml_random_min = 0;
3925         AX_surfxml_random_max = 0;
3926         AX_surfxml_random_mean = 0;
3927         AX_surfxml_random_std_deviation = 0;
3928         AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
3929         ENTER(AL_surfxml_random);
3930         pushbuffer(0);
3931       } YY_BREAK case 58:
3932 /* rule 58 can match eol */
3933         YY_RULE_SETUP ENTER(VALUE1);
3934       BUFFERSET(AX_surfxml_random_id);
3935       YY_BREAK case 59:
3936 /* rule 59 can match eol */
3937         YY_RULE_SETUP ENTER(VALUE2);
3938       BUFFERSET(AX_surfxml_random_id);
3939       YY_BREAK case 60:
3940 /* rule 60 can match eol */
3941         YY_RULE_SETUP ENTER(VALUE1);
3942       BUFFERSET(AX_surfxml_random_min);
3943       YY_BREAK case 61:
3944 /* rule 61 can match eol */
3945         YY_RULE_SETUP ENTER(VALUE2);
3946       BUFFERSET(AX_surfxml_random_min);
3947       YY_BREAK case 62:
3948 /* rule 62 can match eol */
3949         YY_RULE_SETUP ENTER(VALUE1);
3950       BUFFERSET(AX_surfxml_random_max);
3951       YY_BREAK case 63:
3952 /* rule 63 can match eol */
3953         YY_RULE_SETUP ENTER(VALUE2);
3954       BUFFERSET(AX_surfxml_random_max);
3955       YY_BREAK case 64:
3956 /* rule 64 can match eol */
3957         YY_RULE_SETUP ENTER(VALUE1);
3958       BUFFERSET(AX_surfxml_random_mean);
3959       YY_BREAK case 65:
3960 /* rule 65 can match eol */
3961         YY_RULE_SETUP ENTER(VALUE2);
3962       BUFFERSET(AX_surfxml_random_mean);
3963       YY_BREAK case 66:
3964 /* rule 66 can match eol */
3965         YY_RULE_SETUP ENTER(VALUE1);
3966       BUFFERSET(AX_surfxml_random_std_deviation);
3967       YY_BREAK case 67:
3968 /* rule 67 can match eol */
3969         YY_RULE_SETUP ENTER(VALUE2);
3970       BUFFERSET(AX_surfxml_random_std_deviation);
3971       YY_BREAK case 68:
3972 /* rule 68 can match eol */
3973       case 69:
3974 /* rule 69 can match eol */
3975        
3976         YY_RULE_SETUP
3977         A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
3978       YY_BREAK case 70:
3979 /* rule 70 can match eol */
3980       case 71:
3981 /* rule 71 can match eol */
3982        
3983         YY_RULE_SETUP
3984         A_surfxml_random_generator = A_surfxml_random_generator_RAND;
3985       YY_BREAK case 72:YY_RULE_SETUP {
3986         if (!AX_surfxml_random_id)
3987           FAIL("Required attribute `id' not set for `random' element.");
3988         if (!AX_surfxml_random_min)
3989           FAIL("Required attribute `min' not set for `random' element.");
3990         if (!AX_surfxml_random_max)
3991           FAIL("Required attribute `max' not set for `random' element.");
3992         if (!AX_surfxml_random_mean)
3993           FAIL("Required attribute `mean' not set for `random' element.");
3994         if (!AX_surfxml_random_std_deviation)
3995           FAIL
3996             ("Required attribute `std_deviation' not set for `random' element.");
3997         LEAVE;
3998         STag_surfxml_random();
3999         surfxml_pcdata_ix = 0;
4000         ENTER(S_surfxml_random);
4001       } YY_BREAK case 73:YY_RULE_SETUP {
4002         if (!AX_surfxml_random_id)
4003           FAIL("Required attribute `id' not set for `random' element.");
4004         if (!AX_surfxml_random_min)
4005           FAIL("Required attribute `min' not set for `random' element.");
4006         if (!AX_surfxml_random_max)
4007           FAIL("Required attribute `max' not set for `random' element.");
4008         if (!AX_surfxml_random_mean)
4009           FAIL("Required attribute `mean' not set for `random' element.");
4010         if (!AX_surfxml_random_std_deviation)
4011           FAIL
4012             ("Required attribute `std_deviation' not set for `random' element.");
4013         LEAVE;
4014         STag_surfxml_random();
4015         surfxml_pcdata_ix = 0;
4016         ETag_surfxml_random();
4017         popbuffer();            /* attribute */
4018         switch (YY_START) {
4019         case S_surfxml_platform_2:
4020         case S_surfxml_platform_3:
4021         case S_surfxml_platform:
4022           SET(S_surfxml_platform_3);
4023           break;
4024       }} YY_BREAK case 74:YY_RULE_SETUP
4025         FAIL("Unexpected character `%c' in attribute list of random element.",
4026              surf_parse_text[0]);
4027       YY_BREAK case 75:YY_RULE_SETUP
4028         FAIL("Bad attribute `%s' in `random' element start tag.",
4029              surf_parse_text);
4030       YY_BREAK case
4031         YY_STATE_EOF(AL_surfxml_random):FAIL
4032         ("EOF in attribute list of `random' element.");
4033       YY_BREAK case 76:
4034 /* rule 76 can match eol */
4035         YY_RULE_SETUP {
4036         LEAVE;
4037         ETag_surfxml_random();
4038         popbuffer();            /* attribute */
4039         switch (YY_START) {
4040         case S_surfxml_platform_2:
4041         case S_surfxml_platform_3:
4042         case S_surfxml_platform:
4043           SET(S_surfxml_platform_3);
4044           break;
4045       }} YY_BREAK case 77:
4046 /* rule 77 can match eol */
4047        
4048         YY_RULE_SETUP
4049         FAIL("Unexpected end-tag `%s': `</random>' expected.",
4050              surf_parse_text);
4051       YY_BREAK case 78:YY_RULE_SETUP
4052         FAIL("Unexpected character `%c': `</random>' expected.",
4053              surf_parse_text[0]);
4054       YY_BREAK case YY_STATE_EOF(S_surfxml_random_2):case
4055         YY_STATE_EOF(S_surfxml_random):case
4056         YY_STATE_EOF(E_surfxml_random):FAIL
4057         ("Premature EOF: `</random>' expected.");
4058       YY_BREAK case 79:
4059 /* rule 79 can match eol */
4060        
4061         YY_RULE_SETUP
4062         FAIL("Starting tag <trace:connect> is not allowed here.");
4063       YY_BREAK case 80:
4064 /* rule 80 can match eol */
4065         YY_RULE_SETUP {
4066         AX_surfxml_trace_c_connect_kind =
4067           A_surfxml_trace_c_connect_kind_HOST_AVAIL;
4068         AX_surfxml_trace_c_connect_trace = 0;
4069         AX_surfxml_trace_c_connect_element = 0;
4070         ENTER(AL_surfxml_trace_c_connect);
4071         pushbuffer(0);
4072       } YY_BREAK case 81:
4073 /* rule 81 can match eol */
4074       case 82:
4075 /* rule 82 can match eol */
4076        
4077         YY_RULE_SETUP
4078         A_surfxml_trace_c_connect_kind =
4079         A_surfxml_trace_c_connect_kind_HOST_AVAIL;
4080       YY_BREAK case 83:
4081 /* rule 83 can match eol */
4082       case 84:
4083 /* rule 84 can match eol */
4084        
4085         YY_RULE_SETUP
4086         A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_POWER;
4087       YY_BREAK case 85:
4088 /* rule 85 can match eol */
4089       case 86:
4090 /* rule 86 can match eol */
4091        
4092         YY_RULE_SETUP
4093         A_surfxml_trace_c_connect_kind =
4094         A_surfxml_trace_c_connect_kind_LINK_AVAIL;
4095       YY_BREAK case 87:
4096 /* rule 87 can match eol */
4097       case 88:
4098 /* rule 88 can match eol */
4099        
4100         YY_RULE_SETUP
4101         A_surfxml_trace_c_connect_kind =
4102         A_surfxml_trace_c_connect_kind_BANDWIDTH;
4103       YY_BREAK case 89:
4104 /* rule 89 can match eol */
4105       case 90:
4106 /* rule 90 can match eol */
4107        
4108         YY_RULE_SETUP
4109         A_surfxml_trace_c_connect_kind =
4110         A_surfxml_trace_c_connect_kind_LATENCY;
4111       YY_BREAK case 91:
4112 /* rule 91 can match eol */
4113         YY_RULE_SETUP ENTER(VALUE1);
4114       BUFFERSET(AX_surfxml_trace_c_connect_trace);
4115       YY_BREAK case 92:
4116 /* rule 92 can match eol */
4117         YY_RULE_SETUP ENTER(VALUE2);
4118       BUFFERSET(AX_surfxml_trace_c_connect_trace);
4119       YY_BREAK case 93:
4120 /* rule 93 can match eol */
4121         YY_RULE_SETUP ENTER(VALUE1);
4122       BUFFERSET(AX_surfxml_trace_c_connect_element);
4123       YY_BREAK case 94:
4124 /* rule 94 can match eol */
4125         YY_RULE_SETUP ENTER(VALUE2);
4126       BUFFERSET(AX_surfxml_trace_c_connect_element);
4127       YY_BREAK case 95:YY_RULE_SETUP {
4128         if (!AX_surfxml_trace_c_connect_trace)
4129           FAIL
4130             ("Required attribute `trace' not set for `trace:connect' element.");
4131         if (!AX_surfxml_trace_c_connect_element)
4132           FAIL
4133             ("Required attribute `element' not set for `trace:connect' element.");
4134         LEAVE;
4135         STag_surfxml_trace_c_connect();
4136         surfxml_pcdata_ix = 0;
4137         ENTER(E_surfxml_trace_c_connect);
4138       } YY_BREAK case 96:YY_RULE_SETUP {
4139         if (!AX_surfxml_trace_c_connect_trace)
4140           FAIL
4141             ("Required attribute `trace' not set for `trace:connect' element.");
4142         if (!AX_surfxml_trace_c_connect_element)
4143           FAIL
4144             ("Required attribute `element' not set for `trace:connect' element.");
4145         LEAVE;
4146         STag_surfxml_trace_c_connect();
4147         surfxml_pcdata_ix = 0;
4148         ETag_surfxml_trace_c_connect();
4149         popbuffer();            /* attribute */
4150         switch (YY_START) {
4151         case S_surfxml_platform_5:
4152         case S_surfxml_platform_1:
4153         case S_surfxml_platform_3:
4154         case S_surfxml_platform:
4155         case S_surfxml_platform_4:
4156           SET(S_surfxml_platform_5);
4157           break;
4158           case S_surfxml_platform_2:SET(S_surfxml_platform_3);
4159           break;
4160       }} YY_BREAK case 97:YY_RULE_SETUP
4161         FAIL
4162         ("Unexpected character `%c' in attribute list of trace:connect element.",
4163          surf_parse_text[0]);
4164       YY_BREAK case 98:YY_RULE_SETUP
4165         FAIL("Bad attribute `%s' in `trace:connect' element start tag.",
4166              surf_parse_text);
4167       YY_BREAK case
4168         YY_STATE_EOF(AL_surfxml_trace_c_connect):FAIL
4169         ("EOF in attribute list of `trace:connect' element.");
4170       YY_BREAK case 99:
4171 /* rule 99 can match eol */
4172         YY_RULE_SETUP {
4173         LEAVE;
4174         ETag_surfxml_trace_c_connect();
4175         popbuffer();            /* attribute */
4176         switch (YY_START) {
4177         case S_surfxml_platform_5:
4178         case S_surfxml_platform_1:
4179         case S_surfxml_platform_3:
4180         case S_surfxml_platform:
4181         case S_surfxml_platform_4:
4182           SET(S_surfxml_platform_5);
4183           break;
4184           case S_surfxml_platform_2:SET(S_surfxml_platform_3);
4185           break;
4186       }} YY_BREAK case 100:
4187 /* rule 100 can match eol */
4188        
4189         YY_RULE_SETUP
4190         FAIL("Unexpected end-tag `%s': `</trace:connect>' expected.",
4191              surf_parse_text);
4192       YY_BREAK case 101:YY_RULE_SETUP
4193         FAIL("Unexpected character `%c': `</trace:connect>' expected.",
4194              surf_parse_text[0]);
4195       YY_BREAK case
4196         YY_STATE_EOF(E_surfxml_trace_c_connect):FAIL
4197         ("Premature EOF: `</trace:connect>' expected.");
4198       YY_BREAK case 102:
4199 /* rule 102 can match eol */
4200         YY_RULE_SETUP FAIL("Starting tag <set> is not allowed here.");
4201       YY_BREAK case 103:
4202 /* rule 103 can match eol */
4203         YY_RULE_SETUP {
4204         AX_surfxml_set_id = 0;
4205         AX_surfxml_set_prefix = 0;
4206         AX_surfxml_set_suffix = 0;
4207         AX_surfxml_set_radical = 0;
4208         ENTER(AL_surfxml_set);
4209         pushbuffer(0);
4210       } YY_BREAK case 104:
4211 /* rule 104 can match eol */
4212         YY_RULE_SETUP ENTER(VALUE1);
4213       BUFFERSET(AX_surfxml_set_id);
4214       YY_BREAK case 105:
4215 /* rule 105 can match eol */
4216         YY_RULE_SETUP ENTER(VALUE2);
4217       BUFFERSET(AX_surfxml_set_id);
4218       YY_BREAK case 106:
4219 /* rule 106 can match eol */
4220         YY_RULE_SETUP ENTER(VALUE1);
4221       BUFFERSET(AX_surfxml_set_prefix);
4222       YY_BREAK case 107:
4223 /* rule 107 can match eol */
4224         YY_RULE_SETUP ENTER(VALUE2);
4225       BUFFERSET(AX_surfxml_set_prefix);
4226       YY_BREAK case 108:
4227 /* rule 108 can match eol */
4228         YY_RULE_SETUP ENTER(VALUE1);
4229       BUFFERSET(AX_surfxml_set_suffix);
4230       YY_BREAK case 109:
4231 /* rule 109 can match eol */
4232         YY_RULE_SETUP ENTER(VALUE2);
4233       BUFFERSET(AX_surfxml_set_suffix);
4234       YY_BREAK case 110:
4235 /* rule 110 can match eol */
4236         YY_RULE_SETUP ENTER(VALUE1);
4237       BUFFERSET(AX_surfxml_set_radical);
4238       YY_BREAK case 111:
4239 /* rule 111 can match eol */
4240         YY_RULE_SETUP ENTER(VALUE2);
4241       BUFFERSET(AX_surfxml_set_radical);
4242       YY_BREAK case 112:YY_RULE_SETUP {
4243         if (!AX_surfxml_set_id)
4244           FAIL("Required attribute `id' not set for `set' element.");
4245         if (!AX_surfxml_set_prefix)
4246           FAIL("Required attribute `prefix' not set for `set' element.");
4247         if (!AX_surfxml_set_suffix)
4248           FAIL("Required attribute `suffix' not set for `set' element.");
4249         if (!AX_surfxml_set_radical)
4250           FAIL("Required attribute `radical' not set for `set' element.");
4251         LEAVE;
4252         STag_surfxml_set();
4253         surfxml_pcdata_ix = 0;
4254         ENTER(E_surfxml_set);
4255       } YY_BREAK case 113:YY_RULE_SETUP {
4256         if (!AX_surfxml_set_id)
4257           FAIL("Required attribute `id' not set for `set' element.");
4258         if (!AX_surfxml_set_prefix)
4259           FAIL("Required attribute `prefix' not set for `set' element.");
4260         if (!AX_surfxml_set_suffix)
4261           FAIL("Required attribute `suffix' not set for `set' element.");
4262         if (!AX_surfxml_set_radical)
4263           FAIL("Required attribute `radical' not set for `set' element.");
4264         LEAVE;
4265         STag_surfxml_set();
4266         surfxml_pcdata_ix = 0;
4267         ETag_surfxml_set();
4268         popbuffer();            /* attribute */
4269         switch (YY_START) {
4270         case S_surfxml_platform_2:
4271         case S_surfxml_platform_3:
4272         case S_surfxml_platform:
4273           SET(S_surfxml_platform_3);
4274           break;
4275       }} YY_BREAK case 114:YY_RULE_SETUP
4276         FAIL("Unexpected character `%c' in attribute list of set element.",
4277              surf_parse_text[0]);
4278       YY_BREAK case 115:YY_RULE_SETUP
4279         FAIL("Bad attribute `%s' in `set' element start tag.",
4280              surf_parse_text);
4281       YY_BREAK case
4282         YY_STATE_EOF(AL_surfxml_set):FAIL
4283         ("EOF in attribute list of `set' element.");
4284       YY_BREAK case 116:
4285 /* rule 116 can match eol */
4286         YY_RULE_SETUP {
4287         LEAVE;
4288         ETag_surfxml_set();
4289         popbuffer();            /* attribute */
4290         switch (YY_START) {
4291         case S_surfxml_platform_2:
4292         case S_surfxml_platform_3:
4293         case S_surfxml_platform:
4294           SET(S_surfxml_platform_3);
4295           break;
4296       }} YY_BREAK case 117:
4297 /* rule 117 can match eol */
4298        
4299         YY_RULE_SETUP
4300         FAIL("Unexpected end-tag `%s': `</set>' expected.", surf_parse_text);
4301       YY_BREAK case 118:YY_RULE_SETUP
4302         FAIL("Unexpected character `%c': `</set>' expected.",
4303              surf_parse_text[0]);
4304       YY_BREAK case
4305         YY_STATE_EOF(E_surfxml_set):FAIL("Premature EOF: `</set>' expected.");
4306       YY_BREAK case 119:
4307 /* rule 119 can match eol */
4308         YY_RULE_SETUP FAIL("Starting tag <foreach> is not allowed here.");
4309       YY_BREAK case 120:
4310 /* rule 120 can match eol */
4311         YY_RULE_SETUP {
4312         AX_surfxml_foreach_set_id = 0;
4313         ENTER(AL_surfxml_foreach);
4314         pushbuffer(0);
4315       } YY_BREAK case 121:
4316 /* rule 121 can match eol */
4317         YY_RULE_SETUP ENTER(VALUE1);
4318       BUFFERSET(AX_surfxml_foreach_set_id);
4319       YY_BREAK case 122:
4320 /* rule 122 can match eol */
4321         YY_RULE_SETUP ENTER(VALUE2);
4322       BUFFERSET(AX_surfxml_foreach_set_id);
4323       YY_BREAK case 123:YY_RULE_SETUP {
4324         if (!AX_surfxml_foreach_set_id)
4325           FAIL("Required attribute `set_id' not set for `foreach' element.");
4326         LEAVE;
4327         STag_surfxml_foreach();
4328         surfxml_pcdata_ix = 0;
4329         ENTER(S_surfxml_foreach);
4330       } YY_BREAK case 124:YY_RULE_SETUP
4331         FAIL("`foreach' element cannot be empty.");
4332       YY_BREAK case 125:YY_RULE_SETUP
4333         FAIL
4334         ("Unexpected character `%c' in attribute list of foreach element.",
4335          surf_parse_text[0]);
4336       YY_BREAK case 126:YY_RULE_SETUP
4337         FAIL("Bad attribute `%s' in `foreach' element start tag.",
4338              surf_parse_text);
4339       YY_BREAK case
4340         YY_STATE_EOF(AL_surfxml_foreach):FAIL
4341         ("EOF in attribute list of `foreach' element.");
4342       YY_BREAK case 127:
4343 /* rule 127 can match eol */
4344         YY_RULE_SETUP {
4345         LEAVE;
4346         ETag_surfxml_foreach();
4347         popbuffer();            /* attribute */
4348         switch (YY_START) {
4349         case S_surfxml_platform_2:
4350         case S_surfxml_platform_3:
4351         case S_surfxml_platform:
4352           SET(S_surfxml_platform_3);
4353           break;
4354       }} YY_BREAK case 128:
4355 /* rule 128 can match eol */
4356        
4357         YY_RULE_SETUP
4358         FAIL("Unexpected end-tag `%s': `</foreach>' expected.",
4359              surf_parse_text);
4360       YY_BREAK case 129:YY_RULE_SETUP
4361         FAIL("Unexpected character `%c': `</foreach>' expected.",
4362              surf_parse_text[0]);
4363       YY_BREAK case
4364         YY_STATE_EOF(E_surfxml_foreach):FAIL
4365         ("Premature EOF: `</foreach>' expected.");
4366       YY_BREAK case 130:
4367 /* rule 130 can match eol */
4368         YY_RULE_SETUP FAIL("Starting tag <host> is not allowed here.");
4369       YY_BREAK case 131:
4370 /* rule 131 can match eol */
4371         YY_RULE_SETUP {
4372         AX_surfxml_host_id = 0;
4373         AX_surfxml_host_power = 0;
4374         AX_surfxml_host_availability = 69;
4375         AX_surfxml_host_availability_file = 0;
4376         AX_surfxml_host_state = A_surfxml_host_state_ON;
4377         AX_surfxml_host_state_file = 0;
4378         AX_surfxml_host_interference_send = 73;
4379         AX_surfxml_host_interference_recv = 77;
4380         AX_surfxml_host_interference_send_recv = 81;
4381         AX_surfxml_host_max_outgoing_rate = 85;
4382         ENTER(AL_surfxml_host);
4383         pushbuffer(0);
4384       } YY_BREAK case 132:
4385 /* rule 132 can match eol */
4386         YY_RULE_SETUP ENTER(VALUE1);
4387       BUFFERSET(AX_surfxml_host_id);
4388       YY_BREAK case 133:
4389 /* rule 133 can match eol */
4390         YY_RULE_SETUP ENTER(VALUE2);
4391       BUFFERSET(AX_surfxml_host_id);
4392       YY_BREAK case 134:
4393 /* rule 134 can match eol */
4394         YY_RULE_SETUP ENTER(VALUE1);
4395       BUFFERSET(AX_surfxml_host_power);
4396       YY_BREAK case 135:
4397 /* rule 135 can match eol */
4398         YY_RULE_SETUP ENTER(VALUE2);
4399       BUFFERSET(AX_surfxml_host_power);
4400       YY_BREAK case 136:
4401 /* rule 136 can match eol */
4402         YY_RULE_SETUP ENTER(VALUE1);
4403       BUFFERSET(AX_surfxml_host_availability);
4404       YY_BREAK case 137:
4405 /* rule 137 can match eol */
4406         YY_RULE_SETUP ENTER(VALUE2);
4407       BUFFERSET(AX_surfxml_host_availability);
4408       YY_BREAK case 138:
4409 /* rule 138 can match eol */
4410         YY_RULE_SETUP ENTER(VALUE1);
4411       BUFFERSET(AX_surfxml_host_availability_file);
4412       YY_BREAK case 139:
4413 /* rule 139 can match eol */
4414         YY_RULE_SETUP ENTER(VALUE2);
4415       BUFFERSET(AX_surfxml_host_availability_file);
4416       YY_BREAK case 140:
4417 /* rule 140 can match eol */
4418       case 141:
4419 /* rule 141 can match eol */
4420         YY_RULE_SETUP A_surfxml_host_state = A_surfxml_host_state_ON;
4421       YY_BREAK case 142:
4422 /* rule 142 can match eol */
4423       case 143:
4424 /* rule 143 can match eol */
4425         YY_RULE_SETUP A_surfxml_host_state = A_surfxml_host_state_OFF;
4426       YY_BREAK case 144:
4427 /* rule 144 can match eol */
4428         YY_RULE_SETUP ENTER(VALUE1);
4429       BUFFERSET(AX_surfxml_host_state_file);
4430       YY_BREAK case 145:
4431 /* rule 145 can match eol */
4432         YY_RULE_SETUP ENTER(VALUE2);
4433       BUFFERSET(AX_surfxml_host_state_file);
4434       YY_BREAK case 146:
4435 /* rule 146 can match eol */
4436         YY_RULE_SETUP ENTER(VALUE1);
4437       BUFFERSET(AX_surfxml_host_interference_send);
4438       YY_BREAK case 147:
4439 /* rule 147 can match eol */
4440         YY_RULE_SETUP ENTER(VALUE2);
4441       BUFFERSET(AX_surfxml_host_interference_send);
4442       YY_BREAK case 148:
4443 /* rule 148 can match eol */
4444         YY_RULE_SETUP ENTER(VALUE1);
4445       BUFFERSET(AX_surfxml_host_interference_recv);
4446       YY_BREAK case 149:
4447 /* rule 149 can match eol */
4448         YY_RULE_SETUP ENTER(VALUE2);
4449       BUFFERSET(AX_surfxml_host_interference_recv);
4450       YY_BREAK case 150:
4451 /* rule 150 can match eol */
4452         YY_RULE_SETUP ENTER(VALUE1);
4453       BUFFERSET(AX_surfxml_host_interference_send_recv);
4454       YY_BREAK case 151:
4455 /* rule 151 can match eol */
4456         YY_RULE_SETUP ENTER(VALUE2);
4457       BUFFERSET(AX_surfxml_host_interference_send_recv);
4458       YY_BREAK case 152:
4459 /* rule 152 can match eol */
4460         YY_RULE_SETUP ENTER(VALUE1);
4461       BUFFERSET(AX_surfxml_host_max_outgoing_rate);
4462       YY_BREAK case 153:
4463 /* rule 153 can match eol */
4464         YY_RULE_SETUP ENTER(VALUE2);
4465       BUFFERSET(AX_surfxml_host_max_outgoing_rate);
4466       YY_BREAK case 154:YY_RULE_SETUP {
4467         if (!AX_surfxml_host_id)
4468           FAIL("Required attribute `id' not set for `host' element.");
4469         if (!AX_surfxml_host_power)
4470           FAIL("Required attribute `power' not set for `host' element.");
4471         LEAVE;
4472         STag_surfxml_host();
4473         surfxml_pcdata_ix = 0;
4474         ENTER(S_surfxml_host);
4475       } YY_BREAK case 155:YY_RULE_SETUP {
4476         if (!AX_surfxml_host_id)
4477           FAIL("Required attribute `id' not set for `host' element.");
4478         if (!AX_surfxml_host_power)
4479           FAIL("Required attribute `power' not set for `host' element.");
4480         LEAVE;
4481         STag_surfxml_host();
4482         surfxml_pcdata_ix = 0;
4483         ETag_surfxml_host();
4484         popbuffer();            /* attribute */
4485         switch (YY_START) {
4486         case S_surfxml_platform_2:
4487         case S_surfxml_platform_3:
4488         case S_surfxml_platform:
4489           SET(S_surfxml_platform_3);
4490           break;
4491           case S_surfxml_foreach:SET(S_surfxml_foreach_1);
4492           break;
4493       }} YY_BREAK case 156:YY_RULE_SETUP
4494         FAIL("Unexpected character `%c' in attribute list of host element.",
4495              surf_parse_text[0]);
4496       YY_BREAK case 157:YY_RULE_SETUP
4497         FAIL("Bad attribute `%s' in `host' element start tag.",
4498              surf_parse_text);
4499       YY_BREAK case
4500         YY_STATE_EOF(AL_surfxml_host):FAIL
4501         ("EOF in attribute list of `host' element.");
4502       YY_BREAK case 158:
4503 /* rule 158 can match eol */
4504         YY_RULE_SETUP {
4505         LEAVE;
4506         ETag_surfxml_host();
4507         popbuffer();            /* attribute */
4508         switch (YY_START) {
4509         case S_surfxml_platform_2:
4510         case S_surfxml_platform_3:
4511         case S_surfxml_platform:
4512           SET(S_surfxml_platform_3);
4513           break;
4514           case S_surfxml_foreach:SET(S_surfxml_foreach_1);
4515           break;
4516       }} YY_BREAK case 159:
4517 /* rule 159 can match eol */
4518        
4519         YY_RULE_SETUP
4520         FAIL("Unexpected end-tag `%s': `</host>' expected.", surf_parse_text);
4521       YY_BREAK case 160:YY_RULE_SETUP
4522         FAIL("Unexpected character `%c': `</host>' expected.",
4523              surf_parse_text[0]);
4524       YY_BREAK case YY_STATE_EOF(S_surfxml_host):case
4525         YY_STATE_EOF(E_surfxml_host):case
4526         YY_STATE_EOF(S_surfxml_host_2):FAIL
4527         ("Premature EOF: `</host>' expected.");
4528       YY_BREAK case 161:
4529 /* rule 161 can match eol */
4530         YY_RULE_SETUP FAIL("Starting tag <prop> is not allowed here.");
4531       YY_BREAK case 162:
4532 /* rule 162 can match eol */
4533         YY_RULE_SETUP {
4534         AX_surfxml_prop_id = 0;
4535         AX_surfxml_prop_value = 0;
4536         ENTER(AL_surfxml_prop);
4537         pushbuffer(0);
4538       } YY_BREAK case 163:
4539 /* rule 163 can match eol */
4540         YY_RULE_SETUP ENTER(VALUE1);
4541       BUFFERSET(AX_surfxml_prop_id);
4542       YY_BREAK case 164:
4543 /* rule 164 can match eol */
4544         YY_RULE_SETUP ENTER(VALUE2);
4545       BUFFERSET(AX_surfxml_prop_id);
4546       YY_BREAK case 165:
4547 /* rule 165 can match eol */
4548         YY_RULE_SETUP ENTER(VALUE1);
4549       BUFFERSET(AX_surfxml_prop_value);
4550       YY_BREAK case 166:
4551 /* rule 166 can match eol */
4552         YY_RULE_SETUP ENTER(VALUE2);
4553       BUFFERSET(AX_surfxml_prop_value);
4554       YY_BREAK case 167:YY_RULE_SETUP {
4555         if (!AX_surfxml_prop_id)
4556           FAIL("Required attribute `id' not set for `prop' element.");
4557         if (!AX_surfxml_prop_value)
4558           FAIL("Required attribute `value' not set for `prop' element.");
4559         LEAVE;
4560         STag_surfxml_prop();
4561         surfxml_pcdata_ix = 0;
4562         ENTER(E_surfxml_prop);
4563       } YY_BREAK case 168:YY_RULE_SETUP {
4564         if (!AX_surfxml_prop_id)
4565           FAIL("Required attribute `id' not set for `prop' element.");
4566         if (!AX_surfxml_prop_value)
4567           FAIL("Required attribute `value' not set for `prop' element.");
4568         LEAVE;
4569         STag_surfxml_prop();
4570         surfxml_pcdata_ix = 0;
4571         ETag_surfxml_prop();
4572         popbuffer();            /* attribute */
4573         switch (YY_START) {
4574         case S_surfxml_random:
4575         case S_surfxml_random_2:
4576         case S_surfxml_random_1:
4577           SET(S_surfxml_random_2);
4578           break;
4579           case S_surfxml_process_1:case S_surfxml_process:case
4580             S_surfxml_process_2:SET(S_surfxml_process_2);
4581           break;
4582           case S_surfxml_host:case S_surfxml_host_1:case
4583             S_surfxml_host_2:SET(S_surfxml_host_2);
4584           break;
4585           case S_surfxml_link_1:case S_surfxml_link_2:case
4586             S_surfxml_link:SET(S_surfxml_link_2);
4587           break;
4588       }} YY_BREAK case 169:YY_RULE_SETUP
4589         FAIL("Unexpected character `%c' in attribute list of prop element.",
4590              surf_parse_text[0]);
4591       YY_BREAK case 170:YY_RULE_SETUP
4592         FAIL("Bad attribute `%s' in `prop' element start tag.",
4593              surf_parse_text);
4594       YY_BREAK case
4595         YY_STATE_EOF(AL_surfxml_prop):FAIL
4596         ("EOF in attribute list of `prop' element.");
4597       YY_BREAK case 171:
4598 /* rule 171 can match eol */
4599         YY_RULE_SETUP {
4600         LEAVE;
4601         ETag_surfxml_prop();
4602         popbuffer();            /* attribute */
4603         switch (YY_START) {
4604         case S_surfxml_random:
4605         case S_surfxml_random_2:
4606         case S_surfxml_random_1:
4607           SET(S_surfxml_random_2);
4608           break;
4609           case S_surfxml_process_1:case S_surfxml_process:case
4610             S_surfxml_process_2:SET(S_surfxml_process_2);
4611           break;
4612           case S_surfxml_host:case S_surfxml_host_1:case
4613             S_surfxml_host_2:SET(S_surfxml_host_2);
4614           break;
4615           case S_surfxml_link_1:case S_surfxml_link_2:case
4616             S_surfxml_link:SET(S_surfxml_link_2);
4617           break;
4618       }} YY_BREAK case 172:
4619 /* rule 172 can match eol */
4620        
4621         YY_RULE_SETUP
4622         FAIL("Unexpected end-tag `%s': `</prop>' expected.", surf_parse_text);
4623       YY_BREAK case 173:YY_RULE_SETUP
4624         FAIL("Unexpected character `%c': `</prop>' expected.",
4625              surf_parse_text[0]);
4626       YY_BREAK case
4627         YY_STATE_EOF(E_surfxml_prop):FAIL
4628         ("Premature EOF: `</prop>' expected.");
4629       YY_BREAK case 174:
4630 /* rule 174 can match eol */
4631         YY_RULE_SETUP FAIL("Starting tag <cluster> is not allowed here.");
4632       YY_BREAK case 175:
4633 /* rule 175 can match eol */
4634         YY_RULE_SETUP {
4635         AX_surfxml_cluster_id = 0;
4636         AX_surfxml_cluster_prefix = 0;
4637         AX_surfxml_cluster_suffix = 0;
4638         AX_surfxml_cluster_radical = 0;
4639         AX_surfxml_cluster_power = 0;
4640         AX_surfxml_cluster_bw = 0;
4641         AX_surfxml_cluster_lat = 0;
4642         AX_surfxml_cluster_bb_bw = 0;
4643         AX_surfxml_cluster_bb_lat = 0;
4644         ENTER(AL_surfxml_cluster);
4645         pushbuffer(0);
4646       } YY_BREAK case 176:
4647 /* rule 176 can match eol */
4648         YY_RULE_SETUP ENTER(VALUE1);
4649       BUFFERSET(AX_surfxml_cluster_id);
4650       YY_BREAK case 177:
4651 /* rule 177 can match eol */
4652         YY_RULE_SETUP ENTER(VALUE2);
4653       BUFFERSET(AX_surfxml_cluster_id);
4654       YY_BREAK case 178:
4655 /* rule 178 can match eol */
4656         YY_RULE_SETUP ENTER(VALUE1);
4657       BUFFERSET(AX_surfxml_cluster_prefix);
4658       YY_BREAK case 179:
4659 /* rule 179 can match eol */
4660         YY_RULE_SETUP ENTER(VALUE2);
4661       BUFFERSET(AX_surfxml_cluster_prefix);
4662       YY_BREAK case 180:
4663 /* rule 180 can match eol */
4664         YY_RULE_SETUP ENTER(VALUE1);
4665       BUFFERSET(AX_surfxml_cluster_suffix);
4666       YY_BREAK case 181:
4667 /* rule 181 can match eol */
4668         YY_RULE_SETUP ENTER(VALUE2);
4669       BUFFERSET(AX_surfxml_cluster_suffix);
4670       YY_BREAK case 182:
4671 /* rule 182 can match eol */
4672         YY_RULE_SETUP ENTER(VALUE1);
4673       BUFFERSET(AX_surfxml_cluster_radical);
4674       YY_BREAK case 183:
4675 /* rule 183 can match eol */
4676         YY_RULE_SETUP ENTER(VALUE2);
4677       BUFFERSET(AX_surfxml_cluster_radical);
4678       YY_BREAK case 184:
4679 /* rule 184 can match eol */
4680         YY_RULE_SETUP ENTER(VALUE1);
4681       BUFFERSET(AX_surfxml_cluster_power);
4682       YY_BREAK case 185:
4683 /* rule 185 can match eol */
4684         YY_RULE_SETUP ENTER(VALUE2);
4685       BUFFERSET(AX_surfxml_cluster_power);
4686       YY_BREAK case 186:
4687 /* rule 186 can match eol */
4688         YY_RULE_SETUP ENTER(VALUE1);
4689       BUFFERSET(AX_surfxml_cluster_bw);
4690       YY_BREAK case 187:
4691 /* rule 187 can match eol */
4692         YY_RULE_SETUP ENTER(VALUE2);
4693       BUFFERSET(AX_surfxml_cluster_bw);
4694       YY_BREAK case 188:
4695 /* rule 188 can match eol */
4696         YY_RULE_SETUP ENTER(VALUE1);
4697       BUFFERSET(AX_surfxml_cluster_lat);
4698       YY_BREAK case 189:
4699 /* rule 189 can match eol */
4700         YY_RULE_SETUP ENTER(VALUE2);
4701       BUFFERSET(AX_surfxml_cluster_lat);
4702       YY_BREAK case 190:
4703 /* rule 190 can match eol */
4704         YY_RULE_SETUP ENTER(VALUE1);
4705       BUFFERSET(AX_surfxml_cluster_bb_bw);
4706       YY_BREAK case 191:
4707 /* rule 191 can match eol */
4708         YY_RULE_SETUP ENTER(VALUE2);
4709       BUFFERSET(AX_surfxml_cluster_bb_bw);
4710       YY_BREAK case 192:
4711 /* rule 192 can match eol */
4712         YY_RULE_SETUP ENTER(VALUE1);
4713       BUFFERSET(AX_surfxml_cluster_bb_lat);
4714       YY_BREAK case 193:
4715 /* rule 193 can match eol */
4716         YY_RULE_SETUP ENTER(VALUE2);
4717       BUFFERSET(AX_surfxml_cluster_bb_lat);
4718       YY_BREAK case 194:YY_RULE_SETUP {
4719         if (!AX_surfxml_cluster_id)
4720           FAIL("Required attribute `id' not set for `cluster' element.");
4721         if (!AX_surfxml_cluster_prefix)
4722           FAIL("Required attribute `prefix' not set for `cluster' element.");
4723         if (!AX_surfxml_cluster_suffix)
4724           FAIL("Required attribute `suffix' not set for `cluster' element.");
4725         if (!AX_surfxml_cluster_radical)
4726           FAIL("Required attribute `radical' not set for `cluster' element.");
4727         if (!AX_surfxml_cluster_power)
4728           FAIL("Required attribute `power' not set for `cluster' element.");
4729         if (!AX_surfxml_cluster_bw)
4730           FAIL("Required attribute `bw' not set for `cluster' element.");
4731         if (!AX_surfxml_cluster_lat)
4732           FAIL("Required attribute `lat' not set for `cluster' element.");
4733         if (!AX_surfxml_cluster_bb_bw)
4734           FAIL("Required attribute `bb_bw' not set for `cluster' element.");
4735         if (!AX_surfxml_cluster_bb_lat)
4736           FAIL("Required attribute `bb_lat' not set for `cluster' element.");
4737         LEAVE;
4738         STag_surfxml_cluster();
4739         surfxml_pcdata_ix = 0;
4740         ENTER(E_surfxml_cluster);
4741       } YY_BREAK case 195:YY_RULE_SETUP {
4742         if (!AX_surfxml_cluster_id)
4743           FAIL("Required attribute `id' not set for `cluster' element.");
4744         if (!AX_surfxml_cluster_prefix)
4745           FAIL("Required attribute `prefix' not set for `cluster' element.");
4746         if (!AX_surfxml_cluster_suffix)
4747           FAIL("Required attribute `suffix' not set for `cluster' element.");
4748         if (!AX_surfxml_cluster_radical)
4749           FAIL("Required attribute `radical' not set for `cluster' element.");
4750         if (!AX_surfxml_cluster_power)
4751           FAIL("Required attribute `power' not set for `cluster' element.");
4752         if (!AX_surfxml_cluster_bw)
4753           FAIL("Required attribute `bw' not set for `cluster' element.");
4754         if (!AX_surfxml_cluster_lat)
4755           FAIL("Required attribute `lat' not set for `cluster' element.");
4756         if (!AX_surfxml_cluster_bb_bw)
4757           FAIL("Required attribute `bb_bw' not set for `cluster' element.");
4758         if (!AX_surfxml_cluster_bb_lat)
4759           FAIL("Required attribute `bb_lat' not set for `cluster' element.");
4760         LEAVE;
4761         STag_surfxml_cluster();
4762         surfxml_pcdata_ix = 0;
4763         ETag_surfxml_cluster();
4764         popbuffer();            /* attribute */
4765         switch (YY_START) {
4766         case S_surfxml_platform_2:
4767         case S_surfxml_platform:
4768         case S_surfxml_platform_3:
4769           SET(S_surfxml_platform_3);
4770           break;
4771       }} YY_BREAK case 196:YY_RULE_SETUP
4772         FAIL
4773         ("Unexpected character `%c' in attribute list of cluster element.",
4774          surf_parse_text[0]);
4775       YY_BREAK case 197:YY_RULE_SETUP
4776         FAIL("Bad attribute `%s' in `cluster' element start tag.",
4777              surf_parse_text);
4778       YY_BREAK case
4779         YY_STATE_EOF(AL_surfxml_cluster):FAIL
4780         ("EOF in attribute list of `cluster' element.");
4781       YY_BREAK case 198:
4782 /* rule 198 can match eol */
4783         YY_RULE_SETUP {
4784         LEAVE;
4785         ETag_surfxml_cluster();
4786         popbuffer();            /* attribute */
4787         switch (YY_START) {
4788         case S_surfxml_platform_2:
4789         case S_surfxml_platform:
4790         case S_surfxml_platform_3:
4791           SET(S_surfxml_platform_3);
4792           break;
4793       }} YY_BREAK case 199:
4794 /* rule 199 can match eol */
4795        
4796         YY_RULE_SETUP
4797         FAIL("Unexpected end-tag `%s': `</cluster>' expected.",
4798              surf_parse_text);
4799       YY_BREAK case 200:YY_RULE_SETUP
4800         FAIL("Unexpected character `%c': `</cluster>' expected.",
4801              surf_parse_text[0]);
4802       YY_BREAK case
4803         YY_STATE_EOF(E_surfxml_cluster):FAIL
4804         ("Premature EOF: `</cluster>' expected.");
4805       YY_BREAK case 201:
4806 /* rule 201 can match eol */
4807         YY_RULE_SETUP FAIL("Starting tag <router> is not allowed here.");
4808       YY_BREAK case 202:
4809 /* rule 202 can match eol */
4810         YY_RULE_SETUP {
4811         AX_surfxml_router_id = 0;
4812         ENTER(AL_surfxml_router);
4813         pushbuffer(0);
4814       } YY_BREAK case 203:
4815 /* rule 203 can match eol */
4816         YY_RULE_SETUP ENTER(VALUE1);
4817       BUFFERSET(AX_surfxml_router_id);
4818       YY_BREAK case 204:
4819 /* rule 204 can match eol */
4820         YY_RULE_SETUP ENTER(VALUE2);
4821       BUFFERSET(AX_surfxml_router_id);
4822       YY_BREAK case 205:YY_RULE_SETUP {
4823         if (!AX_surfxml_router_id)
4824           FAIL("Required attribute `id' not set for `router' element.");
4825         LEAVE;
4826         STag_surfxml_router();
4827         surfxml_pcdata_ix = 0;
4828         ENTER(E_surfxml_router);
4829       } YY_BREAK case 206:YY_RULE_SETUP {
4830         if (!AX_surfxml_router_id)
4831           FAIL("Required attribute `id' not set for `router' element.");
4832         LEAVE;
4833         STag_surfxml_router();
4834         surfxml_pcdata_ix = 0;
4835         ETag_surfxml_router();
4836         popbuffer();            /* attribute */
4837         switch (YY_START) {
4838         case S_surfxml_platform_2:
4839         case S_surfxml_platform:
4840         case S_surfxml_platform_3:
4841           SET(S_surfxml_platform_3);
4842           break;
4843       }} YY_BREAK case 207:YY_RULE_SETUP
4844         FAIL("Unexpected character `%c' in attribute list of router element.",
4845              surf_parse_text[0]);
4846       YY_BREAK case 208:YY_RULE_SETUP
4847         FAIL("Bad attribute `%s' in `router' element start tag.",
4848              surf_parse_text);
4849       YY_BREAK case
4850         YY_STATE_EOF(AL_surfxml_router):FAIL
4851         ("EOF in attribute list of `router' element.");
4852       YY_BREAK case 209:
4853 /* rule 209 can match eol */
4854         YY_RULE_SETUP {
4855         LEAVE;
4856         ETag_surfxml_router();
4857         popbuffer();            /* attribute */
4858         switch (YY_START) {
4859         case S_surfxml_platform_2:
4860         case S_surfxml_platform:
4861         case S_surfxml_platform_3:
4862           SET(S_surfxml_platform_3);
4863           break;
4864       }} YY_BREAK case 210:
4865 /* rule 210 can match eol */
4866        
4867         YY_RULE_SETUP
4868         FAIL("Unexpected end-tag `%s': `</router>' expected.",
4869              surf_parse_text);
4870       YY_BREAK case 211:YY_RULE_SETUP
4871         FAIL("Unexpected character `%c': `</router>' expected.",
4872              surf_parse_text[0]);
4873       YY_BREAK case
4874         YY_STATE_EOF(E_surfxml_router):FAIL
4875         ("Premature EOF: `</router>' expected.");
4876       YY_BREAK case 212:
4877 /* rule 212 can match eol */
4878         YY_RULE_SETUP FAIL("Starting tag <link> is not allowed here.");
4879       YY_BREAK case 213:
4880 /* rule 213 can match eol */
4881         YY_RULE_SETUP {
4882         AX_surfxml_link_id = 0;
4883         AX_surfxml_link_bandwidth = 0;
4884         AX_surfxml_link_bandwidth_file = 0;
4885         AX_surfxml_link_latency = 90;
4886         AX_surfxml_link_latency_file = 0;
4887         AX_surfxml_link_state = A_surfxml_link_state_ON;
4888         AX_surfxml_link_state_file = 0;
4889         AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
4890         ENTER(AL_surfxml_link);
4891         pushbuffer(0);
4892       } YY_BREAK case 214:
4893 /* rule 214 can match eol */
4894         YY_RULE_SETUP ENTER(VALUE1);
4895       BUFFERSET(AX_surfxml_link_id);
4896       YY_BREAK case 215:
4897 /* rule 215 can match eol */
4898         YY_RULE_SETUP ENTER(VALUE2);
4899       BUFFERSET(AX_surfxml_link_id);
4900       YY_BREAK case 216:
4901 /* rule 216 can match eol */
4902         YY_RULE_SETUP ENTER(VALUE1);
4903       BUFFERSET(AX_surfxml_link_bandwidth);
4904       YY_BREAK case 217:
4905 /* rule 217 can match eol */
4906         YY_RULE_SETUP ENTER(VALUE2);
4907       BUFFERSET(AX_surfxml_link_bandwidth);
4908       YY_BREAK case 218:
4909 /* rule 218 can match eol */
4910         YY_RULE_SETUP ENTER(VALUE1);
4911       BUFFERSET(AX_surfxml_link_bandwidth_file);
4912       YY_BREAK case 219:
4913 /* rule 219 can match eol */
4914         YY_RULE_SETUP ENTER(VALUE2);
4915       BUFFERSET(AX_surfxml_link_bandwidth_file);
4916       YY_BREAK case 220:
4917 /* rule 220 can match eol */
4918         YY_RULE_SETUP ENTER(VALUE1);
4919       BUFFERSET(AX_surfxml_link_latency);
4920       YY_BREAK case 221:
4921 /* rule 221 can match eol */
4922         YY_RULE_SETUP ENTER(VALUE2);
4923       BUFFERSET(AX_surfxml_link_latency);
4924       YY_BREAK case 222:
4925 /* rule 222 can match eol */
4926         YY_RULE_SETUP ENTER(VALUE1);
4927       BUFFERSET(AX_surfxml_link_latency_file);
4928       YY_BREAK case 223:
4929 /* rule 223 can match eol */
4930         YY_RULE_SETUP ENTER(VALUE2);
4931       BUFFERSET(AX_surfxml_link_latency_file);
4932       YY_BREAK case 224:
4933 /* rule 224 can match eol */
4934       case 225:
4935 /* rule 225 can match eol */
4936         YY_RULE_SETUP A_surfxml_link_state = A_surfxml_link_state_ON;
4937       YY_BREAK case 226:
4938 /* rule 226 can match eol */
4939       case 227:
4940 /* rule 227 can match eol */
4941         YY_RULE_SETUP A_surfxml_link_state = A_surfxml_link_state_OFF;
4942       YY_BREAK case 228:
4943 /* rule 228 can match eol */
4944         YY_RULE_SETUP ENTER(VALUE1);
4945       BUFFERSET(AX_surfxml_link_state_file);
4946       YY_BREAK case 229:
4947 /* rule 229 can match eol */
4948         YY_RULE_SETUP ENTER(VALUE2);
4949       BUFFERSET(AX_surfxml_link_state_file);
4950       YY_BREAK case 230:
4951 /* rule 230 can match eol */
4952       case 231:
4953 /* rule 231 can match eol */
4954        
4955         YY_RULE_SETUP
4956         A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
4957       YY_BREAK case 232:
4958 /* rule 232 can match eol */
4959       case 233:
4960 /* rule 233 can match eol */
4961        
4962         YY_RULE_SETUP
4963         A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
4964       YY_BREAK case 234:YY_RULE_SETUP {
4965         if (!AX_surfxml_link_id)
4966           FAIL("Required attribute `id' not set for `link' element.");
4967         if (!AX_surfxml_link_bandwidth)
4968           FAIL("Required attribute `bandwidth' not set for `link' element.");
4969         LEAVE;
4970         STag_surfxml_link();
4971         surfxml_pcdata_ix = 0;
4972         ENTER(S_surfxml_link);
4973       } YY_BREAK case 235:YY_RULE_SETUP {
4974         if (!AX_surfxml_link_id)
4975           FAIL("Required attribute `id' not set for `link' element.");
4976         if (!AX_surfxml_link_bandwidth)
4977           FAIL("Required attribute `bandwidth' not set for `link' element.");
4978         LEAVE;
4979         STag_surfxml_link();
4980         surfxml_pcdata_ix = 0;
4981         ETag_surfxml_link();
4982         popbuffer();            /* attribute */
4983         switch (YY_START) {
4984         case S_surfxml_foreach:
4985         case S_surfxml_foreach_1:
4986           SET(E_surfxml_foreach);
4987           break;
4988           case S_surfxml_platform_2:case S_surfxml_platform:case
4989             S_surfxml_platform_3:SET(S_surfxml_platform_3);
4990           break;
4991       }} YY_BREAK case 236:YY_RULE_SETUP
4992         FAIL("Unexpected character `%c' in attribute list of link element.",
4993              surf_parse_text[0]);
4994       YY_BREAK case 237:YY_RULE_SETUP
4995         FAIL("Bad attribute `%s' in `link' element start tag.",
4996              surf_parse_text);
4997       YY_BREAK case
4998         YY_STATE_EOF(AL_surfxml_link):FAIL
4999         ("EOF in attribute list of `link' element.");
5000       YY_BREAK case 238:
5001 /* rule 238 can match eol */
5002         YY_RULE_SETUP {
5003         LEAVE;
5004         ETag_surfxml_link();
5005         popbuffer();            /* attribute */
5006         switch (YY_START) {
5007         case S_surfxml_foreach:
5008         case S_surfxml_foreach_1:
5009           SET(E_surfxml_foreach);
5010           break;
5011           case S_surfxml_platform_2:case S_surfxml_platform:case
5012             S_surfxml_platform_3:SET(S_surfxml_platform_3);
5013           break;
5014       }} YY_BREAK case 239:
5015 /* rule 239 can match eol */
5016        
5017         YY_RULE_SETUP
5018         FAIL("Unexpected end-tag `%s': `</link>' expected.", surf_parse_text);
5019       YY_BREAK case 240:YY_RULE_SETUP
5020         FAIL("Unexpected character `%c': `</link>' expected.",
5021              surf_parse_text[0]);
5022       YY_BREAK case YY_STATE_EOF(S_surfxml_link_2):case
5023         YY_STATE_EOF(E_surfxml_link):case
5024         YY_STATE_EOF(S_surfxml_link):FAIL
5025         ("Premature EOF: `</link>' expected.");
5026       YY_BREAK case 241:
5027 /* rule 241 can match eol */
5028         YY_RULE_SETUP FAIL("Starting tag <route:multi> is not allowed here.");
5029       YY_BREAK case 242:
5030 /* rule 242 can match eol */
5031         YY_RULE_SETUP {
5032         AX_surfxml_route_c_multi_src = 0;
5033         AX_surfxml_route_c_multi_dst = 0;
5034         AX_surfxml_route_c_multi_action =
5035           A_surfxml_route_c_multi_action_POSTPEND;
5036         AX_surfxml_route_c_multi_symmetric =
5037           A_surfxml_route_c_multi_symmetric_YES;
5038         ENTER(AL_surfxml_route_c_multi);
5039         pushbuffer(0);
5040       } YY_BREAK case 243:
5041 /* rule 243 can match eol */
5042         YY_RULE_SETUP ENTER(VALUE1);
5043       BUFFERSET(AX_surfxml_route_c_multi_src);
5044       YY_BREAK case 244:
5045 /* rule 244 can match eol */
5046         YY_RULE_SETUP ENTER(VALUE2);
5047       BUFFERSET(AX_surfxml_route_c_multi_src);
5048       YY_BREAK case 245:
5049 /* rule 245 can match eol */
5050         YY_RULE_SETUP ENTER(VALUE1);
5051       BUFFERSET(AX_surfxml_route_c_multi_dst);
5052       YY_BREAK case 246:
5053 /* rule 246 can match eol */
5054         YY_RULE_SETUP ENTER(VALUE2);
5055       BUFFERSET(AX_surfxml_route_c_multi_dst);
5056       YY_BREAK case 247:
5057 /* rule 247 can match eol */
5058       case 248:
5059 /* rule 248 can match eol */
5060        
5061         YY_RULE_SETUP
5062         A_surfxml_route_c_multi_action =
5063         A_surfxml_route_c_multi_action_POSTPEND;
5064       YY_BREAK case 249:
5065 /* rule 249 can match eol */
5066       case 250:
5067 /* rule 250 can match eol */
5068        
5069         YY_RULE_SETUP
5070         A_surfxml_route_c_multi_action =
5071         A_surfxml_route_c_multi_action_PREPEND;
5072       YY_BREAK case 251:
5073 /* rule 251 can match eol */
5074       case 252:
5075 /* rule 252 can match eol */
5076        
5077         YY_RULE_SETUP
5078         A_surfxml_route_c_multi_action =
5079         A_surfxml_route_c_multi_action_OVERRIDE;
5080       YY_BREAK case 253:
5081 /* rule 253 can match eol */
5082       case 254:
5083 /* rule 254 can match eol */
5084        
5085         YY_RULE_SETUP
5086         A_surfxml_route_c_multi_symmetric =
5087         A_surfxml_route_c_multi_symmetric_YES;
5088       YY_BREAK case 255:
5089 /* rule 255 can match eol */
5090       case 256:
5091 /* rule 256 can match eol */
5092        
5093         YY_RULE_SETUP
5094         A_surfxml_route_c_multi_symmetric =
5095         A_surfxml_route_c_multi_symmetric_NO;
5096       YY_BREAK case 257:YY_RULE_SETUP {
5097         if (!AX_surfxml_route_c_multi_src)
5098           FAIL("Required attribute `src' not set for `route:multi' element.");
5099         if (!AX_surfxml_route_c_multi_dst)
5100           FAIL("Required attribute `dst' not set for `route:multi' element.");
5101         LEAVE;
5102         STag_surfxml_route_c_multi();
5103         surfxml_pcdata_ix = 0;
5104         ENTER(S_surfxml_route_c_multi);
5105       } YY_BREAK case 258:YY_RULE_SETUP
5106         FAIL("`route:multi' element cannot be empty.");
5107       YY_BREAK case 259:YY_RULE_SETUP
5108         FAIL
5109         ("Unexpected character `%c' in attribute list of route:multi element.",
5110          surf_parse_text[0]);
5111       YY_BREAK case 260:YY_RULE_SETUP
5112         FAIL("Bad attribute `%s' in `route:multi' element start tag.",
5113              surf_parse_text);
5114       YY_BREAK case
5115         YY_STATE_EOF(AL_surfxml_route_c_multi):FAIL
5116         ("EOF in attribute list of `route:multi' element.");
5117       YY_BREAK case 261:
5118 /* rule 261 can match eol */
5119         YY_RULE_SETUP {
5120         LEAVE;
5121         ETag_surfxml_route_c_multi();
5122         popbuffer();            /* attribute */
5123         switch (YY_START) {
5124         case S_surfxml_platform_5:
5125         case S_surfxml_platform_1:
5126         case S_surfxml_platform:
5127         case S_surfxml_platform_3:
5128         case S_surfxml_platform_4:
5129           SET(S_surfxml_platform_5);
5130           break;
5131       }} YY_BREAK case 262:
5132 /* rule 262 can match eol */
5133        
5134         YY_RULE_SETUP
5135         FAIL("Unexpected end-tag `%s': `</route:multi>' expected.",
5136              surf_parse_text);
5137       YY_BREAK case 263:YY_RULE_SETUP
5138         FAIL("Unexpected character `%c': `</route:multi>' expected.",
5139              surf_parse_text[0]);
5140       YY_BREAK case YY_STATE_EOF(S_surfxml_route_c_multi_2):case
5141         YY_STATE_EOF(E_surfxml_route_c_multi):FAIL
5142         ("Premature EOF: `</route:multi>' expected.");
5143       YY_BREAK case 264:
5144 /* rule 264 can match eol */
5145         YY_RULE_SETUP FAIL("Starting tag <route> is not allowed here.");
5146       YY_BREAK case 265:
5147 /* rule 265 can match eol */
5148         YY_RULE_SETUP {
5149         AX_surfxml_route_src = 0;
5150         AX_surfxml_route_dst = 0;
5151         AX_surfxml_route_impact_on_src = 94;
5152         AX_surfxml_route_impact_on_dst = 98;
5153         AX_surfxml_route_impact_on_src_with_other_recv = 102;
5154         AX_surfxml_route_impact_on_dst_with_other_send = 106;
5155         AX_surfxml_route_action = A_surfxml_route_action_POSTPEND;
5156         ENTER(AL_surfxml_route);
5157         pushbuffer(0);
5158       } YY_BREAK case 266:
5159 /* rule 266 can match eol */
5160         YY_RULE_SETUP ENTER(VALUE1);
5161       BUFFERSET(AX_surfxml_route_src);
5162       YY_BREAK case 267:
5163 /* rule 267 can match eol */
5164         YY_RULE_SETUP ENTER(VALUE2);
5165       BUFFERSET(AX_surfxml_route_src);
5166       YY_BREAK case 268:
5167 /* rule 268 can match eol */
5168         YY_RULE_SETUP ENTER(VALUE1);
5169       BUFFERSET(AX_surfxml_route_dst);
5170       YY_BREAK case 269:
5171 /* rule 269 can match eol */
5172         YY_RULE_SETUP ENTER(VALUE2);
5173       BUFFERSET(AX_surfxml_route_dst);
5174       YY_BREAK case 270:
5175 /* rule 270 can match eol */
5176         YY_RULE_SETUP ENTER(VALUE1);
5177       BUFFERSET(AX_surfxml_route_impact_on_src);
5178       YY_BREAK case 271:
5179 /* rule 271 can match eol */
5180         YY_RULE_SETUP ENTER(VALUE2);
5181       BUFFERSET(AX_surfxml_route_impact_on_src);
5182       YY_BREAK case 272:
5183 /* rule 272 can match eol */
5184         YY_RULE_SETUP ENTER(VALUE1);
5185       BUFFERSET(AX_surfxml_route_impact_on_dst);
5186       YY_BREAK case 273:
5187 /* rule 273 can match eol */
5188         YY_RULE_SETUP ENTER(VALUE2);
5189       BUFFERSET(AX_surfxml_route_impact_on_dst);
5190       YY_BREAK case 274:
5191 /* rule 274 can match eol */
5192         YY_RULE_SETUP ENTER(VALUE1);
5193       BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
5194       YY_BREAK case 275:
5195 /* rule 275 can match eol */
5196         YY_RULE_SETUP ENTER(VALUE2);
5197       BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
5198       YY_BREAK case 276:
5199 /* rule 276 can match eol */
5200         YY_RULE_SETUP ENTER(VALUE1);
5201       BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
5202       YY_BREAK case 277:
5203 /* rule 277 can match eol */
5204         YY_RULE_SETUP ENTER(VALUE2);
5205       BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
5206       YY_BREAK case 278:
5207 /* rule 278 can match eol */
5208       case 279:
5209 /* rule 279 can match eol */
5210        
5211         YY_RULE_SETUP A_surfxml_route_action =
5212         A_surfxml_route_action_POSTPEND;
5213       YY_BREAK case 280:
5214 /* rule 280 can match eol */
5215       case 281:
5216 /* rule 281 can match eol */
5217         YY_RULE_SETUP A_surfxml_route_action = A_surfxml_route_action_PREPEND;
5218       YY_BREAK case 282:
5219 /* rule 282 can match eol */
5220       case 283:
5221 /* rule 283 can match eol */
5222        
5223         YY_RULE_SETUP A_surfxml_route_action =
5224         A_surfxml_route_action_OVERRIDE;
5225       YY_BREAK case 284:YY_RULE_SETUP {
5226         if (!AX_surfxml_route_src)
5227           FAIL("Required attribute `src' not set for `route' element.");
5228         if (!AX_surfxml_route_dst)
5229           FAIL("Required attribute `dst' not set for `route' element.");
5230         LEAVE;
5231         STag_surfxml_route();
5232         surfxml_pcdata_ix = 0;
5233         ENTER(S_surfxml_route);
5234       } YY_BREAK case 285:YY_RULE_SETUP {
5235         if (!AX_surfxml_route_src)
5236           FAIL("Required attribute `src' not set for `route' element.");
5237         if (!AX_surfxml_route_dst)
5238           FAIL("Required attribute `dst' not set for `route' element.");
5239         LEAVE;
5240         STag_surfxml_route();
5241         surfxml_pcdata_ix = 0;
5242         ETag_surfxml_route();
5243         popbuffer();            /* attribute */
5244         switch (YY_START) {
5245         case S_surfxml_platform_5:
5246         case S_surfxml_platform_1:
5247         case S_surfxml_platform:
5248         case S_surfxml_platform_3:
5249         case S_surfxml_platform_4:
5250           SET(S_surfxml_platform_5);
5251           break;
5252       }} YY_BREAK case 286:YY_RULE_SETUP
5253         FAIL("Unexpected character `%c' in attribute list of route element.",
5254              surf_parse_text[0]);
5255       YY_BREAK case 287:YY_RULE_SETUP
5256         FAIL("Bad attribute `%s' in `route' element start tag.",
5257              surf_parse_text);
5258       YY_BREAK case
5259         YY_STATE_EOF(AL_surfxml_route):FAIL
5260         ("EOF in attribute list of `route' element.");
5261       YY_BREAK case 288:
5262 /* rule 288 can match eol */
5263         YY_RULE_SETUP {
5264         LEAVE;
5265         ETag_surfxml_route();
5266         popbuffer();            /* attribute */
5267         switch (YY_START) {
5268         case S_surfxml_platform_5:
5269         case S_surfxml_platform_1:
5270         case S_surfxml_platform:
5271         case S_surfxml_platform_3:
5272         case S_surfxml_platform_4:
5273           SET(S_surfxml_platform_5);
5274           break;
5275       }} YY_BREAK case 289:
5276 /* rule 289 can match eol */
5277        
5278         YY_RULE_SETUP
5279         FAIL("Unexpected end-tag `%s': `</route>' expected.",
5280              surf_parse_text);
5281       YY_BREAK case 290:YY_RULE_SETUP
5282         FAIL("Unexpected character `%c': `</route>' expected.",
5283              surf_parse_text[0]);
5284       YY_BREAK case YY_STATE_EOF(S_surfxml_route):case
5285         YY_STATE_EOF(S_surfxml_route_2):case
5286         YY_STATE_EOF(E_surfxml_route):FAIL
5287         ("Premature EOF: `</route>' expected.");
5288       YY_BREAK case 291:
5289 /* rule 291 can match eol */
5290         YY_RULE_SETUP FAIL("Starting tag <link:ctn> is not allowed here.");
5291       YY_BREAK case 292:
5292 /* rule 292 can match eol */
5293         YY_RULE_SETUP {
5294         AX_surfxml_link_c_ctn_id = 0;
5295         ENTER(AL_surfxml_link_c_ctn);
5296         pushbuffer(0);
5297       } YY_BREAK case 293:
5298 /* rule 293 can match eol */
5299         YY_RULE_SETUP ENTER(VALUE1);
5300       BUFFERSET(AX_surfxml_link_c_ctn_id);
5301       YY_BREAK case 294:
5302 /* rule 294 can match eol */
5303         YY_RULE_SETUP ENTER(VALUE2);
5304       BUFFERSET(AX_surfxml_link_c_ctn_id);
5305       YY_BREAK case 295:YY_RULE_SETUP {
5306         if (!AX_surfxml_link_c_ctn_id)
5307           FAIL("Required attribute `id' not set for `link:ctn' element.");
5308         LEAVE;
5309         STag_surfxml_link_c_ctn();
5310         surfxml_pcdata_ix = 0;
5311         ENTER(E_surfxml_link_c_ctn);
5312       } YY_BREAK case 296:YY_RULE_SETUP {
5313         if (!AX_surfxml_link_c_ctn_id)
5314           FAIL("Required attribute `id' not set for `link:ctn' element.");
5315         LEAVE;
5316         STag_surfxml_link_c_ctn();
5317         surfxml_pcdata_ix = 0;
5318         ETag_surfxml_link_c_ctn();
5319         popbuffer();            /* attribute */
5320         switch (YY_START) {
5321         case S_surfxml_route_1:
5322         case S_surfxml_route:
5323         case S_surfxml_route_2:
5324           SET(S_surfxml_route_2);
5325           break;
5326           case S_surfxml_route_c_multi_2:case S_surfxml_route_c_multi_1:case
5327             S_surfxml_route_c_multi:SET(S_surfxml_route_c_multi_2);
5328           break;
5329       }} YY_BREAK case 297:YY_RULE_SETUP
5330         FAIL
5331         ("Unexpected character `%c' in attribute list of link:ctn element.",
5332          surf_parse_text[0]);
5333       YY_BREAK case 298:YY_RULE_SETUP
5334         FAIL("Bad attribute `%s' in `link:ctn' element start tag.",
5335              surf_parse_text);
5336       YY_BREAK case
5337         YY_STATE_EOF(AL_surfxml_link_c_ctn):FAIL
5338         ("EOF in attribute list of `link:ctn' element.");
5339       YY_BREAK case 299:
5340 /* rule 299 can match eol */
5341         YY_RULE_SETUP {
5342         LEAVE;
5343         ETag_surfxml_link_c_ctn();
5344         popbuffer();            /* attribute */
5345         switch (YY_START) {
5346         case S_surfxml_route_1:
5347         case S_surfxml_route:
5348         case S_surfxml_route_2:
5349           SET(S_surfxml_route_2);
5350           break;
5351           case S_surfxml_route_c_multi_2:case S_surfxml_route_c_multi_1:case
5352             S_surfxml_route_c_multi:SET(S_surfxml_route_c_multi_2);
5353           break;
5354       }} YY_BREAK case 300:
5355 /* rule 300 can match eol */
5356        
5357         YY_RULE_SETUP
5358         FAIL("Unexpected end-tag `%s': `</link:ctn>' expected.",
5359              surf_parse_text);
5360       YY_BREAK case 301:YY_RULE_SETUP
5361         FAIL("Unexpected character `%c': `</link:ctn>' expected.",
5362              surf_parse_text[0]);
5363       YY_BREAK case
5364         YY_STATE_EOF(E_surfxml_link_c_ctn):FAIL
5365         ("Premature EOF: `</link:ctn>' expected.");
5366       YY_BREAK case 302:
5367 /* rule 302 can match eol */
5368         YY_RULE_SETUP FAIL("Starting tag <process> is not allowed here.");
5369       YY_BREAK case 303:
5370 /* rule 303 can match eol */
5371         YY_RULE_SETUP {
5372         AX_surfxml_process_host = 0;
5373         AX_surfxml_process_function = 0;
5374         AX_surfxml_process_start_time = 110;
5375         AX_surfxml_process_kill_time = 115;
5376         ENTER(AL_surfxml_process);
5377         pushbuffer(0);
5378       } YY_BREAK case 304:
5379 /* rule 304 can match eol */
5380         YY_RULE_SETUP ENTER(VALUE1);
5381       BUFFERSET(AX_surfxml_process_host);
5382       YY_BREAK case 305:
5383 /* rule 305 can match eol */
5384         YY_RULE_SETUP ENTER(VALUE2);
5385       BUFFERSET(AX_surfxml_process_host);
5386       YY_BREAK case 306:
5387 /* rule 306 can match eol */
5388         YY_RULE_SETUP ENTER(VALUE1);
5389       BUFFERSET(AX_surfxml_process_function);
5390       YY_BREAK case 307:
5391 /* rule 307 can match eol */
5392         YY_RULE_SETUP ENTER(VALUE2);
5393       BUFFERSET(AX_surfxml_process_function);
5394       YY_BREAK case 308:
5395 /* rule 308 can match eol */
5396         YY_RULE_SETUP ENTER(VALUE1);
5397       BUFFERSET(AX_surfxml_process_start_time);
5398       YY_BREAK case 309:
5399 /* rule 309 can match eol */
5400         YY_RULE_SETUP ENTER(VALUE2);
5401       BUFFERSET(AX_surfxml_process_start_time);
5402       YY_BREAK case 310:
5403 /* rule 310 can match eol */
5404         YY_RULE_SETUP ENTER(VALUE1);
5405       BUFFERSET(AX_surfxml_process_kill_time);
5406       YY_BREAK case 311:
5407 /* rule 311 can match eol */
5408         YY_RULE_SETUP ENTER(VALUE2);
5409       BUFFERSET(AX_surfxml_process_kill_time);
5410       YY_BREAK case 312:YY_RULE_SETUP {
5411         if (!AX_surfxml_process_host)
5412           FAIL("Required attribute `host' not set for `process' element.");
5413         if (!AX_surfxml_process_function)
5414           FAIL
5415             ("Required attribute `function' not set for `process' element.");
5416         LEAVE;
5417         STag_surfxml_process();
5418         surfxml_pcdata_ix = 0;
5419         ENTER(S_surfxml_process);
5420       } YY_BREAK case 313:YY_RULE_SETUP {
5421         if (!AX_surfxml_process_host)
5422           FAIL("Required attribute `host' not set for `process' element.");
5423         if (!AX_surfxml_process_function)
5424           FAIL
5425             ("Required attribute `function' not set for `process' element.");
5426         LEAVE;
5427         STag_surfxml_process();
5428         surfxml_pcdata_ix = 0;
5429         ETag_surfxml_process();
5430         popbuffer();            /* attribute */
5431         switch (YY_START) {
5432         case S_surfxml_platform_5:
5433         case S_surfxml_platform_1:
5434         case S_surfxml_platform:
5435         case S_surfxml_platform_3:
5436         case S_surfxml_platform_4:
5437           SET(S_surfxml_platform_5);
5438           break;
5439       }} YY_BREAK case 314:YY_RULE_SETUP
5440         FAIL
5441         ("Unexpected character `%c' in attribute list of process element.",
5442          surf_parse_text[0]);
5443       YY_BREAK case 315:YY_RULE_SETUP
5444         FAIL("Bad attribute `%s' in `process' element start tag.",
5445              surf_parse_text);
5446       YY_BREAK case
5447         YY_STATE_EOF(AL_surfxml_process):FAIL
5448         ("EOF in attribute list of `process' element.");
5449       YY_BREAK case 316:
5450 /* rule 316 can match eol */
5451         YY_RULE_SETUP {
5452         LEAVE;
5453         ETag_surfxml_process();
5454         popbuffer();            /* attribute */
5455         switch (YY_START) {
5456         case S_surfxml_platform_5:
5457         case S_surfxml_platform_1:
5458         case S_surfxml_platform:
5459         case S_surfxml_platform_3:
5460         case S_surfxml_platform_4:
5461           SET(S_surfxml_platform_5);
5462           break;
5463       }} YY_BREAK case 317:
5464 /* rule 317 can match eol */
5465        
5466         YY_RULE_SETUP
5467         FAIL("Unexpected end-tag `%s': `</process>' expected.",
5468              surf_parse_text);
5469       YY_BREAK case 318:YY_RULE_SETUP
5470         FAIL("Unexpected character `%c': `</process>' expected.",
5471              surf_parse_text[0]);
5472       YY_BREAK case YY_STATE_EOF(S_surfxml_process):case
5473         YY_STATE_EOF(E_surfxml_process):case
5474         YY_STATE_EOF(S_surfxml_process_2):FAIL
5475         ("Premature EOF: `</process>' expected.");
5476       YY_BREAK case 319:
5477 /* rule 319 can match eol */
5478         YY_RULE_SETUP FAIL("Starting tag <argument> is not allowed here.");
5479       YY_BREAK case 320:
5480 /* rule 320 can match eol */
5481         YY_RULE_SETUP {
5482         AX_surfxml_argument_value = 0;
5483         ENTER(AL_surfxml_argument);
5484         pushbuffer(0);
5485       } YY_BREAK case 321:
5486 /* rule 321 can match eol */
5487         YY_RULE_SETUP ENTER(VALUE1);
5488       BUFFERSET(AX_surfxml_argument_value);
5489       YY_BREAK case 322:
5490 /* rule 322 can match eol */
5491         YY_RULE_SETUP ENTER(VALUE2);
5492       BUFFERSET(AX_surfxml_argument_value);
5493       YY_BREAK case 323:YY_RULE_SETUP {
5494         if (!AX_surfxml_argument_value)
5495           FAIL("Required attribute `value' not set for `argument' element.");
5496         LEAVE;
5497         STag_surfxml_argument();
5498         surfxml_pcdata_ix = 0;
5499         ENTER(E_surfxml_argument);
5500       } YY_BREAK case 324:YY_RULE_SETUP {
5501         if (!AX_surfxml_argument_value)
5502           FAIL("Required attribute `value' not set for `argument' element.");
5503         LEAVE;
5504         STag_surfxml_argument();
5505         surfxml_pcdata_ix = 0;
5506         ETag_surfxml_argument();
5507         popbuffer();            /* attribute */
5508         switch (YY_START) {
5509         case S_surfxml_process_1:
5510         case S_surfxml_process:
5511         case S_surfxml_process_2:
5512           SET(S_surfxml_process_2);
5513           break;
5514       }} YY_BREAK case 325:YY_RULE_SETUP
5515         FAIL
5516         ("Unexpected character `%c' in attribute list of argument element.",
5517          surf_parse_text[0]);
5518       YY_BREAK case 326:YY_RULE_SETUP
5519         FAIL("Bad attribute `%s' in `argument' element start tag.",
5520              surf_parse_text);
5521       YY_BREAK case
5522         YY_STATE_EOF(AL_surfxml_argument):FAIL
5523         ("EOF in attribute list of `argument' element.");
5524       YY_BREAK case 327:
5525 /* rule 327 can match eol */
5526         YY_RULE_SETUP {
5527         LEAVE;
5528         ETag_surfxml_argument();
5529         popbuffer();            /* attribute */
5530         switch (YY_START) {
5531         case S_surfxml_process_1:
5532         case S_surfxml_process:
5533         case S_surfxml_process_2:
5534           SET(S_surfxml_process_2);
5535           break;
5536       }} YY_BREAK case 328:
5537 /* rule 328 can match eol */
5538        
5539         YY_RULE_SETUP
5540         FAIL("Unexpected end-tag `%s': `</argument>' expected.",
5541              surf_parse_text);
5542       YY_BREAK case 329:YY_RULE_SETUP
5543         FAIL("Unexpected character `%c': `</argument>' expected.",
5544              surf_parse_text[0]);
5545       YY_BREAK case
5546         YY_STATE_EOF(E_surfxml_argument):FAIL
5547         ("Premature EOF: `</argument>' expected.");
5548       YY_BREAK
5549 /* EPILOG: after the root element. */
5550     case 330:
5551       YY_RULE_SETUP {
5552         SET(PROLOG);
5553         yyless(0);
5554         CLEANUP;
5555         return -1;
5556       }
5557       YY_BREAK case YY_STATE_EOF(EPILOG):SUCCEED;
5558       YY_BREAK
5559 /* CHARACTER DATA. */
5560 /* Non-defined standard entities... */
5561     case 331:
5562       YY_RULE_SETUP BUFFERPUTC('&');
5563       YY_BREAK case 332:YY_RULE_SETUP BUFFERPUTC('<');
5564       YY_BREAK case 333:YY_RULE_SETUP BUFFERPUTC('>');
5565       YY_BREAK case 334:YY_RULE_SETUP BUFFERPUTC('\'');
5566       YY_BREAK case 335:YY_RULE_SETUP BUFFERPUTC('"');
5567       YY_BREAK
5568 /* Character entities. */
5569     case 336:
5570       YY_RULE_SETUP BUFFERPUTC((unsigned char) atoi(surf_parse_text + 2));
5571       YY_BREAK case 337:YY_RULE_SETUP
5572         BUFFERPUTC((unsigned char) strtol(surf_parse_text + 3, NULL, 16));
5573       YY_BREAK case 338:
5574 /* rule 338 can match eol */
5575       case 339:
5576 /* rule 339 can match eol */
5577       case 340:
5578 /* rule 340 can match eol */
5579       case 341:
5580 /* rule 341 can match eol */
5581         YY_RULE_SETUP BUFFERPUTC('\n');
5582       YY_BREAK case 342:YY_RULE_SETUP ENTER(CDATA);
5583       YY_BREAK case 343:YY_RULE_SETUP FAIL("Unexpected `]"
5584                                            "]>' in character data.");
5585       YY_BREAK case 344:YY_RULE_SETUP BUFFERDONE;
5586       LEAVE;
5587       YY_BREAK case
5588         YY_STATE_EOF(VALUE1):FAIL("EOF in literal (\"'\" expected).");
5589       YY_BREAK case 345:YY_RULE_SETUP BUFFERDONE;
5590       LEAVE;
5591       YY_BREAK case
5592         YY_STATE_EOF(VALUE2):FAIL("EOF in literal (`\"' expected).");
5593       YY_BREAK case 346:
5594 /* rule 346 can match eol */
5595         YY_RULE_SETUP BUFFERPUTC(surf_parse_text[0]);
5596       YY_BREAK case 347:YY_RULE_SETUP
5597         FAIL("Spurious `%c' in character data.", surf_parse_text[0]);
5598       YY_BREAK case 348:YY_RULE_SETUP LEAVE;
5599       YY_BREAK
5600 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
5601     case 349:
5602       YY_RULE_SETUP BUFFERPUTC(surf_parse_text[0]);
5603       YY_BREAK case YY_STATE_EOF(CDATA):FAIL("EOF in CDATA section.");
5604       YY_BREAK
5605 /* Impossible rules to avoid warnings from flex(1). */
5606 /* Ideally, this should be replaced by code in flexml.pl that
5607     generates just the states not covered by other rules. */
5608     case 350:
5609 /* rule 350 can match eol */
5610       YY_RULE_SETUP
5611         FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
5612       YY_BREAK case 351:YY_RULE_SETUP ECHO;
5613       YY_BREAK case YY_STATE_EOF(INITIAL):case
5614         YY_STATE_EOF(ROOT_surfxml_platform):case
5615         YY_STATE_EOF(S_surfxml_platform_2):case
5616         YY_STATE_EOF(S_surfxml_platform_4):case
5617         YY_STATE_EOF(S_surfxml_random_1):case
5618         YY_STATE_EOF(S_surfxml_foreach):case
5619         YY_STATE_EOF(S_surfxml_foreach_1):case
5620         YY_STATE_EOF(S_surfxml_host_1):case
5621         YY_STATE_EOF(S_surfxml_link_1):case
5622         YY_STATE_EOF(S_surfxml_route_c_multi):case
5623         YY_STATE_EOF(S_surfxml_route_c_multi_1):case
5624         YY_STATE_EOF(S_surfxml_route_1):case
5625         YY_STATE_EOF(S_surfxml_process_1):case
5626         YY_STATE_EOF(IMPOSSIBLE):yyterminate();
5627
5628     case YY_END_OF_BUFFER:
5629       {
5630         /* Amount of text matched not including the EOB char. */
5631         int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5632
5633         /* Undo the effects of YY_DO_BEFORE_ACTION. */
5634         *yy_cp = (yy_hold_char);
5635         YY_RESTORE_YY_MORE_OFFSET
5636           if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) {
5637           /* We're scanning a new file or input source.  It's
5638            * possible that this happened because the user
5639            * just pointed surf_parse_in at a new source and called
5640            * surf_parse_lex().  If so, then we have to assure
5641            * consistency between YY_CURRENT_BUFFER and our
5642            * globals.  Here is the right place to do so, because
5643            * this is the first action (other than possibly a
5644            * back-up) that will match for the new input source.
5645            */
5646           (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5647           YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
5648           YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5649         }
5650
5651         /* Note that here we test for yy_c_buf_p "<=" to the position
5652          * of the first EOB in the buffer, since yy_c_buf_p will
5653          * already have been incremented past the NUL character
5654          * (since all states make transitions on EOB to the
5655          * end-of-buffer state).  Contrast this with the test
5656          * in input().
5657          */
5658         if ((yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]) {       /* This was really a NUL. */
5659           yy_state_type yy_next_state;
5660
5661           (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5662
5663           yy_current_state = yy_get_previous_state();
5664
5665           /* Okay, we're now positioned to make the NUL
5666            * transition.  We couldn't have
5667            * yy_get_previous_state() go ahead and do it
5668            * for us because it doesn't know how to deal
5669            * with the possibility of jamming (and we don't
5670            * want to build jamming into it because then it
5671            * will run more slowly).
5672            */
5673
5674           yy_next_state = yy_try_NUL_trans(yy_current_state);
5675
5676           yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5677
5678           if (yy_next_state) {
5679             /* Consume the NUL. */
5680             yy_cp = ++(yy_c_buf_p);
5681             yy_current_state = yy_next_state;
5682             goto yy_match;
5683           }
5684
5685           else {
5686             yy_cp = (yy_c_buf_p);
5687             goto yy_find_action;
5688           }
5689         }
5690
5691         else
5692           switch (yy_get_next_buffer()) {
5693           case EOB_ACT_END_OF_FILE:
5694             {
5695               (yy_did_buffer_switch_on_eof) = 0;
5696
5697               if (surf_parse_wrap()) {
5698                 /* Note: because we've taken care in
5699                  * yy_get_next_buffer() to have set up
5700                  * surf_parse_text, we can now set up
5701                  * yy_c_buf_p so that if some total
5702                  * hoser (like flex itself) wants to
5703                  * call the scanner after we return the
5704                  * YY_NULL, it'll still work - another
5705                  * YY_NULL will get returned.
5706                  */
5707                 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5708
5709                 yy_act = YY_STATE_EOF(YY_START);
5710                 goto do_action;
5711               }
5712
5713               else {
5714                 if (!(yy_did_buffer_switch_on_eof))
5715                   YY_NEW_FILE;
5716               }
5717               break;
5718             }
5719
5720           case EOB_ACT_CONTINUE_SCAN:
5721             (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5722
5723             yy_current_state = yy_get_previous_state();
5724
5725             yy_cp = (yy_c_buf_p);
5726             yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5727             goto yy_match;
5728
5729           case EOB_ACT_LAST_MATCH:
5730             (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5731
5732             yy_current_state = yy_get_previous_state();
5733
5734             yy_cp = (yy_c_buf_p);
5735             yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5736             goto yy_find_action;
5737           }
5738         break;
5739       }
5740
5741     default:
5742       YY_FATAL_ERROR("fatal flex scanner internal error--no action found");
5743     }                           /* end of action switch */
5744   }                             /* end of scanning one token */
5745 }                               /* end of surf_parse_lex */
5746
5747 /* yy_get_next_buffer - try to read in a new buffer
5748  *
5749  * Returns a code representing an action:
5750  *      EOB_ACT_LAST_MATCH -
5751  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5752  *      EOB_ACT_END_OF_FILE - end of file
5753  */
5754 static int yy_get_next_buffer(void)
5755 {
5756   register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5757   register char *source = (yytext_ptr);
5758   register int number_to_move, i;
5759   int ret_val;
5760
5761   if ((yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1])
5762     YY_FATAL_ERROR("fatal flex scanner internal error--end of buffer missed");
5763
5764   if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) {  /* Don't try to fill the buffer, so this is an EOF. */
5765     if ((yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1) {
5766       /* We matched a single character, the EOB, so
5767        * treat this as a final EOF.
5768        */
5769       return EOB_ACT_END_OF_FILE;
5770     }
5771
5772     else {
5773       /* We matched some text prior to the EOB, first
5774        * process it.
5775        */
5776       return EOB_ACT_LAST_MATCH;
5777     }
5778   }
5779
5780   /* Try to read more data. */
5781
5782   /* First move last chars to start of buffer. */
5783   number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
5784
5785   for (i = 0; i < number_to_move; ++i)
5786     *(dest++) = *(source++);
5787
5788   if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING)
5789     /* don't do the read, it's not guaranteed to return an EOF,
5790      * just force an EOF
5791      */
5792     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5793
5794   else {
5795     int num_to_read =
5796       YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5797
5798     while (num_to_read <= 0) {  /* Not enough room in the buffer - grow it. */
5799
5800       /* just a shorter name for the current buffer */
5801       YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
5802
5803       int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf);
5804
5805       if (b->yy_is_our_buffer) {
5806         int new_size = b->yy_buf_size * 2;
5807
5808         if (new_size <= 0)
5809           b->yy_buf_size += b->yy_buf_size / 8;
5810         else
5811           b->yy_buf_size *= 2;
5812
5813         b->yy_ch_buf = (char *)
5814           /* Include room in for 2 EOB chars. */
5815           surf_parse_realloc((void *) b->yy_ch_buf, b->yy_buf_size + 2);
5816       } else
5817         /* Can't grow it, we don't own it. */
5818         b->yy_ch_buf = 0;
5819
5820       if (!b->yy_ch_buf)
5821         YY_FATAL_ERROR("fatal error - scanner input buffer overflow");
5822
5823       (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5824
5825       num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5826         number_to_move - 1;
5827
5828     }
5829
5830     if (num_to_read > YY_READ_BUF_SIZE)
5831       num_to_read = YY_READ_BUF_SIZE;
5832
5833     /* Read in more data. */
5834     YY_INPUT((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5835              (yy_n_chars), (size_t) num_to_read);
5836
5837     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5838   }
5839
5840   if ((yy_n_chars) == 0) {
5841     if (number_to_move == YY_MORE_ADJ) {
5842       ret_val = EOB_ACT_END_OF_FILE;
5843       surf_parse_restart(surf_parse_in);
5844     }
5845
5846     else {
5847       ret_val = EOB_ACT_LAST_MATCH;
5848       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING;
5849     }
5850   }
5851
5852   else
5853     ret_val = EOB_ACT_CONTINUE_SCAN;
5854
5855   if ((yy_size_t) ((yy_n_chars) + number_to_move) >
5856       YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
5857     /* Extend the array by 50%, plus the number we really need. */
5858     yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5859     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf =
5860       (char *) surf_parse_realloc((void *)
5861                                   YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,
5862                                   new_size);
5863     if (!YY_CURRENT_BUFFER_LVALUE->yy_ch_buf)
5864       YY_FATAL_ERROR("out of dynamic memory in yy_get_next_buffer()");
5865   }
5866
5867   (yy_n_chars) += number_to_move;
5868   YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
5869   YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] =
5870     YY_END_OF_BUFFER_CHAR;
5871
5872   (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
5873
5874   return ret_val;
5875 }
5876
5877 /* yy_get_previous_state - get the state just before the EOB char was reached */
5878
5879 static yy_state_type yy_get_previous_state(void)
5880 {
5881   register yy_state_type yy_current_state;
5882   register char *yy_cp;
5883
5884   yy_current_state = (yy_start);
5885
5886   for (yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp) {
5887     register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5888     if (yy_accept[yy_current_state]) {
5889       (yy_last_accepting_state) = yy_current_state;
5890       (yy_last_accepting_cpos) = yy_cp;
5891     }
5892     while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) {
5893       yy_current_state = (int) yy_def[yy_current_state];
5894       if (yy_current_state >= 2023)
5895         yy_c = yy_meta[(unsigned int) yy_c];
5896     }
5897     yy_current_state =
5898       yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5899   }
5900
5901   return yy_current_state;
5902 }
5903
5904 /* yy_try_NUL_trans - try to make a transition on the NUL character
5905  *
5906  * synopsis
5907  *      next_state = yy_try_NUL_trans( current_state );
5908  */
5909 static yy_state_type yy_try_NUL_trans(yy_state_type yy_current_state)
5910 {
5911   register int yy_is_jam;
5912   register char *yy_cp = (yy_c_buf_p);
5913
5914   register YY_CHAR yy_c = 1;
5915   if (yy_accept[yy_current_state]) {
5916     (yy_last_accepting_state) = yy_current_state;
5917     (yy_last_accepting_cpos) = yy_cp;
5918   }
5919   while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) {
5920     yy_current_state = (int) yy_def[yy_current_state];
5921     if (yy_current_state >= 2023)
5922       yy_c = yy_meta[(unsigned int) yy_c];
5923   }
5924   yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5925   yy_is_jam = (yy_current_state == 2022);
5926
5927   return yy_is_jam ? 0 : yy_current_state;
5928 }
5929
5930 #ifndef YY_NO_INPUT
5931 #ifdef __cplusplus
5932 static int yyinput(void)
5933 #else
5934 static int input(void)
5935 #endif
5936 {
5937   int c;
5938
5939   *(yy_c_buf_p) = (yy_hold_char);
5940
5941   if (*(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR) {
5942     /* yy_c_buf_p now points to the character we want to return.
5943      * If this occurs *before* the EOB characters, then it's a
5944      * valid NUL; if not, then we've hit the end of the buffer.
5945      */
5946     if ((yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)])
5947       /* This was really a NUL. */
5948       *(yy_c_buf_p) = '\0';
5949
5950     else {                      /* need more input */
5951       int offset = (yy_c_buf_p) - (yytext_ptr);
5952       ++(yy_c_buf_p);
5953
5954       switch (yy_get_next_buffer()) {
5955       case EOB_ACT_LAST_MATCH:
5956         /* This happens because yy_g_n_b()
5957          * sees that we've accumulated a
5958          * token and flags that we need to
5959          * try matching the token before
5960          * proceeding.  But for input(),
5961          * there's no matching to consider.
5962          * So convert the EOB_ACT_LAST_MATCH
5963          * to EOB_ACT_END_OF_FILE.
5964          */
5965
5966         /* Reset buffer status. */
5967         surf_parse_restart(surf_parse_in);
5968
5969        /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE:
5970         {
5971           if (surf_parse_wrap())
5972             return EOF;
5973
5974           if (!(yy_did_buffer_switch_on_eof))
5975             YY_NEW_FILE;
5976 #ifdef __cplusplus
5977           return yyinput();
5978 #else
5979           return input();
5980 #endif
5981         }
5982
5983       case EOB_ACT_CONTINUE_SCAN:
5984         (yy_c_buf_p) = (yytext_ptr) + offset;
5985         break;
5986       }
5987     }
5988   }
5989
5990   c = *(unsigned char *) (yy_c_buf_p);  /* cast for 8-bit char's */
5991   *(yy_c_buf_p) = '\0';         /* preserve surf_parse_text */
5992   (yy_hold_char) = *++(yy_c_buf_p);
5993
5994   if (c == '\n')
5995
5996     surf_parse_lineno++;
5997   ;
5998
5999   return c;
6000 }
6001 #endif /* ifndef YY_NO_INPUT */
6002
6003 /** Immediately switch to a different input stream.
6004  * @param input_file A readable stream.
6005  * 
6006  * @note This function does not reset the start condition to @c INITIAL .
6007  */
6008 void surf_parse_restart(FILE * input_file)
6009 {
6010
6011   if (!YY_CURRENT_BUFFER) {
6012     surf_parse_ensure_buffer_stack();
6013     YY_CURRENT_BUFFER_LVALUE =
6014       surf_parse__create_buffer(surf_parse_in, YY_BUF_SIZE);
6015   }
6016
6017   surf_parse__init_buffer(YY_CURRENT_BUFFER, input_file);
6018   surf_parse__load_buffer_state();
6019 }
6020
6021 /** Switch to a different input buffer.
6022  * @param new_buffer The new input buffer.
6023  * 
6024  */
6025 void surf_parse__switch_to_buffer(YY_BUFFER_STATE new_buffer)
6026 {
6027
6028   /* TODO. We should be able to replace this entire function body
6029    * with
6030    *              surf_parse_pop_buffer_state();
6031    *              surf_parse_push_buffer_state(new_buffer);
6032    */
6033   surf_parse_ensure_buffer_stack();
6034   if (YY_CURRENT_BUFFER == new_buffer)
6035     return;
6036
6037   if (YY_CURRENT_BUFFER) {
6038     /* Flush out information for old buffer. */
6039     *(yy_c_buf_p) = (yy_hold_char);
6040     YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6041     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6042   }
6043
6044   YY_CURRENT_BUFFER_LVALUE = new_buffer;
6045   surf_parse__load_buffer_state();
6046
6047   /* We don't actually know whether we did this switch during
6048    * EOF (surf_parse_wrap()) processing, but the only time this flag
6049    * is looked at is after surf_parse_wrap() is called, so it's safe
6050    * to go ahead and always set it.
6051    */
6052   (yy_did_buffer_switch_on_eof) = 1;
6053 }
6054
6055 static void surf_parse__load_buffer_state(void)
6056 {
6057   (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6058   (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6059   surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6060   (yy_hold_char) = *(yy_c_buf_p);
6061 }
6062
6063 /** Allocate and initialize an input buffer state.
6064  * @param file A readable stream.
6065  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
6066  * 
6067  * @return the allocated buffer state.
6068  */
6069 YY_BUFFER_STATE surf_parse__create_buffer(FILE * file, int size)
6070 {
6071   YY_BUFFER_STATE b;
6072
6073   b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof(struct yy_buffer_state));
6074   if (!b)
6075     YY_FATAL_ERROR("out of dynamic memory in surf_parse__create_buffer()");
6076
6077   b->yy_buf_size = size;
6078
6079   /* yy_ch_buf has to be 2 characters longer than the size given because
6080    * we need to put in 2 end-of-buffer characters.
6081    */
6082   b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2);
6083   if (!b->yy_ch_buf)
6084     YY_FATAL_ERROR("out of dynamic memory in surf_parse__create_buffer()");
6085
6086   b->yy_is_our_buffer = 1;
6087
6088   surf_parse__init_buffer(b, file);
6089
6090   return b;
6091 }
6092
6093 /** Destroy the buffer.
6094  * @param b a buffer created with surf_parse__create_buffer()
6095  * 
6096  */
6097 void surf_parse__delete_buffer(YY_BUFFER_STATE b)
6098 {
6099
6100   if (!b)
6101     return;
6102
6103   if (b == YY_CURRENT_BUFFER)   /* Not sure if we should pop here. */
6104     YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
6105
6106   if (b->yy_is_our_buffer)
6107     surf_parse_free((void *) b->yy_ch_buf);
6108
6109   surf_parse_free((void *) b);
6110 }
6111
6112 #ifndef __cplusplus
6113 #ifndef WIN32
6114 extern int isatty(int);
6115 #endif
6116 #endif /* __cplusplus */
6117
6118 /* Initializes or reinitializes a buffer.
6119  * This function is sometimes called more than once on the same buffer,
6120  * such as during a surf_parse_restart() or at EOF.
6121  */
6122 static void surf_parse__init_buffer(YY_BUFFER_STATE b, FILE * file)
6123 {
6124   int oerrno = errno;
6125
6126   surf_parse__flush_buffer(b);
6127
6128   b->yy_input_file = file;
6129   b->yy_fill_buffer = 1;
6130
6131   /* If b is the current buffer, then surf_parse__init_buffer was _probably_
6132    * called from surf_parse_restart() or through yy_get_next_buffer.
6133    * In that case, we don't want to reset the lineno or column.
6134    */
6135   if (b != YY_CURRENT_BUFFER) {
6136     b->yy_bs_lineno = 1;
6137     b->yy_bs_column = 0;
6138   }
6139
6140   b->yy_is_interactive = file ? (isatty(fileno(file)) > 0) : 0;
6141
6142   errno = oerrno;
6143 }
6144
6145 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
6146  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
6147  * 
6148  */
6149 void surf_parse__flush_buffer(YY_BUFFER_STATE b)
6150 {
6151   if (!b)
6152     return;
6153
6154   b->yy_n_chars = 0;
6155
6156   /* We always need two end-of-buffer characters.  The first causes
6157    * a transition to the end-of-buffer state.  The second causes
6158    * a jam in that state.
6159    */
6160   b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
6161   b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
6162
6163   b->yy_buf_pos = &b->yy_ch_buf[0];
6164
6165   b->yy_at_bol = 1;
6166   b->yy_buffer_status = YY_BUFFER_NEW;
6167
6168   if (b == YY_CURRENT_BUFFER)
6169     surf_parse__load_buffer_state();
6170 }
6171
6172 /** Pushes the new state onto the stack. The new state becomes
6173  *  the current state. This function will allocate the stack
6174  *  if necessary.
6175  *  @param new_buffer The new state.
6176  *  
6177  */
6178 void surf_parse_push_buffer_state(YY_BUFFER_STATE new_buffer)
6179 {
6180   if (new_buffer == NULL)
6181     return;
6182
6183   surf_parse_ensure_buffer_stack();
6184
6185   /* This block is copied from surf_parse__switch_to_buffer. */
6186   if (YY_CURRENT_BUFFER) {
6187     /* Flush out information for old buffer. */
6188     *(yy_c_buf_p) = (yy_hold_char);
6189     YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6190     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6191   }
6192
6193   /* Only push if top exists. Otherwise, replace top. */
6194   if (YY_CURRENT_BUFFER)
6195     (yy_buffer_stack_top)++;
6196   YY_CURRENT_BUFFER_LVALUE = new_buffer;
6197
6198   /* copied from surf_parse__switch_to_buffer. */
6199   surf_parse__load_buffer_state();
6200   (yy_did_buffer_switch_on_eof) = 1;
6201 }
6202
6203 /** Removes and deletes the top of the stack, if present.
6204  *  The next element becomes the new top.
6205  *  
6206  */
6207 void surf_parse_pop_buffer_state(void)
6208 {
6209   if (!YY_CURRENT_BUFFER)
6210     return;
6211
6212   surf_parse__delete_buffer(YY_CURRENT_BUFFER);
6213   YY_CURRENT_BUFFER_LVALUE = NULL;
6214   if ((yy_buffer_stack_top) > 0)
6215     --(yy_buffer_stack_top);
6216
6217   if (YY_CURRENT_BUFFER) {
6218     surf_parse__load_buffer_state();
6219     (yy_did_buffer_switch_on_eof) = 1;
6220   }
6221 }
6222
6223 /* Allocates the stack if it does not exist.
6224  *  Guarantees space for at least one push.
6225  */
6226 static void surf_parse_ensure_buffer_stack(void)
6227 {
6228   int num_to_alloc;
6229
6230   if (!(yy_buffer_stack)) {
6231
6232     /* First allocation is just for 2 elements, since we don't know if this
6233      * scanner will even need a stack. We use 2 instead of 1 to avoid an
6234      * immediate realloc on the next call.
6235      */
6236     num_to_alloc = 1;
6237     (yy_buffer_stack) = (struct yy_buffer_state **) surf_parse_alloc
6238       (num_to_alloc * sizeof(struct yy_buffer_state *)
6239       );
6240     if (!(yy_buffer_stack))
6241       YY_FATAL_ERROR
6242         ("out of dynamic memory in surf_parse_ensure_buffer_stack()");
6243
6244     memset((yy_buffer_stack), 0,
6245            num_to_alloc * sizeof(struct yy_buffer_state *));
6246
6247     (yy_buffer_stack_max) = num_to_alloc;
6248     (yy_buffer_stack_top) = 0;
6249     return;
6250   }
6251
6252   if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1) {
6253
6254     /* Increase the buffer to prepare for a possible push. */
6255     int grow_size = 8 /* arbitrary grow size */ ;
6256
6257     num_to_alloc = (yy_buffer_stack_max) + grow_size;
6258     (yy_buffer_stack) = (struct yy_buffer_state **) surf_parse_realloc
6259       ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state *)
6260       );
6261     if (!(yy_buffer_stack))
6262       YY_FATAL_ERROR
6263         ("out of dynamic memory in surf_parse_ensure_buffer_stack()");
6264
6265     /* zero only the new slots. */
6266     memset((yy_buffer_stack) + (yy_buffer_stack_max), 0,
6267            grow_size * sizeof(struct yy_buffer_state *));
6268     (yy_buffer_stack_max) = num_to_alloc;
6269   }
6270 }
6271
6272 /** Setup the input buffer state to scan directly from a user-specified character buffer.
6273  * @param base the character buffer
6274  * @param size the size in bytes of the character buffer
6275  * 
6276  * @return the newly allocated buffer state object. 
6277  */
6278 YY_BUFFER_STATE surf_parse__scan_buffer(char *base, yy_size_t size)
6279 {
6280   YY_BUFFER_STATE b;
6281
6282   if (size < 2 ||
6283       base[size - 2] != YY_END_OF_BUFFER_CHAR ||
6284       base[size - 1] != YY_END_OF_BUFFER_CHAR)
6285     /* They forgot to leave room for the EOB's. */
6286     return 0;
6287
6288   b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof(struct yy_buffer_state));
6289   if (!b)
6290     YY_FATAL_ERROR("out of dynamic memory in surf_parse__scan_buffer()");
6291
6292   b->yy_buf_size = size - 2;    /* "- 2" to take care of EOB's */
6293   b->yy_buf_pos = b->yy_ch_buf = base;
6294   b->yy_is_our_buffer = 0;
6295   b->yy_input_file = 0;
6296   b->yy_n_chars = b->yy_buf_size;
6297   b->yy_is_interactive = 0;
6298   b->yy_at_bol = 1;
6299   b->yy_fill_buffer = 0;
6300   b->yy_buffer_status = YY_BUFFER_NEW;
6301
6302   surf_parse__switch_to_buffer(b);
6303
6304   return b;
6305 }
6306
6307 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
6308  * scan from a @e copy of @a str.
6309  * @param yystr a NUL-terminated string to scan
6310  * 
6311  * @return the newly allocated buffer state object.
6312  * @note If you want to scan bytes that may contain NUL values, then use
6313  *       surf_parse__scan_bytes() instead.
6314  */
6315 YY_BUFFER_STATE surf_parse__scan_string(yyconst char *yystr)
6316 {
6317
6318   return surf_parse__scan_bytes(yystr, strlen(yystr));
6319 }
6320
6321 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
6322  * scan from a @e copy of @a bytes.
6323  * @param bytes the byte buffer to scan
6324  * @param len the number of bytes in the buffer pointed to by @a bytes.
6325  * 
6326  * @return the newly allocated buffer state object.
6327  */
6328 YY_BUFFER_STATE surf_parse__scan_bytes(yyconst char *yybytes,
6329                                        int _yybytes_len)
6330 {
6331   YY_BUFFER_STATE b;
6332   char *buf;
6333   yy_size_t n;
6334   int i;
6335
6336   /* Get memory for full buffer, including space for trailing EOB's. */
6337   n = _yybytes_len + 2;
6338   buf = (char *) surf_parse_alloc(n);
6339   if (!buf)
6340     YY_FATAL_ERROR("out of dynamic memory in surf_parse__scan_bytes()");
6341
6342   for (i = 0; i < _yybytes_len; ++i)
6343     buf[i] = yybytes[i];
6344
6345   buf[_yybytes_len] = buf[_yybytes_len + 1] = YY_END_OF_BUFFER_CHAR;
6346
6347   b = surf_parse__scan_buffer(buf, n);
6348   if (!b)
6349     YY_FATAL_ERROR("bad buffer in surf_parse__scan_bytes()");
6350
6351   /* It's okay to grow etc. this buffer, and we should throw it
6352    * away when we're done.
6353    */
6354   b->yy_is_our_buffer = 1;
6355
6356   return b;
6357 }
6358
6359 static void yy_push_state(int new_state)
6360 {
6361   if ((yy_start_stack_ptr) >= (yy_start_stack_depth)) {
6362     yy_size_t new_size;
6363
6364     (yy_start_stack_depth) += YY_START_STACK_INCR;
6365     new_size = (yy_start_stack_depth) * sizeof(int);
6366
6367     if (!(yy_start_stack))
6368       (yy_start_stack) = (int *) surf_parse_alloc(new_size);
6369
6370     else
6371       (yy_start_stack) =
6372         (int *) surf_parse_realloc((void *) (yy_start_stack), new_size);
6373
6374     if (!(yy_start_stack))
6375       YY_FATAL_ERROR("out of memory expanding start-condition stack");
6376   }
6377
6378   (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
6379
6380   BEGIN(new_state);
6381 }
6382
6383 static void yy_pop_state(void)
6384 {
6385   if (--(yy_start_stack_ptr) < 0)
6386     YY_FATAL_ERROR("start-condition stack underflow");
6387
6388   BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
6389 }
6390
6391 #ifndef YY_EXIT_FAILURE
6392 #define YY_EXIT_FAILURE 2
6393 #endif
6394
6395 static void yy_fatal_error(yyconst char *msg)
6396 {
6397   (void) fprintf(stderr, "%s\n", msg);
6398   exit(YY_EXIT_FAILURE);
6399 }
6400
6401 /* Redefine yyless() so it works in section 3 code. */
6402
6403 #undef yyless
6404 #define yyless(n) \
6405         do \
6406                 { \
6407                 /* Undo effects of setting up surf_parse_text. */ \
6408         int yyless_macro_arg = (n); \
6409         YY_LESS_LINENO(yyless_macro_arg);\
6410                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
6411                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
6412                 (yy_hold_char) = *(yy_c_buf_p); \
6413                 *(yy_c_buf_p) = '\0'; \
6414                 surf_parse_leng = yyless_macro_arg; \
6415                 } \
6416         while ( 0 )
6417
6418 /* Accessor  methods (get/set functions) to struct members. */
6419
6420 /** Get the current line number.
6421  * 
6422  */
6423 int surf_parse_get_lineno(void)
6424 {
6425
6426   return surf_parse_lineno;
6427 }
6428
6429 /** Get the input stream.
6430  * 
6431  */
6432 FILE *surf_parse_get_in(void)
6433 {
6434   return surf_parse_in;
6435 }
6436
6437 /** Get the output stream.
6438  * 
6439  */
6440 FILE *surf_parse_get_out(void)
6441 {
6442   return surf_parse_out;
6443 }
6444
6445 /** Get the length of the current token.
6446  * 
6447  */
6448 int surf_parse_get_leng(void)
6449 {
6450   return surf_parse_leng;
6451 }
6452
6453 /** Get the current token.
6454  * 
6455  */
6456
6457 char *surf_parse_get_text(void)
6458 {
6459   return surf_parse_text;
6460 }
6461
6462 /** Set the current line number.
6463  * @param line_number
6464  * 
6465  */
6466 void surf_parse_set_lineno(int line_number)
6467 {
6468
6469   surf_parse_lineno = line_number;
6470 }
6471
6472 /** Set the input stream. This does not discard the current
6473  * input buffer.
6474  * @param in_str A readable stream.
6475  * 
6476  * @see surf_parse__switch_to_buffer
6477  */
6478 void surf_parse_set_in(FILE * in_str)
6479 {
6480   surf_parse_in = in_str;
6481 }
6482
6483 void surf_parse_set_out(FILE * out_str)
6484 {
6485   surf_parse_out = out_str;
6486 }
6487
6488 int surf_parse_get_debug(void)
6489 {
6490   return surf_parse__flex_debug;
6491 }
6492
6493 void surf_parse_set_debug(int bdebug)
6494 {
6495   surf_parse__flex_debug = bdebug;
6496 }
6497
6498 static int yy_init_globals(void)
6499 {
6500   /* Initialization is the same as for the non-reentrant scanner.
6501    * This function is called from surf_parse_lex_destroy(), so don't allocate here.
6502    */
6503
6504   /* We do not touch surf_parse_lineno unless the option is enabled. */
6505   surf_parse_lineno = 1;
6506
6507   (yy_buffer_stack) = 0;
6508   (yy_buffer_stack_top) = 0;
6509   (yy_buffer_stack_max) = 0;
6510   (yy_c_buf_p) = (char *) 0;
6511   (yy_init) = 0;
6512   (yy_start) = 0;
6513
6514   (yy_start_stack_ptr) = 0;
6515   (yy_start_stack_depth) = 0;
6516   (yy_start_stack) = NULL;
6517
6518 /* Defined in main.c */
6519 #ifdef YY_STDINIT
6520   surf_parse_in = stdin;
6521   surf_parse_out = stdout;
6522 #else
6523   surf_parse_in = (FILE *) 0;
6524   surf_parse_out = (FILE *) 0;
6525 #endif
6526
6527   /* For future reference: Set errno on error, since we are called by
6528    * surf_parse_lex_init()
6529    */
6530   return 0;
6531 }
6532
6533 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
6534 int surf_parse_lex_destroy(void)
6535 {
6536
6537   /* Pop the buffer stack, destroying each element. */
6538   while (YY_CURRENT_BUFFER) {
6539     surf_parse__delete_buffer(YY_CURRENT_BUFFER);
6540     YY_CURRENT_BUFFER_LVALUE = NULL;
6541     surf_parse_pop_buffer_state();
6542   }
6543
6544   /* Destroy the stack itself. */
6545   surf_parse_free((yy_buffer_stack));
6546   (yy_buffer_stack) = NULL;
6547
6548   /* Destroy the start condition stack. */
6549   surf_parse_free((yy_start_stack));
6550   (yy_start_stack) = NULL;
6551
6552   /* Reset the globals. This is important in a non-reentrant scanner so the next time
6553    * surf_parse_lex() is called, initialization will occur. */
6554   yy_init_globals();
6555
6556   return 0;
6557 }
6558
6559 /*
6560  * Internal utility routines.
6561  */
6562
6563 #ifndef yytext_ptr
6564 static void yy_flex_strncpy(char *s1, yyconst char *s2, int n)
6565 {
6566   register int i;
6567   for (i = 0; i < n; ++i)
6568     s1[i] = s2[i];
6569 }
6570 #endif
6571
6572 #ifdef YY_NEED_STRLEN
6573 static int yy_flex_strlen(yyconst char *s)
6574 {
6575   register int n;
6576   for (n = 0; s[n]; ++n);
6577
6578   return n;
6579 }
6580 #endif
6581
6582 void *surf_parse_alloc(yy_size_t size)
6583 {
6584   return (void *) malloc(size);
6585 }
6586
6587 void *surf_parse_realloc(void *ptr, yy_size_t size)
6588 {
6589   /* The cast to (char *) in the following accommodates both
6590    * implementations that use char* generic pointers, and those
6591    * that use void* generic pointers.  It works with the latter
6592    * because both ANSI C and C++ allow castless assignment from
6593    * any pointer type to void*, and deal with argument conversions
6594    * as though doing an assignment.
6595    */
6596   return (void *) realloc((char *) ptr, size);
6597 }
6598
6599 void surf_parse_free(void *ptr)
6600 {
6601   free((char *) ptr);           /* see surf_parse_realloc() for (char *) cast */
6602 }
6603
6604 #define YYTABLES_NAME "yytables"
6605
6606 /* Element context stack lookup. */
6607 int surfxml_element_context(int i)
6608 {
6609   return (0 < i && i < yy_start_stack_depth
6610           ? yy_start_stack[yy_start_stack_ptr - i]
6611           : 0);
6612 }
6613
6614 #ifdef FLEX_DEBUG
6615 void print_yy_stack(char *fmt, ...)
6616 {
6617   int i = 0;
6618   va_list ap;
6619   va_start(ap, fmt);
6620   vfprintf(stderr, fmt, ap);
6621   if (surfxml_statenames) {
6622     for (i = 1; i < yy_start_stack_ptr; i++) {
6623       fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i]]);
6624     }
6625     fprintf(stderr, "%s\n", surfxml_statenames[YY_START]);
6626   }
6627   va_end(ap);
6628 }
6629
6630 void print_surfxml_bufferstack()
6631 {
6632   int i;
6633   fputs("Buffer: ", stderr);
6634   for (i = 0; i < blimit; i++) {
6635     if (surfxml_bufferstack[i] == '\377')
6636       break;
6637     putc(surfxml_bufferstack[i], stderr);
6638   }
6639   putc('\n', stderr);
6640 }
6641
6642 static void debug_enter(int state, const char *statename)
6643 {
6644   yy_push_state(state);
6645   if (surf_parse__flex_debug) {
6646     print_yy_stack("--ENTER(%s) : ", statename);
6647     print_surfxml_bufferstack();
6648   }
6649 }
6650
6651 static void debug_leave(void)
6652 {
6653   if (surf_parse__flex_debug) {
6654     print_yy_stack("--LEAVE : ");
6655     print_surfxml_bufferstack();
6656   }
6657   yy_pop_state();
6658 }
6659
6660 static void debug_set(int state, const char *statename)
6661 {
6662   BEGIN(state);
6663   if (surf_parse__flex_debug)
6664     print_yy_stack("--SET(%s) : ", statename);
6665 }
6666 #endif
6667
6668 static void cleanup(void)
6669 {
6670   if (surfxml_statenames) {
6671     free(surfxml_statenames);
6672     surfxml_statenames = NULL;
6673   }
6674   free(surfxml_bufferstack);
6675   surfxml_bufferstack = NULL;
6676
6677   free(indexstack);
6678   indexstack = NULL;
6679 }
6680
6681 static int fail(const char *fmt, ...)
6682 {
6683   int chars_left, used;
6684   va_list ap;
6685   va_start(ap, fmt);
6686 #ifdef FLEXML_yylineno
6687   used = sprintf(flexml_err_msg,
6688                  "Invalid XML (XML input line %d, state %d): ",
6689                  surf_parse_lineno, YY_START);
6690 #else
6691   used = sprintf(flexml_err_msg, "Invalid XML (state %d): ", YY_START);
6692 #endif
6693   chars_left = flexml_max_err_msg_size - used - 1;
6694   vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
6695   va_end(ap);
6696
6697 #ifndef FLEXML_quiet_parser
6698   /* print directly to sdterr */
6699   fprintf(stderr, "%s\n", flexml_err_msg);
6700   flexml_err_msg[0] = '\0';
6701 #endif
6702
6703   cleanup();
6704
6705   return 1;
6706 }