Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
eacf7fd5cf0eefab6a37a9da801c495fbb82814f
[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 564
407 #define YY_END_OF_BUFFER 565
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[3299] =
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,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444         0,    0,  565,  563,   15,   10,   10,   15,   15,  543,
445        10,  543,    5,    6,    5,    8,    9,    8,  559,  551,
446       552,  560,  557,  560,  558,  562,  551,  552,  562,  563,
447        22,   10,   22,   22,   22,   20,   22,   26,   10,   26,
448        26,  563,   26,  563,  563,   26,   33,   10,   33,   33,
449
450        33,   31,   33,   37,   10,   37,   37,   48,   10,   48,
451        48,   48,   46,   48,   48,   48,  560,  559,   78,   10,
452        78,   78,   78,   76,   78,   78,   78,   78,   78,   82,
453        10,   82,  101,   10,  101,  101,  101,   99,  101,  101,
454       101,  105,   10,  105,  128,   10,  128,  128,  128,  126,
455       128,  128,  132,   10,  132,  132,  563,  132,  563,  132,
456       132,  563,  563,  132,  563,  132,  563,  132,  145,   10,
457       145,  145,  145,  143,  145,  145,  145,  145,  149,   10,
458       149,  149,  160,   10,  160,  160,  160,  158,  160,  160,
459       160,  164,   10,  164,  164,  173,   10,  173,  173,  173,
460
461       171,  173,  173,  177,   10,  177,  186,   10,  186,  186,
462       186,  184,  186,  186,  190,   10,  190,  213,   10,  213,
463       213,  213,  211,  213,  213,  213,  213,  213,  217,   10,
464       217,  563,  217,  224,   10,  224,  224,  224,  222,  224,
465       228,   10,  228,  239,   10,  239,  239,  239,  237,  239,
466       239,  239,  243,   10,  243,  290,   10,  290,  290,  290,
467       288,  290,  290,  290,  290,  290,  290,  290,  290,  294,
468        10,  294,  313,   10,  313,  313,  313,  311,  313,  313,
469       313,  313,  313,  313,  317,   10,  317,  338,   10,  338,
470       338,  338,  336,  338,  338,  338,  338,  338,  338,  338,
471
472       342,   10,  342,  351,   10,  351,  351,  351,  349,  351,
473       351,  355,   10,  355,  366,   10,  366,  366,  366,  364,
474       366,  366,  366,  370,   10,  370,  397,   10,  397,  397,
475       397,  395,  397,  397,  397,  397,  401,   10,  401,  401,
476       414,   10,  414,  414,  414,  412,  414,  414,  418,   10,
477       418,  563,  418,  435,   10,  435,  435,  435,  433,  435,
478       435,  435,  439,   10,  439,  439,  452,   10,  452,  452,
479       452,  450,  452,  452,  456,   10,  456,  465,   10,  465,
480       465,  465,  463,  465,  465,  469,   10,  469,  469,  482,
481        10,  482,  482,  482,  480,  482,  482,  482,  486,   10,
482
483       486,  486,  503,   10,  503,  503,  503,  501,  503,  503,
484       503,  503,  503,  507,   10,  507,  563,  507,  514,   10,
485       514,  514,  514,  512,  514,  518,   10,  518,  525,   10,
486       525,  525,  525,  523,  525,  529,   10,  529,  529,  538,
487        10,  538,  538,  538,  536,  538,  538,  542,   10,  542,
488        10,    0,    2,    2,    0,    4,    7,  554,  553,    0,
489         0,    0,    0,    0,    0,    0,   21,   23,   23,    0,
490         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
491         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,   32,   34,   34,    0,   47,   49,   49,
493
494        49,   49,    0,    0,    0,   77,   79,   79,   79,   79,
495        79,   79,   79,   79,   79,    0,  100,  102,  102,  102,
496       102,    0,  127,  129,  129,  129,    0,    0,    0,    0,
497         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,  144,  146,  146,  146,  146,
499       146,    0,  159,  161,  161,  161,  161,    0,  172,  174,
500       174,  174,    0,  185,  187,  187,  187,    0,  212,  214,
501       214,  214,  214,  214,  214,    0,    0,  223,  225,  225,
502         0,  238,  240,  240,  240,  240,    0,  289,  291,  291,
503       291,  291,  291,  291,  291,  291,  291,  291,  291,  291,
504
505       291,  291,  291,  291,    0,  312,  314,  314,  314,  314,
506       314,  314,  314,  314,    0,  337,  339,  339,  339,  339,
507       339,  339,  339,  339,    0,  350,  352,  352,  352,    0,
508       365,  367,  367,  367,  367,    0,  396,  398,  398,  398,
509       398,  398,  398,    0,  413,  415,  415,  415,  415,    0,
510         0,  434,  436,  436,  436,  436,  436,    0,  451,  453,
511       453,  453,    0,  464,  466,  466,  466,    0,  481,  483,
512       483,  483,  483,    0,  502,  504,  504,  504,  504,  504,
513       504,    0,    0,  513,  515,  515,    0,  524,  526,  526,
514         0,  537,  539,  539,  539,    0,    0,    0,    0,    0,
515
516         3,    0,    0,    0,    0,    0,    0,    0,  561,    0,
517        23,    0,    0,  107,    0,    0,    0,    0,    0,    0,
518         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
519         0,    0,    0,    0,    0,  106,    0,    0,    0,    0,
520         0,    0,   34,    0,    0,   49,    0,    0,   49,    0,
521         0,    0,  556,   79,    0,    0,   79,   79,   79,   79,
522        79,   79,    0,    0,  102,  102,  102,    0,    0,    0,
523         0,  129,    0,    0,  107,    0,    0,    0,    0,    0,
524         0,    0,    0,  106,    0,    0,    0,    0,  146,    0,
525         0,  146,  146,    0,    0,  161,    0,    0,  161,    0,
526
527         0,    0,    0,  174,    0,    0,  187,  187,    0,    0,
528       214,  214,  214,    0,    0,  214,  214,    0,    0,    0,
529         0,  225,    0,    0,  240,    0,    0,    0,    0,    0,
530         0,  291,  291,    0,    0,  291,    0,    0,  291,  291,
531       291,  291,  291,  291,  291,  291,  291,  291,    0,    0,
532         0,    0,    0,    0,  314,  314,  314,  314,  314,    0,
533         0,  339,  339,  339,    0,    0,  339,  339,  339,    0,
534         0,  352,    0,    0,    0,    0,  367,    0,    0,  367,
535         0,    0,  398,    0,    0,  398,  398,  398,    0,    0,
536       415,  415,  415,    0,    0,    0,  436,  436,  436,  436,
537
538         0,    0,  453,    0,    0,    0,    0,  466,  466,    0,
539         0,  483,  483,  483,    0,    0,  504,  504,  504,  504,
540       504,    0,    0,    0,  515,    0,    0,    0,    0,    0,
541         0,    0,    0,  539,    0,    0,    0,   14,    1,    0,
542         0,  549,    0,    0,    0,  546,  545,    0,    0,   23,
543         0,    0,   25,    0,  107,    0,    0,    0,    0,    0,
544         0,    0,  218,    0,    0,    0,    0,    0,    0,    0,
545         0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
546         0,    0,    0,    0,   34,    0,    0,   36,    0,   49,
547         0,   41,   40,   49,    0,    0,    0,   51,    0,   79,
548
549         0,   55,   54,    0,    0,   79,    0,    0,   79,   79,
550        79,    0,    0,   81,    0,  102,  102,  102,    0,    0,
551       104,    0,    0,  109,  108,  129,    0,    0,  131,    0,
552         0,    0,    0,  219,    0,    0,    0,    0,    0,    0,
553         0,    0,    0,  146,    0,  136,  135,  146,  146,    0,
554         0,  148,    0,  161,    0,  153,  152,  161,    0,    0,
555       163,    0,    0,  168,  167,  174,    0,    0,  176,    0,
556       187,  187,    0,    0,  189,    0,  214,  214,  214,    0,
557       194,  193,  214,  214,    0,    0,  216,    0,    0,    0,
558       225,    0,    0,  227,    0,  240,    0,  232,  231,    0,
559
560       234,  233,    0,    0,  242,    0,  291,  291,  291,  291,
561         0,  259,  258,  291,    0,  247,  246,    0,    0,  291,
562       291,  291,  291,  291,  291,  291,  291,  291,    0,    0,
563       293,    0,    0,  308,  307,    0,  298,  297,    0,    0,
564       314,  314,  314,  314,    0,    0,  316,    0,  339,  339,
565       339,  339,    0,  321,  320,    0,    0,  339,  339,    0,
566         0,  341,    0,  352,    0,  346,  345,    0,    0,  354,
567         0,  367,    0,  359,  358,  367,    0,    0,  369,    0,
568       398,    0,  374,  373,  398,  398,  398,    0,    0,  400,
569         0,    0,    0,    0,    0,  415,    0,    0,  417,    0,
570
571         0,    0,    0,  436,  436,    0,    0,  436,    0,    0,
572       438,    0,  453,    0,  443,  442,    0,    0,  455,    0,
573         0,    0,    0,    0,    0,    0,  468,    0,    0,    0,
574       483,  483,    0,    0,    0,    0,  485,    0,  504,  504,
575       504,  504,  504,    0,    0,  506,    0,    0,  515,    0,
576         0,  517,    0,    0,  522,  521,    0,    0,  528,    0,
577         0,  533,  532,  539,    0,    0,  541,    0,    0,    0,
578       550,  544,    0,    0,    0,   23,    0,    0,    0,    0,
579         0,    0,    0,    0,  218,  191,    0,  371,    0,    0,
580       319,    0,    0,  530,    0,    0,    0,    0,    0,    0,
581
582         0,    0,    0,  318,    0,    0,    0,    0,    0,    0,
583         0,   49,    0,    0,   79,    0,   59,   58,    0,    0,
584         0,   57,   56,   79,    0,    0,   79,    0,  102,    0,
585         0,  102,    0,  129,    0,  130,    0,    0,    0,  219,
586       192,  372,  531,    0,    0,    0,    0,    0,    0,  146,
587       146,    0,    0,    0,  161,  161,    0,    0,    0,    0,
588         0,    0,  187,    0,  214,  214,    0,    0,  214,  214,
589         0,    0,    0,    0,    0,    0,    0,    0,    0,  291,
590       291,  291,  291,    0,    0,    0,  261,  260,  291,  291,
591       291,  291,  291,  291,  291,  291,  291,    0,    0,  310,
592
593       309,  314,  314,  314,  314,    0,  339,  339,  339,  339,
594         0,  329,  328,  339,  339,    0,  352,    0,  367,  367,
595         0,  398,  398,  398,  398,    0,    0,  407,  406,    0,
596       405,  404,  415,    0,  371,    0,  424,  423,  436,  436,
597         0,  422,  421,  436,    0,  453,    0,    0,  462,  461,
598         0,  460,  459,    0,    0,  475,  474,  483,  483,    0,
599       473,  472,    0,  504,    0,    0,  504,  504,  504,    0,
600         0,  515,    0,    0,  539,    0,    0,    0,    0,   12,
601         0,  547,  548,    0,   23,    0,    0,    0,    0,    0,
602         0,    0,    0,  191,    0,    0,  371,    0,  165,    0,
603
604       319,    0,    0,  530,    0,  402,    0,   39,    0,    0,
605         0,    0,    0,  318,    0,   38,    0,   30,   29,    0,
606         0,   43,   42,   49,    0,    0,   79,    0,   61,   60,
607        79,    0,   65,   64,   79,    0,  102,    0,    0,    0,
608         0,    0,    0,  129,    0,    0,    0,  192,    0,  372,
609       531,  403,    0,    0,    0,  403,  402,  146,    0,    0,
610         0,  140,  139,    0,  161,  161,    0,    0,  170,  169,
611         0,    0,  183,  182,  187,    0,  214,  214,    0,  198,
612       197,    0,    0,    0,    0,  214,    0,  166,    0,    0,
613       221,  220,    0,  226,    0,  236,  235,    0,  291,    0,
614
615         0,  291,  291,    0,  257,  256,  291,  291,    0,    0,
616       291,  291,  291,  291,  291,  291,    0,    0,    0,  314,
617       314,  314,    0,  339,    0,    0,  339,  339,    0,    0,
618       339,    0,  352,    0,  367,  367,    0,  398,  398,  398,
619         0,    0,  398,    0,  415,    0,    0,  436,  436,  436,
620         0,  453,    0,    0,  483,  483,    0,  504,    0,  490,
621       489,  504,  504,  504,    0,    0,    0,    0,    0,    0,
622         0,    0,    0,    0,    0,    0,   11,    0,   23,    0,
623         0,    0,    0,    0,    0,    0,  520,    0,    0,    0,
624       165,    0,    0,    0,   53,  402,  343,    0,   39,    0,
625
626       519,   52,    0,    0,    0,    0,   38,    0,    0,   49,
627         0,    0,   79,   79,   79,    0,  102,    0,    0,    0,
628         0,    0,    0,    0,    0,    0,   96,   95,    0,  129,
629         0,    0,    0,    0,  403,  344,    0,    0,    0,  146,
630         0,  138,  137,    0,  161,    0,    0,    0,    0,    0,
631         0,    0,  214,  214,    0,  196,  195,    0,    0,    0,
632       214,    0,  215,  166,    0,    0,  291,    0,  269,  268,
633         0,    0,  291,  291,  291,    0,  255,  254,    0,    0,
634       291,  291,  291,  291,    0,    0,    0,    0,  306,  305,
635         0,    0,  314,    0,    0,    0,  339,    0,  325,  324,
636
637         0,    0,  339,    0,  323,  322,  339,    0,  340,  352,
638         0,  367,  367,    0,  398,  398,  398,    0,    0,    0,
639       398,    0,  399,  415,    0,    0,    0,    0,    0,    0,
640       436,    0,  453,    0,    0,    0,    0,    0,    0,    0,
641       504,  504,  504,  504,    0,    0,    0,  511,  510,    0,
642         0,    0,  535,  534,    0,  540,    0,    0,    0,    0,
643         0,    0,    0,  419,    0,    0,    0,    0,  296,  245,
644       520,    0,   28,    0,    0,    0,  488,   53,  343,  150,
645         0,  519,   52,  295,  244,   27,  487,    0,    0,   49,
646         0,    0,   50,   79,    0,    0,   79,    0,    0,    0,
647
648         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
649         0,    0,    0,  420,    0,    0,    0,    0,  344,  151,
650         0,    0,    0,    0,    0,    0,  155,  154,    0,    0,
651       175,    0,  181,  180,    0,  214,  214,    0,    0,  214,
652         0,    0,  291,    0,  271,  270,  291,  291,  291,    0,
653       249,  248,    0,    0,  291,  291,  291,    0,  251,  250,
654         0,    0,  300,  299,    0,    0,    0,  302,  301,    0,
655       339,    0,  327,  326,  339,  339,  352,    0,  367,    0,
656         0,    0,  398,    0,    0,  398,  398,    0,    0,  398,
657       415,    0,  416,    0,    0,  428,  427,    0,  426,  425,
658
659       436,    0,  453,    0,    0,    0,  479,  478,    0,  477,
660       476,    0,  504,  504,  504,  504,    0,    0,    0,    0,
661         0,    0,    0,   17,    0,   19,   18,    0,  419,  508,
662       356,    0,    0,  296,  245,    0,   28,  440,  178,   16,
663       488,  150,    0,    0,  295,  244,   27,  487,    0,    0,
664        49,  555,   79,    0,   67,   66,   79,    0,   80,    0,
665        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
666         0,    0,    0,    0,    0,    0,  420,  357,    0,    0,
667         0,  151,    0,    0,  142,  141,    0,    0,  157,  156,
668         0,    0,  214,  214,    0,    0,    0,    0,  214,  179,
669
670         0,  291,  291,  291,  291,    0,  253,  252,  291,  291,
671       291,    0,    0,  304,  303,    0,  339,  339,  339,  352,
672         0,  353,  367,    0,  363,  362,    0,  398,    0,  380,
673       379,  398,  398,    0,    0,    0,    0,  398,  415,  441,
674       436,    0,  453,    0,    0,    0,    0,    0,  504,  504,
675       504,    0,  509,    0,    0,  527,    0,    0,    0,   17,
676         0,  508,  356,    0,    0,  229,  440,  178,   16,    0,
677         0,    0,    0,   35,   49,    0,    0,   79,    0,    0,
678         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
679         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
680
681         0,  357,    0,    0,  230,    0,    0,    0,  162,    0,
682       214,  214,    0,  204,    0,  203,  214,  179,    0,  291,
683       291,  291,  291,  291,    0,    0,  291,  291,    0,  292,
684         0,  315,  339,  339,  339,  352,    0,    0,    0,    0,
685         0,  398,  398,  398,    0,  384,    0,  383,  398,  415,
686       441,  436,    0,  437,    0,    0,    0,    0,    0,    0,
687       492,  491,    0,    0,  504,  504,    0,  505,  509,    0,
688         0,    0,    0,    0,   24,    0,    0,  229,    0,    0,
689         0,   49,    0,    0,    0,   79,    0,    0,    0,    0,
690         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
691
692         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
693         0,    0,    0,  230,    0,    0,    0,  188,  214,  214,
694       206,  205,    0,    0,    0,  291,  291,  291,  291,  291,
695         0,  281,  280,  291,    0,    0,  339,  339,    0,    0,
696       352,    0,  361,  360,    0,  368,    0,  376,  375,  398,
697       398,  398,  386,  385,    0,    0,  415,  436,    0,    0,
698         0,    0,  454,    0,    0,    0,  496,  495,    0,    0,
699         0,    0,    0,  516,    0,    0,    0,    0,  457,    0,
700         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
701        79,    0,    0,    0,    0,   88,    0,    0,    0,    0,
702
703        87,    0,    0,    0,    0,    0,    0,    0,    0,    0,
704         0,    0,    0,    0,    0,    0,    0,  458,    0,    0,
705       214,    0,    0,    0,  208,  207,    0,  241,  291,  291,
706       291,    0,    0,  291,  291,    0,  279,  278,  339,    0,
707         0,    0,  335,  334,    0,    0,  398,  398,  398,    0,
708       388,  387,    0,    0,    0,    0,    0,    0,    0,    0,
709         0,    0,    0,    0,    0,    0,    0,    0,  494,  493,
710         0,    0,    0,    0,  457,  133,    0,    0,    0,   45,
711        44,    0,    0,    0,    0,    0,    0,    0,    0,   79,
712         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
713
714         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
715         0,    0,    0,    0,  458,  134,    0,    0,    0,  214,
716         0,  210,  209,  291,  291,    0,    0,    0,  285,  284,
717         0,    0,  291,  339,    0,  331,  330,    0,  348,  347,
718       398,    0,    0,  398,    0,    0,    0,    0,    0,    0,
719         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
720         0,    0,    0,    0,    0,    0,  470,  133,   84,   83,
721         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
722         0,    0,   94,    0,    0,    0,   93,    0,    0,    0,
723         0,    0,  111,  119,    0,    0,    0,    0,    0,  110,
724
725       118,    0,    0,  471,  134,    0,    0,  200,  199,  214,
726       291,  291,    0,  283,  282,    0,  287,  286,  291,  339,
727       398,    0,  382,  381,  398,    0,    0,    0,    0,    0,
728         0,    0,    0,    0,    0,  445,    0,    0,  444,    0,
729       467,    0,    0,    0,    0,    0,    0,    0,    0,    0,
730         0,    0,  470,   84,   83,    0,    0,    0,    0,    0,
731         0,    0,    0,    0,   63,   62,    0,    0,    0,    0,
732         0,    0,    0,    0,    0,  113,    0,    0,    0,    0,
733       112,    0,    0,  471,    0,  147,  214,  291,  291,    0,
734         0,  339,    0,    0,    0,    0,    0,    0,    0,    0,
735
736         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
737         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
738        75,   71,    0,    0,   74,   70,    0,   92,    0,    0,
739        91,    0,    0,    0,  103,    0,    0,    0,    0,    0,
740         0,    0,    0,  214,  291,  291,    0,    0,    0,  339,
741         0,  378,  377,    0,    0,    0,  411,    0,  410,    0,
742       432,    0,  431,    0,  447,  449,  446,  448,    0,  484,
743       498,    0,  497,    0,    0,    0,    0,   12,    0,   12,
744         0,    0,    0,    0,    0,   86,   90,   85,   89,  125,
745         0,    0,  123,  124,    0,    0,  122,  214,  291,  291,
746
747         0,    0,    0,    0,  339,    0,    0,    0,    0,  409,
748       408,  430,  429,    0,    0,    0,    0,    0,    0,    0,
749         0,    0,    0,    0,  115,    0,    0,  114,    0,    0,
750         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
751         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
752         0,    0,    0,    0,   69,    0,   68,    0,    0,  121,
753         0,  120,    0,  202,  201,    0,  277,  276,    0,    0,
754         0,    0,    0,    0,    0,    0,    0,    0,  333,  332,
755         0,    0,    0,    0,    0,    0,    0,    0,    0,   11,
756         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
757
758         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
759       500,  499,    0,   73,   72,    0,    0,    0,    0,    0,
760         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
761         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
762         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,  117,  116,    0,    0,    0,    0,    0,
764         0,  263,    0,    0,  262,    0,    0,  390,    0,    0,
765       389,    0,    0,    0,    0,    0,  267,    0,  266,    0,
766       392,    0,  391,    0,    0,    0,    0,    0,    0,    0,
767         0,    0,    0,    0,    0,  273,    0,  272,    0,    0,
768
769         0,    0,    0,    0,  275,  274,  265,  264,  394,  393,
770         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
771         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
772         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
776         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
777         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
778         0,    0,    0,    0,    0,    0,   13,    0
779
780     } ;
781
782 static yyconst flex_int32_t yy_ec[256] =
783     {   0,
784         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
785         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
786         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
787         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
788         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
789        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
790        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
791        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
792        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
793        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
794
795        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
796        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
797        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
798         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
799         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
800         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
801         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
802         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
803         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
804         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
805
806         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
807         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
808         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
809         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
810         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
811         1,    1,    1,    1,    1
812     } ;
813
814 static yyconst flex_int32_t yy_meta[75] =
815     {   0,
816         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
817         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
818         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
819         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
820         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
821         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
822         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
823         5,    5,    5,    5
824     } ;
825
826 static yyconst flex_int16_t yy_base[3779] =
827     {   0,
828         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
829        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
830       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
831       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
832       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
833       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
834       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
835       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
836       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
837       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
838
839       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
840      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
841      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
842      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
843      1585, 1647, 1341, 1345, 1709, 1778, 1348, 1403, 1847,    0,
844      1406, 1409, 1921, 1988, 1413, 1416, 2055, 2122, 1471, 1474,
845      2189, 2246, 1477, 1481, 2303, 2363, 1538, 1541, 2423, 2490,
846      1544, 1548, 1605, 1608, 1611, 1615, 1618, 1667, 2557, 2624,
847      1670, 1673, 1677, 1680, 1729, 1732, 1735, 1739, 2691, 2758,
848      1742, 1798, 1801, 1804, 1808, 1811, 1941, 1944, 2825, 2882,
849
850      1947, 1951, 2939, 3006, 1954, 2008, 2011, 2014, 2018, 2021,
851      2075, 2078, 3073, 3140, 2081, 2085, 2142, 2145, 2148, 2152,
852      2209, 2212, 3207, 3274, 2215, 2219, 2266, 2269, 2272, 2276,
853      2323, 2326, 3341, 3411, 2329, 2333, 3481, 3538, 2336, 2383,
854      2386, 2389, 2393, 2396, 2443, 2446, 3595, 3665, 2449, 2453,
855         0,    0, 9023,12038,12038,   95,  100,   29,   41,12038,
856       103,   51,12038,12038, 9012,12038,12038, 9001,12038, 9012,
857      9012,  202,12038,12038,12038,12038, 9010, 9006, 8961,  153,
858     12038,  161, 8987,    0,  145,12038, 8949,12038,  165, 3731,
859        73, 2462,  315,  357, 8989, 8936,12038,  168, 8975,    0,
860
861       152,12038, 8937,12038,  261, 8981,   31,12038,  266, 8968,
862         0,  245,12038, 8930, 8934, 8928,  421, 8933,12038,  269,
863      8959,    0,  340,12038, 8921, 8921,  271, 8923,  238,12038,
864       441,  484,12038,  504, 8947,    0,  401,12038, 8906, 8908,
865      8894,12038,  561,  548,12038,  571, 8939,    0,  481,12038,
866      8906, 8890,12038,  628, 3795, 8888,  163, 2456,  567,  206,
867        38, 8939,  954, 2465,  639,  907,  437,   79,12038,  634,
868      8926,    0,  546,12038, 8882, 8892, 8876, 8881,12038,  638,
869       313,  368,12038,  697, 8917,    0,  549,12038, 8869, 8879,
870      8857,12038,  704,  426,  497,12038,  707, 8905,    0,  747,
871
872     12038, 8872, 8874,12038,  767,  753,12038,  773, 8349,    0,
873       757,12038, 8319, 8293,12038,  831,  818,12038,  838, 8345,
874         0,  758,12038, 8294, 8300, 8310, 8298, 8292,12038,  841,
875       559,  825,  530,12038,  906, 8338,    0,  815,12038, 8308,
876     12038,  914,  891,12038,  977, 8335,    0,  953,12038, 8284,
877      8294, 8280,12038,  981,  965,12038, 1021, 8316,    0,  966,
878     12038, 8265,  203, 8270, 8275,  378,   85,  311,  972,12038,
879      1040, 1025,12038, 1048, 8305,    0, 1026,12038, 8249, 8267,
880      8268,  157, 8263, 8242,12038, 1088, 1092,12038, 1105, 8284,
881         0, 1033,12038, 8232, 8230, 8236, 8234, 8236, 8220, 8207,
882
883     12038, 1112, 1154,12038, 1115, 8254,    0, 1089,12038, 8209,
884      8219,12038, 1118, 1160,12038, 1174, 8249,    0, 1090,12038,
885      8215, 8211, 8208,12038, 1180, 1228,12038, 1183, 8236,    0,
886      1158,12038, 8205, 8190, 8192,   15,12038, 1186,  564,  814,
887     12038, 1241, 8217,    0, 1225,12038, 8169,  181,12038, 1248,
888      1294,  432,  303,12038, 1305, 8214,    0, 1226,12038, 8166,
889      8138,  299,12038, 1309, 1224,  350,12038, 1365, 8184,    0,
890      1293,12038, 8146, 8138,12038, 1368, 1352,12038, 1372, 8169,
891         0, 1360,12038, 8120, 8116,12038, 1376, 1426,  676,12038,
892      1433, 8161,    0, 1418,12038, 8112, 8103, 8107,12038, 1438,
893
894      1436,  685,12038, 1503, 8151,    0, 1423,12038, 8093, 8098,
895      8103, 8095, 8088,12038, 1507, 1504,  560,  899,12038, 1510,
896      8125,    0, 1428,12038, 8095,12038, 1568, 1622,12038, 1574,
897      8119,    0, 1482,12038, 8086,12038, 1577,  963, 1007,12038,
898      1635, 8116,    0, 1496,12038, 8082, 8084,12038, 1638, 1623,
899      1697,  677, 8059,12038, 8115, 8097,12038,12038,12038, 1690,
900       253, 8048, 8046, 8039, 8087, 8045,12038,    0, 8030, 8027,
901      8038, 8005,  104, 1383, 8006, 8005, 7987, 7987,  889, 1636,
902      1037, 7975, 7965, 1500, 1105, 7991, 1691, 7962, 1699, 7950,
903      1709, 1710, 1711,12038,    0, 7955, 7956,12038,    0, 7948,
904
905      2088, 7941,  666, 7936, 7979,12038,    0, 7934, 2155, 7922,
906      7937, 7923, 7925, 7922, 7922, 7902,12038,    0, 7914, 7903,
907      7905, 7885,12038,    0, 2222, 7882, 7924, 7906,  172, 7875,
908      7874, 7879, 1767, 1297, 7866, 1768, 7890,  707,  724,  814,
909       841, 1567, 1782, 1629,  888,12038,    0, 7866, 2279, 7871,
910      7848, 7843,12038,    0, 7847, 2456, 7843, 7832,12038,    0,
911      2514, 7837, 7826,12038,    0, 7825, 7819, 7814,12038,    0,
912      7816,  373, 2519, 7793, 7804, 7796,  897,12038,    0, 7789,
913      7790,12038,    0, 7773, 2525, 2577, 7786,12038,    0, 7792,
914      7791, 2580, 7768, 2583, 7765, 7766, 7763, 7753, 7760, 7760,
915
916      7741, 7756, 7753, 7743, 7745,12038,    0, 2586, 2589, 7726,
917      7713, 7729, 7724, 7720, 7715,12038,    0, 7716, 7715, 7695,
918      2644, 7688, 7683, 7704, 7687,12038,    0, 7682, 2647, 7671,
919     12038,    0, 7664, 2650, 7651, 7668,12038,    0, 7654, 2653,
920      7637, 7655, 7653, 7637,12038,    0, 7628, 7642, 7630, 7620,
921      7627,12038,    0, 7615, 7626, 7622, 7610, 7644,12038,    0,
922      7599, 2656, 7600,12038,    0, 7591, 7606, 7598,12038,    0,
923      7577, 7595, 7588, 7577,12038,    0, 7564, 7557, 7555, 7565,
924      7559, 7543, 7539,12038,    0, 7537, 7547,12038,    0, 2711,
925      7543,12038,    0, 2714, 7528, 7517, 7560, 7568, 1537, 7507,
926
927     12038, 1823,    0, 7493, 7493, 7537, 7532, 7485,12038, 7497,
928      7477, 2719, 2722, 1971, 7487, 7490, 7454, 7466, 7446, 7450,
929      7441, 7439, 7451, 7431, 7423, 7422, 7429, 7432, 7412, 7410,
930      7390, 7388, 7401, 7382, 7380, 1980, 7388, 7364, 7381, 7372,
931      7349, 7355, 7350, 2725, 2732, 7348, 2781, 2038, 7336, 7368,
932      2786, 2789,12038, 7337, 2793, 2107, 2799, 7327, 2845, 7330,
933      7330, 7333, 2848, 2855, 7313, 7320, 7310, 2858, 2903, 2906,
934      2174, 7292, 2910, 2916, 2353, 7306, 7291, 7281, 7281, 7281,
935      7279, 7271, 7266, 2413, 7264, 7262, 7254, 7251, 7227, 2913,
936      2539, 7240, 7233, 2959, 2962, 7217, 2968, 2608, 7230, 2972,
937
938      3029, 2986, 2675, 7229, 3034, 3037, 7220, 7202, 3040, 3043,
939      7193, 7183, 7194, 3099, 2745, 7189, 7169, 3102, 3109, 7165,
940      7155, 7165, 3112, 3165, 7154, 3105, 2813, 3160, 2991, 3171,
941      3174, 7154, 1910, 3178, 3062, 7157, 3186, 3197, 3228, 7151,
942      7133, 7143, 7140, 7136, 7123, 7124, 7120, 7133, 3231, 3236,
943      3239, 3246, 3295, 3298, 3306, 3313, 3320, 3376, 3373, 3242,
944      3361, 7113,   37, 7103, 3365, 3387, 3432, 7109, 7093, 3309,
945      3444, 7087, 3435, 3395, 3439, 3458, 7096, 3501, 3463, 7093,
946      3504, 3511, 7088, 3507, 3471, 7082, 7057, 7054, 3514, 3560,
947      3563, 3567, 3570, 3573, 3618, 7055, 3621, 3641, 3630, 3644,
948
949      3633, 3686, 7061, 3694, 3652, 3697, 3700, 3712, 3725, 3730,
950      3735, 3743, 3757, 3764, 3738, 3769, 7056, 7037, 7043, 7048,
951      7030, 3799, 3802, 7040, 7002, 3808, 3811, 3775, 3823, 3833,
952      3837, 3845, 3863, 6998, 3871, 3876, 7042,12038,12038, 1138,
953      7001,12038, 7042, 7018, 6967,12038,12038, 6964, 6959, 6969,
954      3879, 3882,12038, 3885, 1704, 6950, 6931, 6939, 6947, 6934,
955      6913, 6925, 1771, 6900, 6904, 6904, 6890, 6887, 6883, 6877,
956       446, 6892, 6871, 6872, 6885, 6864, 6861, 2047, 6854, 6843,
957      6848, 6834, 1109, 6842, 3890, 3904, 3908,12038, 3911, 3914,
958      3917,12038,12038, 3933, 6865, 3936, 3941,12038, 3944, 6819,
959
960      3951,12038,12038, 3947, 3965, 3973, 3976, 3979, 6829, 3987,
961      6820, 3995, 3998,12038, 4001, 6816, 4005, 6808, 4008, 4023,
962     12038, 4027, 4030,12038,12038, 6803, 4038, 4042,12038, 4046,
963      6795, 6798, 6802, 2240, 6782, 6785, 1510, 6765, 6762, 6778,
964      6776, 6756, 6754, 6761, 4050,12038,12038, 6752, 4065, 4068,
965      4071,12038, 4075, 6758, 4083,12038,12038, 6779, 4078, 4097,
966     12038, 4100, 4103,12038,12038, 4111, 4119, 4122,12038, 4125,
967      4129, 4132, 4150, 4153,12038, 4156, 6733, 6739, 4162, 4165,
968     12038,12038, 6723, 6735, 4175, 4180,12038, 4183, 6723, 6720,
969      4186, 4189, 4194,12038, 4208, 4204, 4213,12038,12038, 4223,
970
971     12038,12038, 4231, 4234,12038, 4237, 6720, 6694, 6714, 6703,
972      4240,12038,12038, 4256, 4259,12038,12038, 4267, 4270, 6686,
973      6702, 6681, 6689, 6693, 6674, 6669, 6652, 6637, 4278, 4281,
974     12038, 4285, 4288,12038,12038, 4304,12038,12038, 4312, 4315,
975      6627, 6634, 6635, 6628, 4323, 4326,12038, 4330, 6614, 6611,
976      6597, 6588, 4333,12038,12038, 4345, 4349, 6573, 6580, 4357,
977      4363,12038, 4366, 6579, 4369,12038,12038, 4385, 4388,12038,
978      4391, 6551, 4394,12038,12038, 6559, 4410, 4413,12038, 4418,
979      6546, 4422,12038,12038, 6550, 6554, 6552, 4432, 4437,12038,
980      4441, 4444, 4447, 4462, 4468, 6549, 4476, 4480,12038, 4484,
981
982      6541, 4487, 4505, 6530, 6519, 4491, 4513, 6530, 4521, 4524,
983     12038, 4527, 6531, 4530,12038,12038, 4546, 4552,12038, 4555,
984      4558, 4561, 4576, 4579, 4587, 4594,12038, 4598, 4601, 4606,
985      6513, 6504, 4619, 4622, 4630, 4633,12038, 4637, 6494, 4640,
986      6507, 6505, 6484, 4643, 4652,12038, 4662, 6472, 6486, 4665,
987      4671,12038, 4674, 4677,12038,12038, 4685, 4693,12038, 4696,
988      4700,12038,12038, 6483, 4708, 4715,12038, 4718, 1013, 4728,
989     12038,12038, 6517, 6516, 6477, 6455, 4737, 6446, 6437, 6437,
990      6408, 6397, 6357, 6340, 2297, 2549, 6327, 2552, 6310, 6270,
991      2616, 6281, 6266, 2619, 6255, 6262, 6256, 6192, 6159, 6151,
992
993      6100, 6066, 6044, 2683, 6002, 5974, 4740, 4758, 4743, 4749,
994      4767, 5914, 5881, 4775, 5686, 4780,12038,12038, 4788, 4795,
995      4806,12038,12038,   17, 4814, 4818,   36, 4826,  132, 4832,
996      4835, 4845, 4850,  256, 4752,12038,  313,  349,  338, 2686,
997      2863, 3000, 2753,  393,  429,  432,  460,  497,  503,  556,
998      4853, 4856, 4859, 4877,  581,  632, 4880, 4883, 4886, 4901,
999      4904, 4907,  633, 4915,  680,  698, 4922, 4925, 4934, 4945,
1000      4948,  699,  746, 4952, 4956, 4970, 4973, 4977, 4985,  772,
1001      4992,  756,  782, 4995, 4998, 5006,12038,12038,  793,  843,
1002      5015,  825,  853,  854,  986, 1050, 1033, 5018, 5021,12038,
1003
1004     12038, 5029, 5033, 5037, 5040, 5043, 1090, 5047, 1139, 1165,
1005      5058,12038,12038, 5068, 1186, 5071, 1184, 5074, 1212, 1242,
1006      5077, 1238, 1245, 1240, 5080, 5086, 5105,12038,12038, 5113,
1007     12038,12038, 1235, 5100, 3135, 5121,12038,12038, 1237, 1280,
1008      5129,12038,12038, 1287, 5137, 1314, 5144, 5147,12038,12038,
1009      5156,12038,12038, 5167, 5170,12038,12038, 1331, 1363, 5179,
1010     12038,12038, 5187, 1365, 5190, 5193, 1357, 1369, 1399, 5202,
1011      1389, 5208, 5211, 5215, 5221, 5226, 1538, 1447, 5230,12038,
1012      1462,12038,12038, 1425, 1428, 5235, 1423, 1440, 1471, 1487,
1013      1502, 1531, 1546, 2877, 1564, 1573, 3131, 1594, 3265, 1597,
1014
1015      3269, 1600, 1619, 3332, 1626, 3404, 1635, 3533, 1642, 1664,
1016      1695, 1696, 1715, 3368, 1701, 4495, 5239,12038,12038, 5254,
1017      5257,12038,12038, 1737, 1769, 5268, 1749, 5273,12038,12038,
1018      1758, 5289,12038,12038, 1753, 5282, 1764, 5301, 2898, 2944,
1019      5309, 5313, 5322, 1784, 1773, 1780, 1777, 3588, 1786, 3624,
1020      3761, 5327, 1882, 1885, 1894, 5330, 5333, 1895, 5336, 5344,
1021      5354,12038,12038, 5362, 1896, 5365, 5368, 5374,12038,12038,
1022      5383, 5388,12038,12038, 5402, 5398, 1916, 1914, 5406,12038,
1023     12038, 5420, 5423, 5431, 5434, 1925, 5442, 5445, 1931, 5450,
1024     12038,12038, 5463,12038, 5466,12038,12038, 5474, 1936, 5477,
1025
1026      5482, 5495, 1938, 5498,12038,12038, 1953, 1976, 5506, 5509,
1027      5517, 1968, 1982, 1976, 1979, 5524, 5527, 5530, 5535, 5548,
1028      5551, 5554, 5557, 1993, 5560, 5572, 5580, 1991, 5583, 5587,
1029      2017, 5601, 2024, 5604, 2042, 2022, 5610, 2045, 2025, 2045,
1030      5613, 5625, 2054, 5633, 2048, 5636, 2066, 5639, 5642, 5645,
1031      5648, 2061, 5667, 5663, 5671, 5674, 5677, 2057, 5682,12038,
1032     12038, 2064, 2078, 2085, 5692, 2108, 5697, 5700, 5716, 5719,
1033      5722, 5725, 5744, 2144, 2167, 2185,12038, 2096, 5747, 5750,
1034      2112, 2105, 2113, 2264, 2116, 2119, 5753, 2131, 2167, 2160,
1035      5756, 2176, 2166, 2167, 5759, 5765, 5769, 2186, 5776, 2194,
1036
1037      5779, 5782, 2194, 2211, 2232, 2221, 5785, 2238, 5788, 2240,
1038      2273, 5791, 2233, 5795, 2262, 5798, 5801, 2312, 2306, 2372,
1039      2307, 2323, 2310, 2432, 2312, 5813,12038,12038, 5821, 5824,
1040      2299, 2296, 2383, 2302, 5827, 5830, 2308, 2384, 2443, 5833,
1041      5842,12038,12038, 5851, 5854, 5858, 5861, 5872, 5876, 5879,
1042      5882, 5891, 2305, 2330, 5898,12038,12038, 5906, 2367, 2372,
1043      2355, 5914,12038, 5917, 2363, 5921, 2382, 5926,12038,12038,
1044      5934, 5940, 2406, 2418, 2413, 5948,12038,12038, 5956, 5959,
1045      5967, 2419, 2429, 2425, 5970, 5974, 5988, 5991,12038,12038,
1046      5999, 6003, 6011, 6017, 6020, 6029, 2428, 6036,12038,12038,
1047
1048      6044, 6048, 2437, 6056,12038,12038, 2431, 6064,12038, 2440,
1049      6067, 2444, 6070, 6073, 2446, 6076, 2477, 6088, 2496, 2498,
1050      2478, 6096,12038, 2482, 6099, 2478, 6102, 6105, 6123, 6126,
1051      2492, 6135, 2510, 6141, 6144, 6147, 6150, 6165, 6168, 6176,
1052      2532, 2534, 2529, 2544, 6179, 2544, 6184,12038,12038, 6198,
1053      6202, 6206,12038,12038, 6217,12038, 2587, 2699, 2595, 2555,
1054      6221, 6224, 6232, 6245, 2572, 2609, 2625, 2602, 6251, 6256,
1055      6259, 2605, 6262, 2606, 2620, 2613, 6265, 6268, 6271, 6274,
1056      2617, 6277, 6280, 6283, 6286, 6289, 6292, 2619, 6297, 2626,
1057      2661, 6300,12038, 2654, 6304, 6307, 2682, 6322, 6325, 6328,
1058
1059      2697, 2701, 2701, 2709, 2710, 2739, 2741, 2741, 2751, 2744,
1060      6336, 6343, 6349, 6357, 2745, 2760, 2744, 2746, 6361, 6364,
1061      6367, 6370, 6378, 6381, 6386, 6399,12038,12038, 6407, 6412,
1062     12038, 6415,12038,12038, 6426, 2751, 2746, 3024, 3034, 2760,
1063      2768, 6431, 2763, 6434,12038,12038, 2762, 2781, 2805, 6446,
1064     12038,12038, 6454, 6459, 2802, 2792, 2803, 6468,12038,12038,
1065      6476, 6480,12038,12038, 6488, 6491, 6499,12038,12038, 6507,
1066      2809, 6510,12038,12038, 2802, 2813, 2806, 6518, 2820, 6521,
1067      6526, 6541, 2842, 6544, 6547, 2868, 2860, 3035, 3096, 2866,
1068      2882, 6556,12038, 2875, 6562,12038,12038, 6575,12038,12038,
1069
1070      2887, 6570, 2906, 6584, 6589, 6592,12038,12038, 6604,12038,
1071     12038, 6612, 6616, 6622, 6626, 6634, 6640, 2910, 6644, 6647,
1072      6652, 3009, 3069, 6655, 6659,12038,12038, 6667, 6674, 6677,
1073      6680, 2914, 2914, 6686, 6694, 2925, 6697, 6700, 6706, 6709,
1074      6712, 6715, 2928, 2936, 6718, 6721, 6727, 6730, 2937, 6733,
1075      2933,12038, 6736, 6739,12038,12038, 6747, 6754,12038, 6758,
1076     12038,12038, 2997, 2988, 3008, 3003, 3024, 3030, 3016, 3041,
1077      3063, 3070, 6766, 6769, 6752, 6757, 6794, 6798, 3032, 3030,
1078      3058, 6801, 3053, 6804,12038,12038, 6814, 6817,12038,12038,
1079      6828, 6833, 3069, 3074, 3103, 3150, 3138, 3157, 3117, 6836,
1080
1081      6839, 3114, 3129, 3136, 3323, 6843,12038,12038, 6852, 3133,
1082      3145, 6861, 6864,12038,12038, 6872, 3145, 3151, 3170, 3183,
1083      6875,12038, 6880, 6885,12038,12038, 6894, 6900, 6903,12038,
1084     12038, 6913, 6918, 3230, 3253, 3233, 3255, 6921, 3216, 6924,
1085      3241, 6931, 6927, 6939, 6951, 6958, 6954, 6963, 6973, 6980,
1086      6983, 6986, 6991, 7001, 7005,12038, 7008, 3286, 3283, 7013,
1087      7020, 7016, 7027, 3242, 3250, 7035, 7039, 7042, 7045, 3246,
1088      3264, 3265, 7048,12038, 3258, 7051, 7054, 3300, 3339, 3337,
1089      3351, 3346, 3362, 3359, 3355, 3370, 3361, 3402, 7062, 3384,
1090      3388, 3463, 3386, 3381, 3395, 3393, 3398, 3518, 3393, 3394,
1091
1092      3411, 7071, 3408, 3408, 7074, 3406, 7077, 7081,12038, 7084,
1093      3444, 3452, 3516,12038, 3516,12038, 7087, 7090, 7096, 3461,
1094      3482, 3471, 3483, 3512, 7106, 7109, 3508, 7117, 7124,12038,
1095      7127,12038, 3511, 3516, 7130, 3521, 7135, 7154, 7139, 7148,
1096      7162, 7170, 7173, 7176, 3588,12038, 3602,12038, 7179, 3558,
1097      7182, 3559, 7197,12038, 7200, 7203, 7211, 7218, 7223, 7226,
1098     12038,12038, 7237, 7242, 7250, 7255, 7258,12038, 7261, 7264,
1099      3631, 3630, 3644, 7268,12038, 3560, 3577, 7273, 3575, 3604,
1100      3606, 7277, 7288, 3795, 4026, 3599, 3662, 3672, 3671, 3687,
1101      3704, 3688, 3697, 3697, 3701, 3715, 7296, 3657, 3672, 3685,
1102
1103      3689, 3689, 3694, 3686, 3700, 3712, 3711, 3715, 3722, 3725,
1104      3720, 3724, 3743, 7299, 3754, 7302, 7305,12038, 3748, 7308,
1105     12038,12038, 7311, 7315, 7329, 3750, 3770, 3779, 7332, 3775,
1106      7335,12038,12038, 3797, 7343, 7350, 3785, 7361, 7364, 7367,
1107      7375, 7382,12038,12038, 7393,12038, 7396,12038,12038, 7404,
1108      7407, 7412,12038,12038, 7415, 7418, 7426, 7433, 7437, 3835,
1109      4268, 7445,12038, 7451, 7454, 7464,12038,12038, 7460, 7474,
1110      7482, 7485, 7493,12038, 3878, 3870, 3910, 3803, 7496, 3842,
1111      3846, 3850, 7501, 7505, 3865, 3868, 3951, 3884, 3889, 4000,
1112      3867, 3916, 3916, 3914, 3921,12038, 3940, 3928, 3939, 3945,
1113
1114     12038, 7519, 3927, 3954, 3941, 3956, 3964, 3966, 3971, 3956,
1115      3978, 3965, 3995, 4004, 4007, 4016, 4015, 7522, 4037, 7525,
1116      7528, 7531, 7534, 7549,12038,12038, 7557,12038, 4045, 4031,
1117      7560, 7563, 7581, 7567, 4045, 7589,12038,12038, 4049, 7597,
1118      7600, 7608,12038,12038, 7616, 7619, 7627, 7630, 7634, 7638,
1119     12038,12038, 7648, 7652, 7660, 7666, 4072, 4074, 4074, 4080,
1120      4082, 4082, 7674, 7678, 7686, 4112, 4193, 7697,12038,12038,
1121      4152, 4120, 7705, 4088, 7571, 7708, 4075, 4076, 7711,12038,
1122     12038, 4124, 4112, 4114, 4133, 4158, 4164, 4166, 4174, 7719,
1123      4164, 4191, 4215, 4208, 4205, 4225, 4239, 4230, 7726, 4185,
1124
1125      4188, 4204, 4258, 4260, 4244, 4218, 4227, 4229, 4247, 4291,
1126      4293, 4288, 4252, 4267, 7729, 7732, 7737, 7740, 7746, 4268,
1127      7758,12038,12038, 4269, 4278, 7766, 7769, 7777,12038,12038,
1128      7785, 7789, 4267, 4287, 7797,12038,12038, 7805,12038,12038,
1129      7813, 7816, 7819, 7827, 7834, 4339, 4364, 7845, 4392, 4397,
1130      4301, 4310, 4350, 4314, 4327, 4354, 7853, 7856, 4346, 4353,
1131      4351, 4356, 4438, 7859, 7865, 7868, 7878, 7887, 7890, 7893,
1132      4350, 4375, 4377, 4365, 4371, 4381, 4385, 4379, 7899, 7902,
1133      4394, 4399,12038, 4424, 4426, 4429,12038, 4432, 7910, 4414,
1134      4400, 4467,12038,12038, 4426, 4424, 4432, 4433, 4493,12038,
1135
1136     12038, 4456, 4460, 7913, 7917, 7923, 7929,12038,12038, 4456,
1137      4461, 4463, 7938,12038,12038, 7946,12038,12038, 7954, 4464,
1138      7957, 7960,12038,12038, 7968, 4499, 4511, 4502, 4514, 4506,
1139      4519, 4510, 4525, 4517, 4542,12038, 4534, 4545,12038, 7977,
1140     12038, 7980, 4547, 4535, 4550, 4545, 4566, 7986, 7989, 8008,
1141      8033, 8080, 7999, 8016, 8019, 4562, 4586, 4588, 4559, 4581,
1142      4602, 4604, 4576, 8023,12038,12038, 4613, 4594, 4597, 4639,
1143      4616, 4618, 8044, 4586, 4592,12038, 4593, 4604, 4604, 4605,
1144     12038, 4617, 4633, 8053, 8056,12038, 4632, 4633, 4656, 8059,
1145      8063, 4648, 8071, 8100, 8091, 8109, 4708, 4676, 4714, 4685,
1146
1147      4720, 4688, 4724, 4695, 4730, 4731, 4741, 4756, 8117, 4760,
1148      4734, 4766, 4740, 4765, 8126, 4782, 4791, 8146, 8193, 4773,
1149     12038,12038, 4755, 4780,12038,12038, 4758,12038, 4800, 4807,
1150     12038, 4805, 4810, 8120,12038, 4817, 4776, 4779, 4834, 4833,
1151      4794, 4792, 4841, 4813, 4814, 4796, 8166, 4893, 4903, 4818,
1152      8174,12038,12038, 8182, 4906, 4930,12038, 4867,12038, 4865,
1153     12038, 4870,12038, 4868,12038,12038,12038,12038, 8139,12038,
1154     12038, 4869,12038, 4871, 4878, 4964, 4894, 4888, 5045, 4887,
1155      8204, 4884, 4886, 4907, 4914,12038,12038,12038,12038,12038,
1156      4961, 4892,12038,12038, 4982, 4909,12038, 8213, 8216, 8219,
1157
1158      5088, 4937, 5122, 4953, 8224, 5139, 4974, 5145, 4984,12038,
1159     12038,12038,12038, 4988, 4990, 8227, 5023, 5034, 5048, 8242,
1160      5052, 5046, 5060, 5070,12038, 5044, 5089,12038, 5047, 5089,
1161      8246, 8249, 8257, 8264, 8275, 8278, 5061, 5080, 5096, 5081,
1162      5093, 5112, 8286, 8294, 5103, 5119, 5132, 5115, 5133, 5153,
1163      5137, 5138, 8289, 5164,12038, 5164,12038, 5167, 5157,12038,
1164      5169,12038, 8304,12038,12038, 8312,12038,12038, 8320, 5225,
1165      5260, 5184, 5193, 5206, 5210, 5216, 5213, 8328,12038,12038,
1166      5217, 5229, 5227, 5230, 5235, 5235, 5272, 5272, 5298,12038,
1167      5288, 5287, 5241, 5245, 5284, 5279, 5287, 5285, 5290, 5302,
1168
1169      5315, 5314, 5324, 5325, 5322, 5329, 5333, 5331, 5337, 5347,
1170     12038,12038, 5359,12038,12038, 5321, 5328, 5349, 5373, 5367,
1171      5391, 5377, 5375, 5394, 5383, 5387, 5405, 5394, 5400, 5417,
1172      5418, 5416, 5433, 5453, 5454, 5452, 5426, 5433, 5437, 5444,
1173      5461, 5452, 5484, 5466, 5458, 5494, 5479, 5469, 5510, 5491,
1174      5486, 5515, 5520,12038,12038, 5505, 5516, 5515, 5522, 5559,
1175      5533,12038, 5559, 5536,12038, 5565, 5539,12038, 5571, 5555,
1176     12038, 5589, 5555, 5569, 5560, 5573,12038, 5574,12038, 5575,
1177     12038, 5584,12038, 5592, 8336, 5594, 5616, 5599, 5617, 5589,
1178      5610, 5611, 5615, 8339, 5656,12038, 5654,12038, 5666, 5673,
1179
1180      5686, 5689, 5687, 5718,12038,12038,12038,12038,12038,12038,
1181      5819, 5822, 5829, 5846, 5745, 5786, 5694, 5717, 5693, 5720,
1182      5893, 5919, 5801, 5944, 5755, 5790, 5906, 5927, 5962, 5979,
1183      5879, 5913, 5928, 5978, 5935, 5964, 6017, 6033, 6041, 6063,
1184      5688, 5818, 6023, 6068, 5990, 6044, 6065, 6102, 5869, 6120,
1185      6165, 6178, 6103, 6138, 6145, 6155, 6097, 6277, 6174, 6193,
1186      5976, 6092, 6218, 6221, 6061, 6294, 6357, 6373, 6321, 6337,
1187      6177, 6355, 6334, 6384, 6386, 6393, 6387, 6444, 6379, 6400,
1188      6447, 6449, 6374, 6424, 6301, 6506, 6433, 6517, 5936, 6171,
1189      6537, 6547, 6236, 5787, 8347, 8350,12038,12038, 8370, 8379,
1190
1191      8388, 8397, 8406, 8415, 8424, 8433, 8442, 8451, 8460, 8469,
1192      8478, 8487, 8496, 8505, 8514, 8523, 8532, 8541, 8550, 8559,
1193      8568, 8577, 8586, 8595, 8604, 8613, 8622, 8631, 8640, 8649,
1194      8658, 8667, 8676, 8685, 8694, 8703, 8712, 8721, 8730, 8739,
1195      8748, 8757, 8766, 8775, 8784, 8793, 8802, 8811, 8820, 8829,
1196      8838, 8847, 8856, 8865, 8874, 8883, 8892, 8901, 8910, 8917,
1197      8924, 8931, 8938, 8945, 8952, 8959, 8966, 8973, 8980, 8987,
1198      8994, 9001, 9008, 9015, 9022, 9029, 9036, 9043, 9050, 9057,
1199      9064, 9071, 9078, 9085, 9092, 9099, 9106, 9115, 9122, 9127,
1200      9134, 9139, 9146, 9151, 9158, 9163, 9170, 9175, 9182, 9187,
1201
1202      9194, 9199, 9206, 9211, 9218, 9223, 9230, 9235, 9242, 9247,
1203      9254, 9259, 9266, 9271, 9278, 9283, 9290, 9295, 9302, 9307,
1204      9314, 9319, 9326, 9331, 9338, 9343, 9350, 9355, 9362, 9367,
1205      9374, 9379, 9386, 9391, 9398, 9403, 9410, 9415, 9422, 9427,
1206      9434, 9439, 9446, 9451, 9460, 9466, 9473, 9481, 9488, 9496,
1207      9503, 9511, 9518, 9526, 9533, 9541, 9548, 9556, 9563, 9571,
1208      9578, 9586, 9593, 9601, 9608, 9616, 9623, 9631, 9638, 9646,
1209      9653, 9661, 9668, 9676, 9684, 9692, 9699, 9707, 9714, 9722,
1210      9729, 9737, 9744, 9752, 9760, 9768, 9776, 9784, 9791, 9799,
1211      9807, 9815, 9823, 9831, 9838, 9846, 9853, 9861, 9869, 9876,
1212
1213      9884, 9893, 9899, 9906, 9914, 9922, 9930, 9938, 9946, 9953,
1214      9961, 9968, 9976, 9983, 9991, 9998,10006,10013,10021,10029,
1215     10037,10045,10053,10060,10068,10076,10084,10092,10100,10107,
1216     10115,10122,10130,10137,10145,10152,10160,10167,10175,10182,
1217     10190,10197,10205,10212,10220,10227,10235,10243,10250,10258,
1218     10265,10273,10280,10288,10296,10303,10311,10320,10329,10336,
1219     10344,10352,10359,10367,10374,10382,10389,10397,10404,10411,
1220     10419,10426,10434,10442,10449,10457,10464,10472,10480,10488,
1221     10495,10503,10511,10519,10526,10534,10541,10549,10556,10564,
1222     10571,10579,10586,10594,10601,10609,10616,10624,10632,10639,
1223
1224     10647,10654,10662,10670,10678,10686,10694,10702,10711,10720,
1225     10727,10735,10743,10750,10758,10765,10773,10780,10788,10795,
1226     10802,10810,10817,10825,10833,10841,10849,10856,10864,10872,
1227     10879,10887,10895,10903,10910,10918,10925,10933,10940,10948,
1228     10955,10963,10970,10978,10986,10994,11001,11009,11017,11025,
1229     11033,11040,11048,11056,11064,11072,11081,11090,11098,11106,
1230     11114,11121,11129,11136,11144,11152,11160,11168,11176,11184,
1231     11192,11200,11208,11216,11223,11231,11238,11246,11254,11262,
1232     11269,11276,11284,11291,11299,11306,11313,11321,11328,11336,
1233     11343,11351,11359,11367,11374,11382,11390,11398,11407,11416,
1234
1235     11424,11432,11439,11446,11454,11462,11470,11478,11486,11493,
1236     11501,11508,11516,11524,11531,11538,11546,11553,11561,11568,
1237     11575,11582,11590,11597,11605,11613,11621,11629,11637,11645,
1238     11653,11662,11671,11679,11687,11694,11702,11710,11718,11726,
1239     11734,11741,11749,11756,11764,11772,11779,11786,11794,11802,
1240     11810,11817,11824,11832,11840,11848,11856,11864,11872,11880,
1241     11888,11897,11906,11914,11921,11928,11936,11944,11952,11959,
1242     11967,11974,11983,11992,12001,12010,12019,12028
1243     } ;
1244
1245 static yyconst flex_int16_t yy_def[3779] =
1246     {   0,
1247      3299, 3299, 3300, 3300, 3300, 3300, 3301, 3301, 3302, 3302,
1248      3303, 3303, 3304, 3304, 3304, 3304, 3305, 3305, 3299, 3299,
1249      3306, 3306, 3307, 3307, 3307, 3307, 3299, 3299, 3307, 3307,
1250      3307, 3307, 3299, 3299, 3307, 3307, 3299, 3299, 3307, 3307,
1251      3307, 3307, 3308, 3308, 3309, 3309, 3299, 3299, 3309, 3309,
1252      3309, 3309, 3310, 3310, 3304, 3304, 3311, 3311, 3312, 3312,
1253      3313, 3313, 3314, 3314, 3315, 3315, 3316, 3316, 3316, 3316,
1254      3299, 3299, 3316, 3316, 3316, 3316, 3299, 3299, 3316, 3316,
1255      3316, 3316, 3299, 3299, 3316, 3316, 3299, 3299, 3316, 3316,
1256      3316, 3316, 3299, 3299, 3316, 3316, 3299, 3299, 3316, 3316,
1257
1258      3316, 3316, 3317, 3317, 3318, 3318, 3299, 3299, 3318, 3318,
1259      3318, 3318, 3319, 3319, 3320, 3320, 3299, 3299, 3320, 3320,
1260      3320, 3320, 3321, 3321, 3322, 3322, 3323, 3323, 3324, 3324,
1261      3325, 3325, 3326, 3326, 3299, 3299, 3326, 3326, 3326, 3326,
1262      3327, 3327, 3328, 3328, 3329, 3329, 3330, 3330, 3298,  149,
1263      3331, 3331, 3332, 3332, 3333, 3333, 3334, 3334, 3335, 3335,
1264      3336, 3336, 3337, 3337, 3338, 3338, 3339, 3339, 3340, 3340,
1265      3341, 3341, 3299, 3299, 3341, 3341, 3341, 3341, 3342, 3342,
1266      3343, 3343, 3299, 3299, 3343, 3343, 3343, 3343, 3344, 3344,
1267      3345, 3345, 3299, 3299, 3345, 3345, 3345, 3345, 3346, 3346,
1268
1269      3347, 3347, 3348, 3348, 3349, 3349, 3299, 3299, 3349, 3349,
1270      3349, 3349, 3350, 3350, 3351, 3351, 3299, 3299, 3351, 3351,
1271      3351, 3351, 3352, 3352, 3353, 3353, 3299, 3299, 3353, 3353,
1272      3353, 3353, 3354, 3354, 3355, 3355, 3356, 3356, 3357, 3357,
1273      3299, 3299, 3357, 3357, 3357, 3357, 3358, 3358, 3359, 3359,
1274      3299, 3299, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1275      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1276      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1277      3298, 3298, 3298, 3360, 3298, 3298, 3360, 3298, 3298, 3298,
1278       290,  290,  292,  290,  293,  293, 3298, 3298, 3298, 3361,
1279
1280      3298, 3298, 3361, 3298, 3298,  294,  293, 3298, 3298, 3298,
1281      3362, 3298, 3298, 3362, 3362, 3362, 3298, 3298, 3298, 3298,
1282      3298, 3363, 3298, 3298, 3363, 3363, 3363, 3363, 3363, 3298,
1283      3298, 3298, 3298, 3298, 3298, 3364, 3298, 3298, 3364, 3364,
1284      3364, 3298, 3298, 3298, 3298, 3298, 3298, 3365, 3298, 3298,
1285      3365, 3365, 3298, 3298, 3298,  355,  293,  293,  294,  359,
1286       358,  358,  358,  358,  359,  365,  363,  363, 3298, 3298,
1287      3298, 3366, 3298, 3298, 3366, 3366, 3366, 3366, 3298, 3298,
1288       293,  293, 3298, 3298, 3298, 3367, 3298, 3298, 3367, 3367,
1289      3367, 3298, 3298,  293,  293, 3298, 3298, 3298, 3368, 3298,
1290
1291      3298, 3368, 3368, 3298, 3298, 3298, 3298, 3298, 3298, 3369,
1292      3298, 3298, 3369, 3369, 3298, 3298, 3298, 3298, 3298, 3298,
1293      3370, 3298, 3298, 3370, 3370, 3370, 3370, 3370, 3298, 3298,
1294       293,  293,  293, 3298, 3298, 3298, 3371, 3298, 3298, 3371,
1295      3298, 3298, 3298, 3298, 3298, 3298, 3372, 3298, 3298, 3372,
1296      3372, 3372, 3298, 3298, 3298, 3298, 3298, 3298, 3373, 3298,
1297      3298, 3373, 3373, 3373, 3373, 3373, 3373, 3373, 3373, 3298,
1298      3298, 3298, 3298, 3298, 3298, 3374, 3298, 3298, 3374, 3374,
1299      3374, 3374, 3374, 3374, 3298, 3298, 3298, 3298, 3298, 3298,
1300      3375, 3298, 3298, 3375, 3375, 3375, 3375, 3375, 3375, 3375,
1301
1302      3298, 3298, 3298, 3298, 3298, 3298, 3376, 3298, 3298, 3376,
1303      3376, 3298, 3298, 3298, 3298, 3298, 3298, 3377, 3298, 3298,
1304      3377, 3377, 3377, 3298, 3298, 3298, 3298, 3298, 3298, 3378,
1305      3298, 3298, 3378, 3378, 3378, 3378, 3298, 3298,  293,  293,
1306      3298, 3298, 3298, 3379, 3298, 3298, 3379, 3379, 3298, 3298,
1307       293,  363,  363, 3298, 3298, 3298, 3380, 3298, 3298, 3380,
1308      3380, 3380, 3298, 3298,  363,  363, 3298, 3298, 3298, 3381,
1309      3298, 3298, 3381, 3381, 3298, 3298, 3298, 3298, 3298, 3298,
1310      3382, 3298, 3298, 3382, 3382, 3298, 3298,  363,  363, 3298,
1311      3298, 3298, 3383, 3298, 3298, 3383, 3383, 3383, 3298, 3298,
1312
1313       363,  363, 3298, 3298, 3298, 3384, 3298, 3298, 3384, 3384,
1314      3384, 3384, 3384, 3298, 3298,  293,  432,  293, 3298, 3298,
1315      3298, 3385, 3298, 3298, 3385, 3298, 3298, 3298, 3298, 3298,
1316      3298, 3386, 3298, 3298, 3386, 3298, 3298,  293,  293, 3298,
1317      3298, 3298, 3387, 3298, 3298, 3387, 3387, 3298, 3298, 3298,
1318      3298, 3388, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1319      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3389, 3389, 3390,
1320      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1321      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1322      3298, 3298, 3298, 3298, 3391, 3391, 3392, 3298, 3393, 3393,
1323
1324      3393, 3393, 3298, 3394, 3298, 3298, 3395, 3395, 3395, 3395,
1325      3395, 3395, 3395, 3395, 3395, 3396, 3298, 3397, 3397, 3397,
1326      3397, 3398, 3298, 3399, 3399, 3399, 3400, 3298, 3298, 3298,
1327      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1328      3298, 3298, 3298, 3298, 3298, 3298, 3401, 3401, 3401, 3401,
1329      3401, 3402, 3298, 3403, 3403, 3403, 3403, 3404, 3298, 3405,
1330      3405, 3405, 3406, 3298, 3407, 3407, 3407, 3408, 3298, 3409,
1331      3409, 3409, 3409, 3409, 3409, 3410, 3298, 3298, 3411, 3411,
1332      3412, 3298, 3413, 3413, 3413, 3413, 3414, 3298, 3415, 3415,
1333      3415, 3415, 3415, 3415, 3415, 3415, 3415, 3415, 3415, 3415,
1334
1335      3415, 3415, 3415, 3415, 3416, 3298, 3417, 3417, 3417, 3417,
1336      3417, 3417, 3417, 3417, 3418, 3298, 3419, 3419, 3419, 3419,
1337      3419, 3419, 3419, 3419, 3420, 3298, 3421, 3421, 3421, 3422,
1338      3298, 3423, 3423, 3423, 3423, 3424, 3298, 3425, 3425, 3425,
1339      3425, 3425, 3425, 3426, 3298, 3427, 3427, 3427, 3427, 3428,
1340      3298, 3298, 3429, 3429, 3429, 3429, 3429, 3430, 3298, 3431,
1341      3431, 3431, 3432, 3298, 3433, 3433, 3433, 3434, 3298, 3435,
1342      3435, 3435, 3435, 3436, 3298, 3437, 3437, 3437, 3437, 3437,
1343      3437, 3438, 3298, 3298, 3439, 3439, 3440, 3298, 3441, 3441,
1344      3442, 3298, 3443, 3443, 3443, 3444, 3445, 3298, 3445, 3298,
1345
1346      3298, 3298, 3446, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1347      3447, 3448, 3448, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1348      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1349      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1350      3298, 3298, 3449, 3450, 3450, 3451, 3298, 3298, 3451, 3298,
1351      3452, 3452, 3298, 3453, 3298, 3298, 3453, 3453, 3453, 3453,
1352      3453, 3453, 3454, 3454, 3455, 3455, 3455, 3456, 3456, 3298,
1353      3298, 3457, 3458, 3458, 3298, 3298, 3298, 3298, 3298, 3298,
1354      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3459, 3298,
1355      3298, 3459, 3459, 3460, 3460, 3461, 3298, 3298, 3461, 3462,
1356
1357      3462, 3298, 3298, 3463, 3464, 3464, 3465, 3465, 3466, 3466,
1358      3467, 3467, 3467, 3298, 3298, 3467, 3467, 3468, 3468, 3298,
1359      3298, 3469, 3470, 3470, 3471, 3298, 3298, 3298, 3298, 3472,
1360      3472, 3473, 3473, 3298, 3298, 3473, 3298, 3298, 3473, 3473,
1361      3473, 3473, 3473, 3473, 3473, 3473, 3473, 3473, 3474, 3474,
1362      3298, 3298, 3298, 3298, 3475, 3475, 3475, 3475, 3475, 3476,
1363      3476, 3477, 3477, 3477, 3298, 3298, 3477, 3477, 3477, 3478,
1364      3478, 3479, 3298, 3298, 3480, 3480, 3481, 3298, 3298, 3481,
1365      3482, 3482, 3483, 3298, 3298, 3483, 3483, 3483, 3484, 3484,
1366      3485, 3485, 3485, 3486, 3486, 3298, 3487, 3487, 3487, 3487,
1367
1368      3488, 3488, 3489, 3298, 3298, 3490, 3490, 3491, 3491, 3492,
1369      3492, 3493, 3493, 3493, 3494, 3494, 3495, 3495, 3495, 3495,
1370      3495, 3496, 3496, 3298, 3497, 3498, 3498, 3298, 3298, 3499,
1371      3499, 3298, 3298, 3500, 3501, 3501, 3502, 3298, 3298, 3502,
1372      3298, 3298, 3503, 3298, 3298, 3298, 3298, 3298, 3298, 3504,
1373      3298, 3505, 3298, 3505, 3298, 3298, 3298, 3298, 3298, 3298,
1374      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1375      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1376      3298, 3298, 3298, 3298, 3506, 3298, 3507, 3298, 3507, 3508,
1377      3298, 3298, 3298, 3508, 3298, 3298, 3509, 3298, 3509, 3510,
1378
1379      3298, 3298, 3298, 3298, 3298, 3510, 3298, 3298, 3510, 3510,
1380      3510, 3298, 3511, 3298, 3511, 3512, 3512, 3512, 3298, 3513,
1381      3298, 3513, 3298, 3298, 3298, 3514, 3298, 3515, 3298, 3515,
1382      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1383      3298, 3298, 3298, 3516, 3298, 3298, 3298, 3516, 3516, 3298,
1384      3517, 3298, 3517, 3518, 3298, 3298, 3298, 3518, 3298, 3519,
1385      3298, 3519, 3298, 3298, 3298, 3520, 3298, 3521, 3298, 3521,
1386      3522, 3522, 3298, 3523, 3298, 3523, 3524, 3524, 3524, 3298,
1387      3298, 3298, 3524, 3524, 3298, 3525, 3298, 3525, 3298, 3298,
1388      3526, 3298, 3527, 3298, 3527, 3528, 3298, 3298, 3298, 3298,
1389
1390      3298, 3298, 3298, 3529, 3298, 3529, 3530, 3530, 3530, 3530,
1391      3298, 3298, 3298, 3530, 3298, 3298, 3298, 3298, 3298, 3530,
1392      3530, 3530, 3530, 3530, 3530, 3530, 3530, 3530, 3298, 3531,
1393      3298, 3531, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1394      3532, 3532, 3532, 3532, 3298, 3533, 3298, 3533, 3534, 3534,
1395      3534, 3534, 3298, 3298, 3298, 3298, 3298, 3534, 3534, 3298,
1396      3535, 3298, 3535, 3536, 3298, 3298, 3298, 3298, 3537, 3298,
1397      3537, 3538, 3298, 3298, 3298, 3538, 3298, 3539, 3298, 3539,
1398      3540, 3298, 3298, 3298, 3540, 3540, 3540, 3298, 3541, 3298,
1399      3541, 3298, 3298, 3298, 3298, 3542, 3298, 3543, 3298, 3543,
1400
1401      3298, 3298, 3298, 3544, 3544, 3298, 3298, 3544, 3298, 3545,
1402      3298, 3545, 3546, 3298, 3298, 3298, 3298, 3547, 3298, 3547,
1403      3298, 3298, 3298, 3298, 3298, 3548, 3298, 3548, 3298, 3298,
1404      3549, 3549, 3298, 3298, 3298, 3550, 3298, 3550, 3551, 3551,
1405      3551, 3551, 3551, 3298, 3552, 3298, 3552, 3298, 3553, 3298,
1406      3554, 3298, 3554, 3298, 3298, 3298, 3298, 3555, 3298, 3555,
1407      3298, 3298, 3298, 3556, 3298, 3557, 3298, 3557, 3558, 3559,
1408      3298, 3298, 3298, 3298, 3298, 3560, 3561, 3298, 3298, 3298,
1409      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1410      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1411
1412      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3562, 3298,
1413      3298, 3563, 3298, 3564, 3565, 3298, 3298, 3298, 3298, 3298,
1414      3298, 3298, 3298, 3565, 3298, 3298, 3565, 3566, 3567, 3298,
1415      3298, 3567, 3568, 3569, 3298, 3298, 3298, 3298, 3298, 3298,
1416      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3570,
1417      3570, 3298, 3298, 3571, 3572, 3572, 3573, 3298, 3298, 3574,
1418      3298, 3298, 3575, 3576, 3577, 3577, 3298, 3298, 3577, 3577,
1419      3578, 3298, 3298, 3298, 3298, 3579, 3298, 3298, 3580, 3581,
1420      3581, 3581, 3581, 3298, 3298, 3298, 3298, 3298, 3581, 3581,
1421      3581, 3581, 3581, 3581, 3581, 3581, 3581, 3582, 3298, 3298,
1422
1423      3298, 3583, 3583, 3583, 3583, 3584, 3585, 3585, 3585, 3585,
1424      3298, 3298, 3298, 3585, 3585, 3586, 3587, 3588, 3589, 3589,
1425      3590, 3591, 3591, 3591, 3591, 3592, 3298, 3298, 3298, 3298,
1426      3298, 3298, 3593, 3594, 3298, 3298, 3298, 3298, 3595, 3595,
1427      3298, 3298, 3298, 3595, 3596, 3597, 3598, 3298, 3298, 3298,
1428      3298, 3298, 3298, 3599, 3298, 3298, 3298, 3600, 3600, 3298,
1429      3298, 3298, 3601, 3602, 3298, 3298, 3602, 3602, 3602, 3603,
1430      3298, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3610, 3298,
1431      3610, 3298, 3298, 3298, 3611, 3612, 3298, 3298, 3298, 3298,
1432      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1433
1434      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1435      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3613,
1436      3298, 3298, 3298, 3614, 3298, 3615, 3616, 3298, 3298, 3298,
1437      3616, 3298, 3298, 3298, 3616, 3617, 3618, 3298, 3298, 3298,
1438      3298, 3298, 3619, 3620, 3298, 3298, 3298, 3298, 3298, 3298,
1439      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3621, 3298, 3298,
1440      3298, 3298, 3298, 3622, 3623, 3623, 3624, 3298, 3298, 3298,
1441      3625, 3298, 3298, 3298, 3626, 3627, 3628, 3628, 3298, 3298,
1442      3298, 3298, 3298, 3298, 3298, 3628, 3629, 3298, 3298, 3298,
1443      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3630, 3631, 3298,
1444
1445      3298, 3631, 3631, 3298, 3298, 3298, 3631, 3631, 3298, 3298,
1446      3631, 3631, 3631, 3631, 3631, 3631, 3632, 3298, 3298, 3633,
1447      3633, 3633, 3634, 3635, 3298, 3298, 3635, 3635, 3298, 3298,
1448      3635, 3636, 3637, 3638, 3639, 3639, 3640, 3641, 3641, 3641,
1449      3298, 3298, 3641, 3642, 3643, 3644, 3298, 3645, 3645, 3645,
1450      3646, 3647, 3648, 3649, 3650, 3650, 3651, 3652, 3298, 3298,
1451      3298, 3652, 3652, 3652, 3653, 3298, 3298, 3298, 3654, 3655,
1452      3298, 3298, 3656, 3657, 3658, 3658, 3298, 3298, 3659, 3660,
1453      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1454      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1455
1456      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3661, 3662,
1457      3298, 3663, 3664, 3664, 3664, 3665, 3666, 3298, 3298, 3298,
1458      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3667, 3668,
1459      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3669,
1460      3298, 3298, 3298, 3670, 3671, 3298, 3298, 3672, 3673, 3298,
1461      3298, 3674, 3675, 3675, 3298, 3298, 3298, 3298, 3298, 3298,
1462      3675, 3298, 3298, 3298, 3298, 3676, 3677, 3298, 3298, 3298,
1463      3298, 3298, 3677, 3677, 3677, 3298, 3298, 3298, 3298, 3298,
1464      3677, 3677, 3677, 3677, 3298, 3298, 3678, 3298, 3298, 3298,
1465      3298, 3298, 3679, 3298, 3298, 3680, 3681, 3298, 3298, 3298,
1466
1467      3298, 3298, 3681, 3298, 3298, 3298, 3681, 3298, 3298, 3682,
1468      3683, 3684, 3684, 3685, 3686, 3686, 3686, 3298, 3298, 3298,
1469      3686, 3298, 3298, 3687, 3688, 3298, 3298, 3298, 3298, 3298,
1470      3689, 3690, 3691, 3692, 3693, 3298, 3298, 3298, 3298, 3694,
1471      3695, 3695, 3695, 3695, 3696, 3298, 3298, 3298, 3298, 3697,
1472      3698, 3298, 3298, 3298, 3298, 3298, 3699, 3700, 3700, 3298,
1473      3298, 3298, 3701, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1474      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1475      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3702, 3703,
1476      3298, 3298, 3298, 3704, 3298, 3298, 3704, 3705, 3298, 3298,
1477
1478      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1479      3706, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1480      3298, 3298, 3707, 3298, 3298, 3298, 3298, 3298, 3708, 3298,
1481      3298, 3298, 3298, 3298, 3709, 3710, 3710, 3298, 3298, 3710,
1482      3298, 3711, 3712, 3298, 3298, 3298, 3712, 3712, 3712, 3298,
1483      3298, 3298, 3298, 3298, 3712, 3712, 3712, 3298, 3298, 3298,
1484      3713, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3714,
1485      3715, 3298, 3298, 3298, 3715, 3715, 3716, 3717, 3718, 3298,
1486      3298, 3719, 3720, 3298, 3298, 3720, 3720, 3298, 3298, 3720,
1487      3721, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1488
1489      3722, 3723, 3724, 3725, 3726, 3298, 3298, 3298, 3298, 3298,
1490      3298, 3727, 3728, 3728, 3728, 3728, 3729, 3298, 3730, 3731,
1491      3732, 3733, 3733, 3298, 3298, 3298, 3298, 3734, 3298, 3298,
1492      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1493      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3735,
1494      3736, 3298, 3737, 3298, 3298, 3298, 3737, 3298, 3298, 3298,
1495      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1496      3298, 3298, 3738, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1497      3298, 3298, 3298, 3298, 3298, 3298, 3739, 3298, 3298, 3298,
1498      3740, 3741, 3742, 3742, 3298, 3298, 3298, 3298, 3742, 3298,
1499
1500      3743, 3744, 3744, 3744, 3744, 3298, 3298, 3298, 3744, 3744,
1501      3744, 3745, 3298, 3298, 3298, 3746, 3747, 3747, 3747, 3748,
1502      3298, 3298, 3749, 3298, 3298, 3298, 3750, 3751, 3298, 3298,
1503      3298, 3751, 3751, 3298, 3298, 3298, 3298, 3751, 3752, 3298,
1504      3753, 3754, 3755, 3756, 3757, 3758, 3298, 3298, 3759, 3759,
1505      3759, 3760, 3298, 3761, 3298, 3298, 3762, 3763, 3763, 3298,
1506      3764, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1507      3298, 3298, 3298, 3298, 3765, 3298, 3298, 3766, 3298, 3298,
1508      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3767, 3298,
1509      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1510
1511      3298, 3298, 3298, 3298, 3298, 3298, 3768, 3298, 3298, 3769,
1512      3770, 3770, 3298, 3298, 3298, 3298, 3770, 3298, 3771, 3772,
1513      3772, 3772, 3772, 3772, 3298, 3298, 3772, 3772, 3298, 3298,
1514      3298, 3298, 3747, 3747, 3747, 3748, 3298, 3298, 3750, 3298,
1515      3298, 3751, 3751, 3751, 3298, 3298, 3298, 3298, 3751, 3752,
1516      3298, 3753, 3298, 3298, 3298, 3298, 3756, 3757, 3758, 3298,
1517      3298, 3298, 3298, 3298, 3759, 3759, 3298, 3298, 3298, 3761,
1518      3762, 3763, 3763, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1519      3298, 3765, 3298, 3298, 3298, 3766, 3298, 3298, 3298, 3298,
1520      3298, 3298, 3298, 3298, 3298, 3298, 3767, 3298, 3298, 3298,
1521
1522      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1523      3298, 3298, 3298, 3298, 3298, 3768, 3298, 3298, 3770, 3770,
1524      3298, 3298, 3298, 3298, 3771, 3772, 3772, 3772, 3772, 3772,
1525      3298, 3298, 3298, 3772, 3298, 3298, 3747, 3747, 3298, 3298,
1526      3748, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3751,
1527      3751, 3751, 3298, 3298, 3298, 3298, 3752, 3753, 3298, 3298,
1528      3298, 3298, 3298, 3757, 3758, 3298, 3298, 3298, 3298, 3298,
1529      3298, 3298, 3298, 3298, 3762, 3763, 3763, 3298, 3298, 3298,
1530      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1531      3766, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1532
1533      3298, 3767, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1534      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3768,
1535      3770, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3772, 3772,
1536      3772, 3298, 3298, 3772, 3772, 3298, 3298, 3298, 3747, 3298,
1537      3298, 3298, 3298, 3298, 3298, 3298, 3751, 3751, 3751, 3298,
1538      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1539      3298, 3298, 3757, 3758, 3298, 3298, 3298, 3298, 3298, 3298,
1540      3762, 3763, 3763, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1541      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3766,
1542      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3767, 3298,
1543
1544      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1545      3298, 3298, 3298, 3298, 3298, 3298, 3768, 3298, 3298, 3770,
1546      3298, 3298, 3298, 3772, 3772, 3298, 3298, 3298, 3298, 3298,
1547      3298, 3298, 3772, 3747, 3298, 3298, 3298, 3298, 3298, 3298,
1548      3751, 3298, 3298, 3751, 3298, 3298, 3298, 3298, 3298, 3298,
1549      3298, 3298, 3298, 3298, 3298, 3298, 3757, 3758, 3298, 3298,
1550      3298, 3298, 3762, 3763, 3763, 3763, 3298, 3298, 3298, 3298,
1551      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1552      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3767, 3298,
1553      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1554
1555      3298, 3298, 3298, 3298, 3298, 3768, 3298, 3298, 3298, 3770,
1556      3772, 3772, 3298, 3298, 3298, 3298, 3298, 3298, 3772, 3747,
1557      3751, 3298, 3298, 3298, 3751, 3298, 3298, 3298, 3298, 3298,
1558      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1559      3298, 3758, 3298, 3298, 3298, 3298, 3762, 3763, 3763, 3763,
1560      3773, 3774, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1561      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1562      3298, 3298, 3767, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1563      3298, 3298, 3298, 3298, 3298, 3298, 3770, 3772, 3772, 3298,
1564      3298, 3747, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1565
1566      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3758, 3298,
1567      3298, 3298, 3298, 3762, 3763, 3775, 3776, 3773, 3774, 3298,
1568      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1569      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1570      3298, 3298, 3298, 3770, 3772, 3772, 3298, 3298, 3298, 3747,
1571      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1572      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1573      3298, 3298, 3298, 3298, 3762, 3775, 3763, 3777, 3776, 3778,
1574      3763, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1575      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3770, 3772, 3772,
1576
1577      3298, 3298, 3298, 3298, 3747, 3298, 3298, 3298, 3298, 3298,
1578      3298, 3298, 3298, 3298, 3298, 3762, 3777, 3298, 3778, 3763,
1579      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1580      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1581      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1582      3298, 3298, 3762, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1583      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1584      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1585      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3762, 3298,
1586      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1587
1588      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1589      3298, 3298, 3762, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1590      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1591      3298, 3298, 3298, 3762, 3298, 3298, 3298, 3298, 3298, 3298,
1592      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1593      3298, 3298, 3762, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1594      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1595      3298, 3762, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1596      3298, 3298, 3298, 3298, 3762, 3298, 3298, 3298, 3298, 3298,
1597      3298, 3298, 3298, 3762, 3298, 3298, 3298, 3298, 3298, 3298,
1598
1599      3298, 3298, 3762, 3762, 3298, 3298, 3298, 3298, 3298, 3298,
1600      3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762,
1601      3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762,
1602      3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762,
1603      3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762,
1604      3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762,
1605      3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762,
1606      3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762,
1607      3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762,
1608      3762, 3762, 3762, 3762, 3762, 3762, 3298,    0, 3298, 3298,
1609
1610      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1611      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1612      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1613      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1614      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1615      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1616      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1617      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1618      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1619      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1620
1621      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1622      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1623      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1624      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1625      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1626      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1627      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1628      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1629      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1630      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1631
1632      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1633      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1634      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1635      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1636      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1637      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1638      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1639      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1640      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1641      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1642
1643      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1644      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1645      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1646      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1647      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1648      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1649      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1650      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1651      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1652      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1653
1654      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1655      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1656      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1657      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1658      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1659      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1660      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
1661      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298
1662     } ;
1663
1664 static yyconst flex_int16_t yy_nxt[12113] =
1665     {   0,
1666      3298,  256,  257,  256,  256,  257,  256,  256,  257,  256,
1667       256,  257,  256,  261,  257,  261,  267,  258,  264,  267,
1668       258,  264, 3298,  259, 3298,  265,  259, 3298,  265,  262,
1669       261,  257,  261,  652,  268,  270,  271,  268,  270,  271,
1670       272,  273,  697,  272,  273,  652,  262,  277,  278,  653,
1671       274,  270,  271,  274,  275,  655,  272,  270,  271,  686,
1672       275,  654,  272,  277,  278, 1731,  274,  257,  257,  257,
1673       842,  654,  274,  257,  257,  257,  289,  257,  289,  289,
1674       257,  289,  843,  280,  289,  257,  289,  673, 1735,  280,
1675       727,  279,  290, 1350,  689,  290,  651,  651,  651, 1351,
1676
1677       291,  651,  651,  651,  651,  651,  651,  279,  281,  282,
1678       257,  282,  281,  281,  281,  281,  281,  281,  281,  283,
1679       281,  281,  281,  684,  281,  285,  281,  286,  281,  289,
1680       257,  289,  257,  257,  257,  257,  257,  257,  685,  289,
1681       257,  289,  289,  257,  289,  291,  690,  798,  292,  655,
1682       799,  292,  916,  281,  281,  290,  655,  655,  290,  289,
1683       257,  289,  651,  651,  651,  654,  651,  651,  651,  651,
1684       651,  651,  654,  654, 3298,  293,  917,  287,  281,  282,
1685       257,  282,  281,  281,  281,  281,  281,  281,  281,  283,
1686       281,  281,  281, 1737,  281,  285,  281,  286,  281,  289,
1687
1688       257,  289,  257,  257,  257,  257,  257,  257,  660,  289,
1689       257,  289,  289,  257,  289,  293,  666,  727,  294,  811,
1690       976,  294,  812,  281,  281,  291,  736,  728,  291,  257,
1691       257,  257,  257,  257,  257,  289,  257,  289,  289,  257,
1692       289,  289,  257,  289,  977,  295,  848,  287,  295,  655,
1693       661,  293,  791,  849,  293,  740,  662,  296,  289,  257,
1694       289,  663,  651,  651,  651,  654,  664,  651,  651,  651,
1695       651,  651,  651,  792,  296,  297,  298,  257,  298,  297,
1696       297,  297,  297,  297,  297,  297,  299,  297,  297,  297,
1697       714,  297,  301,  297,  302,  297,  305,  257,  305,  305,
1698
1699       257,  305,  257,  257,  257,  715,  257,  257,  257,  305,
1700       257,  305,  306,  904,  850,  306,  905, 1744,  294,  710,
1701       297,  297,  294,  711,  752,  306,  670,  712,  303,  297,
1702       298,  257,  298,  297,  297,  297,  297,  297,  297,  297,
1703       299,  297,  297,  297,  655,  297,  301,  297,  302,  297,
1704       305,  257,  305,  305,  257,  305,  305,  257,  305,  800,
1705       654,  858,  270,  271,  856,  691,  306,  272, 3298,  307,
1706       690,  857,  307,  801,  297,  297,  736,  317,  692,  752,
1707       685, 1745,  303,  308,  309,  257,  309,  308,  308,  308,
1708       308,  308,  308,  308,  310,  308,  308,  308, 1746,  308,
1709
1710       312,  308,  313,  308, 1747,  655,  318,  684,  331,  257,
1711       331,  331,  257,  331,  343,  257,  343,  690,  270,  271,
1712       693,  654,  685,  272,  332,  703,  795,  332,  308,  308,
1713       344,  689,  704,  317,  796, 1012,  314,  758, 1013,  315,
1714       797,  654,  651,  651,  651, 1752,  316,  308,  309,  257,
1715       309,  308,  308,  308,  308,  308,  308,  308,  310,  308,
1716       308,  308,  318,  308,  312,  308,  313,  308,  343,  257,
1717       343,  354,  257,  354,  354,  257,  354, 1753,  354,  257,
1718       354,  354,  257,  354,  344,  655,  741,  355,  655,  736,
1719       355,  851,  308,  308,  356,  716, 1493,  356, 1754,  690,
1720
1721       314,  654,  742,  315,  654,  651,  651,  651,  758, 1494,
1722       316,  319,  320,  257,  320,  319,  319,  319,  319,  319,
1723       319,  319,  321,  319,  319,  319, 1755,  319,  323,  319,
1724       324,  319,  257,  257,  257,  257,  257,  257,  354,  257,
1725       354,  776,  354,  257,  354,  354,  257,  354,  357, 1756,
1726       655,  357,  655,  655,  355, 1757,  319,  319,  355,  722,
1727       689,  358,  651,  651,  651,  325,  654,  326,  654,  654,
1728       776,  327,  651,  651,  651,  844,  328,  329,  319,  320,
1729       257,  320,  319,  319,  319,  319,  319,  319,  319,  321,
1730       319,  319,  319,  689,  319,  323,  319,  324,  319,  354,
1731
1732       257,  354,  257,  257,  257,  257,  257,  257,  883,  354,
1733       257,  354,  354,  257,  354,  358,  739, 1758,  359,  777,
1734       679,  359,  736,  319,  319,  360,  732,  736,  360,  651,
1735       651,  651,  325,  735,  326,  651,  651,  651,  327,  651,
1736       651,  651, 1765,  328,  329,  333,  334,  257,  334,  333,
1737       333,  333,  333,  333,  333,  333,  335,  333,  333,  333,
1738       686,  333,  337,  333,  338,  333,  354,  257,  354,  354,
1739       257,  354,  257,  257,  257,  898,  257,  257,  257,  354,
1740       257,  354,  361, 1766, 1775,  361,  898,  868,  362,  743,
1741       333,  333,  362,  730,  731,  358,  874,  339,  651,  651,
1742
1743       651,  899,  689,  340,  744,  651,  651,  651,  651,  651,
1744       651,  950,  341,  333,  334,  257,  334,  333,  333,  333,
1745       333,  333,  333,  333,  335,  333,  333,  333, 1777,  333,
1746       337,  333,  338,  333,  354,  257,  354,  257,  257,  257,
1747       257,  257,  257,  690,  354,  257,  354,  354,  257,  354,
1748       358,  655,  690,  363, 1778,  916,  363,  655,  333,  333,
1749       361,  655,  655,  361,  763,  339, 1788,  654,  651,  651,
1750       651,  340,  976,  654,  651,  651,  651,  654,  654,  985,
1751       341,  345,  346,  257,  346,  345,  345,  345,  345,  345,
1752       345,  345,  347,  345,  345,  345,  917,  345,  349,  345,
1753
1754       350,  345,  354,  257,  354,  354,  257,  354,  257,  257,
1755       257, 1789,  257,  257,  257,  354,  257,  354,  364,  655,
1756      1799,  364,  655, 1802,  365,  844,  345,  345,  365,  768,
1757      1803,  366,  651,  651,  651,  654, 3298,  351,  654,  651,
1758       651,  651,  651,  651,  651, 1807,  352,  345,  346,  257,
1759       346,  345,  345,  345,  345,  345,  345,  345,  347,  345,
1760       345,  345,  976,  345,  349,  345,  350,  345,  354,  257,
1761       354,  257,  257,  257,  257,  257,  257,  689,  354,  257,
1762       354,  354,  257,  354,  366,  777,  985,  367,  736,  916,
1763       367, 1808,  345,  345,  364,  655, 1811,  364,  354,  257,
1764
1765       354, 1812,  781,  351,  354,  257,  354,  651,  651,  651,
1766       882,  654,  352,  986,  368,  651,  651,  651,  727, 1813,
1767       368,  369,  370,  257,  370,  369,  369,  369,  369,  369,
1768       369,  369,  371,  369,  369,  369,  976,  369,  373,  369,
1769       374,  369,  380,  257,  380,  380,  257,  380,  257,  257,
1770       257,  925,  257,  257,  257,  926,  745,  655,  381, 1020,
1771       986,  381,  689, 1021,  357, 3298,  369,  369,  357,  655,
1772       655,  375,  734,  654,  891,  686,  787,  376,  651,  651,
1773       651,  377,  651,  651,  651,  654,  654,  378,  369,  370,
1774       257,  370,  369,  369,  369,  369,  369,  369,  369,  371,
1775
1776       369,  369,  369,  673,  369,  373,  369,  374,  369,  380,
1777       257,  380,  380,  257,  380,  380,  257,  380,  891,  380,
1778       257,  380,  651,  651,  651,  381,  736,  802,  381,  655,
1779       655,  382, 1138,  369,  369,  382,  805,  655,  375,  803,
1780       804,  651,  651,  651,  376,  654,  654, 1814,  377,  651,
1781       651,  651, 1677,  654,  378,  383,  384,  257,  384,  383,
1782       383,  383,  383,  383,  383,  383,  385,  383,  383,  383,
1783       689,  383,  387,  383,  388,  383,  393,  257,  393,  393,
1784       257,  393,  257,  257,  257,  930,  257,  257,  257,  651,
1785       651,  651,  394,  655,  655,  394,  655, 1815,  357,  931,
1786
1787       383,  383,  357,  815, 1816,  389,  651,  651,  651,  654,
1788       654,  390,  654,  651,  651,  651,  651,  651,  651,  651,
1789       651,  651,  391,  383,  384,  257,  384,  383,  383,  383,
1790       383,  383,  383,  383,  385,  383,  383,  383, 1824,  383,
1791       387,  383,  388,  383,  393,  257,  393,  393,  257,  393,
1792       393,  257,  393,  935,  393,  257,  393, 1138,  655, 1505,
1793       394, 1469,  655,  394,  655,  825,  395,  931,  383,  383,
1794       395,  830, 1494,  389,  654,  651,  651,  651,  654,  390,
1795       654,  651,  651,  651,  651,  651,  651,  651,  651,  651,
1796       391,  396,  397,  257,  397,  396,  396,  396,  396,  396,
1797
1798       396,  396,  398,  396,  396,  396, 1827,  396,  400,  396,
1799       401,  396,  405,  257,  405,  405,  257,  405,  416,  257,
1800       416, 1828,  416,  257,  416,  430,  257,  430,  406,  655,
1801       655,  406,  655, 1831,  417,  858,  396,  396,  417,  836,
1802      1833,  431,  651,  651,  651,  654,  654,  402,  654,  651,
1803       651,  651,  403,  396,  397,  257,  397,  396,  396,  396,
1804       396,  396,  396,  396,  398,  396,  396,  396, 1835,  396,
1805       400,  396,  401,  396,  430,  257,  430,  257,  257,  257,
1806       257,  257,  257,  851,  430,  257,  430,  430,  257,  430,
1807       431,  690, 1836,  432, 1838, 1839,  432,  655,  396,  396,
1808
1809       431, 1840, 1845,  431, 1848,  850,  651,  651,  651,  402,
1810       651,  651,  651,  654,  403,  407,  408,  257,  408,  407,
1811       407,  407,  407,  407,  407,  407,  409,  407,  407,  407,
1812      1849,  407,  411,  407,  412,  407,  430,  257,  430,  430,
1813       257,  430,  442,  257,  442,  935,  442,  257,  442,  454,
1814       257,  454,  433,  851, 1850,  433,  655,  689,  443,  982,
1815       407,  407,  443,  863,  655,  455,  651,  651,  651,  651,
1816       651,  651,  654,  651,  651,  651,  413,  651,  651,  651,
1817       654, 1852,  414,  407,  408,  257,  408,  407,  407,  407,
1818       407,  407,  407,  407,  409,  407,  407,  407, 1855,  407,
1819
1820       411,  407,  412,  407,  454,  257,  454,  471,  257,  471,
1821       471,  257,  471, 1856,  486,  257,  486,  486,  257,  486,
1822       455, 1858,  655,  472, 1862, 1863,  472,  655,  407,  407,
1823       487,  918,  655,  487,  651,  651,  651,  868,  654,  651,
1824       651,  651,  919,  654,  413,  920, 1864,  874,  654, 1866,
1825       414,  418,  419,  257,  419,  418,  418,  418,  418,  418,
1826       418,  418,  420,  418,  418,  418, 1680,  418,  422,  418,
1827       423,  418,  502,  257,  502,  502,  257,  502,  513,  257,
1828       513, 1877,  513,  257,  513,  851,  655, 1878,  503, 1879,
1829      1881,  503, 1882,  690,  514,  851,  418,  418,  514,  424,
1830
1831       655,  425,  654,  690,  651,  651,  651,  426,  651,  651,
1832       651,  651,  651,  651,  427,  882,  654,  428,  418,  419,
1833       257,  419,  418,  418,  418,  418,  418,  418,  418,  420,
1834       418,  418,  418, 1883,  418,  422,  418,  423,  418,  525,
1835       257,  525,  525,  257,  525,  538,  257,  538,  918,  538,
1836       257,  538,  883, 1884, 1885,  526, 1138, 1138,  526,  919,
1837      1505,  539,  934,  418,  418,  539,  424,  736,  425,  651,
1838       651,  651, 1140, 1543,  426,  651,  651,  651,  651,  651,
1839       651,  427, 1874, 1886,  428,  434,  435,  257,  435,  434,
1840       434,  434,  434,  434,  434,  434,  436,  434,  434,  434,
1841
1842      1887,  434,  438,  434,  439,  434,  257,  257,  257,  257,
1843       257,  257,  538,  257,  538,  935,  538,  257,  538,  538,
1844       257,  538,  357, 1888, 1889,  357,  655,  655,  539,  987,
1845       434,  434,  539,  887,  896,  540,  651,  651,  651,  651,
1846       651,  651,  654,  654, 1890, 1892,  440,  434,  435,  257,
1847       435,  434,  434,  434,  434,  434,  434,  434,  436,  434,
1848       434,  434, 1893,  434,  438,  434,  439,  434,  538,  257,
1849       538,  550,  257,  550,  550,  257,  550,  935,  257,  257,
1850       257,  257,  257,  257,  540, 1894, 1895,  551,  927, 1898,
1851       551,  988,  434,  434,  552,  928, 1901,  552,  651,  651,
1852
1853       651,  929,  902,  902,  902, 1155, 1155, 1155,  440,  444,
1854       445,  257,  445,  444,  444,  444,  444,  444,  444,  444,
1855       446,  444,  444,  444, 1902,  444,  448,  444,  449,  444,
1856       550,  257,  550,  550,  257,  550,  550,  257,  550,  937,
1857       550,  257,  550,  564,  257,  564,  551, 1903, 1904,  551,
1858       938,  940,  553,  920,  444,  444,  553,  937,  928,  565,
1859       450,  903,  940,  927,  941,  451, 1905, 1906,  938,  928,
1860       928,  934, 1485, 1485, 1485,  929,  941,  452,  444,  445,
1861       257,  445,  444,  444,  444,  444,  444,  444,  444,  446,
1862       444,  444,  444, 1910,  444,  448,  444,  449,  444,  564,
1863
1864       257,  564,  257,  257,  257,  257,  257,  257, 1911,  564,
1865       257,  564,  564,  257,  564,  565, 1913, 1914,  552,  927,
1866       940,  552, 1915,  444,  444,  565,  928,  928,  565,  450,
1867       918, 1917,  981,  981,  451,  902,  902,  902, 1930, 1142,
1868      1931,  938, 1932, 1933,  934, 1934,  452,  456,  457,  257,
1869       457,  456,  456,  456,  456,  456,  456,  456,  458,  456,
1870       456,  456,  459,  456,  460,  456,  461,  456,  459,  459,
1871       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
1872       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
1873       459,  459,  456,  456,  459,  462,  463,  464,  459,  459,
1874
1875       459,  459,  459,  465,  459,  459,  466,  459,  459,  459,
1876       467,  459,  468,  469,  459,  459,  459,  459,  459,  459,
1877       459,  473,  474,  257,  474,  473,  473,  473,  473,  473,
1878       473,  473,  475,  473,  473,  473, 1937,  473,  477,  473,
1879       478,  473,  564,  257,  564,  564,  257,  564,  576,  257,
1880       576, 1938,  576,  257,  576,  587,  257,  587,  566, 1308,
1881      1939,  566, 1940, 1945,  577, 1953,  473,  473,  577, 1309,
1882       479,  588, 1155, 1155, 1155, 1954, 1310,  480, 1961, 1965,
1883       481, 1178, 1178, 1178,  482, 1967,  483,  484,  473,  474,
1884       257,  474,  473,  473,  473,  473,  473,  473,  473,  475,
1885
1886       473,  473,  473, 1973,  473,  477,  473,  478,  473,  587,
1887       257,  587,  257,  257,  257,  257,  257,  257, 1974,  587,
1888       257,  587,  587,  257,  587,  588, 1975, 1981,  552, 1982,
1889      1983,  552, 1984,  473,  473,  588, 1156,  479,  588, 1191,
1890      1191, 1191, 1997, 1192,  480, 1156, 1193,  481, 1178, 1178,
1891      1178,  482, 2003,  483,  484,  488,  489,  257,  489,  488,
1892       488,  488,  488,  488,  488,  488,  490,  488,  488,  488,
1893      2007,  488,  492,  488,  493,  488,  587,  257,  587,  587,
1894       257,  587,  600,  257,  600, 2010,  600,  257,  600,  947,
1895       947,  947,  589, 2012, 2013,  589, 2015, 2016,  601, 2017,
1896
1897       488,  488,  601,  494,  495,  496,  948, 2021, 1201, 1201,
1898      1201,  497, 1202, 2024,  498, 1203, 2026, 2033,  499, 2041,
1899      2042,  500,  488,  489,  257,  489,  488,  488,  488,  488,
1900       488,  488,  488,  490,  488,  488,  488, 2043,  488,  492,
1901       488,  493,  488,  257,  257,  257,  257,  257,  257,  600,
1902       257,  600, 2044,  600,  257,  600,  955,  955,  955,  552,
1903      2046, 2060,  552, 1138, 2064,  601, 2065,  488,  488,  601,
1904       494,  495,  496,  956, 2066, 1223, 1223, 1223,  497, 1224,
1905      2057,  498, 1225, 2069, 2070,  499, 1680, 2072,  500,  504,
1906       505,  257,  505,  504,  504,  504,  504,  504,  504,  504,
1907
1908       506,  504,  504,  504, 1680,  504,  508,  504,  509,  504,
1909       600,  257,  600,  600,  257,  600,  615,  257,  615, 2073,
1910       615,  257,  615,  970,  970,  970,  602, 2074, 2058,  602,
1911      2075, 2076,  616, 2077,  504,  504,  616, 2059, 2080,  510,
1912       971, 1540, 1540, 1540, 2081,  511,  504,  505,  257,  505,
1913       504,  504,  504,  504,  504,  504,  504,  506,  504,  504,
1914       504, 2084,  504,  508,  504,  509,  504,  257,  257,  257,
1915       257,  257,  257,  615,  257,  615, 2085,  615,  257,  615,
1916       990,  990,  990,  617, 2086, 2067,  617, 2087, 2088,  616,
1917      2090,  504,  504,  616, 2091, 2094,  510,  991, 1485, 1485,
1918
1919      1485, 2068,  511,  515,  516,  257,  516,  515,  515,  515,
1920       515,  515,  515,  515,  517,  515,  515,  515, 2097,  515,
1921       519,  515,  520,  515,  615,  257,  615,  615,  257,  615,
1922       627,  257,  627, 2101,  627,  257,  627,  637,  257,  637,
1923       618, 2102, 2105,  618, 2106, 2107,  628, 2110,  515,  515,
1924       628, 2114,  521,  638, 1155, 1155, 1155, 2115, 2118,  522,
1925      2120, 2136,  523,  515,  516,  257,  516,  515,  515,  515,
1926       515,  515,  515,  515,  517,  515,  515,  515, 2137,  515,
1927       519,  515,  520,  515,  637,  257,  637,  257,  257,  257,
1928       257,  257,  257, 2103,  637,  257,  637,  637,  257,  637,
1929
1930       638, 2104, 2138,  357, 2116, 2116,  357, 2139,  515,  515,
1931       638, 2140,  521,  638, 1178, 1178, 1178, 2141, 1231,  522,
1932      2117, 2068,  523,  527,  528,  257,  528,  527,  527,  527,
1933       527,  527,  527,  527,  529,  527,  527,  527, 2143,  527,
1934       531,  527,  532,  527,  637,  257,  637,  637,  257,  637,
1935       649,  257,  649, 2108,  649,  257,  649,  997,  997,  997,
1936       639, 2109, 2147,  639, 2067, 2148,  650,  727,  527,  527,
1937       650, 2149,  533, 3298,  998, 2155, 2156,  737, 1231,  534,
1938      2117, 2157,  535,  686, 2171, 2175,  686, 2176, 2177,  536,
1939       527,  528,  257,  528,  527,  527,  527,  527,  527,  527,
1940
1941       527,  529,  527,  527,  527,  738,  527,  531,  527,  532,
1942       527, 2179,  687, 2183,  741, 1002, 1002, 1002,  688,  689,
1943      1014, 1014, 1014,  683, 2187,  689, 1026, 1026, 1026,  690,
1944       742, 2188, 1003, 2189, 2190,  527,  527, 1015, 2191,  533,
1945      1245, 1245, 1245, 1027, 1246, 2194,  534, 1247, 2201,  535,
1946      1694, 1694, 1694, 1697, 1697, 1697,  536,  541,  542,  257,
1947       542,  541,  541,  541,  541,  541,  541,  541,  543,  541,
1948       541,  541, 2203,  541,  545,  541,  546,  541, 1028, 1028,
1949      1028, 1034, 1034, 1034, 1037, 1037, 1037, 1051, 1051, 1051,
1950      1053, 1053, 1053, 2213, 2214, 1029, 1695, 2215, 1035, 1698,
1951
1952      2216, 1038,  541,  541, 1052, 2218, 1138, 1054,  547, 1255,
1953      1255, 1255, 2221, 1256, 1680, 2224, 1257, 1701, 1701, 1701,
1954      1704, 1704, 1704,  548,  541,  542,  257,  542,  541,  541,
1955       541,  541,  541,  541,  541,  543,  541,  541,  541, 2230,
1956       541,  545,  541,  546,  541, 1065, 1065, 1065, 1073, 1073,
1957      1073, 1078, 1078, 1078, 1084, 1084, 1084, 1104, 1104, 1104,
1958      2223, 2231, 1066, 2232, 2233, 1074, 2236, 2238, 1079,  541,
1959       541, 1085, 2239, 2240, 1105,  547, 1263, 1263, 1263, 2244,
1960      1264, 2249, 2251, 1265, 1714, 1714, 1714, 1540, 1540, 1540,
1961       548,  554,  555,  257,  555,  554,  554,  554,  554,  554,
1962
1963       554,  554,  556,  554,  554,  554, 2252,  554,  558,  554,
1964       559,  554, 1128, 1128, 1128, 1132, 1132, 1132, 1680, 2253,
1965      1151, 1151, 1151, 1151, 1151, 1151, 1186, 1186, 1186, 1129,
1966      2257, 2263, 1133, 1186, 1186, 1186,  554,  554, 1153, 2264,
1967      2265, 1153,  560, 2266, 1188,  561, 1280, 1280, 1280, 2222,
1968      1281, 1188, 2267, 1282, 1751, 1751, 1751,  562,  554,  555,
1969       257,  555,  554,  554,  554,  554,  554,  554,  554,  556,
1970       554,  554,  554, 2268,  554,  558,  554,  559,  554, 2269,
1971      2270, 1154,  947,  947,  947, 2271, 2272, 1196, 1196, 1196,
1972      1196, 1196, 1196, 1189,  955,  955,  955, 2278, 2279,  948,
1973
1974      1204, 1204, 1204,  554,  554, 1198, 2280, 2281, 1198,  560,
1975      2293,  956,  561, 2294, 1297, 1297, 1297, 1205, 1298, 2299,
1976      2300, 1299, 2302, 2303,  562,  567,  568,  257,  568,  567,
1977       567,  567,  567,  567,  567,  567,  569,  567,  567,  567,
1978      2304,  567,  571,  567,  572,  567, 1207, 1207, 1207, 1212,
1979      1212, 1212, 2305, 2309, 1199, 2310, 1212, 1212, 1212, 1219,
1980      1219, 1219, 2311, 1208, 1748, 1748, 1748, 1214, 2317, 2318,
1981       567,  567, 2319, 2320, 1214, 2323,  573, 1221, 1694, 1694,
1982      1694,  574,  567,  568,  257,  568,  567,  567,  567,  567,
1983       567,  567,  567,  569,  567,  567,  567, 2328,  567,  571,
1984
1985       567,  572,  567, 1215, 1219, 1219, 1219,  970,  970,  970,
1986      1749, 1227, 1227, 1227,  990,  990,  990, 1227, 1227, 1227,
1987      1918, 2332, 1221, 2333,  971, 2338, 1919,  567,  567, 1229,
1988      1920,  991, 2339,  573, 1921, 1229, 2340, 2341,  574,  578,
1989       579,  257,  579,  578,  578,  578,  578,  578,  578,  578,
1990       580,  578,  578,  578, 1230,  578,  582,  578,  583,  578,
1991      1250, 1250, 1250, 1250, 1250, 1250, 1922, 2343, 1222,  997,
1992       997,  997, 1923, 1259, 1259, 1259, 1924, 2353, 1252, 2364,
1993      1925, 1252, 2365, 2366,  578,  578,  998, 1002, 1002, 1002,
1994       584, 1261, 1300, 1300, 1300, 2370, 1301, 2371, 2372, 1302,
1995
1996      2375, 1750, 1750, 1750, 1003,  585,  578,  579,  257,  579,
1997       578,  578,  578,  578,  578,  578,  578,  580,  578,  578,
1998       578, 2379,  578,  582,  578,  583,  578, 2380, 1680, 1253,
1999      1259, 1259, 1259, 2381, 2382, 1267, 1267, 1267, 1267, 1267,
2000      1267, 1273, 1273, 1273, 1273, 1273, 1273, 1698, 1261, 2383,
2001      2295,  578,  578, 1269, 2384, 2385, 1269,  584, 2296, 1275,
2002      2297, 2334, 1275, 1311, 1311, 1311, 2386, 1312, 2298, 2335,
2003      1313, 2358,  585,  590,  591,  257,  591,  590,  590,  590,
2004       590,  590,  590,  590,  592,  590,  590,  590, 1680,  590,
2005       594,  590,  595,  590, 2387, 2388, 1262, 2403, 2404, 1270,
2006
2007      1014, 1014, 1014, 1285, 1285, 1285, 1026, 1026, 1026, 1276,
2008      1285, 1285, 1285, 1292, 1292, 1292, 2405, 1015,  590,  590,
2009      2406, 1287, 2336, 1027,  596, 2411, 2412,  597, 1287, 2413,
2010      2337, 1294, 1697, 1697, 1697, 2359, 1697, 1697, 1697,  598,
2011       590,  591,  257,  591,  590,  590,  590,  590,  590,  590,
2012       590,  592,  590,  590,  590, 2414,  590,  594,  590,  595,
2013       590, 1028, 1028, 1028, 2415, 2416, 1292, 1292, 1292, 2417,
2014      2420, 1288, 1303, 1303, 1303, 1303, 1303, 1303, 1029, 1034,
2015      1034, 1034, 1847, 2421, 1294,  590,  590, 1037, 1037, 1037,
2016      1305,  596, 2422, 1305,  597, 2427, 1035, 2428, 1315, 1315,
2017
2018      1315, 2433, 1316, 2434, 1038, 1317,  598,  603,  604,  257,
2019       604,  603,  603,  603,  603,  603,  603,  603,  605,  603,
2020       603,  603, 2435,  603,  607,  603,  608,  603, 1295, 1318,
2021      1318, 1318, 1329, 1329, 1329, 2436, 1306, 1329, 1329, 1329,
2022      1051, 1051, 1051, 1345, 1345, 1345, 1319, 1333, 1333, 1333,
2023      1331, 1334,  603,  603, 1335, 1331, 2445, 1052, 2446, 2447,
2024       609, 1347,  610, 2448, 2450,  611, 1891, 1891, 1891,  612,
2025      1701, 1701, 1701,  613,  603,  604,  257,  604,  603,  603,
2026       603,  603,  603,  603,  603,  605,  603,  603,  603, 2452,
2027       603,  607,  603,  608,  603, 1332, 1053, 1053, 1053, 1336,
2028
2029      1336, 1336, 1680, 1337, 2476, 1680, 1338, 1339, 1339, 1339,
2030      1360, 1360, 1360, 1054, 3298, 3298, 3298, 2477, 2479,  603,
2031       603, 3298, 3298, 3298, 1340, 2480, 2481,  609, 1362,  610,
2032      2482, 3298,  611, 1704, 1704, 1704,  612, 2472, 3298, 2473,
2033       613,  619,  620,  257,  620,  619,  619,  619,  619,  619,
2034       619,  619,  621,  619,  619,  619, 2486,  619,  623,  619,
2035       624,  619, 1345, 1345, 1345, 1341, 1065, 1065, 1065, 1714,
2036      1714, 1714, 2423, 1342, 3298, 3298, 3298, 3298, 3298, 3298,
2037      1347, 2487, 2424, 1066, 2488, 2489,  619,  619, 1353, 1353,
2038      1353, 3298, 1354, 2490, 3298, 1355, 1365, 1365, 1365, 2491,
2039
2040      1366, 2492, 2493, 1367, 2494, 1896, 1896, 1896, 2495, 1348,
2041       625,  619,  620,  257,  620,  619,  619,  619,  619,  619,
2042       619,  619,  621,  619,  619,  619, 1344,  619,  623,  619,
2043       624,  619, 1343, 1356, 1356, 1356, 1073, 1073, 1073, 2496,
2044      1368, 1368, 1368, 2498, 2499, 1360, 1360, 1360, 2502, 2503,
2045      1357, 2504, 2505, 1074, 2506, 2509,  619,  619, 1370, 1368,
2046      1368, 1368, 2510, 1362, 1373, 1373, 1373, 2511, 1374, 1897,
2047      2512, 1375, 1382, 1382, 1382, 2513, 1383, 1370, 2515, 1384,
2048       625,  629,  630,  257,  630,  629,  629,  629,  629,  629,
2049       629,  629,  631,  629,  629,  629, 1363,  629,  633,  629,
2050
2051       634,  629, 1078, 1078, 1078, 1377, 1377, 1377, 1084, 1084,
2052      1084, 2519, 1377, 1377, 1377, 1388, 1388, 1388, 2520, 1079,
2053      1371, 2521, 2500, 1379, 2522, 1085,  629,  629, 2526, 2527,
2054      1379, 2501, 2528, 1390, 1899, 1899, 1899,  635,  629,  630,
2055       257,  630,  629,  629,  629,  629,  629,  629,  629,  631,
2056       629,  629,  629, 2529,  629,  633,  629,  634,  629, 1380,
2057      2530, 1388, 1388, 1388, 1392, 1392, 1392, 2534, 1394, 1394,
2058      1394, 3298, 3298, 3298, 1397, 1397, 1397, 2507, 2537, 1390,
2059      1900, 1393, 2538,  629,  629, 1395, 2508, 2541, 3298, 1748,
2060      1748, 1748, 1399, 2553,  635,  640,  641,  257,  641,  640,
2061
2062       640,  640,  640,  640,  640,  640,  642,  640,  640,  640,
2063      2554,  640,  644,  640,  645,  640, 1391, 2557, 2558, 1397,
2064      1397, 1397, 1402, 1402, 1402, 1750, 1750, 1750, 2578, 2579,
2065      1396, 1406, 1406, 1406, 1409, 1409, 1409, 1399, 2580, 1403,
2066       640,  640, 3298, 3298, 3298, 3298, 3298, 3298, 1407, 1680,
2067      1138,  646, 1411, 1414, 1414, 1414, 2581, 1415, 2582, 3298,
2068      1416, 2591, 3298, 1680,  647,  640,  641,  257,  641,  640,
2069       640,  640,  640,  640,  640,  640,  642,  640,  640,  640,
2070      1400,  640,  644,  640,  645,  640, 2576, 1409, 1409, 1409,
2071      2575, 2592, 1404, 2593, 2594, 1104, 1104, 1104, 1417, 1417,
2072
2073      1417, 1417, 1417, 1417, 1408, 1411, 2577, 1405, 2595, 2596,
2074       640,  640, 1105, 1421, 1421, 1421, 1419, 2597, 2598, 1419,
2075      2599,  646, 2600, 2601, 1412, 2603, 1423, 1423, 1423, 2604,
2076      1422, 1425, 1425, 1425,  647,  655, 1425, 1425, 1425, 1435,
2077      1435, 1435,  670, 1424, 1429, 1429, 1429, 2605, 2606, 1427,
2078      2607,  654,  671, 2608, 1427, 2609, 1420, 1437, 3298, 3298,
2079      3298, 1430, 1751, 1751, 1751, 1433, 1433, 1433, 2610, 2611,
2080      1435, 1435, 1435, 2612, 2613, 3298, 1128, 1128, 1128,  672,
2081       673,  674, 1434, 2614, 2615,  675,  676,  677, 1437, 2616,
2082       678,  679, 2617, 1129,  680, 2618,  681,  682,  683,  655,
2083
2084      1444, 1444, 1444, 1444, 1444, 1444,  727, 1428, 1431, 1450,
2085      1450, 1450, 1450, 1450, 1450,  654,  728, 2619, 1446, 2585,
2086      2621, 1446, 2629, 1432, 1454, 1454, 1454, 1452, 1455, 2586,
2087      1452, 1456, 2587, 2630, 1457, 1457, 1457, 2631, 1457, 1457,
2088      1457, 1438, 2634,  672,  729,  684, 1132, 1132, 1132,  730,
2089       731,  677, 1459, 2635,  732,  679, 1459, 2639,  733, 2657,
2090       734,  735,  683, 1133, 1461, 1461, 1461, 1447, 1462, 2658,
2091      2674, 1463, 1465, 1465, 1465, 2659, 1453, 1465, 1465, 1465,
2092      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1680,
2093      1467, 1507, 1507, 1507, 2676, 1467, 2677, 1138, 1153, 1460,
2094
2095      2678, 1153, 2682, 2683, 1153, 1186, 1186, 1186, 1508, 1186,
2096      1186, 1186, 1186, 1186, 1186, 1510, 1510, 1510, 1191, 1191,
2097      1191, 2686, 1192, 1188, 2687, 1193, 2671, 1188, 2690, 1680,
2098      1188, 2672, 1511, 1477, 3298, 3298, 3298, 1196, 1196, 1196,
2099      2691, 1468, 1196, 1196, 1196, 1196, 1196, 1196, 1204, 1204,
2100      1204, 3298, 1201, 1201, 1201, 1198, 1202, 2692, 2693, 1203,
2101      1198, 1509, 2694, 1198, 2695, 1205, 1516, 1516, 1516, 2696,
2102      1517, 2673, 2684, 1518, 1519, 1519, 1519, 1207, 1207, 1207,
2103      1521, 1521, 1521, 2697, 1522, 2685, 2698, 1523, 1525, 1525,
2104      1525, 1520, 1514, 2700, 1208, 1512, 1212, 1212, 1212, 1212,
2105
2106      1212, 1212, 1212, 1212, 1212, 1526, 1530, 1530, 1530, 1219,
2107      1219, 1219, 2701, 2702, 1214, 2703, 2704, 1214, 2705, 2706,
2108      1214, 2688, 2707, 1531, 1219, 1219, 1219, 1221, 1219, 1219,
2109      1219, 1223, 1223, 1223, 2689, 1224, 2708, 2709, 1225, 1227,
2110      1227, 1227, 1221, 1227, 1227, 1227, 1221, 1535, 1535, 1535,
2111      2588, 1245, 1245, 1245, 2710, 1246, 2711, 1229, 1247, 2712,
2112      2589, 1229, 1528, 2590, 2713, 1536, 1552, 1552, 1552, 1250,
2113      1250, 1250, 1250, 1250, 1250, 1533, 1250, 1250, 1250, 1259,
2114      1259, 1259, 2714, 1553, 1255, 1255, 1255, 1252, 1256, 2716,
2115      1252, 1257, 2724, 2725, 1252, 2733, 2734, 1261, 1259, 1259,
2116
2117      1259, 1259, 1259, 1259, 1263, 1263, 1263, 2751, 1264, 2752,
2118      2753, 1265, 1558, 1558, 1558, 2754, 1261, 2755, 2756, 1261,
2119      1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1559,
2120      1561, 1561, 1561, 3298, 3298, 3298, 2759, 1554, 1269, 1680,
2121      2767, 1269, 2769, 2770, 1269, 2771, 2772, 1562, 2773, 2760,
2122      3298, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
2123      2774, 1563, 1557, 1567, 1567, 1567, 1280, 1280, 1280, 1275,
2124      1281, 1138, 1275, 1282, 2764, 1275, 1285, 1285, 1285, 2775,
2125      1568, 1285, 1285, 1285, 1285, 1285, 1285, 1574, 1574, 1574,
2126      1292, 1292, 1292, 1560, 1287, 1292, 1292, 1292, 2776, 1287,
2127
2128      2777, 2778, 1287, 2781, 1575, 1577, 1577, 1577, 1294, 1292,
2129      1292, 1292, 2782, 1294, 1297, 1297, 1297, 2761, 1298, 2763,
2130      2783, 1299, 1578, 1564, 1300, 1300, 1300, 1294, 1301, 2784,
2131      2762, 1302, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303,
2132      1303, 1311, 1311, 1311, 2785, 1312, 2786, 2787, 1313, 1571,
2133      1305, 2788, 2790, 1305, 2791, 2792, 1305, 1584, 1584, 1584,
2134      1315, 1315, 1315, 2793, 1316, 2794, 2795, 1317, 1318, 1318,
2135      1318, 1586, 1586, 1586, 1585, 1587, 1576, 2796, 1588, 1329,
2136      1329, 1329, 1329, 1329, 1329, 1319, 1329, 1329, 1329, 1333,
2137      1333, 1333, 2660, 1334, 2797, 2798, 1335, 1331, 2799, 2800,
2138
2139      1331, 2801, 2661, 1579, 1331, 1336, 1336, 1336, 2662, 1337,
2140      2802, 2803, 1338, 1339, 1339, 1339, 1599, 1599, 1599, 2804,
2141      1600, 2810, 2811, 1601, 1345, 1345, 1345, 1345, 1345, 1345,
2142      1340, 1345, 1345, 1345, 1353, 1353, 1353, 2812, 1354, 2819,
2143      2820, 1355, 1347, 2834, 2835, 1347, 1356, 1356, 1356, 1347,
2144      1611, 1611, 1611, 1598, 1612, 2836, 2837, 1613, 1360, 1360,
2145      1360, 2838, 2839, 1357, 1360, 1360, 1360, 1360, 1360, 1360,
2146      1365, 1365, 1365, 2826, 1366, 2843, 1362, 1367, 2844, 1606,
2147      2845, 2846, 1362, 2827, 2856, 1362, 1368, 1368, 1368, 1368,
2148      1368, 1368, 1368, 1368, 1368, 1373, 1373, 1373, 2828, 1374,
2149
2150      2857, 2858, 1375, 2859, 1370, 2860, 2861, 1370, 2829, 2862,
2151      1370, 1377, 1377, 1377, 1377, 1377, 1377, 2863, 1616, 1377,
2152      1377, 1377, 2867, 1382, 1382, 1382, 2830, 1383, 2868, 1379,
2153      1384, 2832, 1379, 1388, 1388, 1388, 2831, 1379, 1388, 1388,
2154      1388, 2833, 1388, 1388, 1388, 1392, 1392, 1392, 1627, 1627,
2155      1627, 1390, 1628, 2869, 2870, 1629, 1390, 1138, 2871, 1618,
2156      1390, 2872, 1393, 1394, 1394, 1394, 2874, 2875, 1621, 1630,
2157      1630, 1630, 2876, 1631, 2877, 2878, 1632, 1397, 1397, 1397,
2158      1395, 1397, 1397, 1397, 2879, 1397, 1397, 1397, 1402, 1402,
2159      1402, 2847, 1406, 1406, 1406, 1399, 1907, 1907, 1907, 1399,
2160
2161      2880, 2881, 1626, 1399, 2882, 1403, 1636, 1636, 1636, 1407,
2162      1637, 2883, 2887, 1638, 1641, 1641, 1641, 2888, 1642, 2889,
2163      2892, 1643, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
2164      1409, 1414, 1414, 1414, 2897, 1415, 2898, 2899, 1416, 2900,
2165      1411, 2901, 1908, 1411, 2902, 2903, 1411, 1417, 1417, 1417,
2166      2904, 2905, 1634, 1417, 1417, 1417, 1417, 1417, 1417, 1421,
2167      1421, 1421, 1648, 1648, 1648, 1419, 1649, 2906, 2907, 1650,
2168      2908, 1419, 2910, 2911, 1419, 2912, 1422, 1423, 1423, 1423,
2169      1651, 1651, 1651, 2913, 1652, 1138, 2920, 1653, 1425, 1425,
2170      1425, 2921, 1645, 2922, 1424, 1425, 1425, 1425, 2923, 1425,
2171
2172      1425, 1425, 1429, 1429, 1429, 2924, 1427, 1655, 1655, 1655,
2173      2925, 1656, 2926, 1427, 1657, 2927, 1647, 1427, 2928, 1430,
2174      1433, 1433, 1433, 1660, 1660, 1660, 2929, 1661, 2914, 2930,
2175      1662, 1435, 1435, 1435, 1435, 1435, 1435, 1434, 1435, 1435,
2176      1435, 1665, 1665, 1665, 1444, 1444, 1444, 2931, 2932, 1437,
2177      2933, 2936, 1437, 1444, 1444, 1444, 1437, 2937, 1666, 2938,
2178      2939, 1654, 1446, 1444, 1444, 1444, 1450, 1450, 1450, 2940,
2179      2941, 1446, 1450, 1450, 1450, 1450, 1450, 1450, 1454, 1454,
2180      1454, 1446, 1455, 2942, 1452, 1456, 1457, 1457, 1457, 2943,
2181      1452, 2944, 2945, 1452, 1457, 1457, 1457, 1457, 1457, 1457,
2182
2183      1663, 1461, 1461, 1461, 1459, 1462, 2946, 2950, 1463, 1465,
2184      1465, 1465, 1459, 2957, 2958, 1459, 1465, 1465, 1465, 1465,
2185      1465, 1465, 2959, 2960, 1670, 2961, 2962, 1467, 1673, 1679,
2186      1679, 1679, 2963, 2964, 1467, 2965, 2966, 1467, 1151, 1151,
2187      1151, 1507, 1507, 1507, 1186, 1186, 1186, 1680, 1681, 2967,
2188      1510, 1510, 1510, 1535, 1535, 1535, 1153, 1674, 1508, 1717,
2189      1717, 1717, 1188, 1718, 2968, 2971, 1719, 1511, 1721, 1721,
2190      1721, 1536, 1722, 2972, 2973, 1723, 1196, 1196, 1196, 2974,
2191      1676, 1516, 1516, 1516, 1138, 1517, 2982, 2977, 1518, 1519,
2192      1519, 1519, 2983, 2984, 1198, 2985, 1728, 1728, 1728, 2977,
2193
2194      1729, 2978, 1720, 1730, 1686, 2986, 1520, 1521, 1521, 1521,
2195      2980, 1522, 2987, 2988, 1523, 1525, 1525, 1525, 2989, 1732,
2196      1732, 1732, 2990, 1733, 2991, 1726, 1734, 1212, 1212, 1212,
2197      2975, 2992, 1526, 1530, 1530, 1530, 1738, 1738, 1738, 2993,
2198      1739, 2994, 2995, 1740, 2996, 1214, 1741, 1741, 1741, 2997,
2199      1531, 1219, 1219, 1219, 1759, 1759, 1759, 1552, 1552, 1552,
2200      1761, 1761, 1761, 1742, 1762, 2998, 2999, 1763, 3000, 1221,
2201      3005, 1760, 3010, 3011, 1553, 3012, 3013, 1736, 1250, 1250,
2202      1250, 1259, 1259, 1259, 1558, 1558, 1558, 1768, 1768, 1768,
2203      3014, 1769, 3015, 3018, 1770, 3018, 1252, 1138, 3021, 1261,
2204
2205      1743, 1559, 1267, 1267, 1267, 1561, 1561, 1561, 1772, 1772,
2206      1772, 3022, 1773, 1680, 1681, 1774, 1273, 1273, 1273, 3001,
2207      1269, 3023, 1562, 1567, 1567, 1567, 1779, 1779, 1779, 3003,
2208      1780, 3002, 3006, 1781, 1275, 1782, 1782, 1782, 3016, 3024,
2209      1568, 3004, 1764, 3027, 3007, 1767, 1784, 1784, 1784, 1285,
2210      1285, 1285, 1783, 1574, 1574, 1574, 3008, 1790, 1790, 1790,
2211      3030, 1791, 1771, 1785, 1792, 3039, 3025, 1287, 3009, 2977,
2212      1575, 1793, 1793, 1793, 1577, 1577, 1577, 1776, 1795, 1795,
2213      1795, 3042, 1796, 2978, 3026, 1797, 1303, 1303, 1303, 1794,
2214      3028, 1578, 1786, 1800, 1800, 1800, 1584, 1584, 1584, 1804,
2215
2216      1804, 1804, 3047, 1805, 1305, 3029, 1806, 1586, 1586, 1586,
2217      1801, 1587, 3050, 1585, 1588, 1787, 1809, 1809, 1809, 1329,
2218      1329, 1329, 1599, 1599, 1599, 3051, 1600, 3052, 3018, 1601,
2219      1818, 1818, 1818, 1810, 3298, 3298, 3298, 1331, 3298, 3298,
2220      3298, 3298, 3298, 3298, 1345, 1345, 1345, 1819, 1825, 1825,
2221      1825, 3298, 1798, 2977, 3054, 3298, 3018, 3055, 3298, 1611,
2222      1611, 1611, 1347, 1612, 2980, 1826, 1613, 3056, 3057, 1829,
2223      1829, 1829, 1360, 1360, 1360, 1368, 1368, 1368, 1377, 1377,
2224      1377, 1841, 1841, 1841, 1817, 1821, 1830, 1388, 1388, 1388,
2225      1362, 3058, 3059, 1370, 3060, 3061, 1379, 3062, 1842, 1823,
2226
2227      3072, 1397, 1397, 1397, 1820, 1390, 1627, 1627, 1627, 3037,
2228      1628, 1822, 3073, 1629, 1630, 1630, 1630, 3074, 1631, 1399,
2229      3075, 1632, 1636, 1636, 1636, 3076, 1637, 1843, 3038, 1638,
2230      1641, 1641, 1641, 3077, 1642, 1837, 1832, 1643, 1409, 1409,
2231      1409, 1834, 3081, 3040, 1844, 1417, 1417, 1417, 1648, 1648,
2232      1648, 3082, 1649, 3083, 3084, 1650, 1411, 1651, 1651, 1651,
2233      3045, 1652, 3041, 1419, 1653, 3085, 3048, 1846, 1425, 1425,
2234      1425, 1655, 1655, 1655, 3086, 1656, 3087, 3088, 1657, 3046,
2235      1660, 1660, 1660, 3090, 1661, 3049, 1427, 1662, 1435, 1435,
2236      1435, 1665, 1665, 1665, 1859, 1859, 1859, 3091, 1860, 1851,
2237
2238      3092, 1861, 1853, 1444, 1444, 1444, 1437, 3093, 1666, 1867,
2239      1867, 1867, 1450, 1450, 1450, 1854, 1457, 1457, 1457, 3094,
2240      3099, 1446, 1871, 1871, 1871, 3100, 1868, 1465, 1465, 1465,
2241      1452, 1679, 1679, 1679, 1459, 1857, 1151, 1151, 1151, 1872,
2242      1717, 1717, 1717, 3101, 1718, 1467, 3102, 1719, 3103, 1680,
2243      3104, 3095, 1865, 3105, 1153, 1186, 1186, 1186, 1721, 1721,
2244      1721, 3106, 1722, 3096, 3107, 1723, 3108, 3109, 1870, 1196,
2245      1196, 1196, 3110, 1188, 1728, 1728, 1728, 3111, 1729, 1869,
2246      3112, 1730, 1875, 1212, 1212, 1212, 3097, 1198, 1880, 1873,
2247      1732, 1732, 1732, 3114, 1733, 3115, 3116, 1734, 3098, 1876,
2248
2249      3117, 1214, 1738, 1738, 1738, 3118, 1739, 3119, 3120, 1740,
2250      1741, 1741, 1741, 3121, 1926, 1926, 1926, 1138, 1927, 3122,
2251      1912, 1928, 1909, 1219, 1219, 1219, 3123, 1742, 1935, 1935,
2252      1935, 1935, 1935, 1935, 1896, 1896, 1896, 1759, 1759, 1759,
2253      3124, 1221, 3113, 3125, 1916, 1941, 1941, 1941, 3126, 1942,
2254      3127, 3128, 1943, 3129, 1760, 1761, 1761, 1761, 3130, 1762,
2255      3131, 3132, 1763, 1250, 1250, 1250, 1946, 1946, 1946, 1259,
2256      1259, 1259, 3133, 3135, 1929, 1768, 1768, 1768, 1138, 1769,
2257      3136, 1252, 1770, 1947, 1267, 1267, 1267, 1261, 3137, 1772,
2258      1772, 1772, 1936, 1773, 3138, 1897, 1774, 3134, 1936, 1273,
2259
2260      1273, 1273, 1269, 1950, 1950, 1950, 3139, 1779, 1779, 1779,
2261      1944, 1780, 3140, 3141, 1781, 3142, 1948, 1275, 3143, 3144,
2262      1951, 1782, 1782, 1782, 1955, 1955, 1955, 3145, 1956, 3146,
2263      3147, 1957, 1784, 1784, 1784, 1958, 1958, 1958, 1783, 1959,
2264      3148, 3149, 1960, 1962, 1962, 1962, 1964, 1964, 1964, 1785,
2265      1949, 1790, 1790, 1790, 3150, 1791, 3151, 3152, 1792, 3154,
2266      3155, 1963, 3156, 1952, 1793, 1793, 1793, 1795, 1795, 1795,
2267      3157, 1796, 1138, 3158, 1797, 1303, 1303, 1303, 1800, 1800,
2268      1800, 3159, 1794, 1968, 1968, 1968, 3160, 1969, 3161, 3162,
2269      1970, 3163, 3153, 1305, 3164, 1801, 1971, 1971, 1971, 1804,
2270
2271      1804, 1804, 3165, 1805, 3166, 3167, 1806, 1809, 1809, 1809,
2272      1976, 1976, 1976, 1972, 1977, 3168, 3169, 1978, 1979, 1979,
2273      1979, 1966, 3170, 3171, 1810, 1985, 1985, 1985, 1329, 1329,
2274      1329, 1818, 1818, 1818, 3173, 1980, 1988, 1988, 1988, 1138,
2275      1989, 3174, 1986, 1990, 3175, 3172, 1331, 3176, 1819, 1991,
2276      1991, 1991, 3298, 3298, 3298, 1994, 1994, 1994, 1345, 1345,
2277      1345, 1825, 1825, 1825, 3177, 3178, 1992, 3179, 3180, 3298,
2278      3181, 3182, 1995, 1998, 1998, 1998, 1347, 1999, 1826, 3183,
2279      2000, 2001, 2001, 2001, 1829, 1829, 1829, 3184, 2004, 2004,
2280      2004, 3186, 2005, 3187, 1987, 2006, 3188, 3189, 2002, 3190,
2281
2282      3191, 1830, 2008, 2008, 2008, 1368, 1368, 1368, 1138, 3192,
2283      1993, 1377, 1377, 1377, 1841, 1841, 1841, 3193, 1996, 3195,
2284      2009, 3196, 3185, 1370, 3197, 3198, 2018, 2018, 2018, 1379,
2285      2019, 1842, 3199, 2020, 2022, 2022, 2022, 1397, 1397, 1397,
2286      2027, 2027, 2027, 2029, 2029, 2029, 3298, 3298, 3298, 1409,
2287      1409, 1409, 2023, 3200, 3201, 1399, 2011, 2028, 3202, 2014,
2288      2030, 3205, 3206, 3298, 1425, 1425, 1425, 1411, 1417, 1417,
2289      1417, 3207, 2036, 2036, 2036, 2038, 2038, 2038, 1435, 1435,
2290      1435, 3208, 1427, 1859, 1859, 1859, 1419, 1860, 2025, 2037,
2291      1861, 3209, 2039, 1444, 1444, 1444, 1437, 3210, 1867, 1867,
2292
2293      1867, 2047, 2047, 2047, 3221, 2048, 1138, 1138, 2049, 3219,
2294      2031, 1446, 1138, 1138, 2034, 1868, 2032, 1450, 1450, 1450,
2295      1457, 1457, 1457, 1871, 1871, 1871, 2052, 2052, 2052, 2035,
2296      2053, 3222, 3220, 2054, 1727, 1452, 1138, 1138, 1459, 1138,
2297      1872, 3243, 3211, 2040, 2045, 2055, 2055, 2055, 2061, 2061,
2298      2061, 1151, 1151, 1151, 2071, 2071, 2071, 1891, 1891, 1891,
2299      2078, 2078, 2078, 2056, 1138, 2062, 1896, 1896, 1896, 1153,
2300      2079, 2079, 2079, 3212, 1138, 2051, 2050, 1899, 1899, 1899,
2301      2082, 2082, 2082, 2083, 2083, 2083, 1907, 1907, 1907, 1186,
2302      1186, 1186, 2092, 2092, 2092, 3295, 2095, 2095, 2095, 1212,
2303
2304      1212, 1212, 2099, 2099, 2099, 1138, 1138, 1188, 3217, 1138,
2305      2093, 3227, 2063, 2096, 1926, 1926, 1926, 1214, 1927, 2100,
2306      1138, 1928, 1219, 1219, 1219, 2112, 2112, 2112, 1935, 1935,
2307      1935, 2119, 2119, 2119, 2121, 2121, 2121, 1138, 1138, 2089,
2308      1221, 1138, 2113, 1941, 1941, 1941, 3228, 1942, 1138, 3218,
2309      1943, 2122, 1250, 1250, 1250, 2124, 2124, 2124, 2098, 1946,
2310      1946, 1946, 2126, 2126, 2126, 1138, 2127, 3225, 2111, 2128,
2311      1252, 3244, 2125, 1259, 1259, 1259, 1947, 2130, 2130, 2130,
2312      1950, 1950, 1950, 2132, 2132, 2132, 3213, 2133, 1138, 3214,
2313      2134, 1261, 1273, 1273, 1273, 2131, 3215, 1951, 1138, 1955,
2314
2315      1955, 1955, 1725, 1956, 3223, 2123, 1957, 1958, 1958, 1958,
2316      1275, 1959, 1138, 3216, 1960, 1962, 1962, 1962, 1964, 1964,
2317      1964, 3251, 1303, 1303, 1303, 1138, 2129, 1968, 1968, 1968,
2318      3224, 1969, 1138, 1963, 1970, 1971, 1971, 1971, 1138, 2135,
2319      1305, 2144, 2144, 2144, 3233, 2145, 1138, 1138, 2146, 1976,
2320      1976, 1976, 1972, 1977, 1138, 1138, 1978, 1979, 1979, 1979,
2321      2150, 2150, 2150, 1138, 2151, 1724, 3229, 2152, 2153, 2153,
2322      2153, 1985, 1985, 1985, 1980, 2158, 2158, 2158, 3234, 2159,
2323      2142, 1138, 2160, 1138, 3235, 2154, 3237, 3230, 1986, 1329,
2324      1329, 1329, 1988, 1988, 1988, 1138, 1989, 1138, 1138, 1990,
2325
2326      1991, 1991, 1991, 3291, 2162, 2162, 2162, 1331, 2163, 1138,
2327      3226, 2164, 2165, 2165, 2165, 3238, 3231, 1992, 1994, 1994,
2328      1994, 2167, 2167, 2167, 3263, 2168, 1716, 3239, 2169, 2166,
2329      1345, 1345, 1345, 3232, 3236, 1995, 1138, 1998, 1998, 1998,
2330      2161, 1999, 1138, 3240, 2000, 2001, 2001, 2001, 1347, 2172,
2331      2172, 2172, 1138, 2173, 1715, 3247, 2174, 2004, 2004, 2004,
2332      1138, 2005, 2002, 1138, 2006, 2008, 2008, 2008, 1368, 1368,
2333      1368, 2180, 2180, 2180, 1377, 1377, 1377, 2184, 2184, 2184,
2334      1138, 2170, 1138, 2009, 1138, 3245, 1370, 1138, 2181, 2018,
2335      2018, 2018, 1379, 2019, 2185, 3241, 2020, 2022, 2022, 2022,
2336
2337      2192, 2192, 2192, 2027, 2027, 2027, 2195, 2195, 2195, 3248,
2338      2196, 1138, 1713, 2197, 3267, 2023, 1138, 3242, 2193, 3249,
2339      2028, 1138, 1138, 2186, 2029, 2029, 2029, 2198, 2198, 2198,
2340      3246, 2199, 2178, 1712, 2200, 2182, 1409, 1409, 1409, 1138,
2341      3264, 2030, 1417, 1417, 1417, 1425, 1425, 1425, 2036, 2036,
2342      2036, 2206, 2206, 2206, 1411, 2207, 3250, 1138, 2208, 3255,
2343      1419, 1711, 3259, 1427, 1138, 2037, 2038, 2038, 2038, 2209,
2344      2209, 2209, 3252, 2210, 1138, 3253, 2211, 1435, 1435, 1435,
2345      1444, 1444, 1444, 2039, 1138, 2047, 2047, 2047, 3254, 2048,
2346      1138, 2204, 2049, 1138, 3256, 1437, 1138, 1138, 1446, 1450,
2347
2348      1450, 1450, 2202, 1457, 1457, 1457, 3257, 2052, 2052, 2052,
2349      2205, 2053, 1138, 1710, 2054, 1709, 3258, 1452, 2055, 2055,
2350      2055, 1459, 2061, 2061, 2061, 2225, 2225, 2225, 3265, 2226,
2351      3261, 3266, 2227, 1151, 1151, 1151, 2056, 1138, 3292, 2062,
2352      1138, 3295, 2212, 3273, 1708, 2217, 2229, 2229, 2229, 3262,
2353      2219, 1153, 2234, 2234, 2234, 1138, 2220, 2235, 2235, 2235,
2354      2071, 2071, 2071, 2237, 2237, 2237, 2241, 2241, 2241, 2078,
2355      2078, 2078, 2079, 2079, 2079, 2242, 2242, 2242, 2082, 2082,
2356      2082, 2083, 2083, 2083, 2245, 2245, 2245, 2246, 2246, 2246,
2357      2247, 2247, 2247, 2248, 2248, 2248, 1138, 2228, 1186, 1186,
2358
2359      1186, 2092, 2092, 2092, 1707, 2095, 2095, 2095, 2254, 2254,
2360      2254, 3287, 2255, 1138, 1706, 2256, 1188, 1705, 1703, 2093,
2361      1138, 2243, 2096, 2258, 2258, 2258, 2099, 2099, 2099, 2260,
2362      2260, 2260, 3271, 2261, 1702, 1700, 2262, 1219, 1219, 1219,
2363      1138, 2259, 3260, 2100, 2112, 2112, 2112, 3268, 3272, 2250,
2364      2274, 2274, 2274, 1138, 2275, 1221, 1138, 2276, 2277, 2277,
2365      2277, 2113, 2119, 2119, 2119, 2282, 2282, 2282, 2121, 2121,
2366      2121, 2284, 2284, 2284, 1138, 2285, 1138, 1699, 2286, 1250,
2367      1250, 1250, 2124, 2124, 2124, 2122, 2273, 2288, 2288, 2288,
2368      3275, 2289, 1138, 1138, 2290, 1696, 1693, 1252, 1138, 2125,
2369
2370      2126, 2126, 2126, 1138, 2127, 1138, 1138, 2128, 1259, 1259,
2371      1259, 2283, 1138, 2130, 2130, 2130, 2132, 2132, 2132, 1138,
2372      2133, 3274, 3269, 2134, 1692, 3285, 1261, 1273, 1273, 1273,
2373      2287, 2131, 1303, 1303, 1303, 2144, 2144, 2144, 3270, 2145,
2374      3276, 3279, 2146, 1138, 3281, 1275, 3277, 2150, 2150, 2150,
2375      1305, 2151, 1138, 3278, 2152, 2153, 2153, 2153, 1691, 2291,
2376      2306, 2306, 2306, 1138, 2307, 3282, 1138, 2308, 1138, 2158,
2377      2158, 2158, 2154, 2159, 1690, 3286, 2160, 1329, 1329, 1329,
2378      2292, 2162, 2162, 2162, 3289, 2163, 1689, 2301, 2164, 2165,
2379      2165, 2165, 2313, 2313, 2313, 1331, 2314, 1688, 3280, 2315,
2380
2381      2167, 2167, 2167, 3283, 2168, 3284, 2166, 2169, 1345, 1345,
2382      1345, 2172, 2172, 2172, 1687, 2173, 3288, 1685, 2174, 2321,
2383      2321, 2321, 2180, 2180, 2180, 1138, 1347, 2324, 2324, 2324,
2384      1684, 2325, 1683, 1682, 2326, 1675, 1138, 2322, 1672, 2181,
2385      1671, 2312, 1377, 1377, 1377, 2184, 2184, 2184, 2329, 2329,
2386      2329, 1669, 2330, 1668, 1667, 2331, 1138, 2192, 2192, 2192,
2387      1379, 1664, 2185, 2195, 2195, 2195, 1138, 2196, 3290, 1659,
2388      2197, 1409, 1409, 1409, 2316, 2193, 2198, 2198, 2198, 1658,
2389      2199, 1646, 1644, 2200, 1640, 1417, 1417, 1417, 3293, 1411,
2390      1425, 1425, 1425, 2206, 2206, 2206, 1639, 2207, 3294, 1635,
2391
2392      2208, 1633, 2327, 1419, 1625, 2209, 2209, 2209, 1427, 2210,
2393      1624, 1623, 2211, 1435, 1435, 1435, 1622, 2347, 2347, 2347,
2394      1620, 1619, 2342, 3298, 3298, 3298, 2345, 3298, 3298, 3298,
2395      1617, 1437, 1615, 2346, 2348, 3298, 3298, 3298, 1614, 1610,
2396      3298, 1444, 1444, 1444, 3298, 1450, 1450, 1450, 2355, 2355,
2397      2355, 2344, 3298, 2357, 2357, 2357, 2360, 2360, 2360, 1446,
2398      2225, 2225, 2225, 1452, 2226, 1609, 2356, 2227, 1151, 1151,
2399      1151, 1138, 1608, 1607, 2349, 2229, 2229, 2229, 2362, 2362,
2400      2362, 2363, 2363, 2363, 1605, 1604, 1153, 2234, 2234, 2234,
2401      1603, 2350, 1602, 1597, 2351, 2235, 2235, 2235, 2237, 2237,
2402
2403      2237, 2367, 2367, 2367, 1596, 2354, 2352, 2368, 2368, 2368,
2404      2369, 2369, 2369, 2241, 2241, 2241, 2242, 2242, 2242, 2245,
2405      2245, 2245, 2246, 2246, 2246, 1595, 1594, 2361, 2247, 2247,
2406      2247, 2248, 2248, 2248, 2373, 2373, 2373, 2376, 2376, 2376,
2407      2254, 2254, 2254, 1593, 2255, 1592, 1591, 2256, 3298, 3298,
2408      3298, 1590, 2374, 1589, 2377, 2258, 2258, 2258, 1583, 2260,
2409      2260, 2260, 1582, 2261, 1581, 3298, 2262, 1219, 1219, 1219,
2410      2274, 2274, 2274, 2259, 2275, 2390, 2391, 2276, 2392, 1580,
2411      2396, 2397, 1573, 2398, 1572, 1221, 2393, 1570, 1569, 2394,
2412      1566, 2399, 1565, 2395, 2400, 2277, 2277, 2277, 2401, 2402,
2413
2414      2402, 2402, 2282, 2282, 2282, 2284, 2284, 2284, 1556, 2285,
2415      1555, 1551, 2286, 1550, 2378, 1250, 1250, 1250, 2288, 2288,
2416      2288, 1549, 2289, 1548, 1547, 2290, 1546, 1545, 2389, 2408,
2417      2408, 2408, 1544, 1252, 1273, 1273, 1273, 2418, 2418, 2418,
2418      1303, 1303, 1303, 1542, 2306, 2306, 2306, 2409, 2307, 1541,
2419      1539, 2308, 1275, 2425, 2425, 2425, 1538, 1537, 1305, 1534,
2420      1532, 2407, 2429, 2429, 2429, 2313, 2313, 2313, 1529, 2314,
2421      2426, 1527, 2315, 2431, 2431, 2431, 2321, 2321, 2321, 1524,
2422      2430, 2437, 2437, 2437, 1515, 2410, 2324, 2324, 2324, 1513,
2423      2325, 2432, 1506, 2326, 2322, 1377, 1377, 1377, 2438, 1504,
2424
2425      2419, 2440, 2440, 2440, 2329, 2329, 2329, 1503, 2330, 1502,
2426      1501, 2331, 1500, 1379, 3298, 3298, 3298, 1499, 2441, 3298,
2427      3298, 3298, 3298, 3298, 3298, 2451, 2451, 2451, 2455, 2455,
2428      2455, 3298, 2453, 2453, 2453, 1498, 3298, 1497, 1496, 3298,
2429      1417, 1417, 1417, 1495, 1492, 2456, 2439, 2442, 1491, 1490,
2430      2454, 1489, 1425, 1425, 1425, 2347, 2347, 2347, 1419, 1435,
2431      1435, 1435, 1488, 1487, 2460, 2460, 2460, 1486, 2461, 2443,
2432      1427, 2462, 2348, 2449, 2463, 2463, 2463, 1437, 1484, 1483,
2433      2444, 3298, 3298, 3298, 3298, 3298, 3298, 2467, 2467, 2467,
2434      1482, 2464, 2469, 2469, 2469, 1481, 2459, 1480, 3298, 1479,
2435
2436      2457, 3298, 1450, 1450, 1450, 2468, 2355, 2355, 2355, 2357,
2437      2357, 2357, 1478, 2458, 2360, 2360, 2360, 2362, 2362, 2362,
2438      1452, 2474, 2474, 2474, 2356, 1476, 1475, 1138, 2363, 2363,
2439      2363, 1474, 2465, 1473, 1472, 2466, 2478, 2478, 2478, 2475,
2440      2367, 2367, 2367, 2368, 2368, 2368, 2369, 2369, 2369, 2373,
2441      2373, 2373, 2376, 2376, 2376, 2483, 2483, 2483, 1471, 2484,
2442      1470, 1138, 2485, 1219, 1219, 1219, 1464, 2374, 2470, 2377,
2443      1449, 2471, 2402, 2402, 2402, 2514, 2514, 2514, 1250, 1250,
2444      1250, 1221, 2408, 2408, 2408, 2517, 2517, 2517, 2523, 2523,
2445      2523, 2418, 2418, 2418, 1448, 1443, 1252, 1303, 1303, 1303,
2446
2447      2409, 1442, 1441, 2518, 1440, 2524, 1439, 2425, 2425, 2425,
2448      2531, 2531, 2531, 1413, 2532, 1305, 1401, 2533, 2535, 2535,
2449      2535, 1387, 1386, 2497, 2426, 2429, 2429, 2429, 2431, 2431,
2450      2431, 2539, 2539, 2539, 1385, 2536, 2437, 2437, 2437, 1381,
2451      2545, 2545, 2545, 2430, 2516, 1376, 2432, 1372, 2540, 2440,
2452      2440, 2440, 1364, 2438, 2525, 2542, 2542, 2542, 2546, 2543,
2453      1359, 1358, 2544, 2547, 2547, 2547, 2441, 2548, 1352, 1349,
2454      2549, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
2455      2555, 2555, 2555, 2451, 2451, 2451, 1328, 1327, 3298, 1326,
2456      1325, 3298, 1324, 1323, 3298, 1322, 1321, 2556, 2453, 2453,
2457
2458      2453, 2455, 2455, 2455, 2559, 2559, 2559, 1320, 2560, 1314,
2459      1307, 2561, 2562, 2562, 2562, 1296, 2454, 1291, 2456, 1425,
2460      1425, 1425, 1290, 2550, 1435, 1435, 1435, 2460, 2460, 2460,
2461      2563, 2461, 2551, 1289, 2462, 2552, 1284, 1427, 2463, 2463,
2462      2463, 1283, 1437, 2566, 2566, 2566, 1279, 2567, 1278, 1277,
2463      2568, 2569, 2569, 2569, 1272, 2464, 2571, 2571, 2571, 2467,
2464      2467, 2467, 2469, 2469, 2469, 2573, 2573, 2573, 2570, 2474,
2465      2474, 2474, 1271, 2572, 2478, 2478, 2478, 2468, 2583, 2583,
2466      2583, 1266, 1258, 2574, 1254, 1249, 2564, 2475, 2565, 2483,
2467      2483, 2483, 1248, 2484, 1244, 2584, 2485, 1219, 1219, 1219,
2468
2469      2514, 2514, 2514, 1250, 1250, 1250, 2517, 2517, 2517, 2622,
2470      2622, 2622, 2523, 2523, 2523, 1221, 2624, 2624, 2624, 1243,
2471      2625, 1252, 1242, 2626, 2518, 1241, 2623, 1240, 1239, 2524,
2472      2627, 2627, 2627, 2632, 2632, 2632, 2531, 2531, 2531, 1238,
2473      2532, 1237, 1236, 2533, 2535, 2535, 2535, 1235, 2628, 1234,
2474      2633, 2636, 2636, 2636, 1233, 2637, 1232, 2602, 2638, 1226,
2475      1218, 2536, 2640, 2640, 2640, 2539, 2539, 2539, 2642, 2642,
2476      2642, 1217, 2643, 1216, 2620, 2644, 2645, 2645, 2645, 2641,
2477      1211, 1210, 2540, 2542, 2542, 2542, 1209, 2543, 1206, 1200,
2478      2544, 1195, 1194, 2646, 2545, 2545, 2545, 2547, 2547, 2547,
2479
2480      1190, 2548, 1185, 1184, 2549, 3298, 3298, 3298, 3298, 3298,
2481      3298, 1183, 2546, 3298, 3298, 3298, 2555, 2555, 2555, 2650,
2482      2650, 2650, 3298, 2651, 1182, 3298, 2652, 2653, 2653, 2653,
2483      3298, 1181, 1180, 2556, 2655, 2655, 2655, 1179, 2559, 2559,
2484      2559, 1177, 2560, 1176, 2654, 2561, 2562, 2562, 2562, 1175,
2485      1174, 2656, 1425, 1425, 1425, 1435, 1435, 1435, 1173, 2648,
2486      2647, 2569, 2569, 2569, 2563, 2566, 2566, 2566, 2649, 2567,
2487      1427, 1172, 2568, 1437, 1171, 2665, 2665, 2665, 2570, 2666,
2488      1170, 1169, 2667, 2571, 2571, 2571, 2668, 2668, 2668, 1168,
2489      2669, 1167, 1166, 2670, 2573, 2573, 2573, 2675, 2675, 2675,
2490
2491      2572, 1165, 2583, 2583, 2583, 1164, 2679, 2679, 2679, 1163,
2492      2680, 1162, 2574, 2681, 1161, 1160, 2664, 1159, 2663, 2584,
2493      1219, 1219, 1219, 2715, 2715, 2715, 1250, 1250, 1250, 2718,
2494      2718, 2718, 2622, 2622, 2622, 2721, 2721, 2721, 1221, 2722,
2495      1158, 1157, 2723, 1150, 1252, 1149, 2719, 1148, 1147, 2623,
2496      2624, 2624, 2624, 1146, 2625, 1145, 1144, 2626, 2627, 2627,
2497      2627, 2726, 2726, 2726, 2632, 2632, 2632, 1141, 2731, 2731,
2498      2731, 2699, 2675, 2675, 2675, 2720, 2628, 1139, 2727, 1138,
2499      1136, 2633, 2728, 2728, 2728, 2732, 2729, 1134, 2717, 2730,
2500      2636, 2636, 2636, 1131, 2637, 1127, 1125, 2638, 2640, 2640,
2501
2502      2640, 2735, 2735, 2735, 1124, 2736, 1123, 1121, 2737, 2642,
2503      2642, 2642, 1120, 2643, 1119, 2641, 2644, 2645, 2645, 2645,
2504      2738, 2738, 2738, 1118, 2739, 1117, 1116, 2740, 3298, 3298,
2505      3298, 2742, 2742, 2742, 2646, 3298, 3298, 3298, 1114, 2650,
2506      2650, 2650, 1113, 2651, 1112, 3298, 2652, 1111, 2743, 2653,
2507      2653, 2653, 3298, 2745, 2745, 2745, 1109, 2746, 1108, 1107,
2508      2747, 2655, 2655, 2655, 1103, 1102, 2654, 2748, 2748, 2748,
2509      1100, 2749, 1099, 1098, 2750, 1425, 1425, 1425, 2656, 1435,
2510      1435, 1435, 1097, 1096, 2744, 1095, 2741, 2665, 2665, 2665,
2511      1093, 2666, 1092, 1427, 2667, 1091, 1090, 1437, 2668, 2668,
2512
2513      2668, 1088, 2669, 1087, 1086, 2670, 2765, 2765, 2765, 2768,
2514      2768, 2768, 2679, 2679, 2679, 1083, 2680, 1082, 1080, 2681,
2515      2779, 2779, 2779, 2766, 1680, 1077, 2757, 1219, 1219, 1219,
2516      2715, 2715, 2715, 2805, 2805, 2805, 1076, 2780, 1250, 1250,
2517      1250, 2718, 2718, 2718, 1072, 1221, 2758, 2807, 2807, 2807,
2518      1071, 2808, 1069, 1068, 2809, 1067, 1252, 1064, 2719, 2721,
2519      2721, 2721, 1063, 2722, 1062, 1061, 2723, 2726, 2726, 2726,
2520      2813, 2813, 2813, 1059, 2814, 1058, 2789, 2815, 2728, 2728,
2521      2728, 1057, 2729, 1056, 2727, 2730, 2731, 2731, 2731, 2806,
2522      2816, 2816, 2816, 1055, 2817, 1050, 1048, 2818, 2735, 2735,
2523
2524      2735, 1047, 2736, 2732, 1046, 2737, 2738, 2738, 2738, 1045,
2525      2739, 1044, 1043, 2740, 3298, 3298, 3298, 2742, 2742, 2742,
2526      2822, 2822, 2822, 1042, 2823, 1041, 1040, 2824, 3298, 3298,
2527      3298, 3298, 1039, 1036, 2743, 2745, 2745, 2745, 1033, 2746,
2528      1032, 1031, 2747, 1025, 1024, 3298, 2748, 2748, 2748, 1022,
2529      2749, 1019, 1017, 2750, 2840, 2840, 2840, 1435, 1435, 1435,
2530      2848, 2848, 2848, 1016, 1011, 2821, 2765, 2765, 2765, 2850,
2531      2850, 2850, 2841, 2851, 1010, 1437, 2852, 2849, 1680, 2853,
2532      2853, 2853, 1008, 2766, 1680, 1007, 1006, 1680, 2768, 2768,
2533      2768, 2854, 2854, 2854, 2855, 2855, 2855, 1004, 1001, 2825,
2534
2535      2779, 2779, 2779, 2864, 2864, 2864,  999, 2865,  996,  995,
2536      2866, 1219, 1219, 1219, 2884, 2884, 2884, 2780, 2805, 2805,
2537      2805,  993,  992, 2842, 2885, 2885, 2885,  989,  984, 1221,
2538      2807, 2807, 2807,  983, 2808,  980,  979, 2809,  978, 2813,
2539      2813, 2813, 2886, 2814,  975,  974, 2815, 2816, 2816, 2816,
2540       972, 2817,  969,  967, 2818, 2890, 2890, 2890, 2893, 2893,
2541      2893, 2822, 2822, 2822,  966, 2823,  965,  964, 2824, 2895,
2542      2895, 2895, 2891,  962,  961, 2894,  960, 2873, 2840, 2840,
2543      2840, 1435, 1435, 1435,  959,  958, 2896, 2848, 2848, 2848,
2544      2915, 2915, 2915,  957, 2916,  954, 2841, 2917,  953, 1437,
2545
2546      2853, 2853, 2853,  952, 2849, 1680,  949,  946, 1680, 2850,
2547      2850, 2850,  945, 2851,  943,  942, 2852, 2854, 2854, 2854,
2548      2855, 2855, 2855,  939, 2864, 2864, 2864, 1680, 2865,  936,
2549       933, 2866, 2909, 1678, 1678, 1678, 1678, 1678, 1678, 1678,
2550      1678, 1678,  932,  924, 1678, 2934, 2934, 2934,  923, 1678,
2551      1678, 1678, 1680, 1678, 2884, 2884, 2884, 2885, 2885, 2885,
2552      2890, 2890, 2890, 2935, 2947, 2947, 2947,  922, 2948,  921,
2553       915, 2949, 2893, 2893, 2893, 2886,  914, 2891, 1678, 1678,
2554      1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 2894,
2555       913, 1678, 2895, 2895, 2895,  911, 1678, 1678, 1678, 1680,
2556
2557      1678, 2951, 2951, 2951,  910, 2952,  909,  908, 2953, 2896,
2558      2954, 2954, 2954,  907, 2955,  906,  901, 2956, 2969, 2969,
2559      2969, 2934, 2934, 2934,  898, 1678, 1678, 2915, 2915, 2915,
2560       900, 2916,  895,  894, 2917,  892, 2970,  890,  888, 2935,
2561      2969, 2969, 2969,  886,  884, 1680, 1678, 1678, 1678, 1678,
2562      1678, 2981, 1678, 1678, 1678,  881,  880, 1678, 2970,  879,
2563       878,  877, 1678, 1678, 1678, 1680, 1678, 2947, 2947, 2947,
2564       875, 2948,  873,  872, 2949, 2951, 2951, 2951,  871, 2952,
2565       869,  867, 2953, 2954, 2954, 2954,  866, 2955,  864,  862,
2566      2956, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678,
2567
2568      1678, 2981,  861,  859, 1678, 3020, 3020, 3020,  855, 1678,
2569      1678, 1678, 1680, 1678, 3031, 3031, 3031, 3033, 3033, 3033,
2570      3035, 3035, 3035, 1680, 1681, 3043, 3043, 3043, 3053, 3053,
2571      3053, 3032,  854,  852, 3034,  847,  845, 3036, 1678, 1678,
2572       841,  840, 3044, 3020, 3020, 3020, 1138, 3031, 3031, 3031,
2573      3063, 3063, 3063,  839, 3064,  837,  835, 3065, 3033, 3033,
2574      3033, 1680,  834,  833, 3032, 3066, 3066, 3066,  831, 3067,
2575       829,  828, 3068,  826,  824, 3034, 3035, 3035, 3035, 3069,
2576      3069, 3069,  823, 3070,  822,  821, 3071, 3043, 3043, 3043,
2577      3053, 3053, 3053, 3036, 1875, 3078, 3078, 3078,  820, 3079,
2578
2579       819,  818, 3080,  816, 3044, 3063, 3063, 3063, 1138, 3064,
2580       814,  813, 3065, 3066, 3066, 3066,  810, 3067,  809,  808,
2581      3068, 3069, 3069, 3069,  806, 3070,  794, 3089, 3071, 3078,
2582      3078, 3078,  793, 3079,  790,  788, 3080, 3194, 3194, 3194,
2583      3194, 3194, 3194,  786, 3203,  785,  784, 3204, 3296, 3296,
2584      3296, 3296, 3296, 3296,  782, 1138,  780,  778, 1138,  775,
2585       774,  773,  772,  771,  769,  767, 3297,  766,  764, 3297,
2586       254,  254,  254,  254,  254,  254,  254,  254,  254,  255,
2587       255,  255,  255,  255,  255,  255,  255,  255,  260,  260,
2588       260,  260,  260,  260,  260,  260,  260,  263,  263,  263,
2589
2590       263,  263,  263,  263,  263,  263,  266,  266,  266,  266,
2591       266,  266,  266,  266,  266,  269,  269,  269,  269,  269,
2592       269,  269,  269,  269,  276,  276,  276,  276,  276,  276,
2593       276,  276,  276,  284,  284,  284,  284,  284,  284,  284,
2594       284,  284,  288,  288,  288,  288,  288,  288,  288,  288,
2595       288,  300,  300,  300,  300,  300,  300,  300,  300,  300,
2596       304,  304,  304,  304,  304,  304,  304,  304,  304,  311,
2597       311,  311,  311,  311,  311,  311,  311,  311,  322,  322,
2598       322,  322,  322,  322,  322,  322,  322,  330,  330,  330,
2599       330,  330,  330,  330,  330,  330,  336,  336,  336,  336,
2600
2601       336,  336,  336,  336,  336,  342,  342,  342,  342,  342,
2602       342,  342,  342,  342,  348,  348,  348,  348,  348,  348,
2603       348,  348,  348,  353,  353,  353,  353,  353,  353,  353,
2604       353,  353,  372,  372,  372,  372,  372,  372,  372,  372,
2605       372,  379,  379,  379,  379,  379,  379,  379,  379,  379,
2606       386,  386,  386,  386,  386,  386,  386,  386,  386,  392,
2607       392,  392,  392,  392,  392,  392,  392,  392,  399,  399,
2608       399,  399,  399,  399,  399,  399,  399,  404,  404,  404,
2609       404,  404,  404,  404,  404,  404,  410,  410,  410,  410,
2610       410,  410,  410,  410,  410,  415,  415,  415,  415,  415,
2611
2612       415,  415,  415,  415,  421,  421,  421,  421,  421,  421,
2613       421,  421,  421,  429,  429,  429,  429,  429,  429,  429,
2614       429,  429,  437,  437,  437,  437,  437,  437,  437,  437,
2615       437,  441,  441,  441,  441,  441,  441,  441,  441,  441,
2616       447,  447,  447,  447,  447,  447,  447,  447,  447,  453,
2617       453,  453,  453,  453,  453,  453,  453,  453,  470,  470,
2618       470,  470,  470,  470,  470,  470,  470,  476,  476,  476,
2619       476,  476,  476,  476,  476,  476,  485,  485,  485,  485,
2620       485,  485,  485,  485,  485,  491,  491,  491,  491,  491,
2621       491,  491,  491,  491,  501,  501,  501,  501,  501,  501,
2622
2623       501,  501,  501,  507,  507,  507,  507,  507,  507,  507,
2624       507,  507,  512,  512,  512,  512,  512,  512,  512,  512,
2625       512,  518,  518,  518,  518,  518,  518,  518,  518,  518,
2626       524,  524,  524,  524,  524,  524,  524,  524,  524,  530,
2627       530,  530,  530,  530,  530,  530,  530,  530,  537,  537,
2628       537,  537,  537,  537,  537,  537,  537,  544,  544,  544,
2629       544,  544,  544,  544,  544,  544,  549,  549,  549,  549,
2630       549,  549,  549,  549,  549,  557,  557,  557,  557,  557,
2631       557,  557,  557,  557,  563,  563,  563,  563,  563,  563,
2632       563,  563,  563,  570,  570,  570,  570,  570,  570,  570,
2633
2634       570,  570,  575,  575,  575,  575,  575,  575,  575,  575,
2635       575,  581,  581,  581,  581,  581,  581,  581,  581,  581,
2636       586,  586,  586,  586,  586,  586,  586,  586,  586,  593,
2637       593,  593,  593,  593,  593,  593,  593,  593,  599,  599,
2638       599,  599,  599,  599,  599,  599,  599,  606,  606,  606,
2639       606,  606,  606,  606,  606,  606,  614,  614,  614,  614,
2640       614,  614,  614,  614,  614,  622,  622,  622,  622,  622,
2641       622,  622,  622,  622,  626,  626,  626,  626,  626,  626,
2642       626,  626,  626,  632,  632,  632,  632,  632,  632,  632,
2643       632,  632,  636,  636,  636,  636,  636,  636,  636,  636,
2644
2645       636,  643,  643,  643,  643,  643,  643,  643,  643,  643,
2646       648,  648,  648,  648,  648,  648,  648,  648,  648,  668,
2647       668,  668,  762,  761,  759,  668,  695,  695,  695,  757,
2648       756,  755,  695,  699,  699,  699,  753,  751,  750,  699,
2649       707,  707,  707,  749,  748,  746,  707,  718,  718,  718,
2650      3298,  693,  726,  718,  724,  724,  724,  725,  723,  721,
2651       724,  747,  747,  747,  720,  719,  717,  747,  754,  754,
2652       754,  713,  709,  708,  754,  760,  760,  760,  706,  705,
2653       702,  760,  765,  765,  765,  701,  700,  698,  765,  770,
2654       770,  770,  697,  696,  694,  770,  779,  779,  779,  689,
2655
2656      3298,  669,  779,  783,  783,  783,  667,  665,  659,  783,
2657       789,  789,  789,  658,  659,  658,  789,  807,  807,  807,
2658       657,  656, 3298,  807,  817,  817,  817, 3298, 3298, 3298,
2659       817,  827,  827,  827, 3298, 3298, 3298,  827,  832,  832,
2660       832, 3298, 3298, 3298,  832,  838,  838,  838, 3298, 3298,
2661      3298,  838,  846,  846,  846, 3298, 3298, 3298,  846,  853,
2662       853,  853, 3298, 3298, 3298,  853,  860,  860,  860, 3298,
2663      3298, 3298,  860,  865,  865,  865, 3298, 3298, 3298,  865,
2664       870,  870,  870, 3298, 3298, 3298,  870,  876,  876,  876,
2665      3298, 3298, 3298,  876,  885,  885,  885, 3298, 3298, 3298,
2666
2667       885,  889,  889,  889, 3298, 3298, 3298,  889,  893,  893,
2668       893, 3298, 3298, 3298,  893,  897,  897,  897,  897,  897,
2669       897,  897, 3298,  897,  668,  668,  668, 3298, 3298, 3298,
2670       668,  912, 3298, 3298, 3298,  912,  695,  695,  695, 3298,
2671      3298, 3298,  695,  944, 3298, 3298, 3298,  944,  699,  699,
2672       699, 3298, 3298, 3298,  699,  951, 3298, 3298, 3298,  951,
2673       707,  707,  707, 3298, 3298, 3298,  707,  963, 3298, 3298,
2674      3298,  963,  718,  718,  718, 3298, 3298, 3298,  718,  968,
2675      3298, 3298, 3298,  968,  724,  724,  724, 3298, 3298, 3298,
2676       724,  973, 3298, 3298, 3298,  973,  747,  747,  747, 3298,
2677
2678      3298, 3298,  747,  994, 3298, 3298, 3298,  994,  754,  754,
2679       754, 3298, 3298, 3298,  754, 1000, 3298, 3298, 3298, 1000,
2680       760,  760,  760, 3298, 3298, 3298,  760, 1005, 3298, 3298,
2681      3298, 1005,  765,  765,  765, 3298, 3298, 3298,  765, 1009,
2682      3298, 3298, 3298, 1009,  770,  770,  770, 3298, 3298, 3298,
2683       770, 1018, 3298, 3298, 3298, 1018,  779,  779,  779, 3298,
2684      3298, 3298,  779, 1023, 3298, 3298, 3298, 1023,  783,  783,
2685       783, 3298, 3298, 3298,  783, 1030, 3298, 3298, 3298, 1030,
2686       789,  789,  789, 3298, 3298, 3298,  789, 1049, 3298, 3298,
2687      3298, 1049,  807,  807,  807, 3298, 3298, 3298,  807, 1060,
2688
2689      3298, 3298, 3298, 1060,  817,  817,  817, 3298, 3298, 3298,
2690       817, 1070, 3298, 3298, 3298, 1070,  827,  827,  827, 3298,
2691      3298, 3298,  827, 1075, 3298, 3298, 3298, 1075,  832,  832,
2692       832, 3298, 3298, 3298,  832, 1081, 3298, 3298, 3298, 1081,
2693       838,  838,  838, 3298, 3298, 3298,  838, 1089, 3298, 3298,
2694      3298, 1089,  846,  846,  846, 3298, 3298, 3298,  846, 1094,
2695      3298, 3298, 3298, 1094,  853,  853,  853, 3298, 3298, 3298,
2696       853, 1101, 3298, 3298, 3298, 1101,  860,  860,  860, 3298,
2697      3298, 3298,  860, 1106, 3298, 3298, 3298, 1106,  865,  865,
2698       865, 3298, 3298, 3298,  865, 1110, 3298, 3298, 3298, 1110,
2699
2700       870,  870,  870, 3298, 3298, 3298,  870, 1115, 3298, 3298,
2701      3298, 1115,  876,  876,  876, 3298, 3298, 3298,  876, 1122,
2702      3298, 3298, 3298, 1122,  885,  885,  885, 3298, 3298, 3298,
2703       885, 1126, 3298, 3298, 3298, 1126,  889,  889,  889, 3298,
2704      3298, 3298,  889, 1130, 3298, 3298, 3298, 1130,  893,  893,
2705       893, 3298, 3298, 3298,  893, 1135, 3298, 3298, 3298, 1135,
2706      1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1143,
2707      3298, 3298, 3298, 3298, 1143,  668,  668,  668, 3298, 3298,
2708      3298,  668, 1152, 1152, 1152, 1152, 3298, 3298, 1152, 1152,
2709       695,  695,  695, 3298, 3298, 3298,  695, 1187, 1187, 1187,
2710
2711      1187, 3298, 3298, 1187, 1187,  699,  699,  699, 3298, 3298,
2712      3298,  699, 1197, 1197, 1197, 1197, 3298, 3298, 1197, 1197,
2713       707,  707,  707, 3298, 3298, 3298,  707, 1213, 1213, 1213,
2714      1213, 3298, 3298, 1213, 1213,  718,  718,  718, 3298, 3298,
2715      3298,  718, 1220, 1220, 1220, 1220, 3298, 3298, 1220, 1220,
2716       724,  724,  724, 3298, 3298, 3298,  724, 1228, 1228, 1228,
2717      1228, 3298, 3298, 1228, 1228,  747,  747,  747, 3298, 3298,
2718      3298,  747, 1251, 1251, 1251, 1251, 3298, 3298, 1251, 1251,
2719       754,  754,  754, 3298, 3298, 3298,  754, 1260, 1260, 1260,
2720      1260, 3298, 3298, 1260, 1260,  760,  760,  760, 3298, 3298,
2721
2722      3298,  760, 1268, 1268, 1268, 1268, 3298, 3298, 1268, 1268,
2723       765,  765,  765, 3298, 3298, 3298,  765, 1274, 1274, 1274,
2724      1274, 3298, 3298, 1274, 1274,  770,  770,  770, 3298, 3298,
2725      3298,  770, 1286, 1286, 1286, 1286, 3298, 3298, 1286, 1286,
2726       779,  779,  779, 3298, 3298, 3298,  779, 1293, 1293, 1293,
2727      1293, 3298, 3298, 1293, 1293,  783,  783,  783, 3298, 3298,
2728      3298,  783, 1304, 1304, 1304, 1304, 3298, 3298, 1304, 1304,
2729       789,  789,  789, 3298, 3298, 3298,  789, 1330, 1330, 1330,
2730      1330, 3298, 3298, 1330, 1330,  807,  807,  807,  807, 3298,
2731       807, 3298,  807, 1346, 1346, 1346, 1346, 3298, 3298, 1346,
2732
2733      1346,  817,  817,  817, 3298, 3298, 3298,  817, 1361, 1361,
2734      1361, 1361, 3298, 3298, 1361, 1361,  827,  827,  827, 3298,
2735      3298, 3298,  827, 1369, 1369, 1369, 1369, 3298, 3298, 1369,
2736      1369,  832,  832,  832, 3298, 3298, 3298,  832, 1378, 1378,
2737      1378, 1378, 3298, 3298, 1378, 1378,  838,  838,  838, 3298,
2738      3298, 3298,  838, 1389, 1389, 1389, 1389, 3298, 3298, 1389,
2739      1389,  846,  846,  846,  846, 3298,  846, 3298,  846, 1398,
2740      1398, 1398, 1398, 3298, 3298, 1398, 1398,  853,  853,  853,
2741       853, 3298,  853, 3298,  853, 1410, 1410, 1410, 1410, 3298,
2742      3298, 1410, 1410,  860,  860,  860, 3298, 3298, 3298,  860,
2743
2744      1418, 1418, 1418, 1418, 3298, 3298, 1418, 1418,  865,  865,
2745       865,  865, 3298,  865, 3298,  865, 1426, 1426, 1426, 1426,
2746      3298, 3298, 1426, 1426,  870,  870,  870,  870, 3298,  870,
2747      3298,  870, 1436, 1436, 1436, 1436, 3298, 3298, 1436, 1436,
2748       876,  876,  876, 3298, 3298, 3298,  876, 1445, 1445, 1445,
2749      1445, 3298, 3298, 1445, 1445,  885,  885,  885, 3298, 3298,
2750      3298,  885, 1451, 1451, 1451, 1451, 3298, 3298, 1451, 1451,
2751      1458, 1458, 1458, 1458, 3298, 3298, 1458, 1458,  893,  893,
2752       893, 3298, 3298, 3298,  893, 1466, 1466, 1466, 1466, 3298,
2753      3298, 1466, 1466, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
2754
2755      1137, 1137, 1143, 3298, 1143, 3298, 3298, 1143,  668,  668,
2756       668, 3298, 3298, 3298,  668, 1152, 1152, 1152, 1152, 3298,
2757      3298, 1152, 1152,  695,  695,  695,  695, 3298,  695, 3298,
2758       695, 1187, 1187, 1187, 1187, 3298, 3298, 1187, 1187,  699,
2759       699,  699,  699, 3298,  699, 3298,  699, 1197, 1197, 1197,
2760      1197, 3298, 3298, 1197, 1197,  707,  707,  707, 3298, 3298,
2761      3298,  707, 1213, 1213, 1213, 1213, 3298, 3298, 1213, 1213,
2762       718,  718,  718, 3298, 3298, 3298,  718, 1220, 1220, 1220,
2763      1220, 3298, 3298, 1220, 1220,  724,  724,  724, 3298, 3298,
2764      3298,  724, 1228, 1228, 1228, 1228, 3298, 3298, 1228, 1228,
2765
2766       747,  747,  747, 3298, 3298, 3298,  747, 1251, 1251, 1251,
2767      1251, 3298, 3298, 1251, 1251,  754,  754,  754, 3298, 3298,
2768      3298,  754, 1260, 1260, 1260, 1260, 3298, 3298, 1260, 1260,
2769       760,  760,  760,  760, 3298,  760, 3298,  760, 1268, 1268,
2770      1268, 1268, 3298, 3298, 1268, 1268,  765,  765,  765,  765,
2771      3298,  765, 3298,  765, 1274, 1274, 1274, 1274, 3298, 3298,
2772      1274, 1274,  770,  770,  770, 3298, 3298, 3298,  770, 1286,
2773      1286, 1286, 1286, 3298, 3298, 1286, 1286,  779,  779,  779,
2774       779, 3298,  779, 3298,  779, 1293, 1293, 1293, 1293, 3298,
2775      3298, 1293, 1293,  783,  783,  783,  783, 3298,  783, 3298,
2776
2777       783, 1304, 1304, 1304, 1304, 3298, 3298, 1304, 1304,  789,
2778       789,  789, 3298, 3298, 3298,  789, 1330, 1330, 1330, 1330,
2779      3298, 3298, 1330, 1330,  807,  807,  807, 3298, 3298, 3298,
2780       807, 1346, 1346, 1346, 1346, 3298, 3298, 1346, 1346,  817,
2781       817,  817, 3298, 3298, 3298,  817, 1361, 1361, 1361, 1361,
2782      3298, 3298, 1361, 1361,  827,  827,  827, 3298, 3298, 3298,
2783       827, 1369, 1369, 1369, 1369, 3298, 3298, 1369, 1369,  832,
2784       832,  832, 3298, 3298, 3298,  832, 1378, 1378, 1378, 1378,
2785      3298, 3298, 1378, 1378,  838,  838,  838, 3298, 3298, 3298,
2786       838, 1389, 1389, 1389, 1389, 3298, 3298, 1389, 1389,  846,
2787
2788       846,  846, 3298, 3298, 3298,  846, 1398, 1398, 1398, 1398,
2789      3298, 3298, 1398, 1398,  853,  853,  853, 3298, 3298, 3298,
2790       853, 1410, 1410, 1410, 1410, 3298, 3298, 1410, 1410,  860,
2791       860,  860, 3298, 3298, 3298,  860, 1418, 1418, 1418, 1418,
2792      3298, 3298, 1418, 1418, 1426, 1426, 1426, 1426, 3298, 3298,
2793      1426, 1426,  870,  870,  870, 3298, 3298, 3298,  870, 1436,
2794      1436, 1436, 1436, 3298, 3298, 1436, 1436,  876,  876,  876,
2795      3298, 3298, 3298,  876, 1445, 1445, 1445, 1445, 3298, 3298,
2796      1445, 1445,  885,  885,  885, 3298, 3298, 3298,  885, 1451,
2797      1451, 1451, 1451, 3298, 3298, 1451, 1451, 1458, 1458, 1458,
2798
2799      1458, 3298, 3298, 1458, 1458,  893,  893,  893, 3298, 3298,
2800      3298,  893, 1466, 1466, 1466, 1466, 3298, 3298, 1466, 1466,
2801      1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1678,
2802      1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678,  668,  668,
2803       668, 3298, 3298, 3298,  668, 1152, 1152, 1152, 1152, 3298,
2804      3298, 1152, 1152, 1187, 1187, 1187, 1187, 3298, 3298, 1187,
2805      1187,  699,  699,  699, 3298, 3298, 3298,  699, 1197, 1197,
2806      1197, 1197, 3298, 3298, 1197, 1197,  707,  707,  707, 3298,
2807      3298, 3298,  707, 1213, 1213, 1213, 1213, 3298, 3298, 1213,
2808      1213,  718,  718,  718, 3298, 3298, 3298,  718, 1220, 1220,
2809
2810      1220, 1220, 3298, 3298, 1220, 1220,  724,  724,  724, 3298,
2811      3298, 3298,  724,  747,  747,  747, 3298, 3298, 3298,  747,
2812      1251, 1251, 1251, 1251, 3298, 3298, 1251, 1251,  754,  754,
2813       754, 3298, 3298, 3298,  754, 1260, 1260, 1260, 1260, 3298,
2814      3298, 1260, 1260, 1268, 1268, 1268, 1268, 3298, 3298, 1268,
2815      1268,  765,  765,  765, 3298, 3298, 3298,  765, 1274, 1274,
2816      1274, 1274, 3298, 3298, 1274, 1274,  770,  770,  770, 3298,
2817      3298, 3298,  770, 1286, 1286, 1286, 1286, 3298, 3298, 1286,
2818      1286, 1293, 1293, 1293, 1293, 3298, 3298, 1293, 1293, 1304,
2819      1304, 1304, 1304, 3298, 3298, 1304, 1304,  789,  789,  789,
2820
2821      3298, 3298, 3298,  789, 1330, 1330, 1330, 1330, 3298, 3298,
2822      1330, 1330,  807,  807,  807,  807, 3298,  807, 3298,  807,
2823      1346, 1346, 1346, 1346, 3298, 3298, 1346, 1346,  817,  817,
2824       817, 3298, 3298, 3298,  817, 1361, 1361, 1361, 1361, 3298,
2825      3298, 1361, 1361,  827,  827,  827, 3298, 3298, 3298,  827,
2826      1369, 1369, 1369, 1369, 3298, 3298, 1369, 1369,  832,  832,
2827       832, 3298, 3298, 3298,  832, 1378, 1378, 1378, 1378, 3298,
2828      3298, 1378, 1378,  838,  838,  838, 3298, 3298, 3298,  838,
2829      1389, 1389, 1389, 1389, 3298, 3298, 1389, 1389,  846,  846,
2830       846, 3298, 3298, 3298,  846, 1398, 1398, 1398, 1398, 3298,
2831
2832      3298, 1398, 1398,  853,  853,  853, 3298, 3298, 3298,  853,
2833      1410, 1410, 1410, 1410, 3298, 3298, 1410, 1410,  860,  860,
2834       860, 3298, 3298, 3298,  860, 1418, 1418, 1418, 1418, 3298,
2835      3298, 1418, 1418, 1426, 1426, 1426, 1426, 3298, 3298, 1426,
2836      1426,  870,  870,  870, 3298, 3298, 3298,  870, 1436, 1436,
2837      1436, 1436, 3298, 3298, 1436, 1436,  876,  876,  876, 3298,
2838      3298, 3298,  876, 1445, 1445, 1445, 1445, 3298, 3298, 1445,
2839      1445,  885,  885,  885,  885, 3298,  885, 3298,  885, 1451,
2840      1451, 1451, 1451, 3298, 3298, 1451, 1451, 1458, 1458, 1458,
2841      1458, 3298, 3298, 1458, 1458,  893,  893,  893,  893, 3298,
2842
2843       893, 3298,  893, 1466, 1466, 1466, 1466, 3298, 3298, 1466,
2844      1466, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
2845      1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678,  668,
2846       668,  668, 3298, 3298, 3298,  668, 1152, 1152, 1152, 1152,
2847      3298, 3298, 1152, 1152, 1187, 1187, 1187, 1187, 3298, 3298,
2848      1187, 1187,  699,  699,  699, 3298, 3298, 3298,  699, 1197,
2849      1197, 1197, 1197, 3298, 3298, 1197, 1197,  707,  707,  707,
2850      3298, 3298, 3298,  707, 1213, 1213, 1213, 1213, 3298, 3298,
2851      1213, 1213,  718,  718,  718, 3298, 3298, 3298,  718, 1220,
2852      1220, 1220, 1220, 3298, 3298, 1220, 1220,  724,  724,  724,
2853
2854      3298, 3298, 3298,  724,  747,  747,  747, 3298, 3298, 3298,
2855       747, 1251, 1251, 1251, 1251, 3298, 3298, 1251, 1251,  754,
2856       754,  754, 3298, 3298, 3298,  754, 1260, 1260, 1260, 1260,
2857      3298, 3298, 1260, 1260, 1268, 1268, 1268, 1268, 3298, 3298,
2858      1268, 1268,  765,  765,  765,  765, 3298,  765, 3298,  765,
2859      1274, 1274, 1274, 1274, 3298, 3298, 1274, 1274,  770,  770,
2860       770, 3298, 3298, 3298,  770, 1286, 1286, 1286, 1286, 3298,
2861      3298, 1286, 1286, 1304, 1304, 1304, 1304, 3298, 3298, 1304,
2862      1304,  789,  789,  789, 3298, 3298, 3298,  789, 1330, 1330,
2863      1330, 1330, 3298, 3298, 1330, 1330,  807,  807,  807,  807,
2864
2865      3298,  807, 3298,  807, 1346, 1346, 1346, 1346, 3298, 3298,
2866      1346, 1346,  817,  817,  817, 3298, 3298, 3298,  817, 1361,
2867      1361, 1361, 1361, 3298, 3298, 1361, 1361,  827,  827,  827,
2868      3298, 3298, 3298,  827, 1369, 1369, 1369, 1369, 3298, 3298,
2869      1369, 1369,  832,  832,  832, 3298, 3298, 3298,  832, 1378,
2870      1378, 1378, 1378, 3298, 3298, 1378, 1378,  838,  838,  838,
2871      3298, 3298, 3298,  838, 1389, 1389, 1389, 1389, 3298, 3298,
2872      1389, 1389,  846,  846,  846, 3298, 3298, 3298,  846, 1398,
2873      1398, 1398, 1398, 3298, 3298, 1398, 1398,  853,  853,  853,
2874       853, 3298,  853, 3298,  853, 1410, 1410, 1410, 1410, 3298,
2875
2876      3298, 1410, 1410,  860,  860,  860, 3298, 3298, 3298,  860,
2877      1418, 1418, 1418, 1418, 3298, 3298, 1418, 1418, 1426, 1426,
2878      1426, 1426, 3298, 3298, 1426, 1426,  870,  870,  870,  870,
2879      3298,  870, 3298,  870, 1436, 1436, 1436, 1436, 3298, 3298,
2880      1436, 1436,  876,  876,  876, 3298, 3298, 3298,  876, 1445,
2881      1445, 1445, 1445, 3298, 3298, 1445, 1445, 1451, 1451, 1451,
2882      1451, 3298, 3298, 1451, 1451, 1458, 1458, 1458, 1458, 3298,
2883      3298, 1458, 1458, 1466, 1466, 1466, 1466, 3298, 3298, 1466,
2884      1466, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
2885      1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678,  668,
2886
2887       668,  668,  668, 3298,  668, 3298,  668, 1152, 1152, 1152,
2888      1152, 3298, 3298, 1152, 1152, 1187, 1187, 1187, 1187, 3298,
2889      3298, 1187, 1187,  699,  699,  699, 3298, 3298, 3298,  699,
2890      1197, 1197, 1197, 1197, 3298, 3298, 1197, 1197,  707,  707,
2891       707, 3298, 3298, 3298,  707, 1213, 1213, 1213, 1213, 3298,
2892      3298, 1213, 1213,  718,  718,  718,  718, 3298,  718, 3298,
2893       718, 1220, 1220, 1220, 1220, 3298, 3298, 1220, 1220,  724,
2894       724,  724,  724, 3298,  724, 3298,  724,  747,  747,  747,
2895       747, 3298,  747, 3298,  747, 1251, 1251, 1251, 1251, 3298,
2896      3298, 1251, 1251,  754,  754,  754,  754, 3298,  754, 3298,
2897
2898       754, 1260, 1260, 1260, 1260, 3298, 3298, 1260, 1260, 1268,
2899      1268, 1268, 1268, 3298, 3298, 1268, 1268, 1274, 1274, 1274,
2900      1274, 3298, 3298, 1274, 1274,  770,  770,  770, 3298, 3298,
2901      3298,  770, 1304, 1304, 1304, 1304, 3298, 3298, 1304, 1304,
2902       789,  789,  789, 3298, 3298, 3298,  789, 1330, 1330, 1330,
2903      1330, 3298, 3298, 1330, 1330,  807,  807,  807,  807, 3298,
2904       807, 3298,  807, 1346, 1346, 1346, 1346, 3298, 3298, 1346,
2905      1346,  817,  817,  817, 3298, 3298, 3298,  817,  827,  827,
2906       827, 3298, 3298, 3298,  827, 1369, 1369, 1369, 1369, 3298,
2907      3298, 1369, 1369,  832,  832,  832, 3298, 3298, 3298,  832,
2908
2909      1378, 1378, 1378, 1378, 3298, 3298, 1378, 1378,  838,  838,
2910       838, 3298, 3298, 3298,  838,  846,  846,  846, 3298, 3298,
2911      3298,  846, 1398, 1398, 1398, 1398, 3298, 3298, 1398, 1398,
2912       853,  853,  853, 3298, 3298, 3298,  853, 1410, 1410, 1410,
2913      1410, 3298, 3298, 1410, 1410,  860,  860,  860, 3298, 3298,
2914      3298,  860, 1418, 1418, 1418, 1418, 3298, 3298, 1418, 1418,
2915      1426, 1426, 1426, 1426, 3298, 3298, 1426, 1426, 1436, 1436,
2916      1436, 1436, 3298, 3298, 1436, 1436,  876,  876,  876, 3298,
2917      3298, 3298,  876, 1445, 1445, 1445, 1445, 3298, 3298, 1445,
2918      1445, 1451, 1451, 1451, 1451, 3298, 3298, 1451, 1451, 1458,
2919
2920      1458, 1458, 1458, 3298, 3298, 1458, 1458, 1137, 1137, 1137,
2921      1137, 1137, 1137, 1137, 1137, 1137, 1678, 1678, 1678, 1678,
2922      1678, 1678, 1678, 1678, 1678, 1152, 1152, 1152, 1152, 3298,
2923      3298, 1152, 1152, 1187, 1187, 1187, 1187, 3298, 3298, 1187,
2924      1187,  699,  699,  699, 3298, 3298, 3298,  699,  707,  707,
2925       707, 3298, 3298, 3298,  707, 1213, 1213, 1213, 1213, 3298,
2926      3298, 1213, 1213, 1220, 1220, 1220, 1220, 3298, 3298, 1220,
2927      1220, 1251, 1251, 1251, 1251, 3298, 3298, 1251, 1251, 1260,
2928      1260, 1260, 1260, 3298, 3298, 1260, 1260, 1274, 1274, 1274,
2929      1274, 3298, 3298, 1274, 1274,  770,  770,  770, 3298, 3298,
2930
2931      3298,  770, 1304, 1304, 1304, 1304, 3298, 3298, 1304, 1304,
2932       789,  789,  789, 3298, 3298, 3298,  789, 1330, 1330, 1330,
2933      1330, 3298, 3298, 1330, 1330, 1346, 1346, 1346, 1346, 3298,
2934      3298, 1346, 1346,  817,  817,  817, 3298, 3298, 3298,  817,
2935       827,  827,  827, 3298, 3298, 3298,  827, 1369, 1369, 1369,
2936      1369, 3298, 3298, 1369, 1369,  832,  832,  832, 3298, 3298,
2937      3298,  832, 1378, 1378, 1378, 1378, 3298, 3298, 1378, 1378,
2938       838,  838,  838, 3298, 3298, 3298,  838,  846,  846,  846,
2939      3298, 3298, 3298,  846,  853,  853,  853, 3298, 3298, 3298,
2940       853, 1410, 1410, 1410, 1410, 3298, 3298, 1410, 1410,  860,
2941
2942       860,  860, 3298, 3298, 3298,  860, 1418, 1418, 1418, 1418,
2943      3298, 3298, 1418, 1418, 1426, 1426, 1426, 1426, 3298, 3298,
2944      1426, 1426, 1436, 1436, 1436, 1436, 3298, 3298, 1436, 1436,
2945       876,  876,  876,  876, 3298,  876, 3298,  876, 1445, 1445,
2946      1445, 1445, 3298, 3298, 1445, 1445, 1451, 1451, 1451, 1451,
2947      3298, 3298, 1451, 1451, 1458, 1458, 1458, 1458, 3298, 3298,
2948      1458, 1458, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
2949      1137, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678,
2950      1152, 1152, 1152, 1152, 3298, 3298, 1152, 1152, 1187, 1187,
2951      1187, 1187, 3298, 3298, 1187, 1187,  699,  699,  699, 3298,
2952
2953      3298, 3298,  699,  707,  707,  707,  707, 3298,  707, 3298,
2954       707, 1220, 1220, 1220, 1220, 3298, 3298, 1220, 1220, 1251,
2955      1251, 1251, 1251, 3298, 3298, 1251, 1251, 1260, 1260, 1260,
2956      1260, 3298, 3298, 1260, 1260, 1274, 1274, 1274, 1274, 3298,
2957      3298, 1274, 1274,  770,  770,  770, 3298, 3298, 3298,  770,
2958      1304, 1304, 1304, 1304, 3298, 3298, 1304, 1304,  789,  789,
2959       789, 3298, 3298, 3298,  789, 1330, 1330, 1330, 1330, 3298,
2960      3298, 1330, 1330, 1346, 1346, 1346, 1346, 3298, 3298, 1346,
2961      1346,  817,  817,  817, 3298, 3298, 3298,  817,  827,  827,
2962       827, 3298, 3298, 3298,  827,  832,  832,  832,  832, 3298,
2963
2964       832, 3298,  832, 1378, 1378, 1378, 1378, 3298, 3298, 1378,
2965      1378,  838,  838,  838,  838, 3298,  838, 3298,  838,  846,
2966       846,  846, 3298, 3298, 3298,  846,  853,  853,  853, 3298,
2967      3298, 3298,  853, 1410, 1410, 1410, 1410, 3298, 3298, 1410,
2968      1410,  860,  860,  860,  860, 3298,  860, 3298,  860, 1418,
2969      1418, 1418, 1418, 3298, 3298, 1418, 1418, 1426, 1426, 1426,
2970      1426, 3298, 3298, 1426, 1426, 1436, 1436, 1436, 1436, 3298,
2971      3298, 1436, 1436,  876,  876,  876,  876, 3298,  876, 3298,
2972       876, 1445, 1445, 1445, 1445, 3298, 3298, 1445, 1445, 1451,
2973      1451, 1451, 1451, 3298, 3298, 1451, 1451, 1137, 1137, 1137,
2974
2975      1137, 1137, 1137, 1137, 1137, 1137, 1678, 1678, 1678, 1678,
2976      1678, 1678, 1678, 1678, 1678, 1152, 1152, 1152, 1152, 3298,
2977      3298, 1152, 1152,  699,  699,  699, 3298, 3298, 3298,  699,
2978       707,  707,  707, 3298, 3298, 3298,  707, 1220, 1220, 1220,
2979      1220, 3298, 3298, 1220, 1220, 1251, 1251, 1251, 1251, 3298,
2980      3298, 1251, 1251, 1274, 1274, 1274, 1274, 3298, 3298, 1274,
2981      1274,  770,  770,  770, 3298, 3298, 3298,  770, 1304, 1304,
2982      1304, 1304, 3298, 3298, 1304, 1304,  789,  789,  789, 3298,
2983      3298, 3298,  789, 2918, 2918, 2918, 2918, 2918, 2918, 2918,
2984      2918, 2918, 2919, 2919, 2919, 2919, 2919, 2919, 2919, 2919,
2985
2986      2919, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976,
2987      2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 3017,
2988      3017, 3017, 3017, 3017, 3017, 3017, 3017, 3017, 3019, 3019,
2989      3019, 3019, 3019, 3019, 3019, 3019, 3019,  253, 3298, 3298,
2990      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
2991      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
2992      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
2993      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
2994      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
2995      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
2996
2997      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
2998      3298, 3298
2999     } ;
3000
3001 static yyconst flex_int16_t yy_chk[12113] =
3002     {   0,
3003         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3004         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3005         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
3006         8,    8,    8,  258,   11,   13,   13,   12,   14,   14,
3007        13,   13,  307,   14,   14,  259,    8,   17,   17,  258,
3008        13,   15,   15,   14,   15,  262,   15,   16,   16,  361,
3009        16,  259,   16,   18,   18, 1524,   15,   19,   19,   19,
3010       536,  262,   16,   20,   20,   20,   23,   23,   23,   24,
3011        24,   24,  536,   19,   25,   25,   25,  361, 1527,   20,
3012       368,   17,   23, 1063,  307,   24,  256,  256,  256, 1063,
3013
3014        25,  257,  257,  257,  261,  261,  261,   18,   21,   21,
3015        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3016        21,   21,   21,  291,   21,   21,   21,   21,   21,   26,
3017        26,   26,   27,   27,   27,   28,   28,   28,  291,   29,
3018        29,   29,   30,   30,   30,   26,  368,  467,   27,  285,
3019       467,   28,  673,   21,   21,   29,  301,  280,   30,   31,
3020        31,   31,  282,  282,  282,  285,  289,  289,  289,  298,
3021       298,  298,  301,  280,  357,   31,  673,   21,   22,   22,
3022        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3023        22,   22,   22, 1529,   22,   22,   22,   22,   22,   32,
3024
3025        32,   32,   33,   33,   33,   34,   34,   34,  272,   35,
3026        35,   35,   36,   36,   36,   32,  280,  360,   33,  482,
3027       729,   34,  482,   22,   22,   35,  357,  360,   36,   37,
3028        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3029        40,   41,   41,   41,  729,   37,  548,   22,   38,  312,
3030       272,   39,  463,  548,   40,  360,  272,   41,   42,   42,
3031        42,  272,  305,  305,  305,  312,  272,  309,  309,  309,
3032       320,  320,  320,  463,   42,   43,   43,   43,   43,   43,
3033        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3034       329,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3035
3036        46,   46,   47,   47,   47,  329,   48,   48,   48,   49,
3037        49,   49,   45,  661,  553,   46,  661, 1534,   47,  327,
3038        43,   43,   48,  327,  381,   49,  293,  327,   43,   44,
3039        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3040        44,   44,   44,   44,  323,   44,   44,   44,   44,   44,
3041        50,   50,   50,   51,   51,   51,   52,   52,   52,  468,
3042       323,  566,   55,   55,  562,  293,   50,   55,  294,   51,
3043       553,  562,   52,  468,   44,   44,  381,   55,  293,  382,
3044       293, 1537,   44,   53,   53,   53,   53,   53,   53,   53,
3045        53,   53,   53,   53,   53,   53,   53,   53, 1538,   53,
3046
3047        53,   53,   53,   53, 1539,  337,   55,  294,   59,   59,
3048        59,   60,   60,   60,   63,   63,   63,  566,   56,   56,
3049       294,  337,  294,   56,   59,  317,  466,   60,   53,   53,
3050        63,  382,  317,   56,  466,  772,   53,  394,  772,   53,
3051       466,  317,  331,  331,  331, 1544,   53,   54,   54,   54,
3052        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3053        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3054        64,   67,   67,   67,   68,   68,   68, 1545,   69,   69,
3055        69,   70,   70,   70,   64,  349,  367,   67,  332,  394,
3056        68,  552,   54,   54,   69,  332, 1171,   70, 1546,  552,
3057
3058        54,  349,  367,   54,  332,  334,  334,  334,  395, 1171,
3059        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3060        57,   57,   57,   57,   57,   57, 1547,   57,   57,   57,
3061        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3062        73,  433,   74,   74,   74,   75,   75,   75,   71, 1548,
3063       373,   72,  344,  387,   73, 1549,   57,   57,   74,  344,
3064       395,   75,  343,  343,  343,   57,  373,   57,  344,  387,
3065       431,   57,  346,  346,  346,  539,   57,   57,   58,   58,
3066        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3067        58,   58,   58,  433,   58,   58,   58,   58,   58,   76,
3068
3069        76,   76,   77,   77,   77,   78,   78,   78,  617,   79,
3070        79,   79,   80,   80,   80,   76,  359, 1550,   77,  431,
3071       617,   78,  431,   58,   58,   79,  359,  539,   80,  354,
3072       354,  354,   58,  359,   58,  370,  370,  370,   58,  380,
3073       380,  380, 1555,   58,   58,   61,   61,   61,   61,   61,
3074        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3075       365,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3076        82,   82,   83,   83,   83,  703,   84,   84,   84,   85,
3077        85,   85,   81, 1556, 1563,   82,  652,  589,   83,  365,
3078        61,   61,   84,  365,  365,   85,  602,   61,  384,  384,
3079
3080       384,  652,  365,   61,  365,  393,  393,  393,  397,  397,
3081       397,  703,   61,   62,   62,   62,   62,   62,   62,   62,
3082        62,   62,   62,   62,   62,   62,   62,   62, 1565,   62,
3083        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3084        88,   88,   88,  589,   89,   89,   89,   90,   90,   90,
3085        86,  400,  602,   87, 1566,  738,   88,  406,   62,   62,
3086        89,  411,  422,   90,  406,   62, 1572,  400,  405,  405,
3087       405,   62,  739,  406,  408,  408,  408,  411,  422,  738,
3088        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3089        65,   65,   65,   65,   65,   65,  739,   65,   65,   65,
3090
3091        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3092        93, 1573,   94,   94,   94,   95,   95,   95,   91,  438,
3093      1580,   92,  417, 1582,   93,  540,   65,   65,   94,  417,
3094      1583,   95,  416,  416,  416,  438,  432,   65,  417,  419,
3095       419,  419,  430,  430,  430, 1589,   65,   66,   66,   66,
3096        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3097        66,   66,  740,   66,   66,   66,   66,   66,   96,   96,
3098        96,   97,   97,   97,   98,   98,   98,  540,   99,   99,
3099        99,  100,  100,  100,   96,  432,  740,   97,  432,  741,
3100        98, 1590,   66,   66,   99,  443, 1592,  100,  101,  101,
3101
3102       101, 1593,  443,   66,  102,  102,  102,  435,  435,  435,
3103       618,  443,   66,  741,  101,  442,  442,  442,  366, 1594,
3104       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3105       103,  103,  103,  103,  103,  103,  745,  103,  103,  103,
3106       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3107       107,  679,  108,  108,  108,  679,  366,  448,  105,  777,
3108       745,  106,  618,  777,  107,  363,  103,  103,  108,  455,
3109       460,  103,  366,  448,  638,  363,  455,  103,  445,  445,
3110       445,  103,  454,  454,  454,  455,  460,  103,  104,  104,
3111       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3112
3113       104,  104,  104,  363,  104,  104,  104,  104,  104,  109,
3114       109,  109,  110,  110,  110,  111,  111,  111,  639,  112,
3115       112,  112,  457,  457,  457,  109,  638,  469,  110,  472,
3116       477,  111, 1469,  104,  104,  112,  472,  492,  104,  469,
3117       469,  471,  471,  471,  104,  472,  477, 1595,  104,  474,
3118       474,  474, 1469,  492,  104,  113,  113,  113,  113,  113,
3119       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3120       639,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3121       116,  116,  117,  117,  117,  681,  118,  118,  118,  486,
3122       486,  486,  115,  508,  519,  116,  487, 1596,  117,  681,
3123
3124       113,  113,  118,  487, 1597,  113,  489,  489,  489,  508,
3125       519,  113,  487,  502,  502,  502,  505,  505,  505,  513,
3126       513,  513,  113,  114,  114,  114,  114,  114,  114,  114,
3127       114,  114,  114,  114,  114,  114,  114,  114, 1607,  114,
3128       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3129       121,  121,  121,  685,  122,  122,  122, 1140,  503, 1183,
3130       119, 1140,  531,  120,  514,  503,  121,  685,  114,  114,
3131       122,  514, 1183,  114,  503,  516,  516,  516,  531,  114,
3132       514,  525,  525,  525,  528,  528,  528,  538,  538,  538,
3133       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3134
3135       123,  123,  123,  123,  123,  123, 1609,  123,  123,  123,
3136       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3137       129, 1610,  130,  130,  130,  133,  133,  133,  125,  545,
3138       558,  126,  526, 1615,  129,  565,  123,  123,  130,  526,
3139      1617,  133,  542,  542,  542,  545,  558,  123,  526,  550,
3140       550,  550,  123,  124,  124,  124,  124,  124,  124,  124,
3141       124,  124,  124,  124,  124,  124,  124,  124, 1619,  124,
3142       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
3143       136,  136,  136,  565,  137,  137,  137,  138,  138,  138,
3144       134,  565, 1620,  135, 1622, 1623,  136,  571,  124,  124,
3145
3146       137, 1624, 1633,  138, 1639,  551,  555,  555,  555,  124,
3147       564,  564,  564,  571,  124,  127,  127,  127,  127,  127,
3148       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3149      1640,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3150       140,  140,  143,  143,  143,  734,  144,  144,  144,  147,
3151       147,  147,  139,  551, 1644,  140,  577,  551,  143,  734,
3152       127,  127,  144,  577,  582,  147,  568,  568,  568,  576,
3153       576,  576,  577,  579,  579,  579,  127,  587,  587,  587,
3154       582, 1646,  127,  128,  128,  128,  128,  128,  128,  128,
3155       128,  128,  128,  128,  128,  128,  128,  128, 1658,  128,
3156
3157       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3158       152,  152,  152, 1659,  155,  155,  155,  156,  156,  156,
3159       148, 1664,  594,  151, 1667, 1668,  152,  607,  128,  128,
3160       155,  674,  623,  156,  591,  591,  591,  588,  594,  600,
3161       600,  600,  674,  607,  128,  674, 1669,  601,  623, 1671,
3162       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3163       131,  131,  131,  131,  131,  131, 1678,  131,  131,  131,
3164       131,  131,  159,  159,  159,  160,  160,  160,  163,  163,
3165       163, 1681,  164,  164,  164,  588,  633, 1684,  159, 1685,
3166      1687,  160, 1688,  588,  163,  601,  131,  131,  164,  131,
3167
3168       644,  131,  633,  601,  604,  604,  604,  131,  615,  615,
3169       615,  620,  620,  620,  131,  616,  644,  131,  132,  132,
3170       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3171       132,  132,  132, 1689,  132,  132,  132,  132,  132,  167,
3172       167,  167,  168,  168,  168,  171,  171,  171,  684,  172,
3173       172,  172,  616, 1690, 1691,  167,  899, 1677,  168,  684,
3174      1237,  171,  684,  132,  132,  172,  132,  616,  132,  627,
3175       627,  627,  899, 1237,  132,  630,  630,  630,  637,  637,
3176       637,  132, 1677, 1692,  132,  141,  141,  141,  141,  141,
3177       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3178
3179      1693,  141,  141,  141,  141,  141,  173,  173,  173,  174,
3180       174,  174,  175,  175,  175,  742,  176,  176,  176,  177,
3181       177,  177,  173, 1695, 1696,  174,  628,  650,  175,  742,
3182       141,  141,  176,  628,  650,  177,  641,  641,  641,  649,
3183       649,  649,  628,  650, 1698, 1700,  141,  142,  142,  142,
3184       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3185       142,  142, 1702,  142,  142,  142,  142,  142,  178,  178,
3186       178,  181,  181,  181,  182,  182,  182,  744,  183,  183,
3187       183,  184,  184,  184,  178, 1703, 1705,  181,  680, 1707,
3188       182,  744,  142,  142,  183,  680, 1709,  184,  651,  651,
3189
3190       651,  680,  660,  660,  660, 1155, 1155, 1155,  142,  145,
3191       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3192       145,  145,  145,  145, 1710,  145,  145,  145,  145,  145,
3193       185,  185,  185,  186,  186,  186,  187,  187,  187,  687,
3194       188,  188,  188,  191,  191,  191,  185, 1711, 1712,  186,
3195       687,  689,  187,  687,  145,  145,  188,  691,  689,  191,
3196       145,  660,  692,  693,  689,  145, 1713, 1715,  691,  692,
3197       693,  691, 1163, 1163, 1163,  692,  693,  145,  146,  146,
3198       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3199       146,  146,  146, 1724,  146,  146,  146,  146,  146,  192,
3200
3201       192,  192,  193,  193,  193,  194,  194,  194, 1725,  195,
3202       195,  195,  196,  196,  196,  192, 1727, 1731,  193,  733,
3203       736,  194, 1735,  146,  146,  195,  733,  736,  196,  146,
3204       743, 1737,  733,  736,  146,  902,  902,  902, 1744,  902,
3205      1745,  743, 1746, 1747,  743, 1749,  146,  149,  149,  149,
3206       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3207       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3208       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3209       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3210       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3211
3212       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3213       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3214       149,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3215       153,  153,  153,  153,  153,  153, 1753,  153,  153,  153,
3216       153,  153,  197,  197,  197,  198,  198,  198,  201,  201,
3217       201, 1754,  202,  202,  202,  205,  205,  205,  197, 1033,
3218      1755,  198, 1758, 1765,  201, 1777,  153,  153,  202, 1033,
3219       153,  205,  914,  914,  914, 1778, 1033,  153, 1786, 1789,
3220       153,  936,  936,  936,  153, 1799,  153,  153,  154,  154,
3221       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3222
3223       154,  154,  154, 1803,  154,  154,  154,  154,  154,  206,
3224       206,  206,  207,  207,  207,  208,  208,  208, 1807,  209,
3225       209,  209,  210,  210,  210,  206, 1808, 1812,  207, 1813,
3226      1814,  208, 1815,  154,  154,  209,  914,  154,  210,  948,
3227       948,  948, 1824,  948,  154,  936,  948,  154, 1178, 1178,
3228      1178,  154, 1828,  154,  154,  157,  157,  157,  157,  157,
3229       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3230      1831,  157,  157,  157,  157,  157,  211,  211,  211,  212,
3231       212,  212,  215,  215,  215, 1833,  216,  216,  216,  701,
3232       701,  701,  211, 1835, 1836,  212, 1838, 1839,  215, 1840,
3233
3234       157,  157,  216,  157,  157,  157,  701, 1843,  956,  956,
3235       956,  157,  956, 1845,  157,  956, 1847, 1852,  157, 1858,
3236      1862,  157,  158,  158,  158,  158,  158,  158,  158,  158,
3237       158,  158,  158,  158,  158,  158,  158, 1863,  158,  158,
3238       158,  158,  158,  217,  217,  217,  218,  218,  218,  219,
3239       219,  219, 1864,  220,  220,  220,  709,  709,  709,  217,
3240      1866, 1878,  218, 1874, 1881,  219, 1882,  158,  158,  220,
3241       158,  158,  158,  709, 1883,  971,  971,  971,  158,  971,
3242      1874,  158,  971, 1885, 1886,  158, 1875, 1888,  158,  161,
3243       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
3244
3245       161,  161,  161,  161, 1876,  161,  161,  161,  161,  161,
3246       221,  221,  221,  222,  222,  222,  225,  225,  225, 1889,
3247       226,  226,  226,  725,  725,  725,  221, 1890, 1875,  222,
3248      1892, 1893,  225, 1894,  161,  161,  226, 1876, 1898,  161,
3249       725, 1234, 1234, 1234, 1900,  161,  162,  162,  162,  162,
3250       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
3251       162, 1903,  162,  162,  162,  162,  162,  227,  227,  227,
3252       228,  228,  228,  229,  229,  229, 1904,  230,  230,  230,
3253       749,  749,  749,  227, 1905, 1884,  228, 1906, 1908,  229,
3254      1910,  162,  162,  230, 1911, 1913,  162,  749, 1485, 1485,
3255
3256      1485, 1884,  162,  165,  165,  165,  165,  165,  165,  165,
3257       165,  165,  165,  165,  165,  165,  165,  165, 1915,  165,
3258       165,  165,  165,  165,  231,  231,  231,  232,  232,  232,
3259       235,  235,  235, 1918,  236,  236,  236,  239,  239,  239,
3260       231, 1919, 1921,  232, 1922, 1923,  235, 1925,  165,  165,
3261       236, 1931,  165,  239,  975,  975,  975, 1932, 1934,  165,
3262      1937, 1953,  165,  166,  166,  166,  166,  166,  166,  166,
3263       166,  166,  166,  166,  166,  166,  166,  166, 1954,  166,
3264       166,  166,  166,  166,  240,  240,  240,  241,  241,  241,
3265       242,  242,  242, 1920,  243,  243,  243,  244,  244,  244,
3266
3267       240, 1920, 1959,  241, 1933, 1938,  242, 1960,  166,  166,
3268       243, 1961,  166,  244,  984,  984,  984, 1965,  975,  166,
3269      1933, 1938,  166,  169,  169,  169,  169,  169,  169,  169,
3270       169,  169,  169,  169,  169,  169,  169,  169, 1967,  169,
3271       169,  169,  169,  169,  245,  245,  245,  246,  246,  246,
3272       249,  249,  249, 1924,  250,  250,  250,  756,  756,  756,
3273       245, 1924, 1973,  246, 1939, 1974,  249,  358,  169,  169,
3274       250, 1975,  169,  292,  756, 1982, 1983,  358,  984,  169,
3275      1939, 1984,  169,  292, 1997, 2003,  364, 2007, 2010,  169,
3276       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
3277
3278       170,  170,  170,  170,  170,  358,  170,  170,  170,  170,
3279       170, 2012,  292, 2015,  364,  761,  761,  761,  292,  358,
3280       773,  773,  773,  358, 2017,  292,  785,  785,  785,  292,
3281       364, 2019,  761, 2020, 2021,  170,  170,  773, 2024,  170,
3282       991,  991,  991,  785,  991, 2026,  170,  991, 2031,  170,
3283      1486, 1486, 1486, 1488, 1488, 1488,  170,  179,  179,  179,
3284       179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
3285       179,  179, 2033,  179,  179,  179,  179,  179,  786,  786,
3286       786,  792,  792,  792,  794,  794,  794,  808,  808,  808,
3287       809,  809,  809, 2041, 2042,  786, 1486, 2043,  792, 1488,
3288
3289      2044,  794,  179,  179,  808, 2046, 2057,  809,  179,  998,
3290       998,  998, 2057,  998, 2059, 2060,  998, 1491, 1491, 1491,
3291      1494, 1494, 1494,  179,  180,  180,  180,  180,  180,  180,
3292       180,  180,  180,  180,  180,  180,  180,  180,  180, 2065,
3293       180,  180,  180,  180,  180,  821,  821,  821,  829,  829,
3294       829,  834,  834,  834,  840,  840,  840,  862,  862,  862,
3295      2059, 2066,  821, 2067, 2068,  829, 2072, 2074,  834,  180,
3296       180,  840, 2075, 2076,  862,  180, 1003, 1003, 1003, 2081,
3297      1003, 2088, 2090, 1003, 1504, 1504, 1504, 1540, 1540, 1540,
3298       180,  189,  189,  189,  189,  189,  189,  189,  189,  189,
3299
3300       189,  189,  189,  189,  189,  189, 2091,  189,  189,  189,
3301       189,  189,  890,  890,  890,  894,  894,  894, 2058, 2094,
3302       912,  912,  912,  913,  913,  913,  944,  944,  944,  890,
3303      2097, 2101,  894,  945,  945,  945,  189,  189,  912, 2102,
3304      2103,  913,  189, 2104,  944,  189, 1015, 1015, 1015, 2058,
3305      1015,  945, 2105, 1015, 1543, 1543, 1543,  189,  190,  190,
3306       190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
3307       190,  190,  190, 2106,  190,  190,  190,  190,  190, 2107,
3308      2108,  913,  947,  947,  947, 2109, 2110,  951,  951,  951,
3309       952,  952,  952,  945,  955,  955,  955, 2115, 2116,  947,
3310
3311       957,  957,  957,  190,  190,  951, 2117, 2118,  952,  190,
3312      2136,  955,  190, 2137, 1027, 1027, 1027,  957, 1027, 2140,
3313      2141, 1027, 2143, 2147,  190,  199,  199,  199,  199,  199,
3314       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
3315      2148,  199,  199,  199,  199,  199,  959,  959,  959,  963,
3316       963,  963, 2149, 2155,  952, 2156,  964,  964,  964,  968,
3317       968,  968, 2157,  959, 1541, 1541, 1541,  963, 2171, 2175,
3318       199,  199, 2176, 2177,  964, 2179,  199,  968, 1694, 1694,
3319      1694,  199,  200,  200,  200,  200,  200,  200,  200,  200,
3320       200,  200,  200,  200,  200,  200,  200, 2183,  200,  200,
3321
3322       200,  200,  200,  964,  969,  969,  969,  970,  970,  970,
3323      1541,  973,  973,  973,  990,  990,  990,  974,  974,  974,
3324      1739, 2186,  969, 2187,  970, 2190, 1739,  200,  200,  973,
3325      1739,  990, 2191,  200, 1739,  974, 2194, 2201,  200,  203,
3326       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
3327       203,  203,  203,  203,  974,  203,  203,  203,  203,  203,
3328       994,  994,  994,  995,  995,  995, 1740, 2203,  969,  997,
3329       997,  997, 1740, 1000, 1000, 1000, 1740, 2218,  994, 2232,
3330      1740,  995, 2233, 2236,  203,  203,  997, 1002, 1002, 1002,
3331       203, 1000, 1029, 1029, 1029, 2243, 1029, 2244, 2249, 1029,
3332
3333      2251, 1542, 1542, 1542, 1002,  203,  204,  204,  204,  204,
3334       204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
3335       204, 2263,  204,  204,  204,  204,  204, 2264, 2222,  995,
3336      1001, 1001, 1001, 2265, 2266, 1005, 1005, 1005, 1006, 1006,
3337      1006, 1009, 1009, 1009, 1010, 1010, 1010, 1542, 1001, 2267,
3338      2138,  204,  204, 1005, 2268, 2269, 1006,  204, 2138, 1009,
3339      2139, 2188, 1010, 1035, 1035, 1035, 2270, 1035, 2139, 2188,
3340      1035, 2222,  204,  213,  213,  213,  213,  213,  213,  213,
3341       213,  213,  213,  213,  213,  213,  213,  213, 2223,  213,
3342       213,  213,  213,  213, 2271, 2272, 1001, 2279, 2280, 1006,
3343
3344      1014, 1014, 1014, 1018, 1018, 1018, 1026, 1026, 1026, 1010,
3345      1019, 1019, 1019, 1023, 1023, 1023, 2281, 1014,  213,  213,
3346      2283, 1018, 2189, 1026,  213, 2293, 2294,  213, 1019, 2295,
3347      2189, 1023, 1697, 1697, 1697, 2223, 1635, 1635, 1635,  213,
3348       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
3349       214,  214,  214,  214,  214, 2296,  214,  214,  214,  214,
3350       214, 1028, 1028, 1028, 2297, 2298, 1024, 1024, 1024, 2299,
3351      2302, 1019, 1030, 1030, 1030, 1031, 1031, 1031, 1028, 1034,
3352      1034, 1034, 1635, 2303, 1024,  214,  214, 1037, 1037, 1037,
3353      1030,  214, 2304, 1031,  214, 2310, 1034, 2311, 1038, 1038,
3354
3355      1038, 2317, 1038, 2318, 1037, 1038,  214,  223,  223,  223,
3356       223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
3357       223,  223, 2319,  223,  223,  223,  223,  223, 1024, 1039,
3358      1039, 1039, 1049, 1049, 1049, 2320, 1031, 1050, 1050, 1050,
3359      1051, 1051, 1051, 1060, 1060, 1060, 1039, 1052, 1052, 1052,
3360      1049, 1052,  223,  223, 1052, 1050, 2334, 1051, 2335, 2336,
3361       223, 1060,  223, 2337, 2339,  223, 1699, 1699, 1699,  223,
3362      1701, 1701, 1701,  223,  224,  224,  224,  224,  224,  224,
3363       224,  224,  224,  224,  224,  224,  224,  224,  224, 2341,
3364       224,  224,  224,  224,  224, 1050, 1053, 1053, 1053, 1054,
3365
3366      1054, 1054, 2359, 1054, 2364, 2358, 1054, 1055, 1055, 1055,
3367      1070, 1070, 1070, 1053, 1056, 1056, 1056, 2365, 2370,  224,
3368       224, 1057, 1057, 1057, 1055, 2371, 2372,  224, 1070,  224,
3369      2375, 1056,  224, 1704, 1704, 1704,  224, 2358, 1057, 2359,
3370       224,  233,  233,  233,  233,  233,  233,  233,  233,  233,
3371       233,  233,  233,  233,  233,  233, 2378,  233,  233,  233,
3372       233,  233, 1061, 1061, 1061, 1056, 1065, 1065, 1065, 1714,
3373      1714, 1714, 2305, 1057, 1059, 1059, 1059, 1058, 1058, 1058,
3374      1061, 2379, 2305, 1065, 2380, 2381,  233,  233, 1066, 1066,
3375      1066, 1059, 1066, 2382, 1058, 1066, 1074, 1074, 1074, 2383,
3376
3377      1074, 2384, 2385, 1074, 2386, 1706, 1706, 1706, 2387, 1061,
3378       233,  234,  234,  234,  234,  234,  234,  234,  234,  234,
3379       234,  234,  234,  234,  234,  234, 1059,  234,  234,  234,
3380       234,  234, 1058, 1067, 1067, 1067, 1073, 1073, 1073, 2388,
3381      1075, 1075, 1075, 2390, 2391, 1071, 1071, 1071, 2393, 2394,
3382      1067, 2395, 2396, 1073, 2397, 2399,  234,  234, 1075, 1076,
3383      1076, 1076, 2400, 1071, 1079, 1079, 1079, 2401, 1079, 1706,
3384      2403, 1079, 1085, 1085, 1085, 2404, 1085, 1076, 2406, 1085,
3385       234,  237,  237,  237,  237,  237,  237,  237,  237,  237,
3386       237,  237,  237,  237,  237,  237, 1071,  237,  237,  237,
3387
3388       237,  237, 1078, 1078, 1078, 1081, 1081, 1081, 1084, 1084,
3389      1084, 2411, 1082, 1082, 1082, 1089, 1089, 1089, 2412, 1078,
3390      1076, 2413, 2392, 1081, 2415, 1084,  237,  237, 2420, 2421,
3391      1082, 2392, 2422, 1089, 1708, 1708, 1708,  237,  238,  238,
3392       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
3393       238,  238,  238, 2423,  238,  238,  238,  238,  238, 1082,
3394      2424, 1090, 1090, 1090, 1091, 1091, 1091, 2427, 1092, 1092,
3395      1092, 1093, 1093, 1093, 1094, 1094, 1094, 2398, 2433, 1090,
3396      1708, 1091, 2434,  238,  238, 1092, 2398, 2436, 1093, 1748,
3397      1748, 1748, 1094, 2445,  238,  247,  247,  247,  247,  247,
3398
3399       247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
3400      2447,  247,  247,  247,  247,  247, 1090, 2450, 2452, 1095,
3401      1095, 1095, 1097, 1097, 1097, 1750, 1750, 1750, 2476, 2477,
3402      1093, 1099, 1099, 1099, 1101, 1101, 1101, 1095, 2479, 1097,
3403       247,  247, 1098, 1098, 1098, 1100, 1100, 1100, 1099, 2472,
3404      2471,  247, 1101, 1105, 1105, 1105, 2480, 1105, 2481, 1098,
3405      1105, 2486, 1100, 2473,  247,  248,  248,  248,  248,  248,
3406       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
3407      1095,  248,  248,  248,  248,  248, 2472, 1102, 1102, 1102,
3408      2471, 2487, 1098, 2488, 2489, 1104, 1104, 1104, 1106, 1106,
3409
3410      1106, 1107, 1107, 1107, 1100, 1102, 2473, 1098, 2490, 2491,
3411       248,  248, 1104, 1108, 1108, 1108, 1106, 2492, 2493, 1107,
3412      2494,  248, 2495, 2496, 1102, 2498, 1109, 1109, 1109, 2499,
3413      1108, 1110, 1110, 1110,  248,  290, 1111, 1111, 1111, 1115,
3414      1115, 1115,  290, 1109, 1112, 1112, 1112, 2500, 2501, 1110,
3415      2502,  290,  290, 2503, 1111, 2504, 1107, 1115, 1113, 1113,
3416      1113, 1112, 1751, 1751, 1751, 1114, 1114, 1114, 2505, 2506,
3417      1116, 1116, 1116, 2507, 2508, 1113, 1128, 1128, 1128,  290,
3418       290,  290, 1114, 2509, 2510,  290,  290,  290, 1116, 2511,
3419       290,  290, 2512, 1128,  290, 2513,  290,  290,  290,  355,
3420
3421      1122, 1122, 1122, 1123, 1123, 1123,  355, 1111, 1113, 1126,
3422      1126, 1126, 1127, 1127, 1127,  355,  355, 2515, 1122, 2484,
3423      2519, 1123, 2526, 1113, 1129, 1129, 1129, 1126, 1129, 2484,
3424      1127, 1129, 2484, 2527, 1130, 1130, 1130, 2528, 1131, 1131,
3425      1131, 1116, 2530,  355,  355,  355, 1132, 1132, 1132,  355,
3426       355,  355, 1130, 2534,  355,  355, 1131, 2537,  355, 2560,
3427       355,  355,  355, 1132, 1133, 1133, 1133, 1123, 1133, 2560,
3428      2578, 1133, 1135, 1135, 1135, 2560, 1127, 1136, 1136, 1136,
3429      1151, 1151, 1151, 1152, 1152, 1152, 1154, 1154, 1154, 2576,
3430      1135, 1185, 1185, 1185, 2580, 1136, 2581, 2575, 1151, 1131,
3431
3432      2582, 1152, 2585, 2586, 1154, 1186, 1186, 1186, 1185, 1187,
3433      1187, 1187, 1189, 1189, 1189, 1190, 1190, 1190, 1191, 1191,
3434      1191, 2588, 1191, 1186, 2589, 1191, 2575, 1187, 2591, 2577,
3435      1189, 2576, 1190, 1154, 1194, 1194, 1194, 1196, 1196, 1196,
3436      2592, 1136, 1197, 1197, 1197, 1199, 1199, 1199, 1204, 1204,
3437      1204, 1194, 1201, 1201, 1201, 1196, 1201, 2593, 2594, 1201,
3438      1197, 1189, 2595, 1199, 2597, 1204, 1205, 1205, 1205, 2598,
3439      1205, 2577, 2587, 1205, 1206, 1206, 1206, 1207, 1207, 1207,
3440      1208, 1208, 1208, 2599, 1208, 2587, 2600, 1208, 1210, 1210,
3441      1210, 1206, 1199, 2603, 1207, 1194, 1212, 1212, 1212, 1213,
3442
3443      1213, 1213, 1215, 1215, 1215, 1210, 1217, 1217, 1217, 1219,
3444      1219, 1219, 2604, 2605, 1212, 2606, 2607, 1213, 2608, 2609,
3445      1215, 2590, 2610, 1217, 1220, 1220, 1220, 1219, 1222, 1222,
3446      1222, 1223, 1223, 1223, 2590, 1223, 2611, 2612, 1223, 1227,
3447      1227, 1227, 1220, 1228, 1228, 1228, 1222, 1230, 1230, 1230,
3448      2485, 1245, 1245, 1245, 2613, 1245, 2614, 1227, 1245, 2615,
3449      2485, 1228, 1215, 2485, 2616, 1230, 1249, 1249, 1249, 1250,
3450      1250, 1250, 1251, 1251, 1251, 1222, 1253, 1253, 1253, 1259,
3451      1259, 1259, 2617, 1249, 1255, 1255, 1255, 1250, 1255, 2619,
3452      1251, 1255, 2629, 2630, 1253, 2635, 2639, 1259, 1260, 1260,
3453
3454      1260, 1262, 1262, 1262, 1263, 1263, 1263, 2657, 1263, 2658,
3455      2659, 1263, 1266, 1266, 1266, 2660, 1260, 2661, 2662, 1262,
3456      1267, 1267, 1267, 1268, 1268, 1268, 1270, 1270, 1270, 1266,
3457      1271, 1271, 1271, 1272, 1272, 1272, 2666, 1253, 1267, 2672,
3458      2674, 1268, 2677, 2678, 1270, 2682, 2683, 1271, 2684, 2666,
3459      1272, 1273, 1273, 1273, 1274, 1274, 1274, 1276, 1276, 1276,
3460      2685, 1272, 1262, 1279, 1279, 1279, 1280, 1280, 1280, 1273,
3461      1280, 2671, 1274, 1280, 2672, 1276, 1285, 1285, 1285, 2686,
3462      1279, 1286, 1286, 1286, 1288, 1288, 1288, 1291, 1291, 1291,
3463      1292, 1292, 1292, 1270, 1285, 1293, 1293, 1293, 2687, 1286,
3464
3465      2688, 2689, 1288, 2691, 1291, 1296, 1296, 1296, 1292, 1295,
3466      1295, 1295, 2692, 1293, 1297, 1297, 1297, 2667, 1297, 2671,
3467      2693, 1297, 1296, 1276, 1300, 1300, 1300, 1295, 1300, 2694,
3468      2667, 1300, 1303, 1303, 1303, 1304, 1304, 1304, 1306, 1306,
3469      1306, 1311, 1311, 1311, 2695, 1311, 2696, 2697, 1311, 1288,
3470      1303, 2698, 2700, 1304, 2701, 2702, 1306, 1314, 1314, 1314,
3471      1315, 1315, 1315, 2703, 1315, 2704, 2705, 1315, 1318, 1318,
3472      1318, 1319, 1319, 1319, 1314, 1319, 1295, 2706, 1319, 1329,
3473      1329, 1329, 1330, 1330, 1330, 1318, 1332, 1332, 1332, 1333,
3474      1333, 1333, 2561, 1333, 2707, 2708, 1333, 1329, 2709, 2710,
3475
3476      1330, 2711, 2561, 1306, 1332, 1336, 1336, 1336, 2561, 1336,
3477      2712, 2713, 1336, 1339, 1339, 1339, 1340, 1340, 1340, 2714,
3478      1340, 2720, 2724, 1340, 1345, 1345, 1345, 1346, 1346, 1346,
3479      1339, 1348, 1348, 1348, 1353, 1353, 1353, 2725, 1353, 2733,
3480      2734, 1353, 1345, 2751, 2752, 1346, 1356, 1356, 1356, 1348,
3481      1357, 1357, 1357, 1332, 1357, 2753, 2754, 1357, 1360, 1360,
3482      1360, 2755, 2756, 1356, 1361, 1361, 1361, 1363, 1363, 1363,
3483      1365, 1365, 1365, 2746, 1365, 2759, 1360, 1365, 2760, 1348,
3484      2761, 2762, 1361, 2746, 2771, 1363, 1368, 1368, 1368, 1369,
3485      1369, 1369, 1371, 1371, 1371, 1373, 1373, 1373, 2747, 1373,
3486
3487      2772, 2773, 1373, 2774, 1368, 2775, 2776, 1369, 2747, 2777,
3488      1371, 1377, 1377, 1377, 1378, 1378, 1378, 2778, 1363, 1380,
3489      1380, 1380, 2781, 1382, 1382, 1382, 2749, 1382, 2782, 1377,
3490      1382, 2750, 1378, 1388, 1388, 1388, 2749, 1380, 1389, 1389,
3491      1389, 2750, 1391, 1391, 1391, 1392, 1392, 1392, 1393, 1393,
3492      1393, 1388, 1393, 2784, 2785, 1393, 1389, 2763, 2786, 1371,
3493      1391, 2788, 1392, 1394, 1394, 1394, 2790, 2791, 1380, 1395,
3494      1395, 1395, 2792, 1395, 2795, 2796, 1395, 1397, 1397, 1397,
3495      1394, 1398, 1398, 1398, 2797, 1400, 1400, 1400, 1402, 1402,
3496      1402, 2763, 1406, 1406, 1406, 1397, 1716, 1716, 1716, 1398,
3497
3498      2798, 2799, 1391, 1400, 2802, 1402, 1403, 1403, 1403, 1406,
3499      1403, 2803, 2810, 1403, 1407, 1407, 1407, 2811, 1407, 2812,
3500      2820, 1407, 1409, 1409, 1409, 1410, 1410, 1410, 1412, 1412,
3501      1412, 1414, 1414, 1414, 2826, 1414, 2827, 2828, 1414, 2829,
3502      1409, 2830, 1716, 1410, 2831, 2832, 1412, 1417, 1417, 1417,
3503      2833, 2834, 1400, 1418, 1418, 1418, 1420, 1420, 1420, 1421,
3504      1421, 1421, 1422, 1422, 1422, 1417, 1422, 2835, 2837, 1422,
3505      2838, 1418, 2843, 2844, 1420, 2845, 1421, 1423, 1423, 1423,
3506      1424, 1424, 1424, 2846, 1424, 2847, 2856, 1424, 1425, 1425,
3507      1425, 2857, 1412, 2858, 1423, 1426, 1426, 1426, 2859, 1428,
3508
3509      1428, 1428, 1429, 1429, 1429, 2860, 1425, 1430, 1430, 1430,
3510      2861, 1430, 2862, 1426, 1430, 2863, 1420, 1428, 2867, 1429,
3511      1433, 1433, 1433, 1434, 1434, 1434, 2868, 1434, 2847, 2869,
3512      1434, 1435, 1435, 1435, 1436, 1436, 1436, 1433, 1438, 1438,
3513      1438, 1440, 1440, 1440, 1444, 1444, 1444, 2870, 2871, 1435,
3514      2872, 2874, 1436, 1445, 1445, 1445, 1438, 2875, 1440, 2877,
3515      2878, 1428, 1444, 1447, 1447, 1447, 1450, 1450, 1450, 2879,
3516      2880, 1445, 1451, 1451, 1451, 1453, 1453, 1453, 1454, 1454,
3517      1454, 1447, 1454, 2882, 1450, 1454, 1457, 1457, 1457, 2883,
3518      1451, 2887, 2888, 1453, 1458, 1458, 1458, 1460, 1460, 1460,
3519
3520      1438, 1461, 1461, 1461, 1457, 1461, 2889, 2892, 1461, 1465,
3521      1465, 1465, 1458, 2897, 2898, 1460, 1466, 1466, 1466, 1468,
3522      1468, 1468, 2899, 2900, 1447, 2901, 2902, 1465, 1453, 1470,
3523      1470, 1470, 2903, 2904, 1466, 2905, 2906, 1468, 1477, 1477,
3524      1477, 1507, 1507, 1507, 1509, 1509, 1509, 1470, 1470, 2907,
3525      1510, 1510, 1510, 1535, 1535, 1535, 1477, 1460, 1507, 1508,
3526      1508, 1508, 1509, 1508, 2908, 2910, 1508, 1510, 1511, 1511,
3527      1511, 1535, 1511, 2911, 2912, 1511, 1514, 1514, 1514, 2913,
3528      1468, 1516, 1516, 1516, 2914, 1516, 2920, 2916, 1516, 1519,
3529      1519, 1519, 2923, 2924, 1514, 2927, 1520, 1520, 1520, 2917,
3530
3531      1520, 2916, 1509, 1520, 1477, 2929, 1519, 1521, 1521, 1521,
3532      2917, 1521, 2930, 2932, 1521, 1525, 1525, 1525, 2933, 1526,
3533      1526, 1526, 2936, 1526, 2937, 1514, 1526, 1528, 1528, 1528,
3534      2914, 2938, 1525, 1530, 1530, 1530, 1531, 1531, 1531, 2939,
3535      1531, 2940, 2941, 1531, 2942, 1528, 1532, 1532, 1532, 2943,
3536      1530, 1533, 1533, 1533, 1551, 1551, 1551, 1552, 1552, 1552,
3537      1553, 1553, 1553, 1532, 1553, 2944, 2945, 1553, 2946, 1533,
3538      2950, 1551, 2958, 2960, 1552, 2962, 2964, 1528, 1554, 1554,
3539      1554, 1557, 1557, 1557, 1558, 1558, 1558, 1559, 1559, 1559,
3540      2972, 1559, 2974, 2978, 1559, 2980, 1554, 2975, 2982, 1557,
3541
3542      1533, 1558, 1560, 1560, 1560, 1561, 1561, 1561, 1562, 1562,
3543      1562, 2983, 1562, 2977, 2977, 1562, 1564, 1564, 1564, 2948,
3544      1560, 2984, 1561, 1567, 1567, 1567, 1568, 1568, 1568, 2949,
3545      1568, 2948, 2955, 1568, 1564, 1569, 1569, 1569, 2975, 2985,
3546      1567, 2949, 1554, 2992, 2955, 1557, 1570, 1570, 1570, 1571,
3547      1571, 1571, 1569, 1574, 1574, 1574, 2956, 1575, 1575, 1575,
3548      2996, 1575, 1560, 1570, 1575, 3002, 2991, 1571, 2956, 2976,
3549      1574, 1576, 1576, 1576, 1577, 1577, 1577, 1564, 1578, 1578,
3550      1578, 3004, 1578, 2976, 2991, 1578, 1579, 1579, 1579, 1576,
3551      2995, 1577, 1570, 1581, 1581, 1581, 1584, 1584, 1584, 1585,
3552
3553      1585, 1585, 3007, 1585, 1579, 2995, 1585, 1586, 1586, 1586,
3554      1581, 1586, 3009, 1584, 1586, 1571, 1591, 1591, 1591, 1598,
3555      1598, 1598, 1599, 1599, 1599, 3014, 1599, 3015, 3017, 1599,
3556      1602, 1602, 1602, 1591, 1603, 1603, 1603, 1598, 1604, 1604,
3557      1604, 1605, 1605, 1605, 1606, 1606, 1606, 1602, 1608, 1608,
3558      1608, 1603, 1579, 2979, 3018, 1604, 3019, 3021, 1605, 1611,
3559      1611, 1611, 1606, 1611, 2979, 1608, 1611, 3022, 3023, 1614,
3560      1614, 1614, 1616, 1616, 1616, 1618, 1618, 1618, 1621, 1621,
3561      1621, 1625, 1625, 1625, 1598, 1604, 1614, 1626, 1626, 1626,
3562      1616, 3024, 3026, 1618, 3027, 3029, 1621, 3030, 1625, 1606,
3563
3564      3037, 1634, 1634, 1634, 1603, 1626, 1627, 1627, 1627, 3001,
3565      1627, 1605, 3038, 1627, 1630, 1630, 1630, 3039, 1630, 1634,
3566      3040, 1630, 1636, 1636, 1636, 3041, 1636, 1625, 3001, 1636,
3567      1641, 1641, 1641, 3042, 1641, 1621, 1616, 1641, 1645, 1645,
3568      1645, 1618, 3045, 3003, 1626, 1647, 1647, 1647, 1648, 1648,
3569      1648, 3046, 1648, 3047, 3048, 1648, 1645, 1651, 1651, 1651,
3570      3006, 1651, 3003, 1647, 1651, 3049, 3008, 1634, 1654, 1654,
3571      1654, 1655, 1655, 1655, 3050, 1655, 3051, 3052, 1655, 3006,
3572      1660, 1660, 1660, 3054, 1660, 3008, 1654, 1660, 1663, 1663,
3573      1663, 1665, 1665, 1665, 1666, 1666, 1666, 3056, 1666, 1645,
3574
3575      3058, 1666, 1647, 1670, 1670, 1670, 1663, 3059, 1665, 1672,
3576      1672, 1672, 1673, 1673, 1673, 1654, 1674, 1674, 1674, 3061,
3577      3072, 1670, 1675, 1675, 1675, 3073, 1672, 1676, 1676, 1676,
3578      1673, 1679, 1679, 1679, 1674, 1663, 1686, 1686, 1686, 1675,
3579      1717, 1717, 1717, 3074, 1717, 1676, 3075, 1717, 3076, 1679,
3580      3077, 3070, 1670, 3081, 1686, 1720, 1720, 1720, 1721, 1721,
3581      1721, 3082, 1721, 3070, 3083, 1721, 3084, 3085, 1674, 1726,
3582      1726, 1726, 3086, 1720, 1728, 1728, 1728, 3087, 1728, 1673,
3583      3088, 1728, 1679, 1736, 1736, 1736, 3071, 1726, 1686, 1676,
3584      1732, 1732, 1732, 3091, 1732, 3092, 3093, 1732, 3071, 1679,
3585
3586      3094, 1736, 1738, 1738, 1738, 3095, 1738, 3096, 3097, 1738,
3587      1741, 1741, 1741, 3098, 1742, 1742, 1742, 3089, 1742, 3099,
3588      1726, 1742, 1720, 1743, 1743, 1743, 3100, 1741, 1752, 1752,
3589      1752, 1756, 1756, 1756, 1757, 1757, 1757, 1759, 1759, 1759,
3590      3101, 1743, 3089, 3102, 1736, 1760, 1760, 1760, 3103, 1760,
3591      3104, 3105, 1760, 3106, 1759, 1761, 1761, 1761, 3107, 1761,
3592      3108, 3109, 1761, 1764, 1764, 1764, 1766, 1766, 1766, 1767,
3593      1767, 1767, 3110, 3116, 1743, 1768, 1768, 1768, 3113, 1768,
3594      3117, 1764, 1768, 1766, 1771, 1771, 1771, 1767, 3118, 1772,
3595      1772, 1772, 1752, 1772, 3119, 1756, 1772, 3113, 1757, 1776,
3596
3597      1776, 1776, 1771, 1775, 1775, 1775, 3120, 1779, 1779, 1779,
3598      1764, 1779, 3121, 3122, 1779, 3123, 1767, 1776, 3124, 3125,
3599      1775, 1782, 1782, 1782, 1783, 1783, 1783, 3126, 1783, 3127,
3600      3128, 1783, 1784, 1784, 1784, 1785, 1785, 1785, 1782, 1785,
3601      3129, 3130, 1785, 1787, 1787, 1787, 1788, 1788, 1788, 1784,
3602      1771, 1790, 1790, 1790, 3131, 1790, 3132, 3133, 1790, 3135,
3603      3136, 1787, 3137, 1776, 1793, 1793, 1793, 1795, 1795, 1795,
3604      3138, 1795, 3134, 3139, 1795, 1798, 1798, 1798, 1800, 1800,
3605      1800, 3140, 1793, 1801, 1801, 1801, 3141, 1801, 3142, 3143,
3606      1801, 3144, 3134, 1798, 3145, 1800, 1802, 1802, 1802, 1804,
3607
3608      1804, 1804, 3146, 1804, 3147, 3148, 1804, 1809, 1809, 1809,
3609      1810, 1810, 1810, 1802, 1810, 3149, 3150, 1810, 1811, 1811,
3610      1811, 1798, 3151, 3152, 1809, 1816, 1816, 1816, 1817, 1817,
3611      1817, 1818, 1818, 1818, 3156, 1811, 1819, 1819, 1819, 3153,
3612      1819, 3157, 1816, 1819, 3158, 3153, 1817, 3159, 1818, 1820,
3613      1820, 1820, 1821, 1821, 1821, 1822, 1822, 1822, 1823, 1823,
3614      1823, 1825, 1825, 1825, 3160, 3161, 1820, 3163, 3164, 1821,
3615      3166, 3167, 1822, 1826, 1826, 1826, 1823, 1826, 1825, 3169,
3616      1826, 1827, 1827, 1827, 1829, 1829, 1829, 3170, 1830, 1830,
3617      1830, 3173, 1830, 3174, 1817, 1830, 3175, 3176, 1827, 3178,
3618
3619      3180, 1829, 1832, 1832, 1832, 1834, 1834, 1834, 3172, 3182,
3620      1821, 1837, 1837, 1837, 1841, 1841, 1841, 3184, 1823, 3186,
3621      1832, 3187, 3172, 1834, 3188, 3189, 1842, 1842, 1842, 1837,
3622      1842, 1841, 3190, 1842, 1844, 1844, 1844, 1846, 1846, 1846,
3623      1848, 1848, 1848, 1849, 1849, 1849, 1850, 1850, 1850, 1851,
3624      1851, 1851, 1844, 3191, 3192, 1846, 1834, 1848, 3193, 1837,
3625      1849, 3195, 3197, 1850, 1854, 1854, 1854, 1851, 1853, 1853,
3626      1853, 3199, 1855, 1855, 1855, 1856, 1856, 1856, 1857, 1857,
3627      1857, 3200, 1854, 1859, 1859, 1859, 1853, 1859, 1846, 1855,
3628      1859, 3201, 1856, 1865, 1865, 1865, 1857, 3202, 1867, 1867,
3629
3630      1867, 1868, 1868, 1868, 3219, 1868, 3203, 3241, 1868, 3217,
3631      1850, 1865, 3219, 3217, 1853, 1867, 1851, 1869, 1869, 1869,
3632      1870, 1870, 1870, 1871, 1871, 1871, 1872, 1872, 1872, 1854,
3633      1872, 3220, 3218, 1872, 1515, 1869, 3218, 3204, 1870, 3220,
3634      1871, 3241, 3203, 1857, 1865, 1873, 1873, 1873, 1879, 1879,
3635      1879, 1880, 1880, 1880, 1887, 1887, 1887, 1891, 1891, 1891,
3636      1895, 1895, 1895, 1873, 3215, 1879, 1896, 1896, 1896, 1880,
3637      1897, 1897, 1897, 3204, 3225, 1870, 1869, 1899, 1899, 1899,
3638      1901, 1901, 1901, 1902, 1902, 1902, 1907, 1907, 1907, 1909,
3639      1909, 1909, 1912, 1912, 1912, 3294, 1914, 1914, 1914, 1916,
3640
3641      1916, 1916, 1917, 1917, 1917, 3216, 3294, 1909, 3215, 3226,
3642      1912, 3225, 1880, 1914, 1926, 1926, 1926, 1916, 1926, 1917,
3643      3223, 1926, 1929, 1929, 1929, 1930, 1930, 1930, 1935, 1935,
3644      1935, 1936, 1936, 1936, 1940, 1940, 1940, 3242, 3211, 1909,
3645      1929, 3212, 1930, 1941, 1941, 1941, 3226, 1941, 3213, 3216,
3646      1941, 1940, 1944, 1944, 1944, 1945, 1945, 1945, 1916, 1946,
3647      1946, 1946, 1947, 1947, 1947, 3214, 1947, 3223, 1929, 1947,
3648      1944, 3242, 1945, 1948, 1948, 1948, 1946, 1949, 1949, 1949,
3649      1950, 1950, 1950, 1951, 1951, 1951, 3211, 1951, 3249, 3212,
3650      1951, 1948, 1952, 1952, 1952, 1949, 3213, 1950, 3231, 1955,
3651
3652      1955, 1955, 1513, 1955, 3221, 1944, 1955, 1958, 1958, 1958,
3653      1952, 1958, 3221, 3214, 1958, 1962, 1962, 1962, 1964, 1964,
3654      1964, 3249, 1966, 1966, 1966, 3227, 1948, 1968, 1968, 1968,
3655      3222, 1968, 3232, 1962, 1968, 1971, 1971, 1971, 3222, 1952,
3656      1966, 1972, 1972, 1972, 3231, 1972, 3228, 3233, 1972, 1976,
3657      1976, 1976, 1971, 1976, 3235, 3289, 1976, 1979, 1979, 1979,
3658      1980, 1980, 1980, 3224, 1980, 1512, 3227, 1980, 1981, 1981,
3659      1981, 1985, 1985, 1985, 1979, 1986, 1986, 1986, 3232, 1986,
3660      1966, 3229, 1986, 3236, 3233, 1981, 3235, 3228, 1985, 1987,
3661      1987, 1987, 1988, 1988, 1988, 3261, 1988, 3234, 3230, 1988,
3662
3663      1991, 1991, 1991, 3289, 1992, 1992, 1992, 1987, 1992, 3245,
3664      3224, 1992, 1993, 1993, 1993, 3236, 3229, 1991, 1994, 1994,
3665      1994, 1995, 1995, 1995, 3261, 1995, 1506, 3237, 1995, 1993,
3666      1996, 1996, 1996, 3230, 3234, 1994, 3237, 1998, 1998, 1998,
3667      1987, 1998, 3243, 3238, 1998, 2001, 2001, 2001, 1996, 2002,
3668      2002, 2002, 3238, 2002, 1505, 3245, 2002, 2004, 2004, 2004,
3669      3239, 2004, 2001, 3246, 2004, 2008, 2008, 2008, 2011, 2011,
3670      2011, 2013, 2013, 2013, 2014, 2014, 2014, 2016, 2016, 2016,
3671      3265, 1996, 3240, 2008, 3247, 3243, 2011, 3244, 2013, 2018,
3672      2018, 2018, 2014, 2018, 2016, 3239, 2018, 2022, 2022, 2022,
3673
3674      2025, 2025, 2025, 2027, 2027, 2027, 2028, 2028, 2028, 3246,
3675      2028, 3262, 1503, 2028, 3265, 2022, 3257, 3240, 2025, 3247,
3676      2027, 3248, 3253, 2016, 2029, 2029, 2029, 2030, 2030, 2030,
3677      3244, 2030, 2011, 1502, 2030, 2014, 2032, 2032, 2032, 3250,
3678      3262, 2029, 2034, 2034, 2034, 2035, 2035, 2035, 2036, 2036,
3679      2036, 2037, 2037, 2037, 2032, 2037, 3248, 3254, 2037, 3253,
3680      2034, 1501, 3257, 2035, 3255, 2036, 2038, 2038, 2038, 2039,
3681      2039, 2039, 3250, 2039, 3256, 3251, 2039, 2040, 2040, 2040,
3682      2045, 2045, 2045, 2038, 3251, 2047, 2047, 2047, 3252, 2047,
3683      3290, 2034, 2047, 3259, 3254, 2040, 3271, 3252, 2045, 2050,
3684
3685      2050, 2050, 2032, 2051, 2051, 2051, 3255, 2052, 2052, 2052,
3686      2035, 2052, 3260, 1500, 2052, 1499, 3256, 2050, 2055, 2055,
3687      2055, 2051, 2061, 2061, 2061, 2062, 2062, 2062, 3263, 2062,
3688      3259, 3264, 2062, 2063, 2063, 2063, 2055, 3263, 3290, 2061,
3689      3264, 3293, 2040, 3271, 1498, 2045, 2064, 2064, 2064, 3260,
3690      2050, 2063, 2069, 2069, 2069, 3293, 2051, 2070, 2070, 2070,
3691      2071, 2071, 2071, 2073, 2073, 2073, 2077, 2077, 2077, 2078,
3692      2078, 2078, 2079, 2079, 2079, 2080, 2080, 2080, 2082, 2082,
3693      2082, 2083, 2083, 2083, 2084, 2084, 2084, 2085, 2085, 2085,
3694      2086, 2086, 2086, 2087, 2087, 2087, 3258, 2063, 2089, 2089,
3695
3696      2089, 2092, 2092, 2092, 1497, 2095, 2095, 2095, 2096, 2096,
3697      2096, 3285, 2096, 3266, 1496, 2096, 2089, 1495, 1493, 2092,
3698      3285, 2080, 2095, 2098, 2098, 2098, 2099, 2099, 2099, 2100,
3699      2100, 2100, 3269, 2100, 1492, 1490, 2100, 2111, 2111, 2111,
3700      3269, 2098, 3258, 2099, 2112, 2112, 2112, 3266, 3270, 2089,
3701      2113, 2113, 2113, 3273, 2113, 2111, 3270, 2113, 2114, 2114,
3702      2114, 2112, 2119, 2119, 2119, 2120, 2120, 2120, 2121, 2121,
3703      2121, 2122, 2122, 2122, 3272, 2122, 3267, 1489, 2122, 2123,
3704      2123, 2123, 2124, 2124, 2124, 2121, 2111, 2125, 2125, 2125,
3705      3273, 2125, 3268, 3283, 2125, 1487, 1484, 2123, 3279, 2124,
3706
3707      2126, 2126, 2126, 3274, 2126, 3275, 3277, 2126, 2129, 2129,
3708      2129, 2120, 3276, 2130, 2130, 2130, 2132, 2132, 2132, 3280,
3709      2132, 3272, 3267, 2132, 1483, 3283, 2129, 2135, 2135, 2135,
3710      2123, 2130, 2142, 2142, 2142, 2144, 2144, 2144, 3268, 2144,
3711      3274, 3277, 2144, 3284, 3279, 2135, 3275, 2150, 2150, 2150,
3712      2142, 2150, 3287, 3276, 2150, 2153, 2153, 2153, 1482, 2129,
3713      2154, 2154, 2154, 3278, 2154, 3280, 3281, 2154, 3282, 2158,
3714      2158, 2158, 2153, 2158, 1481, 3284, 2158, 2161, 2161, 2161,
3715      2135, 2162, 2162, 2162, 3287, 2162, 1480, 2142, 2162, 2165,
3716      2165, 2165, 2166, 2166, 2166, 2161, 2166, 1479, 3278, 2166,
3717
3718      2167, 2167, 2167, 3281, 2167, 3282, 2165, 2167, 2170, 2170,
3719      2170, 2172, 2172, 2172, 1478, 2172, 3286, 1476, 2172, 2178,
3720      2178, 2178, 2180, 2180, 2180, 3286, 2170, 2181, 2181, 2181,
3721      1475, 2181, 1474, 1473, 2181, 1464, 3288, 2178, 1449, 2180,
3722      1448, 2161, 2182, 2182, 2182, 2184, 2184, 2184, 2185, 2185,
3723      2185, 1443, 2185, 1442, 1441, 2185, 3291, 2192, 2192, 2192,
3724      2182, 1439, 2184, 2195, 2195, 2195, 3292, 2195, 3288, 1432,
3725      2195, 2202, 2202, 2202, 2170, 2192, 2198, 2198, 2198, 1431,
3726      2198, 1413, 1408, 2198, 1405, 2204, 2204, 2204, 3291, 2202,
3727      2205, 2205, 2205, 2206, 2206, 2206, 1404, 2206, 3292, 1401,
3728
3729      2206, 1396, 2182, 2204, 1387, 2209, 2209, 2209, 2205, 2209,
3730      1386, 1385, 2209, 2212, 2212, 2212, 1381, 2213, 2213, 2213,
3731      1376, 1372, 2202, 2214, 2214, 2214, 2205, 2215, 2215, 2215,
3732      1364, 2212, 1359, 2212, 2213, 2216, 2216, 2216, 1358, 1352,
3733      2214, 2217, 2217, 2217, 2215, 2219, 2219, 2219, 2220, 2220,
3734      2220, 2204, 2216, 2221, 2221, 2221, 2224, 2224, 2224, 2217,
3735      2225, 2225, 2225, 2219, 2225, 1351, 2220, 2225, 2228, 2228,
3736      2228, 2221, 1350, 1349, 2214, 2229, 2229, 2229, 2230, 2230,
3737      2230, 2231, 2231, 2231, 1344, 1343, 2228, 2234, 2234, 2234,
3738      1342, 2215, 1341, 1328, 2216, 2235, 2235, 2235, 2237, 2237,
3739
3740      2237, 2238, 2238, 2238, 1327, 2219, 2217, 2239, 2239, 2239,
3741      2240, 2240, 2240, 2241, 2241, 2241, 2242, 2242, 2242, 2245,
3742      2245, 2245, 2246, 2246, 2246, 1326, 1325, 2228, 2247, 2247,
3743      2247, 2248, 2248, 2248, 2250, 2250, 2250, 2253, 2253, 2253,
3744      2254, 2254, 2254, 1324, 2254, 1323, 1322, 2254, 2257, 2257,
3745      2257, 1321, 2250, 1320, 2253, 2258, 2258, 2258, 1310, 2260,
3746      2260, 2260, 1309, 2260, 1308, 2257, 2260, 2273, 2273, 2273,
3747      2274, 2274, 2274, 2258, 2274, 2275, 2275, 2274, 2275, 1307,
3748      2276, 2276, 1290, 2276, 1289, 2273, 2275, 1284, 1283, 2275,
3749      1278, 2276, 1277, 2275, 2276, 2277, 2277, 2277, 2276, 2278,
3750
3751      2278, 2278, 2282, 2282, 2282, 2284, 2284, 2284, 1258, 2284,
3752      1254, 1248, 2284, 1244, 2257, 2287, 2287, 2287, 2288, 2288,
3753      2288, 1243, 2288, 1242, 1241, 2288, 1240, 1239, 2273, 2291,
3754      2291, 2291, 1238, 2287, 2292, 2292, 2292, 2300, 2300, 2300,
3755      2301, 2301, 2301, 1236, 2306, 2306, 2306, 2291, 2306, 1235,
3756      1233, 2306, 2292, 2309, 2309, 2309, 1232, 1231, 2301, 1226,
3757      1218, 2287, 2312, 2312, 2312, 2313, 2313, 2313, 1216, 2313,
3758      2309, 1211, 2313, 2316, 2316, 2316, 2321, 2321, 2321, 1209,
3759      2312, 2323, 2323, 2323, 1200, 2292, 2324, 2324, 2324, 1195,
3760      2324, 2316, 1184, 2324, 2321, 2327, 2327, 2327, 2323, 1182,
3761
3762      2301, 2328, 2328, 2328, 2329, 2329, 2329, 1181, 2329, 1180,
3763      1179, 2329, 1177, 2327, 2332, 2332, 2332, 1176, 2328, 2333,
3764      2333, 2333, 2338, 2338, 2338, 2340, 2340, 2340, 2343, 2343,
3765      2343, 2332, 2342, 2342, 2342, 1175, 2333, 1174, 1173, 2338,
3766      2344, 2344, 2344, 1172, 1170, 2343, 2327, 2328, 1169, 1168,
3767      2342, 1167, 2345, 2345, 2345, 2347, 2347, 2347, 2344, 2346,
3768      2346, 2346, 1166, 1165, 2348, 2348, 2348, 1164, 2348, 2332,
3769      2345, 2348, 2347, 2338, 2349, 2349, 2349, 2346, 1162, 1161,
3770      2333, 2350, 2350, 2350, 2351, 2351, 2351, 2352, 2352, 2352,
3771      1160, 2349, 2353, 2353, 2353, 1159, 2346, 1158, 2350, 1157,
3772
3773      2344, 2351, 2354, 2354, 2354, 2352, 2355, 2355, 2355, 2357,
3774      2357, 2357, 1156, 2345, 2360, 2360, 2360, 2362, 2362, 2362,
3775      2354, 2361, 2361, 2361, 2355, 1150, 1149, 2357, 2363, 2363,
3776      2363, 1148, 2350, 1145, 1144, 2351, 2366, 2366, 2366, 2361,
3777      2367, 2367, 2367, 2368, 2368, 2368, 2369, 2369, 2369, 2373,
3778      2373, 2373, 2376, 2376, 2376, 2377, 2377, 2377, 1143, 2377,
3779      1141, 1137, 2377, 2389, 2389, 2389, 1134, 2373, 2354, 2376,
3780      1125, 2357, 2402, 2402, 2402, 2405, 2405, 2405, 2407, 2407,
3781      2407, 2389, 2408, 2408, 2408, 2410, 2410, 2410, 2417, 2417,
3782      2417, 2418, 2418, 2418, 1124, 1121, 2407, 2419, 2419, 2419,
3783
3784      2408, 1120, 1119, 2410, 1118, 2417, 1117, 2425, 2425, 2425,
3785      2426, 2426, 2426, 1103, 2426, 2419, 1096, 2426, 2428, 2428,
3786      2428, 1088, 1087, 2389, 2425, 2429, 2429, 2429, 2431, 2431,
3787      2431, 2435, 2435, 2435, 1086, 2428, 2437, 2437, 2437, 1083,
3788      2439, 2439, 2439, 2429, 2407, 1080, 2431, 1077, 2435, 2440,
3789      2440, 2440, 1072, 2437, 2419, 2438, 2438, 2438, 2439, 2438,
3790      1069, 1068, 2438, 2441, 2441, 2441, 2440, 2441, 1064, 1062,
3791      2441, 2442, 2442, 2442, 2443, 2443, 2443, 2444, 2444, 2444,
3792      2449, 2449, 2449, 2451, 2451, 2451, 1048, 1047, 2442, 1046,
3793      1045, 2443, 1044, 1043, 2444, 1042, 1041, 2449, 2453, 2453,
3794
3795      2453, 2455, 2455, 2455, 2456, 2456, 2456, 1040, 2456, 1036,
3796      1032, 2456, 2457, 2457, 2457, 1025, 2453, 1022, 2455, 2458,
3797      2458, 2458, 1021, 2442, 2459, 2459, 2459, 2460, 2460, 2460,
3798      2457, 2460, 2443, 1020, 2460, 2444, 1017, 2458, 2463, 2463,
3799      2463, 1016, 2459, 2464, 2464, 2464, 1013, 2464, 1012, 1011,
3800      2464, 2465, 2465, 2465, 1008, 2463, 2466, 2466, 2466, 2467,
3801      2467, 2467, 2469, 2469, 2469, 2470, 2470, 2470, 2465, 2474,
3802      2474, 2474, 1007, 2466, 2478, 2478, 2478, 2467, 2482, 2482,
3803      2482, 1004,  999, 2470,  996,  993, 2458, 2474, 2459, 2483,
3804      2483, 2483,  992, 2483,  989, 2482, 2483, 2497, 2497, 2497,
3805
3806      2514, 2514, 2514, 2516, 2516, 2516, 2517, 2517, 2517, 2520,
3807      2520, 2520, 2523, 2523, 2523, 2497, 2524, 2524, 2524,  988,
3808      2524, 2516,  987, 2524, 2517,  986, 2520,  985,  983, 2523,
3809      2525, 2525, 2525, 2529, 2529, 2529, 2531, 2531, 2531,  982,
3810      2531,  981,  980, 2531, 2535, 2535, 2535,  979, 2525,  978,
3811      2529, 2536, 2536, 2536,  977, 2536,  976, 2497, 2536,  972,
3812       967, 2535, 2538, 2538, 2538, 2539, 2539, 2539, 2540, 2540,
3813      2540,  966, 2540,  965, 2516, 2540, 2541, 2541, 2541, 2538,
3814       962,  961, 2539, 2542, 2542, 2542,  960, 2542,  958,  954,
3815      2542,  950,  949, 2541, 2545, 2545, 2545, 2547, 2547, 2547,
3816
3817       946, 2547,  943,  942, 2547, 2550, 2550, 2550, 2551, 2551,
3818      2551,  941, 2545, 2552, 2552, 2552, 2555, 2555, 2555, 2556,
3819      2556, 2556, 2550, 2556,  940, 2551, 2556, 2557, 2557, 2557,
3820      2552,  939,  938, 2555, 2558, 2558, 2558,  937, 2559, 2559,
3821      2559,  935, 2559,  934, 2557, 2559, 2562, 2562, 2562,  933,
3822       932, 2558, 2564, 2564, 2564, 2565, 2565, 2565,  931, 2551,
3823      2550, 2569, 2569, 2569, 2562, 2566, 2566, 2566, 2552, 2566,
3824      2564,  930, 2566, 2565,  929, 2570, 2570, 2570, 2569, 2570,
3825       928,  927, 2570, 2571, 2571, 2571, 2572, 2572, 2572,  926,
3826      2572,  925,  924, 2572, 2573, 2573, 2573, 2579, 2579, 2579,
3827
3828      2571,  923, 2583, 2583, 2583,  922, 2584, 2584, 2584,  921,
3829      2584,  920, 2573, 2584,  919,  918, 2565,  917, 2564, 2583,
3830      2602, 2602, 2602, 2618, 2618, 2618, 2620, 2620, 2620, 2621,
3831      2621, 2621, 2622, 2622, 2622, 2623, 2623, 2623, 2602, 2623,
3832       916,  915, 2623,  911, 2620,  910, 2621,  908,  907, 2622,
3833      2624, 2624, 2624,  906, 2624,  905,  904, 2624, 2627, 2627,
3834      2627, 2631, 2631, 2631, 2632, 2632, 2632,  900, 2634, 2634,
3835      2634, 2602, 2675, 2675, 2675, 2621, 2627,  898, 2631,  897,
3836       896, 2632, 2633, 2633, 2633, 2634, 2633,  895, 2620, 2633,
3837      2636, 2636, 2636,  891, 2636,  887,  886, 2636, 2640, 2640,
3838
3839      2640, 2641, 2641, 2641,  883, 2641,  882,  881, 2641, 2642,
3840      2642, 2642,  880, 2642,  879, 2640, 2642, 2645, 2645, 2645,
3841      2646, 2646, 2646,  878, 2646,  877,  874, 2646, 2647, 2647,
3842      2647, 2648, 2648, 2648, 2645, 2649, 2649, 2649,  873, 2650,
3843      2650, 2650,  872, 2650,  871, 2647, 2650,  868, 2648, 2653,
3844      2653, 2653, 2649, 2654, 2654, 2654,  867, 2654,  866,  863,
3845      2654, 2655, 2655, 2655,  861,  858, 2653, 2656, 2656, 2656,
3846       857, 2656,  856,  855, 2656, 2663, 2663, 2663, 2655, 2664,
3847      2664, 2664,  854,  851, 2649,  850, 2647, 2665, 2665, 2665,
3848       849, 2665,  848, 2663, 2665,  847,  844, 2664, 2668, 2668,
3849
3850      2668,  843, 2668,  842,  841, 2668, 2673, 2673, 2673, 2676,
3851      2676, 2676, 2679, 2679, 2679,  839, 2679,  836,  835, 2679,
3852      2690, 2690, 2690, 2673, 2673,  833, 2663, 2699, 2699, 2699,
3853      2715, 2715, 2715, 2716, 2716, 2716,  830, 2690, 2717, 2717,
3854      2717, 2718, 2718, 2718,  828, 2699, 2664, 2719, 2719, 2719,
3855       825, 2719,  824,  823, 2719,  822, 2717,  820, 2718, 2721,
3856      2721, 2721,  819, 2721,  818,  815, 2721, 2726, 2726, 2726,
3857      2727, 2727, 2727,  814, 2727,  813, 2699, 2727, 2728, 2728,
3858      2728,  812, 2728,  811, 2726, 2728, 2731, 2731, 2731, 2717,
3859      2732, 2732, 2732,  810, 2732,  805,  804, 2732, 2735, 2735,
3860
3861      2735,  803, 2735, 2731,  802, 2735, 2738, 2738, 2738,  801,
3862      2738,  800,  799, 2738, 2741, 2741, 2741, 2742, 2742, 2742,
3863      2743, 2743, 2743,  798, 2743,  797,  796, 2743, 2744, 2744,
3864      2744, 2741,  795,  793, 2742, 2745, 2745, 2745,  791, 2745,
3865       790,  787, 2745,  784,  781, 2744, 2748, 2748, 2748,  780,
3866      2748,  776,  775, 2748, 2757, 2757, 2757, 2758, 2758, 2758,
3867      2764, 2764, 2764,  774,  771, 2741, 2765, 2765, 2765, 2766,
3868      2766, 2766, 2757, 2766,  768, 2758, 2766, 2764, 2764, 2767,
3869      2767, 2767,  767, 2765, 2765,  766,  763, 2766, 2768, 2768,
3870      2768, 2769, 2769, 2769, 2770, 2770, 2770,  762,  758, 2744,
3871
3872      2779, 2779, 2779, 2780, 2780, 2780,  757, 2780,  755,  752,
3873      2780, 2789, 2789, 2789, 2804, 2804, 2804, 2779, 2805, 2805,
3874      2805,  751,  750, 2758, 2806, 2806, 2806,  748,  737, 2789,
3875      2807, 2807, 2807,  735, 2807,  732,  731, 2807,  730, 2813,
3876      2813, 2813, 2806, 2813,  728,  727, 2813, 2816, 2816, 2816,
3877       726, 2816,  722,  721, 2816, 2819, 2819, 2819, 2821, 2821,
3878      2821, 2822, 2822, 2822,  720, 2822,  719,  716, 2822, 2825,
3879      2825, 2825, 2819,  715,  714, 2821,  713, 2789, 2840, 2840,
3880      2840, 2842, 2842, 2842,  712,  711, 2825, 2848, 2848, 2848,
3881      2849, 2849, 2849,  710, 2849,  708, 2840, 2849,  705, 2842,
3882
3883      2853, 2853, 2853,  704, 2848, 2848,  702,  700, 2849, 2850,
3884      2850, 2850,  697, 2850,  696,  690, 2850, 2854, 2854, 2854,
3885      2855, 2855, 2855,  688, 2864, 2864, 2864, 2850, 2864,  686,
3886       683, 2864, 2842, 2851, 2851, 2851, 2851, 2851, 2851, 2851,
3887      2851, 2851,  682,  678, 2851, 2873, 2873, 2873,  677, 2851,
3888      2851, 2851, 2851, 2851, 2884, 2884, 2884, 2885, 2885, 2885,
3889      2890, 2890, 2890, 2873, 2891, 2891, 2891,  676, 2891,  675,
3890       672, 2891, 2893, 2893, 2893, 2885,  671, 2890, 2851, 2851,
3891      2852, 2852, 2852, 2852, 2852, 2852, 2852, 2852, 2852, 2893,
3892       670, 2852, 2895, 2895, 2895,  669, 2852, 2852, 2852, 2852,
3893
3894      2852, 2894, 2894, 2894,  666, 2894,  665,  664, 2894, 2895,
3895      2896, 2896, 2896,  663, 2896,  662,  656, 2896, 2909, 2909,
3896      2909, 2934, 2934, 2934,  655, 2852, 2852, 2915, 2915, 2915,
3897       653, 2915,  647,  646, 2915,  642, 2909,  635,  631, 2934,
3898      2969, 2969, 2969,  625,  621, 2915, 2918, 2918, 2918, 2918,
3899      2918, 2918, 2918, 2918, 2918,  613,  612, 2918, 2969,  611,
3900       610,  609, 2918, 2918, 2918, 2918, 2918, 2947, 2947, 2947,
3901       605, 2947,  598,  597, 2947, 2951, 2951, 2951,  596, 2951,
3902       592,  585, 2951, 2954, 2954, 2954,  584, 2954,  580,  574,
3903      2954, 2918, 2918, 2919, 2919, 2919, 2919, 2919, 2919, 2919,
3904
3905      2919, 2919,  573,  569, 2919, 2981, 2981, 2981,  561, 2919,
3906      2919, 2919, 2919, 2919, 2998, 2998, 2998, 2999, 2999, 2999,
3907      3000, 3000, 3000, 2981, 2981, 3005, 3005, 3005, 3016, 3016,
3908      3016, 2998,  560,  556, 2999,  547,  543, 3000, 2919, 2919,
3909       535,  534, 3005, 3020, 3020, 3020, 3016, 3031, 3031, 3031,
3910      3032, 3032, 3032,  533, 3032,  529,  523, 3032, 3033, 3033,
3911      3033, 3020,  522,  521, 3031, 3034, 3034, 3034,  517, 3034,
3912       511,  510, 3034,  506,  500, 3033, 3035, 3035, 3035, 3036,
3913      3036, 3036,  499, 3036,  498,  497, 3036, 3043, 3043, 3043,
3914      3053, 3053, 3053, 3035, 3020, 3044, 3044, 3044,  496, 3044,
3915
3916       495,  494, 3044,  490, 3043, 3063, 3063, 3063, 3053, 3063,
3917       484,  483, 3063, 3066, 3066, 3066,  481, 3066,  480,  479,
3918      3066, 3069, 3069, 3069,  475, 3069,  465, 3053, 3069, 3078,
3919      3078, 3078,  464, 3078,  462,  458, 3078, 3185, 3185, 3185,
3920      3194, 3194, 3194,  452, 3194,  451,  450, 3194, 3295, 3295,
3921      3295, 3296, 3296, 3296,  446, 3185,  440,  436, 3194,  428,
3922       427,  426,  425,  424,  420,  414, 3295,  413,  409, 3296,
3923      3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3299, 3300,
3924      3300, 3300, 3300, 3300, 3300, 3300, 3300, 3300, 3301, 3301,
3925      3301, 3301, 3301, 3301, 3301, 3301, 3301, 3302, 3302, 3302,
3926
3927      3302, 3302, 3302, 3302, 3302, 3302, 3303, 3303, 3303, 3303,
3928      3303, 3303, 3303, 3303, 3303, 3304, 3304, 3304, 3304, 3304,
3929      3304, 3304, 3304, 3304, 3305, 3305, 3305, 3305, 3305, 3305,
3930      3305, 3305, 3305, 3306, 3306, 3306, 3306, 3306, 3306, 3306,
3931      3306, 3306, 3307, 3307, 3307, 3307, 3307, 3307, 3307, 3307,
3932      3307, 3308, 3308, 3308, 3308, 3308, 3308, 3308, 3308, 3308,
3933      3309, 3309, 3309, 3309, 3309, 3309, 3309, 3309, 3309, 3310,
3934      3310, 3310, 3310, 3310, 3310, 3310, 3310, 3310, 3311, 3311,
3935      3311, 3311, 3311, 3311, 3311, 3311, 3311, 3312, 3312, 3312,
3936      3312, 3312, 3312, 3312, 3312, 3312, 3313, 3313, 3313, 3313,
3937
3938      3313, 3313, 3313, 3313, 3313, 3314, 3314, 3314, 3314, 3314,
3939      3314, 3314, 3314, 3314, 3315, 3315, 3315, 3315, 3315, 3315,
3940      3315, 3315, 3315, 3316, 3316, 3316, 3316, 3316, 3316, 3316,
3941      3316, 3316, 3317, 3317, 3317, 3317, 3317, 3317, 3317, 3317,
3942      3317, 3318, 3318, 3318, 3318, 3318, 3318, 3318, 3318, 3318,
3943      3319, 3319, 3319, 3319, 3319, 3319, 3319, 3319, 3319, 3320,
3944      3320, 3320, 3320, 3320, 3320, 3320, 3320, 3320, 3321, 3321,
3945      3321, 3321, 3321, 3321, 3321, 3321, 3321, 3322, 3322, 3322,
3946      3322, 3322, 3322, 3322, 3322, 3322, 3323, 3323, 3323, 3323,
3947      3323, 3323, 3323, 3323, 3323, 3324, 3324, 3324, 3324, 3324,
3948
3949      3324, 3324, 3324, 3324, 3325, 3325, 3325, 3325, 3325, 3325,
3950      3325, 3325, 3325, 3326, 3326, 3326, 3326, 3326, 3326, 3326,
3951      3326, 3326, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327,
3952      3327, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328,
3953      3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3329, 3330,
3954      3330, 3330, 3330, 3330, 3330, 3330, 3330, 3330, 3331, 3331,
3955      3331, 3331, 3331, 3331, 3331, 3331, 3331, 3332, 3332, 3332,
3956      3332, 3332, 3332, 3332, 3332, 3332, 3333, 3333, 3333, 3333,
3957      3333, 3333, 3333, 3333, 3333, 3334, 3334, 3334, 3334, 3334,
3958      3334, 3334, 3334, 3334, 3335, 3335, 3335, 3335, 3335, 3335,
3959
3960      3335, 3335, 3335, 3336, 3336, 3336, 3336, 3336, 3336, 3336,
3961      3336, 3336, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337,
3962      3337, 3338, 3338, 3338, 3338, 3338, 3338, 3338, 3338, 3338,
3963      3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3339, 3340,
3964      3340, 3340, 3340, 3340, 3340, 3340, 3340, 3340, 3341, 3341,
3965      3341, 3341, 3341, 3341, 3341, 3341, 3341, 3342, 3342, 3342,
3966      3342, 3342, 3342, 3342, 3342, 3342, 3343, 3343, 3343, 3343,
3967      3343, 3343, 3343, 3343, 3343, 3344, 3344, 3344, 3344, 3344,
3968      3344, 3344, 3344, 3344, 3345, 3345, 3345, 3345, 3345, 3345,
3969      3345, 3345, 3345, 3346, 3346, 3346, 3346, 3346, 3346, 3346,
3970
3971      3346, 3346, 3347, 3347, 3347, 3347, 3347, 3347, 3347, 3347,
3972      3347, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348,
3973      3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3350,
3974      3350, 3350, 3350, 3350, 3350, 3350, 3350, 3350, 3351, 3351,
3975      3351, 3351, 3351, 3351, 3351, 3351, 3351, 3352, 3352, 3352,
3976      3352, 3352, 3352, 3352, 3352, 3352, 3353, 3353, 3353, 3353,
3977      3353, 3353, 3353, 3353, 3353, 3354, 3354, 3354, 3354, 3354,
3978      3354, 3354, 3354, 3354, 3355, 3355, 3355, 3355, 3355, 3355,
3979      3355, 3355, 3355, 3356, 3356, 3356, 3356, 3356, 3356, 3356,
3980      3356, 3356, 3357, 3357, 3357, 3357, 3357, 3357, 3357, 3357,
3981
3982      3357, 3358, 3358, 3358, 3358, 3358, 3358, 3358, 3358, 3358,
3983      3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3360,
3984      3360, 3360,  403,  402,  398, 3360, 3361, 3361, 3361,  391,
3985       390,  389, 3361, 3362, 3362, 3362,  385,  378,  377, 3362,
3986      3363, 3363, 3363,  376,  375,  371, 3363, 3364, 3364, 3364,
3987       362,  356,  352, 3364, 3365, 3365, 3365,  351,  347,  341,
3988      3365, 3366, 3366, 3366,  340,  339,  335, 3366, 3367, 3367,
3989      3367,  328,  326,  325, 3367, 3368, 3368, 3368,  321,  318,
3990       316, 3368, 3369, 3369, 3369,  315,  314,  310, 3369, 3370,
3991      3370, 3370,  306,  303,  299, 3370, 3371, 3371, 3371,  296,
3992
3993       295,  287, 3371, 3372, 3372, 3372,  283,  279,  278, 3372,
3994      3373, 3373, 3373,  277,  271,  270, 3373, 3374, 3374, 3374,
3995       268,  265,  253, 3374, 3375, 3375, 3375,    0,    0,    0,
3996      3375, 3376, 3376, 3376,    0,    0,    0, 3376, 3377, 3377,
3997      3377,    0,    0,    0, 3377, 3378, 3378, 3378,    0,    0,
3998         0, 3378, 3379, 3379, 3379,    0,    0,    0, 3379, 3380,
3999      3380, 3380,    0,    0,    0, 3380, 3381, 3381, 3381,    0,
4000         0,    0, 3381, 3382, 3382, 3382,    0,    0,    0, 3382,
4001      3383, 3383, 3383,    0,    0,    0, 3383, 3384, 3384, 3384,
4002         0,    0,    0, 3384, 3385, 3385, 3385,    0,    0,    0,
4003
4004      3385, 3386, 3386, 3386,    0,    0,    0, 3386, 3387, 3387,
4005      3387,    0,    0,    0, 3387, 3388, 3388, 3388, 3388, 3388,
4006      3388, 3388,    0, 3388, 3389, 3389, 3389,    0,    0,    0,
4007      3389, 3390,    0,    0,    0, 3390, 3391, 3391, 3391,    0,
4008         0,    0, 3391, 3392,    0,    0,    0, 3392, 3393, 3393,
4009      3393,    0,    0,    0, 3393, 3394,    0,    0,    0, 3394,
4010      3395, 3395, 3395,    0,    0,    0, 3395, 3396,    0,    0,
4011         0, 3396, 3397, 3397, 3397,    0,    0,    0, 3397, 3398,
4012         0,    0,    0, 3398, 3399, 3399, 3399,    0,    0,    0,
4013      3399, 3400,    0,    0,    0, 3400, 3401, 3401, 3401,    0,
4014
4015         0,    0, 3401, 3402,    0,    0,    0, 3402, 3403, 3403,
4016      3403,    0,    0,    0, 3403, 3404,    0,    0,    0, 3404,
4017      3405, 3405, 3405,    0,    0,    0, 3405, 3406,    0,    0,
4018         0, 3406, 3407, 3407, 3407,    0,    0,    0, 3407, 3408,
4019         0,    0,    0, 3408, 3409, 3409, 3409,    0,    0,    0,
4020      3409, 3410,    0,    0,    0, 3410, 3411, 3411, 3411,    0,
4021         0,    0, 3411, 3412,    0,    0,    0, 3412, 3413, 3413,
4022      3413,    0,    0,    0, 3413, 3414,    0,    0,    0, 3414,
4023      3415, 3415, 3415,    0,    0,    0, 3415, 3416,    0,    0,
4024         0, 3416, 3417, 3417, 3417,    0,    0,    0, 3417, 3418,
4025
4026         0,    0,    0, 3418, 3419, 3419, 3419,    0,    0,    0,
4027      3419, 3420,    0,    0,    0, 3420, 3421, 3421, 3421,    0,
4028         0,    0, 3421, 3422,    0,    0,    0, 3422, 3423, 3423,
4029      3423,    0,    0,    0, 3423, 3424,    0,    0,    0, 3424,
4030      3425, 3425, 3425,    0,    0,    0, 3425, 3426,    0,    0,
4031         0, 3426, 3427, 3427, 3427,    0,    0,    0, 3427, 3428,
4032         0,    0,    0, 3428, 3429, 3429, 3429,    0,    0,    0,
4033      3429, 3430,    0,    0,    0, 3430, 3431, 3431, 3431,    0,
4034         0,    0, 3431, 3432,    0,    0,    0, 3432, 3433, 3433,
4035      3433,    0,    0,    0, 3433, 3434,    0,    0,    0, 3434,
4036
4037      3435, 3435, 3435,    0,    0,    0, 3435, 3436,    0,    0,
4038         0, 3436, 3437, 3437, 3437,    0,    0,    0, 3437, 3438,
4039         0,    0,    0, 3438, 3439, 3439, 3439,    0,    0,    0,
4040      3439, 3440,    0,    0,    0, 3440, 3441, 3441, 3441,    0,
4041         0,    0, 3441, 3442,    0,    0,    0, 3442, 3443, 3443,
4042      3443,    0,    0,    0, 3443, 3444,    0,    0,    0, 3444,
4043      3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3446,
4044         0,    0,    0,    0, 3446, 3447, 3447, 3447,    0,    0,
4045         0, 3447, 3448, 3448, 3448, 3448,    0,    0, 3448, 3448,
4046      3449, 3449, 3449,    0,    0,    0, 3449, 3450, 3450, 3450,
4047
4048      3450,    0,    0, 3450, 3450, 3451, 3451, 3451,    0,    0,
4049         0, 3451, 3452, 3452, 3452, 3452,    0,    0, 3452, 3452,
4050      3453, 3453, 3453,    0,    0,    0, 3453, 3454, 3454, 3454,
4051      3454,    0,    0, 3454, 3454, 3455, 3455, 3455,    0,    0,
4052         0, 3455, 3456, 3456, 3456, 3456,    0,    0, 3456, 3456,
4053      3457, 3457, 3457,    0,    0,    0, 3457, 3458, 3458, 3458,
4054      3458,    0,    0, 3458, 3458, 3459, 3459, 3459,    0,    0,
4055         0, 3459, 3460, 3460, 3460, 3460,    0,    0, 3460, 3460,
4056      3461, 3461, 3461,    0,    0,    0, 3461, 3462, 3462, 3462,
4057      3462,    0,    0, 3462, 3462, 3463, 3463, 3463,    0,    0,
4058
4059         0, 3463, 3464, 3464, 3464, 3464,    0,    0, 3464, 3464,
4060      3465, 3465, 3465,    0,    0,    0, 3465, 3466, 3466, 3466,
4061      3466,    0,    0, 3466, 3466, 3467, 3467, 3467,    0,    0,
4062         0, 3467, 3468, 3468, 3468, 3468,    0,    0, 3468, 3468,
4063      3469, 3469, 3469,    0,    0,    0, 3469, 3470, 3470, 3470,
4064      3470,    0,    0, 3470, 3470, 3471, 3471, 3471,    0,    0,
4065         0, 3471, 3472, 3472, 3472, 3472,    0,    0, 3472, 3472,
4066      3473, 3473, 3473,    0,    0,    0, 3473, 3474, 3474, 3474,
4067      3474,    0,    0, 3474, 3474, 3475, 3475, 3475, 3475,    0,
4068      3475,    0, 3475, 3476, 3476, 3476, 3476,    0,    0, 3476,
4069
4070      3476, 3477, 3477, 3477,    0,    0,    0, 3477, 3478, 3478,
4071      3478, 3478,    0,    0, 3478, 3478, 3479, 3479, 3479,    0,
4072         0,    0, 3479, 3480, 3480, 3480, 3480,    0,    0, 3480,
4073      3480, 3481, 3481, 3481,    0,    0,    0, 3481, 3482, 3482,
4074      3482, 3482,    0,    0, 3482, 3482, 3483, 3483, 3483,    0,
4075         0,    0, 3483, 3484, 3484, 3484, 3484,    0,    0, 3484,
4076      3484, 3485, 3485, 3485, 3485,    0, 3485,    0, 3485, 3486,
4077      3486, 3486, 3486,    0,    0, 3486, 3486, 3487, 3487, 3487,
4078      3487,    0, 3487,    0, 3487, 3488, 3488, 3488, 3488,    0,
4079         0, 3488, 3488, 3489, 3489, 3489,    0,    0,    0, 3489,
4080
4081      3490, 3490, 3490, 3490,    0,    0, 3490, 3490, 3491, 3491,
4082      3491, 3491,    0, 3491,    0, 3491, 3492, 3492, 3492, 3492,
4083         0,    0, 3492, 3492, 3493, 3493, 3493, 3493,    0, 3493,
4084         0, 3493, 3494, 3494, 3494, 3494,    0,    0, 3494, 3494,
4085      3495, 3495, 3495,    0,    0,    0, 3495, 3496, 3496, 3496,
4086      3496,    0,    0, 3496, 3496, 3497, 3497, 3497,    0,    0,
4087         0, 3497, 3498, 3498, 3498, 3498,    0,    0, 3498, 3498,
4088      3499, 3499, 3499, 3499,    0,    0, 3499, 3499, 3500, 3500,
4089      3500,    0,    0,    0, 3500, 3501, 3501, 3501, 3501,    0,
4090         0, 3501, 3501, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4091
4092      3502, 3502, 3503,    0, 3503,    0,    0, 3503, 3504, 3504,
4093      3504,    0,    0,    0, 3504, 3505, 3505, 3505, 3505,    0,
4094         0, 3505, 3505, 3506, 3506, 3506, 3506,    0, 3506,    0,
4095      3506, 3507, 3507, 3507, 3507,    0,    0, 3507, 3507, 3508,
4096      3508, 3508, 3508,    0, 3508,    0, 3508, 3509, 3509, 3509,
4097      3509,    0,    0, 3509, 3509, 3510, 3510, 3510,    0,    0,
4098         0, 3510, 3511, 3511, 3511, 3511,    0,    0, 3511, 3511,
4099      3512, 3512, 3512,    0,    0,    0, 3512, 3513, 3513, 3513,
4100      3513,    0,    0, 3513, 3513, 3514, 3514, 3514,    0,    0,
4101         0, 3514, 3515, 3515, 3515, 3515,    0,    0, 3515, 3515,
4102
4103      3516, 3516, 3516,    0,    0,    0, 3516, 3517, 3517, 3517,
4104      3517,    0,    0, 3517, 3517, 3518, 3518, 3518,    0,    0,
4105         0, 3518, 3519, 3519, 3519, 3519,    0,    0, 3519, 3519,
4106      3520, 3520, 3520, 3520,    0, 3520,    0, 3520, 3521, 3521,
4107      3521, 3521,    0,    0, 3521, 3521, 3522, 3522, 3522, 3522,
4108         0, 3522,    0, 3522, 3523, 3523, 3523, 3523,    0,    0,
4109      3523, 3523, 3524, 3524, 3524,    0,    0,    0, 3524, 3525,
4110      3525, 3525, 3525,    0,    0, 3525, 3525, 3526, 3526, 3526,
4111      3526,    0, 3526,    0, 3526, 3527, 3527, 3527, 3527,    0,
4112         0, 3527, 3527, 3528, 3528, 3528, 3528,    0, 3528,    0,
4113
4114      3528, 3529, 3529, 3529, 3529,    0,    0, 3529, 3529, 3530,
4115      3530, 3530,    0,    0,    0, 3530, 3531, 3531, 3531, 3531,
4116         0,    0, 3531, 3531, 3532, 3532, 3532,    0,    0,    0,
4117      3532, 3533, 3533, 3533, 3533,    0,    0, 3533, 3533, 3534,
4118      3534, 3534,    0,    0,    0, 3534, 3535, 3535, 3535, 3535,
4119         0,    0, 3535, 3535, 3536, 3536, 3536,    0,    0,    0,
4120      3536, 3537, 3537, 3537, 3537,    0,    0, 3537, 3537, 3538,
4121      3538, 3538,    0,    0,    0, 3538, 3539, 3539, 3539, 3539,
4122         0,    0, 3539, 3539, 3540, 3540, 3540,    0,    0,    0,
4123      3540, 3541, 3541, 3541, 3541,    0,    0, 3541, 3541, 3542,
4124
4125      3542, 3542,    0,    0,    0, 3542, 3543, 3543, 3543, 3543,
4126         0,    0, 3543, 3543, 3544, 3544, 3544,    0,    0,    0,
4127      3544, 3545, 3545, 3545, 3545,    0,    0, 3545, 3545, 3546,
4128      3546, 3546,    0,    0,    0, 3546, 3547, 3547, 3547, 3547,
4129         0,    0, 3547, 3547, 3548, 3548, 3548, 3548,    0,    0,
4130      3548, 3548, 3549, 3549, 3549,    0,    0,    0, 3549, 3550,
4131      3550, 3550, 3550,    0,    0, 3550, 3550, 3551, 3551, 3551,
4132         0,    0,    0, 3551, 3552, 3552, 3552, 3552,    0,    0,
4133      3552, 3552, 3553, 3553, 3553,    0,    0,    0, 3553, 3554,
4134      3554, 3554, 3554,    0,    0, 3554, 3554, 3555, 3555, 3555,
4135
4136      3555,    0,    0, 3555, 3555, 3556, 3556, 3556,    0,    0,
4137         0, 3556, 3557, 3557, 3557, 3557,    0,    0, 3557, 3557,
4138      3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3559,
4139      3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3560, 3560,
4140      3560,    0,    0,    0, 3560, 3561, 3561, 3561, 3561,    0,
4141         0, 3561, 3561, 3562, 3562, 3562, 3562,    0,    0, 3562,
4142      3562, 3563, 3563, 3563,    0,    0,    0, 3563, 3564, 3564,
4143      3564, 3564,    0,    0, 3564, 3564, 3565, 3565, 3565,    0,
4144         0,    0, 3565, 3566, 3566, 3566, 3566,    0,    0, 3566,
4145      3566, 3567, 3567, 3567,    0,    0,    0, 3567, 3568, 3568,
4146
4147      3568, 3568,    0,    0, 3568, 3568, 3569, 3569, 3569,    0,
4148         0,    0, 3569, 3570, 3570, 3570,    0,    0,    0, 3570,
4149      3571, 3571, 3571, 3571,    0,    0, 3571, 3571, 3572, 3572,
4150      3572,    0,    0,    0, 3572, 3573, 3573, 3573, 3573,    0,
4151         0, 3573, 3573, 3574, 3574, 3574, 3574,    0,    0, 3574,
4152      3574, 3575, 3575, 3575,    0,    0,    0, 3575, 3576, 3576,
4153      3576, 3576,    0,    0, 3576, 3576, 3577, 3577, 3577,    0,
4154         0,    0, 3577, 3578, 3578, 3578, 3578,    0,    0, 3578,
4155      3578, 3579, 3579, 3579, 3579,    0,    0, 3579, 3579, 3580,
4156      3580, 3580, 3580,    0,    0, 3580, 3580, 3581, 3581, 3581,
4157
4158         0,    0,    0, 3581, 3582, 3582, 3582, 3582,    0,    0,
4159      3582, 3582, 3583, 3583, 3583, 3583,    0, 3583,    0, 3583,
4160      3584, 3584, 3584, 3584,    0,    0, 3584, 3584, 3585, 3585,
4161      3585,    0,    0,    0, 3585, 3586, 3586, 3586, 3586,    0,
4162         0, 3586, 3586, 3587, 3587, 3587,    0,    0,    0, 3587,
4163      3588, 3588, 3588, 3588,    0,    0, 3588, 3588, 3589, 3589,
4164      3589,    0,    0,    0, 3589, 3590, 3590, 3590, 3590,    0,
4165         0, 3590, 3590, 3591, 3591, 3591,    0,    0,    0, 3591,
4166      3592, 3592, 3592, 3592,    0,    0, 3592, 3592, 3593, 3593,
4167      3593,    0,    0,    0, 3593, 3594, 3594, 3594, 3594,    0,
4168
4169         0, 3594, 3594, 3595, 3595, 3595,    0,    0,    0, 3595,
4170      3596, 3596, 3596, 3596,    0,    0, 3596, 3596, 3597, 3597,
4171      3597,    0,    0,    0, 3597, 3598, 3598, 3598, 3598,    0,
4172         0, 3598, 3598, 3599, 3599, 3599, 3599,    0,    0, 3599,
4173      3599, 3600, 3600, 3600,    0,    0,    0, 3600, 3601, 3601,
4174      3601, 3601,    0,    0, 3601, 3601, 3602, 3602, 3602,    0,
4175         0,    0, 3602, 3603, 3603, 3603, 3603,    0,    0, 3603,
4176      3603, 3604, 3604, 3604, 3604,    0, 3604,    0, 3604, 3605,
4177      3605, 3605, 3605,    0,    0, 3605, 3605, 3606, 3606, 3606,
4178      3606,    0,    0, 3606, 3606, 3607, 3607, 3607, 3607,    0,
4179
4180      3607,    0, 3607, 3608, 3608, 3608, 3608,    0,    0, 3608,
4181      3608, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609,
4182      3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3611,
4183      3611, 3611,    0,    0,    0, 3611, 3612, 3612, 3612, 3612,
4184         0,    0, 3612, 3612, 3613, 3613, 3613, 3613,    0,    0,
4185      3613, 3613, 3614, 3614, 3614,    0,    0,    0, 3614, 3615,
4186      3615, 3615, 3615,    0,    0, 3615, 3615, 3616, 3616, 3616,
4187         0,    0,    0, 3616, 3617, 3617, 3617, 3617,    0,    0,
4188      3617, 3617, 3618, 3618, 3618,    0,    0,    0, 3618, 3619,
4189      3619, 3619, 3619,    0,    0, 3619, 3619, 3620, 3620, 3620,
4190
4191         0,    0,    0, 3620, 3621, 3621, 3621,    0,    0,    0,
4192      3621, 3622, 3622, 3622, 3622,    0,    0, 3622, 3622, 3623,
4193      3623, 3623,    0,    0,    0, 3623, 3624, 3624, 3624, 3624,
4194         0,    0, 3624, 3624, 3625, 3625, 3625, 3625,    0,    0,
4195      3625, 3625, 3626, 3626, 3626, 3626,    0, 3626,    0, 3626,
4196      3627, 3627, 3627, 3627,    0,    0, 3627, 3627, 3628, 3628,
4197      3628,    0,    0,    0, 3628, 3629, 3629, 3629, 3629,    0,
4198         0, 3629, 3629, 3630, 3630, 3630, 3630,    0,    0, 3630,
4199      3630, 3631, 3631, 3631,    0,    0,    0, 3631, 3632, 3632,
4200      3632, 3632,    0,    0, 3632, 3632, 3633, 3633, 3633, 3633,
4201
4202         0, 3633,    0, 3633, 3634, 3634, 3634, 3634,    0,    0,
4203      3634, 3634, 3635, 3635, 3635,    0,    0,    0, 3635, 3636,
4204      3636, 3636, 3636,    0,    0, 3636, 3636, 3637, 3637, 3637,
4205         0,    0,    0, 3637, 3638, 3638, 3638, 3638,    0,    0,
4206      3638, 3638, 3639, 3639, 3639,    0,    0,    0, 3639, 3640,
4207      3640, 3640, 3640,    0,    0, 3640, 3640, 3641, 3641, 3641,
4208         0,    0,    0, 3641, 3642, 3642, 3642, 3642,    0,    0,
4209      3642, 3642, 3643, 3643, 3643,    0,    0,    0, 3643, 3644,
4210      3644, 3644, 3644,    0,    0, 3644, 3644, 3645, 3645, 3645,
4211      3645,    0, 3645,    0, 3645, 3646, 3646, 3646, 3646,    0,
4212
4213         0, 3646, 3646, 3647, 3647, 3647,    0,    0,    0, 3647,
4214      3648, 3648, 3648, 3648,    0,    0, 3648, 3648, 3649, 3649,
4215      3649, 3649,    0,    0, 3649, 3649, 3650, 3650, 3650, 3650,
4216         0, 3650,    0, 3650, 3651, 3651, 3651, 3651,    0,    0,
4217      3651, 3651, 3652, 3652, 3652,    0,    0,    0, 3652, 3653,
4218      3653, 3653, 3653,    0,    0, 3653, 3653, 3654, 3654, 3654,
4219      3654,    0,    0, 3654, 3654, 3655, 3655, 3655, 3655,    0,
4220         0, 3655, 3655, 3656, 3656, 3656, 3656,    0,    0, 3656,
4221      3656, 3657, 3657, 3657, 3657, 3657, 3657, 3657, 3657, 3657,
4222      3658, 3658, 3658, 3658, 3658, 3658, 3658, 3658, 3658, 3659,
4223
4224      3659, 3659, 3659,    0, 3659,    0, 3659, 3660, 3660, 3660,
4225      3660,    0,    0, 3660, 3660, 3661, 3661, 3661, 3661,    0,
4226         0, 3661, 3661, 3662, 3662, 3662,    0,    0,    0, 3662,
4227      3663, 3663, 3663, 3663,    0,    0, 3663, 3663, 3664, 3664,
4228      3664,    0,    0,    0, 3664, 3665, 3665, 3665, 3665,    0,
4229         0, 3665, 3665, 3666, 3666, 3666, 3666,    0, 3666,    0,
4230      3666, 3667, 3667, 3667, 3667,    0,    0, 3667, 3667, 3668,
4231      3668, 3668, 3668,    0, 3668,    0, 3668, 3669, 3669, 3669,
4232      3669,    0, 3669,    0, 3669, 3670, 3670, 3670, 3670,    0,
4233         0, 3670, 3670, 3671, 3671, 3671, 3671,    0, 3671,    0,
4234
4235      3671, 3672, 3672, 3672, 3672,    0,    0, 3672, 3672, 3673,
4236      3673, 3673, 3673,    0,    0, 3673, 3673, 3674, 3674, 3674,
4237      3674,    0,    0, 3674, 3674, 3675, 3675, 3675,    0,    0,
4238         0, 3675, 3676, 3676, 3676, 3676,    0,    0, 3676, 3676,
4239      3677, 3677, 3677,    0,    0,    0, 3677, 3678, 3678, 3678,
4240      3678,    0,    0, 3678, 3678, 3679, 3679, 3679, 3679,    0,
4241      3679,    0, 3679, 3680, 3680, 3680, 3680,    0,    0, 3680,
4242      3680, 3681, 3681, 3681,    0,    0,    0, 3681, 3682, 3682,
4243      3682,    0,    0,    0, 3682, 3683, 3683, 3683, 3683,    0,
4244         0, 3683, 3683, 3684, 3684, 3684,    0,    0,    0, 3684,
4245
4246      3685, 3685, 3685, 3685,    0,    0, 3685, 3685, 3686, 3686,
4247      3686,    0,    0,    0, 3686, 3687, 3687, 3687,    0,    0,
4248         0, 3687, 3688, 3688, 3688, 3688,    0,    0, 3688, 3688,
4249      3689, 3689, 3689,    0,    0,    0, 3689, 3690, 3690, 3690,
4250      3690,    0,    0, 3690, 3690, 3691, 3691, 3691,    0,    0,
4251         0, 3691, 3692, 3692, 3692, 3692,    0,    0, 3692, 3692,
4252      3693, 3693, 3693, 3693,    0,    0, 3693, 3693, 3694, 3694,
4253      3694, 3694,    0,    0, 3694, 3694, 3695, 3695, 3695,    0,
4254         0,    0, 3695, 3696, 3696, 3696, 3696,    0,    0, 3696,
4255      3696, 3697, 3697, 3697, 3697,    0,    0, 3697, 3697, 3698,
4256
4257      3698, 3698, 3698,    0,    0, 3698, 3698, 3699, 3699, 3699,
4258      3699, 3699, 3699, 3699, 3699, 3699, 3700, 3700, 3700, 3700,
4259      3700, 3700, 3700, 3700, 3700, 3701, 3701, 3701, 3701,    0,
4260         0, 3701, 3701, 3702, 3702, 3702, 3702,    0,    0, 3702,
4261      3702, 3703, 3703, 3703,    0,    0,    0, 3703, 3704, 3704,
4262      3704,    0,    0,    0, 3704, 3705, 3705, 3705, 3705,    0,
4263         0, 3705, 3705, 3706, 3706, 3706, 3706,    0,    0, 3706,
4264      3706, 3707, 3707, 3707, 3707,    0,    0, 3707, 3707, 3708,
4265      3708, 3708, 3708,    0,    0, 3708, 3708, 3709, 3709, 3709,
4266      3709,    0,    0, 3709, 3709, 3710, 3710, 3710,    0,    0,
4267
4268         0, 3710, 3711, 3711, 3711, 3711,    0,    0, 3711, 3711,
4269      3712, 3712, 3712,    0,    0,    0, 3712, 3713, 3713, 3713,
4270      3713,    0,    0, 3713, 3713, 3714, 3714, 3714, 3714,    0,
4271         0, 3714, 3714, 3715, 3715, 3715,    0,    0,    0, 3715,
4272      3716, 3716, 3716,    0,    0,    0, 3716, 3717, 3717, 3717,
4273      3717,    0,    0, 3717, 3717, 3718, 3718, 3718,    0,    0,
4274         0, 3718, 3719, 3719, 3719, 3719,    0,    0, 3719, 3719,
4275      3720, 3720, 3720,    0,    0,    0, 3720, 3721, 3721, 3721,
4276         0,    0,    0, 3721, 3722, 3722, 3722,    0,    0,    0,
4277      3722, 3723, 3723, 3723, 3723,    0,    0, 3723, 3723, 3724,
4278
4279      3724, 3724,    0,    0,    0, 3724, 3725, 3725, 3725, 3725,
4280         0,    0, 3725, 3725, 3726, 3726, 3726, 3726,    0,    0,
4281      3726, 3726, 3727, 3727, 3727, 3727,    0,    0, 3727, 3727,
4282      3728, 3728, 3728, 3728,    0, 3728,    0, 3728, 3729, 3729,
4283      3729, 3729,    0,    0, 3729, 3729, 3730, 3730, 3730, 3730,
4284         0,    0, 3730, 3730, 3731, 3731, 3731, 3731,    0,    0,
4285      3731, 3731, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732,
4286      3732, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733,
4287      3734, 3734, 3734, 3734,    0,    0, 3734, 3734, 3735, 3735,
4288      3735, 3735,    0,    0, 3735, 3735, 3736, 3736, 3736,    0,
4289
4290         0,    0, 3736, 3737, 3737, 3737, 3737,    0, 3737,    0,
4291      3737, 3738, 3738, 3738, 3738,    0,    0, 3738, 3738, 3739,
4292      3739, 3739, 3739,    0,    0, 3739, 3739, 3740, 3740, 3740,
4293      3740,    0,    0, 3740, 3740, 3741, 3741, 3741, 3741,    0,
4294         0, 3741, 3741, 3742, 3742, 3742,    0,    0,    0, 3742,
4295      3743, 3743, 3743, 3743,    0,    0, 3743, 3743, 3744, 3744,
4296      3744,    0,    0,    0, 3744, 3745, 3745, 3745, 3745,    0,
4297         0, 3745, 3745, 3746, 3746, 3746, 3746,    0,    0, 3746,
4298      3746, 3747, 3747, 3747,    0,    0,    0, 3747, 3748, 3748,
4299      3748,    0,    0,    0, 3748, 3749, 3749, 3749, 3749,    0,
4300
4301      3749,    0, 3749, 3750, 3750, 3750, 3750,    0,    0, 3750,
4302      3750, 3751, 3751, 3751, 3751,    0, 3751,    0, 3751, 3752,
4303      3752, 3752,    0,    0,    0, 3752, 3753, 3753, 3753,    0,
4304         0,    0, 3753, 3754, 3754, 3754, 3754,    0,    0, 3754,
4305      3754, 3755, 3755, 3755, 3755,    0, 3755,    0, 3755, 3756,
4306      3756, 3756, 3756,    0,    0, 3756, 3756, 3757, 3757, 3757,
4307      3757,    0,    0, 3757, 3757, 3758, 3758, 3758, 3758,    0,
4308         0, 3758, 3758, 3759, 3759, 3759, 3759,    0, 3759,    0,
4309      3759, 3760, 3760, 3760, 3760,    0,    0, 3760, 3760, 3761,
4310      3761, 3761, 3761,    0,    0, 3761, 3761, 3762, 3762, 3762,
4311
4312      3762, 3762, 3762, 3762, 3762, 3762, 3763, 3763, 3763, 3763,
4313      3763, 3763, 3763, 3763, 3763, 3764, 3764, 3764, 3764,    0,
4314         0, 3764, 3764, 3765, 3765, 3765,    0,    0,    0, 3765,
4315      3766, 3766, 3766,    0,    0,    0, 3766, 3767, 3767, 3767,
4316      3767,    0,    0, 3767, 3767, 3768, 3768, 3768, 3768,    0,
4317         0, 3768, 3768, 3769, 3769, 3769, 3769,    0,    0, 3769,
4318      3769, 3770, 3770, 3770,    0,    0,    0, 3770, 3771, 3771,
4319      3771, 3771,    0,    0, 3771, 3771, 3772, 3772, 3772,    0,
4320         0,    0, 3772, 3773, 3773, 3773, 3773, 3773, 3773, 3773,
4321      3773, 3773, 3774, 3774, 3774, 3774, 3774, 3774, 3774, 3774,
4322
4323      3774, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775,
4324      3776, 3776, 3776, 3776, 3776, 3776, 3776, 3776, 3776, 3777,
4325      3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3778, 3778,
4326      3778, 3778, 3778, 3778, 3778, 3778, 3778, 3298, 3298, 3298,
4327      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
4328      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
4329      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
4330      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
4331      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
4332      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
4333
4334      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298,
4335      3298, 3298
4336     } ;
4337
4338 /* Table of booleans, true if rule could match eol. */
4339 static yyconst flex_int32_t yy_rule_can_match_eol[565] =
4340     {   0,
4341 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4342     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4343     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4344     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4345     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4346     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4347     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4348     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4349     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4350     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4351     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4352     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4353     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4354     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4355     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4356     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4357     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4358     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4359     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4360     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4361     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4362     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4363     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4364     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4365     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4366     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4367     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4368     1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4369     0, 0, 0, 1, 0,     };
4370
4371 static yy_state_type yy_last_accepting_state;
4372 static char *yy_last_accepting_cpos;
4373
4374 extern int surf_parse__flex_debug;
4375 int surf_parse__flex_debug = 0;
4376
4377 /* The intent behind this definition is that it'll catch
4378  * any uses of REJECT which flex missed.
4379  */
4380 #define REJECT reject_used_but_not_detected
4381 #define yymore() yymore_used_but_not_detected
4382 #define YY_MORE_ADJ 0
4383 #define YY_RESTORE_YY_MORE_OFFSET
4384 char *surf_parse_text;
4385 /* Validating XML processor for src/surf/simgrid.dtd.
4386  *
4387  * This program was generated with the FleXML XML processor generator.
4388  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4389  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4390  * (1.9.6).
4391  * 
4392  * There are two, intertwined parts to this program, part A and part B.
4393  *
4394  * Part A
4395  * ------
4396  * 
4397  * Some parts, here collectively called "Part A", are found in the 
4398  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4399  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4400  *
4401  * You can redistribute, use, perform, display and/or modify "Part A"
4402  * provided the following two conditions hold:
4403  *
4404  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4405  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4406  *    FITNESS FOR A PARTICULAR PURPOSE.
4407  *
4408  * 2. The program distribution conditions do not in any way affect the
4409  *    distribution conditions of the FleXML system used to generate this
4410  *    file or any version of FleXML derived from that system.
4411  *
4412  * Notice that these are explicit rights granted to you for files
4413  * generated by the FleXML system.  For your rights in connection with
4414  * the FleXML system itself please consult the GNU General Public License.
4415  * 
4416  * Part B
4417  * ------
4418  * 
4419  * The other parts, here collectively called "Part B", and which came 
4420  * from the DTD used by FleXML to generate this program, can be 
4421  * distributed (or not, as the case may be) under the terms of whoever
4422  * wrote them, provided these terms respect and obey the two conditions 
4423  * above under the heading "Part A".
4424  *
4425  * The author of and contributors to FleXML specifically disclaim
4426  * any copyright interest in "Part B", unless "Part B" was written 
4427  * by the author of or contributors to FleXML.
4428  * 
4429  */
4430
4431 /* Version strings. */
4432 const char surfxml_flexml_version[] = "1.9.6";
4433
4434 /* ANSI headers. */
4435 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4436 #include <stdio.h>
4437 #include <string.h>
4438 #include <assert.h>
4439 #include <stdarg.h>
4440 #include <ctype.h>
4441      
4442 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4443 # ifndef __STRICT_ANSI__
4444 #  include <io.h>
4445 #  include <process.h>
4446 # endif
4447 #else
4448 # include <unistd.h>
4449 #endif
4450      
4451 #ifndef FLEXML_INDEXSTACKSIZE
4452 #define FLEXML_INDEXSTACKSIZE 1000
4453 #endif
4454
4455 /* Generated definitions. */
4456 #define FLEXML_yylineno
4457 #ifndef FLEXML_BUFFERSTACKSIZE
4458 #define FLEXML_BUFFERSTACKSIZE 1000000
4459 #endif
4460 #define FLEXML_NEED_BUFFERLIT
4461
4462 /* XML processor api. */
4463 /* FleXML-provided data. */
4464 int surfxml_pcdata_ix;
4465 extern char *surfxml_bufferstack;
4466 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4467 AT_surfxml_mount_name AX_surfxml_mount_name;
4468 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4469 short int surfxml_mount_name_isset;
4470 AT_surfxml_random_generator AX_surfxml_random_generator;
4471 #define A_surfxml_random_generator AX_surfxml_random_generator
4472 short int surfxml_random_generator_isset;
4473 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4474 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4475 short int surfxml_ASroute_gw___dst_isset;
4476 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4477 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4478 short int surfxml_trace___connect_element_isset;
4479 AT_surfxml_prop_id AX_surfxml_prop_id;
4480 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4481 short int surfxml_prop_id_isset;
4482 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4483 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4484 short int surfxml_host___link_up_isset;
4485 AT_surfxml_host_id AX_surfxml_host_id;
4486 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4487 short int surfxml_host_id_isset;
4488 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4489 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4490 short int surfxml_ASroute_symmetrical_isset;
4491 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4492 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4493 short int surfxml_peer_lat_isset;
4494 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4495 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4496 short int surfxml_process_on___failure_isset;
4497 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4498 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4499 short int surfxml_link_latency___file_isset;
4500 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4501 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4502 short int surfxml_peer_availability___file_isset;
4503 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4504 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4505 short int surfxml_link___ctn_direction_isset;
4506 AT_surfxml_host_state AX_surfxml_host_state;
4507 #define A_surfxml_host_state AX_surfxml_host_state
4508 short int surfxml_host_state_isset;
4509 AT_surfxml_AS_id AX_surfxml_AS_id;
4510 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4511 short int surfxml_AS_id_isset;
4512 AT_surfxml_host_power AX_surfxml_host_power;
4513 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4514 short int surfxml_host_power_isset;
4515 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4516 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4517 short int surfxml_cabinet_suffix_isset;
4518 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4519 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4520 short int surfxml_gpu_name_isset;
4521 AT_surfxml_router_id AX_surfxml_router_id;
4522 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4523 short int surfxml_router_id_isset;
4524 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4525 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4526 short int surfxml_storage___type_id_isset;
4527 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4528 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4529 short int surfxml_process_start___time_isset;
4530 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4531 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4532 short int surfxml_cabinet_bw_isset;
4533 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4534 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4535 short int surfxml_cluster_suffix_isset;
4536 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4537 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4538 short int surfxml_bypassASroute_dst_isset;
4539 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4540 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4541 short int surfxml_host___link_id_isset;
4542 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4543 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4544 short int surfxml_ASroute_src_isset;
4545 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4546 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4547 short int surfxml_cluster_prefix_isset;
4548 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4549 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4550 short int surfxml_cabinet_prefix_isset;
4551 AT_surfxml_trace_file AX_surfxml_trace_file;
4552 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4553 short int surfxml_trace_file_isset;
4554 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4555 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4556 short int surfxml_link_sharing___policy_isset;
4557 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4558 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4559 short int surfxml_storage_typeId_isset;
4560 AT_surfxml_random_min AX_surfxml_random_min;
4561 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4562 short int surfxml_random_min_isset;
4563 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4564 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4565 short int surfxml_link___ctn_id_isset;
4566 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4567 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4568 short int surfxml_peer_bw___out_isset;
4569 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4570 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4571 short int surfxml_cluster_availability___file_isset;
4572 AT_surfxml_storage_content AX_surfxml_storage_content;
4573 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4574 short int surfxml_storage_content_isset;
4575 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4576 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4577 short int surfxml_process_kill___time_isset;
4578 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4579 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4580 short int surfxml_cluster_bb___bw_isset;
4581 AT_surfxml_argument_value AX_surfxml_argument_value;
4582 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4583 short int surfxml_argument_value_isset;
4584 AT_surfxml_link_state AX_surfxml_link_state;
4585 #define A_surfxml_link_state AX_surfxml_link_state
4586 short int surfxml_link_state_isset;
4587 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4588 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4589 short int surfxml_cluster_loopback___bw_isset;
4590 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4591 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4592 short int surfxml_ASroute_gw___src_isset;
4593 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4594 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4595 short int surfxml_AS_routing_isset;
4596 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4597 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4598 short int surfxml_link_bandwidth_isset;
4599 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4600 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4601 short int surfxml_cluster_id_isset;
4602 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4603 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4604 short int surfxml_peer_bw___in_isset;
4605 AT_surfxml_random_mean AX_surfxml_random_mean;
4606 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4607 short int surfxml_random_mean_isset;
4608 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4609 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4610 short int surfxml_storage___type_size_isset;
4611 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4612 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4613 short int surfxml_cluster_bb___lat_isset;
4614 AT_surfxml_link_latency AX_surfxml_link_latency;
4615 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4616 short int surfxml_link_latency_isset;
4617 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4618 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4619 short int surfxml_backbone_bandwidth_isset;
4620 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4621 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4622 short int surfxml_backbone_id_isset;
4623 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4624 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4625 short int surfxml_trace___connect_kind_isset;
4626 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4627 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4628 short int surfxml_cabinet_lat_isset;
4629 AT_surfxml_random_seed AX_surfxml_random_seed;
4630 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4631 short int surfxml_random_seed_isset;
4632 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4633 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4634 short int surfxml_cluster_state___file_isset;
4635 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4636 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4637 short int surfxml_link_bandwidth___file_isset;
4638 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4639 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4640 short int surfxml_storage___type_content_isset;
4641 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4642 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4643 short int surfxml_route_symmetrical_isset;
4644 AT_surfxml_random_id AX_surfxml_random_id;
4645 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4646 short int surfxml_random_id_isset;
4647 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4648 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4649 short int surfxml_mstorage_name_isset;
4650 AT_surfxml_random_max AX_surfxml_random_max;
4651 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4652 short int surfxml_random_max_isset;
4653 AT_surfxml_link_id AX_surfxml_link_id;
4654 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4655 short int surfxml_link_id_isset;
4656 AT_surfxml_process_host AX_surfxml_process_host;
4657 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4658 short int surfxml_process_host_isset;
4659 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4660 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4661 short int surfxml_cabinet_id_isset;
4662 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4663 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4664 short int surfxml_host_availability___file_isset;
4665 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4666 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4667 short int surfxml_cluster_lat_isset;
4668 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4669 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4670 short int surfxml_router_coordinates_isset;
4671 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4672 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4673 short int surfxml_trace_periodicity_isset;
4674 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4675 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4676 short int surfxml_cluster_bb___sharing___policy_isset;
4677 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4678 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4679 short int surfxml_peer_state___file_isset;
4680 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4681 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4682 short int surfxml_peer_coordinates_isset;
4683 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4684 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4685 short int surfxml_bypassASroute_src_isset;
4686 AT_surfxml_prop_value AX_surfxml_prop_value;
4687 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4688 short int surfxml_prop_value_isset;
4689 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4690 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4691 short int surfxml_mstorage_typeId_isset;
4692 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4693 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4694 short int surfxml_ASroute_dst_isset;
4695 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4696 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4697 short int surfxml_link_state___file_isset;
4698 AT_surfxml_random_radical AX_surfxml_random_radical;
4699 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4700 short int surfxml_random_radical_isset;
4701 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4702 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4703 short int surfxml_bypassASroute_gw___src_isset;
4704 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4705 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4706 short int surfxml_trace___connect_trace_isset;
4707 AT_surfxml_mount_id AX_surfxml_mount_id;
4708 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4709 short int surfxml_mount_id_isset;
4710 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4711 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4712 short int surfxml_cluster_power_isset;
4713 AT_surfxml_process_function AX_surfxml_process_function;
4714 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4715 short int surfxml_process_function_isset;
4716 AT_surfxml_peer_id AX_surfxml_peer_id;
4717 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4718 short int surfxml_peer_id_isset;
4719 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4720 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4721 short int surfxml_cluster_router___id_isset;
4722 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4723 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4724 short int surfxml_cluster_loopback___lat_isset;
4725 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4726 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4727 short int surfxml_cabinet_radical_isset;
4728 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4729 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4730 short int surfxml_cluster_sharing___policy_isset;
4731 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4732 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4733 short int surfxml_bypassRoute_dst_isset;
4734 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4735 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4736 short int surfxml_cabinet_power_isset;
4737 AT_surfxml_host_core AX_surfxml_host_core;
4738 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4739 short int surfxml_host_core_isset;
4740 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4741 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4742 short int surfxml_storage___type_model_isset;
4743 AT_surfxml_host_availability AX_surfxml_host_availability;
4744 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4745 short int surfxml_host_availability_isset;
4746 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4747 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4748 short int surfxml_bypassRoute_src_isset;
4749 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4750 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4751 short int surfxml_backbone_latency_isset;
4752 AT_surfxml_route_src AX_surfxml_route_src;
4753 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4754 short int surfxml_route_src_isset;
4755 AT_surfxml_storage_id AX_surfxml_storage_id;
4756 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4757 short int surfxml_storage_id_isset;
4758 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4759 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4760 short int surfxml_host_coordinates_isset;
4761 AT_surfxml_trace_id AX_surfxml_trace_id;
4762 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4763 short int surfxml_trace_id_isset;
4764 AT_surfxml_peer_power AX_surfxml_peer_power;
4765 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4766 short int surfxml_peer_power_isset;
4767 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4768 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4769 short int surfxml_cluster_radical_isset;
4770 AT_surfxml_config_id AX_surfxml_config_id;
4771 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4772 short int surfxml_config_id_isset;
4773 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4774 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4775 short int surfxml_bypassASroute_gw___dst_isset;
4776 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4777 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4778 short int surfxml_host___link_down_isset;
4779 AT_surfxml_include_file AX_surfxml_include_file;
4780 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4781 short int surfxml_include_file_isset;
4782 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4783 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4784 short int surfxml_random_std___deviation_isset;
4785 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4786 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4787 short int surfxml_cluster_core_isset;
4788 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4789 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4790 short int surfxml_cluster_limiter___link_isset;
4791 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4792 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4793 short int surfxml_host_state___file_isset;
4794 AT_surfxml_route_dst AX_surfxml_route_dst;
4795 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4796 short int surfxml_route_dst_isset;
4797 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4798 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4799 short int surfxml_cluster_bw_isset;
4800 AT_surfxml_platform_version AX_surfxml_platform_version;
4801 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4802 short int surfxml_platform_version_isset;
4803
4804 /* XML state. */
4805 #ifdef FLEX_DEBUG
4806 # define ENTER(state)   debug_enter(state,#state)
4807 # define LEAVE          debug_leave()
4808 # define SET(state)     debug_set(state,#state)
4809   static void debug_enter(int, const char*);
4810   static void debug_leave(void);
4811   static void debug_set(int, const char*);
4812 #else
4813 # define ENTER(state)   (yy_push_state(state))
4814 # define LEAVE          (yy_pop_state())
4815 # define SET(state)     BEGIN(state)
4816 #endif
4817
4818 /* Generic actions. */
4819 #define SKIP    /*skip*/
4820 #define SUCCEED        CLEANUP; return 0
4821
4822 #define FAIL    return fail
4823 static int fail(const char*, ...);
4824
4825 enum {flexml_max_err_msg_size = 512};
4826 static char flexml_err_msg[flexml_max_err_msg_size];
4827 const char * surfxml_parse_err_msg()
4828 {
4829     return flexml_err_msg;
4830 }
4831 static void reset_surfxml_parse_err_msg()
4832 {
4833     flexml_err_msg[0] = '\0';
4834 }
4835
4836 /* Cleanup */
4837 static void cleanup(void);
4838 #define CLEANUP  cleanup()
4839
4840 /* Text buffer stack handling. */
4841 char *surfxml_bufferstack = NULL;
4842 static int blimit = FLEXML_BUFFERSTACKSIZE;
4843 static int bnext = 1;
4844
4845 static int *indexstack = NULL;
4846 static int ilimit = FLEXML_INDEXSTACKSIZE;
4847 static int inext = 1;
4848
4849 #define BUFFERSET(P)  (P = bnext)
4850 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4851 #define BUFFERDONE    (BUFFERPUTC('\0'))
4852
4853 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4854
4855 /* after this is called, there are at least 2 slots left in the stack */
4856 static int ck_blimit()
4857 {
4858      if (bnext >= blimit) {
4859          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4860          {
4861              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4862              assert(temp);
4863              surfxml_bufferstack = temp;
4864          }
4865      }
4866      return 0;
4867 }
4868
4869 /* after this is called, there are at least 2 slots left in the stack */
4870 static int ck_ilimit()
4871 {
4872      if (inext >= ilimit) {
4873          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4874          {
4875              int *temp = (int *) realloc(indexstack, ilimit);
4876              assert(temp);
4877              indexstack = temp;
4878          }
4879      }
4880      return 0;
4881 }
4882
4883 #ifdef FLEXML_NEED_BUFFERLIT
4884 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4885 {
4886    BUFFERSET(*pp);
4887    if (c) {
4888       const char *s = strchr(text, c), *e = strrchr(text, c);
4889       assert(s && e && s <= e);
4890       ++s;
4891       while (s < e) {
4892          if (isspace(*s)) {
4893             BUFFERPUTC(' ');
4894             do ++s; while (s < e && isspace(*s));
4895          } else
4896            BUFFERPUTC(*s++);
4897       }
4898    } else {
4899       const char *s = text;
4900       while (*s)
4901         BUFFERPUTC(*s++);
4902    }
4903    BUFFERDONE;
4904 }
4905 #endif
4906
4907 static void pushbuffer(int p)
4908 {
4909     ck_ilimit();
4910     indexstack[inext++] = p;
4911     indexstack[inext++] = bnext;    
4912 }
4913
4914 static int popbuffer(void)
4915 {
4916     assert(inext >= 2);
4917     bnext = indexstack[--inext];
4918     return indexstack[--inext];
4919 }
4920
4921 /* General internal entities are `unput' back onto the input stream... */
4922 #define ENTITYTEXT(T) \
4923   { char *s = (T), *e = s+strlen(s);\
4924     while (--e >= s) { unput(*e); }}
4925
4926 /* Flex standard options. */
4927 #define YY_NO_INPUT 1
4928 /* Flex user-requested options. */
4929 /* XML character classes (currently restricted to ASCII). */
4930 /* "Common syntactic structures." */
4931 /* "Names and Tokens." */
4932 /* Miscellaneous. */
4933 /* Parser states (flex `exclusive start conditions'):
4934  *
4935  * PROLOG       the XML prolog of the document before <?xml...>
4936  * DOCTYPE      the XML prolog of the document after <?xml...>
4937  * EPILOG       after the root element
4938  * INCOMMENT    inside an XML comment <!--....-->
4939  * INPI         inside an XML PI <?...?>
4940  * VALUE1       inside a '...'-delimited literal
4941  * VALUE2       inside a "..."-delimited literal
4942  * CDATA        inside a <![CDATA[...] ]> section.
4943  * ROOT_<tag>   expect root element <tag>
4944  * AL_<tag>     inside the attribute list for <tag>
4945  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4946  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4947  */
4948
4949 /* State names. */
4950 const char* *surfxml_statenames=NULL;
4951
4952 #define INITIAL 0
4953 #define PROLOG 1
4954 #define DOCTYPE 2
4955 #define EPILOG 3
4956 #define INCOMMENT 4
4957 #define INPI 5
4958 #define VALUE1 6
4959 #define VALUE2 7
4960 #define CDATA 8
4961 #define ROOT_surfxml_platform 9
4962 #define AL_surfxml_platform 10
4963 #define S_surfxml_platform 11
4964 #define S_surfxml_platform_1 12
4965 #define S_surfxml_platform_2 13
4966 #define S_surfxml_platform_3 14
4967 #define S_surfxml_platform_4 15
4968 #define S_surfxml_platform_5 16
4969 #define S_surfxml_platform_6 17
4970 #define S_surfxml_platform_7 18
4971 #define S_surfxml_platform_8 19
4972 #define E_surfxml_platform 20
4973 #define AL_surfxml_include 21
4974 #define S_surfxml_include 22
4975 #define S_surfxml_include_1 23
4976 #define S_surfxml_include_2 24
4977 #define E_surfxml_include 25
4978 #define AL_surfxml_trace 26
4979 #define IN_trace 27
4980 #define AL_surfxml_random 28
4981 #define E_surfxml_random 29
4982 #define AL_surfxml_trace___connect 30
4983 #define E_surfxml_trace___connect 31
4984 #define AL_surfxml_AS 32
4985 #define S_surfxml_AS 33
4986 #define S_surfxml_AS_1 34
4987 #define S_surfxml_AS_2 35
4988 #define S_surfxml_AS_3 36
4989 #define S_surfxml_AS_4 37
4990 #define S_surfxml_AS_5 38
4991 #define S_surfxml_AS_6 39
4992 #define S_surfxml_AS_7 40
4993 #define S_surfxml_AS_8 41
4994 #define S_surfxml_AS_9 42
4995 #define S_surfxml_AS_10 43
4996 #define S_surfxml_AS_11 44
4997 #define S_surfxml_AS_12 45
4998 #define S_surfxml_AS_13 46
4999 #define S_surfxml_AS_14 47
5000 #define S_surfxml_AS_15 48
5001 #define S_surfxml_AS_16 49
5002 #define E_surfxml_AS 50
5003 #define AL_surfxml_storage___type 51
5004 #define S_surfxml_storage___type 52
5005 #define S_surfxml_storage___type_1 53
5006 #define S_surfxml_storage___type_2 54
5007 #define E_surfxml_storage___type 55
5008 #define AL_surfxml_storage 56
5009 #define S_surfxml_storage 57
5010 #define S_surfxml_storage_1 58
5011 #define S_surfxml_storage_2 59
5012 #define E_surfxml_storage 60
5013 #define AL_surfxml_mount 61
5014 #define E_surfxml_mount 62
5015 #define AL_surfxml_mstorage 63
5016 #define E_surfxml_mstorage 64
5017 #define AL_surfxml_host 65
5018 #define S_surfxml_host 66
5019 #define S_surfxml_host_1 67
5020 #define S_surfxml_host_2 68
5021 #define E_surfxml_host 69
5022 #define AL_surfxml_gpu 70
5023 #define E_surfxml_gpu 71
5024 #define AL_surfxml_host___link 72
5025 #define E_surfxml_host___link 73
5026 #define AL_surfxml_cluster 74
5027 #define E_surfxml_cluster 75
5028 #define AL_surfxml_cabinet 76
5029 #define E_surfxml_cabinet 77
5030 #define AL_surfxml_peer 78
5031 #define E_surfxml_peer 79
5032 #define AL_surfxml_router 80
5033 #define E_surfxml_router 81
5034 #define AL_surfxml_backbone 82
5035 #define E_surfxml_backbone 83
5036 #define AL_surfxml_link 84
5037 #define S_surfxml_link 85
5038 #define S_surfxml_link_1 86
5039 #define S_surfxml_link_2 87
5040 #define E_surfxml_link 88
5041 #define AL_surfxml_route 89
5042 #define S_surfxml_route 90
5043 #define S_surfxml_route_1 91
5044 #define S_surfxml_route_2 92
5045 #define E_surfxml_route 93
5046 #define AL_surfxml_ASroute 94
5047 #define S_surfxml_ASroute 95
5048 #define S_surfxml_ASroute_1 96
5049 #define S_surfxml_ASroute_2 97
5050 #define E_surfxml_ASroute 98
5051 #define AL_surfxml_link___ctn 99
5052 #define E_surfxml_link___ctn 100
5053 #define AL_surfxml_bypassRoute 101
5054 #define S_surfxml_bypassRoute 102
5055 #define S_surfxml_bypassRoute_1 103
5056 #define S_surfxml_bypassRoute_2 104
5057 #define E_surfxml_bypassRoute 105
5058 #define AL_surfxml_bypassASroute 106
5059 #define S_surfxml_bypassASroute 107
5060 #define S_surfxml_bypassASroute_1 108
5061 #define S_surfxml_bypassASroute_2 109
5062 #define E_surfxml_bypassASroute 110
5063 #define AL_surfxml_process 111
5064 #define S_surfxml_process 112
5065 #define S_surfxml_process_1 113
5066 #define S_surfxml_process_2 114
5067 #define E_surfxml_process 115
5068 #define AL_surfxml_argument 116
5069 #define E_surfxml_argument 117
5070 #define AL_surfxml_config 118
5071 #define S_surfxml_config 119
5072 #define S_surfxml_config_1 120
5073 #define S_surfxml_config_2 121
5074 #define E_surfxml_config 122
5075 #define AL_surfxml_prop 123
5076 #define E_surfxml_prop 124
5077 #define IMPOSSIBLE 125
5078
5079 #ifndef YY_NO_UNISTD_H
5080 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5081  * down here because we want the user's section 1 to have been scanned first.
5082  * The user has a chance to override it with an option.
5083  */
5084 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5085 #  ifndef __STRICT_ANSI__
5086 #    include <io.h>
5087 #    include <process.h>
5088 #  endif
5089 #else
5090 #  include <unistd.h>
5091 #endif
5092 #endif
5093
5094 #ifndef YY_EXTRA_TYPE
5095 #define YY_EXTRA_TYPE void *
5096 #endif
5097
5098 static int yy_init_globals (void );
5099
5100 /* Accessor methods to globals.
5101    These are made visible to non-reentrant scanners for convenience. */
5102
5103 int surf_parse_lex_destroy (void );
5104
5105 int surf_parse_get_debug (void );
5106
5107 void surf_parse_set_debug (int debug_flag  );
5108
5109 YY_EXTRA_TYPE surf_parse_get_extra (void );
5110
5111 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5112
5113 FILE *surf_parse_get_in (void );
5114
5115 void surf_parse_set_in  (FILE * in_str  );
5116
5117 FILE *surf_parse_get_out (void );
5118
5119 void surf_parse_set_out  (FILE * out_str  );
5120
5121 int surf_parse_get_leng (void );
5122
5123 char *surf_parse_get_text (void );
5124
5125 int surf_parse_get_lineno (void );
5126
5127 void surf_parse_set_lineno (int line_number  );
5128
5129 /* Macros after this point can all be overridden by user definitions in
5130  * section 1.
5131  */
5132
5133 #ifndef YY_SKIP_YYWRAP
5134 #ifdef __cplusplus
5135 extern "C" int surf_parse_wrap (void );
5136 #else
5137 extern int surf_parse_wrap (void );
5138 #endif
5139 #endif
5140
5141 #ifndef yytext_ptr
5142 static void yy_flex_strncpy (char *,yyconst char *,int );
5143 #endif
5144
5145 #ifdef YY_NEED_STRLEN
5146 static int yy_flex_strlen (yyconst char * );
5147 #endif
5148
5149 #ifndef YY_NO_INPUT
5150
5151 #ifdef __cplusplus
5152 static int yyinput (void );
5153 #else
5154 static int input (void );
5155 #endif
5156
5157 #endif
5158
5159         static int yy_start_stack_ptr = 0;
5160         static int yy_start_stack_depth = 0;
5161         static int *yy_start_stack = NULL;
5162     
5163     static void yy_push_state (int new_state );
5164     
5165     static void yy_pop_state (void );
5166     
5167 /* Amount of stuff to slurp up with each read. */
5168 #ifndef YY_READ_BUF_SIZE
5169 #ifdef __ia64__
5170 /* On IA-64, the buffer size is 16k, not 8k */
5171 #define YY_READ_BUF_SIZE 16384
5172 #else
5173 #define YY_READ_BUF_SIZE 8192
5174 #endif /* __ia64__ */
5175 #endif
5176
5177 /* Copy whatever the last rule matched to the standard output. */
5178 #ifndef ECHO
5179 /* This used to be an fputs(), but since the string might contain NUL's,
5180  * we now use fwrite().
5181  */
5182 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5183 #endif
5184
5185 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5186  * is returned in "result".
5187  */
5188 #ifndef YY_INPUT
5189 #define YY_INPUT(buf,result,max_size) \
5190         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5191                 { \
5192                 int c = '*'; \
5193                 size_t n; \
5194                 for ( n = 0; n < max_size && \
5195                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5196                         buf[n] = (char) c; \
5197                 if ( c == '\n' ) \
5198                         buf[n++] = (char) c; \
5199                 if ( c == EOF && ferror( surf_parse_in ) ) \
5200                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5201                 result = n; \
5202                 } \
5203         else \
5204                 { \
5205                 errno=0; \
5206                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5207                         { \
5208                         if( errno != EINTR) \
5209                                 { \
5210                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5211                                 break; \
5212                                 } \
5213                         errno=0; \
5214                         clearerr(surf_parse_in); \
5215                         } \
5216                 }\
5217 \
5218
5219 #endif
5220
5221 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5222  * we don't want an extra ';' after the "return" because that will cause
5223  * some compilers to complain about unreachable statements.
5224  */
5225 #ifndef yyterminate
5226 #define yyterminate() return YY_NULL
5227 #endif
5228
5229 /* Number of entries by which start-condition stack grows. */
5230 #ifndef YY_START_STACK_INCR
5231 #define YY_START_STACK_INCR 25
5232 #endif
5233
5234 /* Report a fatal error. */
5235 #ifndef YY_FATAL_ERROR
5236 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5237 #endif
5238
5239 /* end tables serialization structures and prototypes */
5240
5241 /* Default declaration of generated scanner - a define so the user can
5242  * easily add parameters.
5243  */
5244 #ifndef YY_DECL
5245 #define YY_DECL_IS_OURS 1
5246
5247 extern int surf_parse_lex (void);
5248
5249 #define YY_DECL int surf_parse_lex (void)
5250 #endif /* !YY_DECL */
5251
5252 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5253  * have been set up.
5254  */
5255 #ifndef YY_USER_ACTION
5256 #define YY_USER_ACTION
5257 #endif
5258
5259 /* Code executed at the end of each rule. */
5260 #ifndef YY_BREAK
5261 #define YY_BREAK break;
5262 #endif
5263
5264 #define YY_RULE_SETUP \
5265         YY_USER_ACTION
5266
5267 /** The main scanner function which does all the work.
5268  */
5269 YY_DECL
5270 {
5271         register yy_state_type yy_current_state;
5272         register char *yy_cp, *yy_bp;
5273         register int yy_act;
5274     
5275  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5276  SET(PROLOG);
5277  reset_surfxml_parse_err_msg();
5278  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5279  assert(surfxml_bufferstack);
5280  #ifdef FLEX_DEBUG
5281  {
5282      int i;
5283      for (i = 0; i < blimit; i++) {
5284          surfxml_bufferstack[i] = '\377';
5285      }
5286  }
5287  #endif
5288  surfxml_bufferstack[0] = '\0';
5289  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5290  assert(indexstack);
5291  indexstack[0] = 0;
5292
5293   /* FleXML_init */
5294   bnext = inext = 1;
5295   surfxml_bufferliteral('\0', &bnext, "0.0");
5296   surfxml_bufferliteral('\0', &bnext, "2147483647");
5297   surfxml_bufferliteral('\0', &bnext, "1");
5298   surfxml_bufferliteral('\0', &bnext, "1.0");
5299   surfxml_bufferliteral('\0', &bnext, "1");
5300   surfxml_bufferliteral('\0', &bnext, "0.0");
5301   surfxml_bufferliteral('\0', &bnext, "-1.0");
5302   surfxml_bufferliteral('\0', &bnext, "-1.0");
5303   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5304   surfxml_statenames[PROLOG] = NULL;
5305   surfxml_statenames[DOCTYPE] = NULL;
5306   surfxml_statenames[EPILOG] = NULL;
5307   surfxml_statenames[INCOMMENT] = NULL;
5308   surfxml_statenames[INPI] = NULL;
5309   surfxml_statenames[VALUE1] = NULL;
5310   surfxml_statenames[VALUE2] = NULL;
5311   surfxml_statenames[CDATA] = NULL;
5312   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5313   surfxml_statenames[AL_surfxml_platform] = NULL;
5314   surfxml_statenames[S_surfxml_platform] = "platform";
5315   surfxml_statenames[S_surfxml_platform_1] = "platform";
5316   surfxml_statenames[S_surfxml_platform_2] = "platform";
5317   surfxml_statenames[S_surfxml_platform_3] = "platform";
5318   surfxml_statenames[S_surfxml_platform_4] = "platform";
5319   surfxml_statenames[S_surfxml_platform_5] = "platform";
5320   surfxml_statenames[S_surfxml_platform_6] = "platform";
5321   surfxml_statenames[S_surfxml_platform_7] = "platform";
5322   surfxml_statenames[S_surfxml_platform_8] = "platform";
5323   surfxml_statenames[E_surfxml_platform] = "platform";
5324   surfxml_statenames[AL_surfxml_include] = NULL;
5325   surfxml_statenames[S_surfxml_include] = "include";
5326   surfxml_statenames[S_surfxml_include_1] = "include";
5327   surfxml_statenames[S_surfxml_include_2] = "include";
5328   surfxml_statenames[E_surfxml_include] = "include";
5329   surfxml_statenames[AL_surfxml_trace] = NULL;
5330   surfxml_statenames[IN_trace] = "trace";
5331   surfxml_statenames[AL_surfxml_random] = NULL;
5332   surfxml_statenames[E_surfxml_random] = "random";
5333   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5334   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5335   surfxml_statenames[AL_surfxml_AS] = NULL;
5336   surfxml_statenames[S_surfxml_AS] = "AS";
5337   surfxml_statenames[S_surfxml_AS_1] = "AS";
5338   surfxml_statenames[S_surfxml_AS_2] = "AS";
5339   surfxml_statenames[S_surfxml_AS_3] = "AS";
5340   surfxml_statenames[S_surfxml_AS_4] = "AS";
5341   surfxml_statenames[S_surfxml_AS_5] = "AS";
5342   surfxml_statenames[S_surfxml_AS_6] = "AS";
5343   surfxml_statenames[S_surfxml_AS_7] = "AS";
5344   surfxml_statenames[S_surfxml_AS_8] = "AS";
5345   surfxml_statenames[S_surfxml_AS_9] = "AS";
5346   surfxml_statenames[S_surfxml_AS_10] = "AS";
5347   surfxml_statenames[S_surfxml_AS_11] = "AS";
5348   surfxml_statenames[S_surfxml_AS_12] = "AS";
5349   surfxml_statenames[S_surfxml_AS_13] = "AS";
5350   surfxml_statenames[S_surfxml_AS_14] = "AS";
5351   surfxml_statenames[S_surfxml_AS_15] = "AS";
5352   surfxml_statenames[S_surfxml_AS_16] = "AS";
5353   surfxml_statenames[E_surfxml_AS] = "AS";
5354   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5355   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5356   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5357   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5358   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5359   surfxml_statenames[AL_surfxml_storage] = NULL;
5360   surfxml_statenames[S_surfxml_storage] = "storage";
5361   surfxml_statenames[S_surfxml_storage_1] = "storage";
5362   surfxml_statenames[S_surfxml_storage_2] = "storage";
5363   surfxml_statenames[E_surfxml_storage] = "storage";
5364   surfxml_statenames[AL_surfxml_mount] = NULL;
5365   surfxml_statenames[E_surfxml_mount] = "mount";
5366   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5367   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5368   surfxml_statenames[AL_surfxml_host] = NULL;
5369   surfxml_statenames[S_surfxml_host] = "host";
5370   surfxml_statenames[S_surfxml_host_1] = "host";
5371   surfxml_statenames[S_surfxml_host_2] = "host";
5372   surfxml_statenames[E_surfxml_host] = "host";
5373   surfxml_statenames[AL_surfxml_gpu] = NULL;
5374   surfxml_statenames[E_surfxml_gpu] = "gpu";
5375   surfxml_statenames[AL_surfxml_host___link] = NULL;
5376   surfxml_statenames[E_surfxml_host___link] = "host_link";
5377   surfxml_statenames[AL_surfxml_cluster] = NULL;
5378   surfxml_statenames[E_surfxml_cluster] = "cluster";
5379   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5380   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5381   surfxml_statenames[AL_surfxml_peer] = NULL;
5382   surfxml_statenames[E_surfxml_peer] = "peer";
5383   surfxml_statenames[AL_surfxml_router] = NULL;
5384   surfxml_statenames[E_surfxml_router] = "router";
5385   surfxml_statenames[AL_surfxml_backbone] = NULL;
5386   surfxml_statenames[E_surfxml_backbone] = "backbone";
5387   surfxml_statenames[AL_surfxml_link] = NULL;
5388   surfxml_statenames[S_surfxml_link] = "link";
5389   surfxml_statenames[S_surfxml_link_1] = "link";
5390   surfxml_statenames[S_surfxml_link_2] = "link";
5391   surfxml_statenames[E_surfxml_link] = "link";
5392   surfxml_statenames[AL_surfxml_route] = NULL;
5393   surfxml_statenames[S_surfxml_route] = "route";
5394   surfxml_statenames[S_surfxml_route_1] = "route";
5395   surfxml_statenames[S_surfxml_route_2] = "route";
5396   surfxml_statenames[E_surfxml_route] = "route";
5397   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5398   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5399   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5400   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5401   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5402   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5403   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5404   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5405   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5406   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5407   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5408   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5409   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5410   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5411   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5412   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5413   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5414   surfxml_statenames[AL_surfxml_process] = NULL;
5415   surfxml_statenames[S_surfxml_process] = "process";
5416   surfxml_statenames[S_surfxml_process_1] = "process";
5417   surfxml_statenames[S_surfxml_process_2] = "process";
5418   surfxml_statenames[E_surfxml_process] = "process";
5419   surfxml_statenames[AL_surfxml_argument] = NULL;
5420   surfxml_statenames[E_surfxml_argument] = "argument";
5421   surfxml_statenames[AL_surfxml_config] = NULL;
5422   surfxml_statenames[S_surfxml_config] = "config";
5423   surfxml_statenames[S_surfxml_config_1] = "config";
5424   surfxml_statenames[S_surfxml_config_2] = "config";
5425   surfxml_statenames[E_surfxml_config] = "config";
5426   surfxml_statenames[AL_surfxml_prop] = NULL;
5427   surfxml_statenames[E_surfxml_prop] = "prop";
5428   }
5429
5430  /* COMMENTS and PIs: handled uniformly for efficiency. */
5431
5432         if ( !(yy_init) )
5433                 {
5434                 (yy_init) = 1;
5435
5436 #ifdef YY_USER_INIT
5437                 YY_USER_INIT;
5438 #endif
5439
5440                 if ( ! (yy_start) )
5441                         (yy_start) = 1; /* first start state */
5442
5443                 if ( ! surf_parse_in )
5444                         surf_parse_in = stdin;
5445
5446                 if ( ! surf_parse_out )
5447                         surf_parse_out = stdout;
5448
5449                 if ( ! YY_CURRENT_BUFFER ) {
5450                         surf_parse_ensure_buffer_stack ();
5451                         YY_CURRENT_BUFFER_LVALUE =
5452                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5453                 }
5454
5455                 surf_parse__load_buffer_state( );
5456                 }
5457
5458         while ( 1 )             /* loops until end-of-file is reached */
5459                 {
5460                 yy_cp = (yy_c_buf_p);
5461
5462                 /* Support of surf_parse_text. */
5463                 *yy_cp = (yy_hold_char);
5464
5465                 /* yy_bp points to the position in yy_ch_buf of the start of
5466                  * the current run.
5467                  */
5468                 yy_bp = yy_cp;
5469
5470                 yy_current_state = (yy_start);
5471 yy_match:
5472                 do
5473                         {
5474                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5475                         if ( yy_accept[yy_current_state] )
5476                                 {
5477                                 (yy_last_accepting_state) = yy_current_state;
5478                                 (yy_last_accepting_cpos) = yy_cp;
5479                                 }
5480                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5481                                 {
5482                                 yy_current_state = (int) yy_def[yy_current_state];
5483                                 if ( yy_current_state >= 3299 )
5484                                         yy_c = yy_meta[(unsigned int) yy_c];
5485                                 }
5486                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5487                         ++yy_cp;
5488                         }
5489                 while ( yy_base[yy_current_state] != 12038 );
5490
5491 yy_find_action:
5492                 yy_act = yy_accept[yy_current_state];
5493                 if ( yy_act == 0 )
5494                         { /* have to back up */
5495                         yy_cp = (yy_last_accepting_cpos);
5496                         yy_current_state = (yy_last_accepting_state);
5497                         yy_act = yy_accept[yy_current_state];
5498                         }
5499
5500                 YY_DO_BEFORE_ACTION;
5501
5502                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5503                         {
5504                         int yyl;
5505                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5506                                 if ( surf_parse_text[yyl] == '\n' )
5507                                            
5508     surf_parse_lineno++;
5509 ;
5510                         }
5511
5512 do_action:      /* This label is used only to access EOF actions. */
5513
5514                 switch ( yy_act )
5515         { /* beginning of action switch */
5516                         case 0: /* must back up */
5517                         /* undo the effects of YY_DO_BEFORE_ACTION */
5518                         *yy_cp = (yy_hold_char);
5519                         yy_cp = (yy_last_accepting_cpos);
5520                         yy_current_state = (yy_last_accepting_state);
5521                         goto yy_find_action;
5522
5523 case 1:
5524 YY_RULE_SETUP
5525 ENTER(INCOMMENT);
5526         YY_BREAK
5527 case 2:
5528 YY_RULE_SETUP
5529 ENTER(INPI);
5530         YY_BREAK
5531
5532 case 3:
5533 YY_RULE_SETUP
5534 LEAVE;
5535         YY_BREAK
5536 case 4:
5537 case 5:
5538 case 6:
5539 /* rule 6 can match eol */
5540 YY_RULE_SETUP
5541 SKIP;
5542         YY_BREAK
5543 case YY_STATE_EOF(INCOMMENT):
5544 FAIL("EOF in comment.");
5545         YY_BREAK
5546
5547 case 7:
5548 YY_RULE_SETUP
5549 LEAVE;
5550         YY_BREAK
5551 case 8:
5552 case 9:
5553 /* rule 9 can match eol */
5554 YY_RULE_SETUP
5555 SKIP;
5556         YY_BREAK
5557 case YY_STATE_EOF(INPI):
5558 FAIL("EOF in PI (processing instruction).");
5559         YY_BREAK
5560
5561 /* SPACES: skipped uniformly */
5562 case 10:
5563 /* rule 10 can match eol */
5564 YY_RULE_SETUP
5565 SKIP;
5566         YY_BREAK
5567 /* PROLOG: determine root element and process it. */
5568
5569 case 11:
5570 /* rule 11 can match eol */
5571 YY_RULE_SETUP
5572 SET(DOCTYPE); 
5573         YY_BREAK
5574 case 12:
5575 /* rule 12 can match eol */
5576 YY_RULE_SETUP
5577 FAIL("Bad declaration %s.",surf_parse_text);
5578         YY_BREAK
5579
5580 case 13:
5581 /* rule 13 can match eol */
5582 YY_RULE_SETUP
5583 SET(ROOT_surfxml_platform);
5584         YY_BREAK
5585 case 14:
5586 /* rule 14 can match eol */
5587 YY_RULE_SETUP
5588 FAIL("Bad declaration %s.",surf_parse_text);
5589         YY_BREAK
5590 case 15:
5591 YY_RULE_SETUP
5592 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5593         YY_BREAK
5594 case YY_STATE_EOF(PROLOG):
5595 case YY_STATE_EOF(DOCTYPE):
5596 FAIL("EOF in prolog.");
5597         YY_BREAK
5598
5599 /* RULES DERIVED FROM DTD. */
5600 /* <!-- Small DTD for SURF based tools. -->  */
5601 case 16:
5602 /* rule 16 can match eol */
5603 YY_RULE_SETUP
5604 FAIL("Starting tag <platform> is not allowed here.");
5605         YY_BREAK
5606 case 17:
5607 /* rule 17 can match eol */
5608 YY_RULE_SETUP
5609 {
5610   AX_surfxml_platform_version = 1;
5611   surfxml_platform_version_isset = 0;
5612   ENTER(AL_surfxml_platform); pushbuffer(0);
5613   }
5614         YY_BREAK
5615
5616 case 18:
5617 /* rule 18 can match eol */
5618 YY_RULE_SETUP
5619 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);
5620         YY_BREAK
5621 case 19:
5622 /* rule 19 can match eol */
5623 YY_RULE_SETUP
5624 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);
5625         YY_BREAK
5626 case 20:
5627 YY_RULE_SETUP
5628 {
5629   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5630  }
5631         YY_BREAK
5632 case 21:
5633 YY_RULE_SETUP
5634 {
5635   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5636   switch (YY_START) {
5637    case ROOT_surfxml_platform: SET(EPILOG); break;
5638   }
5639  }
5640         YY_BREAK
5641 case 22:
5642 YY_RULE_SETUP
5643 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5644         YY_BREAK
5645 case 23:
5646 YY_RULE_SETUP
5647 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5648         YY_BREAK
5649 case YY_STATE_EOF(AL_surfxml_platform):
5650 FAIL("EOF in attribute list of `platform' element.");
5651         YY_BREAK
5652
5653 case 24:
5654 /* rule 24 can match eol */
5655 YY_RULE_SETUP
5656 {
5657   LEAVE;
5658   ETag_surfxml_platform();
5659   popbuffer(); /* attribute */
5660   switch (YY_START) {
5661    case ROOT_surfxml_platform: SET(EPILOG); break;
5662   }
5663  }
5664         YY_BREAK
5665 case 25:
5666 /* rule 25 can match eol */
5667 YY_RULE_SETUP
5668 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5669         YY_BREAK
5670 case 26:
5671 YY_RULE_SETUP
5672 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5673         YY_BREAK
5674 case YY_STATE_EOF(S_surfxml_platform_8):
5675 case YY_STATE_EOF(S_surfxml_platform_1):
5676 case YY_STATE_EOF(S_surfxml_platform_3):
5677 case YY_STATE_EOF(S_surfxml_platform):
5678 case YY_STATE_EOF(S_surfxml_platform_4):
5679 case YY_STATE_EOF(S_surfxml_platform_6):
5680 case YY_STATE_EOF(E_surfxml_platform):
5681 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5682         YY_BREAK
5683
5684 case 27:
5685 /* rule 27 can match eol */
5686 YY_RULE_SETUP
5687 FAIL("Starting tag <include> is not allowed here.");
5688         YY_BREAK
5689 case 28:
5690 /* rule 28 can match eol */
5691 YY_RULE_SETUP
5692 {
5693   AX_surfxml_include_file = 0;
5694   surfxml_include_file_isset = 0;
5695   ENTER(AL_surfxml_include); pushbuffer(0);
5696   }
5697         YY_BREAK
5698
5699 case 29:
5700 /* rule 29 can match eol */
5701 YY_RULE_SETUP
5702 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);
5703         YY_BREAK
5704 case 30:
5705 /* rule 30 can match eol */
5706 YY_RULE_SETUP
5707 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);
5708         YY_BREAK
5709 case 31:
5710 YY_RULE_SETUP
5711 {
5712   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5713   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5714  }
5715         YY_BREAK
5716 case 32:
5717 YY_RULE_SETUP
5718 {
5719   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5720   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5721   switch (YY_START) {
5722    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5723    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;
5724    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5725    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5726   }
5727  }
5728         YY_BREAK
5729 case 33:
5730 YY_RULE_SETUP
5731 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5732         YY_BREAK
5733 case 34:
5734 YY_RULE_SETUP
5735 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5736         YY_BREAK
5737 case YY_STATE_EOF(AL_surfxml_include):
5738 FAIL("EOF in attribute list of `include' element.");
5739         YY_BREAK
5740
5741 case 35:
5742 /* rule 35 can match eol */
5743 YY_RULE_SETUP
5744 {
5745   LEAVE;
5746   ETag_surfxml_include();
5747   popbuffer(); /* attribute */
5748   switch (YY_START) {
5749    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5750    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;
5751    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5752    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5753   }
5754  }
5755         YY_BREAK
5756 case 36:
5757 /* rule 36 can match eol */
5758 YY_RULE_SETUP
5759 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5760         YY_BREAK
5761 case 37:
5762 YY_RULE_SETUP
5763 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5764         YY_BREAK
5765 case YY_STATE_EOF(E_surfxml_include):
5766 case YY_STATE_EOF(S_surfxml_include):
5767 case YY_STATE_EOF(S_surfxml_include_2):
5768 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5769         YY_BREAK
5770
5771 case 38:
5772 /* rule 38 can match eol */
5773 YY_RULE_SETUP
5774 FAIL("Starting tag <trace> is not allowed here.");
5775         YY_BREAK
5776 case 39:
5777 /* rule 39 can match eol */
5778 YY_RULE_SETUP
5779 {
5780   AX_surfxml_trace_id = 0;
5781   surfxml_trace_id_isset = 0;
5782   AX_surfxml_trace_file = 0;
5783   surfxml_trace_file_isset = 0;
5784   AX_surfxml_trace_periodicity = 0;
5785   surfxml_trace_periodicity_isset = 0;
5786   ENTER(AL_surfxml_trace); pushbuffer(0);
5787   }
5788         YY_BREAK
5789
5790 case 40:
5791 /* rule 40 can match eol */
5792 YY_RULE_SETUP
5793 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);
5794         YY_BREAK
5795 case 41:
5796 /* rule 41 can match eol */
5797 YY_RULE_SETUP
5798 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);
5799         YY_BREAK
5800 case 42:
5801 /* rule 42 can match eol */
5802 YY_RULE_SETUP
5803 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);
5804         YY_BREAK
5805 case 43:
5806 /* rule 43 can match eol */
5807 YY_RULE_SETUP
5808 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);
5809         YY_BREAK
5810 case 44:
5811 /* rule 44 can match eol */
5812 YY_RULE_SETUP
5813 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);
5814         YY_BREAK
5815 case 45:
5816 /* rule 45 can match eol */
5817 YY_RULE_SETUP
5818 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);
5819         YY_BREAK
5820 case 46:
5821 YY_RULE_SETUP
5822 {
5823   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5824   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5825   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5826  }
5827         YY_BREAK
5828 case 47:
5829 YY_RULE_SETUP
5830 {
5831   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5832   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5833   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5834   switch (YY_START) {
5835    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5836    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5837    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5838    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;
5839    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5840    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5841    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5842   }
5843  }
5844         YY_BREAK
5845 case 48:
5846 YY_RULE_SETUP
5847 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5848         YY_BREAK
5849 case 49:
5850 YY_RULE_SETUP
5851 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5852         YY_BREAK
5853 case YY_STATE_EOF(AL_surfxml_trace):
5854 FAIL("EOF in attribute list of `trace' element.");
5855         YY_BREAK
5856
5857 case 50:
5858 /* rule 50 can match eol */
5859 YY_RULE_SETUP
5860 {
5861   LEAVE;
5862   BUFFERDONE;
5863   ETag_surfxml_trace();
5864   surfxml_pcdata_ix = popbuffer();
5865   popbuffer(); /* attribute */
5866   switch (YY_START) {
5867    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5868    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5869    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5870    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;
5871    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5872    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
5873    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5874   }
5875  }
5876         YY_BREAK
5877 case 51:
5878 /* rule 51 can match eol */
5879 YY_RULE_SETUP
5880 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5881         YY_BREAK
5882 case YY_STATE_EOF(IN_trace):
5883 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5884         YY_BREAK
5885
5886 case 52:
5887 /* rule 52 can match eol */
5888 YY_RULE_SETUP
5889 FAIL("Starting tag <random> is not allowed here.");
5890         YY_BREAK
5891 case 53:
5892 /* rule 53 can match eol */
5893 YY_RULE_SETUP
5894 {
5895   AX_surfxml_random_id = 0;
5896   surfxml_random_id_isset = 0;
5897   AX_surfxml_random_min = 0;
5898   surfxml_random_min_isset = 0;
5899   AX_surfxml_random_max = 0;
5900   surfxml_random_max_isset = 0;
5901   AX_surfxml_random_mean = 0;
5902   surfxml_random_mean_isset = 0;
5903   AX_surfxml_random_std___deviation = 0;
5904   surfxml_random_std___deviation_isset = 0;
5905   AX_surfxml_random_seed = 5;
5906   surfxml_random_seed_isset = 0;
5907   AX_surfxml_random_radical = 0;
5908   surfxml_random_radical_isset = 0;
5909   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5910   surfxml_random_generator_isset = 0;
5911   ENTER(AL_surfxml_random); pushbuffer(0);
5912   }
5913         YY_BREAK
5914
5915 case 54:
5916 /* rule 54 can match eol */
5917 YY_RULE_SETUP
5918 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);
5919         YY_BREAK
5920 case 55:
5921 /* rule 55 can match eol */
5922 YY_RULE_SETUP
5923 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);
5924         YY_BREAK
5925 case 56:
5926 /* rule 56 can match eol */
5927 YY_RULE_SETUP
5928 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);
5929         YY_BREAK
5930 case 57:
5931 /* rule 57 can match eol */
5932 YY_RULE_SETUP
5933 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);
5934         YY_BREAK
5935 case 58:
5936 /* rule 58 can match eol */
5937 YY_RULE_SETUP
5938 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);
5939         YY_BREAK
5940 case 59:
5941 /* rule 59 can match eol */
5942 YY_RULE_SETUP
5943 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);
5944         YY_BREAK
5945 case 60:
5946 /* rule 60 can match eol */
5947 YY_RULE_SETUP
5948 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);
5949         YY_BREAK
5950 case 61:
5951 /* rule 61 can match eol */
5952 YY_RULE_SETUP
5953 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);
5954         YY_BREAK
5955 case 62:
5956 /* rule 62 can match eol */
5957 YY_RULE_SETUP
5958 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);
5959         YY_BREAK
5960 case 63:
5961 /* rule 63 can match eol */
5962 YY_RULE_SETUP
5963 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);
5964         YY_BREAK
5965 case 64:
5966 /* rule 64 can match eol */
5967 YY_RULE_SETUP
5968 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);
5969         YY_BREAK
5970 case 65:
5971 /* rule 65 can match eol */
5972 YY_RULE_SETUP
5973 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);
5974         YY_BREAK
5975 case 66:
5976 /* rule 66 can match eol */
5977 YY_RULE_SETUP
5978 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);
5979         YY_BREAK
5980 case 67:
5981 /* rule 67 can match eol */
5982 YY_RULE_SETUP
5983 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);
5984         YY_BREAK
5985 case 68:
5986 /* rule 68 can match eol */
5987 case 69:
5988 /* rule 69 can match eol */
5989 YY_RULE_SETUP
5990 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5991         YY_BREAK
5992 case 70:
5993 /* rule 70 can match eol */
5994 case 71:
5995 /* rule 71 can match eol */
5996 YY_RULE_SETUP
5997 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5998         YY_BREAK
5999 case 72:
6000 /* rule 72 can match eol */
6001 case 73:
6002 /* rule 73 can match eol */
6003 YY_RULE_SETUP
6004 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6005         YY_BREAK
6006 case 74:
6007 /* rule 74 can match eol */
6008 case 75:
6009 /* rule 75 can match eol */
6010 YY_RULE_SETUP
6011 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6012         YY_BREAK
6013 case 76:
6014 YY_RULE_SETUP
6015 {
6016   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6017   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6018   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6019   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6020   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6021   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6022  }
6023         YY_BREAK
6024 case 77:
6025 YY_RULE_SETUP
6026 {
6027   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6028   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6029   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6030   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6031   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6032   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6033   switch (YY_START) {
6034    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6035   }
6036  }
6037         YY_BREAK
6038 case 78:
6039 YY_RULE_SETUP
6040 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6041         YY_BREAK
6042 case 79:
6043 YY_RULE_SETUP
6044 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6045         YY_BREAK
6046 case YY_STATE_EOF(AL_surfxml_random):
6047 FAIL("EOF in attribute list of `random' element.");
6048         YY_BREAK
6049
6050 case 80:
6051 /* rule 80 can match eol */
6052 YY_RULE_SETUP
6053 {
6054   LEAVE;
6055   ETag_surfxml_random();
6056   popbuffer(); /* attribute */
6057   switch (YY_START) {
6058    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6059   }
6060  }
6061         YY_BREAK
6062 case 81:
6063 /* rule 81 can match eol */
6064 YY_RULE_SETUP
6065 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6066         YY_BREAK
6067 case 82:
6068 YY_RULE_SETUP
6069 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6070         YY_BREAK
6071 case YY_STATE_EOF(E_surfxml_random):
6072 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6073         YY_BREAK
6074
6075 case 83:
6076 /* rule 83 can match eol */
6077 YY_RULE_SETUP
6078 FAIL("Starting tag <trace_connect> is not allowed here.");
6079         YY_BREAK
6080 case 84:
6081 /* rule 84 can match eol */
6082 YY_RULE_SETUP
6083 {
6084   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6085   surfxml_trace___connect_kind_isset = 0;
6086   AX_surfxml_trace___connect_trace = 0;
6087   surfxml_trace___connect_trace_isset = 0;
6088   AX_surfxml_trace___connect_element = 0;
6089   surfxml_trace___connect_element_isset = 0;
6090   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6091   }
6092         YY_BREAK
6093
6094 case 85:
6095 /* rule 85 can match eol */
6096 case 86:
6097 /* rule 86 can match eol */
6098 YY_RULE_SETUP
6099 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6100         YY_BREAK
6101 case 87:
6102 /* rule 87 can match eol */
6103 case 88:
6104 /* rule 88 can match eol */
6105 YY_RULE_SETUP
6106 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6107         YY_BREAK
6108 case 89:
6109 /* rule 89 can match eol */
6110 case 90:
6111 /* rule 90 can match eol */
6112 YY_RULE_SETUP
6113 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6114         YY_BREAK
6115 case 91:
6116 /* rule 91 can match eol */
6117 case 92:
6118 /* rule 92 can match eol */
6119 YY_RULE_SETUP
6120 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6121         YY_BREAK
6122 case 93:
6123 /* rule 93 can match eol */
6124 case 94:
6125 /* rule 94 can match eol */
6126 YY_RULE_SETUP
6127 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6128         YY_BREAK
6129 case 95:
6130 /* rule 95 can match eol */
6131 YY_RULE_SETUP
6132 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);
6133         YY_BREAK
6134 case 96:
6135 /* rule 96 can match eol */
6136 YY_RULE_SETUP
6137 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);
6138         YY_BREAK
6139 case 97:
6140 /* rule 97 can match eol */
6141 YY_RULE_SETUP
6142 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);
6143         YY_BREAK
6144 case 98:
6145 /* rule 98 can match eol */
6146 YY_RULE_SETUP
6147 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);
6148         YY_BREAK
6149 case 99:
6150 YY_RULE_SETUP
6151 {
6152   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6153   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6154   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6155  }
6156         YY_BREAK
6157 case 100:
6158 YY_RULE_SETUP
6159 {
6160   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6161   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6162   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6163   switch (YY_START) {
6164    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6165    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6166    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6167    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;
6168    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6169    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6170    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6171   }
6172  }
6173         YY_BREAK
6174 case 101:
6175 YY_RULE_SETUP
6176 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6177         YY_BREAK
6178 case 102:
6179 YY_RULE_SETUP
6180 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6181         YY_BREAK
6182 case YY_STATE_EOF(AL_surfxml_trace___connect):
6183 FAIL("EOF in attribute list of `trace_connect' element.");
6184         YY_BREAK
6185
6186 case 103:
6187 /* rule 103 can match eol */
6188 YY_RULE_SETUP
6189 {
6190   LEAVE;
6191   ETag_surfxml_trace___connect();
6192   popbuffer(); /* attribute */
6193   switch (YY_START) {
6194    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6195    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6196    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6197    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;
6198    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6199    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
6200    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6201   }
6202  }
6203         YY_BREAK
6204 case 104:
6205 /* rule 104 can match eol */
6206 YY_RULE_SETUP
6207 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6208         YY_BREAK
6209 case 105:
6210 YY_RULE_SETUP
6211 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6212         YY_BREAK
6213 case YY_STATE_EOF(E_surfxml_trace___connect):
6214 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6215         YY_BREAK
6216
6217 case 106:
6218 /* rule 106 can match eol */
6219 YY_RULE_SETUP
6220 FAIL("Starting tag <AS> is not allowed here.");
6221         YY_BREAK
6222 case 107:
6223 /* rule 107 can match eol */
6224 YY_RULE_SETUP
6225 {
6226   AX_surfxml_AS_id = 0;
6227   surfxml_AS_id_isset = 0;
6228   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6229   surfxml_AS_routing_isset = 0;
6230   ENTER(AL_surfxml_AS); pushbuffer(0);
6231   }
6232         YY_BREAK
6233
6234 case 108:
6235 /* rule 108 can match eol */
6236 YY_RULE_SETUP
6237 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);
6238         YY_BREAK
6239 case 109:
6240 /* rule 109 can match eol */
6241 YY_RULE_SETUP
6242 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);
6243         YY_BREAK
6244 case 110:
6245 /* rule 110 can match eol */
6246 case 111:
6247 /* rule 111 can match eol */
6248 YY_RULE_SETUP
6249 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6250         YY_BREAK
6251 case 112:
6252 /* rule 112 can match eol */
6253 case 113:
6254 /* rule 113 can match eol */
6255 YY_RULE_SETUP
6256 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6257         YY_BREAK
6258 case 114:
6259 /* rule 114 can match eol */
6260 case 115:
6261 /* rule 115 can match eol */
6262 YY_RULE_SETUP
6263 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6264         YY_BREAK
6265 case 116:
6266 /* rule 116 can match eol */
6267 case 117:
6268 /* rule 117 can match eol */
6269 YY_RULE_SETUP
6270 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6271         YY_BREAK
6272 case 118:
6273 /* rule 118 can match eol */
6274 case 119:
6275 /* rule 119 can match eol */
6276 YY_RULE_SETUP
6277 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6278         YY_BREAK
6279 case 120:
6280 /* rule 120 can match eol */
6281 case 121:
6282 /* rule 121 can match eol */
6283 YY_RULE_SETUP
6284 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
6285         YY_BREAK
6286 case 122:
6287 /* rule 122 can match eol */
6288 case 123:
6289 /* rule 123 can match eol */
6290 YY_RULE_SETUP
6291 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6292         YY_BREAK
6293 case 124:
6294 /* rule 124 can match eol */
6295 case 125:
6296 /* rule 125 can match eol */
6297 YY_RULE_SETUP
6298 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6299         YY_BREAK
6300 case 126:
6301 YY_RULE_SETUP
6302 {
6303   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6304   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6305  }
6306         YY_BREAK
6307 case 127:
6308 YY_RULE_SETUP
6309 {
6310   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6311   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6312   switch (YY_START) {
6313    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;
6314    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;
6315    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6316   }
6317  }
6318         YY_BREAK
6319 case 128:
6320 YY_RULE_SETUP
6321 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6322         YY_BREAK
6323 case 129:
6324 YY_RULE_SETUP
6325 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6326         YY_BREAK
6327 case YY_STATE_EOF(AL_surfxml_AS):
6328 FAIL("EOF in attribute list of `AS' element.");
6329         YY_BREAK
6330
6331 case 130:
6332 /* rule 130 can match eol */
6333 YY_RULE_SETUP
6334 {
6335   LEAVE;
6336   ETag_surfxml_AS();
6337   popbuffer(); /* attribute */
6338   switch (YY_START) {
6339    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;
6340    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;
6341    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6342   }
6343  }
6344         YY_BREAK
6345 case 131:
6346 /* rule 131 can match eol */
6347 YY_RULE_SETUP
6348 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6349         YY_BREAK
6350 case 132:
6351 YY_RULE_SETUP
6352 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6353         YY_BREAK
6354 case YY_STATE_EOF(S_surfxml_AS_12):
6355 case YY_STATE_EOF(S_surfxml_AS_9):
6356 case YY_STATE_EOF(S_surfxml_AS_1):
6357 case YY_STATE_EOF(S_surfxml_AS_7):
6358 case YY_STATE_EOF(S_surfxml_AS_11):
6359 case YY_STATE_EOF(S_surfxml_AS_14):
6360 case YY_STATE_EOF(S_surfxml_AS_6):
6361 case YY_STATE_EOF(E_surfxml_AS):
6362 case YY_STATE_EOF(S_surfxml_AS_16):
6363 case YY_STATE_EOF(S_surfxml_AS_3):
6364 case YY_STATE_EOF(S_surfxml_AS):
6365 case YY_STATE_EOF(S_surfxml_AS_4):
6366 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6367         YY_BREAK
6368
6369 case 133:
6370 /* rule 133 can match eol */
6371 YY_RULE_SETUP
6372 FAIL("Starting tag <storage_type> is not allowed here.");
6373         YY_BREAK
6374 case 134:
6375 /* rule 134 can match eol */
6376 YY_RULE_SETUP
6377 {
6378   AX_surfxml_storage___type_id = 0;
6379   surfxml_storage___type_id_isset = 0;
6380   AX_surfxml_storage___type_model = 0;
6381   surfxml_storage___type_model_isset = 0;
6382   AX_surfxml_storage___type_size = 0;
6383   surfxml_storage___type_size_isset = 0;
6384   AX_surfxml_storage___type_content = 0;
6385   surfxml_storage___type_content_isset = 0;
6386   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6387   }
6388         YY_BREAK
6389
6390 case 135:
6391 /* rule 135 can match eol */
6392 YY_RULE_SETUP
6393 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);
6394         YY_BREAK
6395 case 136:
6396 /* rule 136 can match eol */
6397 YY_RULE_SETUP
6398 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);
6399         YY_BREAK
6400 case 137:
6401 /* rule 137 can match eol */
6402 YY_RULE_SETUP
6403 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);
6404         YY_BREAK
6405 case 138:
6406 /* rule 138 can match eol */
6407 YY_RULE_SETUP
6408 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);
6409         YY_BREAK
6410 case 139:
6411 /* rule 139 can match eol */
6412 YY_RULE_SETUP
6413 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);
6414         YY_BREAK
6415 case 140:
6416 /* rule 140 can match eol */
6417 YY_RULE_SETUP
6418 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);
6419         YY_BREAK
6420 case 141:
6421 /* rule 141 can match eol */
6422 YY_RULE_SETUP
6423 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);
6424         YY_BREAK
6425 case 142:
6426 /* rule 142 can match eol */
6427 YY_RULE_SETUP
6428 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);
6429         YY_BREAK
6430 case 143:
6431 YY_RULE_SETUP
6432 {
6433   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6434   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6435   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6436   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6437  }
6438         YY_BREAK
6439 case 144:
6440 YY_RULE_SETUP
6441 {
6442   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6443   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6444   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6445   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6446   switch (YY_START) {
6447    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6448    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6449   }
6450  }
6451         YY_BREAK
6452 case 145:
6453 YY_RULE_SETUP
6454 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6455         YY_BREAK
6456 case 146:
6457 YY_RULE_SETUP
6458 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6459         YY_BREAK
6460 case YY_STATE_EOF(AL_surfxml_storage___type):
6461 FAIL("EOF in attribute list of `storage_type' element.");
6462         YY_BREAK
6463
6464 case 147:
6465 /* rule 147 can match eol */
6466 YY_RULE_SETUP
6467 {
6468   LEAVE;
6469   ETag_surfxml_storage___type();
6470   popbuffer(); /* attribute */
6471   switch (YY_START) {
6472    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6473    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6474   }
6475  }
6476         YY_BREAK
6477 case 148:
6478 /* rule 148 can match eol */
6479 YY_RULE_SETUP
6480 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6481         YY_BREAK
6482 case 149:
6483 YY_RULE_SETUP
6484 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6485         YY_BREAK
6486 case YY_STATE_EOF(E_surfxml_storage___type):
6487 case YY_STATE_EOF(S_surfxml_storage___type):
6488 case YY_STATE_EOF(S_surfxml_storage___type_2):
6489 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6490         YY_BREAK
6491
6492 case 150:
6493 /* rule 150 can match eol */
6494 YY_RULE_SETUP
6495 FAIL("Starting tag <storage> is not allowed here.");
6496         YY_BREAK
6497 case 151:
6498 /* rule 151 can match eol */
6499 YY_RULE_SETUP
6500 {
6501   AX_surfxml_storage_id = 0;
6502   surfxml_storage_id_isset = 0;
6503   AX_surfxml_storage_typeId = 0;
6504   surfxml_storage_typeId_isset = 0;
6505   AX_surfxml_storage_content = 0;
6506   surfxml_storage_content_isset = 0;
6507   ENTER(AL_surfxml_storage); pushbuffer(0);
6508   }
6509         YY_BREAK
6510
6511 case 152:
6512 /* rule 152 can match eol */
6513 YY_RULE_SETUP
6514 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);
6515         YY_BREAK
6516 case 153:
6517 /* rule 153 can match eol */
6518 YY_RULE_SETUP
6519 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);
6520         YY_BREAK
6521 case 154:
6522 /* rule 154 can match eol */
6523 YY_RULE_SETUP
6524 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);
6525         YY_BREAK
6526 case 155:
6527 /* rule 155 can match eol */
6528 YY_RULE_SETUP
6529 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);
6530         YY_BREAK
6531 case 156:
6532 /* rule 156 can match eol */
6533 YY_RULE_SETUP
6534 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);
6535         YY_BREAK
6536 case 157:
6537 /* rule 157 can match eol */
6538 YY_RULE_SETUP
6539 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);
6540         YY_BREAK
6541 case 158:
6542 YY_RULE_SETUP
6543 {
6544   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6545   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6546   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6547  }
6548         YY_BREAK
6549 case 159:
6550 YY_RULE_SETUP
6551 {
6552   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6553   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6554   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6555   switch (YY_START) {
6556    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6557    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6558   }
6559  }
6560         YY_BREAK
6561 case 160:
6562 YY_RULE_SETUP
6563 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6564         YY_BREAK
6565 case 161:
6566 YY_RULE_SETUP
6567 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6568         YY_BREAK
6569 case YY_STATE_EOF(AL_surfxml_storage):
6570 FAIL("EOF in attribute list of `storage' element.");
6571         YY_BREAK
6572
6573 case 162:
6574 /* rule 162 can match eol */
6575 YY_RULE_SETUP
6576 {
6577   LEAVE;
6578   ETag_surfxml_storage();
6579   popbuffer(); /* attribute */
6580   switch (YY_START) {
6581    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6582    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6583   }
6584  }
6585         YY_BREAK
6586 case 163:
6587 /* rule 163 can match eol */
6588 YY_RULE_SETUP
6589 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6590         YY_BREAK
6591 case 164:
6592 YY_RULE_SETUP
6593 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6594         YY_BREAK
6595 case YY_STATE_EOF(E_surfxml_storage):
6596 case YY_STATE_EOF(S_surfxml_storage):
6597 case YY_STATE_EOF(S_surfxml_storage_2):
6598 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6599         YY_BREAK
6600
6601 case 165:
6602 /* rule 165 can match eol */
6603 YY_RULE_SETUP
6604 FAIL("Starting tag <mount> is not allowed here.");
6605         YY_BREAK
6606 case 166:
6607 /* rule 166 can match eol */
6608 YY_RULE_SETUP
6609 {
6610   AX_surfxml_mount_id = 0;
6611   surfxml_mount_id_isset = 0;
6612   AX_surfxml_mount_name = 0;
6613   surfxml_mount_name_isset = 0;
6614   ENTER(AL_surfxml_mount); pushbuffer(0);
6615   }
6616         YY_BREAK
6617
6618 case 167:
6619 /* rule 167 can match eol */
6620 YY_RULE_SETUP
6621 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);
6622         YY_BREAK
6623 case 168:
6624 /* rule 168 can match eol */
6625 YY_RULE_SETUP
6626 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);
6627         YY_BREAK
6628 case 169:
6629 /* rule 169 can match eol */
6630 YY_RULE_SETUP
6631 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);
6632         YY_BREAK
6633 case 170:
6634 /* rule 170 can match eol */
6635 YY_RULE_SETUP
6636 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);
6637         YY_BREAK
6638 case 171:
6639 YY_RULE_SETUP
6640 {
6641   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6642   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6643   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6644  }
6645         YY_BREAK
6646 case 172:
6647 YY_RULE_SETUP
6648 {
6649   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6650   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6651   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6652   switch (YY_START) {
6653    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6654   }
6655  }
6656         YY_BREAK
6657 case 173:
6658 YY_RULE_SETUP
6659 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6660         YY_BREAK
6661 case 174:
6662 YY_RULE_SETUP
6663 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6664         YY_BREAK
6665 case YY_STATE_EOF(AL_surfxml_mount):
6666 FAIL("EOF in attribute list of `mount' element.");
6667         YY_BREAK
6668
6669 case 175:
6670 /* rule 175 can match eol */
6671 YY_RULE_SETUP
6672 {
6673   LEAVE;
6674   ETag_surfxml_mount();
6675   popbuffer(); /* attribute */
6676   switch (YY_START) {
6677    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6678   }
6679  }
6680         YY_BREAK
6681 case 176:
6682 /* rule 176 can match eol */
6683 YY_RULE_SETUP
6684 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6685         YY_BREAK
6686 case 177:
6687 YY_RULE_SETUP
6688 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6689         YY_BREAK
6690 case YY_STATE_EOF(E_surfxml_mount):
6691 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6692         YY_BREAK
6693
6694 case 178:
6695 /* rule 178 can match eol */
6696 YY_RULE_SETUP
6697 FAIL("Starting tag <mstorage> is not allowed here.");
6698         YY_BREAK
6699 case 179:
6700 /* rule 179 can match eol */
6701 YY_RULE_SETUP
6702 {
6703   AX_surfxml_mstorage_typeId = 0;
6704   surfxml_mstorage_typeId_isset = 0;
6705   AX_surfxml_mstorage_name = 0;
6706   surfxml_mstorage_name_isset = 0;
6707   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6708   }
6709         YY_BREAK
6710
6711 case 180:
6712 /* rule 180 can match eol */
6713 YY_RULE_SETUP
6714 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);
6715         YY_BREAK
6716 case 181:
6717 /* rule 181 can match eol */
6718 YY_RULE_SETUP
6719 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);
6720         YY_BREAK
6721 case 182:
6722 /* rule 182 can match eol */
6723 YY_RULE_SETUP
6724 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);
6725         YY_BREAK
6726 case 183:
6727 /* rule 183 can match eol */
6728 YY_RULE_SETUP
6729 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);
6730         YY_BREAK
6731 case 184:
6732 YY_RULE_SETUP
6733 {
6734   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6735   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6736   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6737  }
6738         YY_BREAK
6739 case 185:
6740 YY_RULE_SETUP
6741 {
6742   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6743   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6744   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6745   switch (YY_START) {
6746    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6747   }
6748  }
6749         YY_BREAK
6750 case 186:
6751 YY_RULE_SETUP
6752 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6753         YY_BREAK
6754 case 187:
6755 YY_RULE_SETUP
6756 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6757         YY_BREAK
6758 case YY_STATE_EOF(AL_surfxml_mstorage):
6759 FAIL("EOF in attribute list of `mstorage' element.");
6760         YY_BREAK
6761
6762 case 188:
6763 /* rule 188 can match eol */
6764 YY_RULE_SETUP
6765 {
6766   LEAVE;
6767   ETag_surfxml_mstorage();
6768   popbuffer(); /* attribute */
6769   switch (YY_START) {
6770    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6771   }
6772  }
6773         YY_BREAK
6774 case 189:
6775 /* rule 189 can match eol */
6776 YY_RULE_SETUP
6777 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6778         YY_BREAK
6779 case 190:
6780 YY_RULE_SETUP
6781 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6782         YY_BREAK
6783 case YY_STATE_EOF(E_surfxml_mstorage):
6784 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6785         YY_BREAK
6786
6787 case 191:
6788 /* rule 191 can match eol */
6789 YY_RULE_SETUP
6790 FAIL("Starting tag <host> is not allowed here.");
6791         YY_BREAK
6792 case 192:
6793 /* rule 192 can match eol */
6794 YY_RULE_SETUP
6795 {
6796   AX_surfxml_host_id = 0;
6797   surfxml_host_id_isset = 0;
6798   AX_surfxml_host_power = 0;
6799   surfxml_host_power_isset = 0;
6800   AX_surfxml_host_core = 16;
6801   surfxml_host_core_isset = 0;
6802   AX_surfxml_host_availability = 18;
6803   surfxml_host_availability_isset = 0;
6804   AX_surfxml_host_availability___file = 0;
6805   surfxml_host_availability___file_isset = 0;
6806   AX_surfxml_host_state = A_surfxml_host_state_ON;
6807   surfxml_host_state_isset = 0;
6808   AX_surfxml_host_state___file = 0;
6809   surfxml_host_state___file_isset = 0;
6810   AX_surfxml_host_coordinates = 0;
6811   surfxml_host_coordinates_isset = 0;
6812   ENTER(AL_surfxml_host); pushbuffer(0);
6813   }
6814         YY_BREAK
6815
6816 case 193:
6817 /* rule 193 can match eol */
6818 YY_RULE_SETUP
6819 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);
6820         YY_BREAK
6821 case 194:
6822 /* rule 194 can match eol */
6823 YY_RULE_SETUP
6824 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);
6825         YY_BREAK
6826 case 195:
6827 /* rule 195 can match eol */
6828 YY_RULE_SETUP
6829 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);
6830         YY_BREAK
6831 case 196:
6832 /* rule 196 can match eol */
6833 YY_RULE_SETUP
6834 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);
6835         YY_BREAK
6836 case 197:
6837 /* rule 197 can match eol */
6838 YY_RULE_SETUP
6839 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);
6840         YY_BREAK
6841 case 198:
6842 /* rule 198 can match eol */
6843 YY_RULE_SETUP
6844 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);
6845         YY_BREAK
6846 case 199:
6847 /* rule 199 can match eol */
6848 YY_RULE_SETUP
6849 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);
6850         YY_BREAK
6851 case 200:
6852 /* rule 200 can match eol */
6853 YY_RULE_SETUP
6854 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);
6855         YY_BREAK
6856 case 201:
6857 /* rule 201 can match eol */
6858 YY_RULE_SETUP
6859 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);
6860         YY_BREAK
6861 case 202:
6862 /* rule 202 can match eol */
6863 YY_RULE_SETUP
6864 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);
6865         YY_BREAK
6866 case 203:
6867 /* rule 203 can match eol */
6868 case 204:
6869 /* rule 204 can match eol */
6870 YY_RULE_SETUP
6871 A_surfxml_host_state = A_surfxml_host_state_ON;
6872         YY_BREAK
6873 case 205:
6874 /* rule 205 can match eol */
6875 case 206:
6876 /* rule 206 can match eol */
6877 YY_RULE_SETUP
6878 A_surfxml_host_state = A_surfxml_host_state_OFF;
6879         YY_BREAK
6880 case 207:
6881 /* rule 207 can match eol */
6882 YY_RULE_SETUP
6883 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);
6884         YY_BREAK
6885 case 208:
6886 /* rule 208 can match eol */
6887 YY_RULE_SETUP
6888 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);
6889         YY_BREAK
6890 case 209:
6891 /* rule 209 can match eol */
6892 YY_RULE_SETUP
6893 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);
6894         YY_BREAK
6895 case 210:
6896 /* rule 210 can match eol */
6897 YY_RULE_SETUP
6898 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);
6899         YY_BREAK
6900 case 211:
6901 YY_RULE_SETUP
6902 {
6903   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6904   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6905   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6906  }
6907         YY_BREAK
6908 case 212:
6909 YY_RULE_SETUP
6910 {
6911   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6912   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6913   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6914   switch (YY_START) {
6915    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6916   }
6917  }
6918         YY_BREAK
6919 case 213:
6920 YY_RULE_SETUP
6921 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6922         YY_BREAK
6923 case 214:
6924 YY_RULE_SETUP
6925 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6926         YY_BREAK
6927 case YY_STATE_EOF(AL_surfxml_host):
6928 FAIL("EOF in attribute list of `host' element.");
6929         YY_BREAK
6930
6931 case 215:
6932 /* rule 215 can match eol */
6933 YY_RULE_SETUP
6934 {
6935   LEAVE;
6936   ETag_surfxml_host();
6937   popbuffer(); /* attribute */
6938   switch (YY_START) {
6939    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6940   }
6941  }
6942         YY_BREAK
6943 case 216:
6944 /* rule 216 can match eol */
6945 YY_RULE_SETUP
6946 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6947         YY_BREAK
6948 case 217:
6949 YY_RULE_SETUP
6950 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6951         YY_BREAK
6952 case YY_STATE_EOF(S_surfxml_host):
6953 case YY_STATE_EOF(E_surfxml_host):
6954 case YY_STATE_EOF(S_surfxml_host_2):
6955 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6956         YY_BREAK
6957
6958 case 218:
6959 /* rule 218 can match eol */
6960 YY_RULE_SETUP
6961 FAIL("Starting tag <gpu> is not allowed here.");
6962         YY_BREAK
6963 case 219:
6964 /* rule 219 can match eol */
6965 YY_RULE_SETUP
6966 {
6967   AX_surfxml_gpu_name = 0;
6968   surfxml_gpu_name_isset = 0;
6969   ENTER(AL_surfxml_gpu); pushbuffer(0);
6970   }
6971         YY_BREAK
6972
6973 case 220:
6974 /* rule 220 can match eol */
6975 YY_RULE_SETUP
6976 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");} surfxml_gpu_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
6977         YY_BREAK
6978 case 221:
6979 /* rule 221 can match eol */
6980 YY_RULE_SETUP
6981 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");}  surfxml_gpu_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
6982         YY_BREAK
6983 case 222:
6984 YY_RULE_SETUP
6985 {
6986   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
6987   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
6988  }
6989         YY_BREAK
6990 case 223:
6991 YY_RULE_SETUP
6992 {
6993   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
6994   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
6995   switch (YY_START) {
6996    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
6997   }
6998  }
6999         YY_BREAK
7000 case 224:
7001 YY_RULE_SETUP
7002 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7003         YY_BREAK
7004 case 225:
7005 YY_RULE_SETUP
7006 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7007         YY_BREAK
7008 case YY_STATE_EOF(AL_surfxml_gpu):
7009 FAIL("EOF in attribute list of `gpu' element.");
7010         YY_BREAK
7011
7012 case 226:
7013 /* rule 226 can match eol */
7014 YY_RULE_SETUP
7015 {
7016   LEAVE;
7017   ETag_surfxml_gpu();
7018   popbuffer(); /* attribute */
7019   switch (YY_START) {
7020    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7021   }
7022  }
7023         YY_BREAK
7024 case 227:
7025 /* rule 227 can match eol */
7026 YY_RULE_SETUP
7027 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7028         YY_BREAK
7029 case 228:
7030 YY_RULE_SETUP
7031 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7032         YY_BREAK
7033 case YY_STATE_EOF(E_surfxml_gpu):
7034 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7035         YY_BREAK
7036
7037 case 229:
7038 /* rule 229 can match eol */
7039 YY_RULE_SETUP
7040 FAIL("Starting tag <host_link> is not allowed here.");
7041         YY_BREAK
7042 case 230:
7043 /* rule 230 can match eol */
7044 YY_RULE_SETUP
7045 {
7046   AX_surfxml_host___link_id = 0;
7047   surfxml_host___link_id_isset = 0;
7048   AX_surfxml_host___link_up = 0;
7049   surfxml_host___link_up_isset = 0;
7050   AX_surfxml_host___link_down = 0;
7051   surfxml_host___link_down_isset = 0;
7052   ENTER(AL_surfxml_host___link); pushbuffer(0);
7053   }
7054         YY_BREAK
7055
7056 case 231:
7057 /* rule 231 can match eol */
7058 YY_RULE_SETUP
7059 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");} surfxml_host___link_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_id);
7060         YY_BREAK
7061 case 232:
7062 /* rule 232 can match eol */
7063 YY_RULE_SETUP
7064 if (surfxml_host___link_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_host___link>");}  surfxml_host___link_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_id);
7065         YY_BREAK
7066 case 233:
7067 /* rule 233 can match eol */
7068 YY_RULE_SETUP
7069 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");} surfxml_host___link_up_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_up);
7070         YY_BREAK
7071 case 234:
7072 /* rule 234 can match eol */
7073 YY_RULE_SETUP
7074 if (surfxml_host___link_up_isset != 0) {FAIL("Multiple definition of attribute up in <surfxml_host___link>");}  surfxml_host___link_up_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_up);
7075         YY_BREAK
7076 case 235:
7077 /* rule 235 can match eol */
7078 YY_RULE_SETUP
7079 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");} surfxml_host___link_down_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host___link_down);
7080         YY_BREAK
7081 case 236:
7082 /* rule 236 can match eol */
7083 YY_RULE_SETUP
7084 if (surfxml_host___link_down_isset != 0) {FAIL("Multiple definition of attribute down in <surfxml_host___link>");}  surfxml_host___link_down_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host___link_down);
7085         YY_BREAK
7086 case 237:
7087 YY_RULE_SETUP
7088 {
7089   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7090   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7091   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7092   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7093  }
7094         YY_BREAK
7095 case 238:
7096 YY_RULE_SETUP
7097 {
7098   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7099   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7100   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7101   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7102   switch (YY_START) {
7103    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7104   }
7105  }
7106         YY_BREAK
7107 case 239:
7108 YY_RULE_SETUP
7109 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7110         YY_BREAK
7111 case 240:
7112 YY_RULE_SETUP
7113 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7114         YY_BREAK
7115 case YY_STATE_EOF(AL_surfxml_host___link):
7116 FAIL("EOF in attribute list of `host_link' element.");
7117         YY_BREAK
7118
7119 case 241:
7120 /* rule 241 can match eol */
7121 YY_RULE_SETUP
7122 {
7123   LEAVE;
7124   ETag_surfxml_host___link();
7125   popbuffer(); /* attribute */
7126   switch (YY_START) {
7127    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7128   }
7129  }
7130         YY_BREAK
7131 case 242:
7132 /* rule 242 can match eol */
7133 YY_RULE_SETUP
7134 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7135         YY_BREAK
7136 case 243:
7137 YY_RULE_SETUP
7138 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7139         YY_BREAK
7140 case YY_STATE_EOF(E_surfxml_host___link):
7141 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7142         YY_BREAK
7143
7144 case 244:
7145 /* rule 244 can match eol */
7146 YY_RULE_SETUP
7147 FAIL("Starting tag <cluster> is not allowed here.");
7148         YY_BREAK
7149 case 245:
7150 /* rule 245 can match eol */
7151 YY_RULE_SETUP
7152 {
7153   AX_surfxml_cluster_id = 0;
7154   surfxml_cluster_id_isset = 0;
7155   AX_surfxml_cluster_prefix = 0;
7156   surfxml_cluster_prefix_isset = 0;
7157   AX_surfxml_cluster_suffix = 0;
7158   surfxml_cluster_suffix_isset = 0;
7159   AX_surfxml_cluster_radical = 0;
7160   surfxml_cluster_radical_isset = 0;
7161   AX_surfxml_cluster_power = 0;
7162   surfxml_cluster_power_isset = 0;
7163   AX_surfxml_cluster_core = 22;
7164   surfxml_cluster_core_isset = 0;
7165   AX_surfxml_cluster_bw = 0;
7166   surfxml_cluster_bw_isset = 0;
7167   AX_surfxml_cluster_lat = 0;
7168   surfxml_cluster_lat_isset = 0;
7169   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7170   surfxml_cluster_sharing___policy_isset = 0;
7171   AX_surfxml_cluster_bb___bw = 0;
7172   surfxml_cluster_bb___bw_isset = 0;
7173   AX_surfxml_cluster_bb___lat = 0;
7174   surfxml_cluster_bb___lat_isset = 0;
7175   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7176   surfxml_cluster_bb___sharing___policy_isset = 0;
7177   AX_surfxml_cluster_availability___file = 0;
7178   surfxml_cluster_availability___file_isset = 0;
7179   AX_surfxml_cluster_state___file = 0;
7180   surfxml_cluster_state___file_isset = 0;
7181   AX_surfxml_cluster_router___id = 0;
7182   surfxml_cluster_router___id_isset = 0;
7183   AX_surfxml_cluster_limiter___link = 0;
7184   surfxml_cluster_limiter___link_isset = 0;
7185   AX_surfxml_cluster_loopback___bw = 0;
7186   surfxml_cluster_loopback___bw_isset = 0;
7187   AX_surfxml_cluster_loopback___lat = 0;
7188   surfxml_cluster_loopback___lat_isset = 0;
7189   ENTER(AL_surfxml_cluster); pushbuffer(0);
7190   }
7191         YY_BREAK
7192
7193 case 246:
7194 /* rule 246 can match eol */
7195 YY_RULE_SETUP
7196 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);
7197         YY_BREAK
7198 case 247:
7199 /* rule 247 can match eol */
7200 YY_RULE_SETUP
7201 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);
7202         YY_BREAK
7203 case 248:
7204 /* rule 248 can match eol */
7205 YY_RULE_SETUP
7206 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);
7207         YY_BREAK
7208 case 249:
7209 /* rule 249 can match eol */
7210 YY_RULE_SETUP
7211 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);
7212         YY_BREAK
7213 case 250:
7214 /* rule 250 can match eol */
7215 YY_RULE_SETUP
7216 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);
7217         YY_BREAK
7218 case 251:
7219 /* rule 251 can match eol */
7220 YY_RULE_SETUP
7221 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);
7222         YY_BREAK
7223 case 252:
7224 /* rule 252 can match eol */
7225 YY_RULE_SETUP
7226 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);
7227         YY_BREAK
7228 case 253:
7229 /* rule 253 can match eol */
7230 YY_RULE_SETUP
7231 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);
7232         YY_BREAK
7233 case 254:
7234 /* rule 254 can match eol */
7235 YY_RULE_SETUP
7236 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);
7237         YY_BREAK
7238 case 255:
7239 /* rule 255 can match eol */
7240 YY_RULE_SETUP
7241 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);
7242         YY_BREAK
7243 case 256:
7244 /* rule 256 can match eol */
7245 YY_RULE_SETUP
7246 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);
7247         YY_BREAK
7248 case 257:
7249 /* rule 257 can match eol */
7250 YY_RULE_SETUP
7251 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);
7252         YY_BREAK
7253 case 258:
7254 /* rule 258 can match eol */
7255 YY_RULE_SETUP
7256 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);
7257         YY_BREAK
7258 case 259:
7259 /* rule 259 can match eol */
7260 YY_RULE_SETUP
7261 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);
7262         YY_BREAK
7263 case 260:
7264 /* rule 260 can match eol */
7265 YY_RULE_SETUP
7266 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);
7267         YY_BREAK
7268 case 261:
7269 /* rule 261 can match eol */
7270 YY_RULE_SETUP
7271 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);
7272         YY_BREAK
7273 case 262:
7274 /* rule 262 can match eol */
7275 case 263:
7276 /* rule 263 can match eol */
7277 YY_RULE_SETUP
7278 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7279         YY_BREAK
7280 case 264:
7281 /* rule 264 can match eol */
7282 case 265:
7283 /* rule 265 can match eol */
7284 YY_RULE_SETUP
7285 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7286         YY_BREAK
7287 case 266:
7288 /* rule 266 can match eol */
7289 case 267:
7290 /* rule 267 can match eol */
7291 YY_RULE_SETUP
7292 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7293         YY_BREAK
7294 case 268:
7295 /* rule 268 can match eol */
7296 YY_RULE_SETUP
7297 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);
7298         YY_BREAK
7299 case 269:
7300 /* rule 269 can match eol */
7301 YY_RULE_SETUP
7302 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);
7303         YY_BREAK
7304 case 270:
7305 /* rule 270 can match eol */
7306 YY_RULE_SETUP
7307 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);
7308         YY_BREAK
7309 case 271:
7310 /* rule 271 can match eol */
7311 YY_RULE_SETUP
7312 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);
7313         YY_BREAK
7314 case 272:
7315 /* rule 272 can match eol */
7316 case 273:
7317 /* rule 273 can match eol */
7318 YY_RULE_SETUP
7319 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7320         YY_BREAK
7321 case 274:
7322 /* rule 274 can match eol */
7323 case 275:
7324 /* rule 275 can match eol */
7325 YY_RULE_SETUP
7326 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7327         YY_BREAK
7328 case 276:
7329 /* rule 276 can match eol */
7330 YY_RULE_SETUP
7331 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);
7332         YY_BREAK
7333 case 277:
7334 /* rule 277 can match eol */
7335 YY_RULE_SETUP
7336 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);
7337         YY_BREAK
7338 case 278:
7339 /* rule 278 can match eol */
7340 YY_RULE_SETUP
7341 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);
7342         YY_BREAK
7343 case 279:
7344 /* rule 279 can match eol */
7345 YY_RULE_SETUP
7346 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);
7347         YY_BREAK
7348 case 280:
7349 /* rule 280 can match eol */
7350 YY_RULE_SETUP
7351 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);
7352         YY_BREAK
7353 case 281:
7354 /* rule 281 can match eol */
7355 YY_RULE_SETUP
7356 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);
7357         YY_BREAK
7358 case 282:
7359 /* rule 282 can match eol */
7360 YY_RULE_SETUP
7361 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
7362         YY_BREAK
7363 case 283:
7364 /* rule 283 can match eol */
7365 YY_RULE_SETUP
7366 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
7367         YY_BREAK
7368 case 284:
7369 /* rule 284 can match eol */
7370 YY_RULE_SETUP
7371 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7372         YY_BREAK
7373 case 285:
7374 /* rule 285 can match eol */
7375 YY_RULE_SETUP
7376 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7377         YY_BREAK
7378 case 286:
7379 /* rule 286 can match eol */
7380 YY_RULE_SETUP
7381 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7382         YY_BREAK
7383 case 287:
7384 /* rule 287 can match eol */
7385 YY_RULE_SETUP
7386 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7387         YY_BREAK
7388 case 288:
7389 YY_RULE_SETUP
7390 {
7391   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7392   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7393   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7394   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7395   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7396   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7397   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7398   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
7399  }
7400         YY_BREAK
7401 case 289:
7402 YY_RULE_SETUP
7403 {
7404   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7405   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7406   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7407   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7408   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7409   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7410   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7411   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7412   switch (YY_START) {
7413    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;
7414    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;
7415    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7416   }
7417  }
7418         YY_BREAK
7419 case 290:
7420 YY_RULE_SETUP
7421 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7422         YY_BREAK
7423 case 291:
7424 YY_RULE_SETUP
7425 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7426         YY_BREAK
7427 case YY_STATE_EOF(AL_surfxml_cluster):
7428 FAIL("EOF in attribute list of `cluster' element.");
7429         YY_BREAK
7430
7431 case 292:
7432 /* rule 292 can match eol */
7433 YY_RULE_SETUP
7434 {
7435   LEAVE;
7436   ETag_surfxml_cluster();
7437   popbuffer(); /* attribute */
7438   switch (YY_START) {
7439    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;
7440    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;
7441    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7442   }
7443  }
7444         YY_BREAK
7445 case 293:
7446 /* rule 293 can match eol */
7447 YY_RULE_SETUP
7448 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7449         YY_BREAK
7450 case 294:
7451 YY_RULE_SETUP
7452 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7453         YY_BREAK
7454 case YY_STATE_EOF(E_surfxml_cluster):
7455 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7456         YY_BREAK
7457
7458 case 295:
7459 /* rule 295 can match eol */
7460 YY_RULE_SETUP
7461 FAIL("Starting tag <cabinet> is not allowed here.");
7462         YY_BREAK
7463 case 296:
7464 /* rule 296 can match eol */
7465 YY_RULE_SETUP
7466 {
7467   AX_surfxml_cabinet_id = 0;
7468   surfxml_cabinet_id_isset = 0;
7469   AX_surfxml_cabinet_prefix = 0;
7470   surfxml_cabinet_prefix_isset = 0;
7471   AX_surfxml_cabinet_suffix = 0;
7472   surfxml_cabinet_suffix_isset = 0;
7473   AX_surfxml_cabinet_radical = 0;
7474   surfxml_cabinet_radical_isset = 0;
7475   AX_surfxml_cabinet_power = 0;
7476   surfxml_cabinet_power_isset = 0;
7477   AX_surfxml_cabinet_bw = 0;
7478   surfxml_cabinet_bw_isset = 0;
7479   AX_surfxml_cabinet_lat = 0;
7480   surfxml_cabinet_lat_isset = 0;
7481   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7482   }
7483         YY_BREAK
7484
7485 case 297:
7486 /* rule 297 can match eol */
7487 YY_RULE_SETUP
7488 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");} surfxml_cabinet_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_id);
7489         YY_BREAK
7490 case 298:
7491 /* rule 298 can match eol */
7492 YY_RULE_SETUP
7493 if (surfxml_cabinet_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_cabinet>");}  surfxml_cabinet_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_id);
7494         YY_BREAK
7495 case 299:
7496 /* rule 299 can match eol */
7497 YY_RULE_SETUP
7498 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");} surfxml_cabinet_prefix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_prefix);
7499         YY_BREAK
7500 case 300:
7501 /* rule 300 can match eol */
7502 YY_RULE_SETUP
7503 if (surfxml_cabinet_prefix_isset != 0) {FAIL("Multiple definition of attribute prefix in <surfxml_cabinet>");}  surfxml_cabinet_prefix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_prefix);
7504         YY_BREAK
7505 case 301:
7506 /* rule 301 can match eol */
7507 YY_RULE_SETUP
7508 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");} surfxml_cabinet_suffix_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_suffix);
7509         YY_BREAK
7510 case 302:
7511 /* rule 302 can match eol */
7512 YY_RULE_SETUP
7513 if (surfxml_cabinet_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cabinet>");}  surfxml_cabinet_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_suffix);
7514         YY_BREAK
7515 case 303:
7516 /* rule 303 can match eol */
7517 YY_RULE_SETUP
7518 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");} surfxml_cabinet_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_radical);
7519         YY_BREAK
7520 case 304:
7521 /* rule 304 can match eol */
7522 YY_RULE_SETUP
7523 if (surfxml_cabinet_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cabinet>");}  surfxml_cabinet_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_radical);
7524         YY_BREAK
7525 case 305:
7526 /* rule 305 can match eol */
7527 YY_RULE_SETUP
7528 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7529         YY_BREAK
7530 case 306:
7531 /* rule 306 can match eol */
7532 YY_RULE_SETUP
7533 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7534         YY_BREAK
7535 case 307:
7536 /* rule 307 can match eol */
7537 YY_RULE_SETUP
7538 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");} surfxml_cabinet_bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_bw);
7539         YY_BREAK
7540 case 308:
7541 /* rule 308 can match eol */
7542 YY_RULE_SETUP
7543 if (surfxml_cabinet_bw_isset != 0) {FAIL("Multiple definition of attribute bw in <surfxml_cabinet>");}  surfxml_cabinet_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_bw);
7544         YY_BREAK
7545 case 309:
7546 /* rule 309 can match eol */
7547 YY_RULE_SETUP
7548 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");} surfxml_cabinet_lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_lat);
7549         YY_BREAK
7550 case 310:
7551 /* rule 310 can match eol */
7552 YY_RULE_SETUP
7553 if (surfxml_cabinet_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cabinet>");}  surfxml_cabinet_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_lat);
7554         YY_BREAK
7555 case 311:
7556 YY_RULE_SETUP
7557 {
7558   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7559   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7560   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7561   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7562   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7563   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7564   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7565   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7566  }
7567         YY_BREAK
7568 case 312:
7569 YY_RULE_SETUP
7570 {
7571   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7572   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7573   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7574   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7575   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7576   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7577   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7578   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7579   switch (YY_START) {
7580    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7581    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;
7582    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7583    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7584   }
7585  }
7586         YY_BREAK
7587 case 313:
7588 YY_RULE_SETUP
7589 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7590         YY_BREAK
7591 case 314:
7592 YY_RULE_SETUP
7593 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7594         YY_BREAK
7595 case YY_STATE_EOF(AL_surfxml_cabinet):
7596 FAIL("EOF in attribute list of `cabinet' element.");
7597         YY_BREAK
7598
7599 case 315:
7600 /* rule 315 can match eol */
7601 YY_RULE_SETUP
7602 {
7603   LEAVE;
7604   ETag_surfxml_cabinet();
7605   popbuffer(); /* attribute */
7606   switch (YY_START) {
7607    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7608    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;
7609    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7610    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7611   }
7612  }
7613         YY_BREAK
7614 case 316:
7615 /* rule 316 can match eol */
7616 YY_RULE_SETUP
7617 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7618         YY_BREAK
7619 case 317:
7620 YY_RULE_SETUP
7621 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7622         YY_BREAK
7623 case YY_STATE_EOF(E_surfxml_cabinet):
7624 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7625         YY_BREAK
7626
7627 case 318:
7628 /* rule 318 can match eol */
7629 YY_RULE_SETUP
7630 FAIL("Starting tag <peer> is not allowed here.");
7631         YY_BREAK
7632 case 319:
7633 /* rule 319 can match eol */
7634 YY_RULE_SETUP
7635 {
7636   AX_surfxml_peer_id = 0;
7637   surfxml_peer_id_isset = 0;
7638   AX_surfxml_peer_power = 0;
7639   surfxml_peer_power_isset = 0;
7640   AX_surfxml_peer_bw___in = 0;
7641   surfxml_peer_bw___in_isset = 0;
7642   AX_surfxml_peer_bw___out = 0;
7643   surfxml_peer_bw___out_isset = 0;
7644   AX_surfxml_peer_lat = 0;
7645   surfxml_peer_lat_isset = 0;
7646   AX_surfxml_peer_coordinates = 0;
7647   surfxml_peer_coordinates_isset = 0;
7648   AX_surfxml_peer_availability___file = 0;
7649   surfxml_peer_availability___file_isset = 0;
7650   AX_surfxml_peer_state___file = 0;
7651   surfxml_peer_state___file_isset = 0;
7652   ENTER(AL_surfxml_peer); pushbuffer(0);
7653   }
7654         YY_BREAK
7655
7656 case 320:
7657 /* rule 320 can match eol */
7658 YY_RULE_SETUP
7659 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);
7660         YY_BREAK
7661 case 321:
7662 /* rule 321 can match eol */
7663 YY_RULE_SETUP
7664 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);
7665         YY_BREAK
7666 case 322:
7667 /* rule 322 can match eol */
7668 YY_RULE_SETUP
7669 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);
7670         YY_BREAK
7671 case 323:
7672 /* rule 323 can match eol */
7673 YY_RULE_SETUP
7674 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);
7675         YY_BREAK
7676 case 324:
7677 /* rule 324 can match eol */
7678 YY_RULE_SETUP
7679 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);
7680         YY_BREAK
7681 case 325:
7682 /* rule 325 can match eol */
7683 YY_RULE_SETUP
7684 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);
7685         YY_BREAK
7686 case 326:
7687 /* rule 326 can match eol */
7688 YY_RULE_SETUP
7689 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);
7690         YY_BREAK
7691 case 327:
7692 /* rule 327 can match eol */
7693 YY_RULE_SETUP
7694 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);
7695         YY_BREAK
7696 case 328:
7697 /* rule 328 can match eol */
7698 YY_RULE_SETUP
7699 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);
7700         YY_BREAK
7701 case 329:
7702 /* rule 329 can match eol */
7703 YY_RULE_SETUP
7704 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);
7705         YY_BREAK
7706 case 330:
7707 /* rule 330 can match eol */
7708 YY_RULE_SETUP
7709 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);
7710         YY_BREAK
7711 case 331:
7712 /* rule 331 can match eol */
7713 YY_RULE_SETUP
7714 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);
7715         YY_BREAK
7716 case 332:
7717 /* rule 332 can match eol */
7718 YY_RULE_SETUP
7719 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);
7720         YY_BREAK
7721 case 333:
7722 /* rule 333 can match eol */
7723 YY_RULE_SETUP
7724 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);
7725         YY_BREAK
7726 case 334:
7727 /* rule 334 can match eol */
7728 YY_RULE_SETUP
7729 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);
7730         YY_BREAK
7731 case 335:
7732 /* rule 335 can match eol */
7733 YY_RULE_SETUP
7734 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);
7735         YY_BREAK
7736 case 336:
7737 YY_RULE_SETUP
7738 {
7739   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7740   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7741   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7742   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7743   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7744   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7745  }
7746         YY_BREAK
7747 case 337:
7748 YY_RULE_SETUP
7749 {
7750   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7751   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7752   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7753   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7754   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7755   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7756   switch (YY_START) {
7757    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;
7758    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;
7759    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7760   }
7761  }
7762         YY_BREAK
7763 case 338:
7764 YY_RULE_SETUP
7765 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7766         YY_BREAK
7767 case 339:
7768 YY_RULE_SETUP
7769 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7770         YY_BREAK
7771 case YY_STATE_EOF(AL_surfxml_peer):
7772 FAIL("EOF in attribute list of `peer' element.");
7773         YY_BREAK
7774
7775 case 340:
7776 /* rule 340 can match eol */
7777 YY_RULE_SETUP
7778 {
7779   LEAVE;
7780   ETag_surfxml_peer();
7781   popbuffer(); /* attribute */
7782   switch (YY_START) {
7783    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;
7784    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;
7785    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7786   }
7787  }
7788         YY_BREAK
7789 case 341:
7790 /* rule 341 can match eol */
7791 YY_RULE_SETUP
7792 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7793         YY_BREAK
7794 case 342:
7795 YY_RULE_SETUP
7796 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7797         YY_BREAK
7798 case YY_STATE_EOF(E_surfxml_peer):
7799 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7800         YY_BREAK
7801
7802 case 343:
7803 /* rule 343 can match eol */
7804 YY_RULE_SETUP
7805 FAIL("Starting tag <router> is not allowed here.");
7806         YY_BREAK
7807 case 344:
7808 /* rule 344 can match eol */
7809 YY_RULE_SETUP
7810 {
7811   AX_surfxml_router_id = 0;
7812   surfxml_router_id_isset = 0;
7813   AX_surfxml_router_coordinates = 0;
7814   surfxml_router_coordinates_isset = 0;
7815   ENTER(AL_surfxml_router); pushbuffer(0);
7816   }
7817         YY_BREAK
7818
7819 case 345:
7820 /* rule 345 can match eol */
7821 YY_RULE_SETUP
7822 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);
7823         YY_BREAK
7824 case 346:
7825 /* rule 346 can match eol */
7826 YY_RULE_SETUP
7827 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);
7828         YY_BREAK
7829 case 347:
7830 /* rule 347 can match eol */
7831 YY_RULE_SETUP
7832 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);
7833         YY_BREAK
7834 case 348:
7835 /* rule 348 can match eol */
7836 YY_RULE_SETUP
7837 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);
7838         YY_BREAK
7839 case 349:
7840 YY_RULE_SETUP
7841 {
7842   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7843   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7844  }
7845         YY_BREAK
7846 case 350:
7847 YY_RULE_SETUP
7848 {
7849   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7850   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7851   switch (YY_START) {
7852    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7853   }
7854  }
7855         YY_BREAK
7856 case 351:
7857 YY_RULE_SETUP
7858 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7859         YY_BREAK
7860 case 352:
7861 YY_RULE_SETUP
7862 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7863         YY_BREAK
7864 case YY_STATE_EOF(AL_surfxml_router):
7865 FAIL("EOF in attribute list of `router' element.");
7866         YY_BREAK
7867
7868 case 353:
7869 /* rule 353 can match eol */
7870 YY_RULE_SETUP
7871 {
7872   LEAVE;
7873   ETag_surfxml_router();
7874   popbuffer(); /* attribute */
7875   switch (YY_START) {
7876    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7877   }
7878  }
7879         YY_BREAK
7880 case 354:
7881 /* rule 354 can match eol */
7882 YY_RULE_SETUP
7883 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7884         YY_BREAK
7885 case 355:
7886 YY_RULE_SETUP
7887 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7888         YY_BREAK
7889 case YY_STATE_EOF(E_surfxml_router):
7890 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7891         YY_BREAK
7892
7893 case 356:
7894 /* rule 356 can match eol */
7895 YY_RULE_SETUP
7896 FAIL("Starting tag <backbone> is not allowed here.");
7897         YY_BREAK
7898 case 357:
7899 /* rule 357 can match eol */
7900 YY_RULE_SETUP
7901 {
7902   AX_surfxml_backbone_id = 0;
7903   surfxml_backbone_id_isset = 0;
7904   AX_surfxml_backbone_bandwidth = 0;
7905   surfxml_backbone_bandwidth_isset = 0;
7906   AX_surfxml_backbone_latency = 0;
7907   surfxml_backbone_latency_isset = 0;
7908   ENTER(AL_surfxml_backbone); pushbuffer(0);
7909   }
7910         YY_BREAK
7911
7912 case 358:
7913 /* rule 358 can match eol */
7914 YY_RULE_SETUP
7915 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");} surfxml_backbone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_id);
7916         YY_BREAK
7917 case 359:
7918 /* rule 359 can match eol */
7919 YY_RULE_SETUP
7920 if (surfxml_backbone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_backbone>");}  surfxml_backbone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_id);
7921         YY_BREAK
7922 case 360:
7923 /* rule 360 can match eol */
7924 YY_RULE_SETUP
7925 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");} surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_bandwidth);
7926         YY_BREAK
7927 case 361:
7928 /* rule 361 can match eol */
7929 YY_RULE_SETUP
7930 if (surfxml_backbone_bandwidth_isset != 0) {FAIL("Multiple definition of attribute bandwidth in <surfxml_backbone>");}  surfxml_backbone_bandwidth_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_bandwidth);
7931         YY_BREAK
7932 case 362:
7933 /* rule 362 can match eol */
7934 YY_RULE_SETUP
7935 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");} surfxml_backbone_latency_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_backbone_latency);
7936         YY_BREAK
7937 case 363:
7938 /* rule 363 can match eol */
7939 YY_RULE_SETUP
7940 if (surfxml_backbone_latency_isset != 0) {FAIL("Multiple definition of attribute latency in <surfxml_backbone>");}  surfxml_backbone_latency_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_backbone_latency);
7941         YY_BREAK
7942 case 364:
7943 YY_RULE_SETUP
7944 {
7945   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7946   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7947   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7948   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7949  }
7950         YY_BREAK
7951 case 365:
7952 YY_RULE_SETUP
7953 {
7954   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7955   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7956   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7957   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7958   switch (YY_START) {
7959    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7960    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7961   }
7962  }
7963         YY_BREAK
7964 case 366:
7965 YY_RULE_SETUP
7966 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
7967         YY_BREAK
7968 case 367:
7969 YY_RULE_SETUP
7970 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
7971         YY_BREAK
7972 case YY_STATE_EOF(AL_surfxml_backbone):
7973 FAIL("EOF in attribute list of `backbone' element.");
7974         YY_BREAK
7975
7976 case 368:
7977 /* rule 368 can match eol */
7978 YY_RULE_SETUP
7979 {
7980   LEAVE;
7981   ETag_surfxml_backbone();
7982   popbuffer(); /* attribute */
7983   switch (YY_START) {
7984    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7985    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7986   }
7987  }
7988         YY_BREAK
7989 case 369:
7990 /* rule 369 can match eol */
7991 YY_RULE_SETUP
7992 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
7993         YY_BREAK
7994 case 370:
7995 YY_RULE_SETUP
7996 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
7997         YY_BREAK
7998 case YY_STATE_EOF(E_surfxml_backbone):
7999 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8000         YY_BREAK
8001
8002 case 371:
8003 /* rule 371 can match eol */
8004 YY_RULE_SETUP
8005 FAIL("Starting tag <link> is not allowed here.");
8006         YY_BREAK
8007 case 372:
8008 /* rule 372 can match eol */
8009 YY_RULE_SETUP
8010 {
8011   AX_surfxml_link_id = 0;
8012   surfxml_link_id_isset = 0;
8013   AX_surfxml_link_bandwidth = 0;
8014   surfxml_link_bandwidth_isset = 0;
8015   AX_surfxml_link_bandwidth___file = 0;
8016   surfxml_link_bandwidth___file_isset = 0;
8017   AX_surfxml_link_latency = 24;
8018   surfxml_link_latency_isset = 0;
8019   AX_surfxml_link_latency___file = 0;
8020   surfxml_link_latency___file_isset = 0;
8021   AX_surfxml_link_state = A_surfxml_link_state_ON;
8022   surfxml_link_state_isset = 0;
8023   AX_surfxml_link_state___file = 0;
8024   surfxml_link_state___file_isset = 0;
8025   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8026   surfxml_link_sharing___policy_isset = 0;
8027   ENTER(AL_surfxml_link); pushbuffer(0);
8028   }
8029         YY_BREAK
8030
8031 case 373:
8032 /* rule 373 can match eol */
8033 YY_RULE_SETUP
8034 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);
8035         YY_BREAK
8036 case 374:
8037 /* rule 374 can match eol */
8038 YY_RULE_SETUP
8039 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);
8040         YY_BREAK
8041 case 375:
8042 /* rule 375 can match eol */
8043 YY_RULE_SETUP
8044 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);
8045         YY_BREAK
8046 case 376:
8047 /* rule 376 can match eol */
8048 YY_RULE_SETUP
8049 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);
8050         YY_BREAK
8051 case 377:
8052 /* rule 377 can match eol */
8053 YY_RULE_SETUP
8054 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);
8055         YY_BREAK
8056 case 378:
8057 /* rule 378 can match eol */
8058 YY_RULE_SETUP
8059 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);
8060         YY_BREAK
8061 case 379:
8062 /* rule 379 can match eol */
8063 YY_RULE_SETUP
8064 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);
8065         YY_BREAK
8066 case 380:
8067 /* rule 380 can match eol */
8068 YY_RULE_SETUP
8069 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);
8070         YY_BREAK
8071 case 381:
8072 /* rule 381 can match eol */
8073 YY_RULE_SETUP
8074 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);
8075         YY_BREAK
8076 case 382:
8077 /* rule 382 can match eol */
8078 YY_RULE_SETUP
8079 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);
8080         YY_BREAK
8081 case 383:
8082 /* rule 383 can match eol */
8083 case 384:
8084 /* rule 384 can match eol */
8085 YY_RULE_SETUP
8086 A_surfxml_link_state = A_surfxml_link_state_ON;
8087         YY_BREAK
8088 case 385:
8089 /* rule 385 can match eol */
8090 case 386:
8091 /* rule 386 can match eol */
8092 YY_RULE_SETUP
8093 A_surfxml_link_state = A_surfxml_link_state_OFF;
8094         YY_BREAK
8095 case 387:
8096 /* rule 387 can match eol */
8097 YY_RULE_SETUP
8098 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);
8099         YY_BREAK
8100 case 388:
8101 /* rule 388 can match eol */
8102 YY_RULE_SETUP
8103 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);
8104         YY_BREAK
8105 case 389:
8106 /* rule 389 can match eol */
8107 case 390:
8108 /* rule 390 can match eol */
8109 YY_RULE_SETUP
8110 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8111         YY_BREAK
8112 case 391:
8113 /* rule 391 can match eol */
8114 case 392:
8115 /* rule 392 can match eol */
8116 YY_RULE_SETUP
8117 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8118         YY_BREAK
8119 case 393:
8120 /* rule 393 can match eol */
8121 case 394:
8122 /* rule 394 can match eol */
8123 YY_RULE_SETUP
8124 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8125         YY_BREAK
8126 case 395:
8127 YY_RULE_SETUP
8128 {
8129   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8130   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8131   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8132  }
8133         YY_BREAK
8134 case 396:
8135 YY_RULE_SETUP
8136 {
8137   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8138   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8139   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8140   switch (YY_START) {
8141    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8142    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8143   }
8144  }
8145         YY_BREAK
8146 case 397:
8147 YY_RULE_SETUP
8148 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8149         YY_BREAK
8150 case 398:
8151 YY_RULE_SETUP
8152 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8153         YY_BREAK
8154 case YY_STATE_EOF(AL_surfxml_link):
8155 FAIL("EOF in attribute list of `link' element.");
8156         YY_BREAK
8157
8158 case 399:
8159 /* rule 399 can match eol */
8160 YY_RULE_SETUP
8161 {
8162   LEAVE;
8163   ETag_surfxml_link();
8164   popbuffer(); /* attribute */
8165   switch (YY_START) {
8166    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8167    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
8168   }
8169  }
8170         YY_BREAK
8171 case 400:
8172 /* rule 400 can match eol */
8173 YY_RULE_SETUP
8174 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8175         YY_BREAK
8176 case 401:
8177 YY_RULE_SETUP
8178 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8179         YY_BREAK
8180 case YY_STATE_EOF(E_surfxml_link):
8181 case YY_STATE_EOF(S_surfxml_link_2):
8182 case YY_STATE_EOF(S_surfxml_link):
8183 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8184         YY_BREAK
8185
8186 case 402:
8187 /* rule 402 can match eol */
8188 YY_RULE_SETUP
8189 FAIL("Starting tag <route> is not allowed here.");
8190         YY_BREAK
8191 case 403:
8192 /* rule 403 can match eol */
8193 YY_RULE_SETUP
8194 {
8195   AX_surfxml_route_src = 0;
8196   surfxml_route_src_isset = 0;
8197   AX_surfxml_route_dst = 0;
8198   surfxml_route_dst_isset = 0;
8199   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8200   surfxml_route_symmetrical_isset = 0;
8201   ENTER(AL_surfxml_route); pushbuffer(0);
8202   }
8203         YY_BREAK
8204
8205 case 404:
8206 /* rule 404 can match eol */
8207 YY_RULE_SETUP
8208 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);
8209         YY_BREAK
8210 case 405:
8211 /* rule 405 can match eol */
8212 YY_RULE_SETUP
8213 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);
8214         YY_BREAK
8215 case 406:
8216 /* rule 406 can match eol */
8217 YY_RULE_SETUP
8218 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);
8219         YY_BREAK
8220 case 407:
8221 /* rule 407 can match eol */
8222 YY_RULE_SETUP
8223 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);
8224         YY_BREAK
8225 case 408:
8226 /* rule 408 can match eol */
8227 case 409:
8228 /* rule 409 can match eol */
8229 YY_RULE_SETUP
8230 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8231         YY_BREAK
8232 case 410:
8233 /* rule 410 can match eol */
8234 case 411:
8235 /* rule 411 can match eol */
8236 YY_RULE_SETUP
8237 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8238         YY_BREAK
8239 case 412:
8240 YY_RULE_SETUP
8241 {
8242   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8243   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8244   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8245  }
8246         YY_BREAK
8247 case 413:
8248 YY_RULE_SETUP
8249 {
8250   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8251   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8252   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8253   switch (YY_START) {
8254    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8255   }
8256  }
8257         YY_BREAK
8258 case 414:
8259 YY_RULE_SETUP
8260 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8261         YY_BREAK
8262 case 415:
8263 YY_RULE_SETUP
8264 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8265         YY_BREAK
8266 case YY_STATE_EOF(AL_surfxml_route):
8267 FAIL("EOF in attribute list of `route' element.");
8268         YY_BREAK
8269
8270 case 416:
8271 /* rule 416 can match eol */
8272 YY_RULE_SETUP
8273 {
8274   LEAVE;
8275   ETag_surfxml_route();
8276   popbuffer(); /* attribute */
8277   switch (YY_START) {
8278    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8279   }
8280  }
8281         YY_BREAK
8282 case 417:
8283 /* rule 417 can match eol */
8284 YY_RULE_SETUP
8285 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8286         YY_BREAK
8287 case 418:
8288 YY_RULE_SETUP
8289 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8290         YY_BREAK
8291 case YY_STATE_EOF(S_surfxml_route):
8292 case YY_STATE_EOF(S_surfxml_route_2):
8293 case YY_STATE_EOF(E_surfxml_route):
8294 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8295         YY_BREAK
8296
8297 case 419:
8298 /* rule 419 can match eol */
8299 YY_RULE_SETUP
8300 FAIL("Starting tag <ASroute> is not allowed here.");
8301         YY_BREAK
8302 case 420:
8303 /* rule 420 can match eol */
8304 YY_RULE_SETUP
8305 {
8306   AX_surfxml_ASroute_src = 0;
8307   surfxml_ASroute_src_isset = 0;
8308   AX_surfxml_ASroute_dst = 0;
8309   surfxml_ASroute_dst_isset = 0;
8310   AX_surfxml_ASroute_gw___src = 0;
8311   surfxml_ASroute_gw___src_isset = 0;
8312   AX_surfxml_ASroute_gw___dst = 0;
8313   surfxml_ASroute_gw___dst_isset = 0;
8314   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8315   surfxml_ASroute_symmetrical_isset = 0;
8316   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8317   }
8318         YY_BREAK
8319
8320 case 421:
8321 /* rule 421 can match eol */
8322 YY_RULE_SETUP
8323 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);
8324         YY_BREAK
8325 case 422:
8326 /* rule 422 can match eol */
8327 YY_RULE_SETUP
8328 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);
8329         YY_BREAK
8330 case 423:
8331 /* rule 423 can match eol */
8332 YY_RULE_SETUP
8333 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);
8334         YY_BREAK
8335 case 424:
8336 /* rule 424 can match eol */
8337 YY_RULE_SETUP
8338 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);
8339         YY_BREAK
8340 case 425:
8341 /* rule 425 can match eol */
8342 YY_RULE_SETUP
8343 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);
8344         YY_BREAK
8345 case 426:
8346 /* rule 426 can match eol */
8347 YY_RULE_SETUP
8348 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);
8349         YY_BREAK
8350 case 427:
8351 /* rule 427 can match eol */
8352 YY_RULE_SETUP
8353 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);
8354         YY_BREAK
8355 case 428:
8356 /* rule 428 can match eol */
8357 YY_RULE_SETUP
8358 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);
8359         YY_BREAK
8360 case 429:
8361 /* rule 429 can match eol */
8362 case 430:
8363 /* rule 430 can match eol */
8364 YY_RULE_SETUP
8365 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8366         YY_BREAK
8367 case 431:
8368 /* rule 431 can match eol */
8369 case 432:
8370 /* rule 432 can match eol */
8371 YY_RULE_SETUP
8372 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8373         YY_BREAK
8374 case 433:
8375 YY_RULE_SETUP
8376 {
8377   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8378   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8379   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8380   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8381   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8382  }
8383         YY_BREAK
8384 case 434:
8385 YY_RULE_SETUP
8386 {
8387   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8388   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8389   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8390   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8391   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8392   switch (YY_START) {
8393    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8394   }
8395  }
8396         YY_BREAK
8397 case 435:
8398 YY_RULE_SETUP
8399 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8400         YY_BREAK
8401 case 436:
8402 YY_RULE_SETUP
8403 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8404         YY_BREAK
8405 case YY_STATE_EOF(AL_surfxml_ASroute):
8406 FAIL("EOF in attribute list of `ASroute' element.");
8407         YY_BREAK
8408
8409 case 437:
8410 /* rule 437 can match eol */
8411 YY_RULE_SETUP
8412 {
8413   LEAVE;
8414   ETag_surfxml_ASroute();
8415   popbuffer(); /* attribute */
8416   switch (YY_START) {
8417    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8418   }
8419  }
8420         YY_BREAK
8421 case 438:
8422 /* rule 438 can match eol */
8423 YY_RULE_SETUP
8424 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8425         YY_BREAK
8426 case 439:
8427 YY_RULE_SETUP
8428 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8429         YY_BREAK
8430 case YY_STATE_EOF(E_surfxml_ASroute):
8431 case YY_STATE_EOF(S_surfxml_ASroute):
8432 case YY_STATE_EOF(S_surfxml_ASroute_2):
8433 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8434         YY_BREAK
8435
8436 case 440:
8437 /* rule 440 can match eol */
8438 YY_RULE_SETUP
8439 FAIL("Starting tag <link_ctn> is not allowed here.");
8440         YY_BREAK
8441 case 441:
8442 /* rule 441 can match eol */
8443 YY_RULE_SETUP
8444 {
8445   AX_surfxml_link___ctn_id = 0;
8446   surfxml_link___ctn_id_isset = 0;
8447   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8448   surfxml_link___ctn_direction_isset = 0;
8449   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8450   }
8451         YY_BREAK
8452
8453 case 442:
8454 /* rule 442 can match eol */
8455 YY_RULE_SETUP
8456 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);
8457         YY_BREAK
8458 case 443:
8459 /* rule 443 can match eol */
8460 YY_RULE_SETUP
8461 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);
8462         YY_BREAK
8463 case 444:
8464 /* rule 444 can match eol */
8465 case 445:
8466 /* rule 445 can match eol */
8467 YY_RULE_SETUP
8468 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8469         YY_BREAK
8470 case 446:
8471 /* rule 446 can match eol */
8472 case 447:
8473 /* rule 447 can match eol */
8474 YY_RULE_SETUP
8475 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8476         YY_BREAK
8477 case 448:
8478 /* rule 448 can match eol */
8479 case 449:
8480 /* rule 449 can match eol */
8481 YY_RULE_SETUP
8482 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8483         YY_BREAK
8484 case 450:
8485 YY_RULE_SETUP
8486 {
8487   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8488   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8489  }
8490         YY_BREAK
8491 case 451:
8492 YY_RULE_SETUP
8493 {
8494   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8495   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8496   switch (YY_START) {
8497    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8498    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8499    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8500    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8501   }
8502  }
8503         YY_BREAK
8504 case 452:
8505 YY_RULE_SETUP
8506 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8507         YY_BREAK
8508 case 453:
8509 YY_RULE_SETUP
8510 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8511         YY_BREAK
8512 case YY_STATE_EOF(AL_surfxml_link___ctn):
8513 FAIL("EOF in attribute list of `link_ctn' element.");
8514         YY_BREAK
8515
8516 case 454:
8517 /* rule 454 can match eol */
8518 YY_RULE_SETUP
8519 {
8520   LEAVE;
8521   ETag_surfxml_link___ctn();
8522   popbuffer(); /* attribute */
8523   switch (YY_START) {
8524    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8525    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8526    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8527    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8528   }
8529  }
8530         YY_BREAK
8531 case 455:
8532 /* rule 455 can match eol */
8533 YY_RULE_SETUP
8534 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8535         YY_BREAK
8536 case 456:
8537 YY_RULE_SETUP
8538 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8539         YY_BREAK
8540 case YY_STATE_EOF(E_surfxml_link___ctn):
8541 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8542         YY_BREAK
8543
8544 case 457:
8545 /* rule 457 can match eol */
8546 YY_RULE_SETUP
8547 FAIL("Starting tag <bypassRoute> is not allowed here.");
8548         YY_BREAK
8549 case 458:
8550 /* rule 458 can match eol */
8551 YY_RULE_SETUP
8552 {
8553   AX_surfxml_bypassRoute_src = 0;
8554   surfxml_bypassRoute_src_isset = 0;
8555   AX_surfxml_bypassRoute_dst = 0;
8556   surfxml_bypassRoute_dst_isset = 0;
8557   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8558   }
8559         YY_BREAK
8560
8561 case 459:
8562 /* rule 459 can match eol */
8563 YY_RULE_SETUP
8564 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);
8565         YY_BREAK
8566 case 460:
8567 /* rule 460 can match eol */
8568 YY_RULE_SETUP
8569 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);
8570         YY_BREAK
8571 case 461:
8572 /* rule 461 can match eol */
8573 YY_RULE_SETUP
8574 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);
8575         YY_BREAK
8576 case 462:
8577 /* rule 462 can match eol */
8578 YY_RULE_SETUP
8579 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);
8580         YY_BREAK
8581 case 463:
8582 YY_RULE_SETUP
8583 {
8584   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8585   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8586   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8587  }
8588         YY_BREAK
8589 case 464:
8590 YY_RULE_SETUP
8591 {
8592   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8593   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8594   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8595   switch (YY_START) {
8596    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8597   }
8598  }
8599         YY_BREAK
8600 case 465:
8601 YY_RULE_SETUP
8602 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8603         YY_BREAK
8604 case 466:
8605 YY_RULE_SETUP
8606 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8607         YY_BREAK
8608 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8609 FAIL("EOF in attribute list of `bypassRoute' element.");
8610         YY_BREAK
8611
8612 case 467:
8613 /* rule 467 can match eol */
8614 YY_RULE_SETUP
8615 {
8616   LEAVE;
8617   ETag_surfxml_bypassRoute();
8618   popbuffer(); /* attribute */
8619   switch (YY_START) {
8620    case S_surfxml_AS_12: case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
8621   }
8622  }
8623         YY_BREAK
8624 case 468:
8625 /* rule 468 can match eol */
8626 YY_RULE_SETUP
8627 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8628         YY_BREAK
8629 case 469:
8630 YY_RULE_SETUP
8631 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8632         YY_BREAK
8633 case YY_STATE_EOF(S_surfxml_bypassRoute):
8634 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8635 case YY_STATE_EOF(E_surfxml_bypassRoute):
8636 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8637         YY_BREAK
8638
8639 case 470:
8640 /* rule 470 can match eol */
8641 YY_RULE_SETUP
8642 FAIL("Starting tag <bypassASroute> is not allowed here.");
8643         YY_BREAK
8644 case 471:
8645 /* rule 471 can match eol */
8646 YY_RULE_SETUP
8647 {
8648   AX_surfxml_bypassASroute_src = 0;
8649   surfxml_bypassASroute_src_isset = 0;
8650   AX_surfxml_bypassASroute_dst = 0;
8651   surfxml_bypassASroute_dst_isset = 0;
8652   AX_surfxml_bypassASroute_gw___src = 0;
8653   surfxml_bypassASroute_gw___src_isset = 0;
8654   AX_surfxml_bypassASroute_gw___dst = 0;
8655   surfxml_bypassASroute_gw___dst_isset = 0;
8656   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8657   }
8658         YY_BREAK
8659
8660 case 472:
8661 /* rule 472 can match eol */
8662 YY_RULE_SETUP
8663 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);
8664         YY_BREAK
8665 case 473:
8666 /* rule 473 can match eol */
8667 YY_RULE_SETUP
8668 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);
8669         YY_BREAK
8670 case 474:
8671 /* rule 474 can match eol */
8672 YY_RULE_SETUP
8673 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);
8674         YY_BREAK
8675 case 475:
8676 /* rule 475 can match eol */
8677 YY_RULE_SETUP
8678 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);
8679         YY_BREAK
8680 case 476:
8681 /* rule 476 can match eol */
8682 YY_RULE_SETUP
8683 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);
8684         YY_BREAK
8685 case 477:
8686 /* rule 477 can match eol */
8687 YY_RULE_SETUP
8688 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);
8689         YY_BREAK
8690 case 478:
8691 /* rule 478 can match eol */
8692 YY_RULE_SETUP
8693 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);
8694         YY_BREAK
8695 case 479:
8696 /* rule 479 can match eol */
8697 YY_RULE_SETUP
8698 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);
8699         YY_BREAK
8700 case 480:
8701 YY_RULE_SETUP
8702 {
8703   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8704   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8705   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8706   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8707   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8708  }
8709         YY_BREAK
8710 case 481:
8711 YY_RULE_SETUP
8712 {
8713   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8714   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8715   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8716   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8717   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8718   switch (YY_START) {
8719    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8720   }
8721  }
8722         YY_BREAK
8723 case 482:
8724 YY_RULE_SETUP
8725 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8726         YY_BREAK
8727 case 483:
8728 YY_RULE_SETUP
8729 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8730         YY_BREAK
8731 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8732 FAIL("EOF in attribute list of `bypassASroute' element.");
8733         YY_BREAK
8734
8735 case 484:
8736 /* rule 484 can match eol */
8737 YY_RULE_SETUP
8738 {
8739   LEAVE;
8740   ETag_surfxml_bypassASroute();
8741   popbuffer(); /* attribute */
8742   switch (YY_START) {
8743    case S_surfxml_AS_9: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_8: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_3: SET(S_surfxml_AS_9); break;
8744   }
8745  }
8746         YY_BREAK
8747 case 485:
8748 /* rule 485 can match eol */
8749 YY_RULE_SETUP
8750 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8751         YY_BREAK
8752 case 486:
8753 YY_RULE_SETUP
8754 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8755         YY_BREAK
8756 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8757 case YY_STATE_EOF(E_surfxml_bypassASroute):
8758 case YY_STATE_EOF(S_surfxml_bypassASroute):
8759 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8760         YY_BREAK
8761
8762 case 487:
8763 /* rule 487 can match eol */
8764 YY_RULE_SETUP
8765 FAIL("Starting tag <process> is not allowed here.");
8766         YY_BREAK
8767 case 488:
8768 /* rule 488 can match eol */
8769 YY_RULE_SETUP
8770 {
8771   AX_surfxml_process_host = 0;
8772   surfxml_process_host_isset = 0;
8773   AX_surfxml_process_function = 0;
8774   surfxml_process_function_isset = 0;
8775   AX_surfxml_process_start___time = 28;
8776   surfxml_process_start___time_isset = 0;
8777   AX_surfxml_process_kill___time = 33;
8778   surfxml_process_kill___time_isset = 0;
8779   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8780   surfxml_process_on___failure_isset = 0;
8781   ENTER(AL_surfxml_process); pushbuffer(0);
8782   }
8783         YY_BREAK
8784
8785 case 489:
8786 /* rule 489 can match eol */
8787 YY_RULE_SETUP
8788 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);
8789         YY_BREAK
8790 case 490:
8791 /* rule 490 can match eol */
8792 YY_RULE_SETUP
8793 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);
8794         YY_BREAK
8795 case 491:
8796 /* rule 491 can match eol */
8797 YY_RULE_SETUP
8798 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);
8799         YY_BREAK
8800 case 492:
8801 /* rule 492 can match eol */
8802 YY_RULE_SETUP
8803 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);
8804         YY_BREAK
8805 case 493:
8806 /* rule 493 can match eol */
8807 YY_RULE_SETUP
8808 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);
8809         YY_BREAK
8810 case 494:
8811 /* rule 494 can match eol */
8812 YY_RULE_SETUP
8813 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);
8814         YY_BREAK
8815 case 495:
8816 /* rule 495 can match eol */
8817 YY_RULE_SETUP
8818 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);
8819         YY_BREAK
8820 case 496:
8821 /* rule 496 can match eol */
8822 YY_RULE_SETUP
8823 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);
8824         YY_BREAK
8825 case 497:
8826 /* rule 497 can match eol */
8827 case 498:
8828 /* rule 498 can match eol */
8829 YY_RULE_SETUP
8830 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8831         YY_BREAK
8832 case 499:
8833 /* rule 499 can match eol */
8834 case 500:
8835 /* rule 500 can match eol */
8836 YY_RULE_SETUP
8837 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8838         YY_BREAK
8839 case 501:
8840 YY_RULE_SETUP
8841 {
8842   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8843   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8844   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8845  }
8846         YY_BREAK
8847 case 502:
8848 YY_RULE_SETUP
8849 {
8850   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8851   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8852   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8853   switch (YY_START) {
8854    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;
8855   }
8856  }
8857         YY_BREAK
8858 case 503:
8859 YY_RULE_SETUP
8860 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8861         YY_BREAK
8862 case 504:
8863 YY_RULE_SETUP
8864 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8865         YY_BREAK
8866 case YY_STATE_EOF(AL_surfxml_process):
8867 FAIL("EOF in attribute list of `process' element.");
8868         YY_BREAK
8869
8870 case 505:
8871 /* rule 505 can match eol */
8872 YY_RULE_SETUP
8873 {
8874   LEAVE;
8875   ETag_surfxml_process();
8876   popbuffer(); /* attribute */
8877   switch (YY_START) {
8878    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;
8879   }
8880  }
8881         YY_BREAK
8882 case 506:
8883 /* rule 506 can match eol */
8884 YY_RULE_SETUP
8885 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8886         YY_BREAK
8887 case 507:
8888 YY_RULE_SETUP
8889 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8890         YY_BREAK
8891 case YY_STATE_EOF(E_surfxml_process):
8892 case YY_STATE_EOF(S_surfxml_process):
8893 case YY_STATE_EOF(S_surfxml_process_2):
8894 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8895         YY_BREAK
8896
8897 case 508:
8898 /* rule 508 can match eol */
8899 YY_RULE_SETUP
8900 FAIL("Starting tag <argument> is not allowed here.");
8901         YY_BREAK
8902 case 509:
8903 /* rule 509 can match eol */
8904 YY_RULE_SETUP
8905 {
8906   AX_surfxml_argument_value = 0;
8907   surfxml_argument_value_isset = 0;
8908   ENTER(AL_surfxml_argument); pushbuffer(0);
8909   }
8910         YY_BREAK
8911
8912 case 510:
8913 /* rule 510 can match eol */
8914 YY_RULE_SETUP
8915 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);
8916         YY_BREAK
8917 case 511:
8918 /* rule 511 can match eol */
8919 YY_RULE_SETUP
8920 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);
8921         YY_BREAK
8922 case 512:
8923 YY_RULE_SETUP
8924 {
8925   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8926   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8927  }
8928         YY_BREAK
8929 case 513:
8930 YY_RULE_SETUP
8931 {
8932   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8933   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8934   switch (YY_START) {
8935    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8936   }
8937  }
8938         YY_BREAK
8939 case 514:
8940 YY_RULE_SETUP
8941 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8942         YY_BREAK
8943 case 515:
8944 YY_RULE_SETUP
8945 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8946         YY_BREAK
8947 case YY_STATE_EOF(AL_surfxml_argument):
8948 FAIL("EOF in attribute list of `argument' element.");
8949         YY_BREAK
8950
8951 case 516:
8952 /* rule 516 can match eol */
8953 YY_RULE_SETUP
8954 {
8955   LEAVE;
8956   ETag_surfxml_argument();
8957   popbuffer(); /* attribute */
8958   switch (YY_START) {
8959    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8960   }
8961  }
8962         YY_BREAK
8963 case 517:
8964 /* rule 517 can match eol */
8965 YY_RULE_SETUP
8966 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8967         YY_BREAK
8968 case 518:
8969 YY_RULE_SETUP
8970 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8971         YY_BREAK
8972 case YY_STATE_EOF(E_surfxml_argument):
8973 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8974         YY_BREAK
8975
8976 case 519:
8977 /* rule 519 can match eol */
8978 YY_RULE_SETUP
8979 FAIL("Starting tag <config> is not allowed here.");
8980         YY_BREAK
8981 case 520:
8982 /* rule 520 can match eol */
8983 YY_RULE_SETUP
8984 {
8985   AX_surfxml_config_id = 0;
8986   surfxml_config_id_isset = 0;
8987   ENTER(AL_surfxml_config); pushbuffer(0);
8988   }
8989         YY_BREAK
8990
8991 case 521:
8992 /* rule 521 can match eol */
8993 YY_RULE_SETUP
8994 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);
8995         YY_BREAK
8996 case 522:
8997 /* rule 522 can match eol */
8998 YY_RULE_SETUP
8999 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);
9000         YY_BREAK
9001 case 523:
9002 YY_RULE_SETUP
9003 {
9004   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9005  }
9006         YY_BREAK
9007 case 524:
9008 YY_RULE_SETUP
9009 {
9010   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9011   switch (YY_START) {
9012    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9013   }
9014  }
9015         YY_BREAK
9016 case 525:
9017 YY_RULE_SETUP
9018 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9019         YY_BREAK
9020 case 526:
9021 YY_RULE_SETUP
9022 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9023         YY_BREAK
9024 case YY_STATE_EOF(AL_surfxml_config):
9025 FAIL("EOF in attribute list of `config' element.");
9026         YY_BREAK
9027
9028 case 527:
9029 /* rule 527 can match eol */
9030 YY_RULE_SETUP
9031 {
9032   LEAVE;
9033   ETag_surfxml_config();
9034   popbuffer(); /* attribute */
9035   switch (YY_START) {
9036    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9037   }
9038  }
9039         YY_BREAK
9040 case 528:
9041 /* rule 528 can match eol */
9042 YY_RULE_SETUP
9043 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9044         YY_BREAK
9045 case 529:
9046 YY_RULE_SETUP
9047 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9048         YY_BREAK
9049 case YY_STATE_EOF(S_surfxml_config):
9050 case YY_STATE_EOF(S_surfxml_config_2):
9051 case YY_STATE_EOF(E_surfxml_config):
9052 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9053         YY_BREAK
9054
9055 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9056   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9057 case 530:
9058 /* rule 530 can match eol */
9059 YY_RULE_SETUP
9060 FAIL("Starting tag <prop> is not allowed here.");
9061         YY_BREAK
9062 case 531:
9063 /* rule 531 can match eol */
9064 YY_RULE_SETUP
9065 {
9066   AX_surfxml_prop_id = 0;
9067   surfxml_prop_id_isset = 0;
9068   AX_surfxml_prop_value = 0;
9069   surfxml_prop_value_isset = 0;
9070   ENTER(AL_surfxml_prop); pushbuffer(0);
9071   }
9072         YY_BREAK
9073
9074 case 532:
9075 /* rule 532 can match eol */
9076 YY_RULE_SETUP
9077 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);
9078         YY_BREAK
9079 case 533:
9080 /* rule 533 can match eol */
9081 YY_RULE_SETUP
9082 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);
9083         YY_BREAK
9084 case 534:
9085 /* rule 534 can match eol */
9086 YY_RULE_SETUP
9087 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);
9088         YY_BREAK
9089 case 535:
9090 /* rule 535 can match eol */
9091 YY_RULE_SETUP
9092 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);
9093         YY_BREAK
9094 case 536:
9095 YY_RULE_SETUP
9096 {
9097   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9098   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9099   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9100  }
9101         YY_BREAK
9102 case 537:
9103 YY_RULE_SETUP
9104 {
9105   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9106   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9107   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9108   switch (YY_START) {
9109    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9110    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9111    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9112    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9113    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9114    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9115    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9116   }
9117  }
9118         YY_BREAK
9119 case 538:
9120 YY_RULE_SETUP
9121 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9122         YY_BREAK
9123 case 539:
9124 YY_RULE_SETUP
9125 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9126         YY_BREAK
9127 case YY_STATE_EOF(AL_surfxml_prop):
9128 FAIL("EOF in attribute list of `prop' element.");
9129         YY_BREAK
9130
9131 case 540:
9132 /* rule 540 can match eol */
9133 YY_RULE_SETUP
9134 {
9135   LEAVE;
9136   ETag_surfxml_prop();
9137   popbuffer(); /* attribute */
9138   switch (YY_START) {
9139    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9140    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9141    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9142    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9143    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9144    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9145    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9146   }
9147  }
9148         YY_BREAK
9149 case 541:
9150 /* rule 541 can match eol */
9151 YY_RULE_SETUP
9152 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9153         YY_BREAK
9154 case 542:
9155 YY_RULE_SETUP
9156 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9157         YY_BREAK
9158 case YY_STATE_EOF(E_surfxml_prop):
9159 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9160         YY_BREAK
9161
9162 /* EPILOG: after the root element. */
9163
9164 case 543:
9165 YY_RULE_SETUP
9166 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9167         YY_BREAK
9168 case YY_STATE_EOF(EPILOG):
9169 SUCCEED;
9170         YY_BREAK
9171
9172 /* CHARACTER DATA. */
9173
9174 /* Non-defined standard entities... */
9175 case 544:
9176 YY_RULE_SETUP
9177 BUFFERPUTC('&');
9178         YY_BREAK
9179 case 545:
9180 YY_RULE_SETUP
9181 BUFFERPUTC('<');
9182         YY_BREAK
9183 case 546:
9184 YY_RULE_SETUP
9185 BUFFERPUTC('>');
9186         YY_BREAK
9187 case 547:
9188 YY_RULE_SETUP
9189 BUFFERPUTC('\'');
9190         YY_BREAK
9191 case 548:
9192 YY_RULE_SETUP
9193 BUFFERPUTC('"');
9194         YY_BREAK
9195 /* Character entities. */
9196 case 549:
9197 YY_RULE_SETUP
9198 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9199         YY_BREAK
9200 case 550:
9201 YY_RULE_SETUP
9202 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9203         YY_BREAK
9204
9205 case 551:
9206 /* rule 551 can match eol */
9207 case 552:
9208 /* rule 552 can match eol */
9209 case 553:
9210 /* rule 553 can match eol */
9211 case 554:
9212 /* rule 554 can match eol */
9213 YY_RULE_SETUP
9214 BUFFERPUTC('\n');
9215         YY_BREAK
9216
9217 case 555:
9218 YY_RULE_SETUP
9219 ENTER(CDATA);
9220         YY_BREAK
9221 case 556:
9222 YY_RULE_SETUP
9223 FAIL("Unexpected `]""]>' in character data.");
9224         YY_BREAK
9225
9226 case 557:
9227 YY_RULE_SETUP
9228 BUFFERDONE; LEAVE;
9229         YY_BREAK
9230 case YY_STATE_EOF(VALUE1):
9231 FAIL("EOF in literal (\"'\" expected).");
9232         YY_BREAK
9233
9234 case 558:
9235 YY_RULE_SETUP
9236 BUFFERDONE; LEAVE;
9237         YY_BREAK
9238 case YY_STATE_EOF(VALUE2):
9239 FAIL("EOF in literal (`\"' expected).");
9240         YY_BREAK
9241
9242 case 559:
9243 /* rule 559 can match eol */
9244 YY_RULE_SETUP
9245 BUFFERPUTC(surf_parse_text[0]);
9246         YY_BREAK
9247 case 560:
9248 YY_RULE_SETUP
9249 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9250         YY_BREAK
9251
9252 case 561:
9253 YY_RULE_SETUP
9254 LEAVE;
9255         YY_BREAK
9256 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9257 case 562:
9258 YY_RULE_SETUP
9259 BUFFERPUTC(surf_parse_text[0]);
9260         YY_BREAK
9261 case YY_STATE_EOF(CDATA):
9262 FAIL("EOF in CDATA section.");
9263         YY_BREAK
9264
9265 /* Impossible rules to avoid warnings from flex(1). */
9266 /* Ideally, this should be replaced by code in flexml.pl that
9267     generates just the states not covered by other rules. */
9268
9269 case 563:
9270 /* rule 563 can match eol */
9271 YY_RULE_SETUP
9272 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9273         YY_BREAK
9274
9275 case 564:
9276 YY_RULE_SETUP
9277 ECHO;
9278         YY_BREAK
9279 case YY_STATE_EOF(INITIAL):
9280 case YY_STATE_EOF(ROOT_surfxml_platform):
9281 case YY_STATE_EOF(S_surfxml_platform_2):
9282 case YY_STATE_EOF(S_surfxml_platform_5):
9283 case YY_STATE_EOF(S_surfxml_platform_7):
9284 case YY_STATE_EOF(S_surfxml_include_1):
9285 case YY_STATE_EOF(S_surfxml_AS_2):
9286 case YY_STATE_EOF(S_surfxml_AS_5):
9287 case YY_STATE_EOF(S_surfxml_AS_8):
9288 case YY_STATE_EOF(S_surfxml_AS_10):
9289 case YY_STATE_EOF(S_surfxml_AS_13):
9290 case YY_STATE_EOF(S_surfxml_AS_15):
9291 case YY_STATE_EOF(S_surfxml_storage___type_1):
9292 case YY_STATE_EOF(S_surfxml_storage_1):
9293 case YY_STATE_EOF(S_surfxml_host_1):
9294 case YY_STATE_EOF(S_surfxml_link_1):
9295 case YY_STATE_EOF(S_surfxml_route_1):
9296 case YY_STATE_EOF(S_surfxml_ASroute_1):
9297 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9298 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9299 case YY_STATE_EOF(S_surfxml_process_1):
9300 case YY_STATE_EOF(S_surfxml_config_1):
9301 case YY_STATE_EOF(IMPOSSIBLE):
9302         yyterminate();
9303
9304         case YY_END_OF_BUFFER:
9305                 {
9306                 /* Amount of text matched not including the EOB char. */
9307                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9308
9309                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9310                 *yy_cp = (yy_hold_char);
9311                 YY_RESTORE_YY_MORE_OFFSET
9312
9313                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9314                         {
9315                         /* We're scanning a new file or input source.  It's
9316                          * possible that this happened because the user
9317                          * just pointed surf_parse_in at a new source and called
9318                          * surf_parse_lex().  If so, then we have to assure
9319                          * consistency between YY_CURRENT_BUFFER and our
9320                          * globals.  Here is the right place to do so, because
9321                          * this is the first action (other than possibly a
9322                          * back-up) that will match for the new input source.
9323                          */
9324                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9325                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9326                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9327                         }
9328
9329                 /* Note that here we test for yy_c_buf_p "<=" to the position
9330                  * of the first EOB in the buffer, since yy_c_buf_p will
9331                  * already have been incremented past the NUL character
9332                  * (since all states make transitions on EOB to the
9333                  * end-of-buffer state).  Contrast this with the test
9334                  * in input().
9335                  */
9336                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9337                         { /* This was really a NUL. */
9338                         yy_state_type yy_next_state;
9339
9340                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9341
9342                         yy_current_state = yy_get_previous_state(  );
9343
9344                         /* Okay, we're now positioned to make the NUL
9345                          * transition.  We couldn't have
9346                          * yy_get_previous_state() go ahead and do it
9347                          * for us because it doesn't know how to deal
9348                          * with the possibility of jamming (and we don't
9349                          * want to build jamming into it because then it
9350                          * will run more slowly).
9351                          */
9352
9353                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9354
9355                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9356
9357                         if ( yy_next_state )
9358                                 {
9359                                 /* Consume the NUL. */
9360                                 yy_cp = ++(yy_c_buf_p);
9361                                 yy_current_state = yy_next_state;
9362                                 goto yy_match;
9363                                 }
9364
9365                         else
9366                                 {
9367                                 yy_cp = (yy_c_buf_p);
9368                                 goto yy_find_action;
9369                                 }
9370                         }
9371
9372                 else switch ( yy_get_next_buffer(  ) )
9373                         {
9374                         case EOB_ACT_END_OF_FILE:
9375                                 {
9376                                 (yy_did_buffer_switch_on_eof) = 0;
9377
9378                                 if ( surf_parse_wrap( ) )
9379                                         {
9380                                         /* Note: because we've taken care in
9381                                          * yy_get_next_buffer() to have set up
9382                                          * surf_parse_text, we can now set up
9383                                          * yy_c_buf_p so that if some total
9384                                          * hoser (like flex itself) wants to
9385                                          * call the scanner after we return the
9386                                          * YY_NULL, it'll still work - another
9387                                          * YY_NULL will get returned.
9388                                          */
9389                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9390
9391                                         yy_act = YY_STATE_EOF(YY_START);
9392                                         goto do_action;
9393                                         }
9394
9395                                 else
9396                                         {
9397                                         if ( ! (yy_did_buffer_switch_on_eof) )
9398                                                 YY_NEW_FILE;
9399                                         }
9400                                 break;
9401                                 }
9402
9403                         case EOB_ACT_CONTINUE_SCAN:
9404                                 (yy_c_buf_p) =
9405                                         (yytext_ptr) + yy_amount_of_matched_text;
9406
9407                                 yy_current_state = yy_get_previous_state(  );
9408
9409                                 yy_cp = (yy_c_buf_p);
9410                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9411                                 goto yy_match;
9412
9413                         case EOB_ACT_LAST_MATCH:
9414                                 (yy_c_buf_p) =
9415                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9416
9417                                 yy_current_state = yy_get_previous_state(  );
9418
9419                                 yy_cp = (yy_c_buf_p);
9420                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9421                                 goto yy_find_action;
9422                         }
9423                 break;
9424                 }
9425
9426         default:
9427                 YY_FATAL_ERROR(
9428                         "fatal flex scanner internal error--no action found" );
9429         } /* end of action switch */
9430                 } /* end of scanning one token */
9431 } /* end of surf_parse_lex */
9432
9433 /* yy_get_next_buffer - try to read in a new buffer
9434  *
9435  * Returns a code representing an action:
9436  *      EOB_ACT_LAST_MATCH -
9437  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9438  *      EOB_ACT_END_OF_FILE - end of file
9439  */
9440 static int yy_get_next_buffer (void)
9441 {
9442         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9443         register char *source = (yytext_ptr);
9444         register int number_to_move, i;
9445         int ret_val;
9446
9447         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9448                 YY_FATAL_ERROR(
9449                 "fatal flex scanner internal error--end of buffer missed" );
9450
9451         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9452                 { /* Don't try to fill the buffer, so this is an EOF. */
9453                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9454                         {
9455                         /* We matched a single character, the EOB, so
9456                          * treat this as a final EOF.
9457                          */
9458                         return EOB_ACT_END_OF_FILE;
9459                         }
9460
9461                 else
9462                         {
9463                         /* We matched some text prior to the EOB, first
9464                          * process it.
9465                          */
9466                         return EOB_ACT_LAST_MATCH;
9467                         }
9468                 }
9469
9470         /* Try to read more data. */
9471
9472         /* First move last chars to start of buffer. */
9473         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9474
9475         for ( i = 0; i < number_to_move; ++i )
9476                 *(dest++) = *(source++);
9477
9478         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9479                 /* don't do the read, it's not guaranteed to return an EOF,
9480                  * just force an EOF
9481                  */
9482                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9483
9484         else
9485                 {
9486                         int num_to_read =
9487                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9488
9489                 while ( num_to_read <= 0 )
9490                         { /* Not enough room in the buffer - grow it. */
9491
9492                         /* just a shorter name for the current buffer */
9493                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9494
9495                         int yy_c_buf_p_offset =
9496                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9497
9498                         if ( b->yy_is_our_buffer )
9499                                 {
9500                                 int new_size = b->yy_buf_size * 2;
9501
9502                                 if ( new_size <= 0 )
9503                                         b->yy_buf_size += b->yy_buf_size / 8;
9504                                 else
9505                                         b->yy_buf_size *= 2;
9506
9507                                 b->yy_ch_buf = (char *)
9508                                         /* Include room in for 2 EOB chars. */
9509                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9510                                 }
9511                         else
9512                                 /* Can't grow it, we don't own it. */
9513                                 b->yy_ch_buf = 0;
9514
9515                         if ( ! b->yy_ch_buf )
9516                                 YY_FATAL_ERROR(
9517                                 "fatal error - scanner input buffer overflow" );
9518
9519                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9520
9521                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9522                                                 number_to_move - 1;
9523
9524                         }
9525
9526                 if ( num_to_read > YY_READ_BUF_SIZE )
9527                         num_to_read = YY_READ_BUF_SIZE;
9528
9529                 /* Read in more data. */
9530                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9531                         (yy_n_chars), (size_t) num_to_read );
9532
9533                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9534                 }
9535
9536         if ( (yy_n_chars) == 0 )
9537                 {
9538                 if ( number_to_move == YY_MORE_ADJ )
9539                         {
9540                         ret_val = EOB_ACT_END_OF_FILE;
9541                         surf_parse_restart(surf_parse_in  );
9542                         }
9543
9544                 else
9545                         {
9546                         ret_val = EOB_ACT_LAST_MATCH;
9547                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9548                                 YY_BUFFER_EOF_PENDING;
9549                         }
9550                 }
9551
9552         else
9553                 ret_val = EOB_ACT_CONTINUE_SCAN;
9554
9555         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9556                 /* Extend the array by 50%, plus the number we really need. */
9557                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9558                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9559                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9560                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9561         }
9562
9563         (yy_n_chars) += number_to_move;
9564         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9565         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9566
9567         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9568
9569         return ret_val;
9570 }
9571
9572 /* yy_get_previous_state - get the state just before the EOB char was reached */
9573
9574     static yy_state_type yy_get_previous_state (void)
9575 {
9576         register yy_state_type yy_current_state;
9577         register char *yy_cp;
9578     
9579         yy_current_state = (yy_start);
9580
9581         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9582                 {
9583                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9584                 if ( yy_accept[yy_current_state] )
9585                         {
9586                         (yy_last_accepting_state) = yy_current_state;
9587                         (yy_last_accepting_cpos) = yy_cp;
9588                         }
9589                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9590                         {
9591                         yy_current_state = (int) yy_def[yy_current_state];
9592                         if ( yy_current_state >= 3299 )
9593                                 yy_c = yy_meta[(unsigned int) yy_c];
9594                         }
9595                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9596                 }
9597
9598         return yy_current_state;
9599 }
9600
9601 /* yy_try_NUL_trans - try to make a transition on the NUL character
9602  *
9603  * synopsis
9604  *      next_state = yy_try_NUL_trans( current_state );
9605  */
9606     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9607 {
9608         register int yy_is_jam;
9609         register char *yy_cp = (yy_c_buf_p);
9610
9611         register YY_CHAR yy_c = 1;
9612         if ( yy_accept[yy_current_state] )
9613                 {
9614                 (yy_last_accepting_state) = yy_current_state;
9615                 (yy_last_accepting_cpos) = yy_cp;
9616                 }
9617         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9618                 {
9619                 yy_current_state = (int) yy_def[yy_current_state];
9620                 if ( yy_current_state >= 3299 )
9621                         yy_c = yy_meta[(unsigned int) yy_c];
9622                 }
9623         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9624         yy_is_jam = (yy_current_state == 3298);
9625
9626         return yy_is_jam ? 0 : yy_current_state;
9627 }
9628
9629 #ifndef YY_NO_INPUT
9630 #ifdef __cplusplus
9631     static int yyinput (void)
9632 #else
9633     static int input  (void)
9634 #endif
9635
9636 {
9637         int c;
9638     
9639         *(yy_c_buf_p) = (yy_hold_char);
9640
9641         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9642                 {
9643                 /* yy_c_buf_p now points to the character we want to return.
9644                  * If this occurs *before* the EOB characters, then it's a
9645                  * valid NUL; if not, then we've hit the end of the buffer.
9646                  */
9647                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9648                         /* This was really a NUL. */
9649                         *(yy_c_buf_p) = '\0';
9650
9651                 else
9652                         { /* need more input */
9653                         int offset = (yy_c_buf_p) - (yytext_ptr);
9654                         ++(yy_c_buf_p);
9655
9656                         switch ( yy_get_next_buffer(  ) )
9657                                 {
9658                                 case EOB_ACT_LAST_MATCH:
9659                                         /* This happens because yy_g_n_b()
9660                                          * sees that we've accumulated a
9661                                          * token and flags that we need to
9662                                          * try matching the token before
9663                                          * proceeding.  But for input(),
9664                                          * there's no matching to consider.
9665                                          * So convert the EOB_ACT_LAST_MATCH
9666                                          * to EOB_ACT_END_OF_FILE.
9667                                          */
9668
9669                                         /* Reset buffer status. */
9670                                         surf_parse_restart(surf_parse_in );
9671
9672                                         /*FALLTHROUGH*/
9673
9674                                 case EOB_ACT_END_OF_FILE:
9675                                         {
9676                                         if ( surf_parse_wrap( ) )
9677                                                 return EOF;
9678
9679                                         if ( ! (yy_did_buffer_switch_on_eof) )
9680                                                 YY_NEW_FILE;
9681 #ifdef __cplusplus
9682                                         return yyinput();
9683 #else
9684                                         return input();
9685 #endif
9686                                         }
9687
9688                                 case EOB_ACT_CONTINUE_SCAN:
9689                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9690                                         break;
9691                                 }
9692                         }
9693                 }
9694
9695         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9696         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9697         (yy_hold_char) = *++(yy_c_buf_p);
9698
9699         if ( c == '\n' )
9700                    
9701     surf_parse_lineno++;
9702 ;
9703
9704         return c;
9705 }
9706 #endif  /* ifndef YY_NO_INPUT */
9707
9708 /** Immediately switch to a different input stream.
9709  * @param input_file A readable stream.
9710  * 
9711  * @note This function does not reset the start condition to @c INITIAL .
9712  */
9713     void surf_parse_restart  (FILE * input_file )
9714 {
9715     
9716         if ( ! YY_CURRENT_BUFFER ){
9717         surf_parse_ensure_buffer_stack ();
9718                 YY_CURRENT_BUFFER_LVALUE =
9719             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9720         }
9721
9722         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9723         surf_parse__load_buffer_state( );
9724 }
9725
9726 /** Switch to a different input buffer.
9727  * @param new_buffer The new input buffer.
9728  * 
9729  */
9730     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9731 {
9732     
9733         /* TODO. We should be able to replace this entire function body
9734          * with
9735          *              surf_parse_pop_buffer_state();
9736          *              surf_parse_push_buffer_state(new_buffer);
9737      */
9738         surf_parse_ensure_buffer_stack ();
9739         if ( YY_CURRENT_BUFFER == new_buffer )
9740                 return;
9741
9742         if ( YY_CURRENT_BUFFER )
9743                 {
9744                 /* Flush out information for old buffer. */
9745                 *(yy_c_buf_p) = (yy_hold_char);
9746                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9747                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9748                 }
9749
9750         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9751         surf_parse__load_buffer_state( );
9752
9753         /* We don't actually know whether we did this switch during
9754          * EOF (surf_parse_wrap()) processing, but the only time this flag
9755          * is looked at is after surf_parse_wrap() is called, so it's safe
9756          * to go ahead and always set it.
9757          */
9758         (yy_did_buffer_switch_on_eof) = 1;
9759 }
9760
9761 static void surf_parse__load_buffer_state  (void)
9762 {
9763         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9764         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9765         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9766         (yy_hold_char) = *(yy_c_buf_p);
9767 }
9768
9769 /** Allocate and initialize an input buffer state.
9770  * @param file A readable stream.
9771  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9772  * 
9773  * @return the allocated buffer state.
9774  */
9775     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9776 {
9777         YY_BUFFER_STATE b;
9778     
9779         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9780         if ( ! b )
9781                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9782
9783         b->yy_buf_size = size;
9784
9785         /* yy_ch_buf has to be 2 characters longer than the size given because
9786          * we need to put in 2 end-of-buffer characters.
9787          */
9788         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9789         if ( ! b->yy_ch_buf )
9790                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9791
9792         b->yy_is_our_buffer = 1;
9793
9794         surf_parse__init_buffer(b,file );
9795
9796         return b;
9797 }
9798
9799 /** Destroy the buffer.
9800  * @param b a buffer created with surf_parse__create_buffer()
9801  * 
9802  */
9803     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9804 {
9805     
9806         if ( ! b )
9807                 return;
9808
9809         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9810                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9811
9812         if ( b->yy_is_our_buffer )
9813                 surf_parse_free((void *) b->yy_ch_buf  );
9814
9815         surf_parse_free((void *) b  );
9816 }
9817
9818 #ifndef __cplusplus
9819 extern int isatty (int );
9820 #endif /* __cplusplus */
9821     
9822 /* Initializes or reinitializes a buffer.
9823  * This function is sometimes called more than once on the same buffer,
9824  * such as during a surf_parse_restart() or at EOF.
9825  */
9826     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9827
9828 {
9829         int oerrno = errno;
9830     
9831         surf_parse__flush_buffer(b );
9832
9833         b->yy_input_file = file;
9834         b->yy_fill_buffer = 1;
9835
9836     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9837      * called from surf_parse_restart() or through yy_get_next_buffer.
9838      * In that case, we don't want to reset the lineno or column.
9839      */
9840     if (b != YY_CURRENT_BUFFER){
9841         b->yy_bs_lineno = 1;
9842         b->yy_bs_column = 0;
9843     }
9844
9845         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9846     
9847         errno = oerrno;
9848 }
9849
9850 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9851  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9852  * 
9853  */
9854     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9855 {
9856         if ( ! b )
9857                 return;
9858
9859         b->yy_n_chars = 0;
9860
9861         /* We always need two end-of-buffer characters.  The first causes
9862          * a transition to the end-of-buffer state.  The second causes
9863          * a jam in that state.
9864          */
9865         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9866         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9867
9868         b->yy_buf_pos = &b->yy_ch_buf[0];
9869
9870         b->yy_at_bol = 1;
9871         b->yy_buffer_status = YY_BUFFER_NEW;
9872
9873         if ( b == YY_CURRENT_BUFFER )
9874                 surf_parse__load_buffer_state( );
9875 }
9876
9877 /** Pushes the new state onto the stack. The new state becomes
9878  *  the current state. This function will allocate the stack
9879  *  if necessary.
9880  *  @param new_buffer The new state.
9881  *  
9882  */
9883 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9884 {
9885         if (new_buffer == NULL)
9886                 return;
9887
9888         surf_parse_ensure_buffer_stack();
9889
9890         /* This block is copied from surf_parse__switch_to_buffer. */
9891         if ( YY_CURRENT_BUFFER )
9892                 {
9893                 /* Flush out information for old buffer. */
9894                 *(yy_c_buf_p) = (yy_hold_char);
9895                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9896                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9897                 }
9898
9899         /* Only push if top exists. Otherwise, replace top. */
9900         if (YY_CURRENT_BUFFER)
9901                 (yy_buffer_stack_top)++;
9902         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9903
9904         /* copied from surf_parse__switch_to_buffer. */
9905         surf_parse__load_buffer_state( );
9906         (yy_did_buffer_switch_on_eof) = 1;
9907 }
9908
9909 /** Removes and deletes the top of the stack, if present.
9910  *  The next element becomes the new top.
9911  *  
9912  */
9913 void surf_parse_pop_buffer_state (void)
9914 {
9915         if (!YY_CURRENT_BUFFER)
9916                 return;
9917
9918         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9919         YY_CURRENT_BUFFER_LVALUE = NULL;
9920         if ((yy_buffer_stack_top) > 0)
9921                 --(yy_buffer_stack_top);
9922
9923         if (YY_CURRENT_BUFFER) {
9924                 surf_parse__load_buffer_state( );
9925                 (yy_did_buffer_switch_on_eof) = 1;
9926         }
9927 }
9928
9929 /* Allocates the stack if it does not exist.
9930  *  Guarantees space for at least one push.
9931  */
9932 static void surf_parse_ensure_buffer_stack (void)
9933 {
9934         int num_to_alloc;
9935     
9936         if (!(yy_buffer_stack)) {
9937
9938                 /* First allocation is just for 2 elements, since we don't know if this
9939                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9940                  * immediate realloc on the next call.
9941          */
9942                 num_to_alloc = 1;
9943                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9944                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9945                                                                 );
9946                 if ( ! (yy_buffer_stack) )
9947                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9948                                                                   
9949                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9950                                 
9951                 (yy_buffer_stack_max) = num_to_alloc;
9952                 (yy_buffer_stack_top) = 0;
9953                 return;
9954         }
9955
9956         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9957
9958                 /* Increase the buffer to prepare for a possible push. */
9959                 int grow_size = 8 /* arbitrary grow size */;
9960
9961                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9962                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9963                                                                 ((yy_buffer_stack),
9964                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9965                                                                 );
9966                 if ( ! (yy_buffer_stack) )
9967                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9968
9969                 /* zero only the new slots.*/
9970                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9971                 (yy_buffer_stack_max) = num_to_alloc;
9972         }
9973 }
9974
9975 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9976  * @param base the character buffer
9977  * @param size the size in bytes of the character buffer
9978  * 
9979  * @return the newly allocated buffer state object. 
9980  */
9981 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9982 {
9983         YY_BUFFER_STATE b;
9984     
9985         if ( size < 2 ||
9986              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9987              base[size-1] != YY_END_OF_BUFFER_CHAR )
9988                 /* They forgot to leave room for the EOB's. */
9989                 return 0;
9990
9991         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9992         if ( ! b )
9993                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9994
9995         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
9996         b->yy_buf_pos = b->yy_ch_buf = base;
9997         b->yy_is_our_buffer = 0;
9998         b->yy_input_file = 0;
9999         b->yy_n_chars = b->yy_buf_size;
10000         b->yy_is_interactive = 0;
10001         b->yy_at_bol = 1;
10002         b->yy_fill_buffer = 0;
10003         b->yy_buffer_status = YY_BUFFER_NEW;
10004
10005         surf_parse__switch_to_buffer(b  );
10006
10007         return b;
10008 }
10009
10010 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10011  * scan from a @e copy of @a str.
10012  * @param yystr a NUL-terminated string to scan
10013  * 
10014  * @return the newly allocated buffer state object.
10015  * @note If you want to scan bytes that may contain NUL values, then use
10016  *       surf_parse__scan_bytes() instead.
10017  */
10018 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10019 {
10020     
10021         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10022 }
10023
10024 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10025  * scan from a @e copy of @a bytes.
10026  * @param yybytes the byte buffer to scan
10027  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10028  * 
10029  * @return the newly allocated buffer state object.
10030  */
10031 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
10032 {
10033         YY_BUFFER_STATE b;
10034         char *buf;
10035         yy_size_t n;
10036         int i;
10037     
10038         /* Get memory for full buffer, including space for trailing EOB's. */
10039         n = _yybytes_len + 2;
10040         buf = (char *) surf_parse_alloc(n  );
10041         if ( ! buf )
10042                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10043
10044         for ( i = 0; i < _yybytes_len; ++i )
10045                 buf[i] = yybytes[i];
10046
10047         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10048
10049         b = surf_parse__scan_buffer(buf,n );
10050         if ( ! b )
10051                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10052
10053         /* It's okay to grow etc. this buffer, and we should throw it
10054          * away when we're done.
10055          */
10056         b->yy_is_our_buffer = 1;
10057
10058         return b;
10059 }
10060
10061     static void yy_push_state (int  new_state )
10062 {
10063         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10064                 {
10065                 yy_size_t new_size;
10066
10067                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10068                 new_size = (yy_start_stack_depth) * sizeof( int );
10069
10070                 if ( ! (yy_start_stack) )
10071                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10072
10073                 else
10074                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10075
10076                 if ( ! (yy_start_stack) )
10077                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10078                 }
10079
10080         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10081
10082         BEGIN(new_state);
10083 }
10084
10085     static void yy_pop_state  (void)
10086 {
10087         if ( --(yy_start_stack_ptr) < 0 )
10088                 YY_FATAL_ERROR( "start-condition stack underflow" );
10089
10090         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10091 }
10092
10093 #ifndef YY_EXIT_FAILURE
10094 #define YY_EXIT_FAILURE 2
10095 #endif
10096
10097 static void yy_fatal_error (yyconst char* msg )
10098 {
10099         (void) fprintf( stderr, "%s\n", msg );
10100         exit( YY_EXIT_FAILURE );
10101 }
10102
10103 /* Redefine yyless() so it works in section 3 code. */
10104
10105 #undef yyless
10106 #define yyless(n) \
10107         do \
10108                 { \
10109                 /* Undo effects of setting up surf_parse_text. */ \
10110         int yyless_macro_arg = (n); \
10111         YY_LESS_LINENO(yyless_macro_arg);\
10112                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10113                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10114                 (yy_hold_char) = *(yy_c_buf_p); \
10115                 *(yy_c_buf_p) = '\0'; \
10116                 surf_parse_leng = yyless_macro_arg; \
10117                 } \
10118         while ( 0 )
10119
10120 /* Accessor  methods (get/set functions) to struct members. */
10121
10122 /** Get the current line number.
10123  * 
10124  */
10125 int surf_parse_get_lineno  (void)
10126 {
10127         
10128     return surf_parse_lineno;
10129 }
10130
10131 /** Get the input stream.
10132  * 
10133  */
10134 FILE *surf_parse_get_in  (void)
10135 {
10136         return surf_parse_in;
10137 }
10138
10139 /** Get the output stream.
10140  * 
10141  */
10142 FILE *surf_parse_get_out  (void)
10143 {
10144         return surf_parse_out;
10145 }
10146
10147 /** Get the length of the current token.
10148  * 
10149  */
10150 int surf_parse_get_leng  (void)
10151 {
10152         return surf_parse_leng;
10153 }
10154
10155 /** Get the current token.
10156  * 
10157  */
10158
10159 char *surf_parse_get_text  (void)
10160 {
10161         return surf_parse_text;
10162 }
10163
10164 /** Set the current line number.
10165  * @param line_number
10166  * 
10167  */
10168 void surf_parse_set_lineno (int  line_number )
10169 {
10170     
10171     surf_parse_lineno = line_number;
10172 }
10173
10174 /** Set the input stream. This does not discard the current
10175  * input buffer.
10176  * @param in_str A readable stream.
10177  * 
10178  * @see surf_parse__switch_to_buffer
10179  */
10180 void surf_parse_set_in (FILE *  in_str )
10181 {
10182         surf_parse_in = in_str ;
10183 }
10184
10185 void surf_parse_set_out (FILE *  out_str )
10186 {
10187         surf_parse_out = out_str ;
10188 }
10189
10190 int surf_parse_get_debug  (void)
10191 {
10192         return surf_parse__flex_debug;
10193 }
10194
10195 void surf_parse_set_debug (int  bdebug )
10196 {
10197         surf_parse__flex_debug = bdebug ;
10198 }
10199
10200 static int yy_init_globals (void)
10201 {
10202         /* Initialization is the same as for the non-reentrant scanner.
10203      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10204      */
10205
10206     /* We do not touch surf_parse_lineno unless the option is enabled. */
10207     surf_parse_lineno =  1;
10208     
10209     (yy_buffer_stack) = 0;
10210     (yy_buffer_stack_top) = 0;
10211     (yy_buffer_stack_max) = 0;
10212     (yy_c_buf_p) = (char *) 0;
10213     (yy_init) = 0;
10214     (yy_start) = 0;
10215
10216     (yy_start_stack_ptr) = 0;
10217     (yy_start_stack_depth) = 0;
10218     (yy_start_stack) =  NULL;
10219
10220 /* Defined in main.c */
10221 #ifdef YY_STDINIT
10222     surf_parse_in = stdin;
10223     surf_parse_out = stdout;
10224 #else
10225     surf_parse_in = (FILE *) 0;
10226     surf_parse_out = (FILE *) 0;
10227 #endif
10228
10229     /* For future reference: Set errno on error, since we are called by
10230      * surf_parse_lex_init()
10231      */
10232     return 0;
10233 }
10234
10235 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10236 int surf_parse_lex_destroy  (void)
10237 {
10238     
10239     /* Pop the buffer stack, destroying each element. */
10240         while(YY_CURRENT_BUFFER){
10241                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10242                 YY_CURRENT_BUFFER_LVALUE = NULL;
10243                 surf_parse_pop_buffer_state();
10244         }
10245
10246         /* Destroy the stack itself. */
10247         surf_parse_free((yy_buffer_stack) );
10248         (yy_buffer_stack) = NULL;
10249
10250     /* Destroy the start condition stack. */
10251         surf_parse_free((yy_start_stack)  );
10252         (yy_start_stack) = NULL;
10253
10254     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10255      * surf_parse_lex() is called, initialization will occur. */
10256     yy_init_globals( );
10257
10258     return 0;
10259 }
10260
10261 /*
10262  * Internal utility routines.
10263  */
10264
10265 #ifndef yytext_ptr
10266 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10267 {
10268         register int i;
10269         for ( i = 0; i < n; ++i )
10270                 s1[i] = s2[i];
10271 }
10272 #endif
10273
10274 #ifdef YY_NEED_STRLEN
10275 static int yy_flex_strlen (yyconst char * s )
10276 {
10277         register int n;
10278         for ( n = 0; s[n]; ++n )
10279                 ;
10280
10281         return n;
10282 }
10283 #endif
10284
10285 void *surf_parse_alloc (yy_size_t  size )
10286 {
10287         return (void *) malloc( size );
10288 }
10289
10290 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10291 {
10292         /* The cast to (char *) in the following accommodates both
10293          * implementations that use char* generic pointers, and those
10294          * that use void* generic pointers.  It works with the latter
10295          * because both ANSI C and C++ allow castless assignment from
10296          * any pointer type to void*, and deal with argument conversions
10297          * as though doing an assignment.
10298          */
10299         return (void *) realloc( (char *) ptr, size );
10300 }
10301
10302 void surf_parse_free (void * ptr )
10303 {
10304         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10305 }
10306
10307 #define YYTABLES_NAME "yytables"
10308
10309 /* Element context stack lookup. */
10310 int surfxml_element_context(int i)
10311 {
10312   return (0<i && i<yy_start_stack_depth
10313           ? yy_start_stack[yy_start_stack_ptr - i]
10314           : 0);
10315 }
10316
10317 #ifdef FLEX_DEBUG
10318 void print_yy_stack(char* fmt, ...)
10319 {
10320   int i = 0; va_list ap; va_start(ap, fmt);
10321   vfprintf(stderr, fmt, ap);
10322   if (surfxml_statenames) {
10323       for (i=1; i<yy_start_stack_ptr; i++) {
10324           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10325       }
10326       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10327   }
10328   va_end(ap);
10329 }
10330
10331 void print_surfxml_bufferstack()
10332 {
10333     int i;
10334     fputs("Buffer: ", stderr);
10335     for (i = 0; i < blimit; i++) {
10336        if ( surfxml_bufferstack[i] == '\377' ) break;
10337          putc(surfxml_bufferstack[i], stderr);
10338     }
10339     putc('\n', stderr);
10340 }
10341
10342 static void debug_enter(int state, const char* statename) {
10343   yy_push_state(state);
10344   if (surf_parse__flex_debug) {
10345        print_yy_stack("--ENTER(%s) : ",statename);
10346        print_surfxml_bufferstack();
10347   }
10348 }
10349
10350 static void debug_leave(void) {
10351     if (surf_parse__flex_debug) {
10352         print_yy_stack("--LEAVE : ");
10353         print_surfxml_bufferstack();
10354     }
10355   yy_pop_state();
10356 }
10357
10358 static void debug_set(int state, const char* statename) {
10359   BEGIN(state);
10360   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10361 }
10362 #endif
10363
10364 static void cleanup(void)
10365 {
10366     if (surfxml_statenames) {
10367         free(surfxml_statenames);
10368         surfxml_statenames = NULL;
10369     }
10370     free(surfxml_bufferstack);
10371     surfxml_bufferstack = NULL;
10372
10373     free(indexstack);
10374     indexstack = NULL;
10375 }
10376
10377 static int fail(const char* fmt, ...)
10378 {
10379     int chars_left, used;
10380     va_list ap; va_start(ap, fmt);
10381 #ifdef FLEXML_yylineno
10382     used = sprintf(flexml_err_msg,
10383                    "Invalid XML (XML input line %d, state %d): ",
10384                    surf_parse_lineno, YY_START);
10385 #else
10386     used = sprintf(flexml_err_msg,
10387                    "Invalid XML (state %d): ",
10388                    YY_START);
10389 #endif
10390     chars_left = flexml_max_err_msg_size - used - 1;
10391     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10392     va_end(ap);
10393
10394 #ifndef FLEXML_quiet_parser
10395     /* print directly to sdterr */
10396     fprintf(stderr, "%s\n", flexml_err_msg);
10397     flexml_err_msg[0] = '\0';
10398 #endif
10399
10400     cleanup();
10401
10402     return 1;
10403 }
10404