Logo AND Algorithmique Numérique Distribuée

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