Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fat trees progress
[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 591
407 #define YY_END_OF_BUFFER 592
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[3469] =
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,    0,    0,    0,    0,    0,    0,    0,    0,
445         0,    0,  592,  590,   15,   10,   10,   15,   15,  570,
446        10,  570,    5,    6,    5,    8,    9,    8,  586,  578,
447       579,  587,  584,  587,  585,  589,  578,  579,  589,  590,
448        22,   10,   22,   22,   22,   20,   22,   26,   10,   26,
449
450        26,  590,   26,  590,  590,   26,   33,   10,   33,   33,
451        33,   31,   33,   37,   10,   37,   37,   48,   10,   48,
452        48,   48,   46,   48,   48,   48,  587,  586,   78,   10,
453        78,   78,   78,   76,   78,   78,   78,   78,   78,   82,
454        10,   82,  101,   10,  101,  101,  101,   99,  101,  101,
455       101,  105,   10,  105,  128,   10,  128,  128,  128,  126,
456       128,  128,  132,   10,  132,  132,  590,  132,  590,  132,
457       132,  590,  590,  132,  590,  132,  590,  132,  147,   10,
458       147,  147,  147,  145,  147,  147,  147,  147,  151,   10,
459       151,  590,  151,  160,   10,  160,  160,  160,  158,  160,
460
461       160,  164,   10,  164,  173,   10,  173,  173,  173,  171,
462       173,  173,  177,   10,  177,  202,   10,  202,  202,  202,
463       200,  202,  202,  202,  202,  202,  206,   10,  206,  590,
464       206,  221,   10,  221,  221,  221,  219,  221,  221,  221,
465       221,  225,   10,  225,  225,  232,   10,  232,  232,  232,
466       230,  232,  236,   10,  236,  247,   10,  247,  247,  247,
467       245,  247,  247,  247,  251,   10,  251,  304,   10,  304,
468       304,  304,  302,  304,  304,  304,  304,  304,  304,  304,
469       304,  304,  308,   10,  308,  308,  327,   10,  327,  327,
470       327,  325,  327,  327,  327,  327,  327,  327,  331,   10,
471
472       331,  352,   10,  352,  352,  352,  350,  352,  352,  352,
473       352,  352,  352,  352,  356,   10,  356,  365,   10,  365,
474       365,  365,  363,  365,  365,  369,   10,  369,  380,   10,
475       380,  380,  380,  378,  380,  380,  380,  384,   10,  384,
476       411,   10,  411,  411,  411,  409,  411,  411,  411,  411,
477       415,   10,  415,  415,  428,   10,  428,  428,  428,  426,
478       428,  428,  432,   10,  432,  590,  432,  449,   10,  449,
479       449,  449,  447,  449,  449,  449,  453,   10,  453,  453,
480       466,   10,  466,  466,  466,  464,  466,  466,  470,   10,
481       470,  479,   10,  479,  479,  479,  477,  479,  479,  483,
482
483        10,  483,  483,  496,   10,  496,  496,  496,  494,  496,
484       496,  496,  500,   10,  500,  500,  517,   10,  517,  517,
485       517,  515,  517,  517,  517,  517,  517,  521,   10,  521,
486       590,  521,  528,   10,  528,  528,  528,  526,  528,  532,
487        10,  532,  539,   10,  539,  539,  539,  537,  539,  543,
488        10,  543,  543,  552,   10,  552,  552,  552,  550,  552,
489       552,  556,   10,  556,  565,   10,  565,  565,  565,  563,
490       565,  565,  569,   10,  569,   10,    0,    2,    2,    0,
491         4,    7,  581,  580,    0,    0,    0,    0,    0,    0,
492         0,   21,   23,   23,    0,    0,    0,    0,    0,    0,
493
494         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
495         0,    0,    0,    0,    0,    0,    0,    0,   32,   34,
496        34,    0,   47,   49,   49,   49,   49,    0,    0,    0,
497        77,   79,   79,   79,   79,   79,   79,   79,   79,   79,
498         0,  100,  102,  102,  102,  102,    0,  127,  129,  129,
499       129,    0,    0,    0,    0,    0,    0,    0,    0,    0,
500         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
501       146,  148,  148,  148,  148,  148,    0,    0,  159,  161,
502       161,  161,    0,  172,  174,  174,  174,    0,  201,  203,
503       203,  203,  203,  203,  203,  203,    0,    0,  220,  222,
504
505       222,  222,  222,  222,    0,  231,  233,  233,    0,  246,
506       248,  248,  248,  248,    0,  303,  305,  305,  305,  305,
507       305,  305,  305,  305,  305,  305,  305,  305,  305,  305,
508       305,  305,  305,    0,  326,  328,  328,  328,  328,  328,
509       328,  328,  328,    0,  351,  353,  353,  353,  353,  353,
510       353,  353,  353,    0,  364,  366,  366,  366,    0,  379,
511       381,  381,  381,  381,    0,  410,  412,  412,  412,  412,
512       412,  412,    0,  427,  429,  429,  429,  429,    0,    0,
513       448,  450,  450,  450,  450,  450,    0,  465,  467,  467,
514       467,    0,  478,  480,  480,  480,    0,  495,  497,  497,
515
516       497,  497,    0,  516,  518,  518,  518,  518,  518,  518,
517         0,    0,  527,  529,  529,    0,  538,  540,  540,    0,
518       551,  553,  553,  553,    0,  564,  566,  566,  566,    0,
519         0,    0,    0,    0,    3,    0,    0,    0,    0,    0,
520         0,    0,  588,    0,   23,    0,    0,  107,    0,    0,
521         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
522         0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
523         0,    0,    0,    0,    0,    0,   34,    0,    0,   49,
524         0,    0,   49,    0,    0,    0,  583,   79,    0,    0,
525        79,   79,   79,   79,   79,   79,    0,    0,  102,  102,
526
527       102,    0,    0,    0,    0,  129,    0,    0,  107,    0,
528         0,    0,    0,    0,    0,    0,    0,  106,    0,    0,
529         0,    0,  148,    0,    0,  148,  148,    0,    0,    0,
530       161,  161,    0,    0,  174,  174,    0,    0,  203,  203,
531       203,    0,    0,  203,  203,  203,    0,    0,    0,    0,
532       222,  222,    0,    0,  222,    0,    0,  233,    0,    0,
533       248,    0,    0,    0,    0,    0,    0,  305,  305,    0,
534         0,  305,    0,    0,  305,  305,  305,  305,  305,  305,
535       305,  305,  305,  305,  305,    0,    0,    0,    0,    0,
536         0,  328,  328,  328,  328,  328,    0,    0,  353,  353,
537
538       353,    0,    0,  353,  353,  353,    0,    0,  366,    0,
539         0,    0,    0,  381,    0,    0,  381,    0,    0,  412,
540         0,    0,  412,  412,  412,    0,    0,  429,  429,  429,
541         0,    0,    0,  450,  450,  450,  450,    0,    0,  467,
542         0,    0,    0,    0,  480,  480,    0,    0,  497,  497,
543       497,    0,    0,  518,  518,  518,  518,  518,    0,    0,
544         0,  529,    0,    0,    0,    0,    0,    0,    0,    0,
545       553,    0,    0,    0,    0,  566,    0,    0,    0,   14,
546         1,    0,    0,  576,    0,    0,    0,  573,  572,    0,
547         0,   23,    0,    0,   25,    0,  107,    0,    0,    0,
548
549         0,    0,    0,    0,  226,    0,    0,    0,    0,    0,
550         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
551       106,    0,    0,    0,    0,    0,    0,   34,    0,    0,
552        36,    0,   49,    0,   41,   40,   49,    0,    0,    0,
553        51,    0,   79,    0,   55,   54,    0,    0,   79,    0,
554         0,   79,   79,   79,    0,    0,   81,    0,  102,  102,
555       102,    0,    0,  104,    0,    0,  109,  108,  129,    0,
556         0,  131,    0,    0,    0,    0,  227,    0,    0,    0,
557         0,    0,    0,    0,    0,    0,  148,    0,  136,  135,
558       148,  148,    0,    0,  150,    0,    0,  161,  161,    0,
559
560         0,  163,    0,  174,  174,    0,    0,  176,    0,  203,
561       203,  203,    0,  181,  180,  203,  203,  203,    0,    0,
562       205,    0,    0,    0,  222,  222,    0,  210,  209,  222,
563         0,    0,  224,    0,  233,    0,    0,  235,    0,  248,
564         0,  240,  239,    0,  242,  241,    0,    0,  250,    0,
565       305,  305,  305,  305,    0,  267,  266,  305,    0,  255,
566       254,    0,    0,  305,  305,  305,  305,  305,  305,  305,
567       305,  305,  305,    0,    0,  307,    0,    0,  322,  321,
568         0,  312,  311,    0,    0,  328,  328,  328,  328,    0,
569         0,  330,    0,  353,  353,  353,  353,    0,  335,  334,
570
571         0,    0,  353,  353,    0,    0,  355,    0,  366,    0,
572       360,  359,    0,    0,  368,    0,  381,    0,  373,  372,
573       381,    0,    0,  383,    0,  412,    0,  388,  387,  412,
574       412,  412,    0,    0,  414,    0,    0,    0,    0,    0,
575       429,    0,    0,  431,    0,    0,    0,    0,  450,  450,
576         0,    0,  450,    0,    0,  452,    0,  467,    0,  457,
577       456,    0,    0,  469,    0,    0,    0,    0,    0,    0,
578         0,  482,    0,    0,    0,  497,  497,    0,    0,    0,
579         0,  499,    0,  518,  518,  518,  518,  518,    0,    0,
580       520,    0,    0,  529,    0,    0,  531,    0,    0,  536,
581
582       535,    0,    0,  542,    0,    0,  547,  546,  553,    0,
583         0,  555,    0,    0,  560,  559,  566,    0,    0,  568,
584         0,    0,    0,  577,  571,    0,    0,    0,   23,    0,
585         0,    0,    0,    0,    0,    0,    0,  226,  178,    0,
586       385,    0,    0,    0,  333,    0,    0,  544,    0,    0,
587         0,    0,    0,    0,    0,    0,    0,  332,    0,    0,
588         0,    0,    0,    0,    0,   49,    0,    0,   79,    0,
589        59,   58,    0,    0,    0,   57,   56,   79,    0,    0,
590        79,    0,  102,    0,    0,  102,    0,  129,    0,  130,
591         0,    0,    0,  227,  179,  386,  545,    0,    0,    0,
592
593         0,    0,    0,  148,  148,    0,    0,    0,    0,    0,
594         0,  161,    0,    0,    0,  174,    0,  203,  203,    0,
595         0,  203,  203,  203,    0,    0,    0,  222,  222,  222,
596         0,    0,    0,    0,    0,    0,    0,  305,  305,  305,
597       305,    0,    0,    0,  269,  268,  305,  305,  305,  305,
598       305,  305,  305,  305,  305,  305,  305,    0,    0,  324,
599       323,  328,  328,  328,  328,    0,  353,  353,  353,  353,
600         0,  343,  342,  353,  353,    0,  366,    0,  381,  381,
601         0,  412,  412,  412,  412,    0,    0,  421,  420,    0,
602       419,  418,  429,    0,  385,    0,  438,  437,  450,  450,
603
604         0,  436,  435,  450,    0,  467,    0,    0,  476,  475,
605         0,  474,  473,    0,    0,  489,  488,  497,  497,    0,
606       487,  486,    0,  518,    0,    0,  518,  518,  518,    0,
607         0,  529,    0,    0,  553,    0,  566,    0,    0,    0,
608         0,   12,    0,  574,  575,    0,   23,    0,    0,    0,
609         0,    0,    0,    0,    0,  178,    0,    0,  385,    0,
610         0,  152,    0,  333,    0,    0,  544,    0,  416,    0,
611        39,    0,    0,    0,    0,    0,  332,    0,   38,    0,
612        30,   29,    0,    0,   43,   42,   49,    0,    0,   79,
613         0,   61,   60,   79,    0,   65,   64,   79,    0,  102,
614
615         0,    0,    0,    0,    0,    0,  129,    0,    0,    0,
616       179,    0,  386,  545,  417,    0,    0,    0,  417,  416,
617       148,    0,    0,    0,  140,  139,    0,    0,    0,  157,
618       156,  161,    0,    0,  170,  169,  174,    0,  203,  203,
619         0,  185,  184,    0,    0,  203,    0,    0,  203,    0,
620       153,    0,  222,  222,  222,    0,    0,  229,  228,    0,
621       234,    0,  244,  243,    0,  305,    0,    0,  305,  305,
622         0,  265,  264,  305,  305,    0,    0,  305,  305,  305,
623       305,  305,  305,  305,  305,    0,    0,    0,  328,  328,
624       328,    0,  353,    0,    0,  353,  353,    0,    0,  353,
625
626         0,  366,    0,  381,  381,    0,  412,  412,  412,    0,
627         0,  412,    0,  429,    0,    0,  450,  450,  450,    0,
628       467,    0,    0,  497,  497,    0,  518,    0,  504,  503,
629       518,  518,  518,    0,    0,    0,    0,    0,    0,    0,
630         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
631        23,    0,    0,    0,    0,    0,    0,    0,  534,    0,
632         0,    0,    0,  152,    0,    0,    0,   53,  416,  357,
633         0,   39,    0,  533,   52,    0,    0,    0,    0,   38,
634         0,    0,   49,    0,    0,   79,   79,   79,    0,  102,
635         0,    0,    0,    0,    0,    0,    0,    0,    0,   96,
636
637        95,    0,  129,    0,    0,    0,    0,  417,  358,    0,
638         0,    0,  148,    0,  138,  137,    0,    0,  161,    0,
639         0,    0,    0,  203,  203,    0,  183,  182,    0,    0,
640         0,    0,    0,  203,    0,  204,  153,    0,    0,    0,
641       222,    0,    0,    0,    0,  305,    0,  283,  282,    0,
642         0,  305,  305,  305,    0,  263,  262,    0,    0,  305,
643       305,  305,  305,    0,    0,  305,  305,    0,    0,  320,
644       319,    0,    0,  328,    0,    0,    0,  353,    0,  339,
645       338,    0,    0,  353,    0,  337,  336,  353,    0,  354,
646       366,    0,  381,  381,    0,  412,  412,  412,    0,    0,
647
648         0,  412,    0,  413,  429,    0,    0,    0,    0,    0,
649         0,  450,    0,  467,    0,    0,    0,    0,    0,    0,
650         0,  518,  518,  518,  518,    0,    0,    0,  525,  524,
651         0,    0,    0,  549,  548,    0,  554,    0,  562,  561,
652         0,    0,    0,    0,    0,    0,    0,    0,  433,    0,
653         0,    0,    0,  310,  253,  534,    0,   28,    0,    0,
654         0,    0,  502,   53,  357,  207,    0,  533,   52,  309,
655       252,   27,  501,    0,    0,   49,    0,    0,   50,   79,
656         0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
657         0,    0,    0,    0,    0,    0,    0,    0,    0,  434,
658
659         0,    0,    0,    0,  358,  208,    0,    0,  148,    0,
660         0,  161,    0,  162,    0,  168,  167,    0,  203,  203,
661         0,  199,  198,    0,    0,  203,    0,    0,  218,  217,
662         0,    0,  222,    0,  212,  211,    0,    0,  305,    0,
663       285,  284,  305,  305,  305,    0,  257,  256,    0,    0,
664       305,  305,  305,    0,  259,  258,  305,  305,    0,    0,
665       314,  313,    0,    0,    0,  316,  315,    0,  353,    0,
666       341,  340,  353,  353,  366,    0,  381,    0,    0,    0,
667       412,    0,    0,  412,  412,    0,    0,  412,  429,    0,
668       430,    0,    0,  442,  441,    0,  440,  439,  450,    0,
669
670       467,    0,    0,    0,  493,  492,    0,  491,  490,    0,
671       518,  518,  518,  518,    0,    0,    0,    0,    0,    0,
672         0,    0,   17,    0,   19,   18,    0,  433,  522,  370,
673         0,    0,  310,  253,    0,   28,  454,    0,  165,   16,
674       502,  207,    0,    0,  309,  252,   27,  501,    0,    0,
675        49,  582,   79,    0,   67,   66,   79,    0,   80,    0,
676        98,   97,    0,    0,    0,    0,    0,    0,    0,    0,
677         0,    0,    0,    0,    0,    0,  434,  371,    0,    0,
678         0,  208,    0,    0,  142,  141,  148,    0,    0,  161,
679         0,  203,  203,    0,    0,    0,    0,  203,  166,    0,
680
681       214,  213,  222,    0,    0,  305,  305,  305,  305,    0,
682       261,  260,  305,  305,  305,  305,    0,    0,    0,    0,
683       318,  317,    0,  353,  353,  353,  366,    0,  367,  381,
684         0,  377,  376,    0,  412,    0,  394,  393,  412,  412,
685         0,    0,    0,    0,  412,  429,  455,  450,    0,  467,
686         0,    0,    0,    0,    0,  518,  518,  518,    0,  523,
687         0,    0,  541,    0,    0,    0,    0,   17,    0,  522,
688       370,    0,    0,  237,  454,    0,  165,   16,    0,    0,
689         0,    0,   35,   49,    0,    0,   79,    0,    0,    0,
690         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
691
692         0,    0,    0,    0,    0,    0,    0,    0,  371,    0,
693         0,  238,    0,  148,    0,    0,    0,    0,    0,  203,
694       203,    0,  191,    0,  190,  203,  166,  222,    0,  223,
695         0,  305,  305,  305,  305,  305,    0,    0,  305,  305,
696       305,    0,    0,    0,    0,  306,    0,  329,  353,  353,
697       353,  366,    0,    0,    0,    0,    0,  412,  412,  412,
698         0,  398,    0,  397,  412,  429,  455,  450,    0,  451,
699         0,    0,    0,    0,    0,    0,  506,  505,    0,    0,
700       518,  518,    0,  519,  523,    0,    0,    0,    0,    0,
701         0,   24,    0,    0,  237,  557,    0,    0,    0,   49,
702
703         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
704         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
705         0,    0,    0,    0,    0,    0,    0,    0,    0,  238,
706         0,  148,    0,  558,    0,  155,  154,    0,  175,  203,
707       203,  193,  192,    0,    0,  222,    0,  305,  305,  305,
708       305,  305,    0,  295,  294,  305,    0,    0,  305,    0,
709         0,    0,    0,  353,  353,    0,    0,  366,    0,  375,
710       374,    0,  382,    0,  390,  389,  412,  412,  412,  400,
711       399,    0,    0,  429,  450,    0,    0,    0,    0,  468,
712         0,    0,    0,  510,  509,    0,    0,    0,    0,    0,
713
714       530,    0,    0,    0,    0,    0,  471,  557,    0,    0,
715         0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
716         0,    0,    0,    0,   88,    0,    0,    0,    0,   87,
717         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
718         0,    0,    0,    0,  472,    0,  148,    0,  558,  203,
719         0,    0,    0,  195,  194,  222,    0,  249,  305,  305,
720       305,    0,    0,  305,  305,    0,  293,  292,  305,    0,
721         0,    0,    0,  353,    0,    0,    0,  349,  348,    0,
722         0,  412,  412,  412,    0,  402,  401,    0,    0,    0,
723         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
724
725         0,    0,    0,  508,  507,    0,    0,    0,    0,    0,
726       471,  133,    0,    0,    0,   45,   44,    0,    0,    0,
727         0,    0,    0,    0,    0,   79,    0,    0,    0,    0,
728         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
729         0,    0,    0,    0,    0,    0,    0,    0,  472,  134,
730         0,    0,    0,    0,    0,  203,    0,  197,  196,    0,
731         0,  305,  305,    0,    0,    0,  299,  298,    0,    0,
732       305,  305,    0,    0,    0,    0,  353,    0,  345,  344,
733         0,  362,  361,  412,    0,    0,  412,    0,    0,    0,
734         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
735
736         0,    0,    0,    0,    0,    0,  567,    0,    0,    0,
737         0,  484,  133,   84,   83,    0,    0,    0,    0,    0,
738         0,    0,    0,    0,    0,    0,    0,   94,    0,    0,
739         0,   93,    0,    0,    0,    0,    0,  111,  119,    0,
740         0,    0,    0,  110,  118,    0,  485,  134,    0,  144,
741       143,    0,    0,  187,  186,  203,    0,  216,  215,  305,
742       305,    0,  297,  296,    0,  301,  300,  305,  305,    0,
743         0,    0,    0,  353,  412,    0,  396,  395,  412,    0,
744         0,    0,    0,    0,    0,    0,    0,    0,    0,  459,
745         0,    0,  458,    0,  481,    0,    0,    0,    0,    0,
746
747         0,    0,    0,    0,    0,    0,  484,   84,   83,    0,
748         0,    0,    0,    0,    0,    0,    0,    0,   63,   62,
749         0,    0,    0,    0,    0,    0,    0,    0,    0,  113,
750         0,    0,    0,  112,    0,  485,    0,  149,  203,  305,
751       305,    0,    0,  305,  277,    0,  276,    0,  353,    0,
752         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
753         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754         0,    0,    0,    0,    0,    0,    0,   75,   71,    0,
755         0,   74,   70,    0,   92,    0,    0,   91,    0,    0,
756         0,  103,    0,    0,    0,    0,    0,    0,  203,  305,
757
758       305,    0,    0,    0,    0,    0,  279,  278,  353,    0,
759       392,  391,    0,    0,    0,  425,    0,  424,    0,  446,
760         0,  445,    0,  461,  463,  460,  462,    0,  498,  512,
761         0,  511,    0,    0,    0,    0,   12,    0,   12,    0,
762         0,    0,    0,    0,   86,   90,   85,   89,  123,    0,
763         0,  121,  122,    0,    0,  120,  203,  305,  305,    0,
764         0,    0,    0,    0,  281,  280,  353,    0,    0,    0,
765         0,  423,  422,  444,  443,    0,    0,    0,    0,    0,
766         0,    0,    0,    0,    0,    0,    0,  115,    0,    0,
767       114,    0,    0,    0,    0,    0,    0,    0,    0,    0,
768
769         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
770         0,    0,    0,    0,    0,    0,   69,    0,   68,    0,
771         0,    0,    0,    0,    0,  189,  188,    0,  291,  290,
772         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773       347,  346,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,   11,    0,    0,    0,    0,    0,    0,    0,    0,
775         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
776         0,    0,    0,    0,  514,  513,    0,   73,   72,    0,
777         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
778         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
779
780         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
781         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
782         0,  125,  117,  124,  116,    0,    0,    0,    0,    0,
783         0,  271,    0,    0,  270,    0,    0,  404,    0,    0,
784       403,    0,    0,    0,    0,    0,  275,    0,  274,    0,
785       406,    0,  405,    0,    0,    0,    0,    0,    0,    0,
786         0,    0,    0,    0,    0,  287,    0,  286,    0,    0,
787         0,    0,    0,    0,  289,  288,  273,  272,  408,  407,
788         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
789         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
790
791         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
792         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
793         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
794         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
795         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
796         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
797         0,    0,    0,    0,    0,    0,   13,    0
798     } ;
799
800 static yyconst flex_int32_t yy_ec[256] =
801     {   0,
802         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
803         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
804         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
805         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
806         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
807        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
808        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
809        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
810        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
811        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
812
813        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
814        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
815        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
816         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
817         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
818         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
819         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
820         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
821         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
822         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
823
824         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
825         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
826         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
827         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
828         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
829         1,    1,    1,    1,    1
830     } ;
831
832 static yyconst flex_int32_t yy_meta[75] =
833     {   0,
834         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
835         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
836         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
837         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
838         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
839         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
840         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
841         5,    5,    5,    5
842     } ;
843
844 static yyconst flex_int16_t yy_base[3981] =
845     {   0,
846         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
847        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
848       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
849       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
850       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
851       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
852       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
853       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
854       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
855       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
856
857       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
858      1014, 1018, 1055, 1122, 1075, 1078, 1189, 1257, 1081, 1085,
859      1325, 1392, 1088, 1142, 1145, 1148, 1152, 1155, 1209, 1212,
860      1459, 1527, 1215, 1219, 1222, 1277, 1280, 1283, 1287, 1290,
861      1595, 1657, 1345, 1348, 1719, 1788, 1351, 1355, 1857,    0,
862      1412, 1415, 1418, 1422, 1479, 1482, 1485, 1489, 1931, 1998,
863      1547, 1550, 2065, 2132, 1553, 1557, 2199, 2256, 1615, 1618,
864      2313, 2373, 1621, 1625, 2433, 2500, 1628, 1677, 1680, 1683,
865      1687, 1690, 1739, 1742, 2567, 2634, 1745, 1749, 1752, 1808,
866      1811, 1814, 1818, 1821, 2701, 2768, 1951, 1954, 1957, 1961,
867
868      1964, 2018, 2021, 2024, 2835, 2892, 2028, 2031, 2949, 3016,
869      2085, 2088, 2091, 2095, 2152, 2155, 2158, 2162, 3083, 3150,
870      2219, 2222, 2225, 2229, 2276, 2279, 2282, 2286, 3217, 3284,
871      2333, 2336, 2339, 2343, 2346, 2393, 2396, 2399, 3351, 3421,
872      2403, 2406, 3491, 3548, 2453, 2456, 2459, 2463, 2466, 2520,
873      2523, 2526, 3605, 3675, 2530, 2533, 3745, 3815, 2587, 2590,
874         0,    0, 9426,12639,12639,   95,  100,   29,   41,12639,
875       103,   51,12639,12639, 9415,12639,12639, 9404,12639, 9415,
876      9415,  202,12639,12639,12639,12639, 9413, 9409, 9364,  153,
877     12639,  161, 9390,    0,  145,12639, 9352,12639,  165, 3881,
878
879        73, 2599,  315,  357, 9392, 9339,12639,  168, 9378,    0,
880       152,12639, 9340,12639,  261, 9384,   31,12639,  266, 9371,
881         0,  245,12639, 9333, 9337, 9331,  421, 9336,12639,  269,
882      9362,    0,  340,12639, 9324, 9324,  271, 9326,  238,12639,
883       441,  484,12639,  504, 9350,    0,  401,12639, 9309, 9311,
884      9297,12639,  561,  548,12639,  571, 9342,    0,  481,12639,
885      9309, 9293,12639,  628, 3945, 9291,  163, 2533,  567,  206,
886        38, 9342,  954, 2607,  639,  907,  437,   79,12639,  634,
887      9329,    0,  546,12639, 9285, 9295, 9279, 9284,12639,  638,
888       313,  559,  368,12639,  697, 9320,    0,  549,12639, 9286,
889
890      9266,12639,  704,  750,12639,  707, 9313,    0,  747,12639,
891      9279, 9254,12639,  771,  758,12639,  774, 9306,    0,  748,
892     12639, 9251, 9257, 9267,  251, 9246,12639,  831,  429, 9252,
893       497,12639,  837, 9292,    0,  815,12639, 9239, 9243, 9253,
894      8660,12639,  840,  530,  564,12639,  906, 8712,    0,  816,
895     12639, 8681,12639,  914,  891,12639,  977, 8709,    0,  825,
896     12639, 8665, 8675, 8662,12639,  981,  965,12639, 1021, 8705,
897         0,  881,12639, 8654,  203, 8659, 8669,  970,   85,  429,
898       972, 8656,12639, 1040,  814,  833,12639, 1044, 8691,    0,
899       953,12639, 8639, 8656, 8651,  157, 8649, 8628,12639, 1048,
900
901      1092,12639, 1105, 8675,    0,  966,12639, 8620, 8618, 8624,
902      8629, 8630, 8612, 8605,12639, 1108, 1093,12639, 1116, 8652,
903         0, 1032,12639, 8599, 8599,12639, 1172, 1159,12639, 1175,
904      8630,    0, 1033,12639, 8591, 8587, 8588,12639, 1179, 1226,
905     12639, 1183, 8609,    0, 1095,12639, 8578, 8572, 8573,   15,
906     12639, 1239,  899, 1074,12639, 1242, 8597,    0, 1167,12639,
907      8549,  181,12639, 1246, 1242,  367,  303,12639, 1307, 8585,
908         0, 1234,12639, 8537, 8527,  299,12639, 1310, 1310,  350,
909     12639, 1313, 8572,    0, 1302,12639, 8529, 8533,12639, 1358,
910      1363,12639, 1377, 8557,    0, 1362,12639, 8509, 8508,12639,
911
912      1383, 1430,  370,12639, 1425, 8549,    0, 1426,12639, 8501,
913      8495, 8491,12639, 1442, 1436,  488,12639, 1448, 8534,    0,
914      1432,12639, 8482, 8469, 8474, 8467, 8456,12639, 1509, 1445,
915       560, 1103,12639, 1515, 8502,    0, 1494,12639, 8472,12639,
916      1518, 1558,12639, 1521, 8499,    0, 1559,12639, 8453,12639,
917      1579, 1141, 1344,12639, 1583, 8484,    0, 1567,12639, 8441,
918      8443,12639, 1587, 1632,12639, 1590, 8468,    0, 1629,12639,
919      8434, 8436,12639, 1645, 1633, 1707,  677, 8412,12639, 8472,
920      8461,12639,12639,12639, 1700,  375, 8411, 8404, 8398, 8446,
921      8404,12639,    0, 8389, 8390, 8413, 8377,  104, 1328, 8374,
922
923      8361, 8356, 8360,  621, 1646,  695, 8347, 8330, 1701,  912,
924      8352, 1719, 8328, 1709, 8313, 1724, 1777, 1778,12639,    0,
925      8318, 8319,12639,    0, 8315, 2098, 8307,  666, 8300, 8337,
926     12639,    0, 8292, 2165, 8276, 8297, 8281, 8289, 8284, 8283,
927      8258,12639,    0, 8270, 8255, 8267, 8235,12639,    0, 2232,
928      8233, 8278, 8256,  172, 8230, 8229, 8229, 1788, 1171, 8216,
929      1789, 8241,  707,  814,  841, 1022, 1577, 1913, 1639, 1179,
930     12639,    0, 8216, 2289, 8225, 8201, 8200,  889,12639,    0,
931      8203, 8196, 8197,12639,    0, 8185, 8181, 8182,12639,    0,
932      8174,  826, 2596, 8151, 8151, 8167, 8158,  897,12639,    0,
933
934      8143, 8127, 2614, 8124, 8119,12639,    0, 8119, 8123,12639,
935         0, 8102, 2656, 2666, 8116,12639,    0, 8121, 8114, 2674,
936      8095, 2680, 8091, 8092, 8088, 8075, 8092, 8091, 8066, 8085,
937      8079, 8072, 8061, 8072,12639,    0, 2721, 2724, 8050, 8042,
938      8057, 8053, 8050, 8042,12639,    0, 8043, 8042, 8022, 2727,
939      8016, 8007, 8028, 8002,12639,    0, 7982, 2730, 7977,12639,
940         0, 7963, 2733, 7950, 7967,12639,    0, 7953, 2788, 7935,
941      7953, 7943, 7931,12639,    0, 7913, 7929, 7909, 7903, 7910,
942     12639,    0, 7890, 7908, 7900, 7889, 7926,12639,    0, 7874,
943      2791, 7879,12639,    0, 7869, 7881, 7881,12639,    0, 7858,
944
945      7853, 7849, 7848,12639,    0, 7831, 7825, 7828, 7839, 7831,
946      7791, 7787,12639,    0, 7789, 7796,12639,    0, 2794, 7792,
947     12639,    0, 2797, 7782, 7760,12639,    0, 2800, 7763, 7752,
948      7792, 7800, 1615, 7741,12639, 1970,    0, 7737, 7736, 7781,
949      7779, 7731,12639, 7744, 7724, 2600, 2855, 1714, 7722, 7725,
950      7710, 7723, 7702, 7708, 7699, 7689, 7704, 7683,  458, 7676,
951      7689, 7684, 7669, 7668, 7656, 7661, 7669, 7655, 7653, 1990,
952      7657, 7637, 7650, 7647, 7631, 7640, 7634, 2858, 2863, 7632,
953      2866, 2048, 7627, 7658, 2869, 2914,12639, 7624, 2917, 2117,
954      2924, 7614, 2927, 7611, 7615, 7617, 2920, 2983, 7603, 7610,
955
956      7610, 2969, 2972, 2975, 2184, 7587, 2979, 3037, 2363, 7596,
957      7582, 7575, 7572, 7576, 7559, 7552, 7553, 2423, 7551, 7549,
958      7529, 7528, 7514, 3040, 2550, 7528, 7526, 3044, 3047,  868,
959      7525, 7501, 3050, 3103, 7513, 7508, 3106, 3114, 7503, 7492,
960      7496, 3109, 2621, 7495, 7496, 7476, 3117, 3129, 1204, 7474,
961      7486, 7459, 3170, 2685, 7472, 3173, 3180, 7470, 3183, 3242,
962      7460, 3176, 2755, 3237, 2822, 3247, 3250, 7463, 1993, 3255,
963      3002, 7462, 3305, 3069, 3308, 7457, 7439, 7449, 7443, 7439,
964      7426, 7419, 7407, 7411, 7393, 3312, 3315, 3318, 3137, 3374,
965      3204, 3377, 3384, 3397, 3387, 3453, 3443, 3467, 7397,   37,
966
967      7387, 3446, 3405, 3456, 7398, 7373, 3511, 3519, 7373, 3515,
968      3474, 3522, 3525, 7386, 3571, 3574, 7375, 3582, 3625, 7372,
969      3628, 3594, 7369, 7355, 7342, 3633, 3640, 3636, 3646, 3654,
970      3696, 3704, 7346, 3699, 3709, 3723, 3770, 3766, 3775, 7350,
971      3778, 3727, 3781, 3835, 3838, 3841, 3844, 3847, 3850, 3872,
972      3875, 3878, 3885, 7351, 7312, 7318, 7322, 7308, 3893, 3897,
973      7317, 7302, 3905, 3908, 3949, 3735, 3952, 3957, 3967, 3801,
974      7300, 3977, 3987, 3980, 3912, 7299, 4012, 4015, 7346,12639,
975     12639, 1141, 7275,12639, 7317, 7310, 7259,12639,12639, 7250,
976      7245, 7248, 4019, 4022,12639, 4025, 1848, 7240, 7228, 7237,
977
978      7245, 7235, 7224, 7221, 2250, 7205, 7209, 7209, 7213, 7188,
979      7185, 7176, 7173, 1450, 7187, 7170, 7167, 7181, 7167, 7168,
980      2307, 7157, 7146, 7151, 7137, 1782, 7150, 4044, 4034, 4047,
981     12639, 4053, 4056, 4062,12639,12639, 4077, 7170, 4080, 4083,
982     12639, 4086, 7127, 4089,12639,12639, 4105, 4108, 4117, 4123,
983      4128, 7131, 4141, 7129, 4144, 4147,12639, 4150, 7123, 4153,
984      7121, 4159, 4171,12639, 4174, 4178,12639,12639, 7116, 4186,
985      4193,12639, 4196, 7108, 7104, 7113, 2483, 7092, 7100, 2054,
986      7088, 7088, 7101, 7089, 7069, 7063, 7076, 4199,12639,12639,
987      7067, 4207, 4215, 4218,12639, 4225, 7073, 4228, 4237, 4240,
988
989      4246,12639, 4249, 4255, 4259, 4273, 4277,12639, 4280, 7041,
990      7048, 4268, 4292,12639,12639, 7029, 7026, 7039, 4288, 4300,
991     12639, 4303, 7018, 7016, 7021, 7018, 4307,12639,12639, 7039,
992      4322, 4325,12639, 4329, 4332, 4335, 4354,12639, 4357, 4350,
993      4362,12639,12639, 4376,12639,12639, 4384, 4387,12639, 4391,
994      6992, 6979, 6997, 6985, 4394,12639,12639, 4406, 4410,12639,
995     12639, 4418, 4425, 6971, 6984, 6967, 6974, 6966, 6941, 6936,
996      6931, 6919,  637, 4436, 4439,12639, 4442, 4445,12639,12639,
997      4461,12639,12639, 4469, 4472, 6909, 6916, 6921, 6900, 4480,
998      4483,12639, 4487, 6896, 6891, 6878, 6893, 4490,12639,12639,
999
1000      4502, 4506, 6878, 6866, 4514, 4520,12639, 4523, 6866, 4526,
1001     12639,12639, 4542, 4545,12639, 4548, 6841, 4551,12639,12639,
1002      6848, 4567, 4570,12639, 4575, 6830, 4579,12639,12639, 6838,
1003      6833, 6831, 4589, 4594,12639, 4598, 4601, 4604, 4619, 4625,
1004      6828, 4633, 4637,12639, 4641, 6819, 4644, 4662, 6801, 6732,
1005      4648, 4670, 6695, 4678, 4681,12639, 4684, 6689, 4687,12639,
1006     12639, 4703, 4709,12639, 4712, 4715, 4718, 4733, 4736, 4744,
1007      4751,12639, 4755, 4758, 4763, 6598, 6595, 4776, 4779, 4787,
1008      4790,12639, 4794, 6536, 4797, 6555, 6552, 6520, 4800, 4809,
1009     12639, 4819, 6517, 6481, 4822, 4828,12639, 4831, 4834,12639,
1010
1011     12639, 4842, 4850,12639, 4853, 4857,12639,12639, 6475, 4865,
1012      4872,12639, 4875, 4885,12639,12639, 6450, 4894, 4897,12639,
1013      4900, 1280, 4903,12639,12639, 6462, 6436, 6398, 6335, 4906,
1014      6250, 6247, 6246, 6167, 6159, 6038, 6019, 2492, 2495,   20,
1015      2559,  134,  249,  294, 2562,  345,  352, 2662,  383,  444,
1016       450,  497,  561,  580,  667,  697,  698, 2693,  744,  759,
1017      4909, 4927, 4937, 4940, 4944,  771,  802, 4952,  782, 4958,
1018     12639,12639, 4966, 4973, 4984,12639,12639,  981, 4992, 4996,
1019       978, 5004, 1032, 5010, 5013, 5023, 5028, 1059, 5031,12639,
1020      1093, 1179, 1165, 2763, 3010, 3077, 2830, 1200, 1239, 1229,
1021
1022      1230, 1246, 1265, 1259, 5034, 5041, 5055, 5063, 1264, 5066,
1023      5069, 1286, 5078, 5084, 5087, 1312, 5097, 1316, 1333, 5102,
1024      5105, 5116, 1370, 5120, 5123, 1364, 1368, 1379, 1392, 1403,
1025      5128, 5134, 5143, 5152, 5155, 5160, 5173, 1409, 5176, 1407,
1026      1446, 5179, 5183, 5197,12639,12639, 1449, 1477, 5205, 1471,
1027      1509, 1496, 1504, 1519, 1497, 1513, 1548, 5208, 5211,12639,
1028     12639, 5219, 5223, 5227, 5230, 5233, 1603, 5241, 1587, 1599,
1029      5248,12639,12639, 5259, 1625, 5262, 1639, 5265, 1640, 1649,
1030      5268, 1650, 1684, 1696, 5277, 5289, 5295,12639,12639, 5304,
1031     12639,12639, 1691, 5312, 3212, 5315,12639,12639, 1706, 1726,
1032
1033      5332,12639,12639, 1710, 5327, 1713, 5340, 5347,12639,12639,
1034      5355,12639,12639, 5363, 5366,12639,12639, 1715, 1734, 5375,
1035     12639,12639, 5383, 1729, 5389, 5392, 1736, 1762, 1779, 5402,
1036      1767, 5407, 5411, 5414, 5417, 5421, 5425, 5435, 1951, 1827,
1037      5443,12639, 1833,12639,12639, 1793, 1885, 5446, 1902, 1921,
1038      1917, 1919, 1936, 1937, 1959, 3275, 1969, 1985, 3279, 1987,
1039      1992, 3342, 1992, 3346, 1984, 1992, 3380, 2000, 3415, 2008,
1040      3482, 2026, 2035, 2051, 2054, 2056, 3450, 2043, 3666, 5455,
1041     12639,12639, 5467, 5470,12639,12639, 2067, 2087, 5479, 2060,
1042      5488,12639,12639, 2070, 5499,12639,12639, 2061, 5507, 2080,
1043
1044      5512, 2851, 3032, 5520, 5531, 5526, 2108, 2103, 2109, 2107,
1045      3486, 2115, 3589, 3796, 5539, 2122, 2118, 2124, 5545, 5548,
1046      2126, 5552, 5555, 5563,12639,12639, 5571, 2147, 5574,12639,
1047     12639, 2144, 5582, 5586,12639,12639, 5594, 5597, 2148, 2153,
1048      5606,12639,12639, 5619, 5622, 5630, 5633, 5637, 2176, 5651,
1049      3809, 2189, 5654, 5657, 5662, 5665, 5680,12639,12639, 5675,
1050     12639, 5688,12639,12639, 5696, 2189, 5699, 5702, 5717, 2175,
1051      5720,12639,12639, 2176, 2193, 5728, 5731, 5739, 2188, 2201,
1052      2200, 2218, 5746, 2238, 2240, 5749, 5752, 5757, 5770, 5773,
1053      5776, 5779, 2246, 5782, 5794, 5802, 2236, 5805, 5809, 2245,
1054
1055      5823, 2239, 5826, 2253, 2233, 5832, 2260, 2256, 2289, 5835,
1056      5847, 2298, 5855, 2287, 5858, 2304, 5861, 5864, 5867, 5870,
1057      2299, 5889, 5885, 5893, 5896, 5899, 2295, 5904,12639,12639,
1058      2305, 2308, 2301, 5914, 2318, 5919, 5922, 5938, 5941, 5944,
1059      5947, 5966, 5969, 5972, 5980, 2352, 2402, 2396,12639, 2338,
1060      5987, 5990, 2359, 2351, 2353, 2450, 2350, 2362, 3931, 2374,
1061      2379, 2405, 2411, 4652, 2421, 2412, 2415, 5037, 5993, 5999,
1062      2438, 6005, 2441, 6009, 6012, 2448, 2465, 2486, 2473, 6015,
1063      2491, 6018, 2498, 2536, 6021, 2532, 6024, 2539, 6027, 6030,
1064      2584, 2573, 2649, 2574, 2590, 2586, 2668, 2590, 6033,12639,
1065
1066     12639, 6042, 6048, 2575, 2569, 2716, 2575, 6052, 6055, 2608,
1067      2717, 2722, 6061, 6069,12639,12639, 6079, 2598, 2642, 6082,
1068      6089, 6092, 6101, 2617, 2643, 6108,12639,12639, 6116, 6120,
1069      6134, 2664, 2681, 2684, 6128,12639, 6142, 2687, 6149, 6152,
1070      6160, 6163, 6167, 6181, 6184, 2688, 6187,12639,12639, 6195,
1071      6203, 2693, 2703, 2703, 6213,12639,12639, 6221, 6224, 6235,
1072      2706, 2736, 2748, 6239, 6243, 2740, 2735, 6253, 6257,12639,
1073     12639, 6265, 6268, 6276, 6279, 6283, 6297, 2752, 6301,12639,
1074     12639, 6309, 6312, 2762, 6320,12639,12639, 2755, 6328,12639,
1075      2768, 6331, 2750, 6334, 6337, 2753, 6340, 2774, 6343, 2791,
1076
1077      2793, 2773, 6352,12639, 2794, 6358, 2795, 6361, 6364, 6372,
1078      6380, 2807, 6390, 2813, 6399, 6402, 6405, 6409, 6423, 6426,
1079      6434, 2815, 2818, 2817, 2833, 6437, 2829, 6442,12639,12639,
1080      6457, 6460, 6464,12639,12639, 6472,12639, 6479,12639,12639,
1081      6487, 2888, 2964, 2922, 2871, 6492, 6496, 6510, 6514, 2865,
1082      2882, 2898, 2878, 6517, 6520, 6523, 2883, 6529, 2885, 2882,
1083      2912, 2929, 6534, 6537, 6540, 6543, 2928, 6546, 6549, 6552,
1084      6555, 6558, 6561, 2930, 6564, 2940, 2952, 6567,12639, 2934,
1085      6570, 6576, 2953, 6590, 6593, 6596, 2972, 2970, 2970, 3010,
1086      3013, 3025, 3027, 3034, 3042, 3039, 6604, 6611, 6616, 6624,
1087
1088      3046, 3075, 3059, 3062, 6629, 6632, 6635, 6638, 3059, 6646,
1089      3070, 3090, 6649,12639, 6654,12639,12639, 6668, 3084, 3077,
1090      6672,12639,12639, 3163, 3164, 3087, 3095, 6680,12639,12639,
1091      6688, 6691, 3120, 6699,12639,12639, 6707, 6710, 3134, 6713,
1092     12639,12639, 3139, 3144, 3161, 6722,12639,12639, 6730, 6733,
1093      3159, 3148, 3173, 6741,12639,12639, 3193, 6749, 6752, 6755,
1094     12639,12639, 6767, 6771, 6779,12639,12639, 6787, 3183, 6790,
1095     12639,12639, 3179, 3195, 3193, 6799, 3209, 6802, 6806, 6820,
1096      3210, 6823, 6826, 3214, 3205, 3298, 3299, 3212, 3224, 6834,
1097     12639, 3238, 6841,12639,12639, 6854,12639,12639, 3272, 6849,
1098
1099      3266, 6863, 6868, 6871,12639,12639, 6883,12639,12639, 6891,
1100      6895, 6901, 6905, 6913, 6919, 3261, 6923, 6926, 6931, 6938,
1101      3322, 3353, 6934, 6946,12639,12639, 6957, 6960, 6963, 6966,
1102      3270, 3270, 6976, 6979, 3282, 6985, 6988, 3304, 6994, 6997,
1103      7000, 7003, 3306, 3330, 7006, 7009, 7012, 7017, 3332, 7020,
1104      3327,12639, 7023, 7026,12639,12639, 7034, 7041,12639, 7045,
1105     12639,12639, 3377, 3364, 3379, 3378, 3386, 3388, 3375, 3417,
1106      3429, 3436, 7053, 7056, 7039, 7043, 7073, 7080, 3398, 3397,
1107      3414, 7084, 3406, 7087,12639,12639, 3406, 7095, 3419, 7101,
1108      7104, 3463, 3479, 3506, 3529, 3509, 3531, 3488, 7107, 7119,
1109
1110     12639,12639, 3470, 7110, 7115, 3487, 3491, 3490, 3521, 7130,
1111     12639,12639, 7142, 3501, 3517, 3518, 7145, 7149, 7163, 7166,
1112     12639,12639, 7176, 3525, 3534, 3536, 3546, 7182,12639, 7185,
1113      7188,12639,12639, 7196, 7203, 7206,12639,12639, 7215, 7221,
1114      3574, 3598, 3594, 3624, 7224, 3585, 7138, 3592, 7227, 7233,
1115      7242, 7251, 7254, 7257, 7261, 7276, 7279, 7283, 7286, 7297,
1116      7305, 7308,12639, 7313, 7317, 3639, 3647, 7320, 7327, 7336,
1117      7339, 3583, 3586, 7342, 7346, 3597, 7349, 7352, 3590, 3602,
1118      3604, 7355,12639, 3598, 7358, 7361, 3615, 3662, 3661, 3675,
1119      3669, 3681, 3677, 3675, 3699, 3687, 3702, 7380, 3683, 3714,
1120
1121      3727, 3712, 3731, 3730, 3736, 3796, 3731, 3749, 7383, 3745,
1122      3741, 7386, 3785, 3795, 7389, 3799, 7392, 7395, 7403, 3798,
1123      3801, 3864,12639, 3862,12639, 7410, 7413, 3809, 7416,12639,
1124      7423, 3815, 3836, 3828, 3833, 3857, 7428, 7431, 3859, 7442,
1125      3869, 7446, 3900, 3935, 7456,12639, 7460,12639, 3855, 3859,
1126      7464, 3862, 7467, 7475, 7470, 7485, 7489, 3889, 3884, 3886,
1127      3958,12639, 3956,12639, 7497, 3913, 7503, 3916, 7506,12639,
1128      7509, 7515, 7527, 7530, 7534, 7537,12639,12639, 7549, 7553,
1129      7561, 7567, 7570,12639, 7573, 7581, 7585, 3973, 3983, 3967,
1130      7589,12639, 3909, 3932, 7592, 7600, 3924, 3939, 3945, 7604,
1131
1132      7608, 4006, 4080, 3941, 3978, 3988, 4010, 4021, 4046, 4031,
1133      4040, 4045, 4048, 4063, 7616, 4007, 4019, 4031, 4037, 4037,
1134      4031, 4033, 4055, 4053, 4062, 4061, 4058, 4060, 4080, 7622,
1135      4074, 4086, 7625, 7628, 7631,12639,12639, 7639,12639, 4068,
1136      7647,12639,12639, 7650, 7654, 4105, 7668, 4086, 4101, 4107,
1137      7671, 4100, 7677,12639,12639, 4112, 7689, 7693, 4103, 4150,
1138      4149, 4153, 4156, 4120, 7701, 7707, 7710, 7719, 7725,12639,
1139     12639, 7733,12639, 7737,12639,12639, 4147, 4154, 4157,12639,
1140     12639, 7745, 7748, 7756, 7759, 7763, 4305, 4425, 7777,12639,
1141      7780, 7783, 7786,12639,12639, 7802, 7805, 7813, 7816, 7824,
1142
1143     12639, 7827, 4205, 4253, 4279, 4147, 7831, 7834, 4171, 4182,
1144      4183, 7837, 7848, 4198, 4201, 4233, 4208, 4228, 4328, 4203,
1145      4242, 4243, 4267, 4272,12639, 4292, 4277, 4276, 4280,12639,
1146      7856, 4276, 4285, 4274, 4302, 4314, 4323, 4306, 4316, 4303,
1147      4321, 4330, 4335, 4331, 7859, 4348, 7862, 7865, 7868, 7871,
1148      7875, 7880, 7893,12639,12639, 7901, 7904,12639, 4354, 4342,
1149      7908, 7911, 7919, 7914, 4355, 7932,12639,12639, 4362, 4395,
1150      4380, 4401, 4386, 4382, 7940, 7943, 7951,12639,12639, 7959,
1151      7962, 4372, 7970, 4382, 7973,12639,12639, 7981, 7984, 7992,
1152      7995, 4399, 4400, 4415, 4417, 4419, 4420, 8003, 8006, 8010,
1153
1154      4476, 4495, 8018,12639,12639, 8026, 4493, 4511, 8029, 4408,
1155      8032, 8035, 4400, 4401, 8038,12639,12639, 4455, 4444, 4445,
1156      4467, 4475, 4463, 4467, 4491, 8048, 4496, 4516, 4533, 4519,
1157      4502, 4534, 4549, 4537, 8051, 4495, 4497, 4515, 4569, 4574,
1158      4524, 4518, 4522, 4542, 4590, 4602, 4552, 4562, 8055, 8058,
1159      8061, 8070, 8066, 8079, 8085, 4562, 8097,12639,12639, 8093,
1160      8105, 4565, 4564, 8113, 8118, 8127,12639,12639, 8135, 8138,
1161      4552, 4564, 4592, 4592, 4602, 4608, 4604, 8146,12639,12639,
1162      8154,12639,12639, 4606, 8162, 8165, 4589, 8173, 4657, 4664,
1163      8181, 4696, 4698, 4626, 4635, 4669, 4634, 4643, 4685, 8189,
1164
1165      8192, 4665, 4671, 4670, 4677, 8195,12639, 4764, 8198, 8201,
1166      8204, 8223, 8226, 8229, 8232, 4673, 4699, 4701, 4689, 4695,
1167      4718, 4724, 4712, 8235, 8238, 4727, 4733,12639, 4738, 4741,
1168      4743,12639, 4746, 8246, 4733, 4719, 4799,12639,12639, 4754,
1169      4755, 4741, 4806,12639,12639, 4765, 8249, 8253, 8259,12639,
1170     12639, 8267, 8270,12639,12639, 4770, 8279,12639,12639, 4771,
1171      4784, 8287,12639,12639, 8295,12639,12639, 8303, 4780, 4843,
1172      4811, 4855, 4826, 4814, 8306, 8309,12639,12639, 8317, 4836,
1173      4854, 4845, 4857, 4848, 4864, 4857, 4890, 4883, 4893,12639,
1174      4886, 4896,12639, 8324,12639, 8327, 4899, 4888, 4906, 4895,
1175
1176      4915, 8330, 8336, 8349, 8380, 8427, 8357, 8360, 8363, 4912,
1177      4939, 4943, 4911, 4933, 4954, 4956, 4926, 8368,12639,12639,
1178      4965, 4940, 4947, 4972, 4950, 4951, 8391, 4923, 4925,12639,
1179      4935, 4935, 4938,12639, 4952, 8400, 8403,12639, 4950, 4958,
1180      4969, 8406, 8410, 8418,12639, 5015,12639, 5014, 4968, 8438,
1181      8447, 8456, 8459, 5040, 5008, 5040, 5011, 5046, 5015, 5046,
1182      5023, 5057, 5068, 5067, 5068, 8467, 5078, 5052, 5085, 5055,
1183      5095, 8474, 5096, 5124, 8494, 8541, 5083,12639,12639, 5072,
1184      5098,12639,12639, 5075,12639, 5122, 5128,12639, 5132, 5133,
1185      8487,12639, 5191, 5101, 5145, 5156, 5118, 5161, 5118, 5120,
1186
1187      5111, 8514, 5163, 5220, 8506, 8524,12639,12639, 5135, 8561,
1188     12639,12639, 8569, 5247, 5250,12639, 5190,12639, 5196,12639,
1189      5210,12639, 5209,12639,12639,12639,12639, 8532,12639,12639,
1190      5197,12639, 5218, 5285, 5267, 5235, 5242, 5274, 5249, 8535,
1191      5269, 5274, 5288, 5285,12639,12639,12639,12639,12639, 5244,
1192      5316,12639,12639, 5252, 5328,12639, 8577, 8580, 8587, 5304,
1193      5294, 5332, 5310, 8591,12639,12639, 8599, 5333, 5333, 5341,
1194      5342,12639,12639,12639,12639, 5338, 5350, 8605, 5383, 5376,
1195      5391, 8608, 5396, 5385, 5421, 5411, 5372,12639, 5391, 5379,
1196     12639, 5394, 8611, 8617, 8629, 8632, 8640, 8643, 5411, 5419,
1197
1198      5432, 5416, 5427, 5440, 8651, 8654, 5425, 5434, 5453, 5437,
1199      5445, 5462, 5446, 5449, 8662, 5473,12639, 5461,12639, 5464,
1200      5438, 5455, 5441, 5461, 8665,12639,12639, 8674,12639,12639,
1201      8682, 5492, 5499, 5480, 5487, 5487, 5507, 5512, 5515, 8690,
1202     12639,12639, 5523, 5529, 5525, 5531, 5548, 5544, 5581, 5584,
1203      5574,12639, 5597, 5595, 5537, 5551, 5547, 5562, 5605, 5600,
1204      5608, 5613, 5614, 5620, 5621, 5618, 5626, 5636, 5640, 5647,
1205      5648, 5645, 5655, 5661,12639,12639, 5668,12639,12639, 5626,
1206      5643, 5642, 5657, 5672, 5691, 5675, 5695, 5690, 5687, 5713,
1207      5702, 5704, 5721, 5720, 5721, 5739, 5730, 5727, 5745, 5770,
1208
1209      5781, 5782, 5782, 5784, 5757, 5764, 5777, 5778, 5793, 5783,
1210      5816, 5797, 5794, 5823, 5814, 5805, 5838, 5819, 5810, 5839,
1211      5894,12639,12639,12639,12639, 5825, 5850, 5847, 5855, 5878,
1212      5852,12639, 5885, 5871,12639, 5921, 5896,12639, 5921, 5899,
1213     12639, 5945, 5898, 5911, 5917, 5930,12639, 5931,12639, 5933,
1214     12639, 5934,12639, 5936, 8700, 5938, 5971, 5954, 5976, 5943,
1215      5960, 5961, 6004, 8703, 6054,12639, 6052,12639, 6060, 6059,
1216      6063, 6065, 6057, 6059,12639,12639,12639,12639,12639,12639,
1217      6107, 6113, 6127, 6152, 6077, 6096, 6158, 6215, 6137, 6180,
1218      6182, 6191, 6198, 6209, 6193, 6231, 6067, 6119, 6087, 6242,
1219
1220      6228, 6305, 6233, 6338, 6212, 6365, 6282, 6370, 6359, 6376,
1221      6105, 6255, 6357, 6423, 6367, 6427, 6379, 6401, 6157, 6396,
1222      6467, 6486, 6451, 6452, 6307, 6403, 6509, 6557, 6589, 6639,
1223      6271, 6435, 6570, 6653, 6591, 6623, 6563, 6596, 6667, 6686,
1224      6601, 6698, 6647, 6709, 6701, 6718, 6665, 6721, 6767, 6775,
1225      6743, 6777, 6726, 6764, 6800, 6828, 6794, 6797, 6793, 6811,
1226      6839, 6844, 6856, 6080, 8711, 8714,12639,12639, 8734, 8743,
1227      8752, 8761, 8770, 8779, 8788, 8797, 8806, 8815, 8824, 8833,
1228      8842, 8851, 8860, 8869, 8878, 8887, 8896, 8905, 8914, 8923,
1229      8932, 8941, 8950, 8959, 8968, 8977, 8986, 8995, 9004, 9013,
1230
1231      9022, 9031, 9040, 9049, 9058, 9067, 9076, 9085, 9094, 9103,
1232      9112, 9121, 9130, 9139, 9148, 9157, 9166, 9175, 9184, 9193,
1233      9202, 9211, 9220, 9229, 9238, 9247, 9256, 9265, 9274, 9283,
1234      9292, 9299, 9306, 9313, 9320, 9327, 9334, 9341, 9348, 9355,
1235      9362, 9369, 9376, 9383, 9390, 9397, 9404, 9411, 9418, 9425,
1236      9432, 9439, 9446, 9453, 9460, 9467, 9474, 9481, 9488, 9495,
1237      9504, 9511, 9516, 9523, 9528, 9535, 9540, 9547, 9552, 9559,
1238      9564, 9571, 9576, 9583, 9588, 9595, 9600, 9607, 9612, 9619,
1239      9624, 9631, 9636, 9643, 9648, 9655, 9660, 9667, 9672, 9679,
1240      9684, 9691, 9696, 9703, 9708, 9715, 9720, 9727, 9732, 9739,
1241
1242      9744, 9751, 9756, 9763, 9768, 9775, 9780, 9787, 9792, 9799,
1243      9804, 9811, 9816, 9823, 9828, 9835, 9840, 9847, 9852, 9861,
1244      9867, 9874, 9882, 9889, 9897, 9904, 9912, 9919, 9927, 9934,
1245      9942, 9949, 9957, 9964, 9972, 9979, 9987, 9994,10002,10009,
1246     10017,10024,10032,10039,10047,10054,10062,10069,10077,10085,
1247     10093,10100,10108,10115,10123,10130,10138,10145,10153,10161,
1248     10169,10177,10185,10192,10200,10208,10216,10224,10232,10239,
1249     10247,10254,10262,10270,10277,10285,10292,10300,10309,10315,
1250     10322,10330,10338,10346,10354,10362,10369,10377,10384,10392,
1251     10399,10407,10414,10422,10430,10438,10446,10454,10461,10469,
1252
1253     10476,10484,10492,10500,10508,10516,10523,10531,10538,10546,
1254     10553,10561,10568,10576,10583,10591,10598,10606,10613,10621,
1255     10628,10636,10643,10651,10659,10666,10674,10681,10689,10696,
1256     10704,10712,10719,10727,10734,10742,10751,10760,10767,10775,
1257     10783,10790,10798,10805,10813,10820,10828,10835,10842,10850,
1258     10857,10865,10872,10880,10887,10895,10902,10910,10918,10926,
1259     10933,10941,10949,10957,10964,10972,10979,10987,10994,11002,
1260     11009,11017,11024,11032,11039,11047,11054,11062,11070,11077,
1261     11085,11092,11100,11108,11116,11124,11132,11140,11148,11156,
1262     11165,11174,11181,11189,11197,11204,11212,11219,11227,11234,
1263
1264     11242,11249,11256,11264,11271,11279,11287,11295,11302,11310,
1265     11318,11326,11334,11341,11349,11357,11365,11372,11380,11387,
1266     11395,11402,11410,11417,11425,11432,11440,11448,11456,11463,
1267     11471,11479,11487,11495,11502,11510,11518,11526,11534,11542,
1268     11551,11560,11568,11576,11584,11591,11599,11606,11614,11622,
1269     11630,11638,11646,11654,11661,11669,11677,11684,11692,11700,
1270     11708,11715,11723,11731,11739,11746,11753,11761,11768,11776,
1271     11783,11790,11798,11805,11813,11820,11828,11836,11844,11851,
1272     11859,11867,11875,11883,11892,11901,11909,11917,11924,11931,
1273     11939,11947,11954,11962,11969,11977,11984,11991,11999,12007,
1274
1275     12014,12022,12030,12037,12044,12052,12059,12067,12074,12081,
1276     12088,12096,12103,12111,12119,12127,12135,12143,12151,12159,
1277     12167,12176,12185,12193,12201,12208,12216,12224,12231,12239,
1278     12247,12255,12262,12269,12277,12285,12292,12300,12308,12315,
1279     12322,12330,12338,12346,12353,12360,12368,12376,12384,12392,
1280     12400,12408,12416,12424,12432,12441,12450,12458,12465,12472,
1281     12480,12487,12495,12503,12510,12517,12525,12532,12539,12546,
1282     12554,12561,12568,12575,12584,12593,12602,12611,12620,12629
1283     } ;
1284
1285 static yyconst flex_int16_t yy_def[3981] =
1286     {   0,
1287      3469, 3469, 3470, 3470, 3470, 3470, 3471, 3471, 3472, 3472,
1288      3473, 3473, 3474, 3474, 3474, 3474, 3475, 3475, 3469, 3469,
1289      3476, 3476, 3477, 3477, 3477, 3477, 3469, 3469, 3477, 3477,
1290      3477, 3477, 3469, 3469, 3477, 3477, 3469, 3469, 3477, 3477,
1291      3477, 3477, 3478, 3478, 3479, 3479, 3469, 3469, 3479, 3479,
1292      3479, 3479, 3480, 3480, 3474, 3474, 3481, 3481, 3482, 3482,
1293      3483, 3483, 3484, 3484, 3485, 3485, 3486, 3486, 3486, 3486,
1294      3469, 3469, 3486, 3486, 3486, 3486, 3469, 3469, 3486, 3486,
1295      3486, 3486, 3469, 3469, 3486, 3486, 3469, 3469, 3486, 3486,
1296      3486, 3486, 3469, 3469, 3486, 3486, 3469, 3469, 3486, 3486,
1297
1298      3486, 3486, 3487, 3487, 3488, 3488, 3469, 3469, 3488, 3488,
1299      3488, 3488, 3489, 3489, 3490, 3490, 3491, 3491, 3492, 3492,
1300      3493, 3493, 3494, 3494, 3469, 3469, 3494, 3494, 3494, 3494,
1301      3495, 3495, 3496, 3496, 3469, 3469, 3496, 3496, 3496, 3496,
1302      3497, 3497, 3498, 3498, 3499, 3499, 3500, 3500, 3468,  149,
1303      3501, 3501, 3469, 3469, 3501, 3501, 3501, 3501, 3502, 3502,
1304      3503, 3503, 3504, 3504, 3505, 3505, 3506, 3506, 3507, 3507,
1305      3508, 3508, 3509, 3509, 3510, 3510, 3511, 3511, 3469, 3469,
1306      3511, 3511, 3511, 3511, 3512, 3512, 3513, 3513, 3469, 3469,
1307      3513, 3513, 3513, 3513, 3514, 3514, 3515, 3515, 3469, 3469,
1308
1309      3515, 3515, 3515, 3515, 3516, 3516, 3517, 3517, 3518, 3518,
1310      3519, 3519, 3469, 3469, 3519, 3519, 3519, 3519, 3520, 3520,
1311      3521, 3521, 3469, 3469, 3521, 3521, 3521, 3521, 3522, 3522,
1312      3523, 3523, 3469, 3469, 3523, 3523, 3523, 3523, 3524, 3524,
1313      3525, 3525, 3526, 3526, 3527, 3527, 3469, 3469, 3527, 3527,
1314      3527, 3527, 3528, 3528, 3529, 3529, 3530, 3530, 3531, 3531,
1315      3469, 3469, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1316      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1317      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1318      3468, 3468, 3468, 3532, 3468, 3468, 3532, 3468, 3468, 3468,
1319
1320       300,  300,  302,  300,  303,  303, 3468, 3468, 3468, 3533,
1321      3468, 3468, 3533, 3468, 3468,  304,  303, 3468, 3468, 3468,
1322      3534, 3468, 3468, 3534, 3534, 3534, 3468, 3468, 3468, 3468,
1323      3468, 3535, 3468, 3468, 3535, 3535, 3535, 3535, 3535, 3468,
1324      3468, 3468, 3468, 3468, 3468, 3536, 3468, 3468, 3536, 3536,
1325      3536, 3468, 3468, 3468, 3468, 3468, 3468, 3537, 3468, 3468,
1326      3537, 3537, 3468, 3468, 3468,  365,  303,  303,  304,  369,
1327       368,  368,  368,  368,  369,  375,  373,  373, 3468, 3468,
1328      3468, 3538, 3468, 3468, 3538, 3538, 3538, 3538, 3468, 3468,
1329       303,  303,  303, 3468, 3468, 3468, 3539, 3468, 3468, 3539,
1330
1331      3539, 3468, 3468, 3468, 3468, 3468, 3468, 3540, 3468, 3468,
1332      3540, 3540, 3468, 3468, 3468, 3468, 3468, 3468, 3541, 3468,
1333      3468, 3541, 3541, 3541, 3541, 3541, 3468, 3468,  392,  392,
1334       303, 3468, 3468, 3468, 3542, 3468, 3468, 3542, 3542, 3542,
1335      3542, 3468, 3468,  303,  303, 3468, 3468, 3468, 3543, 3468,
1336      3468, 3543, 3468, 3468, 3468, 3468, 3468, 3468, 3544, 3468,
1337      3468, 3544, 3544, 3544, 3468, 3468, 3468, 3468, 3468, 3468,
1338      3545, 3468, 3468, 3545, 3545, 3545, 3545, 3545, 3545, 3545,
1339      3545, 3545, 3468, 3468,  303,  303, 3468, 3468, 3468, 3546,
1340      3468, 3468, 3546, 3546, 3546, 3546, 3546, 3546, 3468, 3468,
1341
1342      3468, 3468, 3468, 3468, 3547, 3468, 3468, 3547, 3547, 3547,
1343      3547, 3547, 3547, 3547, 3468, 3468, 3468, 3468, 3468, 3468,
1344      3548, 3468, 3468, 3548, 3548, 3468, 3468, 3468, 3468, 3468,
1345      3468, 3549, 3468, 3468, 3549, 3549, 3549, 3468, 3468, 3468,
1346      3468, 3468, 3468, 3550, 3468, 3468, 3550, 3550, 3550, 3550,
1347      3468, 3468,  303,  303, 3468, 3468, 3468, 3551, 3468, 3468,
1348      3551, 3551, 3468, 3468,  303,  373,  373, 3468, 3468, 3468,
1349      3552, 3468, 3468, 3552, 3552, 3552, 3468, 3468,  373,  373,
1350      3468, 3468, 3468, 3553, 3468, 3468, 3553, 3553, 3468, 3468,
1351      3468, 3468, 3468, 3468, 3554, 3468, 3468, 3554, 3554, 3468,
1352
1353      3468,  373,  373, 3468, 3468, 3468, 3555, 3468, 3468, 3555,
1354      3555, 3555, 3468, 3468,  373,  373, 3468, 3468, 3468, 3556,
1355      3468, 3468, 3556, 3556, 3556, 3556, 3556, 3468, 3468,  303,
1356       392,  303, 3468, 3468, 3468, 3557, 3468, 3468, 3557, 3468,
1357      3468, 3468, 3468, 3468, 3468, 3558, 3468, 3468, 3558, 3468,
1358      3468,  303,  303, 3468, 3468, 3468, 3559, 3468, 3468, 3559,
1359      3559, 3468, 3468, 3468, 3468, 3468, 3468, 3560, 3468, 3468,
1360      3560, 3560, 3468, 3468, 3468, 3468, 3561, 3468, 3468, 3468,
1361      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1362      3468, 3468, 3562, 3562, 3563, 3468, 3468, 3468, 3468, 3468,
1363
1364      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1365      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3564,
1366      3564, 3565, 3468, 3566, 3566, 3566, 3566, 3468, 3567, 3468,
1367      3468, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568,
1368      3569, 3468, 3570, 3570, 3570, 3570, 3571, 3468, 3572, 3572,
1369      3572, 3573, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1370      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1371      3468, 3574, 3574, 3574, 3574, 3574, 3575, 3468, 3468, 3576,
1372      3576, 3576, 3577, 3468, 3578, 3578, 3578, 3579, 3468, 3580,
1373      3580, 3580, 3580, 3580, 3580, 3580, 3581, 3468, 3468, 3582,
1374
1375      3582, 3582, 3582, 3582, 3583, 3468, 3584, 3584, 3585, 3468,
1376      3586, 3586, 3586, 3586, 3587, 3468, 3588, 3588, 3588, 3588,
1377      3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588,
1378      3588, 3588, 3588, 3589, 3468, 3590, 3590, 3590, 3590, 3590,
1379      3590, 3590, 3590, 3591, 3468, 3592, 3592, 3592, 3592, 3592,
1380      3592, 3592, 3592, 3593, 3468, 3594, 3594, 3594, 3595, 3468,
1381      3596, 3596, 3596, 3596, 3597, 3468, 3598, 3598, 3598, 3598,
1382      3598, 3598, 3599, 3468, 3600, 3600, 3600, 3600, 3601, 3468,
1383      3468, 3602, 3602, 3602, 3602, 3602, 3603, 3468, 3604, 3604,
1384      3604, 3605, 3468, 3606, 3606, 3606, 3607, 3468, 3608, 3608,
1385
1386      3608, 3608, 3609, 3468, 3610, 3610, 3610, 3610, 3610, 3610,
1387      3611, 3468, 3468, 3612, 3612, 3613, 3468, 3614, 3614, 3615,
1388      3468, 3616, 3616, 3616, 3617, 3468, 3618, 3618, 3618, 3619,
1389      3620, 3468, 3620, 3468, 3468, 3468, 3621, 3468, 3468, 3468,
1390      3468, 3468, 3468, 3468, 3622, 3623, 3623, 3468, 3468, 3468,
1391      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1392      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1393      3468, 3468, 3468, 3468, 3468, 3468, 3624, 3625, 3625, 3626,
1394      3468, 3468, 3626, 3468, 3627, 3627, 3468, 3628, 3468, 3468,
1395      3628, 3628, 3628, 3628, 3628, 3628, 3629, 3629, 3630, 3630,
1396
1397      3630, 3631, 3631, 3468, 3468, 3632, 3633, 3633, 3468, 3468,
1398      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1399      3468, 3468, 3634, 3468, 3468, 3634, 3634, 3635, 3635, 3468,
1400      3636, 3636, 3637, 3637, 3638, 3638, 3639, 3639, 3640, 3640,
1401      3640, 3468, 3468, 3640, 3640, 3640, 3641, 3641, 3468, 3468,
1402      3642, 3642, 3468, 3468, 3642, 3643, 3643, 3644, 3645, 3645,
1403      3646, 3468, 3468, 3468, 3468, 3647, 3647, 3648, 3648, 3468,
1404      3468, 3648, 3468, 3468, 3648, 3648, 3648, 3648, 3648, 3648,
1405      3648, 3648, 3648, 3648, 3648, 3649, 3649, 3468, 3468, 3468,
1406      3468, 3650, 3650, 3650, 3650, 3650, 3651, 3651, 3652, 3652,
1407
1408      3652, 3468, 3468, 3652, 3652, 3652, 3653, 3653, 3654, 3468,
1409      3468, 3655, 3655, 3656, 3468, 3468, 3656, 3657, 3657, 3658,
1410      3468, 3468, 3658, 3658, 3658, 3659, 3659, 3660, 3660, 3660,
1411      3661, 3661, 3468, 3662, 3662, 3662, 3662, 3663, 3663, 3664,
1412      3468, 3468, 3665, 3665, 3666, 3666, 3667, 3667, 3668, 3668,
1413      3668, 3669, 3669, 3670, 3670, 3670, 3670, 3670, 3671, 3671,
1414      3468, 3672, 3673, 3673, 3468, 3468, 3674, 3674, 3468, 3468,
1415      3675, 3676, 3676, 3468, 3468, 3677, 3678, 3678, 3679, 3468,
1416      3468, 3679, 3468, 3468, 3680, 3468, 3468, 3468, 3468, 3468,
1417      3468, 3681, 3468, 3682, 3468, 3682, 3468, 3468, 3468, 3468,
1418
1419      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1420      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1421      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3683, 3468, 3684,
1422      3468, 3684, 3685, 3468, 3468, 3468, 3685, 3468, 3468, 3686,
1423      3468, 3686, 3687, 3468, 3468, 3468, 3468, 3468, 3687, 3468,
1424      3468, 3687, 3687, 3687, 3468, 3688, 3468, 3688, 3689, 3689,
1425      3689, 3468, 3690, 3468, 3690, 3468, 3468, 3468, 3691, 3468,
1426      3692, 3468, 3692, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1427      3468, 3468, 3468, 3468, 3468, 3468, 3693, 3468, 3468, 3468,
1428      3693, 3693, 3468, 3694, 3468, 3694, 3468, 3695, 3695, 3468,
1429
1430      3696, 3468, 3696, 3697, 3697, 3468, 3698, 3468, 3698, 3699,
1431      3699, 3699, 3468, 3468, 3468, 3699, 3699, 3699, 3468, 3700,
1432      3468, 3700, 3468, 3468, 3701, 3701, 3468, 3468, 3468, 3701,
1433      3468, 3702, 3468, 3702, 3703, 3468, 3704, 3468, 3704, 3705,
1434      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3706, 3468, 3706,
1435      3707, 3707, 3707, 3707, 3468, 3468, 3468, 3707, 3468, 3468,
1436      3468, 3468, 3468, 3707, 3707, 3707, 3707, 3707, 3707, 3707,
1437      3707, 3707, 3707, 3468, 3708, 3468, 3708, 3468, 3468, 3468,
1438      3468, 3468, 3468, 3468, 3468, 3709, 3709, 3709, 3709, 3468,
1439      3710, 3468, 3710, 3711, 3711, 3711, 3711, 3468, 3468, 3468,
1440
1441      3468, 3468, 3711, 3711, 3468, 3712, 3468, 3712, 3713, 3468,
1442      3468, 3468, 3468, 3714, 3468, 3714, 3715, 3468, 3468, 3468,
1443      3715, 3468, 3716, 3468, 3716, 3717, 3468, 3468, 3468, 3717,
1444      3717, 3717, 3468, 3718, 3468, 3718, 3468, 3468, 3468, 3468,
1445      3719, 3468, 3720, 3468, 3720, 3468, 3468, 3468, 3721, 3721,
1446      3468, 3468, 3721, 3468, 3722, 3468, 3722, 3723, 3468, 3468,
1447      3468, 3468, 3724, 3468, 3724, 3468, 3468, 3468, 3468, 3468,
1448      3725, 3468, 3725, 3468, 3468, 3726, 3726, 3468, 3468, 3468,
1449      3727, 3468, 3727, 3728, 3728, 3728, 3728, 3728, 3468, 3729,
1450      3468, 3729, 3468, 3730, 3468, 3731, 3468, 3731, 3468, 3468,
1451
1452      3468, 3468, 3732, 3468, 3732, 3468, 3468, 3468, 3733, 3468,
1453      3734, 3468, 3734, 3468, 3468, 3468, 3735, 3468, 3736, 3468,
1454      3736, 3737, 3738, 3468, 3468, 3468, 3468, 3468, 3739, 3740,
1455      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1456      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1457      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1458      3468, 3468, 3741, 3468, 3468, 3742, 3468, 3743, 3744, 3468,
1459      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3744, 3468, 3468,
1460      3744, 3745, 3746, 3468, 3468, 3746, 3747, 3748, 3468, 3468,
1461      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1462
1463      3468, 3468, 3468, 3749, 3749, 3468, 3468, 3750, 3468, 3468,
1464      3468, 3751, 3752, 3468, 3468, 3753, 3754, 3755, 3755, 3468,
1465      3468, 3755, 3755, 3755, 3756, 3468, 3468, 3757, 3757, 3757,
1466      3758, 3468, 3468, 3759, 3468, 3468, 3760, 3761, 3761, 3761,
1467      3761, 3468, 3468, 3468, 3468, 3468, 3761, 3761, 3761, 3761,
1468      3761, 3761, 3761, 3761, 3761, 3761, 3761, 3762, 3468, 3468,
1469      3468, 3763, 3763, 3763, 3763, 3764, 3765, 3765, 3765, 3765,
1470      3468, 3468, 3468, 3765, 3765, 3766, 3767, 3768, 3769, 3769,
1471      3770, 3771, 3771, 3771, 3771, 3772, 3468, 3468, 3468, 3468,
1472      3468, 3468, 3773, 3774, 3468, 3468, 3468, 3468, 3775, 3775,
1473
1474      3468, 3468, 3468, 3775, 3776, 3777, 3778, 3468, 3468, 3468,
1475      3468, 3468, 3468, 3779, 3468, 3468, 3468, 3780, 3780, 3468,
1476      3468, 3468, 3781, 3782, 3468, 3468, 3782, 3782, 3782, 3783,
1477      3468, 3784, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792,
1478      3792, 3468, 3792, 3468, 3468, 3468, 3793, 3794, 3468, 3468,
1479      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1480      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1481      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1482      3468, 3468, 3795, 3468, 3468, 3468, 3796, 3468, 3797, 3798,
1483      3468, 3468, 3468, 3798, 3468, 3468, 3468, 3798, 3799, 3800,
1484
1485      3468, 3468, 3468, 3468, 3468, 3801, 3802, 3468, 3468, 3468,
1486      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1487      3803, 3468, 3468, 3468, 3468, 3468, 3804, 3468, 3468, 3468,
1488      3468, 3805, 3806, 3468, 3468, 3468, 3807, 3808, 3809, 3809,
1489      3468, 3468, 3468, 3468, 3468, 3809, 3468, 3468, 3809, 3810,
1490      3468, 3468, 3811, 3811, 3811, 3812, 3468, 3468, 3468, 3468,
1491      3468, 3468, 3468, 3468, 3813, 3814, 3468, 3468, 3814, 3814,
1492      3468, 3468, 3468, 3814, 3814, 3468, 3468, 3814, 3814, 3814,
1493      3814, 3814, 3814, 3814, 3814, 3815, 3468, 3468, 3816, 3816,
1494      3816, 3817, 3818, 3468, 3468, 3818, 3818, 3468, 3468, 3818,
1495
1496      3819, 3820, 3821, 3822, 3822, 3823, 3824, 3824, 3824, 3468,
1497      3468, 3824, 3825, 3826, 3827, 3468, 3828, 3828, 3828, 3829,
1498      3830, 3831, 3832, 3833, 3833, 3834, 3835, 3468, 3468, 3468,
1499      3835, 3835, 3835, 3836, 3468, 3468, 3468, 3837, 3838, 3468,
1500      3468, 3839, 3468, 3468, 3840, 3841, 3842, 3842, 3468, 3468,
1501      3843, 3844, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1502      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1503      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1504      3468, 3845, 3846, 3468, 3847, 3848, 3848, 3848, 3849, 3850,
1505      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1506
1507      3468, 3851, 3852, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1508      3468, 3468, 3853, 3468, 3468, 3468, 3854, 3468, 3855, 3856,
1509      3468, 3468, 3857, 3858, 3858, 3468, 3468, 3468, 3468, 3468,
1510      3468, 3468, 3468, 3858, 3468, 3468, 3468, 3468, 3468, 3468,
1511      3859, 3468, 3468, 3860, 3861, 3862, 3468, 3468, 3468, 3468,
1512      3468, 3862, 3862, 3862, 3468, 3468, 3468, 3468, 3468, 3862,
1513      3862, 3862, 3862, 3468, 3468, 3862, 3862, 3863, 3468, 3468,
1514      3468, 3468, 3468, 3864, 3468, 3468, 3865, 3866, 3468, 3468,
1515      3468, 3468, 3468, 3866, 3468, 3468, 3468, 3866, 3468, 3468,
1516      3867, 3868, 3869, 3869, 3870, 3871, 3871, 3871, 3468, 3468,
1517
1518      3468, 3871, 3468, 3468, 3872, 3873, 3468, 3468, 3468, 3468,
1519      3468, 3874, 3875, 3876, 3877, 3878, 3468, 3468, 3468, 3468,
1520      3879, 3880, 3880, 3880, 3880, 3881, 3468, 3468, 3468, 3468,
1521      3882, 3883, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1522      3884, 3885, 3886, 3886, 3468, 3468, 3468, 3887, 3468, 3468,
1523      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1524      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1525      3468, 3468, 3468, 3468, 3888, 3889, 3468, 3468, 3468, 3890,
1526      3468, 3468, 3890, 3891, 3468, 3468, 3468, 3468, 3468, 3468,
1527      3468, 3468, 3468, 3468, 3468, 3468, 3892, 3468, 3468, 3468,
1528
1529      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3893, 3894,
1530      3468, 3895, 3468, 3468, 3468, 3468, 3468, 3896, 3897, 3897,
1531      3468, 3468, 3468, 3468, 3468, 3897, 3468, 3468, 3468, 3468,
1532      3468, 3468, 3898, 3468, 3468, 3468, 3899, 3900, 3901, 3468,
1533      3468, 3468, 3901, 3901, 3901, 3468, 3468, 3468, 3468, 3468,
1534      3901, 3901, 3901, 3468, 3468, 3468, 3901, 3901, 3902, 3468,
1535      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3903, 3904, 3468,
1536      3468, 3468, 3904, 3904, 3905, 3906, 3907, 3468, 3468, 3908,
1537      3909, 3468, 3468, 3909, 3909, 3468, 3468, 3909, 3910, 3468,
1538      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3911, 3912,
1539
1540      3913, 3914, 3915, 3468, 3468, 3468, 3468, 3468, 3468, 3916,
1541      3917, 3917, 3917, 3917, 3918, 3468, 3919, 3920, 3921, 3922,
1542      3923, 3923, 3468, 3468, 3468, 3468, 3924, 3468, 3468, 3468,
1543      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1544      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3925,
1545      3926, 3468, 3927, 3468, 3468, 3468, 3927, 3468, 3468, 3468,
1546      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1547      3468, 3468, 3928, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1548      3468, 3468, 3468, 3468, 3468, 3468, 3929, 3930, 3468, 3931,
1549      3932, 3933, 3933, 3468, 3468, 3468, 3468, 3933, 3468, 3468,
1550
1551      3468, 3468, 3934, 3935, 3936, 3937, 3937, 3937, 3937, 3468,
1552      3468, 3468, 3937, 3937, 3937, 3937, 3468, 3468, 3938, 3468,
1553      3468, 3468, 3939, 3940, 3940, 3940, 3941, 3468, 3468, 3942,
1554      3468, 3468, 3468, 3943, 3944, 3468, 3468, 3468, 3944, 3944,
1555      3468, 3468, 3468, 3468, 3944, 3945, 3468, 3946, 3947, 3948,
1556      3949, 3950, 3951, 3468, 3468, 3952, 3952, 3952, 3953, 3468,
1557      3954, 3468, 3468, 3955, 3956, 3957, 3957, 3468, 3958, 3468,
1558      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1559      3468, 3468, 3468, 3959, 3468, 3468, 3960, 3468, 3468, 3468,
1560      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3961, 3468, 3468,
1561
1562      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1563      3468, 3468, 3468, 3962, 3963, 3468, 3468, 3468, 3964, 3965,
1564      3965, 3468, 3468, 3468, 3468, 3965, 3468, 3966, 3468, 3468,
1565      3967, 3968, 3968, 3968, 3968, 3968, 3468, 3468, 3968, 3968,
1566      3968, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3969, 3969,
1567      3969, 3970, 3468, 3468, 3971, 3468, 3468, 3972, 3972, 3972,
1568      3468, 3468, 3468, 3468, 3972, 3973, 3468, 3974, 3468, 3468,
1569      3468, 3468, 3949, 3950, 3951, 3468, 3468, 3468, 3468, 3468,
1570      3952, 3952, 3468, 3468, 3468, 3954, 3955, 3956, 3957, 3957,
1571      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3959,
1572
1573      3468, 3468, 3468, 3960, 3468, 3468, 3468, 3468, 3468, 3468,
1574      3468, 3468, 3468, 3468, 3961, 3468, 3468, 3468, 3468, 3468,
1575      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1576      3468, 3962, 3963, 3468, 3468, 3468, 3468, 3468, 3468, 3965,
1577      3965, 3468, 3468, 3468, 3468, 3966, 3967, 3968, 3968, 3968,
1578      3968, 3968, 3468, 3468, 3468, 3968, 3468, 3468, 3968, 3468,
1579      3468, 3468, 3468, 3969, 3969, 3468, 3468, 3970, 3468, 3468,
1580      3468, 3468, 3468, 3468, 3468, 3468, 3972, 3972, 3972, 3468,
1581      3468, 3468, 3468, 3973, 3974, 3468, 3468, 3468, 3468, 3468,
1582      3950, 3951, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1583
1584      3468, 3955, 3956, 3957, 3957, 3468, 3468, 3468, 3468, 3468,
1585      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3960,
1586      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1587      3961, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1588      3468, 3468, 3468, 3468, 3468, 3468, 3962, 3963, 3468, 3965,
1589      3468, 3468, 3468, 3468, 3468, 3966, 3468, 3468, 3968, 3968,
1590      3968, 3468, 3468, 3968, 3968, 3468, 3468, 3468, 3968, 3468,
1591      3468, 3468, 3468, 3969, 3468, 3468, 3468, 3468, 3468, 3468,
1592      3468, 3972, 3972, 3972, 3468, 3468, 3468, 3468, 3468, 3468,
1593      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3950, 3951, 3468,
1594
1595      3468, 3468, 3468, 3468, 3468, 3955, 3956, 3957, 3957, 3468,
1596      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1597      3468, 3468, 3468, 3468, 3468, 3960, 3468, 3468, 3468, 3468,
1598      3468, 3468, 3468, 3468, 3961, 3468, 3468, 3468, 3468, 3468,
1599      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1600      3468, 3468, 3963, 3468, 3468, 3965, 3468, 3468, 3468, 3468,
1601      3468, 3968, 3968, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1602      3968, 3968, 3468, 3468, 3468, 3468, 3969, 3468, 3468, 3468,
1603      3468, 3468, 3468, 3972, 3468, 3468, 3972, 3468, 3468, 3468,
1604      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3950,
1605
1606      3951, 3468, 3468, 3468, 3468, 3468, 3468, 3956, 3957, 3957,
1607      3957, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1608      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1609      3468, 3468, 3468, 3961, 3468, 3468, 3468, 3468, 3468, 3468,
1610      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1611      3468, 3963, 3468, 3468, 3468, 3965, 3468, 3468, 3468, 3968,
1612      3968, 3468, 3468, 3468, 3468, 3468, 3468, 3968, 3968, 3468,
1613      3468, 3468, 3468, 3969, 3972, 3468, 3468, 3468, 3972, 3468,
1614      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1615      3468, 3468, 3468, 3468, 3468, 3951, 3468, 3468, 3468, 3468,
1616
1617      3956, 3957, 3957, 3957, 3975, 3976, 3468, 3468, 3468, 3468,
1618      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1619      3468, 3468, 3468, 3468, 3468, 3468, 3961, 3468, 3468, 3468,
1620      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3965, 3968,
1621      3968, 3468, 3468, 3968, 3468, 3468, 3468, 3468, 3969, 3468,
1622      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1623      3468, 3468, 3468, 3468, 3468, 3951, 3468, 3468, 3468, 3468,
1624      3956, 3957, 3977, 3978, 3975, 3976, 3468, 3468, 3468, 3468,
1625      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1626      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3965, 3968,
1627
1628      3968, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3969, 3468,
1629      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1630      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1631      3468, 3468, 3468, 3956, 3977, 3957, 3979, 3978, 3980, 3957,
1632      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1633      3468, 3468, 3468, 3468, 3468, 3468, 3965, 3968, 3968, 3468,
1634      3468, 3468, 3468, 3468, 3468, 3468, 3969, 3468, 3468, 3468,
1635      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3956, 3979, 3468,
1636      3980, 3957, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1637      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1638
1639      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1640      3468, 3468, 3468, 3468, 3956, 3468, 3468, 3468, 3468, 3468,
1641      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1642      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1643      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1644      3956, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1645      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1646      3468, 3468, 3468, 3468, 3468, 3468, 3956, 3468, 3468, 3468,
1647      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1648      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3956,
1649
1650      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1651      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1652      3956, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1653      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1654      3468, 3956, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1655      3468, 3468, 3468, 3468, 3956, 3468, 3468, 3468, 3468, 3468,
1656      3468, 3468, 3468, 3956, 3468, 3468, 3468, 3468, 3468, 3468,
1657      3468, 3468, 3956, 3956, 3468, 3468, 3468, 3468, 3468, 3468,
1658      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1659      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1660
1661      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1662      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1663      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1664      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1665      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1666      3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
1667      3956, 3956, 3956, 3956, 3956, 3956, 3468,    0, 3468, 3468,
1668      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1669      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1670      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1671
1672      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1673      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1674      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1675      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1676      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1677      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1678      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1679      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1680      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1681      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1682
1683      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1684      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1685      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1686      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1687      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1688      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1689      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1690      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1691      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1692      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1693
1694      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1695      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1696      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1697      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1698      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1699      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1700      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1701      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1702      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1703      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1704
1705      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1706      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1707      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1708      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1709      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1710      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1711      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1712      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1713      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1714      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1715
1716      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1717      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1718      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1719      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1720      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1721      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1722      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
1723      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468
1724     } ;
1725
1726 static yyconst flex_int16_t yy_nxt[12714] =
1727     {   0,
1728      3468,  266,  267,  266,  266,  267,  266,  266,  267,  266,
1729       266,  267,  266,  271,  267,  271,  277,  268,  274,  277,
1730       268,  274, 3468,  269, 3468,  275,  269, 3468,  275,  272,
1731       271,  267,  271,  677,  278,  280,  281,  278,  280,  281,
1732       282,  283,  722,  282,  283,  677,  272,  287,  288,  678,
1733       284,  280,  281,  284,  285,  680,  282,  280,  281,  711,
1734       285,  679,  282,  287,  288, 3468,  284,  267,  267,  267,
1735       871,  679,  284,  267,  267,  267,  299,  267,  299,  299,
1736       267,  299,  872,  290,  299,  267,  299,  698, 1758,  290,
1737       752,  289,  300, 1395,  714,  300,  676,  676,  676, 1396,
1738
1739       301,  676,  676,  676,  676,  676,  676,  289,  291,  292,
1740       267,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1741       291,  291,  291,  709,  291,  295,  291,  296,  291,  299,
1742       267,  299,  267,  267,  267,  267,  267,  267,  710,  299,
1743       267,  299,  299,  267,  299,  301,  715,  826,  302,  680,
1744       827,  302,  950,  291,  291,  300,  680,  680,  300,  299,
1745       267,  299,  676,  676,  676,  679,  676,  676,  676,  676,
1746       676,  676,  679,  679, 3468,  303,  951,  297,  291,  292,
1747       267,  292,  291,  291,  291,  291,  291,  291,  291,  293,
1748       291,  291,  291, 1761,  291,  295,  291,  296,  291,  299,
1749
1750       267,  299,  267,  267,  267,  267,  267,  267,  685,  299,
1751       267,  299,  299,  267,  299,  303,  691,  752,  304,  840,
1752      1010,  304,  841,  291,  291,  301,  761,  753,  301,  267,
1753       267,  267,  267,  267,  267,  299,  267,  299,  299,  267,
1754       299,  299,  267,  299, 1011,  305,  877,  297,  305,  680,
1755       686,  303,  819,  878,  303,  765,  687,  306,  299,  267,
1756       299,  688,  676,  676,  676,  679,  689,  676,  676,  676,
1757       676,  676,  676,  820,  306,  307,  308,  267,  308,  307,
1758       307,  307,  307,  307,  307,  307,  309,  307,  307,  307,
1759       739,  307,  311,  307,  312,  307,  315,  267,  315,  315,
1760
1761       267,  315,  267,  267,  267,  740,  267,  267,  267,  315,
1762       267,  315,  316,  794,  879,  316, 1762,  795,  304,  735,
1763       307,  307,  304,  736,  777,  316,  695,  737,  313,  307,
1764       308,  267,  308,  307,  307,  307,  307,  307,  307,  307,
1765       309,  307,  307,  307,  680,  307,  311,  307,  312,  307,
1766       315,  267,  315,  315,  267,  315,  315,  267,  315, 1763,
1767       679,  887,  280,  281,  885,  716,  316,  282, 3468,  317,
1768       715,  886,  317,  778,  307,  307,  761,  327,  717,  777,
1769       710,  897,  313,  318,  319,  267,  319,  318,  318,  318,
1770       318,  318,  318,  318,  320,  318,  318,  318, 1765,  318,
1771
1772       322,  318,  323,  318, 1766,  680,  328,  709,  341,  267,
1773       341,  341,  267,  341,  353,  267,  353,  715,  280,  281,
1774       718,  679,  710,  282,  342,  728,  880,  342,  318,  318,
1775       354,  714,  729,  327,  715,  938,  324,  715,  939,  325,
1776       797,  679,  676,  676,  676, 1768,  326,  318,  319,  267,
1777       319,  318,  318,  318,  318,  318,  318,  318,  320,  318,
1778       318,  318,  328,  318,  322,  318,  323,  318,  353,  267,
1779       353,  364,  267,  364,  364,  267,  364,  828,  364,  267,
1780       364,  364,  267,  364,  354,  680,  766,  365,  680,  798,
1781       365,  829,  318,  318,  366,  741, 1769,  366, 1770,  903,
1782
1783       324,  679,  767,  325,  679,  676,  676,  676,  797, 1209,
1784       326,  329,  330,  267,  330,  329,  329,  329,  329,  329,
1785       329,  329,  331,  329,  329,  329, 1210,  329,  333,  329,
1786       334,  329,  267,  267,  267,  267,  267,  267,  364,  267,
1787       364,  805,  364,  267,  364,  364,  267,  364,  367, 1771,
1788       680,  367,  680,  680,  365,  715,  329,  329,  365,  747,
1789       714,  368,  676,  676,  676,  335,  679,  336,  679,  679,
1790      3468,  337,  676,  676,  676,  805,  338,  339,  329,  330,
1791       267,  330,  329,  329,  329,  329,  329,  329,  329,  331,
1792       329,  329,  329,  761,  329,  333,  329,  334,  329,  364,
1793
1794       267,  364,  267,  267,  267,  267,  267,  267,  912,  364,
1795       267,  364,  364,  267,  364,  368,  764, 1772,  369,  778,
1796       704,  369,  761,  329,  329,  370,  757,  714,  370,  676,
1797       676,  676,  335,  760,  336,  676,  676,  676,  337,  676,
1798       676,  676, 1773,  338,  339,  343,  344,  267,  344,  343,
1799       343,  343,  343,  343,  343,  343,  345,  343,  343,  343,
1800       711,  343,  347,  343,  348,  343,  364,  267,  364,  364,
1801       267,  364,  267,  267,  267,  932,  267,  267,  267,  364,
1802       267,  364,  371,  959, 1656,  371,  932,  960,  372,  768,
1803       343,  343,  372,  755,  756,  368, 1657,  349,  676,  676,
1804
1805       676,  933,  714,  350,  769,  676,  676,  676,  676,  676,
1806       676,  984,  351,  343,  344,  267,  344,  343,  343,  343,
1807       343,  343,  343,  343,  345,  343,  343,  343, 1774,  343,
1808       347,  343,  348,  343,  364,  267,  364,  267,  267,  267,
1809       267,  267,  267,  964,  364,  267,  364,  364,  267,  364,
1810       368,  680,  680,  373,  680,  950,  373,  965,  343,  343,
1811       371,  783,  680,  371, 1775,  349, 1776,  679,  679,  788,
1812       679,  350,  676,  676,  676,  676,  676,  676,  679, 1019,
1813       351,  355,  356,  267,  356,  355,  355,  355,  355,  355,
1814       355,  355,  357,  355,  355,  355, 1778,  355,  359,  355,
1815
1816       360,  355,  364,  267,  364,  364,  267,  364,  267,  267,
1817       267, 1779,  267,  267,  267,  364,  267,  364,  374,  680,
1818       680,  374, 1787, 1788,  375,  834,  355,  355,  375,  680,
1819      1790,  376,  676,  676,  676,  679,  679,  361,  676,  676,
1820       676,  676,  676,  676,  834,  679,  362,  355,  356,  267,
1821       356,  355,  355,  355,  355,  355,  355,  355,  357,  355,
1822       355,  355, 1010,  355,  359,  355,  360,  355,  364,  267,
1823       364,  267,  267,  267,  267,  267,  267,  761,  364,  267,
1824       364,  364,  267,  364,  376,  680,  951,  377, 1040, 1010,
1825       377, 1041,  355,  355,  374,  680,  714,  374,  364,  267,
1826
1827       364,  679,  809,  361,  364,  267,  364,  676,  676,  676,
1828       873,  679,  362, 1019,  378,  676,  676,  676,  752, 1297,
1829       378,  379,  380,  267,  380,  379,  379,  379,  379,  379,
1830       379,  379,  381,  379,  379,  379, 1210,  379,  383,  379,
1831       384,  379,  390,  267,  390,  390,  267,  390,  267,  267,
1832       267, 1030,  267,  267,  267,  960,  770,  680,  391, 1049,
1833       969,  391,  761, 1050,  392, 3468,  379,  379,  392,  680,
1834       680,  385,  759,  679,  965,  711,  815,  386,  676,  676,
1835       676,  387,  676,  676,  676,  679,  679,  388,  379,  380,
1836       267,  380,  379,  379,  379,  379,  379,  379,  379,  381,
1837
1838       379,  379,  379,  698,  379,  383,  379,  384,  379,  390,
1839       267,  390,  390,  267,  390,  390,  267,  390,  823,  390,
1840       267,  390,  676,  676,  676,  391,  824,  830,  391, 1794,
1841      1798,  393,  825,  379,  379,  393,  680,  680,  385,  831,
1842       832,  676,  676,  676,  386,  676,  676,  676,  387,  676,
1843       676,  676,  679,  679,  388,  394,  395,  267,  395,  394,
1844       394,  394,  394,  394,  394,  394,  396,  394,  394,  394,
1845       950,  394,  398,  394,  399,  394,  403,  267,  403,  403,
1846       267,  403,  414,  267,  414,  873,  414,  267,  414,  428,
1847       267,  428,  404, 1800, 1020,  404,  680,  680,  415,  680,
1848
1849       394,  394,  415,  844,  854,  429,  676,  676,  676,  676,
1850       676,  676,  679,  679,  911,  679,  400,  676,  676,  676,
1851      1807,  401,  394,  395,  267,  395,  394,  394,  394,  394,
1852       394,  394,  394,  396,  394,  394,  394,  714,  394,  398,
1853       394,  399,  394,  428,  267,  428,  267,  267,  267,  267,
1854       267,  267,  920,  428,  267,  428,  428,  267,  428,  429,
1855      1180, 1808,  430,  680, 1522,  430,  714,  394,  394,  429,
1856       859,  680,  429,  676,  676,  676,  676,  676,  676,  679,
1857       676,  676,  676,  400,  676,  676,  676,  679,  401,  405,
1858       406,  267,  406,  405,  405,  405,  405,  405,  405,  405,
1859
1860       407,  405,  405,  405,  761,  405,  409,  405,  410,  405,
1861       428,  267,  428,  428,  267,  428,  443,  267,  443,  969,
1862       443,  267,  443,  267,  267,  267,  431, 1010, 1809,  431,
1863       680, 1810,  444, 1016,  405,  405,  444,  865,  680,  367,
1864       676,  676,  676,  676,  676,  676,  679,  676,  676,  676,
1865       411, 1020, 1815,  879,  679, 1209,  412,  405,  406,  267,
1866       406,  405,  405,  405,  405,  405,  405,  405,  407,  405,
1867       405,  405, 1323,  405,  409,  405,  410,  405,  267,  267,
1868       267,  443,  267,  443,  443,  267,  443, 1816,  443,  267,
1869       443,  443,  267,  443,  367, 1817, 1818,  444, 1819, 1180,
1870
1871       444,  880,  405,  405,  445,  714,  680,  445,  676,  676,
1872       676,  676,  676,  676,  676,  676,  676, 1820,  411, 1739,
1873      1821,  887,  679, 1828,  412,  416,  417,  267,  417,  416,
1874       416,  416,  416,  416,  416,  416,  418,  416,  416,  416,
1875      1832,  416,  420,  416,  421,  416,  454,  267,  454,  454,
1876       267,  454,  466,  267,  466,  920,  466,  267,  466,  676,
1877       676,  676,  455, 1837, 1839,  455,  680,  680,  467,  880,
1878       416,  416,  467,  422,  892,  423,  952,  715,  676,  676,
1879       676,  424,  679,  679,  676,  676,  676,  953,  425, 1840,
1880       954,  426,  416,  417,  267,  417,  416,  416,  416,  416,
1881
1882       416,  416,  416,  418,  416,  416,  416,  714,  416,  420,
1883       416,  421,  416,  484,  267,  484,  484,  267,  484,  267,
1884       267,  267, 1846,  267,  267,  267,  676,  676,  676,  485,
1885       680, 1851,  485, 1852, 1853,  367,  680,  416,  416,  367,
1886       422,  897,  423,  676,  676,  676,  679,  903,  424,  676,
1887       676,  676,  679, 1854, 1855,  425,  911, 1866,  426,  432,
1888       433,  267,  433,  432,  432,  432,  432,  432,  432,  432,
1889       434,  432,  432,  432, 1869,  432,  436,  432,  437,  432,
1890       484,  267,  484,  484,  267,  484,  484,  267,  484,  880,
1891       484,  267,  484,  912, 1870,  880,  485,  715,  680,  485,
1892
1893      1547, 1874,  486,  715,  432,  432,  486,  438,  761,  439,
1894       676,  676,  676, 1548,  679,  440,  676,  676,  676,  676,
1895       676,  676,  676,  676,  676, 1875,  441,  432,  433,  267,
1896       433,  432,  432,  432,  432,  432,  432,  432,  434,  432,
1897       432,  432, 1878,  432,  436,  432,  437,  432,  500,  267,
1898       500,  500,  267,  500,  516,  267,  516, 1879,  516,  267,
1899       516, 1880,  680,  680,  501, 1881, 1882,  501, 1883,  916,
1900       517,  680,  432,  432,  517,  438, 1884,  439,  679,  679,
1901       676,  676,  676,  440,  676,  676,  676,  679,  676,  676,
1902       676,  676,  676,  676,  441,  446,  447,  267,  447,  446,
1903
1904       446,  446,  446,  446,  446,  446,  448,  446,  446,  446,
1905      1885,  446,  450,  446,  451,  446,  527,  267,  527,  527,
1906       267,  527,  539,  267,  539,  969,  539,  267,  539,  552,
1907       267,  552,  528,  680, 1180,  528,  680,  680,  540, 1021,
1908       446,  446,  540,  925,  930,  553,  676,  676,  676,  679,
1909      1182, 1893,  679,  679, 1896, 1897,  452,  446,  447,  267,
1910       447,  446,  446,  446,  446,  446,  446,  446,  448,  446,
1911       446,  446, 1900,  446,  450,  446,  451,  446,  552,  267,
1912       552,  267,  267,  267,  267,  267,  267,  969,  552,  267,
1913       552,  552,  267,  552,  553, 1902, 1904,  367,  961, 1905,
1914
1915       367, 1022,  446,  446,  553,  962, 1907,  553,  676,  676,
1916       676,  963,  936,  936,  936, 1197, 1197, 1197,  452,  456,
1917       457,  267,  457,  456,  456,  456,  456,  456,  456,  456,
1918       458,  456,  456,  456, 1908,  456,  460,  456,  461,  456,
1919       552,  267,  552,  552,  267,  552,  564,  267,  564,  952,
1920       564,  267,  564,  267,  267,  267,  554, 1909, 1914,  554,
1921       953,  974,  565,  968,  456,  456,  565,  971,  962,  566,
1922       462,  937,  971, 1917,  975,  463, 1918, 1919,  972, 1198,
1923      1921,  954, 1924,  972, 1925, 1927,  968,  464,  456,  457,
1924       267,  457,  456,  456,  456,  456,  456,  456,  456,  458,
1925
1926       456,  456,  456, 1931,  456,  460,  456,  461,  456,  267,
1927       267,  267,  564,  267,  564,  564,  267,  564, 1932,  564,
1928       267,  564,  564,  267,  564,  566, 1933, 1935,  565,  974,
1929       961,  565, 1559,  456,  456,  567,  962,  962,  567,  462,
1930       961,  974,  963,  975,  463, 1548, 1742,  962,  962, 1197,
1931      1197, 1197, 1949, 1015, 1015, 1950,  464,  468,  469,  267,
1932       469,  468,  468,  468,  468,  468,  468,  468,  470,  468,
1933       468,  468,  471,  468,  472,  468,  473,  468,  471,  471,
1934       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
1935       471,  471,  471,  471,  471,  471,  471,  471,  471,  471,
1936
1937       471,  471,  468,  468,  471,  474,  475,  476,  471,  471,
1938       471,  471,  471,  477,  471,  471,  478,  471,  471,  471,
1939       479,  471,  480,  481,  482,  471,  471,  471,  471,  471,
1940       471,  487,  488,  267,  488,  487,  487,  487,  487,  487,
1941       487,  487,  489,  487,  487,  487, 1951,  487,  491,  487,
1942       492,  487,  578,  267,  578,  578,  267,  578,  267,  267,
1943       267,  952,  267,  267,  267,  578,  267,  578,  579, 1953,
1944      1180,  579,  972, 1954,  566,  968,  487,  487,  566, 1955,
1945       493,  579,  936,  936,  936, 1956, 1184,  494, 1957, 1958,
1946       495, 1221, 1221, 1221,  496, 1946,  497,  498,  487,  488,
1947
1948       267,  488,  487,  487,  487,  487,  487,  487,  487,  489,
1949       487,  487,  487, 1959,  487,  491,  487,  492,  487,  578,
1950       267,  578,  578,  267,  578,  578,  267,  578, 1960,  590,
1951       267,  590,  590,  267,  590,  579, 1961, 1962,  580, 1963,
1952      1965,  580, 1352,  487,  487,  591, 1966,  493,  591, 1234,
1953      1234, 1234, 1353, 1235,  494, 1198, 1236,  495, 1967, 1354,
1954      1968,  496, 1971,  497,  498,  502,  503,  267,  503,  502,
1955       502,  502,  502,  502,  502,  502,  504,  502,  502,  502,
1956      1974,  502,  506,  502,  507,  502,  601,  267,  601,  601,
1957       267,  601,  267,  267,  267, 1975,  267,  267,  267,  981,
1958
1959       981,  981,  602, 1976, 1559,  602, 1977, 1978,  566, 1979,
1960       502,  502,  566,  508,  509,  510,  982, 1597, 1244, 1244,
1961      1244,  511, 1245, 1983,  512, 1246, 1984, 1986,  513, 1987,
1962      1988,  514,  502,  503,  267,  503,  502,  502,  502,  502,
1963       502,  502,  502,  504,  502,  502,  502, 1990,  502,  506,
1964       502,  507,  502,  601,  267,  601,  601,  267,  601,  601,
1965       267,  601, 2003,  601,  267,  601,  989,  989,  989,  602,
1966      2004, 2005,  602, 2006, 2007,  603, 2010,  502,  502,  603,
1967       508,  509,  510,  990, 2011, 1266, 1266, 1266,  511, 1267,
1968      2012,  512, 1268, 2013, 2018,  513, 2019, 2024,  514,  518,
1969
1970       519,  267,  519,  518,  518,  518,  518,  518,  518,  518,
1971       520,  518,  518,  518, 2025,  518,  522,  518,  523,  518,
1972       614,  267,  614,  614,  267,  614,  267,  267,  267, 2034,
1973       267,  267,  267, 1004, 1004, 1004,  615, 2038, 2046,  615,
1974      2052, 2053,  566, 2054,  518,  518,  566, 2060, 2061,  524,
1975      1005, 1538, 1538, 1538, 2062,  525,  518,  519,  267,  519,
1976       518,  518,  518,  518,  518,  518,  518,  520,  518,  518,
1977       518, 2063,  518,  522,  518,  523,  518,  614,  267,  614,
1978       614,  267,  614,  614,  267,  614, 2066,  614,  267,  614,
1979      1024, 1024, 1024,  615, 2067, 2078,  615, 2084, 2088,  616,
1980
1981      2091,  518,  518,  616, 2093, 2094,  524, 1025, 1221, 1221,
1982      1221, 2096,  525,  529,  530,  267,  530,  529,  529,  529,
1983       529,  529,  529,  529,  531,  529,  529,  529, 2097,  529,
1984       533,  529,  534,  529,  629,  267,  629,  629,  267,  629,
1985       267,  267,  267, 2098,  267,  267,  267,  629,  267,  629,
1986       630, 2102, 2105,  630, 2107, 2114,  631, 2122,  529,  529,
1987       631, 2123,  535,  630, 1197, 1197, 1197, 2124, 2125,  536,
1988      2127, 1180,  537,  529,  530,  267,  530,  529,  529,  529,
1989       529,  529,  529,  529,  531,  529,  529,  529, 2142,  529,
1990       533,  529,  534,  529,  629,  267,  629,  629,  267,  629,
1991
1992       629,  267,  629, 2145,  641,  267,  641,  641,  267,  641,
1993       630, 2149, 2150,  632, 2151, 1742,  632, 2154,  529,  529,
1994       642, 1742,  535,  642, 1221, 1221, 1221, 2155, 1274,  536,
1995      2157, 2158,  537,  541,  542,  267,  542,  541,  541,  541,
1996       541,  541,  541,  541,  543,  541,  541,  541, 2144,  541,
1997       545,  541,  546,  541,  651,  267,  651,  651,  267,  651,
1998       267,  267,  267, 2143,  267,  267,  267,  651,  267,  651,
1999       652, 2152, 2159,  652, 2160, 2161,  367, 2162,  541,  541,
2000       367, 2163,  547,  652, 1594, 1594, 1594, 2153, 1274,  548,
2001      2166, 2167,  549, 1538, 1538, 1538, 1756, 1756, 1756,  550,
2002
2003       541,  542,  267,  542,  541,  541,  541,  541,  541,  541,
2004       541,  543,  541,  541,  541, 2170,  541,  545,  541,  546,
2005       541,  651,  267,  651,  651,  267,  651,  651,  267,  651,
2006      2171,  663,  267,  663,  663,  267,  663,  652, 2172, 2173,
2007       653, 2174, 1757,  653,  752,  541,  541,  664, 2176,  547,
2008       664, 1288, 1288, 1288,  762, 1289,  548, 2177, 1290,  549,
2009      1759, 1759, 1759, 1764, 1764, 1764,  550,  555,  556,  267,
2010       556,  555,  555,  555,  555,  555,  555,  555,  557,  555,
2011       555,  555,  763,  555,  559,  555,  560,  555,  674,  267,
2012       674,  674,  267,  674, 2180, 2183,  714, 1042, 1042, 1042,
2013
2014       708, 1193, 1193, 1193,  675, 2187, 1760,  675, 2188, 2191,
2015      3468, 2192,  555,  555, 1043, 1053, 1053, 1053,  561, 1195,
2016       711, 2193, 1313, 1313, 1313, 2196, 1314, 2200,  711, 1315,
2017      2201, 2204, 1054,  562,  555,  556,  267,  556,  555,  555,
2018       555,  555,  555,  555,  555,  557,  555,  555,  555,  712,
2019       555,  559,  555,  560,  555,  713,  766, 1062, 1062, 1062,
2020      2206, 2211,  714, 1767, 1767, 1767,  715, 1064, 1064, 1064,
2021      2189, 2212,  767, 2219, 1063, 1070, 1070, 1070, 2190,  555,
2022       555, 1073, 1073, 1073, 1065,  561, 1327, 1327, 1327, 2194,
2023      1328, 2220, 1071, 1329, 1777, 1777, 1777, 2195, 1074, 2224,
2024
2025       562,  568,  569,  267,  569,  568,  568,  568,  568,  568,
2026       568,  568,  570,  568,  568,  568, 2225,  568,  572,  568,
2027       573,  568, 1088, 1088, 1088, 1090, 1090, 1090, 1102, 1102,
2028      1102, 1110, 1110, 1110, 1115, 1115, 1115, 2202, 2202, 1089,
2029      2226, 2227, 1091, 2152, 2239, 1103,  568,  568, 1111, 2243,
2030      2244, 1116,  574, 2203, 2153,  575, 1341, 1341, 1341, 2203,
2031      1342, 2245, 2251, 1343, 1594, 1594, 1594,  576,  568,  569,
2032       267,  569,  568,  568,  568,  568,  568,  568,  568,  570,
2033       568,  568,  568, 2252,  568,  572,  568,  573,  568, 1121,
2034      1121, 1121, 1141, 1141, 1141, 1165, 1165, 1165, 1169, 1169,
2035
2036      1169, 1174, 1174, 1174, 2253, 2257, 1122, 2258, 2269, 1142,
2037      2273, 2274, 1166,  568,  568, 1170, 2275, 2277, 1175,  574,
2038      2281, 2285,  575, 1344, 1344, 1344, 2286, 1345, 2287, 2288,
2039      1346, 1814, 1814, 1814,  576,  581,  582,  267,  582,  581,
2040       581,  581,  581,  581,  581,  581,  583,  581,  581,  581,
2041      2289,  581,  585,  581,  586,  581, 1193, 1193, 1193, 1229,
2042      1229, 1229, 2292, 2299, 1229, 1229, 1229,  981,  981,  981,
2043      1239, 1239, 1239, 1991, 1195, 2301, 2311, 1231, 2312, 1992,
2044       581,  581, 1231, 1993,  982, 2313,  587, 1994, 1241, 2314,
2045      2316,  588,  581,  582,  267,  582,  581,  581,  581,  581,
2046
2047       581,  581,  581,  583,  581,  581,  581, 1180,  581,  585,
2048       581,  586,  581, 2320, 1196, 1239, 1239, 1239,  989,  989,
2049       989, 1255, 1255, 1255, 1232, 1247, 1247, 1247, 1250, 1250,
2050      1250, 2323, 2329, 1241, 2330,  990, 2331,  581,  581, 1257,
2051      2332, 1742, 1248,  587, 2335, 1251, 2337, 2338,  588,  592,
2052       593,  267,  593,  592,  592,  592,  592,  592,  592,  592,
2053       594,  592,  592,  592, 2339,  592,  596,  592,  597,  592,
2054      1262, 1262, 1262, 1262, 1262, 1262, 1004, 1004, 1004, 1242,
2055      1270, 1270, 1270, 1742, 1255, 1255, 1255, 2322, 1264, 2340,
2056      2344, 1264, 2349, 1005,  592,  592, 2351, 2352, 1272, 2353,
2057
2058       598, 2357, 1257, 1355, 1355, 1355, 2363, 1356, 2364, 2365,
2059      1357, 1811, 1811, 1811, 2321,  599,  592,  593,  267,  593,
2060       592,  592,  592,  592,  592,  592,  592,  594,  592,  592,
2061       592, 1258,  592,  596,  592,  597,  592, 1265, 1270, 1270,
2062      1270, 1024, 1024, 1024, 2366, 1293, 1293, 1293, 1293, 1293,
2063      1293, 1300, 1300, 1300, 1995, 2367, 1272, 1812, 1025, 2368,
2064      1996,  592,  592, 1295, 1997, 2369, 1295,  598, 1998, 1302,
2065      1359, 1359, 1359, 2370, 1360, 1273, 2371, 1361, 1813, 1813,
2066      1813, 2372,  599,  604,  605,  267,  605,  604,  604,  604,
2067       604,  604,  604,  604,  606,  604,  604,  604, 2378,  604,
2068
2069       608,  604,  609,  604, 1300, 1300, 1300, 1306, 1306, 1306,
2070      1042, 1042, 1042, 2379, 1296, 1306, 1306, 1306, 1319, 1319,
2071      1319, 2380, 1302, 2381, 1760, 1308, 2387, 1043,  604,  604,
2072      1319, 1319, 1319, 1308,  610, 2389, 1321,  611, 1378, 1378,
2073      1378, 2390, 1379, 2392, 2393, 1380, 2398, 2399, 1321,  612,
2074       604,  605,  267,  605,  604,  604,  604,  604,  604,  604,
2075       604,  606,  604,  604,  604, 1303,  604,  608,  604,  609,
2076       604, 1053, 1053, 1053, 1331, 1331, 1331, 1062, 1062, 1062,
2077      1309, 1331, 1331, 1331, 1336, 1336, 1336, 2403, 1054, 2394,
2078      2396, 1322, 1333, 2406, 1063,  604,  604, 2395, 2397, 1333,
2079
2080      2407,  610, 1338, 2408,  611, 1381, 1381, 1381, 2409, 1382,
2081      2413, 2414, 1383, 1759, 1759, 1759,  612,  617,  618,  267,
2082       618,  617,  617,  617,  617,  617,  617,  617,  619,  617,
2083       617,  617, 2415,  617,  621,  617,  622,  617, 1064, 1064,
2084      1064, 2416, 2424, 1336, 1336, 1336, 2425, 1334, 1347, 1347,
2085      1347, 1347, 1347, 1347, 2426, 1065, 1070, 1070, 1070, 1916,
2086      2427, 1338,  617,  617, 2430, 2435, 1349, 2439, 2440, 1349,
2087       623, 2445,  624, 1071, 2446,  625, 1756, 1756, 1756,  626,
2088      1759, 1759, 1759,  627,  617,  618,  267,  618,  617,  617,
2089       617,  617,  617,  617,  617,  619,  617,  617,  617, 2447,
2090
2091       617,  621,  617,  622,  617, 1339, 1073, 1073, 1073, 1362,
2092      1362, 1362, 1350, 1374, 1374, 1374, 1374, 1374, 1374, 1088,
2093      1088, 1088, 2448, 1074, 2441, 2443, 1363, 2450, 2460,  617,
2094       617, 1376, 2442, 2444, 1376, 2472, 1089,  623, 2473,  624,
2095      2474, 1742,  625, 1964, 1964, 1964,  626, 1764, 1764, 1764,
2096       627,  633,  634,  267,  634,  633,  633,  633,  633,  633,
2097       633,  633,  635,  633,  633,  633, 2476,  633,  637,  633,
2098       638,  633, 1742, 2479, 1377, 1090, 1090, 1090, 1384, 1384,
2099      1384, 1767, 1767, 1767, 2466, 3468, 3468, 3468, 3468, 3468,
2100      3468, 2480, 1091, 2481, 2484, 1385,  633,  633, 3468, 3468,
2101
2102      3468, 2488, 3468, 2489, 2490, 3468, 1398, 1398, 1398, 2491,
2103      1399, 2492, 2493, 1400, 2494, 3468, 1969, 1969, 1969, 2467,
2104       639,  633,  634,  267,  634,  633,  633,  633,  633,  633,
2105       633,  633,  635,  633,  633,  633, 1386,  633,  637,  633,
2106       638,  633, 2495, 1388, 1390, 1390, 1390, 1102, 1102, 1102,
2107      1387, 1777, 1777, 1777, 3468, 3468, 3468, 1401, 1401, 1401,
2108      2496, 2497, 1392, 2510, 1103, 2511,  633,  633, 1390, 1390,
2109      1390, 3468, 2512, 2513, 1402, 1410, 1410, 1410, 2514, 1411,
2110      1970, 2516, 1412, 1972, 1972, 1972, 1392, 1811, 1811, 1811,
2111       639,  643,  644,  267,  644,  643,  643,  643,  643,  643,
2112
2113       643,  643,  645,  643,  643,  643, 1389,  643,  647,  643,
2114       648,  643, 1405, 1405, 1405, 1393, 1110, 1110, 1110, 2520,
2115      1405, 1405, 1405, 1413, 1413, 1413, 1413, 1413, 1413, 1973,
2116      1407, 2521, 2522, 1111, 2523, 2524,  643,  643, 1407, 2525,
2117      2526, 1415, 2528, 2532, 1415, 2533, 2534,  649,  643,  644,
2118       267,  644,  643,  643,  643,  643,  643,  643,  643,  645,
2119       643,  643,  643, 2539,  643,  647,  643,  648,  643, 2540,
2120      2535, 1408, 1115, 1115, 1115, 1418, 1418, 1418, 2541, 1419,
2121      2536, 2549, 1420, 1422, 1422, 1422, 2550, 1416, 2551, 1116,
2122      1813, 1813, 1813,  643,  643, 1427, 1427, 1427, 2552, 1428,
2123
2124      2561, 1424, 1429, 2562,  649,  654,  655,  267,  655,  654,
2125       654,  654,  654,  654,  654,  654,  656,  654,  654,  654,
2126      2563,  654,  658,  654,  659,  654, 1422, 1422, 1422, 1121,
2127      1121, 1121, 2564, 2566, 1433, 1433, 1433, 1437, 1437, 1437,
2128      2568, 1433, 1433, 1433, 1424, 2593, 1122, 1439, 1439, 1439,
2129       654,  654, 1435, 2594, 1438, 3468, 3468, 3468, 1742, 1435,
2130      2596,  660, 2597, 2598, 1440, 2599, 1742, 1980, 1980, 1980,
2131      2600, 2604, 3468, 1425,  661,  654,  655,  267,  655,  654,
2132       654,  654,  654,  654,  654,  654,  656,  654,  654,  654,
2133      2589,  654,  658,  654,  659,  654, 1436, 1442, 1442, 1442,
2134
2135      1447, 1447, 1447, 2590, 2605, 1442, 1442, 1442, 2606, 2607,
2136      3468, 3468, 3468, 1981, 1441, 1444, 2608, 1448, 2609, 2610,
2137       654,  654, 2611, 1444, 1451, 1451, 1451, 3468, 1459, 1459,
2138      1459,  660, 1460, 2612, 2613, 1461, 1499, 1499, 1499, 2614,
2139      1500, 1452, 2616, 1501,  661,  665,  666,  267,  666,  665,
2140       665,  665,  665,  665,  665,  665,  667,  665,  665,  665,
2141      1449,  665,  669,  665,  670,  665, 1445, 1454, 1454, 1454,
2142      2617, 3468, 3468, 3468, 2620, 1450, 1454, 1454, 1454, 1141,
2143      1141, 1141, 1462, 1462, 1462, 1456, 2618, 2621, 3468, 2622,
2144       665,  665, 2623, 2626, 1456, 2619, 1142, 1814, 1814, 1814,
2145
2146      1464,  671, 1506, 1506, 1506, 2627, 1507, 2628, 2629, 1508,
2147      2037, 2037, 2037, 1457,  672,  665,  666,  267,  666,  665,
2148       665,  665,  665,  665,  665,  665,  667,  665,  665,  665,
2149      1453,  665,  669,  665,  670,  665, 1462, 1462, 1462, 1466,
2150      1466, 1466, 1468, 1468, 1468, 1470, 1470, 1470, 1470, 1470,
2151      1470, 1474, 1474, 1474, 1464, 2624, 1467, 2631, 2632, 1469,
2152       665,  665, 2634, 1472, 2625, 2640, 1472, 2641, 1475, 2642,
2153      2643,  671, 2646, 3468, 3468, 3468, 1478, 1478, 1478, 1480,
2154      1480, 1480, 2648, 2649,  672,  680, 1480, 1480, 1480, 2650,
2155      3468, 1465,  695, 1479, 1489, 1489, 1489, 1482, 1489, 1489,
2156
2157      1489,  679,  696, 2651, 1482, 2652, 1495, 1495, 1495, 1495,
2158      1495, 1495, 1491, 1514, 1514, 1514, 1491, 1515, 2656, 1473,
2159      1516, 2659, 2664, 1476, 1497, 2665, 2660, 1497, 2668,  697,
2160       698,  699, 2156, 2156, 2156,  700,  701,  702, 1477, 2661,
2161       703,  704, 2677, 2678,  705, 2679,  706,  707,  708,  680,
2162      1165, 1165, 1165, 1502, 1502, 1502,  752, 1483, 1502, 1502,
2163      1502, 2662, 1492, 2680, 2681,  679,  753, 1166, 1169, 1169,
2164      1169, 1504, 2684, 1498, 2663, 2685, 1504, 2706, 1510, 1510,
2165      1510, 1174, 1174, 1174, 2707, 1170, 1742, 2709, 1510, 1510,
2166      1510, 2710, 1180,  697,  754,  709, 1512, 2711, 1175,  755,
2167
2168       756,  702, 1742, 2720,  757,  704, 1512, 2721,  758, 2722,
2169       759,  760,  708, 1518, 1518, 1518, 1518, 1518, 1518, 1505,
2170      1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 2705,
2171      2714, 1520, 2703, 2723, 1520, 1229, 1229, 1229, 1195, 2704,
2172      2715, 1195, 2724, 2716, 1195, 1561, 1561, 1561, 1229, 1229,
2173      1229, 2725, 1513, 1231, 1229, 1229, 1229, 1564, 1564, 1564,
2174      2726, 2727, 1562, 1234, 1234, 1234, 1231, 1235, 2728, 2729,
2175      1236, 2730, 1231, 1530, 1565, 2732, 2733, 1521, 3468, 3468,
2176      3468, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239,
2177      1244, 1244, 1244, 2734, 1245, 3468, 2735, 1246, 2736, 1241,
2178
2179      2737, 2738, 1241, 1563, 2717, 1241, 1247, 1247, 1247, 1570,
2180      1570, 1570, 2739, 1571, 2718, 2740, 1572, 2719, 1573, 1573,
2181      1573, 2741, 2742, 1248, 1250, 1250, 1250, 2743, 2744, 1575,
2182      1575, 1575, 2745, 1576, 1568, 1574, 1577, 2746, 2747, 1566,
2183      2750, 1251, 1579, 1579, 1579, 1255, 1255, 1255, 1255, 1255,
2184      1255, 1255, 1255, 1255, 1584, 1584, 1584, 2756, 2759, 1580,
2185      1262, 1262, 1262, 1257, 2760, 2761, 1257, 2764, 2765, 1257,
2186      2769, 1585, 1262, 1262, 1262, 1262, 1262, 1262, 1264, 1266,
2187      1266, 1266, 2770, 1267, 2771, 2772, 1268, 1270, 1270, 1270,
2188      1264, 2773, 2774, 1264, 1270, 1270, 1270, 1589, 1589, 1589,
2189
2190      1288, 1288, 1288, 2782, 1289, 1272, 2783, 1290, 1606, 1606,
2191      1606, 1582, 1272, 2784, 2810, 1590, 1293, 1293, 1293, 1293,
2192      1293, 1293, 1587, 2812, 1180, 1607, 1293, 1293, 1293, 1610,
2193      1610, 1610, 2813, 2814, 1295, 2818, 2819, 1295, 3468, 3468,
2194      3468, 1300, 1300, 1300, 1295, 2822, 1611, 1300, 1300, 1300,
2195      1300, 1300, 1300, 2807, 2820, 3468, 1614, 1614, 1614, 1302,
2196      3468, 3468, 3468, 2823, 2826, 1302, 2827, 2821, 1302, 1620,
2197      1620, 1620, 1742, 1615, 1306, 1306, 1306, 3468, 1306, 1306,
2198      1306, 1306, 1306, 1306, 2828, 1612, 1621, 1608, 1616, 1319,
2199      1319, 1319, 1308, 1313, 1313, 1313, 1308, 1314, 1742, 1308,
2200
2201      1315, 1319, 1319, 1319, 1319, 1319, 1319, 1321, 1327, 1327,
2202      1327, 2829, 1328, 2830, 2808, 1329, 2831, 1613, 2832, 1321,
2203      2833, 2834, 1321, 1331, 1331, 1331, 1331, 1331, 1331, 2792,
2204      1331, 1331, 1331, 1632, 1632, 1632, 1336, 1336, 1336, 2793,
2205      2809, 1333, 2836, 2837, 1333, 2794, 2838, 1617, 1333, 2824,
2206      1633, 1635, 1635, 1635, 1338, 1336, 1336, 1336, 1336, 1336,
2207      1336, 2839, 2825, 1341, 1341, 1341, 2840, 1342, 1636, 1625,
2208      1343, 2841, 2842, 1338, 2843, 2844, 1338, 1344, 1344, 1344,
2209      2845, 1345, 2846, 2847, 1346, 1347, 1347, 1347, 1347, 1347,
2210      1347, 1631, 1347, 1347, 1347, 1355, 1355, 1355, 2848, 1356,
2211
2212      2850, 2862, 1357, 1349, 2863, 2871, 1349, 1642, 1642, 1642,
2213      1349, 1359, 1359, 1359, 2872, 1360, 2873, 2874, 1361, 1362,
2214      1362, 1362, 2875, 2876, 1643, 1634, 1644, 1644, 1644, 2877,
2215      1645, 2884, 2887, 1646, 2894, 2895, 1363, 1374, 1374, 1374,
2216      1374, 1374, 1374, 1374, 1374, 1374, 1378, 1378, 1378, 2795,
2217      1379, 2896, 2897, 1380, 2898, 1376, 2899, 1637, 1376, 2796,
2218      2912, 1376, 1381, 1381, 1381, 2797, 1382, 2914, 2915, 1383,
2219      1384, 1384, 1384, 1659, 1659, 1659, 2916, 1660, 2917, 2918,
2220      1661, 1390, 1390, 1390, 1390, 1390, 1390, 1385, 1390, 1390,
2221      1390, 1398, 1398, 1398, 2919, 1399, 2920, 2921, 1400, 1392,
2222
2223      2902, 2922, 1392, 1401, 1401, 1401, 1392, 1671, 1671, 1671,
2224      1658, 1672, 1180, 2903, 1673, 1405, 1405, 1405, 2923, 2904,
2225      1402, 1405, 1405, 1405, 1405, 1405, 1405, 1410, 1410, 1410,
2226      1742, 1411, 2905, 1407, 1412, 2926, 1666, 2927, 2928, 1407,
2227      2929, 2930, 1407, 1413, 1413, 1413, 1413, 1413, 1413, 1413,
2228      1413, 1413, 1418, 1418, 1418, 2931, 1419, 2932, 2933, 1420,
2229      2908, 1415, 2935, 2936, 1415, 2909, 2937, 1415, 1422, 1422,
2230      1422, 1422, 1422, 1422, 2938, 1676, 1422, 1422, 1422, 2939,
2231      1427, 1427, 1427, 2940, 1428, 2941, 1424, 1429, 2942, 1424,
2232      1433, 1433, 1433, 2943, 1424, 1433, 1433, 1433, 2944, 1433,
2233
2234      1433, 1433, 1437, 1437, 1437, 1687, 1687, 1687, 1435, 1688,
2235      2945, 2946, 1689, 1435, 2947, 2956, 1678, 1435, 2960, 1438,
2236      1439, 1439, 1439, 2961, 2968, 1681, 1690, 1690, 1690, 2969,
2237      1691, 2970, 2971, 1692, 1442, 1442, 1442, 1440, 1442, 1442,
2238      1442, 2972, 1442, 1442, 1442, 1447, 1447, 1447, 2973, 1451,
2239      1451, 1451, 1444, 1964, 1964, 1964, 1444, 2974, 2975, 1686,
2240      1444, 2979, 1448, 1696, 1696, 1696, 1452, 1697, 2988, 2989,
2241      1698, 1701, 1701, 1701, 2990, 1702, 2991, 2992, 1703, 1454,
2242      1454, 1454, 1454, 1454, 1454, 1454, 1454, 1454, 1459, 1459,
2243      1459, 2980, 1460, 2993, 2997, 1461, 2998, 1456, 2982, 2999,
2244
2245      1456, 2981, 3000, 1456, 1462, 1462, 1462, 3010, 2983, 1694,
2246      1462, 1462, 1462, 1462, 1462, 1462, 1466, 1466, 1466, 1708,
2247      1708, 1708, 1464, 1709, 3011, 3012, 1710, 3013, 1464, 3014,
2248      2984, 1464, 2986, 1467, 1468, 1468, 1468, 1711, 1711, 1711,
2249      2985, 1712, 2987, 3015, 1713, 1470, 1470, 1470, 3016, 1705,
2250      3017, 1469, 1470, 1470, 1470, 3021, 1470, 1470, 1470, 1474,
2251      1474, 1474, 3022, 1472, 1715, 1715, 1715, 3023, 1716, 3024,
2252      1472, 1717, 3025, 1707, 1472, 3026, 1475, 1478, 1478, 1478,
2253      1720, 1720, 1720, 1180, 1721, 3028, 3029, 1722, 1480, 1480,
2254      1480, 1480, 1480, 1480, 1479, 1480, 1480, 1480, 1725, 1725,
2255
2256      1725, 1489, 1489, 1489, 3030, 3031, 1482, 3032, 3033, 1482,
2257      1489, 1489, 1489, 1482, 3034, 1726, 3035, 3001, 1714, 1491,
2258      1489, 1489, 1489, 1495, 1495, 1495, 3039, 3040, 1491, 1495,
2259      1495, 1495, 1495, 1495, 1495, 1499, 1499, 1499, 1491, 1500,
2260      3041, 1497, 1501, 1502, 1502, 1502, 3044, 1497, 3045, 3046,
2261      1497, 1502, 1502, 1502, 1502, 1502, 1502, 1723, 1506, 1506,
2262      1506, 1504, 1507, 3047, 3048, 1508, 1510, 1510, 1510, 1504,
2263      3049, 3054, 1504, 1510, 1510, 1510, 1510, 1510, 1510, 3055,
2264      3056, 1730, 3057, 3058, 1512, 1733, 1514, 1514, 1514, 3059,
2265      1515, 1512, 3060, 1516, 1512, 1518, 1518, 1518, 1518, 1518,
2266
2267      1518, 1518, 1518, 1518, 1741, 1741, 1741, 1193, 1193, 1193,
2268      1561, 1561, 1561, 1520, 1734, 3061, 1520, 3062, 3063, 1520,
2269      3064, 3065, 1742, 1743, 3067, 1195, 3068, 1562, 1780, 1780,
2270      1780, 3069, 1781, 3070, 1180, 1782, 3077, 1736, 1229, 1229,
2271      1229, 1564, 1564, 1564, 3078, 1784, 1784, 1784, 3079, 1785,
2272      3080, 1738, 1786, 1239, 1239, 1239, 1231, 3081, 1565, 1570,
2273      1570, 1570, 3082, 1571, 3083, 3084, 1572, 1573, 1573, 1573,
2274      3085, 1241, 3086, 1748, 1791, 1791, 1791, 3071, 1792, 3087,
2275      3088, 1793, 3089, 3090, 1574, 1575, 1575, 1575, 3093, 1576,
2276      3094, 3095, 1577, 1579, 1579, 1579, 1783, 1795, 1795, 1795,
2277
2278      3096, 1796, 1789, 3097, 1797, 1255, 1255, 1255, 3098, 3099,
2279      1580, 1584, 1584, 1584, 1801, 1801, 1801, 3100, 1802, 3101,
2280      3107, 1803, 3108, 1257, 1804, 1804, 1804, 3109, 1585, 1262,
2281      1262, 1262, 1589, 1589, 1589, 1822, 1822, 1822, 2164, 2164,
2282      2164, 1805, 1606, 1606, 1606, 3116, 3117, 1264, 3118, 3119,
2283      1590, 3120, 1823, 3121, 3122, 1799, 1824, 1824, 1824, 1607,
2284      1825, 3123, 3124, 1826, 1293, 1293, 1293, 1610, 1610, 1610,
2285      1829, 1829, 1829, 3125, 1830, 3126, 3127, 1831, 1806, 1300,
2286      1300, 1300, 1295, 3130, 1611, 1614, 1614, 1614, 1834, 1834,
2287      1834, 3131, 1835, 3132, 3133, 1836, 3141, 1302, 1306, 1306,
2288
2289      1306, 3136, 1615, 1620, 1620, 1620, 1841, 1841, 1841, 3142,
2290      1842, 3143, 3144, 1843, 1180, 3137, 1308, 1844, 1844, 1844,
2291      1621, 1847, 1847, 1847, 1319, 1319, 1319, 3145, 1827, 1331,
2292      1331, 1331, 3136, 3146, 1845, 1632, 1632, 1632, 1848, 1833,
2293      3147, 3148, 1321, 3139, 1857, 1857, 1857, 1333, 1858, 3151,
2294      3152, 1859, 1633, 1860, 1860, 1860, 1635, 1635, 1635, 1838,
2295      3134, 1862, 1862, 1862, 3153, 1863, 3155, 1849, 1864, 3156,
2296      3157, 1861, 3158, 1636, 1347, 1347, 1347, 1867, 1867, 1867,
2297      1642, 1642, 1642, 3159, 1871, 1871, 1871, 3167, 1872, 3160,
2298      1850, 1873, 1349, 1856, 1868, 3172, 3149, 1643, 1644, 1644,
2299
2300      1644, 3161, 1645, 3154, 3173, 1646, 1876, 1876, 1876, 1374,
2301      1374, 1374, 1659, 1659, 1659, 3174, 1660, 3175, 3176, 1661,
2302      1887, 1887, 1887, 1877, 3468, 3468, 3468, 1376, 3468, 3468,
2303      3468, 3468, 3468, 3468, 1390, 1390, 1390, 1888, 3150, 3177,
2304      1865, 3468, 1894, 1894, 1894, 3468, 3162, 3180, 3468, 1671,
2305      1671, 1671, 1392, 1672, 1742, 1743, 1673, 3180, 3163, 1895,
2306      1898, 1898, 1898, 1405, 1405, 1405, 1413, 1413, 1413, 1422,
2307      1422, 1422, 3136, 3168, 1886, 1890, 3170, 1899, 1910, 1910,
2308      1910, 1407, 3136, 3183, 1415, 3169, 3137, 1424, 3171, 1892,
2309      1433, 1433, 1433, 3139, 1889, 1911, 1687, 1687, 1687, 3184,
2310
2311      1688, 1891, 3185, 1689, 1180, 1690, 1690, 1690, 1435, 1691,
2312      3186, 3187, 1692, 1442, 1442, 1442, 1696, 1696, 1696, 3190,
2313      1697, 3188, 3201, 1698, 1912, 3199, 1906, 1901, 1454, 1454,
2314      1454, 1444, 1903, 1701, 1701, 1701, 3191, 1702, 3204, 3189,
2315      1703, 1462, 1462, 1462, 3200, 3178, 1456, 1913, 1708, 1708,
2316      1708, 3192, 1709, 3202, 3207, 1710, 1711, 1711, 1711, 1464,
2317      1712, 3209, 3210, 1713, 1470, 1470, 1470, 1715, 1715, 1715,
2318      3212, 1716, 3203, 3208, 1717, 3213, 1720, 1720, 1720, 1915,
2319      1721, 3211, 1472, 1722, 1480, 1480, 1480, 3214, 3180, 1920,
2320      1725, 1725, 1725, 1928, 1928, 1928, 3216, 1929, 1922, 3180,
2321
2322      1930, 3217, 1482, 1489, 1489, 1489, 3218, 1726, 1936, 1936,
2323      1936, 1923, 1495, 1495, 1495, 1502, 1502, 1502, 1940, 1940,
2324      1940, 1491, 1510, 1510, 1510, 1937, 1943, 1943, 1943, 3219,
2325      1497, 1926, 3220, 1504, 3221, 1941, 1518, 1518, 1518, 3222,
2326      1512, 3223, 3224, 1944, 1741, 1741, 1741, 1193, 1193, 1193,
2327      3234, 3235, 1934, 3236, 1520, 3237, 1780, 1780, 1780, 3238,
2328      1781, 3239, 1742, 1782, 3243, 1195, 3244, 1939, 1229, 1229,
2329      1229, 1784, 1784, 1784, 3245, 1785, 3246, 3247, 1786, 1938,
2330      1239, 1239, 1239, 3248, 1942, 3249, 1231, 1945, 3250, 1791,
2331      1791, 1791, 3252, 1792, 3253, 1947, 1793, 3254, 1241, 1952,
2332
2333      1795, 1795, 1795, 3255, 1796, 3256, 3257, 1797, 1255, 1255,
2334      1255, 3258, 1948, 1801, 1801, 1801, 3263, 1802, 3259, 3264,
2335      1803, 1804, 1804, 1804, 3265, 3261, 1257, 1262, 1262, 1262,
2336      3260, 1985, 1999, 1999, 1999, 1982, 2000, 3262, 1805, 2001,
2337      2008, 2008, 2008, 3266, 3267, 1264, 2008, 2008, 2008, 1969,
2338      1969, 1969, 3268, 1822, 1822, 1822, 2014, 2014, 2014, 3269,
2339      2015, 3270, 3271, 2016, 1824, 1824, 1824, 3272, 1825, 1989,
2340      1823, 1826, 1293, 1293, 1293, 1829, 1829, 1829, 2002, 1830,
2341      3273, 3274, 1831, 1300, 1300, 1300, 3275, 1834, 1834, 1834,
2342      1295, 1835, 3276, 1180, 1836, 2021, 2021, 2021, 1306, 1306,
2343
2344      1306, 1302, 3278, 3279, 2009, 3280, 3281, 1841, 1841, 1841,
2345      1970, 1842, 2022, 2009, 1843, 3282, 1308, 3283, 3277, 2017,
2346      1844, 1844, 1844, 2026, 2026, 2026, 3284, 2027, 3285, 3286,
2347      2028, 2029, 2029, 2029, 1847, 1847, 1847, 1845, 2031, 2031,
2348      2031, 3287, 2032, 3288, 3289, 2033, 3290, 3291, 2030, 2020,
2349      3292, 1848, 2035, 2035, 2035, 2039, 2039, 2039, 3468, 3468,
2350      3468, 3293, 2023, 2042, 2042, 2042, 1331, 1331, 1331, 3294,
2351      2036, 3295, 2040, 3296, 3297, 3468, 1860, 1860, 1860, 3298,
2352      2043, 1857, 1857, 1857, 1333, 1858, 3299, 1180, 1859, 1862,
2353      1862, 1862, 3301, 1863, 1861, 3302, 1864, 1347, 1347, 1347,
2354
2355      1867, 1867, 1867, 2047, 2047, 2047, 3300, 2048, 3303, 3304,
2356      2049, 3305, 3306, 2044, 3307, 1349, 3308, 1868, 2050, 2050,
2357      2050, 1871, 1871, 1871, 2041, 1872, 3309, 3310, 1873, 1876,
2358      1876, 1876, 2055, 2055, 2055, 2051, 2056, 3311, 3312, 2057,
2359      2058, 2058, 2058, 2045, 3313, 3314, 1877, 2064, 2064, 2064,
2360      1374, 1374, 1374, 1887, 1887, 1887, 3315, 2059, 2069, 2069,
2361      2069, 3316, 2070, 3317, 2065, 2071, 3318, 3319, 1376, 3320,
2362      1888, 2072, 2072, 2072, 3468, 3468, 3468, 2075, 2075, 2075,
2363      1390, 1390, 1390, 1894, 1894, 1894, 3322, 3323, 2073, 1180,
2364      3324, 3468, 3325, 3326, 2076, 2079, 2079, 2079, 1392, 2080,
2365
2366      1895, 3327, 2081, 2082, 2082, 2082, 1898, 1898, 1898, 3321,
2367      2085, 2085, 2085, 3328, 2086, 3329, 2068, 2087, 3330, 3331,
2368      2083, 3332, 3333, 1899, 2089, 2089, 2089, 1413, 1413, 1413,
2369      3334, 3335, 2074, 1422, 1422, 1422, 1910, 1910, 1910, 3336,
2370      2077, 3337, 2090, 3338, 3339, 1415, 3340, 3341, 2099, 2099,
2371      2099, 1424, 2100, 1911, 3343, 2101, 2103, 2103, 2103, 1442,
2372      1442, 1442, 2108, 2108, 2108, 2110, 2110, 2110, 3468, 3468,
2373      3468, 1454, 1454, 1454, 2104, 3344, 3345, 1444, 2092, 2109,
2374      3346, 2095, 2111, 3347, 3348, 3468, 1470, 1470, 1470, 1456,
2375      1462, 1462, 1462, 3349, 2117, 2117, 2117, 2119, 2119, 2119,
2376
2377      1480, 1480, 1480, 3350, 1472, 1928, 1928, 1928, 1464, 1929,
2378      2106, 2118, 1930, 1180, 2120, 1489, 1489, 1489, 1482, 3342,
2379      1936, 1936, 1936, 2128, 2128, 2128, 3351, 2129, 3352, 3353,
2380      2130, 3354, 2112, 1491, 3356, 3357, 2115, 1937, 2113, 1495,
2381      1495, 1495, 1502, 1502, 1502, 1940, 1940, 1940, 2133, 2133,
2382      2133, 2116, 2134, 3358, 3359, 2135, 3360, 1497, 3361, 3362,
2383      1504, 3363, 1941, 3365, 1180, 2121, 2126, 2136, 2136, 2136,
2384      1943, 1943, 1943, 2138, 2138, 2138, 3366, 2139, 3355, 3367,
2385      2140, 1518, 1518, 1518, 3368, 2137, 3369, 1944, 2146, 2146,
2386      2146, 1193, 1193, 1193, 1969, 1969, 1969, 2132, 2131, 1520,
2387
2388      2165, 2165, 2165, 3370, 3371, 2147, 1972, 1972, 1972, 1195,
2389      2168, 2168, 2168, 2169, 2169, 2169, 1980, 1980, 1980, 1229,
2390      1229, 1229, 2178, 2178, 2178, 2181, 2181, 2181, 1255, 1255,
2391      1255, 2185, 2185, 2185, 1999, 1999, 1999, 1231, 2000, 2141,
2392      2179, 2001, 2182, 1262, 1262, 1262, 1257, 3372, 2186, 2198,
2393      2198, 2198, 2148, 2008, 2008, 2008, 2205, 2205, 2205, 3375,
2394      3376, 1264, 2207, 2207, 2207, 3377, 2199, 3378, 3379, 2175,
2395      2014, 2014, 2014, 3380, 2015, 1755, 1180, 2016, 1180, 2208,
2396      1293, 1293, 1293, 2213, 2213, 2213, 1180, 2184, 3465, 2197,
2397      2021, 2021, 2021, 2215, 2215, 2215, 1180, 2216, 1295, 1180,
2398
2399      2217, 2214, 1306, 1306, 1306, 1754, 1180, 2022, 2209, 2026,
2400      2026, 2026, 3381, 2027, 3382, 1180, 2028, 2029, 2029, 2029,
2401      1308, 2221, 2221, 2221, 1180, 2222, 1180, 3399, 2223, 2035,
2402      2035, 2035, 1180, 2210, 2030, 2031, 2031, 2031, 1180, 2032,
2403      3387, 3401, 2033, 2037, 2037, 2037, 1180, 2036, 3391, 2218,
2404      2039, 2039, 2039, 2228, 2228, 2228, 1180, 2229, 3413, 3388,
2405      2230, 2231, 2231, 2231, 2042, 2042, 2042, 2040, 2234, 2234,
2406      2234, 1180, 2235, 3389, 3383, 2236, 1180, 1180, 2232, 3400,
2407      3384, 2043, 1331, 1331, 1331, 1347, 1347, 1347, 2047, 2047,
2408      2047, 3392, 2048, 3393, 3385, 2049, 2050, 2050, 2050, 1180,
2409
2410      1333, 1180, 3394, 1349, 2240, 2240, 2240, 2233, 2241, 3421,
2411      1180, 2242, 1180, 2051, 2055, 2055, 2055, 1180, 2056, 3386,
2412      1753, 2057, 2058, 2058, 2058, 2246, 2246, 2246, 1180, 2247,
2413      3390, 1180, 2248, 1752, 1180, 2237, 2249, 2249, 2249, 2059,
2414      2064, 2064, 2064, 2238, 2254, 2254, 2254, 1180, 2255, 3397,
2415      1180, 2256, 1180, 2250, 1374, 1374, 1374, 2065, 2069, 2069,
2416      2069, 1180, 2070, 3407, 3395, 2071, 2072, 2072, 2072, 2260,
2417      2260, 2260, 1376, 2261, 1180, 3396, 2262, 2263, 2263, 2263,
2418      2075, 2075, 2075, 2073, 2265, 2265, 2265, 3398, 2266, 3405,
2419      1180, 2267, 3409, 3403, 2264, 1751, 3402, 2076, 1390, 1390,
2420
2421      1390, 1180, 2079, 2079, 2079, 2259, 2080, 1750, 3414, 2081,
2422      2082, 2082, 2082, 2270, 2270, 2270, 1392, 2271, 1749, 3433,
2423      2272, 2085, 2085, 2085, 1180, 2086, 1180, 2083, 2087, 2089,
2424      2089, 2089, 1413, 1413, 1413, 2278, 2278, 2278, 1422, 1422,
2425      1422, 2282, 2282, 2282, 2099, 2099, 2099, 2090, 2100, 2268,
2426      1415, 2101, 2279, 2103, 2103, 2103, 1424, 1180, 2283, 2290,
2427      2290, 2290, 2108, 2108, 2108, 2293, 2293, 2293, 3427, 2294,
2428      3404, 2104, 2295, 2110, 2110, 2110, 1180, 2291, 1180, 2109,
2429      3410, 2296, 2296, 2296, 1180, 2297, 1180, 2284, 2298, 1180,
2430      2111, 1454, 1454, 1454, 3406, 1180, 2276, 1747, 1180, 2280,
2431
2432      1462, 1462, 1462, 1470, 1470, 1470, 2117, 2117, 2117, 1456,
2433      2304, 2304, 2304, 3411, 2305, 1180, 3408, 2306, 1464, 3415,
2434      1180, 1472, 1180, 2118, 2119, 2119, 2119, 2307, 2307, 2307,
2435      3412, 2308, 3417, 3419, 2309, 1480, 1480, 1480, 1489, 1489,
2436      1489, 2120, 1180, 2128, 2128, 2128, 1180, 2129, 3422, 2302,
2437      2130, 1746, 1745, 1482, 1180, 3420, 1491, 2300, 1495, 1495,
2438      1495, 1502, 1502, 1502, 3428, 2133, 2133, 2133, 2303, 2134,
2439      1180, 1180, 2135, 2136, 2136, 2136, 1497, 3423, 1744, 1504,
2440      2138, 2138, 2138, 3434, 2139, 3416, 1180, 2140, 1518, 1518,
2441      1518, 2137, 3418, 2146, 2146, 2146, 3424, 2324, 2324, 2324,
2442
2443      2310, 2325, 1737, 2315, 2326, 1180, 1520, 3425, 3426, 2317,
2444      2147, 1193, 1193, 1193, 2318, 2328, 2328, 2328, 2333, 2333,
2445      2333, 2334, 2334, 2334, 2156, 2156, 2156, 1735, 1180, 1195,
2446      2336, 2336, 2336, 1732, 2319, 2341, 2341, 2341, 2164, 2164,
2447      2164, 2165, 2165, 2165, 2342, 2342, 2342, 2168, 2168, 2168,
2448      2169, 2169, 2169, 2345, 2345, 2345, 2346, 2346, 2346, 2347,
2449      2347, 2347, 2348, 2348, 2348, 1229, 1229, 1229, 2178, 2178,
2450      2178, 2181, 2181, 2181, 3429, 2327, 1180, 2354, 2354, 2354,
2451      3435, 2355, 1180, 1231, 2356, 1731, 2179, 1729, 2182, 1180,
2452      2343, 2358, 2358, 2358, 2185, 2185, 2185, 2360, 2360, 2360,
2453
2454      1728, 2361, 1727, 1724, 2362, 1262, 1262, 1262, 1180, 2359,
2455      1180, 2186, 2198, 2198, 2198, 1180, 2350, 2374, 2374, 2374,
2456      1180, 2375, 3430, 1264, 2376, 2377, 2377, 2377, 3439, 2199,
2457      2205, 2205, 2205, 2382, 2382, 2382, 2207, 2207, 2207, 2384,
2458      2384, 2384, 1180, 2385, 3437, 3431, 2386, 1293, 1293, 1293,
2459      2213, 2213, 2213, 2208, 2373, 2215, 2215, 2215, 1180, 2216,
2460      1719, 3440, 2217, 3436, 1718, 1295, 1180, 3443, 2214, 1306,
2461      1306, 1306, 1180, 2221, 2221, 2221, 3438, 2222, 3441, 2383,
2462      2223, 2228, 2228, 2228, 1180, 2229, 1180, 1308, 2230, 2231,
2463      2231, 2231, 2400, 2400, 2400, 3432, 2401, 3442, 2388, 2402,
2464
2465      2234, 2234, 2234, 3445, 2235, 1180, 2232, 2236, 1331, 1331,
2466      1331, 1347, 1347, 1347, 2240, 2240, 2240, 1180, 2241, 3449,
2467      1180, 2242, 2391, 2246, 2246, 2246, 1333, 2247, 1180, 1349,
2468      2248, 2249, 2249, 2249, 2410, 2410, 2410, 1180, 2411, 1706,
2469      1180, 2412, 2254, 2254, 2254, 1180, 2255, 1704, 2250, 2256,
2470      2417, 2417, 2417, 1374, 1374, 1374, 2260, 2260, 2260, 2404,
2471      2261, 3447, 1180, 2262, 3444, 3446, 2405, 2418, 2263, 2263,
2472      2263, 1376, 2420, 2420, 2420, 3450, 2421, 3455, 3448, 2422,
2473      2265, 2265, 2265, 1180, 2266, 2264, 1180, 2267, 1390, 1390,
2474      1390, 2270, 2270, 2270, 1180, 2271, 1180, 1700, 2272, 3453,
2475
2476      2428, 2428, 2428, 2278, 2278, 2278, 1392, 2431, 2431, 2431,
2477      3457, 2432, 1180, 1180, 2433, 3456, 1180, 2419, 2429, 1180,
2478      2279, 1422, 1422, 1422, 2282, 2282, 2282, 2436, 2436, 2436,
2479      1180, 2437, 3451, 3454, 2438, 2290, 2290, 2290, 3458, 1424,
2480      3452, 2283, 2293, 2293, 2293, 3459, 2294, 1180, 3460, 2295,
2481      1454, 1454, 1454, 2291, 2423, 2296, 2296, 2296, 1180, 2297,
2482      3461, 3465, 2298, 1180, 1462, 1462, 1462, 1699, 1456, 1470,
2483      1470, 1470, 2304, 2304, 2304, 1180, 2305, 1695, 3462, 2306,
2484      1693, 2434, 1464, 1685, 2307, 2307, 2307, 1472, 2308, 1684,
2485      3463, 2309, 1480, 1480, 1480, 3464, 2454, 2454, 2454, 1683,
2486
2487      1682, 2449, 3468, 3468, 3468, 2452, 3468, 3468, 3468, 1680,
2488      1482, 1679, 2453, 2455, 3468, 3468, 3468, 1677, 1675, 3468,
2489      1489, 1489, 1489, 3468, 1495, 1495, 1495, 2462, 2462, 2462,
2490      2451, 3468, 1518, 1518, 1518, 2468, 2468, 2468, 1491, 2465,
2491      2465, 2465, 1497, 1674, 1670, 2463, 1669, 2324, 2324, 2324,
2492      1520, 2325, 1668, 2456, 2326, 1667, 1665, 1180, 1193, 1193,
2493      1193, 2328, 2328, 2328, 2470, 2470, 2470, 2471, 2471, 2471,
2494      2457, 1664, 1663, 2458, 1662, 1655, 1195, 2333, 2333, 2333,
2495      2334, 2334, 2334, 1654, 2461, 2459, 2336, 2336, 2336, 2475,
2496      2475, 2475, 1653, 1652, 2464, 2477, 2477, 2477, 2478, 2478,
2497
2498      2478, 2341, 2341, 2341, 2342, 2342, 2342, 2345, 2345, 2345,
2499      2346, 2346, 2346, 2347, 2347, 2347, 1651, 2469, 2348, 2348,
2500      2348, 2482, 2482, 2482, 2485, 2485, 2485, 2354, 2354, 2354,
2501      1650, 2355, 1649, 1648, 2356, 3468, 3468, 3468, 1647, 2483,
2502      1641, 2486, 2358, 2358, 2358, 1640, 2360, 2360, 2360, 1639,
2503      2361, 1638, 3468, 2362, 1262, 1262, 1262, 2374, 2374, 2374,
2504      2359, 2375, 2499, 2500, 2376, 2501, 2504, 2505, 1630, 2506,
2505      1629, 1628, 1264, 2502, 2377, 2377, 2377, 2507, 1627, 1626,
2506      2503, 2509, 2509, 2509, 2508, 2382, 2382, 2382, 2384, 2384,
2507      2384, 1624, 2385, 1623, 1622, 2386, 1293, 1293, 1293, 1619,
2508
2509      1618, 2487, 2517, 2517, 2517, 1306, 1306, 1306, 2527, 2527,
2510      2527, 2529, 2529, 2529, 1295, 2498, 1347, 1347, 1347, 2518,
2511      2400, 2400, 2400, 1308, 2401, 1609, 1605, 2402, 1604, 2530,
2512      1603, 2410, 2410, 2410, 1349, 2411, 1602, 1601, 2412, 2567,
2513      2567, 2567, 2515, 2537, 2537, 2537, 2417, 2417, 2417, 1600,
2514      2542, 2542, 2542, 1599, 2543, 1598, 2519, 2544, 1596, 1595,
2515      2538, 1593, 1592, 2418, 2545, 2545, 2545, 2420, 2420, 2420,
2516      1591, 2421, 1588, 1586, 2422, 1583, 2531, 2547, 2547, 2547,
2517      1581, 1578, 2546, 2428, 2428, 2428, 2553, 2553, 2553, 2431,
2518      2431, 2431, 1569, 2432, 1567, 2548, 2433, 1422, 1422, 1422,
2519
2520      1560, 2429, 1558, 2554, 2556, 2556, 2556, 2436, 2436, 2436,
2521      1557, 2437, 1556, 1555, 2438, 1424, 3468, 3468, 3468, 1554,
2522      1553, 2557, 3468, 3468, 3468, 3468, 3468, 3468, 2569, 2569,
2523      2569, 1552, 1551, 3468, 2571, 2571, 2571, 1550, 1549, 3468,
2524      1546, 1545, 3468, 1462, 1462, 1462, 2570, 1544, 2555, 1543,
2525      2558, 2572, 1470, 1470, 1470, 1480, 1480, 1480, 2454, 2454,
2526      2454, 1464, 2576, 2576, 2576, 1542, 2577, 1541, 1540, 2578,
2527      1472, 2559, 1539, 1482, 1537, 2455, 2565, 2579, 2579, 2579,
2528      3468, 3468, 3468, 2560, 3468, 3468, 3468, 2583, 2583, 2583,
2529      1536, 1535, 2575, 1534, 2580, 1533, 1532, 3468, 2585, 2585,
2530
2531      2585, 3468, 1531, 2573, 1529, 2584, 1495, 1495, 1495, 2462,
2532      2462, 2462, 1528, 2574, 1518, 1518, 1518, 1527, 2465, 2465,
2533      2465, 2468, 2468, 2468, 1497, 1526, 1525, 2463, 2591, 2591,
2534      2591, 2581, 1520, 1524, 1523, 2582, 1180, 2470, 2470, 2470,
2535      2471, 2471, 2471, 2595, 2595, 2595, 2592, 2475, 2475, 2475,
2536      2477, 2477, 2477, 2478, 2478, 2478, 2482, 2482, 2482, 2485,
2537      2485, 2485, 2601, 2601, 2601, 1180, 2602, 1517, 1509, 2603,
2538      1494, 1493, 2586, 1488, 2483, 1487, 2486, 1486, 2587, 1485,
2539      2588, 1262, 1262, 1262, 2509, 2509, 2509, 2630, 2630, 2630,
2540      1293, 1293, 1293, 2517, 2517, 2517, 2635, 2635, 2635, 1264,
2541
2542      2636, 1484, 1458, 2637, 2638, 2638, 2638, 1446, 1295, 1432,
2543      2518, 2644, 2644, 2644, 2527, 2527, 2527, 2529, 2529, 2529,
2544      1431, 1430, 2639, 1426, 1347, 1347, 1347, 1421, 2645, 2537,
2545      2537, 2537, 2653, 2653, 2653, 2530, 2654, 1417, 1409, 2655,
2546      1404, 2615, 1349, 2657, 2657, 2657, 2538, 2542, 2542, 2542,
2547      1403, 2543, 1397, 1394, 2544, 1373, 2633, 2545, 2545, 2545,
2548      2658, 2547, 2547, 2547, 1372, 2666, 2666, 2666, 2553, 2553,
2549      2553, 2672, 2672, 2672, 1371, 2546, 2669, 2669, 2669, 2548,
2550      2670, 2647, 2667, 2671, 1370, 2554, 2556, 2556, 2556, 2673,
2551      2674, 2674, 2674, 1369, 2675, 1368, 1367, 2676, 2682, 2682,
2552
2553      2682, 1366, 1365, 2557, 2567, 2567, 2567, 2569, 2569, 2569,
2554      2571, 2571, 2571, 1364, 1358, 2683, 2686, 2686, 2686, 1351,
2555      2687, 1340, 1335, 2688, 1330, 2570, 1326, 2572, 2689, 2689,
2556      2689, 1470, 1470, 1470, 1325, 1480, 1480, 1480, 2576, 2576,
2557      2576, 1324, 2577, 1318, 1317, 2578, 2690, 1316, 1312, 1472,
2558      2579, 2579, 2579, 1482, 2693, 2693, 2693, 1311, 2694, 1310,
2559      1305, 2695, 2696, 2696, 2696, 1304, 1299, 2580, 2698, 2698,
2560      2698, 2583, 2583, 2583, 2585, 2585, 2585, 1298, 1292, 2697,
2561      1291, 1287, 2700, 2700, 2700, 2699, 1518, 1518, 1518, 2584,
2562      2591, 2591, 2591, 2595, 2595, 2595, 1286, 1285, 2691, 2692,
2563
2564      2701, 2708, 2708, 2708, 1520, 2712, 2712, 2712, 2592, 2601,
2565      2601, 2601, 1284, 2602, 1283, 1282, 2603, 1262, 1262, 1262,
2566      1281, 1280, 2713, 2630, 2630, 2630, 1293, 1293, 1293, 2749,
2567      2749, 2749, 2635, 2635, 2635, 1264, 2636, 1279, 1278, 2637,
2568      2638, 2638, 2638, 1277, 1295, 1276, 1275, 2702, 2751, 2751,
2569      2751, 2644, 2644, 2644, 1269, 2753, 2753, 2753, 2639, 2754,
2570      1261, 1260, 2755, 1259, 1254, 2752, 1253, 1252, 2645, 2757,
2571      2757, 2757, 2762, 2762, 2762, 1249, 1243, 2731, 2653, 2653,
2572      2653, 1238, 2654, 1237, 1233, 2655, 1228, 2758, 1227, 2763,
2573      2657, 2657, 2657, 1226, 2766, 2766, 2766, 2748, 2767, 1225,
2574
2575      1224, 2768, 2775, 2775, 2775, 1223, 1222, 2658, 2666, 2666,
2576      2666, 2777, 2777, 2777, 1220, 2778, 1219, 1218, 2779, 2776,
2577      2780, 2780, 2780, 1217, 1216, 2667, 2669, 2669, 2669, 1215,
2578      2670, 1214, 1213, 2671, 2672, 2672, 2672, 2781, 2674, 2674,
2579      2674, 1212, 2675, 1211, 1208, 2676, 2682, 2682, 2682, 2785,
2580      2785, 2785, 2673, 2786, 1207, 1206, 2787, 2788, 2788, 2788,
2581      2790, 2790, 2790, 2683, 2686, 2686, 2686, 1205, 2687, 1204,
2582      1203, 2688, 1202, 1201, 2789, 1200, 1199, 2791, 2689, 2689,
2583      2689, 1470, 1470, 1470, 1480, 1480, 1480, 2693, 2693, 2693,
2584      1192, 2694, 1191, 1190, 2695, 1189, 2690, 1188, 1187, 1472,
2585
2586      1186, 1183, 1482, 2696, 2696, 2696, 2800, 2800, 2800, 1181,
2587      2801, 1180, 1178, 2802, 2698, 2698, 2698, 2803, 2803, 2803,
2588      2697, 2804, 1176, 1173, 2805, 2700, 2700, 2700, 1518, 1518,
2589      1518, 2699, 2811, 2811, 2811, 2708, 2708, 2708, 2712, 2712,
2590      2712, 1171, 1168, 2701, 1164, 2799, 1520, 2798, 1162, 2815,
2591      2815, 2815, 1161, 2816, 1160, 2713, 2817, 1262, 1262, 1262,
2592      2849, 2849, 2849, 2851, 2851, 2851, 1293, 1293, 1293, 2749,
2593      2749, 2749, 2854, 2854, 2854, 1264, 2751, 2751, 2751, 1158,
2594      2852, 2857, 2857, 2857, 1295, 2858, 1157, 1156, 2859, 2855,
2595      2806, 1155, 1154, 2752, 2753, 2753, 2753, 1153, 2754, 1151,
2596
2597      1150, 2755, 2860, 2860, 2860, 2757, 2757, 2757, 2835, 2864,
2598      2864, 2864, 2762, 2762, 2762, 2869, 2869, 2869, 2856, 2861,
2599      2866, 2866, 2866, 2758, 2867, 1149, 2865, 2868, 2853, 2763,
2600      1148, 1146, 2870, 2766, 2766, 2766, 1145, 2767, 1144, 1140,
2601      2768, 2775, 2775, 2775, 2878, 2878, 2878, 1139, 2879, 1137,
2602      1136, 2880, 2777, 2777, 2777, 1135, 2778, 1134, 2776, 2779,
2603      2780, 2780, 2780, 2881, 2881, 2881, 1133, 2882, 1132, 1130,
2604      2883, 2885, 2885, 2885, 2785, 2785, 2785, 2781, 2786, 1129,
2605      1128, 2787, 2788, 2788, 2788, 2888, 2888, 2888, 2886, 2889,
2606      1127, 1125, 2890, 2790, 2790, 2790, 2891, 2891, 2891, 2789,
2607
2608      2892, 1124, 1123, 2893, 1470, 1470, 1470, 1480, 1480, 1480,
2609      2791, 2800, 2800, 2800, 1120, 2801, 1119, 1117, 2802, 2803,
2610      2803, 2803, 1472, 2804, 1114, 1482, 2805, 2906, 2906, 2906,
2611      2910, 2910, 2910, 2811, 2811, 2811, 2913, 2913, 2913, 2815,
2612      2815, 2815, 1113, 2816, 1109, 2907, 2817, 2911, 1742, 2924,
2613      2924, 2924, 1262, 1262, 1262, 2900, 2849, 2849, 2849, 2948,
2614      2948, 2948, 2851, 2851, 2851, 1108, 2925, 1293, 1293, 1293,
2615      1264, 2949, 2949, 2949, 2901, 2950, 1106, 1105, 2951, 2852,
2616      2854, 2854, 2854, 1104, 1101, 1295, 2953, 2953, 2953, 1100,
2617      2954, 1099, 1098, 2955, 2860, 2860, 2860, 2855, 2857, 2857,
2618
2619      2857, 2934, 2858, 1096, 1095, 2859, 2957, 2957, 2957, 1094,
2620      2958, 2861, 1093, 2959, 2864, 2864, 2864, 1092, 2952, 2962,
2621      2962, 2962, 1087, 2963, 1085, 1084, 2964, 1083, 2866, 2866,
2622      2866, 2865, 2867, 1082, 1081, 2868, 2869, 2869, 2869, 2965,
2623      2965, 2965, 1080, 2966, 1079, 1078, 2967, 2878, 2878, 2878,
2624      1077, 2879, 1076, 2870, 2880, 2881, 2881, 2881, 1075, 2882,
2625      1072, 1069, 2883, 2885, 2885, 2885, 2976, 2976, 2976, 1068,
2626      2977, 1067, 1061, 2978, 2888, 2888, 2888, 1060, 2889, 1058,
2627      2886, 2890, 2891, 2891, 2891, 1057, 2892, 1055, 1052, 2893,
2628      2994, 2994, 2994, 1480, 1480, 1480, 2906, 2906, 2906, 3002,
2629
2630      3002, 3002, 2910, 2910, 2910, 3004, 3004, 3004, 2995, 3005,
2631      1051, 1482, 3006, 1048, 2907, 1046, 3003, 1742, 1045, 2911,
2632      1742, 1044, 1039, 1742, 3007, 3007, 3007, 2913, 2913, 2913,
2633      3008, 3008, 3008, 3009, 3009, 3009, 2924, 2924, 2924, 3018,
2634      3018, 3018, 1038, 3019, 1036, 1035, 3020, 1262, 1262, 1262,
2635      3036, 3036, 3036, 2925, 2948, 2948, 2948, 1034, 1032, 2996,
2636      2949, 2949, 2949, 1031, 2950, 1264, 1029, 2951, 3037, 3037,
2637      3037, 2953, 2953, 2953, 1027, 2954, 1026, 1023, 2955, 1018,
2638      2957, 2957, 2957, 1017, 2958, 1014, 3038, 2959, 2962, 2962,
2639      2962, 1013, 2963, 1012, 1009, 2964, 2965, 2965, 2965, 1008,
2640
2641      2966, 1006, 1003, 2967, 3042, 3042, 3042, 3050, 3050, 3050,
2642      2976, 2976, 2976, 3027, 2977, 1001, 1000, 2978, 3052, 3052,
2643      3052, 3043,  999,  998, 3051, 2994, 2994, 2994, 1480, 1480,
2644      1480, 3002, 3002, 3002,  996, 3053,  995, 3072, 3072, 3072,
2645       994, 3073,  993, 2995, 3074,  992, 1482,  991, 3003, 1742,
2646      3004, 3004, 3004,  988, 3005, 1742,  987, 3006, 3007, 3007,
2647      3007, 3008, 3008, 3008, 3009, 3009, 3009,  986, 1742, 3018,
2648      3018, 3018,  983, 3019,  980,  979, 3020,  977,  976, 3066,
2649      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,  973,
2650       970, 1740, 3091, 3091, 3091,  967, 1740, 1740, 1740, 1742,
2651
2652      1740, 3036, 3036, 3036, 3037, 3037, 3037, 3042, 3042, 3042,
2653      3092, 3102, 3102, 3102,  966, 3103,  958,  957, 3104, 3105,
2654      3105, 3105, 3038,  956, 3043, 1740, 1740, 1740, 1740, 1740,
2655      1740, 1740, 1740, 1740, 1740, 1740, 3106,  955, 1740, 3050,
2656      3050, 3050,  949, 1740, 1740, 1740, 1742, 1740, 3110, 3110,
2657      3110,  948, 3111,  947,  945, 3112, 3051, 3052, 3052, 3052,
2658      3113, 3113, 3113,  944, 3114,  943,  942, 3115, 3128, 3128,
2659      3128,  941, 1740, 1740, 3053, 3072, 3072, 3072,  940, 3073,
2660       935,  932, 3074,  934,  929,  928, 3129,  926, 3091, 3091,
2661      3091,  924,  923, 1742, 1740, 1740, 1740, 1740, 1740, 3140,
2662
2663      1740, 1740, 1740,  921,  919, 1740, 3092, 3105, 3105, 3105,
2664      1740, 1740, 1740, 1742, 1740, 3102, 3102, 3102,  917, 3103,
2665       915,  913, 3104,  910, 3106, 3164, 3164, 3164,  909, 3165,
2666       908,  907, 3166, 3128, 3128, 3128, 3182, 3182, 3182, 1740,
2667      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 3140,
2668       906, 3129, 1740,  904, 1742, 1743,  902, 1740, 1740, 1740,
2669      1742, 1740, 3110, 3110, 3110,  901, 3111,  900,  898, 3112,
2670      3113, 3113, 3113,  896, 3114,  895,  893, 3115, 3193, 3193,
2671      3193, 3195, 3195, 3195,  891,  890, 1740, 1740, 3197, 3197,
2672      3197,  888, 3164, 3164, 3164, 3194, 3165,  884, 3196, 3166,
2673
2674      3205, 3205, 3205,  883,  881, 3198, 3215, 3215, 3215, 3182,
2675      3182, 3182, 3193, 3193, 3193,  876,  874, 3206, 3225, 3225,
2676      3225,  870, 3226,  869, 1180, 3227,  868, 1742,  866, 3194,
2677      3195, 3195, 3195, 3228, 3228, 3228,  864, 3229,  863,  862,
2678      3230, 3197, 3197, 3197, 3231, 3231, 3231, 3196, 3232,  860,
2679       858, 3233, 3205, 3205, 3205, 3240, 3240, 3240, 3198, 3241,
2680      1947,  857, 3242, 3215, 3215, 3215, 3225, 3225, 3225, 3206,
2681      3226,  855,  853, 3227,  852, 3228, 3228, 3228,  851, 3229,
2682       850, 1180, 3230, 3231, 3231, 3231,  849, 3232,  848,  847,
2683      3233, 3240, 3240, 3240,  845, 3241,  843,  842, 3242,  839,
2684
2685      3251, 3364, 3364, 3364, 3364, 3364, 3364,  838, 3373,  837,
2686       835, 3374, 3466, 3466, 3466, 3466, 3466, 3466,  833, 1180,
2687       822,  821, 1180,  818,  816,  814,  813,  812,  810,  808,
2688      3467,  806,  804, 3467,  264,  264,  264,  264,  264,  264,
2689       264,  264,  264,  265,  265,  265,  265,  265,  265,  265,
2690       265,  265,  270,  270,  270,  270,  270,  270,  270,  270,
2691       270,  273,  273,  273,  273,  273,  273,  273,  273,  273,
2692       276,  276,  276,  276,  276,  276,  276,  276,  276,  279,
2693       279,  279,  279,  279,  279,  279,  279,  279,  286,  286,
2694       286,  286,  286,  286,  286,  286,  286,  294,  294,  294,
2695
2696       294,  294,  294,  294,  294,  294,  298,  298,  298,  298,
2697       298,  298,  298,  298,  298,  310,  310,  310,  310,  310,
2698       310,  310,  310,  310,  314,  314,  314,  314,  314,  314,
2699       314,  314,  314,  321,  321,  321,  321,  321,  321,  321,
2700       321,  321,  332,  332,  332,  332,  332,  332,  332,  332,
2701       332,  340,  340,  340,  340,  340,  340,  340,  340,  340,
2702       346,  346,  346,  346,  346,  346,  346,  346,  346,  352,
2703       352,  352,  352,  352,  352,  352,  352,  352,  358,  358,
2704       358,  358,  358,  358,  358,  358,  358,  363,  363,  363,
2705       363,  363,  363,  363,  363,  363,  382,  382,  382,  382,
2706
2707       382,  382,  382,  382,  382,  389,  389,  389,  389,  389,
2708       389,  389,  389,  389,  397,  397,  397,  397,  397,  397,
2709       397,  397,  397,  402,  402,  402,  402,  402,  402,  402,
2710       402,  402,  408,  408,  408,  408,  408,  408,  408,  408,
2711       408,  413,  413,  413,  413,  413,  413,  413,  413,  413,
2712       419,  419,  419,  419,  419,  419,  419,  419,  419,  427,
2713       427,  427,  427,  427,  427,  427,  427,  427,  435,  435,
2714       435,  435,  435,  435,  435,  435,  435,  442,  442,  442,
2715       442,  442,  442,  442,  442,  442,  449,  449,  449,  449,
2716       449,  449,  449,  449,  449,  453,  453,  453,  453,  453,
2717
2718       453,  453,  453,  453,  459,  459,  459,  459,  459,  459,
2719       459,  459,  459,  465,  465,  465,  465,  465,  465,  465,
2720       465,  465,  483,  483,  483,  483,  483,  483,  483,  483,
2721       483,  490,  490,  490,  490,  490,  490,  490,  490,  490,
2722       499,  499,  499,  499,  499,  499,  499,  499,  499,  505,
2723       505,  505,  505,  505,  505,  505,  505,  505,  515,  515,
2724       515,  515,  515,  515,  515,  515,  515,  521,  521,  521,
2725       521,  521,  521,  521,  521,  521,  526,  526,  526,  526,
2726       526,  526,  526,  526,  526,  532,  532,  532,  532,  532,
2727       532,  532,  532,  532,  538,  538,  538,  538,  538,  538,
2728
2729       538,  538,  538,  544,  544,  544,  544,  544,  544,  544,
2730       544,  544,  551,  551,  551,  551,  551,  551,  551,  551,
2731       551,  558,  558,  558,  558,  558,  558,  558,  558,  558,
2732       563,  563,  563,  563,  563,  563,  563,  563,  563,  571,
2733       571,  571,  571,  571,  571,  571,  571,  571,  577,  577,
2734       577,  577,  577,  577,  577,  577,  577,  584,  584,  584,
2735       584,  584,  584,  584,  584,  584,  589,  589,  589,  589,
2736       589,  589,  589,  589,  589,  595,  595,  595,  595,  595,
2737       595,  595,  595,  595,  600,  600,  600,  600,  600,  600,
2738       600,  600,  600,  607,  607,  607,  607,  607,  607,  607,
2739
2740       607,  607,  613,  613,  613,  613,  613,  613,  613,  613,
2741       613,  620,  620,  620,  620,  620,  620,  620,  620,  620,
2742       628,  628,  628,  628,  628,  628,  628,  628,  628,  636,
2743       636,  636,  636,  636,  636,  636,  636,  636,  640,  640,
2744       640,  640,  640,  640,  640,  640,  640,  646,  646,  646,
2745       646,  646,  646,  646,  646,  646,  650,  650,  650,  650,
2746       650,  650,  650,  650,  650,  657,  657,  657,  657,  657,
2747       657,  657,  657,  657,  662,  662,  662,  662,  662,  662,
2748       662,  662,  662,  668,  668,  668,  668,  668,  668,  668,
2749       668,  668,  673,  673,  673,  673,  673,  673,  673,  673,
2750
2751       673,  693,  693,  693,  803,  802,  801,  693,  720,  720,
2752       720,  799,  798,  796,  720,  724,  724,  724,  793,  792,
2753       791,  724,  732,  732,  732,  789,  787,  786,  732,  743,
2754       743,  743,  784,  782,  781,  743,  749,  749,  749,  779,
2755       776,  775,  749,  772,  772,  772,  774,  773,  771,  772,
2756       780,  780,  780, 3468,  718,  751,  780,  785,  785,  785,
2757       750,  748,  746,  785,  790,  790,  790,  745,  744,  742,
2758       790,  800,  800,  800,  738,  734,  733,  800,  807,  807,
2759       807,  731,  730,  727,  807,  811,  811,  811,  726,  725,
2760       723,  811,  817,  817,  817,  722,  721,  719,  817,  836,
2761
2762       836,  836,  714, 3468,  694,  836,  846,  846,  846,  692,
2763       690,  684,  846,  856,  856,  856,  683,  684,  683,  856,
2764       861,  861,  861,  682,  681, 3468,  861,  867,  867,  867,
2765      3468, 3468, 3468,  867,  875,  875,  875, 3468, 3468, 3468,
2766       875,  882,  882,  882, 3468, 3468, 3468,  882,  889,  889,
2767       889, 3468, 3468, 3468,  889,  894,  894,  894, 3468, 3468,
2768      3468,  894,  899,  899,  899, 3468, 3468, 3468,  899,  905,
2769       905,  905, 3468, 3468, 3468,  905,  914,  914,  914, 3468,
2770      3468, 3468,  914,  918,  918,  918, 3468, 3468, 3468,  918,
2771       922,  922,  922, 3468, 3468, 3468,  922,  927,  927,  927,
2772
2773      3468, 3468, 3468,  927,  931,  931,  931,  931,  931,  931,
2774       931, 3468,  931,  693,  693,  693, 3468, 3468, 3468,  693,
2775       946, 3468, 3468, 3468,  946,  720,  720,  720, 3468, 3468,
2776      3468,  720,  978, 3468, 3468, 3468,  978,  724,  724,  724,
2777      3468, 3468, 3468,  724,  985, 3468, 3468, 3468,  985,  732,
2778       732,  732, 3468, 3468, 3468,  732,  997, 3468, 3468, 3468,
2779       997,  743,  743,  743, 3468, 3468, 3468,  743, 1002, 3468,
2780      3468, 3468, 1002,  749,  749,  749, 3468, 3468, 3468,  749,
2781      1007, 3468, 3468, 3468, 1007,  772,  772,  772, 3468, 3468,
2782      3468,  772, 1028, 3468, 3468, 3468, 1028,  780,  780,  780,
2783
2784      3468, 3468, 3468,  780, 1033, 3468, 3468, 3468, 1033,  785,
2785       785,  785, 3468, 3468, 3468,  785, 1037, 3468, 3468, 3468,
2786      1037,  790,  790,  790, 3468, 3468, 3468,  790, 1047, 3468,
2787      3468, 3468, 1047,  800,  800,  800, 3468, 3468, 3468,  800,
2788      1056, 3468, 3468, 3468, 1056,  807,  807,  807, 3468, 3468,
2789      3468,  807, 1059, 3468, 3468, 3468, 1059,  811,  811,  811,
2790      3468, 3468, 3468,  811, 1066, 3468, 3468, 3468, 1066,  817,
2791       817,  817, 3468, 3468, 3468,  817, 1086, 3468, 3468, 3468,
2792      1086,  836,  836,  836, 3468, 3468, 3468,  836, 1097, 3468,
2793      3468, 3468, 1097,  846,  846,  846, 3468, 3468, 3468,  846,
2794
2795      1107, 3468, 3468, 3468, 1107,  856,  856,  856, 3468, 3468,
2796      3468,  856, 1112, 3468, 3468, 3468, 1112,  861,  861,  861,
2797      3468, 3468, 3468,  861, 1118, 3468, 3468, 3468, 1118,  867,
2798       867,  867, 3468, 3468, 3468,  867, 1126, 3468, 3468, 3468,
2799      1126,  875,  875,  875, 3468, 3468, 3468,  875, 1131, 3468,
2800      3468, 3468, 1131,  882,  882,  882, 3468, 3468, 3468,  882,
2801      1138, 3468, 3468, 3468, 1138,  889,  889,  889, 3468, 3468,
2802      3468,  889, 1143, 3468, 3468, 3468, 1143,  894,  894,  894,
2803      3468, 3468, 3468,  894, 1147, 3468, 3468, 3468, 1147,  899,
2804       899,  899, 3468, 3468, 3468,  899, 1152, 3468, 3468, 3468,
2805
2806      1152,  905,  905,  905, 3468, 3468, 3468,  905, 1159, 3468,
2807      3468, 3468, 1159,  914,  914,  914, 3468, 3468, 3468,  914,
2808      1163, 3468, 3468, 3468, 1163,  918,  918,  918, 3468, 3468,
2809      3468,  918, 1167, 3468, 3468, 3468, 1167,  922,  922,  922,
2810      3468, 3468, 3468,  922, 1172, 3468, 3468, 3468, 1172,  927,
2811       927,  927, 3468, 3468, 3468,  927, 1177, 3468, 3468, 3468,
2812      1177, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
2813      1185, 3468, 3468, 3468, 3468, 1185,  693,  693,  693, 3468,
2814      3468, 3468,  693, 1194, 1194, 1194, 1194, 3468, 3468, 1194,
2815      1194,  720,  720,  720, 3468, 3468, 3468,  720, 1230, 1230,
2816
2817      1230, 1230, 3468, 3468, 1230, 1230,  724,  724,  724, 3468,
2818      3468, 3468,  724, 1240, 1240, 1240, 1240, 3468, 3468, 1240,
2819      1240,  732,  732,  732, 3468, 3468, 3468,  732, 1256, 1256,
2820      1256, 1256, 3468, 3468, 1256, 1256,  743,  743,  743, 3468,
2821      3468, 3468,  743, 1263, 1263, 1263, 1263, 3468, 3468, 1263,
2822      1263,  749,  749,  749, 3468, 3468, 3468,  749, 1271, 1271,
2823      1271, 1271, 3468, 3468, 1271, 1271,  772,  772,  772, 3468,
2824      3468, 3468,  772, 1294, 1294, 1294, 1294, 3468, 3468, 1294,
2825      1294,  780,  780,  780, 3468, 3468, 3468,  780, 1301, 1301,
2826      1301, 1301, 3468, 3468, 1301, 1301,  785,  785,  785, 3468,
2827
2828      3468, 3468,  785, 1307, 1307, 1307, 1307, 3468, 3468, 1307,
2829      1307,  790,  790,  790, 3468, 3468, 3468,  790, 1320, 1320,
2830      1320, 1320, 3468, 3468, 1320, 1320,  800,  800,  800, 3468,
2831      3468, 3468,  800, 1332, 1332, 1332, 1332, 3468, 3468, 1332,
2832      1332,  807,  807,  807, 3468, 3468, 3468,  807, 1337, 1337,
2833      1337, 1337, 3468, 3468, 1337, 1337,  811,  811,  811, 3468,
2834      3468, 3468,  811, 1348, 1348, 1348, 1348, 3468, 3468, 1348,
2835      1348,  817,  817,  817, 3468, 3468, 3468,  817, 1375, 1375,
2836      1375, 1375, 3468, 3468, 1375, 1375,  836,  836,  836,  836,
2837      3468,  836, 3468,  836, 1391, 1391, 1391, 1391, 3468, 3468,
2838
2839      1391, 1391,  846,  846,  846, 3468, 3468, 3468,  846, 1406,
2840      1406, 1406, 1406, 3468, 3468, 1406, 1406,  856,  856,  856,
2841      3468, 3468, 3468,  856, 1414, 1414, 1414, 1414, 3468, 3468,
2842      1414, 1414,  861,  861,  861, 3468, 3468, 3468,  861, 1423,
2843      1423, 1423, 1423, 3468, 3468, 1423, 1423,  867,  867,  867,
2844      3468, 3468, 3468,  867, 1434, 1434, 1434, 1434, 3468, 3468,
2845      1434, 1434,  875,  875,  875,  875, 3468,  875, 3468,  875,
2846      1443, 1443, 1443, 1443, 3468, 3468, 1443, 1443,  882,  882,
2847       882,  882, 3468,  882, 3468,  882, 1455, 1455, 1455, 1455,
2848      3468, 3468, 1455, 1455,  889,  889,  889, 3468, 3468, 3468,
2849
2850       889, 1463, 1463, 1463, 1463, 3468, 3468, 1463, 1463,  894,
2851       894,  894,  894, 3468,  894, 3468,  894, 1471, 1471, 1471,
2852      1471, 3468, 3468, 1471, 1471,  899,  899,  899,  899, 3468,
2853       899, 3468,  899, 1481, 1481, 1481, 1481, 3468, 3468, 1481,
2854      1481,  905,  905,  905, 3468, 3468, 3468,  905, 1490, 1490,
2855      1490, 1490, 3468, 3468, 1490, 1490,  914,  914,  914, 3468,
2856      3468, 3468,  914, 1496, 1496, 1496, 1496, 3468, 3468, 1496,
2857      1496, 1503, 1503, 1503, 1503, 3468, 3468, 1503, 1503,  922,
2858       922,  922, 3468, 3468, 3468,  922, 1511, 1511, 1511, 1511,
2859      3468, 3468, 1511, 1511,  927,  927,  927, 3468, 3468, 3468,
2860
2861       927, 1519, 1519, 1519, 1519, 3468, 3468, 1519, 1519, 1179,
2862      1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1185, 3468,
2863      1185, 3468, 3468, 1185,  693,  693,  693, 3468, 3468, 3468,
2864       693, 1194, 1194, 1194, 1194, 3468, 3468, 1194, 1194,  720,
2865       720,  720,  720, 3468,  720, 3468,  720, 1230, 1230, 1230,
2866      1230, 3468, 3468, 1230, 1230,  724,  724,  724,  724, 3468,
2867       724, 3468,  724, 1240, 1240, 1240, 1240, 3468, 3468, 1240,
2868      1240,  732,  732,  732, 3468, 3468, 3468,  732, 1256, 1256,
2869      1256, 1256, 3468, 3468, 1256, 1256,  743,  743,  743, 3468,
2870      3468, 3468,  743, 1263, 1263, 1263, 1263, 3468, 3468, 1263,
2871
2872      1263,  749,  749,  749, 3468, 3468, 3468,  749, 1271, 1271,
2873      1271, 1271, 3468, 3468, 1271, 1271,  772,  772,  772, 3468,
2874      3468, 3468,  772, 1294, 1294, 1294, 1294, 3468, 3468, 1294,
2875      1294,  780,  780,  780,  780, 3468,  780, 3468,  780, 1301,
2876      1301, 1301, 1301, 3468, 3468, 1301, 1301,  785,  785,  785,
2877       785, 3468,  785, 3468,  785, 1307, 1307, 1307, 1307, 3468,
2878      3468, 1307, 1307,  790,  790,  790, 3468, 3468, 3468,  790,
2879      1320, 1320, 1320, 1320, 3468, 3468, 1320, 1320,  800,  800,
2880       800, 3468, 3468, 3468,  800, 1332, 1332, 1332, 1332, 3468,
2881      3468, 1332, 1332,  807,  807,  807,  807, 3468,  807, 3468,
2882
2883       807, 1337, 1337, 1337, 1337, 3468, 3468, 1337, 1337,  811,
2884       811,  811,  811, 3468,  811, 3468,  811, 1348, 1348, 1348,
2885      1348, 3468, 3468, 1348, 1348,  817,  817,  817, 3468, 3468,
2886      3468,  817, 1375, 1375, 1375, 1375, 3468, 3468, 1375, 1375,
2887       836,  836,  836, 3468, 3468, 3468,  836, 1391, 1391, 1391,
2888      1391, 3468, 3468, 1391, 1391,  846,  846,  846, 3468, 3468,
2889      3468,  846, 1406, 1406, 1406, 1406, 3468, 3468, 1406, 1406,
2890       856,  856,  856, 3468, 3468, 3468,  856, 1414, 1414, 1414,
2891      1414, 3468, 3468, 1414, 1414,  861,  861,  861, 3468, 3468,
2892      3468,  861, 1423, 1423, 1423, 1423, 3468, 3468, 1423, 1423,
2893
2894       867,  867,  867, 3468, 3468, 3468,  867, 1434, 1434, 1434,
2895      1434, 3468, 3468, 1434, 1434,  875,  875,  875, 3468, 3468,
2896      3468,  875, 1443, 1443, 1443, 1443, 3468, 3468, 1443, 1443,
2897       882,  882,  882, 3468, 3468, 3468,  882, 1455, 1455, 1455,
2898      1455, 3468, 3468, 1455, 1455,  889,  889,  889, 3468, 3468,
2899      3468,  889, 1463, 1463, 1463, 1463, 3468, 3468, 1463, 1463,
2900      1471, 1471, 1471, 1471, 3468, 3468, 1471, 1471,  899,  899,
2901       899, 3468, 3468, 3468,  899, 1481, 1481, 1481, 1481, 3468,
2902      3468, 1481, 1481,  905,  905,  905, 3468, 3468, 3468,  905,
2903      1490, 1490, 1490, 1490, 3468, 3468, 1490, 1490,  914,  914,
2904
2905       914, 3468, 3468, 3468,  914, 1496, 1496, 1496, 1496, 3468,
2906      3468, 1496, 1496, 1503, 1503, 1503, 1503, 3468, 3468, 1503,
2907      1503,  922,  922,  922, 3468, 3468, 3468,  922, 1511, 1511,
2908      1511, 1511, 3468, 3468, 1511, 1511,  927,  927,  927, 3468,
2909      3468, 3468,  927, 1519, 1519, 1519, 1519, 3468, 3468, 1519,
2910      1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
2911      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,  693,
2912       693,  693, 3468, 3468, 3468,  693, 1194, 1194, 1194, 1194,
2913      3468, 3468, 1194, 1194, 1230, 1230, 1230, 1230, 3468, 3468,
2914      1230, 1230,  724,  724,  724, 3468, 3468, 3468,  724, 1240,
2915
2916      1240, 1240, 1240, 3468, 3468, 1240, 1240,  732,  732,  732,
2917      3468, 3468, 3468,  732, 1256, 1256, 1256, 1256, 3468, 3468,
2918      1256, 1256,  743,  743,  743, 3468, 3468, 3468,  743, 1263,
2919      1263, 1263, 1263, 3468, 3468, 1263, 1263,  749,  749,  749,
2920      3468, 3468, 3468,  749,  772,  772,  772, 3468, 3468, 3468,
2921       772, 1294, 1294, 1294, 1294, 3468, 3468, 1294, 1294,  780,
2922       780,  780, 3468, 3468, 3468,  780, 1301, 1301, 1301, 1301,
2923      3468, 3468, 1301, 1301,  785,  785,  785, 3468, 3468, 3468,
2924       785, 1307, 1307, 1307, 1307, 3468, 3468, 1307, 1307,  790,
2925       790,  790, 3468, 3468, 3468,  790, 1320, 1320, 1320, 1320,
2926
2927      3468, 3468, 1320, 1320,  800,  800,  800, 3468, 3468, 3468,
2928       800, 1332, 1332, 1332, 1332, 3468, 3468, 1332, 1332, 1337,
2929      1337, 1337, 1337, 3468, 3468, 1337, 1337, 1348, 1348, 1348,
2930      1348, 3468, 3468, 1348, 1348,  817,  817,  817, 3468, 3468,
2931      3468,  817, 1375, 1375, 1375, 1375, 3468, 3468, 1375, 1375,
2932       836,  836,  836,  836, 3468,  836, 3468,  836, 1391, 1391,
2933      1391, 1391, 3468, 3468, 1391, 1391,  846,  846,  846, 3468,
2934      3468, 3468,  846, 1406, 1406, 1406, 1406, 3468, 3468, 1406,
2935      1406,  856,  856,  856, 3468, 3468, 3468,  856, 1414, 1414,
2936      1414, 1414, 3468, 3468, 1414, 1414,  861,  861,  861, 3468,
2937
2938      3468, 3468,  861, 1423, 1423, 1423, 1423, 3468, 3468, 1423,
2939      1423,  867,  867,  867, 3468, 3468, 3468,  867, 1434, 1434,
2940      1434, 1434, 3468, 3468, 1434, 1434,  875,  875,  875, 3468,
2941      3468, 3468,  875, 1443, 1443, 1443, 1443, 3468, 3468, 1443,
2942      1443,  882,  882,  882, 3468, 3468, 3468,  882, 1455, 1455,
2943      1455, 1455, 3468, 3468, 1455, 1455,  889,  889,  889, 3468,
2944      3468, 3468,  889, 1463, 1463, 1463, 1463, 3468, 3468, 1463,
2945      1463, 1471, 1471, 1471, 1471, 3468, 3468, 1471, 1471,  899,
2946       899,  899, 3468, 3468, 3468,  899, 1481, 1481, 1481, 1481,
2947      3468, 3468, 1481, 1481,  905,  905,  905, 3468, 3468, 3468,
2948
2949       905, 1490, 1490, 1490, 1490, 3468, 3468, 1490, 1490,  914,
2950       914,  914,  914, 3468,  914, 3468,  914, 1496, 1496, 1496,
2951      1496, 3468, 3468, 1496, 1496, 1503, 1503, 1503, 1503, 3468,
2952      3468, 1503, 1503,  922,  922,  922,  922, 3468,  922, 3468,
2953       922, 1511, 1511, 1511, 1511, 3468, 3468, 1511, 1511,  927,
2954       927,  927,  927, 3468,  927, 3468,  927, 1519, 1519, 1519,
2955      1519, 3468, 3468, 1519, 1519, 1179, 1179, 1179, 1179, 1179,
2956      1179, 1179, 1179, 1179, 1740, 1740, 1740, 1740, 1740, 1740,
2957      1740, 1740, 1740,  693,  693,  693, 3468, 3468, 3468,  693,
2958      1194, 1194, 1194, 1194, 3468, 3468, 1194, 1194, 1230, 1230,
2959
2960      1230, 1230, 3468, 3468, 1230, 1230,  724,  724,  724, 3468,
2961      3468, 3468,  724, 1240, 1240, 1240, 1240, 3468, 3468, 1240,
2962      1240,  732,  732,  732, 3468, 3468, 3468,  732, 1256, 1256,
2963      1256, 1256, 3468, 3468, 1256, 1256,  743,  743,  743, 3468,
2964      3468, 3468,  743, 1263, 1263, 1263, 1263, 3468, 3468, 1263,
2965      1263,  749,  749,  749, 3468, 3468, 3468,  749,  772,  772,
2966       772, 3468, 3468, 3468,  772, 1294, 1294, 1294, 1294, 3468,
2967      3468, 1294, 1294,  780,  780,  780, 3468, 3468, 3468,  780,
2968      1301, 1301, 1301, 1301, 3468, 3468, 1301, 1301,  785,  785,
2969       785,  785, 3468,  785, 3468,  785, 1307, 1307, 1307, 1307,
2970
2971      3468, 3468, 1307, 1307,  790,  790,  790, 3468, 3468, 3468,
2972       790, 1320, 1320, 1320, 1320, 3468, 3468, 1320, 1320,  800,
2973       800,  800,  800, 3468,  800, 3468,  800, 1332, 1332, 1332,
2974      1332, 3468, 3468, 1332, 1332, 1348, 1348, 1348, 1348, 3468,
2975      3468, 1348, 1348,  817,  817,  817, 3468, 3468, 3468,  817,
2976      1375, 1375, 1375, 1375, 3468, 3468, 1375, 1375,  836,  836,
2977       836,  836, 3468,  836, 3468,  836, 1391, 1391, 1391, 1391,
2978      3468, 3468, 1391, 1391,  846,  846,  846, 3468, 3468, 3468,
2979       846, 1406, 1406, 1406, 1406, 3468, 3468, 1406, 1406,  856,
2980       856,  856, 3468, 3468, 3468,  856, 1414, 1414, 1414, 1414,
2981
2982      3468, 3468, 1414, 1414,  861,  861,  861, 3468, 3468, 3468,
2983       861, 1423, 1423, 1423, 1423, 3468, 3468, 1423, 1423,  867,
2984       867,  867, 3468, 3468, 3468,  867, 1434, 1434, 1434, 1434,
2985      3468, 3468, 1434, 1434,  875,  875,  875, 3468, 3468, 3468,
2986       875, 1443, 1443, 1443, 1443, 3468, 3468, 1443, 1443,  882,
2987       882,  882,  882, 3468,  882, 3468,  882, 1455, 1455, 1455,
2988      1455, 3468, 3468, 1455, 1455,  889,  889,  889, 3468, 3468,
2989      3468,  889, 1463, 1463, 1463, 1463, 3468, 3468, 1463, 1463,
2990      1471, 1471, 1471, 1471, 3468, 3468, 1471, 1471,  899,  899,
2991       899,  899, 3468,  899, 3468,  899, 1481, 1481, 1481, 1481,
2992
2993      3468, 3468, 1481, 1481,  905,  905,  905, 3468, 3468, 3468,
2994       905, 1490, 1490, 1490, 1490, 3468, 3468, 1490, 1490, 1496,
2995      1496, 1496, 1496, 3468, 3468, 1496, 1496, 1503, 1503, 1503,
2996      1503, 3468, 3468, 1503, 1503, 1511, 1511, 1511, 1511, 3468,
2997      3468, 1511, 1511, 1519, 1519, 1519, 1519, 3468, 3468, 1519,
2998      1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
2999      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,  693,
3000       693,  693,  693, 3468,  693, 3468,  693, 1194, 1194, 1194,
3001      1194, 3468, 3468, 1194, 1194, 1230, 1230, 1230, 1230, 3468,
3002      3468, 1230, 1230,  724,  724,  724, 3468, 3468, 3468,  724,
3003
3004      1240, 1240, 1240, 1240, 3468, 3468, 1240, 1240,  732,  732,
3005       732, 3468, 3468, 3468,  732, 1256, 1256, 1256, 1256, 3468,
3006      3468, 1256, 1256,  743,  743,  743,  743, 3468,  743, 3468,
3007       743, 1263, 1263, 1263, 1263, 3468, 3468, 1263, 1263,  749,
3008       749,  749,  749, 3468,  749, 3468,  749,  772,  772,  772,
3009       772, 3468,  772, 3468,  772, 1294, 1294, 1294, 1294, 3468,
3010      3468, 1294, 1294,  780,  780,  780, 3468, 3468, 3468,  780,
3011      1301, 1301, 1301, 1301, 3468, 3468, 1301, 1301, 1307, 1307,
3012      1307, 1307, 3468, 3468, 1307, 1307,  790,  790,  790, 3468,
3013      3468, 3468,  790,  800,  800,  800,  800, 3468,  800, 3468,
3014
3015       800, 1332, 1332, 1332, 1332, 3468, 3468, 1332, 1332, 1348,
3016      1348, 1348, 1348, 3468, 3468, 1348, 1348,  817,  817,  817,
3017      3468, 3468, 3468,  817, 1375, 1375, 1375, 1375, 3468, 3468,
3018      1375, 1375,  836,  836,  836,  836, 3468,  836, 3468,  836,
3019      1391, 1391, 1391, 1391, 3468, 3468, 1391, 1391,  846,  846,
3020       846, 3468, 3468, 3468,  846,  856,  856,  856, 3468, 3468,
3021      3468,  856, 1414, 1414, 1414, 1414, 3468, 3468, 1414, 1414,
3022       861,  861,  861, 3468, 3468, 3468,  861, 1423, 1423, 1423,
3023      1423, 3468, 3468, 1423, 1423,  867,  867,  867, 3468, 3468,
3024      3468,  867,  875,  875,  875, 3468, 3468, 3468,  875, 1443,
3025
3026      1443, 1443, 1443, 3468, 3468, 1443, 1443,  882,  882,  882,
3027      3468, 3468, 3468,  882, 1455, 1455, 1455, 1455, 3468, 3468,
3028      1455, 1455,  889,  889,  889, 3468, 3468, 3468,  889, 1463,
3029      1463, 1463, 1463, 3468, 3468, 1463, 1463, 1471, 1471, 1471,
3030      1471, 3468, 3468, 1471, 1471, 1481, 1481, 1481, 1481, 3468,
3031      3468, 1481, 1481,  905,  905,  905, 3468, 3468, 3468,  905,
3032      1490, 1490, 1490, 1490, 3468, 3468, 1490, 1490, 1496, 1496,
3033      1496, 1496, 3468, 3468, 1496, 1496, 1503, 1503, 1503, 1503,
3034      3468, 3468, 1503, 1503, 1519, 1519, 1519, 1519, 3468, 3468,
3035      1519, 1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
3036
3037      1179, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740,
3038      1194, 1194, 1194, 1194, 3468, 3468, 1194, 1194, 1230, 1230,
3039      1230, 1230, 3468, 3468, 1230, 1230,  724,  724,  724, 3468,
3040      3468, 3468,  724,  732,  732,  732, 3468, 3468, 3468,  732,
3041      1256, 1256, 1256, 1256, 3468, 3468, 1256, 1256, 1263, 1263,
3042      1263, 1263, 3468, 3468, 1263, 1263,  772,  772,  772, 3468,
3043      3468, 3468,  772, 1294, 1294, 1294, 1294, 3468, 3468, 1294,
3044      1294,  780,  780,  780, 3468, 3468, 3468,  780, 1307, 1307,
3045      1307, 1307, 3468, 3468, 1307, 1307,  790,  790,  790, 3468,
3046      3468, 3468,  790,  800,  800,  800, 3468, 3468, 3468,  800,
3047
3048      1332, 1332, 1332, 1332, 3468, 3468, 1332, 1332, 1348, 1348,
3049      1348, 1348, 3468, 3468, 1348, 1348,  817,  817,  817, 3468,
3050      3468, 3468,  817, 1375, 1375, 1375, 1375, 3468, 3468, 1375,
3051      1375, 1391, 1391, 1391, 1391, 3468, 3468, 1391, 1391,  846,
3052       846,  846, 3468, 3468, 3468,  846,  856,  856,  856, 3468,
3053      3468, 3468,  856, 1414, 1414, 1414, 1414, 3468, 3468, 1414,
3054      1414,  861,  861,  861, 3468, 3468, 3468,  861, 1423, 1423,
3055      1423, 1423, 3468, 3468, 1423, 1423,  867,  867,  867, 3468,
3056      3468, 3468,  867,  875,  875,  875, 3468, 3468, 3468,  875,
3057       882,  882,  882, 3468, 3468, 3468,  882, 1455, 1455, 1455,
3058
3059      1455, 3468, 3468, 1455, 1455,  889,  889,  889, 3468, 3468,
3060      3468,  889, 1463, 1463, 1463, 1463, 3468, 3468, 1463, 1463,
3061      1471, 1471, 1471, 1471, 3468, 3468, 1471, 1471, 1481, 1481,
3062      1481, 1481, 3468, 3468, 1481, 1481,  905,  905,  905,  905,
3063      3468,  905, 3468,  905, 1490, 1490, 1490, 1490, 3468, 3468,
3064      1490, 1490, 1496, 1496, 1496, 1496, 3468, 3468, 1496, 1496,
3065      1503, 1503, 1503, 1503, 3468, 3468, 1503, 1503, 1519, 1519,
3066      1519, 1519, 3468, 3468, 1519, 1519, 1179, 1179, 1179, 1179,
3067      1179, 1179, 1179, 1179, 1179, 1740, 1740, 1740, 1740, 1740,
3068      1740, 1740, 1740, 1740, 1194, 1194, 1194, 1194, 3468, 3468,
3069
3070      1194, 1194, 1230, 1230, 1230, 1230, 3468, 3468, 1230, 1230,
3071       724,  724,  724, 3468, 3468, 3468,  724,  732,  732,  732,
3072       732, 3468,  732, 3468,  732, 1263, 1263, 1263, 1263, 3468,
3073      3468, 1263, 1263,  772,  772,  772, 3468, 3468, 3468,  772,
3074      1294, 1294, 1294, 1294, 3468, 3468, 1294, 1294,  780,  780,
3075       780,  780, 3468,  780, 3468,  780, 1307, 1307, 1307, 1307,
3076      3468, 3468, 1307, 1307,  790,  790,  790, 3468, 3468, 3468,
3077       790,  800,  800,  800, 3468, 3468, 3468,  800, 1332, 1332,
3078      1332, 1332, 3468, 3468, 1332, 1332, 1348, 1348, 1348, 1348,
3079      3468, 3468, 1348, 1348,  817,  817,  817, 3468, 3468, 3468,
3080
3081       817, 1375, 1375, 1375, 1375, 3468, 3468, 1375, 1375, 1391,
3082      1391, 1391, 1391, 3468, 3468, 1391, 1391,  846,  846,  846,
3083      3468, 3468, 3468,  846,  856,  856,  856, 3468, 3468, 3468,
3084       856,  861,  861,  861,  861, 3468,  861, 3468,  861, 1423,
3085      1423, 1423, 1423, 3468, 3468, 1423, 1423,  867,  867,  867,
3086       867, 3468,  867, 3468,  867,  875,  875,  875, 3468, 3468,
3087      3468,  875,  882,  882,  882, 3468, 3468, 3468,  882, 1455,
3088      1455, 1455, 1455, 3468, 3468, 1455, 1455,  889,  889,  889,
3089       889, 3468,  889, 3468,  889, 1463, 1463, 1463, 1463, 3468,
3090      3468, 1463, 1463, 1471, 1471, 1471, 1471, 3468, 3468, 1471,
3091
3092      1471, 1481, 1481, 1481, 1481, 3468, 3468, 1481, 1481,  905,
3093       905,  905,  905, 3468,  905, 3468,  905, 1490, 1490, 1490,
3094      1490, 3468, 3468, 1490, 1490, 1496, 1496, 1496, 1496, 3468,
3095      3468, 1496, 1496, 1519, 1519, 1519, 1519, 3468, 3468, 1519,
3096      1519, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
3097      1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1740, 1194,
3098      1194, 1194, 1194, 3468, 3468, 1194, 1194,  724,  724,  724,
3099      3468, 3468, 3468,  724,  732,  732,  732, 3468, 3468, 3468,
3100       732, 1263, 1263, 1263, 1263, 3468, 3468, 1263, 1263,  772,
3101       772,  772, 3468, 3468, 3468,  772, 1294, 1294, 1294, 1294,
3102
3103      3468, 3468, 1294, 1294, 1307, 1307, 1307, 1307, 3468, 3468,
3104      1307, 1307,  790,  790,  790, 3468, 3468, 3468,  790,  800,
3105       800,  800, 3468, 3468, 3468,  800, 1348, 1348, 1348, 1348,
3106      3468, 3468, 1348, 1348,  817,  817,  817, 3468, 3468, 3468,
3107       817,  846,  846,  846, 3468, 3468, 3468,  846,  856,  856,
3108       856, 3468, 3468, 3468,  856, 1423, 1423, 1423, 1423, 3468,
3109      3468, 1423, 1423,  867,  867,  867, 3468, 3468, 3468,  867,
3110       875,  875,  875, 3468, 3468, 3468,  875,  882,  882,  882,
3111      3468, 3468, 3468,  882, 3075, 3075, 3075, 3075, 3075, 3075,
3112      3075, 3075, 3075, 3076, 3076, 3076, 3076, 3076, 3076, 3076,
3113
3114      3076, 3076, 3135, 3135, 3135, 3135, 3135, 3135, 3135, 3135,
3115      3135, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138, 3138,
3116      3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3179, 3181,
3117      3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181,  263, 3468,
3118      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3119      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3120      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3121      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3122      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3123      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3124
3125      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
3126      3468, 3468, 3468
3127     } ;
3128
3129 static yyconst flex_int16_t yy_chk[12714] =
3130     {   0,
3131         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3132         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3133         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
3134         8,    8,    8,  268,   11,   13,   13,   12,   14,   14,
3135        13,   13,  317,   14,   14,  269,    8,   17,   17,  268,
3136        13,   15,   15,   14,   15,  272,   15,   16,   16,  371,
3137        16,  269,   16,   18,   18,    0,   15,   19,   19,   19,
3138       550,  272,   16,   20,   20,   20,   23,   23,   23,   24,
3139        24,   24,  550,   19,   25,   25,   25,  371, 1540,   20,
3140       378,   17,   23, 1100,  317,   24,  266,  266,  266, 1100,
3141
3142        25,  267,  267,  267,  271,  271,  271,   18,   21,   21,
3143        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3144        21,   21,   21,  301,   21,   21,   21,   21,   21,   26,
3145        26,   26,   27,   27,   27,   28,   28,   28,  301,   29,
3146        29,   29,   30,   30,   30,   26,  378,  479,   27,  295,
3147       479,   28,  698,   21,   21,   29,  311,  290,   30,   31,
3148        31,   31,  292,  292,  292,  295,  299,  299,  299,  308,
3149       308,  308,  311,  290,  367,   31,  698,   21,   22,   22,
3150        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3151        22,   22,   22, 1542,   22,   22,   22,   22,   22,   32,
3152
3153        32,   32,   33,   33,   33,   34,   34,   34,  282,   35,
3154        35,   35,   36,   36,   36,   32,  290,  370,   33,  496,
3155       754,   34,  496,   22,   22,   35,  367,  370,   36,   37,
3156        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3157        40,   41,   41,   41,  754,   37,  562,   22,   38,  322,
3158       282,   39,  475,  562,   40,  370,  282,   41,   42,   42,
3159        42,  282,  315,  315,  315,  322,  282,  319,  319,  319,
3160       330,  330,  330,  475,   42,   43,   43,   43,   43,   43,
3161        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3162       339,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3163
3164        46,   46,   47,   47,   47,  339,   48,   48,   48,   49,
3165        49,   49,   45,  425,  567,   46, 1543,  425,   47,  337,
3166        43,   43,   48,  337,  391,   49,  303,  337,   43,   44,
3167        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3168        44,   44,   44,   44,  333,   44,   44,   44,   44,   44,
3169        50,   50,   50,   51,   51,   51,   52,   52,   52, 1544,
3170       333,  580,   55,   55,  576,  303,   50,   55,  304,   51,
3171       567,  576,   52,  391,   44,   44,  391,   55,  303,  393,
3172       303,  603,   44,   53,   53,   53,   53,   53,   53,   53,
3173        53,   53,   53,   53,   53,   53,   53,   53, 1546,   53,
3174
3175        53,   53,   53,   53, 1547,  347,   55,  304,   59,   59,
3176        59,   60,   60,   60,   63,   63,   63,  580,   56,   56,
3177       304,  347,  304,   56,   59,  327,  566,   60,   53,   53,
3178        63,  393,  327,   56,  566,  686,   53,  603,  686,   53,
3179       429,  327,  341,  341,  341, 1549,   53,   54,   54,   54,
3180        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3181        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3182        64,   67,   67,   67,   68,   68,   68,  480,   69,   69,
3183        69,   70,   70,   70,   64,  359,  377,   67,  342,  429,
3184        68,  480,   54,   54,   69,  342, 1550,   70, 1551,  616,
3185
3186        54,  359,  377,   54,  342,  344,  344,  344,  431,  959,
3187        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3188        57,   57,   57,   57,   57,   57,  959,   57,   57,   57,
3189        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3190        73,  444,   74,   74,   74,   75,   75,   75,   71, 1552,
3191       383,   72,  354,  398,   73,  616,   57,   57,   74,  354,
3192       431,   75,  353,  353,  353,   57,  383,   57,  354,  398,
3193       392,   57,  356,  356,  356,  445,   57,   57,   58,   58,
3194        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3195        58,   58,   58,  444,   58,   58,   58,   58,   58,   76,
3196
3197        76,   76,   77,   77,   77,   78,   78,   78,  631,   79,
3198        79,   79,   80,   80,   80,   76,  369, 1553,   77,  392,
3199       631,   78,  392,   58,   58,   79,  369,  445,   80,  364,
3200       364,  364,   58,  369,   58,  380,  380,  380,   58,  390,
3201       390,  390, 1554,   58,   58,   61,   61,   61,   61,   61,
3202        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3203       375,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3204        82,   82,   83,   83,   83,  728,   84,   84,   84,   85,
3205        85,   85,   81,  704, 1373,   82,  677,  704,   83,  375,
3206        61,   61,   84,  375,  375,   85, 1373,   61,  395,  395,
3207
3208       395,  677,  375,   61,  375,  403,  403,  403,  406,  406,
3209       406,  728,   61,   62,   62,   62,   62,   62,   62,   62,
3210        62,   62,   62,   62,   62,   62,   62,   62, 1555,   62,
3211        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3212        88,   88,   88,  706,   89,   89,   89,   90,   90,   90,
3213        86,  409,  420,   87,  404,  763,   88,  706,   62,   62,
3214        89,  404,  415,   90, 1556,   62, 1557,  409,  420,  415,
3215       404,   62,  414,  414,  414,  417,  417,  417,  415,  763,
3216        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3217        65,   65,   65,   65,   65,   65, 1559,   65,   65,   65,
3218
3219        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3220        93, 1560,   94,   94,   94,   95,   95,   95,   91,  436,
3221       450,   92, 1566, 1567,   93,  485,   65,   65,   94,  460,
3222      1569,   95,  428,  428,  428,  436,  450,   65,  433,  433,
3223       433,  443,  443,  443,  486,  460,   65,   66,   66,   66,
3224        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3225        66,   66,  764,   66,   66,   66,   66,   66,   96,   96,
3226        96,   97,   97,   97,   98,   98,   98,  485,   99,   99,
3227        99,  100,  100,  100,   96,  472,  764,   97,  792,  765,
3228        98,  792,   66,   66,   99,  455,  486,  100,  101,  101,
3229
3230       101,  472,  455,   66,  102,  102,  102,  447,  447,  447,
3231       553,  455,   66,  765,  101,  454,  454,  454,  376, 1030,
3232       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3233       103,  103,  103,  103,  103,  103, 1030,  103,  103,  103,
3234       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3235       107,  778,  108,  108,  108,  778,  376,  491,  105,  798,
3236       710,  106,  553,  798,  107,  373,  103,  103,  108,  467,
3237       506,  103,  376,  491,  710,  373,  467,  103,  457,  457,
3238       457,  103,  466,  466,  466,  467,  506,  103,  104,  104,
3239       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3240
3241       104,  104,  104,  373,  104,  104,  104,  104,  104,  109,
3242       109,  109,  110,  110,  110,  111,  111,  111,  478,  112,
3243       112,  112,  469,  469,  469,  109,  478,  481,  110, 1578,
3244      1581,  111,  478,  104,  104,  112,  522,  533,  104,  481,
3245       481,  484,  484,  484,  104,  488,  488,  488,  104,  500,
3246       500,  500,  522,  533,  104,  113,  113,  113,  113,  113,
3247       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3248       766,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3249       116,  116,  119,  119,  119,  554,  120,  120,  120,  123,
3250       123,  123,  115, 1583,  766,  116,  501,  517,  119,  545,
3251
3252       113,  113,  120,  501,  517,  123,  503,  503,  503,  516,
3253       516,  516,  501,  517,  632,  545,  113,  519,  519,  519,
3254      1588,  113,  114,  114,  114,  114,  114,  114,  114,  114,
3255       114,  114,  114,  114,  114,  114,  114,  554,  114,  114,
3256       114,  114,  114,  124,  124,  124,  125,  125,  125,  126,
3257       126,  126,  652,  127,  127,  127,  128,  128,  128,  124,
3258      1182, 1591,  125,  528, 1182,  126,  632,  114,  114,  127,
3259       528,  559,  128,  527,  527,  527,  530,  530,  530,  528,
3260       539,  539,  539,  114,  542,  542,  542,  559,  114,  117,
3261       117,  117,  117,  117,  117,  117,  117,  117,  117,  117,
3262
3263       117,  117,  117,  117,  652,  117,  117,  117,  117,  117,
3264       129,  129,  129,  130,  130,  130,  133,  133,  133,  759,
3265       134,  134,  134,  135,  135,  135,  129,  770, 1592,  130,
3266       540, 1593,  133,  759,  117,  117,  134,  540,  572,  135,
3267       552,  552,  552,  556,  556,  556,  540,  564,  564,  564,
3268       117,  770, 1598,  565,  572, 1049,  117,  118,  118,  118,
3269       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
3270       118,  118, 1049,  118,  118,  118,  118,  118,  136,  136,
3271       136,  137,  137,  137,  138,  138,  138, 1599,  139,  139,
3272       139,  140,  140,  140,  136, 1600, 1601,  137, 1602, 1522,
3273
3274       138,  565,  118,  118,  139,  565,  585,  140,  569,  569,
3275       569,  578,  578,  578,  582,  582,  582, 1603,  118, 1522,
3276      1604,  579,  585, 1609,  118,  121,  121,  121,  121,  121,
3277       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
3278      1612,  121,  121,  121,  121,  121,  143,  143,  143,  144,
3279       144,  144,  147,  147,  147,  653,  148,  148,  148,  590,
3280       590,  590,  143, 1616, 1618,  144,  596,  591,  147,  579,
3281       121,  121,  148,  121,  591,  121,  699,  579,  593,  593,
3282       593,  121,  596,  591,  601,  601,  601,  699,  121, 1619,
3283       699,  121,  122,  122,  122,  122,  122,  122,  122,  122,
3284
3285       122,  122,  122,  122,  122,  122,  122,  653,  122,  122,
3286       122,  122,  122,  151,  151,  151,  152,  152,  152,  153,
3287       153,  153, 1623,  154,  154,  154,  605,  605,  605,  151,
3288       608, 1626,  152, 1627, 1628,  153,  621,  122,  122,  154,
3289       122,  602,  122,  614,  614,  614,  608,  615,  122,  618,
3290       618,  618,  621, 1629, 1630,  122,  630, 1638,  122,  131,
3291       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3292       131,  131,  131,  131, 1640,  131,  131,  131,  131,  131,
3293       155,  155,  155,  156,  156,  156,  157,  157,  157,  602,
3294       158,  158,  158,  630, 1641,  615,  155,  602,  637,  156,
3295
3296      1214, 1647,  157,  615,  131,  131,  158,  131,  630,  131,
3297       629,  629,  629, 1214,  637,  131,  634,  634,  634,  641,
3298       641,  641,  644,  644,  644, 1648,  131,  132,  132,  132,
3299       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3300       132,  132, 1650,  132,  132,  132,  132,  132,  161,  161,
3301       161,  162,  162,  162,  165,  165,  165, 1651,  166,  166,
3302       166, 1652,  642,  647,  161, 1653, 1654,  162, 1655,  642,
3303       165,  658,  132,  132,  166,  132, 1656,  132,  642,  647,
3304       651,  651,  651,  132,  655,  655,  655,  658,  663,  663,
3305       663,  666,  666,  666,  132,  141,  141,  141,  141,  141,
3306
3307       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3308      1657,  141,  141,  141,  141,  141,  169,  169,  169,  170,
3309       170,  170,  173,  173,  173,  767,  174,  174,  174,  177,
3310       177,  177,  169,  669,  933,  170,  664,  675,  173,  767,
3311       141,  141,  174,  664,  675,  177,  674,  674,  674,  669,
3312       933, 1667,  664,  675, 1669, 1670,  141,  142,  142,  142,
3313       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3314       142,  142, 1675,  142,  142,  142,  142,  142,  178,  178,
3315       178,  179,  179,  179,  180,  180,  180,  769,  181,  181,
3316       181,  182,  182,  182,  178, 1677, 1679,  179,  705, 1680,
3317
3318       180,  769,  142,  142,  181,  705, 1682,  182,  676,  676,
3319       676,  705,  685,  685,  685,  948,  948,  948,  142,  145,
3320       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3321       145,  145,  145,  145, 1683,  145,  145,  145,  145,  145,
3322       183,  183,  183,  184,  184,  184,  187,  187,  187,  709,
3323       188,  188,  188,  189,  189,  189,  183, 1684, 1693,  184,
3324       709,  714,  187,  709,  145,  145,  188,  712,  714,  189,
3325       145,  685,  716, 1699,  714,  145, 1700, 1704,  712,  948,
3326      1706,  712, 1718,  716, 1719, 1724,  716,  145,  146,  146,
3327       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3328
3329       146,  146,  146, 1727,  146,  146,  146,  146,  146,  190,
3330       190,  190,  191,  191,  191,  192,  192,  192, 1728,  193,
3331       193,  193,  194,  194,  194,  190, 1729, 1731,  191,  717,
3332       718,  192, 1226,  146,  146,  193,  717,  718,  194,  146,
3333       758,  761,  717,  718,  146, 1226, 1740,  758,  761, 1197,
3334      1197, 1197, 1743,  758,  761, 1746,  146,  149,  149,  149,
3335       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3336       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3337       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3338       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3339
3340       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3341       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3342       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3343       149,  159,  159,  159,  159,  159,  159,  159,  159,  159,
3344       159,  159,  159,  159,  159,  159, 1747,  159,  159,  159,
3345       159,  159,  197,  197,  197,  198,  198,  198,  199,  199,
3346       199,  768,  200,  200,  200,  201,  201,  201,  197, 1749,
3347      1739,  198,  768, 1750,  199,  768,  159,  159,  200, 1751,
3348       159,  201,  936,  936,  936, 1752,  936,  159, 1753, 1754,
3349       159,  970,  970,  970,  159, 1739,  159,  159,  160,  160,
3350
3351       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
3352       160,  160,  160, 1755,  160,  160,  160,  160,  160,  202,
3353       202,  202,  203,  203,  203,  204,  204,  204, 1757,  207,
3354       207,  207,  208,  208,  208,  202, 1758, 1760,  203, 1761,
3355      1763,  204, 1069,  160,  160,  207, 1765,  160,  208,  982,
3356       982,  982, 1069,  982,  160,  970,  982,  160, 1766, 1069,
3357      1768,  160, 1770,  160,  160,  163,  163,  163,  163,  163,
3358       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3359      1772,  163,  163,  163,  163,  163,  211,  211,  211,  212,
3360       212,  212,  213,  213,  213, 1773,  214,  214,  214,  726,
3361
3362       726,  726,  211, 1774, 1280,  212, 1775, 1776,  213, 1778,
3363       163,  163,  214,  163,  163,  163,  726, 1280,  990,  990,
3364       990,  163,  990, 1787,  163,  990, 1788, 1790,  163, 1794,
3365      1798,  163,  164,  164,  164,  164,  164,  164,  164,  164,
3366       164,  164,  164,  164,  164,  164,  164, 1800,  164,  164,
3367       164,  164,  164,  215,  215,  215,  216,  216,  216,  217,
3368       217,  217, 1807,  218,  218,  218,  734,  734,  734,  215,
3369      1808, 1809,  216, 1810, 1812,  217, 1816,  164,  164,  218,
3370       164,  164,  164,  734, 1817, 1005, 1005, 1005,  164, 1005,
3371      1818,  164, 1005, 1821, 1828,  164, 1832, 1839,  164,  167,
3372
3373       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
3374       167,  167,  167,  167, 1840,  167,  167,  167,  167,  167,
3375       221,  221,  221,  222,  222,  222,  223,  223,  223, 1849,
3376       224,  224,  224,  750,  750,  750,  221, 1852, 1866,  222,
3377      1870, 1874,  223, 1875,  167,  167,  224, 1879, 1880,  167,
3378       750, 1205, 1205, 1205, 1881,  167,  168,  168,  168,  168,
3379       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
3380       168, 1882,  168,  168,  168,  168,  168,  225,  225,  225,
3381       226,  226,  226,  227,  227,  227, 1884,  228,  228,  228,
3382       774,  774,  774,  225, 1885, 1893,  226, 1897, 1900,  227,
3383
3384      1902,  168,  168,  228, 1904, 1905,  168,  774, 1221, 1221,
3385      1221, 1907,  168,  171,  171,  171,  171,  171,  171,  171,
3386       171,  171,  171,  171,  171,  171,  171,  171, 1908,  171,
3387       171,  171,  171,  171,  231,  231,  231,  232,  232,  232,
3388       233,  233,  233, 1909,  234,  234,  234,  235,  235,  235,
3389       231, 1912, 1914,  232, 1916, 1921,  233, 1927,  171,  171,
3390       234, 1931,  171,  235, 1009, 1009, 1009, 1932, 1933,  171,
3391      1935, 1946,  171,  172,  172,  172,  172,  172,  172,  172,
3392       172,  172,  172,  172,  172,  172,  172,  172, 1946,  172,
3393       172,  172,  172,  172,  236,  236,  236,  237,  237,  237,
3394
3395       238,  238,  238, 1950,  241,  241,  241,  242,  242,  242,
3396       236, 1953, 1954,  237, 1955, 1948,  238, 1957,  172,  172,
3397       241, 1947,  172,  242, 1018, 1018, 1018, 1958, 1009,  172,
3398      1960, 1961,  172,  175,  175,  175,  175,  175,  175,  175,
3399       175,  175,  175,  175,  175,  175,  175,  175, 1948,  175,
3400       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3401       247,  247,  247, 1947,  248,  248,  248,  249,  249,  249,
3402       245, 1956, 1962,  246, 1963, 1965,  247, 1966,  175,  175,
3403       248, 1967,  175,  249, 1277, 1277, 1277, 1956, 1018,  175,
3404      1971, 1973,  175, 1538, 1538, 1538, 1539, 1539, 1539,  175,
3405
3406       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3407       176,  176,  176,  176,  176, 1976,  176,  176,  176,  176,
3408       176,  250,  250,  250,  251,  251,  251,  252,  252,  252,
3409      1977,  255,  255,  255,  256,  256,  256,  250, 1978, 1979,
3410       251, 1981, 1539,  252,  368,  176,  176,  255, 1983,  176,
3411       256, 1025, 1025, 1025,  368, 1025,  176, 1984, 1025,  176,
3412      1541, 1541, 1541, 1545, 1545, 1545,  176,  185,  185,  185,
3413       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3414       185,  185,  368,  185,  185,  185,  185,  185,  259,  259,
3415       259,  260,  260,  260, 1986, 1988,  368,  793,  793,  793,
3416
3417       368,  946,  946,  946,  259, 1991, 1541,  260, 1992, 1994,
3418       302, 1995,  185,  185,  793,  803,  803,  803,  185,  946,
3419       302, 1996, 1043, 1043, 1043, 1998, 1043, 2004,  374, 1043,
3420      2005, 2007,  803,  185,  186,  186,  186,  186,  186,  186,
3421       186,  186,  186,  186,  186,  186,  186,  186,  186,  302,
3422       186,  186,  186,  186,  186,  302,  374,  813,  813,  813,
3423      2010, 2018,  302, 1548, 1548, 1548,  302,  814,  814,  814,
3424      1993, 2019,  374, 2024,  813,  820,  820,  820, 1993,  186,
3425       186,  822,  822,  822,  814,  186, 1054, 1054, 1054, 1997,
3426      1054, 2025,  820, 1054, 1558, 1558, 1558, 1997,  822, 2032,
3427
3428       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3429       195,  195,  195,  195,  195,  195, 2033,  195,  195,  195,
3430       195,  195,  837,  837,  837,  838,  838,  838,  850,  850,
3431       850,  858,  858,  858,  863,  863,  863, 2006, 2011,  837,
3432      2034, 2038,  838, 2012, 2046,  850,  195,  195,  858, 2052,
3433      2053,  863,  195, 2006, 2011,  195, 1063, 1063, 1063, 2012,
3434      1063, 2054, 2061, 1063, 1594, 1594, 1594,  195,  196,  196,
3435       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3436       196,  196,  196, 2062,  196,  196,  196,  196,  196,  869,
3437       869,  869,  891,  891,  891,  919,  919,  919,  923,  923,
3438
3439       923,  928,  928,  928, 2063, 2066,  869, 2067, 2078,  891,
3440      2084, 2088,  919,  196,  196,  923, 2091, 2093,  928,  196,
3441      2096, 2098,  196, 1065, 1065, 1065, 2100, 1065, 2101, 2102,
3442      1065, 1597, 1597, 1597,  196,  205,  205,  205,  205,  205,
3443       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3444      2105,  205,  205,  205,  205,  205,  947,  947,  947,  978,
3445       978,  978, 2107, 2112,  979,  979,  979,  981,  981,  981,
3446       985,  985,  985, 1802,  947, 2114, 2122,  978, 2123, 1802,
3447       205,  205,  979, 1802,  981, 2124,  205, 1802,  985, 2125,
3448      2127,  205,  206,  206,  206,  206,  206,  206,  206,  206,
3449
3450       206,  206,  206,  206,  206,  206,  206, 2142,  206,  206,
3451       206,  206,  206, 2142,  947,  986,  986,  986,  989,  989,
3452       989,  997,  997,  997,  979,  991,  991,  991,  993,  993,
3453       993, 2145, 2150,  986, 2151,  989, 2152,  206,  206,  997,
3454      2153, 2144,  991,  206, 2157,  993, 2159, 2160,  206,  209,
3455       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3456       209,  209,  209,  209, 2161,  209,  209,  209,  209,  209,
3457      1002, 1002, 1002, 1003, 1003, 1003, 1004, 1004, 1004,  986,
3458      1007, 1007, 1007, 2143,  998,  998,  998, 2144, 1002, 2162,
3459      2167, 1003, 2174, 1004,  209,  209, 2176, 2177, 1007, 2180,
3460
3461       209, 2183,  998, 1071, 1071, 1071, 2187, 1071, 2188, 2189,
3462      1071, 1595, 1595, 1595, 2143,  209,  210,  210,  210,  210,
3463       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3464       210,  998,  210,  210,  210,  210,  210, 1003, 1008, 1008,
3465      1008, 1024, 1024, 1024, 2190, 1028, 1028, 1028, 1029, 1029,
3466      1029, 1033, 1033, 1033, 1803, 2191, 1008, 1595, 1024, 2192,
3467      1803,  210,  210, 1028, 1803, 2193, 1029,  210, 1803, 1033,
3468      1074, 1074, 1074, 2194, 1074, 1008, 2195, 1074, 1596, 1596,
3469      1596, 2196,  210,  219,  219,  219,  219,  219,  219,  219,
3470       219,  219,  219,  219,  219,  219,  219,  219, 2201,  219,
3471
3472       219,  219,  219,  219, 1034, 1034, 1034, 1037, 1037, 1037,
3473      1042, 1042, 1042, 2202, 1029, 1038, 1038, 1038, 1047, 1047,
3474      1047, 2203, 1034, 2204, 1596, 1037, 2209, 1042,  219,  219,
3475      1048, 1048, 1048, 1038,  219, 2211, 1047,  219, 1089, 1089,
3476      1089, 2212, 1089, 2219, 2220, 1089, 2226, 2227, 1048,  219,
3477       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3478       220,  220,  220,  220,  220, 1034,  220,  220,  220,  220,
3479       220, 1053, 1053, 1053, 1056, 1056, 1056, 1062, 1062, 1062,
3480      1038, 1057, 1057, 1057, 1059, 1059, 1059, 2233, 1053, 2224,
3481      2225, 1048, 1056, 2239, 1062,  220,  220, 2224, 2225, 1057,
3482
3483      2243,  220, 1059, 2244,  220, 1091, 1091, 1091, 2245, 1091,
3484      2251, 2252, 1091, 1695, 1695, 1695,  220,  229,  229,  229,
3485       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3486       229,  229, 2253,  229,  229,  229,  229,  229, 1064, 1064,
3487      1064, 2257, 2269, 1060, 1060, 1060, 2273, 1057, 1066, 1066,
3488      1066, 1067, 1067, 1067, 2274, 1064, 1070, 1070, 1070, 1695,
3489      2275, 1060,  229,  229, 2277, 2281, 1066, 2284, 2285, 1067,
3490       229, 2288,  229, 1070, 2289,  229, 1756, 1756, 1756,  229,
3491      1759, 1759, 1759,  229,  230,  230,  230,  230,  230,  230,
3492       230,  230,  230,  230,  230,  230,  230,  230,  230, 2292,
3493
3494       230,  230,  230,  230,  230, 1060, 1073, 1073, 1073, 1075,
3495      1075, 1075, 1067, 1086, 1086, 1086, 1087, 1087, 1087, 1088,
3496      1088, 1088, 2299, 1073, 2286, 2287, 1075, 2301, 2316,  230,
3497       230, 1086, 2286, 2287, 1087, 2331, 1088,  230, 2332,  230,
3498      2335, 2321,  230, 1762, 1762, 1762,  230, 1764, 1764, 1764,
3499       230,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3500       239,  239,  239,  239,  239,  239, 2338,  239,  239,  239,
3501       239,  239, 2322, 2343, 1087, 1090, 1090, 1090, 1092, 1092,
3502      1092, 1767, 1767, 1767, 2321, 1093, 1093, 1093, 1095, 1095,
3503      1095, 2344, 1090, 2349, 2351, 1092,  239,  239, 1094, 1094,
3504
3505      1094, 2363, 1093, 2364, 2365, 1095, 1103, 1103, 1103, 2366,
3506      1103, 2367, 2368, 1103, 2369, 1094, 1769, 1769, 1769, 2322,
3507       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3508       240,  240,  240,  240,  240,  240, 1093,  240,  240,  240,
3509       240,  240, 2370, 1095, 1097, 1097, 1097, 1102, 1102, 1102,
3510      1094, 1777, 1777, 1777, 1096, 1096, 1096, 1104, 1104, 1104,
3511      2371, 2372, 1097, 2379, 1102, 2380,  240,  240, 1098, 1098,
3512      1098, 1096, 2381, 2383, 1104, 1111, 1111, 1111, 2387, 1111,
3513      1769, 2389, 1111, 1771, 1771, 1771, 1098, 1811, 1811, 1811,
3514       240,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3515
3516       243,  243,  243,  243,  243,  243, 1096,  243,  243,  243,
3517       243,  243, 1107, 1107, 1107, 1098, 1110, 1110, 1110, 2392,
3518      1108, 1108, 1108, 1112, 1112, 1112, 1113, 1113, 1113, 1771,
3519      1107, 2393, 2394, 1110, 2395, 2396,  243,  243, 1108, 2397,
3520      2398, 1112, 2403, 2406, 1113, 2407, 2408,  243,  244,  244,
3521       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3522       244,  244,  244, 2414,  244,  244,  244,  244,  244, 2415,
3523      2409, 1108, 1115, 1115, 1115, 1116, 1116, 1116, 2416, 1116,
3524      2409, 2424, 1116, 1118, 1118, 1118, 2425, 1113, 2426, 1115,
3525      1813, 1813, 1813,  244,  244, 1122, 1122, 1122, 2427, 1122,
3526
3527      2441, 1118, 1122, 2442,  244,  253,  253,  253,  253,  253,
3528       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
3529      2443,  253,  253,  253,  253,  253, 1119, 1119, 1119, 1121,
3530      1121, 1121, 2444, 2446, 1126, 1126, 1126, 1128, 1128, 1128,
3531      2448, 1127, 1127, 1127, 1119, 2472, 1121, 1129, 1129, 1129,
3532       253,  253, 1126, 2473, 1128, 1130, 1130, 1130, 2466, 1127,
3533      2476,  253, 2479, 2480, 1129, 2481, 2467, 1779, 1779, 1779,
3534      2484, 2487, 1130, 1119,  253,  254,  254,  254,  254,  254,
3535       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
3536      2466,  254,  254,  254,  254,  254, 1127, 1131, 1131, 1131,
3537
3538      1134, 1134, 1134, 2467, 2488, 1132, 1132, 1132, 2489, 2490,
3539      1135, 1135, 1135, 1779, 1130, 1131, 2491, 1134, 2492, 2493,
3540       254,  254, 2494, 1132, 1136, 1136, 1136, 1135, 1142, 1142,
3541      1142,  254, 1142, 2495, 2496, 1142, 1166, 1166, 1166, 2497,
3542      1166, 1136, 2499, 1166,  254,  257,  257,  257,  257,  257,
3543       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
3544      1135,  257,  257,  257,  257,  257, 1132, 1138, 1138, 1138,
3545      2500, 1137, 1137, 1137, 2502, 1135, 1139, 1139, 1139, 1141,
3546      1141, 1141, 1143, 1143, 1143, 1138, 2501, 2503, 1137, 2504,
3547       257,  257, 2505, 2507, 1139, 2501, 1141, 1814, 1814, 1814,
3548
3549      1143,  257, 1170, 1170, 1170, 2508, 1170, 2510, 2511, 1170,
3550      1851, 1851, 1851, 1139,  257,  258,  258,  258,  258,  258,
3551       258,  258,  258,  258,  258,  258,  258,  258,  258,  258,
3552      1137,  258,  258,  258,  258,  258, 1144, 1144, 1144, 1145,
3553      1145, 1145, 1146, 1146, 1146, 1147, 1147, 1147, 1148, 1148,
3554      1148, 1149, 1149, 1149, 1144, 2506, 1145, 2513, 2514, 1146,
3555       258,  258, 2516, 1147, 2506, 2520, 1148, 2521, 1149, 2522,
3556      2524,  258, 2528, 1150, 1150, 1150, 1151, 1151, 1151, 1152,
3557      1152, 1152, 2532, 2533,  258,  300, 1153, 1153, 1153, 2534,
3558      1150, 1144,  300, 1151, 1159, 1159, 1159, 1152, 1160, 1160,
3559
3560      1160,  300,  300, 2535, 1153, 2536, 1163, 1163, 1163, 1164,
3561      1164, 1164, 1159, 1175, 1175, 1175, 1160, 1175, 2539, 1148,
3562      1175, 2541, 2549, 1150, 1163, 2550, 2543, 1164, 2552,  300,
3563       300,  300, 1959, 1959, 1959,  300,  300,  300, 1150, 2543,
3564       300,  300, 2558, 2559,  300, 2560,  300,  300,  300,  365,
3565      1165, 1165, 1165, 1167, 1167, 1167,  365, 1153, 1168, 1168,
3566      1168, 2544, 1160, 2561, 2563,  365,  365, 1165, 1169, 1169,
3567      1169, 1167, 2566, 1164, 2544, 2568, 1168, 2593, 1172, 1172,
3568      1172, 1174, 1174, 1174, 2594, 1169, 2590, 2597, 1173, 1173,
3569      1173, 2598, 2588,  365,  365,  365, 1172, 2599, 1174,  365,
3570
3571       365,  365, 2589, 2604,  365,  365, 1173, 2605,  365, 2606,
3572       365,  365,  365, 1177, 1177, 1177, 1178, 1178, 1178, 1168,
3573      1193, 1193, 1193, 1194, 1194, 1194, 1196, 1196, 1196, 2590,
3574      2602, 1177, 2588, 2607, 1178, 1229, 1229, 1229, 1193, 2589,
3575      2602, 1194, 2608, 2602, 1196, 1228, 1228, 1228, 1230, 1230,
3576      1230, 2609, 1173, 1229, 1232, 1232, 1232, 1233, 1233, 1233,
3577      2610, 2611, 1228, 1234, 1234, 1234, 1230, 1234, 2612, 2613,
3578      1234, 2614, 1232, 1196, 1233, 2616, 2617, 1178, 1237, 1237,
3579      1237, 1239, 1239, 1239, 1240, 1240, 1240, 1242, 1242, 1242,
3580      1244, 1244, 1244, 2618, 1244, 1237, 2619, 1244, 2620, 1239,
3581
3582      2621, 2622, 1240, 1232, 2603, 1242, 1247, 1247, 1247, 1248,
3583      1248, 1248, 2623, 1248, 2603, 2624, 1248, 2603, 1249, 1249,
3584      1249, 2625, 2626, 1247, 1250, 1250, 1250, 2627, 2628, 1251,
3585      1251, 1251, 2629, 1251, 1242, 1249, 1251, 2631, 2632, 1237,
3586      2640, 1250, 1253, 1253, 1253, 1255, 1255, 1255, 1256, 1256,
3587      1256, 1258, 1258, 1258, 1260, 1260, 1260, 2646, 2648, 1253,
3588      1262, 1262, 1262, 1255, 2649, 2650, 1256, 2652, 2656, 1258,
3589      2659, 1260, 1263, 1263, 1263, 1265, 1265, 1265, 1262, 1266,
3590      1266, 1266, 2660, 1266, 2661, 2662, 1266, 1270, 1270, 1270,
3591      1263, 2663, 2664, 1265, 1271, 1271, 1271, 1273, 1273, 1273,
3592
3593      1288, 1288, 1288, 2677, 1288, 1270, 2678, 1288, 1292, 1292,
3594      1292, 1258, 1271, 2679, 2706, 1273, 1293, 1293, 1293, 1294,
3595      1294, 1294, 1265, 2709, 2703, 1292, 1296, 1296, 1296, 1298,
3596      1298, 1298, 2710, 2711, 1293, 2714, 2715, 1294, 1299, 1299,
3597      1299, 1300, 1300, 1300, 1296, 2717, 1298, 1301, 1301, 1301,
3598      1303, 1303, 1303, 2703, 2716, 1299, 1304, 1304, 1304, 1300,
3599      1305, 1305, 1305, 2718, 2720, 1301, 2721, 2716, 1303, 1312,
3600      1312, 1312, 2704, 1304, 1306, 1306, 1306, 1305, 1307, 1307,
3601      1307, 1309, 1309, 1309, 2722, 1299, 1312, 1296, 1305, 1319,
3602      1319, 1319, 1306, 1313, 1313, 1313, 1307, 1313, 2705, 1309,
3603
3604      1313, 1320, 1320, 1320, 1322, 1322, 1322, 1319, 1327, 1327,
3605      1327, 2723, 1327, 2724, 2704, 1327, 2726, 1303, 2727, 1320,
3606      2728, 2729, 1322, 1331, 1331, 1331, 1332, 1332, 1332, 2687,
3607      1334, 1334, 1334, 1335, 1335, 1335, 1336, 1336, 1336, 2687,
3608      2705, 1331, 2732, 2733, 1332, 2687, 2734, 1309, 1334, 2719,
3609      1335, 1340, 1340, 1340, 1336, 1337, 1337, 1337, 1339, 1339,
3610      1339, 2735, 2719, 1341, 1341, 1341, 2736, 1341, 1340, 1322,
3611      1341, 2737, 2738, 1337, 2739, 2740, 1339, 1344, 1344, 1344,
3612      2741, 1344, 2742, 2743, 1344, 1347, 1347, 1347, 1348, 1348,
3613      1348, 1334, 1350, 1350, 1350, 1355, 1355, 1355, 2744, 1355,
3614
3615      2746, 2759, 1355, 1347, 2760, 2765, 1348, 1358, 1358, 1358,
3616      1350, 1359, 1359, 1359, 2769, 1359, 2770, 2771, 1359, 1362,
3617      1362, 1362, 2772, 2773, 1358, 1339, 1363, 1363, 1363, 2774,
3618      1363, 2782, 2784, 1363, 2792, 2793, 1362, 1374, 1374, 1374,
3619      1375, 1375, 1375, 1377, 1377, 1377, 1378, 1378, 1378, 2688,
3620      1378, 2794, 2795, 1378, 2796, 1374, 2797, 1350, 1375, 2688,
3621      2810, 1377, 1381, 1381, 1381, 2688, 1381, 2813, 2814, 1381,
3622      1384, 1384, 1384, 1385, 1385, 1385, 2818, 1385, 2819, 2820,
3623      1385, 1390, 1390, 1390, 1391, 1391, 1391, 1384, 1393, 1393,
3624      1393, 1398, 1398, 1398, 2821, 1398, 2822, 2823, 1398, 1390,
3625
3626      2801, 2824, 1391, 1401, 1401, 1401, 1393, 1402, 1402, 1402,
3627      1377, 1402, 2807, 2801, 1402, 1405, 1405, 1405, 2825, 2802,
3628      1401, 1406, 1406, 1406, 1408, 1408, 1408, 1410, 1410, 1410,
3629      2808, 1410, 2802, 1405, 1410, 2827, 1393, 2828, 2829, 1406,
3630      2830, 2831, 1408, 1413, 1413, 1413, 1414, 1414, 1414, 1416,
3631      1416, 1416, 1418, 1418, 1418, 2832, 1418, 2833, 2834, 1418,
3632      2807, 1413, 2836, 2837, 1414, 2808, 2838, 1416, 1422, 1422,
3633      1422, 1423, 1423, 1423, 2839, 1408, 1425, 1425, 1425, 2840,
3634      1427, 1427, 1427, 2841, 1427, 2842, 1422, 1427, 2843, 1423,
3635      1433, 1433, 1433, 2844, 1425, 1434, 1434, 1434, 2845, 1436,
3636
3637      1436, 1436, 1437, 1437, 1437, 1438, 1438, 1438, 1433, 1438,
3638      2846, 2847, 1438, 1434, 2848, 2856, 1416, 1436, 2862, 1437,
3639      1439, 1439, 1439, 2863, 2871, 1425, 1440, 1440, 1440, 2872,
3640      1440, 2873, 2874, 1440, 1442, 1442, 1442, 1439, 1443, 1443,
3641      1443, 2875, 1445, 1445, 1445, 1447, 1447, 1447, 2876, 1451,
3642      1451, 1451, 1442, 1964, 1964, 1964, 1443, 2877, 2884, 1436,
3643      1445, 2887, 1447, 1448, 1448, 1448, 1451, 1448, 2894, 2895,
3644      1448, 1452, 1452, 1452, 2896, 1452, 2897, 2898, 1452, 1454,
3645      1454, 1454, 1455, 1455, 1455, 1457, 1457, 1457, 1459, 1459,
3646      1459, 2889, 1459, 2899, 2902, 1459, 2903, 1454, 2890, 2904,
3647
3648      1455, 2889, 2905, 1457, 1462, 1462, 1462, 2916, 2890, 1445,
3649      1463, 1463, 1463, 1465, 1465, 1465, 1466, 1466, 1466, 1467,
3650      1467, 1467, 1462, 1467, 2917, 2918, 1467, 2919, 1463, 2920,
3651      2892, 1465, 2893, 1466, 1468, 1468, 1468, 1469, 1469, 1469,
3652      2892, 1469, 2893, 2921, 1469, 1470, 1470, 1470, 2922, 1457,
3653      2923, 1468, 1471, 1471, 1471, 2926, 1473, 1473, 1473, 1474,
3654      1474, 1474, 2927, 1470, 1475, 1475, 1475, 2929, 1475, 2930,
3655      1471, 1475, 2931, 1465, 1473, 2933, 1474, 1478, 1478, 1478,
3656      1479, 1479, 1479, 2908, 1479, 2935, 2936, 1479, 1480, 1480,
3657      1480, 1481, 1481, 1481, 1478, 1483, 1483, 1483, 1485, 1485,
3658
3659      1485, 1489, 1489, 1489, 2937, 2940, 1480, 2941, 2942, 1481,
3660      1490, 1490, 1490, 1483, 2943, 1485, 2946, 2908, 1473, 1489,
3661      1492, 1492, 1492, 1495, 1495, 1495, 2956, 2960, 1490, 1496,
3662      1496, 1496, 1498, 1498, 1498, 1499, 1499, 1499, 1492, 1499,
3663      2961, 1495, 1499, 1502, 1502, 1502, 2969, 1496, 2970, 2971,
3664      1498, 1503, 1503, 1503, 1505, 1505, 1505, 1483, 1506, 1506,
3665      1506, 1502, 1506, 2972, 2973, 1506, 1510, 1510, 1510, 1503,
3666      2974, 2980, 1505, 1511, 1511, 1511, 1513, 1513, 1513, 2981,
3667      2982, 1492, 2983, 2984, 1510, 1498, 1514, 1514, 1514, 2985,
3668      1514, 1511, 2986, 1514, 1513, 1518, 1518, 1518, 1519, 1519,
3669
3670      1519, 1521, 1521, 1521, 1523, 1523, 1523, 1530, 1530, 1530,
3671      1561, 1561, 1561, 1518, 1505, 2987, 1519, 2988, 2989, 1521,
3672      2991, 2992, 1523, 1523, 2997, 1530, 2998, 1561, 1562, 1562,
3673      1562, 2999, 1562, 3000, 3001, 1562, 3010, 1513, 1563, 1563,
3674      1563, 1564, 1564, 1564, 3011, 1565, 1565, 1565, 3012, 1565,
3675      3013, 1521, 1565, 1568, 1568, 1568, 1563, 3014, 1564, 1570,
3676      1570, 1570, 3015, 1570, 3016, 3017, 1570, 1573, 1573, 1573,
3677      3021, 1568, 3022, 1530, 1574, 1574, 1574, 3001, 1574, 3023,
3678      3024, 1574, 3025, 3026, 1573, 1575, 1575, 1575, 3028, 1575,
3679      3029, 3031, 1575, 1579, 1579, 1579, 1563, 1580, 1580, 1580,
3680
3681      3032, 1580, 1568, 3033, 1580, 1582, 1582, 1582, 3035, 3039,
3682      1579, 1584, 1584, 1584, 1585, 1585, 1585, 3040, 1585, 3041,
3683      3046, 1585, 3048, 1582, 1586, 1586, 1586, 3049, 1584, 1587,
3684      1587, 1587, 1589, 1589, 1589, 1605, 1605, 1605, 1968, 1968,
3685      1968, 1586, 1606, 1606, 1606, 3054, 3055, 1587, 3056, 3057,
3686      1589, 3058, 1605, 3059, 3060, 1582, 1607, 1607, 1607, 1606,
3687      1607, 3061, 3062, 1607, 1608, 1608, 1608, 1610, 1610, 1610,
3688      1611, 1611, 1611, 3063, 1611, 3064, 3065, 1611, 1587, 1613,
3689      1613, 1613, 1608, 3067, 1610, 1614, 1614, 1614, 1615, 1615,
3690      1615, 3068, 1615, 3069, 3070, 1615, 3077, 1613, 1617, 1617,
3691
3692      1617, 3073, 1614, 1620, 1620, 1620, 1621, 1621, 1621, 3080,
3693      1621, 3081, 3084, 1621, 3071, 3073, 1617, 1622, 1622, 1622,
3694      1620, 1624, 1624, 1624, 1625, 1625, 1625, 3086, 1608, 1631,
3695      1631, 1631, 3074, 3087, 1622, 1632, 1632, 1632, 1624, 1613,
3696      3089, 3090, 1625, 3074, 1633, 1633, 1633, 1631, 1633, 3094,
3697      3095, 1633, 1632, 1634, 1634, 1634, 1635, 1635, 1635, 1617,
3698      3071, 1636, 1636, 1636, 3096, 1636, 3097, 1624, 1636, 3098,
3699      3099, 1634, 3100, 1635, 1637, 1637, 1637, 1639, 1639, 1639,
3700      1642, 1642, 1642, 3101, 1643, 1643, 1643, 3109, 1643, 3103,
3701      1625, 1643, 1637, 1631, 1639, 3117, 3093, 1642, 1644, 1644,
3702
3703      1644, 3103, 1644, 3096, 3119, 1644, 1649, 1649, 1649, 1658,
3704      1658, 1658, 1659, 1659, 1659, 3121, 1659, 3123, 3131, 1659,
3705      1662, 1662, 1662, 1649, 1663, 1663, 1663, 1658, 1664, 1664,
3706      1664, 1665, 1665, 1665, 1666, 1666, 1666, 1662, 3093, 3133,
3707      1637, 1663, 1668, 1668, 1668, 1664, 3104, 3137, 1665, 1671,
3708      1671, 1671, 1666, 1671, 3136, 3136, 1671, 3139, 3104, 1668,
3709      1674, 1674, 1674, 1676, 1676, 1676, 1678, 1678, 1678, 1681,
3710      1681, 1681, 3135, 3114, 1658, 1664, 3115, 1674, 1685, 1685,
3711      1685, 1676, 3138, 3141, 1678, 3114, 3135, 1681, 3115, 1666,
3712      1686, 1686, 1686, 3138, 1663, 1685, 1687, 1687, 1687, 3142,
3713
3714      1687, 1665, 3143, 1687, 3134, 1690, 1690, 1690, 1686, 1690,
3715      3144, 3150, 1690, 1694, 1694, 1694, 1696, 1696, 1696, 3154,
3716      1696, 3151, 3161, 1696, 1685, 3160, 1681, 1676, 1705, 1705,
3717      1705, 1694, 1678, 1701, 1701, 1701, 3155, 1701, 3163, 3151,
3718      1701, 1707, 1707, 1707, 3160, 3134, 1705, 1686, 1708, 1708,
3719      1708, 3155, 1708, 3162, 3168, 1708, 1711, 1711, 1711, 1707,
3720      1711, 3169, 3170, 1711, 1714, 1714, 1714, 1715, 1715, 1715,
3721      3171, 1715, 3162, 3168, 1715, 3176, 1720, 1720, 1720, 1694,
3722      1720, 3170, 1714, 1720, 1723, 1723, 1723, 3177, 3179, 1705,
3723      1725, 1725, 1725, 1726, 1726, 1726, 3180, 1726, 1707, 3181,
3724
3725      1726, 3183, 1723, 1730, 1730, 1730, 3184, 1725, 1732, 1732,
3726      1732, 1714, 1733, 1733, 1733, 1734, 1734, 1734, 1735, 1735,
3727      1735, 1730, 1736, 1736, 1736, 1732, 1737, 1737, 1737, 3185,
3728      1733, 1723, 3186, 1734, 3187, 1735, 1738, 1738, 1738, 3189,
3729      1736, 3190, 3192, 1737, 1741, 1741, 1741, 1748, 1748, 1748,
3730      3199, 3200, 1730, 3201, 1738, 3202, 1780, 1780, 1780, 3203,
3731      1780, 3204, 1741, 1780, 3207, 1748, 3208, 1734, 1783, 1783,
3732      1783, 1784, 1784, 1784, 3209, 1784, 3210, 3211, 1784, 1733,
3733      1789, 1789, 1789, 3212, 1736, 3213, 1783, 1738, 3214, 1791,
3734      1791, 1791, 3216, 1791, 3218, 1741, 1791, 3220, 1789, 1748,
3735
3736      1795, 1795, 1795, 3221, 1795, 3222, 3223, 1795, 1799, 1799,
3737      1799, 3224, 1741, 1801, 1801, 1801, 3234, 1801, 3232, 3235,
3738      1801, 1804, 1804, 1804, 3236, 3233, 1799, 1806, 1806, 1806,
3739      3232, 1789, 1805, 1805, 1805, 1783, 1805, 3233, 1804, 1805,
3740      1815, 1815, 1815, 3237, 3238, 1806, 1819, 1819, 1819, 1820,
3741      1820, 1820, 3239, 1822, 1822, 1822, 1823, 1823, 1823, 3243,
3742      1823, 3244, 3245, 1823, 1824, 1824, 1824, 3246, 1824, 1799,
3743      1822, 1824, 1827, 1827, 1827, 1829, 1829, 1829, 1806, 1829,
3744      3247, 3248, 1829, 1833, 1833, 1833, 3249, 1834, 1834, 1834,
3745      1827, 1834, 3250, 3251, 1834, 1837, 1837, 1837, 1838, 1838,
3746
3747      1838, 1833, 3253, 3254, 1815, 3255, 3256, 1841, 1841, 1841,
3748      1819, 1841, 1837, 1820, 1841, 3257, 1838, 3258, 3251, 1827,
3749      1844, 1844, 1844, 1845, 1845, 1845, 3259, 1845, 3260, 3261,
3750      1845, 1846, 1846, 1846, 1847, 1847, 1847, 1844, 1848, 1848,
3751      1848, 3262, 1848, 3263, 3264, 1848, 3265, 3266, 1846, 1833,
3752      3267, 1847, 1850, 1850, 1850, 1853, 1853, 1853, 1854, 1854,
3753      1854, 3268, 1838, 1855, 1855, 1855, 1856, 1856, 1856, 3269,
3754      1850, 3270, 1853, 3271, 3272, 1854, 1860, 1860, 1860, 3273,
3755      1855, 1857, 1857, 1857, 1856, 1857, 3274, 3277, 1857, 1862,
3756      1862, 1862, 3280, 1862, 1860, 3281, 1862, 1865, 1865, 1865,
3757
3758      1867, 1867, 1867, 1868, 1868, 1868, 3277, 1868, 3282, 3283,
3759      1868, 3284, 3285, 1856, 3286, 1865, 3287, 1867, 1869, 1869,
3760      1869, 1871, 1871, 1871, 1854, 1871, 3288, 3289, 1871, 1876,
3761      1876, 1876, 1877, 1877, 1877, 1869, 1877, 3290, 3291, 1877,
3762      1878, 1878, 1878, 1865, 3292, 3293, 1876, 1883, 1883, 1883,
3763      1886, 1886, 1886, 1887, 1887, 1887, 3294, 1878, 1888, 1888,
3764      1888, 3295, 1888, 3296, 1883, 1888, 3297, 3298, 1886, 3299,
3765      1887, 1889, 1889, 1889, 1890, 1890, 1890, 1891, 1891, 1891,
3766      1892, 1892, 1892, 1894, 1894, 1894, 3301, 3302, 1889, 3300,
3767      3303, 1890, 3304, 3305, 1891, 1895, 1895, 1895, 1892, 1895,
3768
3769      1894, 3306, 1895, 1896, 1896, 1896, 1898, 1898, 1898, 3300,
3770      1899, 1899, 1899, 3307, 1899, 3308, 1886, 1899, 3309, 3310,
3771      1896, 3311, 3312, 1898, 1901, 1901, 1901, 1903, 1903, 1903,
3772      3313, 3314, 1890, 1906, 1906, 1906, 1910, 1910, 1910, 3315,
3773      1892, 3316, 1901, 3317, 3318, 1903, 3319, 3320, 1911, 1911,
3774      1911, 1906, 1911, 1910, 3326, 1911, 1913, 1913, 1913, 1915,
3775      1915, 1915, 1917, 1917, 1917, 1918, 1918, 1918, 1919, 1919,
3776      1919, 1920, 1920, 1920, 1913, 3327, 3328, 1915, 1903, 1917,
3777      3329, 1906, 1918, 3330, 3331, 1919, 1923, 1923, 1923, 1920,
3778      1922, 1922, 1922, 3333, 1924, 1924, 1924, 1925, 1925, 1925,
3779
3780      1926, 1926, 1926, 3334, 1923, 1928, 1928, 1928, 1922, 1928,
3781      1915, 1924, 1928, 3321, 1925, 1934, 1934, 1934, 1926, 3321,
3782      1936, 1936, 1936, 1937, 1937, 1937, 3336, 1937, 3337, 3339,
3783      1937, 3340, 1919, 1934, 3343, 3344, 1922, 1936, 1920, 1938,
3784      1938, 1938, 1939, 1939, 1939, 1940, 1940, 1940, 1941, 1941,
3785      1941, 1923, 1941, 3345, 3346, 1941, 3348, 1938, 3350, 3352,
3786      1939, 3354, 1940, 3356, 3342, 1926, 1934, 1942, 1942, 1942,
3787      1943, 1943, 1943, 1944, 1944, 1944, 3357, 1944, 3342, 3358,
3788      1944, 1945, 1945, 1945, 3359, 1942, 3360, 1943, 1951, 1951,
3789      1951, 1952, 1952, 1952, 1969, 1969, 1969, 1939, 1938, 1945,
3790
3791      1970, 1970, 1970, 3361, 3362, 1951, 1972, 1972, 1972, 1952,
3792      1974, 1974, 1974, 1975, 1975, 1975, 1980, 1980, 1980, 1982,
3793      1982, 1982, 1985, 1985, 1985, 1987, 1987, 1987, 1989, 1989,
3794      1989, 1990, 1990, 1990, 1999, 1999, 1999, 1982, 1999, 1945,
3795      1985, 1999, 1987, 2002, 2002, 2002, 1989, 3363, 1990, 2003,
3796      2003, 2003, 1952, 2008, 2008, 2008, 2009, 2009, 2009, 3365,
3797      3367, 2002, 2013, 2013, 2013, 3369, 2003, 3370, 3371, 1982,
3798      2014, 2014, 2014, 3372, 2014, 1537, 3373, 2014, 3374, 2013,
3799      2017, 2017, 2017, 2020, 2020, 2020, 3397, 1989, 3464, 2002,
3800      2021, 2021, 2021, 2022, 2022, 2022, 3385, 2022, 2017, 3464,
3801
3802      2022, 2020, 2023, 2023, 2023, 1536, 3399, 2021, 2013, 2026,
3803      2026, 2026, 3373, 2026, 3374, 3386, 2026, 2029, 2029, 2029,
3804      2023, 2030, 2030, 2030, 3411, 2030, 3381, 3397, 2030, 2035,
3805      2035, 2035, 3382, 2017, 2029, 2031, 2031, 2031, 3398, 2031,
3806      3385, 3399, 2031, 2037, 2037, 2037, 3383, 2035, 3389, 2023,
3807      2039, 2039, 2039, 2040, 2040, 2040, 3389, 2040, 3411, 3386,
3808      2040, 2041, 2041, 2041, 2042, 2042, 2042, 2039, 2043, 2043,
3809      2043, 3384, 2043, 3387, 3381, 2043, 3419, 3387, 2041, 3398,
3810      3382, 2042, 2044, 2044, 2044, 2045, 2045, 2045, 2047, 2047,
3811      2047, 3390, 2047, 3391, 3383, 2047, 2050, 2050, 2050, 3390,
3812
3813      2044, 3391, 3392, 2045, 2051, 2051, 2051, 2041, 2051, 3419,
3814      3392, 2051, 3395, 2050, 2055, 2055, 2055, 3393, 2055, 3384,
3815      1535, 2055, 2058, 2058, 2058, 2059, 2059, 2059, 3394, 2059,
3816      3388, 3405, 2059, 1534, 3388, 2044, 2060, 2060, 2060, 2058,
3817      2064, 2064, 2064, 2045, 2065, 2065, 2065, 3401, 2065, 3395,
3818      3396, 2065, 3403, 2060, 2068, 2068, 2068, 2064, 2069, 2069,
3819      2069, 3400, 2069, 3405, 3393, 2069, 2072, 2072, 2072, 2073,
3820      2073, 2073, 2068, 2073, 3412, 3394, 2073, 2074, 2074, 2074,
3821      2075, 2075, 2075, 2072, 2076, 2076, 2076, 3396, 2076, 3403,
3822      3431, 2076, 3407, 3401, 2074, 1533, 3400, 2075, 2077, 2077,
3823
3824      2077, 3407, 2079, 2079, 2079, 2068, 2079, 1532, 3412, 2079,
3825      2082, 2082, 2082, 2083, 2083, 2083, 2077, 2083, 1531, 3431,
3826      2083, 2085, 2085, 2085, 3402, 2085, 3425, 2082, 2085, 2089,
3827      2089, 2089, 2092, 2092, 2092, 2094, 2094, 2094, 2095, 2095,
3828      2095, 2097, 2097, 2097, 2099, 2099, 2099, 2089, 2099, 2077,
3829      2092, 2099, 2094, 2103, 2103, 2103, 2095, 3404, 2097, 2106,
3830      2106, 2106, 2108, 2108, 2108, 2109, 2109, 2109, 3425, 2109,
3831      3402, 2103, 2109, 2110, 2110, 2110, 3413, 2106, 3409, 2108,
3832      3408, 2111, 2111, 2111, 3406, 2111, 3415, 2097, 2111, 3408,
3833      2110, 2113, 2113, 2113, 3404, 3410, 2092, 1529, 3417, 2095,
3834
3835      2115, 2115, 2115, 2116, 2116, 2116, 2117, 2117, 2117, 2113,
3836      2118, 2118, 2118, 3409, 2118, 3420, 3406, 2118, 2115, 3413,
3837      3418, 2116, 3426, 2117, 2119, 2119, 2119, 2120, 2120, 2120,
3838      3410, 2120, 3415, 3417, 2120, 2121, 2121, 2121, 2126, 2126,
3839      2126, 2119, 3414, 2128, 2128, 2128, 3416, 2128, 3420, 2115,
3840      2128, 1528, 1527, 2121, 3432, 3418, 2126, 2113, 2131, 2131,
3841      2131, 2132, 2132, 2132, 3426, 2133, 2133, 2133, 2116, 2133,
3842      3423, 3424, 2133, 2136, 2136, 2136, 2131, 3421, 1526, 2132,
3843      2138, 2138, 2138, 3432, 2138, 3414, 3421, 2138, 2141, 2141,
3844      2141, 2136, 3416, 2146, 2146, 2146, 3422, 2147, 2147, 2147,
3845
3846      2121, 2147, 1517, 2126, 2147, 3422, 2141, 3423, 3424, 2131,
3847      2146, 2148, 2148, 2148, 2132, 2149, 2149, 2149, 2154, 2154,
3848      2154, 2155, 2155, 2155, 2156, 2156, 2156, 1509, 3427, 2148,
3849      2158, 2158, 2158, 1494, 2141, 2163, 2163, 2163, 2164, 2164,
3850      2164, 2165, 2165, 2165, 2166, 2166, 2166, 2168, 2168, 2168,
3851      2169, 2169, 2169, 2170, 2170, 2170, 2171, 2171, 2171, 2172,
3852      2172, 2172, 2173, 2173, 2173, 2175, 2175, 2175, 2178, 2178,
3853      2178, 2181, 2181, 2181, 3427, 2148, 3428, 2182, 2182, 2182,
3854      3433, 2182, 3437, 2175, 2182, 1493, 2178, 1488, 2181, 3433,
3855      2166, 2184, 2184, 2184, 2185, 2185, 2185, 2186, 2186, 2186,
3856
3857      1487, 2186, 1486, 1484, 2186, 2197, 2197, 2197, 3429, 2184,
3858      3435, 2185, 2198, 2198, 2198, 3438, 2175, 2199, 2199, 2199,
3859      3441, 2199, 3428, 2197, 2199, 2200, 2200, 2200, 3437, 2198,
3860      2205, 2205, 2205, 2206, 2206, 2206, 2207, 2207, 2207, 2208,
3861      2208, 2208, 3436, 2208, 3435, 3429, 2208, 2210, 2210, 2210,
3862      2213, 2213, 2213, 2207, 2197, 2215, 2215, 2215, 3430, 2215,
3863      1477, 3438, 2215, 3434, 1476, 2210, 3443, 3441, 2213, 2218,
3864      2218, 2218, 3434, 2221, 2221, 2221, 3436, 2221, 3439, 2206,
3865      2221, 2228, 2228, 2228, 3447, 2228, 3439, 2218, 2228, 2231,
3866      2231, 2231, 2232, 2232, 2232, 3430, 2232, 3440, 2210, 2232,
3867
3868      2234, 2234, 2234, 3443, 2234, 3440, 2231, 2234, 2237, 2237,
3869      2237, 2238, 2238, 2238, 2240, 2240, 2240, 3442, 2240, 3447,
3870      3445, 2240, 2218, 2246, 2246, 2246, 2237, 2246, 3444, 2238,
3871      2246, 2249, 2249, 2249, 2250, 2250, 2250, 3446, 2250, 1458,
3872      3448, 2250, 2254, 2254, 2254, 3453, 2254, 1453, 2249, 2254,
3873      2258, 2258, 2258, 2259, 2259, 2259, 2260, 2260, 2260, 2237,
3874      2260, 3445, 3451, 2260, 3442, 3444, 2238, 2258, 2263, 2263,
3875      2263, 2259, 2264, 2264, 2264, 3448, 2264, 3453, 3446, 2264,
3876      2265, 2265, 2265, 3454, 2265, 2263, 3449, 2265, 2268, 2268,
3877      2268, 2270, 2270, 2270, 3450, 2270, 3452, 1450, 2270, 3451,
3878
3879      2276, 2276, 2276, 2278, 2278, 2278, 2268, 2279, 2279, 2279,
3880      3455, 2279, 3459, 3457, 2279, 3454, 3458, 2259, 2276, 3455,
3881      2278, 2280, 2280, 2280, 2282, 2282, 2282, 2283, 2283, 2283,
3882      3460, 2283, 3449, 3452, 2283, 2290, 2290, 2290, 3456, 2280,
3883      3450, 2282, 2293, 2293, 2293, 3457, 2293, 3456, 3458, 2293,
3884      2300, 2300, 2300, 2290, 2268, 2296, 2296, 2296, 3461, 2296,
3885      3459, 3463, 2296, 3462, 2302, 2302, 2302, 1449, 2300, 2303,
3886      2303, 2303, 2304, 2304, 2304, 3463, 2304, 1446, 3460, 2304,
3887      1441, 2280, 2302, 1432, 2307, 2307, 2307, 2303, 2307, 1431,
3888      3461, 2307, 2310, 2310, 2310, 3462, 2311, 2311, 2311, 1430,
3889
3890      1426, 2300, 2312, 2312, 2312, 2303, 2313, 2313, 2313, 1421,
3891      2310, 1417, 2310, 2311, 2314, 2314, 2314, 1409, 1404, 2312,
3892      2315, 2315, 2315, 2313, 2317, 2317, 2317, 2318, 2318, 2318,
3893      2302, 2314, 2319, 2319, 2319, 2323, 2323, 2323, 2315, 2320,
3894      2320, 2320, 2317, 1403, 1397, 2318, 1396, 2324, 2324, 2324,
3895      2319, 2324, 1395, 2312, 2324, 1394, 1389, 2320, 2327, 2327,
3896      2327, 2328, 2328, 2328, 2329, 2329, 2329, 2330, 2330, 2330,
3897      2313, 1388, 1387, 2314, 1386, 1372, 2327, 2333, 2333, 2333,
3898      2334, 2334, 2334, 1371, 2317, 2315, 2336, 2336, 2336, 2337,
3899      2337, 2337, 1370, 1369, 2319, 2339, 2339, 2339, 2340, 2340,
3900
3901      2340, 2341, 2341, 2341, 2342, 2342, 2342, 2345, 2345, 2345,
3902      2346, 2346, 2346, 2347, 2347, 2347, 1368, 2327, 2348, 2348,
3903      2348, 2350, 2350, 2350, 2353, 2353, 2353, 2354, 2354, 2354,
3904      1367, 2354, 1366, 1365, 2354, 2357, 2357, 2357, 1364, 2350,
3905      1354, 2353, 2358, 2358, 2358, 1353, 2360, 2360, 2360, 1352,
3906      2360, 1351, 2357, 2360, 2373, 2373, 2373, 2374, 2374, 2374,
3907      2358, 2374, 2375, 2375, 2374, 2375, 2376, 2376, 1330, 2376,
3908      1326, 1325, 2373, 2375, 2377, 2377, 2377, 2376, 1324, 1323,
3909      2375, 2378, 2378, 2378, 2376, 2382, 2382, 2382, 2384, 2384,
3910      2384, 1318, 2384, 1317, 1316, 2384, 2388, 2388, 2388, 1311,
3911
3912      1310, 2357, 2390, 2390, 2390, 2391, 2391, 2391, 2399, 2399,
3913      2399, 2404, 2404, 2404, 2388, 2373, 2405, 2405, 2405, 2390,
3914      2400, 2400, 2400, 2391, 2400, 1297, 1291, 2400, 1287, 2404,
3915      1286, 2410, 2410, 2410, 2405, 2410, 1285, 1284, 2410, 2447,
3916      2447, 2447, 2388, 2413, 2413, 2413, 2417, 2417, 2417, 1283,
3917      2418, 2418, 2418, 1282, 2418, 1281, 2391, 2418, 1279, 1278,
3918      2413, 1276, 1275, 2417, 2419, 2419, 2419, 2420, 2420, 2420,
3919      1274, 2420, 1269, 1261, 2420, 1259, 2405, 2423, 2423, 2423,
3920      1254, 1252, 2419, 2428, 2428, 2428, 2430, 2430, 2430, 2431,
3921      2431, 2431, 1243, 2431, 1238, 2423, 2431, 2434, 2434, 2434,
3922
3923      1227, 2428, 1225, 2430, 2435, 2435, 2435, 2436, 2436, 2436,
3924      1224, 2436, 1223, 1222, 2436, 2434, 2439, 2439, 2439, 1220,
3925      1219, 2435, 2440, 2440, 2440, 2445, 2445, 2445, 2449, 2449,
3926      2449, 1218, 1217, 2439, 2450, 2450, 2450, 1216, 1215, 2440,
3927      1213, 1212, 2445, 2451, 2451, 2451, 2449, 1211, 2434, 1210,
3928      2435, 2450, 2452, 2452, 2452, 2453, 2453, 2453, 2454, 2454,
3929      2454, 2451, 2455, 2455, 2455, 1209, 2455, 1208, 1207, 2455,
3930      2452, 2439, 1206, 2453, 1204, 2454, 2445, 2456, 2456, 2456,
3931      2457, 2457, 2457, 2440, 2458, 2458, 2458, 2459, 2459, 2459,
3932      1203, 1202, 2453, 1201, 2456, 1200, 1199, 2457, 2460, 2460,
3933
3934      2460, 2458, 1198, 2451, 1192, 2459, 2461, 2461, 2461, 2462,
3935      2462, 2462, 1191, 2452, 2464, 2464, 2464, 1190, 2465, 2465,
3936      2465, 2468, 2468, 2468, 2461, 1187, 1186, 2462, 2469, 2469,
3937      2469, 2457, 2464, 1185, 1183, 2458, 2465, 2470, 2470, 2470,
3938      2471, 2471, 2471, 2474, 2474, 2474, 2469, 2475, 2475, 2475,
3939      2477, 2477, 2477, 2478, 2478, 2478, 2482, 2482, 2482, 2485,
3940      2485, 2485, 2486, 2486, 2486, 1179, 2486, 1176, 1171, 2486,
3941      1162, 1161, 2461, 1158, 2482, 1157, 2485, 1156, 2464, 1155,
3942      2465, 2498, 2498, 2498, 2509, 2509, 2509, 2512, 2512, 2512,
3943      2515, 2515, 2515, 2517, 2517, 2517, 2518, 2518, 2518, 2498,
3944
3945      2518, 1154, 1140, 2518, 2519, 2519, 2519, 1133, 2515, 1125,
3946      2517, 2526, 2526, 2526, 2527, 2527, 2527, 2529, 2529, 2529,
3947      1124, 1123, 2519, 1120, 2531, 2531, 2531, 1117, 2526, 2537,
3948      2537, 2537, 2538, 2538, 2538, 2529, 2538, 1114, 1109, 2538,
3949      1106, 2498, 2531, 2540, 2540, 2540, 2537, 2542, 2542, 2542,
3950      1105, 2542, 1101, 1099, 2542, 1085, 2515, 2545, 2545, 2545,
3951      2540, 2547, 2547, 2547, 1084, 2551, 2551, 2551, 2553, 2553,
3952      2553, 2555, 2555, 2555, 1083, 2545, 2554, 2554, 2554, 2547,
3953      2554, 2531, 2551, 2554, 1082, 2553, 2556, 2556, 2556, 2555,
3954      2557, 2557, 2557, 1081, 2557, 1080, 1079, 2557, 2565, 2565,
3955
3956      2565, 1078, 1077, 2556, 2567, 2567, 2567, 2569, 2569, 2569,
3957      2571, 2571, 2571, 1076, 1072, 2565, 2572, 2572, 2572, 1068,
3958      2572, 1061, 1058, 2572, 1055, 2569, 1052, 2571, 2573, 2573,
3959      2573, 2574, 2574, 2574, 1051, 2575, 2575, 2575, 2576, 2576,
3960      2576, 1050, 2576, 1046, 1045, 2576, 2573, 1044, 1041, 2574,
3961      2579, 2579, 2579, 2575, 2580, 2580, 2580, 1040, 2580, 1039,
3962      1036, 2580, 2581, 2581, 2581, 1035, 1032, 2579, 2582, 2582,
3963      2582, 2583, 2583, 2583, 2585, 2585, 2585, 1031, 1027, 2581,
3964      1026, 1023, 2586, 2586, 2586, 2582, 2587, 2587, 2587, 2583,
3965      2591, 2591, 2591, 2595, 2595, 2595, 1022, 1021, 2574, 2575,
3966
3967      2586, 2596, 2596, 2596, 2587, 2600, 2600, 2600, 2591, 2601,
3968      2601, 2601, 1020, 2601, 1019, 1017, 2601, 2615, 2615, 2615,
3969      1016, 1015, 2600, 2630, 2630, 2630, 2633, 2633, 2633, 2634,
3970      2634, 2634, 2635, 2635, 2635, 2615, 2635, 1014, 1013, 2635,
3971      2638, 2638, 2638, 1012, 2633, 1011, 1010, 2587, 2641, 2641,
3972      2641, 2644, 2644, 2644, 1006, 2645, 2645, 2645, 2638, 2645,
3973      1001, 1000, 2645,  999,  996, 2641,  995,  994, 2644, 2647,
3974      2647, 2647, 2651, 2651, 2651,  992,  988, 2615, 2653, 2653,
3975      2653,  984, 2653,  983,  980, 2653,  977, 2647,  976, 2651,
3976      2657, 2657, 2657,  975, 2658, 2658, 2658, 2633, 2658,  974,
3977
3978       973, 2658, 2665, 2665, 2665,  972,  971, 2657, 2666, 2666,
3979      2666, 2667, 2667, 2667,  969, 2667,  968,  967, 2667, 2665,
3980      2668, 2668, 2668,  966,  965, 2666, 2669, 2669, 2669,  964,
3981      2669,  963,  962, 2669, 2672, 2672, 2672, 2668, 2674, 2674,
3982      2674,  961, 2674,  960,  958, 2674, 2682, 2682, 2682, 2683,
3983      2683, 2683, 2672, 2683,  957,  956, 2683, 2684, 2684, 2684,
3984      2685, 2685, 2685, 2682, 2686, 2686, 2686,  955, 2686,  954,
3985       953, 2686,  952,  951, 2684,  950,  949, 2685, 2689, 2689,
3986      2689, 2691, 2691, 2691, 2692, 2692, 2692, 2693, 2693, 2693,
3987       945, 2693,  944,  942, 2693,  941, 2689,  940,  939, 2691,
3988
3989       938,  934, 2692, 2696, 2696, 2696, 2697, 2697, 2697,  932,
3990      2697,  931,  930, 2697, 2698, 2698, 2698, 2699, 2699, 2699,
3991      2696, 2699,  929,  925, 2699, 2700, 2700, 2700, 2702, 2702,
3992      2702, 2698, 2707, 2707, 2707, 2708, 2708, 2708, 2712, 2712,
3993      2712,  924,  920, 2700,  916, 2692, 2702, 2691,  915, 2713,
3994      2713, 2713,  912, 2713,  911, 2712, 2713, 2731, 2731, 2731,
3995      2745, 2745, 2745, 2747, 2747, 2747, 2748, 2748, 2748, 2749,
3996      2749, 2749, 2750, 2750, 2750, 2731, 2751, 2751, 2751,  910,
3997      2747, 2752, 2752, 2752, 2748, 2752,  909,  908, 2752, 2750,
3998      2702,  907,  906, 2751, 2753, 2753, 2753,  903, 2753,  902,
3999
4000       901, 2753, 2756, 2756, 2756, 2757, 2757, 2757, 2731, 2761,
4001      2761, 2761, 2762, 2762, 2762, 2764, 2764, 2764, 2750, 2756,
4002      2763, 2763, 2763, 2757, 2763,  900, 2761, 2763, 2748, 2762,
4003       897,  896, 2764, 2766, 2766, 2766,  895, 2766,  892,  890,
4004      2766, 2775, 2775, 2775, 2776, 2776, 2776,  887, 2776,  886,
4005       885, 2776, 2777, 2777, 2777,  884, 2777,  883, 2775, 2777,
4006      2780, 2780, 2780, 2781, 2781, 2781,  880, 2781,  879,  878,
4007      2781, 2783, 2783, 2783, 2785, 2785, 2785, 2780, 2785,  877,
4008       876, 2785, 2788, 2788, 2788, 2789, 2789, 2789, 2783, 2789,
4009       873,  872, 2789, 2790, 2790, 2790, 2791, 2791, 2791, 2788,
4010
4011      2791,  871,  870, 2791, 2798, 2798, 2798, 2799, 2799, 2799,
4012      2790, 2800, 2800, 2800,  868, 2800,  865,  864, 2800, 2803,
4013      2803, 2803, 2798, 2803,  862, 2799, 2803, 2806, 2806, 2806,
4014      2809, 2809, 2809, 2811, 2811, 2811, 2812, 2812, 2812, 2815,
4015      2815, 2815,  859, 2815,  857, 2806, 2815, 2809, 2809, 2826,
4016      2826, 2826, 2835, 2835, 2835, 2798, 2849, 2849, 2849, 2850,
4017      2850, 2850, 2851, 2851, 2851,  854, 2826, 2853, 2853, 2853,
4018      2835, 2852, 2852, 2852, 2799, 2852,  853,  852, 2852, 2851,
4019      2854, 2854, 2854,  851,  849, 2853, 2855, 2855, 2855,  848,
4020      2855,  847,  844, 2855, 2860, 2860, 2860, 2854, 2857, 2857,
4021
4022      2857, 2835, 2857,  843,  842, 2857, 2861, 2861, 2861,  841,
4023      2861, 2860,  840, 2861, 2864, 2864, 2864,  839, 2853, 2865,
4024      2865, 2865,  834, 2865,  833,  832, 2865,  831, 2866, 2866,
4025      2866, 2864, 2866,  830,  829, 2866, 2869, 2869, 2869, 2870,
4026      2870, 2870,  828, 2870,  827,  826, 2870, 2878, 2878, 2878,
4027       825, 2878,  824, 2869, 2878, 2881, 2881, 2881,  823, 2881,
4028       821,  819, 2881, 2885, 2885, 2885, 2886, 2886, 2886,  818,
4029      2886,  815,  812, 2886, 2888, 2888, 2888,  809, 2888,  808,
4030      2885, 2888, 2891, 2891, 2891,  805, 2891,  804,  802, 2891,
4031      2900, 2900, 2900, 2901, 2901, 2901, 2906, 2906, 2906, 2909,
4032
4033      2909, 2909, 2910, 2910, 2910, 2911, 2911, 2911, 2900, 2911,
4034       801, 2901, 2911,  797, 2906,  796, 2909, 2909,  795, 2910,
4035      2910,  794,  791, 2911, 2912, 2912, 2912, 2913, 2913, 2913,
4036      2914, 2914, 2914, 2915, 2915, 2915, 2924, 2924, 2924, 2925,
4037      2925, 2925,  788, 2925,  787,  786, 2925, 2934, 2934, 2934,
4038      2947, 2947, 2947, 2924, 2948, 2948, 2948,  783,  782, 2901,
4039      2949, 2949, 2949,  781, 2949, 2934,  777, 2949, 2952, 2952,
4040      2952, 2953, 2953, 2953,  776, 2953,  775,  773, 2953,  762,
4041      2957, 2957, 2957,  760, 2957,  757, 2952, 2957, 2962, 2962,
4042      2962,  756, 2962,  755,  753, 2962, 2965, 2965, 2965,  752,
4043
4044      2965,  751,  747, 2965, 2968, 2968, 2968, 2975, 2975, 2975,
4045      2976, 2976, 2976, 2934, 2976,  746,  745, 2976, 2979, 2979,
4046      2979, 2968,  744,  741, 2975, 2994, 2994, 2994, 2996, 2996,
4047      2996, 3002, 3002, 3002,  740, 2979,  739, 3003, 3003, 3003,
4048       738, 3003,  737, 2994, 3003,  736, 2996,  735, 3002, 3002,
4049      3004, 3004, 3004,  733, 3004, 3003,  730, 3004, 3007, 3007,
4050      3007, 3008, 3008, 3008, 3009, 3009, 3009,  729, 3004, 3018,
4051      3018, 3018,  727, 3018,  725,  722, 3018,  721,  715, 2996,
4052      3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005, 3005,  713,
4053       711, 3005, 3027, 3027, 3027,  708, 3005, 3005, 3005, 3005,
4054
4055      3005, 3036, 3036, 3036, 3037, 3037, 3037, 3042, 3042, 3042,
4056      3027, 3043, 3043, 3043,  707, 3043,  703,  702, 3043, 3044,
4057      3044, 3044, 3037,  701, 3042, 3005, 3005, 3006, 3006, 3006,
4058      3006, 3006, 3006, 3006, 3006, 3006, 3044,  700, 3006, 3050,
4059      3050, 3050,  697, 3006, 3006, 3006, 3006, 3006, 3051, 3051,
4060      3051,  696, 3051,  695,  694, 3051, 3050, 3052, 3052, 3052,
4061      3053, 3053, 3053,  691, 3053,  690,  689, 3053, 3066, 3066,
4062      3066,  688, 3006, 3006, 3052, 3072, 3072, 3072,  687, 3072,
4063       681,  680, 3072,  678,  672,  671, 3066,  667, 3091, 3091,
4064      3091,  661,  660, 3072, 3075, 3075, 3075, 3075, 3075, 3075,
4065
4066      3075, 3075, 3075,  656,  649, 3075, 3091, 3105, 3105, 3105,
4067      3075, 3075, 3075, 3075, 3075, 3102, 3102, 3102,  645, 3102,
4068       639,  635, 3102,  627, 3105, 3106, 3106, 3106,  626, 3106,
4069       625,  624, 3106, 3128, 3128, 3128, 3140, 3140, 3140, 3075,
4070      3075, 3076, 3076, 3076, 3076, 3076, 3076, 3076, 3076, 3076,
4071       623, 3128, 3076,  619, 3140, 3140,  612, 3076, 3076, 3076,
4072      3076, 3076, 3110, 3110, 3110,  611, 3110,  610,  606, 3110,
4073      3113, 3113, 3113,  599, 3113,  598,  594, 3113, 3157, 3157,
4074      3157, 3158, 3158, 3158,  588,  587, 3076, 3076, 3159, 3159,
4075      3159,  583, 3164, 3164, 3164, 3157, 3164,  575, 3158, 3164,
4076
4077      3167, 3167, 3167,  574,  570, 3159, 3178, 3178, 3178, 3182,
4078      3182, 3182, 3193, 3193, 3193,  561,  557, 3167, 3194, 3194,
4079      3194,  549, 3194,  548, 3178, 3194,  547, 3182,  543, 3193,
4080      3195, 3195, 3195, 3196, 3196, 3196,  537, 3196,  536,  535,
4081      3196, 3197, 3197, 3197, 3198, 3198, 3198, 3195, 3198,  531,
4082       525, 3198, 3205, 3205, 3205, 3206, 3206, 3206, 3197, 3206,
4083      3182,  524, 3206, 3215, 3215, 3215, 3225, 3225, 3225, 3205,
4084      3225,  520,  514, 3225,  513, 3228, 3228, 3228,  512, 3228,
4085       511, 3215, 3228, 3231, 3231, 3231,  510, 3231,  509,  508,
4086      3231, 3240, 3240, 3240,  504, 3240,  498,  497, 3240,  495,
4087
4088      3215, 3355, 3355, 3355, 3364, 3364, 3364,  494, 3364,  493,
4089       489, 3364, 3465, 3465, 3465, 3466, 3466, 3466,  482, 3355,
4090       477,  476, 3364,  474,  470,  464,  463,  462,  458,  452,
4091      3465,  448,  441, 3466, 3469, 3469, 3469, 3469, 3469, 3469,
4092      3469, 3469, 3469, 3470, 3470, 3470, 3470, 3470, 3470, 3470,
4093      3470, 3470, 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471,
4094      3471, 3472, 3472, 3472, 3472, 3472, 3472, 3472, 3472, 3472,
4095      3473, 3473, 3473, 3473, 3473, 3473, 3473, 3473, 3473, 3474,
4096      3474, 3474, 3474, 3474, 3474, 3474, 3474, 3474, 3475, 3475,
4097      3475, 3475, 3475, 3475, 3475, 3475, 3475, 3476, 3476, 3476,
4098
4099      3476, 3476, 3476, 3476, 3476, 3476, 3477, 3477, 3477, 3477,
4100      3477, 3477, 3477, 3477, 3477, 3478, 3478, 3478, 3478, 3478,
4101      3478, 3478, 3478, 3478, 3479, 3479, 3479, 3479, 3479, 3479,
4102      3479, 3479, 3479, 3480, 3480, 3480, 3480, 3480, 3480, 3480,
4103      3480, 3480, 3481, 3481, 3481, 3481, 3481, 3481, 3481, 3481,
4104      3481, 3482, 3482, 3482, 3482, 3482, 3482, 3482, 3482, 3482,
4105      3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3483, 3484,
4106      3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3485, 3485,
4107      3485, 3485, 3485, 3485, 3485, 3485, 3485, 3486, 3486, 3486,
4108      3486, 3486, 3486, 3486, 3486, 3486, 3487, 3487, 3487, 3487,
4109
4110      3487, 3487, 3487, 3487, 3487, 3488, 3488, 3488, 3488, 3488,
4111      3488, 3488, 3488, 3488, 3489, 3489, 3489, 3489, 3489, 3489,
4112      3489, 3489, 3489, 3490, 3490, 3490, 3490, 3490, 3490, 3490,
4113      3490, 3490, 3491, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4114      3491, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
4115      3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3493, 3494,
4116      3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3495, 3495,
4117      3495, 3495, 3495, 3495, 3495, 3495, 3495, 3496, 3496, 3496,
4118      3496, 3496, 3496, 3496, 3496, 3496, 3497, 3497, 3497, 3497,
4119      3497, 3497, 3497, 3497, 3497, 3498, 3498, 3498, 3498, 3498,
4120
4121      3498, 3498, 3498, 3498, 3499, 3499, 3499, 3499, 3499, 3499,
4122      3499, 3499, 3499, 3500, 3500, 3500, 3500, 3500, 3500, 3500,
4123      3500, 3500, 3501, 3501, 3501, 3501, 3501, 3501, 3501, 3501,
4124      3501, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502, 3502,
4125      3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3504,
4126      3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3505, 3505,
4127      3505, 3505, 3505, 3505, 3505, 3505, 3505, 3506, 3506, 3506,
4128      3506, 3506, 3506, 3506, 3506, 3506, 3507, 3507, 3507, 3507,
4129      3507, 3507, 3507, 3507, 3507, 3508, 3508, 3508, 3508, 3508,
4130      3508, 3508, 3508, 3508, 3509, 3509, 3509, 3509, 3509, 3509,
4131
4132      3509, 3509, 3509, 3510, 3510, 3510, 3510, 3510, 3510, 3510,
4133      3510, 3510, 3511, 3511, 3511, 3511, 3511, 3511, 3511, 3511,
4134      3511, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512, 3512,
4135      3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3514,
4136      3514, 3514, 3514, 3514, 3514, 3514, 3514, 3514, 3515, 3515,
4137      3515, 3515, 3515, 3515, 3515, 3515, 3515, 3516, 3516, 3516,
4138      3516, 3516, 3516, 3516, 3516, 3516, 3517, 3517, 3517, 3517,
4139      3517, 3517, 3517, 3517, 3517, 3518, 3518, 3518, 3518, 3518,
4140      3518, 3518, 3518, 3518, 3519, 3519, 3519, 3519, 3519, 3519,
4141      3519, 3519, 3519, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
4142
4143      3520, 3520, 3521, 3521, 3521, 3521, 3521, 3521, 3521, 3521,
4144      3521, 3522, 3522, 3522, 3522, 3522, 3522, 3522, 3522, 3522,
4145      3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3524,
4146      3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3525, 3525,
4147      3525, 3525, 3525, 3525, 3525, 3525, 3525, 3526, 3526, 3526,
4148      3526, 3526, 3526, 3526, 3526, 3526, 3527, 3527, 3527, 3527,
4149      3527, 3527, 3527, 3527, 3527, 3528, 3528, 3528, 3528, 3528,
4150      3528, 3528, 3528, 3528, 3529, 3529, 3529, 3529, 3529, 3529,
4151      3529, 3529, 3529, 3530, 3530, 3530, 3530, 3530, 3530, 3530,
4152      3530, 3530, 3531, 3531, 3531, 3531, 3531, 3531, 3531, 3531,
4153
4154      3531, 3532, 3532, 3532,  440,  439,  438, 3532, 3533, 3533,
4155      3533,  434,  430,  426, 3533, 3534, 3534, 3534,  424,  423,
4156       422, 3534, 3535, 3535, 3535,  418,  412,  411, 3535, 3536,
4157      3536, 3536,  407,  401,  400, 3536, 3537, 3537, 3537,  396,
4158       388,  387, 3537, 3538, 3538, 3538,  386,  385,  381, 3538,
4159      3539, 3539, 3539,  372,  366,  362, 3539, 3540, 3540, 3540,
4160       361,  357,  351, 3540, 3541, 3541, 3541,  350,  349,  345,
4161      3541, 3542, 3542, 3542,  338,  336,  335, 3542, 3543, 3543,
4162      3543,  331,  328,  326, 3543, 3544, 3544, 3544,  325,  324,
4163       320, 3544, 3545, 3545, 3545,  316,  313,  309, 3545, 3546,
4164
4165      3546, 3546,  306,  305,  297, 3546, 3547, 3547, 3547,  293,
4166       289,  288, 3547, 3548, 3548, 3548,  287,  281,  280, 3548,
4167      3549, 3549, 3549,  278,  275,  263, 3549, 3550, 3550, 3550,
4168         0,    0,    0, 3550, 3551, 3551, 3551,    0,    0,    0,
4169      3551, 3552, 3552, 3552,    0,    0,    0, 3552, 3553, 3553,
4170      3553,    0,    0,    0, 3553, 3554, 3554, 3554,    0,    0,
4171         0, 3554, 3555, 3555, 3555,    0,    0,    0, 3555, 3556,
4172      3556, 3556,    0,    0,    0, 3556, 3557, 3557, 3557,    0,
4173         0,    0, 3557, 3558, 3558, 3558,    0,    0,    0, 3558,
4174      3559, 3559, 3559,    0,    0,    0, 3559, 3560, 3560, 3560,
4175
4176         0,    0,    0, 3560, 3561, 3561, 3561, 3561, 3561, 3561,
4177      3561,    0, 3561, 3562, 3562, 3562,    0,    0,    0, 3562,
4178      3563,    0,    0,    0, 3563, 3564, 3564, 3564,    0,    0,
4179         0, 3564, 3565,    0,    0,    0, 3565, 3566, 3566, 3566,
4180         0,    0,    0, 3566, 3567,    0,    0,    0, 3567, 3568,
4181      3568, 3568,    0,    0,    0, 3568, 3569,    0,    0,    0,
4182      3569, 3570, 3570, 3570,    0,    0,    0, 3570, 3571,    0,
4183         0,    0, 3571, 3572, 3572, 3572,    0,    0,    0, 3572,
4184      3573,    0,    0,    0, 3573, 3574, 3574, 3574,    0,    0,
4185         0, 3574, 3575,    0,    0,    0, 3575, 3576, 3576, 3576,
4186
4187         0,    0,    0, 3576, 3577,    0,    0,    0, 3577, 3578,
4188      3578, 3578,    0,    0,    0, 3578, 3579,    0,    0,    0,
4189      3579, 3580, 3580, 3580,    0,    0,    0, 3580, 3581,    0,
4190         0,    0, 3581, 3582, 3582, 3582,    0,    0,    0, 3582,
4191      3583,    0,    0,    0, 3583, 3584, 3584, 3584,    0,    0,
4192         0, 3584, 3585,    0,    0,    0, 3585, 3586, 3586, 3586,
4193         0,    0,    0, 3586, 3587,    0,    0,    0, 3587, 3588,
4194      3588, 3588,    0,    0,    0, 3588, 3589,    0,    0,    0,
4195      3589, 3590, 3590, 3590,    0,    0,    0, 3590, 3591,    0,
4196         0,    0, 3591, 3592, 3592, 3592,    0,    0,    0, 3592,
4197
4198      3593,    0,    0,    0, 3593, 3594, 3594, 3594,    0,    0,
4199         0, 3594, 3595,    0,    0,    0, 3595, 3596, 3596, 3596,
4200         0,    0,    0, 3596, 3597,    0,    0,    0, 3597, 3598,
4201      3598, 3598,    0,    0,    0, 3598, 3599,    0,    0,    0,
4202      3599, 3600, 3600, 3600,    0,    0,    0, 3600, 3601,    0,
4203         0,    0, 3601, 3602, 3602, 3602,    0,    0,    0, 3602,
4204      3603,    0,    0,    0, 3603, 3604, 3604, 3604,    0,    0,
4205         0, 3604, 3605,    0,    0,    0, 3605, 3606, 3606, 3606,
4206         0,    0,    0, 3606, 3607,    0,    0,    0, 3607, 3608,
4207      3608, 3608,    0,    0,    0, 3608, 3609,    0,    0,    0,
4208
4209      3609, 3610, 3610, 3610,    0,    0,    0, 3610, 3611,    0,
4210         0,    0, 3611, 3612, 3612, 3612,    0,    0,    0, 3612,
4211      3613,    0,    0,    0, 3613, 3614, 3614, 3614,    0,    0,
4212         0, 3614, 3615,    0,    0,    0, 3615, 3616, 3616, 3616,
4213         0,    0,    0, 3616, 3617,    0,    0,    0, 3617, 3618,
4214      3618, 3618,    0,    0,    0, 3618, 3619,    0,    0,    0,
4215      3619, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620,
4216      3621,    0,    0,    0,    0, 3621, 3622, 3622, 3622,    0,
4217         0,    0, 3622, 3623, 3623, 3623, 3623,    0,    0, 3623,
4218      3623, 3624, 3624, 3624,    0,    0,    0, 3624, 3625, 3625,
4219
4220      3625, 3625,    0,    0, 3625, 3625, 3626, 3626, 3626,    0,
4221         0,    0, 3626, 3627, 3627, 3627, 3627,    0,    0, 3627,
4222      3627, 3628, 3628, 3628,    0,    0,    0, 3628, 3629, 3629,
4223      3629, 3629,    0,    0, 3629, 3629, 3630, 3630, 3630,    0,
4224         0,    0, 3630, 3631, 3631, 3631, 3631,    0,    0, 3631,
4225      3631, 3632, 3632, 3632,    0,    0,    0, 3632, 3633, 3633,
4226      3633, 3633,    0,    0, 3633, 3633, 3634, 3634, 3634,    0,
4227         0,    0, 3634, 3635, 3635, 3635, 3635,    0,    0, 3635,
4228      3635, 3636, 3636, 3636,    0,    0,    0, 3636, 3637, 3637,
4229      3637, 3637,    0,    0, 3637, 3637, 3638, 3638, 3638,    0,
4230
4231         0,    0, 3638, 3639, 3639, 3639, 3639,    0,    0, 3639,
4232      3639, 3640, 3640, 3640,    0,    0,    0, 3640, 3641, 3641,
4233      3641, 3641,    0,    0, 3641, 3641, 3642, 3642, 3642,    0,
4234         0,    0, 3642, 3643, 3643, 3643, 3643,    0,    0, 3643,
4235      3643, 3644, 3644, 3644,    0,    0,    0, 3644, 3645, 3645,
4236      3645, 3645,    0,    0, 3645, 3645, 3646, 3646, 3646,    0,
4237         0,    0, 3646, 3647, 3647, 3647, 3647,    0,    0, 3647,
4238      3647, 3648, 3648, 3648,    0,    0,    0, 3648, 3649, 3649,
4239      3649, 3649,    0,    0, 3649, 3649, 3650, 3650, 3650, 3650,
4240         0, 3650,    0, 3650, 3651, 3651, 3651, 3651,    0,    0,
4241
4242      3651, 3651, 3652, 3652, 3652,    0,    0,    0, 3652, 3653,
4243      3653, 3653, 3653,    0,    0, 3653, 3653, 3654, 3654, 3654,
4244         0,    0,    0, 3654, 3655, 3655, 3655, 3655,    0,    0,
4245      3655, 3655, 3656, 3656, 3656,    0,    0,    0, 3656, 3657,
4246      3657, 3657, 3657,    0,    0, 3657, 3657, 3658, 3658, 3658,
4247         0,    0,    0, 3658, 3659, 3659, 3659, 3659,    0,    0,
4248      3659, 3659, 3660, 3660, 3660, 3660,    0, 3660,    0, 3660,
4249      3661, 3661, 3661, 3661,    0,    0, 3661, 3661, 3662, 3662,
4250      3662, 3662,    0, 3662,    0, 3662, 3663, 3663, 3663, 3663,
4251         0,    0, 3663, 3663, 3664, 3664, 3664,    0,    0,    0,
4252
4253      3664, 3665, 3665, 3665, 3665,    0,    0, 3665, 3665, 3666,
4254      3666, 3666, 3666,    0, 3666,    0, 3666, 3667, 3667, 3667,
4255      3667,    0,    0, 3667, 3667, 3668, 3668, 3668, 3668,    0,
4256      3668,    0, 3668, 3669, 3669, 3669, 3669,    0,    0, 3669,
4257      3669, 3670, 3670, 3670,    0,    0,    0, 3670, 3671, 3671,
4258      3671, 3671,    0,    0, 3671, 3671, 3672, 3672, 3672,    0,
4259         0,    0, 3672, 3673, 3673, 3673, 3673,    0,    0, 3673,
4260      3673, 3674, 3674, 3674, 3674,    0,    0, 3674, 3674, 3675,
4261      3675, 3675,    0,    0,    0, 3675, 3676, 3676, 3676, 3676,
4262         0,    0, 3676, 3676, 3677, 3677, 3677,    0,    0,    0,
4263
4264      3677, 3678, 3678, 3678, 3678,    0,    0, 3678, 3678, 3679,
4265      3679, 3679, 3679, 3679, 3679, 3679, 3679, 3679, 3680,    0,
4266      3680,    0,    0, 3680, 3681, 3681, 3681,    0,    0,    0,
4267      3681, 3682, 3682, 3682, 3682,    0,    0, 3682, 3682, 3683,
4268      3683, 3683, 3683,    0, 3683,    0, 3683, 3684, 3684, 3684,
4269      3684,    0,    0, 3684, 3684, 3685, 3685, 3685, 3685,    0,
4270      3685,    0, 3685, 3686, 3686, 3686, 3686,    0,    0, 3686,
4271      3686, 3687, 3687, 3687,    0,    0,    0, 3687, 3688, 3688,
4272      3688, 3688,    0,    0, 3688, 3688, 3689, 3689, 3689,    0,
4273         0,    0, 3689, 3690, 3690, 3690, 3690,    0,    0, 3690,
4274
4275      3690, 3691, 3691, 3691,    0,    0,    0, 3691, 3692, 3692,
4276      3692, 3692,    0,    0, 3692, 3692, 3693, 3693, 3693,    0,
4277         0,    0, 3693, 3694, 3694, 3694, 3694,    0,    0, 3694,
4278      3694, 3695, 3695, 3695, 3695,    0, 3695,    0, 3695, 3696,
4279      3696, 3696, 3696,    0,    0, 3696, 3696, 3697, 3697, 3697,
4280      3697,    0, 3697,    0, 3697, 3698, 3698, 3698, 3698,    0,
4281         0, 3698, 3698, 3699, 3699, 3699,    0,    0,    0, 3699,
4282      3700, 3700, 3700, 3700,    0,    0, 3700, 3700, 3701, 3701,
4283      3701,    0,    0,    0, 3701, 3702, 3702, 3702, 3702,    0,
4284         0, 3702, 3702, 3703, 3703, 3703, 3703,    0, 3703,    0,
4285
4286      3703, 3704, 3704, 3704, 3704,    0,    0, 3704, 3704, 3705,
4287      3705, 3705, 3705,    0, 3705,    0, 3705, 3706, 3706, 3706,
4288      3706,    0,    0, 3706, 3706, 3707, 3707, 3707,    0,    0,
4289         0, 3707, 3708, 3708, 3708, 3708,    0,    0, 3708, 3708,
4290      3709, 3709, 3709,    0,    0,    0, 3709, 3710, 3710, 3710,
4291      3710,    0,    0, 3710, 3710, 3711, 3711, 3711,    0,    0,
4292         0, 3711, 3712, 3712, 3712, 3712,    0,    0, 3712, 3712,
4293      3713, 3713, 3713,    0,    0,    0, 3713, 3714, 3714, 3714,
4294      3714,    0,    0, 3714, 3714, 3715, 3715, 3715,    0,    0,
4295         0, 3715, 3716, 3716, 3716, 3716,    0,    0, 3716, 3716,
4296
4297      3717, 3717, 3717,    0,    0,    0, 3717, 3718, 3718, 3718,
4298      3718,    0,    0, 3718, 3718, 3719, 3719, 3719,    0,    0,
4299         0, 3719, 3720, 3720, 3720, 3720,    0,    0, 3720, 3720,
4300      3721, 3721, 3721,    0,    0,    0, 3721, 3722, 3722, 3722,
4301      3722,    0,    0, 3722, 3722, 3723, 3723, 3723,    0,    0,
4302         0, 3723, 3724, 3724, 3724, 3724,    0,    0, 3724, 3724,
4303      3725, 3725, 3725, 3725,    0,    0, 3725, 3725, 3726, 3726,
4304      3726,    0,    0,    0, 3726, 3727, 3727, 3727, 3727,    0,
4305         0, 3727, 3727, 3728, 3728, 3728,    0,    0,    0, 3728,
4306      3729, 3729, 3729, 3729,    0,    0, 3729, 3729, 3730, 3730,
4307
4308      3730,    0,    0,    0, 3730, 3731, 3731, 3731, 3731,    0,
4309         0, 3731, 3731, 3732, 3732, 3732, 3732,    0,    0, 3732,
4310      3732, 3733, 3733, 3733,    0,    0,    0, 3733, 3734, 3734,
4311      3734, 3734,    0,    0, 3734, 3734, 3735, 3735, 3735,    0,
4312         0,    0, 3735, 3736, 3736, 3736, 3736,    0,    0, 3736,
4313      3736, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737,
4314      3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3739,
4315      3739, 3739,    0,    0,    0, 3739, 3740, 3740, 3740, 3740,
4316         0,    0, 3740, 3740, 3741, 3741, 3741, 3741,    0,    0,
4317      3741, 3741, 3742, 3742, 3742,    0,    0,    0, 3742, 3743,
4318
4319      3743, 3743, 3743,    0,    0, 3743, 3743, 3744, 3744, 3744,
4320         0,    0,    0, 3744, 3745, 3745, 3745, 3745,    0,    0,
4321      3745, 3745, 3746, 3746, 3746,    0,    0,    0, 3746, 3747,
4322      3747, 3747, 3747,    0,    0, 3747, 3747, 3748, 3748, 3748,
4323         0,    0,    0, 3748, 3749, 3749, 3749,    0,    0,    0,
4324      3749, 3750, 3750, 3750, 3750,    0,    0, 3750, 3750, 3751,
4325      3751, 3751,    0,    0,    0, 3751, 3752, 3752, 3752, 3752,
4326         0,    0, 3752, 3752, 3753, 3753, 3753,    0,    0,    0,
4327      3753, 3754, 3754, 3754, 3754,    0,    0, 3754, 3754, 3755,
4328      3755, 3755,    0,    0,    0, 3755, 3756, 3756, 3756, 3756,
4329
4330         0,    0, 3756, 3756, 3757, 3757, 3757,    0,    0,    0,
4331      3757, 3758, 3758, 3758, 3758,    0,    0, 3758, 3758, 3759,
4332      3759, 3759, 3759,    0,    0, 3759, 3759, 3760, 3760, 3760,
4333      3760,    0,    0, 3760, 3760, 3761, 3761, 3761,    0,    0,
4334         0, 3761, 3762, 3762, 3762, 3762,    0,    0, 3762, 3762,
4335      3763, 3763, 3763, 3763,    0, 3763,    0, 3763, 3764, 3764,
4336      3764, 3764,    0,    0, 3764, 3764, 3765, 3765, 3765,    0,
4337         0,    0, 3765, 3766, 3766, 3766, 3766,    0,    0, 3766,
4338      3766, 3767, 3767, 3767,    0,    0,    0, 3767, 3768, 3768,
4339      3768, 3768,    0,    0, 3768, 3768, 3769, 3769, 3769,    0,
4340
4341         0,    0, 3769, 3770, 3770, 3770, 3770,    0,    0, 3770,
4342      3770, 3771, 3771, 3771,    0,    0,    0, 3771, 3772, 3772,
4343      3772, 3772,    0,    0, 3772, 3772, 3773, 3773, 3773,    0,
4344         0,    0, 3773, 3774, 3774, 3774, 3774,    0,    0, 3774,
4345      3774, 3775, 3775, 3775,    0,    0,    0, 3775, 3776, 3776,
4346      3776, 3776,    0,    0, 3776, 3776, 3777, 3777, 3777,    0,
4347         0,    0, 3777, 3778, 3778, 3778, 3778,    0,    0, 3778,
4348      3778, 3779, 3779, 3779, 3779,    0,    0, 3779, 3779, 3780,
4349      3780, 3780,    0,    0,    0, 3780, 3781, 3781, 3781, 3781,
4350         0,    0, 3781, 3781, 3782, 3782, 3782,    0,    0,    0,
4351
4352      3782, 3783, 3783, 3783, 3783,    0,    0, 3783, 3783, 3784,
4353      3784, 3784, 3784,    0, 3784,    0, 3784, 3785, 3785, 3785,
4354      3785,    0,    0, 3785, 3785, 3786, 3786, 3786, 3786,    0,
4355         0, 3786, 3786, 3787, 3787, 3787, 3787,    0, 3787,    0,
4356      3787, 3788, 3788, 3788, 3788,    0,    0, 3788, 3788, 3789,
4357      3789, 3789, 3789,    0, 3789,    0, 3789, 3790, 3790, 3790,
4358      3790,    0,    0, 3790, 3790, 3791, 3791, 3791, 3791, 3791,
4359      3791, 3791, 3791, 3791, 3792, 3792, 3792, 3792, 3792, 3792,
4360      3792, 3792, 3792, 3793, 3793, 3793,    0,    0,    0, 3793,
4361      3794, 3794, 3794, 3794,    0,    0, 3794, 3794, 3795, 3795,
4362
4363      3795, 3795,    0,    0, 3795, 3795, 3796, 3796, 3796,    0,
4364         0,    0, 3796, 3797, 3797, 3797, 3797,    0,    0, 3797,
4365      3797, 3798, 3798, 3798,    0,    0,    0, 3798, 3799, 3799,
4366      3799, 3799,    0,    0, 3799, 3799, 3800, 3800, 3800,    0,
4367         0,    0, 3800, 3801, 3801, 3801, 3801,    0,    0, 3801,
4368      3801, 3802, 3802, 3802,    0,    0,    0, 3802, 3803, 3803,
4369      3803,    0,    0,    0, 3803, 3804, 3804, 3804, 3804,    0,
4370         0, 3804, 3804, 3805, 3805, 3805,    0,    0,    0, 3805,
4371      3806, 3806, 3806, 3806,    0,    0, 3806, 3806, 3807, 3807,
4372      3807, 3807,    0, 3807,    0, 3807, 3808, 3808, 3808, 3808,
4373
4374         0,    0, 3808, 3808, 3809, 3809, 3809,    0,    0,    0,
4375      3809, 3810, 3810, 3810, 3810,    0,    0, 3810, 3810, 3811,
4376      3811, 3811, 3811,    0, 3811,    0, 3811, 3812, 3812, 3812,
4377      3812,    0,    0, 3812, 3812, 3813, 3813, 3813, 3813,    0,
4378         0, 3813, 3813, 3814, 3814, 3814,    0,    0,    0, 3814,
4379      3815, 3815, 3815, 3815,    0,    0, 3815, 3815, 3816, 3816,
4380      3816, 3816,    0, 3816,    0, 3816, 3817, 3817, 3817, 3817,
4381         0,    0, 3817, 3817, 3818, 3818, 3818,    0,    0,    0,
4382      3818, 3819, 3819, 3819, 3819,    0,    0, 3819, 3819, 3820,
4383      3820, 3820,    0,    0,    0, 3820, 3821, 3821, 3821, 3821,
4384
4385         0,    0, 3821, 3821, 3822, 3822, 3822,    0,    0,    0,
4386      3822, 3823, 3823, 3823, 3823,    0,    0, 3823, 3823, 3824,
4387      3824, 3824,    0,    0,    0, 3824, 3825, 3825, 3825, 3825,
4388         0,    0, 3825, 3825, 3826, 3826, 3826,    0,    0,    0,
4389      3826, 3827, 3827, 3827, 3827,    0,    0, 3827, 3827, 3828,
4390      3828, 3828, 3828,    0, 3828,    0, 3828, 3829, 3829, 3829,
4391      3829,    0,    0, 3829, 3829, 3830, 3830, 3830,    0,    0,
4392         0, 3830, 3831, 3831, 3831, 3831,    0,    0, 3831, 3831,
4393      3832, 3832, 3832, 3832,    0,    0, 3832, 3832, 3833, 3833,
4394      3833, 3833,    0, 3833,    0, 3833, 3834, 3834, 3834, 3834,
4395
4396         0,    0, 3834, 3834, 3835, 3835, 3835,    0,    0,    0,
4397      3835, 3836, 3836, 3836, 3836,    0,    0, 3836, 3836, 3837,
4398      3837, 3837, 3837,    0,    0, 3837, 3837, 3838, 3838, 3838,
4399      3838,    0,    0, 3838, 3838, 3839, 3839, 3839, 3839,    0,
4400         0, 3839, 3839, 3840, 3840, 3840, 3840,    0,    0, 3840,
4401      3840, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841, 3841,
4402      3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3843,
4403      3843, 3843, 3843,    0, 3843,    0, 3843, 3844, 3844, 3844,
4404      3844,    0,    0, 3844, 3844, 3845, 3845, 3845, 3845,    0,
4405         0, 3845, 3845, 3846, 3846, 3846,    0,    0,    0, 3846,
4406
4407      3847, 3847, 3847, 3847,    0,    0, 3847, 3847, 3848, 3848,
4408      3848,    0,    0,    0, 3848, 3849, 3849, 3849, 3849,    0,
4409         0, 3849, 3849, 3850, 3850, 3850, 3850,    0, 3850,    0,
4410      3850, 3851, 3851, 3851, 3851,    0,    0, 3851, 3851, 3852,
4411      3852, 3852, 3852,    0, 3852,    0, 3852, 3853, 3853, 3853,
4412      3853,    0, 3853,    0, 3853, 3854, 3854, 3854, 3854,    0,
4413         0, 3854, 3854, 3855, 3855, 3855,    0,    0,    0, 3855,
4414      3856, 3856, 3856, 3856,    0,    0, 3856, 3856, 3857, 3857,
4415      3857, 3857,    0,    0, 3857, 3857, 3858, 3858, 3858,    0,
4416         0,    0, 3858, 3859, 3859, 3859, 3859,    0, 3859,    0,
4417
4418      3859, 3860, 3860, 3860, 3860,    0,    0, 3860, 3860, 3861,
4419      3861, 3861, 3861,    0,    0, 3861, 3861, 3862, 3862, 3862,
4420         0,    0,    0, 3862, 3863, 3863, 3863, 3863,    0,    0,
4421      3863, 3863, 3864, 3864, 3864, 3864,    0, 3864,    0, 3864,
4422      3865, 3865, 3865, 3865,    0,    0, 3865, 3865, 3866, 3866,
4423      3866,    0,    0,    0, 3866, 3867, 3867, 3867,    0,    0,
4424         0, 3867, 3868, 3868, 3868, 3868,    0,    0, 3868, 3868,
4425      3869, 3869, 3869,    0,    0,    0, 3869, 3870, 3870, 3870,
4426      3870,    0,    0, 3870, 3870, 3871, 3871, 3871,    0,    0,
4427         0, 3871, 3872, 3872, 3872,    0,    0,    0, 3872, 3873,
4428
4429      3873, 3873, 3873,    0,    0, 3873, 3873, 3874, 3874, 3874,
4430         0,    0,    0, 3874, 3875, 3875, 3875, 3875,    0,    0,
4431      3875, 3875, 3876, 3876, 3876,    0,    0,    0, 3876, 3877,
4432      3877, 3877, 3877,    0,    0, 3877, 3877, 3878, 3878, 3878,
4433      3878,    0,    0, 3878, 3878, 3879, 3879, 3879, 3879,    0,
4434         0, 3879, 3879, 3880, 3880, 3880,    0,    0,    0, 3880,
4435      3881, 3881, 3881, 3881,    0,    0, 3881, 3881, 3882, 3882,
4436      3882, 3882,    0,    0, 3882, 3882, 3883, 3883, 3883, 3883,
4437         0,    0, 3883, 3883, 3884, 3884, 3884, 3884,    0,    0,
4438      3884, 3884, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885,
4439
4440      3885, 3886, 3886, 3886, 3886, 3886, 3886, 3886, 3886, 3886,
4441      3887, 3887, 3887, 3887,    0,    0, 3887, 3887, 3888, 3888,
4442      3888, 3888,    0,    0, 3888, 3888, 3889, 3889, 3889,    0,
4443         0,    0, 3889, 3890, 3890, 3890,    0,    0,    0, 3890,
4444      3891, 3891, 3891, 3891,    0,    0, 3891, 3891, 3892, 3892,
4445      3892, 3892,    0,    0, 3892, 3892, 3893, 3893, 3893,    0,
4446         0,    0, 3893, 3894, 3894, 3894, 3894,    0,    0, 3894,
4447      3894, 3895, 3895, 3895,    0,    0,    0, 3895, 3896, 3896,
4448      3896, 3896,    0,    0, 3896, 3896, 3897, 3897, 3897,    0,
4449         0,    0, 3897, 3898, 3898, 3898,    0,    0,    0, 3898,
4450
4451      3899, 3899, 3899, 3899,    0,    0, 3899, 3899, 3900, 3900,
4452      3900, 3900,    0,    0, 3900, 3900, 3901, 3901, 3901,    0,
4453         0,    0, 3901, 3902, 3902, 3902, 3902,    0,    0, 3902,
4454      3902, 3903, 3903, 3903, 3903,    0,    0, 3903, 3903, 3904,
4455      3904, 3904,    0,    0,    0, 3904, 3905, 3905, 3905,    0,
4456         0,    0, 3905, 3906, 3906, 3906, 3906,    0,    0, 3906,
4457      3906, 3907, 3907, 3907,    0,    0,    0, 3907, 3908, 3908,
4458      3908, 3908,    0,    0, 3908, 3908, 3909, 3909, 3909,    0,
4459         0,    0, 3909, 3910, 3910, 3910,    0,    0,    0, 3910,
4460      3911, 3911, 3911,    0,    0,    0, 3911, 3912, 3912, 3912,
4461
4462      3912,    0,    0, 3912, 3912, 3913, 3913, 3913,    0,    0,
4463         0, 3913, 3914, 3914, 3914, 3914,    0,    0, 3914, 3914,
4464      3915, 3915, 3915, 3915,    0,    0, 3915, 3915, 3916, 3916,
4465      3916, 3916,    0,    0, 3916, 3916, 3917, 3917, 3917, 3917,
4466         0, 3917,    0, 3917, 3918, 3918, 3918, 3918,    0,    0,
4467      3918, 3918, 3919, 3919, 3919, 3919,    0,    0, 3919, 3919,
4468      3920, 3920, 3920, 3920,    0,    0, 3920, 3920, 3921, 3921,
4469      3921, 3921,    0,    0, 3921, 3921, 3922, 3922, 3922, 3922,
4470      3922, 3922, 3922, 3922, 3922, 3923, 3923, 3923, 3923, 3923,
4471      3923, 3923, 3923, 3923, 3924, 3924, 3924, 3924,    0,    0,
4472
4473      3924, 3924, 3925, 3925, 3925, 3925,    0,    0, 3925, 3925,
4474      3926, 3926, 3926,    0,    0,    0, 3926, 3927, 3927, 3927,
4475      3927,    0, 3927,    0, 3927, 3928, 3928, 3928, 3928,    0,
4476         0, 3928, 3928, 3929, 3929, 3929,    0,    0,    0, 3929,
4477      3930, 3930, 3930, 3930,    0,    0, 3930, 3930, 3931, 3931,
4478      3931, 3931,    0, 3931,    0, 3931, 3932, 3932, 3932, 3932,
4479         0,    0, 3932, 3932, 3933, 3933, 3933,    0,    0,    0,
4480      3933, 3934, 3934, 3934,    0,    0,    0, 3934, 3935, 3935,
4481      3935, 3935,    0,    0, 3935, 3935, 3936, 3936, 3936, 3936,
4482         0,    0, 3936, 3936, 3937, 3937, 3937,    0,    0,    0,
4483
4484      3937, 3938, 3938, 3938, 3938,    0,    0, 3938, 3938, 3939,
4485      3939, 3939, 3939,    0,    0, 3939, 3939, 3940, 3940, 3940,
4486         0,    0,    0, 3940, 3941, 3941, 3941,    0,    0,    0,
4487      3941, 3942, 3942, 3942, 3942,    0, 3942,    0, 3942, 3943,
4488      3943, 3943, 3943,    0,    0, 3943, 3943, 3944, 3944, 3944,
4489      3944,    0, 3944,    0, 3944, 3945, 3945, 3945,    0,    0,
4490         0, 3945, 3946, 3946, 3946,    0,    0,    0, 3946, 3947,
4491      3947, 3947, 3947,    0,    0, 3947, 3947, 3948, 3948, 3948,
4492      3948,    0, 3948,    0, 3948, 3949, 3949, 3949, 3949,    0,
4493         0, 3949, 3949, 3950, 3950, 3950, 3950,    0,    0, 3950,
4494
4495      3950, 3951, 3951, 3951, 3951,    0,    0, 3951, 3951, 3952,
4496      3952, 3952, 3952,    0, 3952,    0, 3952, 3953, 3953, 3953,
4497      3953,    0,    0, 3953, 3953, 3954, 3954, 3954, 3954,    0,
4498         0, 3954, 3954, 3955, 3955, 3955, 3955,    0,    0, 3955,
4499      3955, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956, 3956,
4500      3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3958,
4501      3958, 3958, 3958,    0,    0, 3958, 3958, 3959, 3959, 3959,
4502         0,    0,    0, 3959, 3960, 3960, 3960,    0,    0,    0,
4503      3960, 3961, 3961, 3961, 3961,    0,    0, 3961, 3961, 3962,
4504      3962, 3962,    0,    0,    0, 3962, 3963, 3963, 3963, 3963,
4505
4506         0,    0, 3963, 3963, 3964, 3964, 3964, 3964,    0,    0,
4507      3964, 3964, 3965, 3965, 3965,    0,    0,    0, 3965, 3966,
4508      3966, 3966,    0,    0,    0, 3966, 3967, 3967, 3967, 3967,
4509         0,    0, 3967, 3967, 3968, 3968, 3968,    0,    0,    0,
4510      3968, 3969, 3969, 3969,    0,    0,    0, 3969, 3970, 3970,
4511      3970,    0,    0,    0, 3970, 3971, 3971, 3971, 3971,    0,
4512         0, 3971, 3971, 3972, 3972, 3972,    0,    0,    0, 3972,
4513      3973, 3973, 3973,    0,    0,    0, 3973, 3974, 3974, 3974,
4514         0,    0,    0, 3974, 3975, 3975, 3975, 3975, 3975, 3975,
4515      3975, 3975, 3975, 3976, 3976, 3976, 3976, 3976, 3976, 3976,
4516
4517      3976, 3976, 3977, 3977, 3977, 3977, 3977, 3977, 3977, 3977,
4518      3977, 3978, 3978, 3978, 3978, 3978, 3978, 3978, 3978, 3978,
4519      3979, 3979, 3979, 3979, 3979, 3979, 3979, 3979, 3979, 3980,
4520      3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3468, 3468,
4521      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4522      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4523      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4524      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4525      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4526      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4527
4528      3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468, 3468,
4529      3468, 3468, 3468
4530     } ;
4531
4532 /* Table of booleans, true if rule could match eol. */
4533 static yyconst flex_int32_t yy_rule_can_match_eol[592] =
4534     {   0,
4535 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4536     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4537     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4538     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4539     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4540     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4541     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4542     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 
4543     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4544     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4545     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4546     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4547     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4548     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4549     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4550     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4551     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4552     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4553     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4554     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4555     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4556     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4557     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4558     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4559     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4560     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4561     1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
4562     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4563     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 
4564     1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4565
4566 static yy_state_type yy_last_accepting_state;
4567 static char *yy_last_accepting_cpos;
4568
4569 extern int surf_parse__flex_debug;
4570 int surf_parse__flex_debug = 0;
4571
4572 /* The intent behind this definition is that it'll catch
4573  * any uses of REJECT which flex missed.
4574  */
4575 #define REJECT reject_used_but_not_detected
4576 #define yymore() yymore_used_but_not_detected
4577 #define YY_MORE_ADJ 0
4578 #define YY_RESTORE_YY_MORE_OFFSET
4579 char *surf_parse_text;
4580 /* Validating XML processor for src/surf/simgrid.dtd.
4581  *
4582  * This program was generated with the FleXML XML processor generator.
4583  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4584  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4585  * (1.9.6).
4586  * 
4587  * There are two, intertwined parts to this program, part A and part B.
4588  *
4589  * Part A
4590  * ------
4591  * 
4592  * Some parts, here collectively called "Part A", are found in the 
4593  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4594  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4595  *
4596  * You can redistribute, use, perform, display and/or modify "Part A"
4597  * provided the following two conditions hold:
4598  *
4599  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4600  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4601  *    FITNESS FOR A PARTICULAR PURPOSE.
4602  *
4603  * 2. The program distribution conditions do not in any way affect the
4604  *    distribution conditions of the FleXML system used to generate this
4605  *    file or any version of FleXML derived from that system.
4606  *
4607  * Notice that these are explicit rights granted to you for files
4608  * generated by the FleXML system.  For your rights in connection with
4609  * the FleXML system itself please consult the GNU General Public License.
4610  * 
4611  * Part B
4612  * ------
4613  * 
4614  * The other parts, here collectively called "Part B", and which came 
4615  * from the DTD used by FleXML to generate this program, can be 
4616  * distributed (or not, as the case may be) under the terms of whoever
4617  * wrote them, provided these terms respect and obey the two conditions 
4618  * above under the heading "Part A".
4619  *
4620  * The author of and contributors to FleXML specifically disclaim
4621  * any copyright interest in "Part B", unless "Part B" was written 
4622  * by the author of or contributors to FleXML.
4623  * 
4624  */
4625
4626 /* Version strings. */
4627 const char surfxml_flexml_version[] = "1.9.6";
4628
4629 /* ANSI headers. */
4630 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4631 #include <stdio.h>
4632 #include <string.h>
4633 #include <assert.h>
4634 #include <stdarg.h>
4635 #include <ctype.h>
4636      
4637 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4638 # ifndef __STRICT_ANSI__
4639 #  include <io.h>
4640 #  include <process.h>
4641 # endif
4642 #else
4643 # include <unistd.h>
4644 #endif
4645      
4646 #ifndef FLEXML_INDEXSTACKSIZE
4647 #define FLEXML_INDEXSTACKSIZE 1000
4648 #endif
4649
4650 /* Generated definitions. */
4651 #define FLEXML_yylineno
4652 #ifndef FLEXML_BUFFERSTACKSIZE
4653 #define FLEXML_BUFFERSTACKSIZE 1000000
4654 #endif
4655 #define FLEXML_NEED_BUFFERLIT
4656
4657 /* XML processor api. */
4658 /* FleXML-provided data. */
4659 int surfxml_pcdata_ix;
4660 extern char *surfxml_bufferstack;
4661 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4662 AT_surfxml_mount_name AX_surfxml_mount_name;
4663 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4664 short int surfxml_mount_name_isset;
4665 AT_surfxml_random_generator AX_surfxml_random_generator;
4666 #define A_surfxml_random_generator AX_surfxml_random_generator
4667 short int surfxml_random_generator_isset;
4668 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4669 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4670 short int surfxml_ASroute_gw___dst_isset;
4671 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4672 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4673 short int surfxml_trace___connect_element_isset;
4674 AT_surfxml_prop_id AX_surfxml_prop_id;
4675 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4676 short int surfxml_prop_id_isset;
4677 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4678 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4679 short int surfxml_host___link_up_isset;
4680 AT_surfxml_host_id AX_surfxml_host_id;
4681 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4682 short int surfxml_host_id_isset;
4683 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4684 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4685 short int surfxml_ASroute_symmetrical_isset;
4686 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4687 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4688 short int surfxml_peer_lat_isset;
4689 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4690 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4691 short int surfxml_process_on___failure_isset;
4692 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4693 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4694 short int surfxml_link_latency___file_isset;
4695 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4696 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4697 short int surfxml_peer_availability___file_isset;
4698 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
4699 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
4700 short int surfxml_model___prop_value_isset;
4701 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4702 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4703 short int surfxml_link___ctn_direction_isset;
4704 AT_surfxml_host_state AX_surfxml_host_state;
4705 #define A_surfxml_host_state AX_surfxml_host_state
4706 short int surfxml_host_state_isset;
4707 AT_surfxml_AS_id AX_surfxml_AS_id;
4708 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4709 short int surfxml_AS_id_isset;
4710 AT_surfxml_host_power AX_surfxml_host_power;
4711 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4712 short int surfxml_host_power_isset;
4713 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4714 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4715 short int surfxml_cabinet_suffix_isset;
4716 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4717 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4718 short int surfxml_gpu_name_isset;
4719 AT_surfxml_router_id AX_surfxml_router_id;
4720 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4721 short int surfxml_router_id_isset;
4722 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4723 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4724 short int surfxml_storage___type_id_isset;
4725 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4726 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4727 short int surfxml_process_start___time_isset;
4728 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4729 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4730 short int surfxml_cabinet_bw_isset;
4731 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4732 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4733 short int surfxml_cluster_suffix_isset;
4734 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4735 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4736 short int surfxml_bypassASroute_dst_isset;
4737 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4738 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4739 short int surfxml_host___link_id_isset;
4740 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
4741 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
4742 short int surfxml_model___prop_id_isset;
4743 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4744 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4745 short int surfxml_ASroute_src_isset;
4746 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4747 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4748 short int surfxml_cluster_prefix_isset;
4749 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4750 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4751 short int surfxml_cabinet_prefix_isset;
4752 AT_surfxml_trace_file AX_surfxml_trace_file;
4753 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4754 short int surfxml_trace_file_isset;
4755 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4756 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4757 short int surfxml_link_sharing___policy_isset;
4758 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4759 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4760 short int surfxml_storage_typeId_isset;
4761 AT_surfxml_random_min AX_surfxml_random_min;
4762 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4763 short int surfxml_random_min_isset;
4764 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4765 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4766 short int surfxml_link___ctn_id_isset;
4767 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4768 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4769 short int surfxml_peer_bw___out_isset;
4770 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4771 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4772 short int surfxml_cluster_availability___file_isset;
4773 AT_surfxml_storage_content AX_surfxml_storage_content;
4774 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4775 short int surfxml_storage_content_isset;
4776 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4777 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4778 short int surfxml_process_kill___time_isset;
4779 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4780 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4781 short int surfxml_cluster_bb___bw_isset;
4782 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4783 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4784 short int surfxml_host_pstate_isset;
4785 AT_surfxml_argument_value AX_surfxml_argument_value;
4786 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4787 short int surfxml_argument_value_isset;
4788 AT_surfxml_link_state AX_surfxml_link_state;
4789 #define A_surfxml_link_state AX_surfxml_link_state
4790 short int surfxml_link_state_isset;
4791 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4792 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4793 short int surfxml_cluster_loopback___bw_isset;
4794 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4795 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4796 short int surfxml_ASroute_gw___src_isset;
4797 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4798 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4799 short int surfxml_AS_routing_isset;
4800 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4801 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4802 short int surfxml_link_bandwidth_isset;
4803 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4804 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4805 short int surfxml_cluster_id_isset;
4806 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4807 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4808 short int surfxml_peer_bw___in_isset;
4809 AT_surfxml_random_mean AX_surfxml_random_mean;
4810 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4811 short int surfxml_random_mean_isset;
4812 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4813 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4814 short int surfxml_storage___type_size_isset;
4815 AT_surfxml_storage_attach AX_surfxml_storage_attach;
4816 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
4817 short int surfxml_storage_attach_isset;
4818 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4819 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4820 short int surfxml_cluster_bb___lat_isset;
4821 AT_surfxml_link_latency AX_surfxml_link_latency;
4822 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4823 short int surfxml_link_latency_isset;
4824 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4825 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4826 short int surfxml_backbone_bandwidth_isset;
4827 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4828 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4829 short int surfxml_backbone_id_isset;
4830 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4831 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4832 short int surfxml_trace___connect_kind_isset;
4833 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4834 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4835 short int surfxml_cabinet_lat_isset;
4836 AT_surfxml_random_seed AX_surfxml_random_seed;
4837 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4838 short int surfxml_random_seed_isset;
4839 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4840 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4841 short int surfxml_cluster_state___file_isset;
4842 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4843 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4844 short int surfxml_link_bandwidth___file_isset;
4845 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4846 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4847 short int surfxml_storage___type_content_isset;
4848 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4849 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4850 short int surfxml_route_symmetrical_isset;
4851 AT_surfxml_random_id AX_surfxml_random_id;
4852 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4853 short int surfxml_random_id_isset;
4854 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4855 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4856 short int surfxml_mstorage_name_isset;
4857 AT_surfxml_random_max AX_surfxml_random_max;
4858 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4859 short int surfxml_random_max_isset;
4860 AT_surfxml_link_id AX_surfxml_link_id;
4861 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4862 short int surfxml_link_id_isset;
4863 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4864 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4865 short int surfxml_cluster_topology_isset;
4866 AT_surfxml_process_host AX_surfxml_process_host;
4867 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4868 short int surfxml_process_host_isset;
4869 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4870 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4871 short int surfxml_cabinet_id_isset;
4872 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4873 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4874 short int surfxml_host_availability___file_isset;
4875 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4876 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4877 short int surfxml_cluster_lat_isset;
4878 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4879 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4880 short int surfxml_router_coordinates_isset;
4881 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4882 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4883 short int surfxml_trace_periodicity_isset;
4884 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4885 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4886 short int surfxml_cluster_bb___sharing___policy_isset;
4887 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4888 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4889 short int surfxml_peer_state___file_isset;
4890 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4891 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4892 short int surfxml_peer_coordinates_isset;
4893 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4894 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4895 short int surfxml_bypassASroute_src_isset;
4896 AT_surfxml_prop_value AX_surfxml_prop_value;
4897 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4898 short int surfxml_prop_value_isset;
4899 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4900 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4901 short int surfxml_mstorage_typeId_isset;
4902 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4903 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4904 short int surfxml_ASroute_dst_isset;
4905 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4906 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4907 short int surfxml_link_state___file_isset;
4908 AT_surfxml_random_radical AX_surfxml_random_radical;
4909 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4910 short int surfxml_random_radical_isset;
4911 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4912 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4913 short int surfxml_mount_storageId_isset;
4914 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4915 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4916 short int surfxml_bypassASroute_gw___src_isset;
4917 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4918 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4919 short int surfxml_trace___connect_trace_isset;
4920 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4921 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4922 short int surfxml_cluster_power_isset;
4923 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4924 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4925 short int surfxml_cluster_topo___parameters_isset;
4926 AT_surfxml_process_function AX_surfxml_process_function;
4927 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4928 short int surfxml_process_function_isset;
4929 AT_surfxml_peer_id AX_surfxml_peer_id;
4930 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4931 short int surfxml_peer_id_isset;
4932 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4933 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4934 short int surfxml_cabinet_radical_isset;
4935 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4936 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4937 short int surfxml_cluster_loopback___lat_isset;
4938 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4939 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4940 short int surfxml_storage_content___type_isset;
4941 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4942 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4943 short int surfxml_cluster_router___id_isset;
4944 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4945 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4946 short int surfxml_cluster_sharing___policy_isset;
4947 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4948 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4949 short int surfxml_bypassRoute_dst_isset;
4950 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4951 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4952 short int surfxml_cabinet_power_isset;
4953 AT_surfxml_host_core AX_surfxml_host_core;
4954 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4955 short int surfxml_host_core_isset;
4956 AT_surfxml_host_availability AX_surfxml_host_availability;
4957 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4958 short int surfxml_host_availability_isset;
4959 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4960 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4961 short int surfxml_storage___type_model_isset;
4962 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4963 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4964 short int surfxml_bypassRoute_src_isset;
4965 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4966 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4967 short int surfxml_backbone_latency_isset;
4968 AT_surfxml_route_src AX_surfxml_route_src;
4969 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4970 short int surfxml_route_src_isset;
4971 AT_surfxml_storage_id AX_surfxml_storage_id;
4972 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4973 short int surfxml_storage_id_isset;
4974 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4975 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4976 short int surfxml_storage___type_content___type_isset;
4977 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4978 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4979 short int surfxml_host_coordinates_isset;
4980 AT_surfxml_trace_id AX_surfxml_trace_id;
4981 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4982 short int surfxml_trace_id_isset;
4983 AT_surfxml_peer_power AX_surfxml_peer_power;
4984 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4985 short int surfxml_peer_power_isset;
4986 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4987 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4988 short int surfxml_cluster_radical_isset;
4989 AT_surfxml_config_id AX_surfxml_config_id;
4990 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4991 short int surfxml_config_id_isset;
4992 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4993 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4994 short int surfxml_bypassASroute_gw___dst_isset;
4995 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4996 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4997 short int surfxml_host___link_down_isset;
4998 AT_surfxml_include_file AX_surfxml_include_file;
4999 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
5000 short int surfxml_include_file_isset;
5001 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
5002 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
5003 short int surfxml_random_std___deviation_isset;
5004 AT_surfxml_cluster_core AX_surfxml_cluster_core;
5005 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
5006 short int surfxml_cluster_core_isset;
5007 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
5008 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
5009 short int surfxml_cluster_limiter___link_isset;
5010 AT_surfxml_host_state___file AX_surfxml_host_state___file;
5011 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
5012 short int surfxml_host_state___file_isset;
5013 AT_surfxml_route_dst AX_surfxml_route_dst;
5014 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
5015 short int surfxml_route_dst_isset;
5016 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
5017 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
5018 short int surfxml_cluster_bw_isset;
5019 AT_surfxml_platform_version AX_surfxml_platform_version;
5020 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
5021 short int surfxml_platform_version_isset;
5022
5023 /* XML state. */
5024 #ifdef FLEX_DEBUG
5025 # define ENTER(state)   debug_enter(state,#state)
5026 # define LEAVE          debug_leave()
5027 # define SET(state)     debug_set(state,#state)
5028   static void debug_enter(int, const char*);
5029   static void debug_leave(void);
5030   static void debug_set(int, const char*);
5031 #else
5032 # define ENTER(state)   (yy_push_state(state))
5033 # define LEAVE          (yy_pop_state())
5034 # define SET(state)     BEGIN(state)
5035 #endif
5036
5037 /* Generic actions. */
5038 #define SKIP    /*skip*/
5039 #define SUCCEED        CLEANUP; return 0
5040
5041 #define FAIL    return fail
5042 static int fail(const char*, ...);
5043
5044 enum {flexml_max_err_msg_size = 512};
5045 static char flexml_err_msg[flexml_max_err_msg_size];
5046 const char * surfxml_parse_err_msg()
5047 {
5048     return flexml_err_msg;
5049 }
5050 static void reset_surfxml_parse_err_msg()
5051 {
5052     flexml_err_msg[0] = '\0';
5053 }
5054
5055 /* Cleanup */
5056 static void cleanup(void);
5057 #define CLEANUP  cleanup()
5058
5059 /* Text buffer stack handling. */
5060 char *surfxml_bufferstack = NULL;
5061 static int blimit = FLEXML_BUFFERSTACKSIZE;
5062 static int bnext = 1;
5063
5064 static int *indexstack = NULL;
5065 static int ilimit = FLEXML_INDEXSTACKSIZE;
5066 static int inext = 1;
5067
5068 #define BUFFERSET(P)  (P = bnext)
5069 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5070 #define BUFFERDONE    (BUFFERPUTC('\0'))
5071
5072 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
5073
5074 /* after this is called, there are at least 2 slots left in the stack */
5075 static int ck_blimit()
5076 {
5077      if (bnext >= blimit) {
5078          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5079          {
5080              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5081              assert(temp);
5082              surfxml_bufferstack = temp;
5083          }
5084      }
5085      return 0;
5086 }
5087
5088 /* after this is called, there are at least 2 slots left in the stack */
5089 static int ck_ilimit()
5090 {
5091      if (inext >= ilimit) {
5092          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5093          {
5094              int *temp = (int *) realloc(indexstack, ilimit);
5095              assert(temp);
5096              indexstack = temp;
5097          }
5098      }
5099      return 0;
5100 }
5101
5102 #ifdef FLEXML_NEED_BUFFERLIT
5103 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5104 {
5105    BUFFERSET(*pp);
5106    if (c) {
5107       const char *s = strchr(text, c), *e = strrchr(text, c);
5108       assert(s && e && s <= e);
5109       ++s;
5110       while (s < e) {
5111          if (isspace(*s)) {
5112             BUFFERPUTC(' ');
5113             do ++s; while (s < e && isspace(*s));
5114          } else
5115            BUFFERPUTC(*s++);
5116       }
5117    } else {
5118       const char *s = text;
5119       while (*s)
5120         BUFFERPUTC(*s++);
5121    }
5122    BUFFERDONE;
5123 }
5124 #endif
5125
5126 static void pushbuffer(int p)
5127 {
5128     ck_ilimit();
5129     indexstack[inext++] = p;
5130     indexstack[inext++] = bnext;    
5131 }
5132
5133 static int popbuffer(void)
5134 {
5135     assert(inext >= 2);
5136     bnext = indexstack[--inext];
5137     return indexstack[--inext];
5138 }
5139
5140 /* General internal entities are `unput' back onto the input stream... */
5141 #define ENTITYTEXT(T) \
5142   { char *s = (T), *e = s+strlen(s);\
5143     while (--e >= s) { unput(*e); }}
5144
5145 /* Flex standard options. */
5146 #define YY_NO_INPUT 1
5147 /* Flex user-requested options. */
5148 /* XML character classes (currently restricted to ASCII). */
5149 /* "Common syntactic structures." */
5150 /* "Names and Tokens." */
5151 /* Miscellaneous. */
5152 /* Parser states (flex `exclusive start conditions'):
5153  *
5154  * PROLOG       the XML prolog of the document before <?xml...>
5155  * DOCTYPE      the XML prolog of the document after <?xml...>
5156  * EPILOG       after the root element
5157  * INCOMMENT    inside an XML comment <!--....-->
5158  * INPI         inside an XML PI <?...?>
5159  * VALUE1       inside a '...'-delimited literal
5160  * VALUE2       inside a "..."-delimited literal
5161  * CDATA        inside a <![CDATA[...] ]> section.
5162  * ROOT_<tag>   expect root element <tag>
5163  * AL_<tag>     inside the attribute list for <tag>
5164  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5165  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5166  */
5167
5168 /* State names. */
5169 const char* *surfxml_statenames=NULL;
5170
5171 #define INITIAL 0
5172 #define PROLOG 1
5173 #define DOCTYPE 2
5174 #define EPILOG 3
5175 #define INCOMMENT 4
5176 #define INPI 5
5177 #define VALUE1 6
5178 #define VALUE2 7
5179 #define CDATA 8
5180 #define ROOT_surfxml_platform 9
5181 #define AL_surfxml_platform 10
5182 #define S_surfxml_platform 11
5183 #define S_surfxml_platform_1 12
5184 #define S_surfxml_platform_2 13
5185 #define S_surfxml_platform_3 14
5186 #define S_surfxml_platform_4 15
5187 #define S_surfxml_platform_5 16
5188 #define S_surfxml_platform_6 17
5189 #define S_surfxml_platform_7 18
5190 #define S_surfxml_platform_8 19
5191 #define E_surfxml_platform 20
5192 #define AL_surfxml_include 21
5193 #define S_surfxml_include 22
5194 #define S_surfxml_include_1 23
5195 #define S_surfxml_include_2 24
5196 #define E_surfxml_include 25
5197 #define AL_surfxml_trace 26
5198 #define IN_trace 27
5199 #define AL_surfxml_random 28
5200 #define E_surfxml_random 29
5201 #define AL_surfxml_trace___connect 30
5202 #define E_surfxml_trace___connect 31
5203 #define AL_surfxml_AS 32
5204 #define S_surfxml_AS 33
5205 #define S_surfxml_AS_1 34
5206 #define S_surfxml_AS_2 35
5207 #define S_surfxml_AS_3 36
5208 #define S_surfxml_AS_4 37
5209 #define S_surfxml_AS_5 38
5210 #define S_surfxml_AS_6 39
5211 #define S_surfxml_AS_7 40
5212 #define S_surfxml_AS_8 41
5213 #define S_surfxml_AS_9 42
5214 #define S_surfxml_AS_10 43
5215 #define S_surfxml_AS_11 44
5216 #define S_surfxml_AS_12 45
5217 #define S_surfxml_AS_13 46
5218 #define S_surfxml_AS_14 47
5219 #define S_surfxml_AS_15 48
5220 #define S_surfxml_AS_16 49
5221 #define E_surfxml_AS 50
5222 #define AL_surfxml_storage___type 51
5223 #define S_surfxml_storage___type 52
5224 #define S_surfxml_storage___type_1 53
5225 #define S_surfxml_storage___type_2 54
5226 #define E_surfxml_storage___type 55
5227 #define AL_surfxml_mount 56
5228 #define E_surfxml_mount 57
5229 #define AL_surfxml_mstorage 58
5230 #define E_surfxml_mstorage 59
5231 #define AL_surfxml_host 60
5232 #define S_surfxml_host 61
5233 #define S_surfxml_host_1 62
5234 #define S_surfxml_host_2 63
5235 #define E_surfxml_host 64
5236 #define AL_surfxml_storage 65
5237 #define S_surfxml_storage 66
5238 #define S_surfxml_storage_1 67
5239 #define S_surfxml_storage_2 68
5240 #define E_surfxml_storage 69
5241 #define AL_surfxml_gpu 70
5242 #define E_surfxml_gpu 71
5243 #define AL_surfxml_host___link 72
5244 #define E_surfxml_host___link 73
5245 #define AL_surfxml_cluster 74
5246 #define S_surfxml_cluster 75
5247 #define S_surfxml_cluster_1 76
5248 #define S_surfxml_cluster_2 77
5249 #define E_surfxml_cluster 78
5250 #define AL_surfxml_cabinet 79
5251 #define E_surfxml_cabinet 80
5252 #define AL_surfxml_peer 81
5253 #define E_surfxml_peer 82
5254 #define AL_surfxml_router 83
5255 #define E_surfxml_router 84
5256 #define AL_surfxml_backbone 85
5257 #define E_surfxml_backbone 86
5258 #define AL_surfxml_link 87
5259 #define S_surfxml_link 88
5260 #define S_surfxml_link_1 89
5261 #define S_surfxml_link_2 90
5262 #define E_surfxml_link 91
5263 #define AL_surfxml_route 92
5264 #define S_surfxml_route 93
5265 #define S_surfxml_route_1 94
5266 #define S_surfxml_route_2 95
5267 #define E_surfxml_route 96
5268 #define AL_surfxml_ASroute 97
5269 #define S_surfxml_ASroute 98
5270 #define S_surfxml_ASroute_1 99
5271 #define S_surfxml_ASroute_2 100
5272 #define E_surfxml_ASroute 101
5273 #define AL_surfxml_link___ctn 102
5274 #define E_surfxml_link___ctn 103
5275 #define AL_surfxml_bypassRoute 104
5276 #define S_surfxml_bypassRoute 105
5277 #define S_surfxml_bypassRoute_1 106
5278 #define S_surfxml_bypassRoute_2 107
5279 #define E_surfxml_bypassRoute 108
5280 #define AL_surfxml_bypassASroute 109
5281 #define S_surfxml_bypassASroute 110
5282 #define S_surfxml_bypassASroute_1 111
5283 #define S_surfxml_bypassASroute_2 112
5284 #define E_surfxml_bypassASroute 113
5285 #define AL_surfxml_process 114
5286 #define S_surfxml_process 115
5287 #define S_surfxml_process_1 116
5288 #define S_surfxml_process_2 117
5289 #define E_surfxml_process 118
5290 #define AL_surfxml_argument 119
5291 #define E_surfxml_argument 120
5292 #define AL_surfxml_config 121
5293 #define S_surfxml_config 122
5294 #define S_surfxml_config_1 123
5295 #define S_surfxml_config_2 124
5296 #define E_surfxml_config 125
5297 #define AL_surfxml_prop 126
5298 #define E_surfxml_prop 127
5299 #define AL_surfxml_model___prop 128
5300 #define E_surfxml_model___prop 129
5301 #define IMPOSSIBLE 130
5302
5303 #ifndef YY_NO_UNISTD_H
5304 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5305  * down here because we want the user's section 1 to have been scanned first.
5306  * The user has a chance to override it with an option.
5307  */
5308 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5309 #  ifndef __STRICT_ANSI__
5310 #    include <io.h>
5311 #    include <process.h>
5312 #  endif
5313 #else
5314 #  include <unistd.h>
5315 #endif
5316 #endif
5317
5318 #ifndef YY_EXTRA_TYPE
5319 #define YY_EXTRA_TYPE void *
5320 #endif
5321
5322 static int yy_init_globals (void );
5323
5324 /* Accessor methods to globals.
5325    These are made visible to non-reentrant scanners for convenience. */
5326
5327 int surf_parse_lex_destroy (void );
5328
5329 int surf_parse_get_debug (void );
5330
5331 void surf_parse_set_debug (int debug_flag  );
5332
5333 YY_EXTRA_TYPE surf_parse_get_extra (void );
5334
5335 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5336
5337 FILE *surf_parse_get_in (void );
5338
5339 void surf_parse_set_in  (FILE * in_str  );
5340
5341 FILE *surf_parse_get_out (void );
5342
5343 void surf_parse_set_out  (FILE * out_str  );
5344
5345 int surf_parse_get_leng (void );
5346
5347 char *surf_parse_get_text (void );
5348
5349 int surf_parse_get_lineno (void );
5350
5351 void surf_parse_set_lineno (int line_number  );
5352
5353 /* Macros after this point can all be overridden by user definitions in
5354  * section 1.
5355  */
5356
5357 #ifndef YY_SKIP_YYWRAP
5358 #ifdef __cplusplus
5359 extern "C" int surf_parse_wrap (void );
5360 #else
5361 extern int surf_parse_wrap (void );
5362 #endif
5363 #endif
5364
5365 #ifndef yytext_ptr
5366 static void yy_flex_strncpy (char *,yyconst char *,int );
5367 #endif
5368
5369 #ifdef YY_NEED_STRLEN
5370 static int yy_flex_strlen (yyconst char * );
5371 #endif
5372
5373 #ifndef YY_NO_INPUT
5374
5375 #ifdef __cplusplus
5376 static int yyinput (void );
5377 #else
5378 static int input (void );
5379 #endif
5380
5381 #endif
5382
5383         static int yy_start_stack_ptr = 0;
5384         static int yy_start_stack_depth = 0;
5385         static int *yy_start_stack = NULL;
5386     
5387     static void yy_push_state (int new_state );
5388     
5389     static void yy_pop_state (void );
5390     
5391 /* Amount of stuff to slurp up with each read. */
5392 #ifndef YY_READ_BUF_SIZE
5393 #ifdef __ia64__
5394 /* On IA-64, the buffer size is 16k, not 8k */
5395 #define YY_READ_BUF_SIZE 16384
5396 #else
5397 #define YY_READ_BUF_SIZE 8192
5398 #endif /* __ia64__ */
5399 #endif
5400
5401 /* Copy whatever the last rule matched to the standard output. */
5402 #ifndef ECHO
5403 /* This used to be an fputs(), but since the string might contain NUL's,
5404  * we now use fwrite().
5405  */
5406 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5407 #endif
5408
5409 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5410  * is returned in "result".
5411  */
5412 #ifndef YY_INPUT
5413 #define YY_INPUT(buf,result,max_size) \
5414         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5415                 { \
5416                 int c = '*'; \
5417                 size_t n; \
5418                 for ( n = 0; n < max_size && \
5419                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5420                         buf[n] = (char) c; \
5421                 if ( c == '\n' ) \
5422                         buf[n++] = (char) c; \
5423                 if ( c == EOF && ferror( surf_parse_in ) ) \
5424                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5425                 result = n; \
5426                 } \
5427         else \
5428                 { \
5429                 errno=0; \
5430                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5431                         { \
5432                         if( errno != EINTR) \
5433                                 { \
5434                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5435                                 break; \
5436                                 } \
5437                         errno=0; \
5438                         clearerr(surf_parse_in); \
5439                         } \
5440                 }\
5441 \
5442
5443 #endif
5444
5445 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5446  * we don't want an extra ';' after the "return" because that will cause
5447  * some compilers to complain about unreachable statements.
5448  */
5449 #ifndef yyterminate
5450 #define yyterminate() return YY_NULL
5451 #endif
5452
5453 /* Number of entries by which start-condition stack grows. */
5454 #ifndef YY_START_STACK_INCR
5455 #define YY_START_STACK_INCR 25
5456 #endif
5457
5458 /* Report a fatal error. */
5459 #ifndef YY_FATAL_ERROR
5460 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5461 #endif
5462
5463 /* end tables serialization structures and prototypes */
5464
5465 /* Default declaration of generated scanner - a define so the user can
5466  * easily add parameters.
5467  */
5468 #ifndef YY_DECL
5469 #define YY_DECL_IS_OURS 1
5470
5471 extern int surf_parse_lex (void);
5472
5473 #define YY_DECL int surf_parse_lex (void)
5474 #endif /* !YY_DECL */
5475
5476 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5477  * have been set up.
5478  */
5479 #ifndef YY_USER_ACTION
5480 #define YY_USER_ACTION
5481 #endif
5482
5483 /* Code executed at the end of each rule. */
5484 #ifndef YY_BREAK
5485 #define YY_BREAK break;
5486 #endif
5487
5488 #define YY_RULE_SETUP \
5489         YY_USER_ACTION
5490
5491 /** The main scanner function which does all the work.
5492  */
5493 YY_DECL
5494 {
5495         register yy_state_type yy_current_state;
5496         register char *yy_cp, *yy_bp;
5497         register int yy_act;
5498     
5499  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5500  SET(PROLOG);
5501  reset_surfxml_parse_err_msg();
5502  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5503  assert(surfxml_bufferstack);
5504  #ifdef FLEX_DEBUG
5505  {
5506      int i;
5507      for (i = 0; i < blimit; i++) {
5508          surfxml_bufferstack[i] = '\377';
5509      }
5510  }
5511  #endif
5512  surfxml_bufferstack[0] = '\0';
5513  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5514  assert(indexstack);
5515  indexstack[0] = 0;
5516
5517   /* FleXML_init */
5518   bnext = inext = 1;
5519   surfxml_bufferliteral('\0', &bnext, "0.0");
5520   surfxml_bufferliteral('\0', &bnext, "2147483647");
5521   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5522   surfxml_bufferliteral('\0', &bnext, "1");
5523   surfxml_bufferliteral('\0', &bnext, "1.0");
5524   surfxml_bufferliteral('\0', &bnext, "0.0");
5525   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5526   surfxml_bufferliteral('\0', &bnext, "1");
5527   surfxml_bufferliteral('\0', &bnext, "0.0");
5528   surfxml_bufferliteral('\0', &bnext, "-1.0");
5529   surfxml_bufferliteral('\0', &bnext, "-1.0");
5530   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5531   surfxml_statenames[PROLOG] = NULL;
5532   surfxml_statenames[DOCTYPE] = NULL;
5533   surfxml_statenames[EPILOG] = NULL;
5534   surfxml_statenames[INCOMMENT] = NULL;
5535   surfxml_statenames[INPI] = NULL;
5536   surfxml_statenames[VALUE1] = NULL;
5537   surfxml_statenames[VALUE2] = NULL;
5538   surfxml_statenames[CDATA] = NULL;
5539   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5540   surfxml_statenames[AL_surfxml_platform] = NULL;
5541   surfxml_statenames[S_surfxml_platform] = "platform";
5542   surfxml_statenames[S_surfxml_platform_1] = "platform";
5543   surfxml_statenames[S_surfxml_platform_2] = "platform";
5544   surfxml_statenames[S_surfxml_platform_3] = "platform";
5545   surfxml_statenames[S_surfxml_platform_4] = "platform";
5546   surfxml_statenames[S_surfxml_platform_5] = "platform";
5547   surfxml_statenames[S_surfxml_platform_6] = "platform";
5548   surfxml_statenames[S_surfxml_platform_7] = "platform";
5549   surfxml_statenames[S_surfxml_platform_8] = "platform";
5550   surfxml_statenames[E_surfxml_platform] = "platform";
5551   surfxml_statenames[AL_surfxml_include] = NULL;
5552   surfxml_statenames[S_surfxml_include] = "include";
5553   surfxml_statenames[S_surfxml_include_1] = "include";
5554   surfxml_statenames[S_surfxml_include_2] = "include";
5555   surfxml_statenames[E_surfxml_include] = "include";
5556   surfxml_statenames[AL_surfxml_trace] = NULL;
5557   surfxml_statenames[IN_trace] = "trace";
5558   surfxml_statenames[AL_surfxml_random] = NULL;
5559   surfxml_statenames[E_surfxml_random] = "random";
5560   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5561   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5562   surfxml_statenames[AL_surfxml_AS] = NULL;
5563   surfxml_statenames[S_surfxml_AS] = "AS";
5564   surfxml_statenames[S_surfxml_AS_1] = "AS";
5565   surfxml_statenames[S_surfxml_AS_2] = "AS";
5566   surfxml_statenames[S_surfxml_AS_3] = "AS";
5567   surfxml_statenames[S_surfxml_AS_4] = "AS";
5568   surfxml_statenames[S_surfxml_AS_5] = "AS";
5569   surfxml_statenames[S_surfxml_AS_6] = "AS";
5570   surfxml_statenames[S_surfxml_AS_7] = "AS";
5571   surfxml_statenames[S_surfxml_AS_8] = "AS";
5572   surfxml_statenames[S_surfxml_AS_9] = "AS";
5573   surfxml_statenames[S_surfxml_AS_10] = "AS";
5574   surfxml_statenames[S_surfxml_AS_11] = "AS";
5575   surfxml_statenames[S_surfxml_AS_12] = "AS";
5576   surfxml_statenames[S_surfxml_AS_13] = "AS";
5577   surfxml_statenames[S_surfxml_AS_14] = "AS";
5578   surfxml_statenames[S_surfxml_AS_15] = "AS";
5579   surfxml_statenames[S_surfxml_AS_16] = "AS";
5580   surfxml_statenames[E_surfxml_AS] = "AS";
5581   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5582   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5583   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5584   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5585   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5586   surfxml_statenames[AL_surfxml_mount] = NULL;
5587   surfxml_statenames[E_surfxml_mount] = "mount";
5588   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5589   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5590   surfxml_statenames[AL_surfxml_host] = NULL;
5591   surfxml_statenames[S_surfxml_host] = "host";
5592   surfxml_statenames[S_surfxml_host_1] = "host";
5593   surfxml_statenames[S_surfxml_host_2] = "host";
5594   surfxml_statenames[E_surfxml_host] = "host";
5595   surfxml_statenames[AL_surfxml_storage] = NULL;
5596   surfxml_statenames[S_surfxml_storage] = "storage";
5597   surfxml_statenames[S_surfxml_storage_1] = "storage";
5598   surfxml_statenames[S_surfxml_storage_2] = "storage";
5599   surfxml_statenames[E_surfxml_storage] = "storage";
5600   surfxml_statenames[AL_surfxml_gpu] = NULL;
5601   surfxml_statenames[E_surfxml_gpu] = "gpu";
5602   surfxml_statenames[AL_surfxml_host___link] = NULL;
5603   surfxml_statenames[E_surfxml_host___link] = "host_link";
5604   surfxml_statenames[AL_surfxml_cluster] = NULL;
5605   surfxml_statenames[S_surfxml_cluster] = "cluster";
5606   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5607   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5608   surfxml_statenames[E_surfxml_cluster] = "cluster";
5609   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5610   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5611   surfxml_statenames[AL_surfxml_peer] = NULL;
5612   surfxml_statenames[E_surfxml_peer] = "peer";
5613   surfxml_statenames[AL_surfxml_router] = NULL;
5614   surfxml_statenames[E_surfxml_router] = "router";
5615   surfxml_statenames[AL_surfxml_backbone] = NULL;
5616   surfxml_statenames[E_surfxml_backbone] = "backbone";
5617   surfxml_statenames[AL_surfxml_link] = NULL;
5618   surfxml_statenames[S_surfxml_link] = "link";
5619   surfxml_statenames[S_surfxml_link_1] = "link";
5620   surfxml_statenames[S_surfxml_link_2] = "link";
5621   surfxml_statenames[E_surfxml_link] = "link";
5622   surfxml_statenames[AL_surfxml_route] = NULL;
5623   surfxml_statenames[S_surfxml_route] = "route";
5624   surfxml_statenames[S_surfxml_route_1] = "route";
5625   surfxml_statenames[S_surfxml_route_2] = "route";
5626   surfxml_statenames[E_surfxml_route] = "route";
5627   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5628   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5629   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5630   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5631   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5632   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5633   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5634   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5635   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5636   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5637   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5638   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5639   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5640   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5641   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5642   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5643   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5644   surfxml_statenames[AL_surfxml_process] = NULL;
5645   surfxml_statenames[S_surfxml_process] = "process";
5646   surfxml_statenames[S_surfxml_process_1] = "process";
5647   surfxml_statenames[S_surfxml_process_2] = "process";
5648   surfxml_statenames[E_surfxml_process] = "process";
5649   surfxml_statenames[AL_surfxml_argument] = NULL;
5650   surfxml_statenames[E_surfxml_argument] = "argument";
5651   surfxml_statenames[AL_surfxml_config] = NULL;
5652   surfxml_statenames[S_surfxml_config] = "config";
5653   surfxml_statenames[S_surfxml_config_1] = "config";
5654   surfxml_statenames[S_surfxml_config_2] = "config";
5655   surfxml_statenames[E_surfxml_config] = "config";
5656   surfxml_statenames[AL_surfxml_prop] = NULL;
5657   surfxml_statenames[E_surfxml_prop] = "prop";
5658   surfxml_statenames[AL_surfxml_model___prop] = NULL;
5659   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
5660   }
5661
5662  /* COMMENTS and PIs: handled uniformly for efficiency. */
5663
5664         if ( !(yy_init) )
5665                 {
5666                 (yy_init) = 1;
5667
5668 #ifdef YY_USER_INIT
5669                 YY_USER_INIT;
5670 #endif
5671
5672                 if ( ! (yy_start) )
5673                         (yy_start) = 1; /* first start state */
5674
5675                 if ( ! surf_parse_in )
5676                         surf_parse_in = stdin;
5677
5678                 if ( ! surf_parse_out )
5679                         surf_parse_out = stdout;
5680
5681                 if ( ! YY_CURRENT_BUFFER ) {
5682                         surf_parse_ensure_buffer_stack ();
5683                         YY_CURRENT_BUFFER_LVALUE =
5684                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5685                 }
5686
5687                 surf_parse__load_buffer_state( );
5688                 }
5689
5690         while ( 1 )             /* loops until end-of-file is reached */
5691                 {
5692                 yy_cp = (yy_c_buf_p);
5693
5694                 /* Support of surf_parse_text. */
5695                 *yy_cp = (yy_hold_char);
5696
5697                 /* yy_bp points to the position in yy_ch_buf of the start of
5698                  * the current run.
5699                  */
5700                 yy_bp = yy_cp;
5701
5702                 yy_current_state = (yy_start);
5703 yy_match:
5704                 do
5705                         {
5706                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5707                         if ( yy_accept[yy_current_state] )
5708                                 {
5709                                 (yy_last_accepting_state) = yy_current_state;
5710                                 (yy_last_accepting_cpos) = yy_cp;
5711                                 }
5712                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5713                                 {
5714                                 yy_current_state = (int) yy_def[yy_current_state];
5715                                 if ( yy_current_state >= 3469 )
5716                                         yy_c = yy_meta[(unsigned int) yy_c];
5717                                 }
5718                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5719                         ++yy_cp;
5720                         }
5721                 while ( yy_base[yy_current_state] != 12639 );
5722
5723 yy_find_action:
5724                 yy_act = yy_accept[yy_current_state];
5725                 if ( yy_act == 0 )
5726                         { /* have to back up */
5727                         yy_cp = (yy_last_accepting_cpos);
5728                         yy_current_state = (yy_last_accepting_state);
5729                         yy_act = yy_accept[yy_current_state];
5730                         }
5731
5732                 YY_DO_BEFORE_ACTION;
5733
5734                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5735                         {
5736                         int yyl;
5737                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5738                                 if ( surf_parse_text[yyl] == '\n' )
5739                                            
5740     surf_parse_lineno++;
5741 ;
5742                         }
5743
5744 do_action:      /* This label is used only to access EOF actions. */
5745
5746                 switch ( yy_act )
5747         { /* beginning of action switch */
5748                         case 0: /* must back up */
5749                         /* undo the effects of YY_DO_BEFORE_ACTION */
5750                         *yy_cp = (yy_hold_char);
5751                         yy_cp = (yy_last_accepting_cpos);
5752                         yy_current_state = (yy_last_accepting_state);
5753                         goto yy_find_action;
5754
5755 case 1:
5756 YY_RULE_SETUP
5757 ENTER(INCOMMENT);
5758         YY_BREAK
5759 case 2:
5760 YY_RULE_SETUP
5761 ENTER(INPI);
5762         YY_BREAK
5763
5764 case 3:
5765 YY_RULE_SETUP
5766 LEAVE;
5767         YY_BREAK
5768 case 4:
5769 case 5:
5770 case 6:
5771 /* rule 6 can match eol */
5772 YY_RULE_SETUP
5773 SKIP;
5774         YY_BREAK
5775 case YY_STATE_EOF(INCOMMENT):
5776 FAIL("EOF in comment.");
5777         YY_BREAK
5778
5779 case 7:
5780 YY_RULE_SETUP
5781 LEAVE;
5782         YY_BREAK
5783 case 8:
5784 case 9:
5785 /* rule 9 can match eol */
5786 YY_RULE_SETUP
5787 SKIP;
5788         YY_BREAK
5789 case YY_STATE_EOF(INPI):
5790 FAIL("EOF in PI (processing instruction).");
5791         YY_BREAK
5792
5793 /* SPACES: skipped uniformly */
5794 case 10:
5795 /* rule 10 can match eol */
5796 YY_RULE_SETUP
5797 SKIP;
5798         YY_BREAK
5799 /* PROLOG: determine root element and process it. */
5800
5801 case 11:
5802 /* rule 11 can match eol */
5803 YY_RULE_SETUP
5804 SET(DOCTYPE); 
5805         YY_BREAK
5806 case 12:
5807 /* rule 12 can match eol */
5808 YY_RULE_SETUP
5809 FAIL("Bad declaration %s.",surf_parse_text);
5810         YY_BREAK
5811
5812 case 13:
5813 /* rule 13 can match eol */
5814 YY_RULE_SETUP
5815 SET(ROOT_surfxml_platform);
5816         YY_BREAK
5817 case 14:
5818 /* rule 14 can match eol */
5819 YY_RULE_SETUP
5820 FAIL("Bad declaration %s.",surf_parse_text);
5821         YY_BREAK
5822 case 15:
5823 YY_RULE_SETUP
5824 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5825         YY_BREAK
5826 case YY_STATE_EOF(PROLOG):
5827 case YY_STATE_EOF(DOCTYPE):
5828 FAIL("EOF in prolog.");
5829         YY_BREAK
5830
5831 /* RULES DERIVED FROM DTD. */
5832 /* <!-- Small DTD for SURF based tools. -->  */
5833 case 16:
5834 /* rule 16 can match eol */
5835 YY_RULE_SETUP
5836 FAIL("Starting tag <platform> is not allowed here.");
5837         YY_BREAK
5838 case 17:
5839 /* rule 17 can match eol */
5840 YY_RULE_SETUP
5841 {
5842   AX_surfxml_platform_version = 1;
5843   surfxml_platform_version_isset = 0;
5844   ENTER(AL_surfxml_platform); pushbuffer(0);
5845   }
5846         YY_BREAK
5847
5848 case 18:
5849 /* rule 18 can match eol */
5850 YY_RULE_SETUP
5851 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);
5852         YY_BREAK
5853 case 19:
5854 /* rule 19 can match eol */
5855 YY_RULE_SETUP
5856 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);
5857         YY_BREAK
5858 case 20:
5859 YY_RULE_SETUP
5860 {
5861   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5862  }
5863         YY_BREAK
5864 case 21:
5865 YY_RULE_SETUP
5866 {
5867   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5868   switch (YY_START) {
5869    case ROOT_surfxml_platform: SET(EPILOG); break;
5870   }
5871  }
5872         YY_BREAK
5873 case 22:
5874 YY_RULE_SETUP
5875 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5876         YY_BREAK
5877 case 23:
5878 YY_RULE_SETUP
5879 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5880         YY_BREAK
5881 case YY_STATE_EOF(AL_surfxml_platform):
5882 FAIL("EOF in attribute list of `platform' element.");
5883         YY_BREAK
5884
5885 case 24:
5886 /* rule 24 can match eol */
5887 YY_RULE_SETUP
5888 {
5889   LEAVE;
5890   ETag_surfxml_platform();
5891   popbuffer(); /* attribute */
5892   switch (YY_START) {
5893    case ROOT_surfxml_platform: SET(EPILOG); break;
5894   }
5895  }
5896         YY_BREAK
5897 case 25:
5898 /* rule 25 can match eol */
5899 YY_RULE_SETUP
5900 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5901         YY_BREAK
5902 case 26:
5903 YY_RULE_SETUP
5904 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5905         YY_BREAK
5906 case YY_STATE_EOF(S_surfxml_platform_8):
5907 case YY_STATE_EOF(S_surfxml_platform_1):
5908 case YY_STATE_EOF(S_surfxml_platform_3):
5909 case YY_STATE_EOF(S_surfxml_platform):
5910 case YY_STATE_EOF(S_surfxml_platform_4):
5911 case YY_STATE_EOF(S_surfxml_platform_6):
5912 case YY_STATE_EOF(E_surfxml_platform):
5913 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5914         YY_BREAK
5915
5916 case 27:
5917 /* rule 27 can match eol */
5918 YY_RULE_SETUP
5919 FAIL("Starting tag <include> is not allowed here.");
5920         YY_BREAK
5921 case 28:
5922 /* rule 28 can match eol */
5923 YY_RULE_SETUP
5924 {
5925   AX_surfxml_include_file = 0;
5926   surfxml_include_file_isset = 0;
5927   ENTER(AL_surfxml_include); pushbuffer(0);
5928   }
5929         YY_BREAK
5930
5931 case 29:
5932 /* rule 29 can match eol */
5933 YY_RULE_SETUP
5934 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);
5935         YY_BREAK
5936 case 30:
5937 /* rule 30 can match eol */
5938 YY_RULE_SETUP
5939 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);
5940         YY_BREAK
5941 case 31:
5942 YY_RULE_SETUP
5943 {
5944   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5945   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5946  }
5947         YY_BREAK
5948 case 32:
5949 YY_RULE_SETUP
5950 {
5951   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5952   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5953   switch (YY_START) {
5954    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5955    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;
5956    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;
5957    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5958   }
5959  }
5960         YY_BREAK
5961 case 33:
5962 YY_RULE_SETUP
5963 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5964         YY_BREAK
5965 case 34:
5966 YY_RULE_SETUP
5967 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5968         YY_BREAK
5969 case YY_STATE_EOF(AL_surfxml_include):
5970 FAIL("EOF in attribute list of `include' element.");
5971         YY_BREAK
5972
5973 case 35:
5974 /* rule 35 can match eol */
5975 YY_RULE_SETUP
5976 {
5977   LEAVE;
5978   ETag_surfxml_include();
5979   popbuffer(); /* attribute */
5980   switch (YY_START) {
5981    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5982    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;
5983    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;
5984    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5985   }
5986  }
5987         YY_BREAK
5988 case 36:
5989 /* rule 36 can match eol */
5990 YY_RULE_SETUP
5991 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5992         YY_BREAK
5993 case 37:
5994 YY_RULE_SETUP
5995 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5996         YY_BREAK
5997 case YY_STATE_EOF(E_surfxml_include):
5998 case YY_STATE_EOF(S_surfxml_include):
5999 case YY_STATE_EOF(S_surfxml_include_2):
6000 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
6001         YY_BREAK
6002
6003 case 38:
6004 /* rule 38 can match eol */
6005 YY_RULE_SETUP
6006 FAIL("Starting tag <trace> is not allowed here.");
6007         YY_BREAK
6008 case 39:
6009 /* rule 39 can match eol */
6010 YY_RULE_SETUP
6011 {
6012   AX_surfxml_trace_id = 0;
6013   surfxml_trace_id_isset = 0;
6014   AX_surfxml_trace_file = 0;
6015   surfxml_trace_file_isset = 0;
6016   AX_surfxml_trace_periodicity = 0;
6017   surfxml_trace_periodicity_isset = 0;
6018   ENTER(AL_surfxml_trace); pushbuffer(0);
6019   }
6020         YY_BREAK
6021
6022 case 40:
6023 /* rule 40 can match eol */
6024 YY_RULE_SETUP
6025 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);
6026         YY_BREAK
6027 case 41:
6028 /* rule 41 can match eol */
6029 YY_RULE_SETUP
6030 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);
6031         YY_BREAK
6032 case 42:
6033 /* rule 42 can match eol */
6034 YY_RULE_SETUP
6035 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);
6036         YY_BREAK
6037 case 43:
6038 /* rule 43 can match eol */
6039 YY_RULE_SETUP
6040 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);
6041         YY_BREAK
6042 case 44:
6043 /* rule 44 can match eol */
6044 YY_RULE_SETUP
6045 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);
6046         YY_BREAK
6047 case 45:
6048 /* rule 45 can match eol */
6049 YY_RULE_SETUP
6050 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);
6051         YY_BREAK
6052 case 46:
6053 YY_RULE_SETUP
6054 {
6055   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
6056   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
6057   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
6058  }
6059         YY_BREAK
6060 case 47:
6061 YY_RULE_SETUP
6062 {
6063   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
6064   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
6065   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
6066   switch (YY_START) {
6067    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6068    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6069    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6070    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;
6071    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6072    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;
6073    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6074   }
6075  }
6076         YY_BREAK
6077 case 48:
6078 YY_RULE_SETUP
6079 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
6080         YY_BREAK
6081 case 49:
6082 YY_RULE_SETUP
6083 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
6084         YY_BREAK
6085 case YY_STATE_EOF(AL_surfxml_trace):
6086 FAIL("EOF in attribute list of `trace' element.");
6087         YY_BREAK
6088
6089 case 50:
6090 /* rule 50 can match eol */
6091 YY_RULE_SETUP
6092 {
6093   LEAVE;
6094   BUFFERDONE;
6095   ETag_surfxml_trace();
6096   surfxml_pcdata_ix = popbuffer();
6097   popbuffer(); /* attribute */
6098   switch (YY_START) {
6099    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6100    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6101    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6102    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;
6103    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6104    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;
6105    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6106   }
6107  }
6108         YY_BREAK
6109 case 51:
6110 /* rule 51 can match eol */
6111 YY_RULE_SETUP
6112 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
6113         YY_BREAK
6114 case YY_STATE_EOF(IN_trace):
6115 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
6116         YY_BREAK
6117
6118 case 52:
6119 /* rule 52 can match eol */
6120 YY_RULE_SETUP
6121 FAIL("Starting tag <random> is not allowed here.");
6122         YY_BREAK
6123 case 53:
6124 /* rule 53 can match eol */
6125 YY_RULE_SETUP
6126 {
6127   AX_surfxml_random_id = 0;
6128   surfxml_random_id_isset = 0;
6129   AX_surfxml_random_min = 0;
6130   surfxml_random_min_isset = 0;
6131   AX_surfxml_random_max = 0;
6132   surfxml_random_max_isset = 0;
6133   AX_surfxml_random_mean = 0;
6134   surfxml_random_mean_isset = 0;
6135   AX_surfxml_random_std___deviation = 0;
6136   surfxml_random_std___deviation_isset = 0;
6137   AX_surfxml_random_seed = 5;
6138   surfxml_random_seed_isset = 0;
6139   AX_surfxml_random_radical = 0;
6140   surfxml_random_radical_isset = 0;
6141   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6142   surfxml_random_generator_isset = 0;
6143   ENTER(AL_surfxml_random); pushbuffer(0);
6144   }
6145         YY_BREAK
6146
6147 case 54:
6148 /* rule 54 can match eol */
6149 YY_RULE_SETUP
6150 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);
6151         YY_BREAK
6152 case 55:
6153 /* rule 55 can match eol */
6154 YY_RULE_SETUP
6155 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);
6156         YY_BREAK
6157 case 56:
6158 /* rule 56 can match eol */
6159 YY_RULE_SETUP
6160 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);
6161         YY_BREAK
6162 case 57:
6163 /* rule 57 can match eol */
6164 YY_RULE_SETUP
6165 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);
6166         YY_BREAK
6167 case 58:
6168 /* rule 58 can match eol */
6169 YY_RULE_SETUP
6170 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);
6171         YY_BREAK
6172 case 59:
6173 /* rule 59 can match eol */
6174 YY_RULE_SETUP
6175 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);
6176         YY_BREAK
6177 case 60:
6178 /* rule 60 can match eol */
6179 YY_RULE_SETUP
6180 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);
6181         YY_BREAK
6182 case 61:
6183 /* rule 61 can match eol */
6184 YY_RULE_SETUP
6185 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);
6186         YY_BREAK
6187 case 62:
6188 /* rule 62 can match eol */
6189 YY_RULE_SETUP
6190 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);
6191         YY_BREAK
6192 case 63:
6193 /* rule 63 can match eol */
6194 YY_RULE_SETUP
6195 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);
6196         YY_BREAK
6197 case 64:
6198 /* rule 64 can match eol */
6199 YY_RULE_SETUP
6200 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);
6201         YY_BREAK
6202 case 65:
6203 /* rule 65 can match eol */
6204 YY_RULE_SETUP
6205 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);
6206         YY_BREAK
6207 case 66:
6208 /* rule 66 can match eol */
6209 YY_RULE_SETUP
6210 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);
6211         YY_BREAK
6212 case 67:
6213 /* rule 67 can match eol */
6214 YY_RULE_SETUP
6215 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);
6216         YY_BREAK
6217 case 68:
6218 /* rule 68 can match eol */
6219 case 69:
6220 /* rule 69 can match eol */
6221 YY_RULE_SETUP
6222 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6223         YY_BREAK
6224 case 70:
6225 /* rule 70 can match eol */
6226 case 71:
6227 /* rule 71 can match eol */
6228 YY_RULE_SETUP
6229 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
6230         YY_BREAK
6231 case 72:
6232 /* rule 72 can match eol */
6233 case 73:
6234 /* rule 73 can match eol */
6235 YY_RULE_SETUP
6236 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6237         YY_BREAK
6238 case 74:
6239 /* rule 74 can match eol */
6240 case 75:
6241 /* rule 75 can match eol */
6242 YY_RULE_SETUP
6243 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6244         YY_BREAK
6245 case 76:
6246 YY_RULE_SETUP
6247 {
6248   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6249   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6250   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6251   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6252   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6253   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6254  }
6255         YY_BREAK
6256 case 77:
6257 YY_RULE_SETUP
6258 {
6259   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6260   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6261   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6262   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6263   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6264   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6265   switch (YY_START) {
6266    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6267   }
6268  }
6269         YY_BREAK
6270 case 78:
6271 YY_RULE_SETUP
6272 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6273         YY_BREAK
6274 case 79:
6275 YY_RULE_SETUP
6276 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6277         YY_BREAK
6278 case YY_STATE_EOF(AL_surfxml_random):
6279 FAIL("EOF in attribute list of `random' element.");
6280         YY_BREAK
6281
6282 case 80:
6283 /* rule 80 can match eol */
6284 YY_RULE_SETUP
6285 {
6286   LEAVE;
6287   ETag_surfxml_random();
6288   popbuffer(); /* attribute */
6289   switch (YY_START) {
6290    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6291   }
6292  }
6293         YY_BREAK
6294 case 81:
6295 /* rule 81 can match eol */
6296 YY_RULE_SETUP
6297 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6298         YY_BREAK
6299 case 82:
6300 YY_RULE_SETUP
6301 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6302         YY_BREAK
6303 case YY_STATE_EOF(E_surfxml_random):
6304 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6305         YY_BREAK
6306
6307 case 83:
6308 /* rule 83 can match eol */
6309 YY_RULE_SETUP
6310 FAIL("Starting tag <trace_connect> is not allowed here.");
6311         YY_BREAK
6312 case 84:
6313 /* rule 84 can match eol */
6314 YY_RULE_SETUP
6315 {
6316   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6317   surfxml_trace___connect_kind_isset = 0;
6318   AX_surfxml_trace___connect_trace = 0;
6319   surfxml_trace___connect_trace_isset = 0;
6320   AX_surfxml_trace___connect_element = 0;
6321   surfxml_trace___connect_element_isset = 0;
6322   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6323   }
6324         YY_BREAK
6325
6326 case 85:
6327 /* rule 85 can match eol */
6328 case 86:
6329 /* rule 86 can match eol */
6330 YY_RULE_SETUP
6331 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6332         YY_BREAK
6333 case 87:
6334 /* rule 87 can match eol */
6335 case 88:
6336 /* rule 88 can match eol */
6337 YY_RULE_SETUP
6338 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6339         YY_BREAK
6340 case 89:
6341 /* rule 89 can match eol */
6342 case 90:
6343 /* rule 90 can match eol */
6344 YY_RULE_SETUP
6345 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6346         YY_BREAK
6347 case 91:
6348 /* rule 91 can match eol */
6349 case 92:
6350 /* rule 92 can match eol */
6351 YY_RULE_SETUP
6352 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6353         YY_BREAK
6354 case 93:
6355 /* rule 93 can match eol */
6356 case 94:
6357 /* rule 94 can match eol */
6358 YY_RULE_SETUP
6359 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6360         YY_BREAK
6361 case 95:
6362 /* rule 95 can match eol */
6363 YY_RULE_SETUP
6364 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);
6365         YY_BREAK
6366 case 96:
6367 /* rule 96 can match eol */
6368 YY_RULE_SETUP
6369 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);
6370         YY_BREAK
6371 case 97:
6372 /* rule 97 can match eol */
6373 YY_RULE_SETUP
6374 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);
6375         YY_BREAK
6376 case 98:
6377 /* rule 98 can match eol */
6378 YY_RULE_SETUP
6379 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);
6380         YY_BREAK
6381 case 99:
6382 YY_RULE_SETUP
6383 {
6384   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6385   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6386   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6387  }
6388         YY_BREAK
6389 case 100:
6390 YY_RULE_SETUP
6391 {
6392   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6393   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6394   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6395   switch (YY_START) {
6396    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6397    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6398    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6399    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;
6400    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6401    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;
6402    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6403   }
6404  }
6405         YY_BREAK
6406 case 101:
6407 YY_RULE_SETUP
6408 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6409         YY_BREAK
6410 case 102:
6411 YY_RULE_SETUP
6412 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6413         YY_BREAK
6414 case YY_STATE_EOF(AL_surfxml_trace___connect):
6415 FAIL("EOF in attribute list of `trace_connect' element.");
6416         YY_BREAK
6417
6418 case 103:
6419 /* rule 103 can match eol */
6420 YY_RULE_SETUP
6421 {
6422   LEAVE;
6423   ETag_surfxml_trace___connect();
6424   popbuffer(); /* attribute */
6425   switch (YY_START) {
6426    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6427    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6428    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6429    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;
6430    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6431    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;
6432    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6433   }
6434  }
6435         YY_BREAK
6436 case 104:
6437 /* rule 104 can match eol */
6438 YY_RULE_SETUP
6439 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6440         YY_BREAK
6441 case 105:
6442 YY_RULE_SETUP
6443 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6444         YY_BREAK
6445 case YY_STATE_EOF(E_surfxml_trace___connect):
6446 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6447         YY_BREAK
6448
6449 case 106:
6450 /* rule 106 can match eol */
6451 YY_RULE_SETUP
6452 FAIL("Starting tag <AS> is not allowed here.");
6453         YY_BREAK
6454 case 107:
6455 /* rule 107 can match eol */
6456 YY_RULE_SETUP
6457 {
6458   AX_surfxml_AS_id = 0;
6459   surfxml_AS_id_isset = 0;
6460   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6461   surfxml_AS_routing_isset = 0;
6462   ENTER(AL_surfxml_AS); pushbuffer(0);
6463   }
6464         YY_BREAK
6465
6466 case 108:
6467 /* rule 108 can match eol */
6468 YY_RULE_SETUP
6469 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);
6470         YY_BREAK
6471 case 109:
6472 /* rule 109 can match eol */
6473 YY_RULE_SETUP
6474 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);
6475         YY_BREAK
6476 case 110:
6477 /* rule 110 can match eol */
6478 case 111:
6479 /* rule 111 can match eol */
6480 YY_RULE_SETUP
6481 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6482         YY_BREAK
6483 case 112:
6484 /* rule 112 can match eol */
6485 case 113:
6486 /* rule 113 can match eol */
6487 YY_RULE_SETUP
6488 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6489         YY_BREAK
6490 case 114:
6491 /* rule 114 can match eol */
6492 case 115:
6493 /* rule 115 can match eol */
6494 YY_RULE_SETUP
6495 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6496         YY_BREAK
6497 case 116:
6498 /* rule 116 can match eol */
6499 case 117:
6500 /* rule 117 can match eol */
6501 YY_RULE_SETUP
6502 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6503         YY_BREAK
6504 case 118:
6505 /* rule 118 can match eol */
6506 case 119:
6507 /* rule 119 can match eol */
6508 YY_RULE_SETUP
6509 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6510         YY_BREAK
6511 case 120:
6512 /* rule 120 can match eol */
6513 case 121:
6514 /* rule 121 can match eol */
6515 YY_RULE_SETUP
6516 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6517         YY_BREAK
6518 case 122:
6519 /* rule 122 can match eol */
6520 case 123:
6521 /* rule 123 can match eol */
6522 YY_RULE_SETUP
6523 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6524         YY_BREAK
6525 case 124:
6526 /* rule 124 can match eol */
6527 case 125:
6528 /* rule 125 can match eol */
6529 YY_RULE_SETUP
6530 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster___torus;
6531         YY_BREAK
6532 case 126:
6533 YY_RULE_SETUP
6534 {
6535   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6536   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6537   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6538  }
6539         YY_BREAK
6540 case 127:
6541 YY_RULE_SETUP
6542 {
6543   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6544   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6545   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6546   switch (YY_START) {
6547    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;
6548    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;
6549    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6550   }
6551  }
6552         YY_BREAK
6553 case 128:
6554 YY_RULE_SETUP
6555 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6556         YY_BREAK
6557 case 129:
6558 YY_RULE_SETUP
6559 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6560         YY_BREAK
6561 case YY_STATE_EOF(AL_surfxml_AS):
6562 FAIL("EOF in attribute list of `AS' element.");
6563         YY_BREAK
6564
6565 case 130:
6566 /* rule 130 can match eol */
6567 YY_RULE_SETUP
6568 {
6569   LEAVE;
6570   ETag_surfxml_AS();
6571   popbuffer(); /* attribute */
6572   switch (YY_START) {
6573    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;
6574    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;
6575    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6576   }
6577  }
6578         YY_BREAK
6579 case 131:
6580 /* rule 131 can match eol */
6581 YY_RULE_SETUP
6582 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6583         YY_BREAK
6584 case 132:
6585 YY_RULE_SETUP
6586 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6587         YY_BREAK
6588 case YY_STATE_EOF(S_surfxml_AS_12):
6589 case YY_STATE_EOF(S_surfxml_AS_9):
6590 case YY_STATE_EOF(S_surfxml_AS_1):
6591 case YY_STATE_EOF(S_surfxml_AS_7):
6592 case YY_STATE_EOF(S_surfxml_AS_11):
6593 case YY_STATE_EOF(S_surfxml_AS_14):
6594 case YY_STATE_EOF(S_surfxml_AS_6):
6595 case YY_STATE_EOF(E_surfxml_AS):
6596 case YY_STATE_EOF(S_surfxml_AS_16):
6597 case YY_STATE_EOF(S_surfxml_AS_3):
6598 case YY_STATE_EOF(S_surfxml_AS):
6599 case YY_STATE_EOF(S_surfxml_AS_4):
6600 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6601         YY_BREAK
6602
6603 case 133:
6604 /* rule 133 can match eol */
6605 YY_RULE_SETUP
6606 FAIL("Starting tag <storage_type> is not allowed here.");
6607         YY_BREAK
6608 case 134:
6609 /* rule 134 can match eol */
6610 YY_RULE_SETUP
6611 {
6612   AX_surfxml_storage___type_id = 0;
6613   surfxml_storage___type_id_isset = 0;
6614   AX_surfxml_storage___type_model = 0;
6615   surfxml_storage___type_model_isset = 0;
6616   AX_surfxml_storage___type_size = 0;
6617   surfxml_storage___type_size_isset = 0;
6618   AX_surfxml_storage___type_content = 0;
6619   surfxml_storage___type_content_isset = 0;
6620   AX_surfxml_storage___type_content___type = 16;
6621   surfxml_storage___type_content___type_isset = 0;
6622   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6623   }
6624         YY_BREAK
6625
6626 case 135:
6627 /* rule 135 can match eol */
6628 YY_RULE_SETUP
6629 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);
6630         YY_BREAK
6631 case 136:
6632 /* rule 136 can match eol */
6633 YY_RULE_SETUP
6634 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);
6635         YY_BREAK
6636 case 137:
6637 /* rule 137 can match eol */
6638 YY_RULE_SETUP
6639 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);
6640         YY_BREAK
6641 case 138:
6642 /* rule 138 can match eol */
6643 YY_RULE_SETUP
6644 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);
6645         YY_BREAK
6646 case 139:
6647 /* rule 139 can match eol */
6648 YY_RULE_SETUP
6649 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);
6650         YY_BREAK
6651 case 140:
6652 /* rule 140 can match eol */
6653 YY_RULE_SETUP
6654 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);
6655         YY_BREAK
6656 case 141:
6657 /* rule 141 can match eol */
6658 YY_RULE_SETUP
6659 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);
6660         YY_BREAK
6661 case 142:
6662 /* rule 142 can match eol */
6663 YY_RULE_SETUP
6664 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);
6665         YY_BREAK
6666 case 143:
6667 /* rule 143 can match eol */
6668 YY_RULE_SETUP
6669 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");} surfxml_storage___type_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content___type);
6670         YY_BREAK
6671 case 144:
6672 /* rule 144 can match eol */
6673 YY_RULE_SETUP
6674 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");}  surfxml_storage___type_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content___type);
6675         YY_BREAK
6676 case 145:
6677 YY_RULE_SETUP
6678 {
6679   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6680   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6681   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6682   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6683  }
6684         YY_BREAK
6685 case 146:
6686 YY_RULE_SETUP
6687 {
6688   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6689   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6690   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6691   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6692   switch (YY_START) {
6693    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6694    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;
6695   }
6696  }
6697         YY_BREAK
6698 case 147:
6699 YY_RULE_SETUP
6700 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6701         YY_BREAK
6702 case 148:
6703 YY_RULE_SETUP
6704 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6705         YY_BREAK
6706 case YY_STATE_EOF(AL_surfxml_storage___type):
6707 FAIL("EOF in attribute list of `storage_type' element.");
6708         YY_BREAK
6709
6710 case 149:
6711 /* rule 149 can match eol */
6712 YY_RULE_SETUP
6713 {
6714   LEAVE;
6715   ETag_surfxml_storage___type();
6716   popbuffer(); /* attribute */
6717   switch (YY_START) {
6718    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6719    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;
6720   }
6721  }
6722         YY_BREAK
6723 case 150:
6724 /* rule 150 can match eol */
6725 YY_RULE_SETUP
6726 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6727         YY_BREAK
6728 case 151:
6729 YY_RULE_SETUP
6730 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6731         YY_BREAK
6732 case YY_STATE_EOF(E_surfxml_storage___type):
6733 case YY_STATE_EOF(S_surfxml_storage___type):
6734 case YY_STATE_EOF(S_surfxml_storage___type_2):
6735 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6736         YY_BREAK
6737
6738 case 152:
6739 /* rule 152 can match eol */
6740 YY_RULE_SETUP
6741 FAIL("Starting tag <mount> is not allowed here.");
6742         YY_BREAK
6743 case 153:
6744 /* rule 153 can match eol */
6745 YY_RULE_SETUP
6746 {
6747   AX_surfxml_mount_storageId = 0;
6748   surfxml_mount_storageId_isset = 0;
6749   AX_surfxml_mount_name = 0;
6750   surfxml_mount_name_isset = 0;
6751   ENTER(AL_surfxml_mount); pushbuffer(0);
6752   }
6753         YY_BREAK
6754
6755 case 154:
6756 /* rule 154 can match eol */
6757 YY_RULE_SETUP
6758 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");} surfxml_mount_storageId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_storageId);
6759         YY_BREAK
6760 case 155:
6761 /* rule 155 can match eol */
6762 YY_RULE_SETUP
6763 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");}  surfxml_mount_storageId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_storageId);
6764         YY_BREAK
6765 case 156:
6766 /* rule 156 can match eol */
6767 YY_RULE_SETUP
6768 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);
6769         YY_BREAK
6770 case 157:
6771 /* rule 157 can match eol */
6772 YY_RULE_SETUP
6773 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);
6774         YY_BREAK
6775 case 158:
6776 YY_RULE_SETUP
6777 {
6778   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6779   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6780   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6781  }
6782         YY_BREAK
6783 case 159:
6784 YY_RULE_SETUP
6785 {
6786   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6787   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6788   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6789   switch (YY_START) {
6790    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6791   }
6792  }
6793         YY_BREAK
6794 case 160:
6795 YY_RULE_SETUP
6796 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6797         YY_BREAK
6798 case 161:
6799 YY_RULE_SETUP
6800 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6801         YY_BREAK
6802 case YY_STATE_EOF(AL_surfxml_mount):
6803 FAIL("EOF in attribute list of `mount' element.");
6804         YY_BREAK
6805
6806 case 162:
6807 /* rule 162 can match eol */
6808 YY_RULE_SETUP
6809 {
6810   LEAVE;
6811   ETag_surfxml_mount();
6812   popbuffer(); /* attribute */
6813   switch (YY_START) {
6814    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6815   }
6816  }
6817         YY_BREAK
6818 case 163:
6819 /* rule 163 can match eol */
6820 YY_RULE_SETUP
6821 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6822         YY_BREAK
6823 case 164:
6824 YY_RULE_SETUP
6825 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6826         YY_BREAK
6827 case YY_STATE_EOF(E_surfxml_mount):
6828 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6829         YY_BREAK
6830
6831 case 165:
6832 /* rule 165 can match eol */
6833 YY_RULE_SETUP
6834 FAIL("Starting tag <mstorage> is not allowed here.");
6835         YY_BREAK
6836 case 166:
6837 /* rule 166 can match eol */
6838 YY_RULE_SETUP
6839 {
6840   AX_surfxml_mstorage_typeId = 0;
6841   surfxml_mstorage_typeId_isset = 0;
6842   AX_surfxml_mstorage_name = 0;
6843   surfxml_mstorage_name_isset = 0;
6844   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6845   }
6846         YY_BREAK
6847
6848 case 167:
6849 /* rule 167 can match eol */
6850 YY_RULE_SETUP
6851 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);
6852         YY_BREAK
6853 case 168:
6854 /* rule 168 can match eol */
6855 YY_RULE_SETUP
6856 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);
6857         YY_BREAK
6858 case 169:
6859 /* rule 169 can match eol */
6860 YY_RULE_SETUP
6861 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);
6862         YY_BREAK
6863 case 170:
6864 /* rule 170 can match eol */
6865 YY_RULE_SETUP
6866 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);
6867         YY_BREAK
6868 case 171:
6869 YY_RULE_SETUP
6870 {
6871   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6872   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6873   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6874  }
6875         YY_BREAK
6876 case 172:
6877 YY_RULE_SETUP
6878 {
6879   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6880   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6881   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6882   switch (YY_START) {
6883    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6884   }
6885  }
6886         YY_BREAK
6887 case 173:
6888 YY_RULE_SETUP
6889 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6890         YY_BREAK
6891 case 174:
6892 YY_RULE_SETUP
6893 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6894         YY_BREAK
6895 case YY_STATE_EOF(AL_surfxml_mstorage):
6896 FAIL("EOF in attribute list of `mstorage' element.");
6897         YY_BREAK
6898
6899 case 175:
6900 /* rule 175 can match eol */
6901 YY_RULE_SETUP
6902 {
6903   LEAVE;
6904   ETag_surfxml_mstorage();
6905   popbuffer(); /* attribute */
6906   switch (YY_START) {
6907    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6908   }
6909  }
6910         YY_BREAK
6911 case 176:
6912 /* rule 176 can match eol */
6913 YY_RULE_SETUP
6914 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6915         YY_BREAK
6916 case 177:
6917 YY_RULE_SETUP
6918 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6919         YY_BREAK
6920 case YY_STATE_EOF(E_surfxml_mstorage):
6921 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6922         YY_BREAK
6923
6924 case 178:
6925 /* rule 178 can match eol */
6926 YY_RULE_SETUP
6927 FAIL("Starting tag <host> is not allowed here.");
6928         YY_BREAK
6929 case 179:
6930 /* rule 179 can match eol */
6931 YY_RULE_SETUP
6932 {
6933   AX_surfxml_host_id = 0;
6934   surfxml_host_id_isset = 0;
6935   AX_surfxml_host_power = 0;
6936   surfxml_host_power_isset = 0;
6937   AX_surfxml_host_core = 25;
6938   surfxml_host_core_isset = 0;
6939   AX_surfxml_host_availability = 27;
6940   surfxml_host_availability_isset = 0;
6941   AX_surfxml_host_availability___file = 0;
6942   surfxml_host_availability___file_isset = 0;
6943   AX_surfxml_host_state = A_surfxml_host_state_ON;
6944   surfxml_host_state_isset = 0;
6945   AX_surfxml_host_state___file = 0;
6946   surfxml_host_state___file_isset = 0;
6947   AX_surfxml_host_coordinates = 0;
6948   surfxml_host_coordinates_isset = 0;
6949   AX_surfxml_host_pstate = 31;
6950   surfxml_host_pstate_isset = 0;
6951   ENTER(AL_surfxml_host); pushbuffer(0);
6952   }
6953         YY_BREAK
6954
6955 case 180:
6956 /* rule 180 can match eol */
6957 YY_RULE_SETUP
6958 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);
6959         YY_BREAK
6960 case 181:
6961 /* rule 181 can match eol */
6962 YY_RULE_SETUP
6963 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);
6964         YY_BREAK
6965 case 182:
6966 /* rule 182 can match eol */
6967 YY_RULE_SETUP
6968 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);
6969         YY_BREAK
6970 case 183:
6971 /* rule 183 can match eol */
6972 YY_RULE_SETUP
6973 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);
6974         YY_BREAK
6975 case 184:
6976 /* rule 184 can match eol */
6977 YY_RULE_SETUP
6978 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);
6979         YY_BREAK
6980 case 185:
6981 /* rule 185 can match eol */
6982 YY_RULE_SETUP
6983 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);
6984         YY_BREAK
6985 case 186:
6986 /* rule 186 can match eol */
6987 YY_RULE_SETUP
6988 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);
6989         YY_BREAK
6990 case 187:
6991 /* rule 187 can match eol */
6992 YY_RULE_SETUP
6993 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);
6994         YY_BREAK
6995 case 188:
6996 /* rule 188 can match eol */
6997 YY_RULE_SETUP
6998 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);
6999         YY_BREAK
7000 case 189:
7001 /* rule 189 can match eol */
7002 YY_RULE_SETUP
7003 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);
7004         YY_BREAK
7005 case 190:
7006 /* rule 190 can match eol */
7007 case 191:
7008 /* rule 191 can match eol */
7009 YY_RULE_SETUP
7010 A_surfxml_host_state = A_surfxml_host_state_ON;
7011         YY_BREAK
7012 case 192:
7013 /* rule 192 can match eol */
7014 case 193:
7015 /* rule 193 can match eol */
7016 YY_RULE_SETUP
7017 A_surfxml_host_state = A_surfxml_host_state_OFF;
7018         YY_BREAK
7019 case 194:
7020 /* rule 194 can match eol */
7021 YY_RULE_SETUP
7022 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);
7023         YY_BREAK
7024 case 195:
7025 /* rule 195 can match eol */
7026 YY_RULE_SETUP
7027 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);
7028         YY_BREAK
7029 case 196:
7030 /* rule 196 can match eol */
7031 YY_RULE_SETUP
7032 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);
7033         YY_BREAK
7034 case 197:
7035 /* rule 197 can match eol */
7036 YY_RULE_SETUP
7037 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);
7038         YY_BREAK
7039 case 198:
7040 /* rule 198 can match eol */
7041 YY_RULE_SETUP
7042 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
7043         YY_BREAK
7044 case 199:
7045 /* rule 199 can match eol */
7046 YY_RULE_SETUP
7047 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
7048         YY_BREAK
7049 case 200:
7050 YY_RULE_SETUP
7051 {
7052   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7053   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7054   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7055  }
7056         YY_BREAK
7057 case 201:
7058 YY_RULE_SETUP
7059 {
7060   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7061   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7062   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7063   switch (YY_START) {
7064    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;
7065   }
7066  }
7067         YY_BREAK
7068 case 202:
7069 YY_RULE_SETUP
7070 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7071         YY_BREAK
7072 case 203:
7073 YY_RULE_SETUP
7074 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7075         YY_BREAK
7076 case YY_STATE_EOF(AL_surfxml_host):
7077 FAIL("EOF in attribute list of `host' element.");
7078         YY_BREAK
7079
7080 case 204:
7081 /* rule 204 can match eol */
7082 YY_RULE_SETUP
7083 {
7084   LEAVE;
7085   ETag_surfxml_host();
7086   popbuffer(); /* attribute */
7087   switch (YY_START) {
7088    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;
7089   }
7090  }
7091         YY_BREAK
7092 case 205:
7093 /* rule 205 can match eol */
7094 YY_RULE_SETUP
7095 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7096         YY_BREAK
7097 case 206:
7098 YY_RULE_SETUP
7099 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7100         YY_BREAK
7101 case YY_STATE_EOF(S_surfxml_host):
7102 case YY_STATE_EOF(E_surfxml_host):
7103 case YY_STATE_EOF(S_surfxml_host_2):
7104 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7105         YY_BREAK
7106
7107 case 207:
7108 /* rule 207 can match eol */
7109 YY_RULE_SETUP
7110 FAIL("Starting tag <storage> is not allowed here.");
7111         YY_BREAK
7112 case 208:
7113 /* rule 208 can match eol */
7114 YY_RULE_SETUP
7115 {
7116   AX_surfxml_storage_id = 0;
7117   surfxml_storage_id_isset = 0;
7118   AX_surfxml_storage_typeId = 0;
7119   surfxml_storage_typeId_isset = 0;
7120   AX_surfxml_storage_content = 0;
7121   surfxml_storage_content_isset = 0;
7122   AX_surfxml_storage_content___type = 35;
7123   surfxml_storage_content___type_isset = 0;
7124   AX_surfxml_storage_attach = 0;
7125   surfxml_storage_attach_isset = 0;
7126   ENTER(AL_surfxml_storage); pushbuffer(0);
7127   }
7128         YY_BREAK
7129
7130 case 209:
7131 /* rule 209 can match eol */
7132 YY_RULE_SETUP
7133 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);
7134         YY_BREAK
7135 case 210:
7136 /* rule 210 can match eol */
7137 YY_RULE_SETUP
7138 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);
7139         YY_BREAK
7140 case 211:
7141 /* rule 211 can match eol */
7142 YY_RULE_SETUP
7143 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);
7144         YY_BREAK
7145 case 212:
7146 /* rule 212 can match eol */
7147 YY_RULE_SETUP
7148 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);
7149         YY_BREAK
7150 case 213:
7151 /* rule 213 can match eol */
7152 YY_RULE_SETUP
7153 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);
7154         YY_BREAK
7155 case 214:
7156 /* rule 214 can match eol */
7157 YY_RULE_SETUP
7158 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);
7159         YY_BREAK
7160 case 215:
7161 /* rule 215 can match eol */
7162 YY_RULE_SETUP
7163 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");} surfxml_storage_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content___type);
7164         YY_BREAK
7165 case 216:
7166 /* rule 216 can match eol */
7167 YY_RULE_SETUP
7168 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");}  surfxml_storage_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content___type);
7169         YY_BREAK
7170 case 217:
7171 /* rule 217 can match eol */
7172 YY_RULE_SETUP
7173 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");} surfxml_storage_attach_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_attach);
7174         YY_BREAK
7175 case 218:
7176 /* rule 218 can match eol */
7177 YY_RULE_SETUP
7178 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");}  surfxml_storage_attach_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_attach);
7179         YY_BREAK
7180 case 219:
7181 YY_RULE_SETUP
7182 {
7183   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
7184   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
7185   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
7186   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
7187  }
7188         YY_BREAK
7189 case 220:
7190 YY_RULE_SETUP
7191 {
7192   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
7193   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
7194   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
7195   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
7196   switch (YY_START) {
7197    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7198    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;
7199   }
7200  }
7201         YY_BREAK
7202 case 221:
7203 YY_RULE_SETUP
7204 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
7205         YY_BREAK
7206 case 222:
7207 YY_RULE_SETUP
7208 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
7209         YY_BREAK
7210 case YY_STATE_EOF(AL_surfxml_storage):
7211 FAIL("EOF in attribute list of `storage' element.");
7212         YY_BREAK
7213
7214 case 223:
7215 /* rule 223 can match eol */
7216 YY_RULE_SETUP
7217 {
7218   LEAVE;
7219   ETag_surfxml_storage();
7220   popbuffer(); /* attribute */
7221   switch (YY_START) {
7222    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7223    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;
7224   }
7225  }
7226         YY_BREAK
7227 case 224:
7228 /* rule 224 can match eol */
7229 YY_RULE_SETUP
7230 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
7231         YY_BREAK
7232 case 225:
7233 YY_RULE_SETUP
7234 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
7235         YY_BREAK
7236 case YY_STATE_EOF(E_surfxml_storage):
7237 case YY_STATE_EOF(S_surfxml_storage):
7238 case YY_STATE_EOF(S_surfxml_storage_2):
7239 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
7240         YY_BREAK
7241
7242 case 226:
7243 /* rule 226 can match eol */
7244 YY_RULE_SETUP
7245 FAIL("Starting tag <gpu> is not allowed here.");
7246         YY_BREAK
7247 case 227:
7248 /* rule 227 can match eol */
7249 YY_RULE_SETUP
7250 {
7251   AX_surfxml_gpu_name = 0;
7252   surfxml_gpu_name_isset = 0;
7253   ENTER(AL_surfxml_gpu); pushbuffer(0);
7254   }
7255         YY_BREAK
7256
7257 case 228:
7258 /* rule 228 can match eol */
7259 YY_RULE_SETUP
7260 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);
7261         YY_BREAK
7262 case 229:
7263 /* rule 229 can match eol */
7264 YY_RULE_SETUP
7265 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);
7266         YY_BREAK
7267 case 230:
7268 YY_RULE_SETUP
7269 {
7270   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7271   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7272  }
7273         YY_BREAK
7274 case 231:
7275 YY_RULE_SETUP
7276 {
7277   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7278   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7279   switch (YY_START) {
7280    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;
7281   }
7282  }
7283         YY_BREAK
7284 case 232:
7285 YY_RULE_SETUP
7286 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7287         YY_BREAK
7288 case 233:
7289 YY_RULE_SETUP
7290 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7291         YY_BREAK
7292 case YY_STATE_EOF(AL_surfxml_gpu):
7293 FAIL("EOF in attribute list of `gpu' element.");
7294         YY_BREAK
7295
7296 case 234:
7297 /* rule 234 can match eol */
7298 YY_RULE_SETUP
7299 {
7300   LEAVE;
7301   ETag_surfxml_gpu();
7302   popbuffer(); /* attribute */
7303   switch (YY_START) {
7304    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;
7305   }
7306  }
7307         YY_BREAK
7308 case 235:
7309 /* rule 235 can match eol */
7310 YY_RULE_SETUP
7311 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7312         YY_BREAK
7313 case 236:
7314 YY_RULE_SETUP
7315 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7316         YY_BREAK
7317 case YY_STATE_EOF(E_surfxml_gpu):
7318 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7319         YY_BREAK
7320
7321 case 237:
7322 /* rule 237 can match eol */
7323 YY_RULE_SETUP
7324 FAIL("Starting tag <host_link> is not allowed here.");
7325         YY_BREAK
7326 case 238:
7327 /* rule 238 can match eol */
7328 YY_RULE_SETUP
7329 {
7330   AX_surfxml_host___link_id = 0;
7331   surfxml_host___link_id_isset = 0;
7332   AX_surfxml_host___link_up = 0;
7333   surfxml_host___link_up_isset = 0;
7334   AX_surfxml_host___link_down = 0;
7335   surfxml_host___link_down_isset = 0;
7336   ENTER(AL_surfxml_host___link); pushbuffer(0);
7337   }
7338         YY_BREAK
7339
7340 case 239:
7341 /* rule 239 can match eol */
7342 YY_RULE_SETUP
7343 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);
7344         YY_BREAK
7345 case 240:
7346 /* rule 240 can match eol */
7347 YY_RULE_SETUP
7348 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);
7349         YY_BREAK
7350 case 241:
7351 /* rule 241 can match eol */
7352 YY_RULE_SETUP
7353 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);
7354         YY_BREAK
7355 case 242:
7356 /* rule 242 can match eol */
7357 YY_RULE_SETUP
7358 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);
7359         YY_BREAK
7360 case 243:
7361 /* rule 243 can match eol */
7362 YY_RULE_SETUP
7363 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);
7364         YY_BREAK
7365 case 244:
7366 /* rule 244 can match eol */
7367 YY_RULE_SETUP
7368 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);
7369         YY_BREAK
7370 case 245:
7371 YY_RULE_SETUP
7372 {
7373   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7374   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7375   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7376   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7377  }
7378         YY_BREAK
7379 case 246:
7380 YY_RULE_SETUP
7381 {
7382   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7383   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7384   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7385   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7386   switch (YY_START) {
7387    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;
7388   }
7389  }
7390         YY_BREAK
7391 case 247:
7392 YY_RULE_SETUP
7393 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7394         YY_BREAK
7395 case 248:
7396 YY_RULE_SETUP
7397 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7398         YY_BREAK
7399 case YY_STATE_EOF(AL_surfxml_host___link):
7400 FAIL("EOF in attribute list of `host_link' element.");
7401         YY_BREAK
7402
7403 case 249:
7404 /* rule 249 can match eol */
7405 YY_RULE_SETUP
7406 {
7407   LEAVE;
7408   ETag_surfxml_host___link();
7409   popbuffer(); /* attribute */
7410   switch (YY_START) {
7411    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;
7412   }
7413  }
7414         YY_BREAK
7415 case 250:
7416 /* rule 250 can match eol */
7417 YY_RULE_SETUP
7418 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7419         YY_BREAK
7420 case 251:
7421 YY_RULE_SETUP
7422 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7423         YY_BREAK
7424 case YY_STATE_EOF(E_surfxml_host___link):
7425 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7426         YY_BREAK
7427
7428 case 252:
7429 /* rule 252 can match eol */
7430 YY_RULE_SETUP
7431 FAIL("Starting tag <cluster> is not allowed here.");
7432         YY_BREAK
7433 case 253:
7434 /* rule 253 can match eol */
7435 YY_RULE_SETUP
7436 {
7437   AX_surfxml_cluster_id = 0;
7438   surfxml_cluster_id_isset = 0;
7439   AX_surfxml_cluster_prefix = 0;
7440   surfxml_cluster_prefix_isset = 0;
7441   AX_surfxml_cluster_suffix = 0;
7442   surfxml_cluster_suffix_isset = 0;
7443   AX_surfxml_cluster_radical = 0;
7444   surfxml_cluster_radical_isset = 0;
7445   AX_surfxml_cluster_power = 0;
7446   surfxml_cluster_power_isset = 0;
7447   AX_surfxml_cluster_core = 44;
7448   surfxml_cluster_core_isset = 0;
7449   AX_surfxml_cluster_bw = 0;
7450   surfxml_cluster_bw_isset = 0;
7451   AX_surfxml_cluster_lat = 0;
7452   surfxml_cluster_lat_isset = 0;
7453   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7454   surfxml_cluster_sharing___policy_isset = 0;
7455   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7456   surfxml_cluster_topology_isset = 0;
7457   AX_surfxml_cluster_topo___parameters = 0;
7458   surfxml_cluster_topo___parameters_isset = 0;
7459   AX_surfxml_cluster_bb___bw = 0;
7460   surfxml_cluster_bb___bw_isset = 0;
7461   AX_surfxml_cluster_bb___lat = 0;
7462   surfxml_cluster_bb___lat_isset = 0;
7463   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7464   surfxml_cluster_bb___sharing___policy_isset = 0;
7465   AX_surfxml_cluster_availability___file = 0;
7466   surfxml_cluster_availability___file_isset = 0;
7467   AX_surfxml_cluster_state___file = 0;
7468   surfxml_cluster_state___file_isset = 0;
7469   AX_surfxml_cluster_router___id = 0;
7470   surfxml_cluster_router___id_isset = 0;
7471   AX_surfxml_cluster_limiter___link = 0;
7472   surfxml_cluster_limiter___link_isset = 0;
7473   AX_surfxml_cluster_loopback___bw = 0;
7474   surfxml_cluster_loopback___bw_isset = 0;
7475   AX_surfxml_cluster_loopback___lat = 0;
7476   surfxml_cluster_loopback___lat_isset = 0;
7477   ENTER(AL_surfxml_cluster); pushbuffer(0);
7478   }
7479         YY_BREAK
7480
7481 case 254:
7482 /* rule 254 can match eol */
7483 YY_RULE_SETUP
7484 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);
7485         YY_BREAK
7486 case 255:
7487 /* rule 255 can match eol */
7488 YY_RULE_SETUP
7489 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);
7490         YY_BREAK
7491 case 256:
7492 /* rule 256 can match eol */
7493 YY_RULE_SETUP
7494 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);
7495         YY_BREAK
7496 case 257:
7497 /* rule 257 can match eol */
7498 YY_RULE_SETUP
7499 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);
7500         YY_BREAK
7501 case 258:
7502 /* rule 258 can match eol */
7503 YY_RULE_SETUP
7504 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);
7505         YY_BREAK
7506 case 259:
7507 /* rule 259 can match eol */
7508 YY_RULE_SETUP
7509 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);
7510         YY_BREAK
7511 case 260:
7512 /* rule 260 can match eol */
7513 YY_RULE_SETUP
7514 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);
7515         YY_BREAK
7516 case 261:
7517 /* rule 261 can match eol */
7518 YY_RULE_SETUP
7519 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);
7520         YY_BREAK
7521 case 262:
7522 /* rule 262 can match eol */
7523 YY_RULE_SETUP
7524 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);
7525         YY_BREAK
7526 case 263:
7527 /* rule 263 can match eol */
7528 YY_RULE_SETUP
7529 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);
7530         YY_BREAK
7531 case 264:
7532 /* rule 264 can match eol */
7533 YY_RULE_SETUP
7534 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);
7535         YY_BREAK
7536 case 265:
7537 /* rule 265 can match eol */
7538 YY_RULE_SETUP
7539 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);
7540         YY_BREAK
7541 case 266:
7542 /* rule 266 can match eol */
7543 YY_RULE_SETUP
7544 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);
7545         YY_BREAK
7546 case 267:
7547 /* rule 267 can match eol */
7548 YY_RULE_SETUP
7549 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);
7550         YY_BREAK
7551 case 268:
7552 /* rule 268 can match eol */
7553 YY_RULE_SETUP
7554 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);
7555         YY_BREAK
7556 case 269:
7557 /* rule 269 can match eol */
7558 YY_RULE_SETUP
7559 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);
7560         YY_BREAK
7561 case 270:
7562 /* rule 270 can match eol */
7563 case 271:
7564 /* rule 271 can match eol */
7565 YY_RULE_SETUP
7566 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7567         YY_BREAK
7568 case 272:
7569 /* rule 272 can match eol */
7570 case 273:
7571 /* rule 273 can match eol */
7572 YY_RULE_SETUP
7573 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7574         YY_BREAK
7575 case 274:
7576 /* rule 274 can match eol */
7577 case 275:
7578 /* rule 275 can match eol */
7579 YY_RULE_SETUP
7580 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7581         YY_BREAK
7582 case 276:
7583 /* rule 276 can match eol */
7584 case 277:
7585 /* rule 277 can match eol */
7586 YY_RULE_SETUP
7587 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7588         YY_BREAK
7589 case 278:
7590 /* rule 278 can match eol */
7591 case 279:
7592 /* rule 279 can match eol */
7593 YY_RULE_SETUP
7594 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
7595         YY_BREAK
7596 case 280:
7597 /* rule 280 can match eol */
7598 YY_RULE_SETUP
7599 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");} surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_topo___parameters);
7600         YY_BREAK
7601 case 281:
7602 /* rule 281 can match eol */
7603 YY_RULE_SETUP
7604 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");}  surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_topo___parameters);
7605         YY_BREAK
7606 case 282:
7607 /* rule 282 can match eol */
7608 YY_RULE_SETUP
7609 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);
7610         YY_BREAK
7611 case 283:
7612 /* rule 283 can match eol */
7613 YY_RULE_SETUP
7614 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);
7615         YY_BREAK
7616 case 284:
7617 /* rule 284 can match eol */
7618 YY_RULE_SETUP
7619 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);
7620         YY_BREAK
7621 case 285:
7622 /* rule 285 can match eol */
7623 YY_RULE_SETUP
7624 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);
7625         YY_BREAK
7626 case 286:
7627 /* rule 286 can match eol */
7628 case 287:
7629 /* rule 287 can match eol */
7630 YY_RULE_SETUP
7631 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7632         YY_BREAK
7633 case 288:
7634 /* rule 288 can match eol */
7635 case 289:
7636 /* rule 289 can match eol */
7637 YY_RULE_SETUP
7638 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7639         YY_BREAK
7640 case 290:
7641 /* rule 290 can match eol */
7642 YY_RULE_SETUP
7643 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);
7644         YY_BREAK
7645 case 291:
7646 /* rule 291 can match eol */
7647 YY_RULE_SETUP
7648 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);
7649         YY_BREAK
7650 case 292:
7651 /* rule 292 can match eol */
7652 YY_RULE_SETUP
7653 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);
7654         YY_BREAK
7655 case 293:
7656 /* rule 293 can match eol */
7657 YY_RULE_SETUP
7658 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);
7659         YY_BREAK
7660 case 294:
7661 /* rule 294 can match eol */
7662 YY_RULE_SETUP
7663 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);
7664         YY_BREAK
7665 case 295:
7666 /* rule 295 can match eol */
7667 YY_RULE_SETUP
7668 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);
7669         YY_BREAK
7670 case 296:
7671 /* rule 296 can match eol */
7672 YY_RULE_SETUP
7673 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);
7674         YY_BREAK
7675 case 297:
7676 /* rule 297 can match eol */
7677 YY_RULE_SETUP
7678 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);
7679         YY_BREAK
7680 case 298:
7681 /* rule 298 can match eol */
7682 YY_RULE_SETUP
7683 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);
7684         YY_BREAK
7685 case 299:
7686 /* rule 299 can match eol */
7687 YY_RULE_SETUP
7688 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);
7689         YY_BREAK
7690 case 300:
7691 /* rule 300 can match eol */
7692 YY_RULE_SETUP
7693 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);
7694         YY_BREAK
7695 case 301:
7696 /* rule 301 can match eol */
7697 YY_RULE_SETUP
7698 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);
7699         YY_BREAK
7700 case 302:
7701 YY_RULE_SETUP
7702 {
7703   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7704   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7705   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7706   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7707   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7708   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7709   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7710   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7711  }
7712         YY_BREAK
7713 case 303:
7714 YY_RULE_SETUP
7715 {
7716   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7717   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7718   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7719   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7720   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7721   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7722   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7723   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7724   switch (YY_START) {
7725    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;
7726    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;
7727    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7728   }
7729  }
7730         YY_BREAK
7731 case 304:
7732 YY_RULE_SETUP
7733 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7734         YY_BREAK
7735 case 305:
7736 YY_RULE_SETUP
7737 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7738         YY_BREAK
7739 case YY_STATE_EOF(AL_surfxml_cluster):
7740 FAIL("EOF in attribute list of `cluster' element.");
7741         YY_BREAK
7742
7743 case 306:
7744 /* rule 306 can match eol */
7745 YY_RULE_SETUP
7746 {
7747   LEAVE;
7748   ETag_surfxml_cluster();
7749   popbuffer(); /* attribute */
7750   switch (YY_START) {
7751    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;
7752    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;
7753    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7754   }
7755  }
7756         YY_BREAK
7757 case 307:
7758 /* rule 307 can match eol */
7759 YY_RULE_SETUP
7760 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7761         YY_BREAK
7762 case 308:
7763 YY_RULE_SETUP
7764 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7765         YY_BREAK
7766 case YY_STATE_EOF(S_surfxml_cluster_2):
7767 case YY_STATE_EOF(S_surfxml_cluster):
7768 case YY_STATE_EOF(E_surfxml_cluster):
7769 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7770         YY_BREAK
7771
7772 case 309:
7773 /* rule 309 can match eol */
7774 YY_RULE_SETUP
7775 FAIL("Starting tag <cabinet> is not allowed here.");
7776         YY_BREAK
7777 case 310:
7778 /* rule 310 can match eol */
7779 YY_RULE_SETUP
7780 {
7781   AX_surfxml_cabinet_id = 0;
7782   surfxml_cabinet_id_isset = 0;
7783   AX_surfxml_cabinet_prefix = 0;
7784   surfxml_cabinet_prefix_isset = 0;
7785   AX_surfxml_cabinet_suffix = 0;
7786   surfxml_cabinet_suffix_isset = 0;
7787   AX_surfxml_cabinet_radical = 0;
7788   surfxml_cabinet_radical_isset = 0;
7789   AX_surfxml_cabinet_power = 0;
7790   surfxml_cabinet_power_isset = 0;
7791   AX_surfxml_cabinet_bw = 0;
7792   surfxml_cabinet_bw_isset = 0;
7793   AX_surfxml_cabinet_lat = 0;
7794   surfxml_cabinet_lat_isset = 0;
7795   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7796   }
7797         YY_BREAK
7798
7799 case 311:
7800 /* rule 311 can match eol */
7801 YY_RULE_SETUP
7802 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);
7803         YY_BREAK
7804 case 312:
7805 /* rule 312 can match eol */
7806 YY_RULE_SETUP
7807 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);
7808         YY_BREAK
7809 case 313:
7810 /* rule 313 can match eol */
7811 YY_RULE_SETUP
7812 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);
7813         YY_BREAK
7814 case 314:
7815 /* rule 314 can match eol */
7816 YY_RULE_SETUP
7817 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);
7818         YY_BREAK
7819 case 315:
7820 /* rule 315 can match eol */
7821 YY_RULE_SETUP
7822 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);
7823         YY_BREAK
7824 case 316:
7825 /* rule 316 can match eol */
7826 YY_RULE_SETUP
7827 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);
7828         YY_BREAK
7829 case 317:
7830 /* rule 317 can match eol */
7831 YY_RULE_SETUP
7832 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);
7833         YY_BREAK
7834 case 318:
7835 /* rule 318 can match eol */
7836 YY_RULE_SETUP
7837 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);
7838         YY_BREAK
7839 case 319:
7840 /* rule 319 can match eol */
7841 YY_RULE_SETUP
7842 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);
7843         YY_BREAK
7844 case 320:
7845 /* rule 320 can match eol */
7846 YY_RULE_SETUP
7847 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);
7848         YY_BREAK
7849 case 321:
7850 /* rule 321 can match eol */
7851 YY_RULE_SETUP
7852 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);
7853         YY_BREAK
7854 case 322:
7855 /* rule 322 can match eol */
7856 YY_RULE_SETUP
7857 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);
7858         YY_BREAK
7859 case 323:
7860 /* rule 323 can match eol */
7861 YY_RULE_SETUP
7862 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);
7863         YY_BREAK
7864 case 324:
7865 /* rule 324 can match eol */
7866 YY_RULE_SETUP
7867 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);
7868         YY_BREAK
7869 case 325:
7870 YY_RULE_SETUP
7871 {
7872   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7873   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7874   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7875   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7876   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7877   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7878   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7879   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7880  }
7881         YY_BREAK
7882 case 326:
7883 YY_RULE_SETUP
7884 {
7885   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7886   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7887   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7888   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7889   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7890   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7891   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7892   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7893   switch (YY_START) {
7894    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7895    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;
7896    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;
7897    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7898   }
7899  }
7900         YY_BREAK
7901 case 327:
7902 YY_RULE_SETUP
7903 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7904         YY_BREAK
7905 case 328:
7906 YY_RULE_SETUP
7907 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7908         YY_BREAK
7909 case YY_STATE_EOF(AL_surfxml_cabinet):
7910 FAIL("EOF in attribute list of `cabinet' element.");
7911         YY_BREAK
7912
7913 case 329:
7914 /* rule 329 can match eol */
7915 YY_RULE_SETUP
7916 {
7917   LEAVE;
7918   ETag_surfxml_cabinet();
7919   popbuffer(); /* attribute */
7920   switch (YY_START) {
7921    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7922    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;
7923    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;
7924    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7925   }
7926  }
7927         YY_BREAK
7928 case 330:
7929 /* rule 330 can match eol */
7930 YY_RULE_SETUP
7931 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7932         YY_BREAK
7933 case 331:
7934 YY_RULE_SETUP
7935 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7936         YY_BREAK
7937 case YY_STATE_EOF(E_surfxml_cabinet):
7938 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7939         YY_BREAK
7940
7941 case 332:
7942 /* rule 332 can match eol */
7943 YY_RULE_SETUP
7944 FAIL("Starting tag <peer> is not allowed here.");
7945         YY_BREAK
7946 case 333:
7947 /* rule 333 can match eol */
7948 YY_RULE_SETUP
7949 {
7950   AX_surfxml_peer_id = 0;
7951   surfxml_peer_id_isset = 0;
7952   AX_surfxml_peer_power = 0;
7953   surfxml_peer_power_isset = 0;
7954   AX_surfxml_peer_bw___in = 0;
7955   surfxml_peer_bw___in_isset = 0;
7956   AX_surfxml_peer_bw___out = 0;
7957   surfxml_peer_bw___out_isset = 0;
7958   AX_surfxml_peer_lat = 0;
7959   surfxml_peer_lat_isset = 0;
7960   AX_surfxml_peer_coordinates = 0;
7961   surfxml_peer_coordinates_isset = 0;
7962   AX_surfxml_peer_availability___file = 0;
7963   surfxml_peer_availability___file_isset = 0;
7964   AX_surfxml_peer_state___file = 0;
7965   surfxml_peer_state___file_isset = 0;
7966   ENTER(AL_surfxml_peer); pushbuffer(0);
7967   }
7968         YY_BREAK
7969
7970 case 334:
7971 /* rule 334 can match eol */
7972 YY_RULE_SETUP
7973 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);
7974         YY_BREAK
7975 case 335:
7976 /* rule 335 can match eol */
7977 YY_RULE_SETUP
7978 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);
7979         YY_BREAK
7980 case 336:
7981 /* rule 336 can match eol */
7982 YY_RULE_SETUP
7983 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);
7984         YY_BREAK
7985 case 337:
7986 /* rule 337 can match eol */
7987 YY_RULE_SETUP
7988 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);
7989         YY_BREAK
7990 case 338:
7991 /* rule 338 can match eol */
7992 YY_RULE_SETUP
7993 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);
7994         YY_BREAK
7995 case 339:
7996 /* rule 339 can match eol */
7997 YY_RULE_SETUP
7998 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);
7999         YY_BREAK
8000 case 340:
8001 /* rule 340 can match eol */
8002 YY_RULE_SETUP
8003 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);
8004         YY_BREAK
8005 case 341:
8006 /* rule 341 can match eol */
8007 YY_RULE_SETUP
8008 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);
8009         YY_BREAK
8010 case 342:
8011 /* rule 342 can match eol */
8012 YY_RULE_SETUP
8013 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);
8014         YY_BREAK
8015 case 343:
8016 /* rule 343 can match eol */
8017 YY_RULE_SETUP
8018 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);
8019         YY_BREAK
8020 case 344:
8021 /* rule 344 can match eol */
8022 YY_RULE_SETUP
8023 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);
8024         YY_BREAK
8025 case 345:
8026 /* rule 345 can match eol */
8027 YY_RULE_SETUP
8028 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);
8029         YY_BREAK
8030 case 346:
8031 /* rule 346 can match eol */
8032 YY_RULE_SETUP
8033 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);
8034         YY_BREAK
8035 case 347:
8036 /* rule 347 can match eol */
8037 YY_RULE_SETUP
8038 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);
8039         YY_BREAK
8040 case 348:
8041 /* rule 348 can match eol */
8042 YY_RULE_SETUP
8043 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);
8044         YY_BREAK
8045 case 349:
8046 /* rule 349 can match eol */
8047 YY_RULE_SETUP
8048 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);
8049         YY_BREAK
8050 case 350:
8051 YY_RULE_SETUP
8052 {
8053   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8054   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8055   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8056   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8057   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8058   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
8059  }
8060         YY_BREAK
8061 case 351:
8062 YY_RULE_SETUP
8063 {
8064   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8065   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
8066   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8067   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8068   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
8069   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
8070   switch (YY_START) {
8071    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;
8072    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;
8073    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
8074   }
8075  }
8076         YY_BREAK
8077 case 352:
8078 YY_RULE_SETUP
8079 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
8080         YY_BREAK
8081 case 353:
8082 YY_RULE_SETUP
8083 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
8084         YY_BREAK
8085 case YY_STATE_EOF(AL_surfxml_peer):
8086 FAIL("EOF in attribute list of `peer' element.");
8087         YY_BREAK
8088
8089 case 354:
8090 /* rule 354 can match eol */
8091 YY_RULE_SETUP
8092 {
8093   LEAVE;
8094   ETag_surfxml_peer();
8095   popbuffer(); /* attribute */
8096   switch (YY_START) {
8097    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;
8098    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;
8099    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
8100   }
8101  }
8102         YY_BREAK
8103 case 355:
8104 /* rule 355 can match eol */
8105 YY_RULE_SETUP
8106 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
8107         YY_BREAK
8108 case 356:
8109 YY_RULE_SETUP
8110 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
8111         YY_BREAK
8112 case YY_STATE_EOF(E_surfxml_peer):
8113 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
8114         YY_BREAK
8115
8116 case 357:
8117 /* rule 357 can match eol */
8118 YY_RULE_SETUP
8119 FAIL("Starting tag <router> is not allowed here.");
8120         YY_BREAK
8121 case 358:
8122 /* rule 358 can match eol */
8123 YY_RULE_SETUP
8124 {
8125   AX_surfxml_router_id = 0;
8126   surfxml_router_id_isset = 0;
8127   AX_surfxml_router_coordinates = 0;
8128   surfxml_router_coordinates_isset = 0;
8129   ENTER(AL_surfxml_router); pushbuffer(0);
8130   }
8131         YY_BREAK
8132
8133 case 359:
8134 /* rule 359 can match eol */
8135 YY_RULE_SETUP
8136 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);
8137         YY_BREAK
8138 case 360:
8139 /* rule 360 can match eol */
8140 YY_RULE_SETUP
8141 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);
8142         YY_BREAK
8143 case 361:
8144 /* rule 361 can match eol */
8145 YY_RULE_SETUP
8146 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);
8147         YY_BREAK
8148 case 362:
8149 /* rule 362 can match eol */
8150 YY_RULE_SETUP
8151 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);
8152         YY_BREAK
8153 case 363:
8154 YY_RULE_SETUP
8155 {
8156   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8157   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
8158  }
8159         YY_BREAK
8160 case 364:
8161 YY_RULE_SETUP
8162 {
8163   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8164   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
8165   switch (YY_START) {
8166    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;
8167   }
8168  }
8169         YY_BREAK
8170 case 365:
8171 YY_RULE_SETUP
8172 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
8173         YY_BREAK
8174 case 366:
8175 YY_RULE_SETUP
8176 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
8177         YY_BREAK
8178 case YY_STATE_EOF(AL_surfxml_router):
8179 FAIL("EOF in attribute list of `router' element.");
8180         YY_BREAK
8181
8182 case 367:
8183 /* rule 367 can match eol */
8184 YY_RULE_SETUP
8185 {
8186   LEAVE;
8187   ETag_surfxml_router();
8188   popbuffer(); /* attribute */
8189   switch (YY_START) {
8190    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;
8191   }
8192  }
8193         YY_BREAK
8194 case 368:
8195 /* rule 368 can match eol */
8196 YY_RULE_SETUP
8197 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
8198         YY_BREAK
8199 case 369:
8200 YY_RULE_SETUP
8201 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
8202         YY_BREAK
8203 case YY_STATE_EOF(E_surfxml_router):
8204 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
8205         YY_BREAK
8206
8207 case 370:
8208 /* rule 370 can match eol */
8209 YY_RULE_SETUP
8210 FAIL("Starting tag <backbone> is not allowed here.");
8211         YY_BREAK
8212 case 371:
8213 /* rule 371 can match eol */
8214 YY_RULE_SETUP
8215 {
8216   AX_surfxml_backbone_id = 0;
8217   surfxml_backbone_id_isset = 0;
8218   AX_surfxml_backbone_bandwidth = 0;
8219   surfxml_backbone_bandwidth_isset = 0;
8220   AX_surfxml_backbone_latency = 0;
8221   surfxml_backbone_latency_isset = 0;
8222   ENTER(AL_surfxml_backbone); pushbuffer(0);
8223   }
8224         YY_BREAK
8225
8226 case 372:
8227 /* rule 372 can match eol */
8228 YY_RULE_SETUP
8229 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);
8230         YY_BREAK
8231 case 373:
8232 /* rule 373 can match eol */
8233 YY_RULE_SETUP
8234 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);
8235         YY_BREAK
8236 case 374:
8237 /* rule 374 can match eol */
8238 YY_RULE_SETUP
8239 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);
8240         YY_BREAK
8241 case 375:
8242 /* rule 375 can match eol */
8243 YY_RULE_SETUP
8244 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);
8245         YY_BREAK
8246 case 376:
8247 /* rule 376 can match eol */
8248 YY_RULE_SETUP
8249 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);
8250         YY_BREAK
8251 case 377:
8252 /* rule 377 can match eol */
8253 YY_RULE_SETUP
8254 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);
8255         YY_BREAK
8256 case 378:
8257 YY_RULE_SETUP
8258 {
8259   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8260   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8261   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8262   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
8263  }
8264         YY_BREAK
8265 case 379:
8266 YY_RULE_SETUP
8267 {
8268   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8269   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8270   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8271   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
8272   switch (YY_START) {
8273    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8274    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;
8275   }
8276  }
8277         YY_BREAK
8278 case 380:
8279 YY_RULE_SETUP
8280 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
8281         YY_BREAK
8282 case 381:
8283 YY_RULE_SETUP
8284 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
8285         YY_BREAK
8286 case YY_STATE_EOF(AL_surfxml_backbone):
8287 FAIL("EOF in attribute list of `backbone' element.");
8288         YY_BREAK
8289
8290 case 382:
8291 /* rule 382 can match eol */
8292 YY_RULE_SETUP
8293 {
8294   LEAVE;
8295   ETag_surfxml_backbone();
8296   popbuffer(); /* attribute */
8297   switch (YY_START) {
8298    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8299    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;
8300   }
8301  }
8302         YY_BREAK
8303 case 383:
8304 /* rule 383 can match eol */
8305 YY_RULE_SETUP
8306 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
8307         YY_BREAK
8308 case 384:
8309 YY_RULE_SETUP
8310 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
8311         YY_BREAK
8312 case YY_STATE_EOF(E_surfxml_backbone):
8313 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8314         YY_BREAK
8315
8316 case 385:
8317 /* rule 385 can match eol */
8318 YY_RULE_SETUP
8319 FAIL("Starting tag <link> is not allowed here.");
8320         YY_BREAK
8321 case 386:
8322 /* rule 386 can match eol */
8323 YY_RULE_SETUP
8324 {
8325   AX_surfxml_link_id = 0;
8326   surfxml_link_id_isset = 0;
8327   AX_surfxml_link_bandwidth = 0;
8328   surfxml_link_bandwidth_isset = 0;
8329   AX_surfxml_link_bandwidth___file = 0;
8330   surfxml_link_bandwidth___file_isset = 0;
8331   AX_surfxml_link_latency = 46;
8332   surfxml_link_latency_isset = 0;
8333   AX_surfxml_link_latency___file = 0;
8334   surfxml_link_latency___file_isset = 0;
8335   AX_surfxml_link_state = A_surfxml_link_state_ON;
8336   surfxml_link_state_isset = 0;
8337   AX_surfxml_link_state___file = 0;
8338   surfxml_link_state___file_isset = 0;
8339   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8340   surfxml_link_sharing___policy_isset = 0;
8341   ENTER(AL_surfxml_link); pushbuffer(0);
8342   }
8343         YY_BREAK
8344
8345 case 387:
8346 /* rule 387 can match eol */
8347 YY_RULE_SETUP
8348 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);
8349         YY_BREAK
8350 case 388:
8351 /* rule 388 can match eol */
8352 YY_RULE_SETUP
8353 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);
8354         YY_BREAK
8355 case 389:
8356 /* rule 389 can match eol */
8357 YY_RULE_SETUP
8358 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);
8359         YY_BREAK
8360 case 390:
8361 /* rule 390 can match eol */
8362 YY_RULE_SETUP
8363 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);
8364         YY_BREAK
8365 case 391:
8366 /* rule 391 can match eol */
8367 YY_RULE_SETUP
8368 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);
8369         YY_BREAK
8370 case 392:
8371 /* rule 392 can match eol */
8372 YY_RULE_SETUP
8373 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);
8374         YY_BREAK
8375 case 393:
8376 /* rule 393 can match eol */
8377 YY_RULE_SETUP
8378 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);
8379         YY_BREAK
8380 case 394:
8381 /* rule 394 can match eol */
8382 YY_RULE_SETUP
8383 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);
8384         YY_BREAK
8385 case 395:
8386 /* rule 395 can match eol */
8387 YY_RULE_SETUP
8388 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);
8389         YY_BREAK
8390 case 396:
8391 /* rule 396 can match eol */
8392 YY_RULE_SETUP
8393 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);
8394         YY_BREAK
8395 case 397:
8396 /* rule 397 can match eol */
8397 case 398:
8398 /* rule 398 can match eol */
8399 YY_RULE_SETUP
8400 A_surfxml_link_state = A_surfxml_link_state_ON;
8401         YY_BREAK
8402 case 399:
8403 /* rule 399 can match eol */
8404 case 400:
8405 /* rule 400 can match eol */
8406 YY_RULE_SETUP
8407 A_surfxml_link_state = A_surfxml_link_state_OFF;
8408         YY_BREAK
8409 case 401:
8410 /* rule 401 can match eol */
8411 YY_RULE_SETUP
8412 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);
8413         YY_BREAK
8414 case 402:
8415 /* rule 402 can match eol */
8416 YY_RULE_SETUP
8417 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);
8418         YY_BREAK
8419 case 403:
8420 /* rule 403 can match eol */
8421 case 404:
8422 /* rule 404 can match eol */
8423 YY_RULE_SETUP
8424 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8425         YY_BREAK
8426 case 405:
8427 /* rule 405 can match eol */
8428 case 406:
8429 /* rule 406 can match eol */
8430 YY_RULE_SETUP
8431 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8432         YY_BREAK
8433 case 407:
8434 /* rule 407 can match eol */
8435 case 408:
8436 /* rule 408 can match eol */
8437 YY_RULE_SETUP
8438 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8439         YY_BREAK
8440 case 409:
8441 YY_RULE_SETUP
8442 {
8443   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8444   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8445   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8446  }
8447         YY_BREAK
8448 case 410:
8449 YY_RULE_SETUP
8450 {
8451   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8452   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8453   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8454   switch (YY_START) {
8455    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8456    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;
8457   }
8458  }
8459         YY_BREAK
8460 case 411:
8461 YY_RULE_SETUP
8462 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8463         YY_BREAK
8464 case 412:
8465 YY_RULE_SETUP
8466 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8467         YY_BREAK
8468 case YY_STATE_EOF(AL_surfxml_link):
8469 FAIL("EOF in attribute list of `link' element.");
8470         YY_BREAK
8471
8472 case 413:
8473 /* rule 413 can match eol */
8474 YY_RULE_SETUP
8475 {
8476   LEAVE;
8477   ETag_surfxml_link();
8478   popbuffer(); /* attribute */
8479   switch (YY_START) {
8480    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8481    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;
8482   }
8483  }
8484         YY_BREAK
8485 case 414:
8486 /* rule 414 can match eol */
8487 YY_RULE_SETUP
8488 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8489         YY_BREAK
8490 case 415:
8491 YY_RULE_SETUP
8492 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8493         YY_BREAK
8494 case YY_STATE_EOF(E_surfxml_link):
8495 case YY_STATE_EOF(S_surfxml_link_2):
8496 case YY_STATE_EOF(S_surfxml_link):
8497 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8498         YY_BREAK
8499
8500 case 416:
8501 /* rule 416 can match eol */
8502 YY_RULE_SETUP
8503 FAIL("Starting tag <route> is not allowed here.");
8504         YY_BREAK
8505 case 417:
8506 /* rule 417 can match eol */
8507 YY_RULE_SETUP
8508 {
8509   AX_surfxml_route_src = 0;
8510   surfxml_route_src_isset = 0;
8511   AX_surfxml_route_dst = 0;
8512   surfxml_route_dst_isset = 0;
8513   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8514   surfxml_route_symmetrical_isset = 0;
8515   ENTER(AL_surfxml_route); pushbuffer(0);
8516   }
8517         YY_BREAK
8518
8519 case 418:
8520 /* rule 418 can match eol */
8521 YY_RULE_SETUP
8522 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);
8523         YY_BREAK
8524 case 419:
8525 /* rule 419 can match eol */
8526 YY_RULE_SETUP
8527 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);
8528         YY_BREAK
8529 case 420:
8530 /* rule 420 can match eol */
8531 YY_RULE_SETUP
8532 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);
8533         YY_BREAK
8534 case 421:
8535 /* rule 421 can match eol */
8536 YY_RULE_SETUP
8537 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);
8538         YY_BREAK
8539 case 422:
8540 /* rule 422 can match eol */
8541 case 423:
8542 /* rule 423 can match eol */
8543 YY_RULE_SETUP
8544 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8545         YY_BREAK
8546 case 424:
8547 /* rule 424 can match eol */
8548 case 425:
8549 /* rule 425 can match eol */
8550 YY_RULE_SETUP
8551 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8552         YY_BREAK
8553 case 426:
8554 YY_RULE_SETUP
8555 {
8556   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8557   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8558   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8559  }
8560         YY_BREAK
8561 case 427:
8562 YY_RULE_SETUP
8563 {
8564   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8565   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8566   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8567   switch (YY_START) {
8568    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;
8569   }
8570  }
8571         YY_BREAK
8572 case 428:
8573 YY_RULE_SETUP
8574 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8575         YY_BREAK
8576 case 429:
8577 YY_RULE_SETUP
8578 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8579         YY_BREAK
8580 case YY_STATE_EOF(AL_surfxml_route):
8581 FAIL("EOF in attribute list of `route' element.");
8582         YY_BREAK
8583
8584 case 430:
8585 /* rule 430 can match eol */
8586 YY_RULE_SETUP
8587 {
8588   LEAVE;
8589   ETag_surfxml_route();
8590   popbuffer(); /* attribute */
8591   switch (YY_START) {
8592    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;
8593   }
8594  }
8595         YY_BREAK
8596 case 431:
8597 /* rule 431 can match eol */
8598 YY_RULE_SETUP
8599 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8600         YY_BREAK
8601 case 432:
8602 YY_RULE_SETUP
8603 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8604         YY_BREAK
8605 case YY_STATE_EOF(S_surfxml_route):
8606 case YY_STATE_EOF(S_surfxml_route_2):
8607 case YY_STATE_EOF(E_surfxml_route):
8608 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8609         YY_BREAK
8610
8611 case 433:
8612 /* rule 433 can match eol */
8613 YY_RULE_SETUP
8614 FAIL("Starting tag <ASroute> is not allowed here.");
8615         YY_BREAK
8616 case 434:
8617 /* rule 434 can match eol */
8618 YY_RULE_SETUP
8619 {
8620   AX_surfxml_ASroute_src = 0;
8621   surfxml_ASroute_src_isset = 0;
8622   AX_surfxml_ASroute_dst = 0;
8623   surfxml_ASroute_dst_isset = 0;
8624   AX_surfxml_ASroute_gw___src = 0;
8625   surfxml_ASroute_gw___src_isset = 0;
8626   AX_surfxml_ASroute_gw___dst = 0;
8627   surfxml_ASroute_gw___dst_isset = 0;
8628   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8629   surfxml_ASroute_symmetrical_isset = 0;
8630   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8631   }
8632         YY_BREAK
8633
8634 case 435:
8635 /* rule 435 can match eol */
8636 YY_RULE_SETUP
8637 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);
8638         YY_BREAK
8639 case 436:
8640 /* rule 436 can match eol */
8641 YY_RULE_SETUP
8642 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);
8643         YY_BREAK
8644 case 437:
8645 /* rule 437 can match eol */
8646 YY_RULE_SETUP
8647 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);
8648         YY_BREAK
8649 case 438:
8650 /* rule 438 can match eol */
8651 YY_RULE_SETUP
8652 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);
8653         YY_BREAK
8654 case 439:
8655 /* rule 439 can match eol */
8656 YY_RULE_SETUP
8657 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);
8658         YY_BREAK
8659 case 440:
8660 /* rule 440 can match eol */
8661 YY_RULE_SETUP
8662 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);
8663         YY_BREAK
8664 case 441:
8665 /* rule 441 can match eol */
8666 YY_RULE_SETUP
8667 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);
8668         YY_BREAK
8669 case 442:
8670 /* rule 442 can match eol */
8671 YY_RULE_SETUP
8672 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);
8673         YY_BREAK
8674 case 443:
8675 /* rule 443 can match eol */
8676 case 444:
8677 /* rule 444 can match eol */
8678 YY_RULE_SETUP
8679 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8680         YY_BREAK
8681 case 445:
8682 /* rule 445 can match eol */
8683 case 446:
8684 /* rule 446 can match eol */
8685 YY_RULE_SETUP
8686 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8687         YY_BREAK
8688 case 447:
8689 YY_RULE_SETUP
8690 {
8691   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8692   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8693   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8694   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8695   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8696  }
8697         YY_BREAK
8698 case 448:
8699 YY_RULE_SETUP
8700 {
8701   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8702   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8703   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8704   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8705   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8706   switch (YY_START) {
8707    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;
8708   }
8709  }
8710         YY_BREAK
8711 case 449:
8712 YY_RULE_SETUP
8713 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8714         YY_BREAK
8715 case 450:
8716 YY_RULE_SETUP
8717 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8718         YY_BREAK
8719 case YY_STATE_EOF(AL_surfxml_ASroute):
8720 FAIL("EOF in attribute list of `ASroute' element.");
8721         YY_BREAK
8722
8723 case 451:
8724 /* rule 451 can match eol */
8725 YY_RULE_SETUP
8726 {
8727   LEAVE;
8728   ETag_surfxml_ASroute();
8729   popbuffer(); /* attribute */
8730   switch (YY_START) {
8731    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;
8732   }
8733  }
8734         YY_BREAK
8735 case 452:
8736 /* rule 452 can match eol */
8737 YY_RULE_SETUP
8738 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8739         YY_BREAK
8740 case 453:
8741 YY_RULE_SETUP
8742 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8743         YY_BREAK
8744 case YY_STATE_EOF(E_surfxml_ASroute):
8745 case YY_STATE_EOF(S_surfxml_ASroute):
8746 case YY_STATE_EOF(S_surfxml_ASroute_2):
8747 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8748         YY_BREAK
8749
8750 case 454:
8751 /* rule 454 can match eol */
8752 YY_RULE_SETUP
8753 FAIL("Starting tag <link_ctn> is not allowed here.");
8754         YY_BREAK
8755 case 455:
8756 /* rule 455 can match eol */
8757 YY_RULE_SETUP
8758 {
8759   AX_surfxml_link___ctn_id = 0;
8760   surfxml_link___ctn_id_isset = 0;
8761   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8762   surfxml_link___ctn_direction_isset = 0;
8763   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8764   }
8765         YY_BREAK
8766
8767 case 456:
8768 /* rule 456 can match eol */
8769 YY_RULE_SETUP
8770 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);
8771         YY_BREAK
8772 case 457:
8773 /* rule 457 can match eol */
8774 YY_RULE_SETUP
8775 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);
8776         YY_BREAK
8777 case 458:
8778 /* rule 458 can match eol */
8779 case 459:
8780 /* rule 459 can match eol */
8781 YY_RULE_SETUP
8782 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8783         YY_BREAK
8784 case 460:
8785 /* rule 460 can match eol */
8786 case 461:
8787 /* rule 461 can match eol */
8788 YY_RULE_SETUP
8789 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8790         YY_BREAK
8791 case 462:
8792 /* rule 462 can match eol */
8793 case 463:
8794 /* rule 463 can match eol */
8795 YY_RULE_SETUP
8796 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8797         YY_BREAK
8798 case 464:
8799 YY_RULE_SETUP
8800 {
8801   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8802   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8803  }
8804         YY_BREAK
8805 case 465:
8806 YY_RULE_SETUP
8807 {
8808   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8809   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8810   switch (YY_START) {
8811    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8812    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8813    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8814    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8815   }
8816  }
8817         YY_BREAK
8818 case 466:
8819 YY_RULE_SETUP
8820 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8821         YY_BREAK
8822 case 467:
8823 YY_RULE_SETUP
8824 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8825         YY_BREAK
8826 case YY_STATE_EOF(AL_surfxml_link___ctn):
8827 FAIL("EOF in attribute list of `link_ctn' element.");
8828         YY_BREAK
8829
8830 case 468:
8831 /* rule 468 can match eol */
8832 YY_RULE_SETUP
8833 {
8834   LEAVE;
8835   ETag_surfxml_link___ctn();
8836   popbuffer(); /* attribute */
8837   switch (YY_START) {
8838    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8839    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8840    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8841    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8842   }
8843  }
8844         YY_BREAK
8845 case 469:
8846 /* rule 469 can match eol */
8847 YY_RULE_SETUP
8848 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8849         YY_BREAK
8850 case 470:
8851 YY_RULE_SETUP
8852 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8853         YY_BREAK
8854 case YY_STATE_EOF(E_surfxml_link___ctn):
8855 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8856         YY_BREAK
8857
8858 case 471:
8859 /* rule 471 can match eol */
8860 YY_RULE_SETUP
8861 FAIL("Starting tag <bypassRoute> is not allowed here.");
8862         YY_BREAK
8863 case 472:
8864 /* rule 472 can match eol */
8865 YY_RULE_SETUP
8866 {
8867   AX_surfxml_bypassRoute_src = 0;
8868   surfxml_bypassRoute_src_isset = 0;
8869   AX_surfxml_bypassRoute_dst = 0;
8870   surfxml_bypassRoute_dst_isset = 0;
8871   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8872   }
8873         YY_BREAK
8874
8875 case 473:
8876 /* rule 473 can match eol */
8877 YY_RULE_SETUP
8878 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);
8879         YY_BREAK
8880 case 474:
8881 /* rule 474 can match eol */
8882 YY_RULE_SETUP
8883 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);
8884         YY_BREAK
8885 case 475:
8886 /* rule 475 can match eol */
8887 YY_RULE_SETUP
8888 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);
8889         YY_BREAK
8890 case 476:
8891 /* rule 476 can match eol */
8892 YY_RULE_SETUP
8893 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);
8894         YY_BREAK
8895 case 477:
8896 YY_RULE_SETUP
8897 {
8898   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8899   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8900   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8901  }
8902         YY_BREAK
8903 case 478:
8904 YY_RULE_SETUP
8905 {
8906   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8907   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8908   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8909   switch (YY_START) {
8910    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;
8911   }
8912  }
8913         YY_BREAK
8914 case 479:
8915 YY_RULE_SETUP
8916 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8917         YY_BREAK
8918 case 480:
8919 YY_RULE_SETUP
8920 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8921         YY_BREAK
8922 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8923 FAIL("EOF in attribute list of `bypassRoute' element.");
8924         YY_BREAK
8925
8926 case 481:
8927 /* rule 481 can match eol */
8928 YY_RULE_SETUP
8929 {
8930   LEAVE;
8931   ETag_surfxml_bypassRoute();
8932   popbuffer(); /* attribute */
8933   switch (YY_START) {
8934    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;
8935   }
8936  }
8937         YY_BREAK
8938 case 482:
8939 /* rule 482 can match eol */
8940 YY_RULE_SETUP
8941 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8942         YY_BREAK
8943 case 483:
8944 YY_RULE_SETUP
8945 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8946         YY_BREAK
8947 case YY_STATE_EOF(S_surfxml_bypassRoute):
8948 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8949 case YY_STATE_EOF(E_surfxml_bypassRoute):
8950 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8951         YY_BREAK
8952
8953 case 484:
8954 /* rule 484 can match eol */
8955 YY_RULE_SETUP
8956 FAIL("Starting tag <bypassASroute> is not allowed here.");
8957         YY_BREAK
8958 case 485:
8959 /* rule 485 can match eol */
8960 YY_RULE_SETUP
8961 {
8962   AX_surfxml_bypassASroute_src = 0;
8963   surfxml_bypassASroute_src_isset = 0;
8964   AX_surfxml_bypassASroute_dst = 0;
8965   surfxml_bypassASroute_dst_isset = 0;
8966   AX_surfxml_bypassASroute_gw___src = 0;
8967   surfxml_bypassASroute_gw___src_isset = 0;
8968   AX_surfxml_bypassASroute_gw___dst = 0;
8969   surfxml_bypassASroute_gw___dst_isset = 0;
8970   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8971   }
8972         YY_BREAK
8973
8974 case 486:
8975 /* rule 486 can match eol */
8976 YY_RULE_SETUP
8977 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);
8978         YY_BREAK
8979 case 487:
8980 /* rule 487 can match eol */
8981 YY_RULE_SETUP
8982 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);
8983         YY_BREAK
8984 case 488:
8985 /* rule 488 can match eol */
8986 YY_RULE_SETUP
8987 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);
8988         YY_BREAK
8989 case 489:
8990 /* rule 489 can match eol */
8991 YY_RULE_SETUP
8992 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);
8993         YY_BREAK
8994 case 490:
8995 /* rule 490 can match eol */
8996 YY_RULE_SETUP
8997 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);
8998         YY_BREAK
8999 case 491:
9000 /* rule 491 can match eol */
9001 YY_RULE_SETUP
9002 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);
9003         YY_BREAK
9004 case 492:
9005 /* rule 492 can match eol */
9006 YY_RULE_SETUP
9007 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);
9008         YY_BREAK
9009 case 493:
9010 /* rule 493 can match eol */
9011 YY_RULE_SETUP
9012 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);
9013         YY_BREAK
9014 case 494:
9015 YY_RULE_SETUP
9016 {
9017   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
9018   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
9019   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
9020   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
9021   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
9022  }
9023         YY_BREAK
9024 case 495:
9025 YY_RULE_SETUP
9026 {
9027   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
9028   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
9029   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
9030   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
9031   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
9032   switch (YY_START) {
9033    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;
9034   }
9035  }
9036         YY_BREAK
9037 case 496:
9038 YY_RULE_SETUP
9039 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
9040         YY_BREAK
9041 case 497:
9042 YY_RULE_SETUP
9043 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
9044         YY_BREAK
9045 case YY_STATE_EOF(AL_surfxml_bypassASroute):
9046 FAIL("EOF in attribute list of `bypassASroute' element.");
9047         YY_BREAK
9048
9049 case 498:
9050 /* rule 498 can match eol */
9051 YY_RULE_SETUP
9052 {
9053   LEAVE;
9054   ETag_surfxml_bypassASroute();
9055   popbuffer(); /* attribute */
9056   switch (YY_START) {
9057    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;
9058   }
9059  }
9060         YY_BREAK
9061 case 499:
9062 /* rule 499 can match eol */
9063 YY_RULE_SETUP
9064 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
9065         YY_BREAK
9066 case 500:
9067 YY_RULE_SETUP
9068 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
9069         YY_BREAK
9070 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
9071 case YY_STATE_EOF(E_surfxml_bypassASroute):
9072 case YY_STATE_EOF(S_surfxml_bypassASroute):
9073 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
9074         YY_BREAK
9075
9076 case 501:
9077 /* rule 501 can match eol */
9078 YY_RULE_SETUP
9079 FAIL("Starting tag <process> is not allowed here.");
9080         YY_BREAK
9081 case 502:
9082 /* rule 502 can match eol */
9083 YY_RULE_SETUP
9084 {
9085   AX_surfxml_process_host = 0;
9086   surfxml_process_host_isset = 0;
9087   AX_surfxml_process_function = 0;
9088   surfxml_process_function_isset = 0;
9089   AX_surfxml_process_start___time = 50;
9090   surfxml_process_start___time_isset = 0;
9091   AX_surfxml_process_kill___time = 55;
9092   surfxml_process_kill___time_isset = 0;
9093   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9094   surfxml_process_on___failure_isset = 0;
9095   ENTER(AL_surfxml_process); pushbuffer(0);
9096   }
9097         YY_BREAK
9098
9099 case 503:
9100 /* rule 503 can match eol */
9101 YY_RULE_SETUP
9102 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);
9103         YY_BREAK
9104 case 504:
9105 /* rule 504 can match eol */
9106 YY_RULE_SETUP
9107 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);
9108         YY_BREAK
9109 case 505:
9110 /* rule 505 can match eol */
9111 YY_RULE_SETUP
9112 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);
9113         YY_BREAK
9114 case 506:
9115 /* rule 506 can match eol */
9116 YY_RULE_SETUP
9117 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);
9118         YY_BREAK
9119 case 507:
9120 /* rule 507 can match eol */
9121 YY_RULE_SETUP
9122 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);
9123         YY_BREAK
9124 case 508:
9125 /* rule 508 can match eol */
9126 YY_RULE_SETUP
9127 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);
9128         YY_BREAK
9129 case 509:
9130 /* rule 509 can match eol */
9131 YY_RULE_SETUP
9132 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);
9133         YY_BREAK
9134 case 510:
9135 /* rule 510 can match eol */
9136 YY_RULE_SETUP
9137 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);
9138         YY_BREAK
9139 case 511:
9140 /* rule 511 can match eol */
9141 case 512:
9142 /* rule 512 can match eol */
9143 YY_RULE_SETUP
9144 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9145         YY_BREAK
9146 case 513:
9147 /* rule 513 can match eol */
9148 case 514:
9149 /* rule 514 can match eol */
9150 YY_RULE_SETUP
9151 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9152         YY_BREAK
9153 case 515:
9154 YY_RULE_SETUP
9155 {
9156   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9157   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9158   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9159  }
9160         YY_BREAK
9161 case 516:
9162 YY_RULE_SETUP
9163 {
9164   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9165   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9166   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9167   switch (YY_START) {
9168    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;
9169   }
9170  }
9171         YY_BREAK
9172 case 517:
9173 YY_RULE_SETUP
9174 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
9175         YY_BREAK
9176 case 518:
9177 YY_RULE_SETUP
9178 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
9179         YY_BREAK
9180 case YY_STATE_EOF(AL_surfxml_process):
9181 FAIL("EOF in attribute list of `process' element.");
9182         YY_BREAK
9183
9184 case 519:
9185 /* rule 519 can match eol */
9186 YY_RULE_SETUP
9187 {
9188   LEAVE;
9189   ETag_surfxml_process();
9190   popbuffer(); /* attribute */
9191   switch (YY_START) {
9192    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;
9193   }
9194  }
9195         YY_BREAK
9196 case 520:
9197 /* rule 520 can match eol */
9198 YY_RULE_SETUP
9199 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
9200         YY_BREAK
9201 case 521:
9202 YY_RULE_SETUP
9203 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
9204         YY_BREAK
9205 case YY_STATE_EOF(E_surfxml_process):
9206 case YY_STATE_EOF(S_surfxml_process):
9207 case YY_STATE_EOF(S_surfxml_process_2):
9208 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
9209         YY_BREAK
9210
9211 case 522:
9212 /* rule 522 can match eol */
9213 YY_RULE_SETUP
9214 FAIL("Starting tag <argument> is not allowed here.");
9215         YY_BREAK
9216 case 523:
9217 /* rule 523 can match eol */
9218 YY_RULE_SETUP
9219 {
9220   AX_surfxml_argument_value = 0;
9221   surfxml_argument_value_isset = 0;
9222   ENTER(AL_surfxml_argument); pushbuffer(0);
9223   }
9224         YY_BREAK
9225
9226 case 524:
9227 /* rule 524 can match eol */
9228 YY_RULE_SETUP
9229 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);
9230         YY_BREAK
9231 case 525:
9232 /* rule 525 can match eol */
9233 YY_RULE_SETUP
9234 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);
9235         YY_BREAK
9236 case 526:
9237 YY_RULE_SETUP
9238 {
9239   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9240   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
9241  }
9242         YY_BREAK
9243 case 527:
9244 YY_RULE_SETUP
9245 {
9246   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9247   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
9248   switch (YY_START) {
9249    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9250   }
9251  }
9252         YY_BREAK
9253 case 528:
9254 YY_RULE_SETUP
9255 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
9256         YY_BREAK
9257 case 529:
9258 YY_RULE_SETUP
9259 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
9260         YY_BREAK
9261 case YY_STATE_EOF(AL_surfxml_argument):
9262 FAIL("EOF in attribute list of `argument' element.");
9263         YY_BREAK
9264
9265 case 530:
9266 /* rule 530 can match eol */
9267 YY_RULE_SETUP
9268 {
9269   LEAVE;
9270   ETag_surfxml_argument();
9271   popbuffer(); /* attribute */
9272   switch (YY_START) {
9273    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9274   }
9275  }
9276         YY_BREAK
9277 case 531:
9278 /* rule 531 can match eol */
9279 YY_RULE_SETUP
9280 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
9281         YY_BREAK
9282 case 532:
9283 YY_RULE_SETUP
9284 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
9285         YY_BREAK
9286 case YY_STATE_EOF(E_surfxml_argument):
9287 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
9288         YY_BREAK
9289
9290 case 533:
9291 /* rule 533 can match eol */
9292 YY_RULE_SETUP
9293 FAIL("Starting tag <config> is not allowed here.");
9294         YY_BREAK
9295 case 534:
9296 /* rule 534 can match eol */
9297 YY_RULE_SETUP
9298 {
9299   AX_surfxml_config_id = 0;
9300   surfxml_config_id_isset = 0;
9301   ENTER(AL_surfxml_config); pushbuffer(0);
9302   }
9303         YY_BREAK
9304
9305 case 535:
9306 /* rule 535 can match eol */
9307 YY_RULE_SETUP
9308 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);
9309         YY_BREAK
9310 case 536:
9311 /* rule 536 can match eol */
9312 YY_RULE_SETUP
9313 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);
9314         YY_BREAK
9315 case 537:
9316 YY_RULE_SETUP
9317 {
9318   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9319  }
9320         YY_BREAK
9321 case 538:
9322 YY_RULE_SETUP
9323 {
9324   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9325   switch (YY_START) {
9326    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9327   }
9328  }
9329         YY_BREAK
9330 case 539:
9331 YY_RULE_SETUP
9332 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9333         YY_BREAK
9334 case 540:
9335 YY_RULE_SETUP
9336 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9337         YY_BREAK
9338 case YY_STATE_EOF(AL_surfxml_config):
9339 FAIL("EOF in attribute list of `config' element.");
9340         YY_BREAK
9341
9342 case 541:
9343 /* rule 541 can match eol */
9344 YY_RULE_SETUP
9345 {
9346   LEAVE;
9347   ETag_surfxml_config();
9348   popbuffer(); /* attribute */
9349   switch (YY_START) {
9350    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9351   }
9352  }
9353         YY_BREAK
9354 case 542:
9355 /* rule 542 can match eol */
9356 YY_RULE_SETUP
9357 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9358         YY_BREAK
9359 case 543:
9360 YY_RULE_SETUP
9361 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9362         YY_BREAK
9363 case YY_STATE_EOF(S_surfxml_config):
9364 case YY_STATE_EOF(S_surfxml_config_2):
9365 case YY_STATE_EOF(E_surfxml_config):
9366 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9367         YY_BREAK
9368
9369 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9370   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9371 case 544:
9372 /* rule 544 can match eol */
9373 YY_RULE_SETUP
9374 FAIL("Starting tag <prop> is not allowed here.");
9375         YY_BREAK
9376 case 545:
9377 /* rule 545 can match eol */
9378 YY_RULE_SETUP
9379 {
9380   AX_surfxml_prop_id = 0;
9381   surfxml_prop_id_isset = 0;
9382   AX_surfxml_prop_value = 0;
9383   surfxml_prop_value_isset = 0;
9384   ENTER(AL_surfxml_prop); pushbuffer(0);
9385   }
9386         YY_BREAK
9387
9388 case 546:
9389 /* rule 546 can match eol */
9390 YY_RULE_SETUP
9391 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);
9392         YY_BREAK
9393 case 547:
9394 /* rule 547 can match eol */
9395 YY_RULE_SETUP
9396 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);
9397         YY_BREAK
9398 case 548:
9399 /* rule 548 can match eol */
9400 YY_RULE_SETUP
9401 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);
9402         YY_BREAK
9403 case 549:
9404 /* rule 549 can match eol */
9405 YY_RULE_SETUP
9406 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);
9407         YY_BREAK
9408 case 550:
9409 YY_RULE_SETUP
9410 {
9411   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9412   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9413   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9414  }
9415         YY_BREAK
9416 case 551:
9417 YY_RULE_SETUP
9418 {
9419   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9420   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9421   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9422   switch (YY_START) {
9423    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9424    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9425    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9426    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9427    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9428    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9429    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9430    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9431   }
9432  }
9433         YY_BREAK
9434 case 552:
9435 YY_RULE_SETUP
9436 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9437         YY_BREAK
9438 case 553:
9439 YY_RULE_SETUP
9440 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9441         YY_BREAK
9442 case YY_STATE_EOF(AL_surfxml_prop):
9443 FAIL("EOF in attribute list of `prop' element.");
9444         YY_BREAK
9445
9446 case 554:
9447 /* rule 554 can match eol */
9448 YY_RULE_SETUP
9449 {
9450   LEAVE;
9451   ETag_surfxml_prop();
9452   popbuffer(); /* attribute */
9453   switch (YY_START) {
9454    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9455    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9456    case S_surfxml_cluster_2: case S_surfxml_cluster: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9457    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9458    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9459    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9460    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9461    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9462   }
9463  }
9464         YY_BREAK
9465 case 555:
9466 /* rule 555 can match eol */
9467 YY_RULE_SETUP
9468 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9469         YY_BREAK
9470 case 556:
9471 YY_RULE_SETUP
9472 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9473         YY_BREAK
9474 case YY_STATE_EOF(E_surfxml_prop):
9475 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9476         YY_BREAK
9477
9478 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
9479   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
9480 case 557:
9481 /* rule 557 can match eol */
9482 YY_RULE_SETUP
9483 FAIL("Starting tag <model_prop> is not allowed here.");
9484         YY_BREAK
9485 case 558:
9486 /* rule 558 can match eol */
9487 YY_RULE_SETUP
9488 {
9489   AX_surfxml_model___prop_id = 0;
9490   surfxml_model___prop_id_isset = 0;
9491   AX_surfxml_model___prop_value = 0;
9492   surfxml_model___prop_value_isset = 0;
9493   ENTER(AL_surfxml_model___prop); pushbuffer(0);
9494   }
9495         YY_BREAK
9496
9497 case 559:
9498 /* rule 559 can match eol */
9499 YY_RULE_SETUP
9500 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");} surfxml_model___prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_id);
9501         YY_BREAK
9502 case 560:
9503 /* rule 560 can match eol */
9504 YY_RULE_SETUP
9505 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");}  surfxml_model___prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_id);
9506         YY_BREAK
9507 case 561:
9508 /* rule 561 can match eol */
9509 YY_RULE_SETUP
9510 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");} surfxml_model___prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_value);
9511         YY_BREAK
9512 case 562:
9513 /* rule 562 can match eol */
9514 YY_RULE_SETUP
9515 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");}  surfxml_model___prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_value);
9516         YY_BREAK
9517 case 563:
9518 YY_RULE_SETUP
9519 {
9520   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9521   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9522   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
9523  }
9524         YY_BREAK
9525 case 564:
9526 YY_RULE_SETUP
9527 {
9528   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
9529   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
9530   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
9531   switch (YY_START) {
9532    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9533   }
9534  }
9535         YY_BREAK
9536 case 565:
9537 YY_RULE_SETUP
9538 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
9539         YY_BREAK
9540 case 566:
9541 YY_RULE_SETUP
9542 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
9543         YY_BREAK
9544 case YY_STATE_EOF(AL_surfxml_model___prop):
9545 FAIL("EOF in attribute list of `model_prop' element.");
9546         YY_BREAK
9547
9548 case 567:
9549 /* rule 567 can match eol */
9550 YY_RULE_SETUP
9551 {
9552   LEAVE;
9553   ETag_surfxml_model___prop();
9554   popbuffer(); /* attribute */
9555   switch (YY_START) {
9556    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9557   }
9558  }
9559         YY_BREAK
9560 case 568:
9561 /* rule 568 can match eol */
9562 YY_RULE_SETUP
9563 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
9564         YY_BREAK
9565 case 569:
9566 YY_RULE_SETUP
9567 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
9568         YY_BREAK
9569 case YY_STATE_EOF(E_surfxml_model___prop):
9570 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
9571         YY_BREAK
9572
9573 /* EPILOG: after the root element. */
9574
9575 case 570:
9576 YY_RULE_SETUP
9577 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9578         YY_BREAK
9579 case YY_STATE_EOF(EPILOG):
9580 SUCCEED;
9581         YY_BREAK
9582
9583 /* CHARACTER DATA. */
9584
9585 /* Non-defined standard entities... */
9586 case 571:
9587 YY_RULE_SETUP
9588 BUFFERPUTC('&');
9589         YY_BREAK
9590 case 572:
9591 YY_RULE_SETUP
9592 BUFFERPUTC('<');
9593         YY_BREAK
9594 case 573:
9595 YY_RULE_SETUP
9596 BUFFERPUTC('>');
9597         YY_BREAK
9598 case 574:
9599 YY_RULE_SETUP
9600 BUFFERPUTC('\'');
9601         YY_BREAK
9602 case 575:
9603 YY_RULE_SETUP
9604 BUFFERPUTC('"');
9605         YY_BREAK
9606 /* Character entities. */
9607 case 576:
9608 YY_RULE_SETUP
9609 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9610         YY_BREAK
9611 case 577:
9612 YY_RULE_SETUP
9613 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9614         YY_BREAK
9615
9616 case 578:
9617 /* rule 578 can match eol */
9618 case 579:
9619 /* rule 579 can match eol */
9620 case 580:
9621 /* rule 580 can match eol */
9622 case 581:
9623 /* rule 581 can match eol */
9624 YY_RULE_SETUP
9625 BUFFERPUTC('\n');
9626         YY_BREAK
9627
9628 case 582:
9629 YY_RULE_SETUP
9630 ENTER(CDATA);
9631         YY_BREAK
9632 case 583:
9633 YY_RULE_SETUP
9634 FAIL("Unexpected `]""]>' in character data.");
9635         YY_BREAK
9636
9637 case 584:
9638 YY_RULE_SETUP
9639 BUFFERDONE; LEAVE;
9640         YY_BREAK
9641 case YY_STATE_EOF(VALUE1):
9642 FAIL("EOF in literal (\"'\" expected).");
9643         YY_BREAK
9644
9645 case 585:
9646 YY_RULE_SETUP
9647 BUFFERDONE; LEAVE;
9648         YY_BREAK
9649 case YY_STATE_EOF(VALUE2):
9650 FAIL("EOF in literal (`\"' expected).");
9651         YY_BREAK
9652
9653 case 586:
9654 /* rule 586 can match eol */
9655 YY_RULE_SETUP
9656 BUFFERPUTC(surf_parse_text[0]);
9657         YY_BREAK
9658 case 587:
9659 YY_RULE_SETUP
9660 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9661         YY_BREAK
9662
9663 case 588:
9664 YY_RULE_SETUP
9665 LEAVE;
9666         YY_BREAK
9667 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9668 case 589:
9669 YY_RULE_SETUP
9670 BUFFERPUTC(surf_parse_text[0]);
9671         YY_BREAK
9672 case YY_STATE_EOF(CDATA):
9673 FAIL("EOF in CDATA section.");
9674         YY_BREAK
9675
9676 /* Impossible rules to avoid warnings from flex(1). */
9677 /* Ideally, this should be replaced by code in flexml.pl that
9678     generates just the states not covered by other rules. */
9679
9680 case 590:
9681 /* rule 590 can match eol */
9682 YY_RULE_SETUP
9683 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9684         YY_BREAK
9685
9686 case 591:
9687 YY_RULE_SETUP
9688 ECHO;
9689         YY_BREAK
9690 case YY_STATE_EOF(INITIAL):
9691 case YY_STATE_EOF(ROOT_surfxml_platform):
9692 case YY_STATE_EOF(S_surfxml_platform_2):
9693 case YY_STATE_EOF(S_surfxml_platform_5):
9694 case YY_STATE_EOF(S_surfxml_platform_7):
9695 case YY_STATE_EOF(S_surfxml_include_1):
9696 case YY_STATE_EOF(S_surfxml_AS_2):
9697 case YY_STATE_EOF(S_surfxml_AS_5):
9698 case YY_STATE_EOF(S_surfxml_AS_8):
9699 case YY_STATE_EOF(S_surfxml_AS_10):
9700 case YY_STATE_EOF(S_surfxml_AS_13):
9701 case YY_STATE_EOF(S_surfxml_AS_15):
9702 case YY_STATE_EOF(S_surfxml_storage___type_1):
9703 case YY_STATE_EOF(S_surfxml_host_1):
9704 case YY_STATE_EOF(S_surfxml_storage_1):
9705 case YY_STATE_EOF(S_surfxml_cluster_1):
9706 case YY_STATE_EOF(S_surfxml_link_1):
9707 case YY_STATE_EOF(S_surfxml_route_1):
9708 case YY_STATE_EOF(S_surfxml_ASroute_1):
9709 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9710 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9711 case YY_STATE_EOF(S_surfxml_process_1):
9712 case YY_STATE_EOF(S_surfxml_config_1):
9713 case YY_STATE_EOF(IMPOSSIBLE):
9714         yyterminate();
9715
9716         case YY_END_OF_BUFFER:
9717                 {
9718                 /* Amount of text matched not including the EOB char. */
9719                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9720
9721                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9722                 *yy_cp = (yy_hold_char);
9723                 YY_RESTORE_YY_MORE_OFFSET
9724
9725                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9726                         {
9727                         /* We're scanning a new file or input source.  It's
9728                          * possible that this happened because the user
9729                          * just pointed surf_parse_in at a new source and called
9730                          * surf_parse_lex().  If so, then we have to assure
9731                          * consistency between YY_CURRENT_BUFFER and our
9732                          * globals.  Here is the right place to do so, because
9733                          * this is the first action (other than possibly a
9734                          * back-up) that will match for the new input source.
9735                          */
9736                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9737                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9738                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9739                         }
9740
9741                 /* Note that here we test for yy_c_buf_p "<=" to the position
9742                  * of the first EOB in the buffer, since yy_c_buf_p will
9743                  * already have been incremented past the NUL character
9744                  * (since all states make transitions on EOB to the
9745                  * end-of-buffer state).  Contrast this with the test
9746                  * in input().
9747                  */
9748                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9749                         { /* This was really a NUL. */
9750                         yy_state_type yy_next_state;
9751
9752                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9753
9754                         yy_current_state = yy_get_previous_state(  );
9755
9756                         /* Okay, we're now positioned to make the NUL
9757                          * transition.  We couldn't have
9758                          * yy_get_previous_state() go ahead and do it
9759                          * for us because it doesn't know how to deal
9760                          * with the possibility of jamming (and we don't
9761                          * want to build jamming into it because then it
9762                          * will run more slowly).
9763                          */
9764
9765                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9766
9767                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9768
9769                         if ( yy_next_state )
9770                                 {
9771                                 /* Consume the NUL. */
9772                                 yy_cp = ++(yy_c_buf_p);
9773                                 yy_current_state = yy_next_state;
9774                                 goto yy_match;
9775                                 }
9776
9777                         else
9778                                 {
9779                                 yy_cp = (yy_c_buf_p);
9780                                 goto yy_find_action;
9781                                 }
9782                         }
9783
9784                 else switch ( yy_get_next_buffer(  ) )
9785                         {
9786                         case EOB_ACT_END_OF_FILE:
9787                                 {
9788                                 (yy_did_buffer_switch_on_eof) = 0;
9789
9790                                 if ( surf_parse_wrap( ) )
9791                                         {
9792                                         /* Note: because we've taken care in
9793                                          * yy_get_next_buffer() to have set up
9794                                          * surf_parse_text, we can now set up
9795                                          * yy_c_buf_p so that if some total
9796                                          * hoser (like flex itself) wants to
9797                                          * call the scanner after we return the
9798                                          * YY_NULL, it'll still work - another
9799                                          * YY_NULL will get returned.
9800                                          */
9801                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9802
9803                                         yy_act = YY_STATE_EOF(YY_START);
9804                                         goto do_action;
9805                                         }
9806
9807                                 else
9808                                         {
9809                                         if ( ! (yy_did_buffer_switch_on_eof) )
9810                                                 YY_NEW_FILE;
9811                                         }
9812                                 break;
9813                                 }
9814
9815                         case EOB_ACT_CONTINUE_SCAN:
9816                                 (yy_c_buf_p) =
9817                                         (yytext_ptr) + yy_amount_of_matched_text;
9818
9819                                 yy_current_state = yy_get_previous_state(  );
9820
9821                                 yy_cp = (yy_c_buf_p);
9822                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9823                                 goto yy_match;
9824
9825                         case EOB_ACT_LAST_MATCH:
9826                                 (yy_c_buf_p) =
9827                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9828
9829                                 yy_current_state = yy_get_previous_state(  );
9830
9831                                 yy_cp = (yy_c_buf_p);
9832                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9833                                 goto yy_find_action;
9834                         }
9835                 break;
9836                 }
9837
9838         default:
9839                 YY_FATAL_ERROR(
9840                         "fatal flex scanner internal error--no action found" );
9841         } /* end of action switch */
9842                 } /* end of scanning one token */
9843 } /* end of surf_parse_lex */
9844
9845 /* yy_get_next_buffer - try to read in a new buffer
9846  *
9847  * Returns a code representing an action:
9848  *      EOB_ACT_LAST_MATCH -
9849  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9850  *      EOB_ACT_END_OF_FILE - end of file
9851  */
9852 static int yy_get_next_buffer (void)
9853 {
9854         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9855         register char *source = (yytext_ptr);
9856         register int number_to_move, i;
9857         int ret_val;
9858
9859         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9860                 YY_FATAL_ERROR(
9861                 "fatal flex scanner internal error--end of buffer missed" );
9862
9863         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9864                 { /* Don't try to fill the buffer, so this is an EOF. */
9865                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9866                         {
9867                         /* We matched a single character, the EOB, so
9868                          * treat this as a final EOF.
9869                          */
9870                         return EOB_ACT_END_OF_FILE;
9871                         }
9872
9873                 else
9874                         {
9875                         /* We matched some text prior to the EOB, first
9876                          * process it.
9877                          */
9878                         return EOB_ACT_LAST_MATCH;
9879                         }
9880                 }
9881
9882         /* Try to read more data. */
9883
9884         /* First move last chars to start of buffer. */
9885         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9886
9887         for ( i = 0; i < number_to_move; ++i )
9888                 *(dest++) = *(source++);
9889
9890         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9891                 /* don't do the read, it's not guaranteed to return an EOF,
9892                  * just force an EOF
9893                  */
9894                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9895
9896         else
9897                 {
9898                         int num_to_read =
9899                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9900
9901                 while ( num_to_read <= 0 )
9902                         { /* Not enough room in the buffer - grow it. */
9903
9904                         /* just a shorter name for the current buffer */
9905                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9906
9907                         int yy_c_buf_p_offset =
9908                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9909
9910                         if ( b->yy_is_our_buffer )
9911                                 {
9912                                 int new_size = b->yy_buf_size * 2;
9913
9914                                 if ( new_size <= 0 )
9915                                         b->yy_buf_size += b->yy_buf_size / 8;
9916                                 else
9917                                         b->yy_buf_size *= 2;
9918
9919                                 b->yy_ch_buf = (char *)
9920                                         /* Include room in for 2 EOB chars. */
9921                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9922                                 }
9923                         else
9924                                 /* Can't grow it, we don't own it. */
9925                                 b->yy_ch_buf = 0;
9926
9927                         if ( ! b->yy_ch_buf )
9928                                 YY_FATAL_ERROR(
9929                                 "fatal error - scanner input buffer overflow" );
9930
9931                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9932
9933                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9934                                                 number_to_move - 1;
9935
9936                         }
9937
9938                 if ( num_to_read > YY_READ_BUF_SIZE )
9939                         num_to_read = YY_READ_BUF_SIZE;
9940
9941                 /* Read in more data. */
9942                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9943                         (yy_n_chars), (size_t) num_to_read );
9944
9945                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9946                 }
9947
9948         if ( (yy_n_chars) == 0 )
9949                 {
9950                 if ( number_to_move == YY_MORE_ADJ )
9951                         {
9952                         ret_val = EOB_ACT_END_OF_FILE;
9953                         surf_parse_restart(surf_parse_in  );
9954                         }
9955
9956                 else
9957                         {
9958                         ret_val = EOB_ACT_LAST_MATCH;
9959                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9960                                 YY_BUFFER_EOF_PENDING;
9961                         }
9962                 }
9963
9964         else
9965                 ret_val = EOB_ACT_CONTINUE_SCAN;
9966
9967         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9968                 /* Extend the array by 50%, plus the number we really need. */
9969                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9970                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9971                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9972                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9973         }
9974
9975         (yy_n_chars) += number_to_move;
9976         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9977         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9978
9979         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9980
9981         return ret_val;
9982 }
9983
9984 /* yy_get_previous_state - get the state just before the EOB char was reached */
9985
9986     static yy_state_type yy_get_previous_state (void)
9987 {
9988         register yy_state_type yy_current_state;
9989         register char *yy_cp;
9990     
9991         yy_current_state = (yy_start);
9992
9993         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9994                 {
9995                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9996                 if ( yy_accept[yy_current_state] )
9997                         {
9998                         (yy_last_accepting_state) = yy_current_state;
9999                         (yy_last_accepting_cpos) = yy_cp;
10000                         }
10001                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10002                         {
10003                         yy_current_state = (int) yy_def[yy_current_state];
10004                         if ( yy_current_state >= 3469 )
10005                                 yy_c = yy_meta[(unsigned int) yy_c];
10006                         }
10007                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
10008                 }
10009
10010         return yy_current_state;
10011 }
10012
10013 /* yy_try_NUL_trans - try to make a transition on the NUL character
10014  *
10015  * synopsis
10016  *      next_state = yy_try_NUL_trans( current_state );
10017  */
10018     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
10019 {
10020         register int yy_is_jam;
10021         register char *yy_cp = (yy_c_buf_p);
10022
10023         register YY_CHAR yy_c = 1;
10024         if ( yy_accept[yy_current_state] )
10025                 {
10026                 (yy_last_accepting_state) = yy_current_state;
10027                 (yy_last_accepting_cpos) = yy_cp;
10028                 }
10029         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10030                 {
10031                 yy_current_state = (int) yy_def[yy_current_state];
10032                 if ( yy_current_state >= 3469 )
10033                         yy_c = yy_meta[(unsigned int) yy_c];
10034                 }
10035         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
10036         yy_is_jam = (yy_current_state == 3468);
10037
10038         return yy_is_jam ? 0 : yy_current_state;
10039 }
10040
10041 #ifndef YY_NO_INPUT
10042 #ifdef __cplusplus
10043     static int yyinput (void)
10044 #else
10045     static int input  (void)
10046 #endif
10047
10048 {
10049         int c;
10050     
10051         *(yy_c_buf_p) = (yy_hold_char);
10052
10053         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
10054                 {
10055                 /* yy_c_buf_p now points to the character we want to return.
10056                  * If this occurs *before* the EOB characters, then it's a
10057                  * valid NUL; if not, then we've hit the end of the buffer.
10058                  */
10059                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
10060                         /* This was really a NUL. */
10061                         *(yy_c_buf_p) = '\0';
10062
10063                 else
10064                         { /* need more input */
10065                         int offset = (yy_c_buf_p) - (yytext_ptr);
10066                         ++(yy_c_buf_p);
10067
10068                         switch ( yy_get_next_buffer(  ) )
10069                                 {
10070                                 case EOB_ACT_LAST_MATCH:
10071                                         /* This happens because yy_g_n_b()
10072                                          * sees that we've accumulated a
10073                                          * token and flags that we need to
10074                                          * try matching the token before
10075                                          * proceeding.  But for input(),
10076                                          * there's no matching to consider.
10077                                          * So convert the EOB_ACT_LAST_MATCH
10078                                          * to EOB_ACT_END_OF_FILE.
10079                                          */
10080
10081                                         /* Reset buffer status. */
10082                                         surf_parse_restart(surf_parse_in );
10083
10084                                         /*FALLTHROUGH*/
10085
10086                                 case EOB_ACT_END_OF_FILE:
10087                                         {
10088                                         if ( surf_parse_wrap( ) )
10089                                                 return EOF;
10090
10091                                         if ( ! (yy_did_buffer_switch_on_eof) )
10092                                                 YY_NEW_FILE;
10093 #ifdef __cplusplus
10094                                         return yyinput();
10095 #else
10096                                         return input();
10097 #endif
10098                                         }
10099
10100                                 case EOB_ACT_CONTINUE_SCAN:
10101                                         (yy_c_buf_p) = (yytext_ptr) + offset;
10102                                         break;
10103                                 }
10104                         }
10105                 }
10106
10107         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
10108         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
10109         (yy_hold_char) = *++(yy_c_buf_p);
10110
10111         if ( c == '\n' )
10112                    
10113     surf_parse_lineno++;
10114 ;
10115
10116         return c;
10117 }
10118 #endif  /* ifndef YY_NO_INPUT */
10119
10120 /** Immediately switch to a different input stream.
10121  * @param input_file A readable stream.
10122  * 
10123  * @note This function does not reset the start condition to @c INITIAL .
10124  */
10125     void surf_parse_restart  (FILE * input_file )
10126 {
10127     
10128         if ( ! YY_CURRENT_BUFFER ){
10129         surf_parse_ensure_buffer_stack ();
10130                 YY_CURRENT_BUFFER_LVALUE =
10131             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
10132         }
10133
10134         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
10135         surf_parse__load_buffer_state( );
10136 }
10137
10138 /** Switch to a different input buffer.
10139  * @param new_buffer The new input buffer.
10140  * 
10141  */
10142     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
10143 {
10144     
10145         /* TODO. We should be able to replace this entire function body
10146          * with
10147          *              surf_parse_pop_buffer_state();
10148          *              surf_parse_push_buffer_state(new_buffer);
10149      */
10150         surf_parse_ensure_buffer_stack ();
10151         if ( YY_CURRENT_BUFFER == new_buffer )
10152                 return;
10153
10154         if ( YY_CURRENT_BUFFER )
10155                 {
10156                 /* Flush out information for old buffer. */
10157                 *(yy_c_buf_p) = (yy_hold_char);
10158                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10159                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10160                 }
10161
10162         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10163         surf_parse__load_buffer_state( );
10164
10165         /* We don't actually know whether we did this switch during
10166          * EOF (surf_parse_wrap()) processing, but the only time this flag
10167          * is looked at is after surf_parse_wrap() is called, so it's safe
10168          * to go ahead and always set it.
10169          */
10170         (yy_did_buffer_switch_on_eof) = 1;
10171 }
10172
10173 static void surf_parse__load_buffer_state  (void)
10174 {
10175         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
10176         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
10177         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
10178         (yy_hold_char) = *(yy_c_buf_p);
10179 }
10180
10181 /** Allocate and initialize an input buffer state.
10182  * @param file A readable stream.
10183  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
10184  * 
10185  * @return the allocated buffer state.
10186  */
10187     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
10188 {
10189         YY_BUFFER_STATE b;
10190     
10191         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10192         if ( ! b )
10193                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10194
10195         b->yy_buf_size = size;
10196
10197         /* yy_ch_buf has to be 2 characters longer than the size given because
10198          * we need to put in 2 end-of-buffer characters.
10199          */
10200         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
10201         if ( ! b->yy_ch_buf )
10202                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
10203
10204         b->yy_is_our_buffer = 1;
10205
10206         surf_parse__init_buffer(b,file );
10207
10208         return b;
10209 }
10210
10211 /** Destroy the buffer.
10212  * @param b a buffer created with surf_parse__create_buffer()
10213  * 
10214  */
10215     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
10216 {
10217     
10218         if ( ! b )
10219                 return;
10220
10221         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
10222                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
10223
10224         if ( b->yy_is_our_buffer )
10225                 surf_parse_free((void *) b->yy_ch_buf  );
10226
10227         surf_parse_free((void *) b  );
10228 }
10229
10230 #ifndef __cplusplus
10231 extern int isatty (int );
10232 #endif /* __cplusplus */
10233     
10234 /* Initializes or reinitializes a buffer.
10235  * This function is sometimes called more than once on the same buffer,
10236  * such as during a surf_parse_restart() or at EOF.
10237  */
10238     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
10239
10240 {
10241         int oerrno = errno;
10242     
10243         surf_parse__flush_buffer(b );
10244
10245         b->yy_input_file = file;
10246         b->yy_fill_buffer = 1;
10247
10248     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
10249      * called from surf_parse_restart() or through yy_get_next_buffer.
10250      * In that case, we don't want to reset the lineno or column.
10251      */
10252     if (b != YY_CURRENT_BUFFER){
10253         b->yy_bs_lineno = 1;
10254         b->yy_bs_column = 0;
10255     }
10256
10257         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
10258     
10259         errno = oerrno;
10260 }
10261
10262 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
10263  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
10264  * 
10265  */
10266     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
10267 {
10268         if ( ! b )
10269                 return;
10270
10271         b->yy_n_chars = 0;
10272
10273         /* We always need two end-of-buffer characters.  The first causes
10274          * a transition to the end-of-buffer state.  The second causes
10275          * a jam in that state.
10276          */
10277         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10278         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10279
10280         b->yy_buf_pos = &b->yy_ch_buf[0];
10281
10282         b->yy_at_bol = 1;
10283         b->yy_buffer_status = YY_BUFFER_NEW;
10284
10285         if ( b == YY_CURRENT_BUFFER )
10286                 surf_parse__load_buffer_state( );
10287 }
10288
10289 /** Pushes the new state onto the stack. The new state becomes
10290  *  the current state. This function will allocate the stack
10291  *  if necessary.
10292  *  @param new_buffer The new state.
10293  *  
10294  */
10295 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10296 {
10297         if (new_buffer == NULL)
10298                 return;
10299
10300         surf_parse_ensure_buffer_stack();
10301
10302         /* This block is copied from surf_parse__switch_to_buffer. */
10303         if ( YY_CURRENT_BUFFER )
10304                 {
10305                 /* Flush out information for old buffer. */
10306                 *(yy_c_buf_p) = (yy_hold_char);
10307                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10308                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10309                 }
10310
10311         /* Only push if top exists. Otherwise, replace top. */
10312         if (YY_CURRENT_BUFFER)
10313                 (yy_buffer_stack_top)++;
10314         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10315
10316         /* copied from surf_parse__switch_to_buffer. */
10317         surf_parse__load_buffer_state( );
10318         (yy_did_buffer_switch_on_eof) = 1;
10319 }
10320
10321 /** Removes and deletes the top of the stack, if present.
10322  *  The next element becomes the new top.
10323  *  
10324  */
10325 void surf_parse_pop_buffer_state (void)
10326 {
10327         if (!YY_CURRENT_BUFFER)
10328                 return;
10329
10330         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10331         YY_CURRENT_BUFFER_LVALUE = NULL;
10332         if ((yy_buffer_stack_top) > 0)
10333                 --(yy_buffer_stack_top);
10334
10335         if (YY_CURRENT_BUFFER) {
10336                 surf_parse__load_buffer_state( );
10337                 (yy_did_buffer_switch_on_eof) = 1;
10338         }
10339 }
10340
10341 /* Allocates the stack if it does not exist.
10342  *  Guarantees space for at least one push.
10343  */
10344 static void surf_parse_ensure_buffer_stack (void)
10345 {
10346         int num_to_alloc;
10347     
10348         if (!(yy_buffer_stack)) {
10349
10350                 /* First allocation is just for 2 elements, since we don't know if this
10351                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10352                  * immediate realloc on the next call.
10353          */
10354                 num_to_alloc = 1;
10355                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10356                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10357                                                                 );
10358                 if ( ! (yy_buffer_stack) )
10359                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10360                                                                   
10361                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10362                                 
10363                 (yy_buffer_stack_max) = num_to_alloc;
10364                 (yy_buffer_stack_top) = 0;
10365                 return;
10366         }
10367
10368         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10369
10370                 /* Increase the buffer to prepare for a possible push. */
10371                 int grow_size = 8 /* arbitrary grow size */;
10372
10373                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10374                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10375                                                                 ((yy_buffer_stack),
10376                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10377                                                                 );
10378                 if ( ! (yy_buffer_stack) )
10379                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10380
10381                 /* zero only the new slots.*/
10382                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10383                 (yy_buffer_stack_max) = num_to_alloc;
10384         }
10385 }
10386
10387 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10388  * @param base the character buffer
10389  * @param size the size in bytes of the character buffer
10390  * 
10391  * @return the newly allocated buffer state object. 
10392  */
10393 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10394 {
10395         YY_BUFFER_STATE b;
10396     
10397         if ( size < 2 ||
10398              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10399              base[size-1] != YY_END_OF_BUFFER_CHAR )
10400                 /* They forgot to leave room for the EOB's. */
10401                 return 0;
10402
10403         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10404         if ( ! b )
10405                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10406
10407         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10408         b->yy_buf_pos = b->yy_ch_buf = base;
10409         b->yy_is_our_buffer = 0;
10410         b->yy_input_file = 0;
10411         b->yy_n_chars = b->yy_buf_size;
10412         b->yy_is_interactive = 0;
10413         b->yy_at_bol = 1;
10414         b->yy_fill_buffer = 0;
10415         b->yy_buffer_status = YY_BUFFER_NEW;
10416
10417         surf_parse__switch_to_buffer(b  );
10418
10419         return b;
10420 }
10421
10422 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10423  * scan from a @e copy of @a str.
10424  * @param yystr a NUL-terminated string to scan
10425  * 
10426  * @return the newly allocated buffer state object.
10427  * @note If you want to scan bytes that may contain NUL values, then use
10428  *       surf_parse__scan_bytes() instead.
10429  */
10430 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10431 {
10432     
10433         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10434 }
10435
10436 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10437  * scan from a @e copy of @a bytes.
10438  * @param yybytes the byte buffer to scan
10439  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10440  * 
10441  * @return the newly allocated buffer state object.
10442  */
10443 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
10444 {
10445         YY_BUFFER_STATE b;
10446         char *buf;
10447         yy_size_t n;
10448         int i;
10449     
10450         /* Get memory for full buffer, including space for trailing EOB's. */
10451         n = _yybytes_len + 2;
10452         buf = (char *) surf_parse_alloc(n  );
10453         if ( ! buf )
10454                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10455
10456         for ( i = 0; i < _yybytes_len; ++i )
10457                 buf[i] = yybytes[i];
10458
10459         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10460
10461         b = surf_parse__scan_buffer(buf,n );
10462         if ( ! b )
10463                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10464
10465         /* It's okay to grow etc. this buffer, and we should throw it
10466          * away when we're done.
10467          */
10468         b->yy_is_our_buffer = 1;
10469
10470         return b;
10471 }
10472
10473     static void yy_push_state (int  new_state )
10474 {
10475         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10476                 {
10477                 yy_size_t new_size;
10478
10479                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10480                 new_size = (yy_start_stack_depth) * sizeof( int );
10481
10482                 if ( ! (yy_start_stack) )
10483                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10484
10485                 else
10486                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10487
10488                 if ( ! (yy_start_stack) )
10489                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10490                 }
10491
10492         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10493
10494         BEGIN(new_state);
10495 }
10496
10497     static void yy_pop_state  (void)
10498 {
10499         if ( --(yy_start_stack_ptr) < 0 )
10500                 YY_FATAL_ERROR( "start-condition stack underflow" );
10501
10502         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10503 }
10504
10505 #ifndef YY_EXIT_FAILURE
10506 #define YY_EXIT_FAILURE 2
10507 #endif
10508
10509 static void yy_fatal_error (yyconst char* msg )
10510 {
10511         (void) fprintf( stderr, "%s\n", msg );
10512         exit( YY_EXIT_FAILURE );
10513 }
10514
10515 /* Redefine yyless() so it works in section 3 code. */
10516
10517 #undef yyless
10518 #define yyless(n) \
10519         do \
10520                 { \
10521                 /* Undo effects of setting up surf_parse_text. */ \
10522         int yyless_macro_arg = (n); \
10523         YY_LESS_LINENO(yyless_macro_arg);\
10524                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10525                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10526                 (yy_hold_char) = *(yy_c_buf_p); \
10527                 *(yy_c_buf_p) = '\0'; \
10528                 surf_parse_leng = yyless_macro_arg; \
10529                 } \
10530         while ( 0 )
10531
10532 /* Accessor  methods (get/set functions) to struct members. */
10533
10534 /** Get the current line number.
10535  * 
10536  */
10537 int surf_parse_get_lineno  (void)
10538 {
10539         
10540     return surf_parse_lineno;
10541 }
10542
10543 /** Get the input stream.
10544  * 
10545  */
10546 FILE *surf_parse_get_in  (void)
10547 {
10548         return surf_parse_in;
10549 }
10550
10551 /** Get the output stream.
10552  * 
10553  */
10554 FILE *surf_parse_get_out  (void)
10555 {
10556         return surf_parse_out;
10557 }
10558
10559 /** Get the length of the current token.
10560  * 
10561  */
10562 int surf_parse_get_leng  (void)
10563 {
10564         return surf_parse_leng;
10565 }
10566
10567 /** Get the current token.
10568  * 
10569  */
10570
10571 char *surf_parse_get_text  (void)
10572 {
10573         return surf_parse_text;
10574 }
10575
10576 /** Set the current line number.
10577  * @param line_number
10578  * 
10579  */
10580 void surf_parse_set_lineno (int  line_number )
10581 {
10582     
10583     surf_parse_lineno = line_number;
10584 }
10585
10586 /** Set the input stream. This does not discard the current
10587  * input buffer.
10588  * @param in_str A readable stream.
10589  * 
10590  * @see surf_parse__switch_to_buffer
10591  */
10592 void surf_parse_set_in (FILE *  in_str )
10593 {
10594         surf_parse_in = in_str ;
10595 }
10596
10597 void surf_parse_set_out (FILE *  out_str )
10598 {
10599         surf_parse_out = out_str ;
10600 }
10601
10602 int surf_parse_get_debug  (void)
10603 {
10604         return surf_parse__flex_debug;
10605 }
10606
10607 void surf_parse_set_debug (int  bdebug )
10608 {
10609         surf_parse__flex_debug = bdebug ;
10610 }
10611
10612 static int yy_init_globals (void)
10613 {
10614         /* Initialization is the same as for the non-reentrant scanner.
10615      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10616      */
10617
10618     /* We do not touch surf_parse_lineno unless the option is enabled. */
10619     surf_parse_lineno =  1;
10620     
10621     (yy_buffer_stack) = 0;
10622     (yy_buffer_stack_top) = 0;
10623     (yy_buffer_stack_max) = 0;
10624     (yy_c_buf_p) = (char *) 0;
10625     (yy_init) = 0;
10626     (yy_start) = 0;
10627
10628     (yy_start_stack_ptr) = 0;
10629     (yy_start_stack_depth) = 0;
10630     (yy_start_stack) =  NULL;
10631
10632 /* Defined in main.c */
10633 #ifdef YY_STDINIT
10634     surf_parse_in = stdin;
10635     surf_parse_out = stdout;
10636 #else
10637     surf_parse_in = (FILE *) 0;
10638     surf_parse_out = (FILE *) 0;
10639 #endif
10640
10641     /* For future reference: Set errno on error, since we are called by
10642      * surf_parse_lex_init()
10643      */
10644     return 0;
10645 }
10646
10647 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10648 int surf_parse_lex_destroy  (void)
10649 {
10650     
10651     /* Pop the buffer stack, destroying each element. */
10652         while(YY_CURRENT_BUFFER){
10653                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10654                 YY_CURRENT_BUFFER_LVALUE = NULL;
10655                 surf_parse_pop_buffer_state();
10656         }
10657
10658         /* Destroy the stack itself. */
10659         surf_parse_free((yy_buffer_stack) );
10660         (yy_buffer_stack) = NULL;
10661
10662     /* Destroy the start condition stack. */
10663         surf_parse_free((yy_start_stack)  );
10664         (yy_start_stack) = NULL;
10665
10666     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10667      * surf_parse_lex() is called, initialization will occur. */
10668     yy_init_globals( );
10669
10670     return 0;
10671 }
10672
10673 /*
10674  * Internal utility routines.
10675  */
10676
10677 #ifndef yytext_ptr
10678 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10679 {
10680         register int i;
10681         for ( i = 0; i < n; ++i )
10682                 s1[i] = s2[i];
10683 }
10684 #endif
10685
10686 #ifdef YY_NEED_STRLEN
10687 static int yy_flex_strlen (yyconst char * s )
10688 {
10689         register int n;
10690         for ( n = 0; s[n]; ++n )
10691                 ;
10692
10693         return n;
10694 }
10695 #endif
10696
10697 void *surf_parse_alloc (yy_size_t  size )
10698 {
10699         return (void *) malloc( size );
10700 }
10701
10702 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10703 {
10704         /* The cast to (char *) in the following accommodates both
10705          * implementations that use char* generic pointers, and those
10706          * that use void* generic pointers.  It works with the latter
10707          * because both ANSI C and C++ allow castless assignment from
10708          * any pointer type to void*, and deal with argument conversions
10709          * as though doing an assignment.
10710          */
10711         return (void *) realloc( (char *) ptr, size );
10712 }
10713
10714 void surf_parse_free (void * ptr )
10715 {
10716         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10717 }
10718
10719 #define YYTABLES_NAME "yytables"
10720
10721 /* Element context stack lookup. */
10722 int surfxml_element_context(int i)
10723 {
10724   return (0<i && i<yy_start_stack_depth
10725           ? yy_start_stack[yy_start_stack_ptr - i]
10726           : 0);
10727 }
10728
10729 #ifdef FLEX_DEBUG
10730 void print_yy_stack(char* fmt, ...)
10731 {
10732   int i = 0; va_list ap; va_start(ap, fmt);
10733   vfprintf(stderr, fmt, ap);
10734   if (surfxml_statenames) {
10735       for (i=1; i<yy_start_stack_ptr; i++) {
10736           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10737       }
10738       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10739   }
10740   va_end(ap);
10741 }
10742
10743 void print_surfxml_bufferstack()
10744 {
10745     int i;
10746     fputs("Buffer: ", stderr);
10747     for (i = 0; i < blimit; i++) {
10748        if ( surfxml_bufferstack[i] == '\377' ) break;
10749          putc(surfxml_bufferstack[i], stderr);
10750     }
10751     putc('\n', stderr);
10752 }
10753
10754 static void debug_enter(int state, const char* statename) {
10755   yy_push_state(state);
10756   if (surf_parse__flex_debug) {
10757        print_yy_stack("--ENTER(%s) : ",statename);
10758        print_surfxml_bufferstack();
10759   }
10760 }
10761
10762 static void debug_leave(void) {
10763     if (surf_parse__flex_debug) {
10764         print_yy_stack("--LEAVE : ");
10765         print_surfxml_bufferstack();
10766     }
10767   yy_pop_state();
10768 }
10769
10770 static void debug_set(int state, const char* statename) {
10771   BEGIN(state);
10772   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10773 }
10774 #endif
10775
10776 static void cleanup(void)
10777 {
10778     if (surfxml_statenames) {
10779         free(surfxml_statenames);
10780         surfxml_statenames = NULL;
10781     }
10782     free(surfxml_bufferstack);
10783     surfxml_bufferstack = NULL;
10784
10785     free(indexstack);
10786     indexstack = NULL;
10787 }
10788
10789 static int fail(const char* fmt, ...)
10790 {
10791     int chars_left, used;
10792     va_list ap; va_start(ap, fmt);
10793 #ifdef FLEXML_yylineno
10794     used = sprintf(flexml_err_msg,
10795                    "Invalid XML (XML input line %d, state %d): ",
10796                    surf_parse_lineno, YY_START);
10797 #else
10798     used = sprintf(flexml_err_msg,
10799                    "Invalid XML (state %d): ",
10800                    YY_START);
10801 #endif
10802     chars_left = flexml_max_err_msg_size - used - 1;
10803     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10804     va_end(ap);
10805
10806 #ifndef FLEXML_quiet_parser
10807     /* print directly to sdterr */
10808     fprintf(stderr, "%s\n", flexml_err_msg);
10809     flexml_err_msg[0] = '\0';
10810 #endif
10811
10812     cleanup();
10813
10814     return 1;
10815 }
10816