Logo AND Algorithmique Numérique Distribuée

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