Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove misleading comment
[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 459
407 #define YY_END_OF_BUFFER 460
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[2695] =
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,    0,    0,    0,    0,    0,    0,    0,    0,
438
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441       460,  458,   15,   10,   10,   15,   15,  438,   10,  438,
442         5,    6,    5,    8,    9,    8,  454,  446,  447,  455,
443       452,  455,  453,  457,  446,  447,  457,  458,   22,   10,
444        22,   22,   22,   20,   22,   26,   10,   26,   26,  458,
445        26,  458,  458,   26,   33,   10,   33,   33,   33,   31,
446        33,   37,   10,   37,   48,   10,   48,   48,   48,   46,
447        48,   48,   48,  455,  454,   78,   10,   78,   78,   78,
448        76,   78,   78,   78,   78,   78,   82,   10,   82,  458,
449
450        82,  101,   10,  101,  101,  101,   99,  101,  101,  101,
451       105,   10,  105,  114,   10,  114,  114,  114,  112,  114,
452       114,  118,   10,  118,  118,  458,  118,  118,  458,  458,
453       118,  458,  118,  458,  118,  129,   10,  129,  129,  129,
454       127,  129,  129,  129,  133,   10,  133,  133,  142,   10,
455       142,  142,  142,  140,  142,  142,  146,   10,  146,  146,
456       155,   10,  155,  155,  155,  153,  155,  155,  159,   10,
457       159,  168,   10,  168,  168,  168,  166,  168,  168,  172,
458        10,  172,  195,   10,  195,  195,  195,  193,  195,  195,
459       195,  195,  195,  199,   10,  199,  458,  199,  240,   10,
460
461       240,  240,  240,  238,  240,  240,  240,  240,  240,  240,
462       240,  240,  244,   10,  244,  265,   10,  265,  265,  265,
463       263,  265,  265,  265,  265,  265,  265,  265,  269,   10,
464       269,  278,   10,  278,  278,  278,  276,  278,  278,  282,
465        10,  282,  309,   10,  309,  309,  309,  307,  309,  309,
466       309,  309,  313,   10,  313,  313,  326,   10,  326,  326,
467       326,  324,  326,  326,  330,   10,  330,  458,  330,  347,
468        10,  347,  347,  347,  345,  347,  347,  347,  351,   10,
469       351,  351,  364,   10,  364,  364,  364,  362,  364,  364,
470       368,   10,  368,  381,   10,  381,  381,  381,  379,  381,
471
472       381,  381,  385,   10,  385,  385,  398,   10,  398,  398,
473       398,  396,  398,  398,  398,  398,  402,   10,  402,  458,
474       402,  409,   10,  409,  409,  409,  407,  409,  413,   10,
475       413,  420,   10,  420,  420,  420,  418,  420,  424,   10,
476       424,  424,  433,   10,  433,  433,  433,  431,  433,  433,
477       437,   10,  437,   10,    0,    2,    2,    0,    4,    7,
478       449,  448,    0,    0,    0,    0,    0,    0,    0,   21,
479        23,   23,    0,    0,    0,    0,    0,    0,    0,    0,
480         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
481         0,    0,    0,    0,    0,   32,   34,   34,    0,   47,
482
483        49,   49,   49,   49,    0,    0,    0,   77,   79,   79,
484        79,   79,   79,   79,   79,   79,   79,    0,    0,  100,
485       102,  102,  102,  102,    0,  113,  115,  115,  115,    0,
486         0,    0,    0,    0,    0,    0,    0,    0,    0,  128,
487       130,  130,  130,  130,    0,  141,  143,  143,  143,    0,
488       154,  156,  156,  156,    0,  167,  169,  169,  169,    0,
489       194,  196,  196,  196,  196,  196,  196,    0,    0,  239,
490       241,  241,  241,  241,  241,  241,  241,  241,  241,  241,
491       241,  241,  241,  241,    0,  264,  266,  266,  266,  266,
492       266,  266,  266,  266,    0,  277,  279,  279,  279,    0,
493
494       308,  310,  310,  310,  310,  310,  310,    0,  325,  327,
495       327,  327,  327,    0,    0,  346,  348,  348,  348,  348,
496       348,    0,  363,  365,  365,  365,    0,  380,  382,  382,
497       382,  382,    0,  397,  399,  399,  399,  399,  399,    0,
498         0,  408,  410,  410,    0,  419,  421,  421,    0,  432,
499       434,  434,  434,    0,    0,    0,    0,    0,    3,    0,
500         0,    0,    0,    0,    0,    0,  456,    0,   23,    0,
501         0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
502         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
503       106,    0,    0,    0,    0,    0,   34,    0,    0,   49,
504
505         0,    0,   49,    0,    0,    0,  451,   79,    0,    0,
506        79,   79,   79,   79,   79,   79,    0,    0,    0,  102,
507       102,  102,    0,    0,    0,    0,  115,    0,    0,  107,
508         0,    0,    0,    0,    0,  106,    0,    0,  130,    0,
509         0,  130,    0,    0,    0,    0,  143,    0,    0,    0,
510         0,  156,    0,    0,  169,  169,    0,    0,  196,  196,
511       196,    0,    0,  196,  196,    0,    0,    0,    0,  241,
512       241,    0,    0,  241,    0,    0,  241,  241,  241,  241,
513       241,  241,  241,  241,    0,    0,  266,  266,  266,    0,
514         0,  266,  266,  266,    0,    0,  279,    0,    0,    0,
515
516         0,  310,    0,    0,  310,  310,  310,    0,    0,  327,
517       327,  327,    0,    0,    0,  348,  348,  348,  348,    0,
518         0,  365,    0,    0,    0,    0,  382,  382,  382,    0,
519         0,  399,  399,  399,  399,    0,    0,    0,  410,    0,
520         0,    0,    0,    0,    0,    0,    0,  434,    0,    0,
521         0,   14,    1,    0,    0,  444,    0,    0,    0,  441,
522       440,    0,    0,   23,    0,    0,   25,    0,  107,    0,
523         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
524         0,    0,    0,    0,    0,    0,    0,    0,  106,    0,
525         0,    0,    0,    0,   34,    0,    0,   36,    0,   49,
526
527         0,   41,   40,   49,    0,    0,    0,   51,    0,   79,
528         0,   55,   54,    0,    0,   79,    0,    0,   79,   79,
529        79,    0,    0,   81,    0,    0,  102,  102,  102,    0,
530         0,  104,    0,    0,  109,  108,  115,    0,    0,  117,
531         0,    0,    0,    0,    0,    0,    0,    0,    0,  130,
532         0,  122,  121,  130,    0,    0,  132,    0,    0,  137,
533       136,  143,    0,    0,  145,    0,    0,  150,  149,  156,
534         0,    0,  158,    0,  169,  169,    0,    0,  171,    0,
535       196,  196,  196,    0,  176,  175,  196,  196,    0,    0,
536       198,    0,    0,    0,  241,  241,  241,  241,    0,  215,
537
538       214,  241,    0,  203,  202,    0,    0,  241,  241,  241,
539       241,  241,  241,  241,    0,    0,  243,    0,  266,  266,
540       266,  266,    0,  248,  247,    0,    0,  266,  266,    0,
541         0,  268,    0,  279,    0,  273,  272,    0,    0,  281,
542         0,  310,    0,  286,  285,  310,  310,  310,    0,    0,
543       312,    0,    0,    0,    0,    0,  327,    0,    0,  329,
544         0,    0,    0,    0,  348,  348,    0,    0,  348,    0,
545         0,  350,    0,  365,    0,  355,  354,    0,    0,  367,
546         0,    0,    0,  382,  382,    0,    0,    0,    0,  384,
547         0,  399,  399,  399,  399,    0,    0,  401,    0,    0,
548
549       410,    0,    0,  412,    0,    0,  417,  416,    0,    0,
550       423,    0,    0,  428,  427,  434,    0,    0,  436,    0,
551         0,    0,  445,  439,    0,    0,    0,   23,    0,    0,
552         0,    0,    0,    0,  173,    0,  283,    0,    0,  246,
553         0,    0,  425,    0,    0,    0,    0,    0,    0,    0,
554         0,  245,    0,    0,    0,    0,    0,    0,    0,   49,
555         0,    0,   79,    0,   59,   58,    0,    0,    0,   57,
556        56,   79,    0,    0,   79,    0,  426,  102,    0,    0,
557       102,    0,  115,    0,  116,    0,    0,  174,  284,    0,
558         0,    0,    0,  130,  130,    0,  143,    0,    0,    0,
559
560         0,    0,    0,  169,    0,  196,  196,    0,    0,  196,
561       196,    0,    0,    0,  241,  241,  241,  241,    0,    0,
562         0,  217,  216,  241,  241,  241,  241,  241,  241,  241,
563         0,  266,  266,  266,  266,    0,  256,  255,  266,  266,
564         0,  279,    0,  310,  310,  310,  310,    0,    0,  319,
565       318,    0,  317,  316,  327,    0,  283,    0,  336,  335,
566       348,  348,    0,  334,  333,  348,    0,  365,    0,    0,
567       374,  373,  382,  382,    0,  372,  371,    0,  399,    0,
568         0,  399,  399,    0,    0,  410,    0,    0,  434,    0,
569         0,    0,    0,   12,    0,  442,  443,    0,   23,    0,
570
571         0,    0,    0,    0,    0,  173,    0,  283,    0,  147,
572         0,  246,    0,    0,  425,    0,  314,    0,   39,    0,
573         0,    0,    0,  245,    0,   38,    0,   30,   29,    0,
574         0,   43,   42,   49,    0,    0,   79,    0,   61,   60,
575        79,    0,   65,   64,   79,    0,  426,  102,    0,    0,
576         0,    0,    0,    0,  115,    0,    0,  174,  284,  315,
577         0,  315,  314,  130,    0,    0,    0,  143,    0,    0,
578       152,  151,    0,    0,  165,  164,  169,    0,  196,  196,
579         0,  180,  179,    0,    0,    0,    0,  196,    0,  148,
580         0,  241,    0,    0,  241,  241,    0,  213,  212,    0,
581
582         0,  241,  241,  241,  241,  241,  241,    0,  266,    0,
583         0,  266,  266,    0,    0,  266,    0,  279,    0,  310,
584       310,  310,    0,    0,  310,    0,  327,    0,    0,  348,
585       348,  348,    0,  365,    0,  382,  382,    0,  399,    0,
586       389,  388,  399,  399,    0,    0,    0,    0,    0,    0,
587         0,    0,    0,    0,    0,    0,   11,    0,   23,    0,
588         0,    0,    0,    0,  415,    0,    0,  147,    0,    0,
589         0,   53,  314,  270,    0,   39,    0,  414,   52,    0,
590         0,    0,   38,    0,    0,   49,    0,    0,   79,   79,
591        79,    0,  102,    0,    0,    0,    0,    0,    0,    0,
592
593         0,    0,   96,   95,    0,  115,    0,    0,  315,  271,
594         0,  130,    0,  124,  123,    0,    0,    0,    0,    0,
595         0,    0,    0,  196,  196,    0,  178,  177,    0,    0,
596         0,  196,    0,  197,  148,    0,  241,    0,  225,  224,
597         0,    0,  241,    0,  211,  210,    0,    0,  241,  241,
598       241,  241,    0,    0,    0,  266,    0,  252,  251,    0,
599         0,  266,    0,  250,  249,  266,    0,  267,  279,    0,
600       310,  310,  310,    0,    0,    0,  310,    0,  311,  327,
601         0,    0,    0,    0,    0,    0,  348,    0,  365,    0,
602         0,    0,    0,    0,    0,  399,  399,  399,    0,    0,
603
604         0,  406,  405,    0,    0,    0,  430,  429,    0,  435,
605         0,    0,    0,    0,    0,    0,    0,  331,    0,    0,
606       201,  415,   28,    0,    0,    0,  387,   53,  270,  134,
607         0,  414,   52,  200,   27,  386,    0,    0,   49,    0,
608         0,   50,   79,    0,    0,   79,    0,    0,    0,    0,
609         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
610         0,    0,  332,    0,  271,  135,    0,    0,    0,    0,
611       139,  138,    0,    0,  157,    0,  163,  162,    0,  196,
612       196,    0,    0,  196,    0,  241,    0,  227,  226,  241,
613         0,  205,  204,    0,    0,  241,  241,  241,    0,  207,
614
615       206,    0,  266,    0,  254,  253,  266,  266,  279,    0,
616       310,    0,    0,  310,  310,    0,    0,  310,  327,    0,
617       328,    0,    0,  340,  339,    0,  338,  337,  348,    0,
618       365,    0,    0,  378,  377,    0,  376,  375,    0,  399,
619       399,  399,    0,    0,    0,    0,    0,    0,    0,   17,
620         0,   19,   18,    0,  331,  403,    0,  201,   28,  352,
621       160,   16,  387,  134,    0,    0,  200,   27,  386,    0,
622         0,   49,  450,   79,    0,   67,   66,   79,    0,   80,
623         0,   98,   97,    0,    0,    0,    0,    0,    0,    0,
624         0,    0,    0,    0,    0,  111,  110,  332,    0,  135,
625
626         0,    0,  126,  125,    0,    0,    0,  196,  196,    0,
627         0,    0,    0,  196,  161,  241,  241,    0,  209,  208,
628       241,  241,  241,    0,  266,  266,  266,  279,    0,  280,
629       310,    0,  292,  291,  310,  310,    0,    0,    0,    0,
630       310,  327,  353,  348,    0,  365,    0,    0,    0,    0,
631       399,  399,    0,  404,    0,    0,  422,    0,    0,    0,
632        17,    0,  403,    0,  352,  160,   16,    0,    0,    0,
633         0,   35,   49,    0,    0,   79,    0,    0,    0,    0,
634         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
635         0,  144,    0,  196,  196,    0,  186,    0,  185,  196,
636
637       161,  241,  241,    0,    0,  241,  241,    0,  242,  266,
638       266,  266,  279,    0,    0,  310,  310,  310,    0,  296,
639         0,  295,  310,  327,  353,  348,    0,  349,    0,    0,
640         0,    0,    0,  391,  390,    0,    0,  399,    0,  400,
641       404,    0,    0,    0,    0,    0,   24,    0,    0,    0,
642         0,   49,    0,    0,    0,   79,    0,    0,    0,    0,
643         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
644         0,  170,  196,  196,  188,  187,    0,    0,  241,  241,
645         0,  237,  236,  241,    0,    0,  266,  266,    0,    0,
646       279,    0,  288,  287,  310,  310,  310,  298,  297,    0,
647
648         0,  327,  348,    0,    0,    0,    0,  366,    0,    0,
649       395,  394,    0,    0,    0,  411,    0,    0,    0,  369,
650         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
651         0,   79,    0,    0,    0,    0,   88,    0,    0,    0,
652         0,   87,    0,  370,    0,    0,  196,    0,    0,    0,
653       190,  189,  241,  241,  241,    0,  235,  234,  266,    0,
654         0,    0,  262,  261,    0,    0,  310,  310,  310,    0,
655       300,  299,    0,    0,    0,    0,    0,    0,    0,    0,
656         0,    0,    0,    0,  393,  392,    0,    0,    0,  369,
657       119,    0,    0,    0,   45,   44,    0,    0,    0,    0,
658
659         0,    0,    0,    0,   79,    0,    0,    0,    0,    0,
660         0,    0,    0,    0,  370,  120,    0,    0,    0,  196,
661         0,  192,  191,  241,  241,  241,  266,    0,  258,  257,
662         0,  275,  274,  310,    0,    0,  310,    0,    0,    0,
663         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
664         0,    0,    0,    0,  119,   84,   83,    0,    0,    0,
665         0,    0,    0,    0,    0,    0,    0,    0,    0,   94,
666         0,    0,    0,   93,    0,    0,  120,    0,    0,  182,
667       181,  196,  241,  241,  241,  266,  310,    0,  294,  293,
668       310,    0,    0,    0,    0,    0,    0,    0,    0,    0,
669
670         0,  357,    0,    0,  356,    0,  383,    0,    0,    0,
671         0,    0,    0,   84,   83,    0,    0,    0,    0,    0,
672         0,    0,    0,    0,   63,   62,    0,    0,    0,    0,
673         0,    0,    0,    0,  131,  196,  241,  241,    0,    0,
674       266,    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,   75,   71,    0,    0,   74,   70,
677         0,   92,    0,    0,   91,    0,    0,    0,  103,  196,
678       241,  241,    0,    0,    0,  266,    0,  290,  289,    0,
679         0,    0,  323,    0,  322,    0,  344,    0,  343,    0,
680
681       359,  361,  358,  360,    0,    0,    0,   12,    0,   12,
682         0,    0,    0,    0,    0,   86,   90,   85,   89,  196,
683       241,  241,    0,    0,    0,    0,  266,    0,    0,    0,
684         0,  321,  320,  342,  341,    0,    0,    0,    0,    0,
685         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
686         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
687         0,    0,    0,    0,    0,    0,   69,    0,   68,    0,
688         0,  184,  183,    0,  233,  232,    0,    0,    0,    0,
689         0,    0,    0,    0,    0,    0,  260,  259,    0,    0,
690         0,    0,    0,    0,    0,   11,    0,    0,    0,    0,
691
692         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
693         0,    0,    0,    0,    0,   73,   72,    0,    0,    0,
694         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
695         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
697         0,    0,    0,    0,    0,    0,    0,  219,    0,    0,
698       218,    0,    0,  302,    0,    0,  301,    0,    0,    0,
699         0,    0,  223,    0,  222,    0,  304,    0,  303,    0,
700         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
701         0,  229,    0,  228,    0,    0,    0,    0,    0,    0,
702
703       231,  230,  221,  220,  306,  305,    0,    0,    0,    0,
704         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
705         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
706         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
708         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
709         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
710         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712         0,    0,   13,    0
713
714     } ;
715
716 static yyconst flex_int32_t yy_ec[256] =
717     {   0,
718         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
719         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
720         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
721         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
722         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
723        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
724        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
725        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
726        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
727        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
728
729        53,   54,   55,   56,   57,   31,   58,   59,   60,   61,
730        62,   63,   64,   65,   66,   67,   68,   69,   70,   71,
731        72,   31,    1,    1,    1,    1,    1,    1,    1,    1,
732         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
733         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
734         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
735         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
736         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
737         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
738         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
739
740         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
741         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
742         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
743         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
744         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
745         1,    1,    1,    1,    1
746     } ;
747
748 static yyconst flex_int32_t yy_meta[73] =
749     {   0,
750         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
751         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
752         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
753         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
754         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
755         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
756         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
757         5,    5
758     } ;
759
760 static yyconst flex_int16_t yy_base[3070] =
761     {   0,
762         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
763        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
764       108,  177,   75,   78,   83,  128,  131,  134,  138,  141,
765       158,  197,  200,  203,  207,  210,  227,  230,  233,  236,
766       239,  256,  274,  328,  294,  297,  382,  445,  305,  351,
767       508,  574,  300,  354,  358,  361,  402,  405,  408,  412,
768       640,  707,  415,  465,  774,  839,  468,  471,  475,  478,
769       528,  531,  534,  538,  541,  594,  597,  600,  604,  607,
770       660,  663,  666,  670,  673,  727,  730,  733,  737,  740,
771       794,  797,  800,  804,  807,  859,  904,  964,  862,  865,
772
773       869,  872,  924,  927,  930,  934, 1024, 1091,  984,  987,
774       990,  994, 1044, 1047, 1050, 1054, 1158, 1219, 1057, 1111,
775      1280, 1347, 1114, 1117, 1414, 1480, 1121, 1124, 1178, 1181,
776      1184, 1188, 1191, 1239, 1546,    0, 1242, 1245, 1618,    0,
777      1249, 1252, 1690, 1747, 1300, 1303, 1804, 1870, 1306, 1310,
778      1313, 1367, 1370, 1373, 1377, 1380, 1936, 2002, 1434, 1437,
779      1440, 1444, 1500, 1503, 1506, 1510, 2068, 2134, 1710, 1713,
780      1716, 1720, 1767, 1770, 1773, 1777, 2200, 2257, 1824, 1827,
781      2314, 2380, 1830, 1834, 1837, 1890, 1893, 1896, 1900, 1903,
782      2446, 2512, 1956, 1959, 1962, 1966, 1969, 2022, 2025, 2028,
783
784      2578, 2647, 2032, 2035, 2716, 2773, 2088, 2091, 2094, 2098,
785      2101, 2154, 2157, 2160, 2830, 2899, 2164, 2167,    0,    0,
786      7450, 9619, 9619,   95,  100,   29,   41, 9619,  103,   51,
787      9619, 9619, 7439, 9619, 9619, 7428, 9619, 7441, 7441,  498,
788      9619, 9619, 9619, 9619, 7439, 7435, 7390,  145, 9619,  161,
789      7416,    0,  146, 9619, 7380, 9619,  166, 2964,   88,  204,
790       205,  254, 7420,    3, 9619,  169, 7411,    0,  153, 9619,
791      7369, 9619,  260,  419, 9619,  322, 7405,    0,  244, 9619,
792      7367, 7369, 7367,  420, 7372, 9619,  364, 7394,    0,  248,
793      9619, 7360, 7360,  257, 7360,  360, 9619,  440,   31, 7396,
794
795      7344, 9619,  567, 7382,    0,  306, 9619, 7342, 7343, 7332,
796      9619,  624,  482, 9619,  633, 7376,    0,  416, 9619, 7343,
797      7328, 9619,  692, 2172, 2176,  285,   35, 7367,  240,  135,
798       740, 2185,   59, 7376,  152, 9619,  697, 7365,    0,  417,
799      9619, 7322, 7331, 7316, 9619,  700, 7357,  181, 9619,  764,
800      7348,    0,  479, 9619, 7315, 7290, 9619,  767, 7349,  210,
801      9619,  824, 7340,    0,  480, 9619, 7303, 7305, 9619,  830,
802       483, 9619,  833, 7333,    0,  485, 9619, 7299, 7275, 9619,
803       889,  546, 9619,  895, 7326,    0,  543, 9619, 7272, 7278,
804      7287, 7272, 7266, 9619,  898,  310,  464,  527, 9619,  937,
805
806      7312,    0,  545, 9619, 7258,  303, 7264, 7273, 7271,  185,
807       568,  615, 9619,  954,  611, 9619,  997, 7299,    0,  684,
808      9619, 7249, 7243, 7250, 7259, 7257, 7243, 7237, 9619, 1014,
809       685, 9619, 1074, 7279,    0,  742, 9619, 7236, 7245, 9619,
810      1080,  752, 9619, 1083, 7272,    0,  751, 9619, 7242, 7238,
811      7236,  505, 9619, 1086, 7272,  593, 9619, 1141, 7263,    0,
812       808, 9619, 7212,  306, 9619, 1147,  950, 7265, 7217, 9619,
813      1150, 7251,    0,  809, 9619, 7204, 7199,  620, 9619, 1153,
814      7252,  621, 9619, 1208, 7243,    0,  873, 9619, 7205, 7205,
815      9619, 1214,  942, 9619, 1269, 7236,    0,  874, 9619, 7189,
816
817      7180, 7184, 9619, 1275, 7236,  811, 9619, 1330, 7223,    0,
818       938, 9619, 7174, 7179, 7179, 7168, 9619, 1333,  449,  991,
819       826, 9619, 1336, 7214,    0,  939, 9619, 7180, 9619, 1340,
820      1002, 9619, 1397, 7208,    0,  999, 9619, 7175, 9619, 1400,
821      7210,  872, 9619, 1403, 7201,    0, 1001, 9619, 7168, 7166,
822      9619, 1407, 1445, 1465,  713, 7143, 9619, 7203, 6738, 9619,
823      9619, 9619, 1459,  317, 6690, 6688, 6686, 6733, 6693, 9619,
824         0, 6686, 6687, 6710, 6682, 6674,  687, 6682, 6675, 6678,
825       887,   30, 1017, 6666, 6660,  757, 1018, 6684, 1071, 6661,
826      1081, 6655, 1138, 1148, 1209, 9619,    0, 6656, 6657, 9619,
827
828         0, 6653, 1513, 6641, 1009, 6637, 6680, 9619,    0, 6637,
829      1723, 6626, 6646, 6626, 6634, 6631, 6631, 6616, 1411, 9619,
830         0, 6623, 6613, 6620, 6601, 9619,    0, 1780, 6598, 6639,
831      6617, 6583, 6591, 6591, 1471, 6575, 6602, 1473, 1474, 9619,
832         0, 6578, 2221, 6572, 6557, 9619,    0, 2230, 6558, 6554,
833      9619,    0, 2277, 6552, 6551, 9619,    0, 6539, 6531, 6533,
834      9619,    0, 6531, 1196, 2280, 6509, 6528, 6516, 1007, 9619,
835         0, 6522, 6521, 2283, 6499, 2286, 6496, 6491, 6499, 6499,
836      6479, 6486, 6485, 6473, 6475, 9619,    0, 6472, 6469, 6453,
837      2289, 6447, 6442, 6458, 6442, 9619,    0, 6442, 2334, 6437,
838
839      9619,    0, 6427, 2337, 6402, 6419, 6417, 6406, 9619,    0,
840      6396, 6407, 6397, 6390, 6389, 9619,    0, 6378, 6395, 6389,
841      6369, 6396, 9619,    0, 6352, 2340, 6356, 9619,    0, 6343,
842      6358, 6348, 6348, 9619,    0, 6335, 6316, 6322, 6330, 6315,
843      6311, 9619,    0, 6316, 6324, 9619,    0, 2343, 6309, 9619,
844         0, 2346, 6300, 6294, 6322, 6331, 1111, 6279, 9619, 1525,
845         0, 6259, 6259, 6301, 6298, 6251, 9619, 6262, 6244, 2400,
846      2403, 1799, 6253, 6231, 6225, 6230, 6219, 6232, 6217, 6209,
847      6200, 6213, 6210, 6196, 6195, 6182, 6186, 6194, 6179, 6170,
848      1854, 6162, 6177, 6174, 6145, 6154, 6145, 2408, 2411, 6137,
849
850      2414, 1922, 6132, 6155, 2466, 2471, 9619, 6125, 2475, 1987,
851      2478, 6107, 2486, 6110, 6105, 6108, 2481, 2545, 6084, 6085,
852      6091, 6084, 2535, 2540, 2548, 2053, 6061, 2598, 2606, 1865,
853      6062, 6058, 6052, 6044, 6048, 1930, 6037, 6036, 6035, 2609,
854      2122, 6044, 2612, 2617, 2627, 2368, 6043, 2667, 2671, 2676,
855      2434, 6041, 2679, 2686, 6034, 6033, 2694, 2737, 6027, 5997,
856      6007, 2740, 2632, 6005, 5990, 2747, 2750, 5987, 5974, 5982,
857      1475, 2794, 2698, 5985, 2797, 2706, 2802, 5983, 5977, 5973,
858      5961, 5958, 5955, 5966, 2805, 2862, 5952,  557, 5943, 2850,
859      2762, 2853, 5953, 5938, 2858, 2871, 5938, 2877, 2820, 2923,
860
861      2927, 5950, 2930, 2886, 5947, 5923, 5920, 2933, 2937, 2948,
862      2956, 2959, 2962, 2970, 5924, 2977, 2989, 2997, 3003, 3008,
863      3031, 5924, 3034, 3040, 3054, 3057, 3062, 3065, 3069, 3076,
864      3083, 5925, 5907, 5914, 5906, 3087, 3091, 5911, 5897, 3095,
865      3098, 3102, 3120, 3130, 3133, 3106, 3136, 5891, 3144, 3155,
866      5936, 9619, 9619, 1299, 5886, 9619, 5926, 5925, 5874, 9619,
867      9619, 5871, 5870, 5878, 3158, 3163, 9619, 3166, 1741, 5865,
868      5858, 5870, 5852, 5858, 5843, 5846, 5846, 5841, 5835, 5831,
869      5824, 1327, 5827, 5809, 5809, 5814, 5793, 5794, 1995, 5769,
870      5775, 5767, 1670, 5773, 3169, 3177, 3187, 9619, 3190, 3197,
871
872      3200, 9619, 9619, 3209, 5797, 3215, 3219, 9619, 3223, 5752,
873      3227, 9619, 9619, 3242, 3245, 3254, 3260, 3272, 5765, 3263,
874      5762, 3266, 3281, 9619, 3285, 1727, 5747, 3288, 5744, 3291,
875      3294, 9619, 3300, 3306, 9619, 9619, 5738, 3314, 3319, 9619,
876      3322, 5729, 5740, 5712, 5719, 5709, 5703, 5699, 5694, 5707,
877      3326, 9619, 9619, 5699, 3334, 3341, 9619, 3348, 3353, 9619,
878      9619, 5720, 3361, 3367, 9619, 3370, 3373, 9619, 9619, 3381,
879      3389, 3392, 9619, 3395, 3399, 3403, 3417, 3421, 9619, 3424,
880      5689, 5695, 3427, 3436, 9619, 9619, 5677, 5688, 3432, 3445,
881      9619, 3451, 5678, 5676, 5669, 5647, 5661, 5653, 3455, 9619,
882
883      9619, 3464, 3470, 9619, 9619, 3478, 3483, 5642, 5640, 5640,
884      5633, 5628, 5619, 5610, 3491, 3496, 9619, 3499, 5607, 5596,
885      5588, 5602, 3503, 9619, 9619, 3511, 3518, 5588, 5583, 3529,
886      3532, 9619, 3535, 5582, 3538, 9619, 9619, 3554, 3557, 9619,
887      3560, 5561, 3566, 9619, 9619, 5568, 5548, 5545, 3579, 3582,
888      9619, 3587, 3590, 3594, 3602, 3608, 5538, 3616, 3620, 9619,
889      3623, 5532, 3627, 3635, 5516, 5513, 3630, 3648, 5520, 3656,
890      3659, 9619, 3662, 5521, 3665, 9619, 9619, 3681, 3684, 9619,
891      3690, 3693, 3696, 5500, 5497, 3704, 3711, 3722, 3726, 9619,
892      3729, 5481, 3733, 5499, 5478, 3736, 3741, 9619, 3751, 5472,
893
894      5479, 3755, 3760, 9619, 3763, 3770, 9619, 9619, 3766, 3785,
895      9619, 3791, 3794, 9619, 9619, 5478, 3804, 3812, 9619, 3817,
896      1305, 3823, 9619, 9619, 5503, 5501, 5460, 5447, 3826, 5439,
897      5441, 5433, 5393, 5394, 2061, 5382, 2188, 5372, 5372, 2251,
898      5375, 5375, 2308, 5358, 5366, 5368, 5363, 5357, 5350, 5343,
899      5341, 2504, 5354, 5353, 3831, 3836, 3845, 3851, 3854, 5352,
900      5360, 3864, 5326, 3869, 9619, 9619, 3878, 3883, 3892, 9619,
901      9619, 5325, 3903, 3907, 5315, 3915, 2507, 5298, 3921, 3924,
902      3934, 3939, 5296, 3942, 9619, 5284, 5285, 2559, 2569, 5296,
903      5291, 5286, 5284, 5275, 3945, 3948, 5282, 3952, 3967, 3971,
904
905      3979, 3985, 3989, 5274, 3998, 5272, 5263, 4003, 4006, 4017,
906      4022, 4025, 5251, 5252, 5266, 4028, 5239, 5255, 4031, 4040,
907      4049, 9619, 9619, 4035, 5228, 5249, 5231, 5223, 5232, 5207,
908      4059, 5228, 4062, 5199, 5197, 4065, 9619, 9619, 4074, 5204,
909      4080, 5194, 4083, 5153, 5152, 5136, 4086, 4093, 4105, 9619,
910      9619, 4113, 9619, 9619, 5124, 4124, 3000, 4127, 9619, 9619,
911      5123, 5122, 4137, 9619, 9619, 5105, 4145, 5102, 4150, 4153,
912      9619, 9619, 5101, 5067, 4165, 9619, 9619, 4173, 5056, 4176,
913      4179, 5045, 5058, 4194, 5034, 4197, 4200, 4207, 4215, 4221,
914       593, 5071, 4226, 9619, 5052, 9619, 9619, 5008, 4992, 4229,
915
916      4936, 4931, 4901, 4875, 4856, 2572, 4857, 2640, 4857, 2743,
917      4810, 2881, 4735, 4673, 4233, 4594, 4236, 4593, 4240, 4573,
918      4563, 4515, 4459, 4248, 4389, 4251, 4254, 9619, 9619, 4262,
919      4267, 9619, 9619, 4382, 4299, 4283, 4271, 4287, 9619, 9619,
920      4253, 4302, 9619, 9619,   79, 4311, 4314,  108, 4317, 1763,
921      2084, 4325, 4331, 4339,  165,  240,  250, 4343, 4346, 4349,
922       295, 4352, 4358,  314, 4361, 4365, 4373, 4379, 4382, 4385,
923      9619, 9619, 4393, 4397, 9619, 9619, 4405, 4408,  384,  374,
924      4423, 9619, 9619, 4416, 4434, 4442, 4445,  443, 4454, 4460,
925       458,  510, 4463, 4466, 4474,  559, 4477, 9619, 9619, 4485,
926
927      4488, 4496,  620,  702,  697,  705, 4499, 4503,  711, 4506,
928      4510, 4518,  756, 4524, 4527,  770, 4536,  794, 4542,  829,
929       810,  833, 4545, 4548,  849, 4556,  855, 4563,  895, 4569,
930      4575, 4578, 4582,  923, 4587, 4596, 4601, 4606,  933, 4615,
931      9619, 9619, 1006,  997, 4609, 1021, 4628, 4635, 4649, 4653,
932      4656, 4661, 4674, 1309, 1302, 1121, 9619, 1042, 4677, 4680,
933      1069, 1075, 1151, 1133, 4683, 1150, 1141, 4686, 1159, 1170,
934      1184, 4689, 4695, 4699, 1206, 4702, 1213, 4709, 4712, 1204,
935      1222, 1230, 4715, 1260, 4718, 1269, 1308, 4721, 1324, 4724,
936      1330, 4727, 4730, 1367, 1356, 1423, 1360, 1375, 1376, 1429,
937
938      1377, 4742, 9619, 9619, 4733, 4752, 1377, 1411, 4755, 4758,
939      1401, 4761, 4770, 9619, 9619, 4764, 4786, 4789, 4797, 4800,
940      4804, 4807, 4822, 1399, 1426, 4825, 9619, 9619, 4834, 1442,
941      1443, 1439, 4842, 9619, 4845, 1456, 1462, 4851, 9619, 9619,
942      4861, 4864, 1487, 4872, 9619, 9619, 4880, 4883, 4891, 1488,
943      1658, 1672, 4894, 4898, 4912, 1673, 4915, 9619, 9619, 4923,
944      4927, 1683, 4935, 9619, 9619, 1678, 4943, 9619, 1690, 4946,
945      1673, 4949, 1698, 4952, 1727, 1751, 1732, 4967, 9619, 1740,
946      4970, 1753, 4973, 4976, 4991, 4996, 1778, 5004, 1781, 5010,
947      5013, 5016, 5024, 5031, 5042, 1783, 1786, 1790, 5045, 1788,
948
949      5048, 9619, 9619, 5056, 5064, 5071, 9619, 9619, 5079, 9619,
950      1833, 2079, 1845, 1800, 5083, 5086, 5094, 5101, 1795, 1804,
951      5113, 5118, 5121, 1825, 1848, 1849, 5124, 5127, 5130, 5133,
952      1850, 5136, 5139, 5142, 5145, 5148, 1851, 5151, 1858, 1876,
953      5154, 9619, 1858, 5158, 5161, 1886, 5176, 5180, 5183, 1917,
954      1928, 1935, 1941, 1935, 1944, 1942, 1945, 1951, 1949, 5191,
955      5198, 5203, 5211, 1932, 5216, 5219, 5222, 5225, 5233, 5241,
956      9619, 9619, 5236, 5255, 9619, 5259, 9619, 9619, 5267, 1941,
957      1934, 2006, 2017, 1959, 1989, 1986, 5270, 9619, 9619, 1986,
958      5279, 9619, 9619, 5288, 5291, 1999, 1995, 2001, 5299, 9619,
959
960      9619, 5307, 2002, 5310, 9619, 9619, 1999, 2008, 2017, 5321,
961      2052, 5326, 5329, 2056, 2048, 2138, 2152, 2059, 2071, 5340,
962      9619, 2066, 5344, 9619, 9619, 5352, 9619, 9619, 2078, 5360,
963      2071, 5363, 5367, 9619, 9619, 5375, 9619, 9619, 5383, 5386,
964      5389, 5392, 5395, 2066, 5398, 5420, 5423, 2154, 2130, 5429,
965      5432, 9619, 9619, 5442, 5445, 5451, 2108, 5454, 5461, 5464,
966      5467, 5470, 5473, 5476, 2110, 2122, 5479, 5482, 5485, 2132,
967      5488, 2128, 9619, 5491, 5494, 9619, 9619, 5502, 5509, 9619,
968      5513, 9619, 9619, 2174, 2187, 2203, 2198, 2209, 2220, 2208,
969      2230, 2241, 2268, 5521, 5524, 9619, 9619, 5532, 2227, 5535,
970
971      2230, 5540, 9619, 9619, 5548, 5551, 5554, 2241, 2247, 2274,
972      2300, 2280, 2304, 2277, 5557, 2294, 2297, 5561, 9619, 9619,
973      5573, 2292, 2302, 5577, 2300, 2305, 2310, 2311, 5582, 9619,
974      5585, 5597, 9619, 9619, 2310, 2306, 2346, 2369, 2349, 2369,
975      2326, 2347, 5591, 2359, 5606, 5609, 5612, 5615, 5618, 5621,
976      5636, 5639, 5642, 5645, 5648, 5661, 9619, 5667, 2389, 2414,
977      5657, 5676, 5672, 2352, 5680, 5686, 5691, 2349, 2361, 2363,
978      5696, 9619, 2353, 5699, 5702, 5710, 2386, 2382, 2404, 2394,
979      2406, 2402, 2428, 2452, 2447, 2458, 5717, 2431, 2427, 5720,
980      5723, 9619, 5729, 2436, 2462, 2528, 9619, 2526, 9619, 5732,
981
982      5742, 2473, 2493, 5750, 5753, 2486, 5761, 5768, 9619, 2479,
983      2487, 5771, 2488, 5779, 5790, 2502, 2498, 2505, 2563, 9619,
984      2568, 9619, 5782, 2544, 5800, 2545, 5803, 9619, 5806, 5809,
985      5817, 5824, 5827, 9619, 9619, 5836, 5839, 5847, 5850, 9619,
986      5854, 5857, 2613, 2619, 2643, 5860, 9619, 2553, 2544, 2569,
987      2570, 5865, 5869, 2833, 3116, 5879, 2597, 2618, 2653, 2663,
988      2680, 2662, 2681, 2687, 2691, 2723, 5883, 2702, 2693, 5886,
989      5891, 9619, 2686, 5897, 9619, 9619, 5905, 5911, 2688, 2698,
990      5919, 9619, 9619, 2712, 5927, 5930, 2700, 5945, 5948, 5951,
991      5959, 5966, 9619, 9619, 2732, 2742, 2745, 9619, 9619, 5977,
992
993      5980, 5988, 5991, 5995, 2903, 3173, 6009, 9619, 6012, 6015,
994      9619, 9619, 6023, 6031, 6041, 9619, 2797, 2798, 2922, 6044,
995      2757, 2760, 2763, 6047, 6050, 2777, 2791, 2949, 2790, 2827,
996      3004, 6061, 2842, 2828, 2841, 2851, 9619, 2869, 2855, 2853,
997      2873, 9619, 6065, 6068, 2869, 6071, 6079, 6074, 6086, 6097,
998      9619, 9619, 2875, 2886, 2903, 6105, 9619, 9619, 2907, 6113,
999      6117, 6127, 9619, 9619, 6135, 6138, 2911, 6146, 2926, 6149,
1000      9619, 9619, 6157, 6160, 6168, 6171, 2951, 2952, 2958, 2961,
1001      2962, 2972, 6179, 6182, 9619, 9619, 3025, 2997, 6190, 6193,
1002      6198, 2951, 2958, 6202, 9619, 9619, 3018, 3012, 3015, 3026,
1003
1004      3040, 3040, 3041, 3054, 6210, 3043, 3090, 3107, 3094, 3079,
1005      3098, 3118, 3106, 6213, 6216, 6219, 6222, 6232, 6235, 3076,
1006      6243, 9619, 9619, 3089, 3085, 3077, 3098, 6251, 9619, 9619,
1007      6259, 9619, 9619, 3121, 6267, 6270, 3104, 6278, 3142, 3189,
1008      6286, 3197, 3205, 3139, 3149, 3179, 3153, 3170, 3228, 6294,
1009      3279, 6297, 6300, 6303, 6322, 6325, 6328, 3203, 3226, 3228,
1010      3216, 3224, 3234, 3252, 3241, 6331, 6334, 3271, 3276, 9619,
1011      3283, 3290, 3297, 9619, 3301, 6342, 6345, 6349, 6352, 9619,
1012      9619, 3283, 3284, 3290, 6361, 3291, 6364, 6368, 9619, 9619,
1013      6382, 3317, 3332, 3324, 3340, 3331, 3352, 3344, 3360, 3353,
1014
1015      3363, 9619, 3369, 3382, 9619, 6385, 9619, 3394, 6388, 6391,
1016      6410, 6430, 6477, 6400, 6418, 3386, 3407, 3410, 3377, 3418,
1017      3441, 3442, 3420, 6450, 9619, 9619, 3456, 3436, 3437, 3466,
1018      3444, 3445, 6421, 6424, 9619, 3425, 3429, 3439, 6468, 6458,
1019      3437, 6471, 6497, 6489, 6507, 3498, 3469, 3501, 3479, 3517,
1020      3486, 3517, 3489, 3523, 3537, 3536, 3537, 3530, 6516, 3545,
1021      3567, 6536, 6583, 3534, 9619, 9619, 3515, 3540, 9619, 9619,
1022      3528, 9619, 3565, 3567, 9619, 3569, 3570, 6526, 9619, 3548,
1023      3555, 3541, 6556, 3608, 3650, 3562, 6564, 9619, 9619, 6572,
1024      3651, 3682, 9619, 3610, 9619, 3633, 9619, 3639, 9619, 3644,
1025
1026      9619, 9619, 9619, 9619, 3721, 3650, 3652, 3649, 3702, 3666,
1027      6529, 3665, 3655, 3688, 3690, 9619, 9619, 9619, 9619, 6594,
1028      6603, 6606, 3760, 3689, 3763, 3690, 6612, 3768, 3705, 3769,
1029      3718, 9619, 9619, 9619, 9619, 6615, 3742, 3729, 3751, 6624,
1030      3771, 3756, 3775, 3777, 6630, 6634, 6643, 6648, 6656, 6661,
1031      3762, 3779, 3795, 3782, 3790, 3809, 6669, 6676, 3796, 3808,
1032      3829, 3819, 3828, 3840, 6687, 3844, 9619, 3835, 9619, 3840,
1033      6690, 9619, 9619, 6699, 9619, 9619, 6707, 3849, 3863, 3840,
1034      3850, 3853, 3862, 3867, 3865, 6715, 9619, 9619, 3871, 3879,
1035      3876, 3883, 3888, 3891, 3912, 9619, 3925, 3925, 3917, 3929,
1036
1037      3938, 3932, 3933, 3940, 3940, 3946, 3953, 3953, 3954, 3960,
1038      3968, 3966, 3972, 3977, 4036, 9619, 9619, 3971, 3992, 3976,
1039      4001, 4011, 4016, 4034, 4035, 4032, 4055, 4054, 4053, 4073,
1040      4062, 4060, 4077, 4084, 4069, 4072, 4075, 4080, 4094, 4084,
1041      4117, 4106, 4098, 4128, 4112, 4105, 4152, 4134, 4124, 4154,
1042      4146, 4134, 4147, 4154, 4160, 4181, 4156, 9619, 4181, 4159,
1043      9619, 4188, 4172, 9619, 4197, 4179, 9619, 4228, 4176, 4190,
1044      4184, 4201, 9619, 4221, 9619, 4233, 9619, 4241, 9619, 4246,
1045      6725, 4248, 4269, 4251, 4269, 4236, 4237, 4248, 4250, 6728,
1046      4291, 9619, 4289, 9619, 4294, 4293, 4301, 4300, 4302, 4359,
1047
1048      9619, 9619, 9619, 9619, 9619, 9619, 4290, 4305, 4385, 4465,
1049      4358, 4370, 4350, 4414, 4312, 4430, 4522, 4541, 4451, 4475,
1050      4384, 4396, 4464, 4515, 4567, 4572, 4549, 4581, 4439, 4576,
1051      4554, 4573, 4625, 4629, 4720, 4730, 4614, 4641, 4646, 4732,
1052      4749, 4757, 4763, 4766, 4654, 4762, 4819, 4821, 4776, 4815,
1053      4830, 4859, 4838, 4841, 4831, 4902, 4622, 4885, 5018, 5044,
1054      4758, 4836, 4892, 4923, 4543, 4857, 4915, 4920, 4903, 4944,
1055      4963, 4971, 4984, 5001, 4976, 5168, 5022, 5043, 5049, 5058,
1056      5155, 5235, 5156, 5178, 4942, 4969, 5196, 5212, 5087, 5240,
1057      6736, 6739, 9619, 9619, 6759, 6768, 6777, 6786, 6795, 6804,
1058
1059      6813, 6822, 6831, 6840, 6849, 6858, 6867, 6876, 6885, 6894,
1060      6903, 6912, 6921, 6930, 6939, 6948, 6957, 6966, 6975, 6984,
1061      6993, 7002, 7011, 7020, 7029, 7038, 7047, 7056, 7065, 7074,
1062      7083, 7092, 7101, 7110, 7119, 7128, 7137, 7146, 7155, 7164,
1063      7173, 7182, 7191, 7200, 7207, 7214, 7221, 7228, 7235, 7242,
1064      7249, 7256, 7263, 7270, 7277, 7284, 7291, 7298, 7305, 7312,
1065      7319, 7326, 7333, 7340, 7347, 7354, 7361, 7370, 7377, 7382,
1066      7389, 7394, 7401, 7406, 7413, 7418, 7425, 7430, 7437, 7442,
1067      7449, 7454, 7461, 7466, 7473, 7478, 7485, 7490, 7497, 7502,
1068      7509, 7514, 7521, 7526, 7533, 7538, 7545, 7550, 7557, 7562,
1069
1070      7569, 7574, 7581, 7586, 7593, 7598, 7605, 7610, 7617, 7622,
1071      7629, 7634, 7641, 7646, 7655, 7661, 7668, 7676, 7683, 7691,
1072      7698, 7706, 7713, 7721, 7728, 7736, 7743, 7751, 7758, 7766,
1073      7773, 7781, 7788, 7796, 7803, 7811, 7818, 7826, 7833, 7841,
1074      7848, 7856, 7863, 7871, 7878, 7886, 7894, 7902, 7910, 7918,
1075      7925, 7933, 7941, 7949, 7956, 7964, 7971, 7979, 7987, 7994,
1076      8002, 8011, 8017, 8024, 8032, 8040, 8048, 8056, 8064, 8071,
1077      8079, 8086, 8094, 8101, 8109, 8116, 8124, 8131, 8139, 8147,
1078      8155, 8163, 8171, 8178, 8186, 8193, 8201, 8208, 8216, 8223,
1079      8231, 8238, 8246, 8253, 8261, 8268, 8276, 8283, 8291, 8298,
1080
1081      8306, 8313, 8321, 8328, 8336, 8344, 8351, 8359, 8368, 8377,
1082      8384, 8392, 8400, 8407, 8415, 8422, 8430, 8437, 8445, 8452,
1083      8459, 8467, 8474, 8482, 8490, 8497, 8505, 8512, 8520, 8527,
1084      8535, 8542, 8550, 8557, 8565, 8572, 8580, 8587, 8595, 8602,
1085      8610, 8617, 8625, 8632, 8640, 8647, 8655, 8663, 8671, 8679,
1086      8687, 8695, 8704, 8713, 8720, 8728, 8736, 8743, 8751, 8758,
1087      8766, 8773, 8781, 8788, 8795, 8803, 8811, 8819, 8827, 8835,
1088      8843, 8850, 8858, 8865, 8873, 8880, 8888, 8895, 8903, 8910,
1089      8918, 8925, 8933, 8941, 8949, 8956, 8964, 8972, 8980, 8987,
1090      8995, 9003, 9011, 9019, 9028, 9037, 9045, 9053, 9061, 9068,
1091
1092      9076, 9083, 9091, 9099, 9107, 9115, 9123, 9131, 9139, 9147,
1093      9155, 9162, 9169, 9177, 9184, 9191, 9199, 9206, 9213, 9221,
1094      9228, 9236, 9243, 9251, 9259, 9266, 9274, 9282, 9290, 9299,
1095      9308, 9316, 9324, 9331, 9338, 9346, 9354, 9362, 9370, 9378,
1096      9385, 9392, 9400, 9407, 9414, 9422, 9429, 9436, 9443, 9451,
1097      9458, 9466, 9474, 9482, 9490, 9498, 9506, 9515, 9524, 9532,
1098      9540, 9547, 9555, 9564, 9573, 9582, 9591, 9600, 9609
1099     } ;
1100
1101 static yyconst flex_int16_t yy_def[3070] =
1102     {   0,
1103      2695, 2695, 2696, 2696, 2696, 2696, 2697, 2697, 2698, 2698,
1104      2699, 2699, 2700, 2700, 2700, 2700, 2701, 2701, 2695, 2695,
1105      2702, 2702, 2703, 2703, 2703, 2703, 2695, 2695, 2703, 2703,
1106      2703, 2703, 2695, 2695, 2703, 2703, 2695, 2695, 2703, 2703,
1107      2703, 2703, 2704, 2704, 2705, 2705, 2706, 2706, 2700, 2700,
1108      2707, 2707, 2708, 2708, 2695, 2695, 2708, 2708, 2708, 2708,
1109      2709, 2709, 2710, 2710, 2711, 2711, 2712, 2712, 2712, 2712,
1110      2695, 2695, 2712, 2712, 2712, 2712, 2695, 2695, 2712, 2712,
1111      2695, 2695, 2712, 2712, 2712, 2712, 2695, 2695, 2712, 2712,
1112      2695, 2695, 2712, 2712, 2712, 2712, 2713, 2713, 2714, 2714,
1113
1114      2695, 2695, 2714, 2714, 2714, 2714, 2715, 2715, 2716, 2716,
1115      2695, 2695, 2716, 2716, 2716, 2716, 2717, 2717, 2718, 2718,
1116      2719, 2719, 2720, 2720, 2721, 2721, 2722, 2722, 2695, 2695,
1117      2722, 2722, 2722, 2722, 2694,  135, 2723, 2723, 2694,  139,
1118      2724, 2724, 2725, 2725, 2726, 2726, 2727, 2727, 2728, 2728,
1119      2695, 2695, 2728, 2728, 2728, 2728, 2729, 2729, 2730, 2730,
1120      2695, 2695, 2730, 2730, 2730, 2730, 2731, 2731, 2732, 2732,
1121      2695, 2695, 2732, 2732, 2732, 2732, 2733, 2733, 2734, 2734,
1122      2735, 2735, 2736, 2736, 2695, 2695, 2736, 2736, 2736, 2736,
1123      2737, 2737, 2738, 2738, 2695, 2695, 2738, 2738, 2738, 2738,
1124
1125      2739, 2739, 2740, 2740, 2741, 2741, 2742, 2742, 2695, 2695,
1126      2742, 2742, 2742, 2742, 2743, 2743, 2744, 2744, 2695, 2695,
1127      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1128      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1129      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1130      2694, 2745, 2694, 2694, 2745, 2694, 2694, 2694,  258,  258,
1131       258,  258,  261,  261, 2694, 2694, 2694, 2746, 2694, 2694,
1132      2746, 2694, 2694, 2694, 2694, 2694, 2694, 2747, 2694, 2694,
1133      2747, 2747, 2747, 2694, 2694, 2694, 2694, 2694, 2748, 2694,
1134      2694, 2748, 2748, 2748, 2748, 2748, 2694, 2694,  261,  299,
1135
1136       299, 2694, 2694, 2694, 2749, 2694, 2694, 2749, 2749, 2749,
1137      2694, 2694, 2694, 2694, 2694, 2694, 2750, 2694, 2694, 2750,
1138      2750, 2694, 2694,  262,  299,  262,  324,  325,  325,  325,
1139       325,  331,  332,  331,  331, 2694, 2694, 2694, 2751, 2694,
1140      2694, 2751, 2751, 2751, 2694, 2694,  299,  299, 2694, 2694,
1141      2694, 2752, 2694, 2694, 2752, 2752, 2694, 2694,  299,  299,
1142      2694, 2694, 2694, 2753, 2694, 2694, 2753, 2753, 2694, 2694,
1143      2694, 2694, 2694, 2694, 2754, 2694, 2694, 2754, 2754, 2694,
1144      2694, 2694, 2694, 2694, 2694, 2755, 2694, 2694, 2755, 2755,
1145      2755, 2755, 2755, 2694, 2694,  299,  299,  299, 2694, 2694,
1146
1147      2694, 2756, 2694, 2694, 2756, 2756, 2756, 2756, 2756, 2756,
1148      2756, 2756, 2694, 2694, 2694, 2694, 2694, 2694, 2757, 2694,
1149      2694, 2757, 2757, 2757, 2757, 2757, 2757, 2757, 2694, 2694,
1150      2694, 2694, 2694, 2694, 2758, 2694, 2694, 2758, 2758, 2694,
1151      2694, 2694, 2694, 2694, 2694, 2759, 2694, 2694, 2759, 2759,
1152      2759, 2759, 2694, 2694,  299,  299, 2694, 2694, 2694, 2760,
1153      2694, 2694, 2760, 2760, 2694, 2694,  299,  467,  467, 2694,
1154      2694, 2694, 2761, 2694, 2694, 2761, 2761, 2761, 2694, 2694,
1155       467,  467, 2694, 2694, 2694, 2762, 2694, 2694, 2762, 2762,
1156      2694, 2694, 2694, 2694, 2694, 2694, 2763, 2694, 2694, 2763,
1157
1158      2763, 2763, 2694, 2694,  467,  467, 2694, 2694, 2694, 2764,
1159      2694, 2694, 2764, 2764, 2764, 2764, 2694, 2694,  299,  299,
1160       299, 2694, 2694, 2694, 2765, 2694, 2694, 2765, 2694, 2694,
1161      2694, 2694, 2694, 2694, 2766, 2694, 2694, 2766, 2694, 2694,
1162       299,  299, 2694, 2694, 2694, 2767, 2694, 2694, 2767, 2767,
1163      2694, 2694, 2694, 2694, 2768, 2694, 2694, 2694, 2694, 2694,
1164      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1165      2769, 2769, 2770, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1166      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1167      2694, 2694, 2694, 2694, 2694, 2694, 2771, 2771, 2772, 2694,
1168
1169      2773, 2773, 2773, 2773, 2694, 2774, 2694, 2694, 2775, 2775,
1170      2775, 2775, 2775, 2775, 2775, 2775, 2775, 2776, 2694, 2694,
1171      2777, 2777, 2777, 2777, 2778, 2694, 2779, 2779, 2779, 2780,
1172      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1173      2781, 2781, 2781, 2781, 2782, 2694, 2783, 2783, 2783, 2784,
1174      2694, 2785, 2785, 2785, 2786, 2694, 2787, 2787, 2787, 2788,
1175      2694, 2789, 2789, 2789, 2789, 2789, 2789, 2790, 2694, 2694,
1176      2791, 2791, 2791, 2791, 2791, 2791, 2791, 2791, 2791, 2791,
1177      2791, 2791, 2791, 2791, 2792, 2694, 2793, 2793, 2793, 2793,
1178      2793, 2793, 2793, 2793, 2794, 2694, 2795, 2795, 2795, 2796,
1179
1180      2694, 2797, 2797, 2797, 2797, 2797, 2797, 2798, 2694, 2799,
1181      2799, 2799, 2799, 2800, 2694, 2694, 2801, 2801, 2801, 2801,
1182      2801, 2802, 2694, 2803, 2803, 2803, 2804, 2694, 2805, 2805,
1183      2805, 2805, 2806, 2694, 2807, 2807, 2807, 2807, 2807, 2808,
1184      2694, 2694, 2809, 2809, 2810, 2694, 2811, 2811, 2812, 2694,
1185      2813, 2813, 2813, 2814, 2815, 2694, 2815, 2694, 2694, 2694,
1186      2816, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2817, 2818,
1187      2818, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1188      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1189      2694, 2694, 2694, 2694, 2694, 2694, 2819, 2820, 2820, 2821,
1190
1191      2694, 2694, 2821, 2694, 2822, 2822, 2694, 2823, 2694, 2694,
1192      2823, 2823, 2823, 2823, 2823, 2823, 2824, 2824, 2694, 2825,
1193      2825, 2825, 2826, 2826, 2694, 2694, 2827, 2828, 2828, 2694,
1194      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2829, 2694,
1195      2694, 2829, 2830, 2830, 2694, 2694, 2831, 2832, 2832, 2694,
1196      2694, 2833, 2834, 2834, 2835, 2835, 2836, 2836, 2837, 2837,
1197      2837, 2694, 2694, 2837, 2837, 2838, 2838, 2694, 2694, 2839,
1198      2839, 2694, 2694, 2839, 2694, 2694, 2839, 2839, 2839, 2839,
1199      2839, 2839, 2839, 2839, 2840, 2840, 2841, 2841, 2841, 2694,
1200      2694, 2841, 2841, 2841, 2842, 2842, 2843, 2694, 2694, 2844,
1201
1202      2844, 2845, 2694, 2694, 2845, 2845, 2845, 2846, 2846, 2847,
1203      2847, 2847, 2848, 2848, 2694, 2849, 2849, 2849, 2849, 2850,
1204      2850, 2851, 2694, 2694, 2852, 2852, 2853, 2853, 2853, 2854,
1205      2854, 2855, 2855, 2855, 2855, 2856, 2856, 2694, 2857, 2858,
1206      2858, 2694, 2694, 2859, 2859, 2694, 2694, 2860, 2861, 2861,
1207      2862, 2694, 2694, 2862, 2694, 2694, 2863, 2694, 2694, 2694,
1208      2694, 2694, 2694, 2864, 2694, 2865, 2694, 2865, 2694, 2694,
1209      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1210      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1211      2694, 2694, 2694, 2694, 2866, 2694, 2867, 2694, 2867, 2868,
1212
1213      2694, 2694, 2694, 2868, 2694, 2694, 2869, 2694, 2869, 2870,
1214      2694, 2694, 2694, 2694, 2694, 2870, 2694, 2694, 2870, 2870,
1215      2870, 2694, 2871, 2694, 2871, 2694, 2872, 2872, 2872, 2694,
1216      2873, 2694, 2873, 2694, 2694, 2694, 2874, 2694, 2875, 2694,
1217      2875, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2876,
1218      2694, 2694, 2694, 2876, 2694, 2877, 2694, 2877, 2694, 2694,
1219      2694, 2878, 2694, 2879, 2694, 2879, 2694, 2694, 2694, 2880,
1220      2694, 2881, 2694, 2881, 2882, 2882, 2694, 2883, 2694, 2883,
1221      2884, 2884, 2884, 2694, 2694, 2694, 2884, 2884, 2694, 2885,
1222      2694, 2885, 2694, 2694, 2886, 2886, 2886, 2886, 2694, 2694,
1223
1224      2694, 2886, 2694, 2694, 2694, 2694, 2694, 2886, 2886, 2886,
1225      2886, 2886, 2886, 2886, 2694, 2887, 2694, 2887, 2888, 2888,
1226      2888, 2888, 2694, 2694, 2694, 2694, 2694, 2888, 2888, 2694,
1227      2889, 2694, 2889, 2890, 2694, 2694, 2694, 2694, 2891, 2694,
1228      2891, 2892, 2694, 2694, 2694, 2892, 2892, 2892, 2694, 2893,
1229      2694, 2893, 2694, 2694, 2694, 2694, 2894, 2694, 2895, 2694,
1230      2895, 2694, 2694, 2694, 2896, 2896, 2694, 2694, 2896, 2694,
1231      2897, 2694, 2897, 2898, 2694, 2694, 2694, 2694, 2899, 2694,
1232      2899, 2694, 2694, 2900, 2900, 2694, 2694, 2694, 2901, 2694,
1233      2901, 2902, 2902, 2902, 2902, 2694, 2903, 2694, 2903, 2694,
1234
1235      2904, 2694, 2905, 2694, 2905, 2694, 2694, 2694, 2694, 2906,
1236      2694, 2906, 2694, 2694, 2694, 2907, 2694, 2908, 2694, 2908,
1237      2909, 2910, 2694, 2694, 2694, 2694, 2694, 2911, 2912, 2694,
1238      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1239      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1240      2694, 2694, 2694, 2694, 2694, 2694, 2913, 2694, 2694, 2914,
1241      2694, 2915, 2916, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1242      2694, 2916, 2694, 2694, 2916, 2917, 2694, 2918, 2694, 2694,
1243      2918, 2919, 2920, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1244      2694, 2694, 2694, 2921, 2921, 2922, 2923, 2924, 2694, 2694,
1245
1246      2925, 2694, 2694, 2926, 2927, 2928, 2928, 2694, 2694, 2928,
1247      2928, 2929, 2694, 2694, 2930, 2930, 2930, 2930, 2694, 2694,
1248      2694, 2694, 2694, 2930, 2930, 2930, 2930, 2930, 2930, 2930,
1249      2931, 2932, 2932, 2932, 2932, 2694, 2694, 2694, 2932, 2932,
1250      2933, 2934, 2935, 2936, 2936, 2936, 2936, 2937, 2694, 2694,
1251      2694, 2694, 2694, 2694, 2938, 2939, 2694, 2694, 2694, 2694,
1252      2940, 2940, 2694, 2694, 2694, 2940, 2941, 2942, 2943, 2694,
1253      2694, 2694, 2944, 2944, 2694, 2694, 2694, 2945, 2946, 2694,
1254      2694, 2946, 2946, 2947, 2694, 2948, 2949, 2950, 2951, 2952,
1255      2953, 2954, 2954, 2694, 2954, 2694, 2694, 2694, 2955, 2956,
1256
1257      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1258      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1259      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2957,
1260      2694, 2694, 2694, 2958, 2694, 2959, 2960, 2694, 2694, 2694,
1261      2960, 2694, 2694, 2694, 2960, 2961, 2694, 2962, 2694, 2694,
1262      2694, 2694, 2694, 2963, 2964, 2694, 2694, 2694, 2694, 2694,
1263      2694, 2694, 2694, 2965, 2694, 2694, 2966, 2967, 2968, 2694,
1264      2694, 2694, 2969, 2694, 2694, 2694, 2970, 2971, 2972, 2972,
1265      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2972, 2973, 2694,
1266      2694, 2974, 2694, 2694, 2974, 2974, 2694, 2694, 2694, 2694,
1267
1268      2694, 2974, 2974, 2974, 2974, 2974, 2974, 2975, 2976, 2694,
1269      2694, 2976, 2976, 2694, 2694, 2976, 2977, 2978, 2979, 2980,
1270      2980, 2980, 2694, 2694, 2980, 2981, 2982, 2983, 2694, 2984,
1271      2984, 2984, 2985, 2986, 2987, 2988, 2988, 2989, 2990, 2694,
1272      2694, 2694, 2990, 2990, 2991, 2694, 2694, 2694, 2992, 2993,
1273      2694, 2694, 2994, 2995, 2996, 2996, 2694, 2694, 2997, 2998,
1274      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1275      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1276      2694, 2694, 2694, 2694, 2999, 3000, 2694, 3001, 3002, 3002,
1277      3002, 3003, 3004, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1278
1279      2694, 2694, 2694, 2694, 3005, 3006, 2694, 2694, 2694, 2694,
1280      2694, 3007, 2694, 2694, 2694, 3008, 2694, 2694, 3009, 3010,
1281      2694, 2694, 3011, 3012, 3012, 2694, 2694, 2694, 2694, 2694,
1282      2694, 3012, 2694, 2694, 2694, 2694, 3013, 2694, 2694, 2694,
1283      2694, 2694, 3013, 2694, 2694, 2694, 2694, 2694, 3013, 3013,
1284      3013, 3013, 2694, 2694, 3014, 3015, 2694, 2694, 2694, 2694,
1285      2694, 3015, 2694, 2694, 2694, 3015, 2694, 2694, 3016, 3017,
1286      3018, 3018, 3018, 2694, 2694, 2694, 3018, 2694, 2694, 3019,
1287      3020, 2694, 2694, 2694, 2694, 2694, 3021, 3022, 3023, 3024,
1288      2694, 2694, 2694, 2694, 3025, 3026, 3026, 3026, 3027, 2694,
1289
1290      2694, 2694, 2694, 3028, 3029, 2694, 2694, 2694, 2694, 2694,
1291      3030, 3031, 3031, 2694, 2694, 2694, 3032, 2694, 2694, 2694,
1292      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1293      2694, 2694, 2694, 2694, 2694, 2694, 2694, 3033, 3034, 2694,
1294      2694, 2694, 3035, 2694, 2694, 3035, 3036, 2694, 2694, 2694,
1295      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 3037,
1296      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 3038, 2694,
1297      2694, 2694, 3039, 2694, 2694, 2694, 2694, 2694, 3040, 3041,
1298      3041, 2694, 2694, 3041, 2694, 3042, 2694, 2694, 2694, 3042,
1299      2694, 2694, 2694, 2694, 2694, 3042, 3042, 3042, 2694, 2694,
1300
1301      2694, 3043, 3044, 2694, 2694, 2694, 3044, 3044, 3045, 3046,
1302      3047, 2694, 2694, 3047, 3047, 2694, 2694, 3047, 3048, 2694,
1303      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 3049, 3050,
1304      3051, 3052, 2694, 2694, 2694, 2694, 2694, 2694, 3053, 3054,
1305      3054, 3054, 3055, 2694, 3056, 3057, 3058, 3059, 3059, 2694,
1306      2694, 2694, 2694, 3060, 2694, 2694, 2694, 2694, 2694, 2694,
1307      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1308      3061, 3062, 2694, 3063, 2694, 2694, 2694, 3063, 2694, 2694,
1309      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1310      2694, 2694, 2694, 3037, 2694, 2694, 2694, 2694, 2694, 2694,
1311
1312      2694, 2694, 2694, 2694, 3038, 3039, 3040, 3041, 3041, 2694,
1313      2694, 2694, 2694, 3041, 2694, 3042, 3042, 2694, 2694, 2694,
1314      3042, 3042, 3042, 3043, 3044, 3044, 3044, 3045, 2694, 2694,
1315      3047, 2694, 2694, 2694, 3047, 3047, 2694, 2694, 2694, 2694,
1316      3047, 3048, 2694, 3049, 3050, 3051, 3052, 3053, 2694, 2694,
1317      3054, 3054, 3055, 2694, 3056, 2694, 2694, 3058, 3059, 3059,
1318      2694, 3060, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1319      2694, 2694, 3062, 2694, 2694, 3063, 2694, 2694, 2694, 2694,
1320      2694, 2694, 2694, 2694, 2694, 2694, 3037, 2694, 2694, 3038,
1321      2694, 2694, 3040, 3041, 3041, 2694, 2694, 2694, 2694, 3041,
1322
1323      2694, 3042, 3042, 2694, 2694, 3042, 3042, 2694, 2694, 3044,
1324      3044, 3044, 3045, 2694, 2694, 3047, 3047, 3047, 2694, 2694,
1325      2694, 2694, 3047, 3048, 2694, 3049, 2694, 2694, 2694, 2694,
1326      3052, 3053, 2694, 2694, 2694, 2694, 2694, 3054, 2694, 2694,
1327      2694, 3056, 3058, 3059, 3059, 2694, 2694, 2694, 2694, 2694,
1328      2694, 3062, 2694, 2694, 2694, 3063, 2694, 2694, 2694, 2694,
1329      2694, 2694, 2694, 2694, 2694, 2694, 3037, 2694, 2694, 3038,
1330      2694, 2694, 3041, 3041, 2694, 2694, 2694, 2694, 3042, 3042,
1331      2694, 2694, 2694, 3042, 2694, 2694, 3044, 3044, 2694, 2694,
1332      3045, 2694, 2694, 2694, 3047, 3047, 3047, 2694, 2694, 2694,
1333
1334      2694, 3048, 3049, 2694, 2694, 2694, 2694, 2694, 3053, 2694,
1335      2694, 2694, 2694, 2694, 2694, 2694, 3058, 3059, 3059, 2694,
1336      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1337      2694, 3063, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1338      2694, 2694, 3037, 2694, 2694, 3038, 3041, 2694, 2694, 2694,
1339      2694, 2694, 3042, 3042, 3042, 2694, 2694, 2694, 3044, 2694,
1340      2694, 2694, 2694, 2694, 2694, 2694, 3047, 3047, 3047, 2694,
1341      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1342      2694, 2694, 3053, 2694, 2694, 2694, 3058, 3059, 3059, 2694,
1343      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1344
1345      2694, 2694, 2694, 2694, 3063, 2694, 2694, 2694, 2694, 2694,
1346      2694, 2694, 2694, 3037, 2694, 2694, 3038, 2694, 2694, 3041,
1347      2694, 2694, 2694, 3042, 3042, 3042, 3044, 2694, 2694, 2694,
1348      2694, 2694, 2694, 3047, 2694, 2694, 3047, 2694, 2694, 2694,
1349      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 3053,
1350      3058, 3059, 3059, 3059, 2694, 2694, 2694, 2694, 2694, 2694,
1351      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1352      2694, 2694, 2694, 2694, 2694, 3037, 2694, 3038, 2694, 2694,
1353      2694, 3041, 3042, 3042, 3042, 3044, 3047, 2694, 2694, 2694,
1354      3047, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1355
1356      2694, 2694, 2694, 2694, 2694, 2694, 2694, 3058, 3059, 3059,
1357      3059, 3064, 3065, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1358      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1359      2694, 2694, 3037, 2694, 2694, 3041, 3042, 3042, 2694, 2694,
1360      3044, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1361      2694, 2694, 2694, 2694, 2694, 2694, 2694, 3058, 3059, 3066,
1362      3067, 3064, 3065, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1363      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 3041,
1364      3042, 3042, 2694, 2694, 2694, 3044, 2694, 2694, 2694, 2694,
1365      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1366
1367      2694, 2694, 2694, 2694, 3058, 3066, 3059, 3068, 3067, 3069,
1368      3059, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 3041,
1369      3042, 3042, 2694, 2694, 2694, 2694, 3044, 2694, 2694, 2694,
1370      2694, 2694, 2694, 2694, 2694, 3058, 3068, 2694, 3069, 3059,
1371      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1372      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1373      2694, 2694, 2694, 2694, 3058, 2694, 2694, 2694, 2694, 2694,
1374      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1375      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1376      2694, 2694, 2694, 2694, 3058, 2694, 2694, 2694, 2694, 2694,
1377
1378      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1379      2694, 2694, 2694, 2694, 3058, 2694, 2694, 2694, 2694, 2694,
1380      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1381      2694, 2694, 2694, 3058, 2694, 2694, 2694, 2694, 2694, 2694,
1382      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1383      3058, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1384      2694, 2694, 2694, 2694, 2694, 2694, 2694, 3058, 2694, 2694,
1385      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1386      3058, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 3058,
1387      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 3058, 3058,
1388
1389      2694, 2694, 2694, 2694, 2694, 2694, 3058, 3058, 3058, 3058,
1390      3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058,
1391      3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058,
1392      3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058,
1393      3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058,
1394      3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058,
1395      3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058,
1396      3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058,
1397      3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058, 3058,
1398      3058, 3058, 2694,    0, 2694, 2694, 2694, 2694, 2694, 2694,
1399
1400      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1401      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1402      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1403      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1404      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1405      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1406      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1407      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1408      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1409      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1410
1411      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1412      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1413      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1414      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1415      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1416      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1417      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1418      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1419      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1420      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1421
1422      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1423      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1424      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1425      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1426      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1427      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1428      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1429      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1430      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1431      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1432
1433      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1434      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1435      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1436      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1437      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1438      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
1439      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694
1440     } ;
1441
1442 static yyconst flex_int16_t yy_nxt[9692] =
1443     {   0,
1444      2694,  224,  225,  224,  224,  225,  224,  224,  225,  224,
1445       224,  225,  224,  229,  225,  229,  235,  226,  232,  235,
1446       226,  232, 2694,  227, 2694,  233,  227, 2694,  233,  230,
1447       229,  225,  229,  555,  236,  238,  239,  236,  238,  239,
1448       240,  241,  618,  240,  241,  555,  230,  245,  246,  556,
1449       242,  238,  239,  242,  243,  558,  240,  238,  239,  590,
1450       243,  557,  240,  245,  246,  591,  242,  225,  225,  225,
1451       630,  557,  242,  225,  225,  225,  257,  225,  257,  257,
1452       225,  257,  782,  248,  257,  225,  257,  590,  783,  248,
1453       578,  247,  258,  619,  784,  258,  554,  554,  554,  587,
1454
1455       259,  554,  554,  554,  554,  554,  554,  247,  249,  250,
1456       225,  250,  249,  249,  249,  249,  249,  249,  249,  251,
1457       249,  249,  249,  635,  249,  253,  249,  254,  249,  257,
1458       225,  257,  225,  225,  225,  225,  225,  225,  586,  257,
1459       225,  257,  257,  225,  257,  259, 2694, 1591,  260,  558,
1460       558,  260,  587,  249,  249,  258,  588,  558,  258,  257,
1461       225,  257,  554,  554,  554,  557,  557,  554,  554,  554,
1462       554,  554,  554,  557, 1593,  261,  255,  249,  250,  225,
1463       250,  249,  249,  249,  249,  249,  249,  249,  251,  249,
1464       249,  249,  645,  249,  253,  249,  254,  249,  257,  225,
1465
1466       257,  225,  225,  225,  225,  225,  225,  569,  257,  225,
1467       257,  257,  225,  257,  261, 2694,  587,  262,  592, 1606,
1468       262,  650,  249,  249,  259,  588,  588,  259,  225,  225,
1469       225,  225,  225,  225,  257,  225,  257,  257,  225,  257,
1470       257,  225,  257,  591,  263,  255,  678,  263,  558,  679,
1471       261, 2694,  558,  261,  589,  593,  264,  257,  225,  257,
1472       590,  554,  554,  554,  557, 2694,  591,  594,  557,  587,
1473       592,  592,  591,  264,  265,  266,  225,  266,  265,  265,
1474       265,  265,  265,  265,  265,  267,  265,  265,  265,  576,
1475       265,  269,  265,  270,  265,  273,  225,  273,  273,  225,
1476
1477       273,  298,  225,  298,  586,  612, 1607,  238,  239,  613,
1478       558,  274,  240,  614,  274, 1608,  595,  299,  587,  265,
1479       265,  668,  284,  554,  554,  554,  557,  271,  265,  266,
1480       225,  266,  265,  265,  265,  265,  265,  265,  265,  267,
1481       265,  265,  265,  634,  265,  269,  265,  270,  265, 1611,
1482       636,  285,  673,  238,  239,  298,  225,  298,  240,  225,
1483       225,  225,  225,  225,  225,  554,  554,  554,  284,  669,
1484       712,  299,  674,  265,  265,  300,  762,  713,  300,  763,
1485      1612,  271,  275,  276,  225,  276,  275,  275,  275,  275,
1486       275,  275,  275,  277,  275,  275,  275,  285,  275,  279,
1487
1488       275,  280,  275,  298,  225,  298,  298,  225,  298,  298,
1489       225,  298,  616,  298,  225,  298,  312,  225,  312,  299,
1490       558,  558,  299,  558,  605,  301,  617,  275,  275,  301,
1491       599,  606,  313, 1624, 1625,  281,  557,  557,  282,  557,
1492       557,  554,  554,  554,  283,  275,  276,  225,  276,  275,
1493       275,  275,  275,  275,  275,  275,  277,  275,  275,  275,
1494       740,  275,  279,  275,  280,  275,  312,  225,  312,  323,
1495       225,  323,  323,  225,  323, 2694,  323,  225,  323,  323,
1496       225,  323,  313,  558,  558,  324,  558,  558,  324,  558,
1497       275,  275,  325,  625,  655,  325, 1632,  741,  281,  557,
1498
1499       557,  282,  557,  557,  563,  557, 1636,  283,  286,  287,
1500       225,  287,  286,  286,  286,  286,  286,  286,  286,  288,
1501       286,  286,  286,  669,  286,  290,  286,  291,  286,  225,
1502       225,  225,  225,  225,  225,  323,  225,  323,  668,  323,
1503       225,  323,  323,  225,  323,  326,  564,  558,  326,  558,
1504       558,  327,  565,  286,  286,  327,  566,  660,  328, 1637,
1505       706,  567,  292,  557,  293,  557,  557,  294,  554,  554,
1506       554,  707,  295,  296,  286,  287,  225,  287,  286,  286,
1507       286,  286,  286,  286,  286,  288,  286,  286,  286,  591,
1508       286,  290,  286,  291,  286,  323,  225,  323,  225,  225,
1509
1510       225,  225,  225,  225,  708,  323,  225,  323,  323,  225,
1511       323,  328,  952, 1120,  329,  558,  680,  329, 1121,  286,
1512       286,  325,  685, 1643,  325,  554,  554,  554,  292,  681,
1513       293,  557,  722,  294,  554,  554,  554, 1554,  295,  296,
1514       302,  303,  225,  303,  302,  302,  302,  302,  302,  302,
1515       302,  304,  302,  302,  302,  591,  302,  306,  302,  307,
1516       302,  225,  225,  225,  225,  225,  225,  323,  225,  323,
1517       682,  323,  225,  323,  323,  225,  323,  330, 1649,  580,
1518       330,  683,  684,  328,  720,  302,  302,  328,  558,  558,
1519       331,  721,  308,  554,  554,  554,  695,  309,  554,  554,
1520
1521       554,  554,  554,  554,  557,  557,  310,  302,  303,  225,
1522       303,  302,  302,  302,  302,  302,  302,  302,  304,  302,
1523       302,  302,  756,  302,  306,  302,  307,  302,  323,  225,
1524       323,  225,  225,  225,  225,  225,  225,  757,  323,  225,
1525       323,  323,  225,  323,  331,  775,  558,  332,  776, 1650,
1526       332, 1651,  302,  302,  333,  558,  558,  333, 1652,  308,
1527      1656,  588,  557,  700,  309,  554,  554,  554,  554,  554,
1528       554,  557,  557,  310,  314,  315,  225,  315,  314,  314,
1529       314,  314,  314,  314,  314,  316,  314,  314,  314,  576,
1530       314,  318,  314,  319,  314,  225,  225,  225,  225,  225,
1531
1532       225,  323,  225,  323,  638,  323,  225,  323,  323,  225,
1533       323,  334,  558,  558,  334,  775, 1662,  331,  789,  314,
1534       314,  331,  733, 1666,  335,  554,  554,  554,  557,  557,
1535       320,  554,  554,  554,  554,  554,  554,  740,  321,  314,
1536       315,  225,  315,  314,  314,  314,  314,  314,  314,  314,
1537       316,  314,  314,  314, 1669,  314,  318,  314,  319,  314,
1538       323,  225,  323,  346,  225,  346,  346,  225,  346,  580,
1539       225,  225,  225,  225,  225,  225,  335,  558,  558,  347,
1540      1671, 1672,  347,  749,  314,  314,  300, 1673,  591,  300,
1541       554,  554,  554,  557,  557,  320,  554,  554,  554,  554,
1542
1543       554,  554, 1677,  321,  336,  337,  225,  337,  336,  336,
1544       336,  336,  336,  336,  336,  338,  336,  336,  336, 1680,
1545       336,  340,  336,  341,  336,  346,  225,  346,  346,  225,
1546       346,  346,  225,  346,  591,  346,  225,  346,  554,  554,
1547       554,  347,  558,  558,  347, 1682,  558,  348,  780,  336,
1548       336,  348,  781,  727,  342,  554,  554,  554,  557,  557,
1549       343,  714,  557,  344,  336,  337,  225,  337,  336,  336,
1550       336,  336,  336,  336,  336,  338,  336,  336,  336, 1689,
1551       336,  340,  336,  341,  336,  358,  225,  358,  358,  225,
1552       358,  225,  225,  225, 1696,  225,  225,  225,  554,  554,
1553
1554       554,  359, 2694,  558,  359,  558,  558,  300,  715,  336,
1555       336,  300,  591,  745,  342,  554,  554,  554,  756,  557,
1556       343,  557,  557,  344,  349,  350,  225,  350,  349,  349,
1557       349,  349,  349,  349,  349,  351,  349,  349,  349,  741,
1558       349,  353,  349,  354,  349,  358,  225,  358,  358,  225,
1559       358,  358,  225,  358,  804,  358,  225,  358,  370,  225,
1560       370,  359, 1697, 1698,  359,  785,  790,  360,  868,  349,
1561       349,  360,  869, 1700,  371,  554,  554,  554,  786,  786,
1562       355,  554,  554,  554,  554,  554,  554,  554,  554,  554,
1563       356,  349,  350,  225,  350,  349,  349,  349,  349,  349,
1564
1565       349,  349,  351,  349,  349,  349, 1714,  349,  353,  349,
1566       354,  349,  370,  225,  370,  381,  225,  381,  381,  225,
1567       381, 1718,  395,  225,  395,  395,  225,  395,  371,  792,
1568       952,  382,  776,  794,  382, 1719,  349,  349,  396,  783,
1569      1394,  396,  554,  554,  554,  795,  954,  355,  554,  554,
1570       554,  554,  554,  554,  554,  554,  554,  356,  361,  362,
1571       225,  362,  361,  361,  361,  361,  361,  361,  361,  363,
1572       361,  361,  361, 1713,  361,  365,  361,  366,  361,  225,
1573       225,  225,  225,  225,  225,  395,  225,  395, 1720,  395,
1574       225,  395,  395,  225,  395,  397,  792, 1721,  397,  789,
1575
1576       794,  396, 1723,  361,  361,  396,  783, 1724,  398,  554,
1577       554,  554,  784, 1725,  367,  554,  554,  554,  368,  361,
1578       362,  225,  362,  361,  361,  361,  361,  361,  361,  361,
1579       363,  361,  361,  361, 1726,  361,  365,  361,  366,  361,
1580       395,  225,  395,  414,  225,  414,  414,  225,  414, 1727,
1581       430,  225,  430,  430,  225,  430,  398,  860, 1730,  415,
1582       861,  782,  415, 1731,  361,  361,  431,  783, 1734,  431,
1583       554,  554,  554,  795, 1735,  367,  554,  554,  554,  368,
1584       372,  373,  225,  373,  372,  372,  372,  372,  372,  372,
1585       372,  374,  372,  372,  372, 1736,  372,  376,  372,  377,
1586
1587       372,  441,  225,  441,  441,  225,  441,  454,  225,  454,
1588      1737,  454,  225,  454,  225,  225,  225,  442,  952, 1739,
1589       442, 1394, 1221,  455,  952,  372,  372,  455,  952, 1740,
1590       300,  554,  554,  554,  554,  554,  554,  554,  554,  554,
1591       378,  554,  554,  554, 1391, 1711,  379,  372,  373,  225,
1592       373,  372,  372,  372,  372,  372,  372,  372,  374,  372,
1593       372,  372, 1712,  372,  376,  372,  377,  372,  225,  225,
1594       225,  454,  225,  454,  454,  225,  454, 1242,  454,  225,
1595       454,  454,  225,  454,  300, 1743, 1746,  455, 1750, 1243,
1596       455, 1751,  372,  372,  456, 1754, 1755,  456,  554,  554,
1597
1598       554,  554,  554,  554,  554,  554,  554,  378,  554,  554,
1599       554, 1756, 1759,  379,  383,  384,  225,  384,  383,  383,
1600       383,  383,  383,  383,  383,  385,  383,  383,  383, 1763,
1601       383,  387,  383,  388,  383,  466,  225,  466,  466,  225,
1602       466,  225,  225,  225, 1752,  225,  225,  225, 1764,  558,
1603      1757,  467, 1753, 1766,  467, 1780,  754,  468, 1758,  383,
1604       383,  468,  389,  794,  390,  557,  554,  554,  554,  783,
1605       391,  760,  760,  760, 1781,  819,  392, 1782, 1783,  393,
1606       383,  384,  225,  384,  383,  383,  383,  383,  383,  383,
1607       383,  385,  383,  383,  383, 1784,  383,  387,  383,  388,
1608
1609       383,  466,  225,  466,  466,  225,  466,  466,  225,  466,
1610      1785,  466,  225,  466,  801,  801,  801,  467, 1786,  790,
1611       467,  790,  790,  469, 1096,  383,  383,  469,  389,  761,
1612       390,  802,  834, 1097,  837,  838,  391,  760,  760,  760,
1613      1098,  956,  392, 1790, 1796,  393,  399,  400,  225,  400,
1614       399,  399,  399,  399,  399,  399,  399,  401,  399,  399,
1615       399,  402,  399,  403,  399,  404,  399,  402,  402,  402,
1616       402,  402,  402,  402,  402,  402,  402,  402,  402,  402,
1617       402,  402,  402,  402,  402,  402,  402,  402,  402,  402,
1618       402,  399,  399,  402,  405,  406,  407,  402,  402,  402,
1619
1620       402,  402,  408,  402,  409,  402,  402,  402,  410,  402,
1621       411,  412,  402,  402,  402,  402,  402,  402,  416,  417,
1622       225,  417,  416,  416,  416,  416,  416,  416,  416,  418,
1623       416,  416,  416,  419,  416,  420,  416,  421,  416,  419,
1624       419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
1625       419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
1626       419,  419,  419,  416,  416,  419,  422,  423,  424,  419,
1627       419,  419,  419,  419,  425,  419,  426,  419,  419,  419,
1628       427,  419,  419,  428,  419,  419,  419,  419,  419,  419,
1629       432,  433,  225,  433,  432,  432,  432,  432,  432,  432,
1630
1631       432,  434,  432,  432,  432, 1797,  432,  436,  432,  437,
1632       432,  480,  225,  480,  480,  225,  480,  225,  225,  225,
1633      1253,  225,  225,  225,  809,  809,  809,  481, 1798, 1803,
1634       481, 1807, 1243,  468, 1808,  432,  432,  468, 1809, 1811,
1635       438,  810,  969,  969,  969, 1815,  439,  432,  433,  225,
1636       433,  432,  432,  432,  432,  432,  432,  432,  434,  432,
1637       432,  432, 1816,  432,  436,  432,  437,  432,  480,  225,
1638       480,  480,  225,  480,  480,  225,  480, 1253,  480,  225,
1639       480,  825,  825,  825,  481, 1594, 1817,  481, 1818, 1277,
1640       482, 1595,  432,  432,  482, 1596, 1819,  438,  826, 1597,
1641
1642       969,  969,  969,  439,  443,  444,  225,  444,  443,  443,
1643       443,  443,  443,  443,  443,  445,  443,  443,  443, 1822,
1644       443,  447,  443,  448,  443,  492,  225,  492,  492,  225,
1645       492,  504,  225,  504, 1829,  504,  225,  504,  225,  225,
1646       225,  493, 1831, 1840,  493, 1841, 1842,  505, 1844,  443,
1647       443,  505,  952,  449,  468,  989,  989,  989, 1847, 1850,
1648       450, 1856,  451,  970, 1394, 1857,  969,  969,  969,  452,
1649       443,  444,  225,  444,  443,  443,  443,  443,  443,  443,
1650       443,  445,  443,  443,  443, 1860,  443,  447,  443,  448,
1651       443,  225,  225,  225,  504,  225,  504,  504,  225,  504,
1652
1653      1861,  504,  225,  504,  504,  225,  504,  468, 1862, 1849,
1654       505, 1866, 1870,  505, 1872,  443,  443,  506,  970,  449,
1655       506, 1873, 1874, 1001, 1001, 1001,  450, 1002,  451, 1042,
1656      1003,  989,  989,  989, 1878,  452,  457,  458,  225,  458,
1657       457,  457,  457,  457,  457,  457,  457,  459,  457,  457,
1658       457, 1884,  457,  461,  457,  462,  457,  518,  225,  518,
1659       518,  225,  518,  225,  225,  225, 1885,  225,  225,  225,
1660       518,  225,  518,  519, 1886, 1887,  519, 1888, 1889,  520,
1661      1890,  457,  457,  520, 1891, 1892,  519,  463, 1011, 1011,
1662      1011, 1893, 1012, 1899, 1042, 1013,  989,  989,  989, 1908,
1663
1664      1909,  464,  457,  458,  225,  458,  457,  457,  457,  457,
1665       457,  457,  457,  459,  457,  457,  457, 1914,  457,  461,
1666       457,  462,  457,  518,  225,  518,  518,  225,  518,  518,
1667       225,  518, 1910,  530,  225,  530,  530,  225,  530,  519,
1668      1911, 1915,  521, 1912, 1916,  521, 1917,  457,  457,  531,
1669      1921, 1913,  531,  463, 1034, 1034, 1034, 1922, 1035, 1923,
1670      1925, 1036, 1406, 1406, 1406, 1926, 1927,  464,  470,  471,
1671       225,  471,  470,  470,  470,  470,  470,  470,  470,  472,
1672       470,  470,  470, 1928,  470,  474,  470,  475,  470,  540,
1673       225,  540,  540,  225,  540,  225,  225,  225, 1394,  225,
1674
1675       225,  225,  540,  225,  540,  541, 1598, 1931,  541, 1935,
1676      1936,  300, 1599,  470,  470,  300, 1600, 1941,  541,  476,
1677      1601, 1942,  477, 1051, 1051, 1051, 1943, 1052, 1944, 1848,
1678      1053, 1946, 1954,  478,  470,  471,  225,  471,  470,  470,
1679       470,  470,  470,  470,  470,  472,  470,  470,  470, 1394,
1680       470,  474,  470,  475,  470,  540,  225,  540,  540,  225,
1681       540,  540,  225,  540, 1937,  552,  225,  552,  552,  225,
1682       552,  541, 1938, 1394,  542, 1964, 1968,  542, 1939,  470,
1683       470,  553, 1969,  630,  553,  476, 1940,  630,  477, 1408,
1684      1408, 1408, 1970,  631, 1973, 1960, 2694,  637, 1977,  478,
1685
1686       483,  484,  225,  484,  483,  483,  483,  483,  483,  483,
1687       483,  485,  483,  483,  483, 1959,  483,  487,  483,  488,
1688       483,  632,  840,  840,  840,  632, 1978,  633, 1979, 1980,
1689       634,  845,  845,  845, 1981, 1409,  635,  636,  591,  841,
1690       633,  579,  585,  634, 1982,  483,  483, 1983,  846,  639,
1691       636,  489, 1412, 1412, 1412, 1984,  490,  483,  484,  225,
1692       484,  483,  483,  483,  483,  483,  483,  483,  485,  483,
1693       483,  483, 1985,  483,  487,  483,  488,  483,  850,  850,
1694       850,  862,  862,  862,  872,  872,  872,  875,  875,  875,
1695       890,  890,  890, 1986, 1988,  851, 1989, 1994,  863, 1995,
1696
1697      1996,  873,  483,  483,  876, 1997, 1998,  891,  489, 1415,
1698      1415, 1415, 1999,  490,  494,  495,  225,  495,  494,  494,
1699       494,  494,  494,  494,  494,  496,  494,  494,  494, 2000,
1700       494,  498,  494,  499,  494,  898,  898,  898,  903,  903,
1701       903,  923,  923,  923,  942,  942,  942,  946,  946,  946,
1702      2002, 2003,  899, 2006, 2007,  904, 2010, 2011,  924,  494,
1703       494,  943, 2012, 2013,  947,  500, 2017, 2018,  501, 1059,
1704      1059, 1059, 2019, 1060, 2020, 2021, 1061, 2022, 2023,  502,
1705       494,  495,  225,  495,  494,  494,  494,  494,  494,  494,
1706       494,  496,  494,  494,  494, 2024,  494,  498,  494,  499,
1707
1708       494,  965,  965,  965,  965,  965,  965, 2026, 1394,  996,
1709       996,  996,  996,  996,  996,  801,  801,  801, 2048,  967,
1710      2049, 2050,  967, 2051, 2052,  494,  494,  998, 2057, 2058,
1711       998,  500,  802, 1394,  501, 1067, 1067, 1067, 2059, 1068,
1712      2044, 2060, 1069, 2061, 2062,  502,  507,  508,  225,  508,
1713       507,  507,  507,  507,  507,  507,  507,  509,  507,  507,
1714       507,  968,  507,  511,  507,  512,  507, 1006, 1006, 1006,
1715      2045,  999, 1006, 1006, 1006, 2063,  809,  809,  809, 1014,
1716      1014, 1014, 1022, 1022, 1022, 1008, 2064, 1017, 1017, 1017,
1717      1008,  507,  507,  810, 2065, 2066, 1015, 2068, 2069,  513,
1718
1719      1024,  514, 2073,  515, 1018, 1424, 1424, 1424, 1447, 1447,
1720      1447,  516,  507,  508,  225,  508,  507,  507,  507,  507,
1721       507,  507,  507,  509,  507,  507,  507, 2074,  507,  511,
1722       507,  512,  507, 2075, 2076, 1009, 1030, 1030, 1030, 2079,
1723      2080, 1030, 1030, 1030, 2084, 2087, 1022, 1022, 1022,  825,
1724       825,  825, 2088, 2091, 1032, 2095, 2096,  507,  507, 1032,
1725      1458, 1458, 1458, 2097, 1024,  513,  826,  514, 2098,  515,
1726      1459, 1459, 1459, 1406, 1406, 1406, 2099,  516,  522,  523,
1727       225,  523,  522,  522,  522,  522,  522,  522,  522,  524,
1728       522,  522,  522, 1025,  522,  526,  522,  527,  522, 1038,
1729
1730      1038, 1038, 2102, 2103, 1033, 2120, 2121, 1038, 1038, 1038,
1731       840,  840,  840, 1055, 1055, 1055, 1409, 1040, 1055, 1055,
1732      1055, 2122, 2123,  522,  522, 1040, 2133,  841,  845,  845,
1733       845, 1057,  952, 1084, 1084, 1084, 1057, 1085, 1394, 2134,
1734      1086, 1408, 1408, 1408, 1041,  846,  528,  522,  523,  225,
1735       523,  522,  522,  522,  522,  522,  522,  522,  524,  522,
1736       522,  522, 1394,  522,  526,  522,  527,  522, 1063, 1063,
1737      1063, 2117, 1063, 1063, 1063, 2118, 2135,  850,  850,  850,
1738      1071, 1071, 1071, 1058, 2136, 2137, 1065, 1071, 1071, 1071,
1739      1065, 2138,  522,  522,  851, 1077, 1077, 1077, 1073, 1099,
1740
1741      1099, 1099, 2139, 1100, 2119, 1073, 1101, 1103, 1103, 1103,
1742      2140, 1104, 2141, 1079, 1105,  528,  532,  533,  225,  533,
1743       532,  532,  532,  532,  532,  532,  532,  534,  532,  532,
1744       532, 2142,  532,  536,  532,  537,  532, 1066, 1077, 1077,
1745      1077,  862,  862,  862, 1568, 1568, 1568, 1074, 1089, 1089,
1746      1089, 1089, 1089, 1089, 2144, 2145, 1079, 2147,  863, 2153,
1747      2154,  532,  532, 1123, 1123, 1123, 1091, 1124, 2155, 1091,
1748      1125, 2159,  538,  532,  533,  225,  533,  532,  532,  532,
1749       532,  532,  532,  532,  534,  532,  532,  532, 2167,  532,
1750       536,  532,  537,  532, 2168,  872,  872,  872,  875,  875,
1751
1752       875, 2169, 1080, 1106, 1106, 1106, 1115, 1115, 1115, 2191,
1753      2192, 1092,  873, 2193, 2197,  876,  952, 1394,  532,  532,
1754      1107, 1135, 1135, 1135, 1117, 1136, 2198, 2201, 1137,  538,
1755       543,  544,  225,  544,  543,  543,  543,  543,  543,  543,
1756       543,  545,  543,  543,  543, 2187,  543,  547,  543,  548,
1757       543,  890,  890,  890, 1126, 1126, 1126, 2126, 2188, 1130,
1758      1130, 1130, 2202, 1115, 1115, 1115, 2206, 2127,  891, 2207,
1759      2128, 1127, 1130, 1130, 1130,  543,  543, 1132,  898,  898,
1760       898, 1117, 1412, 1412, 1412, 2208,  549, 1143, 1143, 1143,
1761      1132, 1144, 2209, 2210, 1145,  899, 2211, 2212,  550,  543,
1762
1763       544,  225,  544,  543,  543,  543,  543,  543,  543,  543,
1764       545,  543,  543,  543, 2213,  543,  547,  543,  548,  543,
1765      1118, 2216, 2224, 1133, 1138, 1138, 1138, 2177, 1138, 1138,
1766      1138,  903,  903,  903, 1149, 1149, 1149, 2178, 1149, 1149,
1767      1149, 1394, 1140, 2179,  543,  543, 1140, 2225,  904, 1153,
1768      1153, 1153, 1151, 2226, 2227,  549, 1151, 1155, 1155, 1155,
1769      2694, 2694, 2694, 1158, 1158, 1158, 1154,  550,  558, 2234,
1770      2199, 1158, 1158, 1158, 1156,  573, 2237, 2694, 1163, 1163,
1771      1163, 1160, 2189, 2200,  557,  574, 2244, 2245, 1141, 1160,
1772      2694, 2694, 2694, 1152, 2246, 1164, 2247, 2248, 1167, 1167,
1773
1774      1167, 1408, 1408, 1408, 2694, 2694, 2694, 2694, 2249, 1170,
1775      1170, 1170,  575,  576,  577, 1168, 1394, 2256, 1157,  578,
1776       579, 2694,  580,  581, 2257, 2203,  582, 1172,  583,  584,
1777       585, 1161, 1170, 1170, 1170,  923,  923,  923, 2204, 2258,
1778      1165, 1175, 1175, 1175,  952, 1176, 2259, 1529, 1177, 2260,
1779      1172, 2252,  924, 2261, 1166, 1178, 1178, 1178, 1178, 1178,
1780      1178, 2262, 1169, 1182, 1182, 1182, 2694, 2694, 2694, 1173,
1781      1186, 1186, 1186, 1180, 2263, 2264, 1180, 1188, 1188, 1188,
1782      1183, 2265, 2268, 2694, 1188, 1188, 1188, 1187, 1196, 1196,
1783      1196, 2251, 1196, 1196, 1196, 1190, 1202, 1202, 1202, 1202,
1784
1785      1202, 1202, 1190,  942,  942,  942, 1198,  946,  946,  946,
1786      1198, 2269, 2270, 1181, 1204, 2271, 1184, 1204, 2272, 2273,
1787       943, 1206, 1206, 1206,  947, 1207, 2274, 2275, 1208, 2282,
1788      1185, 1209, 1209, 1209, 1209, 1209, 1209, 1213, 1213, 1213,
1789      2129, 1214, 2283, 2284, 1215, 1217, 1217, 1217, 2285, 1211,
1790      2130, 2286, 1211, 2131, 1191, 1199, 1217, 1217, 1217,  965,
1791       965,  965, 1205, 1219,  965,  965,  965,  965,  965,  965,
1792      1255, 1255, 1255, 2287, 1219, 2291, 2292,  967,  996,  996,
1793       996, 2300,  967, 2301, 2302,  967, 2293, 1256,  996,  996,
1794       996,  996,  996,  996, 1212, 2303,  998, 2180, 1258, 1258,
1795
1796      1258, 1001, 1001, 1001, 2304, 1002,  998, 2181, 1003,  998,
1797      2694, 2694, 2694, 2182, 1229, 1259, 1006, 1006, 1006, 1220,
1798      1006, 1006, 1006, 2294, 1006, 1006, 1006, 2694, 1011, 1011,
1799      1011, 2296, 1012, 2295, 1008, 1013, 2305, 2316, 1008, 2298,
1800      1257, 2297, 1008, 1014, 1014, 1014, 1264, 1264, 1264, 2299,
1801      1265, 2317, 2318, 1266, 2319, 1267, 1267, 1267, 2320, 2321,
1802      1015, 1017, 1017, 1017, 1273, 1273, 1273, 1022, 1022, 1022,
1803      1260, 1262, 1268, 1269, 1269, 1269, 2322, 1270, 1018, 2323,
1804      1271, 1274, 1022, 1022, 1022, 1024, 1022, 1022, 1022, 1279,
1805      1279, 1279, 1030, 1030, 1030, 1030, 1030, 1030,  952, 2327,
1806
1807      1024, 1030, 1030, 1030, 1024, 2328, 1280, 1034, 1034, 1034,
1808      1032, 1035, 2329, 1032, 1036, 1038, 1038, 1038, 2330, 1032,
1809      1038, 1038, 1038, 1284, 1284, 1284, 2331, 1051, 1051, 1051,
1810      2332, 1052, 2308, 1040, 1053, 1055, 1055, 1055, 1040, 2336,
1811      2337, 1285, 1055, 1055, 1055, 1276, 2338, 2341, 1282, 1055,
1812      1055, 1055, 2346, 1057, 1059, 1059, 1059, 2347, 1060, 2348,
1813      1057, 1061, 1063, 1063, 1063, 2349, 2350, 1057, 1063, 1063,
1814      1063, 1063, 1063, 1063, 1067, 1067, 1067, 2351, 1068, 2352,
1815      1065, 1069, 1299, 1299, 1299, 2353, 1065, 2354, 2355, 1065,
1816      1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1300,
1817
1818      1302, 1302, 1302, 2356, 2694, 2694, 2694, 2357, 1073, 1296,
1819      2364, 1073, 2365,  952, 1073, 2366, 2367, 1303, 1077, 1077,
1820      1077, 2694, 1077, 1077, 1077, 1077, 1077, 1077, 1308, 1308,
1821      1308, 1298, 1304, 1089, 1089, 1089, 1079, 1084, 1084, 1084,
1822      1079, 1085, 2368, 1079, 1086, 1309, 1089, 1089, 1089, 2369,
1823      2370, 1091, 1089, 1089, 1089, 2358, 1099, 1099, 1099, 2371,
1824      1100, 2372, 1301, 1101, 1091, 1319, 1319, 1319, 2373, 2374,
1825      1091, 1103, 1103, 1103, 2375, 1104, 2376, 2377, 1105, 1106,
1826      1106, 1106, 1320, 2380, 1321, 1321, 1321, 2381, 1322, 2382,
1827      1305, 1323, 1115, 1115, 1115, 2386, 1107, 1115, 1115, 1115,
1828
1829      1115, 1115, 1115, 2393, 1123, 1123, 1123, 2394, 1124, 2395,
1830      1117, 1125, 1126, 1126, 1126, 1117, 1312, 2396, 1117, 1336,
1831      1336, 1336, 2397, 1337, 2398, 2399, 1338, 2400, 2401, 1127,
1832      1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1135,
1833      1135, 1135, 2402, 1136, 2403, 2404, 1137, 2412, 1132,  952,
1834      2407, 1132, 2413, 2414, 1132, 1138, 1138, 1138, 1138, 1138,
1835      1138, 1138, 1138, 1138, 2408, 2415, 1331, 1143, 1143, 1143,
1836      2416, 1144, 2417, 1140, 1145, 2407, 1140, 2418, 2419, 1140,
1837      1149, 1149, 1149, 1149, 1149, 1149, 2410, 1341, 1149, 1149,
1838      1149, 1153, 1153, 1153, 2405, 1349, 1349, 1349, 1151, 1350,
1839
1840      2420, 1151, 1351, 1155, 1155, 1155, 1151, 2421, 1154, 1352,
1841      1352, 1352, 2422, 1353, 2427, 2432, 1354, 1158, 1158, 1158,
1842      1156, 1158, 1158, 1158, 1158, 1158, 1158, 1343, 1163, 1163,
1843      1163, 1167, 1167, 1167, 2423, 1160, 1358, 1358, 1358, 1160,
1844      1359, 2433, 1160, 1360, 2434, 1164, 2424, 1348, 1168, 1363,
1845      1363, 1363, 2435, 1364, 2438, 2407, 1365, 1170, 1170, 1170,
1846      1170, 1170, 1170, 1170, 1170, 1170, 1175, 1175, 1175, 2408,
1847      1176, 1394, 1395, 1177, 2438, 1172, 2425, 2428, 1172, 2441,
1848      2442, 1172, 1178, 1178, 1178, 1178, 1178, 1178, 2426, 2429,
1849      1356, 1178, 1178, 1178, 1182, 1182, 1182, 1370, 1370, 1370,
1850
1851      1180, 1371, 2443, 1180, 1372, 1186, 1186, 1186, 2430, 1180,
1852      2407, 1183, 1375, 1375, 1375, 2444, 1376, 2453, 2456, 1377,
1853      2431, 2410, 1187, 1188, 1188, 1188, 1367, 1188, 1188, 1188,
1854      1188, 1188, 1188, 2461, 1380, 1380, 1380, 1196, 1196, 1196,
1855       952, 1190, 1196, 1196, 1196, 1190, 2464, 2438, 1190, 2466,
1856      1369, 1381, 1196, 1196, 1196, 1198, 1202, 1202, 1202, 2438,
1857      1198, 1202, 1202, 1202, 1202, 1202, 1202, 1209, 1209, 1209,
1858      1198, 1206, 1206, 1206, 1204, 1207, 2467, 2468, 1208, 1204,
1859      2436, 2451, 1204, 2469, 2454, 1211, 1209, 1209, 1209, 2459,
1860      2462, 1378, 1209, 1209, 1209, 1213, 1213, 1213, 2470, 1214,
1861
1862      2452, 2480, 1215, 2455, 1211, 1217, 1217, 1217, 2460, 2463,
1863      1211, 2481, 1384, 1217, 1217, 1217, 2482, 1387, 1217, 1217,
1864      1217, 2483, 2484, 1219, 1393, 1393, 1393,  965,  965,  965,
1865      2485, 1219, 1255, 1255, 1255, 2489, 1219, 1427, 1427, 1427,
1866      2490, 1428, 1394, 1395, 1429,  967,  996,  996,  996, 1256,
1867      2491, 1388, 1258, 1258, 1258, 1431, 1431, 1431, 2492, 1432,
1868      2493, 2494, 1433, 2496,  998, 1006, 1006, 1006, 2497, 1259,
1869      1264, 1264, 1264, 2498, 1265, 2499, 2503, 1266, 1390, 1267,
1870      1267, 1267, 2504, 1008, 1438, 1438, 1438, 2500, 1439, 2501,
1871      2505, 1440, 1400, 1269, 1269, 1269, 1268, 1270, 2506, 2507,
1872
1873      1271, 2502, 2508, 1430, 1273, 1273, 1273, 2509, 1442, 1442,
1874      1442, 2510, 1443, 2511, 1436, 1444, 1022, 1022, 1022, 2512,
1875      2513, 1274, 1279, 1279, 1279, 1449, 1449, 1449, 2514, 1450,
1876      2516,  952, 1451, 2517, 1024, 1452, 1452, 1452, 2518, 1280,
1877      1030, 1030, 1030, 1284, 1284, 1284, 1465, 1465, 1465, 1055,
1878      1055, 1055, 1453, 1063, 1063, 1063, 2515, 2519, 1032, 2520,
1879      2521, 1285, 2522, 1466, 2523, 2524, 1446, 1057, 1299, 1299,
1880      1299, 1065, 1470, 1470, 1470, 2525, 1471, 2526, 2527, 1472,
1881      1071, 1071, 1071, 2528, 2529, 1300, 1302, 1302, 1302, 1454,
1882      1474, 1474, 1474, 2530, 1475, 2531, 2532, 1476, 1073, 1077,
1883
1884      1077, 1077, 2533, 1303, 1308, 1308, 1308, 1481, 1481, 1481,
1885      2535, 1482, 1467, 2536, 1483, 2537, 1469, 1079, 1484, 1484,
1886      1484, 1309, 2538, 1486, 1486, 1486, 1089, 1089, 1089, 1493,
1887      1493, 1493, 1319, 1319, 1319, 1485, 1500, 1500, 1500, 1473,
1888      1487, 1497, 1497, 1497, 1091, 1498, 1494, 2539, 1499, 1320,
1889      1321, 1321, 1321, 1501, 1322,  952, 2540, 1323, 2541, 1478,
1890      1115, 1115, 1115, 1510, 1510, 1510, 1336, 1336, 1336, 1488,
1891      1337, 2542, 2543, 1338, 2534, 1514, 1514, 1514, 1117, 2544,
1892      1511, 1130, 1130, 1130, 1138, 1138, 1138, 1523, 1523, 1523,
1893      2545, 1489, 1515, 2546, 1149, 1149, 1149, 2547, 2548, 1132,
1894
1895      2549, 2550, 1140,  952, 1524, 2552, 1349, 1349, 1349, 2553,
1896      1350, 2554, 1151, 1351, 1352, 1352, 1352, 2555, 1353, 2556,
1897      2557, 1354, 2558, 2551, 1508, 1158, 1158, 1158, 1358, 1358,
1898      1358, 2559, 1359, 1525, 2560, 1360, 2561, 2562, 1363, 1363,
1899      1363, 2563, 1364, 1160, 1517, 1365, 1170, 1170, 1170, 1519,
1900      1526, 1178, 1178, 1178, 1370, 1370, 1370, 2564, 1371, 2565,
1901      2566, 1372, 2567, 2569, 1172,  952, 1375, 1375, 1375, 1180,
1902      1376, 2568, 2570, 1377, 1188, 1188, 1188, 1380, 1380, 1380,
1903      1540, 1540, 1540, 2571, 1541, 2572, 2573, 1542, 2574, 2575,
1904      1528, 2576, 1190, 2577, 1381, 1196, 1196, 1196, 1547, 1547,
1905
1906      1547, 1202, 1202, 1202, 2578, 2579, 1533, 1535, 1209, 1209,
1907      1209, 2580, 2582, 1198, 2583, 1548, 1551, 1551, 1551, 1204,
1908      2584, 1538, 1217, 1217, 1217, 2585, 1211, 1393, 1393, 1393,
1909       965,  965,  965, 1552, 1415, 1415, 1415, 1573, 1573, 1573,
1910      1219, 1576, 1576, 1576, 1545, 1394, 2586,  952,  967, 1424,
1911      1424, 1424, 1583, 1583, 1583, 1427, 1427, 1427, 2587, 1428,
1912      1550, 2581, 1429,  996,  996,  996, 2588, 1549, 1431, 1431,
1913      1431, 2589, 1432, 2591, 2592, 1433, 2593, 2594, 1555, 2595,
1914      2596,  998, 1560, 1553, 1006, 1006, 1006, 1577, 1438, 1438,
1915      1438, 2597, 1439, 2598, 1556, 1440, 2601, 2602, 1584, 2603,
1916
1917      1574, 2604, 1008, 1442, 1442, 1442, 2605, 1443, 2606,  952,
1918      1444, 1590, 1022, 1022, 1022, 1447, 1447, 1447, 1449, 1449,
1919      1449,  952, 1450, 2617,  952, 1451, 1452, 1452, 1452, 1585,
1920      1024,  952, 1602, 1602, 1602, 1588, 1603, 1589, 1587, 1604,
1921      1030, 1030, 1030, 1453, 1458, 1458, 1458, 1459, 1459, 1459,
1922      1609, 1609, 1609, 1609, 1609, 1609, 2609, 2607, 1032, 1573,
1923      1573, 1573, 1465, 1465, 1465, 2615, 1613, 1613, 1613,  952,
1924      1614, 2610, 1592, 1615, 1055, 1055, 1055,  952,  952, 1466,
1925      1617, 1617, 1617, 1063, 1063, 1063, 1470, 1470, 1470,  952,
1926      1471, 1605, 1057, 1472, 1071, 1071, 1071, 1618, 1474, 1474,
1927
1928      1474, 1065, 1475,  952,  952, 1476, 1621, 1621, 1621, 1077,
1929      1077, 1077, 1073, 1610, 2608,  952, 1574, 1484, 1484, 1484,
1930      2613, 1616, 1610, 1622, 1481, 1481, 1481, 1079, 1482, 2616,
1931      1619, 1483, 2614,  952, 1485, 1626, 1626, 1626, 1586, 1627,
1932      2623, 2618, 1628, 1486, 1486, 1486, 1629, 1629, 1629,  952,
1933      1630, 2611, 2624, 1631, 1582, 1633, 1633, 1633,  952, 1620,
1934      1487, 1635, 1635, 1635, 1493, 1493, 1493, 1638, 1638, 1638,
1935       952, 1639, 1623, 1634, 1640, 1641, 1641, 1641, 1497, 1497,
1936      1497, 1494, 1498,  952,  952, 1499, 1500, 1500, 1500, 1644,
1937      1644, 1644, 1642, 1645,  952, 2631, 1646, 1647, 1647, 1647,
1938
1939      1653, 1653, 1653, 1501, 1115, 1115, 1115, 1510, 1510, 1510,
1940      1581, 1657, 1657, 1657, 1648, 1658, 2621, 1654, 1659, 1660,
1941      1660, 1660, 1117, 2625, 1511, 1514, 1514, 1514, 1663, 1663,
1942      1663, 2612, 1664, 2619,  952, 1665, 1661, 1667, 1667, 1667,
1943      2622,  952, 1515, 1138, 1138, 1138, 1523, 1523, 1523, 1674,
1944      1674, 1674, 2620, 1675, 2667, 1668, 1676, 1678, 1678, 1678,
1945       952, 1140,  952, 1524, 1158, 1158, 1158, 1580,  952, 1655,
1946      1683, 1683, 1683,  952, 2626, 1679, 1685, 1685, 1685, 2694,
1947      2694, 2694, 1160, 1170, 1170, 1170,  952, 1684, 1178, 1178,
1948      1178,  952,  952, 1686, 1670,  952, 2694, 1691, 1691, 1691,
1949
1950       952, 1172, 1693, 1693, 1693, 2633, 1180, 1188, 1188, 1188,
1951      1196, 1196, 1196, 2629, 1692, 1681, 1540, 1540, 1540, 1694,
1952      1541, 2627, 1579, 1542, 2634, 1190, 2628, 1578, 1198, 1547,
1953      1547, 1547, 2632,  952, 1690, 2635, 1701, 1701, 1701, 2636,
1954      1702,  952, 1687, 1703,  952, 2630, 1548, 1575,  952, 1688,
1955      1202, 1202, 1202, 1572, 1209, 1209, 1209, 1551, 1551, 1551,
1956       952, 1699, 1706, 1706, 1706,  952, 1707, 2639, 1204, 1708,
1957      2659, 1695, 1211,  952, 1552, 1709, 1709, 1709, 1715, 1715,
1958      1715,  965,  965,  965, 1722, 1722, 1722, 1568, 1568, 1568,
1959      1728, 1728, 1728, 1710, 2640, 1716, 1573, 1573, 1573,  967,
1960
1961      1729, 1729, 1729, 1576, 1576, 1576, 2647, 2641, 1704, 1705,
1962      1732, 1732, 1732, 1733, 1733, 1733, 1583, 1583, 1583,  996,
1963       996,  996, 1741, 1741, 1741, 1744, 1744, 1744, 1022, 1022,
1964      1022, 1748, 1748, 1748, 1030, 1030, 1030,  998, 1571,  952,
1965      1742, 1717, 1745, 1602, 1602, 1602, 1024, 1603, 1749,  952,
1966      1604,  952, 1032, 1761, 1761, 1761, 1609, 1609, 1609, 1765,
1967      1765, 1765, 1767, 1767, 1767, 1055, 1055, 1055,  952, 1738,
1968      1762, 1613, 1613, 1613, 2637, 1614,  952,  952, 1615, 1768,
1969      1760,  952,  952, 1057, 2638,  952, 1747, 1617, 1617, 1617,
1970      1770, 1770, 1770, 2642, 1771,  952, 1570, 1772, 1063, 1063,
1971
1972      1063, 1774, 1774, 1774, 1618, 1621, 1621, 1621, 1776, 1776,
1973      1776, 2663, 1777, 2643, 2648, 1778, 1065, 2645, 1769, 1775,
1974      2646, 2644, 1622, 1077, 1077, 1077, 1626, 1626, 1626, 2649,
1975      1627, 2650, 2651, 1628,  952, 1629, 1629, 1629,  952, 1630,
1976       952, 1079, 1631, 1633, 1633, 1633, 1635, 1635, 1635,  952,
1977       952, 1773, 1638, 1638, 1638,  952, 1639,  952, 1569, 1640,
1978       952, 1634, 1641, 1641, 1641, 1787, 1787, 1787, 2668, 1788,
1979      1779, 2652, 1789, 1644, 1644, 1644,  952, 1645,  952, 1642,
1980      1646, 1647, 1647, 1647, 1791, 1791, 1791, 2657, 1792, 2664,
1981      2653, 1793, 1794, 1794, 1794, 1653, 1653, 1653, 1648, 1799,
1982
1983      1799, 1799, 2655, 1800,  952, 2656, 1801, 1567, 1566, 1795,
1984      1565,  952, 1654, 1115, 1115, 1115, 1657, 1657, 1657, 2654,
1985      1658,  952,  952, 1659, 1660, 1660, 1660, 1564, 1804, 1804,
1986      1804, 1117, 1805, 2660,  952, 1806, 1663, 1663, 1663,  952,
1987      1664, 1661,  952, 1665, 1667, 1667, 1667, 1138, 1138, 1138,
1988      1812, 1812, 1812, 1674, 1674, 1674, 2665, 1675, 2658, 2671,
1989      1676,  952, 1668,  952, 1802, 1140, 1563, 1813, 1678, 1678,
1990      1678, 1820, 1820, 1820, 1683, 1683, 1683, 1823, 1823, 1823,
1991      2669, 1824,  952, 1562, 1825, 2670, 1679, 2666,  952, 1821,
1992       952, 1684, 1685, 1685, 1685,  952, 1814, 1826, 1826, 1826,
1993
1994      2672, 1827, 1561,  952, 1828, 1170, 1170, 1170, 2687, 1686,
1995      1810, 1178, 1178, 1178, 1691, 1691, 1691, 1833, 1833, 1833,
1996       952, 1834, 2673, 1172, 1835, 1693, 1693, 1693, 2661, 1180,
1997      2674, 1692, 1836, 1836, 1836, 2688, 1837,  952, 2675, 1838,
1998      2677,  952, 1694, 1188, 1188, 1188, 1196, 1196, 1196, 1701,
1999      1701, 1701, 1559, 1702, 2662, 2676, 1703, 1202, 1202, 1202,
2000      1832, 1190,  952,  952, 1198, 1209, 1209, 1209,  952, 1558,
2001      1830, 1557, 1706, 1706, 1706, 1204, 1707,  952, 2679, 1708,
2002      1709, 1709, 1709, 1211, 1715, 1715, 1715, 1851, 1851, 1851,
2003      1394, 1852, 2691, 1546, 1853,  965,  965,  965, 1710, 2680,
2004
2005      2681, 1716, 1855, 1855, 1855, 1544,  952, 1839, 1845, 2682,
2006      1843, 1543, 1539,  967, 1858, 1858, 1858, 1537, 1846, 1722,
2007      1722, 1722, 1859, 1859, 1859, 1863, 1863, 1863, 1728, 1728,
2008      1728, 1729, 1729, 1729, 1864, 1864, 1864, 1732, 1732, 1732,
2009      1733, 1733, 1733, 1867, 1867, 1867, 1868, 1868, 1868, 1869,
2010      1869, 1869,  996,  996,  996, 1741, 1741, 1741, 1854, 1744,
2011      1744, 1744, 1875, 1875, 1875, 2683, 1876, 1536, 1534, 1877,
2012       998, 1532, 1531, 1742,  952,  952, 1745, 1879, 1879, 1879,
2013      1865, 1748, 1748, 1748, 1881, 1881, 1881,  952, 1882, 1530,
2014      1527, 1883, 1030, 1030, 1030, 1880, 1522,  952, 1749, 1761,
2015
2016      1761, 1761, 1521, 1871, 1895, 1895, 1895, 2685, 1896, 1520,
2017      1032, 1897, 1898, 1898, 1898,  952, 1762, 1765, 1765, 1765,
2018      1900, 1900, 1900, 1767, 1767, 1767, 1902, 1902, 1902, 2686,
2019      1903,  952, 2678, 1904, 1055, 1055, 1055, 1063, 1063, 1063,
2020      1768, 1894, 1770, 1770, 1770, 2684, 1771, 2689, 2691, 1772,
2021      1518, 1516, 1057, 1513,  952, 1065, 1774, 1774, 1774,  952,
2022      1776, 1776, 1776, 2690, 1777, 1512, 1901, 1778, 1077, 1077,
2023      1077, 1787, 1787, 1787, 1775, 1788, 1509, 1507, 1789, 1506,
2024      1791, 1791, 1791, 1505, 1792, 1905, 1079, 1793, 1906, 1794,
2025      1794, 1794, 1918, 1918, 1918, 1504, 1919, 1503, 1502, 1920,
2026
2027      1799, 1799, 1799, 1496, 1800, 1495, 1795, 1801, 1115, 1115,
2028      1115, 1804, 1804, 1804, 1492, 1805, 1491, 1490, 1806, 1480,
2029      1479, 1907, 1929, 1929, 1929, 1477, 1117, 1812, 1812, 1812,
2030      1932, 1932, 1932, 1468, 1933, 1464, 1463, 1934, 1462, 1461,
2031      1930, 1820, 1820, 1820, 1813, 1823, 1823, 1823, 1460, 1824,
2032      1457, 1456, 1825, 1826, 1826, 1826, 1455, 1827, 1448, 1821,
2033      1828, 1170, 1170, 1170, 1178, 1178, 1178, 1445, 1833, 1833,
2034      1833, 1924, 1834, 1441, 1437, 1835, 1836, 1836, 1836, 1172,
2035      1837, 1435, 1180, 1838, 1188, 1188, 1188, 1949, 1949, 1949,
2036      2694, 2694, 2694, 2694, 2694, 2694, 1196, 1196, 1196, 1202,
2037
2038      1202, 1202, 1190, 1434, 1950, 1426, 1425, 2694, 1423, 1422,
2039      2694, 1421, 1945, 1420, 1198, 1419, 1418, 1204, 1417, 1416,
2040      1948, 1956, 1956, 1956, 1958, 1958, 1958, 1414, 1413, 1947,
2041      1961, 1961, 1961, 1851, 1851, 1851, 1411, 1852, 1410, 1957,
2042      1853, 1951,  952,  965,  965,  965, 1855, 1855, 1855, 1407,
2043      1405, 1952, 1963, 1963, 1963, 1858, 1858, 1858, 1955, 1404,
2044      1953,  967, 1859, 1859, 1859, 1965, 1965, 1965, 1966, 1966,
2045      1966, 1967, 1967, 1967, 1863, 1863, 1863, 1864, 1864, 1864,
2046      1867, 1867, 1867, 1868, 1868, 1868, 1869, 1869, 1869, 1971,
2047      1971, 1971, 1974, 1974, 1974, 1875, 1875, 1875, 1403, 1876,
2048
2049      1402, 1962, 1877, 2694, 2694, 2694, 1401, 1972, 1399, 1975,
2050      1879, 1879, 1879, 1398, 1881, 1881, 1881, 1397, 1882, 1396,
2051      2694, 1883, 1030, 1030, 1030, 1895, 1895, 1895, 1880, 1896,
2052      1389, 1386, 1897, 1898, 1898, 1898, 1900, 1900, 1900, 1385,
2053      1032, 1902, 1902, 1902, 1383, 1903, 1382, 1379, 1904, 1055,
2054      1055, 1055, 1991, 1991, 1991, 1077, 1077, 1077, 2001, 2001,
2055      2001, 1374, 1918, 1918, 1918, 1373, 1919, 1057, 1976, 1920,
2056      1992, 1368, 1366, 1079, 2004, 2004, 2004, 1362, 2008, 2008,
2057      2008, 1361, 1987, 1929, 1929, 1929, 2014, 2014, 2014, 1357,
2058      1355, 2005, 2025, 2025, 2025, 1990, 2009, 1347, 1932, 1932,
2059
2060      1932, 1930, 1933, 2015, 1346, 1934, 1993, 2027, 2027, 2027,
2061      2029, 2029, 2029, 1178, 1178, 1178, 1188, 1188, 1188, 1949,
2062      1949, 1949, 2033, 2033, 2033, 2028, 2034, 2030, 1345, 2035,
2063      1344, 1180, 2016, 1342, 1190, 1340, 1950, 2036, 2036, 2036,
2064      2694, 2694, 2694, 2039, 2039, 2039, 2041, 2041, 2041, 1202,
2065      1202, 1202, 1339, 1335, 2037, 1334, 1333, 2694, 1961, 1961,
2066      1961, 2040, 1956, 1956, 1956, 1332, 1330, 1204, 1958, 1958,
2067      1958, 1329, 2031, 1963, 1963, 1963, 2032, 2046, 2046, 2046,
2068      1957, 1965, 1965, 1965, 1328, 1327,  952, 1966, 1966, 1966,
2069      1326, 2038, 1967, 1967, 1967, 2047, 1325, 1971, 1971, 1971,
2070
2071      1974, 1974, 1974, 2053, 2053, 2053, 1324, 2054, 1318, 1317,
2072      2055, 2694, 2694, 2694, 2042, 1972, 1316, 1975, 1030, 1030,
2073      1030, 1055, 1055, 1055, 1991, 1991, 1991, 1315, 2694, 2043,
2074      2071, 2071, 2071, 2077, 2077, 2077, 1032, 1314, 1313, 1057,
2075      1311, 1310, 1992, 2001, 2001, 2001, 1307, 1306, 2072, 1297,
2076      2078, 2004, 2004, 2004, 2081, 2081, 2081, 1295, 2082, 1294,
2077      1293, 2083, 2085, 2085, 2085, 1292, 2056, 1291, 2005, 2008,
2078      2008, 2008, 2089, 2089, 2089, 1290, 1289, 2067, 1288, 2086,
2079      2014, 2014, 2014, 2100, 2100, 2100, 2070, 2009, 1287, 2090,
2080      1286, 2092, 2092, 2092, 1283, 2093, 1281, 2015, 2094, 1278,
2081
2082      2101, 2025, 2025, 2025, 2027, 2027, 2027, 2029, 2029, 2029,
2083      2104, 2104, 2104, 1275, 2105, 1272, 1263, 2106, 2107, 2107,
2084      2107, 1261, 2028, 1254, 2030, 1188, 1188, 1188, 2033, 2033,
2085      2033, 1252, 2034, 1251, 1250, 2035, 2108, 2036, 2036, 2036,
2086      2110, 2110, 2110, 1190, 2111, 1249, 1248, 2112, 2113, 2113,
2087      2113, 2039, 2039, 2039, 2037, 2041, 2041, 2041, 2115, 2115,
2088      2115, 2046, 2046, 2046, 1247, 2114, 2124, 2124, 2124, 2040,
2089      2053, 2053, 2053, 1246, 2054, 1245, 2116, 2055, 1244, 2047,
2090      2694, 2694, 2694, 2125, 1030, 1030, 1030, 1055, 1055, 1055,
2091      1241, 2109, 2071, 2071, 2071, 1240, 1239, 2694, 2148, 2148,
2092
2093      2148, 1238, 1032, 1237, 1236, 1057, 2077, 2077, 2077, 1235,
2094      2072, 1234, 2150, 2150, 2150, 2149, 2151, 1233, 1232, 2152,
2095      2081, 2081, 2081, 2078, 2082, 1231, 1230, 2083, 2085, 2085,
2096      2085, 2156, 2156, 2156, 1228, 2157, 1227, 1226, 2158, 1225,
2097      2132, 1224, 1223, 2143, 1222, 2086, 2160, 2160, 2160, 2089,
2098      2089, 2089, 2162, 2162, 2162,  952, 2163, 2146, 1216, 2164,
2099      2165, 2165, 2165, 2161, 1201, 1200, 2090, 2092, 2092, 2092,
2100      1195, 2093, 1194, 1193, 2094, 1192, 1174, 2166, 2100, 2100,
2101      2100, 2170, 2170, 2170, 1162, 2171, 1148, 1147, 2172, 2173,
2102      2173, 2173, 2175, 2175, 2175, 2101, 2104, 2104, 2104, 1146,
2103
2104      2105, 1142, 1134, 2106, 1129, 1128, 2174, 1122, 1119, 2176,
2105      2107, 2107, 2107, 1188, 1188, 1188, 2110, 2110, 2110, 1114,
2106      2111, 1113, 1112, 2112, 2113, 2113, 2113, 1111, 2108, 1110,
2107      1109, 1190, 2184, 2184, 2184, 1108, 2185, 1102, 1095, 2186,
2108      1094, 2114, 2115, 2115, 2115, 2190, 2190, 2190, 2124, 2124,
2109      2124, 2194, 2194, 2194, 1093, 2195, 1088, 1087, 2196, 1083,
2110      2116, 1082, 2694, 2694, 2694, 2125, 1030, 1030, 1030, 2215,
2111      2215, 2215, 1055, 1055, 1055, 2148, 2148, 2148, 2183, 2694,
2112      2218, 2218, 2218, 1081, 1032, 1076, 1075, 2221, 2221, 2221,
2113      1057, 2222, 2149, 1070, 2223, 1062, 1054, 2219, 2150, 2150,
2114
2115      2150, 1050, 2151, 1049, 1048, 2152, 2156, 2156, 2156, 1047,
2116      2157, 1046, 1045, 2158, 2160, 2160, 2160, 2214, 2228, 2228,
2117      2228, 2205, 2229, 1044, 1043, 2230, 2220, 1037, 2162, 2162,
2118      2162, 2161, 2163, 2217, 1029, 2164, 2165, 2165, 2165, 2231,
2119      2231, 2231, 1028, 2232, 1027, 1026, 2233, 2235, 2235, 2235,
2120      2170, 2170, 2170, 2166, 2171, 1021, 1020, 2172, 2173, 2173,
2121      2173, 2238, 2238, 2238, 2236, 2239, 1019, 1016, 2240, 2175,
2122      2175, 2175, 2241, 2241, 2241, 2174, 2242, 1010, 1005, 2243,
2123      1188, 1188, 1188, 2184, 2184, 2184, 2176, 2185, 1004, 1000,
2124      2186, 2253, 2253, 2253, 2190, 2190, 2190,  995, 1190, 2255,
2125
2126      2255, 2255,  994, 2194, 2194, 2194,  993, 2195, 2254, 1394,
2127      2196, 2266, 2266, 2266, 1030, 1030, 1030, 2215, 2215, 2215,
2128      2277, 2277, 2277, 1055, 1055, 1055,  992,  991, 2267,  990,
2129       988, 2250, 1032, 2218, 2218, 2218, 2279, 2279, 2279,  987,
2130      2280, 1057,  986, 2281, 2221, 2221, 2221,  985, 2222,  984,
2131      2219, 2223, 2228, 2228, 2228,  983, 2229,  982,  981, 2230,
2132      2231, 2231, 2231, 2276, 2232,  980,  979, 2233, 2235, 2235,
2133      2235, 2288, 2288, 2288, 2278, 2289,  978,  977, 2290, 2238,
2134      2238, 2238,  976, 2239,  975, 2236, 2240, 2241, 2241, 2241,
2135       974, 2242,  973,  972, 2243, 2306, 2306, 2306, 2309, 2309,
2136
2137      2309, 2253, 2253, 2253, 2311, 2311, 2311,  971, 2312,  964,
2138       963, 2313,  962, 2307,  961, 2310, 1394,  960, 2254, 1394,
2139       959,  958, 1394, 2255, 2255, 2255, 2314, 2314, 2314, 2315,
2140      2315, 2315, 2266, 2266, 2266, 2324, 2324, 2324,  955, 2325,
2141       953,  952, 2326, 1030, 1030, 1030, 2277, 2277, 2277, 2267,
2142      2334, 2334, 2334, 2279, 2279, 2279,  950, 2280,  948,  945,
2143      2281, 1032, 2339, 2339, 2339, 2342, 2342, 2342, 2335, 2288,
2144      2288, 2288,  941, 2289,  939,  938, 2290,  937,  935, 2340,
2145       934,  933, 2343, 2344, 2344, 2344, 2306, 2306, 2306, 2309,
2146      2309, 2309, 2359, 2359, 2359,  932, 2360,  931,  929, 2361,
2147
2148      2345, 2314, 2314, 2314, 2307,  928, 2310, 1394, 2333,  927,
2149      1394, 2311, 2311, 2311,  926, 2312,  922,  921, 2313, 2315,
2150      2315, 2315, 2378, 2378, 2378, 2334, 2334, 2334,  919, 1394,
2151      1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,  918,
2152      2379, 1392,  917, 2335,  916,  915, 1392, 1392, 1392, 1394,
2153      1392, 2324, 2324, 2324,  914, 2325,  912,  911, 2326, 2383,
2154      2383, 2383,  910, 2384,  909,  907, 2385,  906,  905, 2339,
2155      2339, 2339, 2342, 2342, 2342, 1392, 1392, 1392, 1392, 1392,
2156      1392, 1392, 1392, 1392, 1392, 1392, 2340,  902, 1392, 2343,
2157      2344, 2344, 2344, 1392, 1392, 1392, 1394, 1392, 2387, 2387,
2158
2159      2387,  901, 2388,  897,  896, 2389,  894, 2345, 2390, 2390,
2160      2390,  893, 2391,  892,  889, 2392,  888, 2359, 2359, 2359,
2161       887, 2360, 1392, 1392, 2361,  886,  884, 2378, 2378, 2378,
2162      2440, 2440, 2440,  883,  882, 1394, 1392, 1392, 1392, 1392,
2163      1392, 2411, 1392, 1392, 1392, 2379,  881, 1392, 1394, 1395,
2164       880,  879, 1392, 1392, 1392, 1394, 1392, 2383, 2383, 2383,
2165       878, 2384,  877,  874, 2385, 2387, 2387, 2387,  871, 2388,
2166       870,  867, 2389, 2390, 2390, 2390,  865, 2391,  864,  859,
2167      2392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
2168      1392, 2411,  858,  856, 1392, 2445, 2445, 2445,  855, 1392,
2169
2170      1392, 1392, 1394, 1392, 2447, 2447, 2447, 2449, 2449, 2449,
2171       854,  852, 2446, 2457, 2457, 2457, 2465, 2465, 2465,  849,
2172       847, 2448,  844,  842, 2450, 2440, 2440, 2440, 1392, 1392,
2173      2458, 2445, 2445, 2445,  952, 2471, 2471, 2471,  839, 2472,
2174       836,  835, 2473, 1394, 2447, 2447, 2447,  833, 2446, 2474,
2175      2474, 2474,  832, 2475,  831,  830, 2476, 2449, 2449, 2449,
2176       829, 2448, 2477, 2477, 2477,  827, 2478,  824,  822, 2479,
2177      2457, 2457, 2457,  821, 2450,  820, 1555, 2486, 2486, 2486,
2178       818, 2487,  816,  815, 2488,  814,  813, 2458, 2465, 2465,
2179      2465, 2471, 2471, 2471,  812, 2472,  811,  808, 2473,  807,
2180
2181      2474, 2474, 2474,  806, 2475,  803,  952, 2476, 2477, 2477,
2182      2477,  800, 2478,  799,  797, 2479, 2486, 2486, 2486,  796,
2183      2487,  793,  791, 2488,  788, 2495, 2590, 2590, 2590, 2590,
2184      2590, 2590,  787, 2599,  779,  778, 2600, 2692, 2692, 2692,
2185      2692, 2692, 2692,  777,  952,  774,  773,  952,  772,  771,
2186       769,  768,  767,  766,  765, 2693,  764,  759, 2693,  222,
2187       222,  222,  222,  222,  222,  222,  222,  222,  223,  223,
2188       223,  223,  223,  223,  223,  223,  223,  228,  228,  228,
2189       228,  228,  228,  228,  228,  228,  231,  231,  231,  231,
2190       231,  231,  231,  231,  231,  234,  234,  234,  234,  234,
2191
2192       234,  234,  234,  234,  237,  237,  237,  237,  237,  237,
2193       237,  237,  237,  244,  244,  244,  244,  244,  244,  244,
2194       244,  244,  252,  252,  252,  252,  252,  252,  252,  252,
2195       252,  256,  256,  256,  256,  256,  256,  256,  256,  256,
2196       268,  268,  268,  268,  268,  268,  268,  268,  268,  272,
2197       272,  272,  272,  272,  272,  272,  272,  272,  278,  278,
2198       278,  278,  278,  278,  278,  278,  278,  289,  289,  289,
2199       289,  289,  289,  289,  289,  289,  297,  297,  297,  297,
2200       297,  297,  297,  297,  297,  305,  305,  305,  305,  305,
2201       305,  305,  305,  305,  311,  311,  311,  311,  311,  311,
2202
2203       311,  311,  311,  317,  317,  317,  317,  317,  317,  317,
2204       317,  317,  322,  322,  322,  322,  322,  322,  322,  322,
2205       322,  339,  339,  339,  339,  339,  339,  339,  339,  339,
2206       345,  345,  345,  345,  345,  345,  345,  345,  345,  352,
2207       352,  352,  352,  352,  352,  352,  352,  352,  357,  357,
2208       357,  357,  357,  357,  357,  357,  357,  364,  364,  364,
2209       364,  364,  364,  364,  364,  364,  369,  369,  369,  369,
2210       369,  369,  369,  369,  369,  375,  375,  375,  375,  375,
2211       375,  375,  375,  375,  380,  380,  380,  380,  380,  380,
2212       380,  380,  380,  386,  386,  386,  386,  386,  386,  386,
2213
2214       386,  386,  394,  394,  394,  394,  394,  394,  394,  394,
2215       394,  413,  413,  413,  413,  413,  413,  413,  413,  413,
2216       429,  429,  429,  429,  429,  429,  429,  429,  429,  435,
2217       435,  435,  435,  435,  435,  435,  435,  435,  440,  440,
2218       440,  440,  440,  440,  440,  440,  440,  446,  446,  446,
2219       446,  446,  446,  446,  446,  446,  453,  453,  453,  453,
2220       453,  453,  453,  453,  453,  460,  460,  460,  460,  460,
2221       460,  460,  460,  460,  465,  465,  465,  465,  465,  465,
2222       465,  465,  465,  473,  473,  473,  473,  473,  473,  473,
2223       473,  473,  479,  479,  479,  479,  479,  479,  479,  479,
2224
2225       479,  486,  486,  486,  486,  486,  486,  486,  486,  486,
2226       491,  491,  491,  491,  491,  491,  491,  491,  491,  497,
2227       497,  497,  497,  497,  497,  497,  497,  497,  503,  503,
2228       503,  503,  503,  503,  503,  503,  503,  510,  510,  510,
2229       510,  510,  510,  510,  510,  510,  517,  517,  517,  517,
2230       517,  517,  517,  517,  517,  525,  525,  525,  525,  525,
2231       525,  525,  525,  525,  529,  529,  529,  529,  529,  529,
2232       529,  529,  529,  535,  535,  535,  535,  535,  535,  535,
2233       535,  535,  539,  539,  539,  539,  539,  539,  539,  539,
2234       539,  546,  546,  546,  546,  546,  546,  546,  546,  546,
2235
2236       551,  551,  551,  551,  551,  551,  551,  551,  551,  571,
2237       571,  571,  756,  758,  753,  571,  597,  597,  597,  752,
2238       750,  749,  597,  601,  601,  601,  748,  746,  744,  601,
2239       609,  609,  609,  742,  739,  738,  609,  621,  621,  621,
2240       737,  736,  734,  621,  627,  627,  627,  733,  732,  731,
2241       627,  641,  641,  641,  730,  728,  726,  641,  647,  647,
2242       647,  725,  723,  722,  647,  652,  652,  652,  719,  718,
2243       716,  652,  657,  657,  657,  580, 2694,  711,  657,  662,
2244       662,  662,  709,  708,  705,  662,  671,  671,  671,  704,
2245       703,  701,  671,  687,  687,  687,  699,  698,  696,  687,
2246
2247       697,  697,  697,  694,  693,  692,  697,  702,  702,  702,
2248       691,  690,  689,  702,  710,  710,  710,  688,  686,  677,
2249       710,  717,  717,  717,  676,  675,  672,  717,  724,  724,
2250       724,  670,  667,  666,  724,  729,  729,  729,  665,  664,
2251       663,  729,  735,  735,  735,  661,  659,  658,  735,  743,
2252       743,  743,  656,  654,  653,  743,  747,  747,  747,  651,
2253       650,  649,  747,  751,  751,  751,  648,  646,  645,  751,
2254       755,  755,  755,  755,  755,  755,  755,  644,  755,  571,
2255       571,  571,  643,  642,  640,  571,  770, 2694,  588,  629,
2256       770,  597,  597,  597,  628,  626,  624,  597,  798,  623,
2257
2258       622,  620,  798,  601,  601,  601,  591, 2694,  615,  601,
2259       805,  611,  610,  608,  805,  609,  609,  609,  607,  604,
2260       603,  609,  817,  602,  600,  598,  817,  621,  621,  621,
2261       596, 2694,  572,  621,  823,  570,  568,  562,  823,  627,
2262       627,  627,  561,  562,  561,  627,  828,  560,  559, 2694,
2263       828,  641,  641,  641, 2694, 2694, 2694,  641,  843, 2694,
2264      2694, 2694,  843,  647,  647,  647, 2694, 2694, 2694,  647,
2265       848, 2694, 2694, 2694,  848,  652,  652,  652, 2694, 2694,
2266      2694,  652,  853, 2694, 2694, 2694,  853,  657,  657,  657,
2267      2694, 2694, 2694,  657,  857, 2694, 2694, 2694,  857,  662,
2268
2269       662,  662, 2694, 2694, 2694,  662,  866, 2694, 2694, 2694,
2270       866,  671,  671,  671, 2694, 2694, 2694,  671,  885, 2694,
2271      2694, 2694,  885,  687,  687,  687, 2694, 2694, 2694,  687,
2272       895, 2694, 2694, 2694,  895,  697,  697,  697, 2694, 2694,
2273      2694,  697,  900, 2694, 2694, 2694,  900,  702,  702,  702,
2274      2694, 2694, 2694,  702,  908, 2694, 2694, 2694,  908,  710,
2275       710,  710, 2694, 2694, 2694,  710,  913, 2694, 2694, 2694,
2276       913,  717,  717,  717, 2694, 2694, 2694,  717,  920, 2694,
2277      2694, 2694,  920,  724,  724,  724, 2694, 2694, 2694,  724,
2278       925, 2694, 2694, 2694,  925,  729,  729,  729, 2694, 2694,
2279
2280      2694,  729,  930, 2694, 2694, 2694,  930,  735,  735,  735,
2281      2694, 2694, 2694,  735,  936, 2694, 2694, 2694,  936,  743,
2282       743,  743, 2694, 2694, 2694,  743,  940, 2694, 2694, 2694,
2283       940,  747,  747,  747, 2694, 2694, 2694,  747,  944, 2694,
2284      2694, 2694,  944,  751,  751,  751, 2694, 2694, 2694,  751,
2285       949, 2694, 2694, 2694,  949,  951,  951,  951,  951,  951,
2286       951,  951,  951,  951,  957, 2694, 2694, 2694, 2694,  957,
2287       571,  571,  571, 2694, 2694, 2694,  571,  966,  966,  966,
2288       966, 2694, 2694,  966,  966,  597,  597,  597, 2694, 2694,
2289      2694,  597,  997,  997,  997,  997, 2694, 2694,  997,  997,
2290
2291       601,  601,  601, 2694, 2694, 2694,  601, 1007, 1007, 1007,
2292      1007, 2694, 2694, 1007, 1007,  609,  609,  609, 2694, 2694,
2293      2694,  609, 1023, 1023, 1023, 1023, 2694, 2694, 1023, 1023,
2294       621,  621,  621, 2694, 2694, 2694,  621, 1031, 1031, 1031,
2295      1031, 2694, 2694, 1031, 1031,  627,  627,  627, 2694, 2694,
2296      2694,  627, 1039, 1039, 1039, 1039, 2694, 2694, 1039, 1039,
2297       641,  641,  641, 2694, 2694, 2694,  641, 1056, 1056, 1056,
2298      1056, 2694, 2694, 1056, 1056,  647,  647,  647, 2694, 2694,
2299      2694,  647, 1064, 1064, 1064, 1064, 2694, 2694, 1064, 1064,
2300       652,  652,  652, 2694, 2694, 2694,  652, 1072, 1072, 1072,
2301
2302      1072, 2694, 2694, 1072, 1072,  657,  657,  657, 2694, 2694,
2303      2694,  657, 1078, 1078, 1078, 1078, 2694, 2694, 1078, 1078,
2304       662,  662,  662, 2694, 2694, 2694,  662, 1090, 1090, 1090,
2305      1090, 2694, 2694, 1090, 1090,  671,  671,  671, 2694, 2694,
2306      2694,  671, 1116, 1116, 1116, 1116, 2694, 2694, 1116, 1116,
2307       687,  687,  687, 2694, 2694, 2694,  687, 1131, 1131, 1131,
2308      1131, 2694, 2694, 1131, 1131,  697,  697,  697, 2694, 2694,
2309      2694,  697, 1139, 1139, 1139, 1139, 2694, 2694, 1139, 1139,
2310       702,  702,  702, 2694, 2694, 2694,  702, 1150, 1150, 1150,
2311      1150, 2694, 2694, 1150, 1150,  710,  710,  710,  710, 2694,
2312
2313       710, 2694,  710, 1159, 1159, 1159, 1159, 2694, 2694, 1159,
2314      1159,  717,  717,  717,  717, 2694,  717, 2694,  717, 1171,
2315      1171, 1171, 1171, 2694, 2694, 1171, 1171,  724,  724,  724,
2316      2694, 2694, 2694,  724, 1179, 1179, 1179, 1179, 2694, 2694,
2317      1179, 1179,  729,  729,  729,  729, 2694,  729, 2694,  729,
2318      1189, 1189, 1189, 1189, 2694, 2694, 1189, 1189,  735,  735,
2319       735, 2694, 2694, 2694,  735, 1197, 1197, 1197, 1197, 2694,
2320      2694, 1197, 1197,  743,  743,  743, 2694, 2694, 2694,  743,
2321      1203, 1203, 1203, 1203, 2694, 2694, 1203, 1203, 1210, 1210,
2322      1210, 1210, 2694, 2694, 1210, 1210,  751,  751,  751, 2694,
2323
2324      2694, 2694,  751, 1218, 1218, 1218, 1218, 2694, 2694, 1218,
2325      1218,  951,  951,  951,  951,  951,  951,  951,  951,  951,
2326       957, 2694,  957, 2694, 2694,  957,  571,  571,  571, 2694,
2327      2694, 2694,  571,  966,  966,  966,  966, 2694, 2694,  966,
2328       966,  597,  597,  597,  597, 2694,  597, 2694,  597,  997,
2329       997,  997,  997, 2694, 2694,  997,  997,  601,  601,  601,
2330       601, 2694,  601, 2694,  601, 1007, 1007, 1007, 1007, 2694,
2331      2694, 1007, 1007,  609,  609,  609, 2694, 2694, 2694,  609,
2332      1023, 1023, 1023, 1023, 2694, 2694, 1023, 1023,  621,  621,
2333       621, 2694, 2694, 2694,  621, 1031, 1031, 1031, 1031, 2694,
2334
2335      2694, 1031, 1031,  627,  627,  627, 2694, 2694, 2694,  627,
2336      1039, 1039, 1039, 1039, 2694, 2694, 1039, 1039,  641,  641,
2337       641, 2694, 2694, 2694,  641, 1056, 1056, 1056, 1056, 2694,
2338      2694, 1056, 1056,  647,  647,  647, 2694, 2694, 2694,  647,
2339      1064, 1064, 1064, 1064, 2694, 2694, 1064, 1064,  652,  652,
2340       652,  652, 2694,  652, 2694,  652, 1072, 1072, 1072, 1072,
2341      2694, 2694, 1072, 1072,  657,  657,  657,  657, 2694,  657,
2342      2694,  657, 1078, 1078, 1078, 1078, 2694, 2694, 1078, 1078,
2343       662,  662,  662, 2694, 2694, 2694,  662, 1090, 1090, 1090,
2344      1090, 2694, 2694, 1090, 1090,  671,  671,  671, 2694, 2694,
2345
2346      2694,  671, 1116, 1116, 1116, 1116, 2694, 2694, 1116, 1116,
2347       687,  687,  687, 2694, 2694, 2694,  687, 1131, 1131, 1131,
2348      1131, 2694, 2694, 1131, 1131,  697,  697,  697, 2694, 2694,
2349      2694,  697, 1139, 1139, 1139, 1139, 2694, 2694, 1139, 1139,
2350       702,  702,  702, 2694, 2694, 2694,  702, 1150, 1150, 1150,
2351      1150, 2694, 2694, 1150, 1150,  710,  710,  710, 2694, 2694,
2352      2694,  710, 1159, 1159, 1159, 1159, 2694, 2694, 1159, 1159,
2353       717,  717,  717, 2694, 2694, 2694,  717, 1171, 1171, 1171,
2354      1171, 2694, 2694, 1171, 1171,  724,  724,  724, 2694, 2694,
2355      2694,  724, 1179, 1179, 1179, 1179, 2694, 2694, 1179, 1179,
2356
2357       729,  729,  729, 2694, 2694, 2694,  729, 1189, 1189, 1189,
2358      1189, 2694, 2694, 1189, 1189,  735,  735,  735, 2694, 2694,
2359      2694,  735, 1197, 1197, 1197, 1197, 2694, 2694, 1197, 1197,
2360       743,  743,  743, 2694, 2694, 2694,  743, 1203, 1203, 1203,
2361      1203, 2694, 2694, 1203, 1203, 1210, 1210, 1210, 1210, 2694,
2362      2694, 1210, 1210,  751,  751,  751, 2694, 2694, 2694,  751,
2363      1218, 1218, 1218, 1218, 2694, 2694, 1218, 1218,  951,  951,
2364       951,  951,  951,  951,  951,  951,  951, 1392, 1392, 1392,
2365      1392, 1392, 1392, 1392, 1392, 1392,  571,  571,  571, 2694,
2366      2694, 2694,  571,  966,  966,  966,  966, 2694, 2694,  966,
2367
2368       966,  997,  997,  997,  997, 2694, 2694,  997,  997,  601,
2369       601,  601, 2694, 2694, 2694,  601, 1007, 1007, 1007, 1007,
2370      2694, 2694, 1007, 1007,  609,  609,  609, 2694, 2694, 2694,
2371       609, 1023, 1023, 1023, 1023, 2694, 2694, 1023, 1023,  621,
2372       621,  621, 2694, 2694, 2694,  621, 1031, 1031, 1031, 1031,
2373      2694, 2694, 1031, 1031,  627,  627,  627, 2694, 2694, 2694,
2374       627,  641,  641,  641, 2694, 2694, 2694,  641, 1056, 1056,
2375      1056, 1056, 2694, 2694, 1056, 1056,  647,  647,  647, 2694,
2376      2694, 2694,  647, 1064, 1064, 1064, 1064, 2694, 2694, 1064,
2377      1064, 1072, 1072, 1072, 1072, 2694, 2694, 1072, 1072,  657,
2378
2379       657,  657, 2694, 2694, 2694,  657, 1078, 1078, 1078, 1078,
2380      2694, 2694, 1078, 1078,  662,  662,  662, 2694, 2694, 2694,
2381       662, 1090, 1090, 1090, 1090, 2694, 2694, 1090, 1090,  671,
2382       671,  671, 2694, 2694, 2694,  671, 1116, 1116, 1116, 1116,
2383      2694, 2694, 1116, 1116,  687,  687,  687, 2694, 2694, 2694,
2384       687, 1131, 1131, 1131, 1131, 2694, 2694, 1131, 1131,  697,
2385       697,  697, 2694, 2694, 2694,  697, 1139, 1139, 1139, 1139,
2386      2694, 2694, 1139, 1139,  702,  702,  702, 2694, 2694, 2694,
2387       702, 1150, 1150, 1150, 1150, 2694, 2694, 1150, 1150,  710,
2388       710,  710, 2694, 2694, 2694,  710, 1159, 1159, 1159, 1159,
2389
2390      2694, 2694, 1159, 1159,  717,  717,  717, 2694, 2694, 2694,
2391       717, 1171, 1171, 1171, 1171, 2694, 2694, 1171, 1171,  724,
2392       724,  724, 2694, 2694, 2694,  724, 1179, 1179, 1179, 1179,
2393      2694, 2694, 1179, 1179,  729,  729,  729, 2694, 2694, 2694,
2394       729, 1189, 1189, 1189, 1189, 2694, 2694, 1189, 1189,  735,
2395       735,  735, 2694, 2694, 2694,  735, 1197, 1197, 1197, 1197,
2396      2694, 2694, 1197, 1197,  743,  743,  743,  743, 2694,  743,
2397      2694,  743, 1203, 1203, 1203, 1203, 2694, 2694, 1203, 1203,
2398      1210, 1210, 1210, 1210, 2694, 2694, 1210, 1210,  751,  751,
2399       751,  751, 2694,  751, 2694,  751, 1218, 1218, 1218, 1218,
2400
2401      2694, 2694, 1218, 1218,  951,  951,  951,  951,  951,  951,
2402       951,  951,  951, 1392, 1392, 1392, 1392, 1392, 1392, 1392,
2403      1392, 1392,  571,  571,  571, 2694, 2694, 2694,  571,  966,
2404       966,  966,  966, 2694, 2694,  966,  966,  997,  997,  997,
2405       997, 2694, 2694,  997,  997,  601,  601,  601, 2694, 2694,
2406      2694,  601, 1007, 1007, 1007, 1007, 2694, 2694, 1007, 1007,
2407       609,  609,  609, 2694, 2694, 2694,  609, 1023, 1023, 1023,
2408      1023, 2694, 2694, 1023, 1023,  621,  621,  621, 2694, 2694,
2409      2694,  621, 1031, 1031, 1031, 1031, 2694, 2694, 1031, 1031,
2410       627,  627,  627, 2694, 2694, 2694,  627,  641,  641,  641,
2411
2412      2694, 2694, 2694,  641, 1056, 1056, 1056, 1056, 2694, 2694,
2413      1056, 1056,  647,  647,  647,  647, 2694,  647, 2694,  647,
2414      1064, 1064, 1064, 1064, 2694, 2694, 1064, 1064, 1072, 1072,
2415      1072, 1072, 2694, 2694, 1072, 1072,  657,  657,  657,  657,
2416      2694,  657, 2694,  657, 1078, 1078, 1078, 1078, 2694, 2694,
2417      1078, 1078,  662,  662,  662, 2694, 2694, 2694,  662, 1090,
2418      1090, 1090, 1090, 2694, 2694, 1090, 1090,  671,  671,  671,
2419      2694, 2694, 2694,  671, 1116, 1116, 1116, 1116, 2694, 2694,
2420      1116, 1116,  687,  687,  687, 2694, 2694, 2694,  687, 1131,
2421      1131, 1131, 1131, 2694, 2694, 1131, 1131,  697,  697,  697,
2422
2423      2694, 2694, 2694,  697, 1139, 1139, 1139, 1139, 2694, 2694,
2424      1139, 1139,  702,  702,  702, 2694, 2694, 2694,  702, 1150,
2425      1150, 1150, 1150, 2694, 2694, 1150, 1150,  710,  710,  710,
2426      2694, 2694, 2694,  710, 1159, 1159, 1159, 1159, 2694, 2694,
2427      1159, 1159,  717,  717,  717,  717, 2694,  717, 2694,  717,
2428      1171, 1171, 1171, 1171, 2694, 2694, 1171, 1171,  724,  724,
2429       724, 2694, 2694, 2694,  724, 1179, 1179, 1179, 1179, 2694,
2430      2694, 1179, 1179,  729,  729,  729,  729, 2694,  729, 2694,
2431       729, 1189, 1189, 1189, 1189, 2694, 2694, 1189, 1189,  735,
2432       735,  735, 2694, 2694, 2694,  735, 1197, 1197, 1197, 1197,
2433
2434      2694, 2694, 1197, 1197, 1203, 1203, 1203, 1203, 2694, 2694,
2435      1203, 1203, 1210, 1210, 1210, 1210, 2694, 2694, 1210, 1210,
2436      1218, 1218, 1218, 1218, 2694, 2694, 1218, 1218,  951,  951,
2437       951,  951,  951,  951,  951,  951,  951, 1392, 1392, 1392,
2438      1392, 1392, 1392, 1392, 1392, 1392,  571,  571,  571,  571,
2439      2694,  571, 2694,  571,  966,  966,  966,  966, 2694, 2694,
2440       966,  966,  997,  997,  997,  997, 2694, 2694,  997,  997,
2441       601,  601,  601, 2694, 2694, 2694,  601, 1007, 1007, 1007,
2442      1007, 2694, 2694, 1007, 1007,  609,  609,  609, 2694, 2694,
2443      2694,  609, 1023, 1023, 1023, 1023, 2694, 2694, 1023, 1023,
2444
2445       621,  621,  621,  621, 2694,  621, 2694,  621, 1031, 1031,
2446      1031, 1031, 2694, 2694, 1031, 1031,  627,  627,  627,  627,
2447      2694,  627, 2694,  627,  641,  641,  641,  641, 2694,  641,
2448      2694,  641, 1056, 1056, 1056, 1056, 2694, 2694, 1056, 1056,
2449      1064, 1064, 1064, 1064, 2694, 2694, 1064, 1064, 1072, 1072,
2450      1072, 1072, 2694, 2694, 1072, 1072, 1078, 1078, 1078, 1078,
2451      2694, 2694, 1078, 1078,  662,  662,  662, 2694, 2694, 2694,
2452       662,  671,  671,  671, 2694, 2694, 2694,  671, 1116, 1116,
2453      1116, 1116, 2694, 2694, 1116, 1116,  687,  687,  687, 2694,
2454      2694, 2694,  687,  697,  697,  697, 2694, 2694, 2694,  697,
2455
2456      1139, 1139, 1139, 1139, 2694, 2694, 1139, 1139,  702,  702,
2457       702, 2694, 2694, 2694,  702,  710,  710,  710, 2694, 2694,
2458      2694,  710, 1159, 1159, 1159, 1159, 2694, 2694, 1159, 1159,
2459       717,  717,  717, 2694, 2694, 2694,  717, 1171, 1171, 1171,
2460      1171, 2694, 2694, 1171, 1171,  724,  724,  724, 2694, 2694,
2461      2694,  724, 1179, 1179, 1179, 1179, 2694, 2694, 1179, 1179,
2462      1189, 1189, 1189, 1189, 2694, 2694, 1189, 1189,  735,  735,
2463       735, 2694, 2694, 2694,  735, 1197, 1197, 1197, 1197, 2694,
2464      2694, 1197, 1197, 1203, 1203, 1203, 1203, 2694, 2694, 1203,
2465      1203, 1210, 1210, 1210, 1210, 2694, 2694, 1210, 1210,  951,
2466
2467       951,  951,  951,  951,  951,  951,  951,  951, 1392, 1392,
2468      1392, 1392, 1392, 1392, 1392, 1392, 1392,  966,  966,  966,
2469       966, 2694, 2694,  966,  966,  997,  997,  997,  997, 2694,
2470      2694,  997,  997,  601,  601,  601, 2694, 2694, 2694,  601,
2471       609,  609,  609, 2694, 2694, 2694,  609, 1023, 1023, 1023,
2472      1023, 2694, 2694, 1023, 1023, 1031, 1031, 1031, 1031, 2694,
2473      2694, 1031, 1031, 1056, 1056, 1056, 1056, 2694, 2694, 1056,
2474      1056, 1064, 1064, 1064, 1064, 2694, 2694, 1064, 1064, 1078,
2475      1078, 1078, 1078, 2694, 2694, 1078, 1078,  662,  662,  662,
2476      2694, 2694, 2694,  662,  671,  671,  671, 2694, 2694, 2694,
2477
2478       671, 1116, 1116, 1116, 1116, 2694, 2694, 1116, 1116,  687,
2479       687,  687, 2694, 2694, 2694,  687,  697,  697,  697, 2694,
2480      2694, 2694,  697, 1139, 1139, 1139, 1139, 2694, 2694, 1139,
2481      1139,  702,  702,  702, 2694, 2694, 2694,  702,  710,  710,
2482       710, 2694, 2694, 2694,  710,  717,  717,  717, 2694, 2694,
2483      2694,  717, 1171, 1171, 1171, 1171, 2694, 2694, 1171, 1171,
2484       724,  724,  724, 2694, 2694, 2694,  724, 1179, 1179, 1179,
2485      1179, 2694, 2694, 1179, 1179, 1189, 1189, 1189, 1189, 2694,
2486      2694, 1189, 1189,  735,  735,  735,  735, 2694,  735, 2694,
2487       735, 1197, 1197, 1197, 1197, 2694, 2694, 1197, 1197, 1203,
2488
2489      1203, 1203, 1203, 2694, 2694, 1203, 1203, 1210, 1210, 1210,
2490      1210, 2694, 2694, 1210, 1210,  951,  951,  951,  951,  951,
2491       951,  951,  951,  951, 1392, 1392, 1392, 1392, 1392, 1392,
2492      1392, 1392, 1392,  966,  966,  966,  966, 2694, 2694,  966,
2493       966,  997,  997,  997,  997, 2694, 2694,  997,  997,  601,
2494       601,  601, 2694, 2694, 2694,  601,  609,  609,  609,  609,
2495      2694,  609, 2694,  609, 2362, 2362, 2362, 2362, 2362, 2362,
2496      2362, 2362, 2362, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
2497      2363, 2363, 2406, 2406, 2406, 2406, 2406, 2406, 2406, 2406,
2498      2406, 2409, 2409, 2409, 2409, 2409, 2409, 2409, 2409, 2409,
2499
2500      2437, 2437, 2437, 2437, 2437, 2437, 2437, 2437, 2437, 2439,
2501      2439, 2439, 2439, 2439, 2439, 2439, 2439, 2439,  221, 2694,
2502      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
2503      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
2504      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
2505      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
2506      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
2507      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
2508      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
2509      2694
2510
2511     } ;
2512
2513 static yyconst flex_int16_t yy_chk[9692] =
2514     {   0,
2515         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2516         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2517         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2518         8,    8,    8,  226,   11,   13,   13,   12,   14,   14,
2519        13,   13,  299,   14,   14,  227,    8,   17,   17,  226,
2520        13,   15,   15,   14,   15,  230,   15,   16,   16,  264,
2521        16,  227,   16,   18,   18,  264,   15,   19,   19,   19,
2522       333,  230,   16,   20,   20,   20,   23,   23,   23,   24,
2523        24,   24,  582,   19,   25,   25,   25,  299,  582,   20,
2524       327,   17,   23,  299,  582,   24,  224,  224,  224,  327,
2525
2526        25,  225,  225,  225,  229,  229,  229,   18,   21,   21,
2527        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2528        21,   21,   21,  333,   21,   21,   21,   21,   21,   26,
2529        26,   26,   27,   27,   27,   28,   28,   28,  259,   29,
2530        29,   29,   30,   30,   30,   26,  330, 1445,   27,  248,
2531       253,   28,  259,   21,   21,   29,  330,  269,   30,   31,
2532        31,   31,  250,  250,  250,  248,  253,  257,  257,  257,
2533       266,  266,  266,  269, 1448,   31,   21,   22,   22,   22,
2534        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2535        22,   22,  348,   22,   22,   22,   22,   22,   32,   32,
2536
2537        32,   33,   33,   33,   34,   34,   34,  248,   35,   35,
2538        35,   36,   36,   36,   32,  260,  335,   33,  335, 1455,
2539        34,  360,   22,   22,   35,  260,  261,   36,   37,   37,
2540        37,   38,   38,   38,   39,   39,   39,   40,   40,   40,
2541        41,   41,   41,  348,   37,   22,  410,   38,  279,  410,
2542        39,  329,  290,   40,  260,  261,   41,   42,   42,   42,
2543       260,  273,  273,  273,  279,  262,  260,  261,  290,  261,
2544       260,  261,  360,   42,   43,   43,   43,   43,   43,   43,
2545        43,   43,   43,   43,   43,   43,   43,   43,   43,  329,
2546        43,   43,   43,   43,   43,   45,   45,   45,   46,   46,
2547
2548        46,   53,   53,   53,  262,  294, 1456,   49,   49,  294,
2549       306,   45,   49,  294,   46, 1457,  262,   53,  262,   43,
2550        43,  396,   49,  276,  276,  276,  306,   43,   44,   44,
2551        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2552        44,   44,   44,  326,   44,   44,   44,   44,   44, 1461,
2553       326,   49,  406,   50,   50,   54,   54,   54,   50,   55,
2554        55,   55,   56,   56,   56,  287,  287,  287,   50,  396,
2555       464,   54,  406,   44,   44,   55,  564,  464,   56,  564,
2556      1464,   44,   47,   47,   47,   47,   47,   47,   47,   47,
2557        47,   47,   47,   47,   47,   47,   47,   50,   47,   47,
2558
2559        47,   47,   47,   57,   57,   57,   58,   58,   58,   59,
2560        59,   59,  296,   60,   60,   60,   63,   63,   63,   57,
2561       318,  340,   58,  274,  284,   59,  296,   47,   47,   60,
2562       274,  284,   63, 1479, 1480,   47,  318,  340,   47,  274,
2563       284,  298,  298,  298,   47,   48,   48,   48,   48,   48,
2564        48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
2565       519,   48,   48,   48,   48,   48,   64,   64,   64,   67,
2566        67,   67,   68,   68,   68,  397,   69,   69,   69,   70,
2567        70,   70,   64,  353,  365,   67,  313,  371,   68,  376,
2568        48,   48,   69,  313,  371,   70, 1488,  519,   48,  353,
2569
2570       365,   48,  313,  371,  240,  376, 1491,   48,   51,   51,
2571        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
2572        51,   51,   51,  397,   51,   51,   51,   51,   51,   71,
2573        71,   71,   72,   72,   72,   73,   73,   73,  398,   74,
2574        74,   74,   75,   75,   75,   71,  240,  387,   72,  403,
2575       382,   73,  240,   51,   51,   74,  240,  382,   75, 1492,
2576       452,  240,   51,  387,   51,  403,  382,   51,  303,  303,
2577       303,  452,   51,   51,   52,   52,   52,   52,   52,   52,
2578        52,   52,   52,   52,   52,   52,   52,   52,   52,  398,
2579        52,   52,   52,   52,   52,   76,   76,   76,   77,   77,
2580
2581        77,   78,   78,   78,  456,   79,   79,   79,   80,   80,
2582        80,   76, 1391,  888,   77,  415,  411,   78,  888,   52,
2583        52,   79,  415, 1496,   80,  312,  312,  312,   52,  411,
2584        52,  415,  482,   52,  315,  315,  315, 1391,   52,   52,
2585        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
2586        61,   61,   61,   61,   61,  456,   61,   61,   61,   61,
2587        61,   81,   81,   81,   82,   82,   82,   83,   83,   83,
2588       412,   84,   84,   84,   85,   85,   85,   81, 1503,  482,
2589        82,  412,  412,   83,  478,   61,   61,   84,  420,  431,
2590        85,  478,   61,  323,  323,  323,  431,   61,  337,  337,
2591
2592       337,  346,  346,  346,  420,  431,   61,   62,   62,   62,
2593        62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
2594        62,   62,  555,   62,   62,   62,   62,   62,   86,   86,
2595        86,   87,   87,   87,   88,   88,   88,  555,   89,   89,
2596        89,   90,   90,   90,   86,  577,  436,   87,  577, 1504,
2597        88, 1505,   62,   62,   89,  447,  442,   90, 1506,   62,
2598      1509,  331,  436,  442,   62,  350,  350,  350,  358,  358,
2599       358,  447,  442,   62,   65,   65,   65,   65,   65,   65,
2600        65,   65,   65,   65,   65,   65,   65,   65,   65,  331,
2601        65,   65,   65,   65,   65,   91,   91,   91,   92,   92,
2602
2603        92,   93,   93,   93,  331,   94,   94,   94,   95,   95,
2604        95,   91,  461,  474,   92,  586, 1513,   93,  586,   65,
2605        65,   94,  506, 1516,   95,  362,  362,  362,  461,  474,
2606        65,  370,  370,  370,  373,  373,  373,  521,   65,   66,
2607        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
2608        66,   66,   66,   66, 1518,   66,   66,   66,   66,   66,
2609        96,   96,   96,   99,   99,   99,  100,  100,  100,  506,
2610       101,  101,  101,  102,  102,  102,   96,  487,  498,   99,
2611      1520, 1521,  100,  542,   66,   66,  101, 1522,  521,  102,
2612       381,  381,  381,  487,  498,   66,  384,  384,  384,  395,
2613
2614       395,  395, 1525,   66,   97,   97,   97,   97,   97,   97,
2615        97,   97,   97,   97,   97,   97,   97,   97,   97, 1527,
2616        97,   97,   97,   97,   97,  103,  103,  103,  104,  104,
2617       104,  105,  105,  105,  542,  106,  106,  106,  400,  400,
2618       400,  103,  511,  526,  104, 1529,  493,  105,  581,   97,
2619        97,  106,  581,  493,   97,  414,  414,  414,  511,  526,
2620        97,  467,  493,   97,   98,   98,   98,   98,   98,   98,
2621        98,   98,   98,   98,   98,   98,   98,   98,   98, 1534,
2622        98,   98,   98,   98,   98,  109,  109,  109,  110,  110,
2623       110,  111,  111,  111, 1539,  112,  112,  112,  417,  417,
2624
2625       417,  109,  520,  536,  110,  547,  531,  111,  467,   98,
2626        98,  112,  467,  531,   98,  430,  430,  430,  605,  536,
2627        98,  547,  531,   98,  107,  107,  107,  107,  107,  107,
2628       107,  107,  107,  107,  107,  107,  107,  107,  107,  520,
2629       107,  107,  107,  107,  107,  113,  113,  113,  114,  114,
2630       114,  115,  115,  115,  605,  116,  116,  116,  119,  119,
2631       119,  113, 1543, 1544,  114,  583,  587,  115,  669,  107,
2632       107,  116,  669, 1546,  119,  433,  433,  433,  583,  587,
2633       107,  441,  441,  441,  444,  444,  444,  454,  454,  454,
2634       107,  108,  108,  108,  108,  108,  108,  108,  108,  108,
2635
2636       108,  108,  108,  108,  108,  108, 1558,  108,  108,  108,
2637       108,  108,  120,  120,  120,  123,  123,  123,  124,  124,
2638       124, 1561,  127,  127,  127,  128,  128,  128,  120,  589,
2639       757,  123,  589,  591,  124, 1562,  108,  108,  127,  591,
2640      1556,  128,  458,  458,  458,  591,  757,  108,  466,  466,
2641       466,  471,  471,  471,  480,  480,  480,  108,  117,  117,
2642       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
2643       117,  117,  117, 1556,  117,  117,  117,  117,  117,  129,
2644       129,  129,  130,  130,  130,  131,  131,  131, 1563,  132,
2645       132,  132,  133,  133,  133,  129,  593, 1564,  130,  593,
2646
2647       594,  131, 1566,  117,  117,  132,  594, 1567,  133,  484,
2648       484,  484,  594, 1569,  117,  492,  492,  492,  117,  118,
2649       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
2650       118,  118,  118,  118, 1570,  118,  118,  118,  118,  118,
2651       134,  134,  134,  137,  137,  137,  138,  138,  138, 1571,
2652       141,  141,  141,  142,  142,  142,  134,  664, 1575,  137,
2653       664,  595,  138, 1577,  118,  118,  141,  595, 1580,  142,
2654       495,  495,  495,  595, 1581,  118,  504,  504,  504,  118,
2655       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
2656       121,  121,  121,  121,  121, 1582,  121,  121,  121,  121,
2657
2658       121,  145,  145,  145,  146,  146,  146,  149,  149,  149,
2659      1584,  150,  150,  150,  151,  151,  151,  145,  954, 1586,
2660       146, 1555,  954,  149, 1221,  121,  121,  150, 1554, 1587,
2661       151,  508,  508,  508,  518,  518,  518,  523,  523,  523,
2662       121,  530,  530,  530, 1221, 1554,  121,  122,  122,  122,
2663       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
2664       122,  122, 1555,  122,  122,  122,  122,  122,  152,  152,
2665       152,  153,  153,  153,  154,  154,  154,  982,  155,  155,
2666       155,  156,  156,  156,  152, 1589, 1591,  153, 1594,  982,
2667       154, 1595,  122,  122,  155, 1597, 1598,  156,  533,  533,
2668
2669       533,  540,  540,  540,  544,  544,  544,  122,  552,  552,
2670       552, 1599, 1601,  122,  125,  125,  125,  125,  125,  125,
2671       125,  125,  125,  125,  125,  125,  125,  125,  125, 1607,
2672       125,  125,  125,  125,  125,  159,  159,  159,  160,  160,
2673       160,  161,  161,  161, 1596,  162,  162,  162, 1608,  553,
2674      1600,  159, 1596, 1611,  160, 1624,  553,  161, 1600,  125,
2675       125,  162,  125,  619,  125,  553,  554,  554,  554,  619,
2676       125,  563,  563,  563, 1625,  619,  125, 1630, 1631,  125,
2677       126,  126,  126,  126,  126,  126,  126,  126,  126,  126,
2678       126,  126,  126,  126,  126, 1632,  126,  126,  126,  126,
2679
2680       126,  163,  163,  163,  164,  164,  164,  165,  165,  165,
2681      1636,  166,  166,  166,  603,  603,  603,  163, 1637,  635,
2682       164,  638,  639,  165,  871,  126,  126,  166,  126,  563,
2683       126,  603,  635,  871,  638,  639,  126,  760,  760,  760,
2684       871,  760,  126, 1643, 1650,  126,  135,  135,  135,  135,
2685       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
2686       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
2687       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
2688       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
2689       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
2690
2691       135,  135,  135,  135,  135,  135,  135,  135,  135,  135,
2692       135,  135,  135,  135,  135,  135,  135,  135,  139,  139,
2693       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
2694       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
2695       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
2696       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
2697       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
2698       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
2699       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
2700       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
2701
2702       143,  143,  143,  143,  143, 1651,  143,  143,  143,  143,
2703       143,  169,  169,  169,  170,  170,  170,  171,  171,  171,
2704       993,  172,  172,  172,  611,  611,  611,  169, 1652, 1656,
2705       170, 1662,  993,  171, 1666,  143,  143,  172, 1669, 1671,
2706       143,  611,  969,  969,  969, 1673,  143,  144,  144,  144,
2707       144,  144,  144,  144,  144,  144,  144,  144,  144,  144,
2708       144,  144, 1675,  144,  144,  144,  144,  144,  173,  173,
2709       173,  174,  174,  174,  175,  175,  175, 1026,  176,  176,
2710       176,  628,  628,  628,  173, 1450, 1676,  174, 1677, 1026,
2711       175, 1450,  144,  144,  176, 1450, 1680,  144,  628, 1450,
2712
2713       772,  772,  772,  144,  147,  147,  147,  147,  147,  147,
2714       147,  147,  147,  147,  147,  147,  147,  147,  147, 1682,
2715       147,  147,  147,  147,  147,  179,  179,  179,  180,  180,
2716       180,  183,  183,  183, 1687,  184,  184,  184,  185,  185,
2717       185,  179, 1689, 1696,  180, 1697, 1698,  183, 1700,  147,
2718       147,  184, 1711,  147,  185,  791,  791,  791, 1711, 1714,
2719       147, 1719,  147,  772, 1713, 1720,  830,  830,  830,  147,
2720       148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
2721       148,  148,  148,  148,  148, 1724,  148,  148,  148,  148,
2722       148,  186,  186,  186,  187,  187,  187,  188,  188,  188,
2723
2724      1725,  189,  189,  189,  190,  190,  190,  186, 1726, 1713,
2725       187, 1731, 1737,  188, 1739,  148,  148,  189,  791,  148,
2726       190, 1740, 1743,  802,  802,  802,  148,  802,  148,  830,
2727       802,  836,  836,  836, 1746,  148,  157,  157,  157,  157,
2728       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
2729       157, 1750,  157,  157,  157,  157,  157,  193,  193,  193,
2730       194,  194,  194,  195,  195,  195, 1751,  196,  196,  196,
2731       197,  197,  197,  193, 1752, 1753,  194, 1754, 1755,  195,
2732      1756,  157,  157,  196, 1757, 1758,  197,  157,  810,  810,
2733       810, 1759,  810, 1764,  836,  810,  989,  989,  989, 1780,
2734
2735      1781,  157,  158,  158,  158,  158,  158,  158,  158,  158,
2736       158,  158,  158,  158,  158,  158,  158, 1784,  158,  158,
2737       158,  158,  158,  198,  198,  198,  199,  199,  199,  200,
2738       200,  200, 1782,  203,  203,  203,  204,  204,  204,  198,
2739      1782, 1785,  199, 1783, 1786,  200, 1790,  158,  158,  203,
2740      1796, 1783,  204,  158,  826,  826,  826, 1797,  826, 1798,
2741      1803,  826, 1235, 1235, 1235, 1807, 1808,  158,  167,  167,
2742       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
2743       167,  167,  167, 1809,  167,  167,  167,  167,  167,  207,
2744       207,  207,  208,  208,  208,  209,  209,  209, 1712,  210,
2745
2746       210,  210,  211,  211,  211,  207, 1451, 1811,  208, 1814,
2747      1815,  209, 1451,  167,  167,  210, 1451, 1818,  211,  167,
2748      1451, 1819,  167,  841,  841,  841, 1822,  841, 1829, 1712,
2749       841, 1831, 1844,  167,  168,  168,  168,  168,  168,  168,
2750       168,  168,  168,  168,  168,  168,  168,  168,  168, 1849,
2751       168,  168,  168,  168,  168,  212,  212,  212,  213,  213,
2752       213,  214,  214,  214, 1816,  217,  217,  217,  218,  218,
2753       218,  212, 1816, 1848,  213, 1857, 1865,  214, 1817,  168,
2754       168,  217, 1866,  324,  218,  168, 1817,  325,  168, 1237,
2755      1237, 1237, 1870,  324, 1872, 1849,  332,  325, 1884,  168,
2756
2757       177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
2758       177,  177,  177,  177,  177, 1848,  177,  177,  177,  177,
2759       177,  324,  643,  643,  643,  325, 1885,  324, 1886, 1887,
2760       324,  648,  648,  648, 1888, 1237,  324,  324,  325,  643,
2761       332,  332,  325,  332, 1889,  177,  177, 1890,  648,  332,
2762       332,  177, 1240, 1240, 1240, 1891,  177,  178,  178,  178,
2763       178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
2764       178,  178, 1892,  178,  178,  178,  178,  178,  653,  653,
2765       653,  665,  665,  665,  674,  674,  674,  676,  676,  676,
2766       691,  691,  691, 1893, 1899,  653, 1901, 1908,  665, 1909,
2767
2768      1910,  674,  178,  178,  676, 1911, 1912,  691,  178, 1243,
2769      1243, 1243, 1913,  178,  181,  181,  181,  181,  181,  181,
2770       181,  181,  181,  181,  181,  181,  181,  181,  181, 1914,
2771       181,  181,  181,  181,  181,  699,  699,  699,  704,  704,
2772       704,  726,  726,  726,  748,  748,  748,  752,  752,  752,
2773      1916, 1917,  699, 1922, 1923,  704, 1925, 1926,  726,  181,
2774       181,  748, 1927, 1928,  752,  181, 1935, 1936,  181,  846,
2775       846,  846, 1937,  846, 1938, 1939,  846, 1940, 1941,  181,
2776       182,  182,  182,  182,  182,  182,  182,  182,  182,  182,
2777       182,  182,  182,  182,  182, 1942,  182,  182,  182,  182,
2778
2779       182,  770,  770,  770,  771,  771,  771, 1944, 1959,  798,
2780       798,  798,  799,  799,  799,  801,  801,  801, 1964,  770,
2781      1968, 1969,  771, 1970, 1973,  182,  182,  798, 1977, 1978,
2782       799,  182,  801, 1960,  182,  851,  851,  851, 1979,  851,
2783      1959, 1980,  851, 1981, 1982,  182,  191,  191,  191,  191,
2784       191,  191,  191,  191,  191,  191,  191,  191,  191,  191,
2785       191,  771,  191,  191,  191,  191,  191,  805,  805,  805,
2786      1960,  799,  806,  806,  806, 1983,  809,  809,  809,  811,
2787       811,  811,  817,  817,  817,  805, 1984,  813,  813,  813,
2788       806,  191,  191,  809, 1985, 1986,  811, 1988, 1989,  191,
2789
2790       817,  191, 1994,  191,  813, 1252, 1252, 1252, 1277, 1277,
2791      1277,  191,  192,  192,  192,  192,  192,  192,  192,  192,
2792       192,  192,  192,  192,  192,  192,  192, 1995,  192,  192,
2793       192,  192,  192, 1996, 1998,  806,  823,  823,  823, 2002,
2794      2003,  824,  824,  824, 2006, 2010,  818,  818,  818,  825,
2795       825,  825, 2011, 2013,  823, 2016, 2017,  192,  192,  824,
2796      1288, 1288, 1288, 2018,  818,  192,  825,  192, 2019,  192,
2797      1289, 1289, 1289, 1406, 1406, 1406, 2021,  192,  201,  201,
2798       201,  201,  201,  201,  201,  201,  201,  201,  201,  201,
2799       201,  201,  201,  818,  201,  201,  201,  201,  201,  828,
2800
2801       828,  828, 2024, 2026,  824, 2048, 2049,  829,  829,  829,
2802       840,  840,  840,  843,  843,  843, 1289,  828,  844,  844,
2803       844, 2050, 2051,  201,  201,  829, 2057,  840,  845,  845,
2804       845,  843, 2043,  863,  863,  863,  844,  863, 2044, 2058,
2805       863, 1408, 1408, 1408,  829,  845,  201,  202,  202,  202,
2806       202,  202,  202,  202,  202,  202,  202,  202,  202,  202,
2807       202,  202, 2045,  202,  202,  202,  202,  202,  848,  848,
2808       848, 2043,  849,  849,  849, 2044, 2059,  850,  850,  850,
2809       853,  853,  853,  844, 2060, 2061,  848,  854,  854,  854,
2810       849, 2062,  202,  202,  850,  857,  857,  857,  853,  873,
2811
2812       873,  873, 2063,  873, 2045,  854,  873,  876,  876,  876,
2813      2064,  876, 2065,  857,  876,  202,  205,  205,  205,  205,
2814       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
2815       205, 2066,  205,  205,  205,  205,  205,  849,  858,  858,
2816       858,  862,  862,  862, 1410, 1410, 1410,  854,  866,  866,
2817       866,  867,  867,  867, 2068, 2069,  858, 2073,  862, 2079,
2818      2080,  205,  205,  891,  891,  891,  866,  891, 2084,  867,
2819       891, 2087,  205,  206,  206,  206,  206,  206,  206,  206,
2820       206,  206,  206,  206,  206,  206,  206,  206, 2095,  206,
2821       206,  206,  206,  206, 2096,  872,  872,  872,  875,  875,
2822
2823       875, 2097,  858,  877,  877,  877,  885,  885,  885, 2121,
2824      2122,  867,  872, 2123, 2126,  875, 2117, 2118,  206,  206,
2825       877,  899,  899,  899,  885,  899, 2127, 2129,  899,  206,
2826       215,  215,  215,  215,  215,  215,  215,  215,  215,  215,
2827       215,  215,  215,  215,  215, 2117,  215,  215,  215,  215,
2828       215,  890,  890,  890,  892,  892,  892, 2054, 2118,  895,
2829       895,  895, 2130,  886,  886,  886, 2133, 2054,  890, 2134,
2830      2054,  892,  896,  896,  896,  215,  215,  895,  898,  898,
2831       898,  886, 1412, 1412, 1412, 2135,  215,  904,  904,  904,
2832       896,  904, 2136, 2138,  904,  898, 2139, 2140,  215,  216,
2833
2834       216,  216,  216,  216,  216,  216,  216,  216,  216,  216,
2835       216,  216,  216,  216, 2141,  216,  216,  216,  216,  216,
2836       886, 2145, 2153,  896,  900,  900,  900, 2105,  901,  901,
2837       901,  903,  903,  903,  908,  908,  908, 2105,  909,  909,
2838       909, 2119,  900, 2105,  216,  216,  901, 2154,  903,  910,
2839       910,  910,  908, 2155, 2159,  216,  909,  911,  911,  911,
2840       912,  912,  912,  913,  913,  913,  910,  216,  258, 2167,
2841      2128,  914,  914,  914,  911,  258, 2169,  912,  916,  916,
2842       916,  913, 2119, 2128,  258,  258, 2177, 2178,  901,  914,
2843       917,  917,  917,  909, 2179,  916, 2180, 2181,  918,  918,
2844
2845       918, 1357, 1357, 1357,  919,  919,  919,  917, 2182,  920,
2846       920,  920,  258,  258,  258,  918, 2188, 2192,  912,  258,
2847       258,  919,  258,  258, 2193, 2131,  258,  920,  258,  258,
2848       258,  914,  921,  921,  921,  923,  923,  923, 2131, 2197,
2849       917,  924,  924,  924, 2187,  924, 2198, 1357,  924, 2199,
2850       921, 2188,  923, 2200,  917,  925,  925,  925,  926,  926,
2851       926, 2201,  919,  927,  927,  927,  928,  928,  928,  921,
2852       929,  929,  929,  925, 2202, 2203,  926,  930,  930,  930,
2853       927, 2204, 2206,  928,  931,  931,  931,  929,  936,  936,
2854       936, 2187,  937,  937,  937,  930,  940,  940,  940,  941,
2855
2856       941,  941,  931,  942,  942,  942,  936,  946,  946,  946,
2857       937, 2207, 2208,  926,  940, 2209,  928,  941, 2210, 2211,
2858       942,  943,  943,  943,  946,  943, 2212, 2213,  943, 2220,
2859       928,  944,  944,  944,  945,  945,  945,  947,  947,  947,
2860      2055,  947, 2224, 2225,  947,  949,  949,  949, 2226,  944,
2861      2055, 2227,  945, 2055,  931,  937,  950,  950,  950,  965,
2862       965,  965,  941,  949,  966,  966,  966,  968,  968,  968,
2863       995,  995,  995, 2234,  950, 2237, 2239,  965,  996,  996,
2864       996, 2244,  966, 2245, 2246,  968, 2239,  995,  997,  997,
2865       997,  999,  999,  999,  945, 2247,  996, 2106, 1000, 1000,
2866
2867      1000, 1001, 1001, 1001, 2248, 1001,  997, 2106, 1001,  999,
2868      1004, 1004, 1004, 2106,  968, 1000, 1006, 1006, 1006,  950,
2869      1007, 1007, 1007, 2240, 1009, 1009, 1009, 1004, 1011, 1011,
2870      1011, 2242, 1011, 2240, 1006, 1011, 2249, 2258, 1007, 2243,
2871       999, 2242, 1009, 1014, 1014, 1014, 1015, 1015, 1015, 2243,
2872      1015, 2259, 2260, 1015, 2261, 1016, 1016, 1016, 2262, 2263,
2873      1014, 1017, 1017, 1017, 1020, 1020, 1020, 1022, 1022, 1022,
2874      1004, 1009, 1016, 1018, 1018, 1018, 2264, 1018, 1017, 2265,
2875      1018, 1020, 1023, 1023, 1023, 1022, 1025, 1025, 1025, 1028,
2876      1028, 1028, 1030, 1030, 1030, 1031, 1031, 1031, 2251, 2268,
2877
2878      1023, 1033, 1033, 1033, 1025, 2269, 1028, 1034, 1034, 1034,
2879      1030, 1034, 2271, 1031, 1034, 1038, 1038, 1038, 2272, 1033,
2880      1039, 1039, 1039, 1041, 1041, 1041, 2273, 1051, 1051, 1051,
2881      2275, 1051, 2251, 1038, 1051, 1055, 1055, 1055, 1039, 2282,
2882      2283, 1041, 1056, 1056, 1056, 1025, 2284, 2286, 1033, 1058,
2883      1058, 1058, 2292, 1055, 1059, 1059, 1059, 2293, 1059, 2294,
2884      1056, 1059, 1063, 1063, 1063, 2295, 2296, 1058, 1064, 1064,
2885      1064, 1066, 1066, 1066, 1067, 1067, 1067, 2297, 1067, 2298,
2886      1063, 1067, 1070, 1070, 1070, 2299, 1064, 2300, 2301, 1066,
2887      1071, 1071, 1071, 1072, 1072, 1072, 1074, 1074, 1074, 1070,
2888
2889      1075, 1075, 1075, 2303, 1076, 1076, 1076, 2304, 1071, 1058,
2890      2316, 1072, 2317, 2308, 1074, 2318, 2319, 1075, 1077, 1077,
2891      1077, 1076, 1078, 1078, 1078, 1080, 1080, 1080, 1083, 1083,
2892      1083, 1066, 1076, 1089, 1089, 1089, 1077, 1084, 1084, 1084,
2893      1078, 1084, 2320, 1080, 1084, 1083, 1090, 1090, 1090, 2321,
2894      2322, 1089, 1092, 1092, 1092, 2308, 1099, 1099, 1099, 2323,
2895      1099, 2327, 1074, 1099, 1090, 1102, 1102, 1102, 2328, 2329,
2896      1092, 1103, 1103, 1103, 2330, 1103, 2331, 2332, 1103, 1106,
2897      1106, 1106, 1102, 2336, 1107, 1107, 1107, 2337, 1107, 2338,
2898      1080, 1107, 1115, 1115, 1115, 2341, 1106, 1116, 1116, 1116,
2899
2900      1118, 1118, 1118, 2346, 1123, 1123, 1123, 2347, 1123, 2348,
2901      1115, 1123, 1126, 1126, 1126, 1116, 1092, 2349, 1118, 1127,
2902      1127, 1127, 2350, 1127, 2351, 2352, 1127, 2353, 2354, 1126,
2903      1130, 1130, 1130, 1131, 1131, 1131, 1133, 1133, 1133, 1135,
2904      1135, 1135, 2355, 1135, 2356, 2357, 1135, 2364, 1130, 2358,
2905      2360, 1131, 2367, 2368, 1133, 1138, 1138, 1138, 1139, 1139,
2906      1139, 1141, 1141, 1141, 2360, 2371, 1118, 1143, 1143, 1143,
2907      2373, 1143, 2374, 1138, 1143, 2361, 1139, 2376, 2377, 1141,
2908      1149, 1149, 1149, 1150, 1150, 1150, 2361, 1133, 1152, 1152,
2909      1152, 1153, 1153, 1153, 2358, 1154, 1154, 1154, 1149, 1154,
2910
2911      2380, 1150, 1154, 1155, 1155, 1155, 1152, 2381, 1153, 1156,
2912      1156, 1156, 2382, 1156, 2386, 2394, 1156, 1158, 1158, 1158,
2913      1155, 1159, 1159, 1159, 1161, 1161, 1161, 1141, 1163, 1163,
2914      1163, 1167, 1167, 1167, 2384, 1158, 1164, 1164, 1164, 1159,
2915      1164, 2396, 1161, 1164, 2398, 1163, 2384, 1152, 1167, 1168,
2916      1168, 1168, 2400, 1168, 2408, 2406, 1168, 1170, 1170, 1170,
2917      1171, 1171, 1171, 1173, 1173, 1173, 1175, 1175, 1175, 2406,
2918      1175, 2407, 2407, 1175, 2410, 1170, 2385, 2391, 1171, 2412,
2919      2413, 1173, 1178, 1178, 1178, 1179, 1179, 1179, 2385, 2391,
2920      1161, 1181, 1181, 1181, 1182, 1182, 1182, 1183, 1183, 1183,
2921
2922      1178, 1183, 2414, 1179, 1183, 1186, 1186, 1186, 2392, 1181,
2923      2409, 1182, 1187, 1187, 1187, 2415, 1187, 2424, 2426, 1187,
2924      2392, 2409, 1186, 1188, 1188, 1188, 1173, 1189, 1189, 1189,
2925      1191, 1191, 1191, 2429, 1193, 1193, 1193, 1196, 1196, 1196,
2926      2405, 1188, 1197, 1197, 1197, 1189, 2431, 2437, 1191, 2438,
2927      1181, 1193, 1199, 1199, 1199, 1196, 1202, 1202, 1202, 2439,
2928      1197, 1203, 1203, 1203, 1205, 1205, 1205, 1209, 1209, 1209,
2929      1199, 1206, 1206, 1206, 1202, 1206, 2441, 2442, 1206, 1203,
2930      2405, 2423, 1205, 2443, 2425, 1209, 1210, 1210, 1210, 2428,
2931      2430, 1191, 1212, 1212, 1212, 1213, 1213, 1213, 2444, 1213,
2932
2933      2423, 2451, 1213, 2425, 1210, 1217, 1217, 1217, 2428, 2430,
2934      1212, 2452, 1199, 1218, 1218, 1218, 2453, 1205, 1220, 1220,
2935      1220, 2454, 2455, 1217, 1222, 1222, 1222, 1229, 1229, 1229,
2936      2456, 1218, 1255, 1255, 1255, 2459, 1220, 1256, 1256, 1256,
2937      2460, 1256, 1222, 1222, 1256, 1229, 1257, 1257, 1257, 1255,
2938      2461, 1212, 1258, 1258, 1258, 1259, 1259, 1259, 2462, 1259,
2939      2463, 2464, 1259, 2466, 1257, 1262, 1262, 1262, 2468, 1258,
2940      1264, 1264, 1264, 2470, 1264, 2478, 2480, 1264, 1220, 1267,
2941      1267, 1267, 2481, 1262, 1268, 1268, 1268, 2478, 1268, 2479,
2942      2482, 1268, 1229, 1269, 1269, 1269, 1267, 1269, 2483, 2484,
2943
2944      1269, 2479, 2485, 1257, 1273, 1273, 1273, 2489, 1274, 1274,
2945      1274, 2490, 1274, 2491, 1262, 1274, 1276, 1276, 1276, 2492,
2946      2493, 1273, 1279, 1279, 1279, 1280, 1280, 1280, 2494, 1280,
2947      2497, 2495, 1280, 2498, 1276, 1281, 1281, 1281, 2499, 1279,
2948      1282, 1282, 1282, 1284, 1284, 1284, 1295, 1295, 1295, 1296,
2949      1296, 1296, 1281, 1298, 1298, 1298, 2495, 2500, 1282, 2501,
2950      2502, 1284, 2503, 1295, 2504, 2505, 1276, 1296, 1299, 1299,
2951      1299, 1298, 1300, 1300, 1300, 2506, 1300, 2507, 2508, 1300,
2952      1301, 1301, 1301, 2509, 2510, 1299, 1302, 1302, 1302, 1282,
2953      1303, 1303, 1303, 2511, 1303, 2512, 2513, 1303, 1301, 1305,
2954
2955      1305, 1305, 2514, 1302, 1308, 1308, 1308, 1309, 1309, 1309,
2956      2518, 1309, 1296, 2519, 1309, 2520, 1298, 1305, 1310, 1310,
2957      1310, 1308, 2521, 1311, 1311, 1311, 1312, 1312, 1312, 1316,
2958      1316, 1316, 1319, 1319, 1319, 1310, 1324, 1324, 1324, 1301,
2959      1311, 1320, 1320, 1320, 1312, 1320, 1316, 2522, 1320, 1319,
2960      1321, 1321, 1321, 1324, 1321, 2515, 2523, 1321, 2524, 1305,
2961      1331, 1331, 1331, 1333, 1333, 1333, 1336, 1336, 1336, 1311,
2962      1336, 2525, 2526, 1336, 2515, 1339, 1339, 1339, 1331, 2527,
2963      1333, 1341, 1341, 1341, 1343, 1343, 1343, 1347, 1347, 1347,
2964      2528, 1312, 1339, 2529, 1348, 1348, 1348, 2530, 2531, 1341,
2965
2966      2532, 2533, 1343, 2534, 1347, 2535, 1349, 1349, 1349, 2536,
2967      1349, 2537, 1348, 1349, 1352, 1352, 1352, 2538, 1352, 2539,
2968      2540, 1352, 2541, 2534, 1331, 1356, 1356, 1356, 1358, 1358,
2969      1358, 2542, 1358, 1347, 2543, 1358, 2544, 2545, 1363, 1363,
2970      1363, 2546, 1363, 1356, 1341, 1363, 1367, 1367, 1367, 1343,
2971      1348, 1369, 1369, 1369, 1370, 1370, 1370, 2547, 1370, 2548,
2972      2549, 1370, 2550, 2552, 1367, 2551, 1375, 1375, 1375, 1369,
2973      1375, 2551, 2553, 1375, 1378, 1378, 1378, 1380, 1380, 1380,
2974      1381, 1381, 1381, 2554, 1381, 2555, 2556, 1381, 2557, 2559,
2975      1356, 2560, 1378, 2562, 1380, 1384, 1384, 1384, 1386, 1386,
2976
2977      1386, 1387, 1387, 1387, 2563, 2565, 1367, 1369, 1388, 1388,
2978      1388, 2566, 2569, 1384, 2570, 1386, 1389, 1389, 1389, 1387,
2979      2571, 1378, 1390, 1390, 1390, 2572, 1388, 1393, 1393, 1393,
2980      1400, 1400, 1400, 1389, 1415, 1415, 1415, 1417, 1417, 1417,
2981      1390, 1419, 1419, 1419, 1384, 1393, 2574, 2568, 1400, 1424,
2982      1424, 1424, 1426, 1426, 1426, 1427, 1427, 1427, 2576, 1427,
2983      1388, 2568, 1427, 1430, 1430, 1430, 2578, 1387, 1431, 1431,
2984      1431, 2580, 1431, 2582, 2583, 1431, 2584, 2585, 1393, 2586,
2985      2587, 1430, 1400, 1390, 1436, 1436, 1436, 1419, 1438, 1438,
2986      1438, 2588, 1438, 2589, 1393, 1438, 2591, 2593, 1426, 2595,
2987
2988      1417, 2596, 1436, 1442, 1442, 1442, 2597, 1442, 2598, 2607,
2989      1442, 1441, 1446, 1446, 1446, 1447, 1447, 1447, 1449, 1449,
2990      1449, 2599, 1449, 2615, 2608, 1449, 1452, 1452, 1452, 1430,
2991      1446, 2615, 1453, 1453, 1453, 1436, 1453, 1437, 1435, 1453,
2992      1454, 1454, 1454, 1452, 1458, 1458, 1458, 1459, 1459, 1459,
2993      1460, 1460, 1460, 1462, 1462, 1462, 2607, 2599, 1454, 1463,
2994      1463, 1463, 1465, 1465, 1465, 2613, 1466, 1466, 1466, 2613,
2995      1466, 2608, 1446, 1466, 1467, 1467, 1467, 2611, 2600, 1465,
2996      1468, 1468, 1468, 1469, 1469, 1469, 1470, 1470, 1470, 2612,
2997      1470, 1454, 1467, 1470, 1473, 1473, 1473, 1468, 1474, 1474,
2998
2999      1474, 1469, 1474, 2621, 2609, 1474, 1477, 1477, 1477, 1478,
3000      1478, 1478, 1473, 1460, 2600, 2622, 1462, 1484, 1484, 1484,
3001      2611, 1467, 1463, 1477, 1481, 1481, 1481, 1478, 1481, 2614,
3002      1469, 1481, 2612, 2614, 1484, 1485, 1485, 1485, 1434, 1485,
3003      2621, 2616, 1485, 1486, 1486, 1486, 1487, 1487, 1487, 2616,
3004      1487, 2609, 2622, 1487, 1425, 1489, 1489, 1489, 2629, 1473,
3005      1486, 1490, 1490, 1490, 1493, 1493, 1493, 1494, 1494, 1494,
3006      2619, 1494, 1478, 1489, 1494, 1495, 1495, 1495, 1497, 1497,
3007      1497, 1493, 1497, 2623, 2610, 1497, 1500, 1500, 1500, 1501,
3008      1501, 1501, 1495, 1501, 2620, 2629, 1501, 1502, 1502, 1502,
3009
3010      1507, 1507, 1507, 1500, 1508, 1508, 1508, 1510, 1510, 1510,
3011      1423, 1511, 1511, 1511, 1502, 1511, 2619, 1507, 1511, 1512,
3012      1512, 1512, 1508, 2623, 1510, 1514, 1514, 1514, 1515, 1515,
3013      1515, 2610, 1515, 2617, 2624, 1515, 1512, 1517, 1517, 1517,
3014      2620, 2617, 1514, 1519, 1519, 1519, 1523, 1523, 1523, 1524,
3015      1524, 1524, 2618, 1524, 2665, 1517, 1524, 1526, 1526, 1526,
3016      2618, 1519, 2665, 1523, 1528, 1528, 1528, 1422, 2627, 1508,
3017      1530, 1530, 1530, 2631, 2624, 1526, 1531, 1531, 1531, 1532,
3018      1532, 1532, 1528, 1533, 1533, 1533, 2625, 1530, 1535, 1535,
3019      1535, 2626, 2632, 1531, 1519, 2630, 1532, 1536, 1536, 1536,
3020
3021      2628, 1533, 1537, 1537, 1537, 2631, 1535, 1538, 1538, 1538,
3022      1545, 1545, 1545, 2627, 1536, 1528, 1540, 1540, 1540, 1537,
3023      1540, 2625, 1421, 1540, 2632, 1538, 2626, 1420, 1545, 1547,
3024      1547, 1547, 2630, 2637, 1535, 2633, 1548, 1548, 1548, 2634,
3025      1548, 2657, 1532, 1548, 2633, 2628, 1547, 1418, 2634, 1533,
3026      1549, 1549, 1549, 1416, 1550, 1550, 1550, 1551, 1551, 1551,
3027      2638, 1545, 1552, 1552, 1552, 2639, 1552, 2637, 1549, 1552,
3028      2657, 1538, 1550, 2645, 1551, 1553, 1553, 1553, 1559, 1559,
3029      1559, 1560, 1560, 1560, 1565, 1565, 1565, 1568, 1568, 1568,
3030      1572, 1572, 1572, 1553, 2638, 1559, 1573, 1573, 1573, 1560,
3031
3032      1574, 1574, 1574, 1576, 1576, 1576, 2645, 2639, 1549, 1550,
3033      1578, 1578, 1578, 1579, 1579, 1579, 1583, 1583, 1583, 1585,
3034      1585, 1585, 1588, 1588, 1588, 1590, 1590, 1590, 1592, 1592,
3035      1592, 1593, 1593, 1593, 1605, 1605, 1605, 1585, 1414, 2635,
3036      1588, 1560, 1590, 1602, 1602, 1602, 1592, 1602, 1593, 2636,
3037      1602, 2640, 1605, 1606, 1606, 1606, 1609, 1609, 1609, 1610,
3038      1610, 1610, 1612, 1612, 1612, 1616, 1616, 1616, 2641, 1585,
3039      1606, 1613, 1613, 1613, 2635, 1613, 2642, 2661, 1613, 1612,
3040      1605, 2646, 2643, 1616, 2636, 2644, 1592, 1617, 1617, 1617,
3041      1618, 1618, 1618, 2640, 1618, 2649, 1413, 1618, 1619, 1619,
3042
3043      1619, 1620, 1620, 1620, 1617, 1621, 1621, 1621, 1622, 1622,
3044      1622, 2661, 1622, 2641, 2646, 1622, 1619, 2643, 1616, 1620,
3045      2644, 2642, 1621, 1623, 1623, 1623, 1626, 1626, 1626, 2647,
3046      1626, 2648, 2649, 1626, 2650, 1629, 1629, 1629, 2647, 1629,
3047      2648, 1623, 1629, 1633, 1633, 1633, 1635, 1635, 1635, 2651,
3048      2655, 1619, 1638, 1638, 1638, 2662, 1638, 2653, 1411, 1638,
3049      2654, 1633, 1641, 1641, 1641, 1642, 1642, 1642, 2666, 1642,
3050      1623, 2650, 1642, 1644, 1644, 1644, 2666, 1644, 2652, 1641,
3051      1644, 1647, 1647, 1647, 1648, 1648, 1648, 2655, 1648, 2662,
3052      2651, 1648, 1649, 1649, 1649, 1653, 1653, 1653, 1647, 1654,
3053
3054      1654, 1654, 2653, 1654, 2658, 2654, 1654, 1409, 1407, 1649,
3055      1405, 2663, 1653, 1655, 1655, 1655, 1657, 1657, 1657, 2652,
3056      1657, 2656, 2669, 1657, 1660, 1660, 1660, 1404, 1661, 1661,
3057      1661, 1655, 1661, 2658, 2667, 1661, 1663, 1663, 1663, 2668,
3058      1663, 1660, 2664, 1663, 1667, 1667, 1667, 1670, 1670, 1670,
3059      1672, 1672, 1672, 1674, 1674, 1674, 2663, 1674, 2656, 2669,
3060      1674, 2685, 1667, 2670, 1655, 1670, 1403, 1672, 1678, 1678,
3061      1678, 1681, 1681, 1681, 1683, 1683, 1683, 1684, 1684, 1684,
3062      2667, 1684, 2671, 1402, 1684, 2668, 1678, 2664, 2686, 1681,
3063      2672, 1683, 1685, 1685, 1685, 2675, 1672, 1686, 1686, 1686,
3064
3065      2670, 1686, 1401, 2673, 1686, 1688, 1688, 1688, 2685, 1685,
3066      1670, 1690, 1690, 1690, 1691, 1691, 1691, 1692, 1692, 1692,
3067      2674, 1692, 2671, 1688, 1692, 1693, 1693, 1693, 2659, 1690,
3068      2672, 1691, 1694, 1694, 1694, 2686, 1694, 2659, 2673, 1694,
3069      2675, 2677, 1693, 1695, 1695, 1695, 1699, 1699, 1699, 1701,
3070      1701, 1701, 1399, 1701, 2660, 2674, 1701, 1704, 1704, 1704,
3071      1690, 1695, 2678, 2660, 1699, 1705, 1705, 1705, 2679, 1398,
3072      1688, 1395, 1706, 1706, 1706, 1704, 1706, 2680, 2677, 1706,
3073      1709, 1709, 1709, 1705, 1715, 1715, 1715, 1716, 1716, 1716,
3074      1392, 1716, 2689, 1385, 1716, 1717, 1717, 1717, 1709, 2678,
3075
3076      2679, 1715, 1718, 1718, 1718, 1383, 2689, 1695, 1704, 2680,
3077      1699, 1382, 1379, 1717, 1721, 1721, 1721, 1374, 1705, 1722,
3078      1722, 1722, 1723, 1723, 1723, 1727, 1727, 1727, 1728, 1728,
3079      1728, 1729, 1729, 1729, 1730, 1730, 1730, 1732, 1732, 1732,
3080      1733, 1733, 1733, 1734, 1734, 1734, 1735, 1735, 1735, 1736,
3081      1736, 1736, 1738, 1738, 1738, 1741, 1741, 1741, 1717, 1744,
3082      1744, 1744, 1745, 1745, 1745, 2681, 1745, 1373, 1368, 1745,
3083      1738, 1366, 1362, 1741, 2681, 2683, 1744, 1747, 1747, 1747,
3084      1730, 1748, 1748, 1748, 1749, 1749, 1749, 2676, 1749, 1361,
3085      1355, 1749, 1760, 1760, 1760, 1747, 1346, 2684, 1748, 1761,
3086
3087      1761, 1761, 1345, 1738, 1762, 1762, 1762, 2683, 1762, 1344,
3088      1760, 1762, 1763, 1763, 1763, 2687, 1761, 1765, 1765, 1765,
3089      1766, 1766, 1766, 1767, 1767, 1767, 1768, 1768, 1768, 2684,
3090      1768, 2688, 2676, 1768, 1769, 1769, 1769, 1773, 1773, 1773,
3091      1767, 1760, 1770, 1770, 1770, 2682, 1770, 2687, 2690, 1770,
3092      1342, 1340, 1769, 1335, 2682, 1773, 1774, 1774, 1774, 2690,
3093      1776, 1776, 1776, 2688, 1776, 1334, 1766, 1776, 1779, 1779,
3094      1779, 1787, 1787, 1787, 1774, 1787, 1332, 1330, 1787, 1329,
3095      1791, 1791, 1791, 1328, 1791, 1769, 1779, 1791, 1773, 1794,
3096      1794, 1794, 1795, 1795, 1795, 1327, 1795, 1326, 1325, 1795,
3097
3098      1799, 1799, 1799, 1318, 1799, 1317, 1794, 1799, 1802, 1802,
3099      1802, 1804, 1804, 1804, 1315, 1804, 1314, 1313, 1804, 1307,
3100      1306, 1779, 1810, 1810, 1810, 1304, 1802, 1812, 1812, 1812,
3101      1813, 1813, 1813, 1297, 1813, 1294, 1293, 1813, 1292, 1291,
3102      1810, 1820, 1820, 1820, 1812, 1823, 1823, 1823, 1290, 1823,
3103      1287, 1286, 1823, 1826, 1826, 1826, 1283, 1826, 1278, 1820,
3104      1826, 1830, 1830, 1830, 1832, 1832, 1832, 1275, 1833, 1833,
3105      1833, 1802, 1833, 1272, 1263, 1833, 1836, 1836, 1836, 1830,
3106      1836, 1261, 1832, 1836, 1839, 1839, 1839, 1840, 1840, 1840,
3107      1841, 1841, 1841, 1842, 1842, 1842, 1843, 1843, 1843, 1845,
3108
3109      1845, 1845, 1839, 1260, 1840, 1254, 1253, 1841, 1251, 1250,
3110      1842, 1249, 1830, 1248, 1843, 1247, 1246, 1845, 1245, 1244,
3111      1839, 1846, 1846, 1846, 1847, 1847, 1847, 1242, 1241, 1832,
3112      1850, 1850, 1850, 1851, 1851, 1851, 1239, 1851, 1238, 1846,
3113      1851, 1841, 1847, 1854, 1854, 1854, 1855, 1855, 1855, 1236,
3114      1234, 1842, 1856, 1856, 1856, 1858, 1858, 1858, 1845, 1233,
3115      1843, 1854, 1859, 1859, 1859, 1860, 1860, 1860, 1861, 1861,
3116      1861, 1862, 1862, 1862, 1863, 1863, 1863, 1864, 1864, 1864,
3117      1867, 1867, 1867, 1868, 1868, 1868, 1869, 1869, 1869, 1871,
3118      1871, 1871, 1874, 1874, 1874, 1875, 1875, 1875, 1232, 1875,
3119
3120      1231, 1854, 1875, 1878, 1878, 1878, 1230, 1871, 1228, 1874,
3121      1879, 1879, 1879, 1227, 1881, 1881, 1881, 1226, 1881, 1225,
3122      1878, 1881, 1894, 1894, 1894, 1895, 1895, 1895, 1879, 1895,
3123      1216, 1201, 1895, 1898, 1898, 1898, 1900, 1900, 1900, 1200,
3124      1894, 1902, 1902, 1902, 1195, 1902, 1194, 1192, 1902, 1905,
3125      1905, 1905, 1906, 1906, 1906, 1907, 1907, 1907, 1915, 1915,
3126      1915, 1185, 1918, 1918, 1918, 1184, 1918, 1905, 1878, 1918,
3127      1906, 1174, 1169, 1907, 1921, 1921, 1921, 1166, 1924, 1924,
3128      1924, 1165, 1894, 1929, 1929, 1929, 1931, 1931, 1931, 1162,
3129      1157, 1921, 1943, 1943, 1943, 1905, 1924, 1148, 1932, 1932,
3130
3131      1932, 1929, 1932, 1931, 1147, 1932, 1907, 1945, 1945, 1945,
3132      1946, 1946, 1946, 1947, 1947, 1947, 1948, 1948, 1948, 1949,
3133      1949, 1949, 1950, 1950, 1950, 1945, 1950, 1946, 1146, 1950,
3134      1142, 1947, 1931, 1134, 1948, 1129, 1949, 1951, 1951, 1951,
3135      1952, 1952, 1952, 1953, 1953, 1953, 1954, 1954, 1954, 1955,
3136      1955, 1955, 1128, 1122, 1951, 1121, 1120, 1952, 1961, 1961,
3137      1961, 1953, 1956, 1956, 1956, 1119, 1114, 1955, 1958, 1958,
3138      1958, 1113, 1947, 1963, 1963, 1963, 1948, 1962, 1962, 1962,
3139      1956, 1965, 1965, 1965, 1112, 1111, 1958, 1966, 1966, 1966,
3140      1110, 1952, 1967, 1967, 1967, 1962, 1109, 1971, 1971, 1971,
3141
3142      1974, 1974, 1974, 1975, 1975, 1975, 1108, 1975, 1098, 1097,
3143      1975, 1976, 1976, 1976, 1955, 1971, 1096, 1974, 1987, 1987,
3144      1987, 1990, 1990, 1990, 1991, 1991, 1991, 1095, 1976, 1958,
3145      1993, 1993, 1993, 2000, 2000, 2000, 1987, 1094, 1093, 1990,
3146      1088, 1087, 1991, 2001, 2001, 2001, 1082, 1081, 1993, 1062,
3147      2000, 2004, 2004, 2004, 2005, 2005, 2005, 1054, 2005, 1050,
3148      1049, 2005, 2007, 2007, 2007, 1048, 1976, 1047, 2004, 2008,
3149      2008, 2008, 2012, 2012, 2012, 1046, 1045, 1987, 1044, 2007,
3150      2014, 2014, 2014, 2023, 2023, 2023, 1990, 2008, 1043, 2012,
3151      1042, 2015, 2015, 2015, 1037, 2015, 1029, 2014, 2015, 1027,
3152
3153      2023, 2025, 2025, 2025, 2027, 2027, 2027, 2029, 2029, 2029,
3154      2030, 2030, 2030, 1021, 2030, 1019, 1010, 2030, 2031, 2031,
3155      2031, 1005, 2027,  994, 2029, 2032, 2032, 2032, 2033, 2033,
3156      2033,  992, 2033,  991,  990, 2033, 2031, 2036, 2036, 2036,
3157      2037, 2037, 2037, 2032, 2037,  988,  987, 2037, 2038, 2038,
3158      2038, 2039, 2039, 2039, 2036, 2041, 2041, 2041, 2042, 2042,
3159      2042, 2046, 2046, 2046,  986, 2038, 2052, 2052, 2052, 2039,
3160      2053, 2053, 2053,  985, 2053,  984, 2042, 2053,  983, 2046,
3161      2056, 2056, 2056, 2052, 2067, 2067, 2067, 2070, 2070, 2070,
3162       981, 2032, 2071, 2071, 2071,  980,  979, 2056, 2074, 2074,
3163
3164      2074,  978, 2067,  977,  976, 2070, 2077, 2077, 2077,  975,
3165      2071,  974, 2078, 2078, 2078, 2074, 2078,  973,  972, 2078,
3166      2081, 2081, 2081, 2077, 2081,  971,  970, 2081, 2085, 2085,
3167      2085, 2086, 2086, 2086,  964, 2086,  963,  962, 2086,  959,
3168      2056,  958,  957, 2067,  955, 2085, 2088, 2088, 2088, 2089,
3169      2089, 2089, 2090, 2090, 2090,  951, 2090, 2070,  948, 2090,
3170      2091, 2091, 2091, 2088,  939,  938, 2089, 2092, 2092, 2092,
3171       935, 2092,  934,  933, 2092,  932,  922, 2091, 2100, 2100,
3172      2100, 2101, 2101, 2101,  915, 2101,  907,  906, 2101, 2102,
3173      2102, 2102, 2103, 2103, 2103, 2100, 2104, 2104, 2104,  905,
3174
3175      2104,  902,  897, 2104,  894,  893, 2102,  889,  887, 2103,
3176      2107, 2107, 2107, 2109, 2109, 2109, 2110, 2110, 2110,  884,
3177      2110,  883,  882, 2110, 2113, 2113, 2113,  881, 2107,  880,
3178       879, 2109, 2114, 2114, 2114,  878, 2114,  874,  870, 2114,
3179       869, 2113, 2115, 2115, 2115, 2120, 2120, 2120, 2124, 2124,
3180      2124, 2125, 2125, 2125,  868, 2125,  865,  864, 2125,  861,
3181      2115,  860, 2132, 2132, 2132, 2124, 2143, 2143, 2143, 2144,
3182      2144, 2144, 2146, 2146, 2146, 2148, 2148, 2148, 2109, 2132,
3183      2147, 2147, 2147,  859, 2143,  856,  855, 2149, 2149, 2149,
3184      2146, 2149, 2148,  852, 2149,  847,  842, 2147, 2150, 2150,
3185
3186      2150,  839, 2150,  838,  837, 2150, 2156, 2156, 2156,  835,
3187      2156,  834,  833, 2156, 2160, 2160, 2160, 2143, 2161, 2161,
3188      2161, 2132, 2161,  832,  831, 2161, 2147,  827, 2162, 2162,
3189      2162, 2160, 2162, 2146,  822, 2162, 2165, 2165, 2165, 2166,
3190      2166, 2166,  821, 2166,  820,  819, 2166, 2168, 2168, 2168,
3191      2170, 2170, 2170, 2165, 2170,  816,  815, 2170, 2173, 2173,
3192      2173, 2174, 2174, 2174, 2168, 2174,  814,  812, 2174, 2175,
3193      2175, 2175, 2176, 2176, 2176, 2173, 2176,  808,  804, 2176,
3194      2183, 2183, 2183, 2184, 2184, 2184, 2175, 2184,  803,  800,
3195      2184, 2189, 2189, 2189, 2190, 2190, 2190,  797, 2183, 2191,
3196
3197      2191, 2191,  796, 2194, 2194, 2194,  795, 2194, 2189, 2189,
3198      2194, 2205, 2205, 2205, 2214, 2214, 2214, 2215, 2215, 2215,
3199      2216, 2216, 2216, 2217, 2217, 2217,  794,  793, 2205,  792,
3200       790, 2183, 2214, 2218, 2218, 2218, 2219, 2219, 2219,  789,
3201      2219, 2217,  788, 2219, 2221, 2221, 2221,  787, 2221,  786,
3202      2218, 2221, 2228, 2228, 2228,  785, 2228,  784,  783, 2228,
3203      2231, 2231, 2231, 2214, 2231,  782,  781, 2231, 2235, 2235,
3204      2235, 2236, 2236, 2236, 2217, 2236,  780,  779, 2236, 2238,
3205      2238, 2238,  778, 2238,  777, 2235, 2238, 2241, 2241, 2241,
3206       776, 2241,  775,  774, 2241, 2250, 2250, 2250, 2252, 2252,
3207
3208      2252, 2253, 2253, 2253, 2254, 2254, 2254,  773, 2254,  769,
3209       768, 2254,  766, 2250,  765, 2252, 2252,  764, 2253, 2253,
3210       763,  762, 2254, 2255, 2255, 2255, 2256, 2256, 2256, 2257,
3211      2257, 2257, 2266, 2266, 2266, 2267, 2267, 2267,  758, 2267,
3212       756,  755, 2267, 2276, 2276, 2276, 2277, 2277, 2277, 2266,
3213      2278, 2278, 2278, 2279, 2279, 2279,  754, 2279,  753,  749,
3214      2279, 2276, 2285, 2285, 2285, 2287, 2287, 2287, 2278, 2288,
3215      2288, 2288,  745, 2288,  744,  741, 2288,  740,  739, 2285,
3216       738,  737, 2287, 2291, 2291, 2291, 2306, 2306, 2306, 2309,
3217      2309, 2309, 2310, 2310, 2310,  736, 2310,  733,  732, 2310,
3218
3219      2291, 2314, 2314, 2314, 2306,  731, 2309, 2309, 2276,  730,
3220      2310, 2311, 2311, 2311,  727, 2311,  725,  722, 2311, 2315,
3221      2315, 2315, 2333, 2333, 2333, 2334, 2334, 2334,  721, 2311,
3222      2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312, 2312,  720,
3223      2333, 2312,  719, 2334,  718,  715, 2312, 2312, 2312, 2312,
3224      2312, 2324, 2324, 2324,  714, 2324,  713,  712, 2324, 2340,
3225      2340, 2340,  711, 2340,  708,  707, 2340,  706,  705, 2339,
3226      2339, 2339, 2342, 2342, 2342, 2312, 2312, 2313, 2313, 2313,
3227      2313, 2313, 2313, 2313, 2313, 2313, 2339,  703, 2313, 2342,
3228      2344, 2344, 2344, 2313, 2313, 2313, 2313, 2313, 2343, 2343,
3229
3230      2343,  700, 2343,  698,  695, 2343,  694, 2344, 2345, 2345,
3231      2345,  693, 2345,  692,  690, 2345,  689, 2359, 2359, 2359,
3232       688, 2359, 2313, 2313, 2359,  685,  684, 2378, 2378, 2378,
3233      2411, 2411, 2411,  683,  682, 2359, 2362, 2362, 2362, 2362,
3234      2362, 2362, 2362, 2362, 2362, 2378,  681, 2362, 2411, 2411,
3235       680,  679, 2362, 2362, 2362, 2362, 2362, 2383, 2383, 2383,
3236       678, 2383,  677,  675, 2383, 2387, 2387, 2387,  673, 2387,
3237       672,  668, 2387, 2390, 2390, 2390,  667, 2390,  666,  663,
3238      2390, 2362, 2362, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
3239      2363, 2363,  660,  659, 2363, 2420, 2420, 2420,  658, 2363,
3240
3241      2363, 2363, 2363, 2363, 2421, 2421, 2421, 2422, 2422, 2422,
3242       655,  654, 2420, 2427, 2427, 2427, 2436, 2436, 2436,  650,
3243       649, 2421,  645,  644, 2422, 2440, 2440, 2440, 2363, 2363,
3244      2427, 2445, 2445, 2445, 2436, 2446, 2446, 2446,  642, 2446,
3245       637,  636, 2446, 2440, 2447, 2447, 2447,  634, 2445, 2448,
3246      2448, 2448,  633, 2448,  632,  631, 2448, 2449, 2449, 2449,
3247       630, 2447, 2450, 2450, 2450,  629, 2450,  625,  624, 2450,
3248      2457, 2457, 2457,  623, 2449,  622, 2440, 2458, 2458, 2458,
3249       618, 2458,  617,  616, 2458,  615,  614, 2457, 2465, 2465,
3250      2465, 2471, 2471, 2471,  613, 2471,  612,  610, 2471,  607,
3251
3252      2474, 2474, 2474,  606, 2474,  604, 2465, 2474, 2477, 2477,
3253      2477,  602, 2477,  599,  598, 2477, 2486, 2486, 2486,  592,
3254      2486,  590,  588, 2486,  585, 2465, 2581, 2581, 2581, 2590,
3255      2590, 2590,  584, 2590,  580,  579, 2590, 2691, 2691, 2691,
3256      2692, 2692, 2692,  578, 2581,  576,  575, 2590,  574,  573,
3257       572,  569,  568,  567,  566, 2691,  565,  559, 2692, 2695,
3258      2695, 2695, 2695, 2695, 2695, 2695, 2695, 2695, 2696, 2696,
3259      2696, 2696, 2696, 2696, 2696, 2696, 2696, 2697, 2697, 2697,
3260      2697, 2697, 2697, 2697, 2697, 2697, 2698, 2698, 2698, 2698,
3261      2698, 2698, 2698, 2698, 2698, 2699, 2699, 2699, 2699, 2699,
3262
3263      2699, 2699, 2699, 2699, 2700, 2700, 2700, 2700, 2700, 2700,
3264      2700, 2700, 2700, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
3265      2701, 2701, 2702, 2702, 2702, 2702, 2702, 2702, 2702, 2702,
3266      2702, 2703, 2703, 2703, 2703, 2703, 2703, 2703, 2703, 2703,
3267      2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2705,
3268      2705, 2705, 2705, 2705, 2705, 2705, 2705, 2705, 2706, 2706,
3269      2706, 2706, 2706, 2706, 2706, 2706, 2706, 2707, 2707, 2707,
3270      2707, 2707, 2707, 2707, 2707, 2707, 2708, 2708, 2708, 2708,
3271      2708, 2708, 2708, 2708, 2708, 2709, 2709, 2709, 2709, 2709,
3272      2709, 2709, 2709, 2709, 2710, 2710, 2710, 2710, 2710, 2710,
3273
3274      2710, 2710, 2710, 2711, 2711, 2711, 2711, 2711, 2711, 2711,
3275      2711, 2711, 2712, 2712, 2712, 2712, 2712, 2712, 2712, 2712,
3276      2712, 2713, 2713, 2713, 2713, 2713, 2713, 2713, 2713, 2713,
3277      2714, 2714, 2714, 2714, 2714, 2714, 2714, 2714, 2714, 2715,
3278      2715, 2715, 2715, 2715, 2715, 2715, 2715, 2715, 2716, 2716,
3279      2716, 2716, 2716, 2716, 2716, 2716, 2716, 2717, 2717, 2717,
3280      2717, 2717, 2717, 2717, 2717, 2717, 2718, 2718, 2718, 2718,
3281      2718, 2718, 2718, 2718, 2718, 2719, 2719, 2719, 2719, 2719,
3282      2719, 2719, 2719, 2719, 2720, 2720, 2720, 2720, 2720, 2720,
3283      2720, 2720, 2720, 2721, 2721, 2721, 2721, 2721, 2721, 2721,
3284
3285      2721, 2721, 2722, 2722, 2722, 2722, 2722, 2722, 2722, 2722,
3286      2722, 2723, 2723, 2723, 2723, 2723, 2723, 2723, 2723, 2723,
3287      2724, 2724, 2724, 2724, 2724, 2724, 2724, 2724, 2724, 2725,
3288      2725, 2725, 2725, 2725, 2725, 2725, 2725, 2725, 2726, 2726,
3289      2726, 2726, 2726, 2726, 2726, 2726, 2726, 2727, 2727, 2727,
3290      2727, 2727, 2727, 2727, 2727, 2727, 2728, 2728, 2728, 2728,
3291      2728, 2728, 2728, 2728, 2728, 2729, 2729, 2729, 2729, 2729,
3292      2729, 2729, 2729, 2729, 2730, 2730, 2730, 2730, 2730, 2730,
3293      2730, 2730, 2730, 2731, 2731, 2731, 2731, 2731, 2731, 2731,
3294      2731, 2731, 2732, 2732, 2732, 2732, 2732, 2732, 2732, 2732,
3295
3296      2732, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733,
3297      2734, 2734, 2734, 2734, 2734, 2734, 2734, 2734, 2734, 2735,
3298      2735, 2735, 2735, 2735, 2735, 2735, 2735, 2735, 2736, 2736,
3299      2736, 2736, 2736, 2736, 2736, 2736, 2736, 2737, 2737, 2737,
3300      2737, 2737, 2737, 2737, 2737, 2737, 2738, 2738, 2738, 2738,
3301      2738, 2738, 2738, 2738, 2738, 2739, 2739, 2739, 2739, 2739,
3302      2739, 2739, 2739, 2739, 2740, 2740, 2740, 2740, 2740, 2740,
3303      2740, 2740, 2740, 2741, 2741, 2741, 2741, 2741, 2741, 2741,
3304      2741, 2741, 2742, 2742, 2742, 2742, 2742, 2742, 2742, 2742,
3305      2742, 2743, 2743, 2743, 2743, 2743, 2743, 2743, 2743, 2743,
3306
3307      2744, 2744, 2744, 2744, 2744, 2744, 2744, 2744, 2744, 2745,
3308      2745, 2745,  558,  556,  550, 2745, 2746, 2746, 2746,  549,
3309       545,  541, 2746, 2747, 2747, 2747,  538,  534,  528, 2747,
3310      2748, 2748, 2748,  524,  516,  515, 2748, 2749, 2749, 2749,
3311       514,  513,  509, 2749, 2750, 2750, 2750,  505,  502,  501,
3312      2750, 2751, 2751, 2751,  500,  496,  490, 2751, 2752, 2752,
3313      2752,  489,  485,  481, 2752, 2753, 2753, 2753,  477,  476,
3314       472, 2753, 2754, 2754, 2754,  469,  468,  463, 2754, 2755,
3315      2755, 2755,  459,  455,  451, 2755, 2756, 2756, 2756,  450,
3316       449,  445, 2756, 2757, 2757, 2757,  439,  438,  434, 2757,
3317
3318      2758, 2758, 2758,  428,  427,  426, 2758, 2759, 2759, 2759,
3319       425,  424,  423, 2759, 2760, 2760, 2760,  422,  418,  409,
3320      2760, 2761, 2761, 2761,  408,  407,  405, 2761, 2762, 2762,
3321      2762,  401,  393,  392, 2762, 2763, 2763, 2763,  391,  390,
3322       389, 2763, 2764, 2764, 2764,  385,  379,  378, 2764, 2765,
3323      2765, 2765,  374,  368,  367, 2765, 2766, 2766, 2766,  363,
3324       359,  356, 2766, 2767, 2767, 2767,  355,  351,  347, 2767,
3325      2768, 2768, 2768, 2768, 2768, 2768, 2768,  344, 2768, 2769,
3326      2769, 2769,  343,  342,  338, 2769, 2770,  334,  328,  321,
3327      2770, 2771, 2771, 2771,  320,  316,  310, 2771, 2772,  309,
3328
3329       308,  304, 2772, 2773, 2773, 2773,  301,  300,  295, 2773,
3330      2774,  293,  292,  288, 2774, 2775, 2775, 2775,  285,  283,
3331       282, 2775, 2776,  281,  277,  271, 2776, 2777, 2777, 2777,
3332       267,  263,  255, 2777, 2778,  251,  247,  246, 2778, 2779,
3333      2779, 2779,  245,  239,  238, 2779, 2780,  236,  233,  221,
3334      2780, 2781, 2781, 2781,    0,    0,    0, 2781, 2782,    0,
3335         0,    0, 2782, 2783, 2783, 2783,    0,    0,    0, 2783,
3336      2784,    0,    0,    0, 2784, 2785, 2785, 2785,    0,    0,
3337         0, 2785, 2786,    0,    0,    0, 2786, 2787, 2787, 2787,
3338         0,    0,    0, 2787, 2788,    0,    0,    0, 2788, 2789,
3339
3340      2789, 2789,    0,    0,    0, 2789, 2790,    0,    0,    0,
3341      2790, 2791, 2791, 2791,    0,    0,    0, 2791, 2792,    0,
3342         0,    0, 2792, 2793, 2793, 2793,    0,    0,    0, 2793,
3343      2794,    0,    0,    0, 2794, 2795, 2795, 2795,    0,    0,
3344         0, 2795, 2796,    0,    0,    0, 2796, 2797, 2797, 2797,
3345         0,    0,    0, 2797, 2798,    0,    0,    0, 2798, 2799,
3346      2799, 2799,    0,    0,    0, 2799, 2800,    0,    0,    0,
3347      2800, 2801, 2801, 2801,    0,    0,    0, 2801, 2802,    0,
3348         0,    0, 2802, 2803, 2803, 2803,    0,    0,    0, 2803,
3349      2804,    0,    0,    0, 2804, 2805, 2805, 2805,    0,    0,
3350
3351         0, 2805, 2806,    0,    0,    0, 2806, 2807, 2807, 2807,
3352         0,    0,    0, 2807, 2808,    0,    0,    0, 2808, 2809,
3353      2809, 2809,    0,    0,    0, 2809, 2810,    0,    0,    0,
3354      2810, 2811, 2811, 2811,    0,    0,    0, 2811, 2812,    0,
3355         0,    0, 2812, 2813, 2813, 2813,    0,    0,    0, 2813,
3356      2814,    0,    0,    0, 2814, 2815, 2815, 2815, 2815, 2815,
3357      2815, 2815, 2815, 2815, 2816,    0,    0,    0,    0, 2816,
3358      2817, 2817, 2817,    0,    0,    0, 2817, 2818, 2818, 2818,
3359      2818,    0,    0, 2818, 2818, 2819, 2819, 2819,    0,    0,
3360         0, 2819, 2820, 2820, 2820, 2820,    0,    0, 2820, 2820,
3361
3362      2821, 2821, 2821,    0,    0,    0, 2821, 2822, 2822, 2822,
3363      2822,    0,    0, 2822, 2822, 2823, 2823, 2823,    0,    0,
3364         0, 2823, 2824, 2824, 2824, 2824,    0,    0, 2824, 2824,
3365      2825, 2825, 2825,    0,    0,    0, 2825, 2826, 2826, 2826,
3366      2826,    0,    0, 2826, 2826, 2827, 2827, 2827,    0,    0,
3367         0, 2827, 2828, 2828, 2828, 2828,    0,    0, 2828, 2828,
3368      2829, 2829, 2829,    0,    0,    0, 2829, 2830, 2830, 2830,
3369      2830,    0,    0, 2830, 2830, 2831, 2831, 2831,    0,    0,
3370         0, 2831, 2832, 2832, 2832, 2832,    0,    0, 2832, 2832,
3371      2833, 2833, 2833,    0,    0,    0, 2833, 2834, 2834, 2834,
3372
3373      2834,    0,    0, 2834, 2834, 2835, 2835, 2835,    0,    0,
3374         0, 2835, 2836, 2836, 2836, 2836,    0,    0, 2836, 2836,
3375      2837, 2837, 2837,    0,    0,    0, 2837, 2838, 2838, 2838,
3376      2838,    0,    0, 2838, 2838, 2839, 2839, 2839,    0,    0,
3377         0, 2839, 2840, 2840, 2840, 2840,    0,    0, 2840, 2840,
3378      2841, 2841, 2841,    0,    0,    0, 2841, 2842, 2842, 2842,
3379      2842,    0,    0, 2842, 2842, 2843, 2843, 2843,    0,    0,
3380         0, 2843, 2844, 2844, 2844, 2844,    0,    0, 2844, 2844,
3381      2845, 2845, 2845,    0,    0,    0, 2845, 2846, 2846, 2846,
3382      2846,    0,    0, 2846, 2846, 2847, 2847, 2847, 2847,    0,
3383
3384      2847,    0, 2847, 2848, 2848, 2848, 2848,    0,    0, 2848,
3385      2848, 2849, 2849, 2849, 2849,    0, 2849,    0, 2849, 2850,
3386      2850, 2850, 2850,    0,    0, 2850, 2850, 2851, 2851, 2851,
3387         0,    0,    0, 2851, 2852, 2852, 2852, 2852,    0,    0,
3388      2852, 2852, 2853, 2853, 2853, 2853,    0, 2853,    0, 2853,
3389      2854, 2854, 2854, 2854,    0,    0, 2854, 2854, 2855, 2855,
3390      2855,    0,    0,    0, 2855, 2856, 2856, 2856, 2856,    0,
3391         0, 2856, 2856, 2857, 2857, 2857,    0,    0,    0, 2857,
3392      2858, 2858, 2858, 2858,    0,    0, 2858, 2858, 2859, 2859,
3393      2859, 2859,    0,    0, 2859, 2859, 2860, 2860, 2860,    0,
3394
3395         0,    0, 2860, 2861, 2861, 2861, 2861,    0,    0, 2861,
3396      2861, 2862, 2862, 2862, 2862, 2862, 2862, 2862, 2862, 2862,
3397      2863,    0, 2863,    0,    0, 2863, 2864, 2864, 2864,    0,
3398         0,    0, 2864, 2865, 2865, 2865, 2865,    0,    0, 2865,
3399      2865, 2866, 2866, 2866, 2866,    0, 2866,    0, 2866, 2867,
3400      2867, 2867, 2867,    0,    0, 2867, 2867, 2868, 2868, 2868,
3401      2868,    0, 2868,    0, 2868, 2869, 2869, 2869, 2869,    0,
3402         0, 2869, 2869, 2870, 2870, 2870,    0,    0,    0, 2870,
3403      2871, 2871, 2871, 2871,    0,    0, 2871, 2871, 2872, 2872,
3404      2872,    0,    0,    0, 2872, 2873, 2873, 2873, 2873,    0,
3405
3406         0, 2873, 2873, 2874, 2874, 2874,    0,    0,    0, 2874,
3407      2875, 2875, 2875, 2875,    0,    0, 2875, 2875, 2876, 2876,
3408      2876,    0,    0,    0, 2876, 2877, 2877, 2877, 2877,    0,
3409         0, 2877, 2877, 2878, 2878, 2878,    0,    0,    0, 2878,
3410      2879, 2879, 2879, 2879,    0,    0, 2879, 2879, 2880, 2880,
3411      2880, 2880,    0, 2880,    0, 2880, 2881, 2881, 2881, 2881,
3412         0,    0, 2881, 2881, 2882, 2882, 2882, 2882,    0, 2882,
3413         0, 2882, 2883, 2883, 2883, 2883,    0,    0, 2883, 2883,
3414      2884, 2884, 2884,    0,    0,    0, 2884, 2885, 2885, 2885,
3415      2885,    0,    0, 2885, 2885, 2886, 2886, 2886,    0,    0,
3416
3417         0, 2886, 2887, 2887, 2887, 2887,    0,    0, 2887, 2887,
3418      2888, 2888, 2888,    0,    0,    0, 2888, 2889, 2889, 2889,
3419      2889,    0,    0, 2889, 2889, 2890, 2890, 2890,    0,    0,
3420         0, 2890, 2891, 2891, 2891, 2891,    0,    0, 2891, 2891,
3421      2892, 2892, 2892,    0,    0,    0, 2892, 2893, 2893, 2893,
3422      2893,    0,    0, 2893, 2893, 2894, 2894, 2894,    0,    0,
3423         0, 2894, 2895, 2895, 2895, 2895,    0,    0, 2895, 2895,
3424      2896, 2896, 2896,    0,    0,    0, 2896, 2897, 2897, 2897,
3425      2897,    0,    0, 2897, 2897, 2898, 2898, 2898,    0,    0,
3426         0, 2898, 2899, 2899, 2899, 2899,    0,    0, 2899, 2899,
3427
3428      2900, 2900, 2900,    0,    0,    0, 2900, 2901, 2901, 2901,
3429      2901,    0,    0, 2901, 2901, 2902, 2902, 2902,    0,    0,
3430         0, 2902, 2903, 2903, 2903, 2903,    0,    0, 2903, 2903,
3431      2904, 2904, 2904,    0,    0,    0, 2904, 2905, 2905, 2905,
3432      2905,    0,    0, 2905, 2905, 2906, 2906, 2906, 2906,    0,
3433         0, 2906, 2906, 2907, 2907, 2907,    0,    0,    0, 2907,
3434      2908, 2908, 2908, 2908,    0,    0, 2908, 2908, 2909, 2909,
3435      2909, 2909, 2909, 2909, 2909, 2909, 2909, 2910, 2910, 2910,
3436      2910, 2910, 2910, 2910, 2910, 2910, 2911, 2911, 2911,    0,
3437         0,    0, 2911, 2912, 2912, 2912, 2912,    0,    0, 2912,
3438
3439      2912, 2913, 2913, 2913, 2913,    0,    0, 2913, 2913, 2914,
3440      2914, 2914,    0,    0,    0, 2914, 2915, 2915, 2915, 2915,
3441         0,    0, 2915, 2915, 2916, 2916, 2916,    0,    0,    0,
3442      2916, 2917, 2917, 2917, 2917,    0,    0, 2917, 2917, 2918,
3443      2918, 2918,    0,    0,    0, 2918, 2919, 2919, 2919, 2919,
3444         0,    0, 2919, 2919, 2920, 2920, 2920,    0,    0,    0,
3445      2920, 2921, 2921, 2921,    0,    0,    0, 2921, 2922, 2922,
3446      2922, 2922,    0,    0, 2922, 2922, 2923, 2923, 2923,    0,
3447         0,    0, 2923, 2924, 2924, 2924, 2924,    0,    0, 2924,
3448      2924, 2925, 2925, 2925, 2925,    0,    0, 2925, 2925, 2926,
3449
3450      2926, 2926,    0,    0,    0, 2926, 2927, 2927, 2927, 2927,
3451         0,    0, 2927, 2927, 2928, 2928, 2928,    0,    0,    0,
3452      2928, 2929, 2929, 2929, 2929,    0,    0, 2929, 2929, 2930,
3453      2930, 2930,    0,    0,    0, 2930, 2931, 2931, 2931, 2931,
3454         0,    0, 2931, 2931, 2932, 2932, 2932,    0,    0,    0,
3455      2932, 2933, 2933, 2933, 2933,    0,    0, 2933, 2933, 2934,
3456      2934, 2934,    0,    0,    0, 2934, 2935, 2935, 2935, 2935,
3457         0,    0, 2935, 2935, 2936, 2936, 2936,    0,    0,    0,
3458      2936, 2937, 2937, 2937, 2937,    0,    0, 2937, 2937, 2938,
3459      2938, 2938,    0,    0,    0, 2938, 2939, 2939, 2939, 2939,
3460
3461         0,    0, 2939, 2939, 2940, 2940, 2940,    0,    0,    0,
3462      2940, 2941, 2941, 2941, 2941,    0,    0, 2941, 2941, 2942,
3463      2942, 2942,    0,    0,    0, 2942, 2943, 2943, 2943, 2943,
3464         0,    0, 2943, 2943, 2944, 2944, 2944,    0,    0,    0,
3465      2944, 2945, 2945, 2945, 2945,    0,    0, 2945, 2945, 2946,
3466      2946, 2946,    0,    0,    0, 2946, 2947, 2947, 2947, 2947,
3467         0,    0, 2947, 2947, 2948, 2948, 2948, 2948,    0, 2948,
3468         0, 2948, 2949, 2949, 2949, 2949,    0,    0, 2949, 2949,
3469      2950, 2950, 2950, 2950,    0,    0, 2950, 2950, 2951, 2951,
3470      2951, 2951,    0, 2951,    0, 2951, 2952, 2952, 2952, 2952,
3471
3472         0,    0, 2952, 2952, 2953, 2953, 2953, 2953, 2953, 2953,
3473      2953, 2953, 2953, 2954, 2954, 2954, 2954, 2954, 2954, 2954,
3474      2954, 2954, 2955, 2955, 2955,    0,    0,    0, 2955, 2956,
3475      2956, 2956, 2956,    0,    0, 2956, 2956, 2957, 2957, 2957,
3476      2957,    0,    0, 2957, 2957, 2958, 2958, 2958,    0,    0,
3477         0, 2958, 2959, 2959, 2959, 2959,    0,    0, 2959, 2959,
3478      2960, 2960, 2960,    0,    0,    0, 2960, 2961, 2961, 2961,
3479      2961,    0,    0, 2961, 2961, 2962, 2962, 2962,    0,    0,
3480         0, 2962, 2963, 2963, 2963, 2963,    0,    0, 2963, 2963,
3481      2964, 2964, 2964,    0,    0,    0, 2964, 2965, 2965, 2965,
3482
3483         0,    0,    0, 2965, 2966, 2966, 2966, 2966,    0,    0,
3484      2966, 2966, 2967, 2967, 2967, 2967,    0, 2967,    0, 2967,
3485      2968, 2968, 2968, 2968,    0,    0, 2968, 2968, 2969, 2969,
3486      2969, 2969,    0,    0, 2969, 2969, 2970, 2970, 2970, 2970,
3487         0, 2970,    0, 2970, 2971, 2971, 2971, 2971,    0,    0,
3488      2971, 2971, 2972, 2972, 2972,    0,    0,    0, 2972, 2973,
3489      2973, 2973, 2973,    0,    0, 2973, 2973, 2974, 2974, 2974,
3490         0,    0,    0, 2974, 2975, 2975, 2975, 2975,    0,    0,
3491      2975, 2975, 2976, 2976, 2976,    0,    0,    0, 2976, 2977,
3492      2977, 2977, 2977,    0,    0, 2977, 2977, 2978, 2978, 2978,
3493
3494         0,    0,    0, 2978, 2979, 2979, 2979, 2979,    0,    0,
3495      2979, 2979, 2980, 2980, 2980,    0,    0,    0, 2980, 2981,
3496      2981, 2981, 2981,    0,    0, 2981, 2981, 2982, 2982, 2982,
3497         0,    0,    0, 2982, 2983, 2983, 2983, 2983,    0,    0,
3498      2983, 2983, 2984, 2984, 2984, 2984,    0, 2984,    0, 2984,
3499      2985, 2985, 2985, 2985,    0,    0, 2985, 2985, 2986, 2986,
3500      2986,    0,    0,    0, 2986, 2987, 2987, 2987, 2987,    0,
3501         0, 2987, 2987, 2988, 2988, 2988, 2988,    0, 2988,    0,
3502      2988, 2989, 2989, 2989, 2989,    0,    0, 2989, 2989, 2990,
3503      2990, 2990,    0,    0,    0, 2990, 2991, 2991, 2991, 2991,
3504
3505         0,    0, 2991, 2991, 2992, 2992, 2992, 2992,    0,    0,
3506      2992, 2992, 2993, 2993, 2993, 2993,    0,    0, 2993, 2993,
3507      2994, 2994, 2994, 2994,    0,    0, 2994, 2994, 2995, 2995,
3508      2995, 2995, 2995, 2995, 2995, 2995, 2995, 2996, 2996, 2996,
3509      2996, 2996, 2996, 2996, 2996, 2996, 2997, 2997, 2997, 2997,
3510         0, 2997,    0, 2997, 2998, 2998, 2998, 2998,    0,    0,
3511      2998, 2998, 2999, 2999, 2999, 2999,    0,    0, 2999, 2999,
3512      3000, 3000, 3000,    0,    0,    0, 3000, 3001, 3001, 3001,
3513      3001,    0,    0, 3001, 3001, 3002, 3002, 3002,    0,    0,
3514         0, 3002, 3003, 3003, 3003, 3003,    0,    0, 3003, 3003,
3515
3516      3004, 3004, 3004, 3004,    0, 3004,    0, 3004, 3005, 3005,
3517      3005, 3005,    0,    0, 3005, 3005, 3006, 3006, 3006, 3006,
3518         0, 3006,    0, 3006, 3007, 3007, 3007, 3007,    0, 3007,
3519         0, 3007, 3008, 3008, 3008, 3008,    0,    0, 3008, 3008,
3520      3009, 3009, 3009, 3009,    0,    0, 3009, 3009, 3010, 3010,
3521      3010, 3010,    0,    0, 3010, 3010, 3011, 3011, 3011, 3011,
3522         0,    0, 3011, 3011, 3012, 3012, 3012,    0,    0,    0,
3523      3012, 3013, 3013, 3013,    0,    0,    0, 3013, 3014, 3014,
3524      3014, 3014,    0,    0, 3014, 3014, 3015, 3015, 3015,    0,
3525         0,    0, 3015, 3016, 3016, 3016,    0,    0,    0, 3016,
3526
3527      3017, 3017, 3017, 3017,    0,    0, 3017, 3017, 3018, 3018,
3528      3018,    0,    0,    0, 3018, 3019, 3019, 3019,    0,    0,
3529         0, 3019, 3020, 3020, 3020, 3020,    0,    0, 3020, 3020,
3530      3021, 3021, 3021,    0,    0,    0, 3021, 3022, 3022, 3022,
3531      3022,    0,    0, 3022, 3022, 3023, 3023, 3023,    0,    0,
3532         0, 3023, 3024, 3024, 3024, 3024,    0,    0, 3024, 3024,
3533      3025, 3025, 3025, 3025,    0,    0, 3025, 3025, 3026, 3026,
3534      3026,    0,    0,    0, 3026, 3027, 3027, 3027, 3027,    0,
3535         0, 3027, 3027, 3028, 3028, 3028, 3028,    0,    0, 3028,
3536      3028, 3029, 3029, 3029, 3029,    0,    0, 3029, 3029, 3030,
3537
3538      3030, 3030, 3030, 3030, 3030, 3030, 3030, 3030, 3031, 3031,
3539      3031, 3031, 3031, 3031, 3031, 3031, 3031, 3032, 3032, 3032,
3540      3032,    0,    0, 3032, 3032, 3033, 3033, 3033, 3033,    0,
3541         0, 3033, 3033, 3034, 3034, 3034,    0,    0,    0, 3034,
3542      3035, 3035, 3035,    0,    0,    0, 3035, 3036, 3036, 3036,
3543      3036,    0,    0, 3036, 3036, 3037, 3037, 3037, 3037,    0,
3544         0, 3037, 3037, 3038, 3038, 3038, 3038,    0,    0, 3038,
3545      3038, 3039, 3039, 3039, 3039,    0,    0, 3039, 3039, 3040,
3546      3040, 3040, 3040,    0,    0, 3040, 3040, 3041, 3041, 3041,
3547         0,    0,    0, 3041, 3042, 3042, 3042,    0,    0,    0,
3548
3549      3042, 3043, 3043, 3043, 3043,    0,    0, 3043, 3043, 3044,
3550      3044, 3044,    0,    0,    0, 3044, 3045, 3045, 3045,    0,
3551         0,    0, 3045, 3046, 3046, 3046, 3046,    0,    0, 3046,
3552      3046, 3047, 3047, 3047,    0,    0,    0, 3047, 3048, 3048,
3553      3048,    0,    0,    0, 3048, 3049, 3049, 3049,    0,    0,
3554         0, 3049, 3050, 3050, 3050, 3050,    0,    0, 3050, 3050,
3555      3051, 3051, 3051,    0,    0,    0, 3051, 3052, 3052, 3052,
3556      3052,    0,    0, 3052, 3052, 3053, 3053, 3053, 3053,    0,
3557         0, 3053, 3053, 3054, 3054, 3054, 3054,    0, 3054,    0,
3558      3054, 3055, 3055, 3055, 3055,    0,    0, 3055, 3055, 3056,
3559
3560      3056, 3056, 3056,    0,    0, 3056, 3056, 3057, 3057, 3057,
3561      3057,    0,    0, 3057, 3057, 3058, 3058, 3058, 3058, 3058,
3562      3058, 3058, 3058, 3058, 3059, 3059, 3059, 3059, 3059, 3059,
3563      3059, 3059, 3059, 3060, 3060, 3060, 3060,    0,    0, 3060,
3564      3060, 3061, 3061, 3061, 3061,    0,    0, 3061, 3061, 3062,
3565      3062, 3062,    0,    0,    0, 3062, 3063, 3063, 3063, 3063,
3566         0, 3063,    0, 3063, 3064, 3064, 3064, 3064, 3064, 3064,
3567      3064, 3064, 3064, 3065, 3065, 3065, 3065, 3065, 3065, 3065,
3568      3065, 3065, 3066, 3066, 3066, 3066, 3066, 3066, 3066, 3066,
3569      3066, 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067,
3570
3571      3068, 3068, 3068, 3068, 3068, 3068, 3068, 3068, 3068, 3069,
3572      3069, 3069, 3069, 3069, 3069, 3069, 3069, 3069, 2694, 2694,
3573      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
3574      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
3575      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
3576      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
3577      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
3578      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
3579      2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
3580      2694
3581
3582     } ;
3583
3584 /* Table of booleans, true if rule could match eol. */
3585 static yyconst flex_int32_t yy_rule_can_match_eol[460] =
3586     {   0,
3587 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
3588     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3589     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3590     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3591     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3592     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
3593     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
3594     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3595     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
3596     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3597     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3598     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
3599     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3600     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3601     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3602     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
3603     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3604     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
3605     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3606     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3607     1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 
3608     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 
3609     0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 
3610         };
3611
3612 static yy_state_type yy_last_accepting_state;
3613 static char *yy_last_accepting_cpos;
3614
3615 extern int surf_parse__flex_debug;
3616 int surf_parse__flex_debug = 0;
3617
3618 /* The intent behind this definition is that it'll catch
3619  * any uses of REJECT which flex missed.
3620  */
3621 #define REJECT reject_used_but_not_detected
3622 #define yymore() yymore_used_but_not_detected
3623 #define YY_MORE_ADJ 0
3624 #define YY_RESTORE_YY_MORE_OFFSET
3625 char *surf_parse_text;
3626 /* Validating XML processor for src/surf/simgrid.dtd.
3627  *
3628  * This program was generated with the FleXML XML processor generator.
3629  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
3630  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
3631  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
3632  * 
3633  * There are two, intertwined parts to this program, part A and part B.
3634  *
3635  * Part A
3636  * ------
3637  * 
3638  * Some parts, here collectively called "Part A", are found in the 
3639  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
3640  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
3641  *
3642  * You can redistribute, use, perform, display and/or modify "Part A"
3643  * provided the following two conditions hold:
3644  *
3645  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
3646  *    FleXML; without even the implied warranty of MERCHANTABILITY or
3647  *    FITNESS FOR A PARTICULAR PURPOSE.
3648  *
3649  * 2. The program distribution conditions do not in any way affect the
3650  *    distribution conditions of the FleXML system used to generate this
3651  *    file or any version of FleXML derived from that system.
3652  *
3653  * Notice that these are explicit rights granted to you for files
3654  * generated by the FleXML system.  For your rights in connection with
3655  * the FleXML system itself please consult the GNU General Public License.
3656  * 
3657  * Part B
3658  * ------
3659  * 
3660  * The other parts, here collectively called "Part B", and which came 
3661  * from the DTD used by FleXML to generate this program, can be 
3662  * distributed (or not, as the case may be) under the terms of whoever
3663  * wrote them, provided these terms respect and obey the two conditions 
3664  * above under the heading "Part A".
3665  *
3666  * The author of and contributors to FleXML specifically disclaim
3667  * any copyright interest in "Part B", unless "Part B" was written 
3668  * by the author of or contributors to FleXML.
3669  * 
3670  */
3671
3672 /* Version strings. */
3673 const char rcs_surfxml_flexml_skeleton[] =
3674  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
3675 const char rcs_surfxml_flexml[] =
3676  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
3677
3678 /* ANSI headers. */
3679 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
3680 #include <stdio.h>
3681 #include <string.h>
3682 #include <assert.h>
3683 #include <stdarg.h>
3684 #include <ctype.h>
3685      
3686 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3687 # ifndef __STRICT_ANSI__
3688 #  include <io.h>
3689 #  include <process.h>
3690 # endif
3691 #else
3692 # include <unistd.h>
3693 #endif
3694      
3695 #ifndef FLEXML_INDEXSTACKSIZE
3696 #define FLEXML_INDEXSTACKSIZE 1000
3697 #endif
3698
3699 /* Generated definitions. */
3700 #define FLEXML_yylineno
3701 #ifndef FLEXML_BUFFERSTACKSIZE
3702 #define FLEXML_BUFFERSTACKSIZE 1000000
3703 #endif
3704 #define FLEXML_NEED_BUFFERLIT
3705
3706 /* XML processor api. */
3707 /* FleXML-provided data. */
3708 int surfxml_pcdata_ix;
3709 extern char *surfxml_bufferstack;
3710 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
3711 AT_surfxml_mount_name AX_surfxml_mount_name;
3712 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
3713 short int surfxml_mount_name_isset;
3714 AT_surfxml_random_generator AX_surfxml_random_generator;
3715 #define A_surfxml_random_generator AX_surfxml_random_generator
3716 short int surfxml_random_generator_isset;
3717 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
3718 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
3719 short int surfxml_ASroute_gw_dst_isset;
3720 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
3721 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
3722 short int surfxml_trace_connect_element_isset;
3723 AT_surfxml_prop_id AX_surfxml_prop_id;
3724 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
3725 short int surfxml_prop_id_isset;
3726 AT_surfxml_host_id AX_surfxml_host_id;
3727 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
3728 short int surfxml_host_id_isset;
3729 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
3730 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
3731 short int surfxml_ASroute_symmetrical_isset;
3732 AT_surfxml_peer_lat AX_surfxml_peer_lat;
3733 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
3734 short int surfxml_peer_lat_isset;
3735 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
3736 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
3737 short int surfxml_link_latency_file_isset;
3738 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
3739 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
3740 short int surfxml_peer_availability_file_isset;
3741 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
3742 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
3743 short int surfxml_link_ctn_direction_isset;
3744 AT_surfxml_host_state AX_surfxml_host_state;
3745 #define A_surfxml_host_state AX_surfxml_host_state
3746 short int surfxml_host_state_isset;
3747 AT_surfxml_AS_id AX_surfxml_AS_id;
3748 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
3749 short int surfxml_AS_id_isset;
3750 AT_surfxml_host_power AX_surfxml_host_power;
3751 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
3752 short int surfxml_host_power_isset;
3753 AT_surfxml_router_id AX_surfxml_router_id;
3754 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
3755 short int surfxml_router_id_isset;
3756 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
3757 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
3758 short int surfxml_storage_type_id_isset;
3759 AT_surfxml_process_start_time AX_surfxml_process_start_time;
3760 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
3761 short int surfxml_process_start_time_isset;
3762 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
3763 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
3764 short int surfxml_cluster_suffix_isset;
3765 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
3766 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
3767 short int surfxml_ASroute_src_isset;
3768 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
3769 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
3770 short int surfxml_cluster_prefix_isset;
3771 AT_surfxml_trace_file AX_surfxml_trace_file;
3772 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
3773 short int surfxml_trace_file_isset;
3774 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
3775 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
3776 short int surfxml_link_sharing_policy_isset;
3777 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
3778 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
3779 short int surfxml_storage_typeId_isset;
3780 AT_surfxml_random_min AX_surfxml_random_min;
3781 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
3782 short int surfxml_random_min_isset;
3783 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
3784 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
3785 short int surfxml_link_ctn_id_isset;
3786 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
3787 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
3788 short int surfxml_peer_bw_out_isset;
3789 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
3790 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
3791 short int surfxml_cluster_availability_file_isset;
3792 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
3793 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
3794 short int surfxml_process_kill_time_isset;
3795 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
3796 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
3797 short int surfxml_cluster_bb_bw_isset;
3798 AT_surfxml_argument_value AX_surfxml_argument_value;
3799 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
3800 short int surfxml_argument_value_isset;
3801 AT_surfxml_link_state AX_surfxml_link_state;
3802 #define A_surfxml_link_state AX_surfxml_link_state
3803 short int surfxml_link_state_isset;
3804 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
3805 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
3806 short int surfxml_ASroute_gw_src_isset;
3807 AT_surfxml_AS_routing AX_surfxml_AS_routing;
3808 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
3809 short int surfxml_AS_routing_isset;
3810 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
3811 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
3812 short int surfxml_link_bandwidth_isset;
3813 AT_surfxml_cluster_id AX_surfxml_cluster_id;
3814 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
3815 short int surfxml_cluster_id_isset;
3816 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
3817 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
3818 short int surfxml_peer_bw_in_isset;
3819 AT_surfxml_random_mean AX_surfxml_random_mean;
3820 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
3821 short int surfxml_random_mean_isset;
3822 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
3823 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
3824 short int surfxml_cluster_bb_lat_isset;
3825 AT_surfxml_link_latency AX_surfxml_link_latency;
3826 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
3827 short int surfxml_link_latency_isset;
3828 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
3829 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
3830 short int surfxml_trace_connect_kind_isset;
3831 AT_surfxml_random_seed AX_surfxml_random_seed;
3832 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
3833 short int surfxml_random_seed_isset;
3834 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
3835 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
3836 short int surfxml_cluster_state_file_isset;
3837 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
3838 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
3839 short int surfxml_link_bandwidth_file_isset;
3840 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
3841 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
3842 short int surfxml_storage_type_content_isset;
3843 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
3844 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
3845 short int surfxml_route_symmetrical_isset;
3846 AT_surfxml_random_id AX_surfxml_random_id;
3847 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
3848 short int surfxml_random_id_isset;
3849 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
3850 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
3851 short int surfxml_mstorage_name_isset;
3852 AT_surfxml_random_max AX_surfxml_random_max;
3853 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
3854 short int surfxml_random_max_isset;
3855 AT_surfxml_link_id AX_surfxml_link_id;
3856 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
3857 short int surfxml_link_id_isset;
3858 AT_surfxml_process_host AX_surfxml_process_host;
3859 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
3860 short int surfxml_process_host_isset;
3861 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
3862 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
3863 short int surfxml_host_availability_file_isset;
3864 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
3865 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
3866 short int surfxml_cluster_lat_isset;
3867 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
3868 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
3869 short int surfxml_trace_periodicity_isset;
3870 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
3871 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
3872 short int surfxml_cluster_bb_sharing_policy_isset;
3873 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
3874 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
3875 short int surfxml_router_coordinates_isset;
3876 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
3877 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
3878 short int surfxml_peer_coordinates_isset;
3879 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
3880 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
3881 short int surfxml_peer_state_file_isset;
3882 AT_surfxml_prop_value AX_surfxml_prop_value;
3883 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
3884 short int surfxml_prop_value_isset;
3885 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
3886 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
3887 short int surfxml_mstorage_typeId_isset;
3888 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
3889 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
3890 short int surfxml_ASroute_dst_isset;
3891 AT_surfxml_link_state_file AX_surfxml_link_state_file;
3892 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
3893 short int surfxml_link_state_file_isset;
3894 AT_surfxml_random_radical AX_surfxml_random_radical;
3895 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
3896 short int surfxml_random_radical_isset;
3897 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
3898 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
3899 short int surfxml_trace_connect_trace_isset;
3900 AT_surfxml_mount_id AX_surfxml_mount_id;
3901 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
3902 short int surfxml_mount_id_isset;
3903 AT_surfxml_cluster_power AX_surfxml_cluster_power;
3904 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
3905 short int surfxml_cluster_power_isset;
3906 AT_surfxml_process_function AX_surfxml_process_function;
3907 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
3908 short int surfxml_process_function_isset;
3909 AT_surfxml_peer_id AX_surfxml_peer_id;
3910 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
3911 short int surfxml_peer_id_isset;
3912 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
3913 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
3914 short int surfxml_cluster_router_id_isset;
3915 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
3916 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
3917 short int surfxml_cluster_sharing_policy_isset;
3918 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
3919 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
3920 short int surfxml_bypassRoute_dst_isset;
3921 AT_surfxml_host_core AX_surfxml_host_core;
3922 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
3923 short int surfxml_host_core_isset;
3924 AT_surfxml_host_availability AX_surfxml_host_availability;
3925 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
3926 short int surfxml_host_availability_isset;
3927 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
3928 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
3929 short int surfxml_storage_type_model_isset;
3930 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
3931 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
3932 short int surfxml_bypassRoute_src_isset;
3933 AT_surfxml_route_src AX_surfxml_route_src;
3934 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
3935 short int surfxml_route_src_isset;
3936 AT_surfxml_bypassRoute_gw_dst AX_surfxml_bypassRoute_gw_dst;
3937 #define A_surfxml_bypassRoute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_dst)
3938 short int surfxml_bypassRoute_gw_dst_isset;
3939 AT_surfxml_storage_id AX_surfxml_storage_id;
3940 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
3941 short int surfxml_storage_id_isset;
3942 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
3943 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
3944 short int surfxml_host_coordinates_isset;
3945 AT_surfxml_trace_id AX_surfxml_trace_id;
3946 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
3947 short int surfxml_trace_id_isset;
3948 AT_surfxml_peer_power AX_surfxml_peer_power;
3949 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
3950 short int surfxml_peer_power_isset;
3951 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
3952 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
3953 short int surfxml_cluster_radical_isset;
3954 AT_surfxml_config_id AX_surfxml_config_id;
3955 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
3956 short int surfxml_config_id_isset;
3957 AT_surfxml_bypassRoute_gw_src AX_surfxml_bypassRoute_gw_src;
3958 #define A_surfxml_bypassRoute_gw_src (surfxml_bufferstack + AX_surfxml_bypassRoute_gw_src)
3959 short int surfxml_bypassRoute_gw_src_isset;
3960 AT_surfxml_include_file AX_surfxml_include_file;
3961 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
3962 short int surfxml_include_file_isset;
3963 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
3964 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
3965 short int surfxml_random_std_deviation_isset;
3966 AT_surfxml_cluster_core AX_surfxml_cluster_core;
3967 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
3968 short int surfxml_cluster_core_isset;
3969 AT_surfxml_host_state_file AX_surfxml_host_state_file;
3970 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
3971 short int surfxml_host_state_file_isset;
3972 AT_surfxml_route_dst AX_surfxml_route_dst;
3973 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
3974 short int surfxml_route_dst_isset;
3975 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
3976 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
3977 short int surfxml_cluster_bw_isset;
3978 AT_surfxml_platform_version AX_surfxml_platform_version;
3979 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
3980 short int surfxml_platform_version_isset;
3981
3982 /* XML state. */
3983 #ifdef FLEX_DEBUG
3984 # define ENTER(state)   debug_enter(state,#state)
3985 # define LEAVE          debug_leave()
3986 # define SET(state)     debug_set(state,#state)
3987   static void debug_enter(int, const char*);
3988   static void debug_leave(void);
3989   static void debug_set(int, const char*);
3990 #else
3991 # define ENTER(state)   (yy_push_state(state))
3992 # define LEAVE          (yy_pop_state())
3993 # define SET(state)     BEGIN(state)
3994 #endif
3995
3996 /* Generic actions. */
3997 #define SKIP    /*skip*/
3998 #define SUCCEED        CLEANUP; return 0
3999
4000 #define FAIL    return fail
4001 static int fail(const char*, ...);
4002
4003 enum {flexml_max_err_msg_size = 512};
4004 static char flexml_err_msg[flexml_max_err_msg_size];
4005 const char * surfxml_parse_err_msg()
4006 {
4007     return flexml_err_msg;
4008 }
4009 static void reset_surfxml_parse_err_msg()
4010 {
4011     flexml_err_msg[0] = '\0';
4012 }
4013
4014 /* Cleanup */
4015 static void cleanup(void);
4016 #define CLEANUP  cleanup()
4017
4018 /* Text buffer stack handling. */
4019 char *surfxml_bufferstack = NULL;
4020 static int blimit = FLEXML_BUFFERSTACKSIZE;
4021 static int bnext = 1;
4022
4023 static int *indexstack = NULL;
4024 static int ilimit = FLEXML_INDEXSTACKSIZE;
4025 static int inext = 1;
4026
4027 #define BUFFERSET(P)  (P = bnext)
4028 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4029 #define BUFFERDONE    (BUFFERPUTC('\0'))
4030
4031 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4032
4033 /* after this is called, there are at least 2 slots left in the stack */
4034 static int ck_blimit()
4035 {
4036      if (bnext >= blimit) {
4037          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4038          {
4039              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4040              assert(temp);
4041              surfxml_bufferstack = temp;
4042          }
4043      }
4044      return 0;
4045 }
4046
4047 /* after this is called, there are at least 2 slots left in the stack */
4048 static int ck_ilimit()
4049 {
4050      if (inext >= ilimit) {
4051          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4052          {
4053              int *temp = (int *) realloc(indexstack, ilimit);
4054              assert(temp);
4055              indexstack = temp;
4056          }
4057      }
4058      return 0;
4059 }
4060
4061 #ifdef FLEXML_NEED_BUFFERLIT
4062 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4063 {
4064   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4065   assert(s <= e); BUFFERSET(*pp);
4066   while (++s<e) {
4067     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4068     else BUFFERPUTC(*s);
4069   }
4070   BUFFERDONE;
4071 }
4072 #endif
4073
4074 static void pushbuffer(int p)
4075 {
4076     ck_ilimit();
4077     indexstack[inext++] = p;
4078     indexstack[inext++] = bnext;    
4079 }
4080
4081 static int popbuffer(void)
4082 {
4083     assert(inext >= 2);
4084     bnext = indexstack[--inext];
4085     return indexstack[--inext];
4086 }
4087
4088 /* General internal entities are `unput' back onto the input stream... */
4089 #define ENTITYTEXT(T) \
4090   { char *s = (T), *e = s+strlen(s);\
4091     while (--e >= s) { unput(*e); }}
4092
4093 /* Flex standard options. */
4094 #define YY_NO_INPUT 1
4095 /* Flex user-requested options. */
4096 /* XML character classes (currently restricted to ASCII). */
4097 /* "Common syntactic structures." */
4098 /* "Names and Tokens." */
4099 /* Miscellaneous. */
4100 /* Parser states (flex `exclusive start conditions'):
4101  *
4102  * PROLOG       the XML prolog of the document before <?xml...>
4103  * DOCTYPE      the XML prolog of the document after <?xml...>
4104  * EPILOG       after the root element
4105  * INCOMMENT    inside an XML comment <!--....-->
4106  * INPI         inside an XML PI <?...?>
4107  * VALUE1       inside a '...'-delimited literal
4108  * VALUE2       inside a "..."-delimited literal
4109  * CDATA        inside a <![CDATA[...] ]> section.
4110  * ROOT_<tag>   expect root element <tag>
4111  * AL_<tag>     inside the attribute list for <tag>
4112  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4113  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4114  */
4115
4116 /* State names. */
4117 const char* *surfxml_statenames=NULL;
4118
4119 #define INITIAL 0
4120 #define PROLOG 1
4121 #define DOCTYPE 2
4122 #define EPILOG 3
4123 #define INCOMMENT 4
4124 #define INPI 5
4125 #define VALUE1 6
4126 #define VALUE2 7
4127 #define CDATA 8
4128 #define ROOT_surfxml_platform 9
4129 #define AL_surfxml_platform 10
4130 #define S_surfxml_platform 11
4131 #define S_surfxml_platform_1 12
4132 #define S_surfxml_platform_2 13
4133 #define S_surfxml_platform_3 14
4134 #define S_surfxml_platform_4 15
4135 #define S_surfxml_platform_5 16
4136 #define S_surfxml_platform_6 17
4137 #define S_surfxml_platform_7 18
4138 #define S_surfxml_platform_8 19
4139 #define E_surfxml_platform 20
4140 #define AL_surfxml_include 21
4141 #define E_surfxml_include 22
4142 #define AL_surfxml_trace 23
4143 #define IN_trace 24
4144 #define AL_surfxml_random 25
4145 #define S_surfxml_random 26
4146 #define S_surfxml_random_1 27
4147 #define S_surfxml_random_2 28
4148 #define E_surfxml_random 29
4149 #define AL_surfxml_trace_connect 30
4150 #define E_surfxml_trace_connect 31
4151 #define AL_surfxml_AS 32
4152 #define S_surfxml_AS 33
4153 #define S_surfxml_AS_1 34
4154 #define S_surfxml_AS_2 35
4155 #define S_surfxml_AS_3 36
4156 #define S_surfxml_AS_4 37
4157 #define S_surfxml_AS_5 38
4158 #define S_surfxml_AS_6 39
4159 #define S_surfxml_AS_7 40
4160 #define S_surfxml_AS_8 41
4161 #define S_surfxml_AS_9 42
4162 #define S_surfxml_AS_10 43
4163 #define S_surfxml_AS_11 44
4164 #define S_surfxml_AS_12 45
4165 #define S_surfxml_AS_13 46
4166 #define E_surfxml_AS 47
4167 #define AL_surfxml_storage_type 48
4168 #define S_surfxml_storage_type 49
4169 #define S_surfxml_storage_type_1 50
4170 #define S_surfxml_storage_type_2 51
4171 #define E_surfxml_storage_type 52
4172 #define AL_surfxml_storage 53
4173 #define S_surfxml_storage 54
4174 #define S_surfxml_storage_1 55
4175 #define S_surfxml_storage_2 56
4176 #define E_surfxml_storage 57
4177 #define AL_surfxml_mount 58
4178 #define E_surfxml_mount 59
4179 #define AL_surfxml_mstorage 60
4180 #define E_surfxml_mstorage 61
4181 #define AL_surfxml_host 62
4182 #define S_surfxml_host 63
4183 #define S_surfxml_host_1 64
4184 #define S_surfxml_host_2 65
4185 #define E_surfxml_host 66
4186 #define AL_surfxml_cluster 67
4187 #define E_surfxml_cluster 68
4188 #define AL_surfxml_peer 69
4189 #define E_surfxml_peer 70
4190 #define AL_surfxml_router 71
4191 #define E_surfxml_router 72
4192 #define AL_surfxml_link 73
4193 #define S_surfxml_link 74
4194 #define S_surfxml_link_1 75
4195 #define S_surfxml_link_2 76
4196 #define E_surfxml_link 77
4197 #define AL_surfxml_route 78
4198 #define S_surfxml_route 79
4199 #define S_surfxml_route_1 80
4200 #define S_surfxml_route_2 81
4201 #define E_surfxml_route 82
4202 #define AL_surfxml_ASroute 83
4203 #define S_surfxml_ASroute 84
4204 #define S_surfxml_ASroute_1 85
4205 #define S_surfxml_ASroute_2 86
4206 #define E_surfxml_ASroute 87
4207 #define AL_surfxml_link_ctn 88
4208 #define E_surfxml_link_ctn 89
4209 #define AL_surfxml_bypassRoute 90
4210 #define S_surfxml_bypassRoute 91
4211 #define S_surfxml_bypassRoute_1 92
4212 #define S_surfxml_bypassRoute_2 93
4213 #define E_surfxml_bypassRoute 94
4214 #define AL_surfxml_process 95
4215 #define S_surfxml_process 96
4216 #define S_surfxml_process_1 97
4217 #define S_surfxml_process_2 98
4218 #define E_surfxml_process 99
4219 #define AL_surfxml_argument 100
4220 #define E_surfxml_argument 101
4221 #define AL_surfxml_config 102
4222 #define S_surfxml_config 103
4223 #define S_surfxml_config_1 104
4224 #define S_surfxml_config_2 105
4225 #define E_surfxml_config 106
4226 #define AL_surfxml_prop 107
4227 #define E_surfxml_prop 108
4228 #define IMPOSSIBLE 109
4229
4230 #ifndef YY_NO_UNISTD_H
4231 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4232  * down here because we want the user's section 1 to have been scanned first.
4233  * The user has a chance to override it with an option.
4234  */
4235 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4236 #  ifndef __STRICT_ANSI__
4237 #    include <io.h>
4238 #    include <process.h>
4239 #  endif
4240 #else
4241 #  include <unistd.h>
4242 #endif
4243 #endif
4244
4245 #ifndef YY_EXTRA_TYPE
4246 #define YY_EXTRA_TYPE void *
4247 #endif
4248
4249 static int yy_init_globals (void );
4250
4251 /* Accessor methods to globals.
4252    These are made visible to non-reentrant scanners for convenience. */
4253
4254 int surf_parse_lex_destroy (void );
4255
4256 int surf_parse_get_debug (void );
4257
4258 void surf_parse_set_debug (int debug_flag  );
4259
4260 YY_EXTRA_TYPE surf_parse_get_extra (void );
4261
4262 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4263
4264 FILE *surf_parse_get_in (void );
4265
4266 void surf_parse_set_in  (FILE * in_str  );
4267
4268 FILE *surf_parse_get_out (void );
4269
4270 void surf_parse_set_out  (FILE * out_str  );
4271
4272 int surf_parse_get_leng (void );
4273
4274 char *surf_parse_get_text (void );
4275
4276 int surf_parse_get_lineno (void );
4277
4278 void surf_parse_set_lineno (int line_number  );
4279
4280 /* Macros after this point can all be overridden by user definitions in
4281  * section 1.
4282  */
4283
4284 #ifndef YY_SKIP_YYWRAP
4285 #ifdef __cplusplus
4286 extern "C" int surf_parse_wrap (void );
4287 #else
4288 extern int surf_parse_wrap (void );
4289 #endif
4290 #endif
4291
4292 #ifndef yytext_ptr
4293 static void yy_flex_strncpy (char *,yyconst char *,int );
4294 #endif
4295
4296 #ifdef YY_NEED_STRLEN
4297 static int yy_flex_strlen (yyconst char * );
4298 #endif
4299
4300 #ifndef YY_NO_INPUT
4301
4302 #ifdef __cplusplus
4303 static int yyinput (void );
4304 #else
4305 static int input (void );
4306 #endif
4307
4308 #endif
4309
4310         static int yy_start_stack_ptr = 0;
4311         static int yy_start_stack_depth = 0;
4312         static int *yy_start_stack = NULL;
4313     
4314     static void yy_push_state (int new_state );
4315     
4316     static void yy_pop_state (void );
4317     
4318 /* Amount of stuff to slurp up with each read. */
4319 #ifndef YY_READ_BUF_SIZE
4320 #ifdef __ia64__
4321 /* On IA-64, the buffer size is 16k, not 8k */
4322 #define YY_READ_BUF_SIZE 16384
4323 #else
4324 #define YY_READ_BUF_SIZE 8192
4325 #endif /* __ia64__ */
4326 #endif
4327
4328 /* Copy whatever the last rule matched to the standard output. */
4329 #ifndef ECHO
4330 /* This used to be an fputs(), but since the string might contain NUL's,
4331  * we now use fwrite().
4332  */
4333 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
4334 #endif
4335
4336 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
4337  * is returned in "result".
4338  */
4339 #ifndef YY_INPUT
4340 #define YY_INPUT(buf,result,max_size) \
4341         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4342                 { \
4343                 int c = '*'; \
4344                 size_t n; \
4345                 for ( n = 0; n < max_size && \
4346                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
4347                         buf[n] = (char) c; \
4348                 if ( c == '\n' ) \
4349                         buf[n++] = (char) c; \
4350                 if ( c == EOF && ferror( surf_parse_in ) ) \
4351                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
4352                 result = n; \
4353                 } \
4354         else \
4355                 { \
4356                 errno=0; \
4357                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
4358                         { \
4359                         if( errno != EINTR) \
4360                                 { \
4361                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4362                                 break; \
4363                                 } \
4364                         errno=0; \
4365                         clearerr(surf_parse_in); \
4366                         } \
4367                 }\
4368 \
4369
4370 #endif
4371
4372 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4373  * we don't want an extra ';' after the "return" because that will cause
4374  * some compilers to complain about unreachable statements.
4375  */
4376 #ifndef yyterminate
4377 #define yyterminate() return YY_NULL
4378 #endif
4379
4380 /* Number of entries by which start-condition stack grows. */
4381 #ifndef YY_START_STACK_INCR
4382 #define YY_START_STACK_INCR 25
4383 #endif
4384
4385 /* Report a fatal error. */
4386 #ifndef YY_FATAL_ERROR
4387 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
4388 #endif
4389
4390 /* end tables serialization structures and prototypes */
4391
4392 /* Default declaration of generated scanner - a define so the user can
4393  * easily add parameters.
4394  */
4395 #ifndef YY_DECL
4396 #define YY_DECL_IS_OURS 1
4397
4398 extern int surf_parse_lex (void);
4399
4400 #define YY_DECL int surf_parse_lex (void)
4401 #endif /* !YY_DECL */
4402
4403 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
4404  * have been set up.
4405  */
4406 #ifndef YY_USER_ACTION
4407 #define YY_USER_ACTION
4408 #endif
4409
4410 /* Code executed at the end of each rule. */
4411 #ifndef YY_BREAK
4412 #define YY_BREAK break;
4413 #endif
4414
4415 #define YY_RULE_SETUP \
4416         YY_USER_ACTION
4417
4418 /** The main scanner function which does all the work.
4419  */
4420 YY_DECL
4421 {
4422         register yy_state_type yy_current_state;
4423         register char *yy_cp, *yy_bp;
4424         register int yy_act;
4425     
4426  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
4427  SET(PROLOG);
4428  reset_surfxml_parse_err_msg();
4429  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
4430  assert(surfxml_bufferstack);
4431  #ifdef FLEX_DEBUG
4432  {
4433      int i;
4434      for (i = 0; i < blimit; i++) {
4435          surfxml_bufferstack[i] = '\377';
4436      }
4437  }
4438  #endif
4439  surfxml_bufferstack[0] = '\0';
4440  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
4441  assert(indexstack);
4442  indexstack[0] = 0;
4443
4444   /* FleXML_init */
4445   bnext = inext = 1;
4446   surfxml_bufferliteral('\0', &bnext, "0.0");
4447   surfxml_bufferliteral('\0', &bnext, "2147483647");
4448   surfxml_bufferliteral('\0', &bnext, "1");
4449   surfxml_bufferliteral('\0', &bnext, "1.0");
4450   surfxml_bufferliteral('\0', &bnext, "1");
4451   surfxml_bufferliteral('\0', &bnext, "0.0");
4452   surfxml_bufferliteral('\0', &bnext, "-1.0");
4453   surfxml_bufferliteral('\0', &bnext, "-1.0");
4454   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
4455   surfxml_statenames[PROLOG] = NULL;
4456   surfxml_statenames[DOCTYPE] = NULL;
4457   surfxml_statenames[EPILOG] = NULL;
4458   surfxml_statenames[INCOMMENT] = NULL;
4459   surfxml_statenames[INPI] = NULL;
4460   surfxml_statenames[VALUE1] = NULL;
4461   surfxml_statenames[VALUE2] = NULL;
4462   surfxml_statenames[CDATA] = NULL;
4463   surfxml_statenames[ROOT_surfxml_platform] = NULL;
4464   surfxml_statenames[AL_surfxml_platform] = NULL;
4465   surfxml_statenames[S_surfxml_platform] = "platform";
4466   surfxml_statenames[S_surfxml_platform_1] = "platform";
4467   surfxml_statenames[S_surfxml_platform_2] = "platform";
4468   surfxml_statenames[S_surfxml_platform_3] = "platform";
4469   surfxml_statenames[S_surfxml_platform_4] = "platform";
4470   surfxml_statenames[S_surfxml_platform_5] = "platform";
4471   surfxml_statenames[S_surfxml_platform_6] = "platform";
4472   surfxml_statenames[S_surfxml_platform_7] = "platform";
4473   surfxml_statenames[S_surfxml_platform_8] = "platform";
4474   surfxml_statenames[E_surfxml_platform] = "platform";
4475   surfxml_statenames[AL_surfxml_include] = NULL;
4476   surfxml_statenames[E_surfxml_include] = "include";
4477   surfxml_statenames[AL_surfxml_trace] = NULL;
4478   surfxml_statenames[IN_trace] = "trace";
4479   surfxml_statenames[AL_surfxml_random] = NULL;
4480   surfxml_statenames[S_surfxml_random] = "random";
4481   surfxml_statenames[S_surfxml_random_1] = "random";
4482   surfxml_statenames[S_surfxml_random_2] = "random";
4483   surfxml_statenames[E_surfxml_random] = "random";
4484   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
4485   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
4486   surfxml_statenames[AL_surfxml_AS] = NULL;
4487   surfxml_statenames[S_surfxml_AS] = "AS";
4488   surfxml_statenames[S_surfxml_AS_1] = "AS";
4489   surfxml_statenames[S_surfxml_AS_2] = "AS";
4490   surfxml_statenames[S_surfxml_AS_3] = "AS";
4491   surfxml_statenames[S_surfxml_AS_4] = "AS";
4492   surfxml_statenames[S_surfxml_AS_5] = "AS";
4493   surfxml_statenames[S_surfxml_AS_6] = "AS";
4494   surfxml_statenames[S_surfxml_AS_7] = "AS";
4495   surfxml_statenames[S_surfxml_AS_8] = "AS";
4496   surfxml_statenames[S_surfxml_AS_9] = "AS";
4497   surfxml_statenames[S_surfxml_AS_10] = "AS";
4498   surfxml_statenames[S_surfxml_AS_11] = "AS";
4499   surfxml_statenames[S_surfxml_AS_12] = "AS";
4500   surfxml_statenames[S_surfxml_AS_13] = "AS";
4501   surfxml_statenames[E_surfxml_AS] = "AS";
4502   surfxml_statenames[AL_surfxml_storage_type] = NULL;
4503   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
4504   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
4505   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
4506   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
4507   surfxml_statenames[AL_surfxml_storage] = NULL;
4508   surfxml_statenames[S_surfxml_storage] = "storage";
4509   surfxml_statenames[S_surfxml_storage_1] = "storage";
4510   surfxml_statenames[S_surfxml_storage_2] = "storage";
4511   surfxml_statenames[E_surfxml_storage] = "storage";
4512   surfxml_statenames[AL_surfxml_mount] = NULL;
4513   surfxml_statenames[E_surfxml_mount] = "mount";
4514   surfxml_statenames[AL_surfxml_mstorage] = NULL;
4515   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
4516   surfxml_statenames[AL_surfxml_host] = NULL;
4517   surfxml_statenames[S_surfxml_host] = "host";
4518   surfxml_statenames[S_surfxml_host_1] = "host";
4519   surfxml_statenames[S_surfxml_host_2] = "host";
4520   surfxml_statenames[E_surfxml_host] = "host";
4521   surfxml_statenames[AL_surfxml_cluster] = NULL;
4522   surfxml_statenames[E_surfxml_cluster] = "cluster";
4523   surfxml_statenames[AL_surfxml_peer] = NULL;
4524   surfxml_statenames[E_surfxml_peer] = "peer";
4525   surfxml_statenames[AL_surfxml_router] = NULL;
4526   surfxml_statenames[E_surfxml_router] = "router";
4527   surfxml_statenames[AL_surfxml_link] = NULL;
4528   surfxml_statenames[S_surfxml_link] = "link";
4529   surfxml_statenames[S_surfxml_link_1] = "link";
4530   surfxml_statenames[S_surfxml_link_2] = "link";
4531   surfxml_statenames[E_surfxml_link] = "link";
4532   surfxml_statenames[AL_surfxml_route] = NULL;
4533   surfxml_statenames[S_surfxml_route] = "route";
4534   surfxml_statenames[S_surfxml_route_1] = "route";
4535   surfxml_statenames[S_surfxml_route_2] = "route";
4536   surfxml_statenames[E_surfxml_route] = "route";
4537   surfxml_statenames[AL_surfxml_ASroute] = NULL;
4538   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
4539   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
4540   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
4541   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
4542   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
4543   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
4544   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
4545   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
4546   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
4547   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
4548   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
4549   surfxml_statenames[AL_surfxml_process] = NULL;
4550   surfxml_statenames[S_surfxml_process] = "process";
4551   surfxml_statenames[S_surfxml_process_1] = "process";
4552   surfxml_statenames[S_surfxml_process_2] = "process";
4553   surfxml_statenames[E_surfxml_process] = "process";
4554   surfxml_statenames[AL_surfxml_argument] = NULL;
4555   surfxml_statenames[E_surfxml_argument] = "argument";
4556   surfxml_statenames[AL_surfxml_config] = NULL;
4557   surfxml_statenames[S_surfxml_config] = "config";
4558   surfxml_statenames[S_surfxml_config_1] = "config";
4559   surfxml_statenames[S_surfxml_config_2] = "config";
4560   surfxml_statenames[E_surfxml_config] = "config";
4561   surfxml_statenames[AL_surfxml_prop] = NULL;
4562   surfxml_statenames[E_surfxml_prop] = "prop";
4563   }
4564
4565  /* COMMENTS and PIs: handled uniformly for efficiency. */
4566
4567         if ( !(yy_init) )
4568                 {
4569                 (yy_init) = 1;
4570
4571 #ifdef YY_USER_INIT
4572                 YY_USER_INIT;
4573 #endif
4574
4575                 if ( ! (yy_start) )
4576                         (yy_start) = 1; /* first start state */
4577
4578                 if ( ! surf_parse_in )
4579                         surf_parse_in = stdin;
4580
4581                 if ( ! surf_parse_out )
4582                         surf_parse_out = stdout;
4583
4584                 if ( ! YY_CURRENT_BUFFER ) {
4585                         surf_parse_ensure_buffer_stack ();
4586                         YY_CURRENT_BUFFER_LVALUE =
4587                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4588                 }
4589
4590                 surf_parse__load_buffer_state( );
4591                 }
4592
4593         while ( 1 )             /* loops until end-of-file is reached */
4594                 {
4595                 yy_cp = (yy_c_buf_p);
4596
4597                 /* Support of surf_parse_text. */
4598                 *yy_cp = (yy_hold_char);
4599
4600                 /* yy_bp points to the position in yy_ch_buf of the start of
4601                  * the current run.
4602                  */
4603                 yy_bp = yy_cp;
4604
4605                 yy_current_state = (yy_start);
4606 yy_match:
4607                 do
4608                         {
4609                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
4610                         if ( yy_accept[yy_current_state] )
4611                                 {
4612                                 (yy_last_accepting_state) = yy_current_state;
4613                                 (yy_last_accepting_cpos) = yy_cp;
4614                                 }
4615                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4616                                 {
4617                                 yy_current_state = (int) yy_def[yy_current_state];
4618                                 if ( yy_current_state >= 2695 )
4619                                         yy_c = yy_meta[(unsigned int) yy_c];
4620                                 }
4621                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4622                         ++yy_cp;
4623                         }
4624                 while ( yy_base[yy_current_state] != 9619 );
4625
4626 yy_find_action:
4627                 yy_act = yy_accept[yy_current_state];
4628                 if ( yy_act == 0 )
4629                         { /* have to back up */
4630                         yy_cp = (yy_last_accepting_cpos);
4631                         yy_current_state = (yy_last_accepting_state);
4632                         yy_act = yy_accept[yy_current_state];
4633                         }
4634
4635                 YY_DO_BEFORE_ACTION;
4636
4637                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
4638                         {
4639                         int yyl;
4640                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
4641                                 if ( surf_parse_text[yyl] == '\n' )
4642                                            
4643     surf_parse_lineno++;
4644 ;
4645                         }
4646
4647 do_action:      /* This label is used only to access EOF actions. */
4648
4649                 switch ( yy_act )
4650         { /* beginning of action switch */
4651                         case 0: /* must back up */
4652                         /* undo the effects of YY_DO_BEFORE_ACTION */
4653                         *yy_cp = (yy_hold_char);
4654                         yy_cp = (yy_last_accepting_cpos);
4655                         yy_current_state = (yy_last_accepting_state);
4656                         goto yy_find_action;
4657
4658 case 1:
4659 YY_RULE_SETUP
4660 ENTER(INCOMMENT);
4661         YY_BREAK
4662 case 2:
4663 YY_RULE_SETUP
4664 ENTER(INPI);
4665         YY_BREAK
4666
4667 case 3:
4668 YY_RULE_SETUP
4669 LEAVE;
4670         YY_BREAK
4671 case 4:
4672 case 5:
4673 case 6:
4674 /* rule 6 can match eol */
4675 YY_RULE_SETUP
4676 SKIP;
4677         YY_BREAK
4678 case YY_STATE_EOF(INCOMMENT):
4679 FAIL("EOF in comment.");
4680         YY_BREAK
4681
4682 case 7:
4683 YY_RULE_SETUP
4684 LEAVE;
4685         YY_BREAK
4686 case 8:
4687 case 9:
4688 /* rule 9 can match eol */
4689 YY_RULE_SETUP
4690 SKIP;
4691         YY_BREAK
4692 case YY_STATE_EOF(INPI):
4693 FAIL("EOF in PI (processing instruction).");
4694         YY_BREAK
4695
4696 /* SPACES: skipped uniformly */
4697 case 10:
4698 /* rule 10 can match eol */
4699 YY_RULE_SETUP
4700 SKIP;
4701         YY_BREAK
4702 /* PROLOG: determine root element and process it. */
4703
4704 case 11:
4705 /* rule 11 can match eol */
4706 YY_RULE_SETUP
4707 SET(DOCTYPE); 
4708         YY_BREAK
4709 case 12:
4710 /* rule 12 can match eol */
4711 YY_RULE_SETUP
4712 FAIL("Bad declaration %s.",surf_parse_text);
4713         YY_BREAK
4714
4715 case 13:
4716 /* rule 13 can match eol */
4717 YY_RULE_SETUP
4718 SET(ROOT_surfxml_platform);
4719         YY_BREAK
4720 case 14:
4721 /* rule 14 can match eol */
4722 YY_RULE_SETUP
4723 FAIL("Bad declaration %s.",surf_parse_text);
4724         YY_BREAK
4725 case 15:
4726 YY_RULE_SETUP
4727 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
4728         YY_BREAK
4729 case YY_STATE_EOF(PROLOG):
4730 case YY_STATE_EOF(DOCTYPE):
4731 FAIL("EOF in prolog.");
4732         YY_BREAK
4733
4734 /* RULES DERIVED FROM DTD. */
4735 /* <!-- Small DTD for SURF based tools. -->  */
4736 case 16:
4737 /* rule 16 can match eol */
4738 YY_RULE_SETUP
4739 FAIL("Starting tag <platform> is not allowed here.");
4740         YY_BREAK
4741 case 17:
4742 /* rule 17 can match eol */
4743 YY_RULE_SETUP
4744 {
4745   AX_surfxml_platform_version = 1;
4746   surfxml_platform_version_isset = 0;
4747   ENTER(AL_surfxml_platform); pushbuffer(0);
4748   }
4749         YY_BREAK
4750
4751 case 18:
4752 /* rule 18 can match eol */
4753 YY_RULE_SETUP
4754 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");} surfxml_platform_version_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
4755         YY_BREAK
4756 case 19:
4757 /* rule 19 can match eol */
4758 YY_RULE_SETUP
4759 if (surfxml_platform_version_isset != 0) {FAIL("Multiple definition of attribute version in <surfxml_platform>");}  surfxml_platform_version_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
4760         YY_BREAK
4761 case 20:
4762 YY_RULE_SETUP
4763 {
4764   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
4765  }
4766         YY_BREAK
4767 case 21:
4768 YY_RULE_SETUP
4769 {
4770   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
4771   switch (YY_START) {
4772    case ROOT_surfxml_platform: SET(EPILOG); break;
4773   }
4774  }
4775         YY_BREAK
4776 case 22:
4777 YY_RULE_SETUP
4778 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
4779         YY_BREAK
4780 case 23:
4781 YY_RULE_SETUP
4782 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
4783         YY_BREAK
4784 case YY_STATE_EOF(AL_surfxml_platform):
4785 FAIL("EOF in attribute list of `platform' element.");
4786         YY_BREAK
4787
4788 case 24:
4789 /* rule 24 can match eol */
4790 YY_RULE_SETUP
4791 {
4792   LEAVE;
4793   ETag_surfxml_platform();
4794   popbuffer(); /* attribute */
4795   switch (YY_START) {
4796    case ROOT_surfxml_platform: SET(EPILOG); break;
4797   }
4798  }
4799         YY_BREAK
4800 case 25:
4801 /* rule 25 can match eol */
4802 YY_RULE_SETUP
4803 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
4804         YY_BREAK
4805 case 26:
4806 YY_RULE_SETUP
4807 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
4808         YY_BREAK
4809 case YY_STATE_EOF(S_surfxml_platform_8):
4810 case YY_STATE_EOF(S_surfxml_platform_1):
4811 case YY_STATE_EOF(S_surfxml_platform_3):
4812 case YY_STATE_EOF(S_surfxml_platform):
4813 case YY_STATE_EOF(S_surfxml_platform_4):
4814 case YY_STATE_EOF(S_surfxml_platform_6):
4815 case YY_STATE_EOF(E_surfxml_platform):
4816 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
4817         YY_BREAK
4818
4819 case 27:
4820 /* rule 27 can match eol */
4821 YY_RULE_SETUP
4822 FAIL("Starting tag <include> is not allowed here.");
4823         YY_BREAK
4824 case 28:
4825 /* rule 28 can match eol */
4826 YY_RULE_SETUP
4827 {
4828   AX_surfxml_include_file = 0;
4829   surfxml_include_file_isset = 0;
4830   ENTER(AL_surfxml_include); pushbuffer(0);
4831   }
4832         YY_BREAK
4833
4834 case 29:
4835 /* rule 29 can match eol */
4836 YY_RULE_SETUP
4837 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");} surfxml_include_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
4838         YY_BREAK
4839 case 30:
4840 /* rule 30 can match eol */
4841 YY_RULE_SETUP
4842 if (surfxml_include_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_include>");}  surfxml_include_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
4843         YY_BREAK
4844 case 31:
4845 YY_RULE_SETUP
4846 {
4847   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
4848   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(E_surfxml_include);
4849  }
4850         YY_BREAK
4851 case 32:
4852 YY_RULE_SETUP
4853 {
4854   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
4855   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
4856   switch (YY_START) {
4857    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4858    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
4859    case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
4860    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;
4861   }
4862  }
4863         YY_BREAK
4864 case 33:
4865 YY_RULE_SETUP
4866 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
4867         YY_BREAK
4868 case 34:
4869 YY_RULE_SETUP
4870 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
4871         YY_BREAK
4872 case YY_STATE_EOF(AL_surfxml_include):
4873 FAIL("EOF in attribute list of `include' element.");
4874         YY_BREAK
4875
4876 case 35:
4877 /* rule 35 can match eol */
4878 YY_RULE_SETUP
4879 {
4880   LEAVE;
4881   ETag_surfxml_include();
4882   popbuffer(); /* attribute */
4883   switch (YY_START) {
4884    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4885    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
4886    case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
4887    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;
4888   }
4889  }
4890         YY_BREAK
4891 case 36:
4892 /* rule 36 can match eol */
4893 YY_RULE_SETUP
4894 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
4895         YY_BREAK
4896 case 37:
4897 YY_RULE_SETUP
4898 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
4899         YY_BREAK
4900 case YY_STATE_EOF(E_surfxml_include):
4901 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
4902         YY_BREAK
4903
4904 case 38:
4905 /* rule 38 can match eol */
4906 YY_RULE_SETUP
4907 FAIL("Starting tag <trace> is not allowed here.");
4908         YY_BREAK
4909 case 39:
4910 /* rule 39 can match eol */
4911 YY_RULE_SETUP
4912 {
4913   AX_surfxml_trace_id = 0;
4914   surfxml_trace_id_isset = 0;
4915   AX_surfxml_trace_file = 0;
4916   surfxml_trace_file_isset = 0;
4917   AX_surfxml_trace_periodicity = 0;
4918   surfxml_trace_periodicity_isset = 0;
4919   ENTER(AL_surfxml_trace); pushbuffer(0);
4920   }
4921         YY_BREAK
4922
4923 case 40:
4924 /* rule 40 can match eol */
4925 YY_RULE_SETUP
4926 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");} surfxml_trace_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
4927         YY_BREAK
4928 case 41:
4929 /* rule 41 can match eol */
4930 YY_RULE_SETUP
4931 if (surfxml_trace_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_trace>");}  surfxml_trace_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
4932         YY_BREAK
4933 case 42:
4934 /* rule 42 can match eol */
4935 YY_RULE_SETUP
4936 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");} surfxml_trace_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
4937         YY_BREAK
4938 case 43:
4939 /* rule 43 can match eol */
4940 YY_RULE_SETUP
4941 if (surfxml_trace_file_isset != 0) {FAIL("Multiple definition of attribute file in <surfxml_trace>");}  surfxml_trace_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
4942         YY_BREAK
4943 case 44:
4944 /* rule 44 can match eol */
4945 YY_RULE_SETUP
4946 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");} surfxml_trace_periodicity_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
4947         YY_BREAK
4948 case 45:
4949 /* rule 45 can match eol */
4950 YY_RULE_SETUP
4951 if (surfxml_trace_periodicity_isset != 0) {FAIL("Multiple definition of attribute periodicity in <surfxml_trace>");}  surfxml_trace_periodicity_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
4952         YY_BREAK
4953 case 46:
4954 YY_RULE_SETUP
4955 {
4956   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
4957   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
4958   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
4959  }
4960         YY_BREAK
4961 case 47:
4962 YY_RULE_SETUP
4963 {
4964   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
4965   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
4966   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
4967   switch (YY_START) {
4968    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
4969    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
4970    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
4971    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
4972    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;
4973    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
4974   }
4975  }
4976         YY_BREAK
4977 case 48:
4978 YY_RULE_SETUP
4979 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
4980         YY_BREAK
4981 case 49:
4982 YY_RULE_SETUP
4983 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
4984         YY_BREAK
4985 case YY_STATE_EOF(AL_surfxml_trace):
4986 FAIL("EOF in attribute list of `trace' element.");
4987         YY_BREAK
4988
4989 case 50:
4990 /* rule 50 can match eol */
4991 YY_RULE_SETUP
4992 {
4993   LEAVE;
4994   BUFFERDONE;
4995   ETag_surfxml_trace();
4996   surfxml_pcdata_ix = popbuffer();
4997   popbuffer(); /* attribute */
4998   switch (YY_START) {
4999    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5000    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5001    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5002    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5003    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;
5004    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5005   }
5006  }
5007         YY_BREAK
5008 case 51:
5009 /* rule 51 can match eol */
5010 YY_RULE_SETUP
5011 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5012         YY_BREAK
5013 case YY_STATE_EOF(IN_trace):
5014 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5015         YY_BREAK
5016
5017 case 52:
5018 /* rule 52 can match eol */
5019 YY_RULE_SETUP
5020 FAIL("Starting tag <random> is not allowed here.");
5021         YY_BREAK
5022 case 53:
5023 /* rule 53 can match eol */
5024 YY_RULE_SETUP
5025 {
5026   AX_surfxml_random_id = 0;
5027   surfxml_random_id_isset = 0;
5028   AX_surfxml_random_min = 0;
5029   surfxml_random_min_isset = 0;
5030   AX_surfxml_random_max = 0;
5031   surfxml_random_max_isset = 0;
5032   AX_surfxml_random_mean = 0;
5033   surfxml_random_mean_isset = 0;
5034   AX_surfxml_random_std_deviation = 0;
5035   surfxml_random_std_deviation_isset = 0;
5036   AX_surfxml_random_seed = 5;
5037   surfxml_random_seed_isset = 0;
5038   AX_surfxml_random_radical = 0;
5039   surfxml_random_radical_isset = 0;
5040   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5041   surfxml_random_generator_isset = 0;
5042   ENTER(AL_surfxml_random); pushbuffer(0);
5043   }
5044         YY_BREAK
5045
5046 case 54:
5047 /* rule 54 can match eol */
5048 YY_RULE_SETUP
5049 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");} surfxml_random_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
5050         YY_BREAK
5051 case 55:
5052 /* rule 55 can match eol */
5053 YY_RULE_SETUP
5054 if (surfxml_random_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_random>");}  surfxml_random_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
5055         YY_BREAK
5056 case 56:
5057 /* rule 56 can match eol */
5058 YY_RULE_SETUP
5059 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");} surfxml_random_min_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
5060         YY_BREAK
5061 case 57:
5062 /* rule 57 can match eol */
5063 YY_RULE_SETUP
5064 if (surfxml_random_min_isset != 0) {FAIL("Multiple definition of attribute min in <surfxml_random>");}  surfxml_random_min_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
5065         YY_BREAK
5066 case 58:
5067 /* rule 58 can match eol */
5068 YY_RULE_SETUP
5069 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");} surfxml_random_max_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
5070         YY_BREAK
5071 case 59:
5072 /* rule 59 can match eol */
5073 YY_RULE_SETUP
5074 if (surfxml_random_max_isset != 0) {FAIL("Multiple definition of attribute max in <surfxml_random>");}  surfxml_random_max_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
5075         YY_BREAK
5076 case 60:
5077 /* rule 60 can match eol */
5078 YY_RULE_SETUP
5079 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");} surfxml_random_mean_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
5080         YY_BREAK
5081 case 61:
5082 /* rule 61 can match eol */
5083 YY_RULE_SETUP
5084 if (surfxml_random_mean_isset != 0) {FAIL("Multiple definition of attribute mean in <surfxml_random>");}  surfxml_random_mean_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
5085         YY_BREAK
5086 case 62:
5087 /* rule 62 can match eol */
5088 YY_RULE_SETUP
5089 if (surfxml_random_std_deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");} surfxml_random_std_deviation_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
5090         YY_BREAK
5091 case 63:
5092 /* rule 63 can match eol */
5093 YY_RULE_SETUP
5094 if (surfxml_random_std_deviation_isset != 0) {FAIL("Multiple definition of attribute std_deviation in <surfxml_random>");}  surfxml_random_std_deviation_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
5095         YY_BREAK
5096 case 64:
5097 /* rule 64 can match eol */
5098 YY_RULE_SETUP
5099 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");} surfxml_random_seed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_seed);
5100         YY_BREAK
5101 case 65:
5102 /* rule 65 can match eol */
5103 YY_RULE_SETUP
5104 if (surfxml_random_seed_isset != 0) {FAIL("Multiple definition of attribute seed in <surfxml_random>");}  surfxml_random_seed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_seed);
5105         YY_BREAK
5106 case 66:
5107 /* rule 66 can match eol */
5108 YY_RULE_SETUP
5109 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");} surfxml_random_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_random_radical);
5110         YY_BREAK
5111 case 67:
5112 /* rule 67 can match eol */
5113 YY_RULE_SETUP
5114 if (surfxml_random_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_random>");}  surfxml_random_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_random_radical);
5115         YY_BREAK
5116 case 68:
5117 /* rule 68 can match eol */
5118 case 69:
5119 /* rule 69 can match eol */
5120 YY_RULE_SETUP
5121 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5122         YY_BREAK
5123 case 70:
5124 /* rule 70 can match eol */
5125 case 71:
5126 /* rule 71 can match eol */
5127 YY_RULE_SETUP
5128 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5129         YY_BREAK
5130 case 72:
5131 /* rule 72 can match eol */
5132 case 73:
5133 /* rule 73 can match eol */
5134 YY_RULE_SETUP
5135 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5136         YY_BREAK
5137 case 74:
5138 /* rule 74 can match eol */
5139 case 75:
5140 /* rule 75 can match eol */
5141 YY_RULE_SETUP
5142 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5143         YY_BREAK
5144 case 76:
5145 YY_RULE_SETUP
5146 {
5147   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5148   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5149   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5150   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5151   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5152   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5153  }
5154         YY_BREAK
5155 case 77:
5156 YY_RULE_SETUP
5157 {
5158   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5159   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5160   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5161   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5162   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5163   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5164   switch (YY_START) {
5165    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5166   }
5167  }
5168         YY_BREAK
5169 case 78:
5170 YY_RULE_SETUP
5171 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5172         YY_BREAK
5173 case 79:
5174 YY_RULE_SETUP
5175 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5176         YY_BREAK
5177 case YY_STATE_EOF(AL_surfxml_random):
5178 FAIL("EOF in attribute list of `random' element.");
5179         YY_BREAK
5180
5181 case 80:
5182 /* rule 80 can match eol */
5183 YY_RULE_SETUP
5184 {
5185   LEAVE;
5186   ETag_surfxml_random();
5187   popbuffer(); /* attribute */
5188   switch (YY_START) {
5189    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5190   }
5191  }
5192         YY_BREAK
5193 case 81:
5194 /* rule 81 can match eol */
5195 YY_RULE_SETUP
5196 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5197         YY_BREAK
5198 case 82:
5199 YY_RULE_SETUP
5200 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5201         YY_BREAK
5202 case YY_STATE_EOF(S_surfxml_random):
5203 case YY_STATE_EOF(S_surfxml_random_2):
5204 case YY_STATE_EOF(E_surfxml_random):
5205 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5206         YY_BREAK
5207
5208 case 83:
5209 /* rule 83 can match eol */
5210 YY_RULE_SETUP
5211 FAIL("Starting tag <trace_connect> is not allowed here.");
5212         YY_BREAK
5213 case 84:
5214 /* rule 84 can match eol */
5215 YY_RULE_SETUP
5216 {
5217   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5218   surfxml_trace_connect_kind_isset = 0;
5219   AX_surfxml_trace_connect_trace = 0;
5220   surfxml_trace_connect_trace_isset = 0;
5221   AX_surfxml_trace_connect_element = 0;
5222   surfxml_trace_connect_element_isset = 0;
5223   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5224   }
5225         YY_BREAK
5226
5227 case 85:
5228 /* rule 85 can match eol */
5229 case 86:
5230 /* rule 86 can match eol */
5231 YY_RULE_SETUP
5232 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5233         YY_BREAK
5234 case 87:
5235 /* rule 87 can match eol */
5236 case 88:
5237 /* rule 88 can match eol */
5238 YY_RULE_SETUP
5239 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5240         YY_BREAK
5241 case 89:
5242 /* rule 89 can match eol */
5243 case 90:
5244 /* rule 90 can match eol */
5245 YY_RULE_SETUP
5246 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
5247         YY_BREAK
5248 case 91:
5249 /* rule 91 can match eol */
5250 case 92:
5251 /* rule 92 can match eol */
5252 YY_RULE_SETUP
5253 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
5254         YY_BREAK
5255 case 93:
5256 /* rule 93 can match eol */
5257 case 94:
5258 /* rule 94 can match eol */
5259 YY_RULE_SETUP
5260 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
5261         YY_BREAK
5262 case 95:
5263 /* rule 95 can match eol */
5264 YY_RULE_SETUP
5265 if (surfxml_trace_connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace_connect>");} surfxml_trace_connect_trace_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_trace);
5266         YY_BREAK
5267 case 96:
5268 /* rule 96 can match eol */
5269 YY_RULE_SETUP
5270 if (surfxml_trace_connect_trace_isset != 0) {FAIL("Multiple definition of attribute trace in <surfxml_trace_connect>");}  surfxml_trace_connect_trace_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_trace);
5271         YY_BREAK
5272 case 97:
5273 /* rule 97 can match eol */
5274 YY_RULE_SETUP
5275 if (surfxml_trace_connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace_connect>");} surfxml_trace_connect_element_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_connect_element);
5276         YY_BREAK
5277 case 98:
5278 /* rule 98 can match eol */
5279 YY_RULE_SETUP
5280 if (surfxml_trace_connect_element_isset != 0) {FAIL("Multiple definition of attribute element in <surfxml_trace_connect>");}  surfxml_trace_connect_element_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_connect_element);
5281         YY_BREAK
5282 case 99:
5283 YY_RULE_SETUP
5284 {
5285   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5286   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5287   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
5288  }
5289         YY_BREAK
5290 case 100:
5291 YY_RULE_SETUP
5292 {
5293   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5294   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5295   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
5296   switch (YY_START) {
5297    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5298    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5299    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5300    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5301    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;
5302    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5303   }
5304  }
5305         YY_BREAK
5306 case 101:
5307 YY_RULE_SETUP
5308 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
5309         YY_BREAK
5310 case 102:
5311 YY_RULE_SETUP
5312 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
5313         YY_BREAK
5314 case YY_STATE_EOF(AL_surfxml_trace_connect):
5315 FAIL("EOF in attribute list of `trace_connect' element.");
5316         YY_BREAK
5317
5318 case 103:
5319 /* rule 103 can match eol */
5320 YY_RULE_SETUP
5321 {
5322   LEAVE;
5323   ETag_surfxml_trace_connect();
5324   popbuffer(); /* attribute */
5325   switch (YY_START) {
5326    case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_8); break;
5327    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5328    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5329    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5330    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;
5331    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5332   }
5333  }
5334         YY_BREAK
5335 case 104:
5336 /* rule 104 can match eol */
5337 YY_RULE_SETUP
5338 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
5339         YY_BREAK
5340 case 105:
5341 YY_RULE_SETUP
5342 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
5343         YY_BREAK
5344 case YY_STATE_EOF(E_surfxml_trace_connect):
5345 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
5346         YY_BREAK
5347
5348 case 106:
5349 /* rule 106 can match eol */
5350 YY_RULE_SETUP
5351 FAIL("Starting tag <AS> is not allowed here.");
5352         YY_BREAK
5353 case 107:
5354 /* rule 107 can match eol */
5355 YY_RULE_SETUP
5356 {
5357   AX_surfxml_AS_id = 0;
5358   surfxml_AS_id_isset = 0;
5359   AX_surfxml_AS_routing = 0;
5360   surfxml_AS_routing_isset = 0;
5361   ENTER(AL_surfxml_AS); pushbuffer(0);
5362   }
5363         YY_BREAK
5364
5365 case 108:
5366 /* rule 108 can match eol */
5367 YY_RULE_SETUP
5368 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");} surfxml_AS_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_id);
5369         YY_BREAK
5370 case 109:
5371 /* rule 109 can match eol */
5372 YY_RULE_SETUP
5373 if (surfxml_AS_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_AS>");}  surfxml_AS_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_id);
5374         YY_BREAK
5375 case 110:
5376 /* rule 110 can match eol */
5377 YY_RULE_SETUP
5378 if (surfxml_AS_routing_isset != 0) {FAIL("Multiple definition of attribute routing in <surfxml_AS>");} surfxml_AS_routing_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_AS_routing);
5379         YY_BREAK
5380 case 111:
5381 /* rule 111 can match eol */
5382 YY_RULE_SETUP
5383 if (surfxml_AS_routing_isset != 0) {FAIL("Multiple definition of attribute routing in <surfxml_AS>");}  surfxml_AS_routing_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_AS_routing);
5384         YY_BREAK
5385 case 112:
5386 YY_RULE_SETUP
5387 {
5388   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5389   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5390   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5391  }
5392         YY_BREAK
5393 case 113:
5394 YY_RULE_SETUP
5395 {
5396   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5397   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5398   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5399   switch (YY_START) {
5400    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5401    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;
5402   }
5403  }
5404         YY_BREAK
5405 case 114:
5406 YY_RULE_SETUP
5407 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5408         YY_BREAK
5409 case 115:
5410 YY_RULE_SETUP
5411 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5412         YY_BREAK
5413 case YY_STATE_EOF(AL_surfxml_AS):
5414 FAIL("EOF in attribute list of `AS' element.");
5415         YY_BREAK
5416
5417 case 116:
5418 /* rule 116 can match eol */
5419 YY_RULE_SETUP
5420 {
5421   LEAVE;
5422   ETag_surfxml_AS();
5423   popbuffer(); /* attribute */
5424   switch (YY_START) {
5425    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5426    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;
5427   }
5428  }
5429         YY_BREAK
5430 case 117:
5431 /* rule 117 can match eol */
5432 YY_RULE_SETUP
5433 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5434         YY_BREAK
5435 case 118:
5436 YY_RULE_SETUP
5437 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5438         YY_BREAK
5439 case YY_STATE_EOF(S_surfxml_AS_9):
5440 case YY_STATE_EOF(S_surfxml_AS_1):
5441 case YY_STATE_EOF(S_surfxml_AS_11):
5442 case YY_STATE_EOF(S_surfxml_AS_6):
5443 case YY_STATE_EOF(E_surfxml_AS):
5444 case YY_STATE_EOF(S_surfxml_AS_3):
5445 case YY_STATE_EOF(S_surfxml_AS_13):
5446 case YY_STATE_EOF(S_surfxml_AS_8):
5447 case YY_STATE_EOF(S_surfxml_AS):
5448 case YY_STATE_EOF(S_surfxml_AS_4):
5449 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5450         YY_BREAK
5451
5452 case 119:
5453 /* rule 119 can match eol */
5454 YY_RULE_SETUP
5455 FAIL("Starting tag <storage_type> is not allowed here.");
5456         YY_BREAK
5457 case 120:
5458 /* rule 120 can match eol */
5459 YY_RULE_SETUP
5460 {
5461   AX_surfxml_storage_type_id = 0;
5462   surfxml_storage_type_id_isset = 0;
5463   AX_surfxml_storage_type_model = 0;
5464   surfxml_storage_type_model_isset = 0;
5465   AX_surfxml_storage_type_content = 0;
5466   surfxml_storage_type_content_isset = 0;
5467   ENTER(AL_surfxml_storage_type); pushbuffer(0);
5468   }
5469         YY_BREAK
5470
5471 case 121:
5472 /* rule 121 can match eol */
5473 YY_RULE_SETUP
5474 if (surfxml_storage_type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage_type>");} surfxml_storage_type_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_id);
5475         YY_BREAK
5476 case 122:
5477 /* rule 122 can match eol */
5478 YY_RULE_SETUP
5479 if (surfxml_storage_type_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage_type>");}  surfxml_storage_type_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_id);
5480         YY_BREAK
5481 case 123:
5482 /* rule 123 can match eol */
5483 YY_RULE_SETUP
5484 if (surfxml_storage_type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage_type>");} surfxml_storage_type_model_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_model);
5485         YY_BREAK
5486 case 124:
5487 /* rule 124 can match eol */
5488 YY_RULE_SETUP
5489 if (surfxml_storage_type_model_isset != 0) {FAIL("Multiple definition of attribute model in <surfxml_storage_type>");}  surfxml_storage_type_model_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_model);
5490         YY_BREAK
5491 case 125:
5492 /* rule 125 can match eol */
5493 YY_RULE_SETUP
5494 if (surfxml_storage_type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage_type>");} surfxml_storage_type_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_content);
5495         YY_BREAK
5496 case 126:
5497 /* rule 126 can match eol */
5498 YY_RULE_SETUP
5499 if (surfxml_storage_type_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage_type>");}  surfxml_storage_type_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_content);
5500         YY_BREAK
5501 case 127:
5502 YY_RULE_SETUP
5503 {
5504   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5505   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5506   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
5507  }
5508         YY_BREAK
5509 case 128:
5510 YY_RULE_SETUP
5511 {
5512   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5513   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5514   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
5515   switch (YY_START) {
5516    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5517    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5518   }
5519  }
5520         YY_BREAK
5521 case 129:
5522 YY_RULE_SETUP
5523 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
5524         YY_BREAK
5525 case 130:
5526 YY_RULE_SETUP
5527 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
5528         YY_BREAK
5529 case YY_STATE_EOF(AL_surfxml_storage_type):
5530 FAIL("EOF in attribute list of `storage_type' element.");
5531         YY_BREAK
5532
5533 case 131:
5534 /* rule 131 can match eol */
5535 YY_RULE_SETUP
5536 {
5537   LEAVE;
5538   ETag_surfxml_storage_type();
5539   popbuffer(); /* attribute */
5540   switch (YY_START) {
5541    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5542    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5543   }
5544  }
5545         YY_BREAK
5546 case 132:
5547 /* rule 132 can match eol */
5548 YY_RULE_SETUP
5549 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
5550         YY_BREAK
5551 case 133:
5552 YY_RULE_SETUP
5553 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
5554         YY_BREAK
5555 case YY_STATE_EOF(E_surfxml_storage_type):
5556 case YY_STATE_EOF(S_surfxml_storage_type_2):
5557 case YY_STATE_EOF(S_surfxml_storage_type):
5558 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
5559         YY_BREAK
5560
5561 case 134:
5562 /* rule 134 can match eol */
5563 YY_RULE_SETUP
5564 FAIL("Starting tag <storage> is not allowed here.");
5565         YY_BREAK
5566 case 135:
5567 /* rule 135 can match eol */
5568 YY_RULE_SETUP
5569 {
5570   AX_surfxml_storage_id = 0;
5571   surfxml_storage_id_isset = 0;
5572   AX_surfxml_storage_typeId = 0;
5573   surfxml_storage_typeId_isset = 0;
5574   ENTER(AL_surfxml_storage); pushbuffer(0);
5575   }
5576         YY_BREAK
5577
5578 case 136:
5579 /* rule 136 can match eol */
5580 YY_RULE_SETUP
5581 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");} surfxml_storage_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_id);
5582         YY_BREAK
5583 case 137:
5584 /* rule 137 can match eol */
5585 YY_RULE_SETUP
5586 if (surfxml_storage_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_storage>");}  surfxml_storage_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_id);
5587         YY_BREAK
5588 case 138:
5589 /* rule 138 can match eol */
5590 YY_RULE_SETUP
5591 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");} surfxml_storage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_typeId);
5592         YY_BREAK
5593 case 139:
5594 /* rule 139 can match eol */
5595 YY_RULE_SETUP
5596 if (surfxml_storage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_storage>");}  surfxml_storage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_typeId);
5597         YY_BREAK
5598 case 140:
5599 YY_RULE_SETUP
5600 {
5601   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5602   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5603   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
5604  }
5605         YY_BREAK
5606 case 141:
5607 YY_RULE_SETUP
5608 {
5609   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5610   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5611   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
5612   switch (YY_START) {
5613    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5614    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5615   }
5616  }
5617         YY_BREAK
5618 case 142:
5619 YY_RULE_SETUP
5620 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
5621         YY_BREAK
5622 case 143:
5623 YY_RULE_SETUP
5624 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
5625         YY_BREAK
5626 case YY_STATE_EOF(AL_surfxml_storage):
5627 FAIL("EOF in attribute list of `storage' element.");
5628         YY_BREAK
5629
5630 case 144:
5631 /* rule 144 can match eol */
5632 YY_RULE_SETUP
5633 {
5634   LEAVE;
5635   ETag_surfxml_storage();
5636   popbuffer(); /* attribute */
5637   switch (YY_START) {
5638    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5639    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5640   }
5641  }
5642         YY_BREAK
5643 case 145:
5644 /* rule 145 can match eol */
5645 YY_RULE_SETUP
5646 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
5647         YY_BREAK
5648 case 146:
5649 YY_RULE_SETUP
5650 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
5651         YY_BREAK
5652 case YY_STATE_EOF(E_surfxml_storage):
5653 case YY_STATE_EOF(S_surfxml_storage):
5654 case YY_STATE_EOF(S_surfxml_storage_2):
5655 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
5656         YY_BREAK
5657
5658 case 147:
5659 /* rule 147 can match eol */
5660 YY_RULE_SETUP
5661 FAIL("Starting tag <mount> is not allowed here.");
5662         YY_BREAK
5663 case 148:
5664 /* rule 148 can match eol */
5665 YY_RULE_SETUP
5666 {
5667   AX_surfxml_mount_id = 0;
5668   surfxml_mount_id_isset = 0;
5669   AX_surfxml_mount_name = 0;
5670   surfxml_mount_name_isset = 0;
5671   ENTER(AL_surfxml_mount); pushbuffer(0);
5672   }
5673         YY_BREAK
5674
5675 case 149:
5676 /* rule 149 can match eol */
5677 YY_RULE_SETUP
5678 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");} surfxml_mount_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
5679         YY_BREAK
5680 case 150:
5681 /* rule 150 can match eol */
5682 YY_RULE_SETUP
5683 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");}  surfxml_mount_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
5684         YY_BREAK
5685 case 151:
5686 /* rule 151 can match eol */
5687 YY_RULE_SETUP
5688 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");} surfxml_mount_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_name);
5689         YY_BREAK
5690 case 152:
5691 /* rule 152 can match eol */
5692 YY_RULE_SETUP
5693 if (surfxml_mount_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mount>");}  surfxml_mount_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_name);
5694         YY_BREAK
5695 case 153:
5696 YY_RULE_SETUP
5697 {
5698   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
5699   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
5700   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
5701  }
5702         YY_BREAK
5703 case 154:
5704 YY_RULE_SETUP
5705 {
5706   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
5707   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
5708   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
5709   switch (YY_START) {
5710    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5711   }
5712  }
5713         YY_BREAK
5714 case 155:
5715 YY_RULE_SETUP
5716 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
5717         YY_BREAK
5718 case 156:
5719 YY_RULE_SETUP
5720 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
5721         YY_BREAK
5722 case YY_STATE_EOF(AL_surfxml_mount):
5723 FAIL("EOF in attribute list of `mount' element.");
5724         YY_BREAK
5725
5726 case 157:
5727 /* rule 157 can match eol */
5728 YY_RULE_SETUP
5729 {
5730   LEAVE;
5731   ETag_surfxml_mount();
5732   popbuffer(); /* attribute */
5733   switch (YY_START) {
5734    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5735   }
5736  }
5737         YY_BREAK
5738 case 158:
5739 /* rule 158 can match eol */
5740 YY_RULE_SETUP
5741 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
5742         YY_BREAK
5743 case 159:
5744 YY_RULE_SETUP
5745 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
5746         YY_BREAK
5747 case YY_STATE_EOF(E_surfxml_mount):
5748 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
5749         YY_BREAK
5750
5751 case 160:
5752 /* rule 160 can match eol */
5753 YY_RULE_SETUP
5754 FAIL("Starting tag <mstorage> is not allowed here.");
5755         YY_BREAK
5756 case 161:
5757 /* rule 161 can match eol */
5758 YY_RULE_SETUP
5759 {
5760   AX_surfxml_mstorage_typeId = 0;
5761   surfxml_mstorage_typeId_isset = 0;
5762   AX_surfxml_mstorage_name = 0;
5763   surfxml_mstorage_name_isset = 0;
5764   ENTER(AL_surfxml_mstorage); pushbuffer(0);
5765   }
5766         YY_BREAK
5767
5768 case 162:
5769 /* rule 162 can match eol */
5770 YY_RULE_SETUP
5771 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
5772         YY_BREAK
5773 case 163:
5774 /* rule 163 can match eol */
5775 YY_RULE_SETUP
5776 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
5777         YY_BREAK
5778 case 164:
5779 /* rule 164 can match eol */
5780 YY_RULE_SETUP
5781 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
5782         YY_BREAK
5783 case 165:
5784 /* rule 165 can match eol */
5785 YY_RULE_SETUP
5786 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
5787         YY_BREAK
5788 case 166:
5789 YY_RULE_SETUP
5790 {
5791   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
5792   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
5793   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
5794  }
5795         YY_BREAK
5796 case 167:
5797 YY_RULE_SETUP
5798 {
5799   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
5800   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
5801   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
5802   switch (YY_START) {
5803    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5804   }
5805  }
5806         YY_BREAK
5807 case 168:
5808 YY_RULE_SETUP
5809 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
5810         YY_BREAK
5811 case 169:
5812 YY_RULE_SETUP
5813 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
5814         YY_BREAK
5815 case YY_STATE_EOF(AL_surfxml_mstorage):
5816 FAIL("EOF in attribute list of `mstorage' element.");
5817         YY_BREAK
5818
5819 case 170:
5820 /* rule 170 can match eol */
5821 YY_RULE_SETUP
5822 {
5823   LEAVE;
5824   ETag_surfxml_mstorage();
5825   popbuffer(); /* attribute */
5826   switch (YY_START) {
5827    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5828   }
5829  }
5830         YY_BREAK
5831 case 171:
5832 /* rule 171 can match eol */
5833 YY_RULE_SETUP
5834 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
5835         YY_BREAK
5836 case 172:
5837 YY_RULE_SETUP
5838 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
5839         YY_BREAK
5840 case YY_STATE_EOF(E_surfxml_mstorage):
5841 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
5842         YY_BREAK
5843
5844 case 173:
5845 /* rule 173 can match eol */
5846 YY_RULE_SETUP
5847 FAIL("Starting tag <host> is not allowed here.");
5848         YY_BREAK
5849 case 174:
5850 /* rule 174 can match eol */
5851 YY_RULE_SETUP
5852 {
5853   AX_surfxml_host_id = 0;
5854   surfxml_host_id_isset = 0;
5855   AX_surfxml_host_power = 0;
5856   surfxml_host_power_isset = 0;
5857   AX_surfxml_host_core = 16;
5858   surfxml_host_core_isset = 0;
5859   AX_surfxml_host_availability = 18;
5860   surfxml_host_availability_isset = 0;
5861   AX_surfxml_host_availability_file = 0;
5862   surfxml_host_availability_file_isset = 0;
5863   AX_surfxml_host_state = A_surfxml_host_state_ON;
5864   surfxml_host_state_isset = 0;
5865   AX_surfxml_host_state_file = 0;
5866   surfxml_host_state_file_isset = 0;
5867   AX_surfxml_host_coordinates = 0;
5868   surfxml_host_coordinates_isset = 0;
5869   ENTER(AL_surfxml_host); pushbuffer(0);
5870   }
5871         YY_BREAK
5872
5873 case 175:
5874 /* rule 175 can match eol */
5875 YY_RULE_SETUP
5876 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");} surfxml_host_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
5877         YY_BREAK
5878 case 176:
5879 /* rule 176 can match eol */
5880 YY_RULE_SETUP
5881 if (surfxml_host_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host>");}  surfxml_host_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
5882         YY_BREAK
5883 case 177:
5884 /* rule 177 can match eol */
5885 YY_RULE_SETUP
5886 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
5887         YY_BREAK
5888 case 178:
5889 /* rule 178 can match eol */
5890 YY_RULE_SETUP
5891 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
5892         YY_BREAK
5893 case 179:
5894 /* rule 179 can match eol */
5895 YY_RULE_SETUP
5896 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");} surfxml_host_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_core);
5897         YY_BREAK
5898 case 180:
5899 /* rule 180 can match eol */
5900 YY_RULE_SETUP
5901 if (surfxml_host_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_host>");}  surfxml_host_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_core);
5902         YY_BREAK
5903 case 181:
5904 /* rule 181 can match eol */
5905 YY_RULE_SETUP
5906 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
5907         YY_BREAK
5908 case 182:
5909 /* rule 182 can match eol */
5910 YY_RULE_SETUP
5911 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
5912         YY_BREAK
5913 case 183:
5914 /* rule 183 can match eol */
5915 YY_RULE_SETUP
5916 if (surfxml_host_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");} surfxml_host_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
5917         YY_BREAK
5918 case 184:
5919 /* rule 184 can match eol */
5920 YY_RULE_SETUP
5921 if (surfxml_host_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_host>");}  surfxml_host_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
5922         YY_BREAK
5923 case 185:
5924 /* rule 185 can match eol */
5925 case 186:
5926 /* rule 186 can match eol */
5927 YY_RULE_SETUP
5928 A_surfxml_host_state = A_surfxml_host_state_ON;
5929         YY_BREAK
5930 case 187:
5931 /* rule 187 can match eol */
5932 case 188:
5933 /* rule 188 can match eol */
5934 YY_RULE_SETUP
5935 A_surfxml_host_state = A_surfxml_host_state_OFF;
5936         YY_BREAK
5937 case 189:
5938 /* rule 189 can match eol */
5939 YY_RULE_SETUP
5940 if (surfxml_host_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");} surfxml_host_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
5941         YY_BREAK
5942 case 190:
5943 /* rule 190 can match eol */
5944 YY_RULE_SETUP
5945 if (surfxml_host_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_host>");}  surfxml_host_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
5946         YY_BREAK
5947 case 191:
5948 /* rule 191 can match eol */
5949 YY_RULE_SETUP
5950 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");} surfxml_host_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_coordinates);
5951         YY_BREAK
5952 case 192:
5953 /* rule 192 can match eol */
5954 YY_RULE_SETUP
5955 if (surfxml_host_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_host>");}  surfxml_host_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_coordinates);
5956         YY_BREAK
5957 case 193:
5958 YY_RULE_SETUP
5959 {
5960   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
5961   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
5962   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
5963  }
5964         YY_BREAK
5965 case 194:
5966 YY_RULE_SETUP
5967 {
5968   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
5969   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
5970   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
5971   switch (YY_START) {
5972    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5973   }
5974  }
5975         YY_BREAK
5976 case 195:
5977 YY_RULE_SETUP
5978 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
5979         YY_BREAK
5980 case 196:
5981 YY_RULE_SETUP
5982 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
5983         YY_BREAK
5984 case YY_STATE_EOF(AL_surfxml_host):
5985 FAIL("EOF in attribute list of `host' element.");
5986         YY_BREAK
5987
5988 case 197:
5989 /* rule 197 can match eol */
5990 YY_RULE_SETUP
5991 {
5992   LEAVE;
5993   ETag_surfxml_host();
5994   popbuffer(); /* attribute */
5995   switch (YY_START) {
5996    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5997   }
5998  }
5999         YY_BREAK
6000 case 198:
6001 /* rule 198 can match eol */
6002 YY_RULE_SETUP
6003 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6004         YY_BREAK
6005 case 199:
6006 YY_RULE_SETUP
6007 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6008         YY_BREAK
6009 case YY_STATE_EOF(S_surfxml_host):
6010 case YY_STATE_EOF(E_surfxml_host):
6011 case YY_STATE_EOF(S_surfxml_host_2):
6012 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6013         YY_BREAK
6014
6015 case 200:
6016 /* rule 200 can match eol */
6017 YY_RULE_SETUP
6018 FAIL("Starting tag <cluster> is not allowed here.");
6019         YY_BREAK
6020 case 201:
6021 /* rule 201 can match eol */
6022 YY_RULE_SETUP
6023 {
6024   AX_surfxml_cluster_id = 0;
6025   surfxml_cluster_id_isset = 0;
6026   AX_surfxml_cluster_prefix = 0;
6027   surfxml_cluster_prefix_isset = 0;
6028   AX_surfxml_cluster_suffix = 0;
6029   surfxml_cluster_suffix_isset = 0;
6030   AX_surfxml_cluster_radical = 0;
6031   surfxml_cluster_radical_isset = 0;
6032   AX_surfxml_cluster_power = 0;
6033   surfxml_cluster_power_isset = 0;
6034   AX_surfxml_cluster_core = 22;
6035   surfxml_cluster_core_isset = 0;
6036   AX_surfxml_cluster_bw = 0;
6037   surfxml_cluster_bw_isset = 0;
6038   AX_surfxml_cluster_lat = 0;
6039   surfxml_cluster_lat_isset = 0;
6040   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6041   surfxml_cluster_sharing_policy_isset = 0;
6042   AX_surfxml_cluster_bb_bw = 0;
6043   surfxml_cluster_bb_bw_isset = 0;
6044   AX_surfxml_cluster_bb_lat = 0;
6045   surfxml_cluster_bb_lat_isset = 0;
6046   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6047   surfxml_cluster_bb_sharing_policy_isset = 0;
6048   AX_surfxml_cluster_availability_file = 0;
6049   surfxml_cluster_availability_file_isset = 0;
6050   AX_surfxml_cluster_state_file = 0;
6051   surfxml_cluster_state_file_isset = 0;
6052   AX_surfxml_cluster_router_id = 0;
6053   surfxml_cluster_router_id_isset = 0;
6054   ENTER(AL_surfxml_cluster); pushbuffer(0);
6055   }
6056         YY_BREAK
6057
6058 case 202:
6059 /* rule 202 can match eol */
6060 YY_RULE_SETUP
6061 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");} surfxml_cluster_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
6062         YY_BREAK
6063 case 203:
6064 /* rule 203 can match eol */
6065 YY_RULE_SETUP
6066 if (surfxml_cluster_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cluster>");}  surfxml_cluster_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
6067         YY_BREAK
6068 case 204:
6069 /* rule 204 can match eol */
6070 YY_RULE_SETUP
6071 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");} surfxml_cluster_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
6072         YY_BREAK
6073 case 205:
6074 /* rule 205 can match eol */
6075 YY_RULE_SETUP
6076 if (surfxml_cluster_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cluster>");}  surfxml_cluster_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
6077         YY_BREAK
6078 case 206:
6079 /* rule 206 can match eol */
6080 YY_RULE_SETUP
6081 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");} surfxml_cluster_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
6082         YY_BREAK
6083 case 207:
6084 /* rule 207 can match eol */
6085 YY_RULE_SETUP
6086 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
6087         YY_BREAK
6088 case 208:
6089 /* rule 208 can match eol */
6090 YY_RULE_SETUP
6091 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
6092         YY_BREAK
6093 case 209:
6094 /* rule 209 can match eol */
6095 YY_RULE_SETUP
6096 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
6097         YY_BREAK
6098 case 210:
6099 /* rule 210 can match eol */
6100 YY_RULE_SETUP
6101 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
6102         YY_BREAK
6103 case 211:
6104 /* rule 211 can match eol */
6105 YY_RULE_SETUP
6106 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
6107         YY_BREAK
6108 case 212:
6109 /* rule 212 can match eol */
6110 YY_RULE_SETUP
6111 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
6112         YY_BREAK
6113 case 213:
6114 /* rule 213 can match eol */
6115 YY_RULE_SETUP
6116 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");}  surfxml_cluster_core_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
6117         YY_BREAK
6118 case 214:
6119 /* rule 214 can match eol */
6120 YY_RULE_SETUP
6121 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");} surfxml_cluster_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
6122         YY_BREAK
6123 case 215:
6124 /* rule 215 can match eol */
6125 YY_RULE_SETUP
6126 if (surfxml_cluster_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cluster>");}  surfxml_cluster_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
6127         YY_BREAK
6128 case 216:
6129 /* rule 216 can match eol */
6130 YY_RULE_SETUP
6131 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");} surfxml_cluster_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
6132         YY_BREAK
6133 case 217:
6134 /* rule 217 can match eol */
6135 YY_RULE_SETUP
6136 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
6137         YY_BREAK
6138 case 218:
6139 /* rule 218 can match eol */
6140 case 219:
6141 /* rule 219 can match eol */
6142 YY_RULE_SETUP
6143 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
6144         YY_BREAK
6145 case 220:
6146 /* rule 220 can match eol */
6147 case 221:
6148 /* rule 221 can match eol */
6149 YY_RULE_SETUP
6150 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6151         YY_BREAK
6152 case 222:
6153 /* rule 222 can match eol */
6154 case 223:
6155 /* rule 223 can match eol */
6156 YY_RULE_SETUP
6157 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
6158         YY_BREAK
6159 case 224:
6160 /* rule 224 can match eol */
6161 YY_RULE_SETUP
6162 if (surfxml_cluster_bb_bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");} surfxml_cluster_bb_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_bw);
6163         YY_BREAK
6164 case 225:
6165 /* rule 225 can match eol */
6166 YY_RULE_SETUP
6167 if (surfxml_cluster_bb_bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
6168         YY_BREAK
6169 case 226:
6170 /* rule 226 can match eol */
6171 YY_RULE_SETUP
6172 if (surfxml_cluster_bb_lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");} surfxml_cluster_bb_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_lat);
6173         YY_BREAK
6174 case 227:
6175 /* rule 227 can match eol */
6176 YY_RULE_SETUP
6177 if (surfxml_cluster_bb_lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_lat);
6178         YY_BREAK
6179 case 228:
6180 /* rule 228 can match eol */
6181 case 229:
6182 /* rule 229 can match eol */
6183 YY_RULE_SETUP
6184 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6185         YY_BREAK
6186 case 230:
6187 /* rule 230 can match eol */
6188 case 231:
6189 /* rule 231 can match eol */
6190 YY_RULE_SETUP
6191 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
6192         YY_BREAK
6193 case 232:
6194 /* rule 232 can match eol */
6195 YY_RULE_SETUP
6196 if (surfxml_cluster_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability_file);
6197         YY_BREAK
6198 case 233:
6199 /* rule 233 can match eol */
6200 YY_RULE_SETUP
6201 if (surfxml_cluster_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability_file);
6202         YY_BREAK
6203 case 234:
6204 /* rule 234 can match eol */
6205 YY_RULE_SETUP
6206 if (surfxml_cluster_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state_file);
6207         YY_BREAK
6208 case 235:
6209 /* rule 235 can match eol */
6210 YY_RULE_SETUP
6211 if (surfxml_cluster_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state_file);
6212         YY_BREAK
6213 case 236:
6214 /* rule 236 can match eol */
6215 YY_RULE_SETUP
6216 if (surfxml_cluster_router_id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router_id);
6217         YY_BREAK
6218 case 237:
6219 /* rule 237 can match eol */
6220 YY_RULE_SETUP
6221 if (surfxml_cluster_router_id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router_id);
6222         YY_BREAK
6223 case 238:
6224 YY_RULE_SETUP
6225 {
6226   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6227   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6228   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6229   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6230   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6231   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6232   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6233   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
6234  }
6235         YY_BREAK
6236 case 239:
6237 YY_RULE_SETUP
6238 {
6239   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6240   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6241   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6242   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6243   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6244   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6245   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6246   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6247   switch (YY_START) {
6248    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6249    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;
6250   }
6251  }
6252         YY_BREAK
6253 case 240:
6254 YY_RULE_SETUP
6255 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6256         YY_BREAK
6257 case 241:
6258 YY_RULE_SETUP
6259 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6260         YY_BREAK
6261 case YY_STATE_EOF(AL_surfxml_cluster):
6262 FAIL("EOF in attribute list of `cluster' element.");
6263         YY_BREAK
6264
6265 case 242:
6266 /* rule 242 can match eol */
6267 YY_RULE_SETUP
6268 {
6269   LEAVE;
6270   ETag_surfxml_cluster();
6271   popbuffer(); /* attribute */
6272   switch (YY_START) {
6273    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6274    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;
6275   }
6276  }
6277         YY_BREAK
6278 case 243:
6279 /* rule 243 can match eol */
6280 YY_RULE_SETUP
6281 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6282         YY_BREAK
6283 case 244:
6284 YY_RULE_SETUP
6285 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
6286         YY_BREAK
6287 case YY_STATE_EOF(E_surfxml_cluster):
6288 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
6289         YY_BREAK
6290
6291 case 245:
6292 /* rule 245 can match eol */
6293 YY_RULE_SETUP
6294 FAIL("Starting tag <peer> is not allowed here.");
6295         YY_BREAK
6296 case 246:
6297 /* rule 246 can match eol */
6298 YY_RULE_SETUP
6299 {
6300   AX_surfxml_peer_id = 0;
6301   surfxml_peer_id_isset = 0;
6302   AX_surfxml_peer_power = 0;
6303   surfxml_peer_power_isset = 0;
6304   AX_surfxml_peer_bw_in = 0;
6305   surfxml_peer_bw_in_isset = 0;
6306   AX_surfxml_peer_bw_out = 0;
6307   surfxml_peer_bw_out_isset = 0;
6308   AX_surfxml_peer_lat = 0;
6309   surfxml_peer_lat_isset = 0;
6310   AX_surfxml_peer_coordinates = 0;
6311   surfxml_peer_coordinates_isset = 0;
6312   AX_surfxml_peer_availability_file = 0;
6313   surfxml_peer_availability_file_isset = 0;
6314   AX_surfxml_peer_state_file = 0;
6315   surfxml_peer_state_file_isset = 0;
6316   ENTER(AL_surfxml_peer); pushbuffer(0);
6317   }
6318         YY_BREAK
6319
6320 case 247:
6321 /* rule 247 can match eol */
6322 YY_RULE_SETUP
6323 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");} surfxml_peer_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_id);
6324         YY_BREAK
6325 case 248:
6326 /* rule 248 can match eol */
6327 YY_RULE_SETUP
6328 if (surfxml_peer_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_peer>");}  surfxml_peer_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_id);
6329         YY_BREAK
6330 case 249:
6331 /* rule 249 can match eol */
6332 YY_RULE_SETUP
6333 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
6334         YY_BREAK
6335 case 250:
6336 /* rule 250 can match eol */
6337 YY_RULE_SETUP
6338 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
6339         YY_BREAK
6340 case 251:
6341 /* rule 251 can match eol */
6342 YY_RULE_SETUP
6343 if (surfxml_peer_bw_in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");} surfxml_peer_bw_in_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_in);
6344         YY_BREAK
6345 case 252:
6346 /* rule 252 can match eol */
6347 YY_RULE_SETUP
6348 if (surfxml_peer_bw_in_isset != 0) {FAIL("Multiple definition of attribute bw_in in <surfxml_peer>");}  surfxml_peer_bw_in_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_in);
6349         YY_BREAK
6350 case 253:
6351 /* rule 253 can match eol */
6352 YY_RULE_SETUP
6353 if (surfxml_peer_bw_out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");} surfxml_peer_bw_out_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_bw_out);
6354         YY_BREAK
6355 case 254:
6356 /* rule 254 can match eol */
6357 YY_RULE_SETUP
6358 if (surfxml_peer_bw_out_isset != 0) {FAIL("Multiple definition of attribute bw_out in <surfxml_peer>");}  surfxml_peer_bw_out_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_bw_out);
6359         YY_BREAK
6360 case 255:
6361 /* rule 255 can match eol */
6362 YY_RULE_SETUP
6363 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");} surfxml_peer_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_lat);
6364         YY_BREAK
6365 case 256:
6366 /* rule 256 can match eol */
6367 YY_RULE_SETUP
6368 if (surfxml_peer_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_peer>");}  surfxml_peer_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_lat);
6369         YY_BREAK
6370 case 257:
6371 /* rule 257 can match eol */
6372 YY_RULE_SETUP
6373 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
6374         YY_BREAK
6375 case 258:
6376 /* rule 258 can match eol */
6377 YY_RULE_SETUP
6378 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
6379         YY_BREAK
6380 case 259:
6381 /* rule 259 can match eol */
6382 YY_RULE_SETUP
6383 if (surfxml_peer_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");} surfxml_peer_availability_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_availability_file);
6384         YY_BREAK
6385 case 260:
6386 /* rule 260 can match eol */
6387 YY_RULE_SETUP
6388 if (surfxml_peer_availability_file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_peer>");}  surfxml_peer_availability_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_availability_file);
6389         YY_BREAK
6390 case 261:
6391 /* rule 261 can match eol */
6392 YY_RULE_SETUP
6393 if (surfxml_peer_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");} surfxml_peer_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_state_file);
6394         YY_BREAK
6395 case 262:
6396 /* rule 262 can match eol */
6397 YY_RULE_SETUP
6398 if (surfxml_peer_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_peer>");}  surfxml_peer_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_state_file);
6399         YY_BREAK
6400 case 263:
6401 YY_RULE_SETUP
6402 {
6403   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6404   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6405   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6406   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6407   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6408   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
6409  }
6410         YY_BREAK
6411 case 264:
6412 YY_RULE_SETUP
6413 {
6414   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6415   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6416   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6417   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6418   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6419   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
6420   switch (YY_START) {
6421    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6422    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;
6423   }
6424  }
6425         YY_BREAK
6426 case 265:
6427 YY_RULE_SETUP
6428 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
6429         YY_BREAK
6430 case 266:
6431 YY_RULE_SETUP
6432 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
6433         YY_BREAK
6434 case YY_STATE_EOF(AL_surfxml_peer):
6435 FAIL("EOF in attribute list of `peer' element.");
6436         YY_BREAK
6437
6438 case 267:
6439 /* rule 267 can match eol */
6440 YY_RULE_SETUP
6441 {
6442   LEAVE;
6443   ETag_surfxml_peer();
6444   popbuffer(); /* attribute */
6445   switch (YY_START) {
6446    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6447    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;
6448   }
6449  }
6450         YY_BREAK
6451 case 268:
6452 /* rule 268 can match eol */
6453 YY_RULE_SETUP
6454 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
6455         YY_BREAK
6456 case 269:
6457 YY_RULE_SETUP
6458 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
6459         YY_BREAK
6460 case YY_STATE_EOF(E_surfxml_peer):
6461 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
6462         YY_BREAK
6463
6464 case 270:
6465 /* rule 270 can match eol */
6466 YY_RULE_SETUP
6467 FAIL("Starting tag <router> is not allowed here.");
6468         YY_BREAK
6469 case 271:
6470 /* rule 271 can match eol */
6471 YY_RULE_SETUP
6472 {
6473   AX_surfxml_router_id = 0;
6474   surfxml_router_id_isset = 0;
6475   AX_surfxml_router_coordinates = 0;
6476   surfxml_router_coordinates_isset = 0;
6477   ENTER(AL_surfxml_router); pushbuffer(0);
6478   }
6479         YY_BREAK
6480
6481 case 272:
6482 /* rule 272 can match eol */
6483 YY_RULE_SETUP
6484 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");} surfxml_router_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
6485         YY_BREAK
6486 case 273:
6487 /* rule 273 can match eol */
6488 YY_RULE_SETUP
6489 if (surfxml_router_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_router>");}  surfxml_router_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
6490         YY_BREAK
6491 case 274:
6492 /* rule 274 can match eol */
6493 YY_RULE_SETUP
6494 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");} surfxml_router_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_router_coordinates);
6495         YY_BREAK
6496 case 275:
6497 /* rule 275 can match eol */
6498 YY_RULE_SETUP
6499 if (surfxml_router_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_router>");}  surfxml_router_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_router_coordinates);
6500         YY_BREAK
6501 case 276:
6502 YY_RULE_SETUP
6503 {
6504   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6505   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
6506  }
6507         YY_BREAK
6508 case 277:
6509 YY_RULE_SETUP
6510 {
6511   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6512   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
6513   switch (YY_START) {
6514    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6515   }
6516  }
6517         YY_BREAK
6518 case 278:
6519 YY_RULE_SETUP
6520 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
6521         YY_BREAK
6522 case 279:
6523 YY_RULE_SETUP
6524 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
6525         YY_BREAK
6526 case YY_STATE_EOF(AL_surfxml_router):
6527 FAIL("EOF in attribute list of `router' element.");
6528         YY_BREAK
6529
6530 case 280:
6531 /* rule 280 can match eol */
6532 YY_RULE_SETUP
6533 {
6534   LEAVE;
6535   ETag_surfxml_router();
6536   popbuffer(); /* attribute */
6537   switch (YY_START) {
6538    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6539   }
6540  }
6541         YY_BREAK
6542 case 281:
6543 /* rule 281 can match eol */
6544 YY_RULE_SETUP
6545 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
6546         YY_BREAK
6547 case 282:
6548 YY_RULE_SETUP
6549 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
6550         YY_BREAK
6551 case YY_STATE_EOF(E_surfxml_router):
6552 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
6553         YY_BREAK
6554
6555 case 283:
6556 /* rule 283 can match eol */
6557 YY_RULE_SETUP
6558 FAIL("Starting tag <link> is not allowed here.");
6559         YY_BREAK
6560 case 284:
6561 /* rule 284 can match eol */
6562 YY_RULE_SETUP
6563 {
6564   AX_surfxml_link_id = 0;
6565   surfxml_link_id_isset = 0;
6566   AX_surfxml_link_bandwidth = 0;
6567   surfxml_link_bandwidth_isset = 0;
6568   AX_surfxml_link_bandwidth_file = 0;
6569   surfxml_link_bandwidth_file_isset = 0;
6570   AX_surfxml_link_latency = 24;
6571   surfxml_link_latency_isset = 0;
6572   AX_surfxml_link_latency_file = 0;
6573   surfxml_link_latency_file_isset = 0;
6574   AX_surfxml_link_state = A_surfxml_link_state_ON;
6575   surfxml_link_state_isset = 0;
6576   AX_surfxml_link_state_file = 0;
6577   surfxml_link_state_file_isset = 0;
6578   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6579   surfxml_link_sharing_policy_isset = 0;
6580   ENTER(AL_surfxml_link); pushbuffer(0);
6581   }
6582         YY_BREAK
6583
6584 case 285:
6585 /* rule 285 can match eol */
6586 YY_RULE_SETUP
6587 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");} surfxml_link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
6588         YY_BREAK
6589 case 286:
6590 /* rule 286 can match eol */
6591 YY_RULE_SETUP
6592 if (surfxml_link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link>");}  surfxml_link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
6593         YY_BREAK
6594 case 287:
6595 /* rule 287 can match eol */
6596 YY_RULE_SETUP
6597 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");} surfxml_link_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
6598         YY_BREAK
6599 case 288:
6600 /* rule 288 can match eol */
6601 YY_RULE_SETUP
6602 if (surfxml_link_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_link>");}  surfxml_link_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
6603         YY_BREAK
6604 case 289:
6605 /* rule 289 can match eol */
6606 YY_RULE_SETUP
6607 if (surfxml_link_bandwidth_file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");} surfxml_link_bandwidth_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
6608         YY_BREAK
6609 case 290:
6610 /* rule 290 can match eol */
6611 YY_RULE_SETUP
6612 if (surfxml_link_bandwidth_file_isset != 0) {FAIL("Multiple definition of attribute bandwidth_file in <surfxml_link>");}  surfxml_link_bandwidth_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
6613         YY_BREAK
6614 case 291:
6615 /* rule 291 can match eol */
6616 YY_RULE_SETUP
6617 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");} surfxml_link_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
6618         YY_BREAK
6619 case 292:
6620 /* rule 292 can match eol */
6621 YY_RULE_SETUP
6622 if (surfxml_link_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_link>");}  surfxml_link_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
6623         YY_BREAK
6624 case 293:
6625 /* rule 293 can match eol */
6626 YY_RULE_SETUP
6627 if (surfxml_link_latency_file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");} surfxml_link_latency_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
6628         YY_BREAK
6629 case 294:
6630 /* rule 294 can match eol */
6631 YY_RULE_SETUP
6632 if (surfxml_link_latency_file_isset != 0) {FAIL("Multiple definition of attribute latency_file in <surfxml_link>");}  surfxml_link_latency_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
6633         YY_BREAK
6634 case 295:
6635 /* rule 295 can match eol */
6636 case 296:
6637 /* rule 296 can match eol */
6638 YY_RULE_SETUP
6639 A_surfxml_link_state = A_surfxml_link_state_ON;
6640         YY_BREAK
6641 case 297:
6642 /* rule 297 can match eol */
6643 case 298:
6644 /* rule 298 can match eol */
6645 YY_RULE_SETUP
6646 A_surfxml_link_state = A_surfxml_link_state_OFF;
6647         YY_BREAK
6648 case 299:
6649 /* rule 299 can match eol */
6650 YY_RULE_SETUP
6651 if (surfxml_link_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");} surfxml_link_state_file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
6652         YY_BREAK
6653 case 300:
6654 /* rule 300 can match eol */
6655 YY_RULE_SETUP
6656 if (surfxml_link_state_file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_link>");}  surfxml_link_state_file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
6657         YY_BREAK
6658 case 301:
6659 /* rule 301 can match eol */
6660 case 302:
6661 /* rule 302 can match eol */
6662 YY_RULE_SETUP
6663 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6664         YY_BREAK
6665 case 303:
6666 /* rule 303 can match eol */
6667 case 304:
6668 /* rule 304 can match eol */
6669 YY_RULE_SETUP
6670 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
6671         YY_BREAK
6672 case 305:
6673 /* rule 305 can match eol */
6674 case 306:
6675 /* rule 306 can match eol */
6676 YY_RULE_SETUP
6677 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
6678         YY_BREAK
6679 case 307:
6680 YY_RULE_SETUP
6681 {
6682   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
6683   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
6684   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
6685  }
6686         YY_BREAK
6687 case 308:
6688 YY_RULE_SETUP
6689 {
6690   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
6691   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
6692   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
6693   switch (YY_START) {
6694    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6695    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6696   }
6697  }
6698         YY_BREAK
6699 case 309:
6700 YY_RULE_SETUP
6701 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
6702         YY_BREAK
6703 case 310:
6704 YY_RULE_SETUP
6705 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
6706         YY_BREAK
6707 case YY_STATE_EOF(AL_surfxml_link):
6708 FAIL("EOF in attribute list of `link' element.");
6709         YY_BREAK
6710
6711 case 311:
6712 /* rule 311 can match eol */
6713 YY_RULE_SETUP
6714 {
6715   LEAVE;
6716   ETag_surfxml_link();
6717   popbuffer(); /* attribute */
6718   switch (YY_START) {
6719    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6720    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6721   }
6722  }
6723         YY_BREAK
6724 case 312:
6725 /* rule 312 can match eol */
6726 YY_RULE_SETUP
6727 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
6728         YY_BREAK
6729 case 313:
6730 YY_RULE_SETUP
6731 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
6732         YY_BREAK
6733 case YY_STATE_EOF(E_surfxml_link):
6734 case YY_STATE_EOF(S_surfxml_link_2):
6735 case YY_STATE_EOF(S_surfxml_link):
6736 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
6737         YY_BREAK
6738
6739 case 314:
6740 /* rule 314 can match eol */
6741 YY_RULE_SETUP
6742 FAIL("Starting tag <route> is not allowed here.");
6743         YY_BREAK
6744 case 315:
6745 /* rule 315 can match eol */
6746 YY_RULE_SETUP
6747 {
6748   AX_surfxml_route_src = 0;
6749   surfxml_route_src_isset = 0;
6750   AX_surfxml_route_dst = 0;
6751   surfxml_route_dst_isset = 0;
6752   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
6753   surfxml_route_symmetrical_isset = 0;
6754   ENTER(AL_surfxml_route); pushbuffer(0);
6755   }
6756         YY_BREAK
6757
6758 case 316:
6759 /* rule 316 can match eol */
6760 YY_RULE_SETUP
6761 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");} surfxml_route_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
6762         YY_BREAK
6763 case 317:
6764 /* rule 317 can match eol */
6765 YY_RULE_SETUP
6766 if (surfxml_route_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_route>");}  surfxml_route_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
6767         YY_BREAK
6768 case 318:
6769 /* rule 318 can match eol */
6770 YY_RULE_SETUP
6771 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");} surfxml_route_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
6772         YY_BREAK
6773 case 319:
6774 /* rule 319 can match eol */
6775 YY_RULE_SETUP
6776 if (surfxml_route_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_route>");}  surfxml_route_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
6777         YY_BREAK
6778 case 320:
6779 /* rule 320 can match eol */
6780 case 321:
6781 /* rule 321 can match eol */
6782 YY_RULE_SETUP
6783 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
6784         YY_BREAK
6785 case 322:
6786 /* rule 322 can match eol */
6787 case 323:
6788 /* rule 323 can match eol */
6789 YY_RULE_SETUP
6790 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
6791         YY_BREAK
6792 case 324:
6793 YY_RULE_SETUP
6794 {
6795   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
6796   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
6797   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
6798  }
6799         YY_BREAK
6800 case 325:
6801 YY_RULE_SETUP
6802 {
6803   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
6804   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
6805   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
6806   switch (YY_START) {
6807    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;
6808   }
6809  }
6810         YY_BREAK
6811 case 326:
6812 YY_RULE_SETUP
6813 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
6814         YY_BREAK
6815 case 327:
6816 YY_RULE_SETUP
6817 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
6818         YY_BREAK
6819 case YY_STATE_EOF(AL_surfxml_route):
6820 FAIL("EOF in attribute list of `route' element.");
6821         YY_BREAK
6822
6823 case 328:
6824 /* rule 328 can match eol */
6825 YY_RULE_SETUP
6826 {
6827   LEAVE;
6828   ETag_surfxml_route();
6829   popbuffer(); /* attribute */
6830   switch (YY_START) {
6831    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;
6832   }
6833  }
6834         YY_BREAK
6835 case 329:
6836 /* rule 329 can match eol */
6837 YY_RULE_SETUP
6838 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
6839         YY_BREAK
6840 case 330:
6841 YY_RULE_SETUP
6842 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
6843         YY_BREAK
6844 case YY_STATE_EOF(S_surfxml_route):
6845 case YY_STATE_EOF(S_surfxml_route_2):
6846 case YY_STATE_EOF(E_surfxml_route):
6847 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
6848         YY_BREAK
6849
6850 case 331:
6851 /* rule 331 can match eol */
6852 YY_RULE_SETUP
6853 FAIL("Starting tag <ASroute> is not allowed here.");
6854         YY_BREAK
6855 case 332:
6856 /* rule 332 can match eol */
6857 YY_RULE_SETUP
6858 {
6859   AX_surfxml_ASroute_src = 0;
6860   surfxml_ASroute_src_isset = 0;
6861   AX_surfxml_ASroute_dst = 0;
6862   surfxml_ASroute_dst_isset = 0;
6863   AX_surfxml_ASroute_gw_src = 0;
6864   surfxml_ASroute_gw_src_isset = 0;
6865   AX_surfxml_ASroute_gw_dst = 0;
6866   surfxml_ASroute_gw_dst_isset = 0;
6867   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6868   surfxml_ASroute_symmetrical_isset = 0;
6869   ENTER(AL_surfxml_ASroute); pushbuffer(0);
6870   }
6871         YY_BREAK
6872
6873 case 333:
6874 /* rule 333 can match eol */
6875 YY_RULE_SETUP
6876 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");} surfxml_ASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_src);
6877         YY_BREAK
6878 case 334:
6879 /* rule 334 can match eol */
6880 YY_RULE_SETUP
6881 if (surfxml_ASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_ASroute>");}  surfxml_ASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_src);
6882         YY_BREAK
6883 case 335:
6884 /* rule 335 can match eol */
6885 YY_RULE_SETUP
6886 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");} surfxml_ASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_dst);
6887         YY_BREAK
6888 case 336:
6889 /* rule 336 can match eol */
6890 YY_RULE_SETUP
6891 if (surfxml_ASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_ASroute>");}  surfxml_ASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_dst);
6892         YY_BREAK
6893 case 337:
6894 /* rule 337 can match eol */
6895 YY_RULE_SETUP
6896 if (surfxml_ASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");} surfxml_ASroute_gw_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_src);
6897         YY_BREAK
6898 case 338:
6899 /* rule 338 can match eol */
6900 YY_RULE_SETUP
6901 if (surfxml_ASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_ASroute>");}  surfxml_ASroute_gw_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_src);
6902         YY_BREAK
6903 case 339:
6904 /* rule 339 can match eol */
6905 YY_RULE_SETUP
6906 if (surfxml_ASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");} surfxml_ASroute_gw_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_ASroute_gw_dst);
6907         YY_BREAK
6908 case 340:
6909 /* rule 340 can match eol */
6910 YY_RULE_SETUP
6911 if (surfxml_ASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_ASroute>");}  surfxml_ASroute_gw_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_ASroute_gw_dst);
6912         YY_BREAK
6913 case 341:
6914 /* rule 341 can match eol */
6915 case 342:
6916 /* rule 342 can match eol */
6917 YY_RULE_SETUP
6918 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6919         YY_BREAK
6920 case 343:
6921 /* rule 343 can match eol */
6922 case 344:
6923 /* rule 344 can match eol */
6924 YY_RULE_SETUP
6925 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
6926         YY_BREAK
6927 case 345:
6928 YY_RULE_SETUP
6929 {
6930   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6931   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6932   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6933   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6934   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
6935  }
6936         YY_BREAK
6937 case 346:
6938 YY_RULE_SETUP
6939 {
6940   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6941   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6942   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6943   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6944   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
6945   switch (YY_START) {
6946    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;
6947   }
6948  }
6949         YY_BREAK
6950 case 347:
6951 YY_RULE_SETUP
6952 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
6953         YY_BREAK
6954 case 348:
6955 YY_RULE_SETUP
6956 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
6957         YY_BREAK
6958 case YY_STATE_EOF(AL_surfxml_ASroute):
6959 FAIL("EOF in attribute list of `ASroute' element.");
6960         YY_BREAK
6961
6962 case 349:
6963 /* rule 349 can match eol */
6964 YY_RULE_SETUP
6965 {
6966   LEAVE;
6967   ETag_surfxml_ASroute();
6968   popbuffer(); /* attribute */
6969   switch (YY_START) {
6970    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;
6971   }
6972  }
6973         YY_BREAK
6974 case 350:
6975 /* rule 350 can match eol */
6976 YY_RULE_SETUP
6977 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
6978         YY_BREAK
6979 case 351:
6980 YY_RULE_SETUP
6981 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
6982         YY_BREAK
6983 case YY_STATE_EOF(E_surfxml_ASroute):
6984 case YY_STATE_EOF(S_surfxml_ASroute):
6985 case YY_STATE_EOF(S_surfxml_ASroute_2):
6986 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
6987         YY_BREAK
6988
6989 case 352:
6990 /* rule 352 can match eol */
6991 YY_RULE_SETUP
6992 FAIL("Starting tag <link_ctn> is not allowed here.");
6993         YY_BREAK
6994 case 353:
6995 /* rule 353 can match eol */
6996 YY_RULE_SETUP
6997 {
6998   AX_surfxml_link_ctn_id = 0;
6999   surfxml_link_ctn_id_isset = 0;
7000   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7001   surfxml_link_ctn_direction_isset = 0;
7002   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
7003   }
7004         YY_BREAK
7005
7006 case 354:
7007 /* rule 354 can match eol */
7008 YY_RULE_SETUP
7009 if (surfxml_link_ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link_ctn>");} surfxml_link_ctn_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_link_ctn_id);
7010         YY_BREAK
7011 case 355:
7012 /* rule 355 can match eol */
7013 YY_RULE_SETUP
7014 if (surfxml_link_ctn_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_link_ctn>");}  surfxml_link_ctn_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_link_ctn_id);
7015         YY_BREAK
7016 case 356:
7017 /* rule 356 can match eol */
7018 case 357:
7019 /* rule 357 can match eol */
7020 YY_RULE_SETUP
7021 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
7022         YY_BREAK
7023 case 358:
7024 /* rule 358 can match eol */
7025 case 359:
7026 /* rule 359 can match eol */
7027 YY_RULE_SETUP
7028 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
7029         YY_BREAK
7030 case 360:
7031 /* rule 360 can match eol */
7032 case 361:
7033 /* rule 361 can match eol */
7034 YY_RULE_SETUP
7035 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7036         YY_BREAK
7037 case 362:
7038 YY_RULE_SETUP
7039 {
7040   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7041   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
7042  }
7043         YY_BREAK
7044 case 363:
7045 YY_RULE_SETUP
7046 {
7047   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7048   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
7049   switch (YY_START) {
7050    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7051    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7052    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7053   }
7054  }
7055         YY_BREAK
7056 case 364:
7057 YY_RULE_SETUP
7058 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7059         YY_BREAK
7060 case 365:
7061 YY_RULE_SETUP
7062 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7063         YY_BREAK
7064 case YY_STATE_EOF(AL_surfxml_link_ctn):
7065 FAIL("EOF in attribute list of `link_ctn' element.");
7066         YY_BREAK
7067
7068 case 366:
7069 /* rule 366 can match eol */
7070 YY_RULE_SETUP
7071 {
7072   LEAVE;
7073   ETag_surfxml_link_ctn();
7074   popbuffer(); /* attribute */
7075   switch (YY_START) {
7076    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7077    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7078    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7079   }
7080  }
7081         YY_BREAK
7082 case 367:
7083 /* rule 367 can match eol */
7084 YY_RULE_SETUP
7085 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7086         YY_BREAK
7087 case 368:
7088 YY_RULE_SETUP
7089 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7090         YY_BREAK
7091 case YY_STATE_EOF(E_surfxml_link_ctn):
7092 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7093         YY_BREAK
7094
7095 case 369:
7096 /* rule 369 can match eol */
7097 YY_RULE_SETUP
7098 FAIL("Starting tag <bypassRoute> is not allowed here.");
7099         YY_BREAK
7100 case 370:
7101 /* rule 370 can match eol */
7102 YY_RULE_SETUP
7103 {
7104   AX_surfxml_bypassRoute_src = 0;
7105   surfxml_bypassRoute_src_isset = 0;
7106   AX_surfxml_bypassRoute_dst = 0;
7107   surfxml_bypassRoute_dst_isset = 0;
7108   AX_surfxml_bypassRoute_gw_src = 0;
7109   surfxml_bypassRoute_gw_src_isset = 0;
7110   AX_surfxml_bypassRoute_gw_dst = 0;
7111   surfxml_bypassRoute_gw_dst_isset = 0;
7112   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7113   }
7114         YY_BREAK
7115
7116 case 371:
7117 /* rule 371 can match eol */
7118 YY_RULE_SETUP
7119 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");} surfxml_bypassRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_src);
7120         YY_BREAK
7121 case 372:
7122 /* rule 372 can match eol */
7123 YY_RULE_SETUP
7124 if (surfxml_bypassRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_src);
7125         YY_BREAK
7126 case 373:
7127 /* rule 373 can match eol */
7128 YY_RULE_SETUP
7129 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_dst);
7130         YY_BREAK
7131 case 374:
7132 /* rule 374 can match eol */
7133 YY_RULE_SETUP
7134 if (surfxml_bypassRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_dst);
7135         YY_BREAK
7136 case 375:
7137 /* rule 375 can match eol */
7138 YY_RULE_SETUP
7139 if (surfxml_bypassRoute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassRoute>");} surfxml_bypassRoute_gw_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_gw_src);
7140         YY_BREAK
7141 case 376:
7142 /* rule 376 can match eol */
7143 YY_RULE_SETUP
7144 if (surfxml_bypassRoute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassRoute>");}  surfxml_bypassRoute_gw_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_gw_src);
7145         YY_BREAK
7146 case 377:
7147 /* rule 377 can match eol */
7148 YY_RULE_SETUP
7149 if (surfxml_bypassRoute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassRoute>");} surfxml_bypassRoute_gw_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassRoute_gw_dst);
7150         YY_BREAK
7151 case 378:
7152 /* rule 378 can match eol */
7153 YY_RULE_SETUP
7154 if (surfxml_bypassRoute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassRoute>");}  surfxml_bypassRoute_gw_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassRoute_gw_dst);
7155         YY_BREAK
7156 case 379:
7157 YY_RULE_SETUP
7158 {
7159   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7160   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7161   if (!AX_surfxml_bypassRoute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassRoute' element.");
7162   if (!AX_surfxml_bypassRoute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassRoute' element.");
7163   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7164  }
7165         YY_BREAK
7166 case 380:
7167 YY_RULE_SETUP
7168 {
7169   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7170   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7171   if (!AX_surfxml_bypassRoute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassRoute' element.");
7172   if (!AX_surfxml_bypassRoute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassRoute' element.");
7173   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7174   switch (YY_START) {
7175    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;
7176   }
7177  }
7178         YY_BREAK
7179 case 381:
7180 YY_RULE_SETUP
7181 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
7182         YY_BREAK
7183 case 382:
7184 YY_RULE_SETUP
7185 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
7186         YY_BREAK
7187 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7188 FAIL("EOF in attribute list of `bypassRoute' element.");
7189         YY_BREAK
7190
7191 case 383:
7192 /* rule 383 can match eol */
7193 YY_RULE_SETUP
7194 {
7195   LEAVE;
7196   ETag_surfxml_bypassRoute();
7197   popbuffer(); /* attribute */
7198   switch (YY_START) {
7199    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;
7200   }
7201  }
7202         YY_BREAK
7203 case 384:
7204 /* rule 384 can match eol */
7205 YY_RULE_SETUP
7206 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
7207         YY_BREAK
7208 case 385:
7209 YY_RULE_SETUP
7210 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
7211         YY_BREAK
7212 case YY_STATE_EOF(S_surfxml_bypassRoute):
7213 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7214 case YY_STATE_EOF(E_surfxml_bypassRoute):
7215 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
7216         YY_BREAK
7217
7218 case 386:
7219 /* rule 386 can match eol */
7220 YY_RULE_SETUP
7221 FAIL("Starting tag <process> is not allowed here.");
7222         YY_BREAK
7223 case 387:
7224 /* rule 387 can match eol */
7225 YY_RULE_SETUP
7226 {
7227   AX_surfxml_process_host = 0;
7228   surfxml_process_host_isset = 0;
7229   AX_surfxml_process_function = 0;
7230   surfxml_process_function_isset = 0;
7231   AX_surfxml_process_start_time = 28;
7232   surfxml_process_start_time_isset = 0;
7233   AX_surfxml_process_kill_time = 33;
7234   surfxml_process_kill_time_isset = 0;
7235   ENTER(AL_surfxml_process); pushbuffer(0);
7236   }
7237         YY_BREAK
7238
7239 case 388:
7240 /* rule 388 can match eol */
7241 YY_RULE_SETUP
7242 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");} surfxml_process_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
7243         YY_BREAK
7244 case 389:
7245 /* rule 389 can match eol */
7246 YY_RULE_SETUP
7247 if (surfxml_process_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_process>");}  surfxml_process_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
7248         YY_BREAK
7249 case 390:
7250 /* rule 390 can match eol */
7251 YY_RULE_SETUP
7252 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");} surfxml_process_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
7253         YY_BREAK
7254 case 391:
7255 /* rule 391 can match eol */
7256 YY_RULE_SETUP
7257 if (surfxml_process_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_process>");}  surfxml_process_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
7258         YY_BREAK
7259 case 392:
7260 /* rule 392 can match eol */
7261 YY_RULE_SETUP
7262 if (surfxml_process_start_time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");} surfxml_process_start_time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
7263         YY_BREAK
7264 case 393:
7265 /* rule 393 can match eol */
7266 YY_RULE_SETUP
7267 if (surfxml_process_start_time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_process>");}  surfxml_process_start_time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
7268         YY_BREAK
7269 case 394:
7270 /* rule 394 can match eol */
7271 YY_RULE_SETUP
7272 if (surfxml_process_kill_time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");} surfxml_process_kill_time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
7273         YY_BREAK
7274 case 395:
7275 /* rule 395 can match eol */
7276 YY_RULE_SETUP
7277 if (surfxml_process_kill_time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_process>");}  surfxml_process_kill_time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
7278         YY_BREAK
7279 case 396:
7280 YY_RULE_SETUP
7281 {
7282   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7283   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7284   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
7285  }
7286         YY_BREAK
7287 case 397:
7288 YY_RULE_SETUP
7289 {
7290   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7291   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7292   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
7293   switch (YY_START) {
7294    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;
7295   }
7296  }
7297         YY_BREAK
7298 case 398:
7299 YY_RULE_SETUP
7300 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
7301         YY_BREAK
7302 case 399:
7303 YY_RULE_SETUP
7304 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
7305         YY_BREAK
7306 case YY_STATE_EOF(AL_surfxml_process):
7307 FAIL("EOF in attribute list of `process' element.");
7308         YY_BREAK
7309
7310 case 400:
7311 /* rule 400 can match eol */
7312 YY_RULE_SETUP
7313 {
7314   LEAVE;
7315   ETag_surfxml_process();
7316   popbuffer(); /* attribute */
7317   switch (YY_START) {
7318    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;
7319   }
7320  }
7321         YY_BREAK
7322 case 401:
7323 /* rule 401 can match eol */
7324 YY_RULE_SETUP
7325 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
7326         YY_BREAK
7327 case 402:
7328 YY_RULE_SETUP
7329 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
7330         YY_BREAK
7331 case YY_STATE_EOF(E_surfxml_process):
7332 case YY_STATE_EOF(S_surfxml_process):
7333 case YY_STATE_EOF(S_surfxml_process_2):
7334 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
7335         YY_BREAK
7336
7337 case 403:
7338 /* rule 403 can match eol */
7339 YY_RULE_SETUP
7340 FAIL("Starting tag <argument> is not allowed here.");
7341         YY_BREAK
7342 case 404:
7343 /* rule 404 can match eol */
7344 YY_RULE_SETUP
7345 {
7346   AX_surfxml_argument_value = 0;
7347   surfxml_argument_value_isset = 0;
7348   ENTER(AL_surfxml_argument); pushbuffer(0);
7349   }
7350         YY_BREAK
7351
7352 case 405:
7353 /* rule 405 can match eol */
7354 YY_RULE_SETUP
7355 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");} surfxml_argument_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
7356         YY_BREAK
7357 case 406:
7358 /* rule 406 can match eol */
7359 YY_RULE_SETUP
7360 if (surfxml_argument_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_argument>");}  surfxml_argument_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
7361         YY_BREAK
7362 case 407:
7363 YY_RULE_SETUP
7364 {
7365   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7366   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7367  }
7368         YY_BREAK
7369 case 408:
7370 YY_RULE_SETUP
7371 {
7372   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7373   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7374   switch (YY_START) {
7375    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7376   }
7377  }
7378         YY_BREAK
7379 case 409:
7380 YY_RULE_SETUP
7381 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
7382         YY_BREAK
7383 case 410:
7384 YY_RULE_SETUP
7385 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
7386         YY_BREAK
7387 case YY_STATE_EOF(AL_surfxml_argument):
7388 FAIL("EOF in attribute list of `argument' element.");
7389         YY_BREAK
7390
7391 case 411:
7392 /* rule 411 can match eol */
7393 YY_RULE_SETUP
7394 {
7395   LEAVE;
7396   ETag_surfxml_argument();
7397   popbuffer(); /* attribute */
7398   switch (YY_START) {
7399    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7400   }
7401  }
7402         YY_BREAK
7403 case 412:
7404 /* rule 412 can match eol */
7405 YY_RULE_SETUP
7406 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
7407         YY_BREAK
7408 case 413:
7409 YY_RULE_SETUP
7410 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
7411         YY_BREAK
7412 case YY_STATE_EOF(E_surfxml_argument):
7413 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
7414         YY_BREAK
7415
7416 case 414:
7417 /* rule 414 can match eol */
7418 YY_RULE_SETUP
7419 FAIL("Starting tag <config> is not allowed here.");
7420         YY_BREAK
7421 case 415:
7422 /* rule 415 can match eol */
7423 YY_RULE_SETUP
7424 {
7425   AX_surfxml_config_id = 0;
7426   surfxml_config_id_isset = 0;
7427   ENTER(AL_surfxml_config); pushbuffer(0);
7428   }
7429         YY_BREAK
7430
7431 case 416:
7432 /* rule 416 can match eol */
7433 YY_RULE_SETUP
7434 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");} surfxml_config_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_config_id);
7435         YY_BREAK
7436 case 417:
7437 /* rule 417 can match eol */
7438 YY_RULE_SETUP
7439 if (surfxml_config_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_config>");}  surfxml_config_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_config_id);
7440         YY_BREAK
7441 case 418:
7442 YY_RULE_SETUP
7443 {
7444   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7445  }
7446         YY_BREAK
7447 case 419:
7448 YY_RULE_SETUP
7449 {
7450   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7451   switch (YY_START) {
7452    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7453   }
7454  }
7455         YY_BREAK
7456 case 420:
7457 YY_RULE_SETUP
7458 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7459         YY_BREAK
7460 case 421:
7461 YY_RULE_SETUP
7462 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7463         YY_BREAK
7464 case YY_STATE_EOF(AL_surfxml_config):
7465 FAIL("EOF in attribute list of `config' element.");
7466         YY_BREAK
7467
7468 case 422:
7469 /* rule 422 can match eol */
7470 YY_RULE_SETUP
7471 {
7472   LEAVE;
7473   ETag_surfxml_config();
7474   popbuffer(); /* attribute */
7475   switch (YY_START) {
7476    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7477   }
7478  }
7479         YY_BREAK
7480 case 423:
7481 /* rule 423 can match eol */
7482 YY_RULE_SETUP
7483 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7484         YY_BREAK
7485 case 424:
7486 YY_RULE_SETUP
7487 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7488         YY_BREAK
7489 case YY_STATE_EOF(S_surfxml_config):
7490 case YY_STATE_EOF(S_surfxml_config_2):
7491 case YY_STATE_EOF(E_surfxml_config):
7492 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7493         YY_BREAK
7494
7495 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
7496   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
7497 case 425:
7498 /* rule 425 can match eol */
7499 YY_RULE_SETUP
7500 FAIL("Starting tag <prop> is not allowed here.");
7501         YY_BREAK
7502 case 426:
7503 /* rule 426 can match eol */
7504 YY_RULE_SETUP
7505 {
7506   AX_surfxml_prop_id = 0;
7507   surfxml_prop_id_isset = 0;
7508   AX_surfxml_prop_value = 0;
7509   surfxml_prop_value_isset = 0;
7510   ENTER(AL_surfxml_prop); pushbuffer(0);
7511   }
7512         YY_BREAK
7513
7514 case 427:
7515 /* rule 427 can match eol */
7516 YY_RULE_SETUP
7517 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");} surfxml_prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
7518         YY_BREAK
7519 case 428:
7520 /* rule 428 can match eol */
7521 YY_RULE_SETUP
7522 if (surfxml_prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_prop>");}  surfxml_prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
7523         YY_BREAK
7524 case 429:
7525 /* rule 429 can match eol */
7526 YY_RULE_SETUP
7527 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");} surfxml_prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
7528         YY_BREAK
7529 case 430:
7530 /* rule 430 can match eol */
7531 YY_RULE_SETUP
7532 if (surfxml_prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_prop>");}  surfxml_prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
7533         YY_BREAK
7534 case 431:
7535 YY_RULE_SETUP
7536 {
7537   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7538   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7539   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
7540  }
7541         YY_BREAK
7542 case 432:
7543 YY_RULE_SETUP
7544 {
7545   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7546   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7547   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
7548   switch (YY_START) {
7549    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7550    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7551    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7552    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7553    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7554    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7555    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7556   }
7557  }
7558         YY_BREAK
7559 case 433:
7560 YY_RULE_SETUP
7561 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
7562         YY_BREAK
7563 case 434:
7564 YY_RULE_SETUP
7565 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
7566         YY_BREAK
7567 case YY_STATE_EOF(AL_surfxml_prop):
7568 FAIL("EOF in attribute list of `prop' element.");
7569         YY_BREAK
7570
7571 case 435:
7572 /* rule 435 can match eol */
7573 YY_RULE_SETUP
7574 {
7575   LEAVE;
7576   ETag_surfxml_prop();
7577   popbuffer(); /* attribute */
7578   switch (YY_START) {
7579    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7580    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7581    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7582    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7583    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7584    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7585    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7586   }
7587  }
7588         YY_BREAK
7589 case 436:
7590 /* rule 436 can match eol */
7591 YY_RULE_SETUP
7592 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
7593         YY_BREAK
7594 case 437:
7595 YY_RULE_SETUP
7596 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
7597         YY_BREAK
7598 case YY_STATE_EOF(E_surfxml_prop):
7599 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
7600         YY_BREAK
7601
7602 /* EPILOG: after the root element. */
7603
7604 case 438:
7605 YY_RULE_SETUP
7606 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
7607         YY_BREAK
7608 case YY_STATE_EOF(EPILOG):
7609 SUCCEED;
7610         YY_BREAK
7611
7612 /* CHARACTER DATA. */
7613
7614 /* Non-defined standard entities... */
7615 case 439:
7616 YY_RULE_SETUP
7617 BUFFERPUTC('&');
7618         YY_BREAK
7619 case 440:
7620 YY_RULE_SETUP
7621 BUFFERPUTC('<');
7622         YY_BREAK
7623 case 441:
7624 YY_RULE_SETUP
7625 BUFFERPUTC('>');
7626         YY_BREAK
7627 case 442:
7628 YY_RULE_SETUP
7629 BUFFERPUTC('\'');
7630         YY_BREAK
7631 case 443:
7632 YY_RULE_SETUP
7633 BUFFERPUTC('"');
7634         YY_BREAK
7635 /* Character entities. */
7636 case 444:
7637 YY_RULE_SETUP
7638 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
7639         YY_BREAK
7640 case 445:
7641 YY_RULE_SETUP
7642 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
7643         YY_BREAK
7644
7645 case 446:
7646 /* rule 446 can match eol */
7647 case 447:
7648 /* rule 447 can match eol */
7649 case 448:
7650 /* rule 448 can match eol */
7651 case 449:
7652 /* rule 449 can match eol */
7653 YY_RULE_SETUP
7654 BUFFERPUTC('\n');
7655         YY_BREAK
7656
7657 case 450:
7658 YY_RULE_SETUP
7659 ENTER(CDATA);
7660         YY_BREAK
7661 case 451:
7662 YY_RULE_SETUP
7663 FAIL("Unexpected `]""]>' in character data.");
7664         YY_BREAK
7665
7666 case 452:
7667 YY_RULE_SETUP
7668 BUFFERDONE; LEAVE;
7669         YY_BREAK
7670 case YY_STATE_EOF(VALUE1):
7671 FAIL("EOF in literal (\"'\" expected).");
7672         YY_BREAK
7673
7674 case 453:
7675 YY_RULE_SETUP
7676 BUFFERDONE; LEAVE;
7677         YY_BREAK
7678 case YY_STATE_EOF(VALUE2):
7679 FAIL("EOF in literal (`\"' expected).");
7680         YY_BREAK
7681
7682 case 454:
7683 /* rule 454 can match eol */
7684 YY_RULE_SETUP
7685 BUFFERPUTC(surf_parse_text[0]);
7686         YY_BREAK
7687 case 455:
7688 YY_RULE_SETUP
7689 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
7690         YY_BREAK
7691
7692 case 456:
7693 YY_RULE_SETUP
7694 LEAVE;
7695         YY_BREAK
7696 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
7697 case 457:
7698 YY_RULE_SETUP
7699 BUFFERPUTC(surf_parse_text[0]);
7700         YY_BREAK
7701 case YY_STATE_EOF(CDATA):
7702 FAIL("EOF in CDATA section.");
7703         YY_BREAK
7704
7705 /* Impossible rules to avoid warnings from flex(1). */
7706 /* Ideally, this should be replaced by code in flexml.pl that
7707     generates just the states not covered by other rules. */
7708
7709 case 458:
7710 /* rule 458 can match eol */
7711 YY_RULE_SETUP
7712 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
7713         YY_BREAK
7714
7715 case 459:
7716 YY_RULE_SETUP
7717 ECHO;
7718         YY_BREAK
7719 case YY_STATE_EOF(INITIAL):
7720 case YY_STATE_EOF(ROOT_surfxml_platform):
7721 case YY_STATE_EOF(S_surfxml_platform_2):
7722 case YY_STATE_EOF(S_surfxml_platform_5):
7723 case YY_STATE_EOF(S_surfxml_platform_7):
7724 case YY_STATE_EOF(S_surfxml_random_1):
7725 case YY_STATE_EOF(S_surfxml_AS_2):
7726 case YY_STATE_EOF(S_surfxml_AS_5):
7727 case YY_STATE_EOF(S_surfxml_AS_7):
7728 case YY_STATE_EOF(S_surfxml_AS_10):
7729 case YY_STATE_EOF(S_surfxml_AS_12):
7730 case YY_STATE_EOF(S_surfxml_storage_type_1):
7731 case YY_STATE_EOF(S_surfxml_storage_1):
7732 case YY_STATE_EOF(S_surfxml_host_1):
7733 case YY_STATE_EOF(S_surfxml_link_1):
7734 case YY_STATE_EOF(S_surfxml_route_1):
7735 case YY_STATE_EOF(S_surfxml_ASroute_1):
7736 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
7737 case YY_STATE_EOF(S_surfxml_process_1):
7738 case YY_STATE_EOF(S_surfxml_config_1):
7739 case YY_STATE_EOF(IMPOSSIBLE):
7740         yyterminate();
7741
7742         case YY_END_OF_BUFFER:
7743                 {
7744                 /* Amount of text matched not including the EOB char. */
7745                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
7746
7747                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
7748                 *yy_cp = (yy_hold_char);
7749                 YY_RESTORE_YY_MORE_OFFSET
7750
7751                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
7752                         {
7753                         /* We're scanning a new file or input source.  It's
7754                          * possible that this happened because the user
7755                          * just pointed surf_parse_in at a new source and called
7756                          * surf_parse_lex().  If so, then we have to assure
7757                          * consistency between YY_CURRENT_BUFFER and our
7758                          * globals.  Here is the right place to do so, because
7759                          * this is the first action (other than possibly a
7760                          * back-up) that will match for the new input source.
7761                          */
7762                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
7763                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
7764                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
7765                         }
7766
7767                 /* Note that here we test for yy_c_buf_p "<=" to the position
7768                  * of the first EOB in the buffer, since yy_c_buf_p will
7769                  * already have been incremented past the NUL character
7770                  * (since all states make transitions on EOB to the
7771                  * end-of-buffer state).  Contrast this with the test
7772                  * in input().
7773                  */
7774                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
7775                         { /* This was really a NUL. */
7776                         yy_state_type yy_next_state;
7777
7778                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
7779
7780                         yy_current_state = yy_get_previous_state(  );
7781
7782                         /* Okay, we're now positioned to make the NUL
7783                          * transition.  We couldn't have
7784                          * yy_get_previous_state() go ahead and do it
7785                          * for us because it doesn't know how to deal
7786                          * with the possibility of jamming (and we don't
7787                          * want to build jamming into it because then it
7788                          * will run more slowly).
7789                          */
7790
7791                         yy_next_state = yy_try_NUL_trans( yy_current_state );
7792
7793                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
7794
7795                         if ( yy_next_state )
7796                                 {
7797                                 /* Consume the NUL. */
7798                                 yy_cp = ++(yy_c_buf_p);
7799                                 yy_current_state = yy_next_state;
7800                                 goto yy_match;
7801                                 }
7802
7803                         else
7804                                 {
7805                                 yy_cp = (yy_c_buf_p);
7806                                 goto yy_find_action;
7807                                 }
7808                         }
7809
7810                 else switch ( yy_get_next_buffer(  ) )
7811                         {
7812                         case EOB_ACT_END_OF_FILE:
7813                                 {
7814                                 (yy_did_buffer_switch_on_eof) = 0;
7815
7816                                 if ( surf_parse_wrap( ) )
7817                                         {
7818                                         /* Note: because we've taken care in
7819                                          * yy_get_next_buffer() to have set up
7820                                          * surf_parse_text, we can now set up
7821                                          * yy_c_buf_p so that if some total
7822                                          * hoser (like flex itself) wants to
7823                                          * call the scanner after we return the
7824                                          * YY_NULL, it'll still work - another
7825                                          * YY_NULL will get returned.
7826                                          */
7827                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
7828
7829                                         yy_act = YY_STATE_EOF(YY_START);
7830                                         goto do_action;
7831                                         }
7832
7833                                 else
7834                                         {
7835                                         if ( ! (yy_did_buffer_switch_on_eof) )
7836                                                 YY_NEW_FILE;
7837                                         }
7838                                 break;
7839                                 }
7840
7841                         case EOB_ACT_CONTINUE_SCAN:
7842                                 (yy_c_buf_p) =
7843                                         (yytext_ptr) + yy_amount_of_matched_text;
7844
7845                                 yy_current_state = yy_get_previous_state(  );
7846
7847                                 yy_cp = (yy_c_buf_p);
7848                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
7849                                 goto yy_match;
7850
7851                         case EOB_ACT_LAST_MATCH:
7852                                 (yy_c_buf_p) =
7853                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
7854
7855                                 yy_current_state = yy_get_previous_state(  );
7856
7857                                 yy_cp = (yy_c_buf_p);
7858                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
7859                                 goto yy_find_action;
7860                         }
7861                 break;
7862                 }
7863
7864         default:
7865                 YY_FATAL_ERROR(
7866                         "fatal flex scanner internal error--no action found" );
7867         } /* end of action switch */
7868                 } /* end of scanning one token */
7869 } /* end of surf_parse_lex */
7870
7871 /* yy_get_next_buffer - try to read in a new buffer
7872  *
7873  * Returns a code representing an action:
7874  *      EOB_ACT_LAST_MATCH -
7875  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
7876  *      EOB_ACT_END_OF_FILE - end of file
7877  */
7878 static int yy_get_next_buffer (void)
7879 {
7880         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
7881         register char *source = (yytext_ptr);
7882         register int number_to_move, i;
7883         int ret_val;
7884
7885         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
7886                 YY_FATAL_ERROR(
7887                 "fatal flex scanner internal error--end of buffer missed" );
7888
7889         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
7890                 { /* Don't try to fill the buffer, so this is an EOF. */
7891                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
7892                         {
7893                         /* We matched a single character, the EOB, so
7894                          * treat this as a final EOF.
7895                          */
7896                         return EOB_ACT_END_OF_FILE;
7897                         }
7898
7899                 else
7900                         {
7901                         /* We matched some text prior to the EOB, first
7902                          * process it.
7903                          */
7904                         return EOB_ACT_LAST_MATCH;
7905                         }
7906                 }
7907
7908         /* Try to read more data. */
7909
7910         /* First move last chars to start of buffer. */
7911         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
7912
7913         for ( i = 0; i < number_to_move; ++i )
7914                 *(dest++) = *(source++);
7915
7916         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
7917                 /* don't do the read, it's not guaranteed to return an EOF,
7918                  * just force an EOF
7919                  */
7920                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
7921
7922         else
7923                 {
7924                         int num_to_read =
7925                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
7926
7927                 while ( num_to_read <= 0 )
7928                         { /* Not enough room in the buffer - grow it. */
7929
7930                         /* just a shorter name for the current buffer */
7931                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
7932
7933                         int yy_c_buf_p_offset =
7934                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
7935
7936                         if ( b->yy_is_our_buffer )
7937                                 {
7938                                 int new_size = b->yy_buf_size * 2;
7939
7940                                 if ( new_size <= 0 )
7941                                         b->yy_buf_size += b->yy_buf_size / 8;
7942                                 else
7943                                         b->yy_buf_size *= 2;
7944
7945                                 b->yy_ch_buf = (char *)
7946                                         /* Include room in for 2 EOB chars. */
7947                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
7948                                 }
7949                         else
7950                                 /* Can't grow it, we don't own it. */
7951                                 b->yy_ch_buf = 0;
7952
7953                         if ( ! b->yy_ch_buf )
7954                                 YY_FATAL_ERROR(
7955                                 "fatal error - scanner input buffer overflow" );
7956
7957                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
7958
7959                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
7960                                                 number_to_move - 1;
7961
7962                         }
7963
7964                 if ( num_to_read > YY_READ_BUF_SIZE )
7965                         num_to_read = YY_READ_BUF_SIZE;
7966
7967                 /* Read in more data. */
7968                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
7969                         (yy_n_chars), (size_t) num_to_read );
7970
7971                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
7972                 }
7973
7974         if ( (yy_n_chars) == 0 )
7975                 {
7976                 if ( number_to_move == YY_MORE_ADJ )
7977                         {
7978                         ret_val = EOB_ACT_END_OF_FILE;
7979                         surf_parse_restart(surf_parse_in  );
7980                         }
7981
7982                 else
7983                         {
7984                         ret_val = EOB_ACT_LAST_MATCH;
7985                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
7986                                 YY_BUFFER_EOF_PENDING;
7987                         }
7988                 }
7989
7990         else
7991                 ret_val = EOB_ACT_CONTINUE_SCAN;
7992
7993         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
7994                 /* Extend the array by 50%, plus the number we really need. */
7995                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
7996                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
7997                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
7998                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
7999         }
8000
8001         (yy_n_chars) += number_to_move;
8002         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
8003         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
8004
8005         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
8006
8007         return ret_val;
8008 }
8009
8010 /* yy_get_previous_state - get the state just before the EOB char was reached */
8011
8012     static yy_state_type yy_get_previous_state (void)
8013 {
8014         register yy_state_type yy_current_state;
8015         register char *yy_cp;
8016     
8017         yy_current_state = (yy_start);
8018
8019         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
8020                 {
8021                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
8022                 if ( yy_accept[yy_current_state] )
8023                         {
8024                         (yy_last_accepting_state) = yy_current_state;
8025                         (yy_last_accepting_cpos) = yy_cp;
8026                         }
8027                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8028                         {
8029                         yy_current_state = (int) yy_def[yy_current_state];
8030                         if ( yy_current_state >= 2695 )
8031                                 yy_c = yy_meta[(unsigned int) yy_c];
8032                         }
8033                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8034                 }
8035
8036         return yy_current_state;
8037 }
8038
8039 /* yy_try_NUL_trans - try to make a transition on the NUL character
8040  *
8041  * synopsis
8042  *      next_state = yy_try_NUL_trans( current_state );
8043  */
8044     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
8045 {
8046         register int yy_is_jam;
8047         register char *yy_cp = (yy_c_buf_p);
8048
8049         register YY_CHAR yy_c = 1;
8050         if ( yy_accept[yy_current_state] )
8051                 {
8052                 (yy_last_accepting_state) = yy_current_state;
8053                 (yy_last_accepting_cpos) = yy_cp;
8054                 }
8055         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8056                 {
8057                 yy_current_state = (int) yy_def[yy_current_state];
8058                 if ( yy_current_state >= 2695 )
8059                         yy_c = yy_meta[(unsigned int) yy_c];
8060                 }
8061         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8062         yy_is_jam = (yy_current_state == 2694);
8063
8064         return yy_is_jam ? 0 : yy_current_state;
8065 }
8066
8067 #ifndef YY_NO_INPUT
8068 #ifdef __cplusplus
8069     static int yyinput (void)
8070 #else
8071     static int input  (void)
8072 #endif
8073
8074 {
8075         int c;
8076     
8077         *(yy_c_buf_p) = (yy_hold_char);
8078
8079         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
8080                 {
8081                 /* yy_c_buf_p now points to the character we want to return.
8082                  * If this occurs *before* the EOB characters, then it's a
8083                  * valid NUL; if not, then we've hit the end of the buffer.
8084                  */
8085                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8086                         /* This was really a NUL. */
8087                         *(yy_c_buf_p) = '\0';
8088
8089                 else
8090                         { /* need more input */
8091                         int offset = (yy_c_buf_p) - (yytext_ptr);
8092                         ++(yy_c_buf_p);
8093
8094                         switch ( yy_get_next_buffer(  ) )
8095                                 {
8096                                 case EOB_ACT_LAST_MATCH:
8097                                         /* This happens because yy_g_n_b()
8098                                          * sees that we've accumulated a
8099                                          * token and flags that we need to
8100                                          * try matching the token before
8101                                          * proceeding.  But for input(),
8102                                          * there's no matching to consider.
8103                                          * So convert the EOB_ACT_LAST_MATCH
8104                                          * to EOB_ACT_END_OF_FILE.
8105                                          */
8106
8107                                         /* Reset buffer status. */
8108                                         surf_parse_restart(surf_parse_in );
8109
8110                                         /*FALLTHROUGH*/
8111
8112                                 case EOB_ACT_END_OF_FILE:
8113                                         {
8114                                         if ( surf_parse_wrap( ) )
8115                                                 return EOF;
8116
8117                                         if ( ! (yy_did_buffer_switch_on_eof) )
8118                                                 YY_NEW_FILE;
8119 #ifdef __cplusplus
8120                                         return yyinput();
8121 #else
8122                                         return input();
8123 #endif
8124                                         }
8125
8126                                 case EOB_ACT_CONTINUE_SCAN:
8127                                         (yy_c_buf_p) = (yytext_ptr) + offset;
8128                                         break;
8129                                 }
8130                         }
8131                 }
8132
8133         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
8134         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
8135         (yy_hold_char) = *++(yy_c_buf_p);
8136
8137         if ( c == '\n' )
8138                    
8139     surf_parse_lineno++;
8140 ;
8141
8142         return c;
8143 }
8144 #endif  /* ifndef YY_NO_INPUT */
8145
8146 /** Immediately switch to a different input stream.
8147  * @param input_file A readable stream.
8148  * 
8149  * @note This function does not reset the start condition to @c INITIAL .
8150  */
8151     void surf_parse_restart  (FILE * input_file )
8152 {
8153     
8154         if ( ! YY_CURRENT_BUFFER ){
8155         surf_parse_ensure_buffer_stack ();
8156                 YY_CURRENT_BUFFER_LVALUE =
8157             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
8158         }
8159
8160         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
8161         surf_parse__load_buffer_state( );
8162 }
8163
8164 /** Switch to a different input buffer.
8165  * @param new_buffer The new input buffer.
8166  * 
8167  */
8168     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
8169 {
8170     
8171         /* TODO. We should be able to replace this entire function body
8172          * with
8173          *              surf_parse_pop_buffer_state();
8174          *              surf_parse_push_buffer_state(new_buffer);
8175      */
8176         surf_parse_ensure_buffer_stack ();
8177         if ( YY_CURRENT_BUFFER == new_buffer )
8178                 return;
8179
8180         if ( YY_CURRENT_BUFFER )
8181                 {
8182                 /* Flush out information for old buffer. */
8183                 *(yy_c_buf_p) = (yy_hold_char);
8184                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8185                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8186                 }
8187
8188         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8189         surf_parse__load_buffer_state( );
8190
8191         /* We don't actually know whether we did this switch during
8192          * EOF (surf_parse_wrap()) processing, but the only time this flag
8193          * is looked at is after surf_parse_wrap() is called, so it's safe
8194          * to go ahead and always set it.
8195          */
8196         (yy_did_buffer_switch_on_eof) = 1;
8197 }
8198
8199 static void surf_parse__load_buffer_state  (void)
8200 {
8201         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8202         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
8203         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
8204         (yy_hold_char) = *(yy_c_buf_p);
8205 }
8206
8207 /** Allocate and initialize an input buffer state.
8208  * @param file A readable stream.
8209  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
8210  * 
8211  * @return the allocated buffer state.
8212  */
8213     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
8214 {
8215         YY_BUFFER_STATE b;
8216     
8217         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8218         if ( ! b )
8219                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8220
8221         b->yy_buf_size = size;
8222
8223         /* yy_ch_buf has to be 2 characters longer than the size given because
8224          * we need to put in 2 end-of-buffer characters.
8225          */
8226         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
8227         if ( ! b->yy_ch_buf )
8228                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8229
8230         b->yy_is_our_buffer = 1;
8231
8232         surf_parse__init_buffer(b,file );
8233
8234         return b;
8235 }
8236
8237 /** Destroy the buffer.
8238  * @param b a buffer created with surf_parse__create_buffer()
8239  * 
8240  */
8241     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
8242 {
8243     
8244         if ( ! b )
8245                 return;
8246
8247         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
8248                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
8249
8250         if ( b->yy_is_our_buffer )
8251                 surf_parse_free((void *) b->yy_ch_buf  );
8252
8253         surf_parse_free((void *) b  );
8254 }
8255
8256 #ifndef __cplusplus
8257 extern int isatty (int );
8258 #endif /* __cplusplus */
8259     
8260 /* Initializes or reinitializes a buffer.
8261  * This function is sometimes called more than once on the same buffer,
8262  * such as during a surf_parse_restart() or at EOF.
8263  */
8264     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
8265
8266 {
8267         int oerrno = errno;
8268     
8269         surf_parse__flush_buffer(b );
8270
8271         b->yy_input_file = file;
8272         b->yy_fill_buffer = 1;
8273
8274     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
8275      * called from surf_parse_restart() or through yy_get_next_buffer.
8276      * In that case, we don't want to reset the lineno or column.
8277      */
8278     if (b != YY_CURRENT_BUFFER){
8279         b->yy_bs_lineno = 1;
8280         b->yy_bs_column = 0;
8281     }
8282
8283         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
8284     
8285         errno = oerrno;
8286 }
8287
8288 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
8289  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
8290  * 
8291  */
8292     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
8293 {
8294         if ( ! b )
8295                 return;
8296
8297         b->yy_n_chars = 0;
8298
8299         /* We always need two end-of-buffer characters.  The first causes
8300          * a transition to the end-of-buffer state.  The second causes
8301          * a jam in that state.
8302          */
8303         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
8304         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
8305
8306         b->yy_buf_pos = &b->yy_ch_buf[0];
8307
8308         b->yy_at_bol = 1;
8309         b->yy_buffer_status = YY_BUFFER_NEW;
8310
8311         if ( b == YY_CURRENT_BUFFER )
8312                 surf_parse__load_buffer_state( );
8313 }
8314
8315 /** Pushes the new state onto the stack. The new state becomes
8316  *  the current state. This function will allocate the stack
8317  *  if necessary.
8318  *  @param new_buffer The new state.
8319  *  
8320  */
8321 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
8322 {
8323         if (new_buffer == NULL)
8324                 return;
8325
8326         surf_parse_ensure_buffer_stack();
8327
8328         /* This block is copied from surf_parse__switch_to_buffer. */
8329         if ( YY_CURRENT_BUFFER )
8330                 {
8331                 /* Flush out information for old buffer. */
8332                 *(yy_c_buf_p) = (yy_hold_char);
8333                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8334                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8335                 }
8336
8337         /* Only push if top exists. Otherwise, replace top. */
8338         if (YY_CURRENT_BUFFER)
8339                 (yy_buffer_stack_top)++;
8340         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8341
8342         /* copied from surf_parse__switch_to_buffer. */
8343         surf_parse__load_buffer_state( );
8344         (yy_did_buffer_switch_on_eof) = 1;
8345 }
8346
8347 /** Removes and deletes the top of the stack, if present.
8348  *  The next element becomes the new top.
8349  *  
8350  */
8351 void surf_parse_pop_buffer_state (void)
8352 {
8353         if (!YY_CURRENT_BUFFER)
8354                 return;
8355
8356         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
8357         YY_CURRENT_BUFFER_LVALUE = NULL;
8358         if ((yy_buffer_stack_top) > 0)
8359                 --(yy_buffer_stack_top);
8360
8361         if (YY_CURRENT_BUFFER) {
8362                 surf_parse__load_buffer_state( );
8363                 (yy_did_buffer_switch_on_eof) = 1;
8364         }
8365 }
8366
8367 /* Allocates the stack if it does not exist.
8368  *  Guarantees space for at least one push.
8369  */
8370 static void surf_parse_ensure_buffer_stack (void)
8371 {
8372         int num_to_alloc;
8373     
8374         if (!(yy_buffer_stack)) {
8375
8376                 /* First allocation is just for 2 elements, since we don't know if this
8377                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
8378                  * immediate realloc on the next call.
8379          */
8380                 num_to_alloc = 1;
8381                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
8382                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
8383                                                                 );
8384                 if ( ! (yy_buffer_stack) )
8385                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8386                                                                   
8387                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
8388                                 
8389                 (yy_buffer_stack_max) = num_to_alloc;
8390                 (yy_buffer_stack_top) = 0;
8391                 return;
8392         }
8393
8394         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
8395
8396                 /* Increase the buffer to prepare for a possible push. */
8397                 int grow_size = 8 /* arbitrary grow size */;
8398
8399                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
8400                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
8401                                                                 ((yy_buffer_stack),
8402                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
8403                                                                 );
8404                 if ( ! (yy_buffer_stack) )
8405                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8406
8407                 /* zero only the new slots.*/
8408                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
8409                 (yy_buffer_stack_max) = num_to_alloc;
8410         }
8411 }
8412
8413 /** Setup the input buffer state to scan directly from a user-specified character buffer.
8414  * @param base the character buffer
8415  * @param size the size in bytes of the character buffer
8416  * 
8417  * @return the newly allocated buffer state object. 
8418  */
8419 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
8420 {
8421         YY_BUFFER_STATE b;
8422     
8423         if ( size < 2 ||
8424              base[size-2] != YY_END_OF_BUFFER_CHAR ||
8425              base[size-1] != YY_END_OF_BUFFER_CHAR )
8426                 /* They forgot to leave room for the EOB's. */
8427                 return 0;
8428
8429         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8430         if ( ! b )
8431                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
8432
8433         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
8434         b->yy_buf_pos = b->yy_ch_buf = base;
8435         b->yy_is_our_buffer = 0;
8436         b->yy_input_file = 0;
8437         b->yy_n_chars = b->yy_buf_size;
8438         b->yy_is_interactive = 0;
8439         b->yy_at_bol = 1;
8440         b->yy_fill_buffer = 0;
8441         b->yy_buffer_status = YY_BUFFER_NEW;
8442
8443         surf_parse__switch_to_buffer(b  );
8444
8445         return b;
8446 }
8447
8448 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
8449  * scan from a @e copy of @a str.
8450  * @param yystr a NUL-terminated string to scan
8451  * 
8452  * @return the newly allocated buffer state object.
8453  * @note If you want to scan bytes that may contain NUL values, then use
8454  *       surf_parse__scan_bytes() instead.
8455  */
8456 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
8457 {
8458     
8459         return surf_parse__scan_bytes(yystr,strlen(yystr) );
8460 }
8461
8462 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
8463  * scan from a @e copy of @a bytes.
8464  * @param yybytes the byte buffer to scan
8465  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
8466  * 
8467  * @return the newly allocated buffer state object.
8468  */
8469 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
8470 {
8471         YY_BUFFER_STATE b;
8472         char *buf;
8473         yy_size_t n;
8474         int i;
8475     
8476         /* Get memory for full buffer, including space for trailing EOB's. */
8477         n = _yybytes_len + 2;
8478         buf = (char *) surf_parse_alloc(n  );
8479         if ( ! buf )
8480                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
8481
8482         for ( i = 0; i < _yybytes_len; ++i )
8483                 buf[i] = yybytes[i];
8484
8485         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
8486
8487         b = surf_parse__scan_buffer(buf,n );
8488         if ( ! b )
8489                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
8490
8491         /* It's okay to grow etc. this buffer, and we should throw it
8492          * away when we're done.
8493          */
8494         b->yy_is_our_buffer = 1;
8495
8496         return b;
8497 }
8498
8499     static void yy_push_state (int  new_state )
8500 {
8501         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
8502                 {
8503                 yy_size_t new_size;
8504
8505                 (yy_start_stack_depth) += YY_START_STACK_INCR;
8506                 new_size = (yy_start_stack_depth) * sizeof( int );
8507
8508                 if ( ! (yy_start_stack) )
8509                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
8510
8511                 else
8512                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
8513
8514                 if ( ! (yy_start_stack) )
8515                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
8516                 }
8517
8518         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
8519
8520         BEGIN(new_state);
8521 }
8522
8523     static void yy_pop_state  (void)
8524 {
8525         if ( --(yy_start_stack_ptr) < 0 )
8526                 YY_FATAL_ERROR( "start-condition stack underflow" );
8527
8528         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
8529 }
8530
8531 #ifndef YY_EXIT_FAILURE
8532 #define YY_EXIT_FAILURE 2
8533 #endif
8534
8535 static void yy_fatal_error (yyconst char* msg )
8536 {
8537         (void) fprintf( stderr, "%s\n", msg );
8538         exit( YY_EXIT_FAILURE );
8539 }
8540
8541 /* Redefine yyless() so it works in section 3 code. */
8542
8543 #undef yyless
8544 #define yyless(n) \
8545         do \
8546                 { \
8547                 /* Undo effects of setting up surf_parse_text. */ \
8548         int yyless_macro_arg = (n); \
8549         YY_LESS_LINENO(yyless_macro_arg);\
8550                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
8551                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
8552                 (yy_hold_char) = *(yy_c_buf_p); \
8553                 *(yy_c_buf_p) = '\0'; \
8554                 surf_parse_leng = yyless_macro_arg; \
8555                 } \
8556         while ( 0 )
8557
8558 /* Accessor  methods (get/set functions) to struct members. */
8559
8560 /** Get the current line number.
8561  * 
8562  */
8563 int surf_parse_get_lineno  (void)
8564 {
8565         
8566     return surf_parse_lineno;
8567 }
8568
8569 /** Get the input stream.
8570  * 
8571  */
8572 FILE *surf_parse_get_in  (void)
8573 {
8574         return surf_parse_in;
8575 }
8576
8577 /** Get the output stream.
8578  * 
8579  */
8580 FILE *surf_parse_get_out  (void)
8581 {
8582         return surf_parse_out;
8583 }
8584
8585 /** Get the length of the current token.
8586  * 
8587  */
8588 int surf_parse_get_leng  (void)
8589 {
8590         return surf_parse_leng;
8591 }
8592
8593 /** Get the current token.
8594  * 
8595  */
8596
8597 char *surf_parse_get_text  (void)
8598 {
8599         return surf_parse_text;
8600 }
8601
8602 /** Set the current line number.
8603  * @param line_number
8604  * 
8605  */
8606 void surf_parse_set_lineno (int  line_number )
8607 {
8608     
8609     surf_parse_lineno = line_number;
8610 }
8611
8612 /** Set the input stream. This does not discard the current
8613  * input buffer.
8614  * @param in_str A readable stream.
8615  * 
8616  * @see surf_parse__switch_to_buffer
8617  */
8618 void surf_parse_set_in (FILE *  in_str )
8619 {
8620         surf_parse_in = in_str ;
8621 }
8622
8623 void surf_parse_set_out (FILE *  out_str )
8624 {
8625         surf_parse_out = out_str ;
8626 }
8627
8628 int surf_parse_get_debug  (void)
8629 {
8630         return surf_parse__flex_debug;
8631 }
8632
8633 void surf_parse_set_debug (int  bdebug )
8634 {
8635         surf_parse__flex_debug = bdebug ;
8636 }
8637
8638 static int yy_init_globals (void)
8639 {
8640         /* Initialization is the same as for the non-reentrant scanner.
8641      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
8642      */
8643
8644     /* We do not touch surf_parse_lineno unless the option is enabled. */
8645     surf_parse_lineno =  1;
8646     
8647     (yy_buffer_stack) = 0;
8648     (yy_buffer_stack_top) = 0;
8649     (yy_buffer_stack_max) = 0;
8650     (yy_c_buf_p) = (char *) 0;
8651     (yy_init) = 0;
8652     (yy_start) = 0;
8653
8654     (yy_start_stack_ptr) = 0;
8655     (yy_start_stack_depth) = 0;
8656     (yy_start_stack) =  NULL;
8657
8658 /* Defined in main.c */
8659 #ifdef YY_STDINIT
8660     surf_parse_in = stdin;
8661     surf_parse_out = stdout;
8662 #else
8663     surf_parse_in = (FILE *) 0;
8664     surf_parse_out = (FILE *) 0;
8665 #endif
8666
8667     /* For future reference: Set errno on error, since we are called by
8668      * surf_parse_lex_init()
8669      */
8670     return 0;
8671 }
8672
8673 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
8674 int surf_parse_lex_destroy  (void)
8675 {
8676     
8677     /* Pop the buffer stack, destroying each element. */
8678         while(YY_CURRENT_BUFFER){
8679                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
8680                 YY_CURRENT_BUFFER_LVALUE = NULL;
8681                 surf_parse_pop_buffer_state();
8682         }
8683
8684         /* Destroy the stack itself. */
8685         surf_parse_free((yy_buffer_stack) );
8686         (yy_buffer_stack) = NULL;
8687
8688     /* Destroy the start condition stack. */
8689         surf_parse_free((yy_start_stack)  );
8690         (yy_start_stack) = NULL;
8691
8692     /* Reset the globals. This is important in a non-reentrant scanner so the next time
8693      * surf_parse_lex() is called, initialization will occur. */
8694     yy_init_globals( );
8695
8696     return 0;
8697 }
8698
8699 /*
8700  * Internal utility routines.
8701  */
8702
8703 #ifndef yytext_ptr
8704 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
8705 {
8706         register int i;
8707         for ( i = 0; i < n; ++i )
8708                 s1[i] = s2[i];
8709 }
8710 #endif
8711
8712 #ifdef YY_NEED_STRLEN
8713 static int yy_flex_strlen (yyconst char * s )
8714 {
8715         register int n;
8716         for ( n = 0; s[n]; ++n )
8717                 ;
8718
8719         return n;
8720 }
8721 #endif
8722
8723 void *surf_parse_alloc (yy_size_t  size )
8724 {
8725         return (void *) malloc( size );
8726 }
8727
8728 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
8729 {
8730         /* The cast to (char *) in the following accommodates both
8731          * implementations that use char* generic pointers, and those
8732          * that use void* generic pointers.  It works with the latter
8733          * because both ANSI C and C++ allow castless assignment from
8734          * any pointer type to void*, and deal with argument conversions
8735          * as though doing an assignment.
8736          */
8737         return (void *) realloc( (char *) ptr, size );
8738 }
8739
8740 void surf_parse_free (void * ptr )
8741 {
8742         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
8743 }
8744
8745 #define YYTABLES_NAME "yytables"
8746
8747 /* Element context stack lookup. */
8748 int surfxml_element_context(int i)
8749 {
8750   return (0<i && i<yy_start_stack_depth
8751           ? yy_start_stack[yy_start_stack_ptr - i]
8752           : 0);
8753 }
8754
8755 #ifdef FLEX_DEBUG
8756 void print_yy_stack(char* fmt, ...)
8757 {
8758   int i = 0; va_list ap; va_start(ap, fmt);
8759   vfprintf(stderr, fmt, ap);
8760   if (surfxml_statenames) {
8761       for (i=1; i<yy_start_stack_ptr; i++) {
8762           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
8763       }
8764       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
8765   }
8766   va_end(ap);
8767 }
8768
8769 void print_surfxml_bufferstack()
8770 {
8771     int i;
8772     fputs("Buffer: ", stderr);
8773     for (i = 0; i < blimit; i++) {
8774        if ( surfxml_bufferstack[i] == '\377' ) break;
8775          putc(surfxml_bufferstack[i], stderr);
8776     }
8777     putc('\n', stderr);
8778 }
8779
8780 static void debug_enter(int state, const char* statename) {
8781   yy_push_state(state);
8782   if (surf_parse__flex_debug) {
8783        print_yy_stack("--ENTER(%s) : ",statename);
8784        print_surfxml_bufferstack();
8785   }
8786 }
8787
8788 static void debug_leave(void) {
8789     if (surf_parse__flex_debug) {
8790         print_yy_stack("--LEAVE : ");
8791         print_surfxml_bufferstack();
8792     }
8793   yy_pop_state();
8794 }
8795
8796 static void debug_set(int state, const char* statename) {
8797   BEGIN(state);
8798   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
8799 }
8800 #endif
8801
8802 static void cleanup(void)
8803 {
8804     if (surfxml_statenames) {
8805         free(surfxml_statenames);
8806         surfxml_statenames = NULL;
8807     }
8808     free(surfxml_bufferstack);
8809     surfxml_bufferstack = NULL;
8810
8811     free(indexstack);
8812     indexstack = NULL;
8813 }
8814
8815 static int fail(const char* fmt, ...)
8816 {
8817     int chars_left, used;
8818     va_list ap; va_start(ap, fmt);
8819 #ifdef FLEXML_yylineno
8820     used = sprintf(flexml_err_msg,
8821                    "Invalid XML (XML input line %d, state %d): ",
8822                    surf_parse_lineno, YY_START);
8823 #else
8824     used = sprintf(flexml_err_msg,
8825                    "Invalid XML (state %d): ",
8826                    YY_START);
8827 #endif
8828     chars_left = flexml_max_err_msg_size - used - 1;
8829     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
8830     va_end(ap);
8831
8832 #ifndef FLEXML_quiet_parser
8833     /* print directly to sdterr */
8834     fprintf(stderr, "%s\n", flexml_err_msg);
8835     flexml_err_msg[0] = '\0';
8836 #endif
8837
8838     cleanup();
8839
8840     return 1;
8841 }
8842