Logo AND Algorithmique Numérique Distribuée

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