Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add 2 tesh files for new stuff and make them part of the testsuite
[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 476
407 #define YY_END_OF_BUFFER 477
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[2809] =
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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,  477,  475,   15,   10,
443        10,   15,   15,  455,   10,  455,    5,    6,    5,    8,
444         9,    8,  471,  463,  464,  472,  469,  472,  470,  474,
445       463,  464,  474,  475,   22,   10,   22,   22,   22,   20,
446        22,   26,   10,   26,   26,  475,   26,  475,  475,   26,
447        33,   10,   33,   33,   33,   31,   33,   37,   10,   37,
448        37,   48,   10,   48,   48,   48,   46,   48,   48,   48,
449
450       472,  471,   78,   10,   78,   78,   78,   76,   78,   78,
451        78,   78,   78,   82,   10,   82,  475,   82,  101,   10,
452       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
453       114,   10,  114,  114,  114,  112,  114,  114,  118,   10,
454       118,  118,  475,  118,  118,  475,  475,  118,  475,  118,
455       475,  118,  131,   10,  131,  131,  131,  129,  131,  131,
456       131,  131,  135,   10,  135,  135,  146,   10,  146,  146,
457       146,  144,  146,  146,  146,  150,   10,  150,  150,  159,
458        10,  159,  159,  159,  157,  159,  159,  163,   10,  163,
459       172,   10,  172,  172,  172,  170,  172,  172,  176,   10,
460
461       176,  199,   10,  199,  199,  199,  197,  199,  199,  199,
462       199,  199,  203,   10,  203,  475,  203,  244,   10,  244,
463       244,  244,  242,  244,  244,  244,  244,  244,  244,  244,
464       244,  248,   10,  248,  269,   10,  269,  269,  269,  267,
465       269,  269,  269,  269,  269,  269,  269,  273,   10,  273,
466       282,   10,  282,  282,  282,  280,  282,  282,  286,   10,
467       286,  313,   10,  313,  313,  313,  311,  313,  313,  313,
468       313,  317,   10,  317,  317,  330,   10,  330,  330,  330,
469       328,  330,  330,  334,   10,  334,  475,  334,  351,   10,
470       351,  351,  351,  349,  351,  351,  351,  355,   10,  355,
471
472       355,  368,   10,  368,  368,  368,  366,  368,  368,  372,
473        10,  372,  381,   10,  381,  381,  381,  379,  381,  381,
474       385,   10,  385,  385,  398,   10,  398,  398,  398,  396,
475       398,  398,  398,  402,   10,  402,  402,  415,   10,  415,
476       415,  415,  413,  415,  415,  415,  415,  419,   10,  419,
477       475,  419,  426,   10,  426,  426,  426,  424,  426,  430,
478        10,  430,  437,   10,  437,  437,  437,  435,  437,  441,
479        10,  441,  441,  450,   10,  450,  450,  450,  448,  450,
480       450,  454,   10,  454,   10,    0,    2,    2,    0,    4,
481         7,  466,  465,    0,    0,    0,    0,    0,    0,    0,
482
483        21,   23,   23,    0,    0,    0,    0,    0,    0,    0,
484         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
485         0,    0,    0,    0,    0,    0,   32,   34,   34,    0,
486        47,   49,   49,   49,   49,    0,    0,    0,   77,   79,
487        79,   79,   79,   79,   79,   79,   79,   79,    0,    0,
488       100,  102,  102,  102,  102,    0,  113,  115,  115,  115,
489         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
490         0,    0,  130,  132,  132,  132,  132,  132,    0,  145,
491       147,  147,  147,  147,    0,  158,  160,  160,  160,    0,
492       171,  173,  173,  173,    0,  198,  200,  200,  200,  200,
493
494       200,  200,    0,    0,  243,  245,  245,  245,  245,  245,
495       245,  245,  245,  245,  245,  245,  245,  245,  245,    0,
496       268,  270,  270,  270,  270,  270,  270,  270,  270,    0,
497       281,  283,  283,  283,    0,  312,  314,  314,  314,  314,
498       314,  314,    0,  329,  331,  331,  331,  331,    0,    0,
499       350,  352,  352,  352,  352,  352,    0,  367,  369,  369,
500       369,    0,  380,  382,  382,  382,    0,  397,  399,  399,
501       399,  399,    0,  414,  416,  416,  416,  416,  416,    0,
502         0,  425,  427,  427,    0,  436,  438,  438,    0,  449,
503       451,  451,  451,    0,    0,    0,    0,    0,    3,    0,
504
505         0,    0,    0,    0,    0,    0,  473,    0,   23,    0,
506         0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
507         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
508       106,    0,    0,    0,    0,    0,   34,    0,    0,   49,
509         0,    0,   49,    0,    0,    0,  468,   79,    0,    0,
510        79,   79,   79,   79,   79,   79,    0,    0,    0,  102,
511       102,  102,    0,    0,    0,    0,  115,    0,    0,  107,
512         0,    0,    0,    0,    0,  106,    0,    0,    0,    0,
513       132,    0,    0,  132,  132,    0,    0,  147,    0,    0,
514       147,    0,    0,    0,    0,  160,    0,    0,  173,  173,
515
516         0,    0,  200,  200,  200,    0,    0,  200,  200,    0,
517         0,    0,    0,  245,  245,    0,    0,  245,    0,    0,
518       245,  245,  245,  245,  245,  245,  245,  245,    0,    0,
519       270,  270,  270,    0,    0,  270,  270,  270,    0,    0,
520       283,    0,    0,    0,    0,  314,    0,    0,  314,  314,
521       314,    0,    0,  331,  331,  331,    0,    0,    0,  352,
522       352,  352,  352,    0,    0,  369,    0,    0,    0,    0,
523       382,  382,    0,    0,  399,  399,  399,    0,    0,  416,
524       416,  416,  416,    0,    0,    0,  427,    0,    0,    0,
525         0,    0,    0,    0,    0,  451,    0,    0,    0,   14,
526
527         1,    0,    0,  461,    0,    0,    0,  458,  457,    0,
528         0,   23,    0,    0,   25,    0,  107,    0,    0,    0,
529         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
530         0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
531         0,    0,   34,    0,    0,   36,    0,   49,    0,   41,
532        40,   49,    0,    0,    0,   51,    0,   79,    0,   55,
533        54,    0,    0,   79,    0,    0,   79,   79,   79,    0,
534         0,   81,    0,    0,  102,  102,  102,    0,    0,  104,
535         0,    0,  109,  108,  115,    0,    0,  117,    0,    0,
536         0,    0,    0,    0,    0,    0,    0,    0,    0,  132,
537
538         0,  122,  121,  132,  132,    0,    0,  134,    0,  147,
539         0,  139,  138,  147,    0,    0,  149,    0,    0,  154,
540       153,  160,    0,    0,  162,    0,  173,  173,    0,    0,
541       175,    0,  200,  200,  200,    0,  180,  179,  200,  200,
542         0,    0,  202,    0,    0,    0,  245,  245,  245,  245,
543         0,  219,  218,  245,    0,  207,  206,    0,    0,  245,
544       245,  245,  245,  245,  245,  245,    0,    0,  247,    0,
545       270,  270,  270,  270,    0,  252,  251,    0,    0,  270,
546       270,    0,    0,  272,    0,  283,    0,  277,  276,    0,
547         0,  285,    0,  314,    0,  290,  289,  314,  314,  314,
548
549         0,    0,  316,    0,    0,    0,    0,    0,  331,    0,
550         0,  333,    0,    0,    0,    0,  352,  352,    0,    0,
551       352,    0,    0,  354,    0,  369,    0,  359,  358,    0,
552         0,  371,    0,    0,    0,    0,    0,    0,    0,  384,
553         0,    0,    0,  399,  399,    0,    0,    0,    0,  401,
554         0,  416,  416,  416,  416,    0,    0,  418,    0,    0,
555       427,    0,    0,  429,    0,    0,  434,  433,    0,    0,
556       440,    0,    0,  445,  444,  451,    0,    0,  453,    0,
557         0,    0,  462,  456,    0,    0,    0,   23,    0,    0,
558         0,    0,    0,    0,  177,    0,  287,    0,    0,  250,
559
560         0,    0,  442,    0,    0,    0,    0,    0,    0,    0,
561         0,  249,    0,    0,    0,    0,    0,    0,    0,   49,
562         0,    0,   79,    0,   59,   58,    0,    0,    0,   57,
563        56,   79,    0,    0,   79,    0,  443,  102,    0,    0,
564       102,    0,  115,    0,  116,    0,    0,  178,  288,    0,
565         0,    0,    0,    0,    0,  132,  132,    0,    0,    0,
566       147,  147,    0,    0,    0,    0,    0,    0,  173,    0,
567       200,  200,    0,    0,  200,  200,    0,    0,    0,  245,
568       245,  245,  245,    0,    0,    0,  221,  220,  245,  245,
569       245,  245,  245,  245,  245,    0,  270,  270,  270,  270,
570
571         0,  260,  259,  270,  270,    0,  283,    0,  314,  314,
572       314,  314,    0,    0,  323,  322,    0,  321,  320,  331,
573         0,  287,    0,  340,  339,  352,  352,    0,  338,  337,
574       352,    0,  369,    0,    0,  378,  377,    0,  376,  375,
575         0,    0,  391,  390,  399,  399,    0,  389,  388,    0,
576       416,    0,    0,  416,  416,    0,    0,  427,    0,    0,
577       451,    0,    0,    0,    0,   12,    0,  459,  460,    0,
578        23,    0,    0,    0,    0,    0,    0,  177,    0,  287,
579         0,  151,    0,  250,    0,    0,  442,    0,  318,    0,
580        39,    0,    0,    0,    0,  249,    0,   38,    0,   30,
581
582        29,    0,    0,   43,   42,   49,    0,    0,   79,    0,
583        61,   60,   79,    0,   65,   64,   79,    0,  443,  102,
584         0,    0,    0,    0,    0,    0,  115,    0,    0,  178,
585       288,  319,    0,    0,    0,  319,  318,  132,    0,    0,
586         0,  126,  125,    0,  147,  147,    0,    0,  156,  155,
587         0,    0,  169,  168,  173,    0,  200,  200,    0,  184,
588       183,    0,    0,    0,    0,  200,    0,  152,    0,  245,
589         0,    0,  245,  245,    0,  217,  216,    0,    0,  245,
590       245,  245,  245,  245,  245,    0,  270,    0,    0,  270,
591       270,    0,    0,  270,    0,  283,    0,  314,  314,  314,
592
593         0,    0,  314,    0,  331,    0,    0,  352,  352,  352,
594         0,  369,    0,    0,  399,  399,    0,  416,    0,  406,
595       405,  416,  416,    0,    0,    0,    0,    0,    0,    0,
596         0,    0,    0,    0,    0,   11,    0,   23,    0,    0,
597         0,    0,    0,  432,    0,    0,  151,    0,    0,    0,
598        53,  318,  274,    0,   39,    0,  431,   52,    0,    0,
599         0,   38,    0,    0,   49,    0,    0,   79,   79,   79,
600         0,  102,    0,    0,    0,    0,    0,    0,    0,    0,
601         0,   96,   95,    0,  115,    0,    0,  319,  275,    0,
602         0,    0,  132,    0,  124,  123,    0,  147,    0,    0,
603
604         0,    0,    0,    0,    0,  200,  200,    0,  182,  181,
605         0,    0,    0,  200,    0,  201,  152,    0,  245,    0,
606       229,  228,    0,    0,  245,    0,  215,  214,    0,    0,
607       245,  245,  245,  245,    0,    0,    0,  270,    0,  256,
608       255,    0,    0,  270,    0,  254,  253,  270,    0,  271,
609       283,    0,  314,  314,  314,    0,    0,    0,  314,    0,
610       315,  331,    0,    0,    0,    0,    0,    0,  352,    0,
611       369,    0,    0,    0,    0,    0,    0,    0,  416,  416,
612       416,    0,    0,    0,  423,  422,    0,    0,    0,  447,
613       446,    0,  452,    0,    0,    0,    0,    0,    0,    0,
614
615       335,    0,    0,    0,  205,  432,   28,    0,    0,    0,
616       404,   53,  274,  136,    0,  431,   52,  204,   27,  403,
617         0,    0,   49,    0,    0,   50,   79,    0,    0,   79,
618         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
619         0,    0,    0,    0,    0,    0,  336,    0,    0,  275,
620       137,    0,    0,    0,    0,    0,    0,  141,  140,    0,
621         0,  161,    0,  167,  166,    0,  200,  200,    0,    0,
622       200,    0,  245,    0,  231,  230,  245,    0,  209,  208,
623         0,    0,  245,  245,  245,    0,  211,  210,    0,  270,
624         0,  258,  257,  270,  270,  283,    0,  314,    0,    0,
625
626       314,  314,    0,    0,  314,  331,    0,  332,    0,    0,
627       344,  343,    0,  342,  341,  352,    0,  369,    0,    0,
628         0,  395,  394,    0,  393,  392,    0,  416,  416,  416,
629         0,    0,    0,    0,    0,    0,    0,   17,    0,   19,
630        18,    0,  335,  420,    0,    0,  205,   28,  356,  164,
631        16,  404,  136,    0,    0,  204,   27,  403,    0,    0,
632        49,  467,   79,    0,   67,   66,   79,    0,   80,    0,
633        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
634         0,    0,    0,    0,  111,  110,  336,    0,    0,  137,
635         0,    0,  128,  127,    0,    0,  143,  142,    0,    0,
636
637       200,  200,    0,    0,    0,    0,  200,  165,  245,  245,
638         0,  213,  212,  245,  245,  245,    0,  270,  270,  270,
639       283,    0,  284,  314,    0,  296,  295,  314,  314,    0,
640         0,    0,    0,  314,  331,  357,  352,    0,  369,    0,
641         0,    0,    0,    0,  416,  416,    0,  421,    0,    0,
642       439,    0,    0,    0,   17,    0,  420,    0,    0,  356,
643       164,   16,    0,    0,    0,    0,   35,   49,    0,    0,
644        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
645         0,    0,    0,    0,    0,    0,    0,  148,    0,  200,
646       200,    0,  190,    0,  189,  200,  165,  245,  245,    0,
647
648         0,  245,  245,    0,  246,  270,  270,  270,  283,    0,
649         0,  314,  314,  314,    0,  300,    0,  299,  314,  331,
650       357,  352,    0,  353,    0,    0,    0,    0,    0,    0,
651       408,  407,    0,    0,  416,    0,  417,  421,    0,    0,
652         0,    0,    0,   24,    0,    0,    0,    0,    0,   49,
653         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
654         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
655       174,  200,  200,  192,  191,    0,    0,  245,  245,    0,
656       241,  240,  245,    0,    0,  270,  270,    0,    0,  283,
657         0,  292,  291,  314,  314,  314,  302,  301,    0,    0,
658
659       331,  352,    0,    0,    0,    0,  370,    0,    0,    0,
660       412,  411,    0,    0,    0,  428,    0,    0,    0,    0,
661       373,    0,    0,    0,    0,    0,    0,    0,    0,    0,
662         0,    0,   79,    0,    0,    0,    0,   88,    0,    0,
663         0,    0,   87,    0,    0,  374,    0,    0,  200,    0,
664         0,    0,  194,  193,  245,  245,  245,    0,  239,  238,
665       270,    0,    0,    0,  266,  265,    0,    0,  314,  314,
666       314,    0,  304,  303,    0,    0,    0,    0,    0,    0,
667         0,    0,    0,    0,    0,    0,    0,  410,  409,    0,
668         0,    0,    0,  373,  119,    0,    0,    0,   45,   44,
669
670         0,    0,    0,    0,    0,    0,    0,    0,   79,    0,
671         0,    0,    0,    0,    0,    0,    0,    0,    0,  374,
672       120,    0,    0,    0,  200,    0,  196,  195,  245,  245,
673       245,  270,    0,  262,  261,    0,  279,  278,  314,    0,
674         0,  314,    0,    0,    0,    0,    0,    0,    0,    0,
675         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
676       386,  119,   84,   83,    0,    0,    0,    0,    0,    0,
677         0,    0,    0,    0,    0,    0,   94,    0,    0,    0,
678        93,    0,    0,  387,  120,    0,    0,  186,  185,  200,
679       245,  245,  245,  270,  314,    0,  298,  297,  314,    0,
680
681         0,    0,    0,    0,    0,    0,    0,    0,    0,  361,
682         0,    0,  360,    0,  383,    0,    0,    0,    0,    0,
683         0,    0,  386,   84,   83,    0,    0,    0,    0,    0,
684         0,    0,    0,    0,   63,   62,    0,    0,    0,    0,
685         0,    0,    0,  387,    0,  133,  200,  245,  245,    0,
686         0,  270,    0,    0,    0,    0,    0,    0,    0,    0,
687         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
688         0,    0,    0,    0,    0,    0,   75,   71,    0,    0,
689        74,   70,    0,   92,    0,    0,   91,    0,    0,    0,
690       103,  200,  245,  245,    0,    0,    0,  270,    0,  294,
691
692       293,    0,    0,    0,  327,    0,  326,    0,  348,    0,
693       347,    0,  363,  365,  362,  364,    0,  400,    0,    0,
694         0,   12,    0,   12,    0,    0,    0,    0,    0,   86,
695        90,   85,   89,  200,  245,  245,    0,    0,    0,    0,
696       270,    0,    0,    0,    0,  325,  324,  346,  345,    0,
697         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
698         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
699         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
700        69,    0,   68,    0,    0,  188,  187,    0,  237,  236,
701         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
702
703       264,  263,    0,    0,    0,    0,    0,    0,    0,   11,
704         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
705         0,    0,    0,    0,    0,    0,    0,    0,    0,   73,
706        72,    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,  223,    0,    0,  222,    0,    0,  306,    0,    0,
711       305,    0,    0,    0,    0,    0,  227,    0,  226,    0,
712       308,    0,  307,    0,    0,    0,    0,    0,    0,    0,
713
714         0,    0,    0,    0,    0,  233,    0,  232,    0,    0,
715         0,    0,    0,    0,  235,  234,  225,  224,  310,  309,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
717         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
718         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
719         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
720         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
721         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
722         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
723         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
724
725         0,    0,    0,    0,    0,    0,   13,    0
726     } ;
727
728 static yyconst flex_int32_t yy_ec[256] =
729     {   0,
730         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
731         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
732         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
733         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
734         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
735        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
736        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
737        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
738        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
739        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
740
741        53,   54,   55,   56,   57,   31,   58,   59,   60,   61,
742        62,   63,   64,   65,   66,   67,   68,   69,   70,   71,
743        72,   73,    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,    1,    1,    1,    1,    1,
746         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
747         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
748         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
749         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
750         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
751
752         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
753         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
754         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
755         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
756         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
757         1,    1,    1,    1,    1
758     } ;
759
760 static yyconst flex_int32_t yy_meta[74] =
761     {   0,
762         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
763         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
764         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
765         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
766         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
767         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
768         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
769         5,    5,    5
770     } ;
771
772 static yyconst flex_int16_t yy_base[3207] =
773     {   0,
774         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
775        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
776       108,  177,   75,   78,   83,  128,  131,  134,  138,  141,
777       158,  197,  200,  203,  207,  210,  227,  230,  233,  236,
778       239,  256,  274,  328,  294,  297,  300,  304,  307,  348,
779       351,  354,  382,  445,  359,  414,  508,  574,  405,  408,
780       412,  417,  465,  468,  471,  475,  640,  707,  478,  528,
781       774,  839,  531,  534,  538,  541,  594,  597,  600,  604,
782       607,  660,  663,  666,  670,  673,  727,  730,  733,  737,
783       740,  794,  797,  800,  804,  807,  859,  862,  865,  869,
784
785       872,  889,  907,  973,  927,  930,  933,  937,  993,  996,
786       999, 1003, 1039, 1106, 1059, 1062, 1065, 1069, 1126, 1129,
787      1132, 1136, 1173, 1234, 1193, 1196, 1295, 1362, 1199, 1203,
788      1429, 1495, 1206, 1254, 1257, 1260, 1264, 1267, 1315, 1318,
789      1561,    0, 1321, 1325, 1634, 1700, 1328, 1382, 1766, 1823,
790      1385, 1388, 1880, 1946, 1392, 1395, 1449, 1452, 1455, 1459,
791      1515, 1518, 2012, 2078, 1521, 1525, 1654, 1657, 1660, 1664,
792      1720, 1723, 2144, 2210, 1726, 1730, 1786, 1789, 1792, 1796,
793      1843, 1846, 2276, 2333, 1849, 1853, 2390, 2456, 1900, 1903,
794      1906, 1910, 1913, 1966, 1969, 1972, 2522, 2588, 1976, 1979,
795
796      2032, 2035, 2038, 2042, 2045, 2098, 2654, 2720, 2101, 2104,
797      2108, 2111, 2164, 2167, 2170, 2174, 2786, 2855, 2177, 2230,
798      2924, 2981, 2233, 2236, 2240, 2243, 2296, 2299, 2302, 2306,
799      3038, 3107, 2309, 2353,    0,    0, 7718,10175,10175,   95,
800       100,   29,   41,10175,  103,   51,10175,10175, 7707,10175,
801     10175, 7692,10175, 7707, 7707,  498,10175,10175,10175,10175,
802      7701, 7701, 7656,  145,10175,  161, 7678,    0,  146,10175,
803      7644,10175,  166, 3172,   88,  204,  205,  254, 7684, 7628,
804     10175,  169, 7670,    0,  153,10175, 7632,10175,  260, 7672,
805        31,10175,  357, 7663,    0,  244,10175, 7625, 7625, 7623,
806
807       359, 7628,10175,  438, 7650,    0,  248,10175, 7616, 7616,
808       441, 7614,  260,10175,  567,  112,  181,  210,10175,  624,
809      7642,    0,  360,10175, 7602, 7599, 7590,10175,  633,  422,
810     10175,  692, 7634,    0,  479,10175, 7597, 7586,10175,  697,
811      2309, 2364,   29,  348,  197, 7635,  740,  805,  707,  673,
812      7630,   16,10175,  700, 7621,    0,  480,10175, 7578, 7583,
813      7572, 7576,10175,  765,  260,  361,10175,  826, 7608,    0,
814       482,10175, 7565, 7574, 7549,10175,  830,  413,  425,10175,
815       833, 7600,    0,  543,10175, 7567, 7088,10175,  895,  546,
816     10175,  898, 7116,    0,  545,10175, 7085, 7061,10175,  940,
817
818       611,10175,  957, 7112,    0,  609,10175, 7062, 7068, 7077,
819      7066, 7059,10175,  966,  950, 7113,  316,10175, 1023, 7103,
820         0,  612,10175, 7046,   21, 7052, 7060, 7055,  442,  382,
821       615,10175, 1032,  685,10175, 1072, 7083,    0,  684,10175,
822      7032, 7025, 7031, 7036, 7038, 7023, 7013,10175, 1089,  944,
823     10175, 1095, 7059,    0,  873,10175, 7010, 7018,10175, 1098,
824       945,10175, 1101, 7049,    0,  874,10175, 7018, 7002, 7004,
825        33,10175, 1139,  512,  527,10175, 1156, 7031,    0,  884,
826     10175, 6977,  155,10175, 1162,  959, 7030, 6981,10175, 1165,
827      7019,    0,  942,10175, 6971, 6962,  684,10175, 1168, 7019,
828
829       758,10175, 1223, 7005,    0, 1007,10175, 6967, 6970,10175,
830      1229, 1011,10175, 1284, 6990,    0, 1010,10175, 6943, 6940,
831     10175, 1290, 6992,  996,10175, 1345, 6982,    0, 1073,10175,
832      6935, 6907, 6907,10175, 1348, 6959, 1025,10175, 1351, 6938,
833         0, 1074,10175, 6889, 6893, 6893, 6882,10175, 1355, 1216,
834      6935,  556,10175, 1412, 6922,    0, 1140,10175, 6892,10175,
835      1415, 1399,10175, 1422, 6919,    0, 1141,10175, 6878,10175,
836      1462,   11,  926,10175, 1479, 6909,    0, 1208,10175, 6876,
837      6876,10175, 1485, 1400, 1528,  736, 6853,10175, 6903, 6892,
838     10175,10175,10175, 1674,  687, 6840, 6839, 6836, 6882, 6842,
839
840     10175,    0, 6834, 6830, 6846, 6819, 6810,  754, 6814, 6814,
841      6816,  757, 1224,  630, 6797, 6794,  822, 1422, 6806,  844,
842      6778, 1426, 6773, 1089, 1492, 1494,10175,    0, 6777, 6760,
843     10175,    0, 6753, 1667, 6746,  280, 6733, 6779,10175,    0,
844      6736, 1733, 6725, 6745, 6728, 6726, 6722, 6717, 6702, 1495,
845     10175,    0, 6709, 6697, 6707, 6679,10175,    0, 1799, 6676,
846      6721, 6698, 6664, 6672, 6669, 1488, 6658, 6681, 6647, 6640,
847      1628, 1630,10175,    0, 6636, 1856, 6644, 6621, 6608,10175,
848         0, 6612, 2358, 6607, 6601,10175,    0, 2413, 6605, 6602,
849     10175,    0, 6600, 6580, 6582,10175,    0, 6591, 1150, 2416,
850
851      6564, 6583, 6571, 1156,10175,    0, 6577, 6568, 2419, 6550,
852      2422, 6546, 6537, 6553, 6552, 6531, 6549, 6543, 6536, 6537,
853     10175,    0, 6536, 6529, 6514, 2426, 6501, 6497, 6509, 6494,
854     10175,    0, 6493, 2476, 6484,10175,    0, 6477, 2479, 6470,
855      6482, 6481, 6469,10175,    0, 6449, 6464, 6445, 6439, 6437,
856     10175,    0, 6426, 6435, 6431, 6420, 6450,10175,    0, 6404,
857      2482, 6404,10175,    0, 6395, 6405, 6404,10175,    0, 6386,
858      6403, 6395, 6395,10175,    0, 6382, 6372, 6376, 6380, 6363,
859      6353,10175,    0, 6358, 6359,10175,    0, 2485, 6348,10175,
860         0, 2488, 6335, 6329, 6371, 6379, 1254, 6315,10175, 1681,
861
862         0, 6311, 6310, 6354, 6352, 6302,10175, 6314, 6290, 2542,
863      2545, 1751, 6300, 6290, 6270, 6276, 6269, 6283, 6271, 6252,
864      6252, 6264, 6263, 6249, 6245, 6237, 6241, 6245, 6232, 6230,
865      1875, 6220, 6224, 6220, 6206, 6218, 6209, 2550, 2553, 6208,
866      2556, 1932, 6202, 6230, 2608, 2613,10175, 6200, 2617, 1998,
867      2620, 6190, 2623, 6189, 6193, 6195, 2627, 2687, 6180, 6180,
868      6187, 6186, 2677, 2682, 2690, 2063, 6169, 2740, 2806, 1941,
869      6171, 6167, 6152, 6139, 6142, 2006, 6129, 6128, 6112, 6111,
870      6107, 2746, 2129, 6120, 6109, 2749, 2752, 6092, 2760, 2198,
871      6099, 2755, 2810, 2818, 2264, 6094, 2814, 2821, 6088, 6087,
872
873      2876, 2883, 6077, 6043, 6054, 2825, 2444, 6052, 6034, 2886,
874      2889, 6028, 6023, 6032, 1490, 2895, 2507, 6034, 2944, 2576,
875      2950, 6025, 6023, 6018, 6003, 6004, 5997, 6002, 2953, 2956,
876      5994,  376, 5985, 3001, 2642, 3004, 5992, 5971, 3009, 3014,
877      5972, 3058, 2844, 3061, 3067, 5983, 3070, 2909, 5972, 5954,
878      5937, 3076, 3128, 3131, 3136, 3139, 3142, 3163, 5937, 3167,
879      3178, 3170, 3188, 3198, 3206, 5944, 3201, 3088, 3213, 3238,
880      3247, 3250, 3253, 3257, 3260, 3268, 3272, 3278, 3281, 5944,
881      5927, 5926, 5919, 3286, 3290, 5926, 5895, 3301, 3305, 3309,
882      3096, 3312, 3315, 3320, 3334, 5881, 3342, 3345, 5915,10175,
883
884     10175, 1314, 5869,10175, 5904, 5885, 5833,10175,10175, 5830,
885      5821, 5823, 3348, 3354,10175, 3369, 1758, 5817, 5809, 5820,
886      5802, 5812, 5794, 5794, 5794, 5780, 5777, 5770, 5763,  708,
887      5776, 5756, 5755, 5740, 5736, 5729, 1817, 5714, 5702, 5694,
888       763, 5707, 3357, 3376, 3379,10175, 3382, 3388, 3391,10175,
889     10175, 3401, 5727, 3409, 3412,10175, 3419, 5685, 3422,10175,
890     10175, 3432, 3438, 3446, 3450, 3453, 5691, 3468, 5689, 3471,
891      3474,10175, 3477, 1019, 5683, 3480, 5678, 3486, 3498,10175,
892      3501, 3505,10175,10175, 5673, 3513, 3520,10175, 3523, 5666,
893      5673, 5652, 5660, 5643, 5641, 5653, 5651, 5632, 5630, 5639,
894
895      3526,10175,10175, 5632, 3542, 3545, 3549,10175, 3552, 5636,
896      3564,10175,10175, 5656, 3555, 3560,10175, 3574, 3579,10175,
897     10175, 3587, 3593, 3596,10175, 3599, 3605, 3608, 3619, 3626,
898     10175, 3629, 5625, 5628, 3638, 3641,10175,10175, 5613, 5614,
899      3649, 3652,10175, 3656, 5603, 5597, 5599, 5586, 5602, 5590,
900      3659,10175,10175, 3671, 3675,10175,10175, 3683, 3689, 5579,
901      5586, 5590, 5580, 5575, 5574, 5568, 3697, 3701,10175, 3704,
902      5565, 5561, 5546, 5559, 3707,10175,10175, 3716, 3723, 5540,
903      5551, 3734, 3737,10175, 3740, 5550, 3743,10175,10175, 3759,
904      3762,10175, 3765, 5524, 3771,10175,10175, 5530, 5529, 5532,
905
906      3784, 3787,10175, 3792, 3795, 3799, 3807, 3813, 5530, 3821,
907      3825,10175, 3828, 5515, 3832, 3840, 5506, 5505, 3835, 3853,
908      5516, 3861, 3864,10175, 3867, 5516, 3870,10175,10175, 3886,
909      3889,10175, 3895, 3898, 3901, 3909, 3916, 3927, 3931,10175,
910      3934, 3938, 3946, 5494, 5489, 3941, 3959, 3967, 3970,10175,
911      3973, 5486, 3976, 5503, 5479, 3979, 3982,10175, 4001, 5476,
912      5490, 4004, 4007,10175, 4010, 4013,10175,10175, 4029, 4035,
913     10175, 4038, 4041,10175,10175, 5488, 4049, 4057,10175, 4064,
914       304, 4068,10175,10175, 5523, 5521, 5471, 5462, 4071, 5454,
915      5445, 5438, 5435, 5443, 2071, 5431, 2138, 5430, 5427, 2379,
916
917      5429, 5429, 2385, 5418, 5426, 5428, 5416, 5407, 5400, 5394,
918      5391, 2515, 5404, 5401, 4076, 4094, 4090, 4083, 4102, 5358,
919      5387, 4110, 5355, 4113,10175,10175, 4121, 4125, 4133,10175,
920     10175, 5350, 4141, 4144, 5337, 4152, 2701, 5326, 4155, 4160,
921      4173, 4176, 5325, 4179,10175, 5316, 5317, 2711, 2836, 5328,
922      5325, 5303, 5302, 5312, 5310, 5301, 4182, 4186, 4191, 4204,
923      5299, 5295, 4208, 4211, 4214, 4229, 4232, 4235, 5294, 4243,
924      5294, 5284, 4251, 4255, 4263, 4272, 4275, 5270, 5256, 5270,
925      4281, 5244, 5260, 4284, 4290, 4304,10175,10175, 4312, 5235,
926      5255, 5238, 5220, 5232, 5207, 4315, 5219, 4319, 5198, 5206,
927
928      4323,10175,10175, 4337, 5213, 4341, 5203, 4344, 5129, 5117,
929      5106, 4347, 4350, 4356,10175,10175, 4365,10175,10175, 5083,
930      4373, 2917, 4376,10175,10175, 5027, 5041, 4385,10175,10175,
931      5002, 4394, 4949, 4397, 4401,10175,10175, 4416,10175,10175,
932      4424, 4427,10175,10175, 4937, 4860, 4439,10175,10175, 4447,
933      4826, 4435, 4455, 4772, 4752, 4466, 4701, 4472, 4475, 4478,
934      4481, 4485,  593, 4736, 4499,10175, 4664,10175,10175, 4532,
935      4470, 4490,   80,   95,   91,  197,  197, 2714,  262, 2778,
936       265, 2781,  319, 2964,  308,  312, 2975,  345, 3028,  440,
937      4505,  442,  446,  507,  509, 3022,  558, 4509, 4512,10175,
938
939     10175, 4520, 4524,10175,10175,  599,  640, 4534,  690, 4556,
940     10175,10175,  746, 4567,10175,10175,  755, 4543, 3033,  771,
941      4575, 1839, 1896, 4547, 4587, 4595,  827,  821,  857, 3157,
942      3209, 4598,  891,  886,  906, 4604, 4607,  937, 4610, 4614,
943      4622,10175,10175, 4630,  942, 4633, 4636, 4640,10175,10175,
944      4651, 4655,10175,10175, 4663, 4671,  979,  977, 4674,10175,
945     10175, 4684, 4690, 4698, 4702, 1027, 4710, 4079, 1039, 1039,
946      4718, 4722, 4730, 1057, 4736,10175,10175, 4744, 4748, 4756,
947      1078, 1101, 1100, 1102, 4762, 4765, 1139, 4768, 4774, 4786,
948      1143, 4789, 4792, 1162, 4800, 1162, 4807, 1198, 1201, 1221,
949
950      4810, 4813, 1230, 4821, 1246, 4831, 1275, 4834, 4840, 4843,
951      4846, 1278, 4852, 4861, 4866, 4871, 4874, 1275, 4889,10175,
952     10175, 1283, 1277, 4884, 1292, 4899, 4903, 4913, 4918, 4922,
953      4926, 4940, 1341, 1340, 1407,10175, 1328, 4943, 4946, 1349,
954      1346, 1452, 1357, 4949, 1375, 1378, 4952, 1413, 1404, 1406,
955      4955, 4961, 4965, 1440, 4968, 1443, 4974, 4977, 1446, 1473,
956      1468, 4980, 1484, 4983, 1487, 1533, 4986, 1588, 4990, 1608,
957      4993, 4996, 1651, 1638, 1709, 1640, 1677, 1680, 1734, 1704,
958      5008,10175,10175, 5016, 5019, 1689, 1784, 5022, 5025, 1690,
959      1973, 2030, 5028, 5037,10175,10175, 5046, 5052, 5055, 5059,
960
961      5073, 5076, 5079, 5082, 5100, 1701, 1716, 5103,10175,10175,
962      5112, 1746, 1761, 1748, 5120,10175, 5123, 1753, 1752, 5127,
963     10175,10175, 5135, 5139, 1754, 5149,10175,10175, 5157, 5160,
964      5168, 1758, 1791, 1797, 5171, 5175, 5189, 1806, 5192,10175,
965     10175, 5200, 5204, 1816, 5212,10175,10175, 1809, 5220,10175,
966      1824, 5223, 1829, 5226, 1863, 5229, 1884, 1886, 1866, 5244,
967     10175, 1875, 5247, 1875, 5250, 5253, 5268, 5273, 1905, 5281,
968      1915, 5287, 5290, 5293, 5296, 5311, 5314, 5322, 1924, 1926,
969      1931, 5325, 1928, 5330,10175,10175, 5347, 5350, 5355,10175,
970     10175, 5369,10175, 2031, 2155, 1978, 1931, 5373, 5376, 5391,
971
972      5394, 1932, 1989, 1992, 5399, 5404, 5410, 1994, 2008, 2002,
973      5413, 5416, 5419, 5422, 2008, 5425, 5428, 5431, 5434, 5437,
974      2014, 5440, 2020, 2048, 5443,10175, 2044, 5446, 5449, 2068,
975      5464, 5469, 5472, 2083, 2081, 2081, 2088, 2084, 2093, 2095,
976      2096, 2102, 2096, 5483, 5487, 5492, 5505, 2104, 2098, 5508,
977      5511, 5514, 5517, 5525, 5528, 5533, 5546,10175,10175, 5554,
978      5559,10175, 5562,10175,10175, 5573, 2124, 2117, 2162, 2214,
979      2128, 2140, 2135, 5578,10175,10175, 2137, 5586,10175,10175,
980      5594, 5597, 2151, 2142, 2149, 5606,10175,10175, 5614, 2150,
981      5617,10175,10175, 2159, 2191, 2185, 5627, 2197, 5633, 5636,
982
983      2201, 2196, 2236, 2237, 2201, 2218, 5646,10175, 2213, 5651,
984     10175,10175, 5659,10175,10175, 2224, 5667, 2231, 5670, 5673,
985      5679,10175,10175, 5692,10175,10175, 5701, 5705, 5710, 5713,
986      5723, 2240, 5731, 5736, 5742, 2296, 2298, 5745, 5751,10175,
987     10175, 5762, 5765, 5768, 2250, 2251, 5772, 5775, 5781, 5784,
988      5791, 5794, 5797, 2258, 2265, 5800, 5803, 5806, 2268, 5809,
989      2263,10175, 5812, 5815,10175,10175, 5823, 5830,10175, 5834,
990     10175,10175, 2307, 2309, 2337, 2334, 2341, 2344, 2330, 2346,
991      2341, 2352, 5842, 5845,10175,10175, 5853, 2319, 2338, 5856,
992      2345, 5861,10175,10175, 5869, 5872,10175,10175, 5880, 5883,
993
994      2356, 2380, 2407, 2433, 2413, 2434, 2391, 5889, 2392, 2396,
995      5892,10175,10175, 5903, 2390, 2401, 5906, 2398, 2419, 2440,
996      2441, 5909,10175, 5912, 5921,10175,10175, 2439, 2435, 2472,
997      2494, 2478, 2497, 2459, 2465, 5916, 2466, 5930, 5935, 5938,
998      5941, 5944, 5949, 5953, 5963, 5967, 5970, 5973, 5976, 5985,
999     10175, 5989, 2531, 2530, 5998, 6004, 6008, 2458, 2454, 6011,
1000      6014, 6019, 2466, 2500, 2502, 6024,10175, 2492, 6027, 6030,
1001      6038, 2523, 2519, 2536, 2524, 2538, 2538, 2536, 2551, 2565,
1002      2580, 6045, 2570, 2570, 2566, 6051, 6056,10175, 6059, 2574,
1003      2583, 2644,10175, 2643,10175, 6064, 6070, 2586, 2622, 6078,
1004
1005      6082, 2617, 6090, 6096,10175, 2610, 2616, 6100, 2617, 6108,
1006      6111, 2633, 2629, 2636, 2690,10175, 2689,10175, 6119, 2640,
1007      6122, 2647, 6126,10175, 6129, 6133, 6141, 6147, 6151, 6154,
1008     10175,10175, 6162, 6166, 6174, 6180,10175, 6183, 6186, 2795,
1009      2851, 2699, 6192,10175, 2643, 2692, 2683, 2715, 2717, 6195,
1010      6199, 2869, 2937, 6207, 2741, 2751, 2753, 2780, 2805, 2801,
1011      2813, 2812, 2820, 2834, 6215, 2781, 2798, 2789, 6218, 6221,
1012     10175, 2809, 6225,10175,10175, 6228, 6246, 2810, 2832, 6254,
1013     10175,10175, 2843, 6262, 6268, 2833, 6276, 6280, 6283, 6294,
1014      6298,10175,10175, 2853, 2863, 2860,10175,10175, 6306, 6312,
1015
1016      6320, 6324, 6327, 2939, 3041, 6338,10175, 6342, 6345, 6348,
1017     10175,10175, 6357, 6364, 6375,10175, 3034, 3086, 3117, 2855,
1018      6378, 2870, 2889, 2899, 6381, 6384, 2923, 2961, 2987, 2972,
1019      2978, 3053, 6394, 2994, 2979, 2988, 3026,10175, 3061, 3059,
1020      3058, 3062,10175, 6399, 3056, 6402, 3083, 6408, 6412, 6418,
1021      6421, 6430,10175,10175, 3101, 3089, 3101, 6438,10175,10175,
1022      3108, 6446, 6455, 6464,10175,10175, 6472, 6475, 3098, 6483,
1023      3112, 6486,10175,10175, 6494, 6497, 6505, 6508, 3132, 3139,
1024      3142, 3151, 3152, 3158, 6516, 6519, 6523,10175,10175, 3176,
1025      3245, 6531, 3145, 6538, 6541, 3139, 3147, 6550,10175,10175,
1026
1027      3197, 3189, 3192, 3206, 3214, 3211, 3212, 3239, 6544, 3228,
1028      3256, 3280, 3274, 3257, 3277, 3293, 3304, 6558, 3274, 6562,
1029      6568, 6571, 6577, 6580, 3276, 6591,10175,10175, 3277, 3274,
1030      3269, 3288, 6599,10175,10175, 6608,10175,10175, 3301, 6616,
1031      6619, 3291, 6627, 3353, 3374, 6635, 3382, 3450, 3321, 3331,
1032      3361, 3326, 3340, 3378, 6643, 6646, 3410, 6649, 6652, 6655,
1033      6674, 6677, 6680, 6683, 3366, 3380, 3383, 3398, 3403, 3417,
1034      3420, 3407, 6686, 6689, 3429, 3430,10175, 3431, 3437, 3437,
1035     10175, 3456, 6697, 6700, 6704, 6707, 6712,10175,10175, 3435,
1036      3436, 3439, 6720, 3441, 6726, 6729,10175,10175, 6738, 3474,
1037
1038      3486, 3477, 3493, 3484, 3505, 3498, 3510, 3502, 3513,10175,
1039      3506, 3516,10175, 6745,10175, 6748, 3564, 6751, 6757, 6770,
1040      6801, 6848, 6778, 6781, 6784, 3535, 3565, 3568, 3539, 3561,
1041      3578, 3583, 3553, 6789,10175,10175, 3598, 3572, 3582, 3608,
1042      3585, 3587, 6812, 6821, 6824,10175, 3566, 3575, 3584, 6827,
1043      6831, 3578, 6839, 6868, 6859, 6877, 3642, 3625, 3657, 3631,
1044      3665, 3641, 3673, 3644, 3682, 3683, 3685, 3688, 6885, 3694,
1045      6894, 3728, 3703, 6914, 6961, 3701,10175,10175, 3690, 3716,
1046     10175,10175, 3693,10175, 3727, 3744,10175, 3742, 3744, 6888,
1047     10175, 3702, 3703, 3686, 6934, 3744, 3779, 3717, 6942,10175,
1048
1049     10175, 6950, 3813, 3855,10175, 3770,10175, 3769,10175, 3775,
1050     10175, 3775,10175,10175,10175,10175, 6907,10175, 3800, 3841,
1051      3857, 3786, 3866, 3791, 6972, 3798, 3795, 3835, 3832,10175,
1052     10175,10175,10175, 6981, 6984, 6987, 3873, 3851, 3886, 3854,
1053      6992, 3917, 3856, 3979, 3887,10175,10175,10175,10175, 6995,
1054      3915, 3902, 3915, 7010, 3920, 3924, 3944, 3937, 7014, 7017,
1055      7025, 7032, 7043, 7046, 3924, 3933, 3945, 3948, 3956, 3969,
1056      7054, 7062, 3952, 3961, 3974, 3958, 3967, 3996, 7057, 4003,
1057     10175, 3991,10175, 3992, 7072,10175,10175, 7080,10175,10175,
1058      7088, 4007, 4037, 3991, 3996, 3997, 4011, 4021, 4018, 7096,
1059
1060     10175,10175, 4020, 4029, 4052, 4064, 4074, 4071, 4153,10175,
1061      4112, 4111, 4099, 4103, 4111, 4112, 4121, 4127, 4139, 4137,
1062      4143, 4144, 4141, 4162, 4165, 4172, 4178, 4183, 4201,10175,
1063     10175, 4179, 4200, 4185, 4204, 4192, 4201, 4218, 4211, 4209,
1064      4227, 4219, 4219, 4237, 4231, 4230, 4247, 4261, 4243, 4251,
1065      4260, 4260, 4276, 4267, 4303, 4285, 4275, 4315, 4302, 4293,
1066      4327, 4308, 4299, 4328, 4337, 4325, 4346, 4343, 4357, 4378,
1067      4353,10175, 4381, 4359,10175, 4396, 4376,10175, 4403, 4380,
1068     10175, 4401, 4378, 4391, 4386, 4399,10175, 4406,10175, 4408,
1069     10175, 4420,10175, 4421, 7104, 4426, 4447, 4434, 4453, 4419,
1070
1071      4421, 4422, 4427, 7107, 4466,10175, 4481,10175, 4491, 4490,
1072      4498, 4497, 4500, 4505,10175,10175,10175,10175,10175,10175,
1073      4515, 4519, 4552, 4554, 4522, 4584, 4625, 4699, 4555, 4583,
1074      4610, 4648, 4514, 4631, 4535, 4650, 4669, 4675, 4509, 4607,
1075      4678, 4690, 4670, 4696, 4689, 4754, 4762, 4810, 4724, 4742,
1076      4764, 4859, 4521, 4661, 4766, 4787, 4806, 4876, 4954, 4981,
1077      4847, 4860, 4862, 4877, 4779, 4941, 5022, 5024, 4879, 5013,
1078      4808, 4890, 5040, 5079, 4869, 5080, 5032, 5052, 5025, 5099,
1079      5047, 5090, 5075, 5126, 5137, 5145, 5053, 5127, 5115, 5124,
1080      5179, 5180, 5165, 5168, 5311, 5324, 5192, 5214, 5191, 5219,
1081
1082      5221, 5288, 4985, 5346, 7115, 7118,10175,10175, 7138, 7147,
1083      7156, 7165, 7174, 7183, 7192, 7201, 7210, 7219, 7228, 7237,
1084      7246, 7255, 7264, 7273, 7282, 7291, 7300, 7309, 7318, 7327,
1085      7336, 7345, 7354, 7363, 7372, 7381, 7390, 7399, 7408, 7417,
1086      7426, 7435, 7444, 7453, 7462, 7471, 7480, 7489, 7498, 7507,
1087      7516, 7525, 7534, 7543, 7552, 7561, 7570, 7579, 7588, 7597,
1088      7606, 7613, 7620, 7627, 7634, 7641, 7648, 7655, 7662, 7669,
1089      7676, 7683, 7690, 7697, 7704, 7711, 7718, 7725, 7732, 7739,
1090      7746, 7753, 7760, 7767, 7774, 7783, 7790, 7795, 7802, 7807,
1091      7814, 7819, 7826, 7831, 7838, 7843, 7850, 7855, 7862, 7867,
1092
1093      7874, 7879, 7886, 7891, 7898, 7903, 7910, 7915, 7922, 7927,
1094      7934, 7939, 7946, 7951, 7958, 7963, 7970, 7975, 7982, 7987,
1095      7994, 7999, 8006, 8011, 8018, 8023, 8030, 8035, 8042, 8047,
1096      8054, 8059, 8066, 8071, 8080, 8086, 8093, 8101, 8108, 8116,
1097      8123, 8131, 8138, 8146, 8153, 8161, 8168, 8176, 8183, 8191,
1098      8198, 8206, 8213, 8221, 8228, 8236, 8243, 8251, 8258, 8266,
1099      8273, 8281, 8288, 8296, 8303, 8311, 8319, 8327, 8335, 8343,
1100      8350, 8358, 8366, 8374, 8382, 8390, 8397, 8405, 8412, 8420,
1101      8428, 8435, 8443, 8452, 8458, 8465, 8473, 8481, 8489, 8497,
1102      8505, 8512, 8520, 8527, 8535, 8542, 8550, 8557, 8565, 8572,
1103
1104      8580, 8588, 8596, 8604, 8612, 8619, 8627, 8634, 8642, 8649,
1105      8657, 8664, 8672, 8679, 8687, 8694, 8702, 8709, 8717, 8724,
1106      8732, 8740, 8747, 8755, 8762, 8770, 8777, 8785, 8793, 8800,
1107      8808, 8817, 8826, 8833, 8841, 8849, 8856, 8864, 8871, 8879,
1108      8886, 8894, 8901, 8908, 8916, 8923, 8931, 8939, 8946, 8954,
1109      8961, 8969, 8976, 8984, 8991, 8999, 9006, 9014, 9021, 9029,
1110      9036, 9044, 9051, 9059, 9066, 9074, 9082, 9089, 9097, 9104,
1111      9112, 9120, 9128, 9136, 9144, 9152, 9161, 9170, 9177, 9185,
1112      9193, 9200, 9208, 9215, 9223, 9230, 9238, 9245, 9252, 9260,
1113      9267, 9275, 9283, 9291, 9299, 9306, 9314, 9321, 9329, 9336,
1114
1115      9344, 9351, 9359, 9366, 9374, 9381, 9389, 9397, 9405, 9412,
1116      9420, 9428, 9436, 9444, 9451, 9459, 9467, 9475, 9483, 9492,
1117      9501, 9509, 9517, 9525, 9532, 9540, 9547, 9555, 9563, 9571,
1118      9579, 9587, 9595, 9603, 9611, 9619, 9627, 9634, 9641, 9649,
1119      9656, 9663, 9671, 9678, 9685, 9693, 9700, 9708, 9715, 9723,
1120      9731, 9739, 9746, 9754, 9762, 9770, 9779, 9788, 9796, 9804,
1121      9811, 9818, 9826, 9834, 9842, 9850, 9858, 9865, 9872, 9880,
1122      9887, 9894, 9902, 9909, 9916, 9923, 9931, 9938, 9946, 9954,
1123      9962, 9970, 9978, 9986, 9994,10003,10012,10020,10028,10035,
1124     10043,10051,10059,10067,10075,10082,10089,10097,10104,10111,
1125
1126     10120,10129,10138,10147,10156,10165
1127     } ;
1128
1129 static yyconst flex_int16_t yy_def[3207] =
1130     {   0,
1131      2809, 2809, 2810, 2810, 2810, 2810, 2811, 2811, 2812, 2812,
1132      2813, 2813, 2814, 2814, 2814, 2814, 2815, 2815, 2809, 2809,
1133      2816, 2816, 2817, 2817, 2817, 2817, 2809, 2809, 2817, 2817,
1134      2817, 2817, 2809, 2809, 2817, 2817, 2809, 2809, 2817, 2817,
1135      2817, 2817, 2818, 2818, 2819, 2819, 2809, 2809, 2819, 2819,
1136      2819, 2819, 2820, 2820, 2814, 2814, 2821, 2821, 2822, 2822,
1137      2809, 2809, 2822, 2822, 2822, 2822, 2823, 2823, 2824, 2824,
1138      2825, 2825, 2826, 2826, 2826, 2826, 2809, 2809, 2826, 2826,
1139      2826, 2826, 2809, 2809, 2826, 2826, 2809, 2809, 2826, 2826,
1140      2826, 2826, 2809, 2809, 2826, 2826, 2809, 2809, 2826, 2826,
1141
1142      2826, 2826, 2827, 2827, 2828, 2828, 2809, 2809, 2828, 2828,
1143      2828, 2828, 2829, 2829, 2830, 2830, 2809, 2809, 2830, 2830,
1144      2830, 2830, 2831, 2831, 2832, 2832, 2833, 2833, 2834, 2834,
1145      2835, 2835, 2836, 2836, 2809, 2809, 2836, 2836, 2836, 2836,
1146      2808,  141, 2837, 2837, 2838, 2838, 2839, 2839, 2840, 2840,
1147      2841, 2841, 2842, 2842, 2843, 2843, 2809, 2809, 2843, 2843,
1148      2843, 2843, 2844, 2844, 2845, 2845, 2809, 2809, 2845, 2845,
1149      2845, 2845, 2846, 2846, 2847, 2847, 2809, 2809, 2847, 2847,
1150      2847, 2847, 2848, 2848, 2849, 2849, 2850, 2850, 2851, 2851,
1151      2809, 2809, 2851, 2851, 2851, 2851, 2852, 2852, 2853, 2853,
1152
1153      2809, 2809, 2853, 2853, 2853, 2853, 2854, 2854, 2855, 2855,
1154      2809, 2809, 2855, 2855, 2855, 2855, 2856, 2856, 2857, 2857,
1155      2858, 2858, 2859, 2859, 2809, 2809, 2859, 2859, 2859, 2859,
1156      2860, 2860, 2861, 2861, 2809, 2809, 2808, 2808, 2808, 2808,
1157      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1158      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1159      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2862, 2808, 2808,
1160      2862, 2808, 2808, 2808,  274,  274,  276,  274,  277,  277,
1161      2808, 2808, 2808, 2863, 2808, 2808, 2863, 2808, 2808,  278,
1162       277, 2808, 2808, 2808, 2864, 2808, 2808, 2864, 2864, 2864,
1163
1164      2808, 2808, 2808, 2808, 2808, 2865, 2808, 2808, 2865, 2865,
1165      2865, 2865, 2865, 2808, 2808,  277,  277,  277, 2808, 2808,
1166      2808, 2866, 2808, 2808, 2866, 2866, 2866, 2808, 2808, 2808,
1167      2808, 2808, 2808, 2867, 2808, 2808, 2867, 2867, 2808, 2808,
1168       278,  277,  278,  341,  342,  342,  342,  342,  347,  349,
1169       348,  347, 2808, 2808, 2808, 2868, 2808, 2808, 2868, 2868,
1170      2868, 2868, 2808, 2808,  277,  277, 2808, 2808, 2808, 2869,
1171      2808, 2808, 2869, 2869, 2869, 2808, 2808,  277,  277, 2808,
1172      2808, 2808, 2870, 2808, 2808, 2870, 2870, 2808, 2808, 2808,
1173      2808, 2808, 2808, 2871, 2808, 2808, 2871, 2871, 2808, 2808,
1174
1175      2808, 2808, 2808, 2808, 2872, 2808, 2808, 2872, 2872, 2872,
1176      2872, 2872, 2808, 2808,  277,  415,  415, 2808, 2808, 2808,
1177      2873, 2808, 2808, 2873, 2873, 2873, 2873, 2873, 2873, 2873,
1178      2873, 2808, 2808, 2808, 2808, 2808, 2808, 2874, 2808, 2808,
1179      2874, 2874, 2874, 2874, 2874, 2874, 2874, 2808, 2808, 2808,
1180      2808, 2808, 2808, 2875, 2808, 2808, 2875, 2875, 2808, 2808,
1181      2808, 2808, 2808, 2808, 2876, 2808, 2808, 2876, 2876, 2876,
1182      2876, 2808, 2808,  415,  277, 2808, 2808, 2808, 2877, 2808,
1183      2808, 2877, 2877, 2808, 2808,  277,  486,  486, 2808, 2808,
1184      2808, 2878, 2808, 2808, 2878, 2878, 2878, 2808, 2808,  486,
1185
1186       486, 2808, 2808, 2808, 2879, 2808, 2808, 2879, 2879, 2808,
1187      2808, 2808, 2808, 2808, 2808, 2880, 2808, 2808, 2880, 2880,
1188      2808, 2808,  486,  486, 2808, 2808, 2808, 2881, 2808, 2808,
1189      2881, 2881, 2881, 2808, 2808,  486,  486, 2808, 2808, 2808,
1190      2882, 2808, 2808, 2882, 2882, 2882, 2882, 2808, 2808,  277,
1191       550,  550, 2808, 2808, 2808, 2883, 2808, 2808, 2883, 2808,
1192      2808, 2808, 2808, 2808, 2808, 2884, 2808, 2808, 2884, 2808,
1193      2808,  550,  277, 2808, 2808, 2808, 2885, 2808, 2808, 2885,
1194      2885, 2808, 2808, 2808, 2808, 2886, 2808, 2808, 2808, 2808,
1195      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1196
1197      2808, 2887, 2887, 2888, 2808, 2808, 2808, 2808, 2808, 2808,
1198      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1199      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2889, 2889, 2890,
1200      2808, 2891, 2891, 2891, 2891, 2808, 2892, 2808, 2808, 2893,
1201      2893, 2893, 2893, 2893, 2893, 2893, 2893, 2893, 2894, 2808,
1202      2808, 2895, 2895, 2895, 2895, 2896, 2808, 2897, 2897, 2897,
1203      2898, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1204      2808, 2808, 2808, 2899, 2899, 2899, 2899, 2899, 2900, 2808,
1205      2901, 2901, 2901, 2901, 2902, 2808, 2903, 2903, 2903, 2904,
1206      2808, 2905, 2905, 2905, 2906, 2808, 2907, 2907, 2907, 2907,
1207
1208      2907, 2907, 2908, 2808, 2808, 2909, 2909, 2909, 2909, 2909,
1209      2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2909, 2910,
1210      2808, 2911, 2911, 2911, 2911, 2911, 2911, 2911, 2911, 2912,
1211      2808, 2913, 2913, 2913, 2914, 2808, 2915, 2915, 2915, 2915,
1212      2915, 2915, 2916, 2808, 2917, 2917, 2917, 2917, 2918, 2808,
1213      2808, 2919, 2919, 2919, 2919, 2919, 2920, 2808, 2921, 2921,
1214      2921, 2922, 2808, 2923, 2923, 2923, 2924, 2808, 2925, 2925,
1215      2925, 2925, 2926, 2808, 2927, 2927, 2927, 2927, 2927, 2928,
1216      2808, 2808, 2929, 2929, 2930, 2808, 2931, 2931, 2932, 2808,
1217      2933, 2933, 2933, 2934, 2935, 2808, 2935, 2808, 2808, 2808,
1218
1219      2936, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2937, 2938,
1220      2938, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1221      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1222      2808, 2808, 2808, 2808, 2808, 2808, 2939, 2940, 2940, 2941,
1223      2808, 2808, 2941, 2808, 2942, 2942, 2808, 2943, 2808, 2808,
1224      2943, 2943, 2943, 2943, 2943, 2943, 2944, 2944, 2808, 2945,
1225      2945, 2945, 2946, 2946, 2808, 2808, 2947, 2948, 2948, 2808,
1226      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1227      2949, 2808, 2808, 2949, 2949, 2950, 2950, 2951, 2808, 2808,
1228      2951, 2952, 2952, 2808, 2808, 2953, 2954, 2954, 2955, 2955,
1229
1230      2956, 2956, 2957, 2957, 2957, 2808, 2808, 2957, 2957, 2958,
1231      2958, 2808, 2808, 2959, 2959, 2808, 2808, 2959, 2808, 2808,
1232      2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2960, 2960,
1233      2961, 2961, 2961, 2808, 2808, 2961, 2961, 2961, 2962, 2962,
1234      2963, 2808, 2808, 2964, 2964, 2965, 2808, 2808, 2965, 2965,
1235      2965, 2966, 2966, 2967, 2967, 2967, 2968, 2968, 2808, 2969,
1236      2969, 2969, 2969, 2970, 2970, 2971, 2808, 2808, 2972, 2972,
1237      2973, 2973, 2974, 2974, 2975, 2975, 2975, 2976, 2976, 2977,
1238      2977, 2977, 2977, 2978, 2978, 2808, 2979, 2980, 2980, 2808,
1239      2808, 2981, 2981, 2808, 2808, 2982, 2983, 2983, 2984, 2808,
1240
1241      2808, 2984, 2808, 2808, 2985, 2808, 2808, 2808, 2808, 2808,
1242      2808, 2986, 2808, 2987, 2808, 2987, 2808, 2808, 2808, 2808,
1243      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1244      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1245      2808, 2808, 2988, 2808, 2989, 2808, 2989, 2990, 2808, 2808,
1246      2808, 2990, 2808, 2808, 2991, 2808, 2991, 2992, 2808, 2808,
1247      2808, 2808, 2808, 2992, 2808, 2808, 2992, 2992, 2992, 2808,
1248      2993, 2808, 2993, 2808, 2994, 2994, 2994, 2808, 2995, 2808,
1249      2995, 2808, 2808, 2808, 2996, 2808, 2997, 2808, 2997, 2808,
1250      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2998,
1251
1252      2808, 2808, 2808, 2998, 2998, 2808, 2999, 2808, 2999, 3000,
1253      2808, 2808, 2808, 3000, 2808, 3001, 2808, 3001, 2808, 2808,
1254      2808, 3002, 2808, 3003, 2808, 3003, 3004, 3004, 2808, 3005,
1255      2808, 3005, 3006, 3006, 3006, 2808, 2808, 2808, 3006, 3006,
1256      2808, 3007, 2808, 3007, 2808, 2808, 3008, 3008, 3008, 3008,
1257      2808, 2808, 2808, 3008, 2808, 2808, 2808, 2808, 2808, 3008,
1258      3008, 3008, 3008, 3008, 3008, 3008, 2808, 3009, 2808, 3009,
1259      3010, 3010, 3010, 3010, 2808, 2808, 2808, 2808, 2808, 3010,
1260      3010, 2808, 3011, 2808, 3011, 3012, 2808, 2808, 2808, 2808,
1261      3013, 2808, 3013, 3014, 2808, 2808, 2808, 3014, 3014, 3014,
1262
1263      2808, 3015, 2808, 3015, 2808, 2808, 2808, 2808, 3016, 2808,
1264      3017, 2808, 3017, 2808, 2808, 2808, 3018, 3018, 2808, 2808,
1265      3018, 2808, 3019, 2808, 3019, 3020, 2808, 2808, 2808, 2808,
1266      3021, 2808, 3021, 2808, 2808, 2808, 2808, 2808, 3022, 2808,
1267      3022, 2808, 2808, 3023, 3023, 2808, 2808, 2808, 3024, 2808,
1268      3024, 3025, 3025, 3025, 3025, 2808, 3026, 2808, 3026, 2808,
1269      3027, 2808, 3028, 2808, 3028, 2808, 2808, 2808, 2808, 3029,
1270      2808, 3029, 2808, 2808, 2808, 3030, 2808, 3031, 2808, 3031,
1271      3032, 3033, 2808, 2808, 2808, 2808, 2808, 3034, 3035, 2808,
1272      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1273
1274      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1275      2808, 2808, 2808, 2808, 2808, 2808, 3036, 2808, 2808, 3037,
1276      2808, 3038, 3039, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1277      2808, 3039, 2808, 2808, 3039, 3040, 2808, 3041, 2808, 2808,
1278      3041, 3042, 3043, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1279      2808, 2808, 2808, 2808, 2808, 3044, 3044, 2808, 2808, 3045,
1280      3046, 3046, 3047, 2808, 2808, 3048, 2808, 2808, 3049, 3050,
1281      3051, 3051, 2808, 2808, 3051, 3051, 3052, 2808, 2808, 3053,
1282      3053, 3053, 3053, 2808, 2808, 2808, 2808, 2808, 3053, 3053,
1283      3053, 3053, 3053, 3053, 3053, 3054, 3055, 3055, 3055, 3055,
1284
1285      2808, 2808, 2808, 3055, 3055, 3056, 3057, 3058, 3059, 3059,
1286      3059, 3059, 3060, 2808, 2808, 2808, 2808, 2808, 2808, 3061,
1287      3062, 2808, 2808, 2808, 2808, 3063, 3063, 2808, 2808, 2808,
1288      3063, 3064, 3065, 3066, 2808, 2808, 2808, 2808, 2808, 2808,
1289      3067, 2808, 2808, 2808, 3068, 3068, 2808, 2808, 2808, 3069,
1290      3070, 2808, 2808, 3070, 3070, 3071, 2808, 3072, 3073, 3074,
1291      3075, 3076, 3077, 3078, 3078, 2808, 3078, 2808, 2808, 2808,
1292      3079, 3080, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1293      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1294      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1295
1296      2808, 3081, 2808, 2808, 2808, 3082, 2808, 3083, 3084, 2808,
1297      2808, 2808, 3084, 2808, 2808, 2808, 3084, 3085, 2808, 3086,
1298      2808, 2808, 2808, 2808, 2808, 3087, 3088, 2808, 2808, 2808,
1299      2808, 2808, 2808, 2808, 2808, 2808, 2808, 3089, 2808, 2808,
1300      2808, 2808, 2808, 3090, 3091, 3091, 3092, 2808, 2808, 2808,
1301      3093, 2808, 2808, 2808, 3094, 3095, 3096, 3096, 2808, 2808,
1302      2808, 2808, 2808, 2808, 2808, 3096, 3097, 2808, 2808, 3098,
1303      2808, 2808, 3098, 3098, 2808, 2808, 2808, 2808, 2808, 3098,
1304      3098, 3098, 3098, 3098, 3098, 3099, 3100, 2808, 2808, 3100,
1305      3100, 2808, 2808, 3100, 3101, 3102, 3103, 3104, 3104, 3104,
1306
1307      2808, 2808, 3104, 3105, 3106, 3107, 2808, 3108, 3108, 3108,
1308      3109, 3110, 3111, 3112, 3113, 3113, 3114, 3115, 2808, 2808,
1309      2808, 3115, 3115, 3116, 2808, 2808, 2808, 3117, 3118, 2808,
1310      2808, 3119, 3120, 3121, 3121, 2808, 2808, 3122, 3123, 2808,
1311      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1312      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1313      2808, 2808, 2808, 3124, 3125, 2808, 3126, 3127, 3127, 3127,
1314      3128, 3129, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1315      2808, 2808, 2808, 3130, 3131, 2808, 2808, 2808, 2808, 2808,
1316      2808, 2808, 3132, 2808, 2808, 2808, 3133, 3134, 2808, 2808,
1317
1318      3135, 3136, 2808, 2808, 3137, 3138, 3138, 2808, 2808, 2808,
1319      2808, 2808, 2808, 3138, 2808, 2808, 2808, 2808, 3139, 2808,
1320      2808, 2808, 2808, 2808, 3139, 2808, 2808, 2808, 2808, 2808,
1321      3139, 3139, 3139, 3139, 2808, 2808, 3140, 3141, 2808, 2808,
1322      2808, 2808, 2808, 3141, 2808, 2808, 2808, 3141, 2808, 2808,
1323      3142, 3143, 3144, 3144, 3144, 2808, 2808, 2808, 3144, 2808,
1324      2808, 3145, 3146, 2808, 2808, 2808, 2808, 2808, 3147, 3148,
1325      3149, 3150, 3151, 2808, 2808, 2808, 2808, 3152, 3153, 3153,
1326      3153, 3154, 2808, 2808, 2808, 2808, 3155, 3156, 2808, 2808,
1327      2808, 2808, 2808, 3157, 3158, 3158, 2808, 2808, 2808, 3159,
1328
1329      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1330      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1331      2808, 3160, 3161, 2808, 2808, 2808, 3162, 2808, 2808, 3162,
1332      3163, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1333      2808, 2808, 2808, 3164, 2808, 2808, 2808, 2808, 2808, 2808,
1334      2808, 2808, 2808, 3165, 2808, 2808, 2808, 2808, 2808, 3166,
1335      2808, 2808, 2808, 2808, 2808, 3167, 3168, 3168, 2808, 2808,
1336      3168, 2808, 3169, 2808, 2808, 2808, 3169, 2808, 2808, 2808,
1337      2808, 2808, 3169, 3169, 3169, 2808, 2808, 2808, 3170, 3171,
1338      2808, 2808, 2808, 3171, 3171, 3172, 3173, 3174, 2808, 2808,
1339
1340      3174, 3174, 2808, 2808, 3174, 3175, 2808, 2808, 2808, 2808,
1341      2808, 2808, 2808, 2808, 2808, 3176, 3177, 3178, 3179, 3180,
1342      2808, 2808, 2808, 2808, 2808, 2808, 3181, 3182, 3182, 3182,
1343      3183, 2808, 3184, 3185, 3186, 3187, 3187, 2808, 2808, 2808,
1344      2808, 3188, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1345      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 3189,
1346      3190, 2808, 3191, 2808, 2808, 2808, 3191, 2808, 2808, 2808,
1347      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1348      2808, 2808, 3192, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1349      2808, 2808, 2808, 2808, 3193, 2808, 2808, 2808, 3194, 3195,
1350
1351      3196, 3196, 2808, 2808, 2808, 2808, 3196, 2808, 3197, 3197,
1352      2808, 2808, 2808, 3197, 3197, 3197, 3198, 3199, 3199, 3199,
1353      3200, 2808, 2808, 3174, 2808, 2808, 2808, 3174, 3174, 2808,
1354      2808, 2808, 2808, 3174, 3175, 2808, 3176, 3177, 3178, 3179,
1355      3180, 3181, 2808, 2808, 3182, 3182, 3183, 2808, 3184, 2808,
1356      2808, 3186, 3187, 3187, 2808, 3188, 2808, 2808, 2808, 2808,
1357      2808, 2808, 2808, 2808, 2808, 2808, 2808, 3190, 2808, 2808,
1358      3191, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1359      2808, 3192, 2808, 2808, 2808, 3193, 2808, 2808, 3195, 3196,
1360      3196, 2808, 2808, 2808, 2808, 3196, 2808, 3197, 3197, 2808,
1361
1362      2808, 3197, 3197, 2808, 2808, 3199, 3199, 3199, 3200, 2808,
1363      2808, 3174, 3174, 3174, 2808, 2808, 2808, 2808, 3174, 3175,
1364      2808, 3176, 2808, 2808, 2808, 2808, 3179, 3180, 3181, 2808,
1365      2808, 2808, 2808, 2808, 3182, 2808, 2808, 2808, 3184, 3186,
1366      3187, 3187, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 3190,
1367      2808, 2808, 2808, 3191, 2808, 2808, 2808, 2808, 2808, 2808,
1368      2808, 2808, 2808, 2808, 3192, 2808, 2808, 2808, 3193, 2808,
1369      2808, 3196, 3196, 2808, 2808, 2808, 2808, 3197, 3197, 2808,
1370      2808, 2808, 3197, 2808, 2808, 3199, 3199, 2808, 2808, 3200,
1371      2808, 2808, 2808, 3174, 3174, 3174, 2808, 2808, 2808, 2808,
1372
1373      3175, 3176, 2808, 2808, 2808, 2808, 2808, 3180, 3181, 2808,
1374      2808, 2808, 2808, 2808, 2808, 2808, 3186, 3187, 3187, 2808,
1375      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1376      2808, 2808, 3191, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1377      2808, 2808, 2808, 3192, 2808, 2808, 2808, 3193, 3196, 2808,
1378      2808, 2808, 2808, 2808, 3197, 3197, 3197, 2808, 2808, 2808,
1379      3199, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 3174, 3174,
1380      3174, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1381      2808, 2808, 2808, 2808, 3180, 3181, 2808, 2808, 2808, 3186,
1382      3187, 3187, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1383
1384      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 3191, 2808,
1385      2808, 2808, 2808, 2808, 2808, 2808, 2808, 3192, 2808, 2808,
1386      2808, 3193, 2808, 2808, 3196, 2808, 2808, 2808, 3197, 3197,
1387      3197, 3199, 2808, 2808, 2808, 2808, 2808, 2808, 3174, 2808,
1388      2808, 3174, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1389      2808, 2808, 2808, 2808, 3180, 3181, 3186, 3187, 3187, 3187,
1390      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1391      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1392      2808, 2808, 3192, 2808, 2808, 3193, 2808, 2808, 2808, 3196,
1393      3197, 3197, 3197, 3199, 3174, 2808, 2808, 2808, 3174, 2808,
1394
1395      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1396      2808, 2808, 2808, 2808, 2808, 3181, 3186, 3187, 3187, 3187,
1397      3201, 3202, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1398      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1399      2808, 2808, 3192, 2808, 2808, 2808, 3196, 3197, 3197, 2808,
1400      2808, 3199, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1401      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 3181, 3186,
1402      3187, 3203, 3204, 3201, 3202, 2808, 2808, 2808, 2808, 2808,
1403      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1404      2808, 3196, 3197, 3197, 2808, 2808, 2808, 3199, 2808, 2808,
1405
1406      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1407      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 3186, 3203,
1408      3187, 3205, 3204, 3206, 3187, 2808, 2808, 2808, 2808, 2808,
1409      2808, 2808, 2808, 3196, 3197, 3197, 2808, 2808, 2808, 2808,
1410      3199, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 3186,
1411      3205, 2808, 3206, 3187, 2808, 2808, 2808, 2808, 2808, 2808,
1412      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1413      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 3186, 2808,
1414      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1415      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1416
1417      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 3186, 2808,
1418      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1419      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 3186, 2808,
1420      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1421      2808, 2808, 2808, 2808, 2808, 2808, 2808, 3186, 2808, 2808,
1422      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1423      2808, 2808, 2808, 2808, 3186, 2808, 2808, 2808, 2808, 2808,
1424      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1425      2808, 3186, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1426      2808, 2808, 2808, 2808, 3186, 2808, 2808, 2808, 2808, 2808,
1427
1428      2808, 2808, 2808, 3186, 2808, 2808, 2808, 2808, 2808, 2808,
1429      2808, 2808, 3186, 3186, 2808, 2808, 2808, 2808, 2808, 2808,
1430      3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186,
1431      3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186,
1432      3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186,
1433      3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186,
1434      3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186,
1435      3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186,
1436      3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186,
1437      3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186, 3186,
1438
1439      3186, 3186, 3186, 3186, 3186, 3186, 2808,    0, 2808, 2808,
1440      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1441      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1442      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1443      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1444      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1445      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1446      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1447      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1448      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1449
1450      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1451      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1452      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1453      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1454      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1455      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1456      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1457      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1458      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1459      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1460
1461      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1462      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1463      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1464      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1465      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1466      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1467      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1468      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1469      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1470      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1471
1472      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1473      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1474      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1475      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1476      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1477      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1478      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1479      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1480      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1481      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
1482
1483      2808, 2808, 2808, 2808, 2808, 2808
1484     } ;
1485
1486 static yyconst flex_int16_t yy_nxt[10249] =
1487     {   0,
1488      2808,  240,  241,  240,  240,  241,  240,  240,  241,  240,
1489       240,  241,  240,  245,  241,  245,  251,  242,  248,  251,
1490       242,  248,  789,  243, 2808,  249,  243,  661,  249,  246,
1491       245,  241,  245,  586,  252,  254,  255,  252,  254,  255,
1492       256,  257,  630,  256,  257,  586,  246,  261,  262,  587,
1493       258,  254,  255,  258,  259,  589,  256,  254,  255,  606,
1494       259,  588,  256,  261,  262, 2808,  258,  241,  241,  241,
1495       708,  588,  258,  241,  241,  241,  273,  241,  273,  273,
1496       241,  273,  623,  264,  273,  241,  273,  665,  741,  264,
1497       709,  263,  274,  622,  667,  274,  585,  585,  585,  742,
1498
1499       275,  585,  585,  585,  585,  585,  585,  263,  265,  266,
1500       241,  266,  265,  265,  265,  265,  265,  265,  265,  267,
1501       265,  265,  265,  649,  265,  269,  265,  270,  265,  273,
1502       241,  273,  241,  241,  241,  241,  241,  241,  617,  273,
1503       241,  273,  273,  241,  273,  275, 1640, 1641,  276,  589,
1504       589,  276,  618,  265,  265,  274, 1642,  589,  274,  273,
1505       241,  273,  585,  585,  585,  588,  588,  585,  585,  585,
1506       585,  585,  585,  588,  650,  277,  271,  265,  266,  241,
1507       266,  265,  265,  265,  265,  265,  265,  265,  267,  265,
1508       265,  265, 2808,  265,  269,  265,  270,  265,  273,  241,
1509
1510       273,  241,  241,  241,  241,  241,  241,  600,  273,  241,
1511       273,  273,  241,  273,  277, 2808,  604,  278,  619,  747,
1512       278,  649,  265,  265,  275,  619,  748,  275,  241,  241,
1513       241,  241,  241,  241,  273,  241,  273,  273,  241,  273,
1514       273,  241,  273,  650,  279,  271,  607,  279,  589, 1643,
1515       277, 1644,  589,  277,  620,  624,  280,  273,  241,  273,
1516       621,  585,  585,  585,  588, 2808,  622,  625,  588,  618,
1517       623,  679,  622,  280,  281,  282,  241,  282,  281,  281,
1518       281,  281,  281,  281,  281,  283,  281,  281,  281,  796,
1519       281,  285,  281,  286,  281,  289,  241,  289,  289,  241,
1520
1521       289,  241,  241,  241,  617,  241,  241,  241,  289,  241,
1522       289,  290,  647, 1645,  290, 1646,  626,  278,  618,  281,
1523       281,  278,  650, 1000,  290,  844,  648,  287,  281,  282,
1524       241,  282,  281,  281,  281,  281,  281,  281,  281,  283,
1525       281,  281,  281, 1463,  281,  285,  281,  286,  281,  289,
1526       241,  289,  289,  241,  289,  289,  241,  289,  585,  585,
1527       585,  254,  255,  636,  589,  290,  256, 1648,  291, 1649,
1528       637,  291,  679,  281,  281,  612,  301, 1650,  622,  588,
1529       588,  287,  292,  293,  241,  293,  292,  292,  292,  292,
1530       292,  292,  292,  294,  292,  292,  292,  669,  292,  296,
1531
1532       292,  297,  292,  609, 1651,  302,  315,  241,  315,  315,
1533       241,  315,  618,  241,  241,  241,  254,  255,  241,  241,
1534       241,  256,  316,  622,  685,  316,  589,  292,  292,  317,
1535       715,  301, 1172,  656,  317,  298,  685, 1173,  299,  585,
1536       585,  585,  588,  716,  300,  292,  293,  241,  293,  292,
1537       292,  292,  292,  292,  292,  292,  294,  292,  292,  292,
1538       302,  292,  296,  292,  297,  292,  315,  241,  315,  315,
1539       241,  315,  315,  241,  315,  650,  315,  241,  315,  329,
1540       241,  329,  316,  589,  589,  316,  589,  622,  318,  643,
1541       292,  292,  318,  644, 1654,  330, 1657,  645,  298,  588,
1542
1543       588,  299,  588,  713,  594, 1658,  714,  300,  303,  304,
1544       241,  304,  303,  303,  303,  303,  303,  303,  303,  305,
1545       303,  303,  303,  743,  303,  307,  303,  308,  303,  329,
1546       241,  329,  340,  241,  340,  340,  241,  340,  743,  340,
1547       241,  340,  340,  241,  340,  330,  595,  589,  341,  589,
1548       589,  341,  596,  303,  303,  342,  597,  690,  342, 1659,
1549      1660,  598,  309,  588,  310,  588,  588,  311,  585,  585,
1550       585,  612,  312,  313,  303,  304,  241,  304,  303,  303,
1551       303,  303,  303,  303,  303,  305,  303,  303,  303,  622,
1552       303,  307,  303,  308,  303,  241,  241,  241,  241,  241,
1553
1554       241,  340,  241,  340,  606,  340,  241,  340,  340,  241,
1555       340,  343, 1000,  589,  343,  589,  589,  344,  622,  303,
1556       303,  344,  695, 1661,  345,  585,  585,  585,  309,  588,
1557       310,  588,  588,  311,  585,  585,  585, 1633,  312,  313,
1558       319,  320,  241,  320,  319,  319,  319,  319,  319,  319,
1559       319,  321,  319,  319,  319, 1665,  319,  323,  319,  324,
1560       319,  340,  241,  340,  241,  241,  241,  241,  241,  241,
1561       717,  340,  241,  340,  340,  241,  340,  345,  825, 1666,
1562       346,  718,  719,  346,  661,  319,  319,  342,  589,  589,
1563       342,  826,  325,  585,  585,  585,  720,  326,  585,  585,
1564
1565       585,  585,  585,  585,  588,  588,  327,  319,  320,  241,
1566       320,  319,  319,  319,  319,  319,  319,  319,  321,  319,
1567       319,  319,  670,  319,  323,  319,  324,  319,  241,  241,
1568       241,  241,  241,  241,  340,  241,  340,  666,  340,  241,
1569       340,  340,  241,  340,  347,  796,  802,  347,  755,  803,
1570       345, 2808,  319,  319,  345,  756, 1668,  348, 1302,  325,
1571       797,  619,  664,  610,  326,  665,  585,  585,  585,  757,
1572      1303,  672,  667,  327,  331,  332,  241,  332,  331,  331,
1573       331,  331,  331,  331,  331,  333,  331,  331,  331,  607,
1574       331,  335,  331,  336,  331,  340,  241,  340,  241,  241,
1575
1576       241,  241,  241,  241, 1669,  340,  241,  340,  340,  241,
1577       340,  348,  815, 1313,  349,  816,  611,  349,  820,  331,
1578       331,  350,  821, 1670,  350, 1303,  619,  585,  585,  585,
1579       337,  585,  585,  585,  585,  585,  585, 1672,  338,  331,
1580       332,  241,  332,  331,  331,  331,  331,  331,  331,  331,
1581       333,  331,  331,  331,  670,  331,  335,  331,  336,  331,
1582       241,  241,  241,  241,  241,  241,  340,  241,  340,  671,
1583       340,  241,  340,  340,  241,  340,  351,  589,  589,  351,
1584       815, 1685,  348,  829,  331,  331,  348, 1686,  589,  352,
1585       340,  241,  340,  588,  588,  337,  585,  585,  585,  585,
1586
1587       585,  585,  832,  338,  588,  816,  352,  353,  354,  241,
1588       354,  353,  353,  353,  353,  353,  353,  353,  355,  353,
1589       353,  353, 1687,  353,  357,  353,  358,  353,  364,  241,
1590       364,  364,  241,  364,  241,  241,  241,  789,  241,  241,
1591       241,  585,  585,  585,  365, 1690,  589,  365,  589,  589,
1592       317, 1691,  353,  353,  317,  730,  735,  359,  585,  585,
1593       585,  703,  588,  360,  588,  588,  361,  585,  585,  585,
1594       749, 1692,  362,  353,  354,  241,  354,  353,  353,  353,
1595       353,  353,  353,  353,  355,  353,  353,  353,  622,  353,
1596       357,  353,  358,  353,  364,  241,  364,  364,  241,  364,
1597
1598       364,  241,  364, 1693,  364,  241,  364,  767, 1698,  704,
1599       365,  589,  650,  365,  589,  589,  366,  750,  353,  353,
1600       366,  622,  762,  359,  585,  585,  585,  588, 1706,  360,
1601       588,  588,  361,  585,  585,  585,  773, 1707,  362,  367,
1602       368,  241,  368,  367,  367,  367,  367,  367,  367,  367,
1603       369,  367,  367,  367,  611,  367,  371,  367,  372,  367,
1604       377,  241,  377,  377,  241,  377,  241,  241,  241, 1313,
1605       241,  241,  241,  585,  585,  585,  378,  589,  589,  378,
1606      1714, 1337,  317,  611,  367,  367,  317, 1718, 1719,  373,
1607       585,  585,  585,  588,  588,  374,  585,  585,  585,  585,
1608
1609       585,  585,  585,  585,  585,  375,  367,  368,  241,  368,
1610       367,  367,  367,  367,  367,  367,  367,  369,  367,  367,
1611       367, 1725,  367,  371,  367,  372,  367,  377,  241,  377,
1612       377,  241,  377,  377,  241,  377, 1731,  377,  241,  377,
1613       585,  585,  585,  378,  589,  589,  378,  832, 1732,  379,
1614       829,  367,  367,  379, 1733, 1734,  373,  585,  585,  585,
1615       588,  588,  374,  585,  585,  585,  585,  585,  585,  585,
1616       585,  585,  375,  380,  381,  241,  381,  380,  380,  380,
1617       380,  380,  380,  380,  382,  380,  380,  380, 1738,  380,
1618       384,  380,  385,  380,  389,  241,  389,  389,  241,  389,
1619
1620       400,  241,  400, 1744,  400,  241,  400,  414,  241,  414,
1621       390,  904,  589,  390,  905, 1748,  401,  912,  380,  380,
1622       401,  913, 1751,  415,  585,  585,  585,  780,  588,  386,
1623       585,  585,  585,  387,  380,  381,  241,  381,  380,  380,
1624       380,  380,  380,  380,  380,  382,  380,  380,  380, 1753,
1625       380,  384,  380,  385,  380,  414,  241,  414,  241,  241,
1626       241,  241,  241,  241,  781,  414,  241,  414,  414,  241,
1627       414,  415, 1754, 1000,  416, 1755,  822,  416,  650,  380,
1628       380,  415,  823, 1759,  415,  585,  585,  585,  824, 1002,
1629       386,  585,  585,  585,  387,  391,  392,  241,  392,  391,
1630
1631       391,  391,  391,  391,  391,  391,  393,  391,  391,  391,
1632      1762,  391,  395,  391,  396,  391,  414,  241,  414,  414,
1633       241,  414,  433,  241,  433, 1764,  433,  241,  433,  449,
1634       241,  449,  417, 1000, 1771,  417, 1779, 1281,  434, 1780,
1635       391,  391,  434, 1781, 1783,  450,  585,  585,  585,  585,
1636       585,  585,  585,  585,  585,  397,  585,  585,  585, 1466,
1637      1000,  398,  391,  392,  241,  392,  391,  391,  391,  391,
1638       391,  391,  391,  393,  391,  391,  391, 1794,  391,  395,
1639       391,  396,  391,  449,  241,  449,  460,  241,  460,  460,
1640       241,  460, 1797,  473,  241,  473,  473,  241,  473,  450,
1641
1642      1795, 1801,  461,  589,  589,  461, 1802,  391,  391,  474,
1643       785,  794,  474,  585,  585,  585,  585,  585,  585,  588,
1644       588, 1805,  397,  585,  585,  585, 1466, 1807,  398,  402,
1645       403,  241,  403,  402,  402,  402,  402,  402,  402,  402,
1646       404,  402,  402,  402, 1808,  402,  406,  402,  407,  402,
1647       241,  241,  241,  241,  241,  241,  473,  241,  473, 1796,
1648       473,  241,  473,  585,  585,  585,  317, 1809, 1810,  317,
1649       830, 1811,  474, 1803,  402,  402,  474,  408,  834,  409,
1650       585,  585,  585,  826,  823,  410,  585,  585,  585, 1804,
1651       835,  411, 1814, 1815,  412,  402,  403,  241,  403,  402,
1652
1653       402,  402,  402,  402,  402,  402,  404,  402,  402,  402,
1654      1818,  402,  406,  402,  407,  402,  473,  241,  473,  473,
1655       241,  473,  485,  241,  485, 1819,  485,  241,  485,  585,
1656       585,  585,  475, 1820, 1821,  475,  830, 1823,  486, 1148,
1657       402,  402,  486,  408,  834,  409,  822,  834, 1149,  874,
1658       823,  410,  823,  823, 1824, 1150,  824,  411,  835,  859,
1659       412,  418,  419,  241,  419,  418,  418,  418,  418,  418,
1660       418,  418,  420,  418,  418,  418,  421,  418,  422,  418,
1661       423,  418,  421,  421,  421,  421,  421,  421,  421,  421,
1662       421,  421,  421,  421,  421,  421,  421,  421,  421,  421,
1663
1664       421,  421,  421,  421,  421,  421,  418,  418,  421,  424,
1665       425,  426,  421,  421,  421,  421,  421,  427,  421,  428,
1666       421,  421,  421,  429,  421,  430,  431,  421,  421,  421,
1667       421,  421,  421,  421,  435,  436,  241,  436,  435,  435,
1668       435,  435,  435,  435,  435,  437,  435,  435,  435, 1827,
1669       435,  439,  435,  440,  435,  241,  241,  241,  241,  241,
1670       241,  485,  241,  485, 1830,  485,  241,  485,  841,  841,
1671       841,  487, 1834, 1835,  487, 1838,  830,  486,  830,  435,
1672       435,  486,  441,  442,  443,  842,  800,  800,  800,  879,
1673       444,  880,  445,  800,  800,  800,  446, 1004, 1839,  447,
1674
1675       435,  436,  241,  436,  435,  435,  435,  435,  435,  435,
1676       435,  437,  435,  435,  435, 1840,  435,  439,  435,  440,
1677       435,  485,  241,  485,  485,  241,  485,  499,  241,  499,
1678      1836,  499,  241,  499,  849,  849,  849,  488, 1837, 1843,
1679       488, 1847, 1851,  500,  801,  435,  435,  500,  441,  442,
1680       443,  850, 1017, 1017, 1017, 1841,  444, 1867,  445, 1017,
1681      1017, 1017,  446, 1842, 1868,  447,  451,  452,  241,  452,
1682       451,  451,  451,  451,  451,  451,  451,  453,  451,  451,
1683       451, 1869,  451,  455,  451,  456,  451,  241,  241,  241,
1684       241,  241,  241,  499,  241,  499, 1870,  499,  241,  499,
1685
1686       865,  865,  865,  487, 1871, 1848,  487, 1872, 1873,  500,
1687      1877,  451,  451,  500, 1883, 1018,  457,  866, 1037, 1037,
1688      1037, 1849,  458,  451,  452,  241,  452,  451,  451,  451,
1689       451,  451,  451,  451,  453,  451,  451,  451, 1884,  451,
1690       455,  451,  456,  451,  499,  241,  499,  499,  241,  499,
1691       511,  241,  511, 1885,  511,  241,  511,  882,  882,  882,
1692       501, 1673, 1890,  501, 1894, 1895,  512, 1674,  451,  451,
1693       512, 1675, 1896,  457,  883, 1676, 1037, 1037, 1037,  458,
1694       462,  463,  241,  463,  462,  462,  462,  462,  462,  462,
1695       462,  464,  462,  462,  462, 1898,  462,  466,  462,  467,
1696
1697       462,  522,  241,  522,  522,  241,  522,  241,  241,  241,
1698      1902,  241,  241,  241,  522,  241,  522,  523, 1677, 1903,
1699       523, 1904, 1905,  487, 1678,  462,  462,  487, 1679,  468,
1700       523, 1906, 1680, 1049, 1049, 1049,  469, 1050,  470, 1018,
1701      1051, 1909, 1017, 1017, 1017,  471,  462,  463,  241,  463,
1702       462,  462,  462,  462,  462,  462,  462,  464,  462,  462,
1703       462, 1916,  462,  466,  462,  467,  462,  522,  241,  522,
1704       522,  241,  522,  522,  241,  522, 1918,  535,  241,  535,
1705       535,  241,  535,  523, 1928, 1929,  524, 1930, 1932,  524,
1706      1938,  462,  462,  536, 1848,  468,  536, 1466, 1944, 1059,
1707
1708      1059, 1059,  469, 1060,  470, 1090, 1061, 1037, 1037, 1037,
1709      1804,  471,  476,  477,  241,  477,  476,  476,  476,  476,
1710       476,  476,  476,  478,  476,  476,  476, 1945,  476,  480,
1711       476,  481,  476,  241,  241,  241,  241,  241,  241,  535,
1712       241,  535, 1937,  535,  241,  535,  535,  241,  535,  487,
1713      1000, 1803,  487, 1946, 1949,  536, 1935,  476,  476,  536,
1714      1950, 1951,  537,  482, 1082, 1082, 1082, 1849, 1083, 1955,
1715      1090, 1084, 1478, 1478, 1478, 1959, 1961,  483,  476,  477,
1716       241,  477,  476,  476,  476,  476,  476,  476,  476,  478,
1717       476,  476,  476, 1962,  476,  480,  476,  481,  476,  535,
1718
1719       241,  535,  549,  241,  549,  549,  241,  549, 1963,  241,
1720       241,  241,  241,  241,  241,  537, 1967, 1973,  550, 1974,
1721      1975,  550, 1976,  476,  476,  551, 1977, 1978,  551,  482,
1722      1101, 1101, 1101, 1979, 1102, 1980, 1981, 1103, 1982, 1480,
1723      1480, 1480, 1988,  483,  489,  490,  241,  490,  489,  489,
1724       489,  489,  489,  489,  489,  491,  489,  489,  489, 1989,
1725       489,  493,  489,  494,  489,  549,  241,  549,  549,  241,
1726       549,  549,  241,  549, 1466,  549,  241,  549,  561,  241,
1727       561,  550, 2001, 2002,  550, 1481, 2007,  552, 2003,  489,
1728       489,  552, 2008, 2009,  562,  495, 2004, 2010,  496, 1111,
1729
1730      1111, 1111, 2014, 1112, 2015, 1936, 1113, 2016, 2018,  497,
1731       489,  490,  241,  490,  489,  489,  489,  489,  489,  489,
1732       489,  491,  489,  489,  489, 2019,  489,  493,  489,  494,
1733       489,  561,  241,  561,  571,  241,  571,  571,  241,  571,
1734      2005,  241,  241,  241,  241,  241,  241,  562, 2006, 2020,
1735       572, 2021, 2024,  572, 2028,  489,  489,  317, 2029, 2034,
1736       317,  495, 2030, 2032,  496, 1119, 1119, 1119, 2035, 1120,
1737      2031, 2033, 1121, 2036, 2037,  497,  502,  503,  241,  503,
1738       502,  502,  502,  502,  502,  502,  502,  504,  502,  502,
1739       502, 2039,  502,  506,  502,  507,  502,  571,  241,  571,
1740
1741       571,  241,  571,  571,  241,  571, 2048,  571,  241,  571,
1742       583,  241,  583,  572, 2058, 1466,  572, 1466, 2059,  573,
1743       661,  502,  502,  573, 2063, 2064,  584,  508, 2065, 2068,
1744       662, 2072,  509,  502,  503,  241,  503,  502,  502,  502,
1745       502,  502,  502,  502,  504,  502,  502,  502, 2073,  502,
1746       506,  502,  507,  502,  583,  241,  583, 2053,  663,  889,
1747       889,  889, 2074, 2054,  664, 2075, 2076,  665, 2077, 2078,
1748       584, 2079, 2080,  666,  667,  661,  890, 2081,  502,  502,
1749      1484, 1484, 1484, 2083,  508,  668, 1487, 1487, 1487,  509,
1750       513,  514,  241,  514,  513,  513,  513,  513,  513,  513,
1751
1752       513,  515,  513,  513,  513, 2084,  513,  517,  513,  518,
1753       513, 2085, 2090,  669,  894,  894,  894,  906,  906,  906,
1754       916,  916,  916,  919,  919,  919,  622,  934,  934,  934,
1755       616,  895, 2091, 2092,  907,  513,  513,  917, 2093, 2094,
1756       920,  519, 2095, 2096,  935, 1136, 1136, 1136, 2098, 1137,
1757      2099, 2102, 1138, 2103, 2106,  520,  513,  514,  241,  514,
1758       513,  513,  513,  513,  513,  513,  513,  515,  513,  513,
1759       513, 2107,  513,  517,  513,  518,  513,  942,  942,  942,
1760       947,  947,  947,  967,  967,  967,  990,  990,  990,  994,
1761       994,  994, 2108, 2109,  943, 2113, 2114,  948, 2115, 2116,
1762
1763       968,  513,  513,  991, 2117, 2118,  995,  519, 1151, 1151,
1764      1151, 2119, 1152, 2120, 2122, 1153, 1496, 1496, 1496, 2145,
1765      2146,  520,  525,  526,  241,  526,  525,  525,  525,  525,
1766       525,  525,  525,  527,  525,  525,  525, 2147,  525,  529,
1767       525,  530,  525, 1013, 1013, 1013, 1013, 1013, 1013, 1466,
1768      1466, 1044, 1044, 1044, 1044, 1044, 1044,  841,  841,  841,
1769      2148, 1015, 2149, 2150, 1015, 2155, 2156,  525,  525, 1046,
1770      2157, 2158, 1046,  531,  842, 2159,  532, 1155, 1155, 1155,
1771      2160, 1156, 2141, 2161, 1157, 2162, 2142,  533,  525,  526,
1772       241,  526,  525,  525,  525,  525,  525,  525,  525,  527,
1773
1774       525,  525,  525, 1016,  525,  529,  525,  530,  525, 1054,
1775      1054, 1054, 2163, 1047, 1054, 1054, 1054, 2164,  849,  849,
1776       849, 1062, 1062, 1062, 1065, 1065, 1065, 1056, 1070, 1070,
1777      1070, 2166, 1056,  525,  525,  850, 2167, 2168, 1063,  531,
1778      2172, 1066,  532, 1175, 1175, 1175, 1072, 1176, 2173, 2174,
1779      1177, 2175, 2178,  533,  538,  539,  241,  539,  538,  538,
1780       538,  538,  538,  538,  538,  540,  538,  538,  538, 2179,
1781       538,  542,  538,  543,  538, 2183, 2186, 1057, 1078, 1078,
1782      1078, 2187, 2190, 1078, 1078, 1078, 2194, 2195, 1070, 1070,
1783      1070,  865,  865,  865, 2196, 2197, 1080, 2198, 2201,  538,
1784
1785       538, 1080, 1519, 1519, 1519, 2202, 1072,  544,  866,  545,
1786      2220,  546, 1530, 1530, 1530, 1478, 1478, 1478, 1466,  547,
1787       538,  539,  241,  539,  538,  538,  538,  538,  538,  538,
1788       538,  540,  538,  538,  538, 1073,  538,  542,  538,  543,
1789       538, 1086, 1086, 1086, 2221, 2222, 1081,  882,  882,  882,
1790      1106, 1106, 1106, 1106, 1106, 1106, 1115, 1115, 1115, 1088,
1791      2219,  889,  889,  889,  883,  538,  538, 2223, 1108, 2224,
1792      2234, 1108, 2235,  544, 1117,  545, 2236,  546,  890, 1480,
1793      1480, 1480, 1647, 1647, 1647,  547,  553,  554,  241,  554,
1794       553,  553,  553,  553,  553,  553,  553,  555,  553,  553,
1795
1796       553, 2237,  553,  557,  553,  558,  553, 1086, 1086, 1086,
1797      2238, 1115, 1115, 1115, 1000, 1123, 1123, 1123, 1109,  894,
1798       894,  894, 1123, 1123, 1123, 1088,  906,  906,  906, 1117,
1799      2239,  553,  553, 1125, 2240, 2241,  895, 1531, 1531, 1531,
1800      1125, 2242, 2243,  907, 1089, 1187, 1187, 1187, 2245, 1188,
1801      2246, 2247, 1189, 2217,  559,  553,  554,  241,  554,  553,
1802       553,  553,  553,  553,  553,  553,  555,  553,  553,  553,
1803      1466,  553,  557,  553,  558,  553, 1118, 1129, 1129, 1129,
1804      2249, 2255, 1126, 1481, 1129, 1129, 1129, 1141, 1141, 1141,
1805      1141, 1141, 1141, 2227, 2256, 1131,  916,  916,  916, 2257,
1806
1807       553,  553, 1131, 2228, 2261, 1143, 2229, 2218, 1143, 2269,
1808      1195, 1195, 1195,  917, 1196, 2270, 2271, 1197, 1480, 1480,
1809      1480, 2293, 2295,  559,  563,  564,  241,  564,  563,  563,
1810       563,  563,  563,  563,  563,  565,  563,  563,  563, 2296,
1811       563,  567,  563,  568,  563,  919,  919,  919, 1132, 2297,
1812      1144, 1158, 1158, 1158, 1167, 1167, 1167, 1167, 1167, 1167,
1813      2301, 2230,  920, 2279, 1607, 1484, 1484, 1484, 1159,  563,
1814       563, 2231, 1169, 2280, 2232, 1169, 1487, 1487, 1487, 2281,
1815       569,  563,  564,  241,  564,  563,  563,  563,  563,  563,
1816       563,  563,  565,  563,  563,  563, 2302,  563,  567,  563,
1817
1818       568,  563,  934,  934,  934, 1178, 1178, 1178, 2303, 2305,
1819      1182, 1182, 1182, 2306, 1170, 1182, 1182, 1182, 2310,  935,
1820      2311, 2304, 1179, 1496, 1496, 1496,  563,  563, 1184, 1652,
1821      1652, 1652, 2312, 1184, 1519, 1519, 1519,  569,  574,  575,
1822       241,  575,  574,  574,  574,  574,  574,  574,  574,  576,
1823       574,  574,  574, 1000,  574,  578,  574,  579,  574,  942,
1824       942,  942, 1190, 1190, 1190, 2282, 1185, 2313, 1190, 1190,
1825      1190,  947,  947,  947, 2307, 2283,  943, 1201, 1201, 1201,
1826      1192, 2284, 2290,  574,  574, 2314, 1192, 2308,  948, 1227,
1827      1227, 1227, 1653, 1228,  580, 1203, 1229, 1266, 1266, 1266,
1828
1829      2315, 1267, 2316, 2317, 1268, 1466,  581,  574,  575,  241,
1830       575,  574,  574,  574,  574,  574,  574,  574,  576,  574,
1831       574,  574, 2319,  574,  578,  574,  579,  574, 1193, 1201,
1832      1201, 1201, 1205, 1205, 1205, 2321, 1466, 1207, 1207, 1207,
1833      2808, 2808, 2808, 1210, 1210, 1210, 2291, 1203, 2329, 1206,
1834      2330, 2331,  574,  574, 1208, 2332, 2339, 2808, 1530, 1530,
1835      1530, 1212, 2342,  580, 1210, 1210, 1210, 2349, 1215, 1215,
1836      1215, 1219, 1219, 1219, 2350,  581,  589, 2292, 2351, 2808,
1837      2808, 2808, 1212,  604, 1204, 1216, 2352, 2353, 1220, 2808,
1838      2808, 2808,  588,  605, 2354, 1000, 2808, 2361, 1209, 1222,
1839
1840      1222, 1222,  967,  967,  967, 2363, 2808, 1222, 1222, 1222,
1841      1531, 1531, 1531, 2364, 1230, 1230, 1230, 1224, 2365,  968,
1842       606,  607,  608, 2366, 1213, 1224, 2367,  609,  610, 1217,
1843       611,  612, 1232, 2368,  613, 2369,  614,  615,  616, 1230,
1844      1230, 1230, 2357, 1218, 1225, 2370, 2371, 1221, 1234, 1234,
1845      1234, 1236, 1236, 1236, 1238, 1238, 1238, 1232, 1238, 1238,
1846      1238, 1242, 1242, 1242, 1466, 1235, 2372, 2375, 1237, 2808,
1847      2808, 2808, 1240, 1246, 1246, 1246, 1240, 2376, 1243, 1248,
1848      1248, 1248, 1248, 1248, 1248, 2377, 2808, 1256, 1256, 1256,
1849      1247, 1256, 1256, 1256, 1233, 2378, 2379, 1250, 2380, 2358,
1850
1851      1250, 2381, 1262, 1262, 1262, 1258, 1262, 1262, 1262, 1258,
1852       990,  990,  990, 1269, 1269, 1269, 1269, 1269, 1269, 1244,
1853      1264,  994,  994,  994, 1264, 2382, 2384,  991, 1241, 2390,
1854      2391, 1271, 2392, 1245, 1271, 1273, 1273, 1273,  995, 1274,
1855      2393, 2394, 1275, 1277, 1277, 1277, 1277, 1277, 1277, 1013,
1856      1013, 1013, 1251, 2395, 1259, 1013, 1013, 1013, 1315, 1315,
1857      1315, 1279, 2399, 2408, 1279, 2409, 2410, 1015, 2411, 1265,
1858      1013, 1013, 1013, 1015, 2412, 1316, 1272, 1044, 1044, 1044,
1859      1044, 1044, 1044, 1044, 1044, 1044, 2413, 2400, 1015, 1318,
1860      1318, 1318, 1049, 1049, 1049, 1046, 1050, 2401, 1046, 1051,
1861
1862      2426, 1046, 2808, 2808, 2808, 2427, 1319, 2428, 2402, 1280,
1863      1054, 1054, 1054, 1054, 1054, 1054, 2404, 1289, 2403, 2808,
1864      1054, 1054, 1054, 1059, 1059, 1059, 2405, 1060, 1056, 1000,
1865      1061, 1056, 1317, 1062, 1062, 1062, 2429, 2430, 1056, 1324,
1866      1324, 1324, 2431, 1325, 2432, 2433, 1326, 1327, 1327, 1327,
1867      1063, 1065, 1065, 1065, 1329, 1329, 1329, 2437, 1330, 2438,
1868      2439, 1331, 1320, 2417, 1328, 2440, 2441, 1322, 1066, 1333,
1869      1333, 1333, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070,
1870      1070, 1339, 1339, 1339, 2406, 2442, 1334, 1078, 1078, 1078,
1871      1072, 2447, 2448, 1072, 2407, 2449, 1072, 2452, 1340, 1078,
1872
1873      1078, 1078, 1078, 1078, 1078, 1080, 1082, 1082, 1082, 2457,
1874      1083, 2458, 2459, 1084, 1086, 1086, 1086, 1080, 2460, 2461,
1875      1080, 1086, 1086, 1086, 1344, 1344, 1344, 1101, 1101, 1101,
1876      2462, 1102, 1088, 2463, 1103, 2464, 2465, 1336, 2466, 1088,
1877      2467, 2468, 1345, 1358, 1358, 1358, 1106, 1106, 1106, 1342,
1878      1106, 1106, 1106, 1106, 1106, 1106, 1115, 1115, 1115, 2476,
1879      1359, 1115, 1115, 1115, 1108, 1111, 1111, 1111, 1108, 1112,
1880      2477, 1108, 1113, 2478, 1117, 1115, 1115, 1115, 2479, 1117,
1881      1119, 1119, 1119, 1000, 1120, 2480, 2481, 1121, 1364, 1364,
1882      1364, 2482, 2483, 1117, 1123, 1123, 1123, 1123, 1123, 1123,
1883
1884      1123, 1123, 1123, 2484, 2485, 1365, 1367, 1367, 1367, 2808,
1885      2808, 2808, 1125, 1360, 2486, 1125, 2487, 2488, 1125, 2489,
1886      1129, 1129, 1129, 1368, 2492, 2470, 2808, 1129, 1129, 1129,
1887      1129, 1129, 1129, 2493, 2494, 1363, 2498, 1369, 1131, 1373,
1888      1373, 1373, 1136, 1136, 1136, 1131, 1137, 2505, 1131, 1138,
1889      1141, 1141, 1141, 1141, 1141, 1141, 1374, 1141, 1141, 1141,
1890      1151, 1151, 1151, 2506, 1152, 2507, 1366, 1153, 1143, 2508,
1891      2509, 1143, 1384, 1384, 1384, 1143, 1155, 1155, 1155, 2510,
1892      1156, 2511, 2512, 1157, 1158, 1158, 1158, 2513, 2514, 1385,
1893      1386, 1386, 1386, 2515, 1387, 1370, 2516, 1388, 1167, 1167,
1894
1895      1167, 1159, 1167, 1167, 1167, 1167, 1167, 1167, 1175, 1175,
1896      1175, 2521, 1176, 1000, 2526, 1177, 1169, 1178, 1178, 1178,
1897      1169, 1377, 2524, 1169, 1401, 1401, 1401, 2527, 1402, 2528,
1898      2529, 1403, 2530, 2521, 1179, 1182, 1182, 1182, 1182, 1182,
1899      1182, 1182, 1182, 1182, 1187, 1187, 1187, 2522, 1188, 2531,
1900      2532, 1189, 2533, 1184, 2534, 2535, 1184, 2536, 2519, 1184,
1901      1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 2541,
1902      2537, 1396, 1195, 1195, 1195, 2546, 1196, 2547, 1192, 1197,
1903      2548, 1192, 2538, 2549, 1192, 1201, 1201, 1201, 1201, 1201,
1904      1201, 2552, 1406, 1201, 1201, 1201, 1205, 1205, 1205, 2552,
1905
1906      1414, 1414, 1414, 1203, 1415, 2539, 1203, 1416, 1207, 1207,
1907      1207, 1203, 2555, 1206, 1417, 1417, 1417, 2540, 1418, 1000,
1908      2556, 1419, 1210, 1210, 1210, 1208, 1210, 1210, 1210, 1210,
1909      1210, 1210, 1408, 1215, 1215, 1215, 1219, 1219, 1219, 2542,
1910      1212, 1423, 1423, 1423, 1212, 1424, 2521, 1212, 1425, 2557,
1911      1216, 2543, 1413, 1220, 1428, 1428, 1428, 2558, 1429, 2550,
1912      2522, 1430, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
1913      1222, 1227, 1227, 1227, 2521, 1228, 1466, 1467, 1229, 2567,
1914      1224, 2544, 2570, 1224, 2575, 2524, 1224, 1230, 1230, 1230,
1915      1230, 1230, 1230, 2545, 2565, 1421, 1230, 1230, 1230, 1234,
1916
1917      1234, 1234, 1435, 1435, 1435, 1232, 1436, 2568, 1232, 1437,
1918      1236, 1236, 1236, 2566, 1232, 2578, 1235, 1438, 1438, 1438,
1919      2552, 1439, 2580, 2552, 1440, 2581, 2569, 1237, 1238, 1238,
1920      1238, 1432, 1238, 1238, 1238, 1238, 1238, 1238, 2573, 1242,
1921      1242, 1242, 1246, 1246, 1246, 2582, 1240, 1442, 1442, 1442,
1922      1240, 1443, 2583, 1240, 1444, 1434, 1243, 2574, 2584, 1247,
1923      1447, 1447, 1447, 2594, 1448, 2595, 2596, 1449, 1248, 1248,
1924      1248, 1248, 1248, 1248, 1248, 1248, 1248, 1452, 1452, 1452,
1925      1256, 1256, 1256, 1256, 1256, 1256, 1250, 2597, 2598, 1250,
1926      2599, 2603, 1250, 2604, 1453, 2605, 1441, 2606, 1258, 2607,
1927
1928      2576, 1258, 1256, 1256, 1256, 1262, 1262, 1262, 1262, 1262,
1929      1262, 1262, 1262, 1262, 1266, 1266, 1266, 2608, 1267, 2577,
1930      1258, 1268, 2610, 1264, 2611, 2612, 1264, 2617, 2618, 1264,
1931      1269, 1269, 1269, 2613, 2619, 1450, 1269, 1269, 1269, 1269,
1932      1269, 1269, 1273, 1273, 1273, 2614, 1274, 2620, 1271, 1275,
1933      1277, 1277, 1277, 2621, 1271, 2622, 2623, 1271, 1277, 1277,
1934      1277, 2624, 1456, 2615, 1459, 1277, 1277, 1277, 1279, 1465,
1935      1465, 1465, 1013, 1013, 1013, 2616, 1279, 1315, 1315, 1315,
1936      1717, 1717, 1717, 1279, 1318, 1318, 1318, 1466, 1467, 2625,
1937      1015, 1044, 1044, 1044, 1316, 1499, 1499, 1499, 1460, 1500,
1938
1939      2626, 1319, 1501, 1503, 1503, 1503, 2627, 1504, 2628, 1046,
1940      1505, 1054, 1054, 1054, 1324, 1324, 1324, 2630, 1325, 2631,
1941      2632, 1326, 1327, 1327, 1327, 1462, 1510, 1510, 1510, 1056,
1942      1511, 2633, 2634, 1512, 1329, 1329, 1329, 1472, 1330, 1328,
1943      2635, 1331, 1333, 1333, 1333, 1514, 1514, 1514, 1502, 1515,
1944      2636, 2637, 1516, 1070, 1070, 1070, 1339, 1339, 1339, 1334,
1945      1508, 1521, 1521, 1521, 2638, 1522, 2639, 2640, 1523, 2641,
1946      2642, 1072, 1000, 1340, 1524, 1524, 1524, 1078, 1078, 1078,
1947      1344, 1344, 1344, 1539, 1539, 1539, 2643, 1358, 1358, 1358,
1948      2644, 1525, 1541, 1541, 1541, 1080, 1542, 2629, 1345, 1543,
1949
1950      1540, 2645, 2646, 1518, 1359, 1106, 1106, 1106, 2647, 1115,
1951      1115, 1115, 1364, 1364, 1364, 1548, 1548, 1548, 2649, 1549,
1952      1000, 2650, 1550, 1108, 2651, 2652, 1526, 1117, 2653, 1365,
1953      1123, 1123, 1123, 1367, 1367, 1367, 1552, 1552, 1552, 2648,
1954      1553, 2654, 2655, 1554, 1129, 1129, 1129, 2656, 1125, 2657,
1955      1368, 2658, 1373, 1373, 1373, 2659, 1559, 1559, 1559, 2660,
1956      1560, 2661, 1131, 1561, 1562, 1562, 1562, 2662, 1544, 1374,
1957      2663, 2664, 1547, 1564, 1564, 1564, 1141, 1141, 1141, 2666,
1958      1000, 1563, 1571, 1571, 1571, 1384, 1384, 1384, 2667, 1551,
1959      1565, 1575, 1575, 1575, 1143, 1576, 2668, 2669, 1577, 1572,
1960
1961      2665, 2670, 1385, 2671, 1556, 1386, 1386, 1386, 2672, 1387,
1962      2673, 2674, 1388, 1578, 1578, 1578, 1167, 1167, 1167, 1566,
1963      1588, 1588, 1588, 2675, 1401, 1401, 1401, 2676, 1402, 2677,
1964      1579, 1403, 2678, 2679, 1169, 2680, 2681, 1589, 1592, 1592,
1965      1592, 1567, 1182, 1182, 1182, 1190, 1190, 1190, 1601, 1601,
1966      1601, 1201, 1201, 1201, 2683, 1593, 1000, 1414, 1414, 1414,
1967      1184, 1415, 2682, 1192, 1416, 1602, 1417, 1417, 1417, 1203,
1968      1418, 2684, 2685, 1419, 1210, 1210, 1210, 1423, 1423, 1423,
1969      1586, 1424, 2686, 2687, 1425, 2688, 1428, 1428, 1428, 2689,
1970      1429, 2690, 1212, 1430, 1603, 1222, 1222, 1222, 1230, 1230,
1971
1972      1230, 2691, 1435, 1435, 1435, 1595, 1436, 1604, 2692, 1437,
1973      1597, 2693, 2694, 1224, 2696, 2697, 1232, 1438, 1438, 1438,
1974      1000, 1439, 2698, 2699, 1440, 1238, 1238, 1238, 1442, 1442,
1975      1442, 2700, 1443, 2701, 2695, 1444, 1452, 1452, 1452, 1606,
1976      1447, 1447, 1447, 1240, 1448, 2702, 2703, 1449, 1248, 1248,
1977      1248, 2705, 2706, 1453, 1613, 1611, 1619, 1619, 1619, 2707,
1978      1620, 2708, 2709, 1621, 2710, 2711, 1250, 1256, 1256, 1256,
1979      2712, 2715, 1614, 1626, 1626, 1626, 1262, 1262, 1262, 1269,
1980      1269, 1269, 1630, 1630, 1630, 1258, 1277, 1277, 1277, 2716,
1981      1627, 1013, 1013, 1013, 1264, 1617, 2717, 1271, 2718, 1631,
1982
1983      1465, 1465, 1465, 2719, 1279, 2720, 1655, 1655, 1655, 1015,
1984      1662, 1662, 1662, 1499, 1499, 1499, 1624, 1500, 1466, 1000,
1985      1501, 1044, 1044, 1044, 1000, 1503, 1503, 1503, 1000, 1504,
1986      1638, 1629, 1505, 1000, 1000, 1054, 1054, 1054, 1000, 1046,
1987      1000, 1000, 1628, 1639, 1070, 1070, 1070, 1632, 1524, 1524,
1988      1524, 1634, 1656, 1056, 1000, 2721, 1663, 1510, 1510, 1510,
1989      2722, 1511, 1072, 2741, 1512, 1525, 2731, 1635, 1514, 1514,
1990      1514, 1000, 1515, 1000, 1000, 1516, 1521, 1521, 1521, 2735,
1991      1522, 2723, 2755, 1523, 2727, 2724, 1667, 1664, 1681, 1681,
1992      1681, 2737, 1682, 1637, 2732, 1683, 1078, 1078, 1078, 1688,
1993
1994      1688, 1688, 1000, 1000, 1671, 1688, 1688, 1688, 1652, 1652,
1995      1652, 1539, 1539, 1539, 1080, 1694, 1694, 1694, 2725, 1695,
1996      2726, 2733, 1696, 1541, 1541, 1541, 1000, 1542, 1540, 1000,
1997      1543, 1106, 1106, 1106, 1699, 1699, 1699, 1115, 1115, 1115,
1998      2729, 1548, 1548, 1548, 1000, 1549, 2728, 1684, 1550, 1108,
1999      1000, 1700, 1123, 1123, 1123, 1117, 1552, 1552, 1552, 2734,
2000      1553, 2742, 1689, 1554, 1703, 1703, 1703, 1000, 1653, 1000,
2001      1125, 1689, 1129, 1129, 1129, 1559, 1559, 1559, 1697, 1560,
2002      1000, 1704, 1561, 1636, 1701, 1562, 1562, 1562, 1000, 1000,
2003      1131, 1708, 1708, 1708, 1000, 1709, 2736, 1000, 1710, 1564,
2004
2005      1564, 1564, 1563, 1711, 1711, 1711, 2738, 1712, 1000, 1000,
2006      1713, 1715, 1715, 1715, 2730, 1000, 1565, 1702, 1000, 1571,
2007      1571, 1571, 2756, 1720, 1720, 1720, 2745, 1721, 2739, 1716,
2008      1722, 1723, 1723, 1723, 2740, 1705, 1572, 1575, 1575, 1575,
2009      2747, 1576, 2743, 1000, 1577, 1578, 1578, 1578, 1724, 1726,
2010      1726, 1726, 2746, 1727, 2744, 1466, 1728, 1729, 1729, 1729,
2011      1625, 1000, 1579, 1735, 1735, 1735, 1167, 1167, 1167, 1588,
2012      1588, 1588, 2749, 1000, 1730, 1739, 1739, 1739, 2751, 1740,
2013      1736, 1000, 1741, 1000, 1169, 1000, 1589, 1742, 1742, 1742,
2014      1592, 1592, 1592, 1745, 1745, 1745, 2752, 1746, 1000, 1623,
2015
2016      1747, 1749, 1749, 1749, 1743, 2748, 1000, 1593, 1190, 1190,
2017      1190, 1601, 1601, 1601, 1756, 1756, 1756, 2753, 1757, 1750,
2018      2750, 1758, 1760, 1760, 1760, 1000, 1192, 1000, 1602, 1000,
2019      2757, 1737, 1210, 1210, 1210, 1765, 1765, 1765, 1622, 2767,
2020      1761, 1767, 1767, 1767, 2808, 2808, 2808, 1222, 1222, 1222,
2021      1212, 2758, 1766, 1230, 1230, 1230, 2773, 2763, 1768, 1752,
2022      2759, 2808, 1238, 1238, 1238, 1224, 1000, 1774, 1774, 1774,
2023      2764, 1232, 1776, 1776, 1776, 1248, 1248, 1248, 1000, 1000,
2024      1240, 1000, 1618, 1763, 1775, 1256, 1256, 1256, 1000, 1777,
2025      1619, 1619, 1619, 1250, 1620, 1000, 1000, 1621, 1000, 1772,
2026
2027      1626, 1626, 1626, 1258, 1784, 1784, 1784, 1769, 1785, 1000,
2028      1616, 1786, 2754, 1770, 1262, 1262, 1262, 1627, 2765, 1269,
2029      1269, 1269, 2777, 1630, 1630, 1630, 1773, 1789, 1789, 1789,
2030      2760, 1790, 1264, 2766, 1791, 2771, 1782, 1271, 2774, 1778,
2031      1631, 1792, 1792, 1792, 1798, 1798, 1798, 1013, 1013, 1013,
2032      1806, 1806, 1806, 1647, 1647, 1647, 1812, 1812, 1812, 1793,
2033      1000, 1799, 1652, 1652, 1652, 1015, 1813, 1813, 1813, 1655,
2034      1655, 1655, 1787, 1000, 1788, 1816, 1816, 1816, 1817, 1817,
2035      1817, 1662, 1662, 1662, 1044, 1044, 1044, 1825, 1825, 1825,
2036      2805, 1828, 1828, 1828, 1070, 1070, 1070, 1832, 1832, 1832,
2037
2038      1000, 2768, 1046, 1615, 1000, 1826, 2761, 1800, 1829, 1681,
2039      1681, 1681, 1072, 1682, 1833, 1612, 1683, 1078, 1078, 1078,
2040      1845, 1845, 1845, 1688, 1688, 1688, 1850, 1850, 1850, 1852,
2041      1852, 1852, 1000, 2762, 1822, 1080, 2781, 1846, 1694, 1694,
2042      1694, 1000, 1695, 1000, 1000, 1696, 1853, 1106, 1106, 1106,
2043      2775, 1000, 1831, 1855, 1855, 1855, 1699, 1699, 1699, 1000,
2044      1857, 1857, 1857, 1844, 1858, 1108, 1000, 1859, 1610, 2772,
2045      1856, 1000, 1000, 1700, 1115, 1115, 1115, 1861, 1861, 1861,
2046      1703, 1703, 1703, 1863, 1863, 1863, 2769, 1864, 2770, 2776,
2047      1865, 1609, 1117, 1608, 1000, 1862, 2779, 1704, 1000, 1000,
2048
2049      1854, 1129, 1129, 1129, 1708, 1708, 1708, 2789, 1709, 1000,
2050      2782, 1710, 2783, 1711, 1711, 1711, 2780, 1712, 1000, 1131,
2051      1713, 1715, 1715, 1715, 1717, 1717, 1717, 1860, 1720, 1720,
2052      1720, 2785, 1721, 2778, 1000, 1722, 1723, 1723, 1723, 1716,
2053      1874, 1874, 1874, 1000, 1875, 1000, 1000, 1876, 1866, 1605,
2054      1726, 1726, 1726, 1724, 1727, 2784, 1000, 1728, 1729, 1729,
2055      1729, 1878, 1878, 1878, 1000, 1879, 1600, 1599, 1880, 1881,
2056      1881, 1881, 1735, 1735, 1735, 1730, 1886, 1886, 1886, 2791,
2057      1887, 2790, 2786, 1888, 1000, 1598, 1882, 1000, 2792, 1736,
2058      1167, 1167, 1167, 1739, 1739, 1739, 2787, 1740, 1000, 1000,
2059
2060      1741, 1742, 1742, 1742, 2788, 1891, 1891, 1891, 1169, 1892,
2061      1000, 1000, 1893, 1745, 1745, 1745, 2795, 1746, 1743, 2796,
2062      1747, 1749, 1749, 1749, 1190, 1190, 1190, 1899, 1899, 1899,
2063      1756, 1756, 1756, 1000, 1757, 2793, 2794, 1758, 1000, 1750,
2064      1000, 1889, 1192, 2799, 1900, 1760, 1760, 1760, 1907, 1907,
2065      1907, 1765, 1765, 1765, 1910, 1910, 1910, 2801, 1911, 1596,
2066      1594, 1912, 1591, 1761, 1590, 2800, 1908, 1587, 1766, 1767,
2067      1767, 1767, 2803, 1901, 1913, 1913, 1913, 1585, 1914, 1584,
2068      1583, 1915, 1222, 1222, 1222, 2802, 1768, 1897, 1230, 1230,
2069      1230, 1238, 1238, 1238, 1774, 1774, 1774, 1921, 1921, 1921,
2070
2071      1224, 1922, 1582, 1581, 1923, 1580, 1232, 1000, 1574, 1240,
2072      1573, 1775, 1776, 1776, 1776, 1924, 1924, 1924, 1570, 1925,
2073      1569, 2797, 1926, 1248, 1248, 1248, 1256, 1256, 1256, 1777,
2074      1000, 1784, 1784, 1784, 2798, 1785, 1568, 1919, 1786, 2804,
2075      1558, 1250, 1557, 1000, 1258, 1555, 1546, 1917, 1262, 1262,
2076      1262, 1269, 1269, 1269, 2805, 1920, 1789, 1789, 1789, 1545,
2077      1790, 1538, 1537, 1791, 1536, 1000, 1264, 1535, 1534, 1271,
2078      1792, 1792, 1792, 1533, 1798, 1798, 1798, 1939, 1939, 1939,
2079      1532, 1940, 1529, 1528, 1941, 1527, 1520, 1927, 1793, 1517,
2080      1931, 1799, 1013, 1013, 1013, 1943, 1943, 1943, 1513, 1933,
2081
2082      1947, 1947, 1947, 1509, 1934, 1806, 1806, 1806, 1507, 1506,
2083      1015, 1948, 1948, 1948, 1952, 1952, 1952, 1812, 1812, 1812,
2084      1813, 1813, 1813, 1953, 1953, 1953, 1816, 1816, 1816, 1817,
2085      1817, 1817, 1956, 1956, 1956, 1957, 1957, 1957, 1958, 1958,
2086      1958, 1044, 1044, 1044, 1825, 1825, 1825, 1828, 1828, 1828,
2087      1964, 1964, 1964, 1498, 1965, 1942, 1497, 1966, 1495, 1046,
2088      1494, 1493, 1826, 1492, 1829, 1968, 1968, 1968, 1491, 1954,
2089      1832, 1832, 1832, 1970, 1970, 1970, 1490, 1971, 1489, 1488,
2090      1972, 1486, 1485, 1969, 1078, 1078, 1078, 1833, 1845, 1845,
2091      1845, 1483, 1960, 1984, 1984, 1984, 1482, 1985, 1479, 1477,
2092
2093      1986, 1476, 1080, 1475, 1474, 1846, 1987, 1987, 1987, 1850,
2094      1850, 1850, 1990, 1990, 1990, 1852, 1852, 1852, 1992, 1992,
2095      1992, 1473, 1993, 1471, 1470, 1994, 1106, 1106, 1106, 1855,
2096      1855, 1855, 1853, 1983, 1996, 1996, 1996, 1469, 1997, 1468,
2097      1461, 1998, 1458, 1457, 1108, 1455, 1856, 1857, 1857, 1857,
2098      1454, 1858, 1451, 1446, 1859, 1115, 1115, 1115, 1991, 1445,
2099      1861, 1861, 1861, 1863, 1863, 1863, 1433, 1864, 1431, 1427,
2100      1865, 1426, 1422, 1117, 1129, 1129, 1129, 1995, 1862, 1874,
2101      1874, 1874, 1420, 1875, 1412, 1411, 1876, 1878, 1878, 1878,
2102      1410, 1879, 1131, 1409, 1880, 1881, 1881, 1881, 2011, 2011,
2103
2104      2011, 1407, 2012, 1405, 1404, 2013, 1999, 1886, 1886, 1886,
2105      1400, 1887, 1882, 1399, 1888, 1167, 1167, 1167, 1891, 1891,
2106      1891, 1398, 1892, 1397, 1395, 1893, 1394, 2000, 2022, 2022,
2107      2022, 1393, 1392, 1169, 1899, 1899, 1899, 2025, 2025, 2025,
2108      1391, 2026, 1390, 1389, 2027, 1383, 2023, 1907, 1907, 1907,
2109      1382, 1900, 1910, 1910, 1910, 1381, 1911, 1380, 1379, 1912,
2110      1913, 1913, 1913, 1378, 1914, 1908, 1376, 1915, 1222, 1222,
2111      1222, 1230, 1230, 1230, 1238, 1238, 1238, 1375, 2017, 1372,
2112      1921, 1921, 1921, 1371, 1922, 1362, 1224, 1923, 1361, 1232,
2113      1357, 1356, 1240, 1924, 1924, 1924, 1355, 1925, 1354, 1353,
2114
2115      1926, 1352, 1248, 1248, 1248, 1351, 2043, 2043, 2043, 1350,
2116      2041, 2808, 2808, 2808, 2808, 2808, 2808, 1349, 1348, 2038,
2117      1250, 1347, 2042, 2044, 1256, 1256, 1256, 1346, 2808, 1343,
2118      1341, 2808, 1262, 1262, 1262, 1338, 2040, 2050, 2050, 2050,
2119      1335, 1332, 1258, 2052, 2052, 2052, 2055, 2055, 2055, 1323,
2120      1264, 1321, 1939, 1939, 1939, 2051, 1940, 1314, 1312, 1941,
2121      1311, 1000, 2045, 1013, 1013, 1013, 1943, 1943, 1943, 2057,
2122      2057, 2057, 2046, 1947, 1947, 1947, 1948, 1948, 1948, 1310,
2123      1309, 1015, 2060, 2060, 2060, 2061, 2061, 2061, 2047, 1308,
2124      1307, 2049, 2062, 2062, 2062, 1952, 1952, 1952, 1953, 1953,
2125
2126      1953, 1956, 1956, 1956, 1957, 1957, 1957, 1958, 1958, 1958,
2127      2066, 2066, 2066, 2069, 2069, 2069, 1964, 1964, 1964, 1306,
2128      1965, 2056, 1305, 1966, 2808, 2808, 2808, 1304, 2067, 1301,
2129      2070, 1968, 1968, 1968, 1300, 1970, 1970, 1970, 1299, 1971,
2130      1298, 2808, 1972, 1078, 1078, 1078, 1984, 1984, 1984, 1969,
2131      1985, 1297, 1296, 1986, 1987, 1987, 1987, 1990, 1990, 1990,
2132      1295, 1080, 1992, 1992, 1992, 1294, 1993, 1293, 1292, 1994,
2133      1106, 1106, 1106, 1996, 1996, 1996, 1291, 1997, 1290, 1288,
2134      1998, 2087, 2087, 2087, 1129, 1129, 1129, 1287, 1108, 2071,
2135      2097, 2097, 2097, 2011, 2011, 2011, 1286, 2012, 1285, 2088,
2136
2137      2013, 1284, 1131, 2082, 2100, 2100, 2100, 2104, 2104, 2104,
2138      2022, 2022, 2022, 2110, 2110, 2110, 2086, 2121, 2121, 2121,
2139      1283, 2101, 2025, 2025, 2025, 2105, 2026, 1282, 2023, 2027,
2140      2111, 2123, 2123, 2123, 1000, 2089, 2125, 2125, 2125, 1230,
2141      1230, 1230, 1238, 1238, 1238, 1248, 1248, 1248, 1276, 2124,
2142      2043, 2043, 2043, 2126, 2130, 2130, 2130, 1232, 2131, 2112,
2143      1240, 2132, 1261, 1250, 2133, 2133, 2133, 2044, 2808, 2808,
2144      2808, 2136, 2136, 2136, 2138, 2138, 2138, 1262, 1262, 1262,
2145      1260, 2134, 2129, 1255, 1254, 2808, 2050, 2050, 2050, 2137,
2146      2052, 2052, 2052, 1253, 1252, 1264, 1226, 1214, 2127, 2055,
2147
2148      2055, 2055, 2128, 1200, 2051, 2143, 2143, 2143, 1000, 2057,
2149      2057, 2057, 2060, 2060, 2060, 2061, 2061, 2061, 1199, 2135,
2150      2062, 2062, 2062, 2144, 1198, 2066, 2066, 2066, 2069, 2069,
2151      2069, 2151, 2151, 2151, 1194, 2152, 1186, 1181, 2153, 2808,
2152      2808, 2808, 2139, 2067, 1180, 2070, 1078, 1078, 1078, 1174,
2153      1171, 2140, 1106, 1106, 1106, 1166, 2808, 2087, 2087, 2087,
2154      2170, 2170, 2170, 1165, 1080, 2176, 2176, 2176, 1164, 1163,
2155      1108, 2097, 2097, 2097, 1162, 2088, 1161, 1160, 2171, 2100,
2156      2100, 2100, 2177, 2180, 2180, 2180, 1154, 2181, 1147, 1146,
2157      2182, 2184, 2184, 2184, 2154, 1145, 2101, 2104, 2104, 2104,
2158
2159      1140, 2188, 2188, 2188, 1139, 2165, 1135, 1134, 2185, 2110,
2160      2110, 2110, 2191, 2191, 2191, 2105, 2192, 2169, 2189, 2193,
2161      2199, 2199, 2199, 2121, 2121, 2121, 2111, 2123, 2123, 2123,
2162      2125, 2125, 2125, 1133, 2203, 2203, 2203, 2200, 2204, 1128,
2163      1127, 2205, 2206, 2206, 2206, 2124, 1122, 2126, 1238, 1238,
2164      1238, 1114, 1248, 1248, 1248, 2130, 2130, 2130, 1110, 2131,
2165      2207, 1105, 2132, 2133, 2133, 2133, 1240, 2210, 2210, 2210,
2166      1250, 2211, 1104, 1100, 2212, 2213, 2213, 2213, 1099, 1098,
2167      2134, 2136, 2136, 2136, 2138, 2138, 2138, 2215, 2215, 2215,
2168      1097, 1096, 2214, 2143, 2143, 2143, 2225, 2225, 2225, 2137,
2169
2170      2151, 2151, 2151, 1095, 2152, 2216, 1094, 2153, 2808, 2808,
2171      2808, 2144, 1093, 2226, 2208, 2209, 1078, 1078, 1078, 1106,
2172      1106, 1106, 2170, 2170, 2170, 2808, 2250, 2250, 2250, 2176,
2173      2176, 2176, 1092, 1091, 1080, 1085, 1077, 1108, 1076, 1075,
2174      2171, 1074, 1069, 2251, 1068, 1067, 2177, 2252, 2252, 2252,
2175      1064, 2253, 1058, 1053, 2254, 2180, 2180, 2180, 1052, 2181,
2176      1048, 1043, 2182, 2184, 2184, 2184, 1042, 1041, 2233, 2258,
2177      2258, 2258, 1040, 2259, 1039, 2244, 2260, 2262, 2262, 2262,
2178      2185, 2188, 2188, 2188, 2264, 2264, 2264, 1038, 2265, 2248,
2179      1036, 2266, 1035, 1034, 2263, 2267, 2267, 2267, 2189, 2191,
2180
2181      2191, 2191, 1033, 2192, 1032, 1031, 2193, 2199, 2199, 2199,
2182      1030, 1029, 2268, 2272, 2272, 2272, 1028, 2273, 1027, 1026,
2183      2274, 2275, 2275, 2275, 2200, 2277, 2277, 2277, 2203, 2203,
2184      2203, 1025, 2204, 1024, 1023, 2205, 1022, 1021, 2276, 2206,
2185      2206, 2206, 2278, 1238, 1238, 1238, 1248, 1248, 1248, 2210,
2186      2210, 2210, 1020, 2211, 1019, 1012, 2212, 2207, 2213, 2213,
2187      2213, 1240, 1011, 1010, 1250, 2287, 2287, 2287, 1009, 2288,
2188      1008, 1007, 2289, 1006, 1003, 2214, 2215, 2215, 2215, 2294,
2189      2294, 2294, 2225, 2225, 2225, 2298, 2298, 2298, 1001, 2299,
2190      1000,  998, 2300,  996, 2216, 2808, 2808, 2808,  993, 2226,
2191
2192      1078, 1078, 1078, 2320, 2320, 2320, 2286,  989, 2285, 1106,
2193      1106, 1106, 2808, 2323, 2323, 2323,  987,  986, 1080, 2250,
2194      2250, 2250, 2326, 2326, 2326,  985, 2327, 1108,  983, 2328,
2195      2324, 2252, 2252, 2252,  982, 2253, 2251,  981, 2254, 2258,
2196      2258, 2258,  980, 2259,  979,  977, 2260, 2262, 2262, 2262,
2197       976, 2318,  975,  974, 2309,  972, 2333, 2333, 2333, 2325,
2198      2334,  971,  970, 2335, 2263, 2264, 2264, 2264,  966, 2265,
2199      2322,  965, 2266, 2267, 2267, 2267, 2336, 2336, 2336,  963,
2200      2337,  962,  961, 2338, 2340, 2340, 2340, 2272, 2272, 2272,
2201      2268, 2273,  960,  959, 2274, 2275, 2275, 2275, 2343, 2343,
2202
2203      2343, 2341, 2344,  958,  956, 2345, 2277, 2277, 2277, 2346,
2204      2346, 2346, 2276, 2347,  955,  954, 2348, 1238, 1238, 1238,
2205      1248, 1248, 1248, 2278, 2287, 2287, 2287,  953, 2288,  951,
2206       950, 2289, 2359, 2359, 2359, 1240,  949,  946, 1250, 2294,
2207      2294, 2294, 2362, 2362, 2362, 2373, 2373, 2373,  945, 2360,
2208      1466, 2298, 2298, 2298,  941, 2299,  940,  938, 2300, 1078,
2209      1078, 1078, 2374, 2320, 2320, 2320,  937,  936, 2355, 2385,
2210      2385, 2385, 1106, 1106, 1106,  933,  932, 1080, 2323, 2323,
2211      2323, 2387, 2387, 2387,  931, 2388, 2356,  930, 2389,  928,
2212      1108,  927, 2326, 2326, 2326, 2324, 2327,  926,  925, 2328,
2213
2214      2333, 2333, 2333,  924, 2334,  923,  922, 2335, 2383, 2336,
2215      2336, 2336,  921, 2337,  918,  915, 2338, 2340, 2340, 2340,
2216      2396, 2396, 2396, 2386, 2397,  914,  911, 2398, 2343, 2343,
2217      2343,  909, 2344,  908, 2341, 2345, 2346, 2346, 2346,  903,
2218      2347,  902,  900, 2348, 2414, 2414, 2414, 1248, 1248, 1248,
2219      2418, 2418, 2418, 2359, 2359, 2359, 2420, 2420, 2420,  899,
2220      2421,  898, 2415, 2422,  896, 1250,  893, 2419, 1466,  891,
2221      2360, 1466,  888,  887, 1466, 2423, 2423, 2423, 2362, 2362,
2222      2362, 2424, 2424, 2424, 2425, 2425, 2425, 2373, 2373, 2373,
2223      2434, 2434, 2434,  885, 2435,  884,  881, 2436, 1078, 1078,
2224
2225      1078, 2444, 2444, 2444, 2374, 2385, 2385, 2385, 2445, 2445,
2226      2445,  878, 2416, 2387, 2387, 2387, 1080, 2388,  877,  876,
2227      2389, 2450, 2450, 2450,  875,  873, 2446, 2453, 2453, 2453,
2228      2396, 2396, 2396,  872, 2397,  871,  870, 2398, 2451, 2455,
2229      2455, 2455,  869,  867, 2454,  864, 2414, 2414, 2414, 1248,
2230      1248, 1248, 2418, 2418, 2418,  862, 2456,  861, 2471, 2471,
2231      2471,  860, 2472, 2443, 2415, 2473,  858, 1250,  856, 2419,
2232      1466, 2420, 2420, 2420,  855, 2421, 1466,  854, 2422, 2423,
2233      2423, 2423, 2424, 2424, 2424, 2425, 2425, 2425,  853, 1466,
2234      2434, 2434, 2434,  852, 2435,  851,  848, 2436,  847,  846,
2235
2236      2469, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464,
2237       843,  840, 1464, 2490, 2490, 2490,  839, 1464, 1464, 1464,
2238      1466, 1464, 2444, 2444, 2444, 2445, 2445, 2445, 2450, 2450,
2239      2450, 2491, 2495, 2495, 2495,  837, 2496,  836,  833, 2497,
2240      2453, 2453, 2453, 2446,  831, 2451, 1464, 1464, 1464, 1464,
2241      1464, 1464, 1464, 1464, 1464, 1464, 1464, 2454,  828, 1464,
2242      2455, 2455, 2455,  827, 1464, 1464, 1464, 1466, 1464, 2499,
2243      2499, 2499,  819, 2500,  818,  817, 2501, 2456, 2502, 2502,
2244      2502,  814, 2503,  813,  812, 2504, 2517, 2517, 2517, 2490,
2245      2490, 2490,  811, 1464, 1464, 2471, 2471, 2471,  809, 2472,
2246
2247       808,  807, 2473,  806, 2518,  805,  804, 2491, 2517, 2517,
2248      2517,  799,  796, 1466, 1464, 1464, 1464, 1464, 1464, 2525,
2249      1464, 1464, 1464,  798,  793, 1464, 2518,  792,  790,  788,
2250      1464, 1464, 1464, 1466, 1464, 2495, 2495, 2495,  786, 2496,
2251       784,  782, 2497, 2499, 2499, 2499, 2808, 2500,  779,  778,
2252      2501, 2502, 2502, 2502,  777, 2503,  776,  774, 2504, 1464,
2253      1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 2525,
2254       773,  772, 1464, 2554, 2554, 2554,  771, 1464, 1464, 1464,
2255      1466, 1464, 2559, 2559, 2559, 2561, 2561, 2561, 2563, 2563,
2256      2563, 1466, 1467, 2571, 2571, 2571, 2579, 2579, 2579, 2560,
2257
2258       770,  768, 2562,  767,  766, 2564, 1464, 1464,  765,  763,
2259      2572, 2554, 2554, 2554, 1000, 2559, 2559, 2559, 2585, 2585,
2260      2585,  761, 2586,  760,  758, 2587, 2561, 2561, 2561, 1466,
2261       757,  754, 2560, 2588, 2588, 2588,  753, 2589,  751,  611,
2262      2590, 2808,  746, 2562, 2563, 2563, 2563, 2591, 2591, 2591,
2263       744, 2592,  740,  739, 2593, 2571, 2571, 2571, 2579, 2579,
2264      2579, 2564, 1634, 2600, 2600, 2600,  738, 2601,  736,  734,
2265      2602,  733, 2572, 2585, 2585, 2585, 1000, 2586,  731,  729,
2266      2587, 2588, 2588, 2588,  728, 2589,  727,  726, 2590, 2591,
2267      2591, 2591,  725, 2592,  724, 2609, 2593, 2600, 2600, 2600,
2268
2269       723, 2601,  721,  712, 2602, 2704, 2704, 2704, 2704, 2704,
2270      2704,  711, 2713,  710,  707, 2714, 2806, 2806, 2806, 2806,
2271      2806, 2806,  705, 1000, 2808,  702, 1000,  701,  700,  699,
2272       698,  696,  694,  693, 2807,  691,  689, 2807,  238,  238,
2273       238,  238,  238,  238,  238,  238,  238,  239,  239,  239,
2274       239,  239,  239,  239,  239,  239,  244,  244,  244,  244,
2275       244,  244,  244,  244,  244,  247,  247,  247,  247,  247,
2276       247,  247,  247,  247,  250,  250,  250,  250,  250,  250,
2277       250,  250,  250,  253,  253,  253,  253,  253,  253,  253,
2278       253,  253,  260,  260,  260,  260,  260,  260,  260,  260,
2279
2280       260,  268,  268,  268,  268,  268,  268,  268,  268,  268,
2281       272,  272,  272,  272,  272,  272,  272,  272,  272,  284,
2282       284,  284,  284,  284,  284,  284,  284,  284,  288,  288,
2283       288,  288,  288,  288,  288,  288,  288,  295,  295,  295,
2284       295,  295,  295,  295,  295,  295,  306,  306,  306,  306,
2285       306,  306,  306,  306,  306,  314,  314,  314,  314,  314,
2286       314,  314,  314,  314,  322,  322,  322,  322,  322,  322,
2287       322,  322,  322,  328,  328,  328,  328,  328,  328,  328,
2288       328,  328,  334,  334,  334,  334,  334,  334,  334,  334,
2289       334,  339,  339,  339,  339,  339,  339,  339,  339,  339,
2290
2291       356,  356,  356,  356,  356,  356,  356,  356,  356,  363,
2292       363,  363,  363,  363,  363,  363,  363,  363,  370,  370,
2293       370,  370,  370,  370,  370,  370,  370,  376,  376,  376,
2294       376,  376,  376,  376,  376,  376,  383,  383,  383,  383,
2295       383,  383,  383,  383,  383,  388,  388,  388,  388,  388,
2296       388,  388,  388,  388,  394,  394,  394,  394,  394,  394,
2297       394,  394,  394,  399,  399,  399,  399,  399,  399,  399,
2298       399,  399,  405,  405,  405,  405,  405,  405,  405,  405,
2299       405,  413,  413,  413,  413,  413,  413,  413,  413,  413,
2300       432,  432,  432,  432,  432,  432,  432,  432,  432,  438,
2301
2302       438,  438,  438,  438,  438,  438,  438,  438,  448,  448,
2303       448,  448,  448,  448,  448,  448,  448,  454,  454,  454,
2304       454,  454,  454,  454,  454,  454,  459,  459,  459,  459,
2305       459,  459,  459,  459,  459,  465,  465,  465,  465,  465,
2306       465,  465,  465,  465,  472,  472,  472,  472,  472,  472,
2307       472,  472,  472,  479,  479,  479,  479,  479,  479,  479,
2308       479,  479,  484,  484,  484,  484,  484,  484,  484,  484,
2309       484,  492,  492,  492,  492,  492,  492,  492,  492,  492,
2310       498,  498,  498,  498,  498,  498,  498,  498,  498,  505,
2311       505,  505,  505,  505,  505,  505,  505,  505,  510,  510,
2312
2313       510,  510,  510,  510,  510,  510,  510,  516,  516,  516,
2314       516,  516,  516,  516,  516,  516,  521,  521,  521,  521,
2315       521,  521,  521,  521,  521,  528,  528,  528,  528,  528,
2316       528,  528,  528,  528,  534,  534,  534,  534,  534,  534,
2317       534,  534,  534,  541,  541,  541,  541,  541,  541,  541,
2318       541,  541,  548,  548,  548,  548,  548,  548,  548,  548,
2319       548,  556,  556,  556,  556,  556,  556,  556,  556,  556,
2320       560,  560,  560,  560,  560,  560,  560,  560,  560,  566,
2321       566,  566,  566,  566,  566,  566,  566,  566,  570,  570,
2322       570,  570,  570,  570,  570,  570,  570,  577,  577,  577,
2323
2324       577,  577,  577,  577,  577,  577,  582,  582,  582,  582,
2325       582,  582,  582,  582,  582,  602,  602,  602,  688,  686,
2326       684,  602,  628,  628,  628,  683,  682,  680,  628,  632,
2327       632,  632,  678,  677,  676,  632,  640,  640,  640,  675,
2328       673, 2808,  640,  652,  652,  652, 2808,  660,  659,  652,
2329       658,  658,  658,  657,  655,  654,  658,  674,  674,  674,
2330       653,  651,  646,  674,  681,  681,  681,  642,  641,  639,
2331       681,  687,  687,  687,  638,  635,  634,  687,  692,  692,
2332       692,  633,  631,  630,  692,  697,  697,  697,  629,  627,
2333       622,  697,  706,  706,  706, 2808,  603,  601,  706,  722,
2334
2335       722,  722,  599,  593,  592,  722,  732,  732,  732,  593,
2336       592,  591,  732,  737,  737,  737,  590, 2808, 2808,  737,
2337       745,  745,  745, 2808, 2808, 2808,  745,  752,  752,  752,
2338      2808, 2808, 2808,  752,  759,  759,  759, 2808, 2808, 2808,
2339       759,  764,  764,  764, 2808, 2808, 2808,  764,  769,  769,
2340       769, 2808, 2808, 2808,  769,  775,  775,  775, 2808, 2808,
2341      2808,  775,  783,  783,  783, 2808, 2808, 2808,  783,  787,
2342       787,  787, 2808, 2808, 2808,  787,  791,  791,  791, 2808,
2343      2808, 2808,  791,  795,  795,  795,  795,  795,  795,  795,
2344      2808,  795,  602,  602,  602, 2808, 2808, 2808,  602,  810,
2345
2346      2808, 2808, 2808,  810,  628,  628,  628, 2808, 2808, 2808,
2347       628,  838, 2808, 2808, 2808,  838,  632,  632,  632, 2808,
2348      2808, 2808,  632,  845, 2808, 2808, 2808,  845,  640,  640,
2349       640, 2808, 2808, 2808,  640,  857, 2808, 2808, 2808,  857,
2350       652,  652,  652, 2808, 2808, 2808,  652,  863, 2808, 2808,
2351      2808,  863,  658,  658,  658, 2808, 2808, 2808,  658,  868,
2352      2808, 2808, 2808,  868,  674,  674,  674, 2808, 2808, 2808,
2353       674,  886, 2808, 2808, 2808,  886,  681,  681,  681, 2808,
2354      2808, 2808,  681,  892, 2808, 2808, 2808,  892,  687,  687,
2355       687, 2808, 2808, 2808,  687,  897, 2808, 2808, 2808,  897,
2356
2357       692,  692,  692, 2808, 2808, 2808,  692,  901, 2808, 2808,
2358      2808,  901,  697,  697,  697, 2808, 2808, 2808,  697,  910,
2359      2808, 2808, 2808,  910,  706,  706,  706, 2808, 2808, 2808,
2360       706,  929, 2808, 2808, 2808,  929,  722,  722,  722, 2808,
2361      2808, 2808,  722,  939, 2808, 2808, 2808,  939,  732,  732,
2362       732, 2808, 2808, 2808,  732,  944, 2808, 2808, 2808,  944,
2363       737,  737,  737, 2808, 2808, 2808,  737,  952, 2808, 2808,
2364      2808,  952,  745,  745,  745, 2808, 2808, 2808,  745,  957,
2365      2808, 2808, 2808,  957,  752,  752,  752, 2808, 2808, 2808,
2366       752,  964, 2808, 2808, 2808,  964,  759,  759,  759, 2808,
2367
2368      2808, 2808,  759,  969, 2808, 2808, 2808,  969,  764,  764,
2369       764, 2808, 2808, 2808,  764,  973, 2808, 2808, 2808,  973,
2370       769,  769,  769, 2808, 2808, 2808,  769,  978, 2808, 2808,
2371      2808,  978,  775,  775,  775, 2808, 2808, 2808,  775,  984,
2372      2808, 2808, 2808,  984,  783,  783,  783, 2808, 2808, 2808,
2373       783,  988, 2808, 2808, 2808,  988,  787,  787,  787, 2808,
2374      2808, 2808,  787,  992, 2808, 2808, 2808,  992,  791,  791,
2375       791, 2808, 2808, 2808,  791,  997, 2808, 2808, 2808,  997,
2376       999,  999,  999,  999,  999,  999,  999,  999,  999, 1005,
2377      2808, 2808, 2808, 2808, 1005,  602,  602,  602, 2808, 2808,
2378
2379      2808,  602, 1014, 1014, 1014, 1014, 2808, 2808, 1014, 1014,
2380       628,  628,  628, 2808, 2808, 2808,  628, 1045, 1045, 1045,
2381      1045, 2808, 2808, 1045, 1045,  632,  632,  632, 2808, 2808,
2382      2808,  632, 1055, 1055, 1055, 1055, 2808, 2808, 1055, 1055,
2383       640,  640,  640, 2808, 2808, 2808,  640, 1071, 1071, 1071,
2384      1071, 2808, 2808, 1071, 1071,  652,  652,  652, 2808, 2808,
2385      2808,  652, 1079, 1079, 1079, 1079, 2808, 2808, 1079, 1079,
2386       658,  658,  658, 2808, 2808, 2808,  658, 1087, 1087, 1087,
2387      1087, 2808, 2808, 1087, 1087,  674,  674,  674, 2808, 2808,
2388      2808,  674, 1107, 1107, 1107, 1107, 2808, 2808, 1107, 1107,
2389
2390       681,  681,  681, 2808, 2808, 2808,  681, 1116, 1116, 1116,
2391      1116, 2808, 2808, 1116, 1116,  687,  687,  687, 2808, 2808,
2392      2808,  687, 1124, 1124, 1124, 1124, 2808, 2808, 1124, 1124,
2393       692,  692,  692, 2808, 2808, 2808,  692, 1130, 1130, 1130,
2394      1130, 2808, 2808, 1130, 1130,  697,  697,  697, 2808, 2808,
2395      2808,  697, 1142, 1142, 1142, 1142, 2808, 2808, 1142, 1142,
2396       706,  706,  706, 2808, 2808, 2808,  706, 1168, 1168, 1168,
2397      1168, 2808, 2808, 1168, 1168,  722,  722,  722, 2808, 2808,
2398      2808,  722, 1183, 1183, 1183, 1183, 2808, 2808, 1183, 1183,
2399       732,  732,  732, 2808, 2808, 2808,  732, 1191, 1191, 1191,
2400
2401      1191, 2808, 2808, 1191, 1191,  737,  737,  737, 2808, 2808,
2402      2808,  737, 1202, 1202, 1202, 1202, 2808, 2808, 1202, 1202,
2403       745,  745,  745,  745, 2808,  745, 2808,  745, 1211, 1211,
2404      1211, 1211, 2808, 2808, 1211, 1211,  752,  752,  752,  752,
2405      2808,  752, 2808,  752, 1223, 1223, 1223, 1223, 2808, 2808,
2406      1223, 1223,  759,  759,  759, 2808, 2808, 2808,  759, 1231,
2407      1231, 1231, 1231, 2808, 2808, 1231, 1231,  764,  764,  764,
2408       764, 2808,  764, 2808,  764, 1239, 1239, 1239, 1239, 2808,
2409      2808, 1239, 1239,  769,  769,  769,  769, 2808,  769, 2808,
2410       769, 1249, 1249, 1249, 1249, 2808, 2808, 1249, 1249,  775,
2411
2412       775,  775, 2808, 2808, 2808,  775, 1257, 1257, 1257, 1257,
2413      2808, 2808, 1257, 1257,  783,  783,  783, 2808, 2808, 2808,
2414       783, 1263, 1263, 1263, 1263, 2808, 2808, 1263, 1263, 1270,
2415      1270, 1270, 1270, 2808, 2808, 1270, 1270,  791,  791,  791,
2416      2808, 2808, 2808,  791, 1278, 1278, 1278, 1278, 2808, 2808,
2417      1278, 1278,  999,  999,  999,  999,  999,  999,  999,  999,
2418       999, 1005, 2808, 1005, 2808, 2808, 1005,  602,  602,  602,
2419      2808, 2808, 2808,  602, 1014, 1014, 1014, 1014, 2808, 2808,
2420      1014, 1014,  628,  628,  628,  628, 2808,  628, 2808,  628,
2421      1045, 1045, 1045, 1045, 2808, 2808, 1045, 1045,  632,  632,
2422
2423       632,  632, 2808,  632, 2808,  632, 1055, 1055, 1055, 1055,
2424      2808, 2808, 1055, 1055,  640,  640,  640, 2808, 2808, 2808,
2425       640, 1071, 1071, 1071, 1071, 2808, 2808, 1071, 1071,  652,
2426       652,  652, 2808, 2808, 2808,  652, 1079, 1079, 1079, 1079,
2427      2808, 2808, 1079, 1079,  658,  658,  658, 2808, 2808, 2808,
2428       658, 1087, 1087, 1087, 1087, 2808, 2808, 1087, 1087,  674,
2429       674,  674, 2808, 2808, 2808,  674, 1107, 1107, 1107, 1107,
2430      2808, 2808, 1107, 1107,  681,  681,  681, 2808, 2808, 2808,
2431       681, 1116, 1116, 1116, 1116, 2808, 2808, 1116, 1116,  687,
2432       687,  687,  687, 2808,  687, 2808,  687, 1124, 1124, 1124,
2433
2434      1124, 2808, 2808, 1124, 1124,  692,  692,  692,  692, 2808,
2435       692, 2808,  692, 1130, 1130, 1130, 1130, 2808, 2808, 1130,
2436      1130,  697,  697,  697, 2808, 2808, 2808,  697, 1142, 1142,
2437      1142, 1142, 2808, 2808, 1142, 1142,  706,  706,  706, 2808,
2438      2808, 2808,  706, 1168, 1168, 1168, 1168, 2808, 2808, 1168,
2439      1168,  722,  722,  722, 2808, 2808, 2808,  722, 1183, 1183,
2440      1183, 1183, 2808, 2808, 1183, 1183,  732,  732,  732, 2808,
2441      2808, 2808,  732, 1191, 1191, 1191, 1191, 2808, 2808, 1191,
2442      1191,  737,  737,  737, 2808, 2808, 2808,  737, 1202, 1202,
2443      1202, 1202, 2808, 2808, 1202, 1202,  745,  745,  745, 2808,
2444
2445      2808, 2808,  745, 1211, 1211, 1211, 1211, 2808, 2808, 1211,
2446      1211,  752,  752,  752, 2808, 2808, 2808,  752, 1223, 1223,
2447      1223, 1223, 2808, 2808, 1223, 1223,  759,  759,  759, 2808,
2448      2808, 2808,  759, 1231, 1231, 1231, 1231, 2808, 2808, 1231,
2449      1231, 1239, 1239, 1239, 1239, 2808, 2808, 1239, 1239,  769,
2450       769,  769, 2808, 2808, 2808,  769, 1249, 1249, 1249, 1249,
2451      2808, 2808, 1249, 1249,  775,  775,  775, 2808, 2808, 2808,
2452       775, 1257, 1257, 1257, 1257, 2808, 2808, 1257, 1257,  783,
2453       783,  783, 2808, 2808, 2808,  783, 1263, 1263, 1263, 1263,
2454      2808, 2808, 1263, 1263, 1270, 1270, 1270, 1270, 2808, 2808,
2455
2456      1270, 1270,  791,  791,  791, 2808, 2808, 2808,  791, 1278,
2457      1278, 1278, 1278, 2808, 2808, 1278, 1278,  999,  999,  999,
2458       999,  999,  999,  999,  999,  999, 1464, 1464, 1464, 1464,
2459      1464, 1464, 1464, 1464, 1464,  602,  602,  602, 2808, 2808,
2460      2808,  602, 1014, 1014, 1014, 1014, 2808, 2808, 1014, 1014,
2461      1045, 1045, 1045, 1045, 2808, 2808, 1045, 1045,  632,  632,
2462       632, 2808, 2808, 2808,  632, 1055, 1055, 1055, 1055, 2808,
2463      2808, 1055, 1055,  640,  640,  640, 2808, 2808, 2808,  640,
2464      1071, 1071, 1071, 1071, 2808, 2808, 1071, 1071,  652,  652,
2465       652, 2808, 2808, 2808,  652, 1079, 1079, 1079, 1079, 2808,
2466
2467      2808, 1079, 1079,  658,  658,  658, 2808, 2808, 2808,  658,
2468       674,  674,  674, 2808, 2808, 2808,  674, 1107, 1107, 1107,
2469      1107, 2808, 2808, 1107, 1107,  681,  681,  681, 2808, 2808,
2470      2808,  681, 1116, 1116, 1116, 1116, 2808, 2808, 1116, 1116,
2471      1124, 1124, 1124, 1124, 2808, 2808, 1124, 1124,  692,  692,
2472       692, 2808, 2808, 2808,  692, 1130, 1130, 1130, 1130, 2808,
2473      2808, 1130, 1130,  697,  697,  697, 2808, 2808, 2808,  697,
2474      1142, 1142, 1142, 1142, 2808, 2808, 1142, 1142,  706,  706,
2475       706, 2808, 2808, 2808,  706, 1168, 1168, 1168, 1168, 2808,
2476      2808, 1168, 1168,  722,  722,  722, 2808, 2808, 2808,  722,
2477
2478      1183, 1183, 1183, 1183, 2808, 2808, 1183, 1183,  732,  732,
2479       732, 2808, 2808, 2808,  732, 1191, 1191, 1191, 1191, 2808,
2480      2808, 1191, 1191,  737,  737,  737, 2808, 2808, 2808,  737,
2481      1202, 1202, 1202, 1202, 2808, 2808, 1202, 1202,  745,  745,
2482       745, 2808, 2808, 2808,  745, 1211, 1211, 1211, 1211, 2808,
2483      2808, 1211, 1211,  752,  752,  752, 2808, 2808, 2808,  752,
2484      1223, 1223, 1223, 1223, 2808, 2808, 1223, 1223,  759,  759,
2485       759, 2808, 2808, 2808,  759, 1231, 1231, 1231, 1231, 2808,
2486      2808, 1231, 1231, 1239, 1239, 1239, 1239, 2808, 2808, 1239,
2487      1239,  769,  769,  769, 2808, 2808, 2808,  769, 1249, 1249,
2488
2489      1249, 1249, 2808, 2808, 1249, 1249,  775,  775,  775, 2808,
2490      2808, 2808,  775, 1257, 1257, 1257, 1257, 2808, 2808, 1257,
2491      1257,  783,  783,  783,  783, 2808,  783, 2808,  783, 1263,
2492      1263, 1263, 1263, 2808, 2808, 1263, 1263, 1270, 1270, 1270,
2493      1270, 2808, 2808, 1270, 1270,  791,  791,  791,  791, 2808,
2494       791, 2808,  791, 1278, 1278, 1278, 1278, 2808, 2808, 1278,
2495      1278,  999,  999,  999,  999,  999,  999,  999,  999,  999,
2496      1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464,  602,
2497       602,  602, 2808, 2808, 2808,  602, 1014, 1014, 1014, 1014,
2498      2808, 2808, 1014, 1014, 1045, 1045, 1045, 1045, 2808, 2808,
2499
2500      1045, 1045,  632,  632,  632, 2808, 2808, 2808,  632, 1055,
2501      1055, 1055, 1055, 2808, 2808, 1055, 1055,  640,  640,  640,
2502      2808, 2808, 2808,  640, 1071, 1071, 1071, 1071, 2808, 2808,
2503      1071, 1071,  652,  652,  652, 2808, 2808, 2808,  652, 1079,
2504      1079, 1079, 1079, 2808, 2808, 1079, 1079,  658,  658,  658,
2505      2808, 2808, 2808,  658,  674,  674,  674, 2808, 2808, 2808,
2506       674, 1107, 1107, 1107, 1107, 2808, 2808, 1107, 1107,  681,
2507       681,  681, 2808, 2808, 2808,  681, 1116, 1116, 1116, 1116,
2508      2808, 2808, 1116, 1116, 1124, 1124, 1124, 1124, 2808, 2808,
2509      1124, 1124,  692,  692,  692,  692, 2808,  692, 2808,  692,
2510
2511      1130, 1130, 1130, 1130, 2808, 2808, 1130, 1130,  697,  697,
2512       697, 2808, 2808, 2808,  697, 1142, 1142, 1142, 1142, 2808,
2513      2808, 1142, 1142,  706,  706,  706, 2808, 2808, 2808,  706,
2514      1168, 1168, 1168, 1168, 2808, 2808, 1168, 1168,  722,  722,
2515       722, 2808, 2808, 2808,  722, 1183, 1183, 1183, 1183, 2808,
2516      2808, 1183, 1183,  732,  732,  732, 2808, 2808, 2808,  732,
2517      1191, 1191, 1191, 1191, 2808, 2808, 1191, 1191,  737,  737,
2518       737, 2808, 2808, 2808,  737, 1202, 1202, 1202, 1202, 2808,
2519      2808, 1202, 1202,  745,  745,  745, 2808, 2808, 2808,  745,
2520      1211, 1211, 1211, 1211, 2808, 2808, 1211, 1211,  752,  752,
2521
2522       752,  752, 2808,  752, 2808,  752, 1223, 1223, 1223, 1223,
2523      2808, 2808, 1223, 1223,  759,  759,  759, 2808, 2808, 2808,
2524       759, 1231, 1231, 1231, 1231, 2808, 2808, 1231, 1231, 1239,
2525      1239, 1239, 1239, 2808, 2808, 1239, 1239,  769,  769,  769,
2526       769, 2808,  769, 2808,  769, 1249, 1249, 1249, 1249, 2808,
2527      2808, 1249, 1249,  775,  775,  775, 2808, 2808, 2808,  775,
2528      1257, 1257, 1257, 1257, 2808, 2808, 1257, 1257, 1263, 1263,
2529      1263, 1263, 2808, 2808, 1263, 1263, 1270, 1270, 1270, 1270,
2530      2808, 2808, 1270, 1270, 1278, 1278, 1278, 1278, 2808, 2808,
2531      1278, 1278,  999,  999,  999,  999,  999,  999,  999,  999,
2532
2533       999, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464,
2534       602,  602,  602,  602, 2808,  602, 2808,  602, 1014, 1014,
2535      1014, 1014, 2808, 2808, 1014, 1014, 1045, 1045, 1045, 1045,
2536      2808, 2808, 1045, 1045,  632,  632,  632, 2808, 2808, 2808,
2537       632, 1055, 1055, 1055, 1055, 2808, 2808, 1055, 1055,  640,
2538       640,  640, 2808, 2808, 2808,  640, 1071, 1071, 1071, 1071,
2539      2808, 2808, 1071, 1071,  652,  652,  652,  652, 2808,  652,
2540      2808,  652, 1079, 1079, 1079, 1079, 2808, 2808, 1079, 1079,
2541       658,  658,  658,  658, 2808,  658, 2808,  658,  674,  674,
2542       674,  674, 2808,  674, 2808,  674, 1107, 1107, 1107, 1107,
2543
2544      2808, 2808, 1107, 1107,  681,  681,  681,  681, 2808,  681,
2545      2808,  681, 1116, 1116, 1116, 1116, 2808, 2808, 1116, 1116,
2546      1124, 1124, 1124, 1124, 2808, 2808, 1124, 1124, 1130, 1130,
2547      1130, 1130, 2808, 2808, 1130, 1130,  697,  697,  697, 2808,
2548      2808, 2808,  697,  706,  706,  706, 2808, 2808, 2808,  706,
2549      1168, 1168, 1168, 1168, 2808, 2808, 1168, 1168,  722,  722,
2550       722, 2808, 2808, 2808,  722,  732,  732,  732, 2808, 2808,
2551      2808,  732, 1191, 1191, 1191, 1191, 2808, 2808, 1191, 1191,
2552       737,  737,  737, 2808, 2808, 2808,  737,  745,  745,  745,
2553      2808, 2808, 2808,  745, 1211, 1211, 1211, 1211, 2808, 2808,
2554
2555      1211, 1211,  752,  752,  752, 2808, 2808, 2808,  752, 1223,
2556      1223, 1223, 1223, 2808, 2808, 1223, 1223,  759,  759,  759,
2557      2808, 2808, 2808,  759, 1231, 1231, 1231, 1231, 2808, 2808,
2558      1231, 1231, 1239, 1239, 1239, 1239, 2808, 2808, 1239, 1239,
2559      1249, 1249, 1249, 1249, 2808, 2808, 1249, 1249,  775,  775,
2560       775, 2808, 2808, 2808,  775, 1257, 1257, 1257, 1257, 2808,
2561      2808, 1257, 1257, 1263, 1263, 1263, 1263, 2808, 2808, 1263,
2562      1263, 1270, 1270, 1270, 1270, 2808, 2808, 1270, 1270,  999,
2563       999,  999,  999,  999,  999,  999,  999,  999, 1464, 1464,
2564      1464, 1464, 1464, 1464, 1464, 1464, 1464, 1014, 1014, 1014,
2565
2566      1014, 2808, 2808, 1014, 1014, 1045, 1045, 1045, 1045, 2808,
2567      2808, 1045, 1045,  632,  632,  632, 2808, 2808, 2808,  632,
2568       640,  640,  640, 2808, 2808, 2808,  640, 1071, 1071, 1071,
2569      1071, 2808, 2808, 1071, 1071, 1079, 1079, 1079, 1079, 2808,
2570      2808, 1079, 1079, 1107, 1107, 1107, 1107, 2808, 2808, 1107,
2571      1107, 1116, 1116, 1116, 1116, 2808, 2808, 1116, 1116, 1130,
2572      1130, 1130, 1130, 2808, 2808, 1130, 1130,  697,  697,  697,
2573      2808, 2808, 2808,  697,  706,  706,  706, 2808, 2808, 2808,
2574       706, 1168, 1168, 1168, 1168, 2808, 2808, 1168, 1168,  722,
2575       722,  722, 2808, 2808, 2808,  722,  732,  732,  732, 2808,
2576
2577      2808, 2808,  732, 1191, 1191, 1191, 1191, 2808, 2808, 1191,
2578      1191,  737,  737,  737, 2808, 2808, 2808,  737,  745,  745,
2579       745, 2808, 2808, 2808,  745,  752,  752,  752, 2808, 2808,
2580      2808,  752, 1223, 1223, 1223, 1223, 2808, 2808, 1223, 1223,
2581       759,  759,  759, 2808, 2808, 2808,  759, 1231, 1231, 1231,
2582      1231, 2808, 2808, 1231, 1231, 1239, 1239, 1239, 1239, 2808,
2583      2808, 1239, 1239, 1249, 1249, 1249, 1249, 2808, 2808, 1249,
2584      1249,  775,  775,  775,  775, 2808,  775, 2808,  775, 1257,
2585      1257, 1257, 1257, 2808, 2808, 1257, 1257, 1263, 1263, 1263,
2586      1263, 2808, 2808, 1263, 1263, 1270, 1270, 1270, 1270, 2808,
2587
2588      2808, 1270, 1270,  999,  999,  999,  999,  999,  999,  999,
2589       999,  999, 1464, 1464, 1464, 1464, 1464, 1464, 1464, 1464,
2590      1464, 1014, 1014, 1014, 1014, 2808, 2808, 1014, 1014, 1045,
2591      1045, 1045, 1045, 2808, 2808, 1045, 1045,  632,  632,  632,
2592      2808, 2808, 2808,  632,  640,  640,  640,  640, 2808,  640,
2593      2808,  640, 1079, 1079, 1079, 1079, 2808, 2808, 1079, 1079,
2594      1107, 1107, 1107, 1107, 2808, 2808, 1107, 1107, 1116, 1116,
2595      1116, 1116, 2808, 2808, 1116, 1116, 1130, 1130, 1130, 1130,
2596      2808, 2808, 1130, 1130,  697,  697,  697, 2808, 2808, 2808,
2597       697,  706,  706,  706, 2808, 2808, 2808,  706, 1168, 1168,
2598
2599      1168, 1168, 2808, 2808, 1168, 1168,  722,  722,  722, 2808,
2600      2808, 2808,  722,  732,  732,  732, 2808, 2808, 2808,  732,
2601      2474, 2474, 2474, 2474, 2474, 2474, 2474, 2474, 2474, 2475,
2602      2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2520, 2520,
2603      2520, 2520, 2520, 2520, 2520, 2520, 2520, 2523, 2523, 2523,
2604      2523, 2523, 2523, 2523, 2523, 2523, 2551, 2551, 2551, 2551,
2605      2551, 2551, 2551, 2551, 2551, 2553, 2553, 2553, 2553, 2553,
2606      2553, 2553, 2553, 2553,  237, 2808, 2808, 2808, 2808, 2808,
2607      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
2608      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
2609
2610      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
2611      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
2612      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
2613      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
2614      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808
2615     } ;
2616
2617 static yyconst flex_int16_t yy_chk[10249] =
2618     {   0,
2619         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2620         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2621         4,   10,  572,    5,    0,    9,    6,  352,   10,    7,
2622         8,    8,    8,  242,   11,   13,   13,   12,   14,   14,
2623        13,   13,  291,   14,   14,  243,    8,   17,   17,  242,
2624        13,   15,   15,   14,   15,  246,   15,   16,   16,  572,
2625        16,  243,   16,   18,   18,    0,   15,   19,   19,   19,
2626       425,  246,   16,   20,   20,   20,   23,   23,   23,   24,
2627        24,   24,  352,   19,   25,   25,   25,  343,  471,   20,
2628       425,   17,   23,  291,  343,   24,  240,  240,  240,  471,
2629
2630        25,  241,  241,  241,  245,  245,  245,   18,   21,   21,
2631        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2632        21,   21,   21,  316,   21,   21,   21,   21,   21,   26,
2633        26,   26,   27,   27,   27,   28,   28,   28,  275,   29,
2634        29,   29,   30,   30,   30,   26, 1473, 1474,   27,  264,
2635       269,   28,  275,   21,   21,   29, 1475,  285,   30,   31,
2636        31,   31,  266,  266,  266,  264,  269,  273,  273,  273,
2637       282,  282,  282,  285,  316,   31,   21,   22,   22,   22,
2638        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
2639        22,   22,  317,   22,   22,   22,   22,   22,   32,   32,
2640
2641        32,   33,   33,   33,   34,   34,   34,  264,   35,   35,
2642        35,   36,   36,   36,   32,  276,  277,   33,  345,  483,
2643        34,  318,   22,   22,   35,  276,  483,   36,   37,   37,
2644        37,   38,   38,   38,   39,   39,   39,   40,   40,   40,
2645        41,   41,   41,  317,   37,   22,  345,   38,  296, 1476,
2646        39, 1477,  307,   40,  276,  277,   41,   42,   42,   42,
2647       276,  289,  289,  289,  296,  278,  276,  277,  307,  277,
2648       276,  365,  318,   42,   43,   43,   43,   43,   43,   43,
2649        43,   43,   43,   43,   43,   43,   43,   43,   43,  636,
2650        43,   43,   43,   43,   43,   45,   45,   45,   46,   46,
2651
2652        46,   47,   47,   47,  278,   48,   48,   48,   49,   49,
2653        49,   45,  313, 1479,   46, 1481,  278,   47,  278,   43,
2654        43,   48,  365, 1281,   49,  636,  313,   43,   44,   44,
2655        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
2656        44,   44,   44, 1281,   44,   44,   44,   44,   44,   50,
2657        50,   50,   51,   51,   51,   52,   52,   52,  293,  293,
2658       293,   55,   55,  301,  323,   50,   55, 1483,   51, 1485,
2659       301,   52,  366,   44,   44,  417,   55, 1486,  417,  301,
2660       323,   44,   53,   53,   53,   53,   53,   53,   53,   53,
2661        53,   53,   53,   53,   53,   53,   53,  344,   53,   53,
2662
2663        53,   53,   53,  344, 1488,   55,   59,   59,   59,   60,
2664        60,   60,  344,   61,   61,   61,   56,   56,   62,   62,
2665        62,   56,   59,  366,  378,   60,  330,   53,   53,   61,
2666       430,   56,  932,  330,   62,   53,  379,  932,   53,  304,
2667       304,  304,  330,  430,   53,   54,   54,   54,   54,   54,
2668        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
2669        56,   54,   54,   54,   54,   54,   63,   63,   63,   64,
2670        64,   64,   65,   65,   65,  378,   66,   66,   66,   69,
2671        69,   69,   63,  335,  357,   64,  371,  379,   65,  311,
2672        54,   54,   66,  311, 1490,   69, 1492,  311,   54,  335,
2673
2674       357,   54,  371,  429,  256, 1493,  429,   54,   57,   57,
2675        57,   57,   57,   57,   57,   57,   57,   57,   57,   57,
2676        57,   57,   57,  474,   57,   57,   57,   57,   57,   70,
2677        70,   70,   73,   73,   73,   74,   74,   74,  475,   75,
2678        75,   75,   76,   76,   76,   70,  256,  384,   73,  395,
2679       390,   74,  256,   57,   57,   75,  256,  390,   76, 1494,
2680      1495,  256,   57,  384,   57,  395,  390,   57,  315,  315,
2681       315,  474,   57,   57,   58,   58,   58,   58,   58,   58,
2682        58,   58,   58,   58,   58,   58,   58,   58,   58,  475,
2683        58,   58,   58,   58,   58,   77,   77,   77,   78,   78,
2684
2685        78,   79,   79,   79,  552,   80,   80,   80,   81,   81,
2686        81,   77, 1463,  406,   78,  401,  422,   79,  552,   58,
2687        58,   80,  401, 1497,   81,  320,  320,  320,   58,  406,
2688        58,  401,  422,   58,  329,  329,  329, 1463,   58,   58,
2689        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
2690        67,   67,   67,   67,   67, 1506,   67,   67,   67,   67,
2691        67,   82,   82,   82,   83,   83,   83,   84,   84,   84,
2692       431,   85,   85,   85,   86,   86,   86,   82,  614, 1507,
2693        83,  431,  431,   84,  350,   67,   67,   85,  439,  434,
2694        86,  614,   67,  332,  332,  332,  434,   67,  340,  340,
2695
2696       340,  354,  354,  354,  439,  434,   67,   68,   68,   68,
2697        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
2698        68,   68,  350,   68,   68,   68,   68,   68,   87,   87,
2699        87,   88,   88,   88,   89,   89,   89,  350,   90,   90,
2700        90,   91,   91,   91,   87,  586,  595,   88,  497,  595,
2701        89,  347,   68,   68,   90,  497, 1509,   91, 1030,   68,
2702       586,  347,  349,  349,   68,  349,  364,  364,  364,  501,
2703      1030,  349,  349,   68,   71,   71,   71,   71,   71,   71,
2704        71,   71,   71,   71,   71,   71,   71,   71,   71,  347,
2705        71,   71,   71,   71,   71,   92,   92,   92,   93,   93,
2706
2707        93,   94,   94,   94, 1513,   95,   95,   95,   96,   96,
2708        96,   92,  608, 1041,   93,  608,  501,   94,  612,   71,
2709        71,   95,  612, 1517,   96, 1041,  348,  368,  368,  368,
2710        71,  377,  377,  377,  381,  381,  381, 1520,   71,   72,
2711        72,   72,   72,   72,   72,   72,   72,   72,   72,   72,
2712        72,   72,   72,   72,  348,   72,   72,   72,   72,   72,
2713        97,   97,   97,   98,   98,   98,   99,   99,   99,  348,
2714       100,  100,  100,  101,  101,  101,   97,  455,  466,   98,
2715       617, 1527,   99,  617,   72,   72,  100, 1528,  480,  101,
2716       102,  102,  102,  455,  466,   72,  389,  389,  389,  392,
2717
2718       392,  392,  620,   72,  480,  620,  102,  103,  103,  103,
2719       103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2720       103,  103, 1529,  103,  103,  103,  103,  103,  105,  105,
2721       105,  106,  106,  106,  107,  107,  107,  573,  108,  108,
2722       108,  400,  400,  400,  105, 1533,  493,  106,  450,  461,
2723       107, 1534,  103,  103,  108,  450,  461,  103,  403,  403,
2724       403,  415,  493,  103,  450,  461,  103,  414,  414,  414,
2725       486, 1535,  103,  104,  104,  104,  104,  104,  104,  104,
2726       104,  104,  104,  104,  104,  104,  104,  104,  573,  104,
2727       104,  104,  104,  104,  109,  109,  109,  110,  110,  110,
2728
2729       111,  111,  111, 1538,  112,  112,  112,  524, 1545,  415,
2730       109,  506,  415,  110,  517,  512,  111,  486,  104,  104,
2731       112,  486,  512,  104,  419,  419,  419,  506, 1557,  104,
2732       517,  512,  104,  433,  433,  433,  537, 1558,  104,  113,
2733       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2734       113,  113,  113,  113,  524,  113,  113,  113,  113,  113,
2735       115,  115,  115,  116,  116,  116,  117,  117,  117, 1074,
2736       118,  118,  118,  436,  436,  436,  115,  529,  542,  116,
2737      1566, 1074,  117,  537,  113,  113,  118, 1569, 1570,  113,
2738       449,  449,  449,  529,  542,  113,  452,  452,  452,  460,
2739
2740       460,  460,  463,  463,  463,  113,  114,  114,  114,  114,
2741       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
2742       114, 1574,  114,  114,  114,  114,  114,  119,  119,  119,
2743       120,  120,  120,  121,  121,  121, 1581,  122,  122,  122,
2744       473,  473,  473,  119,  557,  567,  120,  624, 1582,  121,
2745       624,  114,  114,  122, 1583, 1584,  114,  477,  477,  477,
2746       557,  567,  114,  485,  485,  485,  490,  490,  490,  499,
2747       499,  499,  114,  123,  123,  123,  123,  123,  123,  123,
2748       123,  123,  123,  123,  123,  123,  123,  123, 1587,  123,
2749       123,  123,  123,  123,  125,  125,  125,  126,  126,  126,
2750
2751       129,  129,  129, 1591,  130,  130,  130,  133,  133,  133,
2752       125,  699,  578,  126,  699, 1594,  129,  704,  123,  123,
2753       130,  704, 1596,  133,  503,  503,  503,  550,  578,  123,
2754       511,  511,  511,  123,  124,  124,  124,  124,  124,  124,
2755       124,  124,  124,  124,  124,  124,  124,  124,  124, 1598,
2756       124,  124,  124,  124,  124,  134,  134,  134,  135,  135,
2757       135,  136,  136,  136,  550,  137,  137,  137,  138,  138,
2758       138,  134, 1599,  797,  135, 1600,  613,  136,  550,  124,
2759       124,  137,  613, 1603,  138,  514,  514,  514,  613,  797,
2760       124,  522,  522,  522,  124,  127,  127,  127,  127,  127,
2761
2762       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2763      1605,  127,  127,  127,  127,  127,  139,  139,  139,  140,
2764       140,  140,  143,  143,  143, 1607,  144,  144,  144,  147,
2765       147,  147,  139, 1002, 1612,  140, 1618, 1002,  143, 1622,
2766       127,  127,  144, 1623, 1625,  147,  526,  526,  526,  535,
2767       535,  535,  539,  539,  539,  127,  549,  549,  549, 1634,
2768      1633,  127,  128,  128,  128,  128,  128,  128,  128,  128,
2769       128,  128,  128,  128,  128,  128,  128, 1633,  128,  128,
2770       128,  128,  128,  148,  148,  148,  151,  151,  151,  152,
2771       152,  152, 1637,  155,  155,  155,  156,  156,  156,  148,
2772
2773      1634, 1640,  151,  562,  584,  152, 1641,  128,  128,  155,
2774       562,  584,  156,  554,  554,  554,  561,  561,  561,  562,
2775       584, 1643,  128,  564,  564,  564, 1635, 1645,  128,  131,
2776       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
2777       131,  131,  131,  131, 1646,  131,  131,  131,  131,  131,
2778       157,  157,  157,  158,  158,  158,  159,  159,  159, 1635,
2779       160,  160,  160,  571,  571,  571,  157, 1648, 1649,  158,
2780       618, 1650,  159, 1642,  131,  131,  160,  131,  622,  131,
2781       575,  575,  575,  618,  622,  131,  583,  583,  583, 1642,
2782       622,  131, 1654, 1656,  131,  132,  132,  132,  132,  132,
2783
2784       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
2785      1659,  132,  132,  132,  132,  132,  161,  161,  161,  162,
2786       162,  162,  165,  165,  165, 1660,  166,  166,  166,  585,
2787       585,  585,  161, 1661, 1663,  162,  666, 1665,  165,  915,
2788       132,  132,  166,  132,  625,  132,  626,  650,  915,  666,
2789       625,  132,  626,  650, 1666,  915,  625,  132,  626,  650,
2790       132,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2791       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2792       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2793       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2794
2795       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2796       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2797       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
2798       141,  141,  141,  141,  145,  145,  145,  145,  145,  145,
2799       145,  145,  145,  145,  145,  145,  145,  145,  145, 1668,
2800       145,  145,  145,  145,  145,  167,  167,  167,  168,  168,
2801       168,  169,  169,  169, 1670,  170,  170,  170,  634,  634,
2802       634,  167, 1673, 1674,  168, 1676,  671,  169,  672,  145,
2803       145,  170,  145,  145,  145,  634,  594,  594,  594,  671,
2804       145,  672,  145,  800,  800,  800,  145,  800, 1677,  145,
2805
2806       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
2807       146,  146,  146,  146,  146, 1678,  146,  146,  146,  146,
2808       146,  171,  171,  171,  172,  172,  172,  175,  175,  175,
2809      1675,  176,  176,  176,  642,  642,  642,  171, 1675, 1680,
2810       172, 1686, 1690,  175,  594,  146,  146,  176,  146,  146,
2811       146,  642,  812,  812,  812, 1679,  146, 1706,  146, 1017,
2812      1017, 1017,  146, 1679, 1707,  146,  149,  149,  149,  149,
2813       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
2814       149, 1712,  149,  149,  149,  149,  149,  177,  177,  177,
2815       178,  178,  178,  179,  179,  179, 1713,  180,  180,  180,
2816
2817       659,  659,  659,  177, 1714, 1687,  178, 1718, 1719,  179,
2818      1725,  149,  149,  180, 1732,  812,  149,  659, 1037, 1037,
2819      1037, 1687,  149,  150,  150,  150,  150,  150,  150,  150,
2820       150,  150,  150,  150,  150,  150,  150,  150, 1733,  150,
2821       150,  150,  150,  150,  181,  181,  181,  182,  182,  182,
2822       185,  185,  185, 1734,  186,  186,  186,  676,  676,  676,
2823       181, 1522, 1738,  182, 1744, 1748,  185, 1522,  150,  150,
2824       186, 1522, 1751,  150,  676, 1522,  831,  831,  831,  150,
2825       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
2826       153,  153,  153,  153,  153, 1753,  153,  153,  153,  153,
2827
2828       153,  189,  189,  189,  190,  190,  190,  191,  191,  191,
2829      1755,  192,  192,  192,  193,  193,  193,  189, 1523, 1757,
2830       190, 1758, 1759,  191, 1523,  153,  153,  192, 1523,  153,
2831       193, 1762, 1523,  842,  842,  842,  153,  842,  153,  831,
2832       842, 1764,  870,  870,  870,  153,  154,  154,  154,  154,
2833       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
2834       154, 1769,  154,  154,  154,  154,  154,  194,  194,  194,
2835       195,  195,  195,  196,  196,  196, 1771,  199,  199,  199,
2836       200,  200,  200,  194, 1779, 1780,  195, 1781, 1783,  196,
2837      1797,  154,  154,  199, 1691,  154,  200, 1796, 1802,  850,
2838
2839       850,  850,  154,  850,  154,  870,  850,  876,  876,  876,
2840      1691,  154,  163,  163,  163,  163,  163,  163,  163,  163,
2841       163,  163,  163,  163,  163,  163,  163, 1803,  163,  163,
2842       163,  163,  163,  201,  201,  201,  202,  202,  202,  203,
2843       203,  203, 1796,  204,  204,  204,  205,  205,  205,  201,
2844      1794, 1692,  202, 1804, 1808,  203, 1794,  163,  163,  204,
2845      1809, 1810,  205,  163,  866,  866,  866, 1692,  866, 1815,
2846       876,  866, 1295, 1295, 1295, 1821, 1823,  163,  164,  164,
2847       164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
2848       164,  164,  164, 1824,  164,  164,  164,  164,  164,  206,
2849
2850       206,  206,  209,  209,  209,  210,  210,  210, 1827,  211,
2851       211,  211,  212,  212,  212,  206, 1830, 1834,  209, 1835,
2852      1836,  210, 1837,  164,  164,  211, 1838, 1839,  212,  164,
2853       883,  883,  883, 1840,  883, 1841, 1842,  883, 1843, 1297,
2854      1297, 1297, 1848,  164,  173,  173,  173,  173,  173,  173,
2855       173,  173,  173,  173,  173,  173,  173,  173,  173, 1849,
2856       173,  173,  173,  173,  173,  213,  213,  213,  214,  214,
2857       214,  215,  215,  215, 1795,  216,  216,  216,  219,  219,
2858       219,  213, 1867, 1868,  214, 1297, 1871,  215, 1869,  173,
2859       173,  216, 1872, 1873,  219,  173, 1869, 1877,  173,  890,
2860
2861       890,  890, 1883,  890, 1884, 1795,  890, 1885, 1890,  173,
2862       174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
2863       174,  174,  174,  174,  174, 1894,  174,  174,  174,  174,
2864       174,  220,  220,  220,  223,  223,  223,  224,  224,  224,
2865      1870,  225,  225,  225,  226,  226,  226,  220, 1870, 1895,
2866       223, 1896, 1898,  224, 1901,  174,  174,  225, 1902, 1905,
2867       226,  174, 1903, 1904,  174,  895,  895,  895, 1906,  895,
2868      1903, 1904,  895, 1909, 1916,  174,  183,  183,  183,  183,
2869       183,  183,  183,  183,  183,  183,  183,  183,  183,  183,
2870       183, 1918,  183,  183,  183,  183,  183,  227,  227,  227,
2871
2872       228,  228,  228,  229,  229,  229, 1932,  230,  230,  230,
2873       233,  233,  233,  227, 1945, 1936,  228, 1937, 1946,  229,
2874       341,  183,  183,  230, 1954, 1955,  233,  183, 1959, 1961,
2875       341, 1973,  183,  184,  184,  184,  184,  184,  184,  184,
2876       184,  184,  184,  184,  184,  184,  184,  184, 1974,  184,
2877       184,  184,  184,  184,  234,  234,  234, 1936,  341,  683,
2878       683,  683, 1975, 1937,  341, 1976, 1977,  341, 1978, 1979,
2879       234, 1980, 1981,  341,  341,  342,  683, 1982,  184,  184,
2880      1300, 1300, 1300, 1988,  184,  342, 1303, 1303, 1303,  184,
2881       187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
2882
2883       187,  187,  187,  187,  187, 1989,  187,  187,  187,  187,
2884       187, 1991, 2001,  342,  688,  688,  688,  700,  700,  700,
2885       709,  709,  709,  711,  711,  711,  342,  726,  726,  726,
2886       342,  688, 2002, 2003,  700,  187,  187,  709, 2004, 2005,
2887       711,  187, 2006, 2007,  726,  907,  907,  907, 2009,  907,
2888      2010, 2015,  907, 2016, 2018,  187,  188,  188,  188,  188,
2889       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
2890       188, 2019,  188,  188,  188,  188,  188,  734,  734,  734,
2891       739,  739,  739,  761,  761,  761,  788,  788,  788,  792,
2892       792,  792, 2020, 2021,  734, 2028, 2029,  739, 2030, 2031,
2893
2894       761,  188,  188,  788, 2032, 2033,  792,  188,  917,  917,
2895       917, 2034,  917, 2035, 2037,  917, 1312, 1312, 1312, 2058,
2896      2059,  188,  197,  197,  197,  197,  197,  197,  197,  197,
2897       197,  197,  197,  197,  197,  197,  197, 2063,  197,  197,
2898       197,  197,  197,  810,  810,  810,  811,  811,  811, 2054,
2899      2053,  838,  838,  838,  839,  839,  839,  841,  841,  841,
2900      2064,  810, 2065, 2068,  811, 2072, 2073,  197,  197,  838,
2901      2074, 2075,  839,  197,  841, 2076,  197,  920,  920,  920,
2902      2077,  920, 2053, 2078,  920, 2079, 2054,  197,  198,  198,
2903       198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
2904
2905       198,  198,  198,  811,  198,  198,  198,  198,  198,  845,
2906       845,  845, 2080,  839,  846,  846,  846, 2081,  849,  849,
2907       849,  851,  851,  851,  853,  853,  853,  845,  857,  857,
2908       857, 2083,  846,  198,  198,  849, 2084, 2085,  851,  198,
2909      2090,  853,  198,  935,  935,  935,  857,  935, 2091, 2092,
2910       935, 2094, 2098,  198,  207,  207,  207,  207,  207,  207,
2911       207,  207,  207,  207,  207,  207,  207,  207,  207, 2099,
2912       207,  207,  207,  207,  207, 2102, 2106,  846,  863,  863,
2913       863, 2107, 2109,  864,  864,  864, 2112, 2113,  858,  858,
2914       858,  865,  865,  865, 2114, 2115,  863, 2117, 2120,  207,
2915
2916       207,  864, 1337, 1337, 1337, 2122,  858,  207,  865,  207,
2917      2145,  207, 1348, 1348, 1348, 1478, 1478, 1478, 2142,  207,
2918       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
2919       208,  208,  208,  208,  208,  858,  208,  208,  208,  208,
2920       208,  868,  868,  868, 2146, 2147,  864,  882,  882,  882,
2921       886,  886,  886,  887,  887,  887,  892,  892,  892,  868,
2922      2142,  889,  889,  889,  882,  208,  208, 2148,  886, 2149,
2923      2155,  887, 2156,  208,  892,  208, 2157,  208,  889, 1480,
2924      1480, 1480, 1482, 1482, 1482,  208,  217,  217,  217,  217,
2925       217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
2926
2927       217, 2158,  217,  217,  217,  217,  217,  869,  869,  869,
2928      2159,  893,  893,  893, 2140,  897,  897,  897,  887,  894,
2929       894,  894,  898,  898,  898,  869,  906,  906,  906,  893,
2930      2160,  217,  217,  897, 2161, 2162,  894, 1349, 1349, 1349,
2931       898, 2163, 2164,  906,  869,  943,  943,  943, 2166,  943,
2932      2167, 2168,  943, 2140,  217,  218,  218,  218,  218,  218,
2933       218,  218,  218,  218,  218,  218,  218,  218,  218,  218,
2934      2141,  218,  218,  218,  218,  218,  893,  901,  901,  901,
2935      2172, 2178,  898, 1349,  902,  902,  902,  910,  910,  910,
2936       911,  911,  911, 2152, 2179,  901,  916,  916,  916, 2183,
2937
2938       218,  218,  902, 2152, 2186,  910, 2152, 2141,  911, 2194,
2939       948,  948,  948,  916,  948, 2195, 2196,  948, 1422, 1422,
2940      1422, 2220, 2222,  218,  221,  221,  221,  221,  221,  221,
2941       221,  221,  221,  221,  221,  221,  221,  221,  221, 2223,
2942       221,  221,  221,  221,  221,  919,  919,  919,  902, 2224,
2943       911,  921,  921,  921,  929,  929,  929,  930,  930,  930,
2944      2227, 2153,  919, 2204, 1422, 1484, 1484, 1484,  921,  221,
2945       221, 2153,  929, 2204, 2153,  930, 1487, 1487, 1487, 2204,
2946       221,  222,  222,  222,  222,  222,  222,  222,  222,  222,
2947       222,  222,  222,  222,  222,  222, 2228,  222,  222,  222,
2948
2949       222,  222,  934,  934,  934,  936,  936,  936, 2229, 2230,
2950       939,  939,  939, 2231,  930,  940,  940,  940, 2234,  934,
2951      2235, 2229,  936, 1496, 1496, 1496,  222,  222,  939, 1489,
2952      1489, 1489, 2236,  940, 1519, 1519, 1519,  222,  231,  231,
2953       231,  231,  231,  231,  231,  231,  231,  231,  231,  231,
2954       231,  231,  231, 2217,  231,  231,  231,  231,  231,  942,
2955       942,  942,  944,  944,  944, 2205,  940, 2237,  945,  945,
2956       945,  947,  947,  947, 2232, 2205,  942,  952,  952,  952,
2957       944, 2205, 2217,  231,  231, 2239,  945, 2232,  947,  968,
2958       968,  968, 1489,  968,  231,  952,  968,  991,  991,  991,
2959
2960      2240,  991, 2241, 2242,  991, 2218,  231,  232,  232,  232,
2961       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
2962       232,  232, 2245,  232,  232,  232,  232,  232,  945,  953,
2963       953,  953,  954,  954,  954, 2247, 2219,  955,  955,  955,
2964       956,  956,  956,  957,  957,  957, 2218,  953, 2255,  954,
2965      2256, 2257,  232,  232,  955, 2261, 2269,  956, 1530, 1530,
2966      1530,  957, 2271,  232,  958,  958,  958, 2279,  960,  960,
2967       960,  962,  962,  962, 2280,  232,  274, 2219, 2281,  961,
2968       961,  961,  958,  274,  953,  960, 2282, 2283,  962,  963,
2969       963,  963,  274,  274, 2284, 2290,  961, 2293,  956,  964,
2970
2971       964,  964,  967,  967,  967, 2296,  963,  965,  965,  965,
2972      1531, 1531, 1531, 2297,  969,  969,  969,  964, 2301,  967,
2973       274,  274,  274, 2302,  958,  965, 2303,  274,  274,  961,
2974       274,  274,  969, 2304,  274, 2305,  274,  274,  274,  970,
2975       970,  970, 2290,  961,  965, 2306, 2307,  963,  971,  971,
2976       971,  972,  972,  972,  973,  973,  973,  970,  974,  974,
2977       974,  975,  975,  975, 2291,  971, 2308, 2310,  972,  976,
2978       976,  976,  973,  977,  977,  977,  974, 2311,  975,  978,
2979       978,  978,  979,  979,  979, 2312,  976,  984,  984,  984,
2980       977,  985,  985,  985,  970, 2313, 2314,  978, 2315, 2291,
2981
2982       979, 2316,  988,  988,  988,  984,  989,  989,  989,  985,
2983       990,  990,  990,  992,  992,  992,  993,  993,  993,  976,
2984       988,  994,  994,  994,  989, 2317, 2319,  990,  974, 2325,
2985      2329,  992, 2330,  976,  993,  995,  995,  995,  994,  995,
2986      2331, 2332,  995,  997,  997,  997,  998,  998,  998, 1013,
2987      1013, 1013,  979, 2339,  985, 1014, 1014, 1014, 1043, 1043,
2988      1043,  997, 2342, 2349,  998, 2350, 2351, 1013, 2352,  989,
2989      1016, 1016, 1016, 1014, 2353, 1043,  993, 1044, 1044, 1044,
2990      1045, 1045, 1045, 1047, 1047, 1047, 2354, 2344, 1016, 1048,
2991      1048, 1048, 1049, 1049, 1049, 1044, 1049, 2344, 1045, 1049,
2992
2993      2365, 1047, 1052, 1052, 1052, 2366, 1048, 2367, 2345,  998,
2994      1054, 1054, 1054, 1055, 1055, 1055, 2347, 1016, 2345, 1052,
2995      1057, 1057, 1057, 1059, 1059, 1059, 2347, 1059, 1054, 2357,
2996      1059, 1055, 1047, 1062, 1062, 1062, 2368, 2369, 1057, 1063,
2997      1063, 1063, 2370, 1063, 2371, 2372, 1063, 1064, 1064, 1064,
2998      1062, 1065, 1065, 1065, 1066, 1066, 1066, 2375, 1066, 2376,
2999      2378, 1066, 1052, 2357, 1064, 2379, 2380, 1057, 1065, 1068,
3000      1068, 1068, 1070, 1070, 1070, 1071, 1071, 1071, 1073, 1073,
3001      1073, 1076, 1076, 1076, 2348, 2382, 1068, 1078, 1078, 1078,
3002      1070, 2390, 2391, 1071, 2348, 2392, 1073, 2394, 1076, 1079,
3003
3004      1079, 1079, 1081, 1081, 1081, 1078, 1082, 1082, 1082, 2400,
3005      1082, 2401, 2402, 1082, 1086, 1086, 1086, 1079, 2403, 2404,
3006      1081, 1087, 1087, 1087, 1089, 1089, 1089, 1101, 1101, 1101,
3007      2405, 1101, 1086, 2406, 1101, 2407, 2408, 1073, 2409, 1087,
3008      2411, 2412, 1089, 1105, 1105, 1105, 1106, 1106, 1106, 1081,
3009      1107, 1107, 1107, 1109, 1109, 1109, 1115, 1115, 1115, 2426,
3010      1105, 1116, 1116, 1116, 1106, 1111, 1111, 1111, 1107, 1111,
3011      2427, 1109, 1111, 2428, 1115, 1118, 1118, 1118, 2429, 1116,
3012      1119, 1119, 1119, 2417, 1119, 2430, 2431, 1119, 1122, 1122,
3013      1122, 2432, 2433, 1118, 1123, 1123, 1123, 1124, 1124, 1124,
3014
3015      1126, 1126, 1126, 2437, 2438, 1122, 1127, 1127, 1127, 1128,
3016      1128, 1128, 1123, 1109, 2439, 1124, 2440, 2441, 1126, 2442,
3017      1129, 1129, 1129, 1127, 2447, 2417, 1128, 1130, 1130, 1130,
3018      1132, 1132, 1132, 2448, 2449, 1118, 2452, 1128, 1129, 1135,
3019      1135, 1135, 1136, 1136, 1136, 1130, 1136, 2457, 1132, 1136,
3020      1141, 1141, 1141, 1142, 1142, 1142, 1135, 1144, 1144, 1144,
3021      1151, 1151, 1151, 2458, 1151, 2459, 1126, 1151, 1141, 2460,
3022      2461, 1142, 1154, 1154, 1154, 1144, 1155, 1155, 1155, 2462,
3023      1155, 2463, 2464, 1155, 1158, 1158, 1158, 2465, 2466, 1154,
3024      1159, 1159, 1159, 2467, 1159, 1132, 2468, 1159, 1167, 1167,
3025
3026      1167, 1158, 1168, 1168, 1168, 1170, 1170, 1170, 1175, 1175,
3027      1175, 2473, 1175, 2470, 2476, 1175, 1167, 1178, 1178, 1178,
3028      1168, 1144, 2473, 1170, 1179, 1179, 1179, 2479, 1179, 2480,
3029      2483, 1179, 2485, 2472, 1178, 1182, 1182, 1182, 1183, 1183,
3030      1183, 1185, 1185, 1185, 1187, 1187, 1187, 2472, 1187, 2486,
3031      2488, 1187, 2489, 1182, 2492, 2493, 1183, 2494, 2470, 1185,
3032      1190, 1190, 1190, 1191, 1191, 1191, 1193, 1193, 1193, 2498,
3033      2496, 1170, 1195, 1195, 1195, 2506, 1195, 2508, 1190, 1195,
3034      2510, 1191, 2496, 2512, 1193, 1201, 1201, 1201, 1202, 1202,
3035      1202, 2522, 1185, 1204, 1204, 1204, 1205, 1205, 1205, 2524,
3036
3037      1206, 1206, 1206, 1201, 1206, 2497, 1202, 1206, 1207, 1207,
3038      1207, 1204, 2526, 1205, 1208, 1208, 1208, 2497, 1208, 2519,
3039      2527, 1208, 1210, 1210, 1210, 1207, 1211, 1211, 1211, 1213,
3040      1213, 1213, 1193, 1215, 1215, 1215, 1219, 1219, 1219, 2503,
3041      1210, 1216, 1216, 1216, 1211, 1216, 2520, 1213, 1216, 2528,
3042      1215, 2503, 1204, 1219, 1220, 1220, 1220, 2529, 1220, 2519,
3043      2520, 1220, 1222, 1222, 1222, 1223, 1223, 1223, 1225, 1225,
3044      1225, 1227, 1227, 1227, 2523, 1227, 2521, 2521, 1227, 2538,
3045      1222, 2504, 2540, 1223, 2543, 2523, 1225, 1230, 1230, 1230,
3046      1231, 1231, 1231, 2504, 2537, 1213, 1233, 1233, 1233, 1234,
3047
3048      1234, 1234, 1235, 1235, 1235, 1230, 1235, 2539, 1231, 1235,
3049      1236, 1236, 1236, 2537, 1233, 2545, 1234, 1237, 1237, 1237,
3050      2551, 1237, 2552, 2553, 1237, 2555, 2539, 1236, 1238, 1238,
3051      1238, 1225, 1239, 1239, 1239, 1241, 1241, 1241, 2542, 1242,
3052      1242, 1242, 1246, 1246, 1246, 2556, 1238, 1243, 1243, 1243,
3053      1239, 1243, 2557, 1241, 1243, 1233, 1242, 2542, 2558, 1246,
3054      1247, 1247, 1247, 2565, 1247, 2566, 2567, 1247, 1248, 1248,
3055      1248, 1249, 1249, 1249, 1251, 1251, 1251, 1253, 1253, 1253,
3056      1256, 1256, 1256, 1257, 1257, 1257, 1248, 2568, 2569, 1249,
3057      2570, 2573, 1251, 2574, 1253, 2575, 1241, 2576, 1256, 2577,
3058
3059      2544, 1257, 1259, 1259, 1259, 1262, 1262, 1262, 1263, 1263,
3060      1263, 1265, 1265, 1265, 1266, 1266, 1266, 2578, 1266, 2544,
3061      1259, 1266, 2580, 1262, 2582, 2584, 1263, 2594, 2595, 1265,
3062      1269, 1269, 1269, 2592, 2596, 1251, 1270, 1270, 1270, 1272,
3063      1272, 1272, 1273, 1273, 1273, 2592, 1273, 2597, 1269, 1273,
3064      1277, 1277, 1277, 2598, 1270, 2599, 2603, 1272, 1278, 1278,
3065      1278, 2604, 1259, 2593, 1265, 1280, 1280, 1280, 1277, 1282,
3066      1282, 1282, 1289, 1289, 1289, 2593, 1278, 1315, 1315, 1315,
3067      1568, 1568, 1568, 1280, 1318, 1318, 1318, 1282, 1282, 2605,
3068      1289, 1317, 1317, 1317, 1315, 1316, 1316, 1316, 1272, 1316,
3069
3070      2606, 1318, 1316, 1319, 1319, 1319, 2607, 1319, 2608, 1317,
3071      1319, 1322, 1322, 1322, 1324, 1324, 1324, 2611, 1324, 2612,
3072      2613, 1324, 1327, 1327, 1327, 1280, 1328, 1328, 1328, 1322,
3073      1328, 2614, 2615, 1328, 1329, 1329, 1329, 1289, 1329, 1327,
3074      2616, 1329, 1333, 1333, 1333, 1334, 1334, 1334, 1317, 1334,
3075      2617, 2618, 1334, 1336, 1336, 1336, 1339, 1339, 1339, 1333,
3076      1322, 1340, 1340, 1340, 2619, 1340, 2620, 2621, 1340, 2622,
3077      2623, 1336, 2609, 1339, 1341, 1341, 1341, 1342, 1342, 1342,
3078      1344, 1344, 1344, 1357, 1357, 1357, 2624, 1358, 1358, 1358,
3079      2625, 1341, 1359, 1359, 1359, 1342, 1359, 2609, 1344, 1359,
3080
3081      1357, 2626, 2627, 1336, 1358, 1360, 1360, 1360, 2628, 1363,
3082      1363, 1363, 1364, 1364, 1364, 1365, 1365, 1365, 2632, 1365,
3083      2629, 2633, 1365, 1360, 2634, 2635, 1342, 1363, 2636, 1364,
3084      1366, 1366, 1366, 1367, 1367, 1367, 1368, 1368, 1368, 2629,
3085      1368, 2637, 2638, 1368, 1370, 1370, 1370, 2639, 1366, 2640,
3086      1367, 2641, 1373, 1373, 1373, 2642, 1374, 1374, 1374, 2643,
3087      1374, 2644, 1370, 1374, 1375, 1375, 1375, 2645, 1360, 1373,
3088      2646, 2647, 1363, 1376, 1376, 1376, 1377, 1377, 1377, 2649,
3089      2648, 1375, 1381, 1381, 1381, 1384, 1384, 1384, 2650, 1366,
3090      1376, 1385, 1385, 1385, 1377, 1385, 2651, 2652, 1385, 1381,
3091
3092      2648, 2653, 1384, 2654, 1370, 1386, 1386, 1386, 2655, 1386,
3093      2656, 2657, 1386, 1389, 1389, 1389, 1396, 1396, 1396, 1376,
3094      1398, 1398, 1398, 2658, 1401, 1401, 1401, 2659, 1401, 2660,
3095      1389, 1401, 2661, 2662, 1396, 2663, 2664, 1398, 1404, 1404,
3096      1404, 1377, 1406, 1406, 1406, 1408, 1408, 1408, 1412, 1412,
3097      1412, 1413, 1413, 1413, 2666, 1404, 2665, 1414, 1414, 1414,
3098      1406, 1414, 2665, 1408, 1414, 1412, 1417, 1417, 1417, 1413,
3099      1417, 2667, 2668, 1417, 1421, 1421, 1421, 1423, 1423, 1423,
3100      1396, 1423, 2669, 2670, 1423, 2671, 1428, 1428, 1428, 2673,
3101      1428, 2674, 1421, 1428, 1412, 1432, 1432, 1432, 1434, 1434,
3102
3103      1434, 2676, 1435, 1435, 1435, 1406, 1435, 1413, 2677, 1435,
3104      1408, 2679, 2680, 1432, 2683, 2684, 1434, 1438, 1438, 1438,
3105      2682, 1438, 2685, 2686, 1438, 1441, 1441, 1441, 1442, 1442,
3106      1442, 2688, 1442, 2690, 2682, 1442, 1452, 1452, 1452, 1421,
3107      1447, 1447, 1447, 1441, 1447, 2692, 2694, 1447, 1450, 1450,
3108      1450, 2696, 2697, 1452, 1434, 1432, 1453, 1453, 1453, 2698,
3109      1453, 2699, 2700, 1453, 2701, 2702, 1450, 1456, 1456, 1456,
3110      2703, 2705, 1441, 1458, 1458, 1458, 1459, 1459, 1459, 1460,
3111      1460, 1460, 1461, 1461, 1461, 1456, 1462, 1462, 1462, 2707,
3112      1458, 1472, 1472, 1472, 1459, 1450, 2709, 1460, 2710, 1461,
3113
3114      1465, 1465, 1465, 2711, 1462, 2712, 1491, 1491, 1491, 1472,
3115      1498, 1498, 1498, 1499, 1499, 1499, 1456, 1499, 1465, 2713,
3116      1499, 1502, 1502, 1502, 2714, 1503, 1503, 1503, 2739, 1503,
3117      1471, 1460, 1503, 2733, 2721, 1508, 1508, 1508, 2722, 1502,
3118      2753, 2725, 1459, 1472, 1518, 1518, 1518, 1462, 1524, 1524,
3119      1524, 1465, 1491, 1508, 2735, 2713, 1498, 1510, 1510, 1510,
3120      2714, 1510, 1518, 2739, 1510, 1524, 2729, 1465, 1514, 1514,
3121      1514, 2723, 1514, 2724, 2729, 1514, 1521, 1521, 1521, 2733,
3122      1521, 2721, 2753, 1521, 2725, 2722, 1508, 1502, 1525, 1525,
3123      1525, 2735, 1525, 1470, 2730, 1525, 1526, 1526, 1526, 1532,
3124
3125      1532, 1532, 2730, 2726, 1518, 1536, 1536, 1536, 1537, 1537,
3126      1537, 1539, 1539, 1539, 1526, 1540, 1540, 1540, 2723, 1540,
3127      2724, 2731, 1540, 1541, 1541, 1541, 2740, 1541, 1539, 2731,
3128      1541, 1544, 1544, 1544, 1546, 1546, 1546, 1547, 1547, 1547,
3129      2727, 1548, 1548, 1548, 2727, 1548, 2726, 1526, 1548, 1544,
3130      2734, 1546, 1551, 1551, 1551, 1547, 1552, 1552, 1552, 2732,
3131      1552, 2740, 1532, 1552, 1555, 1555, 1555, 2732, 1536, 2736,
3132      1551, 1537, 1556, 1556, 1556, 1559, 1559, 1559, 1544, 1559,
3133      2754, 1555, 1559, 1467, 1547, 1562, 1562, 1562, 2737, 2743,
3134      1556, 1563, 1563, 1563, 2738, 1563, 2734, 2741, 1563, 1564,
3135
3136      1564, 1564, 1562, 1565, 1565, 1565, 2736, 1565, 2745, 2742,
3137      1565, 1567, 1567, 1567, 2728, 2744, 1564, 1551, 2728, 1571,
3138      1571, 1571, 2754, 1572, 1572, 1572, 2743, 1572, 2737, 1567,
3139      1572, 1573, 1573, 1573, 2738, 1556, 1571, 1575, 1575, 1575,
3140      2745, 1575, 2741, 2749, 1575, 1578, 1578, 1578, 1573, 1579,
3141      1579, 1579, 2744, 1579, 2742, 1464, 1579, 1580, 1580, 1580,
3142      1457, 2750, 1578, 1585, 1585, 1585, 1586, 1586, 1586, 1588,
3143      1588, 1588, 2747, 2746, 1580, 1589, 1589, 1589, 2749, 1589,
3144      1585, 2747, 1589, 2751, 1586, 2755, 1588, 1590, 1590, 1590,
3145      1592, 1592, 1592, 1593, 1593, 1593, 2750, 1593, 2765, 1455,
3146
3147      1593, 1595, 1595, 1595, 1590, 2746, 2756, 1592, 1597, 1597,
3148      1597, 1601, 1601, 1601, 1602, 1602, 1602, 2751, 1602, 1595,
3149      2748, 1602, 1604, 1604, 1604, 2757, 1597, 2771, 1601, 2748,
3150      2755, 1586, 1606, 1606, 1606, 1608, 1608, 1608, 1454, 2765,
3151      1604, 1609, 1609, 1609, 1610, 1610, 1610, 1611, 1611, 1611,
3152      1606, 2756, 1608, 1613, 1613, 1613, 2771, 2761, 1609, 1597,
3153      2757, 1610, 1614, 1614, 1614, 1611, 2761, 1615, 1615, 1615,
3154      2762, 1613, 1616, 1616, 1616, 1617, 1617, 1617, 2752, 2762,
3155      1614, 2763, 1451, 1606, 1615, 1624, 1624, 1624, 2775, 1616,
3156      1619, 1619, 1619, 1617, 1619, 2758, 2764, 1619, 2769, 1613,
3157
3158      1626, 1626, 1626, 1624, 1627, 1627, 1627, 1610, 1627, 2772,
3159      1446, 1627, 2752, 1611, 1628, 1628, 1628, 1626, 2763, 1629,
3160      1629, 1629, 2775, 1630, 1630, 1630, 1614, 1631, 1631, 1631,
3161      2758, 1631, 1628, 2764, 1631, 2769, 1624, 1629, 2772, 1617,
3162      1630, 1632, 1632, 1632, 1638, 1638, 1638, 1639, 1639, 1639,
3163      1644, 1644, 1644, 1647, 1647, 1647, 1651, 1651, 1651, 1632,
3164      2766, 1638, 1652, 1652, 1652, 1639, 1653, 1653, 1653, 1655,
3165      1655, 1655, 1628, 2759, 1629, 1657, 1657, 1657, 1658, 1658,
3166      1658, 1662, 1662, 1662, 1664, 1664, 1664, 1667, 1667, 1667,
3167      2803, 1669, 1669, 1669, 1671, 1671, 1671, 1672, 1672, 1672,
3168
3169      2760, 2766, 1664, 1445, 2803, 1667, 2759, 1639, 1669, 1681,
3170      1681, 1681, 1671, 1681, 1672, 1433, 1681, 1684, 1684, 1684,
3171      1685, 1685, 1685, 1688, 1688, 1688, 1689, 1689, 1689, 1693,
3172      1693, 1693, 2770, 2760, 1664, 1684, 2779, 1685, 1694, 1694,
3173      1694, 2767, 1694, 2768, 2779, 1694, 1693, 1697, 1697, 1697,
3174      2773, 2777, 1671, 1698, 1698, 1698, 1699, 1699, 1699, 2773,
3175      1700, 1700, 1700, 1684, 1700, 1697, 2781, 1700, 1431, 2770,
3176      1698, 2778, 2787, 1699, 1701, 1701, 1701, 1702, 1702, 1702,
3177      1703, 1703, 1703, 1704, 1704, 1704, 2767, 1704, 2768, 2774,
3178      1704, 1427, 1701, 1426, 2783, 1702, 2777, 1703, 2774, 2776,
3179
3180      1697, 1705, 1705, 1705, 1708, 1708, 1708, 2787, 1708, 2782,
3181      2780, 1708, 2781, 1711, 1711, 1711, 2778, 1711, 2780, 1705,
3182      1711, 1715, 1715, 1715, 1717, 1717, 1717, 1701, 1720, 1720,
3183      1720, 2783, 1720, 2776, 2789, 1720, 1723, 1723, 1723, 1715,
3184      1724, 1724, 1724, 2790, 1724, 2784, 2788, 1724, 1705, 1420,
3185      1726, 1726, 1726, 1723, 1726, 2782, 2785, 1726, 1729, 1729,
3186      1729, 1730, 1730, 1730, 2786, 1730, 1411, 1410, 1730, 1731,
3187      1731, 1731, 1735, 1735, 1735, 1729, 1736, 1736, 1736, 2789,
3188      1736, 2788, 2784, 1736, 2793, 1409, 1731, 2794, 2790, 1735,
3189      1737, 1737, 1737, 1739, 1739, 1739, 2785, 1739, 2791, 2792,
3190
3191      1739, 1742, 1742, 1742, 2786, 1743, 1743, 1743, 1737, 1743,
3192      2799, 2797, 1743, 1745, 1745, 1745, 2793, 1745, 1742, 2794,
3193      1745, 1749, 1749, 1749, 1752, 1752, 1752, 1754, 1754, 1754,
3194      1756, 1756, 1756, 2798, 1756, 2791, 2792, 1756, 2800, 1749,
3195      2801, 1737, 1752, 2797, 1754, 1760, 1760, 1760, 1763, 1763,
3196      1763, 1765, 1765, 1765, 1766, 1766, 1766, 2799, 1766, 1407,
3197      1405, 1766, 1400, 1760, 1399, 2798, 1763, 1397, 1765, 1767,
3198      1767, 1767, 2801, 1754, 1768, 1768, 1768, 1395, 1768, 1394,
3199      1393, 1768, 1770, 1770, 1770, 2800, 1767, 1752, 1772, 1772,
3200      1772, 1773, 1773, 1773, 1774, 1774, 1774, 1775, 1775, 1775,
3201
3202      1770, 1775, 1392, 1391, 1775, 1390, 1772, 2802, 1383, 1773,
3203      1382, 1774, 1776, 1776, 1776, 1777, 1777, 1777, 1380, 1777,
3204      1379, 2795, 1777, 1778, 1778, 1778, 1782, 1782, 1782, 1776,
3205      2795, 1784, 1784, 1784, 2796, 1784, 1378, 1772, 1784, 2802,
3206      1372, 1778, 1371, 2796, 1782, 1369, 1362, 1770, 1787, 1787,
3207      1787, 1788, 1788, 1788, 2804, 1773, 1789, 1789, 1789, 1361,
3208      1789, 1356, 1355, 1789, 1354, 2804, 1787, 1353, 1352, 1788,
3209      1792, 1792, 1792, 1351, 1798, 1798, 1798, 1799, 1799, 1799,
3210      1350, 1799, 1347, 1346, 1799, 1343, 1338, 1778, 1792, 1335,
3211      1782, 1798, 1800, 1800, 1800, 1801, 1801, 1801, 1332, 1787,
3212
3213      1805, 1805, 1805, 1323, 1788, 1806, 1806, 1806, 1321, 1320,
3214      1800, 1807, 1807, 1807, 1811, 1811, 1811, 1812, 1812, 1812,
3215      1813, 1813, 1813, 1814, 1814, 1814, 1816, 1816, 1816, 1817,
3216      1817, 1817, 1818, 1818, 1818, 1819, 1819, 1819, 1820, 1820,
3217      1820, 1822, 1822, 1822, 1825, 1825, 1825, 1828, 1828, 1828,
3218      1829, 1829, 1829, 1314, 1829, 1800, 1313, 1829, 1311, 1822,
3219      1310, 1309, 1825, 1308, 1828, 1831, 1831, 1831, 1307, 1814,
3220      1832, 1832, 1832, 1833, 1833, 1833, 1306, 1833, 1305, 1304,
3221      1833, 1302, 1301, 1831, 1844, 1844, 1844, 1832, 1845, 1845,
3222      1845, 1299, 1822, 1846, 1846, 1846, 1298, 1846, 1296, 1294,
3223
3224      1846, 1293, 1844, 1292, 1291, 1845, 1847, 1847, 1847, 1850,
3225      1850, 1850, 1851, 1851, 1851, 1852, 1852, 1852, 1853, 1853,
3226      1853, 1290, 1853, 1288, 1287, 1853, 1854, 1854, 1854, 1855,
3227      1855, 1855, 1852, 1844, 1856, 1856, 1856, 1286, 1856, 1285,
3228      1276, 1856, 1261, 1260, 1854, 1255, 1855, 1857, 1857, 1857,
3229      1254, 1857, 1252, 1245, 1857, 1860, 1860, 1860, 1851, 1244,
3230      1861, 1861, 1861, 1863, 1863, 1863, 1226, 1863, 1221, 1218,
3231      1863, 1217, 1214, 1860, 1866, 1866, 1866, 1854, 1861, 1874,
3232      1874, 1874, 1209, 1874, 1200, 1199, 1874, 1878, 1878, 1878,
3233      1198, 1878, 1866, 1194, 1878, 1881, 1881, 1881, 1882, 1882,
3234
3235      1882, 1186, 1882, 1181, 1180, 1882, 1860, 1886, 1886, 1886,
3236      1174, 1886, 1881, 1173, 1886, 1889, 1889, 1889, 1891, 1891,
3237      1891, 1172, 1891, 1171, 1166, 1891, 1165, 1866, 1897, 1897,
3238      1897, 1164, 1163, 1889, 1899, 1899, 1899, 1900, 1900, 1900,
3239      1162, 1900, 1161, 1160, 1900, 1150, 1897, 1907, 1907, 1907,
3240      1149, 1899, 1910, 1910, 1910, 1148, 1910, 1147, 1146, 1910,
3241      1913, 1913, 1913, 1145, 1913, 1907, 1140, 1913, 1917, 1917,
3242      1917, 1919, 1919, 1919, 1920, 1920, 1920, 1139, 1889, 1134,
3243      1921, 1921, 1921, 1133, 1921, 1114, 1917, 1921, 1110, 1919,
3244      1104, 1100, 1920, 1924, 1924, 1924, 1099, 1924, 1098, 1097,
3245
3246      1924, 1096, 1927, 1927, 1927, 1095, 1928, 1928, 1928, 1094,
3247      1920, 1929, 1929, 1929, 1930, 1930, 1930, 1093, 1092, 1917,
3248      1927, 1091, 1927, 1928, 1931, 1931, 1931, 1090, 1929, 1085,
3249      1077, 1930, 1933, 1933, 1933, 1075, 1919, 1934, 1934, 1934,
3250      1069, 1067, 1931, 1935, 1935, 1935, 1938, 1938, 1938, 1058,
3251      1933, 1053, 1939, 1939, 1939, 1934, 1939, 1042, 1040, 1939,
3252      1039, 1935, 1929, 1942, 1942, 1942, 1943, 1943, 1943, 1944,
3253      1944, 1944, 1930, 1947, 1947, 1947, 1948, 1948, 1948, 1038,
3254      1036, 1942, 1949, 1949, 1949, 1950, 1950, 1950, 1931, 1035,
3255      1034, 1933, 1951, 1951, 1951, 1952, 1952, 1952, 1953, 1953,
3256
3257      1953, 1956, 1956, 1956, 1957, 1957, 1957, 1958, 1958, 1958,
3258      1960, 1960, 1960, 1963, 1963, 1963, 1964, 1964, 1964, 1033,
3259      1964, 1942, 1032, 1964, 1967, 1967, 1967, 1031, 1960, 1029,
3260      1963, 1968, 1968, 1968, 1028, 1970, 1970, 1970, 1027, 1970,
3261      1026, 1967, 1970, 1983, 1983, 1983, 1984, 1984, 1984, 1968,
3262      1984, 1025, 1024, 1984, 1987, 1987, 1987, 1990, 1990, 1990,
3263      1023, 1983, 1992, 1992, 1992, 1022, 1992, 1021, 1020, 1992,
3264      1995, 1995, 1995, 1996, 1996, 1996, 1019, 1996, 1018, 1012,
3265      1996, 1999, 1999, 1999, 2000, 2000, 2000, 1011, 1995, 1967,
3266      2008, 2008, 2008, 2011, 2011, 2011, 1010, 2011, 1007, 1999,
3267
3268      2011, 1006, 2000, 1983, 2014, 2014, 2014, 2017, 2017, 2017,
3269      2022, 2022, 2022, 2024, 2024, 2024, 1995, 2036, 2036, 2036,
3270      1005, 2014, 2025, 2025, 2025, 2017, 2025, 1003, 2022, 2025,
3271      2024, 2038, 2038, 2038,  999, 2000, 2039, 2039, 2039, 2040,
3272      2040, 2040, 2041, 2041, 2041, 2042, 2042, 2042,  996, 2038,
3273      2043, 2043, 2043, 2039, 2044, 2044, 2044, 2040, 2044, 2024,
3274      2041, 2044,  987, 2042, 2045, 2045, 2045, 2043, 2046, 2046,
3275      2046, 2047, 2047, 2047, 2048, 2048, 2048, 2049, 2049, 2049,
3276       986, 2045, 2042,  983,  982, 2046, 2050, 2050, 2050, 2047,
3277      2052, 2052, 2052,  981,  980, 2049,  966,  959, 2040, 2055,
3278
3279      2055, 2055, 2041,  951, 2050, 2056, 2056, 2056, 2052, 2057,
3280      2057, 2057, 2060, 2060, 2060, 2061, 2061, 2061,  950, 2046,
3281      2062, 2062, 2062, 2056,  949, 2066, 2066, 2066, 2069, 2069,
3282      2069, 2070, 2070, 2070,  946, 2070,  941,  938, 2070, 2071,
3283      2071, 2071, 2049, 2066,  937, 2069, 2082, 2082, 2082,  933,
3284       931, 2052, 2086, 2086, 2086,  928, 2071, 2087, 2087, 2087,
3285      2089, 2089, 2089,  927, 2082, 2096, 2096, 2096,  926,  925,
3286      2086, 2097, 2097, 2097,  924, 2087,  923,  922, 2089, 2100,
3287      2100, 2100, 2096, 2101, 2101, 2101,  918, 2101,  914,  913,
3288      2101, 2103, 2103, 2103, 2071,  912, 2100, 2104, 2104, 2104,
3289
3290       909, 2108, 2108, 2108,  908, 2082,  905,  904, 2103, 2110,
3291      2110, 2110, 2111, 2111, 2111, 2104, 2111, 2086, 2108, 2111,
3292      2119, 2119, 2119, 2121, 2121, 2121, 2110, 2123, 2123, 2123,
3293      2125, 2125, 2125,  903, 2126, 2126, 2126, 2119, 2126,  900,
3294       899, 2126, 2127, 2127, 2127, 2123,  896, 2125, 2128, 2128,
3295      2128,  891, 2129, 2129, 2129, 2130, 2130, 2130,  888, 2130,
3296      2127,  885, 2130, 2133, 2133, 2133, 2128, 2134, 2134, 2134,
3297      2129, 2134,  884,  881, 2134, 2135, 2135, 2135,  880,  879,
3298      2133, 2136, 2136, 2136, 2138, 2138, 2138, 2139, 2139, 2139,
3299       878,  877, 2135, 2143, 2143, 2143, 2150, 2150, 2150, 2136,
3300
3301      2151, 2151, 2151,  875, 2151, 2139,  874, 2151, 2154, 2154,
3302      2154, 2143,  873, 2150, 2128, 2129, 2165, 2165, 2165, 2169,
3303      2169, 2169, 2170, 2170, 2170, 2154, 2173, 2173, 2173, 2176,
3304      2176, 2176,  872,  871, 2165,  867,  862, 2169,  861,  860,
3305      2170,  859,  856, 2173,  855,  854, 2176, 2177, 2177, 2177,
3306       852, 2177,  848,  844, 2177, 2180, 2180, 2180,  843, 2180,
3307       840,  837, 2180, 2184, 2184, 2184,  836,  835, 2154, 2185,
3308      2185, 2185,  834, 2185,  833, 2165, 2185, 2187, 2187, 2187,
3309      2184, 2188, 2188, 2188, 2189, 2189, 2189,  832, 2189, 2169,
3310       830, 2189,  829,  828, 2187, 2190, 2190, 2190, 2188, 2191,
3311
3312      2191, 2191,  827, 2191,  826,  825, 2191, 2199, 2199, 2199,
3313       824,  823, 2190, 2200, 2200, 2200,  822, 2200,  821,  820,
3314      2200, 2201, 2201, 2201, 2199, 2202, 2202, 2202, 2203, 2203,
3315      2203,  819, 2203,  818,  817, 2203,  816,  815, 2201, 2206,
3316      2206, 2206, 2202, 2208, 2208, 2208, 2209, 2209, 2209, 2210,
3317      2210, 2210,  814, 2210,  813,  809, 2210, 2206, 2213, 2213,
3318      2213, 2208,  808,  806, 2209, 2214, 2214, 2214,  805, 2214,
3319       804,  803, 2214,  802,  798, 2213, 2215, 2215, 2215, 2221,
3320      2221, 2221, 2225, 2225, 2225, 2226, 2226, 2226,  796, 2226,
3321       795,  794, 2226,  793, 2215, 2233, 2233, 2233,  789, 2225,
3322
3323      2244, 2244, 2244, 2246, 2246, 2246, 2209,  785, 2208, 2248,
3324      2248, 2248, 2233, 2249, 2249, 2249,  784,  781, 2244, 2250,
3325      2250, 2250, 2251, 2251, 2251,  780, 2251, 2248,  779, 2251,
3326      2249, 2252, 2252, 2252,  778, 2252, 2250,  777, 2252, 2258,
3327      2258, 2258,  776, 2258,  773,  772, 2258, 2262, 2262, 2262,
3328       771, 2244,  770,  767, 2233,  766, 2263, 2263, 2263, 2249,
3329      2263,  765,  762, 2263, 2262, 2264, 2264, 2264,  760, 2264,
3330      2248,  757, 2264, 2267, 2267, 2267, 2268, 2268, 2268,  756,
3331      2268,  755,  754, 2268, 2270, 2270, 2270, 2272, 2272, 2272,
3332      2267, 2272,  753,  750, 2272, 2275, 2275, 2275, 2276, 2276,
3333
3334      2276, 2270, 2276,  749,  748, 2276, 2277, 2277, 2277, 2278,
3335      2278, 2278, 2275, 2278,  747,  746, 2278, 2285, 2285, 2285,
3336      2286, 2286, 2286, 2277, 2287, 2287, 2287,  743, 2287,  742,
3337       741, 2287, 2292, 2292, 2292, 2285,  740,  738, 2286, 2294,
3338      2294, 2294, 2295, 2295, 2295, 2309, 2309, 2309,  735, 2292,
3339      2292, 2298, 2298, 2298,  733, 2298,  730,  729, 2298, 2318,
3340      2318, 2318, 2309, 2320, 2320, 2320,  728,  727, 2285, 2321,
3341      2321, 2321, 2322, 2322, 2322,  725,  724, 2318, 2323, 2323,
3342      2323, 2324, 2324, 2324,  723, 2324, 2286,  720, 2324,  719,
3343      2322,  718, 2326, 2326, 2326, 2323, 2326,  717,  716, 2326,
3344
3345      2333, 2333, 2333,  715, 2333,  714,  713, 2333, 2318, 2336,
3346      2336, 2336,  712, 2336,  710,  708, 2336, 2340, 2340, 2340,
3347      2341, 2341, 2341, 2322, 2341,  707,  703, 2341, 2343, 2343,
3348      2343,  702, 2343,  701, 2340, 2343, 2346, 2346, 2346,  698,
3349      2346,  695,  694, 2346, 2355, 2355, 2355, 2356, 2356, 2356,
3350      2358, 2358, 2358, 2359, 2359, 2359, 2360, 2360, 2360,  693,
3351      2360,  690, 2355, 2360,  689, 2356,  685, 2358, 2358,  684,
3352      2359, 2359,  682,  679, 2360, 2361, 2361, 2361, 2362, 2362,
3353      2362, 2363, 2363, 2363, 2364, 2364, 2364, 2373, 2373, 2373,
3354      2374, 2374, 2374,  678, 2374,  677,  675, 2374, 2383, 2383,
3355
3356      2383, 2384, 2384, 2384, 2373, 2385, 2385, 2385, 2386, 2386,
3357      2386,  670, 2356, 2387, 2387, 2387, 2383, 2387,  669,  668,
3358      2387, 2393, 2393, 2393,  667,  665, 2386, 2395, 2395, 2395,
3359      2396, 2396, 2396,  664, 2396,  663,  662, 2396, 2393, 2399,
3360      2399, 2399,  661,  660, 2395,  656, 2414, 2414, 2414, 2416,
3361      2416, 2416, 2418, 2418, 2418,  655, 2399,  654, 2419, 2419,
3362      2419,  653, 2419, 2383, 2414, 2419,  649, 2416,  648, 2418,
3363      2418, 2420, 2420, 2420,  647, 2420, 2419,  646, 2420, 2423,
3364      2423, 2423, 2424, 2424, 2424, 2425, 2425, 2425,  645, 2420,
3365      2434, 2434, 2434,  644, 2434,  643,  641, 2434,  638,  637,
3366
3367      2416, 2421, 2421, 2421, 2421, 2421, 2421, 2421, 2421, 2421,
3368       635,  633, 2421, 2443, 2443, 2443,  630, 2421, 2421, 2421,
3369      2421, 2421, 2444, 2444, 2444, 2445, 2445, 2445, 2450, 2450,
3370      2450, 2443, 2451, 2451, 2451,  629, 2451,  623,  621, 2451,
3371      2453, 2453, 2453, 2445,  619, 2450, 2421, 2421, 2422, 2422,
3372      2422, 2422, 2422, 2422, 2422, 2422, 2422, 2453,  616, 2422,
3373      2455, 2455, 2455,  615, 2422, 2422, 2422, 2422, 2422, 2454,
3374      2454, 2454,  611, 2454,  610,  609, 2454, 2455, 2456, 2456,
3375      2456,  607, 2456,  606,  605, 2456, 2469, 2469, 2469, 2490,
3376      2490, 2490,  604, 2422, 2422, 2471, 2471, 2471,  603, 2471,
3377
3378       600,  599, 2471,  598, 2469,  597,  596, 2490, 2517, 2517,
3379      2517,  590,  589, 2471, 2474, 2474, 2474, 2474, 2474, 2474,
3380      2474, 2474, 2474,  587,  581, 2474, 2517,  580,  576,  569,
3381      2474, 2474, 2474, 2474, 2474, 2495, 2495, 2495,  565, 2495,
3382       559,  555, 2495, 2499, 2499, 2499,  551, 2499,  547,  546,
3383      2499, 2502, 2502, 2502,  545, 2502,  544,  540, 2502, 2474,
3384      2474, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
3385       536,  533, 2475, 2525, 2525, 2525,  532, 2475, 2475, 2475,
3386      2475, 2475, 2534, 2534, 2534, 2535, 2535, 2535, 2536, 2536,
3387      2536, 2525, 2525, 2541, 2541, 2541, 2550, 2550, 2550, 2534,
3388
3389       531,  527, 2535,  523,  520, 2536, 2475, 2475,  519,  515,
3390      2541, 2554, 2554, 2554, 2550, 2559, 2559, 2559, 2560, 2560,
3391      2560,  509, 2560,  508,  504, 2560, 2561, 2561, 2561, 2554,
3392       500,  496, 2559, 2562, 2562, 2562,  495, 2562,  491,  488,
3393      2562,  487,  482, 2561, 2563, 2563, 2563, 2564, 2564, 2564,
3394       478, 2564,  470,  469, 2564, 2571, 2571, 2571, 2579, 2579,
3395      2579, 2563, 2554, 2572, 2572, 2572,  468, 2572,  464,  458,
3396      2572,  457, 2571, 2585, 2585, 2585, 2579, 2585,  453,  447,
3397      2585, 2588, 2588, 2588,  446, 2588,  445,  444, 2588, 2591,
3398      2591, 2591,  443, 2591,  442, 2579, 2591, 2600, 2600, 2600,
3399
3400       441, 2600,  437,  428, 2600, 2695, 2695, 2695, 2704, 2704,
3401      2704,  427, 2704,  426,  424, 2704, 2805, 2805, 2805, 2806,
3402      2806, 2806,  420, 2695,  416,  412, 2704,  411,  410,  409,
3403       408,  404,  398,  397, 2805,  393,  387, 2806, 2809, 2809,
3404      2809, 2809, 2809, 2809, 2809, 2809, 2809, 2810, 2810, 2810,
3405      2810, 2810, 2810, 2810, 2810, 2810, 2811, 2811, 2811, 2811,
3406      2811, 2811, 2811, 2811, 2811, 2812, 2812, 2812, 2812, 2812,
3407      2812, 2812, 2812, 2812, 2813, 2813, 2813, 2813, 2813, 2813,
3408      2813, 2813, 2813, 2814, 2814, 2814, 2814, 2814, 2814, 2814,
3409      2814, 2814, 2815, 2815, 2815, 2815, 2815, 2815, 2815, 2815,
3410
3411      2815, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816, 2816,
3412      2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2818,
3413      2818, 2818, 2818, 2818, 2818, 2818, 2818, 2818, 2819, 2819,
3414      2819, 2819, 2819, 2819, 2819, 2819, 2819, 2820, 2820, 2820,
3415      2820, 2820, 2820, 2820, 2820, 2820, 2821, 2821, 2821, 2821,
3416      2821, 2821, 2821, 2821, 2821, 2822, 2822, 2822, 2822, 2822,
3417      2822, 2822, 2822, 2822, 2823, 2823, 2823, 2823, 2823, 2823,
3418      2823, 2823, 2823, 2824, 2824, 2824, 2824, 2824, 2824, 2824,
3419      2824, 2824, 2825, 2825, 2825, 2825, 2825, 2825, 2825, 2825,
3420      2825, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826,
3421
3422      2827, 2827, 2827, 2827, 2827, 2827, 2827, 2827, 2827, 2828,
3423      2828, 2828, 2828, 2828, 2828, 2828, 2828, 2828, 2829, 2829,
3424      2829, 2829, 2829, 2829, 2829, 2829, 2829, 2830, 2830, 2830,
3425      2830, 2830, 2830, 2830, 2830, 2830, 2831, 2831, 2831, 2831,
3426      2831, 2831, 2831, 2831, 2831, 2832, 2832, 2832, 2832, 2832,
3427      2832, 2832, 2832, 2832, 2833, 2833, 2833, 2833, 2833, 2833,
3428      2833, 2833, 2833, 2834, 2834, 2834, 2834, 2834, 2834, 2834,
3429      2834, 2834, 2835, 2835, 2835, 2835, 2835, 2835, 2835, 2835,
3430      2835, 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836,
3431      2837, 2837, 2837, 2837, 2837, 2837, 2837, 2837, 2837, 2838,
3432
3433      2838, 2838, 2838, 2838, 2838, 2838, 2838, 2838, 2839, 2839,
3434      2839, 2839, 2839, 2839, 2839, 2839, 2839, 2840, 2840, 2840,
3435      2840, 2840, 2840, 2840, 2840, 2840, 2841, 2841, 2841, 2841,
3436      2841, 2841, 2841, 2841, 2841, 2842, 2842, 2842, 2842, 2842,
3437      2842, 2842, 2842, 2842, 2843, 2843, 2843, 2843, 2843, 2843,
3438      2843, 2843, 2843, 2844, 2844, 2844, 2844, 2844, 2844, 2844,
3439      2844, 2844, 2845, 2845, 2845, 2845, 2845, 2845, 2845, 2845,
3440      2845, 2846, 2846, 2846, 2846, 2846, 2846, 2846, 2846, 2846,
3441      2847, 2847, 2847, 2847, 2847, 2847, 2847, 2847, 2847, 2848,
3442      2848, 2848, 2848, 2848, 2848, 2848, 2848, 2848, 2849, 2849,
3443
3444      2849, 2849, 2849, 2849, 2849, 2849, 2849, 2850, 2850, 2850,
3445      2850, 2850, 2850, 2850, 2850, 2850, 2851, 2851, 2851, 2851,
3446      2851, 2851, 2851, 2851, 2851, 2852, 2852, 2852, 2852, 2852,
3447      2852, 2852, 2852, 2852, 2853, 2853, 2853, 2853, 2853, 2853,
3448      2853, 2853, 2853, 2854, 2854, 2854, 2854, 2854, 2854, 2854,
3449      2854, 2854, 2855, 2855, 2855, 2855, 2855, 2855, 2855, 2855,
3450      2855, 2856, 2856, 2856, 2856, 2856, 2856, 2856, 2856, 2856,
3451      2857, 2857, 2857, 2857, 2857, 2857, 2857, 2857, 2857, 2858,
3452      2858, 2858, 2858, 2858, 2858, 2858, 2858, 2858, 2859, 2859,
3453      2859, 2859, 2859, 2859, 2859, 2859, 2859, 2860, 2860, 2860,
3454
3455      2860, 2860, 2860, 2860, 2860, 2860, 2861, 2861, 2861, 2861,
3456      2861, 2861, 2861, 2861, 2861, 2862, 2862, 2862,  386,  382,
3457       375, 2862, 2863, 2863, 2863,  374,  373,  369, 2863, 2864,
3458      2864, 2864,  362,  361,  360, 2864, 2865, 2865, 2865,  359,
3459       355,  351, 2865, 2866, 2866, 2866,  346,  338,  337, 2866,
3460      2867, 2867, 2867,  333,  327,  326, 2867, 2868, 2868, 2868,
3461       325,  321,  312, 2868, 2869, 2869, 2869,  310,  309,  305,
3462      2869, 2870, 2870, 2870,  302,  300,  299, 2870, 2871, 2871,
3463      2871,  298,  294,  290, 2871, 2872, 2872, 2872,  287,  283,
3464       280, 2872, 2873, 2873, 2873,  279,  271,  267, 2873, 2874,
3465
3466      2874, 2874,  263,  262,  261, 2874, 2875, 2875, 2875,  255,
3467       254,  252, 2875, 2876, 2876, 2876,  249,  237,    0, 2876,
3468      2877, 2877, 2877,    0,    0,    0, 2877, 2878, 2878, 2878,
3469         0,    0,    0, 2878, 2879, 2879, 2879,    0,    0,    0,
3470      2879, 2880, 2880, 2880,    0,    0,    0, 2880, 2881, 2881,
3471      2881,    0,    0,    0, 2881, 2882, 2882, 2882,    0,    0,
3472         0, 2882, 2883, 2883, 2883,    0,    0,    0, 2883, 2884,
3473      2884, 2884,    0,    0,    0, 2884, 2885, 2885, 2885,    0,
3474         0,    0, 2885, 2886, 2886, 2886, 2886, 2886, 2886, 2886,
3475         0, 2886, 2887, 2887, 2887,    0,    0,    0, 2887, 2888,
3476
3477         0,    0,    0, 2888, 2889, 2889, 2889,    0,    0,    0,
3478      2889, 2890,    0,    0,    0, 2890, 2891, 2891, 2891,    0,
3479         0,    0, 2891, 2892,    0,    0,    0, 2892, 2893, 2893,
3480      2893,    0,    0,    0, 2893, 2894,    0,    0,    0, 2894,
3481      2895, 2895, 2895,    0,    0,    0, 2895, 2896,    0,    0,
3482         0, 2896, 2897, 2897, 2897,    0,    0,    0, 2897, 2898,
3483         0,    0,    0, 2898, 2899, 2899, 2899,    0,    0,    0,
3484      2899, 2900,    0,    0,    0, 2900, 2901, 2901, 2901,    0,
3485         0,    0, 2901, 2902,    0,    0,    0, 2902, 2903, 2903,
3486      2903,    0,    0,    0, 2903, 2904,    0,    0,    0, 2904,
3487
3488      2905, 2905, 2905,    0,    0,    0, 2905, 2906,    0,    0,
3489         0, 2906, 2907, 2907, 2907,    0,    0,    0, 2907, 2908,
3490         0,    0,    0, 2908, 2909, 2909, 2909,    0,    0,    0,
3491      2909, 2910,    0,    0,    0, 2910, 2911, 2911, 2911,    0,
3492         0,    0, 2911, 2912,    0,    0,    0, 2912, 2913, 2913,
3493      2913,    0,    0,    0, 2913, 2914,    0,    0,    0, 2914,
3494      2915, 2915, 2915,    0,    0,    0, 2915, 2916,    0,    0,
3495         0, 2916, 2917, 2917, 2917,    0,    0,    0, 2917, 2918,
3496         0,    0,    0, 2918, 2919, 2919, 2919,    0,    0,    0,
3497      2919, 2920,    0,    0,    0, 2920, 2921, 2921, 2921,    0,
3498
3499         0,    0, 2921, 2922,    0,    0,    0, 2922, 2923, 2923,
3500      2923,    0,    0,    0, 2923, 2924,    0,    0,    0, 2924,
3501      2925, 2925, 2925,    0,    0,    0, 2925, 2926,    0,    0,
3502         0, 2926, 2927, 2927, 2927,    0,    0,    0, 2927, 2928,
3503         0,    0,    0, 2928, 2929, 2929, 2929,    0,    0,    0,
3504      2929, 2930,    0,    0,    0, 2930, 2931, 2931, 2931,    0,
3505         0,    0, 2931, 2932,    0,    0,    0, 2932, 2933, 2933,
3506      2933,    0,    0,    0, 2933, 2934,    0,    0,    0, 2934,
3507      2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2935, 2936,
3508         0,    0,    0,    0, 2936, 2937, 2937, 2937,    0,    0,
3509
3510         0, 2937, 2938, 2938, 2938, 2938,    0,    0, 2938, 2938,
3511      2939, 2939, 2939,    0,    0,    0, 2939, 2940, 2940, 2940,
3512      2940,    0,    0, 2940, 2940, 2941, 2941, 2941,    0,    0,
3513         0, 2941, 2942, 2942, 2942, 2942,    0,    0, 2942, 2942,
3514      2943, 2943, 2943,    0,    0,    0, 2943, 2944, 2944, 2944,
3515      2944,    0,    0, 2944, 2944, 2945, 2945, 2945,    0,    0,
3516         0, 2945, 2946, 2946, 2946, 2946,    0,    0, 2946, 2946,
3517      2947, 2947, 2947,    0,    0,    0, 2947, 2948, 2948, 2948,
3518      2948,    0,    0, 2948, 2948, 2949, 2949, 2949,    0,    0,
3519         0, 2949, 2950, 2950, 2950, 2950,    0,    0, 2950, 2950,
3520
3521      2951, 2951, 2951,    0,    0,    0, 2951, 2952, 2952, 2952,
3522      2952,    0,    0, 2952, 2952, 2953, 2953, 2953,    0,    0,
3523         0, 2953, 2954, 2954, 2954, 2954,    0,    0, 2954, 2954,
3524      2955, 2955, 2955,    0,    0,    0, 2955, 2956, 2956, 2956,
3525      2956,    0,    0, 2956, 2956, 2957, 2957, 2957,    0,    0,
3526         0, 2957, 2958, 2958, 2958, 2958,    0,    0, 2958, 2958,
3527      2959, 2959, 2959,    0,    0,    0, 2959, 2960, 2960, 2960,
3528      2960,    0,    0, 2960, 2960, 2961, 2961, 2961,    0,    0,
3529         0, 2961, 2962, 2962, 2962, 2962,    0,    0, 2962, 2962,
3530      2963, 2963, 2963,    0,    0,    0, 2963, 2964, 2964, 2964,
3531
3532      2964,    0,    0, 2964, 2964, 2965, 2965, 2965,    0,    0,
3533         0, 2965, 2966, 2966, 2966, 2966,    0,    0, 2966, 2966,
3534      2967, 2967, 2967, 2967,    0, 2967,    0, 2967, 2968, 2968,
3535      2968, 2968,    0,    0, 2968, 2968, 2969, 2969, 2969, 2969,
3536         0, 2969,    0, 2969, 2970, 2970, 2970, 2970,    0,    0,
3537      2970, 2970, 2971, 2971, 2971,    0,    0,    0, 2971, 2972,
3538      2972, 2972, 2972,    0,    0, 2972, 2972, 2973, 2973, 2973,
3539      2973,    0, 2973,    0, 2973, 2974, 2974, 2974, 2974,    0,
3540         0, 2974, 2974, 2975, 2975, 2975, 2975,    0, 2975,    0,
3541      2975, 2976, 2976, 2976, 2976,    0,    0, 2976, 2976, 2977,
3542
3543      2977, 2977,    0,    0,    0, 2977, 2978, 2978, 2978, 2978,
3544         0,    0, 2978, 2978, 2979, 2979, 2979,    0,    0,    0,
3545      2979, 2980, 2980, 2980, 2980,    0,    0, 2980, 2980, 2981,
3546      2981, 2981, 2981,    0,    0, 2981, 2981, 2982, 2982, 2982,
3547         0,    0,    0, 2982, 2983, 2983, 2983, 2983,    0,    0,
3548      2983, 2983, 2984, 2984, 2984, 2984, 2984, 2984, 2984, 2984,
3549      2984, 2985,    0, 2985,    0,    0, 2985, 2986, 2986, 2986,
3550         0,    0,    0, 2986, 2987, 2987, 2987, 2987,    0,    0,
3551      2987, 2987, 2988, 2988, 2988, 2988,    0, 2988,    0, 2988,
3552      2989, 2989, 2989, 2989,    0,    0, 2989, 2989, 2990, 2990,
3553
3554      2990, 2990,    0, 2990,    0, 2990, 2991, 2991, 2991, 2991,
3555         0,    0, 2991, 2991, 2992, 2992, 2992,    0,    0,    0,
3556      2992, 2993, 2993, 2993, 2993,    0,    0, 2993, 2993, 2994,
3557      2994, 2994,    0,    0,    0, 2994, 2995, 2995, 2995, 2995,
3558         0,    0, 2995, 2995, 2996, 2996, 2996,    0,    0,    0,
3559      2996, 2997, 2997, 2997, 2997,    0,    0, 2997, 2997, 2998,
3560      2998, 2998,    0,    0,    0, 2998, 2999, 2999, 2999, 2999,
3561         0,    0, 2999, 2999, 3000, 3000, 3000,    0,    0,    0,
3562      3000, 3001, 3001, 3001, 3001,    0,    0, 3001, 3001, 3002,
3563      3002, 3002, 3002,    0, 3002,    0, 3002, 3003, 3003, 3003,
3564
3565      3003,    0,    0, 3003, 3003, 3004, 3004, 3004, 3004,    0,
3566      3004,    0, 3004, 3005, 3005, 3005, 3005,    0,    0, 3005,
3567      3005, 3006, 3006, 3006,    0,    0,    0, 3006, 3007, 3007,
3568      3007, 3007,    0,    0, 3007, 3007, 3008, 3008, 3008,    0,
3569         0,    0, 3008, 3009, 3009, 3009, 3009,    0,    0, 3009,
3570      3009, 3010, 3010, 3010,    0,    0,    0, 3010, 3011, 3011,
3571      3011, 3011,    0,    0, 3011, 3011, 3012, 3012, 3012,    0,
3572         0,    0, 3012, 3013, 3013, 3013, 3013,    0,    0, 3013,
3573      3013, 3014, 3014, 3014,    0,    0,    0, 3014, 3015, 3015,
3574      3015, 3015,    0,    0, 3015, 3015, 3016, 3016, 3016,    0,
3575
3576         0,    0, 3016, 3017, 3017, 3017, 3017,    0,    0, 3017,
3577      3017, 3018, 3018, 3018,    0,    0,    0, 3018, 3019, 3019,
3578      3019, 3019,    0,    0, 3019, 3019, 3020, 3020, 3020,    0,
3579         0,    0, 3020, 3021, 3021, 3021, 3021,    0,    0, 3021,
3580      3021, 3022, 3022, 3022, 3022,    0,    0, 3022, 3022, 3023,
3581      3023, 3023,    0,    0,    0, 3023, 3024, 3024, 3024, 3024,
3582         0,    0, 3024, 3024, 3025, 3025, 3025,    0,    0,    0,
3583      3025, 3026, 3026, 3026, 3026,    0,    0, 3026, 3026, 3027,
3584      3027, 3027,    0,    0,    0, 3027, 3028, 3028, 3028, 3028,
3585         0,    0, 3028, 3028, 3029, 3029, 3029, 3029,    0,    0,
3586
3587      3029, 3029, 3030, 3030, 3030,    0,    0,    0, 3030, 3031,
3588      3031, 3031, 3031,    0,    0, 3031, 3031, 3032, 3032, 3032,
3589      3032, 3032, 3032, 3032, 3032, 3032, 3033, 3033, 3033, 3033,
3590      3033, 3033, 3033, 3033, 3033, 3034, 3034, 3034,    0,    0,
3591         0, 3034, 3035, 3035, 3035, 3035,    0,    0, 3035, 3035,
3592      3036, 3036, 3036, 3036,    0,    0, 3036, 3036, 3037, 3037,
3593      3037,    0,    0,    0, 3037, 3038, 3038, 3038, 3038,    0,
3594         0, 3038, 3038, 3039, 3039, 3039,    0,    0,    0, 3039,
3595      3040, 3040, 3040, 3040,    0,    0, 3040, 3040, 3041, 3041,
3596      3041,    0,    0,    0, 3041, 3042, 3042, 3042, 3042,    0,
3597
3598         0, 3042, 3042, 3043, 3043, 3043,    0,    0,    0, 3043,
3599      3044, 3044, 3044,    0,    0,    0, 3044, 3045, 3045, 3045,
3600      3045,    0,    0, 3045, 3045, 3046, 3046, 3046,    0,    0,
3601         0, 3046, 3047, 3047, 3047, 3047,    0,    0, 3047, 3047,
3602      3048, 3048, 3048, 3048,    0,    0, 3048, 3048, 3049, 3049,
3603      3049,    0,    0,    0, 3049, 3050, 3050, 3050, 3050,    0,
3604         0, 3050, 3050, 3051, 3051, 3051,    0,    0,    0, 3051,
3605      3052, 3052, 3052, 3052,    0,    0, 3052, 3052, 3053, 3053,
3606      3053,    0,    0,    0, 3053, 3054, 3054, 3054, 3054,    0,
3607         0, 3054, 3054, 3055, 3055, 3055,    0,    0,    0, 3055,
3608
3609      3056, 3056, 3056, 3056,    0,    0, 3056, 3056, 3057, 3057,
3610      3057,    0,    0,    0, 3057, 3058, 3058, 3058, 3058,    0,
3611         0, 3058, 3058, 3059, 3059, 3059,    0,    0,    0, 3059,
3612      3060, 3060, 3060, 3060,    0,    0, 3060, 3060, 3061, 3061,
3613      3061,    0,    0,    0, 3061, 3062, 3062, 3062, 3062,    0,
3614         0, 3062, 3062, 3063, 3063, 3063,    0,    0,    0, 3063,
3615      3064, 3064, 3064, 3064,    0,    0, 3064, 3064, 3065, 3065,
3616      3065,    0,    0,    0, 3065, 3066, 3066, 3066, 3066,    0,
3617         0, 3066, 3066, 3067, 3067, 3067, 3067,    0,    0, 3067,
3618      3067, 3068, 3068, 3068,    0,    0,    0, 3068, 3069, 3069,
3619
3620      3069, 3069,    0,    0, 3069, 3069, 3070, 3070, 3070,    0,
3621         0,    0, 3070, 3071, 3071, 3071, 3071,    0,    0, 3071,
3622      3071, 3072, 3072, 3072, 3072,    0, 3072,    0, 3072, 3073,
3623      3073, 3073, 3073,    0,    0, 3073, 3073, 3074, 3074, 3074,
3624      3074,    0,    0, 3074, 3074, 3075, 3075, 3075, 3075,    0,
3625      3075,    0, 3075, 3076, 3076, 3076, 3076,    0,    0, 3076,
3626      3076, 3077, 3077, 3077, 3077, 3077, 3077, 3077, 3077, 3077,
3627      3078, 3078, 3078, 3078, 3078, 3078, 3078, 3078, 3078, 3079,
3628      3079, 3079,    0,    0,    0, 3079, 3080, 3080, 3080, 3080,
3629         0,    0, 3080, 3080, 3081, 3081, 3081, 3081,    0,    0,
3630
3631      3081, 3081, 3082, 3082, 3082,    0,    0,    0, 3082, 3083,
3632      3083, 3083, 3083,    0,    0, 3083, 3083, 3084, 3084, 3084,
3633         0,    0,    0, 3084, 3085, 3085, 3085, 3085,    0,    0,
3634      3085, 3085, 3086, 3086, 3086,    0,    0,    0, 3086, 3087,
3635      3087, 3087, 3087,    0,    0, 3087, 3087, 3088, 3088, 3088,
3636         0,    0,    0, 3088, 3089, 3089, 3089,    0,    0,    0,
3637      3089, 3090, 3090, 3090, 3090,    0,    0, 3090, 3090, 3091,
3638      3091, 3091,    0,    0,    0, 3091, 3092, 3092, 3092, 3092,
3639         0,    0, 3092, 3092, 3093, 3093, 3093, 3093,    0,    0,
3640      3093, 3093, 3094, 3094, 3094, 3094,    0, 3094,    0, 3094,
3641
3642      3095, 3095, 3095, 3095,    0,    0, 3095, 3095, 3096, 3096,
3643      3096,    0,    0,    0, 3096, 3097, 3097, 3097, 3097,    0,
3644         0, 3097, 3097, 3098, 3098, 3098,    0,    0,    0, 3098,
3645      3099, 3099, 3099, 3099,    0,    0, 3099, 3099, 3100, 3100,
3646      3100,    0,    0,    0, 3100, 3101, 3101, 3101, 3101,    0,
3647         0, 3101, 3101, 3102, 3102, 3102,    0,    0,    0, 3102,
3648      3103, 3103, 3103, 3103,    0,    0, 3103, 3103, 3104, 3104,
3649      3104,    0,    0,    0, 3104, 3105, 3105, 3105, 3105,    0,
3650         0, 3105, 3105, 3106, 3106, 3106,    0,    0,    0, 3106,
3651      3107, 3107, 3107, 3107,    0,    0, 3107, 3107, 3108, 3108,
3652
3653      3108, 3108,    0, 3108,    0, 3108, 3109, 3109, 3109, 3109,
3654         0,    0, 3109, 3109, 3110, 3110, 3110,    0,    0,    0,
3655      3110, 3111, 3111, 3111, 3111,    0,    0, 3111, 3111, 3112,
3656      3112, 3112, 3112,    0,    0, 3112, 3112, 3113, 3113, 3113,
3657      3113,    0, 3113,    0, 3113, 3114, 3114, 3114, 3114,    0,
3658         0, 3114, 3114, 3115, 3115, 3115,    0,    0,    0, 3115,
3659      3116, 3116, 3116, 3116,    0,    0, 3116, 3116, 3117, 3117,
3660      3117, 3117,    0,    0, 3117, 3117, 3118, 3118, 3118, 3118,
3661         0,    0, 3118, 3118, 3119, 3119, 3119, 3119,    0,    0,
3662      3119, 3119, 3120, 3120, 3120, 3120, 3120, 3120, 3120, 3120,
3663
3664      3120, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121,
3665      3122, 3122, 3122, 3122,    0, 3122,    0, 3122, 3123, 3123,
3666      3123, 3123,    0,    0, 3123, 3123, 3124, 3124, 3124, 3124,
3667         0,    0, 3124, 3124, 3125, 3125, 3125,    0,    0,    0,
3668      3125, 3126, 3126, 3126, 3126,    0,    0, 3126, 3126, 3127,
3669      3127, 3127,    0,    0,    0, 3127, 3128, 3128, 3128, 3128,
3670         0,    0, 3128, 3128, 3129, 3129, 3129, 3129,    0, 3129,
3671         0, 3129, 3130, 3130, 3130, 3130,    0,    0, 3130, 3130,
3672      3131, 3131, 3131, 3131,    0, 3131,    0, 3131, 3132, 3132,
3673      3132, 3132,    0, 3132,    0, 3132, 3133, 3133, 3133, 3133,
3674
3675         0,    0, 3133, 3133, 3134, 3134, 3134, 3134,    0, 3134,
3676         0, 3134, 3135, 3135, 3135, 3135,    0,    0, 3135, 3135,
3677      3136, 3136, 3136, 3136,    0,    0, 3136, 3136, 3137, 3137,
3678      3137, 3137,    0,    0, 3137, 3137, 3138, 3138, 3138,    0,
3679         0,    0, 3138, 3139, 3139, 3139,    0,    0,    0, 3139,
3680      3140, 3140, 3140, 3140,    0,    0, 3140, 3140, 3141, 3141,
3681      3141,    0,    0,    0, 3141, 3142, 3142, 3142,    0,    0,
3682         0, 3142, 3143, 3143, 3143, 3143,    0,    0, 3143, 3143,
3683      3144, 3144, 3144,    0,    0,    0, 3144, 3145, 3145, 3145,
3684         0,    0,    0, 3145, 3146, 3146, 3146, 3146,    0,    0,
3685
3686      3146, 3146, 3147, 3147, 3147,    0,    0,    0, 3147, 3148,
3687      3148, 3148, 3148,    0,    0, 3148, 3148, 3149, 3149, 3149,
3688         0,    0,    0, 3149, 3150, 3150, 3150, 3150,    0,    0,
3689      3150, 3150, 3151, 3151, 3151, 3151,    0,    0, 3151, 3151,
3690      3152, 3152, 3152, 3152,    0,    0, 3152, 3152, 3153, 3153,
3691      3153,    0,    0,    0, 3153, 3154, 3154, 3154, 3154,    0,
3692         0, 3154, 3154, 3155, 3155, 3155, 3155,    0,    0, 3155,
3693      3155, 3156, 3156, 3156, 3156,    0,    0, 3156, 3156, 3157,
3694      3157, 3157, 3157, 3157, 3157, 3157, 3157, 3157, 3158, 3158,
3695      3158, 3158, 3158, 3158, 3158, 3158, 3158, 3159, 3159, 3159,
3696
3697      3159,    0,    0, 3159, 3159, 3160, 3160, 3160, 3160,    0,
3698         0, 3160, 3160, 3161, 3161, 3161,    0,    0,    0, 3161,
3699      3162, 3162, 3162,    0,    0,    0, 3162, 3163, 3163, 3163,
3700      3163,    0,    0, 3163, 3163, 3164, 3164, 3164, 3164,    0,
3701         0, 3164, 3164, 3165, 3165, 3165, 3165,    0,    0, 3165,
3702      3165, 3166, 3166, 3166, 3166,    0,    0, 3166, 3166, 3167,
3703      3167, 3167, 3167,    0,    0, 3167, 3167, 3168, 3168, 3168,
3704         0,    0,    0, 3168, 3169, 3169, 3169,    0,    0,    0,
3705      3169, 3170, 3170, 3170, 3170,    0,    0, 3170, 3170, 3171,
3706      3171, 3171,    0,    0,    0, 3171, 3172, 3172, 3172,    0,
3707
3708         0,    0, 3172, 3173, 3173, 3173, 3173,    0,    0, 3173,
3709      3173, 3174, 3174, 3174,    0,    0,    0, 3174, 3175, 3175,
3710      3175,    0,    0,    0, 3175, 3176, 3176, 3176,    0,    0,
3711         0, 3176, 3177, 3177, 3177, 3177,    0,    0, 3177, 3177,
3712      3178, 3178, 3178,    0,    0,    0, 3178, 3179, 3179, 3179,
3713      3179,    0,    0, 3179, 3179, 3180, 3180, 3180, 3180,    0,
3714         0, 3180, 3180, 3181, 3181, 3181, 3181,    0,    0, 3181,
3715      3181, 3182, 3182, 3182, 3182,    0, 3182,    0, 3182, 3183,
3716      3183, 3183, 3183,    0,    0, 3183, 3183, 3184, 3184, 3184,
3717      3184,    0,    0, 3184, 3184, 3185, 3185, 3185, 3185,    0,
3718
3719         0, 3185, 3185, 3186, 3186, 3186, 3186, 3186, 3186, 3186,
3720      3186, 3186, 3187, 3187, 3187, 3187, 3187, 3187, 3187, 3187,
3721      3187, 3188, 3188, 3188, 3188,    0,    0, 3188, 3188, 3189,
3722      3189, 3189, 3189,    0,    0, 3189, 3189, 3190, 3190, 3190,
3723         0,    0,    0, 3190, 3191, 3191, 3191, 3191,    0, 3191,
3724         0, 3191, 3192, 3192, 3192, 3192,    0,    0, 3192, 3192,
3725      3193, 3193, 3193, 3193,    0,    0, 3193, 3193, 3194, 3194,
3726      3194, 3194,    0,    0, 3194, 3194, 3195, 3195, 3195, 3195,
3727         0,    0, 3195, 3195, 3196, 3196, 3196,    0,    0,    0,
3728      3196, 3197, 3197, 3197,    0,    0,    0, 3197, 3198, 3198,
3729
3730      3198, 3198,    0,    0, 3198, 3198, 3199, 3199, 3199,    0,
3731         0,    0, 3199, 3200, 3200, 3200,    0,    0,    0, 3200,
3732      3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3201, 3202,
3733      3202, 3202, 3202, 3202, 3202, 3202, 3202, 3202, 3203, 3203,
3734      3203, 3203, 3203, 3203, 3203, 3203, 3203, 3204, 3204, 3204,
3735      3204, 3204, 3204, 3204, 3204, 3204, 3205, 3205, 3205, 3205,
3736      3205, 3205, 3205, 3205, 3205, 3206, 3206, 3206, 3206, 3206,
3737      3206, 3206, 3206, 3206, 2808, 2808, 2808, 2808, 2808, 2808,
3738      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
3739      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
3740
3741      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
3742      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
3743      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
3744      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808,
3745      2808, 2808, 2808, 2808, 2808, 2808, 2808, 2808
3746     } ;
3747
3748 /* Table of booleans, true if rule could match eol. */
3749 static yyconst flex_int32_t yy_rule_can_match_eol[477] =
3750     {   0,
3751 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
3752     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3753     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3754     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3755     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
3756     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
3757     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
3758     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
3759     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
3760     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
3761     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3762     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3763     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3764     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
3765     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
3766     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
3767     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
3768     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
3769     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 
3770     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
3771     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
3772     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
3773     1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 
3774     0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
3775
3776 static yy_state_type yy_last_accepting_state;
3777 static char *yy_last_accepting_cpos;
3778
3779 extern int surf_parse__flex_debug;
3780 int surf_parse__flex_debug = 0;
3781
3782 /* The intent behind this definition is that it'll catch
3783  * any uses of REJECT which flex missed.
3784  */
3785 #define REJECT reject_used_but_not_detected
3786 #define yymore() yymore_used_but_not_detected
3787 #define YY_MORE_ADJ 0
3788 #define YY_RESTORE_YY_MORE_OFFSET
3789 char *surf_parse_text;
3790 /* Validating XML processor for src/surf/simgrid.dtd.
3791  *
3792  * This program was generated with the FleXML XML processor generator.
3793  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
3794  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
3795  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
3796  * 
3797  * There are two, intertwined parts to this program, part A and part B.
3798  *
3799  * Part A
3800  * ------
3801  * 
3802  * Some parts, here collectively called "Part A", are found in the 
3803  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
3804  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
3805  *
3806  * You can redistribute, use, perform, display and/or modify "Part A"
3807  * provided the following two conditions hold:
3808  *
3809  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
3810  *    FleXML; without even the implied warranty of MERCHANTABILITY or
3811  *    FITNESS FOR A PARTICULAR PURPOSE.
3812  *
3813  * 2. The program distribution conditions do not in any way affect the
3814  *    distribution conditions of the FleXML system used to generate this
3815  *    file or any version of FleXML derived from that system.
3816  *
3817  * Notice that these are explicit rights granted to you for files
3818  * generated by the FleXML system.  For your rights in connection with
3819  * the FleXML system itself please consult the GNU General Public License.
3820  * 
3821  * Part B
3822  * ------
3823  * 
3824  * The other parts, here collectively called "Part B", and which came 
3825  * from the DTD used by FleXML to generate this program, can be 
3826  * distributed (or not, as the case may be) under the terms of whoever
3827  * wrote them, provided these terms respect and obey the two conditions 
3828  * above under the heading "Part A".
3829  *
3830  * The author of and contributors to FleXML specifically disclaim
3831  * any copyright interest in "Part B", unless "Part B" was written 
3832  * by the author of or contributors to FleXML.
3833  * 
3834  */
3835
3836 /* Version strings. */
3837 const char rcs_surfxml_flexml_skeleton[] =
3838  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
3839 const char rcs_surfxml_flexml[] =
3840  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
3841
3842 /* ANSI headers. */
3843 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
3844 #include <stdio.h>
3845 #include <string.h>
3846 #include <assert.h>
3847 #include <stdarg.h>
3848 #include <ctype.h>
3849      
3850 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3851 # ifndef __STRICT_ANSI__
3852 #  include <io.h>
3853 #  include <process.h>
3854 # endif
3855 #else
3856 # include <unistd.h>
3857 #endif
3858      
3859 #ifndef FLEXML_INDEXSTACKSIZE
3860 #define FLEXML_INDEXSTACKSIZE 1000
3861 #endif
3862
3863 /* Generated definitions. */
3864 #define FLEXML_yylineno
3865 #ifndef FLEXML_BUFFERSTACKSIZE
3866 #define FLEXML_BUFFERSTACKSIZE 1000000
3867 #endif
3868 #define FLEXML_NEED_BUFFERLIT
3869
3870 /* XML processor api. */
3871 /* FleXML-provided data. */
3872 int surfxml_pcdata_ix;
3873 extern char *surfxml_bufferstack;
3874 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
3875 AT_surfxml_mount_name AX_surfxml_mount_name;
3876 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
3877 short int surfxml_mount_name_isset;
3878 AT_surfxml_random_generator AX_surfxml_random_generator;
3879 #define A_surfxml_random_generator AX_surfxml_random_generator
3880 short int surfxml_random_generator_isset;
3881 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
3882 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
3883 short int surfxml_ASroute_gw_dst_isset;
3884 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
3885 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
3886 short int surfxml_trace_connect_element_isset;
3887 AT_surfxml_prop_id AX_surfxml_prop_id;
3888 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
3889 short int surfxml_prop_id_isset;
3890 AT_surfxml_host_id AX_surfxml_host_id;
3891 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
3892 short int surfxml_host_id_isset;
3893 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
3894 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
3895 short int surfxml_ASroute_symmetrical_isset;
3896 AT_surfxml_peer_lat AX_surfxml_peer_lat;
3897 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
3898 short int surfxml_peer_lat_isset;
3899 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
3900 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
3901 short int surfxml_link_latency_file_isset;
3902 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
3903 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
3904 short int surfxml_peer_availability_file_isset;
3905 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
3906 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
3907 short int surfxml_link_ctn_direction_isset;
3908 AT_surfxml_host_state AX_surfxml_host_state;
3909 #define A_surfxml_host_state AX_surfxml_host_state
3910 short int surfxml_host_state_isset;
3911 AT_surfxml_AS_id AX_surfxml_AS_id;
3912 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
3913 short int surfxml_AS_id_isset;
3914 AT_surfxml_host_power AX_surfxml_host_power;
3915 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
3916 short int surfxml_host_power_isset;
3917 AT_surfxml_router_id AX_surfxml_router_id;
3918 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
3919 short int surfxml_router_id_isset;
3920 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
3921 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
3922 short int surfxml_storage_type_id_isset;
3923 AT_surfxml_process_start_time AX_surfxml_process_start_time;
3924 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
3925 short int surfxml_process_start_time_isset;
3926 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
3927 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
3928 short int surfxml_cluster_suffix_isset;
3929 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
3930 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
3931 short int surfxml_bypassASroute_dst_isset;
3932 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
3933 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
3934 short int surfxml_ASroute_src_isset;
3935 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
3936 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
3937 short int surfxml_cluster_prefix_isset;
3938 AT_surfxml_trace_file AX_surfxml_trace_file;
3939 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
3940 short int surfxml_trace_file_isset;
3941 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
3942 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
3943 short int surfxml_link_sharing_policy_isset;
3944 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
3945 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
3946 short int surfxml_storage_typeId_isset;
3947 AT_surfxml_random_min AX_surfxml_random_min;
3948 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
3949 short int surfxml_random_min_isset;
3950 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
3951 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
3952 short int surfxml_link_ctn_id_isset;
3953 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
3954 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
3955 short int surfxml_peer_bw_out_isset;
3956 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
3957 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
3958 short int surfxml_cluster_availability_file_isset;
3959 AT_surfxml_storage_content AX_surfxml_storage_content;
3960 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
3961 short int surfxml_storage_content_isset;
3962 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
3963 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
3964 short int surfxml_process_kill_time_isset;
3965 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
3966 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
3967 short int surfxml_cluster_bb_bw_isset;
3968 AT_surfxml_argument_value AX_surfxml_argument_value;
3969 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
3970 short int surfxml_argument_value_isset;
3971 AT_surfxml_link_state AX_surfxml_link_state;
3972 #define A_surfxml_link_state AX_surfxml_link_state
3973 short int surfxml_link_state_isset;
3974 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
3975 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
3976 short int surfxml_ASroute_gw_src_isset;
3977 AT_surfxml_AS_routing AX_surfxml_AS_routing;
3978 #define A_surfxml_AS_routing (surfxml_bufferstack + AX_surfxml_AS_routing)
3979 short int surfxml_AS_routing_isset;
3980 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
3981 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
3982 short int surfxml_link_bandwidth_isset;
3983 AT_surfxml_cluster_id AX_surfxml_cluster_id;
3984 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
3985 short int surfxml_cluster_id_isset;
3986 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
3987 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
3988 short int surfxml_peer_bw_in_isset;
3989 AT_surfxml_random_mean AX_surfxml_random_mean;
3990 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
3991 short int surfxml_random_mean_isset;
3992 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
3993 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
3994 short int surfxml_storage_type_size_isset;
3995 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
3996 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
3997 short int surfxml_cluster_bb_lat_isset;
3998 AT_surfxml_link_latency AX_surfxml_link_latency;
3999 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4000 short int surfxml_link_latency_isset;
4001 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
4002 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
4003 short int surfxml_trace_connect_kind_isset;
4004 AT_surfxml_random_seed AX_surfxml_random_seed;
4005 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4006 short int surfxml_random_seed_isset;
4007 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4008 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4009 short int surfxml_cluster_state_file_isset;
4010 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4011 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4012 short int surfxml_link_bandwidth_file_isset;
4013 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4014 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4015 short int surfxml_storage_type_content_isset;
4016 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4017 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4018 short int surfxml_route_symmetrical_isset;
4019 AT_surfxml_random_id AX_surfxml_random_id;
4020 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4021 short int surfxml_random_id_isset;
4022 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4023 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4024 short int surfxml_mstorage_name_isset;
4025 AT_surfxml_random_max AX_surfxml_random_max;
4026 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4027 short int surfxml_random_max_isset;
4028 AT_surfxml_link_id AX_surfxml_link_id;
4029 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4030 short int surfxml_link_id_isset;
4031 AT_surfxml_process_host AX_surfxml_process_host;
4032 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4033 short int surfxml_process_host_isset;
4034 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4035 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4036 short int surfxml_host_availability_file_isset;
4037 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4038 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4039 short int surfxml_cluster_lat_isset;
4040 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4041 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4042 short int surfxml_trace_periodicity_isset;
4043 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4044 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4045 short int surfxml_cluster_bb_sharing_policy_isset;
4046 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4047 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4048 short int surfxml_router_coordinates_isset;
4049 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4050 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4051 short int surfxml_peer_coordinates_isset;
4052 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4053 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4054 short int surfxml_peer_state_file_isset;
4055 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4056 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4057 short int surfxml_bypassASroute_src_isset;
4058 AT_surfxml_prop_value AX_surfxml_prop_value;
4059 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4060 short int surfxml_prop_value_isset;
4061 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4062 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4063 short int surfxml_mstorage_typeId_isset;
4064 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4065 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4066 short int surfxml_ASroute_dst_isset;
4067 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4068 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4069 short int surfxml_link_state_file_isset;
4070 AT_surfxml_random_radical AX_surfxml_random_radical;
4071 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4072 short int surfxml_random_radical_isset;
4073 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4074 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4075 short int surfxml_bypassASroute_gw_src_isset;
4076 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4077 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4078 short int surfxml_trace_connect_trace_isset;
4079 AT_surfxml_mount_id AX_surfxml_mount_id;
4080 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4081 short int surfxml_mount_id_isset;
4082 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4083 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4084 short int surfxml_cluster_power_isset;
4085 AT_surfxml_process_function AX_surfxml_process_function;
4086 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4087 short int surfxml_process_function_isset;
4088 AT_surfxml_peer_id AX_surfxml_peer_id;
4089 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4090 short int surfxml_peer_id_isset;
4091 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4092 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4093 short int surfxml_cluster_router_id_isset;
4094 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4095 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4096 short int surfxml_cluster_sharing_policy_isset;
4097 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4098 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4099 short int surfxml_bypassRoute_dst_isset;
4100 AT_surfxml_host_core AX_surfxml_host_core;
4101 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4102 short int surfxml_host_core_isset;
4103 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4104 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4105 short int surfxml_storage_type_model_isset;
4106 AT_surfxml_host_availability AX_surfxml_host_availability;
4107 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4108 short int surfxml_host_availability_isset;
4109 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4110 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4111 short int surfxml_bypassRoute_src_isset;
4112 AT_surfxml_route_src AX_surfxml_route_src;
4113 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4114 short int surfxml_route_src_isset;
4115 AT_surfxml_storage_id AX_surfxml_storage_id;
4116 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4117 short int surfxml_storage_id_isset;
4118 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4119 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4120 short int surfxml_host_coordinates_isset;
4121 AT_surfxml_trace_id AX_surfxml_trace_id;
4122 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4123 short int surfxml_trace_id_isset;
4124 AT_surfxml_peer_power AX_surfxml_peer_power;
4125 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4126 short int surfxml_peer_power_isset;
4127 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4128 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4129 short int surfxml_cluster_radical_isset;
4130 AT_surfxml_config_id AX_surfxml_config_id;
4131 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4132 short int surfxml_config_id_isset;
4133 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4134 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4135 short int surfxml_bypassASroute_gw_dst_isset;
4136 AT_surfxml_include_file AX_surfxml_include_file;
4137 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4138 short int surfxml_include_file_isset;
4139 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4140 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4141 short int surfxml_random_std_deviation_isset;
4142 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4143 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4144 short int surfxml_cluster_core_isset;
4145 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4146 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4147 short int surfxml_host_state_file_isset;
4148 AT_surfxml_route_dst AX_surfxml_route_dst;
4149 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4150 short int surfxml_route_dst_isset;
4151 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4152 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4153 short int surfxml_cluster_bw_isset;
4154 AT_surfxml_platform_version AX_surfxml_platform_version;
4155 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4156 short int surfxml_platform_version_isset;
4157
4158 /* XML state. */
4159 #ifdef FLEX_DEBUG
4160 # define ENTER(state)   debug_enter(state,#state)
4161 # define LEAVE          debug_leave()
4162 # define SET(state)     debug_set(state,#state)
4163   static void debug_enter(int, const char*);
4164   static void debug_leave(void);
4165   static void debug_set(int, const char*);
4166 #else
4167 # define ENTER(state)   (yy_push_state(state))
4168 # define LEAVE          (yy_pop_state())
4169 # define SET(state)     BEGIN(state)
4170 #endif
4171
4172 /* Generic actions. */
4173 #define SKIP    /*skip*/
4174 #define SUCCEED        CLEANUP; return 0
4175
4176 #define FAIL    return fail
4177 static int fail(const char*, ...);
4178
4179 enum {flexml_max_err_msg_size = 512};
4180 static char flexml_err_msg[flexml_max_err_msg_size];
4181 const char * surfxml_parse_err_msg()
4182 {
4183     return flexml_err_msg;
4184 }
4185 static void reset_surfxml_parse_err_msg()
4186 {
4187     flexml_err_msg[0] = '\0';
4188 }
4189
4190 /* Cleanup */
4191 static void cleanup(void);
4192 #define CLEANUP  cleanup()
4193
4194 /* Text buffer stack handling. */
4195 char *surfxml_bufferstack = NULL;
4196 static int blimit = FLEXML_BUFFERSTACKSIZE;
4197 static int bnext = 1;
4198
4199 static int *indexstack = NULL;
4200 static int ilimit = FLEXML_INDEXSTACKSIZE;
4201 static int inext = 1;
4202
4203 #define BUFFERSET(P)  (P = bnext)
4204 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4205 #define BUFFERDONE    (BUFFERPUTC('\0'))
4206
4207 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4208
4209 /* after this is called, there are at least 2 slots left in the stack */
4210 static int ck_blimit()
4211 {
4212      if (bnext >= blimit) {
4213          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4214          {
4215              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4216              assert(temp);
4217              surfxml_bufferstack = temp;
4218          }
4219      }
4220      return 0;
4221 }
4222
4223 /* after this is called, there are at least 2 slots left in the stack */
4224 static int ck_ilimit()
4225 {
4226      if (inext >= ilimit) {
4227          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4228          {
4229              int *temp = (int *) realloc(indexstack, ilimit);
4230              assert(temp);
4231              indexstack = temp;
4232          }
4233      }
4234      return 0;
4235 }
4236
4237 #ifdef FLEXML_NEED_BUFFERLIT
4238 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4239 {
4240   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
4241   assert(s <= e); BUFFERSET(*pp);
4242   while (++s<e) {
4243     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
4244     else BUFFERPUTC(*s);
4245   }
4246   BUFFERDONE;
4247 }
4248 #endif
4249
4250 static void pushbuffer(int p)
4251 {
4252     ck_ilimit();
4253     indexstack[inext++] = p;
4254     indexstack[inext++] = bnext;    
4255 }
4256
4257 static int popbuffer(void)
4258 {
4259     assert(inext >= 2);
4260     bnext = indexstack[--inext];
4261     return indexstack[--inext];
4262 }
4263
4264 /* General internal entities are `unput' back onto the input stream... */
4265 #define ENTITYTEXT(T) \
4266   { char *s = (T), *e = s+strlen(s);\
4267     while (--e >= s) { unput(*e); }}
4268
4269 /* Flex standard options. */
4270 #define YY_NO_INPUT 1
4271 /* Flex user-requested options. */
4272 /* XML character classes (currently restricted to ASCII). */
4273 /* "Common syntactic structures." */
4274 /* "Names and Tokens." */
4275 /* Miscellaneous. */
4276 /* Parser states (flex `exclusive start conditions'):
4277  *
4278  * PROLOG       the XML prolog of the document before <?xml...>
4279  * DOCTYPE      the XML prolog of the document after <?xml...>
4280  * EPILOG       after the root element
4281  * INCOMMENT    inside an XML comment <!--....-->
4282  * INPI         inside an XML PI <?...?>
4283  * VALUE1       inside a '...'-delimited literal
4284  * VALUE2       inside a "..."-delimited literal
4285  * CDATA        inside a <![CDATA[...] ]> section.
4286  * ROOT_<tag>   expect root element <tag>
4287  * AL_<tag>     inside the attribute list for <tag>
4288  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4289  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4290  */
4291
4292 /* State names. */
4293 const char* *surfxml_statenames=NULL;
4294
4295 #define INITIAL 0
4296 #define PROLOG 1
4297 #define DOCTYPE 2
4298 #define EPILOG 3
4299 #define INCOMMENT 4
4300 #define INPI 5
4301 #define VALUE1 6
4302 #define VALUE2 7
4303 #define CDATA 8
4304 #define ROOT_surfxml_platform 9
4305 #define AL_surfxml_platform 10
4306 #define S_surfxml_platform 11
4307 #define S_surfxml_platform_1 12
4308 #define S_surfxml_platform_2 13
4309 #define S_surfxml_platform_3 14
4310 #define S_surfxml_platform_4 15
4311 #define S_surfxml_platform_5 16
4312 #define S_surfxml_platform_6 17
4313 #define S_surfxml_platform_7 18
4314 #define S_surfxml_platform_8 19
4315 #define E_surfxml_platform 20
4316 #define AL_surfxml_include 21
4317 #define S_surfxml_include 22
4318 #define S_surfxml_include_1 23
4319 #define S_surfxml_include_2 24
4320 #define E_surfxml_include 25
4321 #define AL_surfxml_trace 26
4322 #define IN_trace 27
4323 #define AL_surfxml_random 28
4324 #define S_surfxml_random 29
4325 #define S_surfxml_random_1 30
4326 #define S_surfxml_random_2 31
4327 #define E_surfxml_random 32
4328 #define AL_surfxml_trace_connect 33
4329 #define E_surfxml_trace_connect 34
4330 #define AL_surfxml_AS 35
4331 #define S_surfxml_AS 36
4332 #define S_surfxml_AS_1 37
4333 #define S_surfxml_AS_2 38
4334 #define S_surfxml_AS_3 39
4335 #define S_surfxml_AS_4 40
4336 #define S_surfxml_AS_5 41
4337 #define S_surfxml_AS_6 42
4338 #define S_surfxml_AS_7 43
4339 #define S_surfxml_AS_8 44
4340 #define S_surfxml_AS_9 45
4341 #define S_surfxml_AS_10 46
4342 #define S_surfxml_AS_11 47
4343 #define S_surfxml_AS_12 48
4344 #define S_surfxml_AS_13 49
4345 #define E_surfxml_AS 50
4346 #define AL_surfxml_storage_type 51
4347 #define S_surfxml_storage_type 52
4348 #define S_surfxml_storage_type_1 53
4349 #define S_surfxml_storage_type_2 54
4350 #define E_surfxml_storage_type 55
4351 #define AL_surfxml_storage 56
4352 #define S_surfxml_storage 57
4353 #define S_surfxml_storage_1 58
4354 #define S_surfxml_storage_2 59
4355 #define E_surfxml_storage 60
4356 #define AL_surfxml_mount 61
4357 #define E_surfxml_mount 62
4358 #define AL_surfxml_mstorage 63
4359 #define E_surfxml_mstorage 64
4360 #define AL_surfxml_host 65
4361 #define S_surfxml_host 66
4362 #define S_surfxml_host_1 67
4363 #define S_surfxml_host_2 68
4364 #define E_surfxml_host 69
4365 #define AL_surfxml_cluster 70
4366 #define E_surfxml_cluster 71
4367 #define AL_surfxml_peer 72
4368 #define E_surfxml_peer 73
4369 #define AL_surfxml_router 74
4370 #define E_surfxml_router 75
4371 #define AL_surfxml_link 76
4372 #define S_surfxml_link 77
4373 #define S_surfxml_link_1 78
4374 #define S_surfxml_link_2 79
4375 #define E_surfxml_link 80
4376 #define AL_surfxml_route 81
4377 #define S_surfxml_route 82
4378 #define S_surfxml_route_1 83
4379 #define S_surfxml_route_2 84
4380 #define E_surfxml_route 85
4381 #define AL_surfxml_ASroute 86
4382 #define S_surfxml_ASroute 87
4383 #define S_surfxml_ASroute_1 88
4384 #define S_surfxml_ASroute_2 89
4385 #define E_surfxml_ASroute 90
4386 #define AL_surfxml_link_ctn 91
4387 #define E_surfxml_link_ctn 92
4388 #define AL_surfxml_bypassRoute 93
4389 #define S_surfxml_bypassRoute 94
4390 #define S_surfxml_bypassRoute_1 95
4391 #define S_surfxml_bypassRoute_2 96
4392 #define E_surfxml_bypassRoute 97
4393 #define AL_surfxml_bypassASroute 98
4394 #define S_surfxml_bypassASroute 99
4395 #define S_surfxml_bypassASroute_1 100
4396 #define S_surfxml_bypassASroute_2 101
4397 #define E_surfxml_bypassASroute 102
4398 #define AL_surfxml_process 103
4399 #define S_surfxml_process 104
4400 #define S_surfxml_process_1 105
4401 #define S_surfxml_process_2 106
4402 #define E_surfxml_process 107
4403 #define AL_surfxml_argument 108
4404 #define E_surfxml_argument 109
4405 #define AL_surfxml_config 110
4406 #define S_surfxml_config 111
4407 #define S_surfxml_config_1 112
4408 #define S_surfxml_config_2 113
4409 #define E_surfxml_config 114
4410 #define AL_surfxml_prop 115
4411 #define E_surfxml_prop 116
4412 #define IMPOSSIBLE 117
4413
4414 #ifndef YY_NO_UNISTD_H
4415 /* Special case for "unistd.h", since it is non-ANSI. We include it way
4416  * down here because we want the user's section 1 to have been scanned first.
4417  * The user has a chance to override it with an option.
4418  */
4419 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4420 #  ifndef __STRICT_ANSI__
4421 #    include <io.h>
4422 #    include <process.h>
4423 #  endif
4424 #else
4425 #  include <unistd.h>
4426 #endif
4427 #endif
4428
4429 #ifndef YY_EXTRA_TYPE
4430 #define YY_EXTRA_TYPE void *
4431 #endif
4432
4433 static int yy_init_globals (void );
4434
4435 /* Accessor methods to globals.
4436    These are made visible to non-reentrant scanners for convenience. */
4437
4438 int surf_parse_lex_destroy (void );
4439
4440 int surf_parse_get_debug (void );
4441
4442 void surf_parse_set_debug (int debug_flag  );
4443
4444 YY_EXTRA_TYPE surf_parse_get_extra (void );
4445
4446 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
4447
4448 FILE *surf_parse_get_in (void );
4449
4450 void surf_parse_set_in  (FILE * in_str  );
4451
4452 FILE *surf_parse_get_out (void );
4453
4454 void surf_parse_set_out  (FILE * out_str  );
4455
4456 int surf_parse_get_leng (void );
4457
4458 char *surf_parse_get_text (void );
4459
4460 int surf_parse_get_lineno (void );
4461
4462 void surf_parse_set_lineno (int line_number  );
4463
4464 /* Macros after this point can all be overridden by user definitions in
4465  * section 1.
4466  */
4467
4468 #ifndef YY_SKIP_YYWRAP
4469 #ifdef __cplusplus
4470 extern "C" int surf_parse_wrap (void );
4471 #else
4472 extern int surf_parse_wrap (void );
4473 #endif
4474 #endif
4475
4476 #ifndef yytext_ptr
4477 static void yy_flex_strncpy (char *,yyconst char *,int );
4478 #endif
4479
4480 #ifdef YY_NEED_STRLEN
4481 static int yy_flex_strlen (yyconst char * );
4482 #endif
4483
4484 #ifndef YY_NO_INPUT
4485
4486 #ifdef __cplusplus
4487 static int yyinput (void );
4488 #else
4489 static int input (void );
4490 #endif
4491
4492 #endif
4493
4494         static int yy_start_stack_ptr = 0;
4495         static int yy_start_stack_depth = 0;
4496         static int *yy_start_stack = NULL;
4497     
4498     static void yy_push_state (int new_state );
4499     
4500     static void yy_pop_state (void );
4501     
4502 /* Amount of stuff to slurp up with each read. */
4503 #ifndef YY_READ_BUF_SIZE
4504 #ifdef __ia64__
4505 /* On IA-64, the buffer size is 16k, not 8k */
4506 #define YY_READ_BUF_SIZE 16384
4507 #else
4508 #define YY_READ_BUF_SIZE 8192
4509 #endif /* __ia64__ */
4510 #endif
4511
4512 /* Copy whatever the last rule matched to the standard output. */
4513 #ifndef ECHO
4514 /* This used to be an fputs(), but since the string might contain NUL's,
4515  * we now use fwrite().
4516  */
4517 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
4518 #endif
4519
4520 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
4521  * is returned in "result".
4522  */
4523 #ifndef YY_INPUT
4524 #define YY_INPUT(buf,result,max_size) \
4525         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
4526                 { \
4527                 int c = '*'; \
4528                 size_t n; \
4529                 for ( n = 0; n < max_size && \
4530                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
4531                         buf[n] = (char) c; \
4532                 if ( c == '\n' ) \
4533                         buf[n++] = (char) c; \
4534                 if ( c == EOF && ferror( surf_parse_in ) ) \
4535                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
4536                 result = n; \
4537                 } \
4538         else \
4539                 { \
4540                 errno=0; \
4541                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
4542                         { \
4543                         if( errno != EINTR) \
4544                                 { \
4545                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
4546                                 break; \
4547                                 } \
4548                         errno=0; \
4549                         clearerr(surf_parse_in); \
4550                         } \
4551                 }\
4552 \
4553
4554 #endif
4555
4556 /* No semi-colon after return; correct usage is to write "yyterminate();" -
4557  * we don't want an extra ';' after the "return" because that will cause
4558  * some compilers to complain about unreachable statements.
4559  */
4560 #ifndef yyterminate
4561 #define yyterminate() return YY_NULL
4562 #endif
4563
4564 /* Number of entries by which start-condition stack grows. */
4565 #ifndef YY_START_STACK_INCR
4566 #define YY_START_STACK_INCR 25
4567 #endif
4568
4569 /* Report a fatal error. */
4570 #ifndef YY_FATAL_ERROR
4571 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
4572 #endif
4573
4574 /* end tables serialization structures and prototypes */
4575
4576 /* Default declaration of generated scanner - a define so the user can
4577  * easily add parameters.
4578  */
4579 #ifndef YY_DECL
4580 #define YY_DECL_IS_OURS 1
4581
4582 extern int surf_parse_lex (void);
4583
4584 #define YY_DECL int surf_parse_lex (void)
4585 #endif /* !YY_DECL */
4586
4587 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
4588  * have been set up.
4589  */
4590 #ifndef YY_USER_ACTION
4591 #define YY_USER_ACTION
4592 #endif
4593
4594 /* Code executed at the end of each rule. */
4595 #ifndef YY_BREAK
4596 #define YY_BREAK break;
4597 #endif
4598
4599 #define YY_RULE_SETUP \
4600         YY_USER_ACTION
4601
4602 /** The main scanner function which does all the work.
4603  */
4604 YY_DECL
4605 {
4606         register yy_state_type yy_current_state;
4607         register char *yy_cp, *yy_bp;
4608         register int yy_act;
4609     
4610  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
4611  SET(PROLOG);
4612  reset_surfxml_parse_err_msg();
4613  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
4614  assert(surfxml_bufferstack);
4615  #ifdef FLEX_DEBUG
4616  {
4617      int i;
4618      for (i = 0; i < blimit; i++) {
4619          surfxml_bufferstack[i] = '\377';
4620      }
4621  }
4622  #endif
4623  surfxml_bufferstack[0] = '\0';
4624  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
4625  assert(indexstack);
4626  indexstack[0] = 0;
4627
4628   /* FleXML_init */
4629   bnext = inext = 1;
4630   surfxml_bufferliteral('\0', &bnext, "0.0");
4631   surfxml_bufferliteral('\0', &bnext, "2147483647");
4632   surfxml_bufferliteral('\0', &bnext, "1");
4633   surfxml_bufferliteral('\0', &bnext, "1.0");
4634   surfxml_bufferliteral('\0', &bnext, "1");
4635   surfxml_bufferliteral('\0', &bnext, "0.0");
4636   surfxml_bufferliteral('\0', &bnext, "-1.0");
4637   surfxml_bufferliteral('\0', &bnext, "-1.0");
4638   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
4639   surfxml_statenames[PROLOG] = NULL;
4640   surfxml_statenames[DOCTYPE] = NULL;
4641   surfxml_statenames[EPILOG] = NULL;
4642   surfxml_statenames[INCOMMENT] = NULL;
4643   surfxml_statenames[INPI] = NULL;
4644   surfxml_statenames[VALUE1] = NULL;
4645   surfxml_statenames[VALUE2] = NULL;
4646   surfxml_statenames[CDATA] = NULL;
4647   surfxml_statenames[ROOT_surfxml_platform] = NULL;
4648   surfxml_statenames[AL_surfxml_platform] = NULL;
4649   surfxml_statenames[S_surfxml_platform] = "platform";
4650   surfxml_statenames[S_surfxml_platform_1] = "platform";
4651   surfxml_statenames[S_surfxml_platform_2] = "platform";
4652   surfxml_statenames[S_surfxml_platform_3] = "platform";
4653   surfxml_statenames[S_surfxml_platform_4] = "platform";
4654   surfxml_statenames[S_surfxml_platform_5] = "platform";
4655   surfxml_statenames[S_surfxml_platform_6] = "platform";
4656   surfxml_statenames[S_surfxml_platform_7] = "platform";
4657   surfxml_statenames[S_surfxml_platform_8] = "platform";
4658   surfxml_statenames[E_surfxml_platform] = "platform";
4659   surfxml_statenames[AL_surfxml_include] = NULL;
4660   surfxml_statenames[S_surfxml_include] = "include";
4661   surfxml_statenames[S_surfxml_include_1] = "include";
4662   surfxml_statenames[S_surfxml_include_2] = "include";
4663   surfxml_statenames[E_surfxml_include] = "include";
4664   surfxml_statenames[AL_surfxml_trace] = NULL;
4665   surfxml_statenames[IN_trace] = "trace";
4666   surfxml_statenames[AL_surfxml_random] = NULL;
4667   surfxml_statenames[S_surfxml_random] = "random";
4668   surfxml_statenames[S_surfxml_random_1] = "random";
4669   surfxml_statenames[S_surfxml_random_2] = "random";
4670   surfxml_statenames[E_surfxml_random] = "random";
4671   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
4672   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
4673   surfxml_statenames[AL_surfxml_AS] = NULL;
4674   surfxml_statenames[S_surfxml_AS] = "AS";
4675   surfxml_statenames[S_surfxml_AS_1] = "AS";
4676   surfxml_statenames[S_surfxml_AS_2] = "AS";
4677   surfxml_statenames[S_surfxml_AS_3] = "AS";
4678   surfxml_statenames[S_surfxml_AS_4] = "AS";
4679   surfxml_statenames[S_surfxml_AS_5] = "AS";
4680   surfxml_statenames[S_surfxml_AS_6] = "AS";
4681   surfxml_statenames[S_surfxml_AS_7] = "AS";
4682   surfxml_statenames[S_surfxml_AS_8] = "AS";
4683   surfxml_statenames[S_surfxml_AS_9] = "AS";
4684   surfxml_statenames[S_surfxml_AS_10] = "AS";
4685   surfxml_statenames[S_surfxml_AS_11] = "AS";
4686   surfxml_statenames[S_surfxml_AS_12] = "AS";
4687   surfxml_statenames[S_surfxml_AS_13] = "AS";
4688   surfxml_statenames[E_surfxml_AS] = "AS";
4689   surfxml_statenames[AL_surfxml_storage_type] = NULL;
4690   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
4691   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
4692   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
4693   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
4694   surfxml_statenames[AL_surfxml_storage] = NULL;
4695   surfxml_statenames[S_surfxml_storage] = "storage";
4696   surfxml_statenames[S_surfxml_storage_1] = "storage";
4697   surfxml_statenames[S_surfxml_storage_2] = "storage";
4698   surfxml_statenames[E_surfxml_storage] = "storage";
4699   surfxml_statenames[AL_surfxml_mount] = NULL;
4700   surfxml_statenames[E_surfxml_mount] = "mount";
4701   surfxml_statenames[AL_surfxml_mstorage] = NULL;
4702   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
4703   surfxml_statenames[AL_surfxml_host] = NULL;
4704   surfxml_statenames[S_surfxml_host] = "host";
4705   surfxml_statenames[S_surfxml_host_1] = "host";
4706   surfxml_statenames[S_surfxml_host_2] = "host";
4707   surfxml_statenames[E_surfxml_host] = "host";
4708   surfxml_statenames[AL_surfxml_cluster] = NULL;
4709   surfxml_statenames[E_surfxml_cluster] = "cluster";
4710   surfxml_statenames[AL_surfxml_peer] = NULL;
4711   surfxml_statenames[E_surfxml_peer] = "peer";
4712   surfxml_statenames[AL_surfxml_router] = NULL;
4713   surfxml_statenames[E_surfxml_router] = "router";
4714   surfxml_statenames[AL_surfxml_link] = NULL;
4715   surfxml_statenames[S_surfxml_link] = "link";
4716   surfxml_statenames[S_surfxml_link_1] = "link";
4717   surfxml_statenames[S_surfxml_link_2] = "link";
4718   surfxml_statenames[E_surfxml_link] = "link";
4719   surfxml_statenames[AL_surfxml_route] = NULL;
4720   surfxml_statenames[S_surfxml_route] = "route";
4721   surfxml_statenames[S_surfxml_route_1] = "route";
4722   surfxml_statenames[S_surfxml_route_2] = "route";
4723   surfxml_statenames[E_surfxml_route] = "route";
4724   surfxml_statenames[AL_surfxml_ASroute] = NULL;
4725   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
4726   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
4727   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
4728   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
4729   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
4730   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
4731   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
4732   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
4733   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
4734   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
4735   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
4736   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
4737   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
4738   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
4739   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
4740   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
4741   surfxml_statenames[AL_surfxml_process] = NULL;
4742   surfxml_statenames[S_surfxml_process] = "process";
4743   surfxml_statenames[S_surfxml_process_1] = "process";
4744   surfxml_statenames[S_surfxml_process_2] = "process";
4745   surfxml_statenames[E_surfxml_process] = "process";
4746   surfxml_statenames[AL_surfxml_argument] = NULL;
4747   surfxml_statenames[E_surfxml_argument] = "argument";
4748   surfxml_statenames[AL_surfxml_config] = NULL;
4749   surfxml_statenames[S_surfxml_config] = "config";
4750   surfxml_statenames[S_surfxml_config_1] = "config";
4751   surfxml_statenames[S_surfxml_config_2] = "config";
4752   surfxml_statenames[E_surfxml_config] = "config";
4753   surfxml_statenames[AL_surfxml_prop] = NULL;
4754   surfxml_statenames[E_surfxml_prop] = "prop";
4755   }
4756
4757  /* COMMENTS and PIs: handled uniformly for efficiency. */
4758
4759         if ( !(yy_init) )
4760                 {
4761                 (yy_init) = 1;
4762
4763 #ifdef YY_USER_INIT
4764                 YY_USER_INIT;
4765 #endif
4766
4767                 if ( ! (yy_start) )
4768                         (yy_start) = 1; /* first start state */
4769
4770                 if ( ! surf_parse_in )
4771                         surf_parse_in = stdin;
4772
4773                 if ( ! surf_parse_out )
4774                         surf_parse_out = stdout;
4775
4776                 if ( ! YY_CURRENT_BUFFER ) {
4777                         surf_parse_ensure_buffer_stack ();
4778                         YY_CURRENT_BUFFER_LVALUE =
4779                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4780                 }
4781
4782                 surf_parse__load_buffer_state( );
4783                 }
4784
4785         while ( 1 )             /* loops until end-of-file is reached */
4786                 {
4787                 yy_cp = (yy_c_buf_p);
4788
4789                 /* Support of surf_parse_text. */
4790                 *yy_cp = (yy_hold_char);
4791
4792                 /* yy_bp points to the position in yy_ch_buf of the start of
4793                  * the current run.
4794                  */
4795                 yy_bp = yy_cp;
4796
4797                 yy_current_state = (yy_start);
4798 yy_match:
4799                 do
4800                         {
4801                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
4802                         if ( yy_accept[yy_current_state] )
4803                                 {
4804                                 (yy_last_accepting_state) = yy_current_state;
4805                                 (yy_last_accepting_cpos) = yy_cp;
4806                                 }
4807                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4808                                 {
4809                                 yy_current_state = (int) yy_def[yy_current_state];
4810                                 if ( yy_current_state >= 2809 )
4811                                         yy_c = yy_meta[(unsigned int) yy_c];
4812                                 }
4813                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4814                         ++yy_cp;
4815                         }
4816                 while ( yy_base[yy_current_state] != 10175 );
4817
4818 yy_find_action:
4819                 yy_act = yy_accept[yy_current_state];
4820                 if ( yy_act == 0 )
4821                         { /* have to back up */
4822                         yy_cp = (yy_last_accepting_cpos);
4823                         yy_current_state = (yy_last_accepting_state);
4824                         yy_act = yy_accept[yy_current_state];
4825                         }
4826
4827                 YY_DO_BEFORE_ACTION;
4828
4829                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
4830                         {
4831                         int yyl;
4832                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
4833                                 if ( surf_parse_text[yyl] == '\n' )
4834                                            
4835     surf_parse_lineno++;
4836 ;
4837                         }
4838
4839 do_action:      /* This label is used only to access EOF actions. */
4840
4841                 switch ( yy_act )
4842         { /* beginning of action switch */
4843                         case 0: /* must back up */
4844                         /* undo the effects of YY_DO_BEFORE_ACTION */
4845                         *yy_cp = (yy_hold_char);
4846                         yy_cp = (yy_last_accepting_cpos);
4847                         yy_current_state = (yy_last_accepting_state);
4848                         goto yy_find_action;
4849
4850 case 1:
4851 YY_RULE_SETUP
4852 ENTER(INCOMMENT);
4853         YY_BREAK
4854 case 2:
4855 YY_RULE_SETUP
4856 ENTER(INPI);
4857         YY_BREAK
4858
4859 case 3:
4860 YY_RULE_SETUP
4861 LEAVE;
4862         YY_BREAK
4863 case 4:
4864 case 5:
4865 case 6:
4866 /* rule 6 can match eol */
4867 YY_RULE_SETUP
4868 SKIP;
4869         YY_BREAK
4870 case YY_STATE_EOF(INCOMMENT):
4871 FAIL("EOF in comment.");
4872         YY_BREAK
4873
4874 case 7:
4875 YY_RULE_SETUP
4876 LEAVE;
4877         YY_BREAK
4878 case 8:
4879 case 9:
4880 /* rule 9 can match eol */
4881 YY_RULE_SETUP
4882 SKIP;
4883         YY_BREAK
4884 case YY_STATE_EOF(INPI):
4885 FAIL("EOF in PI (processing instruction).");
4886         YY_BREAK
4887
4888 /* SPACES: skipped uniformly */
4889 case 10:
4890 /* rule 10 can match eol */
4891 YY_RULE_SETUP
4892 SKIP;
4893         YY_BREAK
4894 /* PROLOG: determine root element and process it. */
4895
4896 case 11:
4897 /* rule 11 can match eol */
4898 YY_RULE_SETUP
4899 SET(DOCTYPE); 
4900         YY_BREAK
4901 case 12:
4902 /* rule 12 can match eol */
4903 YY_RULE_SETUP
4904 FAIL("Bad declaration %s.",surf_parse_text);
4905         YY_BREAK
4906
4907 case 13:
4908 /* rule 13 can match eol */
4909 YY_RULE_SETUP
4910 SET(ROOT_surfxml_platform);
4911         YY_BREAK
4912 case 14:
4913 /* rule 14 can match eol */
4914 YY_RULE_SETUP
4915 FAIL("Bad declaration %s.",surf_parse_text);
4916         YY_BREAK
4917 case 15:
4918 YY_RULE_SETUP
4919 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
4920         YY_BREAK
4921 case YY_STATE_EOF(PROLOG):
4922 case YY_STATE_EOF(DOCTYPE):
4923 FAIL("EOF in prolog.");
4924         YY_BREAK
4925
4926 /* RULES DERIVED FROM DTD. */
4927 /* <!-- Small DTD for SURF based tools. -->  */
4928 case 16:
4929 /* rule 16 can match eol */
4930 YY_RULE_SETUP
4931 FAIL("Starting tag <platform> is not allowed here.");
4932         YY_BREAK
4933 case 17:
4934 /* rule 17 can match eol */
4935 YY_RULE_SETUP
4936 {
4937   AX_surfxml_platform_version = 1;
4938   surfxml_platform_version_isset = 0;
4939   ENTER(AL_surfxml_platform); pushbuffer(0);
4940   }
4941         YY_BREAK
4942
4943 case 18:
4944 /* rule 18 can match eol */
4945 YY_RULE_SETUP
4946 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);
4947         YY_BREAK
4948 case 19:
4949 /* rule 19 can match eol */
4950 YY_RULE_SETUP
4951 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);
4952         YY_BREAK
4953 case 20:
4954 YY_RULE_SETUP
4955 {
4956   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
4957  }
4958         YY_BREAK
4959 case 21:
4960 YY_RULE_SETUP
4961 {
4962   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
4963   switch (YY_START) {
4964    case ROOT_surfxml_platform: SET(EPILOG); break;
4965   }
4966  }
4967         YY_BREAK
4968 case 22:
4969 YY_RULE_SETUP
4970 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
4971         YY_BREAK
4972 case 23:
4973 YY_RULE_SETUP
4974 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
4975         YY_BREAK
4976 case YY_STATE_EOF(AL_surfxml_platform):
4977 FAIL("EOF in attribute list of `platform' element.");
4978         YY_BREAK
4979
4980 case 24:
4981 /* rule 24 can match eol */
4982 YY_RULE_SETUP
4983 {
4984   LEAVE;
4985   ETag_surfxml_platform();
4986   popbuffer(); /* attribute */
4987   switch (YY_START) {
4988    case ROOT_surfxml_platform: SET(EPILOG); break;
4989   }
4990  }
4991         YY_BREAK
4992 case 25:
4993 /* rule 25 can match eol */
4994 YY_RULE_SETUP
4995 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
4996         YY_BREAK
4997 case 26:
4998 YY_RULE_SETUP
4999 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5000         YY_BREAK
5001 case YY_STATE_EOF(S_surfxml_platform_8):
5002 case YY_STATE_EOF(S_surfxml_platform_1):
5003 case YY_STATE_EOF(S_surfxml_platform_3):
5004 case YY_STATE_EOF(S_surfxml_platform):
5005 case YY_STATE_EOF(S_surfxml_platform_4):
5006 case YY_STATE_EOF(S_surfxml_platform_6):
5007 case YY_STATE_EOF(E_surfxml_platform):
5008 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5009         YY_BREAK
5010
5011 case 27:
5012 /* rule 27 can match eol */
5013 YY_RULE_SETUP
5014 FAIL("Starting tag <include> is not allowed here.");
5015         YY_BREAK
5016 case 28:
5017 /* rule 28 can match eol */
5018 YY_RULE_SETUP
5019 {
5020   AX_surfxml_include_file = 0;
5021   surfxml_include_file_isset = 0;
5022   ENTER(AL_surfxml_include); pushbuffer(0);
5023   }
5024         YY_BREAK
5025
5026 case 29:
5027 /* rule 29 can match eol */
5028 YY_RULE_SETUP
5029 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);
5030         YY_BREAK
5031 case 30:
5032 /* rule 30 can match eol */
5033 YY_RULE_SETUP
5034 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);
5035         YY_BREAK
5036 case 31:
5037 YY_RULE_SETUP
5038 {
5039   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5040   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5041  }
5042         YY_BREAK
5043 case 32:
5044 YY_RULE_SETUP
5045 {
5046   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5047   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5048   switch (YY_START) {
5049    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5050    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5051    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5052    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5053   }
5054  }
5055         YY_BREAK
5056 case 33:
5057 YY_RULE_SETUP
5058 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5059         YY_BREAK
5060 case 34:
5061 YY_RULE_SETUP
5062 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5063         YY_BREAK
5064 case YY_STATE_EOF(AL_surfxml_include):
5065 FAIL("EOF in attribute list of `include' element.");
5066         YY_BREAK
5067
5068 case 35:
5069 /* rule 35 can match eol */
5070 YY_RULE_SETUP
5071 {
5072   LEAVE;
5073   ETag_surfxml_include();
5074   popbuffer(); /* attribute */
5075   switch (YY_START) {
5076    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5077    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5078    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
5079    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5080   }
5081  }
5082         YY_BREAK
5083 case 36:
5084 /* rule 36 can match eol */
5085 YY_RULE_SETUP
5086 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5087         YY_BREAK
5088 case 37:
5089 YY_RULE_SETUP
5090 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5091         YY_BREAK
5092 case YY_STATE_EOF(E_surfxml_include):
5093 case YY_STATE_EOF(S_surfxml_include):
5094 case YY_STATE_EOF(S_surfxml_include_2):
5095 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5096         YY_BREAK
5097
5098 case 38:
5099 /* rule 38 can match eol */
5100 YY_RULE_SETUP
5101 FAIL("Starting tag <trace> is not allowed here.");
5102         YY_BREAK
5103 case 39:
5104 /* rule 39 can match eol */
5105 YY_RULE_SETUP
5106 {
5107   AX_surfxml_trace_id = 0;
5108   surfxml_trace_id_isset = 0;
5109   AX_surfxml_trace_file = 0;
5110   surfxml_trace_file_isset = 0;
5111   AX_surfxml_trace_periodicity = 0;
5112   surfxml_trace_periodicity_isset = 0;
5113   ENTER(AL_surfxml_trace); pushbuffer(0);
5114   }
5115         YY_BREAK
5116
5117 case 40:
5118 /* rule 40 can match eol */
5119 YY_RULE_SETUP
5120 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);
5121         YY_BREAK
5122 case 41:
5123 /* rule 41 can match eol */
5124 YY_RULE_SETUP
5125 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);
5126         YY_BREAK
5127 case 42:
5128 /* rule 42 can match eol */
5129 YY_RULE_SETUP
5130 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);
5131         YY_BREAK
5132 case 43:
5133 /* rule 43 can match eol */
5134 YY_RULE_SETUP
5135 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);
5136         YY_BREAK
5137 case 44:
5138 /* rule 44 can match eol */
5139 YY_RULE_SETUP
5140 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);
5141         YY_BREAK
5142 case 45:
5143 /* rule 45 can match eol */
5144 YY_RULE_SETUP
5145 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);
5146         YY_BREAK
5147 case 46:
5148 YY_RULE_SETUP
5149 {
5150   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5151   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5152   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5153  }
5154         YY_BREAK
5155 case 47:
5156 YY_RULE_SETUP
5157 {
5158   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5159   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5160   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5161   switch (YY_START) {
5162    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;
5163    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5164    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5165    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5166    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;
5167    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5168    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5169   }
5170  }
5171         YY_BREAK
5172 case 48:
5173 YY_RULE_SETUP
5174 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5175         YY_BREAK
5176 case 49:
5177 YY_RULE_SETUP
5178 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5179         YY_BREAK
5180 case YY_STATE_EOF(AL_surfxml_trace):
5181 FAIL("EOF in attribute list of `trace' element.");
5182         YY_BREAK
5183
5184 case 50:
5185 /* rule 50 can match eol */
5186 YY_RULE_SETUP
5187 {
5188   LEAVE;
5189   BUFFERDONE;
5190   ETag_surfxml_trace();
5191   surfxml_pcdata_ix = popbuffer();
5192   popbuffer(); /* attribute */
5193   switch (YY_START) {
5194    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;
5195    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5196    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5197    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5198    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;
5199    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5200    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5201   }
5202  }
5203         YY_BREAK
5204 case 51:
5205 /* rule 51 can match eol */
5206 YY_RULE_SETUP
5207 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5208         YY_BREAK
5209 case YY_STATE_EOF(IN_trace):
5210 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5211         YY_BREAK
5212
5213 case 52:
5214 /* rule 52 can match eol */
5215 YY_RULE_SETUP
5216 FAIL("Starting tag <random> is not allowed here.");
5217         YY_BREAK
5218 case 53:
5219 /* rule 53 can match eol */
5220 YY_RULE_SETUP
5221 {
5222   AX_surfxml_random_id = 0;
5223   surfxml_random_id_isset = 0;
5224   AX_surfxml_random_min = 0;
5225   surfxml_random_min_isset = 0;
5226   AX_surfxml_random_max = 0;
5227   surfxml_random_max_isset = 0;
5228   AX_surfxml_random_mean = 0;
5229   surfxml_random_mean_isset = 0;
5230   AX_surfxml_random_std_deviation = 0;
5231   surfxml_random_std_deviation_isset = 0;
5232   AX_surfxml_random_seed = 5;
5233   surfxml_random_seed_isset = 0;
5234   AX_surfxml_random_radical = 0;
5235   surfxml_random_radical_isset = 0;
5236   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5237   surfxml_random_generator_isset = 0;
5238   ENTER(AL_surfxml_random); pushbuffer(0);
5239   }
5240         YY_BREAK
5241
5242 case 54:
5243 /* rule 54 can match eol */
5244 YY_RULE_SETUP
5245 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);
5246         YY_BREAK
5247 case 55:
5248 /* rule 55 can match eol */
5249 YY_RULE_SETUP
5250 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);
5251         YY_BREAK
5252 case 56:
5253 /* rule 56 can match eol */
5254 YY_RULE_SETUP
5255 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);
5256         YY_BREAK
5257 case 57:
5258 /* rule 57 can match eol */
5259 YY_RULE_SETUP
5260 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);
5261         YY_BREAK
5262 case 58:
5263 /* rule 58 can match eol */
5264 YY_RULE_SETUP
5265 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);
5266         YY_BREAK
5267 case 59:
5268 /* rule 59 can match eol */
5269 YY_RULE_SETUP
5270 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);
5271         YY_BREAK
5272 case 60:
5273 /* rule 60 can match eol */
5274 YY_RULE_SETUP
5275 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);
5276         YY_BREAK
5277 case 61:
5278 /* rule 61 can match eol */
5279 YY_RULE_SETUP
5280 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);
5281         YY_BREAK
5282 case 62:
5283 /* rule 62 can match eol */
5284 YY_RULE_SETUP
5285 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);
5286         YY_BREAK
5287 case 63:
5288 /* rule 63 can match eol */
5289 YY_RULE_SETUP
5290 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);
5291         YY_BREAK
5292 case 64:
5293 /* rule 64 can match eol */
5294 YY_RULE_SETUP
5295 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);
5296         YY_BREAK
5297 case 65:
5298 /* rule 65 can match eol */
5299 YY_RULE_SETUP
5300 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);
5301         YY_BREAK
5302 case 66:
5303 /* rule 66 can match eol */
5304 YY_RULE_SETUP
5305 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);
5306         YY_BREAK
5307 case 67:
5308 /* rule 67 can match eol */
5309 YY_RULE_SETUP
5310 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);
5311         YY_BREAK
5312 case 68:
5313 /* rule 68 can match eol */
5314 case 69:
5315 /* rule 69 can match eol */
5316 YY_RULE_SETUP
5317 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5318         YY_BREAK
5319 case 70:
5320 /* rule 70 can match eol */
5321 case 71:
5322 /* rule 71 can match eol */
5323 YY_RULE_SETUP
5324 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5325         YY_BREAK
5326 case 72:
5327 /* rule 72 can match eol */
5328 case 73:
5329 /* rule 73 can match eol */
5330 YY_RULE_SETUP
5331 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5332         YY_BREAK
5333 case 74:
5334 /* rule 74 can match eol */
5335 case 75:
5336 /* rule 75 can match eol */
5337 YY_RULE_SETUP
5338 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5339         YY_BREAK
5340 case 76:
5341 YY_RULE_SETUP
5342 {
5343   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5344   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5345   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5346   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5347   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5348   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
5349  }
5350         YY_BREAK
5351 case 77:
5352 YY_RULE_SETUP
5353 {
5354   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5355   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5356   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5357   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5358   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5359   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5360   switch (YY_START) {
5361    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5362   }
5363  }
5364         YY_BREAK
5365 case 78:
5366 YY_RULE_SETUP
5367 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
5368         YY_BREAK
5369 case 79:
5370 YY_RULE_SETUP
5371 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
5372         YY_BREAK
5373 case YY_STATE_EOF(AL_surfxml_random):
5374 FAIL("EOF in attribute list of `random' element.");
5375         YY_BREAK
5376
5377 case 80:
5378 /* rule 80 can match eol */
5379 YY_RULE_SETUP
5380 {
5381   LEAVE;
5382   ETag_surfxml_random();
5383   popbuffer(); /* attribute */
5384   switch (YY_START) {
5385    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5386   }
5387  }
5388         YY_BREAK
5389 case 81:
5390 /* rule 81 can match eol */
5391 YY_RULE_SETUP
5392 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
5393         YY_BREAK
5394 case 82:
5395 YY_RULE_SETUP
5396 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
5397         YY_BREAK
5398 case YY_STATE_EOF(S_surfxml_random):
5399 case YY_STATE_EOF(S_surfxml_random_2):
5400 case YY_STATE_EOF(E_surfxml_random):
5401 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
5402         YY_BREAK
5403
5404 case 83:
5405 /* rule 83 can match eol */
5406 YY_RULE_SETUP
5407 FAIL("Starting tag <trace_connect> is not allowed here.");
5408         YY_BREAK
5409 case 84:
5410 /* rule 84 can match eol */
5411 YY_RULE_SETUP
5412 {
5413   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5414   surfxml_trace_connect_kind_isset = 0;
5415   AX_surfxml_trace_connect_trace = 0;
5416   surfxml_trace_connect_trace_isset = 0;
5417   AX_surfxml_trace_connect_element = 0;
5418   surfxml_trace_connect_element_isset = 0;
5419   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
5420   }
5421         YY_BREAK
5422
5423 case 85:
5424 /* rule 85 can match eol */
5425 case 86:
5426 /* rule 86 can match eol */
5427 YY_RULE_SETUP
5428 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
5429         YY_BREAK
5430 case 87:
5431 /* rule 87 can match eol */
5432 case 88:
5433 /* rule 88 can match eol */
5434 YY_RULE_SETUP
5435 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
5436         YY_BREAK
5437 case 89:
5438 /* rule 89 can match eol */
5439 case 90:
5440 /* rule 90 can match eol */
5441 YY_RULE_SETUP
5442 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
5443         YY_BREAK
5444 case 91:
5445 /* rule 91 can match eol */
5446 case 92:
5447 /* rule 92 can match eol */
5448 YY_RULE_SETUP
5449 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
5450         YY_BREAK
5451 case 93:
5452 /* rule 93 can match eol */
5453 case 94:
5454 /* rule 94 can match eol */
5455 YY_RULE_SETUP
5456 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
5457         YY_BREAK
5458 case 95:
5459 /* rule 95 can match eol */
5460 YY_RULE_SETUP
5461 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);
5462         YY_BREAK
5463 case 96:
5464 /* rule 96 can match eol */
5465 YY_RULE_SETUP
5466 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);
5467         YY_BREAK
5468 case 97:
5469 /* rule 97 can match eol */
5470 YY_RULE_SETUP
5471 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);
5472         YY_BREAK
5473 case 98:
5474 /* rule 98 can match eol */
5475 YY_RULE_SETUP
5476 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);
5477         YY_BREAK
5478 case 99:
5479 YY_RULE_SETUP
5480 {
5481   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5482   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5483   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
5484  }
5485         YY_BREAK
5486 case 100:
5487 YY_RULE_SETUP
5488 {
5489   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
5490   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
5491   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
5492   switch (YY_START) {
5493    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;
5494    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5495    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5496    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5497    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;
5498    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5499    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5500   }
5501  }
5502         YY_BREAK
5503 case 101:
5504 YY_RULE_SETUP
5505 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
5506         YY_BREAK
5507 case 102:
5508 YY_RULE_SETUP
5509 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
5510         YY_BREAK
5511 case YY_STATE_EOF(AL_surfxml_trace_connect):
5512 FAIL("EOF in attribute list of `trace_connect' element.");
5513         YY_BREAK
5514
5515 case 103:
5516 /* rule 103 can match eol */
5517 YY_RULE_SETUP
5518 {
5519   LEAVE;
5520   ETag_surfxml_trace_connect();
5521   popbuffer(); /* attribute */
5522   switch (YY_START) {
5523    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;
5524    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5525    case S_surfxml_AS_2: SET(S_surfxml_AS_3); break;
5526    case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
5527    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;
5528    case S_surfxml_AS_12: case S_surfxml_AS_9: case S_surfxml_AS_13: SET(S_surfxml_AS_13); break;
5529    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5530   }
5531  }
5532         YY_BREAK
5533 case 104:
5534 /* rule 104 can match eol */
5535 YY_RULE_SETUP
5536 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
5537         YY_BREAK
5538 case 105:
5539 YY_RULE_SETUP
5540 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
5541         YY_BREAK
5542 case YY_STATE_EOF(E_surfxml_trace_connect):
5543 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
5544         YY_BREAK
5545
5546 case 106:
5547 /* rule 106 can match eol */
5548 YY_RULE_SETUP
5549 FAIL("Starting tag <AS> is not allowed here.");
5550         YY_BREAK
5551 case 107:
5552 /* rule 107 can match eol */
5553 YY_RULE_SETUP
5554 {
5555   AX_surfxml_AS_id = 0;
5556   surfxml_AS_id_isset = 0;
5557   AX_surfxml_AS_routing = 0;
5558   surfxml_AS_routing_isset = 0;
5559   ENTER(AL_surfxml_AS); pushbuffer(0);
5560   }
5561         YY_BREAK
5562
5563 case 108:
5564 /* rule 108 can match eol */
5565 YY_RULE_SETUP
5566 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);
5567         YY_BREAK
5568 case 109:
5569 /* rule 109 can match eol */
5570 YY_RULE_SETUP
5571 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);
5572         YY_BREAK
5573 case 110:
5574 /* rule 110 can match eol */
5575 YY_RULE_SETUP
5576 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);
5577         YY_BREAK
5578 case 111:
5579 /* rule 111 can match eol */
5580 YY_RULE_SETUP
5581 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);
5582         YY_BREAK
5583 case 112:
5584 YY_RULE_SETUP
5585 {
5586   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5587   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5588   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5589  }
5590         YY_BREAK
5591 case 113:
5592 YY_RULE_SETUP
5593 {
5594   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5595   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5596   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5597   switch (YY_START) {
5598    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5599    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;
5600    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5601   }
5602  }
5603         YY_BREAK
5604 case 114:
5605 YY_RULE_SETUP
5606 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5607         YY_BREAK
5608 case 115:
5609 YY_RULE_SETUP
5610 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5611         YY_BREAK
5612 case YY_STATE_EOF(AL_surfxml_AS):
5613 FAIL("EOF in attribute list of `AS' element.");
5614         YY_BREAK
5615
5616 case 116:
5617 /* rule 116 can match eol */
5618 YY_RULE_SETUP
5619 {
5620   LEAVE;
5621   ETag_surfxml_AS();
5622   popbuffer(); /* attribute */
5623   switch (YY_START) {
5624    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5625    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;
5626    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5627   }
5628  }
5629         YY_BREAK
5630 case 117:
5631 /* rule 117 can match eol */
5632 YY_RULE_SETUP
5633 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5634         YY_BREAK
5635 case 118:
5636 YY_RULE_SETUP
5637 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5638         YY_BREAK
5639 case YY_STATE_EOF(S_surfxml_AS_9):
5640 case YY_STATE_EOF(S_surfxml_AS_1):
5641 case YY_STATE_EOF(S_surfxml_AS_11):
5642 case YY_STATE_EOF(S_surfxml_AS_6):
5643 case YY_STATE_EOF(E_surfxml_AS):
5644 case YY_STATE_EOF(S_surfxml_AS_3):
5645 case YY_STATE_EOF(S_surfxml_AS_13):
5646 case YY_STATE_EOF(S_surfxml_AS_8):
5647 case YY_STATE_EOF(S_surfxml_AS):
5648 case YY_STATE_EOF(S_surfxml_AS_4):
5649 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5650         YY_BREAK
5651
5652 case 119:
5653 /* rule 119 can match eol */
5654 YY_RULE_SETUP
5655 FAIL("Starting tag <storage_type> is not allowed here.");
5656         YY_BREAK
5657 case 120:
5658 /* rule 120 can match eol */
5659 YY_RULE_SETUP
5660 {
5661   AX_surfxml_storage_type_id = 0;
5662   surfxml_storage_type_id_isset = 0;
5663   AX_surfxml_storage_type_model = 0;
5664   surfxml_storage_type_model_isset = 0;
5665   AX_surfxml_storage_type_size = 0;
5666   surfxml_storage_type_size_isset = 0;
5667   AX_surfxml_storage_type_content = 0;
5668   surfxml_storage_type_content_isset = 0;
5669   ENTER(AL_surfxml_storage_type); pushbuffer(0);
5670   }
5671         YY_BREAK
5672
5673 case 121:
5674 /* rule 121 can match eol */
5675 YY_RULE_SETUP
5676 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);
5677         YY_BREAK
5678 case 122:
5679 /* rule 122 can match eol */
5680 YY_RULE_SETUP
5681 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);
5682         YY_BREAK
5683 case 123:
5684 /* rule 123 can match eol */
5685 YY_RULE_SETUP
5686 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);
5687         YY_BREAK
5688 case 124:
5689 /* rule 124 can match eol */
5690 YY_RULE_SETUP
5691 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);
5692         YY_BREAK
5693 case 125:
5694 /* rule 125 can match eol */
5695 YY_RULE_SETUP
5696 if (surfxml_storage_type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage_type>");} surfxml_storage_type_size_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_type_size);
5697         YY_BREAK
5698 case 126:
5699 /* rule 126 can match eol */
5700 YY_RULE_SETUP
5701 if (surfxml_storage_type_size_isset != 0) {FAIL("Multiple definition of attribute size in <surfxml_storage_type>");}  surfxml_storage_type_size_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_type_size);
5702         YY_BREAK
5703 case 127:
5704 /* rule 127 can match eol */
5705 YY_RULE_SETUP
5706 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);
5707         YY_BREAK
5708 case 128:
5709 /* rule 128 can match eol */
5710 YY_RULE_SETUP
5711 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);
5712         YY_BREAK
5713 case 129:
5714 YY_RULE_SETUP
5715 {
5716   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5717   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5718   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
5719   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
5720  }
5721         YY_BREAK
5722 case 130:
5723 YY_RULE_SETUP
5724 {
5725   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
5726   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
5727   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
5728   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
5729   switch (YY_START) {
5730    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5731    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5732   }
5733  }
5734         YY_BREAK
5735 case 131:
5736 YY_RULE_SETUP
5737 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
5738         YY_BREAK
5739 case 132:
5740 YY_RULE_SETUP
5741 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
5742         YY_BREAK
5743 case YY_STATE_EOF(AL_surfxml_storage_type):
5744 FAIL("EOF in attribute list of `storage_type' element.");
5745         YY_BREAK
5746
5747 case 133:
5748 /* rule 133 can match eol */
5749 YY_RULE_SETUP
5750 {
5751   LEAVE;
5752   ETag_surfxml_storage_type();
5753   popbuffer(); /* attribute */
5754   switch (YY_START) {
5755    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5756    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5757   }
5758  }
5759         YY_BREAK
5760 case 134:
5761 /* rule 134 can match eol */
5762 YY_RULE_SETUP
5763 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
5764         YY_BREAK
5765 case 135:
5766 YY_RULE_SETUP
5767 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
5768         YY_BREAK
5769 case YY_STATE_EOF(E_surfxml_storage_type):
5770 case YY_STATE_EOF(S_surfxml_storage_type_2):
5771 case YY_STATE_EOF(S_surfxml_storage_type):
5772 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
5773         YY_BREAK
5774
5775 case 136:
5776 /* rule 136 can match eol */
5777 YY_RULE_SETUP
5778 FAIL("Starting tag <storage> is not allowed here.");
5779         YY_BREAK
5780 case 137:
5781 /* rule 137 can match eol */
5782 YY_RULE_SETUP
5783 {
5784   AX_surfxml_storage_id = 0;
5785   surfxml_storage_id_isset = 0;
5786   AX_surfxml_storage_typeId = 0;
5787   surfxml_storage_typeId_isset = 0;
5788   AX_surfxml_storage_content = 0;
5789   surfxml_storage_content_isset = 0;
5790   ENTER(AL_surfxml_storage); pushbuffer(0);
5791   }
5792         YY_BREAK
5793
5794 case 138:
5795 /* rule 138 can match eol */
5796 YY_RULE_SETUP
5797 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);
5798         YY_BREAK
5799 case 139:
5800 /* rule 139 can match eol */
5801 YY_RULE_SETUP
5802 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);
5803         YY_BREAK
5804 case 140:
5805 /* rule 140 can match eol */
5806 YY_RULE_SETUP
5807 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);
5808         YY_BREAK
5809 case 141:
5810 /* rule 141 can match eol */
5811 YY_RULE_SETUP
5812 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);
5813         YY_BREAK
5814 case 142:
5815 /* rule 142 can match eol */
5816 YY_RULE_SETUP
5817 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");} surfxml_storage_content_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content);
5818         YY_BREAK
5819 case 143:
5820 /* rule 143 can match eol */
5821 YY_RULE_SETUP
5822 if (surfxml_storage_content_isset != 0) {FAIL("Multiple definition of attribute content in <surfxml_storage>");}  surfxml_storage_content_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content);
5823         YY_BREAK
5824 case 144:
5825 YY_RULE_SETUP
5826 {
5827   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5828   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5829   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
5830  }
5831         YY_BREAK
5832 case 145:
5833 YY_RULE_SETUP
5834 {
5835   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
5836   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
5837   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
5838   switch (YY_START) {
5839    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5840    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5841   }
5842  }
5843         YY_BREAK
5844 case 146:
5845 YY_RULE_SETUP
5846 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
5847         YY_BREAK
5848 case 147:
5849 YY_RULE_SETUP
5850 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
5851         YY_BREAK
5852 case YY_STATE_EOF(AL_surfxml_storage):
5853 FAIL("EOF in attribute list of `storage' element.");
5854         YY_BREAK
5855
5856 case 148:
5857 /* rule 148 can match eol */
5858 YY_RULE_SETUP
5859 {
5860   LEAVE;
5861   ETag_surfxml_storage();
5862   popbuffer(); /* attribute */
5863   switch (YY_START) {
5864    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
5865    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
5866   }
5867  }
5868         YY_BREAK
5869 case 149:
5870 /* rule 149 can match eol */
5871 YY_RULE_SETUP
5872 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
5873         YY_BREAK
5874 case 150:
5875 YY_RULE_SETUP
5876 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
5877         YY_BREAK
5878 case YY_STATE_EOF(E_surfxml_storage):
5879 case YY_STATE_EOF(S_surfxml_storage):
5880 case YY_STATE_EOF(S_surfxml_storage_2):
5881 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
5882         YY_BREAK
5883
5884 case 151:
5885 /* rule 151 can match eol */
5886 YY_RULE_SETUP
5887 FAIL("Starting tag <mount> is not allowed here.");
5888         YY_BREAK
5889 case 152:
5890 /* rule 152 can match eol */
5891 YY_RULE_SETUP
5892 {
5893   AX_surfxml_mount_id = 0;
5894   surfxml_mount_id_isset = 0;
5895   AX_surfxml_mount_name = 0;
5896   surfxml_mount_name_isset = 0;
5897   ENTER(AL_surfxml_mount); pushbuffer(0);
5898   }
5899         YY_BREAK
5900
5901 case 153:
5902 /* rule 153 can match eol */
5903 YY_RULE_SETUP
5904 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);
5905         YY_BREAK
5906 case 154:
5907 /* rule 154 can match eol */
5908 YY_RULE_SETUP
5909 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);
5910         YY_BREAK
5911 case 155:
5912 /* rule 155 can match eol */
5913 YY_RULE_SETUP
5914 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);
5915         YY_BREAK
5916 case 156:
5917 /* rule 156 can match eol */
5918 YY_RULE_SETUP
5919 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);
5920         YY_BREAK
5921 case 157:
5922 YY_RULE_SETUP
5923 {
5924   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
5925   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
5926   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
5927  }
5928         YY_BREAK
5929 case 158:
5930 YY_RULE_SETUP
5931 {
5932   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
5933   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
5934   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
5935   switch (YY_START) {
5936    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5937   }
5938  }
5939         YY_BREAK
5940 case 159:
5941 YY_RULE_SETUP
5942 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
5943         YY_BREAK
5944 case 160:
5945 YY_RULE_SETUP
5946 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
5947         YY_BREAK
5948 case YY_STATE_EOF(AL_surfxml_mount):
5949 FAIL("EOF in attribute list of `mount' element.");
5950         YY_BREAK
5951
5952 case 161:
5953 /* rule 161 can match eol */
5954 YY_RULE_SETUP
5955 {
5956   LEAVE;
5957   ETag_surfxml_mount();
5958   popbuffer(); /* attribute */
5959   switch (YY_START) {
5960    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
5961   }
5962  }
5963         YY_BREAK
5964 case 162:
5965 /* rule 162 can match eol */
5966 YY_RULE_SETUP
5967 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
5968         YY_BREAK
5969 case 163:
5970 YY_RULE_SETUP
5971 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
5972         YY_BREAK
5973 case YY_STATE_EOF(E_surfxml_mount):
5974 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
5975         YY_BREAK
5976
5977 case 164:
5978 /* rule 164 can match eol */
5979 YY_RULE_SETUP
5980 FAIL("Starting tag <mstorage> is not allowed here.");
5981         YY_BREAK
5982 case 165:
5983 /* rule 165 can match eol */
5984 YY_RULE_SETUP
5985 {
5986   AX_surfxml_mstorage_typeId = 0;
5987   surfxml_mstorage_typeId_isset = 0;
5988   AX_surfxml_mstorage_name = 0;
5989   surfxml_mstorage_name_isset = 0;
5990   ENTER(AL_surfxml_mstorage); pushbuffer(0);
5991   }
5992         YY_BREAK
5993
5994 case 166:
5995 /* rule 166 can match eol */
5996 YY_RULE_SETUP
5997 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);
5998         YY_BREAK
5999 case 167:
6000 /* rule 167 can match eol */
6001 YY_RULE_SETUP
6002 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);
6003         YY_BREAK
6004 case 168:
6005 /* rule 168 can match eol */
6006 YY_RULE_SETUP
6007 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);
6008         YY_BREAK
6009 case 169:
6010 /* rule 169 can match eol */
6011 YY_RULE_SETUP
6012 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);
6013         YY_BREAK
6014 case 170:
6015 YY_RULE_SETUP
6016 {
6017   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6018   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6019   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6020  }
6021         YY_BREAK
6022 case 171:
6023 YY_RULE_SETUP
6024 {
6025   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6026   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6027   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6028   switch (YY_START) {
6029    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6030   }
6031  }
6032         YY_BREAK
6033 case 172:
6034 YY_RULE_SETUP
6035 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6036         YY_BREAK
6037 case 173:
6038 YY_RULE_SETUP
6039 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6040         YY_BREAK
6041 case YY_STATE_EOF(AL_surfxml_mstorage):
6042 FAIL("EOF in attribute list of `mstorage' element.");
6043         YY_BREAK
6044
6045 case 174:
6046 /* rule 174 can match eol */
6047 YY_RULE_SETUP
6048 {
6049   LEAVE;
6050   ETag_surfxml_mstorage();
6051   popbuffer(); /* attribute */
6052   switch (YY_START) {
6053    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6054   }
6055  }
6056         YY_BREAK
6057 case 175:
6058 /* rule 175 can match eol */
6059 YY_RULE_SETUP
6060 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6061         YY_BREAK
6062 case 176:
6063 YY_RULE_SETUP
6064 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6065         YY_BREAK
6066 case YY_STATE_EOF(E_surfxml_mstorage):
6067 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6068         YY_BREAK
6069
6070 case 177:
6071 /* rule 177 can match eol */
6072 YY_RULE_SETUP
6073 FAIL("Starting tag <host> is not allowed here.");
6074         YY_BREAK
6075 case 178:
6076 /* rule 178 can match eol */
6077 YY_RULE_SETUP
6078 {
6079   AX_surfxml_host_id = 0;
6080   surfxml_host_id_isset = 0;
6081   AX_surfxml_host_power = 0;
6082   surfxml_host_power_isset = 0;
6083   AX_surfxml_host_core = 16;
6084   surfxml_host_core_isset = 0;
6085   AX_surfxml_host_availability = 18;
6086   surfxml_host_availability_isset = 0;
6087   AX_surfxml_host_availability_file = 0;
6088   surfxml_host_availability_file_isset = 0;
6089   AX_surfxml_host_state = A_surfxml_host_state_ON;
6090   surfxml_host_state_isset = 0;
6091   AX_surfxml_host_state_file = 0;
6092   surfxml_host_state_file_isset = 0;
6093   AX_surfxml_host_coordinates = 0;
6094   surfxml_host_coordinates_isset = 0;
6095   ENTER(AL_surfxml_host); pushbuffer(0);
6096   }
6097         YY_BREAK
6098
6099 case 179:
6100 /* rule 179 can match eol */
6101 YY_RULE_SETUP
6102 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);
6103         YY_BREAK
6104 case 180:
6105 /* rule 180 can match eol */
6106 YY_RULE_SETUP
6107 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);
6108         YY_BREAK
6109 case 181:
6110 /* rule 181 can match eol */
6111 YY_RULE_SETUP
6112 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);
6113         YY_BREAK
6114 case 182:
6115 /* rule 182 can match eol */
6116 YY_RULE_SETUP
6117 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);
6118         YY_BREAK
6119 case 183:
6120 /* rule 183 can match eol */
6121 YY_RULE_SETUP
6122 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);
6123         YY_BREAK
6124 case 184:
6125 /* rule 184 can match eol */
6126 YY_RULE_SETUP
6127 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);
6128         YY_BREAK
6129 case 185:
6130 /* rule 185 can match eol */
6131 YY_RULE_SETUP
6132 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);
6133         YY_BREAK
6134 case 186:
6135 /* rule 186 can match eol */
6136 YY_RULE_SETUP
6137 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);
6138         YY_BREAK
6139 case 187:
6140 /* rule 187 can match eol */
6141 YY_RULE_SETUP
6142 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);
6143         YY_BREAK
6144 case 188:
6145 /* rule 188 can match eol */
6146 YY_RULE_SETUP
6147 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);
6148         YY_BREAK
6149 case 189:
6150 /* rule 189 can match eol */
6151 case 190:
6152 /* rule 190 can match eol */
6153 YY_RULE_SETUP
6154 A_surfxml_host_state = A_surfxml_host_state_ON;
6155         YY_BREAK
6156 case 191:
6157 /* rule 191 can match eol */
6158 case 192:
6159 /* rule 192 can match eol */
6160 YY_RULE_SETUP
6161 A_surfxml_host_state = A_surfxml_host_state_OFF;
6162         YY_BREAK
6163 case 193:
6164 /* rule 193 can match eol */
6165 YY_RULE_SETUP
6166 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);
6167         YY_BREAK
6168 case 194:
6169 /* rule 194 can match eol */
6170 YY_RULE_SETUP
6171 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);
6172         YY_BREAK
6173 case 195:
6174 /* rule 195 can match eol */
6175 YY_RULE_SETUP
6176 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);
6177         YY_BREAK
6178 case 196:
6179 /* rule 196 can match eol */
6180 YY_RULE_SETUP
6181 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);
6182         YY_BREAK
6183 case 197:
6184 YY_RULE_SETUP
6185 {
6186   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6187   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6188   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6189  }
6190         YY_BREAK
6191 case 198:
6192 YY_RULE_SETUP
6193 {
6194   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6195   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6196   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6197   switch (YY_START) {
6198    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6199   }
6200  }
6201         YY_BREAK
6202 case 199:
6203 YY_RULE_SETUP
6204 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6205         YY_BREAK
6206 case 200:
6207 YY_RULE_SETUP
6208 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6209         YY_BREAK
6210 case YY_STATE_EOF(AL_surfxml_host):
6211 FAIL("EOF in attribute list of `host' element.");
6212         YY_BREAK
6213
6214 case 201:
6215 /* rule 201 can match eol */
6216 YY_RULE_SETUP
6217 {
6218   LEAVE;
6219   ETag_surfxml_host();
6220   popbuffer(); /* attribute */
6221   switch (YY_START) {
6222    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6223   }
6224  }
6225         YY_BREAK
6226 case 202:
6227 /* rule 202 can match eol */
6228 YY_RULE_SETUP
6229 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6230         YY_BREAK
6231 case 203:
6232 YY_RULE_SETUP
6233 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6234         YY_BREAK
6235 case YY_STATE_EOF(S_surfxml_host):
6236 case YY_STATE_EOF(E_surfxml_host):
6237 case YY_STATE_EOF(S_surfxml_host_2):
6238 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6239         YY_BREAK
6240
6241 case 204:
6242 /* rule 204 can match eol */
6243 YY_RULE_SETUP
6244 FAIL("Starting tag <cluster> is not allowed here.");
6245         YY_BREAK
6246 case 205:
6247 /* rule 205 can match eol */
6248 YY_RULE_SETUP
6249 {
6250   AX_surfxml_cluster_id = 0;
6251   surfxml_cluster_id_isset = 0;
6252   AX_surfxml_cluster_prefix = 0;
6253   surfxml_cluster_prefix_isset = 0;
6254   AX_surfxml_cluster_suffix = 0;
6255   surfxml_cluster_suffix_isset = 0;
6256   AX_surfxml_cluster_radical = 0;
6257   surfxml_cluster_radical_isset = 0;
6258   AX_surfxml_cluster_power = 0;
6259   surfxml_cluster_power_isset = 0;
6260   AX_surfxml_cluster_core = 22;
6261   surfxml_cluster_core_isset = 0;
6262   AX_surfxml_cluster_bw = 0;
6263   surfxml_cluster_bw_isset = 0;
6264   AX_surfxml_cluster_lat = 0;
6265   surfxml_cluster_lat_isset = 0;
6266   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6267   surfxml_cluster_sharing_policy_isset = 0;
6268   AX_surfxml_cluster_bb_bw = 0;
6269   surfxml_cluster_bb_bw_isset = 0;
6270   AX_surfxml_cluster_bb_lat = 0;
6271   surfxml_cluster_bb_lat_isset = 0;
6272   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6273   surfxml_cluster_bb_sharing_policy_isset = 0;
6274   AX_surfxml_cluster_availability_file = 0;
6275   surfxml_cluster_availability_file_isset = 0;
6276   AX_surfxml_cluster_state_file = 0;
6277   surfxml_cluster_state_file_isset = 0;
6278   AX_surfxml_cluster_router_id = 0;
6279   surfxml_cluster_router_id_isset = 0;
6280   ENTER(AL_surfxml_cluster); pushbuffer(0);
6281   }
6282         YY_BREAK
6283
6284 case 206:
6285 /* rule 206 can match eol */
6286 YY_RULE_SETUP
6287 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);
6288         YY_BREAK
6289 case 207:
6290 /* rule 207 can match eol */
6291 YY_RULE_SETUP
6292 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);
6293         YY_BREAK
6294 case 208:
6295 /* rule 208 can match eol */
6296 YY_RULE_SETUP
6297 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);
6298         YY_BREAK
6299 case 209:
6300 /* rule 209 can match eol */
6301 YY_RULE_SETUP
6302 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);
6303         YY_BREAK
6304 case 210:
6305 /* rule 210 can match eol */
6306 YY_RULE_SETUP
6307 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);
6308         YY_BREAK
6309 case 211:
6310 /* rule 211 can match eol */
6311 YY_RULE_SETUP
6312 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);
6313         YY_BREAK
6314 case 212:
6315 /* rule 212 can match eol */
6316 YY_RULE_SETUP
6317 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);
6318         YY_BREAK
6319 case 213:
6320 /* rule 213 can match eol */
6321 YY_RULE_SETUP
6322 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);
6323         YY_BREAK
6324 case 214:
6325 /* rule 214 can match eol */
6326 YY_RULE_SETUP
6327 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);
6328         YY_BREAK
6329 case 215:
6330 /* rule 215 can match eol */
6331 YY_RULE_SETUP
6332 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);
6333         YY_BREAK
6334 case 216:
6335 /* rule 216 can match eol */
6336 YY_RULE_SETUP
6337 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);
6338         YY_BREAK
6339 case 217:
6340 /* rule 217 can match eol */
6341 YY_RULE_SETUP
6342 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);
6343         YY_BREAK
6344 case 218:
6345 /* rule 218 can match eol */
6346 YY_RULE_SETUP
6347 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);
6348         YY_BREAK
6349 case 219:
6350 /* rule 219 can match eol */
6351 YY_RULE_SETUP
6352 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);
6353         YY_BREAK
6354 case 220:
6355 /* rule 220 can match eol */
6356 YY_RULE_SETUP
6357 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);
6358         YY_BREAK
6359 case 221:
6360 /* rule 221 can match eol */
6361 YY_RULE_SETUP
6362 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);
6363         YY_BREAK
6364 case 222:
6365 /* rule 222 can match eol */
6366 case 223:
6367 /* rule 223 can match eol */
6368 YY_RULE_SETUP
6369 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
6370         YY_BREAK
6371 case 224:
6372 /* rule 224 can match eol */
6373 case 225:
6374 /* rule 225 can match eol */
6375 YY_RULE_SETUP
6376 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
6377         YY_BREAK
6378 case 226:
6379 /* rule 226 can match eol */
6380 case 227:
6381 /* rule 227 can match eol */
6382 YY_RULE_SETUP
6383 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
6384         YY_BREAK
6385 case 228:
6386 /* rule 228 can match eol */
6387 YY_RULE_SETUP
6388 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);
6389         YY_BREAK
6390 case 229:
6391 /* rule 229 can match eol */
6392 YY_RULE_SETUP
6393 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);
6394         YY_BREAK
6395 case 230:
6396 /* rule 230 can match eol */
6397 YY_RULE_SETUP
6398 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);
6399         YY_BREAK
6400 case 231:
6401 /* rule 231 can match eol */
6402 YY_RULE_SETUP
6403 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);
6404         YY_BREAK
6405 case 232:
6406 /* rule 232 can match eol */
6407 case 233:
6408 /* rule 233 can match eol */
6409 YY_RULE_SETUP
6410 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
6411         YY_BREAK
6412 case 234:
6413 /* rule 234 can match eol */
6414 case 235:
6415 /* rule 235 can match eol */
6416 YY_RULE_SETUP
6417 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
6418         YY_BREAK
6419 case 236:
6420 /* rule 236 can match eol */
6421 YY_RULE_SETUP
6422 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);
6423         YY_BREAK
6424 case 237:
6425 /* rule 237 can match eol */
6426 YY_RULE_SETUP
6427 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);
6428         YY_BREAK
6429 case 238:
6430 /* rule 238 can match eol */
6431 YY_RULE_SETUP
6432 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);
6433         YY_BREAK
6434 case 239:
6435 /* rule 239 can match eol */
6436 YY_RULE_SETUP
6437 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);
6438         YY_BREAK
6439 case 240:
6440 /* rule 240 can match eol */
6441 YY_RULE_SETUP
6442 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);
6443         YY_BREAK
6444 case 241:
6445 /* rule 241 can match eol */
6446 YY_RULE_SETUP
6447 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);
6448         YY_BREAK
6449 case 242:
6450 YY_RULE_SETUP
6451 {
6452   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6453   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6454   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6455   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6456   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6457   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6458   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6459   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
6460  }
6461         YY_BREAK
6462 case 243:
6463 YY_RULE_SETUP
6464 {
6465   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6466   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6467   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6468   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6469   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
6470   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6471   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6472   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6473   switch (YY_START) {
6474    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6475    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;
6476    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6477   }
6478  }
6479         YY_BREAK
6480 case 244:
6481 YY_RULE_SETUP
6482 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6483         YY_BREAK
6484 case 245:
6485 YY_RULE_SETUP
6486 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6487         YY_BREAK
6488 case YY_STATE_EOF(AL_surfxml_cluster):
6489 FAIL("EOF in attribute list of `cluster' element.");
6490         YY_BREAK
6491
6492 case 246:
6493 /* rule 246 can match eol */
6494 YY_RULE_SETUP
6495 {
6496   LEAVE;
6497   ETag_surfxml_cluster();
6498   popbuffer(); /* attribute */
6499   switch (YY_START) {
6500    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6501    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;
6502    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6503   }
6504  }
6505         YY_BREAK
6506 case 247:
6507 /* rule 247 can match eol */
6508 YY_RULE_SETUP
6509 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6510         YY_BREAK
6511 case 248:
6512 YY_RULE_SETUP
6513 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
6514         YY_BREAK
6515 case YY_STATE_EOF(E_surfxml_cluster):
6516 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
6517         YY_BREAK
6518
6519 case 249:
6520 /* rule 249 can match eol */
6521 YY_RULE_SETUP
6522 FAIL("Starting tag <peer> is not allowed here.");
6523         YY_BREAK
6524 case 250:
6525 /* rule 250 can match eol */
6526 YY_RULE_SETUP
6527 {
6528   AX_surfxml_peer_id = 0;
6529   surfxml_peer_id_isset = 0;
6530   AX_surfxml_peer_power = 0;
6531   surfxml_peer_power_isset = 0;
6532   AX_surfxml_peer_bw_in = 0;
6533   surfxml_peer_bw_in_isset = 0;
6534   AX_surfxml_peer_bw_out = 0;
6535   surfxml_peer_bw_out_isset = 0;
6536   AX_surfxml_peer_lat = 0;
6537   surfxml_peer_lat_isset = 0;
6538   AX_surfxml_peer_coordinates = 0;
6539   surfxml_peer_coordinates_isset = 0;
6540   AX_surfxml_peer_availability_file = 0;
6541   surfxml_peer_availability_file_isset = 0;
6542   AX_surfxml_peer_state_file = 0;
6543   surfxml_peer_state_file_isset = 0;
6544   ENTER(AL_surfxml_peer); pushbuffer(0);
6545   }
6546         YY_BREAK
6547
6548 case 251:
6549 /* rule 251 can match eol */
6550 YY_RULE_SETUP
6551 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);
6552         YY_BREAK
6553 case 252:
6554 /* rule 252 can match eol */
6555 YY_RULE_SETUP
6556 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);
6557         YY_BREAK
6558 case 253:
6559 /* rule 253 can match eol */
6560 YY_RULE_SETUP
6561 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);
6562         YY_BREAK
6563 case 254:
6564 /* rule 254 can match eol */
6565 YY_RULE_SETUP
6566 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);
6567         YY_BREAK
6568 case 255:
6569 /* rule 255 can match eol */
6570 YY_RULE_SETUP
6571 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);
6572         YY_BREAK
6573 case 256:
6574 /* rule 256 can match eol */
6575 YY_RULE_SETUP
6576 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);
6577         YY_BREAK
6578 case 257:
6579 /* rule 257 can match eol */
6580 YY_RULE_SETUP
6581 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);
6582         YY_BREAK
6583 case 258:
6584 /* rule 258 can match eol */
6585 YY_RULE_SETUP
6586 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);
6587         YY_BREAK
6588 case 259:
6589 /* rule 259 can match eol */
6590 YY_RULE_SETUP
6591 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);
6592         YY_BREAK
6593 case 260:
6594 /* rule 260 can match eol */
6595 YY_RULE_SETUP
6596 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);
6597         YY_BREAK
6598 case 261:
6599 /* rule 261 can match eol */
6600 YY_RULE_SETUP
6601 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);
6602         YY_BREAK
6603 case 262:
6604 /* rule 262 can match eol */
6605 YY_RULE_SETUP
6606 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);
6607         YY_BREAK
6608 case 263:
6609 /* rule 263 can match eol */
6610 YY_RULE_SETUP
6611 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);
6612         YY_BREAK
6613 case 264:
6614 /* rule 264 can match eol */
6615 YY_RULE_SETUP
6616 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);
6617         YY_BREAK
6618 case 265:
6619 /* rule 265 can match eol */
6620 YY_RULE_SETUP
6621 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);
6622         YY_BREAK
6623 case 266:
6624 /* rule 266 can match eol */
6625 YY_RULE_SETUP
6626 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);
6627         YY_BREAK
6628 case 267:
6629 YY_RULE_SETUP
6630 {
6631   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6632   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6633   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6634   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6635   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6636   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
6637  }
6638         YY_BREAK
6639 case 268:
6640 YY_RULE_SETUP
6641 {
6642   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
6643   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
6644   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
6645   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
6646   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
6647   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
6648   switch (YY_START) {
6649    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6650    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;
6651    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6652   }
6653  }
6654         YY_BREAK
6655 case 269:
6656 YY_RULE_SETUP
6657 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
6658         YY_BREAK
6659 case 270:
6660 YY_RULE_SETUP
6661 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
6662         YY_BREAK
6663 case YY_STATE_EOF(AL_surfxml_peer):
6664 FAIL("EOF in attribute list of `peer' element.");
6665         YY_BREAK
6666
6667 case 271:
6668 /* rule 271 can match eol */
6669 YY_RULE_SETUP
6670 {
6671   LEAVE;
6672   ETag_surfxml_peer();
6673   popbuffer(); /* attribute */
6674   switch (YY_START) {
6675    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6676    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;
6677    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6678   }
6679  }
6680         YY_BREAK
6681 case 272:
6682 /* rule 272 can match eol */
6683 YY_RULE_SETUP
6684 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
6685         YY_BREAK
6686 case 273:
6687 YY_RULE_SETUP
6688 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
6689         YY_BREAK
6690 case YY_STATE_EOF(E_surfxml_peer):
6691 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
6692         YY_BREAK
6693
6694 case 274:
6695 /* rule 274 can match eol */
6696 YY_RULE_SETUP
6697 FAIL("Starting tag <router> is not allowed here.");
6698         YY_BREAK
6699 case 275:
6700 /* rule 275 can match eol */
6701 YY_RULE_SETUP
6702 {
6703   AX_surfxml_router_id = 0;
6704   surfxml_router_id_isset = 0;
6705   AX_surfxml_router_coordinates = 0;
6706   surfxml_router_coordinates_isset = 0;
6707   ENTER(AL_surfxml_router); pushbuffer(0);
6708   }
6709         YY_BREAK
6710
6711 case 276:
6712 /* rule 276 can match eol */
6713 YY_RULE_SETUP
6714 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);
6715         YY_BREAK
6716 case 277:
6717 /* rule 277 can match eol */
6718 YY_RULE_SETUP
6719 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);
6720         YY_BREAK
6721 case 278:
6722 /* rule 278 can match eol */
6723 YY_RULE_SETUP
6724 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);
6725         YY_BREAK
6726 case 279:
6727 /* rule 279 can match eol */
6728 YY_RULE_SETUP
6729 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);
6730         YY_BREAK
6731 case 280:
6732 YY_RULE_SETUP
6733 {
6734   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6735   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
6736  }
6737         YY_BREAK
6738 case 281:
6739 YY_RULE_SETUP
6740 {
6741   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
6742   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
6743   switch (YY_START) {
6744    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6745   }
6746  }
6747         YY_BREAK
6748 case 282:
6749 YY_RULE_SETUP
6750 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
6751         YY_BREAK
6752 case 283:
6753 YY_RULE_SETUP
6754 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
6755         YY_BREAK
6756 case YY_STATE_EOF(AL_surfxml_router):
6757 FAIL("EOF in attribute list of `router' element.");
6758         YY_BREAK
6759
6760 case 284:
6761 /* rule 284 can match eol */
6762 YY_RULE_SETUP
6763 {
6764   LEAVE;
6765   ETag_surfxml_router();
6766   popbuffer(); /* attribute */
6767   switch (YY_START) {
6768    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6769   }
6770  }
6771         YY_BREAK
6772 case 285:
6773 /* rule 285 can match eol */
6774 YY_RULE_SETUP
6775 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
6776         YY_BREAK
6777 case 286:
6778 YY_RULE_SETUP
6779 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
6780         YY_BREAK
6781 case YY_STATE_EOF(E_surfxml_router):
6782 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
6783         YY_BREAK
6784
6785 case 287:
6786 /* rule 287 can match eol */
6787 YY_RULE_SETUP
6788 FAIL("Starting tag <link> is not allowed here.");
6789         YY_BREAK
6790 case 288:
6791 /* rule 288 can match eol */
6792 YY_RULE_SETUP
6793 {
6794   AX_surfxml_link_id = 0;
6795   surfxml_link_id_isset = 0;
6796   AX_surfxml_link_bandwidth = 0;
6797   surfxml_link_bandwidth_isset = 0;
6798   AX_surfxml_link_bandwidth_file = 0;
6799   surfxml_link_bandwidth_file_isset = 0;
6800   AX_surfxml_link_latency = 24;
6801   surfxml_link_latency_isset = 0;
6802   AX_surfxml_link_latency_file = 0;
6803   surfxml_link_latency_file_isset = 0;
6804   AX_surfxml_link_state = A_surfxml_link_state_ON;
6805   surfxml_link_state_isset = 0;
6806   AX_surfxml_link_state_file = 0;
6807   surfxml_link_state_file_isset = 0;
6808   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6809   surfxml_link_sharing_policy_isset = 0;
6810   ENTER(AL_surfxml_link); pushbuffer(0);
6811   }
6812         YY_BREAK
6813
6814 case 289:
6815 /* rule 289 can match eol */
6816 YY_RULE_SETUP
6817 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);
6818         YY_BREAK
6819 case 290:
6820 /* rule 290 can match eol */
6821 YY_RULE_SETUP
6822 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);
6823         YY_BREAK
6824 case 291:
6825 /* rule 291 can match eol */
6826 YY_RULE_SETUP
6827 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);
6828         YY_BREAK
6829 case 292:
6830 /* rule 292 can match eol */
6831 YY_RULE_SETUP
6832 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);
6833         YY_BREAK
6834 case 293:
6835 /* rule 293 can match eol */
6836 YY_RULE_SETUP
6837 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);
6838         YY_BREAK
6839 case 294:
6840 /* rule 294 can match eol */
6841 YY_RULE_SETUP
6842 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);
6843         YY_BREAK
6844 case 295:
6845 /* rule 295 can match eol */
6846 YY_RULE_SETUP
6847 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);
6848         YY_BREAK
6849 case 296:
6850 /* rule 296 can match eol */
6851 YY_RULE_SETUP
6852 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);
6853         YY_BREAK
6854 case 297:
6855 /* rule 297 can match eol */
6856 YY_RULE_SETUP
6857 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);
6858         YY_BREAK
6859 case 298:
6860 /* rule 298 can match eol */
6861 YY_RULE_SETUP
6862 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);
6863         YY_BREAK
6864 case 299:
6865 /* rule 299 can match eol */
6866 case 300:
6867 /* rule 300 can match eol */
6868 YY_RULE_SETUP
6869 A_surfxml_link_state = A_surfxml_link_state_ON;
6870         YY_BREAK
6871 case 301:
6872 /* rule 301 can match eol */
6873 case 302:
6874 /* rule 302 can match eol */
6875 YY_RULE_SETUP
6876 A_surfxml_link_state = A_surfxml_link_state_OFF;
6877         YY_BREAK
6878 case 303:
6879 /* rule 303 can match eol */
6880 YY_RULE_SETUP
6881 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);
6882         YY_BREAK
6883 case 304:
6884 /* rule 304 can match eol */
6885 YY_RULE_SETUP
6886 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);
6887         YY_BREAK
6888 case 305:
6889 /* rule 305 can match eol */
6890 case 306:
6891 /* rule 306 can match eol */
6892 YY_RULE_SETUP
6893 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
6894         YY_BREAK
6895 case 307:
6896 /* rule 307 can match eol */
6897 case 308:
6898 /* rule 308 can match eol */
6899 YY_RULE_SETUP
6900 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
6901         YY_BREAK
6902 case 309:
6903 /* rule 309 can match eol */
6904 case 310:
6905 /* rule 310 can match eol */
6906 YY_RULE_SETUP
6907 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
6908         YY_BREAK
6909 case 311:
6910 YY_RULE_SETUP
6911 {
6912   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
6913   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
6914   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
6915  }
6916         YY_BREAK
6917 case 312:
6918 YY_RULE_SETUP
6919 {
6920   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
6921   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
6922   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
6923   switch (YY_START) {
6924    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6925    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6926   }
6927  }
6928         YY_BREAK
6929 case 313:
6930 YY_RULE_SETUP
6931 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
6932         YY_BREAK
6933 case 314:
6934 YY_RULE_SETUP
6935 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
6936         YY_BREAK
6937 case YY_STATE_EOF(AL_surfxml_link):
6938 FAIL("EOF in attribute list of `link' element.");
6939         YY_BREAK
6940
6941 case 315:
6942 /* rule 315 can match eol */
6943 YY_RULE_SETUP
6944 {
6945   LEAVE;
6946   ETag_surfxml_link();
6947   popbuffer(); /* attribute */
6948   switch (YY_START) {
6949    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS: SET(S_surfxml_AS_11); break;
6950    case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
6951   }
6952  }
6953         YY_BREAK
6954 case 316:
6955 /* rule 316 can match eol */
6956 YY_RULE_SETUP
6957 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
6958         YY_BREAK
6959 case 317:
6960 YY_RULE_SETUP
6961 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
6962         YY_BREAK
6963 case YY_STATE_EOF(E_surfxml_link):
6964 case YY_STATE_EOF(S_surfxml_link_2):
6965 case YY_STATE_EOF(S_surfxml_link):
6966 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
6967         YY_BREAK
6968
6969 case 318:
6970 /* rule 318 can match eol */
6971 YY_RULE_SETUP
6972 FAIL("Starting tag <route> is not allowed here.");
6973         YY_BREAK
6974 case 319:
6975 /* rule 319 can match eol */
6976 YY_RULE_SETUP
6977 {
6978   AX_surfxml_route_src = 0;
6979   surfxml_route_src_isset = 0;
6980   AX_surfxml_route_dst = 0;
6981   surfxml_route_dst_isset = 0;
6982   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
6983   surfxml_route_symmetrical_isset = 0;
6984   ENTER(AL_surfxml_route); pushbuffer(0);
6985   }
6986         YY_BREAK
6987
6988 case 320:
6989 /* rule 320 can match eol */
6990 YY_RULE_SETUP
6991 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);
6992         YY_BREAK
6993 case 321:
6994 /* rule 321 can match eol */
6995 YY_RULE_SETUP
6996 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);
6997         YY_BREAK
6998 case 322:
6999 /* rule 322 can match eol */
7000 YY_RULE_SETUP
7001 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);
7002         YY_BREAK
7003 case 323:
7004 /* rule 323 can match eol */
7005 YY_RULE_SETUP
7006 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);
7007         YY_BREAK
7008 case 324:
7009 /* rule 324 can match eol */
7010 case 325:
7011 /* rule 325 can match eol */
7012 YY_RULE_SETUP
7013 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
7014         YY_BREAK
7015 case 326:
7016 /* rule 326 can match eol */
7017 case 327:
7018 /* rule 327 can match eol */
7019 YY_RULE_SETUP
7020 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
7021         YY_BREAK
7022 case 328:
7023 YY_RULE_SETUP
7024 {
7025   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7026   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7027   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
7028  }
7029         YY_BREAK
7030 case 329:
7031 YY_RULE_SETUP
7032 {
7033   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
7034   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
7035   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
7036   switch (YY_START) {
7037    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;
7038   }
7039  }
7040         YY_BREAK
7041 case 330:
7042 YY_RULE_SETUP
7043 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
7044         YY_BREAK
7045 case 331:
7046 YY_RULE_SETUP
7047 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
7048         YY_BREAK
7049 case YY_STATE_EOF(AL_surfxml_route):
7050 FAIL("EOF in attribute list of `route' element.");
7051         YY_BREAK
7052
7053 case 332:
7054 /* rule 332 can match eol */
7055 YY_RULE_SETUP
7056 {
7057   LEAVE;
7058   ETag_surfxml_route();
7059   popbuffer(); /* attribute */
7060   switch (YY_START) {
7061    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;
7062   }
7063  }
7064         YY_BREAK
7065 case 333:
7066 /* rule 333 can match eol */
7067 YY_RULE_SETUP
7068 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
7069         YY_BREAK
7070 case 334:
7071 YY_RULE_SETUP
7072 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
7073         YY_BREAK
7074 case YY_STATE_EOF(S_surfxml_route):
7075 case YY_STATE_EOF(S_surfxml_route_2):
7076 case YY_STATE_EOF(E_surfxml_route):
7077 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
7078         YY_BREAK
7079
7080 case 335:
7081 /* rule 335 can match eol */
7082 YY_RULE_SETUP
7083 FAIL("Starting tag <ASroute> is not allowed here.");
7084         YY_BREAK
7085 case 336:
7086 /* rule 336 can match eol */
7087 YY_RULE_SETUP
7088 {
7089   AX_surfxml_ASroute_src = 0;
7090   surfxml_ASroute_src_isset = 0;
7091   AX_surfxml_ASroute_dst = 0;
7092   surfxml_ASroute_dst_isset = 0;
7093   AX_surfxml_ASroute_gw_src = 0;
7094   surfxml_ASroute_gw_src_isset = 0;
7095   AX_surfxml_ASroute_gw_dst = 0;
7096   surfxml_ASroute_gw_dst_isset = 0;
7097   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7098   surfxml_ASroute_symmetrical_isset = 0;
7099   ENTER(AL_surfxml_ASroute); pushbuffer(0);
7100   }
7101         YY_BREAK
7102
7103 case 337:
7104 /* rule 337 can match eol */
7105 YY_RULE_SETUP
7106 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);
7107         YY_BREAK
7108 case 338:
7109 /* rule 338 can match eol */
7110 YY_RULE_SETUP
7111 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);
7112         YY_BREAK
7113 case 339:
7114 /* rule 339 can match eol */
7115 YY_RULE_SETUP
7116 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);
7117         YY_BREAK
7118 case 340:
7119 /* rule 340 can match eol */
7120 YY_RULE_SETUP
7121 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);
7122         YY_BREAK
7123 case 341:
7124 /* rule 341 can match eol */
7125 YY_RULE_SETUP
7126 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);
7127         YY_BREAK
7128 case 342:
7129 /* rule 342 can match eol */
7130 YY_RULE_SETUP
7131 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);
7132         YY_BREAK
7133 case 343:
7134 /* rule 343 can match eol */
7135 YY_RULE_SETUP
7136 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);
7137         YY_BREAK
7138 case 344:
7139 /* rule 344 can match eol */
7140 YY_RULE_SETUP
7141 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);
7142         YY_BREAK
7143 case 345:
7144 /* rule 345 can match eol */
7145 case 346:
7146 /* rule 346 can match eol */
7147 YY_RULE_SETUP
7148 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
7149         YY_BREAK
7150 case 347:
7151 /* rule 347 can match eol */
7152 case 348:
7153 /* rule 348 can match eol */
7154 YY_RULE_SETUP
7155 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
7156         YY_BREAK
7157 case 349:
7158 YY_RULE_SETUP
7159 {
7160   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7161   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7162   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7163   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7164   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
7165  }
7166         YY_BREAK
7167 case 350:
7168 YY_RULE_SETUP
7169 {
7170   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
7171   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
7172   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
7173   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
7174   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
7175   switch (YY_START) {
7176    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;
7177   }
7178  }
7179         YY_BREAK
7180 case 351:
7181 YY_RULE_SETUP
7182 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
7183         YY_BREAK
7184 case 352:
7185 YY_RULE_SETUP
7186 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
7187         YY_BREAK
7188 case YY_STATE_EOF(AL_surfxml_ASroute):
7189 FAIL("EOF in attribute list of `ASroute' element.");
7190         YY_BREAK
7191
7192 case 353:
7193 /* rule 353 can match eol */
7194 YY_RULE_SETUP
7195 {
7196   LEAVE;
7197   ETag_surfxml_ASroute();
7198   popbuffer(); /* attribute */
7199   switch (YY_START) {
7200    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;
7201   }
7202  }
7203         YY_BREAK
7204 case 354:
7205 /* rule 354 can match eol */
7206 YY_RULE_SETUP
7207 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
7208         YY_BREAK
7209 case 355:
7210 YY_RULE_SETUP
7211 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
7212         YY_BREAK
7213 case YY_STATE_EOF(E_surfxml_ASroute):
7214 case YY_STATE_EOF(S_surfxml_ASroute):
7215 case YY_STATE_EOF(S_surfxml_ASroute_2):
7216 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
7217         YY_BREAK
7218
7219 case 356:
7220 /* rule 356 can match eol */
7221 YY_RULE_SETUP
7222 FAIL("Starting tag <link_ctn> is not allowed here.");
7223         YY_BREAK
7224 case 357:
7225 /* rule 357 can match eol */
7226 YY_RULE_SETUP
7227 {
7228   AX_surfxml_link_ctn_id = 0;
7229   surfxml_link_ctn_id_isset = 0;
7230   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7231   surfxml_link_ctn_direction_isset = 0;
7232   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
7233   }
7234         YY_BREAK
7235
7236 case 358:
7237 /* rule 358 can match eol */
7238 YY_RULE_SETUP
7239 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);
7240         YY_BREAK
7241 case 359:
7242 /* rule 359 can match eol */
7243 YY_RULE_SETUP
7244 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);
7245         YY_BREAK
7246 case 360:
7247 /* rule 360 can match eol */
7248 case 361:
7249 /* rule 361 can match eol */
7250 YY_RULE_SETUP
7251 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
7252         YY_BREAK
7253 case 362:
7254 /* rule 362 can match eol */
7255 case 363:
7256 /* rule 363 can match eol */
7257 YY_RULE_SETUP
7258 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
7259         YY_BREAK
7260 case 364:
7261 /* rule 364 can match eol */
7262 case 365:
7263 /* rule 365 can match eol */
7264 YY_RULE_SETUP
7265 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
7266         YY_BREAK
7267 case 366:
7268 YY_RULE_SETUP
7269 {
7270   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7271   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
7272  }
7273         YY_BREAK
7274 case 367:
7275 YY_RULE_SETUP
7276 {
7277   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7278   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
7279   switch (YY_START) {
7280    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7281    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7282    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7283    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7284   }
7285  }
7286         YY_BREAK
7287 case 368:
7288 YY_RULE_SETUP
7289 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7290         YY_BREAK
7291 case 369:
7292 YY_RULE_SETUP
7293 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7294         YY_BREAK
7295 case YY_STATE_EOF(AL_surfxml_link_ctn):
7296 FAIL("EOF in attribute list of `link_ctn' element.");
7297         YY_BREAK
7298
7299 case 370:
7300 /* rule 370 can match eol */
7301 YY_RULE_SETUP
7302 {
7303   LEAVE;
7304   ETag_surfxml_link_ctn();
7305   popbuffer(); /* attribute */
7306   switch (YY_START) {
7307    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
7308    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7309    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
7310    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7311   }
7312  }
7313         YY_BREAK
7314 case 371:
7315 /* rule 371 can match eol */
7316 YY_RULE_SETUP
7317 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7318         YY_BREAK
7319 case 372:
7320 YY_RULE_SETUP
7321 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7322         YY_BREAK
7323 case YY_STATE_EOF(E_surfxml_link_ctn):
7324 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7325         YY_BREAK
7326
7327 case 373:
7328 /* rule 373 can match eol */
7329 YY_RULE_SETUP
7330 FAIL("Starting tag <bypassRoute> is not allowed here.");
7331         YY_BREAK
7332 case 374:
7333 /* rule 374 can match eol */
7334 YY_RULE_SETUP
7335 {
7336   AX_surfxml_bypassRoute_src = 0;
7337   surfxml_bypassRoute_src_isset = 0;
7338   AX_surfxml_bypassRoute_dst = 0;
7339   surfxml_bypassRoute_dst_isset = 0;
7340   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7341   }
7342         YY_BREAK
7343
7344 case 375:
7345 /* rule 375 can match eol */
7346 YY_RULE_SETUP
7347 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);
7348         YY_BREAK
7349 case 376:
7350 /* rule 376 can match eol */
7351 YY_RULE_SETUP
7352 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);
7353         YY_BREAK
7354 case 377:
7355 /* rule 377 can match eol */
7356 YY_RULE_SETUP
7357 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);
7358         YY_BREAK
7359 case 378:
7360 /* rule 378 can match eol */
7361 YY_RULE_SETUP
7362 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);
7363         YY_BREAK
7364 case 379:
7365 YY_RULE_SETUP
7366 {
7367   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7368   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7369   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7370  }
7371         YY_BREAK
7372 case 380:
7373 YY_RULE_SETUP
7374 {
7375   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7376   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7377   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7378   switch (YY_START) {
7379    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;
7380   }
7381  }
7382         YY_BREAK
7383 case 381:
7384 YY_RULE_SETUP
7385 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
7386         YY_BREAK
7387 case 382:
7388 YY_RULE_SETUP
7389 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
7390         YY_BREAK
7391 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7392 FAIL("EOF in attribute list of `bypassRoute' element.");
7393         YY_BREAK
7394
7395 case 383:
7396 /* rule 383 can match eol */
7397 YY_RULE_SETUP
7398 {
7399   LEAVE;
7400   ETag_surfxml_bypassRoute();
7401   popbuffer(); /* attribute */
7402   switch (YY_START) {
7403    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;
7404   }
7405  }
7406         YY_BREAK
7407 case 384:
7408 /* rule 384 can match eol */
7409 YY_RULE_SETUP
7410 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
7411         YY_BREAK
7412 case 385:
7413 YY_RULE_SETUP
7414 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
7415         YY_BREAK
7416 case YY_STATE_EOF(S_surfxml_bypassRoute):
7417 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7418 case YY_STATE_EOF(E_surfxml_bypassRoute):
7419 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
7420         YY_BREAK
7421
7422 case 386:
7423 /* rule 386 can match eol */
7424 YY_RULE_SETUP
7425 FAIL("Starting tag <bypassASroute> is not allowed here.");
7426         YY_BREAK
7427 case 387:
7428 /* rule 387 can match eol */
7429 YY_RULE_SETUP
7430 {
7431   AX_surfxml_bypassASroute_src = 0;
7432   surfxml_bypassASroute_src_isset = 0;
7433   AX_surfxml_bypassASroute_dst = 0;
7434   surfxml_bypassASroute_dst_isset = 0;
7435   AX_surfxml_bypassASroute_gw_src = 0;
7436   surfxml_bypassASroute_gw_src_isset = 0;
7437   AX_surfxml_bypassASroute_gw_dst = 0;
7438   surfxml_bypassASroute_gw_dst_isset = 0;
7439   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
7440   }
7441         YY_BREAK
7442
7443 case 388:
7444 /* rule 388 can match eol */
7445 YY_RULE_SETUP
7446 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");} surfxml_bypassASroute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_src);
7447         YY_BREAK
7448 case 389:
7449 /* rule 389 can match eol */
7450 YY_RULE_SETUP
7451 if (surfxml_bypassASroute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_src);
7452         YY_BREAK
7453 case 390:
7454 /* rule 390 can match eol */
7455 YY_RULE_SETUP
7456 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_dst);
7457         YY_BREAK
7458 case 391:
7459 /* rule 391 can match eol */
7460 YY_RULE_SETUP
7461 if (surfxml_bypassASroute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_dst);
7462         YY_BREAK
7463 case 392:
7464 /* rule 392 can match eol */
7465 YY_RULE_SETUP
7466 if (surfxml_bypassASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
7467         YY_BREAK
7468 case 393:
7469 /* rule 393 can match eol */
7470 YY_RULE_SETUP
7471 if (surfxml_bypassASroute_gw_src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_src);
7472         YY_BREAK
7473 case 394:
7474 /* rule 394 can match eol */
7475 YY_RULE_SETUP
7476 if (surfxml_bypassASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");} surfxml_bypassASroute_gw_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
7477         YY_BREAK
7478 case 395:
7479 /* rule 395 can match eol */
7480 YY_RULE_SETUP
7481 if (surfxml_bypassASroute_gw_dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassASroute>");}  surfxml_bypassASroute_gw_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassASroute_gw_dst);
7482         YY_BREAK
7483 case 396:
7484 YY_RULE_SETUP
7485 {
7486   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7487   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7488   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7489   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7490   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
7491  }
7492         YY_BREAK
7493 case 397:
7494 YY_RULE_SETUP
7495 {
7496   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7497   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7498   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7499   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7500   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
7501   switch (YY_START) {
7502    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;
7503   }
7504  }
7505         YY_BREAK
7506 case 398:
7507 YY_RULE_SETUP
7508 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
7509         YY_BREAK
7510 case 399:
7511 YY_RULE_SETUP
7512 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
7513         YY_BREAK
7514 case YY_STATE_EOF(AL_surfxml_bypassASroute):
7515 FAIL("EOF in attribute list of `bypassASroute' element.");
7516         YY_BREAK
7517
7518 case 400:
7519 /* rule 400 can match eol */
7520 YY_RULE_SETUP
7521 {
7522   LEAVE;
7523   ETag_surfxml_bypassASroute();
7524   popbuffer(); /* attribute */
7525   switch (YY_START) {
7526    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;
7527   }
7528  }
7529         YY_BREAK
7530 case 401:
7531 /* rule 401 can match eol */
7532 YY_RULE_SETUP
7533 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
7534         YY_BREAK
7535 case 402:
7536 YY_RULE_SETUP
7537 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
7538         YY_BREAK
7539 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
7540 case YY_STATE_EOF(E_surfxml_bypassASroute):
7541 case YY_STATE_EOF(S_surfxml_bypassASroute):
7542 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
7543         YY_BREAK
7544
7545 case 403:
7546 /* rule 403 can match eol */
7547 YY_RULE_SETUP
7548 FAIL("Starting tag <process> is not allowed here.");
7549         YY_BREAK
7550 case 404:
7551 /* rule 404 can match eol */
7552 YY_RULE_SETUP
7553 {
7554   AX_surfxml_process_host = 0;
7555   surfxml_process_host_isset = 0;
7556   AX_surfxml_process_function = 0;
7557   surfxml_process_function_isset = 0;
7558   AX_surfxml_process_start_time = 28;
7559   surfxml_process_start_time_isset = 0;
7560   AX_surfxml_process_kill_time = 33;
7561   surfxml_process_kill_time_isset = 0;
7562   ENTER(AL_surfxml_process); pushbuffer(0);
7563   }
7564         YY_BREAK
7565
7566 case 405:
7567 /* rule 405 can match eol */
7568 YY_RULE_SETUP
7569 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);
7570         YY_BREAK
7571 case 406:
7572 /* rule 406 can match eol */
7573 YY_RULE_SETUP
7574 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);
7575         YY_BREAK
7576 case 407:
7577 /* rule 407 can match eol */
7578 YY_RULE_SETUP
7579 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);
7580         YY_BREAK
7581 case 408:
7582 /* rule 408 can match eol */
7583 YY_RULE_SETUP
7584 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);
7585         YY_BREAK
7586 case 409:
7587 /* rule 409 can match eol */
7588 YY_RULE_SETUP
7589 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);
7590         YY_BREAK
7591 case 410:
7592 /* rule 410 can match eol */
7593 YY_RULE_SETUP
7594 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);
7595         YY_BREAK
7596 case 411:
7597 /* rule 411 can match eol */
7598 YY_RULE_SETUP
7599 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);
7600         YY_BREAK
7601 case 412:
7602 /* rule 412 can match eol */
7603 YY_RULE_SETUP
7604 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);
7605         YY_BREAK
7606 case 413:
7607 YY_RULE_SETUP
7608 {
7609   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7610   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7611   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
7612  }
7613         YY_BREAK
7614 case 414:
7615 YY_RULE_SETUP
7616 {
7617   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
7618   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
7619   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
7620   switch (YY_START) {
7621    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;
7622   }
7623  }
7624         YY_BREAK
7625 case 415:
7626 YY_RULE_SETUP
7627 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
7628         YY_BREAK
7629 case 416:
7630 YY_RULE_SETUP
7631 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
7632         YY_BREAK
7633 case YY_STATE_EOF(AL_surfxml_process):
7634 FAIL("EOF in attribute list of `process' element.");
7635         YY_BREAK
7636
7637 case 417:
7638 /* rule 417 can match eol */
7639 YY_RULE_SETUP
7640 {
7641   LEAVE;
7642   ETag_surfxml_process();
7643   popbuffer(); /* attribute */
7644   switch (YY_START) {
7645    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;
7646   }
7647  }
7648         YY_BREAK
7649 case 418:
7650 /* rule 418 can match eol */
7651 YY_RULE_SETUP
7652 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
7653         YY_BREAK
7654 case 419:
7655 YY_RULE_SETUP
7656 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
7657         YY_BREAK
7658 case YY_STATE_EOF(E_surfxml_process):
7659 case YY_STATE_EOF(S_surfxml_process):
7660 case YY_STATE_EOF(S_surfxml_process_2):
7661 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
7662         YY_BREAK
7663
7664 case 420:
7665 /* rule 420 can match eol */
7666 YY_RULE_SETUP
7667 FAIL("Starting tag <argument> is not allowed here.");
7668         YY_BREAK
7669 case 421:
7670 /* rule 421 can match eol */
7671 YY_RULE_SETUP
7672 {
7673   AX_surfxml_argument_value = 0;
7674   surfxml_argument_value_isset = 0;
7675   ENTER(AL_surfxml_argument); pushbuffer(0);
7676   }
7677         YY_BREAK
7678
7679 case 422:
7680 /* rule 422 can match eol */
7681 YY_RULE_SETUP
7682 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);
7683         YY_BREAK
7684 case 423:
7685 /* rule 423 can match eol */
7686 YY_RULE_SETUP
7687 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);
7688         YY_BREAK
7689 case 424:
7690 YY_RULE_SETUP
7691 {
7692   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7693   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
7694  }
7695         YY_BREAK
7696 case 425:
7697 YY_RULE_SETUP
7698 {
7699   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
7700   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
7701   switch (YY_START) {
7702    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7703   }
7704  }
7705         YY_BREAK
7706 case 426:
7707 YY_RULE_SETUP
7708 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
7709         YY_BREAK
7710 case 427:
7711 YY_RULE_SETUP
7712 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
7713         YY_BREAK
7714 case YY_STATE_EOF(AL_surfxml_argument):
7715 FAIL("EOF in attribute list of `argument' element.");
7716         YY_BREAK
7717
7718 case 428:
7719 /* rule 428 can match eol */
7720 YY_RULE_SETUP
7721 {
7722   LEAVE;
7723   ETag_surfxml_argument();
7724   popbuffer(); /* attribute */
7725   switch (YY_START) {
7726    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7727   }
7728  }
7729         YY_BREAK
7730 case 429:
7731 /* rule 429 can match eol */
7732 YY_RULE_SETUP
7733 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
7734         YY_BREAK
7735 case 430:
7736 YY_RULE_SETUP
7737 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
7738         YY_BREAK
7739 case YY_STATE_EOF(E_surfxml_argument):
7740 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
7741         YY_BREAK
7742
7743 case 431:
7744 /* rule 431 can match eol */
7745 YY_RULE_SETUP
7746 FAIL("Starting tag <config> is not allowed here.");
7747         YY_BREAK
7748 case 432:
7749 /* rule 432 can match eol */
7750 YY_RULE_SETUP
7751 {
7752   AX_surfxml_config_id = 0;
7753   surfxml_config_id_isset = 0;
7754   ENTER(AL_surfxml_config); pushbuffer(0);
7755   }
7756         YY_BREAK
7757
7758 case 433:
7759 /* rule 433 can match eol */
7760 YY_RULE_SETUP
7761 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);
7762         YY_BREAK
7763 case 434:
7764 /* rule 434 can match eol */
7765 YY_RULE_SETUP
7766 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);
7767         YY_BREAK
7768 case 435:
7769 YY_RULE_SETUP
7770 {
7771   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7772  }
7773         YY_BREAK
7774 case 436:
7775 YY_RULE_SETUP
7776 {
7777   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7778   switch (YY_START) {
7779    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7780   }
7781  }
7782         YY_BREAK
7783 case 437:
7784 YY_RULE_SETUP
7785 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7786         YY_BREAK
7787 case 438:
7788 YY_RULE_SETUP
7789 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7790         YY_BREAK
7791 case YY_STATE_EOF(AL_surfxml_config):
7792 FAIL("EOF in attribute list of `config' element.");
7793         YY_BREAK
7794
7795 case 439:
7796 /* rule 439 can match eol */
7797 YY_RULE_SETUP
7798 {
7799   LEAVE;
7800   ETag_surfxml_config();
7801   popbuffer(); /* attribute */
7802   switch (YY_START) {
7803    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7804   }
7805  }
7806         YY_BREAK
7807 case 440:
7808 /* rule 440 can match eol */
7809 YY_RULE_SETUP
7810 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7811         YY_BREAK
7812 case 441:
7813 YY_RULE_SETUP
7814 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7815         YY_BREAK
7816 case YY_STATE_EOF(S_surfxml_config):
7817 case YY_STATE_EOF(S_surfxml_config_2):
7818 case YY_STATE_EOF(E_surfxml_config):
7819 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7820         YY_BREAK
7821
7822 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
7823   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
7824 case 442:
7825 /* rule 442 can match eol */
7826 YY_RULE_SETUP
7827 FAIL("Starting tag <prop> is not allowed here.");
7828         YY_BREAK
7829 case 443:
7830 /* rule 443 can match eol */
7831 YY_RULE_SETUP
7832 {
7833   AX_surfxml_prop_id = 0;
7834   surfxml_prop_id_isset = 0;
7835   AX_surfxml_prop_value = 0;
7836   surfxml_prop_value_isset = 0;
7837   ENTER(AL_surfxml_prop); pushbuffer(0);
7838   }
7839         YY_BREAK
7840
7841 case 444:
7842 /* rule 444 can match eol */
7843 YY_RULE_SETUP
7844 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);
7845         YY_BREAK
7846 case 445:
7847 /* rule 445 can match eol */
7848 YY_RULE_SETUP
7849 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);
7850         YY_BREAK
7851 case 446:
7852 /* rule 446 can match eol */
7853 YY_RULE_SETUP
7854 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);
7855         YY_BREAK
7856 case 447:
7857 /* rule 447 can match eol */
7858 YY_RULE_SETUP
7859 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);
7860         YY_BREAK
7861 case 448:
7862 YY_RULE_SETUP
7863 {
7864   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7865   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7866   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
7867  }
7868         YY_BREAK
7869 case 449:
7870 YY_RULE_SETUP
7871 {
7872   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
7873   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
7874   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
7875   switch (YY_START) {
7876    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7877    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7878    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7879    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7880    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7881    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7882    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7883   }
7884  }
7885         YY_BREAK
7886 case 450:
7887 YY_RULE_SETUP
7888 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
7889         YY_BREAK
7890 case 451:
7891 YY_RULE_SETUP
7892 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
7893         YY_BREAK
7894 case YY_STATE_EOF(AL_surfxml_prop):
7895 FAIL("EOF in attribute list of `prop' element.");
7896         YY_BREAK
7897
7898 case 452:
7899 /* rule 452 can match eol */
7900 YY_RULE_SETUP
7901 {
7902   LEAVE;
7903   ETag_surfxml_prop();
7904   popbuffer(); /* attribute */
7905   switch (YY_START) {
7906    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
7907    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
7908    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
7909    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
7910    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
7911    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
7912    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
7913   }
7914  }
7915         YY_BREAK
7916 case 453:
7917 /* rule 453 can match eol */
7918 YY_RULE_SETUP
7919 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
7920         YY_BREAK
7921 case 454:
7922 YY_RULE_SETUP
7923 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
7924         YY_BREAK
7925 case YY_STATE_EOF(E_surfxml_prop):
7926 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
7927         YY_BREAK
7928
7929 /* EPILOG: after the root element. */
7930
7931 case 455:
7932 YY_RULE_SETUP
7933 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
7934         YY_BREAK
7935 case YY_STATE_EOF(EPILOG):
7936 SUCCEED;
7937         YY_BREAK
7938
7939 /* CHARACTER DATA. */
7940
7941 /* Non-defined standard entities... */
7942 case 456:
7943 YY_RULE_SETUP
7944 BUFFERPUTC('&');
7945         YY_BREAK
7946 case 457:
7947 YY_RULE_SETUP
7948 BUFFERPUTC('<');
7949         YY_BREAK
7950 case 458:
7951 YY_RULE_SETUP
7952 BUFFERPUTC('>');
7953         YY_BREAK
7954 case 459:
7955 YY_RULE_SETUP
7956 BUFFERPUTC('\'');
7957         YY_BREAK
7958 case 460:
7959 YY_RULE_SETUP
7960 BUFFERPUTC('"');
7961         YY_BREAK
7962 /* Character entities. */
7963 case 461:
7964 YY_RULE_SETUP
7965 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
7966         YY_BREAK
7967 case 462:
7968 YY_RULE_SETUP
7969 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
7970         YY_BREAK
7971
7972 case 463:
7973 /* rule 463 can match eol */
7974 case 464:
7975 /* rule 464 can match eol */
7976 case 465:
7977 /* rule 465 can match eol */
7978 case 466:
7979 /* rule 466 can match eol */
7980 YY_RULE_SETUP
7981 BUFFERPUTC('\n');
7982         YY_BREAK
7983
7984 case 467:
7985 YY_RULE_SETUP
7986 ENTER(CDATA);
7987         YY_BREAK
7988 case 468:
7989 YY_RULE_SETUP
7990 FAIL("Unexpected `]""]>' in character data.");
7991         YY_BREAK
7992
7993 case 469:
7994 YY_RULE_SETUP
7995 BUFFERDONE; LEAVE;
7996         YY_BREAK
7997 case YY_STATE_EOF(VALUE1):
7998 FAIL("EOF in literal (\"'\" expected).");
7999         YY_BREAK
8000
8001 case 470:
8002 YY_RULE_SETUP
8003 BUFFERDONE; LEAVE;
8004         YY_BREAK
8005 case YY_STATE_EOF(VALUE2):
8006 FAIL("EOF in literal (`\"' expected).");
8007         YY_BREAK
8008
8009 case 471:
8010 /* rule 471 can match eol */
8011 YY_RULE_SETUP
8012 BUFFERPUTC(surf_parse_text[0]);
8013         YY_BREAK
8014 case 472:
8015 YY_RULE_SETUP
8016 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
8017         YY_BREAK
8018
8019 case 473:
8020 YY_RULE_SETUP
8021 LEAVE;
8022         YY_BREAK
8023 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
8024 case 474:
8025 YY_RULE_SETUP
8026 BUFFERPUTC(surf_parse_text[0]);
8027         YY_BREAK
8028 case YY_STATE_EOF(CDATA):
8029 FAIL("EOF in CDATA section.");
8030         YY_BREAK
8031
8032 /* Impossible rules to avoid warnings from flex(1). */
8033 /* Ideally, this should be replaced by code in flexml.pl that
8034     generates just the states not covered by other rules. */
8035
8036 case 475:
8037 /* rule 475 can match eol */
8038 YY_RULE_SETUP
8039 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
8040         YY_BREAK
8041
8042 case 476:
8043 YY_RULE_SETUP
8044 ECHO;
8045         YY_BREAK
8046 case YY_STATE_EOF(INITIAL):
8047 case YY_STATE_EOF(ROOT_surfxml_platform):
8048 case YY_STATE_EOF(S_surfxml_platform_2):
8049 case YY_STATE_EOF(S_surfxml_platform_5):
8050 case YY_STATE_EOF(S_surfxml_platform_7):
8051 case YY_STATE_EOF(S_surfxml_include_1):
8052 case YY_STATE_EOF(S_surfxml_random_1):
8053 case YY_STATE_EOF(S_surfxml_AS_2):
8054 case YY_STATE_EOF(S_surfxml_AS_5):
8055 case YY_STATE_EOF(S_surfxml_AS_7):
8056 case YY_STATE_EOF(S_surfxml_AS_10):
8057 case YY_STATE_EOF(S_surfxml_AS_12):
8058 case YY_STATE_EOF(S_surfxml_storage_type_1):
8059 case YY_STATE_EOF(S_surfxml_storage_1):
8060 case YY_STATE_EOF(S_surfxml_host_1):
8061 case YY_STATE_EOF(S_surfxml_link_1):
8062 case YY_STATE_EOF(S_surfxml_route_1):
8063 case YY_STATE_EOF(S_surfxml_ASroute_1):
8064 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
8065 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
8066 case YY_STATE_EOF(S_surfxml_process_1):
8067 case YY_STATE_EOF(S_surfxml_config_1):
8068 case YY_STATE_EOF(IMPOSSIBLE):
8069         yyterminate();
8070
8071         case YY_END_OF_BUFFER:
8072                 {
8073                 /* Amount of text matched not including the EOB char. */
8074                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
8075
8076                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
8077                 *yy_cp = (yy_hold_char);
8078                 YY_RESTORE_YY_MORE_OFFSET
8079
8080                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
8081                         {
8082                         /* We're scanning a new file or input source.  It's
8083                          * possible that this happened because the user
8084                          * just pointed surf_parse_in at a new source and called
8085                          * surf_parse_lex().  If so, then we have to assure
8086                          * consistency between YY_CURRENT_BUFFER and our
8087                          * globals.  Here is the right place to do so, because
8088                          * this is the first action (other than possibly a
8089                          * back-up) that will match for the new input source.
8090                          */
8091                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8092                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
8093                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
8094                         }
8095
8096                 /* Note that here we test for yy_c_buf_p "<=" to the position
8097                  * of the first EOB in the buffer, since yy_c_buf_p will
8098                  * already have been incremented past the NUL character
8099                  * (since all states make transitions on EOB to the
8100                  * end-of-buffer state).  Contrast this with the test
8101                  * in input().
8102                  */
8103                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8104                         { /* This was really a NUL. */
8105                         yy_state_type yy_next_state;
8106
8107                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
8108
8109                         yy_current_state = yy_get_previous_state(  );
8110
8111                         /* Okay, we're now positioned to make the NUL
8112                          * transition.  We couldn't have
8113                          * yy_get_previous_state() go ahead and do it
8114                          * for us because it doesn't know how to deal
8115                          * with the possibility of jamming (and we don't
8116                          * want to build jamming into it because then it
8117                          * will run more slowly).
8118                          */
8119
8120                         yy_next_state = yy_try_NUL_trans( yy_current_state );
8121
8122                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8123
8124                         if ( yy_next_state )
8125                                 {
8126                                 /* Consume the NUL. */
8127                                 yy_cp = ++(yy_c_buf_p);
8128                                 yy_current_state = yy_next_state;
8129                                 goto yy_match;
8130                                 }
8131
8132                         else
8133                                 {
8134                                 yy_cp = (yy_c_buf_p);
8135                                 goto yy_find_action;
8136                                 }
8137                         }
8138
8139                 else switch ( yy_get_next_buffer(  ) )
8140                         {
8141                         case EOB_ACT_END_OF_FILE:
8142                                 {
8143                                 (yy_did_buffer_switch_on_eof) = 0;
8144
8145                                 if ( surf_parse_wrap( ) )
8146                                         {
8147                                         /* Note: because we've taken care in
8148                                          * yy_get_next_buffer() to have set up
8149                                          * surf_parse_text, we can now set up
8150                                          * yy_c_buf_p so that if some total
8151                                          * hoser (like flex itself) wants to
8152                                          * call the scanner after we return the
8153                                          * YY_NULL, it'll still work - another
8154                                          * YY_NULL will get returned.
8155                                          */
8156                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
8157
8158                                         yy_act = YY_STATE_EOF(YY_START);
8159                                         goto do_action;
8160                                         }
8161
8162                                 else
8163                                         {
8164                                         if ( ! (yy_did_buffer_switch_on_eof) )
8165                                                 YY_NEW_FILE;
8166                                         }
8167                                 break;
8168                                 }
8169
8170                         case EOB_ACT_CONTINUE_SCAN:
8171                                 (yy_c_buf_p) =
8172                                         (yytext_ptr) + yy_amount_of_matched_text;
8173
8174                                 yy_current_state = yy_get_previous_state(  );
8175
8176                                 yy_cp = (yy_c_buf_p);
8177                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8178                                 goto yy_match;
8179
8180                         case EOB_ACT_LAST_MATCH:
8181                                 (yy_c_buf_p) =
8182                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
8183
8184                                 yy_current_state = yy_get_previous_state(  );
8185
8186                                 yy_cp = (yy_c_buf_p);
8187                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
8188                                 goto yy_find_action;
8189                         }
8190                 break;
8191                 }
8192
8193         default:
8194                 YY_FATAL_ERROR(
8195                         "fatal flex scanner internal error--no action found" );
8196         } /* end of action switch */
8197                 } /* end of scanning one token */
8198 } /* end of surf_parse_lex */
8199
8200 /* yy_get_next_buffer - try to read in a new buffer
8201  *
8202  * Returns a code representing an action:
8203  *      EOB_ACT_LAST_MATCH -
8204  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
8205  *      EOB_ACT_END_OF_FILE - end of file
8206  */
8207 static int yy_get_next_buffer (void)
8208 {
8209         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
8210         register char *source = (yytext_ptr);
8211         register int number_to_move, i;
8212         int ret_val;
8213
8214         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
8215                 YY_FATAL_ERROR(
8216                 "fatal flex scanner internal error--end of buffer missed" );
8217
8218         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
8219                 { /* Don't try to fill the buffer, so this is an EOF. */
8220                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
8221                         {
8222                         /* We matched a single character, the EOB, so
8223                          * treat this as a final EOF.
8224                          */
8225                         return EOB_ACT_END_OF_FILE;
8226                         }
8227
8228                 else
8229                         {
8230                         /* We matched some text prior to the EOB, first
8231                          * process it.
8232                          */
8233                         return EOB_ACT_LAST_MATCH;
8234                         }
8235                 }
8236
8237         /* Try to read more data. */
8238
8239         /* First move last chars to start of buffer. */
8240         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
8241
8242         for ( i = 0; i < number_to_move; ++i )
8243                 *(dest++) = *(source++);
8244
8245         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
8246                 /* don't do the read, it's not guaranteed to return an EOF,
8247                  * just force an EOF
8248                  */
8249                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
8250
8251         else
8252                 {
8253                         int num_to_read =
8254                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
8255
8256                 while ( num_to_read <= 0 )
8257                         { /* Not enough room in the buffer - grow it. */
8258
8259                         /* just a shorter name for the current buffer */
8260                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
8261
8262                         int yy_c_buf_p_offset =
8263                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
8264
8265                         if ( b->yy_is_our_buffer )
8266                                 {
8267                                 int new_size = b->yy_buf_size * 2;
8268
8269                                 if ( new_size <= 0 )
8270                                         b->yy_buf_size += b->yy_buf_size / 8;
8271                                 else
8272                                         b->yy_buf_size *= 2;
8273
8274                                 b->yy_ch_buf = (char *)
8275                                         /* Include room in for 2 EOB chars. */
8276                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
8277                                 }
8278                         else
8279                                 /* Can't grow it, we don't own it. */
8280                                 b->yy_ch_buf = 0;
8281
8282                         if ( ! b->yy_ch_buf )
8283                                 YY_FATAL_ERROR(
8284                                 "fatal error - scanner input buffer overflow" );
8285
8286                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
8287
8288                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
8289                                                 number_to_move - 1;
8290
8291                         }
8292
8293                 if ( num_to_read > YY_READ_BUF_SIZE )
8294                         num_to_read = YY_READ_BUF_SIZE;
8295
8296                 /* Read in more data. */
8297                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
8298                         (yy_n_chars), (size_t) num_to_read );
8299
8300                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8301                 }
8302
8303         if ( (yy_n_chars) == 0 )
8304                 {
8305                 if ( number_to_move == YY_MORE_ADJ )
8306                         {
8307                         ret_val = EOB_ACT_END_OF_FILE;
8308                         surf_parse_restart(surf_parse_in  );
8309                         }
8310
8311                 else
8312                         {
8313                         ret_val = EOB_ACT_LAST_MATCH;
8314                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
8315                                 YY_BUFFER_EOF_PENDING;
8316                         }
8317                 }
8318
8319         else
8320                 ret_val = EOB_ACT_CONTINUE_SCAN;
8321
8322         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
8323                 /* Extend the array by 50%, plus the number we really need. */
8324                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
8325                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
8326                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
8327                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
8328         }
8329
8330         (yy_n_chars) += number_to_move;
8331         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
8332         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
8333
8334         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
8335
8336         return ret_val;
8337 }
8338
8339 /* yy_get_previous_state - get the state just before the EOB char was reached */
8340
8341     static yy_state_type yy_get_previous_state (void)
8342 {
8343         register yy_state_type yy_current_state;
8344         register char *yy_cp;
8345     
8346         yy_current_state = (yy_start);
8347
8348         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
8349                 {
8350                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
8351                 if ( yy_accept[yy_current_state] )
8352                         {
8353                         (yy_last_accepting_state) = yy_current_state;
8354                         (yy_last_accepting_cpos) = yy_cp;
8355                         }
8356                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8357                         {
8358                         yy_current_state = (int) yy_def[yy_current_state];
8359                         if ( yy_current_state >= 2809 )
8360                                 yy_c = yy_meta[(unsigned int) yy_c];
8361                         }
8362                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8363                 }
8364
8365         return yy_current_state;
8366 }
8367
8368 /* yy_try_NUL_trans - try to make a transition on the NUL character
8369  *
8370  * synopsis
8371  *      next_state = yy_try_NUL_trans( current_state );
8372  */
8373     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
8374 {
8375         register int yy_is_jam;
8376         register char *yy_cp = (yy_c_buf_p);
8377
8378         register YY_CHAR yy_c = 1;
8379         if ( yy_accept[yy_current_state] )
8380                 {
8381                 (yy_last_accepting_state) = yy_current_state;
8382                 (yy_last_accepting_cpos) = yy_cp;
8383                 }
8384         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
8385                 {
8386                 yy_current_state = (int) yy_def[yy_current_state];
8387                 if ( yy_current_state >= 2809 )
8388                         yy_c = yy_meta[(unsigned int) yy_c];
8389                 }
8390         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
8391         yy_is_jam = (yy_current_state == 2808);
8392
8393         return yy_is_jam ? 0 : yy_current_state;
8394 }
8395
8396 #ifndef YY_NO_INPUT
8397 #ifdef __cplusplus
8398     static int yyinput (void)
8399 #else
8400     static int input  (void)
8401 #endif
8402
8403 {
8404         int c;
8405     
8406         *(yy_c_buf_p) = (yy_hold_char);
8407
8408         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
8409                 {
8410                 /* yy_c_buf_p now points to the character we want to return.
8411                  * If this occurs *before* the EOB characters, then it's a
8412                  * valid NUL; if not, then we've hit the end of the buffer.
8413                  */
8414                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
8415                         /* This was really a NUL. */
8416                         *(yy_c_buf_p) = '\0';
8417
8418                 else
8419                         { /* need more input */
8420                         int offset = (yy_c_buf_p) - (yytext_ptr);
8421                         ++(yy_c_buf_p);
8422
8423                         switch ( yy_get_next_buffer(  ) )
8424                                 {
8425                                 case EOB_ACT_LAST_MATCH:
8426                                         /* This happens because yy_g_n_b()
8427                                          * sees that we've accumulated a
8428                                          * token and flags that we need to
8429                                          * try matching the token before
8430                                          * proceeding.  But for input(),
8431                                          * there's no matching to consider.
8432                                          * So convert the EOB_ACT_LAST_MATCH
8433                                          * to EOB_ACT_END_OF_FILE.
8434                                          */
8435
8436                                         /* Reset buffer status. */
8437                                         surf_parse_restart(surf_parse_in );
8438
8439                                         /*FALLTHROUGH*/
8440
8441                                 case EOB_ACT_END_OF_FILE:
8442                                         {
8443                                         if ( surf_parse_wrap( ) )
8444                                                 return EOF;
8445
8446                                         if ( ! (yy_did_buffer_switch_on_eof) )
8447                                                 YY_NEW_FILE;
8448 #ifdef __cplusplus
8449                                         return yyinput();
8450 #else
8451                                         return input();
8452 #endif
8453                                         }
8454
8455                                 case EOB_ACT_CONTINUE_SCAN:
8456                                         (yy_c_buf_p) = (yytext_ptr) + offset;
8457                                         break;
8458                                 }
8459                         }
8460                 }
8461
8462         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
8463         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
8464         (yy_hold_char) = *++(yy_c_buf_p);
8465
8466         if ( c == '\n' )
8467                    
8468     surf_parse_lineno++;
8469 ;
8470
8471         return c;
8472 }
8473 #endif  /* ifndef YY_NO_INPUT */
8474
8475 /** Immediately switch to a different input stream.
8476  * @param input_file A readable stream.
8477  * 
8478  * @note This function does not reset the start condition to @c INITIAL .
8479  */
8480     void surf_parse_restart  (FILE * input_file )
8481 {
8482     
8483         if ( ! YY_CURRENT_BUFFER ){
8484         surf_parse_ensure_buffer_stack ();
8485                 YY_CURRENT_BUFFER_LVALUE =
8486             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
8487         }
8488
8489         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
8490         surf_parse__load_buffer_state( );
8491 }
8492
8493 /** Switch to a different input buffer.
8494  * @param new_buffer The new input buffer.
8495  * 
8496  */
8497     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
8498 {
8499     
8500         /* TODO. We should be able to replace this entire function body
8501          * with
8502          *              surf_parse_pop_buffer_state();
8503          *              surf_parse_push_buffer_state(new_buffer);
8504      */
8505         surf_parse_ensure_buffer_stack ();
8506         if ( YY_CURRENT_BUFFER == new_buffer )
8507                 return;
8508
8509         if ( YY_CURRENT_BUFFER )
8510                 {
8511                 /* Flush out information for old buffer. */
8512                 *(yy_c_buf_p) = (yy_hold_char);
8513                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8514                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8515                 }
8516
8517         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8518         surf_parse__load_buffer_state( );
8519
8520         /* We don't actually know whether we did this switch during
8521          * EOF (surf_parse_wrap()) processing, but the only time this flag
8522          * is looked at is after surf_parse_wrap() is called, so it's safe
8523          * to go ahead and always set it.
8524          */
8525         (yy_did_buffer_switch_on_eof) = 1;
8526 }
8527
8528 static void surf_parse__load_buffer_state  (void)
8529 {
8530         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
8531         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
8532         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
8533         (yy_hold_char) = *(yy_c_buf_p);
8534 }
8535
8536 /** Allocate and initialize an input buffer state.
8537  * @param file A readable stream.
8538  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
8539  * 
8540  * @return the allocated buffer state.
8541  */
8542     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
8543 {
8544         YY_BUFFER_STATE b;
8545     
8546         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8547         if ( ! b )
8548                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8549
8550         b->yy_buf_size = size;
8551
8552         /* yy_ch_buf has to be 2 characters longer than the size given because
8553          * we need to put in 2 end-of-buffer characters.
8554          */
8555         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
8556         if ( ! b->yy_ch_buf )
8557                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
8558
8559         b->yy_is_our_buffer = 1;
8560
8561         surf_parse__init_buffer(b,file );
8562
8563         return b;
8564 }
8565
8566 /** Destroy the buffer.
8567  * @param b a buffer created with surf_parse__create_buffer()
8568  * 
8569  */
8570     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
8571 {
8572     
8573         if ( ! b )
8574                 return;
8575
8576         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
8577                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
8578
8579         if ( b->yy_is_our_buffer )
8580                 surf_parse_free((void *) b->yy_ch_buf  );
8581
8582         surf_parse_free((void *) b  );
8583 }
8584
8585 #ifndef __cplusplus
8586 extern int isatty (int );
8587 #endif /* __cplusplus */
8588     
8589 /* Initializes or reinitializes a buffer.
8590  * This function is sometimes called more than once on the same buffer,
8591  * such as during a surf_parse_restart() or at EOF.
8592  */
8593     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
8594
8595 {
8596         int oerrno = errno;
8597     
8598         surf_parse__flush_buffer(b );
8599
8600         b->yy_input_file = file;
8601         b->yy_fill_buffer = 1;
8602
8603     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
8604      * called from surf_parse_restart() or through yy_get_next_buffer.
8605      * In that case, we don't want to reset the lineno or column.
8606      */
8607     if (b != YY_CURRENT_BUFFER){
8608         b->yy_bs_lineno = 1;
8609         b->yy_bs_column = 0;
8610     }
8611
8612         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
8613     
8614         errno = oerrno;
8615 }
8616
8617 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
8618  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
8619  * 
8620  */
8621     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
8622 {
8623         if ( ! b )
8624                 return;
8625
8626         b->yy_n_chars = 0;
8627
8628         /* We always need two end-of-buffer characters.  The first causes
8629          * a transition to the end-of-buffer state.  The second causes
8630          * a jam in that state.
8631          */
8632         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
8633         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
8634
8635         b->yy_buf_pos = &b->yy_ch_buf[0];
8636
8637         b->yy_at_bol = 1;
8638         b->yy_buffer_status = YY_BUFFER_NEW;
8639
8640         if ( b == YY_CURRENT_BUFFER )
8641                 surf_parse__load_buffer_state( );
8642 }
8643
8644 /** Pushes the new state onto the stack. The new state becomes
8645  *  the current state. This function will allocate the stack
8646  *  if necessary.
8647  *  @param new_buffer The new state.
8648  *  
8649  */
8650 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
8651 {
8652         if (new_buffer == NULL)
8653                 return;
8654
8655         surf_parse_ensure_buffer_stack();
8656
8657         /* This block is copied from surf_parse__switch_to_buffer. */
8658         if ( YY_CURRENT_BUFFER )
8659                 {
8660                 /* Flush out information for old buffer. */
8661                 *(yy_c_buf_p) = (yy_hold_char);
8662                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
8663                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
8664                 }
8665
8666         /* Only push if top exists. Otherwise, replace top. */
8667         if (YY_CURRENT_BUFFER)
8668                 (yy_buffer_stack_top)++;
8669         YY_CURRENT_BUFFER_LVALUE = new_buffer;
8670
8671         /* copied from surf_parse__switch_to_buffer. */
8672         surf_parse__load_buffer_state( );
8673         (yy_did_buffer_switch_on_eof) = 1;
8674 }
8675
8676 /** Removes and deletes the top of the stack, if present.
8677  *  The next element becomes the new top.
8678  *  
8679  */
8680 void surf_parse_pop_buffer_state (void)
8681 {
8682         if (!YY_CURRENT_BUFFER)
8683                 return;
8684
8685         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
8686         YY_CURRENT_BUFFER_LVALUE = NULL;
8687         if ((yy_buffer_stack_top) > 0)
8688                 --(yy_buffer_stack_top);
8689
8690         if (YY_CURRENT_BUFFER) {
8691                 surf_parse__load_buffer_state( );
8692                 (yy_did_buffer_switch_on_eof) = 1;
8693         }
8694 }
8695
8696 /* Allocates the stack if it does not exist.
8697  *  Guarantees space for at least one push.
8698  */
8699 static void surf_parse_ensure_buffer_stack (void)
8700 {
8701         int num_to_alloc;
8702     
8703         if (!(yy_buffer_stack)) {
8704
8705                 /* First allocation is just for 2 elements, since we don't know if this
8706                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
8707                  * immediate realloc on the next call.
8708          */
8709                 num_to_alloc = 1;
8710                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
8711                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
8712                                                                 );
8713                 if ( ! (yy_buffer_stack) )
8714                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8715                                                                   
8716                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
8717                                 
8718                 (yy_buffer_stack_max) = num_to_alloc;
8719                 (yy_buffer_stack_top) = 0;
8720                 return;
8721         }
8722
8723         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
8724
8725                 /* Increase the buffer to prepare for a possible push. */
8726                 int grow_size = 8 /* arbitrary grow size */;
8727
8728                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
8729                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
8730                                                                 ((yy_buffer_stack),
8731                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
8732                                                                 );
8733                 if ( ! (yy_buffer_stack) )
8734                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
8735
8736                 /* zero only the new slots.*/
8737                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
8738                 (yy_buffer_stack_max) = num_to_alloc;
8739         }
8740 }
8741
8742 /** Setup the input buffer state to scan directly from a user-specified character buffer.
8743  * @param base the character buffer
8744  * @param size the size in bytes of the character buffer
8745  * 
8746  * @return the newly allocated buffer state object. 
8747  */
8748 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
8749 {
8750         YY_BUFFER_STATE b;
8751     
8752         if ( size < 2 ||
8753              base[size-2] != YY_END_OF_BUFFER_CHAR ||
8754              base[size-1] != YY_END_OF_BUFFER_CHAR )
8755                 /* They forgot to leave room for the EOB's. */
8756                 return 0;
8757
8758         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
8759         if ( ! b )
8760                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
8761
8762         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
8763         b->yy_buf_pos = b->yy_ch_buf = base;
8764         b->yy_is_our_buffer = 0;
8765         b->yy_input_file = 0;
8766         b->yy_n_chars = b->yy_buf_size;
8767         b->yy_is_interactive = 0;
8768         b->yy_at_bol = 1;
8769         b->yy_fill_buffer = 0;
8770         b->yy_buffer_status = YY_BUFFER_NEW;
8771
8772         surf_parse__switch_to_buffer(b  );
8773
8774         return b;
8775 }
8776
8777 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
8778  * scan from a @e copy of @a str.
8779  * @param yystr a NUL-terminated string to scan
8780  * 
8781  * @return the newly allocated buffer state object.
8782  * @note If you want to scan bytes that may contain NUL values, then use
8783  *       surf_parse__scan_bytes() instead.
8784  */
8785 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
8786 {
8787     
8788         return surf_parse__scan_bytes(yystr,strlen(yystr) );
8789 }
8790
8791 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
8792  * scan from a @e copy of @a bytes.
8793  * @param yybytes the byte buffer to scan
8794  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
8795  * 
8796  * @return the newly allocated buffer state object.
8797  */
8798 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
8799 {
8800         YY_BUFFER_STATE b;
8801         char *buf;
8802         yy_size_t n;
8803         int i;
8804     
8805         /* Get memory for full buffer, including space for trailing EOB's. */
8806         n = _yybytes_len + 2;
8807         buf = (char *) surf_parse_alloc(n  );
8808         if ( ! buf )
8809                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
8810
8811         for ( i = 0; i < _yybytes_len; ++i )
8812                 buf[i] = yybytes[i];
8813
8814         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
8815
8816         b = surf_parse__scan_buffer(buf,n );
8817         if ( ! b )
8818                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
8819
8820         /* It's okay to grow etc. this buffer, and we should throw it
8821          * away when we're done.
8822          */
8823         b->yy_is_our_buffer = 1;
8824
8825         return b;
8826 }
8827
8828     static void yy_push_state (int  new_state )
8829 {
8830         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
8831                 {
8832                 yy_size_t new_size;
8833
8834                 (yy_start_stack_depth) += YY_START_STACK_INCR;
8835                 new_size = (yy_start_stack_depth) * sizeof( int );
8836
8837                 if ( ! (yy_start_stack) )
8838                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
8839
8840                 else
8841                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
8842
8843                 if ( ! (yy_start_stack) )
8844                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
8845                 }
8846
8847         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
8848
8849         BEGIN(new_state);
8850 }
8851
8852     static void yy_pop_state  (void)
8853 {
8854         if ( --(yy_start_stack_ptr) < 0 )
8855                 YY_FATAL_ERROR( "start-condition stack underflow" );
8856
8857         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
8858 }
8859
8860 #ifndef YY_EXIT_FAILURE
8861 #define YY_EXIT_FAILURE 2
8862 #endif
8863
8864 static void yy_fatal_error (yyconst char* msg )
8865 {
8866         (void) fprintf( stderr, "%s\n", msg );
8867         exit( YY_EXIT_FAILURE );
8868 }
8869
8870 /* Redefine yyless() so it works in section 3 code. */
8871
8872 #undef yyless
8873 #define yyless(n) \
8874         do \
8875                 { \
8876                 /* Undo effects of setting up surf_parse_text. */ \
8877         int yyless_macro_arg = (n); \
8878         YY_LESS_LINENO(yyless_macro_arg);\
8879                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
8880                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
8881                 (yy_hold_char) = *(yy_c_buf_p); \
8882                 *(yy_c_buf_p) = '\0'; \
8883                 surf_parse_leng = yyless_macro_arg; \
8884                 } \
8885         while ( 0 )
8886
8887 /* Accessor  methods (get/set functions) to struct members. */
8888
8889 /** Get the current line number.
8890  * 
8891  */
8892 int surf_parse_get_lineno  (void)
8893 {
8894         
8895     return surf_parse_lineno;
8896 }
8897
8898 /** Get the input stream.
8899  * 
8900  */
8901 FILE *surf_parse_get_in  (void)
8902 {
8903         return surf_parse_in;
8904 }
8905
8906 /** Get the output stream.
8907  * 
8908  */
8909 FILE *surf_parse_get_out  (void)
8910 {
8911         return surf_parse_out;
8912 }
8913
8914 /** Get the length of the current token.
8915  * 
8916  */
8917 int surf_parse_get_leng  (void)
8918 {
8919         return surf_parse_leng;
8920 }
8921
8922 /** Get the current token.
8923  * 
8924  */
8925
8926 char *surf_parse_get_text  (void)
8927 {
8928         return surf_parse_text;
8929 }
8930
8931 /** Set the current line number.
8932  * @param line_number
8933  * 
8934  */
8935 void surf_parse_set_lineno (int  line_number )
8936 {
8937     
8938     surf_parse_lineno = line_number;
8939 }
8940
8941 /** Set the input stream. This does not discard the current
8942  * input buffer.
8943  * @param in_str A readable stream.
8944  * 
8945  * @see surf_parse__switch_to_buffer
8946  */
8947 void surf_parse_set_in (FILE *  in_str )
8948 {
8949         surf_parse_in = in_str ;
8950 }
8951
8952 void surf_parse_set_out (FILE *  out_str )
8953 {
8954         surf_parse_out = out_str ;
8955 }
8956
8957 int surf_parse_get_debug  (void)
8958 {
8959         return surf_parse__flex_debug;
8960 }
8961
8962 void surf_parse_set_debug (int  bdebug )
8963 {
8964         surf_parse__flex_debug = bdebug ;
8965 }
8966
8967 static int yy_init_globals (void)
8968 {
8969         /* Initialization is the same as for the non-reentrant scanner.
8970      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
8971      */
8972
8973     /* We do not touch surf_parse_lineno unless the option is enabled. */
8974     surf_parse_lineno =  1;
8975     
8976     (yy_buffer_stack) = 0;
8977     (yy_buffer_stack_top) = 0;
8978     (yy_buffer_stack_max) = 0;
8979     (yy_c_buf_p) = (char *) 0;
8980     (yy_init) = 0;
8981     (yy_start) = 0;
8982
8983     (yy_start_stack_ptr) = 0;
8984     (yy_start_stack_depth) = 0;
8985     (yy_start_stack) =  NULL;
8986
8987 /* Defined in main.c */
8988 #ifdef YY_STDINIT
8989     surf_parse_in = stdin;
8990     surf_parse_out = stdout;
8991 #else
8992     surf_parse_in = (FILE *) 0;
8993     surf_parse_out = (FILE *) 0;
8994 #endif
8995
8996     /* For future reference: Set errno on error, since we are called by
8997      * surf_parse_lex_init()
8998      */
8999     return 0;
9000 }
9001
9002 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
9003 int surf_parse_lex_destroy  (void)
9004 {
9005     
9006     /* Pop the buffer stack, destroying each element. */
9007         while(YY_CURRENT_BUFFER){
9008                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
9009                 YY_CURRENT_BUFFER_LVALUE = NULL;
9010                 surf_parse_pop_buffer_state();
9011         }
9012
9013         /* Destroy the stack itself. */
9014         surf_parse_free((yy_buffer_stack) );
9015         (yy_buffer_stack) = NULL;
9016
9017     /* Destroy the start condition stack. */
9018         surf_parse_free((yy_start_stack)  );
9019         (yy_start_stack) = NULL;
9020
9021     /* Reset the globals. This is important in a non-reentrant scanner so the next time
9022      * surf_parse_lex() is called, initialization will occur. */
9023     yy_init_globals( );
9024
9025     return 0;
9026 }
9027
9028 /*
9029  * Internal utility routines.
9030  */
9031
9032 #ifndef yytext_ptr
9033 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
9034 {
9035         register int i;
9036         for ( i = 0; i < n; ++i )
9037                 s1[i] = s2[i];
9038 }
9039 #endif
9040
9041 #ifdef YY_NEED_STRLEN
9042 static int yy_flex_strlen (yyconst char * s )
9043 {
9044         register int n;
9045         for ( n = 0; s[n]; ++n )
9046                 ;
9047
9048         return n;
9049 }
9050 #endif
9051
9052 void *surf_parse_alloc (yy_size_t  size )
9053 {
9054         return (void *) malloc( size );
9055 }
9056
9057 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
9058 {
9059         /* The cast to (char *) in the following accommodates both
9060          * implementations that use char* generic pointers, and those
9061          * that use void* generic pointers.  It works with the latter
9062          * because both ANSI C and C++ allow castless assignment from
9063          * any pointer type to void*, and deal with argument conversions
9064          * as though doing an assignment.
9065          */
9066         return (void *) realloc( (char *) ptr, size );
9067 }
9068
9069 void surf_parse_free (void * ptr )
9070 {
9071         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
9072 }
9073
9074 #define YYTABLES_NAME "yytables"
9075
9076 /* Element context stack lookup. */
9077 int surfxml_element_context(int i)
9078 {
9079   return (0<i && i<yy_start_stack_depth
9080           ? yy_start_stack[yy_start_stack_ptr - i]
9081           : 0);
9082 }
9083
9084 #ifdef FLEX_DEBUG
9085 void print_yy_stack(char* fmt, ...)
9086 {
9087   int i = 0; va_list ap; va_start(ap, fmt);
9088   vfprintf(stderr, fmt, ap);
9089   if (surfxml_statenames) {
9090       for (i=1; i<yy_start_stack_ptr; i++) {
9091           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
9092       }
9093       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
9094   }
9095   va_end(ap);
9096 }
9097
9098 void print_surfxml_bufferstack()
9099 {
9100     int i;
9101     fputs("Buffer: ", stderr);
9102     for (i = 0; i < blimit; i++) {
9103        if ( surfxml_bufferstack[i] == '\377' ) break;
9104          putc(surfxml_bufferstack[i], stderr);
9105     }
9106     putc('\n', stderr);
9107 }
9108
9109 static void debug_enter(int state, const char* statename) {
9110   yy_push_state(state);
9111   if (surf_parse__flex_debug) {
9112        print_yy_stack("--ENTER(%s) : ",statename);
9113        print_surfxml_bufferstack();
9114   }
9115 }
9116
9117 static void debug_leave(void) {
9118     if (surf_parse__flex_debug) {
9119         print_yy_stack("--LEAVE : ");
9120         print_surfxml_bufferstack();
9121     }
9122   yy_pop_state();
9123 }
9124
9125 static void debug_set(int state, const char* statename) {
9126   BEGIN(state);
9127   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
9128 }
9129 #endif
9130
9131 static void cleanup(void)
9132 {
9133     if (surfxml_statenames) {
9134         free(surfxml_statenames);
9135         surfxml_statenames = NULL;
9136     }
9137     free(surfxml_bufferstack);
9138     surfxml_bufferstack = NULL;
9139
9140     free(indexstack);
9141     indexstack = NULL;
9142 }
9143
9144 static int fail(const char* fmt, ...)
9145 {
9146     int chars_left, used;
9147     va_list ap; va_start(ap, fmt);
9148 #ifdef FLEXML_yylineno
9149     used = sprintf(flexml_err_msg,
9150                    "Invalid XML (XML input line %d, state %d): ",
9151                    surf_parse_lineno, YY_START);
9152 #else
9153     used = sprintf(flexml_err_msg,
9154                    "Invalid XML (state %d): ",
9155                    YY_START);
9156 #endif
9157     chars_left = flexml_max_err_msg_size - used - 1;
9158     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
9159     va_end(ap);
9160
9161 #ifndef FLEXML_quiet_parser
9162     /* print directly to sdterr */
9163     fprintf(stderr, "%s\n", flexml_err_msg);
9164     flexml_err_msg[0] = '\0';
9165 #endif
9166
9167     cleanup();
9168
9169     return 1;
9170 }
9171