Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
We can use the cluster tag without backbone link if bb_bw and bb_lat attributes are...
[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  *
3165  * This program was generated with the FleXML XML processor generator.
3166  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
3167  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
3168  * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
3169  * 
3170  * There are two, intertwined parts to this program, part A and part B.
3171  *
3172  * Part A
3173  * ------
3174  * 
3175  * Some parts, here collectively called "Part A", are found in the 
3176  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
3177  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
3178  *
3179  * You can redistribute, use, perform, display and/or modify "Part A"
3180  * provided the following two conditions hold:
3181  *
3182  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
3183  *    FleXML; without even the implied warranty of MERCHANTABILITY or
3184  *    FITNESS FOR A PARTICULAR PURPOSE.
3185  *
3186  * 2. The program distribution conditions do not in any way affect the
3187  *    distribution conditions of the FleXML system used to generate this
3188  *    file or any version of FleXML derived from that system.
3189  *
3190  * Notice that these are explicit rights granted to you for files
3191  * generated by the FleXML system.  For your rights in connection with
3192  * the FleXML system itself please consult the GNU General Public License.
3193  * 
3194  * Part B
3195  * ------
3196  * 
3197  * The other parts, here collectively called "Part B", and which came 
3198  * from the DTD used by FleXML to generate this program, can be 
3199  * distributed (or not, as the case may be) under the terms of whoever
3200  * wrote them, provided these terms respect and obey the two conditions 
3201  * above under the heading "Part A".
3202  *
3203  * The author of and contributors to FleXML specifically disclaim
3204  * any copyright interest in "Part B", unless "Part B" was written 
3205  * by the author of or contributors to FleXML.
3206  * 
3207  */
3208
3209 /* Version strings. */
3210 const char rcs_surfxml_flexml_skeleton[] =
3211  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
3212 const char rcs_surfxml_flexml[] =
3213  "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
3214
3215 /* ANSI headers. */
3216 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
3217 #include <stdio.h>
3218 #include <string.h>
3219 #include <assert.h>
3220 #include <stdarg.h>
3221 #include <ctype.h>
3222      
3223 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3224 # ifndef __STRICT_ANSI__
3225 #  include <io.h>
3226 #  include <process.h>
3227 # endif
3228 #else
3229 # include <unistd.h>
3230 #endif
3231      
3232 #ifndef FLEXML_INDEXSTACKSIZE
3233 #define FLEXML_INDEXSTACKSIZE 1000
3234 #endif
3235
3236 /* Generated definitions. */
3237 #define FLEXML_yylineno
3238 #ifndef FLEXML_BUFFERSTACKSIZE
3239 #define FLEXML_BUFFERSTACKSIZE 1000000
3240 #endif
3241 #define FLEXML_NEED_BUFFERLIT
3242
3243 /* XML processor api. */
3244 /* FleXML-provided data. */
3245 int surfxml_pcdata_ix;
3246 extern char *surfxml_bufferstack;
3247 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
3248 AT_surfxml_random_generator AX_surfxml_random_generator;
3249 #define A_surfxml_random_generator AX_surfxml_random_generator
3250 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
3251 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
3252 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
3253 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
3254 AT_surfxml_prop_id AX_surfxml_prop_id;
3255 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
3256 AT_surfxml_host_id AX_surfxml_host_id;
3257 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
3258 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
3259 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
3260 AT_surfxml_peer_lat AX_surfxml_peer_lat;
3261 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
3262 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
3263 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
3264 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
3265 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
3266 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
3267 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
3268 AT_surfxml_host_state AX_surfxml_host_state;
3269 #define A_surfxml_host_state AX_surfxml_host_state
3270 AT_surfxml_AS_id AX_surfxml_AS_id;
3271 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
3272 AT_surfxml_host_power AX_surfxml_host_power;
3273 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
3274 AT_surfxml_router_id AX_surfxml_router_id;
3275 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
3276 AT_surfxml_process_start_time AX_surfxml_process_start_time;
3277 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
3278 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
3279 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
3280 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
3281 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
3282 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
3283 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
3284 AT_surfxml_trace_file AX_surfxml_trace_file;
3285 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
3286 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
3287 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
3288 AT_surfxml_random_min AX_surfxml_random_min;
3289 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
3290 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
3291 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
3292 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
3293 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
3294 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
3295 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
3296 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
3297 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
3298 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
3299 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
3300 AT_surfxml_argument_value AX_surfxml_argument_value;
3301 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
3302 AT_surfxml_link_state AX_surfxml_link_state;
3303 #define A_surfxml_link_state AX_surfxml_link_state
3304 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
3305 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
3306 AT_surfxml_AS_routing AX_surfxml_AS_routing;
3307 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
3308 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
3309 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
3310 AT_surfxml_cluster_id AX_surfxml_cluster_id;
3311 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
3312 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
3313 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
3314 AT_surfxml_random_mean AX_surfxml_random_mean;
3315 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
3316 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
3317 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
3318 AT_surfxml_link_latency AX_surfxml_link_latency;
3319 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
3320 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
3321 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
3322 AT_surfxml_random_seed AX_surfxml_random_seed;
3323 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
3324 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
3325 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
3326 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
3327 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
3328 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
3329 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
3330 AT_surfxml_random_id AX_surfxml_random_id;
3331 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
3332 AT_surfxml_random_max AX_surfxml_random_max;
3333 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
3334 AT_surfxml_link_id AX_surfxml_link_id;
3335 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
3336 AT_surfxml_process_host AX_surfxml_process_host;
3337 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
3338 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
3339 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
3340 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
3341 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
3342 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
3343 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
3344 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
3345 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
3346 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
3347 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
3348 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
3349 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
3350 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
3351 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
3352 AT_surfxml_prop_value AX_surfxml_prop_value;
3353 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
3354 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
3355 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
3356 AT_surfxml_random_radical AX_surfxml_random_radical;
3357 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
3358 AT_surfxml_link_state_file AX_surfxml_link_state_file;
3359 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
3360 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
3361 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
3362 AT_surfxml_cluster_power AX_surfxml_cluster_power;
3363 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
3364 AT_surfxml_process_function AX_surfxml_process_function;
3365 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
3366 AT_surfxml_peer_id AX_surfxml_peer_id;
3367 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
3368 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
3369 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
3370 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
3371 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
3372 AT_surfxml_host_core AX_surfxml_host_core;
3373 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
3374 AT_surfxml_host_availability AX_surfxml_host_availability;
3375 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
3376 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
3377 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
3378 AT_surfxml_route_src AX_surfxml_route_src;
3379 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
3380 AT_surfxml_bypassRoute_gw_dst AX_surfxml_bypassRoute_gw_dst;
3381 #define A_surfxml_bypassRoute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_dst)
3382 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
3383 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
3384 AT_surfxml_trace_id AX_surfxml_trace_id;
3385 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
3386 AT_surfxml_peer_power AX_surfxml_peer_power;
3387 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
3388 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
3389 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3390 AT_surfxml_config_id AX_surfxml_config_id;
3391 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
3392 AT_surfxml_bypassRoute_gw_src AX_surfxml_bypassRoute_gw_src;
3393 #define A_surfxml_bypassRoute_gw_src (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_src)
3394 AT_surfxml_cluster_core AX_surfxml_cluster_core;
3395 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
3396 AT_surfxml_include_file AX_surfxml_include_file;
3397 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
3398 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3399 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3400 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3401 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3402 AT_surfxml_route_dst AX_surfxml_route_dst;
3403 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3404 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3405 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3406 AT_surfxml_platform_version AX_surfxml_platform_version;
3407 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3408
3409 /* XML state. */
3410 #ifdef FLEX_DEBUG
3411 # define ENTER(state)   debug_enter(state,#state)
3412 # define LEAVE          debug_leave()
3413 # define SET(state)     debug_set(state,#state)
3414   static void debug_enter(int, const char*);
3415   static void debug_leave(void);
3416   static void debug_set(int, const char*);
3417 #else
3418 # define ENTER(state)   (yy_push_state(state))
3419 # define LEAVE          (yy_pop_state())
3420 # define SET(state)     BEGIN(state)
3421 #endif
3422
3423 /* Generic actions. */
3424 #define SKIP    /*skip*/
3425 #define SUCCEED        CLEANUP; return 0
3426
3427 #define FAIL    return fail
3428 static int fail(const char*, ...);
3429
3430 enum {flexml_max_err_msg_size = 512};
3431 static char flexml_err_msg[flexml_max_err_msg_size];
3432 const char * surfxml_parse_err_msg()
3433 {
3434     return flexml_err_msg;
3435 }
3436 static void reset_surfxml_parse_err_msg()
3437 {
3438     flexml_err_msg[0] = '\0';
3439 }
3440
3441 /* Cleanup */
3442 static void cleanup(void);
3443 #define CLEANUP  cleanup()
3444
3445 /* Text buffer stack handling. */
3446 char *surfxml_bufferstack = NULL;
3447 static int blimit = FLEXML_BUFFERSTACKSIZE;
3448 static int bnext = 1;
3449
3450 static int *indexstack = NULL;
3451 static int ilimit = FLEXML_INDEXSTACKSIZE;
3452 static int inext = 1;
3453
3454 #define BUFFERSET(P)  (P = bnext)
3455 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3456 #define BUFFERDONE    (BUFFERPUTC('\0'))
3457
3458 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3459
3460 /* after this is called, there are at least 2 slots left in the stack */
3461 static int ck_blimit()
3462 {
3463      if (bnext >= blimit) {
3464          blimit += FLEXML_BUFFERSTACKSIZE + 2;
3465          {
3466              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3467              assert(temp);
3468              surfxml_bufferstack = temp;
3469          }
3470      }
3471      return 0;
3472 }
3473
3474 /* after this is called, there are at least 2 slots left in the stack */
3475 static int ck_ilimit()
3476 {
3477      if (inext >= ilimit) {
3478          ilimit += FLEXML_INDEXSTACKSIZE + 2;
3479          {
3480              int *temp = (int *) realloc(indexstack, ilimit);
3481              assert(temp);
3482              indexstack = temp;
3483          }
3484      }
3485      return 0;
3486 }
3487
3488 #ifdef FLEXML_NEED_BUFFERLIT
3489 static void surfxml_bufferliteral(char c, int* pp, const char* text)
3490 {
3491   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
3492   assert(s <= e); BUFFERSET(*pp);
3493   while (++s<e) {
3494     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
3495     else BUFFERPUTC(*s);
3496   }
3497   BUFFERDONE;
3498 }
3499 #endif
3500
3501 static void pushbuffer(int p)
3502 {
3503     ck_ilimit();
3504     indexstack[inext++] = p;
3505     indexstack[inext++] = bnext;    
3506 }
3507
3508 static int popbuffer(void)
3509 {
3510     assert(inext >= 2);
3511     bnext = indexstack[--inext];
3512     return indexstack[--inext];
3513 }
3514
3515 /* General internal entities are `unput' back onto the input stream... */
3516 #define ENTITYTEXT(T) \
3517   { char *s = (T), *e = s+strlen(s);\
3518     while (--e >= s) { unput(*e); }}
3519
3520 /* Flex standard options. */
3521 #define YY_NO_INPUT 1
3522 /* Flex user-requested options. */
3523 /* XML character classes (currently restricted to ASCII). */
3524 /* "Common syntactic structures." */
3525 /* "Names and Tokens." */
3526 /* Miscellaneous. */
3527 /* Parser states (flex `exclusive start conditions'):
3528  *
3529  * PROLOG       the XML prolog of the document before <?xml...>
3530  * DOCTYPE      the XML prolog of the document after <?xml...>
3531  * EPILOG       after the root element
3532  * INCOMMENT    inside an XML comment <!--....-->
3533  * INPI         inside an XML PI <?...?>
3534  * VALUE1       inside a '...'-delimited literal
3535  * VALUE2       inside a "..."-delimited literal
3536  * CDATA        inside a <![CDATA[...] ]> section.
3537  * ROOT_<tag>   expect root element <tag>
3538  * AL_<tag>     inside the attribute list for <tag>
3539  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
3540  * IMPOSSIBLE   dummy to permit disabling rules; must be last
3541  */
3542
3543 /* State names. */
3544 const char* *surfxml_statenames=NULL;
3545
3546 #define INITIAL 0
3547 #define PROLOG 1
3548 #define DOCTYPE 2
3549 #define EPILOG 3
3550 #define INCOMMENT 4
3551 #define INPI 5
3552 #define VALUE1 6
3553 #define VALUE2 7
3554 #define CDATA 8
3555 #define ROOT_surfxml_platform 9
3556 #define AL_surfxml_platform 10
3557 #define S_surfxml_platform 11
3558 #define S_surfxml_platform_1 12
3559 #define S_surfxml_platform_2 13
3560 #define S_surfxml_platform_3 14
3561 #define S_surfxml_platform_4 15
3562 #define S_surfxml_platform_5 16
3563 #define S_surfxml_platform_6 17
3564 #define S_surfxml_platform_7 18
3565 #define S_surfxml_platform_8 19
3566 #define E_surfxml_platform 20
3567 #define AL_surfxml_include 21
3568 #define E_surfxml_include 22
3569 #define AL_surfxml_trace 23
3570 #define IN_trace 24
3571 #define AL_surfxml_random 25
3572 #define S_surfxml_random 26
3573 #define S_surfxml_random_1 27
3574 #define S_surfxml_random_2 28
3575 #define E_surfxml_random 29
3576 #define AL_surfxml_trace_connect 30
3577 #define E_surfxml_trace_connect 31
3578 #define AL_surfxml_AS 32
3579 #define S_surfxml_AS 33
3580 #define S_surfxml_AS_1 34
3581 #define S_surfxml_AS_2 35
3582 #define S_surfxml_AS_3 36
3583 #define S_surfxml_AS_4 37
3584 #define S_surfxml_AS_5 38
3585 #define S_surfxml_AS_6 39
3586 #define S_surfxml_AS_7 40
3587 #define S_surfxml_AS_8 41
3588 #define S_surfxml_AS_9 42
3589 #define S_surfxml_AS_10 43
3590 #define S_surfxml_AS_11 44
3591 #define S_surfxml_AS_12 45
3592 #define S_surfxml_AS_13 46
3593 #define E_surfxml_AS 47
3594 #define AL_surfxml_host 48
3595 #define S_surfxml_host 49
3596 #define S_surfxml_host_1 50
3597 #define S_surfxml_host_2 51
3598 #define E_surfxml_host 52
3599 #define AL_surfxml_cluster 53
3600 #define E_surfxml_cluster 54
3601 #define AL_surfxml_peer 55
3602 #define E_surfxml_peer 56
3603 #define AL_surfxml_router 57
3604 #define E_surfxml_router 58
3605 #define AL_surfxml_link 59
3606 #define S_surfxml_link 60
3607 #define S_surfxml_link_1 61
3608 #define S_surfxml_link_2 62
3609 #define E_surfxml_link 63
3610 #define AL_surfxml_route 64
3611 #define S_surfxml_route 65
3612 #define S_surfxml_route_1 66
3613 #define S_surfxml_route_2 67
3614 #define E_surfxml_route 68
3615 #define AL_surfxml_ASroute 69
3616 #define S_surfxml_ASroute 70
3617 #define S_surfxml_ASroute_1 71
3618 #define S_surfxml_ASroute_2 72
3619 #define E_surfxml_ASroute 73
3620 #define AL_surfxml_link_ctn 74
3621 #define E_surfxml_link_ctn 75
3622 #define AL_surfxml_bypassRoute 76
3623 #define S_surfxml_bypassRoute 77
3624 #define S_surfxml_bypassRoute_1 78
3625 #define S_surfxml_bypassRoute_2 79
3626 #define E_surfxml_bypassRoute 80
3627 #define AL_surfxml_process 81
3628 #define S_surfxml_process 82
3629 #define S_surfxml_process_1 83
3630 #define S_surfxml_process_2 84
3631 #define E_surfxml_process 85
3632 #define AL_surfxml_argument 86
3633 #define E_surfxml_argument 87
3634 #define AL_surfxml_config 88
3635 #define S_surfxml_config 89
3636 #define S_surfxml_config_1 90
3637 #define S_surfxml_config_2 91
3638 #define E_surfxml_config 92
3639 #define AL_surfxml_prop 93
3640 #define E_surfxml_prop 94
3641 #define IMPOSSIBLE 95
3642
3643 #ifndef YY_NO_UNISTD_H
3644 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3645  * down here because we want the user's section 1 to have been scanned first.
3646  * The user has a chance to override it with an option.
3647  */
3648 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3649 #  ifndef __STRICT_ANSI__
3650 #    include <io.h>
3651 #    include <process.h>
3652 #  endif
3653 #else
3654 #  include <unistd.h>
3655 #endif
3656 #endif
3657
3658 #ifndef YY_EXTRA_TYPE
3659 #define YY_EXTRA_TYPE void *
3660 #endif
3661
3662 static int yy_init_globals (void );
3663
3664 /* Accessor methods to globals.
3665    These are made visible to non-reentrant scanners for convenience. */
3666
3667 int surf_parse_lex_destroy (void );
3668
3669 int surf_parse_get_debug (void );
3670
3671 void surf_parse_set_debug (int debug_flag  );
3672
3673 YY_EXTRA_TYPE surf_parse_get_extra (void );
3674
3675 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
3676
3677 FILE *surf_parse_get_in (void );
3678
3679 void surf_parse_set_in  (FILE * in_str  );
3680
3681 FILE *surf_parse_get_out (void );
3682
3683 void surf_parse_set_out  (FILE * out_str  );
3684
3685 int surf_parse_get_leng (void );
3686
3687 char *surf_parse_get_text (void );
3688
3689 int surf_parse_get_lineno (void );
3690
3691 void surf_parse_set_lineno (int line_number  );
3692
3693 /* Macros after this point can all be overridden by user definitions in
3694  * section 1.
3695  */
3696
3697 #ifndef YY_SKIP_YYWRAP
3698 #ifdef __cplusplus
3699 extern "C" int surf_parse_wrap (void );
3700 #else
3701 extern int surf_parse_wrap (void );
3702 #endif
3703 #endif
3704
3705 #ifndef yytext_ptr
3706 static void yy_flex_strncpy (char *,yyconst char *,int );
3707 #endif
3708
3709 #ifdef YY_NEED_STRLEN
3710 static int yy_flex_strlen (yyconst char * );
3711 #endif
3712
3713 #ifndef YY_NO_INPUT
3714
3715 #ifdef __cplusplus
3716 static int yyinput (void );
3717 #else
3718 static int input (void );
3719 #endif
3720
3721 #endif
3722
3723         static int yy_start_stack_ptr = 0;
3724         static int yy_start_stack_depth = 0;
3725         static int *yy_start_stack = NULL;
3726     
3727     static void yy_push_state (int new_state );
3728     
3729     static void yy_pop_state (void );
3730     
3731 /* Amount of stuff to slurp up with each read. */
3732 #ifndef YY_READ_BUF_SIZE
3733 #ifdef __ia64__
3734 /* On IA-64, the buffer size is 16k, not 8k */
3735 #define YY_READ_BUF_SIZE 16384
3736 #else
3737 #define YY_READ_BUF_SIZE 8192
3738 #endif /* __ia64__ */
3739 #endif
3740
3741 /* Copy whatever the last rule matched to the standard output. */
3742 #ifndef ECHO
3743 /* This used to be an fputs(), but since the string might contain NUL's,
3744  * we now use fwrite().
3745  */
3746 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
3747 #endif
3748
3749 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3750  * is returned in "result".
3751  */
3752 #ifndef YY_INPUT
3753 #define YY_INPUT(buf,result,max_size) \
3754         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3755                 { \
3756                 int c = '*'; \
3757                 size_t n; \
3758                 for ( n = 0; n < max_size && \
3759                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
3760                         buf[n] = (char) c; \
3761                 if ( c == '\n' ) \
3762                         buf[n++] = (char) c; \
3763                 if ( c == EOF && ferror( surf_parse_in ) ) \
3764                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3765                 result = n; \
3766                 } \
3767         else \
3768                 { \
3769                 errno=0; \
3770                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
3771                         { \
3772                         if( errno != EINTR) \
3773                                 { \
3774                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3775                                 break; \
3776                                 } \
3777                         errno=0; \
3778                         clearerr(surf_parse_in); \
3779                         } \
3780                 }\
3781 \
3782
3783 #endif
3784
3785 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3786  * we don't want an extra ';' after the "return" because that will cause
3787  * some compilers to complain about unreachable statements.
3788  */
3789 #ifndef yyterminate
3790 #define yyterminate() return YY_NULL
3791 #endif
3792
3793 /* Number of entries by which start-condition stack grows. */
3794 #ifndef YY_START_STACK_INCR
3795 #define YY_START_STACK_INCR 25
3796 #endif
3797
3798 /* Report a fatal error. */
3799 #ifndef YY_FATAL_ERROR
3800 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3801 #endif
3802
3803 /* end tables serialization structures and prototypes */
3804
3805 /* Default declaration of generated scanner - a define so the user can
3806  * easily add parameters.
3807  */
3808 #ifndef YY_DECL
3809 #define YY_DECL_IS_OURS 1
3810
3811 extern int surf_parse_lex (void);
3812
3813 #define YY_DECL int surf_parse_lex (void)
3814 #endif /* !YY_DECL */
3815
3816 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
3817  * have been set up.
3818  */
3819 #ifndef YY_USER_ACTION
3820 #define YY_USER_ACTION
3821 #endif
3822
3823 /* Code executed at the end of each rule. */
3824 #ifndef YY_BREAK
3825 #define YY_BREAK break;
3826 #endif
3827
3828 #define YY_RULE_SETUP \
3829         YY_USER_ACTION
3830
3831 /** The main scanner function which does all the work.
3832  */
3833 YY_DECL
3834 {
3835         register yy_state_type yy_current_state;
3836         register char *yy_cp, *yy_bp;
3837         register int yy_act;
3838     
3839  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3840  SET(PROLOG);
3841  reset_surfxml_parse_err_msg();
3842  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3843  assert(surfxml_bufferstack);
3844  #ifdef FLEX_DEBUG
3845  {
3846      int i;
3847      for (i = 0; i < blimit; i++) {
3848          surfxml_bufferstack[i] = '\377';
3849      }
3850  }
3851  #endif
3852  surfxml_bufferstack[0] = '\0';
3853  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3854  assert(indexstack);
3855  indexstack[0] = 0;
3856
3857   /* FleXML_init */
3858   bnext = inext = 1;
3859   surfxml_bufferliteral('\0', &bnext, "0.0");
3860   surfxml_bufferliteral('\0', &bnext, "2147483647");
3861   surfxml_bufferliteral('\0', &bnext, "1");
3862   surfxml_bufferliteral('\0', &bnext, "1.0");
3863   surfxml_bufferliteral('\0', &bnext, "1");
3864   surfxml_bufferliteral('\0', &bnext, "0.0");
3865   surfxml_bufferliteral('\0', &bnext, "-1.0");
3866   surfxml_bufferliteral('\0', &bnext, "-1.0");
3867   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3868   surfxml_statenames[PROLOG] = NULL;
3869   surfxml_statenames[DOCTYPE] = NULL;
3870   surfxml_statenames[EPILOG] = NULL;
3871   surfxml_statenames[INCOMMENT] = NULL;
3872   surfxml_statenames[INPI] = NULL;
3873   surfxml_statenames[VALUE1] = NULL;
3874   surfxml_statenames[VALUE2] = NULL;
3875   surfxml_statenames[CDATA] = NULL;
3876   surfxml_statenames[ROOT_surfxml_platform] = NULL;
3877   surfxml_statenames[AL_surfxml_platform] = NULL;
3878   surfxml_statenames[S_surfxml_platform] = "platform";
3879   surfxml_statenames[S_surfxml_platform_1] = "platform";
3880   surfxml_statenames[S_surfxml_platform_2] = "platform";
3881   surfxml_statenames[S_surfxml_platform_3] = "platform";
3882   surfxml_statenames[S_surfxml_platform_4] = "platform";
3883   surfxml_statenames[S_surfxml_platform_5] = "platform";
3884   surfxml_statenames[S_surfxml_platform_6] = "platform";
3885   surfxml_statenames[S_surfxml_platform_7] = "platform";
3886   surfxml_statenames[S_surfxml_platform_8] = "platform";
3887   surfxml_statenames[E_surfxml_platform] = "platform";
3888   surfxml_statenames[AL_surfxml_include] = NULL;
3889   surfxml_statenames[E_surfxml_include] = "include";
3890   surfxml_statenames[AL_surfxml_trace] = NULL;
3891   surfxml_statenames[IN_trace] = "trace";
3892   surfxml_statenames[AL_surfxml_random] = NULL;
3893   surfxml_statenames[S_surfxml_random] = "random";
3894   surfxml_statenames[S_surfxml_random_1] = "random";
3895   surfxml_statenames[S_surfxml_random_2] = "random";
3896   surfxml_statenames[E_surfxml_random] = "random";
3897   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
3898   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
3899   surfxml_statenames[AL_surfxml_AS] = NULL;
3900   surfxml_statenames[S_surfxml_AS] = "AS";
3901   surfxml_statenames[S_surfxml_AS_1] = "AS";
3902   surfxml_statenames[S_surfxml_AS_2] = "AS";
3903   surfxml_statenames[S_surfxml_AS_3] = "AS";
3904   surfxml_statenames[S_surfxml_AS_4] = "AS";
3905   surfxml_statenames[S_surfxml_AS_5] = "AS";
3906   surfxml_statenames[S_surfxml_AS_6] = "AS";
3907   surfxml_statenames[S_surfxml_AS_7] = "AS";
3908   surfxml_statenames[S_surfxml_AS_8] = "AS";
3909   surfxml_statenames[S_surfxml_AS_9] = "AS";
3910   surfxml_statenames[S_surfxml_AS_10] = "AS";
3911   surfxml_statenames[S_surfxml_AS_11] = "AS";
3912   surfxml_statenames[S_surfxml_AS_12] = "AS";
3913   surfxml_statenames[S_surfxml_AS_13] = "AS";
3914   surfxml_statenames[E_surfxml_AS] = "AS";
3915   surfxml_statenames[AL_surfxml_host] = NULL;
3916   surfxml_statenames[S_surfxml_host] = "host";
3917   surfxml_statenames[S_surfxml_host_1] = "host";
3918   surfxml_statenames[S_surfxml_host_2] = "host";
3919   surfxml_statenames[E_surfxml_host] = "host";
3920   surfxml_statenames[AL_surfxml_cluster] = NULL;
3921   surfxml_statenames[E_surfxml_cluster] = "cluster";
3922   surfxml_statenames[AL_surfxml_peer] = NULL;
3923   surfxml_statenames[E_surfxml_peer] = "peer";
3924   surfxml_statenames[AL_surfxml_router] = NULL;
3925   surfxml_statenames[E_surfxml_router] = "router";
3926   surfxml_statenames[AL_surfxml_link] = NULL;
3927   surfxml_statenames[S_surfxml_link] = "link";
3928   surfxml_statenames[S_surfxml_link_1] = "link";
3929   surfxml_statenames[S_surfxml_link_2] = "link";
3930   surfxml_statenames[E_surfxml_link] = "link";
3931   surfxml_statenames[AL_surfxml_route] = NULL;
3932   surfxml_statenames[S_surfxml_route] = "route";
3933   surfxml_statenames[S_surfxml_route_1] = "route";
3934   surfxml_statenames[S_surfxml_route_2] = "route";
3935   surfxml_statenames[E_surfxml_route] = "route";
3936   surfxml_statenames[AL_surfxml_ASroute] = NULL;
3937   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
3938   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
3939   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
3940   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
3941   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
3942   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
3943   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
3944   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
3945   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
3946   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
3947   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
3948   surfxml_statenames[AL_surfxml_process] = NULL;
3949   surfxml_statenames[S_surfxml_process] = "process";
3950   surfxml_statenames[S_surfxml_process_1] = "process";
3951   surfxml_statenames[S_surfxml_process_2] = "process";
3952   surfxml_statenames[E_surfxml_process] = "process";
3953   surfxml_statenames[AL_surfxml_argument] = NULL;
3954   surfxml_statenames[E_surfxml_argument] = "argument";
3955   surfxml_statenames[AL_surfxml_config] = NULL;
3956   surfxml_statenames[S_surfxml_config] = "config";
3957   surfxml_statenames[S_surfxml_config_1] = "config";
3958   surfxml_statenames[S_surfxml_config_2] = "config";
3959   surfxml_statenames[E_surfxml_config] = "config";
3960   surfxml_statenames[AL_surfxml_prop] = NULL;
3961   surfxml_statenames[E_surfxml_prop] = "prop";
3962   }
3963
3964  /* COMMENTS and PIs: handled uniformly for efficiency. */
3965
3966         if ( !(yy_init) )
3967                 {
3968                 (yy_init) = 1;
3969
3970 #ifdef YY_USER_INIT
3971                 YY_USER_INIT;
3972 #endif
3973
3974                 if ( ! (yy_start) )
3975                         (yy_start) = 1; /* first start state */
3976
3977                 if ( ! surf_parse_in )
3978                         surf_parse_in = stdin;
3979
3980                 if ( ! surf_parse_out )
3981                         surf_parse_out = stdout;
3982
3983                 if ( ! YY_CURRENT_BUFFER ) {
3984                         surf_parse_ensure_buffer_stack ();
3985                         YY_CURRENT_BUFFER_LVALUE =
3986                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3987                 }
3988
3989                 surf_parse__load_buffer_state( );
3990                 }
3991
3992         while ( 1 )             /* loops until end-of-file is reached */
3993                 {
3994                 yy_cp = (yy_c_buf_p);
3995
3996                 /* Support of surf_parse_text. */
3997                 *yy_cp = (yy_hold_char);
3998
3999                 /* yy_bp points to the position in yy_ch_buf of the start of
4000                  * the current run.
4001                  */
4002                 yy_bp = yy_cp;
4003
4004                 yy_current_state = (yy_start);
4005 yy_match:
4006                 do
4007                         {
4008                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
4009                         if ( yy_accept[yy_current_state] )
4010                                 {
4011                                 (yy_last_accepting_state) = yy_current_state;
4012                                 (yy_last_accepting_cpos) = yy_cp;
4013                                 }
4014                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4015                                 {
4016                                 yy_current_state = (int) yy_def[yy_current_state];
4017                                 if ( yy_current_state >= 2408 )
4018                                         yy_c = yy_meta[(unsigned int) yy_c];
4019                                 }
4020                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4021                         ++yy_cp;
4022                         }
4023                 while ( yy_base[yy_current_state] != 8043 );
4024
4025 yy_find_action:
4026                 yy_act = yy_accept[yy_current_state];
4027                 if ( yy_act == 0 )
4028                         { /* have to back up */
4029                         yy_cp = (yy_last_accepting_cpos);
4030                         yy_current_state = (yy_last_accepting_state);
4031                         yy_act = yy_accept[yy_current_state];
4032                         }
4033
4034                 YY_DO_BEFORE_ACTION;
4035
4036                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
4037                         {
4038                         int yyl;
4039                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
4040                                 if ( surf_parse_text[yyl] == '\n' )
4041                                            
4042     surf_parse_lineno++;
4043 ;
4044                         }
4045
4046 do_action:      /* This label is used only to access EOF actions. */
4047
4048                 switch ( yy_act )
4049         { /* beginning of action switch */
4050                         case 0: /* must back up */
4051                         /* undo the effects of YY_DO_BEFORE_ACTION */
4052                         *yy_cp = (yy_hold_char);
4053                         yy_cp = (yy_last_accepting_cpos);
4054                         yy_current_state = (yy_last_accepting_state);
4055                         goto yy_find_action;
4056
4057 case 1:
4058 YY_RULE_SETUP
4059 ENTER(INCOMMENT);
4060         YY_BREAK
4061 case 2:
4062 YY_RULE_SETUP
4063 ENTER(INPI);
4064         YY_BREAK
4065
4066 case 3:
4067 YY_RULE_SETUP
4068 LEAVE;
4069         YY_BREAK
4070 case 4:
4071 case 5:
4072 case 6:
4073 /* rule 6 can match eol */
4074 YY_RULE_SETUP
4075 SKIP;
4076         YY_BREAK
4077 case YY_STATE_EOF(INCOMMENT):
4078 FAIL("EOF in comment.");
4079         YY_BREAK
4080
4081 case 7:
4082 YY_RULE_SETUP
4083 LEAVE;
4084         YY_BREAK
4085 case 8:
4086 case 9:
4087 /* rule 9 can match eol */
4088 YY_RULE_SETUP
4089 SKIP;
4090         YY_BREAK
4091 case YY_STATE_EOF(INPI):
4092 FAIL("EOF in PI (processing instruction).");
4093         YY_BREAK
4094
4095 /* SPACES: skipped uniformly */
4096 case 10:
4097 /* rule 10 can match eol */
4098 YY_RULE_SETUP
4099 SKIP;
4100         YY_BREAK
4101 /* PROLOG: determine root element and process it. */
4102
4103 case 11:
4104 /* rule 11 can match eol */
4105 YY_RULE_SETUP
4106 SET(DOCTYPE); 
4107         YY_BREAK
4108 case 12:
4109 /* rule 12 can match eol */
4110 YY_RULE_SETUP
4111 FAIL("Bad declaration %s.",surf_parse_text);
4112         YY_BREAK
4113
4114 case 13:
4115 /* rule 13 can match eol */
4116 YY_RULE_SETUP
4117 SET(ROOT_surfxml_platform);
4118         YY_BREAK
4119 case 14:
4120 /* rule 14 can match eol */
4121 YY_RULE_SETUP
4122 FAIL("Bad declaration %s.",surf_parse_text);
4123         YY_BREAK
4124 case 15:
4125 YY_RULE_SETUP
4126 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
4127         YY_BREAK
4128 case YY_STATE_EOF(PROLOG):
4129 case YY_STATE_EOF(DOCTYPE):
4130 FAIL("EOF in prolog.");
4131         YY_BREAK
4132
4133 /* RULES DERIVED FROM DTD. */
4134 /* <!-- Small DTD for SURF based tools. -->  */
4135 case 16:
4136 /* rule 16 can match eol */
4137 YY_RULE_SETUP
4138 FAIL("Starting tag <platform> is not allowed here.");
4139         YY_BREAK
4140 case 17:
4141 /* rule 17 can match eol */
4142 YY_RULE_SETUP
4143 {
4144   AX_surfxml_platform_version = 1;
4145   ENTER(AL_surfxml_platform); pushbuffer(0);
4146   }
4147         YY_BREAK
4148
4149 case 18:
4150 /* rule 18 can match eol */
4151 YY_RULE_SETUP
4152 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
4153         YY_BREAK
4154 case 19:
4155 /* rule 19 can match eol */
4156 YY_RULE_SETUP
4157 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
4158         YY_BREAK
4159 case 20:
4160 YY_RULE_SETUP
4161 {
4162   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
4163  }
4164         YY_BREAK
4165 case 21:
4166 YY_RULE_SETUP
4167 {
4168   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
4169   switch (YY_START) {
4170    case ROOT_surfxml_platform: SET(EPILOG); break;
4171   }
4172  }
4173         YY_BREAK
4174 case 22:
4175 YY_RULE_SETUP
4176 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
4177         YY_BREAK
4178 case 23:
4179 YY_RULE_SETUP
4180 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
4181         YY_BREAK
4182 case YY_STATE_EOF(AL_surfxml_platform):
4183 FAIL("EOF in attribute list of `platform' element.");
4184         YY_BREAK
4185
4186 case 24:
4187 /* rule 24 can match eol */
4188 YY_RULE_SETUP
4189 {
4190   LEAVE;
4191   ETag_surfxml_platform();
4192   popbuffer(); /* attribute */
4193   switch (YY_START) {
4194    case ROOT_surfxml_platform: SET(EPILOG); break;
4195   }
4196  }
4197         YY_BREAK
4198 case 25:
4199 /* rule 25 can match eol */
4200 YY_RULE_SETUP
4201 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
4202         YY_BREAK
4203 case 26:
4204 YY_RULE_SETUP
4205 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
4206         YY_BREAK
4207 case YY_STATE_EOF(S_surfxml_platform_8):
4208 case YY_STATE_EOF(S_surfxml_platform_1):
4209 case YY_STATE_EOF(S_surfxml_platform_3):
4210 case YY_STATE_EOF(S_surfxml_platform):
4211 case YY_STATE_EOF(S_surfxml_platform_4):
4212 case YY_STATE_EOF(S_surfxml_platform_6):
4213 case YY_STATE_EOF(E_surfxml_platform):
4214 FAIL("Premature EOF: `</platform>' expected.");
4215         YY_BREAK
4216
4217 case 27:
4218 /* rule 27 can match eol */
4219 YY_RULE_SETUP
4220 FAIL("Starting tag <include> is not allowed here.");
4221         YY_BREAK
4222 case 28:
4223 /* rule 28 can match eol */
4224 YY_RULE_SETUP
4225 {
4226   AX_surfxml_include_file = 0;
4227   ENTER(AL_surfxml_include); pushbuffer(0);
4228   }
4229         YY_BREAK
4230
4231 case 29:
4232 /* rule 29 can match eol */
4233 YY_RULE_SETUP
4234 ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
4235         YY_BREAK
4236 case 30:
4237 /* rule 30 can match eol */
4238 YY_RULE_SETUP
4239 ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
4240         YY_BREAK
4241 case 31:
4242 YY_RULE_SETUP
4243 {
4244   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
4245   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(E_surfxml_include);
4246  }
4247         YY_BREAK
4248 case 32:
4249 YY_RULE_SETUP
4250 {
4251   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
4252   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
4253   switch (YY_START) {
4254    case S_surfxml_AS_2: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_3); break;
4255    case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
4256    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;
4257   }
4258  }
4259         YY_BREAK
4260 case 33:
4261 YY_RULE_SETUP
4262 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
4263         YY_BREAK
4264 case 34:
4265 YY_RULE_SETUP
4266 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
4267         YY_BREAK
4268 case YY_STATE_EOF(AL_surfxml_include):
4269 FAIL("EOF in attribute list of `include' element.");
4270         YY_BREAK
4271
4272 case 35:
4273 /* rule 35 can match eol */
4274 YY_RULE_SETUP
4275 {
4276   LEAVE;
4277   ETag_surfxml_include();
4278   popbuffer(); /* attribute */
4279   switch (YY_START) {
4280    case S_surfxml_AS_2: case S_surfxml_AS_3: case S_surfxml_AS: SET(S_surfxml_AS_3); break;
4281    case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
4282    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;
4283   }
4284  }
4285         YY_BREAK
4286 case 36:
4287 /* rule 36 can match eol */
4288 YY_RULE_SETUP
4289 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
4290         YY_BREAK
4291 case 37:
4292 YY_RULE_SETUP
4293 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
4294         YY_BREAK
4295 case YY_STATE_EOF(E_surfxml_include):
4296 FAIL("Premature EOF: `</include>' expected.");
4297         YY_BREAK
4298
4299 case 38:
4300 /* rule 38 can match eol */
4301 YY_RULE_SETUP
4302 FAIL("Starting tag <trace> is not allowed here.");
4303         YY_BREAK
4304 case 39:
4305 /* rule 39 can match eol */
4306 YY_RULE_SETUP
4307 {
4308   AX_surfxml_trace_id = 0;
4309   AX_surfxml_trace_file = 0;
4310   AX_surfxml_trace_periodicity = 0;
4311   ENTER(AL_surfxml_trace); pushbuffer(0);
4312   }
4313         YY_BREAK
4314
4315 case 40:
4316 /* rule 40 can match eol */
4317 YY_RULE_SETUP
4318 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
4319         YY_BREAK
4320 case 41:
4321 /* rule 41 can match eol */
4322 YY_RULE_SETUP
4323 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
4324         YY_BREAK
4325 case 42:
4326 /* rule 42 can match eol */
4327 YY_RULE_SETUP
4328 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
4329         YY_BREAK
4330 case 43:
4331 /* rule 43 can match eol */
4332 YY_RULE_SETUP
4333 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
4334         YY_BREAK
4335 case 44:
4336 /* rule 44 can match eol */
4337 YY_RULE_SETUP
4338 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
4339         YY_BREAK
4340 case 45:
4341 /* rule 45 can match eol */
4342 YY_RULE_SETUP
4343 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
4344         YY_BREAK
4345 case 46:
4346 YY_RULE_SETUP
4347 {
4348   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
4349   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
4350   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
4351  }
4352         YY_BREAK
4353 case 47:
4354 YY_RULE_SETUP
4355 {
4356   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
4357   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
4358   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
4359   switch (YY_START) {
4360    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;
4361    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4362    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
4363    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
4364    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;
4365    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
4366   }
4367  }
4368         YY_BREAK
4369 case 48:
4370 YY_RULE_SETUP
4371 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
4372         YY_BREAK
4373 case 49:
4374 YY_RULE_SETUP
4375 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
4376         YY_BREAK
4377 case YY_STATE_EOF(AL_surfxml_trace):
4378 FAIL("EOF in attribute list of `trace' element.");
4379         YY_BREAK
4380
4381 case 50:
4382 /* rule 50 can match eol */
4383 YY_RULE_SETUP
4384 {
4385   LEAVE;
4386   BUFFERDONE;
4387   ETag_surfxml_trace();
4388   surfxml_pcdata_ix = popbuffer();
4389   popbuffer(); /* attribute */
4390   switch (YY_START) {
4391    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;
4392    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4393    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
4394    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
4395    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;
4396    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
4397   }
4398  }
4399         YY_BREAK
4400 case 51:
4401 /* rule 51 can match eol */
4402 YY_RULE_SETUP
4403 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
4404         YY_BREAK
4405 case YY_STATE_EOF(IN_trace):
4406 FAIL("Premature EOF: `</trace>' expected.");
4407         YY_BREAK
4408
4409 case 52:
4410 /* rule 52 can match eol */
4411 YY_RULE_SETUP
4412 FAIL("Starting tag <random> is not allowed here.");
4413         YY_BREAK
4414 case 53:
4415 /* rule 53 can match eol */
4416 YY_RULE_SETUP
4417 {
4418   AX_surfxml_random_id = 0;
4419   AX_surfxml_random_min = 0;
4420   AX_surfxml_random_max = 0;
4421   AX_surfxml_random_mean = 0;
4422   AX_surfxml_random_std_deviation = 0;
4423   AX_surfxml_random_seed = 5;
4424   AX_surfxml_random_radical = 0;
4425   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
4426   ENTER(AL_surfxml_random); pushbuffer(0);
4427   }
4428         YY_BREAK
4429
4430 case 54:
4431 /* rule 54 can match eol */
4432 YY_RULE_SETUP
4433 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
4434         YY_BREAK
4435 case 55:
4436 /* rule 55 can match eol */
4437 YY_RULE_SETUP
4438 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
4439         YY_BREAK
4440 case 56:
4441 /* rule 56 can match eol */
4442 YY_RULE_SETUP
4443 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
4444         YY_BREAK
4445 case 57:
4446 /* rule 57 can match eol */
4447 YY_RULE_SETUP
4448 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
4449         YY_BREAK
4450 case 58:
4451 /* rule 58 can match eol */
4452 YY_RULE_SETUP
4453 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
4454         YY_BREAK
4455 case 59:
4456 /* rule 59 can match eol */
4457 YY_RULE_SETUP
4458 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
4459         YY_BREAK
4460 case 60:
4461 /* rule 60 can match eol */
4462 YY_RULE_SETUP
4463 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
4464         YY_BREAK
4465 case 61:
4466 /* rule 61 can match eol */
4467 YY_RULE_SETUP
4468 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
4469         YY_BREAK
4470 case 62:
4471 /* rule 62 can match eol */
4472 YY_RULE_SETUP
4473 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
4474         YY_BREAK
4475 case 63:
4476 /* rule 63 can match eol */
4477 YY_RULE_SETUP
4478 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
4479         YY_BREAK
4480 case 64:
4481 /* rule 64 can match eol */
4482 YY_RULE_SETUP
4483 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
4484         YY_BREAK
4485 case 65:
4486 /* rule 65 can match eol */
4487 YY_RULE_SETUP
4488 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
4489         YY_BREAK
4490 case 66:
4491 /* rule 66 can match eol */
4492 YY_RULE_SETUP
4493 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
4494         YY_BREAK
4495 case 67:
4496 /* rule 67 can match eol */
4497 YY_RULE_SETUP
4498 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
4499         YY_BREAK
4500 case 68:
4501 /* rule 68 can match eol */
4502 case 69:
4503 /* rule 69 can match eol */
4504 YY_RULE_SETUP
4505 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
4506         YY_BREAK
4507 case 70:
4508 /* rule 70 can match eol */
4509 case 71:
4510 /* rule 71 can match eol */
4511 YY_RULE_SETUP
4512 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
4513         YY_BREAK
4514 case 72:
4515 /* rule 72 can match eol */
4516 case 73:
4517 /* rule 73 can match eol */
4518 YY_RULE_SETUP
4519 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
4520         YY_BREAK
4521 case 74:
4522 /* rule 74 can match eol */
4523 case 75:
4524 /* rule 75 can match eol */
4525 YY_RULE_SETUP
4526 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
4527         YY_BREAK
4528 case 76:
4529 YY_RULE_SETUP
4530 {
4531   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
4532   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
4533   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
4534   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
4535   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
4536   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
4537  }
4538         YY_BREAK
4539 case 77:
4540 YY_RULE_SETUP
4541 {
4542   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
4543   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
4544   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
4545   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
4546   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
4547   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
4548   switch (YY_START) {
4549    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4550   }
4551  }
4552         YY_BREAK
4553 case 78:
4554 YY_RULE_SETUP
4555 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
4556         YY_BREAK
4557 case 79:
4558 YY_RULE_SETUP
4559 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
4560         YY_BREAK
4561 case YY_STATE_EOF(AL_surfxml_random):
4562 FAIL("EOF in attribute list of `random' element.");
4563         YY_BREAK
4564
4565 case 80:
4566 /* rule 80 can match eol */
4567 YY_RULE_SETUP
4568 {
4569   LEAVE;
4570   ETag_surfxml_random();
4571   popbuffer(); /* attribute */
4572   switch (YY_START) {
4573    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4574   }
4575  }
4576         YY_BREAK
4577 case 81:
4578 /* rule 81 can match eol */
4579 YY_RULE_SETUP
4580 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
4581         YY_BREAK
4582 case 82:
4583 YY_RULE_SETUP
4584 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
4585         YY_BREAK
4586 case YY_STATE_EOF(S_surfxml_random_2):
4587 case YY_STATE_EOF(S_surfxml_random):
4588 case YY_STATE_EOF(E_surfxml_random):
4589 FAIL("Premature EOF: `</random>' expected.");
4590         YY_BREAK
4591
4592 case 83:
4593 /* rule 83 can match eol */
4594 YY_RULE_SETUP
4595 FAIL("Starting tag <trace_connect> is not allowed here.");
4596         YY_BREAK
4597 case 84:
4598 /* rule 84 can match eol */
4599 YY_RULE_SETUP
4600 {
4601   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
4602   AX_surfxml_trace_connect_trace = 0;
4603   AX_surfxml_trace_connect_element = 0;
4604   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
4605   }
4606         YY_BREAK
4607
4608 case 85:
4609 /* rule 85 can match eol */
4610 case 86:
4611 /* rule 86 can match eol */
4612 YY_RULE_SETUP
4613 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
4614         YY_BREAK
4615 case 87:
4616 /* rule 87 can match eol */
4617 case 88:
4618 /* rule 88 can match eol */
4619 YY_RULE_SETUP
4620 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
4621         YY_BREAK
4622 case 89:
4623 /* rule 89 can match eol */
4624 case 90:
4625 /* rule 90 can match eol */
4626 YY_RULE_SETUP
4627 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
4628         YY_BREAK
4629 case 91:
4630 /* rule 91 can match eol */
4631 case 92:
4632 /* rule 92 can match eol */
4633 YY_RULE_SETUP
4634 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
4635         YY_BREAK
4636 case 93:
4637 /* rule 93 can match eol */
4638 case 94:
4639 /* rule 94 can match eol */
4640 YY_RULE_SETUP
4641 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
4642         YY_BREAK
4643 case 95:
4644 /* rule 95 can match eol */
4645 YY_RULE_SETUP
4646 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_trace);
4647         YY_BREAK
4648 case 96:
4649 /* rule 96 can match eol */
4650 YY_RULE_SETUP
4651 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_trace);
4652         YY_BREAK
4653 case 97:
4654 /* rule 97 can match eol */
4655 YY_RULE_SETUP
4656 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_element);
4657         YY_BREAK
4658 case 98:
4659 /* rule 98 can match eol */
4660 YY_RULE_SETUP
4661 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_element);
4662         YY_BREAK
4663 case 99:
4664 YY_RULE_SETUP
4665 {
4666   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
4667   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
4668   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
4669  }
4670         YY_BREAK
4671 case 100:
4672 YY_RULE_SETUP
4673 {
4674   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
4675   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
4676   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
4677   switch (YY_START) {
4678    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;
4679    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4680    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
4681    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
4682    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;
4683    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
4684   }
4685  }
4686         YY_BREAK
4687 case 101:
4688 YY_RULE_SETUP
4689 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
4690         YY_BREAK
4691 case 102:
4692 YY_RULE_SETUP
4693 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
4694         YY_BREAK
4695 case YY_STATE_EOF(AL_surfxml_trace_connect):
4696 FAIL("EOF in attribute list of `trace_connect' element.");
4697         YY_BREAK
4698
4699 case 103:
4700 /* rule 103 can match eol */
4701 YY_RULE_SETUP
4702 {
4703   LEAVE;
4704   ETag_surfxml_trace_connect();
4705   popbuffer(); /* attribute */
4706   switch (YY_START) {
4707    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;
4708    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4709    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
4710    case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
4711    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;
4712    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
4713   }
4714  }
4715         YY_BREAK
4716 case 104:
4717 /* rule 104 can match eol */
4718 YY_RULE_SETUP
4719 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
4720         YY_BREAK
4721 case 105:
4722 YY_RULE_SETUP
4723 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
4724         YY_BREAK
4725 case YY_STATE_EOF(E_surfxml_trace_connect):
4726 FAIL("Premature EOF: `</trace_connect>' expected.");
4727         YY_BREAK
4728
4729 case 106:
4730 /* rule 106 can match eol */
4731 YY_RULE_SETUP
4732 FAIL("Starting tag <AS> is not allowed here.");
4733         YY_BREAK
4734 case 107:
4735 /* rule 107 can match eol */
4736 YY_RULE_SETUP
4737 {
4738   AX_surfxml_AS_id = 0;
4739   AX_surfxml_AS_routing = 0;
4740   ENTER(AL_surfxml_AS); pushbuffer(0);
4741   }
4742         YY_BREAK
4743
4744 case 108:
4745 /* rule 108 can match eol */
4746 YY_RULE_SETUP
4747 ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
4748         YY_BREAK
4749 case 109:
4750 /* rule 109 can match eol */
4751 YY_RULE_SETUP
4752 ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
4753         YY_BREAK
4754 case 110:
4755 /* rule 110 can match eol */
4756 YY_RULE_SETUP
4757 ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_routing);
4758         YY_BREAK
4759 case 111:
4760 /* rule 111 can match eol */
4761 YY_RULE_SETUP
4762 ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_routing);
4763         YY_BREAK
4764 case 112:
4765 YY_RULE_SETUP
4766 {
4767   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
4768   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
4769   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
4770  }
4771         YY_BREAK
4772 case 113:
4773 YY_RULE_SETUP
4774 {
4775   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
4776   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
4777   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
4778   switch (YY_START) {
4779    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
4780    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;
4781   }
4782  }
4783         YY_BREAK
4784 case 114:
4785 YY_RULE_SETUP
4786 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
4787         YY_BREAK
4788 case 115:
4789 YY_RULE_SETUP
4790 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
4791         YY_BREAK
4792 case YY_STATE_EOF(AL_surfxml_AS):
4793 FAIL("EOF in attribute list of `AS' element.");
4794         YY_BREAK
4795
4796 case 116:
4797 /* rule 116 can match eol */
4798 YY_RULE_SETUP
4799 {
4800   LEAVE;
4801   ETag_surfxml_AS();
4802   popbuffer(); /* attribute */
4803   switch (YY_START) {
4804    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
4805    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;
4806   }
4807  }
4808         YY_BREAK
4809 case 117:
4810 /* rule 117 can match eol */
4811 YY_RULE_SETUP
4812 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
4813         YY_BREAK
4814 case 118:
4815 YY_RULE_SETUP
4816 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
4817         YY_BREAK
4818 case YY_STATE_EOF(S_surfxml_AS_1):
4819 case YY_STATE_EOF(S_surfxml_AS_9):
4820 case YY_STATE_EOF(S_surfxml_AS_11):
4821 case YY_STATE_EOF(S_surfxml_AS_6):
4822 case YY_STATE_EOF(E_surfxml_AS):
4823 case YY_STATE_EOF(S_surfxml_AS_3):
4824 case YY_STATE_EOF(S_surfxml_AS_13):
4825 case YY_STATE_EOF(S_surfxml_AS_8):
4826 case YY_STATE_EOF(S_surfxml_AS):
4827 case YY_STATE_EOF(S_surfxml_AS_4):
4828 FAIL("Premature EOF: `</AS>' expected.");
4829         YY_BREAK
4830
4831 case 119:
4832 /* rule 119 can match eol */
4833 YY_RULE_SETUP
4834 FAIL("Starting tag <host> is not allowed here.");
4835         YY_BREAK
4836 case 120:
4837 /* rule 120 can match eol */
4838 YY_RULE_SETUP
4839 {
4840   AX_surfxml_host_id = 0;
4841   AX_surfxml_host_power = 0;
4842   AX_surfxml_host_core = 16;
4843   AX_surfxml_host_availability = 18;
4844   AX_surfxml_host_availability_file = 0;
4845   AX_surfxml_host_state = A_surfxml_host_state_ON;
4846   AX_surfxml_host_state_file = 0;
4847   AX_surfxml_host_coordinates = 0;
4848   ENTER(AL_surfxml_host); pushbuffer(0);
4849   }
4850         YY_BREAK
4851
4852 case 121:
4853 /* rule 121 can match eol */
4854 YY_RULE_SETUP
4855 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
4856         YY_BREAK
4857 case 122:
4858 /* rule 122 can match eol */
4859 YY_RULE_SETUP
4860 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
4861         YY_BREAK
4862 case 123:
4863 /* rule 123 can match eol */
4864 YY_RULE_SETUP
4865 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
4866         YY_BREAK
4867 case 124:
4868 /* rule 124 can match eol */
4869 YY_RULE_SETUP
4870 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
4871         YY_BREAK
4872 case 125:
4873 /* rule 125 can match eol */
4874 YY_RULE_SETUP
4875 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
4876         YY_BREAK
4877 case 126:
4878 /* rule 126 can match eol */
4879 YY_RULE_SETUP
4880 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
4881         YY_BREAK
4882 case 127:
4883 /* rule 127 can match eol */
4884 YY_RULE_SETUP
4885 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
4886         YY_BREAK
4887 case 128:
4888 /* rule 128 can match eol */
4889 YY_RULE_SETUP
4890 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
4891         YY_BREAK
4892 case 129:
4893 /* rule 129 can match eol */
4894 YY_RULE_SETUP
4895 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
4896         YY_BREAK
4897 case 130:
4898 /* rule 130 can match eol */
4899 YY_RULE_SETUP
4900 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
4901         YY_BREAK
4902 case 131:
4903 /* rule 131 can match eol */
4904 case 132:
4905 /* rule 132 can match eol */
4906 YY_RULE_SETUP
4907 A_surfxml_host_state = A_surfxml_host_state_ON;
4908         YY_BREAK
4909 case 133:
4910 /* rule 133 can match eol */
4911 case 134:
4912 /* rule 134 can match eol */
4913 YY_RULE_SETUP
4914 A_surfxml_host_state = A_surfxml_host_state_OFF;
4915         YY_BREAK
4916 case 135:
4917 /* rule 135 can match eol */
4918 YY_RULE_SETUP
4919 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
4920         YY_BREAK
4921 case 136:
4922 /* rule 136 can match eol */
4923 YY_RULE_SETUP
4924 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
4925         YY_BREAK
4926 case 137:
4927 /* rule 137 can match eol */
4928 YY_RULE_SETUP
4929 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
4930         YY_BREAK
4931 case 138:
4932 /* rule 138 can match eol */
4933 YY_RULE_SETUP
4934 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
4935         YY_BREAK
4936 case 139:
4937 YY_RULE_SETUP
4938 {
4939   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
4940   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
4941   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
4942  }
4943         YY_BREAK
4944 case 140:
4945 YY_RULE_SETUP
4946 {
4947   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
4948   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
4949   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
4950   switch (YY_START) {
4951    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4952   }
4953  }
4954         YY_BREAK
4955 case 141:
4956 YY_RULE_SETUP
4957 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
4958         YY_BREAK
4959 case 142:
4960 YY_RULE_SETUP
4961 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
4962         YY_BREAK
4963 case YY_STATE_EOF(AL_surfxml_host):
4964 FAIL("EOF in attribute list of `host' element.");
4965         YY_BREAK
4966
4967 case 143:
4968 /* rule 143 can match eol */
4969 YY_RULE_SETUP
4970 {
4971   LEAVE;
4972   ETag_surfxml_host();
4973   popbuffer(); /* attribute */
4974   switch (YY_START) {
4975    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4976   }
4977  }
4978         YY_BREAK
4979 case 144:
4980 /* rule 144 can match eol */
4981 YY_RULE_SETUP
4982 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
4983         YY_BREAK
4984 case 145:
4985 YY_RULE_SETUP
4986 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
4987         YY_BREAK
4988 case YY_STATE_EOF(S_surfxml_host):
4989 case YY_STATE_EOF(E_surfxml_host):
4990 case YY_STATE_EOF(S_surfxml_host_2):
4991 FAIL("Premature EOF: `</host>' expected.");
4992         YY_BREAK
4993
4994 case 146:
4995 /* rule 146 can match eol */
4996 YY_RULE_SETUP
4997 FAIL("Starting tag <cluster> is not allowed here.");
4998         YY_BREAK
4999 case 147:
5000 /* rule 147 can match eol */
5001 YY_RULE_SETUP
5002 {
5003   AX_surfxml_cluster_id = 0;
5004   AX_surfxml_cluster_prefix = 0;
5005   AX_surfxml_cluster_suffix = 0;
5006   AX_surfxml_cluster_radical = 0;
5007   AX_surfxml_cluster_power = 0;
5008   AX_surfxml_cluster_core = 22;
5009   AX_surfxml_cluster_bw = 0;
5010   AX_surfxml_cluster_lat = 0;
5011   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
5012   AX_surfxml_cluster_bb_bw = 0;
5013   AX_surfxml_cluster_bb_lat = 0;
5014   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
5015   AX_surfxml_cluster_availability_file = 0;
5016   AX_surfxml_cluster_state_file = 0;
5017   ENTER(AL_surfxml_cluster); pushbuffer(0);
5018   }
5019         YY_BREAK
5020
5021 case 148:
5022 /* rule 148 can match eol */
5023 YY_RULE_SETUP
5024 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
5025         YY_BREAK
5026 case 149:
5027 /* rule 149 can match eol */
5028 YY_RULE_SETUP
5029 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
5030         YY_BREAK
5031 case 150:
5032 /* rule 150 can match eol */
5033 YY_RULE_SETUP
5034 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
5035         YY_BREAK
5036 case 151:
5037 /* rule 151 can match eol */
5038 YY_RULE_SETUP
5039 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
5040         YY_BREAK
5041 case 152:
5042 /* rule 152 can match eol */
5043 YY_RULE_SETUP
5044 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
5045         YY_BREAK
5046 case 153:
5047 /* rule 153 can match eol */
5048 YY_RULE_SETUP
5049 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
5050         YY_BREAK
5051 case 154:
5052 /* rule 154 can match eol */
5053 YY_RULE_SETUP
5054 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
5055         YY_BREAK
5056 case 155:
5057 /* rule 155 can match eol */
5058 YY_RULE_SETUP
5059 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
5060         YY_BREAK
5061 case 156:
5062 /* rule 156 can match eol */
5063 YY_RULE_SETUP
5064 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
5065         YY_BREAK
5066 case 157:
5067 /* rule 157 can match eol */
5068 YY_RULE_SETUP
5069 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
5070         YY_BREAK
5071 case 158:
5072 /* rule 158 can match eol */
5073 YY_RULE_SETUP
5074 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
5075         YY_BREAK
5076 case 159:
5077 /* rule 159 can match eol */
5078 YY_RULE_SETUP
5079 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
5080         YY_BREAK
5081 case 160:
5082 /* rule 160 can match eol */
5083 YY_RULE_SETUP
5084 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
5085         YY_BREAK
5086 case 161:
5087 /* rule 161 can match eol */
5088 YY_RULE_SETUP
5089 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
5090         YY_BREAK
5091 case 162:
5092 /* rule 162 can match eol */
5093 YY_RULE_SETUP
5094 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
5095         YY_BREAK
5096 case 163:
5097 /* rule 163 can match eol */
5098 YY_RULE_SETUP
5099 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
5100         YY_BREAK
5101 case 164:
5102 /* rule 164 can match eol */
5103 case 165:
5104 /* rule 165 can match eol */
5105 YY_RULE_SETUP
5106 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
5107         YY_BREAK
5108 case 166:
5109 /* rule 166 can match eol */
5110 case 167:
5111 /* rule 167 can match eol */
5112 YY_RULE_SETUP
5113 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
5114         YY_BREAK
5115 case 168:
5116 /* rule 168 can match eol */
5117 case 169:
5118 /* rule 169 can match eol */
5119 YY_RULE_SETUP
5120 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
5121         YY_BREAK
5122 case 170:
5123 /* rule 170 can match eol */
5124 YY_RULE_SETUP
5125 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_bw);
5126         YY_BREAK
5127 case 171:
5128 /* rule 171 can match eol */
5129 YY_RULE_SETUP
5130 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
5131         YY_BREAK
5132 case 172:
5133 /* rule 172 can match eol */
5134 YY_RULE_SETUP
5135 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_lat);
5136         YY_BREAK
5137 case 173:
5138 /* rule 173 can match eol */
5139 YY_RULE_SETUP
5140 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_lat);
5141         YY_BREAK
5142 case 174:
5143 /* rule 174 can match eol */
5144 case 175:
5145 /* rule 175 can match eol */
5146 YY_RULE_SETUP
5147 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
5148         YY_BREAK
5149 case 176:
5150 /* rule 176 can match eol */
5151 case 177:
5152 /* rule 177 can match eol */
5153 YY_RULE_SETUP
5154 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
5155         YY_BREAK
5156 case 178:
5157 /* rule 178 can match eol */
5158 YY_RULE_SETUP
5159 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability_file);
5160         YY_BREAK
5161 case 179:
5162 /* rule 179 can match eol */
5163 YY_RULE_SETUP
5164 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability_file);
5165         YY_BREAK
5166 case 180:
5167 /* rule 180 can match eol */
5168 YY_RULE_SETUP
5169 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state_file);
5170         YY_BREAK
5171 case 181:
5172 /* rule 181 can match eol */
5173 YY_RULE_SETUP
5174 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state_file);
5175         YY_BREAK
5176 case 182:
5177 YY_RULE_SETUP
5178 {
5179   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
5180   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
5181   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
5182   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
5183   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
5184   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
5185   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
5186   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
5187  }
5188         YY_BREAK
5189 case 183:
5190 YY_RULE_SETUP
5191 {
5192   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
5193   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
5194   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
5195   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
5196   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
5197   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
5198   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
5199   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
5200   switch (YY_START) {
5201    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5202    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;
5203   }
5204  }
5205         YY_BREAK
5206 case 184:
5207 YY_RULE_SETUP
5208 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
5209         YY_BREAK
5210 case 185:
5211 YY_RULE_SETUP
5212 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
5213         YY_BREAK
5214 case YY_STATE_EOF(AL_surfxml_cluster):
5215 FAIL("EOF in attribute list of `cluster' element.");
5216         YY_BREAK
5217
5218 case 186:
5219 /* rule 186 can match eol */
5220 YY_RULE_SETUP
5221 {
5222   LEAVE;
5223   ETag_surfxml_cluster();
5224   popbuffer(); /* attribute */
5225   switch (YY_START) {
5226    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5227    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;
5228   }
5229  }
5230         YY_BREAK
5231 case 187:
5232 /* rule 187 can match eol */
5233 YY_RULE_SETUP
5234 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
5235         YY_BREAK
5236 case 188:
5237 YY_RULE_SETUP
5238 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
5239         YY_BREAK
5240 case YY_STATE_EOF(E_surfxml_cluster):
5241 FAIL("Premature EOF: `</cluster>' expected.");
5242         YY_BREAK
5243
5244 case 189:
5245 /* rule 189 can match eol */
5246 YY_RULE_SETUP
5247 FAIL("Starting tag <peer> is not allowed here.");
5248         YY_BREAK
5249 case 190:
5250 /* rule 190 can match eol */
5251 YY_RULE_SETUP
5252 {
5253   AX_surfxml_peer_id = 0;
5254   AX_surfxml_peer_power = 0;
5255   AX_surfxml_peer_bw_in = 0;
5256   AX_surfxml_peer_bw_out = 0;
5257   AX_surfxml_peer_lat = 0;
5258   AX_surfxml_peer_coordinates = 0;
5259   AX_surfxml_peer_availability_file = 0;
5260   AX_surfxml_peer_state_file = 0;
5261   ENTER(AL_surfxml_peer); pushbuffer(0);
5262   }
5263         YY_BREAK
5264
5265 case 191:
5266 /* rule 191 can match eol */
5267 YY_RULE_SETUP
5268 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
5269         YY_BREAK
5270 case 192:
5271 /* rule 192 can match eol */
5272 YY_RULE_SETUP
5273 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
5274         YY_BREAK
5275 case 193:
5276 /* rule 193 can match eol */
5277 YY_RULE_SETUP
5278 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
5279         YY_BREAK
5280 case 194:
5281 /* rule 194 can match eol */
5282 YY_RULE_SETUP
5283 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
5284         YY_BREAK
5285 case 195:
5286 /* rule 195 can match eol */
5287 YY_RULE_SETUP
5288 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_in);
5289         YY_BREAK
5290 case 196:
5291 /* rule 196 can match eol */
5292 YY_RULE_SETUP
5293 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_in);
5294         YY_BREAK
5295 case 197:
5296 /* rule 197 can match eol */
5297 YY_RULE_SETUP
5298 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_out);
5299         YY_BREAK
5300 case 198:
5301 /* rule 198 can match eol */
5302 YY_RULE_SETUP
5303 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_out);
5304         YY_BREAK
5305 case 199:
5306 /* rule 199 can match eol */
5307 YY_RULE_SETUP
5308 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
5309         YY_BREAK
5310 case 200:
5311 /* rule 200 can match eol */
5312 YY_RULE_SETUP
5313 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
5314         YY_BREAK
5315 case 201:
5316 /* rule 201 can match eol */
5317 YY_RULE_SETUP
5318 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
5319         YY_BREAK
5320 case 202:
5321 /* rule 202 can match eol */
5322 YY_RULE_SETUP
5323 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
5324         YY_BREAK
5325 case 203:
5326 /* rule 203 can match eol */
5327 YY_RULE_SETUP
5328 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability_file);
5329         YY_BREAK
5330 case 204:
5331 /* rule 204 can match eol */
5332 YY_RULE_SETUP
5333 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability_file);
5334         YY_BREAK
5335 case 205:
5336 /* rule 205 can match eol */
5337 YY_RULE_SETUP
5338 ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state_file);
5339         YY_BREAK
5340 case 206:
5341 /* rule 206 can match eol */
5342 YY_RULE_SETUP
5343 ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state_file);
5344         YY_BREAK
5345 case 207:
5346 YY_RULE_SETUP
5347 {
5348   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
5349   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
5350   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
5351   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
5352   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
5353   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
5354  }
5355         YY_BREAK
5356 case 208:
5357 YY_RULE_SETUP
5358 {
5359   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
5360   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
5361   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
5362   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
5363   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
5364   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
5365   switch (YY_START) {
5366    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5367    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;
5368   }
5369  }
5370         YY_BREAK
5371 case 209:
5372 YY_RULE_SETUP
5373 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
5374         YY_BREAK
5375 case 210:
5376 YY_RULE_SETUP
5377 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
5378         YY_BREAK
5379 case YY_STATE_EOF(AL_surfxml_peer):
5380 FAIL("EOF in attribute list of `peer' element.");
5381         YY_BREAK
5382
5383 case 211:
5384 /* rule 211 can match eol */
5385 YY_RULE_SETUP
5386 {
5387   LEAVE;
5388   ETag_surfxml_peer();
5389   popbuffer(); /* attribute */
5390   switch (YY_START) {
5391    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5392    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;
5393   }
5394  }
5395         YY_BREAK
5396 case 212:
5397 /* rule 212 can match eol */
5398 YY_RULE_SETUP
5399 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
5400         YY_BREAK
5401 case 213:
5402 YY_RULE_SETUP
5403 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
5404         YY_BREAK
5405 case YY_STATE_EOF(E_surfxml_peer):
5406 FAIL("Premature EOF: `</peer>' expected.");
5407         YY_BREAK
5408
5409 case 214:
5410 /* rule 214 can match eol */
5411 YY_RULE_SETUP
5412 FAIL("Starting tag <router> is not allowed here.");
5413         YY_BREAK
5414 case 215:
5415 /* rule 215 can match eol */
5416 YY_RULE_SETUP
5417 {
5418   AX_surfxml_router_id = 0;
5419   AX_surfxml_router_coordinates = 0;
5420   ENTER(AL_surfxml_router); pushbuffer(0);
5421   }
5422         YY_BREAK
5423
5424 case 216:
5425 /* rule 216 can match eol */
5426 YY_RULE_SETUP
5427 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
5428         YY_BREAK
5429 case 217:
5430 /* rule 217 can match eol */
5431 YY_RULE_SETUP
5432 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
5433         YY_BREAK
5434 case 218:
5435 /* rule 218 can match eol */
5436 YY_RULE_SETUP
5437 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
5438         YY_BREAK
5439 case 219:
5440 /* rule 219 can match eol */
5441 YY_RULE_SETUP
5442 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
5443         YY_BREAK
5444 case 220:
5445 YY_RULE_SETUP
5446 {
5447   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
5448   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
5449  }
5450         YY_BREAK
5451 case 221:
5452 YY_RULE_SETUP
5453 {
5454   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
5455   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
5456   switch (YY_START) {
5457    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5458   }
5459  }
5460         YY_BREAK
5461 case 222:
5462 YY_RULE_SETUP
5463 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
5464         YY_BREAK
5465 case 223:
5466 YY_RULE_SETUP
5467 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
5468         YY_BREAK
5469 case YY_STATE_EOF(AL_surfxml_router):
5470 FAIL("EOF in attribute list of `router' element.");
5471         YY_BREAK
5472
5473 case 224:
5474 /* rule 224 can match eol */
5475 YY_RULE_SETUP
5476 {
5477   LEAVE;
5478   ETag_surfxml_router();
5479   popbuffer(); /* attribute */
5480   switch (YY_START) {
5481    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5482   }
5483  }
5484         YY_BREAK
5485 case 225:
5486 /* rule 225 can match eol */
5487 YY_RULE_SETUP
5488 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
5489         YY_BREAK
5490 case 226:
5491 YY_RULE_SETUP
5492 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
5493         YY_BREAK
5494 case YY_STATE_EOF(E_surfxml_router):
5495 FAIL("Premature EOF: `</router>' expected.");
5496         YY_BREAK
5497
5498 case 227:
5499 /* rule 227 can match eol */
5500 YY_RULE_SETUP
5501 FAIL("Starting tag <link> is not allowed here.");
5502         YY_BREAK
5503 case 228:
5504 /* rule 228 can match eol */
5505 YY_RULE_SETUP
5506 {
5507   AX_surfxml_link_id = 0;
5508   AX_surfxml_link_bandwidth = 0;
5509   AX_surfxml_link_bandwidth_file = 0;
5510   AX_surfxml_link_latency = 24;
5511   AX_surfxml_link_latency_file = 0;
5512   AX_surfxml_link_state = A_surfxml_link_state_ON;
5513   AX_surfxml_link_state_file = 0;
5514   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
5515   ENTER(AL_surfxml_link); pushbuffer(0);
5516   }
5517         YY_BREAK
5518
5519 case 229:
5520 /* rule 229 can match eol */
5521 YY_RULE_SETUP
5522 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
5523         YY_BREAK
5524 case 230:
5525 /* rule 230 can match eol */
5526 YY_RULE_SETUP
5527 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
5528         YY_BREAK
5529 case 231:
5530 /* rule 231 can match eol */
5531 YY_RULE_SETUP
5532 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
5533         YY_BREAK
5534 case 232:
5535 /* rule 232 can match eol */
5536 YY_RULE_SETUP
5537 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
5538         YY_BREAK
5539 case 233:
5540 /* rule 233 can match eol */
5541 YY_RULE_SETUP
5542 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
5543         YY_BREAK
5544 case 234:
5545 /* rule 234 can match eol */
5546 YY_RULE_SETUP
5547 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
5548         YY_BREAK
5549 case 235:
5550 /* rule 235 can match eol */
5551 YY_RULE_SETUP
5552 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
5553         YY_BREAK
5554 case 236:
5555 /* rule 236 can match eol */
5556 YY_RULE_SETUP
5557 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
5558         YY_BREAK
5559 case 237:
5560 /* rule 237 can match eol */
5561 YY_RULE_SETUP
5562 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
5563         YY_BREAK
5564 case 238:
5565 /* rule 238 can match eol */
5566 YY_RULE_SETUP
5567 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
5568         YY_BREAK
5569 case 239:
5570 /* rule 239 can match eol */
5571 case 240:
5572 /* rule 240 can match eol */
5573 YY_RULE_SETUP
5574 A_surfxml_link_state = A_surfxml_link_state_ON;
5575         YY_BREAK
5576 case 241:
5577 /* rule 241 can match eol */
5578 case 242:
5579 /* rule 242 can match eol */
5580 YY_RULE_SETUP
5581 A_surfxml_link_state = A_surfxml_link_state_OFF;
5582         YY_BREAK
5583 case 243:
5584 /* rule 243 can match eol */
5585 YY_RULE_SETUP
5586 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
5587         YY_BREAK
5588 case 244:
5589 /* rule 244 can match eol */
5590 YY_RULE_SETUP
5591 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
5592         YY_BREAK
5593 case 245:
5594 /* rule 245 can match eol */
5595 case 246:
5596 /* rule 246 can match eol */
5597 YY_RULE_SETUP
5598 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
5599         YY_BREAK
5600 case 247:
5601 /* rule 247 can match eol */
5602 case 248:
5603 /* rule 248 can match eol */
5604 YY_RULE_SETUP
5605 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
5606         YY_BREAK
5607 case 249:
5608 /* rule 249 can match eol */
5609 case 250:
5610 /* rule 250 can match eol */
5611 YY_RULE_SETUP
5612 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
5613         YY_BREAK
5614 case 251:
5615 YY_RULE_SETUP
5616 {
5617   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
5618   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
5619   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
5620  }
5621         YY_BREAK
5622 case 252:
5623 YY_RULE_SETUP
5624 {
5625   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
5626   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
5627   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
5628   switch (YY_START) {
5629    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5630    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5631   }
5632  }
5633         YY_BREAK
5634 case 253:
5635 YY_RULE_SETUP
5636 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
5637         YY_BREAK
5638 case 254:
5639 YY_RULE_SETUP
5640 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
5641         YY_BREAK
5642 case YY_STATE_EOF(AL_surfxml_link):
5643 FAIL("EOF in attribute list of `link' element.");
5644         YY_BREAK
5645
5646 case 255:
5647 /* rule 255 can match eol */
5648 YY_RULE_SETUP
5649 {
5650   LEAVE;
5651   ETag_surfxml_link();
5652   popbuffer(); /* attribute */
5653   switch (YY_START) {
5654    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5655    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5656   }
5657  }
5658         YY_BREAK
5659 case 256:
5660 /* rule 256 can match eol */
5661 YY_RULE_SETUP
5662 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
5663         YY_BREAK
5664 case 257:
5665 YY_RULE_SETUP
5666 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
5667         YY_BREAK
5668 case YY_STATE_EOF(E_surfxml_link):
5669 case YY_STATE_EOF(S_surfxml_link_2):
5670 case YY_STATE_EOF(S_surfxml_link):
5671 FAIL("Premature EOF: `</link>' expected.");
5672         YY_BREAK
5673
5674 case 258:
5675 /* rule 258 can match eol */
5676 YY_RULE_SETUP
5677 FAIL("Starting tag <route> is not allowed here.");
5678         YY_BREAK
5679 case 259:
5680 /* rule 259 can match eol */
5681 YY_RULE_SETUP
5682 {
5683   AX_surfxml_route_src = 0;
5684   AX_surfxml_route_dst = 0;
5685   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
5686   ENTER(AL_surfxml_route); pushbuffer(0);
5687   }
5688         YY_BREAK
5689
5690 case 260:
5691 /* rule 260 can match eol */
5692 YY_RULE_SETUP
5693 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
5694         YY_BREAK
5695 case 261:
5696 /* rule 261 can match eol */
5697 YY_RULE_SETUP
5698 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
5699         YY_BREAK
5700 case 262:
5701 /* rule 262 can match eol */
5702 YY_RULE_SETUP
5703 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
5704         YY_BREAK
5705 case 263:
5706 /* rule 263 can match eol */
5707 YY_RULE_SETUP
5708 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
5709         YY_BREAK
5710 case 264:
5711 /* rule 264 can match eol */
5712 case 265:
5713 /* rule 265 can match eol */
5714 YY_RULE_SETUP
5715 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
5716         YY_BREAK
5717 case 266:
5718 /* rule 266 can match eol */
5719 case 267:
5720 /* rule 267 can match eol */
5721 YY_RULE_SETUP
5722 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
5723         YY_BREAK
5724 case 268:
5725 YY_RULE_SETUP
5726 {
5727   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
5728   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
5729   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
5730  }
5731         YY_BREAK
5732 case 269:
5733 YY_RULE_SETUP
5734 {
5735   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
5736   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
5737   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
5738   switch (YY_START) {
5739    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;
5740   }
5741  }
5742         YY_BREAK
5743 case 270:
5744 YY_RULE_SETUP
5745 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
5746         YY_BREAK
5747 case 271:
5748 YY_RULE_SETUP
5749 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
5750         YY_BREAK
5751 case YY_STATE_EOF(AL_surfxml_route):
5752 FAIL("EOF in attribute list of `route' element.");
5753         YY_BREAK
5754
5755 case 272:
5756 /* rule 272 can match eol */
5757 YY_RULE_SETUP
5758 {
5759   LEAVE;
5760   ETag_surfxml_route();
5761   popbuffer(); /* attribute */
5762   switch (YY_START) {
5763    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;
5764   }
5765  }
5766         YY_BREAK
5767 case 273:
5768 /* rule 273 can match eol */
5769 YY_RULE_SETUP
5770 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
5771         YY_BREAK
5772 case 274:
5773 YY_RULE_SETUP
5774 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
5775         YY_BREAK
5776 case YY_STATE_EOF(S_surfxml_route):
5777 case YY_STATE_EOF(S_surfxml_route_2):
5778 case YY_STATE_EOF(E_surfxml_route):
5779 FAIL("Premature EOF: `</route>' expected.");
5780         YY_BREAK
5781
5782 case 275:
5783 /* rule 275 can match eol */
5784 YY_RULE_SETUP
5785 FAIL("Starting tag <ASroute> is not allowed here.");
5786         YY_BREAK
5787 case 276:
5788 /* rule 276 can match eol */
5789 YY_RULE_SETUP
5790 {
5791   AX_surfxml_ASroute_src = 0;
5792   AX_surfxml_ASroute_dst = 0;
5793   AX_surfxml_ASroute_gw_src = 0;
5794   AX_surfxml_ASroute_gw_dst = 0;
5795   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
5796   ENTER(AL_surfxml_ASroute); pushbuffer(0);
5797   }
5798         YY_BREAK
5799
5800 case 277:
5801 /* rule 277 can match eol */
5802 YY_RULE_SETUP
5803 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
5804         YY_BREAK
5805 case 278:
5806 /* rule 278 can match eol */
5807 YY_RULE_SETUP
5808 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
5809         YY_BREAK
5810 case 279:
5811 /* rule 279 can match eol */
5812 YY_RULE_SETUP
5813 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
5814         YY_BREAK
5815 case 280:
5816 /* rule 280 can match eol */
5817 YY_RULE_SETUP
5818 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
5819         YY_BREAK
5820 case 281:
5821 /* rule 281 can match eol */
5822 YY_RULE_SETUP
5823 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_src);
5824         YY_BREAK
5825 case 282:
5826 /* rule 282 can match eol */
5827 YY_RULE_SETUP
5828 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_src);
5829         YY_BREAK
5830 case 283:
5831 /* rule 283 can match eol */
5832 YY_RULE_SETUP
5833 ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_dst);
5834         YY_BREAK
5835 case 284:
5836 /* rule 284 can match eol */
5837 YY_RULE_SETUP
5838 ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_dst);
5839         YY_BREAK
5840 case 285:
5841 /* rule 285 can match eol */
5842 case 286:
5843 /* rule 286 can match eol */
5844 YY_RULE_SETUP
5845 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
5846         YY_BREAK
5847 case 287:
5848 /* rule 287 can match eol */
5849 case 288:
5850 /* rule 288 can match eol */
5851 YY_RULE_SETUP
5852 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
5853         YY_BREAK
5854 case 289:
5855 YY_RULE_SETUP
5856 {
5857   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
5858   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
5859   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
5860   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
5861   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
5862  }
5863         YY_BREAK
5864 case 290:
5865 YY_RULE_SETUP
5866 {
5867   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
5868   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
5869   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
5870   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
5871   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
5872   switch (YY_START) {
5873    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;
5874   }
5875  }
5876         YY_BREAK
5877 case 291:
5878 YY_RULE_SETUP
5879 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
5880         YY_BREAK
5881 case 292:
5882 YY_RULE_SETUP
5883 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
5884         YY_BREAK
5885 case YY_STATE_EOF(AL_surfxml_ASroute):
5886 FAIL("EOF in attribute list of `ASroute' element.");
5887         YY_BREAK
5888
5889 case 293:
5890 /* rule 293 can match eol */
5891 YY_RULE_SETUP
5892 {
5893   LEAVE;
5894   ETag_surfxml_ASroute();
5895   popbuffer(); /* attribute */
5896   switch (YY_START) {
5897    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;
5898   }
5899  }
5900         YY_BREAK
5901 case 294:
5902 /* rule 294 can match eol */
5903 YY_RULE_SETUP
5904 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
5905         YY_BREAK
5906 case 295:
5907 YY_RULE_SETUP
5908 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
5909         YY_BREAK
5910 case YY_STATE_EOF(E_surfxml_ASroute):
5911 case YY_STATE_EOF(S_surfxml_ASroute):
5912 case YY_STATE_EOF(S_surfxml_ASroute_2):
5913 FAIL("Premature EOF: `</ASroute>' expected.");
5914         YY_BREAK
5915
5916 case 296:
5917 /* rule 296 can match eol */
5918 YY_RULE_SETUP
5919 FAIL("Starting tag <link_ctn> is not allowed here.");
5920         YY_BREAK
5921 case 297:
5922 /* rule 297 can match eol */
5923 YY_RULE_SETUP
5924 {
5925   AX_surfxml_link_ctn_id = 0;
5926   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
5927   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
5928   }
5929         YY_BREAK
5930
5931 case 298:
5932 /* rule 298 can match eol */
5933 YY_RULE_SETUP
5934 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_ctn_id);
5935         YY_BREAK
5936 case 299:
5937 /* rule 299 can match eol */
5938 YY_RULE_SETUP
5939 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_ctn_id);
5940         YY_BREAK
5941 case 300:
5942 /* rule 300 can match eol */
5943 case 301:
5944 /* rule 301 can match eol */
5945 YY_RULE_SETUP
5946 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
5947         YY_BREAK
5948 case 302:
5949 /* rule 302 can match eol */
5950 case 303:
5951 /* rule 303 can match eol */
5952 YY_RULE_SETUP
5953 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
5954         YY_BREAK
5955 case 304:
5956 /* rule 304 can match eol */
5957 case 305:
5958 /* rule 305 can match eol */
5959 YY_RULE_SETUP
5960 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
5961         YY_BREAK
5962 case 306:
5963 YY_RULE_SETUP
5964 {
5965   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
5966   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
5967  }
5968         YY_BREAK
5969 case 307:
5970 YY_RULE_SETUP
5971 {
5972   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
5973   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
5974   switch (YY_START) {
5975    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
5976    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
5977    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
5978   }
5979  }
5980         YY_BREAK
5981 case 308:
5982 YY_RULE_SETUP
5983 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
5984         YY_BREAK
5985 case 309:
5986 YY_RULE_SETUP
5987 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
5988         YY_BREAK
5989 case YY_STATE_EOF(AL_surfxml_link_ctn):
5990 FAIL("EOF in attribute list of `link_ctn' element.");
5991         YY_BREAK
5992
5993 case 310:
5994 /* rule 310 can match eol */
5995 YY_RULE_SETUP
5996 {
5997   LEAVE;
5998   ETag_surfxml_link_ctn();
5999   popbuffer(); /* attribute */
6000   switch (YY_START) {
6001    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
6002    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
6003    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
6004   }
6005  }
6006         YY_BREAK
6007 case 311:
6008 /* rule 311 can match eol */
6009 YY_RULE_SETUP
6010 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
6011         YY_BREAK
6012 case 312:
6013 YY_RULE_SETUP
6014 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
6015         YY_BREAK
6016 case YY_STATE_EOF(E_surfxml_link_ctn):
6017 FAIL("Premature EOF: `</link_ctn>' expected.");
6018         YY_BREAK
6019
6020 case 313:
6021 /* rule 313 can match eol */
6022 YY_RULE_SETUP
6023 FAIL("Starting tag <bypassRoute> is not allowed here.");
6024         YY_BREAK
6025 case 314:
6026 /* rule 314 can match eol */
6027 YY_RULE_SETUP
6028 {
6029   AX_surfxml_bypassRoute_src = 0;
6030   AX_surfxml_bypassRoute_dst = 0;
6031   AX_surfxml_bypassRoute_gw_src = 0;
6032   AX_surfxml_bypassRoute_gw_dst = 0;
6033   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
6034   }
6035         YY_BREAK
6036
6037 case 315:
6038 /* rule 315 can match eol */
6039 YY_RULE_SETUP
6040 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
6041         YY_BREAK
6042 case 316:
6043 /* rule 316 can match eol */
6044 YY_RULE_SETUP
6045 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
6046         YY_BREAK
6047 case 317:
6048 /* rule 317 can match eol */
6049 YY_RULE_SETUP
6050 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
6051         YY_BREAK
6052 case 318:
6053 /* rule 318 can match eol */
6054 YY_RULE_SETUP
6055 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
6056         YY_BREAK
6057 case 319:
6058 /* rule 319 can match eol */
6059 YY_RULE_SETUP
6060 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_gw_src);
6061         YY_BREAK
6062 case 320:
6063 /* rule 320 can match eol */
6064 YY_RULE_SETUP
6065 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_gw_src);
6066         YY_BREAK
6067 case 321:
6068 /* rule 321 can match eol */
6069 YY_RULE_SETUP
6070 ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_gw_dst);
6071         YY_BREAK
6072 case 322:
6073 /* rule 322 can match eol */
6074 YY_RULE_SETUP
6075 ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_gw_dst);
6076         YY_BREAK
6077 case 323:
6078 YY_RULE_SETUP
6079 {
6080   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6081   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6082   if (!AX_surfxml_bypassRoute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassRoute' element.");
6083   if (!AX_surfxml_bypassRoute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassRoute' element.");
6084   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
6085  }
6086         YY_BREAK
6087 case 324:
6088 YY_RULE_SETUP
6089 {
6090   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6091   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6092   if (!AX_surfxml_bypassRoute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassRoute' element.");
6093   if (!AX_surfxml_bypassRoute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassRoute' element.");
6094   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
6095   switch (YY_START) {
6096    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;
6097   }
6098  }
6099         YY_BREAK
6100 case 325:
6101 YY_RULE_SETUP
6102 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
6103         YY_BREAK
6104 case 326:
6105 YY_RULE_SETUP
6106 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
6107         YY_BREAK
6108 case YY_STATE_EOF(AL_surfxml_bypassRoute):
6109 FAIL("EOF in attribute list of `bypassRoute' element.");
6110         YY_BREAK
6111
6112 case 327:
6113 /* rule 327 can match eol */
6114 YY_RULE_SETUP
6115 {
6116   LEAVE;
6117   ETag_surfxml_bypassRoute();
6118   popbuffer(); /* attribute */
6119   switch (YY_START) {
6120    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;
6121   }
6122  }
6123         YY_BREAK
6124 case 328:
6125 /* rule 328 can match eol */
6126 YY_RULE_SETUP
6127 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
6128         YY_BREAK
6129 case 329:
6130 YY_RULE_SETUP
6131 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
6132         YY_BREAK
6133 case YY_STATE_EOF(S_surfxml_bypassRoute):
6134 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
6135 case YY_STATE_EOF(E_surfxml_bypassRoute):
6136 FAIL("Premature EOF: `</bypassRoute>' expected.");
6137         YY_BREAK
6138
6139 case 330:
6140 /* rule 330 can match eol */
6141 YY_RULE_SETUP
6142 FAIL("Starting tag <process> is not allowed here.");
6143         YY_BREAK
6144 case 331:
6145 /* rule 331 can match eol */
6146 YY_RULE_SETUP
6147 {
6148   AX_surfxml_process_host = 0;
6149   AX_surfxml_process_function = 0;
6150   AX_surfxml_process_start_time = 28;
6151   AX_surfxml_process_kill_time = 33;
6152   ENTER(AL_surfxml_process); pushbuffer(0);
6153   }
6154         YY_BREAK
6155
6156 case 332:
6157 /* rule 332 can match eol */
6158 YY_RULE_SETUP
6159 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
6160         YY_BREAK
6161 case 333:
6162 /* rule 333 can match eol */
6163 YY_RULE_SETUP
6164 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
6165         YY_BREAK
6166 case 334:
6167 /* rule 334 can match eol */
6168 YY_RULE_SETUP
6169 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
6170         YY_BREAK
6171 case 335:
6172 /* rule 335 can match eol */
6173 YY_RULE_SETUP
6174 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
6175         YY_BREAK
6176 case 336:
6177 /* rule 336 can match eol */
6178 YY_RULE_SETUP
6179 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
6180         YY_BREAK
6181 case 337:
6182 /* rule 337 can match eol */
6183 YY_RULE_SETUP
6184 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
6185         YY_BREAK
6186 case 338:
6187 /* rule 338 can match eol */
6188 YY_RULE_SETUP
6189 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
6190         YY_BREAK
6191 case 339:
6192 /* rule 339 can match eol */
6193 YY_RULE_SETUP
6194 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
6195         YY_BREAK
6196 case 340:
6197 YY_RULE_SETUP
6198 {
6199   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
6200   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
6201   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
6202  }
6203         YY_BREAK
6204 case 341:
6205 YY_RULE_SETUP
6206 {
6207   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
6208   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
6209   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
6210   switch (YY_START) {
6211    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;
6212   }
6213  }
6214         YY_BREAK
6215 case 342:
6216 YY_RULE_SETUP
6217 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
6218         YY_BREAK
6219 case 343:
6220 YY_RULE_SETUP
6221 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
6222         YY_BREAK
6223 case YY_STATE_EOF(AL_surfxml_process):
6224 FAIL("EOF in attribute list of `process' element.");
6225         YY_BREAK
6226
6227 case 344:
6228 /* rule 344 can match eol */
6229 YY_RULE_SETUP
6230 {
6231   LEAVE;
6232   ETag_surfxml_process();
6233   popbuffer(); /* attribute */
6234   switch (YY_START) {
6235    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;
6236   }
6237  }
6238         YY_BREAK
6239 case 345:
6240 /* rule 345 can match eol */
6241 YY_RULE_SETUP
6242 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
6243         YY_BREAK
6244 case 346:
6245 YY_RULE_SETUP
6246 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
6247         YY_BREAK
6248 case YY_STATE_EOF(E_surfxml_process):
6249 case YY_STATE_EOF(S_surfxml_process):
6250 case YY_STATE_EOF(S_surfxml_process_2):
6251 FAIL("Premature EOF: `</process>' expected.");
6252         YY_BREAK
6253
6254 case 347:
6255 /* rule 347 can match eol */
6256 YY_RULE_SETUP
6257 FAIL("Starting tag <argument> is not allowed here.");
6258         YY_BREAK
6259 case 348:
6260 /* rule 348 can match eol */
6261 YY_RULE_SETUP
6262 {
6263   AX_surfxml_argument_value = 0;
6264   ENTER(AL_surfxml_argument); pushbuffer(0);
6265   }
6266         YY_BREAK
6267
6268 case 349:
6269 /* rule 349 can match eol */
6270 YY_RULE_SETUP
6271 ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
6272         YY_BREAK
6273 case 350:
6274 /* rule 350 can match eol */
6275 YY_RULE_SETUP
6276 ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
6277         YY_BREAK
6278 case 351:
6279 YY_RULE_SETUP
6280 {
6281   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6282   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
6283  }
6284         YY_BREAK
6285 case 352:
6286 YY_RULE_SETUP
6287 {
6288   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6289   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
6290   switch (YY_START) {
6291    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6292   }
6293  }
6294         YY_BREAK
6295 case 353:
6296 YY_RULE_SETUP
6297 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
6298         YY_BREAK
6299 case 354:
6300 YY_RULE_SETUP
6301 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
6302         YY_BREAK
6303 case YY_STATE_EOF(AL_surfxml_argument):
6304 FAIL("EOF in attribute list of `argument' element.");
6305         YY_BREAK
6306
6307 case 355:
6308 /* rule 355 can match eol */
6309 YY_RULE_SETUP
6310 {
6311   LEAVE;
6312   ETag_surfxml_argument();
6313   popbuffer(); /* attribute */
6314   switch (YY_START) {
6315    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6316   }
6317  }
6318         YY_BREAK
6319 case 356:
6320 /* rule 356 can match eol */
6321 YY_RULE_SETUP
6322 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
6323         YY_BREAK
6324 case 357:
6325 YY_RULE_SETUP
6326 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
6327         YY_BREAK
6328 case YY_STATE_EOF(E_surfxml_argument):
6329 FAIL("Premature EOF: `</argument>' expected.");
6330         YY_BREAK
6331
6332 case 358:
6333 /* rule 358 can match eol */
6334 YY_RULE_SETUP
6335 FAIL("Starting tag <config> is not allowed here.");
6336         YY_BREAK
6337 case 359:
6338 /* rule 359 can match eol */
6339 YY_RULE_SETUP
6340 {
6341   AX_surfxml_config_id = 0;
6342   ENTER(AL_surfxml_config); pushbuffer(0);
6343   }
6344         YY_BREAK
6345
6346 case 360:
6347 /* rule 360 can match eol */
6348 YY_RULE_SETUP
6349 ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
6350         YY_BREAK
6351 case 361:
6352 /* rule 361 can match eol */
6353 YY_RULE_SETUP
6354 ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
6355         YY_BREAK
6356 case 362:
6357 YY_RULE_SETUP
6358 {
6359   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
6360  }
6361         YY_BREAK
6362 case 363:
6363 YY_RULE_SETUP
6364 {
6365   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
6366   switch (YY_START) {
6367    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6368   }
6369  }
6370         YY_BREAK
6371 case 364:
6372 YY_RULE_SETUP
6373 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
6374         YY_BREAK
6375 case 365:
6376 YY_RULE_SETUP
6377 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
6378         YY_BREAK
6379 case YY_STATE_EOF(AL_surfxml_config):
6380 FAIL("EOF in attribute list of `config' element.");
6381         YY_BREAK
6382
6383 case 366:
6384 /* rule 366 can match eol */
6385 YY_RULE_SETUP
6386 {
6387   LEAVE;
6388   ETag_surfxml_config();
6389   popbuffer(); /* attribute */
6390   switch (YY_START) {
6391    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6392   }
6393  }
6394         YY_BREAK
6395 case 367:
6396 /* rule 367 can match eol */
6397 YY_RULE_SETUP
6398 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
6399         YY_BREAK
6400 case 368:
6401 YY_RULE_SETUP
6402 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
6403         YY_BREAK
6404 case YY_STATE_EOF(S_surfxml_config):
6405 case YY_STATE_EOF(S_surfxml_config_2):
6406 case YY_STATE_EOF(E_surfxml_config):
6407 FAIL("Premature EOF: `</config>' expected.");
6408         YY_BREAK
6409
6410 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
6411   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
6412 case 369:
6413 /* rule 369 can match eol */
6414 YY_RULE_SETUP
6415 FAIL("Starting tag <prop> is not allowed here.");
6416         YY_BREAK
6417 case 370:
6418 /* rule 370 can match eol */
6419 YY_RULE_SETUP
6420 {
6421   AX_surfxml_prop_id = 0;
6422   AX_surfxml_prop_value = 0;
6423   ENTER(AL_surfxml_prop); pushbuffer(0);
6424   }
6425         YY_BREAK
6426
6427 case 371:
6428 /* rule 371 can match eol */
6429 YY_RULE_SETUP
6430 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
6431         YY_BREAK
6432 case 372:
6433 /* rule 372 can match eol */
6434 YY_RULE_SETUP
6435 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
6436         YY_BREAK
6437 case 373:
6438 /* rule 373 can match eol */
6439 YY_RULE_SETUP
6440 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
6441         YY_BREAK
6442 case 374:
6443 /* rule 374 can match eol */
6444 YY_RULE_SETUP
6445 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
6446         YY_BREAK
6447 case 375:
6448 YY_RULE_SETUP
6449 {
6450   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
6451   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
6452   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
6453  }
6454         YY_BREAK
6455 case 376:
6456 YY_RULE_SETUP
6457 {
6458   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
6459   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
6460   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
6461   switch (YY_START) {
6462    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
6463    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
6464    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6465    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6466    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
6467   }
6468  }
6469         YY_BREAK
6470 case 377:
6471 YY_RULE_SETUP
6472 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
6473         YY_BREAK
6474 case 378:
6475 YY_RULE_SETUP
6476 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
6477         YY_BREAK
6478 case YY_STATE_EOF(AL_surfxml_prop):
6479 FAIL("EOF in attribute list of `prop' element.");
6480         YY_BREAK
6481
6482 case 379:
6483 /* rule 379 can match eol */
6484 YY_RULE_SETUP
6485 {
6486   LEAVE;
6487   ETag_surfxml_prop();
6488   popbuffer(); /* attribute */
6489   switch (YY_START) {
6490    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
6491    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
6492    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6493    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6494    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
6495   }
6496  }
6497         YY_BREAK
6498 case 380:
6499 /* rule 380 can match eol */
6500 YY_RULE_SETUP
6501 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
6502         YY_BREAK
6503 case 381:
6504 YY_RULE_SETUP
6505 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
6506         YY_BREAK
6507 case YY_STATE_EOF(E_surfxml_prop):
6508 FAIL("Premature EOF: `</prop>' expected.");
6509         YY_BREAK
6510
6511 /* EPILOG: after the root element. */
6512
6513 case 382:
6514 YY_RULE_SETUP
6515 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
6516         YY_BREAK
6517 case YY_STATE_EOF(EPILOG):
6518 SUCCEED;
6519         YY_BREAK
6520
6521 /* CHARACTER DATA. */
6522
6523 /* Non-defined standard entities... */
6524 case 383:
6525 YY_RULE_SETUP
6526 BUFFERPUTC('&');
6527         YY_BREAK
6528 case 384:
6529 YY_RULE_SETUP
6530 BUFFERPUTC('<');
6531         YY_BREAK
6532 case 385:
6533 YY_RULE_SETUP
6534 BUFFERPUTC('>');
6535         YY_BREAK
6536 case 386:
6537 YY_RULE_SETUP
6538 BUFFERPUTC('\'');
6539         YY_BREAK
6540 case 387:
6541 YY_RULE_SETUP
6542 BUFFERPUTC('"');
6543         YY_BREAK
6544 /* Character entities. */
6545 case 388:
6546 YY_RULE_SETUP
6547 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
6548         YY_BREAK
6549 case 389:
6550 YY_RULE_SETUP
6551 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
6552         YY_BREAK
6553
6554 case 390:
6555 /* rule 390 can match eol */
6556 case 391:
6557 /* rule 391 can match eol */
6558 case 392:
6559 /* rule 392 can match eol */
6560 case 393:
6561 /* rule 393 can match eol */
6562 YY_RULE_SETUP
6563 BUFFERPUTC('\n');
6564         YY_BREAK
6565
6566 case 394:
6567 YY_RULE_SETUP
6568 ENTER(CDATA);
6569         YY_BREAK
6570 case 395:
6571 YY_RULE_SETUP
6572 FAIL("Unexpected `]""]>' in character data.");
6573         YY_BREAK
6574
6575 case 396:
6576 YY_RULE_SETUP
6577 BUFFERDONE; LEAVE;
6578         YY_BREAK
6579 case YY_STATE_EOF(VALUE1):
6580 FAIL("EOF in literal (\"'\" expected).");
6581         YY_BREAK
6582
6583 case 397:
6584 YY_RULE_SETUP
6585 BUFFERDONE; LEAVE;
6586         YY_BREAK
6587 case YY_STATE_EOF(VALUE2):
6588 FAIL("EOF in literal (`\"' expected).");
6589         YY_BREAK
6590
6591 case 398:
6592 /* rule 398 can match eol */
6593 YY_RULE_SETUP
6594 BUFFERPUTC(surf_parse_text[0]);
6595         YY_BREAK
6596 case 399:
6597 YY_RULE_SETUP
6598 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
6599         YY_BREAK
6600
6601 case 400:
6602 YY_RULE_SETUP
6603 LEAVE;
6604         YY_BREAK
6605 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
6606 case 401:
6607 YY_RULE_SETUP
6608 BUFFERPUTC(surf_parse_text[0]);
6609         YY_BREAK
6610 case YY_STATE_EOF(CDATA):
6611 FAIL("EOF in CDATA section.");
6612         YY_BREAK
6613
6614 /* Impossible rules to avoid warnings from flex(1). */
6615 /* Ideally, this should be replaced by code in flexml.pl that
6616     generates just the states not covered by other rules. */
6617
6618 case 402:
6619 /* rule 402 can match eol */
6620 YY_RULE_SETUP
6621 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
6622         YY_BREAK
6623
6624 case 403:
6625 YY_RULE_SETUP
6626 ECHO;
6627         YY_BREAK
6628 case YY_STATE_EOF(INITIAL):
6629 case YY_STATE_EOF(ROOT_surfxml_platform):
6630 case YY_STATE_EOF(S_surfxml_platform_2):
6631 case YY_STATE_EOF(S_surfxml_platform_5):
6632 case YY_STATE_EOF(S_surfxml_platform_7):
6633 case YY_STATE_EOF(S_surfxml_random_1):
6634 case YY_STATE_EOF(S_surfxml_AS_2):
6635 case YY_STATE_EOF(S_surfxml_AS_5):
6636 case YY_STATE_EOF(S_surfxml_AS_7):
6637 case YY_STATE_EOF(S_surfxml_AS_10):
6638 case YY_STATE_EOF(S_surfxml_AS_12):
6639 case YY_STATE_EOF(S_surfxml_host_1):
6640 case YY_STATE_EOF(S_surfxml_link_1):
6641 case YY_STATE_EOF(S_surfxml_route_1):
6642 case YY_STATE_EOF(S_surfxml_ASroute_1):
6643 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
6644 case YY_STATE_EOF(S_surfxml_process_1):
6645 case YY_STATE_EOF(S_surfxml_config_1):
6646 case YY_STATE_EOF(IMPOSSIBLE):
6647         yyterminate();
6648
6649         case YY_END_OF_BUFFER:
6650                 {
6651                 /* Amount of text matched not including the EOB char. */
6652                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
6653
6654                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
6655                 *yy_cp = (yy_hold_char);
6656                 YY_RESTORE_YY_MORE_OFFSET
6657
6658                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
6659                         {
6660                         /* We're scanning a new file or input source.  It's
6661                          * possible that this happened because the user
6662                          * just pointed surf_parse_in at a new source and called
6663                          * surf_parse_lex().  If so, then we have to assure
6664                          * consistency between YY_CURRENT_BUFFER and our
6665                          * globals.  Here is the right place to do so, because
6666                          * this is the first action (other than possibly a
6667                          * back-up) that will match for the new input source.
6668                          */
6669                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6670                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
6671                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
6672                         }
6673
6674                 /* Note that here we test for yy_c_buf_p "<=" to the position
6675                  * of the first EOB in the buffer, since yy_c_buf_p will
6676                  * already have been incremented past the NUL character
6677                  * (since all states make transitions on EOB to the
6678                  * end-of-buffer state).  Contrast this with the test
6679                  * in input().
6680                  */
6681                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6682                         { /* This was really a NUL. */
6683                         yy_state_type yy_next_state;
6684
6685                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
6686
6687                         yy_current_state = yy_get_previous_state(  );
6688
6689                         /* Okay, we're now positioned to make the NUL
6690                          * transition.  We couldn't have
6691                          * yy_get_previous_state() go ahead and do it
6692                          * for us because it doesn't know how to deal
6693                          * with the possibility of jamming (and we don't
6694                          * want to build jamming into it because then it
6695                          * will run more slowly).
6696                          */
6697
6698                         yy_next_state = yy_try_NUL_trans( yy_current_state );
6699
6700                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
6701
6702                         if ( yy_next_state )
6703                                 {
6704                                 /* Consume the NUL. */
6705                                 yy_cp = ++(yy_c_buf_p);
6706                                 yy_current_state = yy_next_state;
6707                                 goto yy_match;
6708                                 }
6709
6710                         else
6711                                 {
6712                                 yy_cp = (yy_c_buf_p);
6713                                 goto yy_find_action;
6714                                 }
6715                         }
6716
6717                 else switch ( yy_get_next_buffer(  ) )
6718                         {
6719                         case EOB_ACT_END_OF_FILE:
6720                                 {
6721                                 (yy_did_buffer_switch_on_eof) = 0;
6722
6723                                 if ( surf_parse_wrap( ) )
6724                                         {
6725                                         /* Note: because we've taken care in
6726                                          * yy_get_next_buffer() to have set up
6727                                          * surf_parse_text, we can now set up
6728                                          * yy_c_buf_p so that if some total
6729                                          * hoser (like flex itself) wants to
6730                                          * call the scanner after we return the
6731                                          * YY_NULL, it'll still work - another
6732                                          * YY_NULL will get returned.
6733                                          */
6734                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
6735
6736                                         yy_act = YY_STATE_EOF(YY_START);
6737                                         goto do_action;
6738                                         }
6739
6740                                 else
6741                                         {
6742                                         if ( ! (yy_did_buffer_switch_on_eof) )
6743                                                 YY_NEW_FILE;
6744                                         }
6745                                 break;
6746                                 }
6747
6748                         case EOB_ACT_CONTINUE_SCAN:
6749                                 (yy_c_buf_p) =
6750                                         (yytext_ptr) + yy_amount_of_matched_text;
6751
6752                                 yy_current_state = yy_get_previous_state(  );
6753
6754                                 yy_cp = (yy_c_buf_p);
6755                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
6756                                 goto yy_match;
6757
6758                         case EOB_ACT_LAST_MATCH:
6759                                 (yy_c_buf_p) =
6760                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
6761
6762                                 yy_current_state = yy_get_previous_state(  );
6763
6764                                 yy_cp = (yy_c_buf_p);
6765                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
6766                                 goto yy_find_action;
6767                         }
6768                 break;
6769                 }
6770
6771         default:
6772                 YY_FATAL_ERROR(
6773                         "fatal flex scanner internal error--no action found" );
6774         } /* end of action switch */
6775                 } /* end of scanning one token */
6776 } /* end of surf_parse_lex */
6777
6778 /* yy_get_next_buffer - try to read in a new buffer
6779  *
6780  * Returns a code representing an action:
6781  *      EOB_ACT_LAST_MATCH -
6782  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
6783  *      EOB_ACT_END_OF_FILE - end of file
6784  */
6785 static int yy_get_next_buffer (void)
6786 {
6787         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
6788         register char *source = (yytext_ptr);
6789         register int number_to_move, i;
6790         int ret_val;
6791
6792         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
6793                 YY_FATAL_ERROR(
6794                 "fatal flex scanner internal error--end of buffer missed" );
6795
6796         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
6797                 { /* Don't try to fill the buffer, so this is an EOF. */
6798                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
6799                         {
6800                         /* We matched a single character, the EOB, so
6801                          * treat this as a final EOF.
6802                          */
6803                         return EOB_ACT_END_OF_FILE;
6804                         }
6805
6806                 else
6807                         {
6808                         /* We matched some text prior to the EOB, first
6809                          * process it.
6810                          */
6811                         return EOB_ACT_LAST_MATCH;
6812                         }
6813                 }
6814
6815         /* Try to read more data. */
6816
6817         /* First move last chars to start of buffer. */
6818         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
6819
6820         for ( i = 0; i < number_to_move; ++i )
6821                 *(dest++) = *(source++);
6822
6823         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
6824                 /* don't do the read, it's not guaranteed to return an EOF,
6825                  * just force an EOF
6826                  */
6827                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
6828
6829         else
6830                 {
6831                         int num_to_read =
6832                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
6833
6834                 while ( num_to_read <= 0 )
6835                         { /* Not enough room in the buffer - grow it. */
6836
6837                         /* just a shorter name for the current buffer */
6838                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
6839
6840                         int yy_c_buf_p_offset =
6841                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
6842
6843                         if ( b->yy_is_our_buffer )
6844                                 {
6845                                 int new_size = b->yy_buf_size * 2;
6846
6847                                 if ( new_size <= 0 )
6848                                         b->yy_buf_size += b->yy_buf_size / 8;
6849                                 else
6850                                         b->yy_buf_size *= 2;
6851
6852                                 b->yy_ch_buf = (char *)
6853                                         /* Include room in for 2 EOB chars. */
6854                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
6855                                 }
6856                         else
6857                                 /* Can't grow it, we don't own it. */
6858                                 b->yy_ch_buf = 0;
6859
6860                         if ( ! b->yy_ch_buf )
6861                                 YY_FATAL_ERROR(
6862                                 "fatal error - scanner input buffer overflow" );
6863
6864                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
6865
6866                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
6867                                                 number_to_move - 1;
6868
6869                         }
6870
6871                 if ( num_to_read > YY_READ_BUF_SIZE )
6872                         num_to_read = YY_READ_BUF_SIZE;
6873
6874                 /* Read in more data. */
6875                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
6876                         (yy_n_chars), (size_t) num_to_read );
6877
6878                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6879                 }
6880
6881         if ( (yy_n_chars) == 0 )
6882                 {
6883                 if ( number_to_move == YY_MORE_ADJ )
6884                         {
6885                         ret_val = EOB_ACT_END_OF_FILE;
6886                         surf_parse_restart(surf_parse_in  );
6887                         }
6888
6889                 else
6890                         {
6891                         ret_val = EOB_ACT_LAST_MATCH;
6892                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6893                                 YY_BUFFER_EOF_PENDING;
6894                         }
6895                 }
6896
6897         else
6898                 ret_val = EOB_ACT_CONTINUE_SCAN;
6899
6900         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
6901                 /* Extend the array by 50%, plus the number we really need. */
6902                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
6903                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
6904                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6905                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
6906         }
6907
6908         (yy_n_chars) += number_to_move;
6909         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
6910         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
6911
6912         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6913
6914         return ret_val;
6915 }
6916
6917 /* yy_get_previous_state - get the state just before the EOB char was reached */
6918
6919     static yy_state_type yy_get_previous_state (void)
6920 {
6921         register yy_state_type yy_current_state;
6922         register char *yy_cp;
6923     
6924         yy_current_state = (yy_start);
6925
6926         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
6927                 {
6928                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6929                 if ( yy_accept[yy_current_state] )
6930                         {
6931                         (yy_last_accepting_state) = yy_current_state;
6932                         (yy_last_accepting_cpos) = yy_cp;
6933                         }
6934                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6935                         {
6936                         yy_current_state = (int) yy_def[yy_current_state];
6937                         if ( yy_current_state >= 2408 )
6938                                 yy_c = yy_meta[(unsigned int) yy_c];
6939                         }
6940                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6941                 }
6942
6943         return yy_current_state;
6944 }
6945
6946 /* yy_try_NUL_trans - try to make a transition on the NUL character
6947  *
6948  * synopsis
6949  *      next_state = yy_try_NUL_trans( current_state );
6950  */
6951     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
6952 {
6953         register int yy_is_jam;
6954         register char *yy_cp = (yy_c_buf_p);
6955
6956         register YY_CHAR yy_c = 1;
6957         if ( yy_accept[yy_current_state] )
6958                 {
6959                 (yy_last_accepting_state) = yy_current_state;
6960                 (yy_last_accepting_cpos) = yy_cp;
6961                 }
6962         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6963                 {
6964                 yy_current_state = (int) yy_def[yy_current_state];
6965                 if ( yy_current_state >= 2408 )
6966                         yy_c = yy_meta[(unsigned int) yy_c];
6967                 }
6968         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6969         yy_is_jam = (yy_current_state == 2407);
6970
6971         return yy_is_jam ? 0 : yy_current_state;
6972 }
6973
6974 #ifndef YY_NO_INPUT
6975 #ifdef __cplusplus
6976     static int yyinput (void)
6977 #else
6978     static int input  (void)
6979 #endif
6980
6981 {
6982         int c;
6983     
6984         *(yy_c_buf_p) = (yy_hold_char);
6985
6986         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6987                 {
6988                 /* yy_c_buf_p now points to the character we want to return.
6989                  * If this occurs *before* the EOB characters, then it's a
6990                  * valid NUL; if not, then we've hit the end of the buffer.
6991                  */
6992                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6993                         /* This was really a NUL. */
6994                         *(yy_c_buf_p) = '\0';
6995
6996                 else
6997                         { /* need more input */
6998                         int offset = (yy_c_buf_p) - (yytext_ptr);
6999                         ++(yy_c_buf_p);
7000
7001                         switch ( yy_get_next_buffer(  ) )
7002                                 {
7003                                 case EOB_ACT_LAST_MATCH:
7004                                         /* This happens because yy_g_n_b()
7005                                          * sees that we've accumulated a
7006                                          * token and flags that we need to
7007                                          * try matching the token before
7008                                          * proceeding.  But for input(),
7009                                          * there's no matching to consider.
7010                                          * So convert the EOB_ACT_LAST_MATCH
7011                                          * to EOB_ACT_END_OF_FILE.
7012                                          */
7013
7014                                         /* Reset buffer status. */
7015                                         surf_parse_restart(surf_parse_in );
7016
7017                                         /*FALLTHROUGH*/
7018
7019                                 case EOB_ACT_END_OF_FILE:
7020                                         {
7021                                         if ( surf_parse_wrap( ) )
7022                                                 return EOF;
7023
7024                                         if ( ! (yy_did_buffer_switch_on_eof) )
7025                                                 YY_NEW_FILE;
7026 #ifdef __cplusplus
7027                                         return yyinput();
7028 #else
7029                                         return input();
7030 #endif
7031                                         }
7032
7033                                 case EOB_ACT_CONTINUE_SCAN:
7034                                         (yy_c_buf_p) = (yytext_ptr) + offset;
7035                                         break;
7036                                 }
7037                         }
7038                 }
7039
7040         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
7041         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
7042         (yy_hold_char) = *++(yy_c_buf_p);
7043
7044         if ( c == '\n' )
7045                    
7046     surf_parse_lineno++;
7047 ;
7048
7049         return c;
7050 }
7051 #endif  /* ifndef YY_NO_INPUT */
7052
7053 /** Immediately switch to a different input stream.
7054  * @param input_file A readable stream.
7055  * 
7056  * @note This function does not reset the start condition to @c INITIAL .
7057  */
7058     void surf_parse_restart  (FILE * input_file )
7059 {
7060     
7061         if ( ! YY_CURRENT_BUFFER ){
7062         surf_parse_ensure_buffer_stack ();
7063                 YY_CURRENT_BUFFER_LVALUE =
7064             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
7065         }
7066
7067         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
7068         surf_parse__load_buffer_state( );
7069 }
7070
7071 /** Switch to a different input buffer.
7072  * @param new_buffer The new input buffer.
7073  * 
7074  */
7075     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
7076 {
7077     
7078         /* TODO. We should be able to replace this entire function body
7079          * with
7080          *              surf_parse_pop_buffer_state();
7081          *              surf_parse_push_buffer_state(new_buffer);
7082      */
7083         surf_parse_ensure_buffer_stack ();
7084         if ( YY_CURRENT_BUFFER == new_buffer )
7085                 return;
7086
7087         if ( YY_CURRENT_BUFFER )
7088                 {
7089                 /* Flush out information for old buffer. */
7090                 *(yy_c_buf_p) = (yy_hold_char);
7091                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
7092                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
7093                 }
7094
7095         YY_CURRENT_BUFFER_LVALUE = new_buffer;
7096         surf_parse__load_buffer_state( );
7097
7098         /* We don't actually know whether we did this switch during
7099          * EOF (surf_parse_wrap()) processing, but the only time this flag
7100          * is looked at is after surf_parse_wrap() is called, so it's safe
7101          * to go ahead and always set it.
7102          */
7103         (yy_did_buffer_switch_on_eof) = 1;
7104 }
7105
7106 static void surf_parse__load_buffer_state  (void)
7107 {
7108         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
7109         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
7110         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
7111         (yy_hold_char) = *(yy_c_buf_p);
7112 }
7113
7114 /** Allocate and initialize an input buffer state.
7115  * @param file A readable stream.
7116  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
7117  * 
7118  * @return the allocated buffer state.
7119  */
7120     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
7121 {
7122         YY_BUFFER_STATE b;
7123     
7124         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
7125         if ( ! b )
7126                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
7127
7128         b->yy_buf_size = size;
7129
7130         /* yy_ch_buf has to be 2 characters longer than the size given because
7131          * we need to put in 2 end-of-buffer characters.
7132          */
7133         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
7134         if ( ! b->yy_ch_buf )
7135                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
7136
7137         b->yy_is_our_buffer = 1;
7138
7139         surf_parse__init_buffer(b,file );
7140
7141         return b;
7142 }
7143
7144 /** Destroy the buffer.
7145  * @param b a buffer created with surf_parse__create_buffer()
7146  * 
7147  */
7148     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
7149 {
7150     
7151         if ( ! b )
7152                 return;
7153
7154         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
7155                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
7156
7157         if ( b->yy_is_our_buffer )
7158                 surf_parse_free((void *) b->yy_ch_buf  );
7159
7160         surf_parse_free((void *) b  );
7161 }
7162
7163 #ifndef __cplusplus
7164 extern int isatty (int );
7165 #endif /* __cplusplus */
7166     
7167 /* Initializes or reinitializes a buffer.
7168  * This function is sometimes called more than once on the same buffer,
7169  * such as during a surf_parse_restart() or at EOF.
7170  */
7171     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
7172
7173 {
7174         int oerrno = errno;
7175     
7176         surf_parse__flush_buffer(b );
7177
7178         b->yy_input_file = file;
7179         b->yy_fill_buffer = 1;
7180
7181     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
7182      * called from surf_parse_restart() or through yy_get_next_buffer.
7183      * In that case, we don't want to reset the lineno or column.
7184      */
7185     if (b != YY_CURRENT_BUFFER){
7186         b->yy_bs_lineno = 1;
7187         b->yy_bs_column = 0;
7188     }
7189
7190         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
7191     
7192         errno = oerrno;
7193 }
7194
7195 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
7196  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
7197  * 
7198  */
7199     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
7200 {
7201         if ( ! b )
7202                 return;
7203
7204         b->yy_n_chars = 0;
7205
7206         /* We always need two end-of-buffer characters.  The first causes
7207          * a transition to the end-of-buffer state.  The second causes
7208          * a jam in that state.
7209          */
7210         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
7211         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
7212
7213         b->yy_buf_pos = &b->yy_ch_buf[0];
7214
7215         b->yy_at_bol = 1;
7216         b->yy_buffer_status = YY_BUFFER_NEW;
7217
7218         if ( b == YY_CURRENT_BUFFER )
7219                 surf_parse__load_buffer_state( );
7220 }
7221
7222 /** Pushes the new state onto the stack. The new state becomes
7223  *  the current state. This function will allocate the stack
7224  *  if necessary.
7225  *  @param new_buffer The new state.
7226  *  
7227  */
7228 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
7229 {
7230         if (new_buffer == NULL)
7231                 return;
7232
7233         surf_parse_ensure_buffer_stack();
7234
7235         /* This block is copied from surf_parse__switch_to_buffer. */
7236         if ( YY_CURRENT_BUFFER )
7237                 {
7238                 /* Flush out information for old buffer. */
7239                 *(yy_c_buf_p) = (yy_hold_char);
7240                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
7241                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
7242                 }
7243
7244         /* Only push if top exists. Otherwise, replace top. */
7245         if (YY_CURRENT_BUFFER)
7246                 (yy_buffer_stack_top)++;
7247         YY_CURRENT_BUFFER_LVALUE = new_buffer;
7248
7249         /* copied from surf_parse__switch_to_buffer. */
7250         surf_parse__load_buffer_state( );
7251         (yy_did_buffer_switch_on_eof) = 1;
7252 }
7253
7254 /** Removes and deletes the top of the stack, if present.
7255  *  The next element becomes the new top.
7256  *  
7257  */
7258 void surf_parse_pop_buffer_state (void)
7259 {
7260         if (!YY_CURRENT_BUFFER)
7261                 return;
7262
7263         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
7264         YY_CURRENT_BUFFER_LVALUE = NULL;
7265         if ((yy_buffer_stack_top) > 0)
7266                 --(yy_buffer_stack_top);
7267
7268         if (YY_CURRENT_BUFFER) {
7269                 surf_parse__load_buffer_state( );
7270                 (yy_did_buffer_switch_on_eof) = 1;
7271         }
7272 }
7273
7274 /* Allocates the stack if it does not exist.
7275  *  Guarantees space for at least one push.
7276  */
7277 static void surf_parse_ensure_buffer_stack (void)
7278 {
7279         int num_to_alloc;
7280     
7281         if (!(yy_buffer_stack)) {
7282
7283                 /* First allocation is just for 2 elements, since we don't know if this
7284                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
7285                  * immediate realloc on the next call.
7286          */
7287                 num_to_alloc = 1;
7288                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
7289                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
7290                                                                 );
7291                 if ( ! (yy_buffer_stack) )
7292                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
7293                                                                   
7294                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
7295                                 
7296                 (yy_buffer_stack_max) = num_to_alloc;
7297                 (yy_buffer_stack_top) = 0;
7298                 return;
7299         }
7300
7301         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
7302
7303                 /* Increase the buffer to prepare for a possible push. */
7304                 int grow_size = 8 /* arbitrary grow size */;
7305
7306                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
7307                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
7308                                                                 ((yy_buffer_stack),
7309                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
7310                                                                 );
7311                 if ( ! (yy_buffer_stack) )
7312                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
7313
7314                 /* zero only the new slots.*/
7315                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
7316                 (yy_buffer_stack_max) = num_to_alloc;
7317         }
7318 }
7319
7320 /** Setup the input buffer state to scan directly from a user-specified character buffer.
7321  * @param base the character buffer
7322  * @param size the size in bytes of the character buffer
7323  * 
7324  * @return the newly allocated buffer state object. 
7325  */
7326 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
7327 {
7328         YY_BUFFER_STATE b;
7329     
7330         if ( size < 2 ||
7331              base[size-2] != YY_END_OF_BUFFER_CHAR ||
7332              base[size-1] != YY_END_OF_BUFFER_CHAR )
7333                 /* They forgot to leave room for the EOB's. */
7334                 return 0;
7335
7336         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
7337         if ( ! b )
7338                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
7339
7340         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
7341         b->yy_buf_pos = b->yy_ch_buf = base;
7342         b->yy_is_our_buffer = 0;
7343         b->yy_input_file = 0;
7344         b->yy_n_chars = b->yy_buf_size;
7345         b->yy_is_interactive = 0;
7346         b->yy_at_bol = 1;
7347         b->yy_fill_buffer = 0;
7348         b->yy_buffer_status = YY_BUFFER_NEW;
7349
7350         surf_parse__switch_to_buffer(b  );
7351
7352         return b;
7353 }
7354
7355 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
7356  * scan from a @e copy of @a str.
7357  * @param yystr a NUL-terminated string to scan
7358  * 
7359  * @return the newly allocated buffer state object.
7360  * @note If you want to scan bytes that may contain NUL values, then use
7361  *       surf_parse__scan_bytes() instead.
7362  */
7363 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
7364 {
7365     
7366         return surf_parse__scan_bytes(yystr,strlen(yystr) );
7367 }
7368
7369 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
7370  * scan from a @e copy of @a bytes.
7371  * @param yybytes the byte buffer to scan
7372  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
7373  * 
7374  * @return the newly allocated buffer state object.
7375  */
7376 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
7377 {
7378         YY_BUFFER_STATE b;
7379         char *buf;
7380         yy_size_t n;
7381         int i;
7382     
7383         /* Get memory for full buffer, including space for trailing EOB's. */
7384         n = _yybytes_len + 2;
7385         buf = (char *) surf_parse_alloc(n  );
7386         if ( ! buf )
7387                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
7388
7389         for ( i = 0; i < _yybytes_len; ++i )
7390                 buf[i] = yybytes[i];
7391
7392         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
7393
7394         b = surf_parse__scan_buffer(buf,n );
7395         if ( ! b )
7396                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
7397
7398         /* It's okay to grow etc. this buffer, and we should throw it
7399          * away when we're done.
7400          */
7401         b->yy_is_our_buffer = 1;
7402
7403         return b;
7404 }
7405
7406     static void yy_push_state (int  new_state )
7407 {
7408         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
7409                 {
7410                 yy_size_t new_size;
7411
7412                 (yy_start_stack_depth) += YY_START_STACK_INCR;
7413                 new_size = (yy_start_stack_depth) * sizeof( int );
7414
7415                 if ( ! (yy_start_stack) )
7416                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
7417
7418                 else
7419                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
7420
7421                 if ( ! (yy_start_stack) )
7422                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
7423                 }
7424
7425         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
7426
7427         BEGIN(new_state);
7428 }
7429
7430     static void yy_pop_state  (void)
7431 {
7432         if ( --(yy_start_stack_ptr) < 0 )
7433                 YY_FATAL_ERROR( "start-condition stack underflow" );
7434
7435         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
7436 }
7437
7438 #ifndef YY_EXIT_FAILURE
7439 #define YY_EXIT_FAILURE 2
7440 #endif
7441
7442 static void yy_fatal_error (yyconst char* msg )
7443 {
7444         (void) fprintf( stderr, "%s\n", msg );
7445         exit( YY_EXIT_FAILURE );
7446 }
7447
7448 /* Redefine yyless() so it works in section 3 code. */
7449
7450 #undef yyless
7451 #define yyless(n) \
7452         do \
7453                 { \
7454                 /* Undo effects of setting up surf_parse_text. */ \
7455         int yyless_macro_arg = (n); \
7456         YY_LESS_LINENO(yyless_macro_arg);\
7457                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
7458                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
7459                 (yy_hold_char) = *(yy_c_buf_p); \
7460                 *(yy_c_buf_p) = '\0'; \
7461                 surf_parse_leng = yyless_macro_arg; \
7462                 } \
7463         while ( 0 )
7464
7465 /* Accessor  methods (get/set functions) to struct members. */
7466
7467 /** Get the current line number.
7468  * 
7469  */
7470 int surf_parse_get_lineno  (void)
7471 {
7472         
7473     return surf_parse_lineno;
7474 }
7475
7476 /** Get the input stream.
7477  * 
7478  */
7479 FILE *surf_parse_get_in  (void)
7480 {
7481         return surf_parse_in;
7482 }
7483
7484 /** Get the output stream.
7485  * 
7486  */
7487 FILE *surf_parse_get_out  (void)
7488 {
7489         return surf_parse_out;
7490 }
7491
7492 /** Get the length of the current token.
7493  * 
7494  */
7495 int surf_parse_get_leng  (void)
7496 {
7497         return surf_parse_leng;
7498 }
7499
7500 /** Get the current token.
7501  * 
7502  */
7503
7504 char *surf_parse_get_text  (void)
7505 {
7506         return surf_parse_text;
7507 }
7508
7509 /** Set the current line number.
7510  * @param line_number
7511  * 
7512  */
7513 void surf_parse_set_lineno (int  line_number )
7514 {
7515     
7516     surf_parse_lineno = line_number;
7517 }
7518
7519 /** Set the input stream. This does not discard the current
7520  * input buffer.
7521  * @param in_str A readable stream.
7522  * 
7523  * @see surf_parse__switch_to_buffer
7524  */
7525 void surf_parse_set_in (FILE *  in_str )
7526 {
7527         surf_parse_in = in_str ;
7528 }
7529
7530 void surf_parse_set_out (FILE *  out_str )
7531 {
7532         surf_parse_out = out_str ;
7533 }
7534
7535 int surf_parse_get_debug  (void)
7536 {
7537         return surf_parse__flex_debug;
7538 }
7539
7540 void surf_parse_set_debug (int  bdebug )
7541 {
7542         surf_parse__flex_debug = bdebug ;
7543 }
7544
7545 static int yy_init_globals (void)
7546 {
7547         /* Initialization is the same as for the non-reentrant scanner.
7548      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
7549      */
7550
7551     /* We do not touch surf_parse_lineno unless the option is enabled. */
7552     surf_parse_lineno =  1;
7553     
7554     (yy_buffer_stack) = 0;
7555     (yy_buffer_stack_top) = 0;
7556     (yy_buffer_stack_max) = 0;
7557     (yy_c_buf_p) = (char *) 0;
7558     (yy_init) = 0;
7559     (yy_start) = 0;
7560
7561     (yy_start_stack_ptr) = 0;
7562     (yy_start_stack_depth) = 0;
7563     (yy_start_stack) =  NULL;
7564
7565 /* Defined in main.c */
7566 #ifdef YY_STDINIT
7567     surf_parse_in = stdin;
7568     surf_parse_out = stdout;
7569 #else
7570     surf_parse_in = (FILE *) 0;
7571     surf_parse_out = (FILE *) 0;
7572 #endif
7573
7574     /* For future reference: Set errno on error, since we are called by
7575      * surf_parse_lex_init()
7576      */
7577     return 0;
7578 }
7579
7580 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
7581 int surf_parse_lex_destroy  (void)
7582 {
7583     
7584     /* Pop the buffer stack, destroying each element. */
7585         while(YY_CURRENT_BUFFER){
7586                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
7587                 YY_CURRENT_BUFFER_LVALUE = NULL;
7588                 surf_parse_pop_buffer_state();
7589         }
7590
7591         /* Destroy the stack itself. */
7592         surf_parse_free((yy_buffer_stack) );
7593         (yy_buffer_stack) = NULL;
7594
7595     /* Destroy the start condition stack. */
7596         surf_parse_free((yy_start_stack)  );
7597         (yy_start_stack) = NULL;
7598
7599     /* Reset the globals. This is important in a non-reentrant scanner so the next time
7600      * surf_parse_lex() is called, initialization will occur. */
7601     yy_init_globals( );
7602
7603     return 0;
7604 }
7605
7606 /*
7607  * Internal utility routines.
7608  */
7609
7610 #ifndef yytext_ptr
7611 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
7612 {
7613         register int i;
7614         for ( i = 0; i < n; ++i )
7615                 s1[i] = s2[i];
7616 }
7617 #endif
7618
7619 #ifdef YY_NEED_STRLEN
7620 static int yy_flex_strlen (yyconst char * s )
7621 {
7622         register int n;
7623         for ( n = 0; s[n]; ++n )
7624                 ;
7625
7626         return n;
7627 }
7628 #endif
7629
7630 void *surf_parse_alloc (yy_size_t  size )
7631 {
7632         return (void *) malloc( size );
7633 }
7634
7635 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
7636 {
7637         /* The cast to (char *) in the following accommodates both
7638          * implementations that use char* generic pointers, and those
7639          * that use void* generic pointers.  It works with the latter
7640          * because both ANSI C and C++ allow castless assignment from
7641          * any pointer type to void*, and deal with argument conversions
7642          * as though doing an assignment.
7643          */
7644         return (void *) realloc( (char *) ptr, size );
7645 }
7646
7647 void surf_parse_free (void * ptr )
7648 {
7649         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
7650 }
7651
7652 #define YYTABLES_NAME "yytables"
7653
7654 /* Element context stack lookup. */
7655 int surfxml_element_context(int i)
7656 {
7657   return (0<i && i<yy_start_stack_depth
7658           ? yy_start_stack[yy_start_stack_ptr - i]
7659           : 0);
7660 }
7661
7662 #ifdef FLEX_DEBUG
7663 void print_yy_stack(char* fmt, ...)
7664 {
7665   int i = 0; va_list ap; va_start(ap, fmt);
7666   vfprintf(stderr, fmt, ap);
7667   if (surfxml_statenames) {
7668       for (i=1; i<yy_start_stack_ptr; i++) {
7669           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
7670       }
7671       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
7672   }
7673   va_end(ap);
7674 }
7675
7676 void print_surfxml_bufferstack()
7677 {
7678     int i;
7679     fputs("Buffer: ", stderr);
7680     for (i = 0; i < blimit; i++) {
7681        if ( surfxml_bufferstack[i] == '\377' ) break;
7682          putc(surfxml_bufferstack[i], stderr);
7683     }
7684     putc('\n', stderr);
7685 }
7686
7687 static void debug_enter(int state, const char* statename) {
7688   yy_push_state(state);
7689   if (surf_parse__flex_debug) {
7690        print_yy_stack("--ENTER(%s) : ",statename);
7691        print_surfxml_bufferstack();
7692   }
7693 }
7694
7695 static void debug_leave(void) {
7696     if (surf_parse__flex_debug) {
7697         print_yy_stack("--LEAVE : ");
7698         print_surfxml_bufferstack();
7699     }
7700   yy_pop_state();
7701 }
7702
7703 static void debug_set(int state, const char* statename) {
7704   BEGIN(state);
7705   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
7706 }
7707 #endif
7708
7709 static void cleanup(void)
7710 {
7711     if (surfxml_statenames) {
7712         free(surfxml_statenames);
7713         surfxml_statenames = NULL;
7714     }
7715     free(surfxml_bufferstack);
7716     surfxml_bufferstack = NULL;
7717
7718     free(indexstack);
7719     indexstack = NULL;
7720 }
7721
7722 static int fail(const char* fmt, ...)
7723 {
7724     int chars_left, used;
7725     va_list ap; va_start(ap, fmt);
7726 #ifdef FLEXML_yylineno
7727     used = sprintf(flexml_err_msg,
7728                    "Invalid XML (XML input line %d, state %d): ",
7729                    surf_parse_lineno, YY_START);
7730 #else
7731     used = sprintf(flexml_err_msg,
7732                    "Invalid XML (state %d): ",
7733                    YY_START);
7734 #endif
7735     chars_left = flexml_max_err_msg_size - used - 1;
7736     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
7737     va_end(ap);
7738
7739 #ifndef FLEXML_quiet_parser
7740     /* print directly to sdterr */
7741     fprintf(stderr, "%s\n", flexml_err_msg);
7742     flexml_err_msg[0] = '\0';
7743 #endif
7744
7745     cleanup();
7746
7747     return 1;
7748 }
7749