Logo AND Algorithmique Numérique Distribuée

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