Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
f28667b51215a8e46c3feb282987c67d43d279d3
[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 558
407 #define YY_END_OF_BUFFER 559
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[3260] =
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,  559,  557,   15,   10,   10,   15,   15,  537,
445        10,  537,    5,    6,    5,    8,    9,    8,  553,  545,
446       546,  554,  551,  554,  552,  556,  545,  546,  556,  557,
447        22,   10,   22,   22,   22,   20,   22,   26,   10,   26,
448        26,  557,   26,  557,  557,   26,   33,   10,   33,   33,
449
450        33,   31,   33,   37,   10,   37,   37,   48,   10,   48,
451        48,   48,   46,   48,   48,   48,  554,  553,   78,   10,
452        78,   78,   78,   76,   78,   78,   78,   78,   78,   82,
453        10,   82,  101,   10,  101,  101,  101,   99,  101,  101,
454       101,  105,   10,  105,  128,   10,  128,  128,  128,  126,
455       128,  128,  132,   10,  132,  132,  557,  132,  557,  132,
456       132,  557,  557,  132,  557,  132,  557,  132,  145,   10,
457       145,  145,  145,  143,  145,  145,  145,  145,  149,   10,
458       149,  149,  160,   10,  160,  160,  160,  158,  160,  160,
459       160,  164,   10,  164,  164,  173,   10,  173,  173,  173,
460
461       171,  173,  173,  177,   10,  177,  186,   10,  186,  186,
462       186,  184,  186,  186,  190,   10,  190,  213,   10,  213,
463       213,  213,  211,  213,  213,  213,  213,  213,  217,   10,
464       217,  557,  217,  224,   10,  224,  224,  224,  222,  224,
465       228,   10,  228,  239,   10,  239,  239,  239,  237,  239,
466       239,  239,  243,   10,  243,  284,   10,  284,  284,  284,
467       282,  284,  284,  284,  284,  284,  284,  284,  284,  288,
468        10,  288,  307,   10,  307,  307,  307,  305,  307,  307,
469       307,  307,  307,  307,  311,   10,  311,  332,   10,  332,
470       332,  332,  330,  332,  332,  332,  332,  332,  332,  332,
471
472       336,   10,  336,  345,   10,  345,  345,  345,  343,  345,
473       345,  349,   10,  349,  360,   10,  360,  360,  360,  358,
474       360,  360,  360,  364,   10,  364,  391,   10,  391,  391,
475       391,  389,  391,  391,  391,  391,  395,   10,  395,  395,
476       408,   10,  408,  408,  408,  406,  408,  408,  412,   10,
477       412,  557,  412,  429,   10,  429,  429,  429,  427,  429,
478       429,  429,  433,   10,  433,  433,  446,   10,  446,  446,
479       446,  444,  446,  446,  450,   10,  450,  459,   10,  459,
480       459,  459,  457,  459,  459,  463,   10,  463,  463,  476,
481        10,  476,  476,  476,  474,  476,  476,  476,  480,   10,
482
483       480,  480,  497,   10,  497,  497,  497,  495,  497,  497,
484       497,  497,  497,  501,   10,  501,  557,  501,  508,   10,
485       508,  508,  508,  506,  508,  512,   10,  512,  519,   10,
486       519,  519,  519,  517,  519,  523,   10,  523,  523,  532,
487        10,  532,  532,  532,  530,  532,  532,  536,   10,  536,
488        10,    0,    2,    2,    0,    4,    7,  548,  547,    0,
489         0,    0,    0,    0,    0,    0,   21,   23,   23,    0,
490         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
491         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,   32,   34,   34,    0,   47,   49,   49,
493
494        49,   49,    0,    0,    0,   77,   79,   79,   79,   79,
495        79,   79,   79,   79,   79,    0,  100,  102,  102,  102,
496       102,    0,  127,  129,  129,  129,    0,    0,    0,    0,
497         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,  144,  146,  146,  146,  146,
499       146,    0,  159,  161,  161,  161,  161,    0,  172,  174,
500       174,  174,    0,  185,  187,  187,  187,    0,  212,  214,
501       214,  214,  214,  214,  214,    0,    0,  223,  225,  225,
502         0,  238,  240,  240,  240,  240,    0,  283,  285,  285,
503       285,  285,  285,  285,  285,  285,  285,  285,  285,  285,
504
505       285,  285,    0,  306,  308,  308,  308,  308,  308,  308,
506       308,  308,    0,  331,  333,  333,  333,  333,  333,  333,
507       333,  333,    0,  344,  346,  346,  346,    0,  359,  361,
508       361,  361,  361,    0,  390,  392,  392,  392,  392,  392,
509       392,    0,  407,  409,  409,  409,  409,    0,    0,  428,
510       430,  430,  430,  430,  430,    0,  445,  447,  447,  447,
511         0,  458,  460,  460,  460,    0,  475,  477,  477,  477,
512       477,    0,  496,  498,  498,  498,  498,  498,  498,    0,
513         0,  507,  509,  509,    0,  518,  520,  520,    0,  531,
514       533,  533,  533,    0,    0,    0,    0,    0,    3,    0,
515
516         0,    0,    0,    0,    0,    0,  555,    0,   23,    0,
517         0,  107,    0,    0,    0,    0,    0,    0,    0,    0,
518         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
519         0,    0,    0,  106,    0,    0,    0,    0,    0,    0,
520        34,    0,    0,   49,    0,    0,   49,    0,    0,    0,
521       550,   79,    0,    0,   79,   79,   79,   79,   79,   79,
522         0,    0,  102,  102,  102,    0,    0,    0,    0,  129,
523         0,    0,  107,    0,    0,    0,    0,    0,    0,    0,
524         0,  106,    0,    0,    0,    0,  146,    0,    0,  146,
525       146,    0,    0,  161,    0,    0,  161,    0,    0,    0,
526
527         0,  174,    0,    0,  187,  187,    0,    0,  214,  214,
528       214,    0,    0,  214,  214,    0,    0,    0,    0,  225,
529         0,    0,  240,    0,    0,    0,    0,    0,    0,  285,
530       285,    0,    0,  285,    0,    0,  285,  285,  285,  285,
531       285,  285,  285,  285,    0,    0,    0,    0,    0,    0,
532       308,  308,  308,  308,  308,    0,    0,  333,  333,  333,
533         0,    0,  333,  333,  333,    0,    0,  346,    0,    0,
534         0,    0,  361,    0,    0,  361,    0,    0,  392,    0,
535         0,  392,  392,  392,    0,    0,  409,  409,  409,    0,
536         0,    0,  430,  430,  430,  430,    0,    0,  447,    0,
537
538         0,    0,    0,  460,  460,    0,    0,  477,  477,  477,
539         0,    0,  498,  498,  498,  498,  498,    0,    0,    0,
540       509,    0,    0,    0,    0,    0,    0,    0,    0,  533,
541         0,    0,    0,   14,    1,    0,    0,  543,    0,    0,
542         0,  540,  539,    0,    0,   23,    0,    0,   25,    0,
543       107,    0,    0,    0,    0,    0,    0,    0,  218,    0,
544         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
545         0,    0,    0,  106,    0,    0,    0,    0,    0,    0,
546        34,    0,    0,   36,    0,   49,    0,   41,   40,   49,
547         0,    0,    0,   51,    0,   79,    0,   55,   54,    0,
548
549         0,   79,    0,    0,   79,   79,   79,    0,    0,   81,
550         0,  102,  102,  102,    0,    0,  104,    0,    0,  109,
551       108,  129,    0,    0,  131,    0,    0,    0,    0,  219,
552         0,    0,    0,    0,    0,    0,    0,    0,    0,  146,
553         0,  136,  135,  146,  146,    0,    0,  148,    0,  161,
554         0,  153,  152,  161,    0,    0,  163,    0,    0,  168,
555       167,  174,    0,    0,  176,    0,  187,  187,    0,    0,
556       189,    0,  214,  214,  214,    0,  194,  193,  214,  214,
557         0,    0,  216,    0,    0,    0,  225,    0,    0,  227,
558         0,  240,    0,  232,  231,    0,  234,  233,    0,    0,
559
560       242,    0,  285,  285,  285,  285,    0,  259,  258,  285,
561         0,  247,  246,    0,    0,  285,  285,  285,  285,  285,
562       285,  285,    0,    0,  287,    0,    0,  302,  301,    0,
563       292,  291,    0,    0,  308,  308,  308,  308,    0,    0,
564       310,    0,  333,  333,  333,  333,    0,  315,  314,    0,
565         0,  333,  333,    0,    0,  335,    0,  346,    0,  340,
566       339,    0,    0,  348,    0,  361,    0,  353,  352,  361,
567         0,    0,  363,    0,  392,    0,  368,  367,  392,  392,
568       392,    0,    0,  394,    0,    0,    0,    0,    0,  409,
569         0,    0,  411,    0,    0,    0,    0,  430,  430,    0,
570
571         0,  430,    0,    0,  432,    0,  447,    0,  437,  436,
572         0,    0,  449,    0,    0,    0,    0,    0,    0,    0,
573       462,    0,    0,    0,  477,  477,    0,    0,    0,    0,
574       479,    0,  498,  498,  498,  498,  498,    0,    0,  500,
575         0,    0,  509,    0,    0,  511,    0,    0,  516,  515,
576         0,    0,  522,    0,    0,  527,  526,  533,    0,    0,
577       535,    0,    0,    0,  544,  538,    0,    0,    0,   23,
578         0,    0,    0,    0,    0,    0,    0,    0,  218,  191,
579         0,  365,    0,    0,  313,    0,    0,  524,    0,    0,
580         0,    0,    0,    0,    0,    0,    0,  312,    0,    0,
581
582         0,    0,    0,    0,    0,   49,    0,    0,   79,    0,
583        59,   58,    0,    0,    0,   57,   56,   79,    0,    0,
584        79,    0,  102,    0,    0,  102,    0,  129,    0,  130,
585         0,    0,    0,  219,  192,  366,  525,    0,    0,    0,
586         0,    0,    0,  146,  146,    0,    0,    0,  161,  161,
587         0,    0,    0,    0,    0,    0,  187,    0,  214,  214,
588         0,    0,  214,  214,    0,    0,    0,    0,    0,    0,
589         0,    0,    0,  285,  285,  285,  285,    0,    0,    0,
590       261,  260,  285,  285,  285,  285,  285,  285,  285,    0,
591         0,  304,  303,  308,  308,  308,  308,    0,  333,  333,
592
593       333,  333,    0,  323,  322,  333,  333,    0,  346,    0,
594       361,  361,    0,  392,  392,  392,  392,    0,    0,  401,
595       400,    0,  399,  398,  409,    0,  365,    0,  418,  417,
596       430,  430,    0,  416,  415,  430,    0,  447,    0,    0,
597       456,  455,    0,  454,  453,    0,    0,  469,  468,  477,
598       477,    0,  467,  466,    0,  498,    0,    0,  498,  498,
599       498,    0,    0,  509,    0,    0,  533,    0,    0,    0,
600         0,   12,    0,  541,  542,    0,   23,    0,    0,    0,
601         0,    0,    0,    0,    0,  191,    0,    0,  365,    0,
602       165,    0,  313,    0,    0,  524,    0,  396,    0,   39,
603
604         0,    0,    0,    0,    0,  312,    0,   38,    0,   30,
605        29,    0,    0,   43,   42,   49,    0,    0,   79,    0,
606        61,   60,   79,    0,   65,   64,   79,    0,  102,    0,
607         0,    0,    0,    0,    0,  129,    0,    0,    0,  192,
608         0,  366,  525,  397,    0,    0,    0,  397,  396,  146,
609         0,    0,    0,  140,  139,    0,  161,  161,    0,    0,
610       170,  169,    0,    0,  183,  182,  187,    0,  214,  214,
611         0,  198,  197,    0,    0,    0,    0,  214,    0,  166,
612         0,    0,  221,  220,    0,  226,    0,  236,  235,    0,
613       285,    0,    0,  285,  285,    0,  257,  256,    0,    0,
614
615       285,  285,  285,  285,  285,  285,    0,    0,    0,  308,
616       308,  308,    0,  333,    0,    0,  333,  333,    0,    0,
617       333,    0,  346,    0,  361,  361,    0,  392,  392,  392,
618         0,    0,  392,    0,  409,    0,    0,  430,  430,  430,
619         0,  447,    0,    0,  477,  477,    0,  498,    0,  484,
620       483,  498,  498,  498,    0,    0,    0,    0,    0,    0,
621         0,    0,    0,    0,    0,    0,   11,    0,   23,    0,
622         0,    0,    0,    0,    0,    0,  514,    0,    0,    0,
623       165,    0,    0,    0,   53,  396,  337,    0,   39,    0,
624       513,   52,    0,    0,    0,    0,   38,    0,    0,   49,
625
626         0,    0,   79,   79,   79,    0,  102,    0,    0,    0,
627         0,    0,    0,    0,    0,    0,   96,   95,    0,  129,
628         0,    0,    0,    0,  397,  338,    0,    0,    0,  146,
629         0,  138,  137,    0,  161,    0,    0,    0,    0,    0,
630         0,    0,  214,  214,    0,  196,  195,    0,    0,    0,
631       214,    0,  215,  166,    0,    0,  285,    0,  269,  268,
632         0,    0,  285,    0,  255,  254,    0,    0,  285,  285,
633       285,  285,    0,    0,    0,    0,  300,  299,    0,    0,
634       308,    0,    0,    0,  333,    0,  319,  318,    0,    0,
635       333,    0,  317,  316,  333,    0,  334,  346,    0,  361,
636
637       361,    0,  392,  392,  392,    0,    0,    0,  392,    0,
638       393,  409,    0,    0,    0,    0,    0,    0,  430,    0,
639       447,    0,    0,    0,    0,    0,    0,    0,  498,  498,
640       498,  498,    0,    0,    0,  505,  504,    0,    0,    0,
641       529,  528,    0,  534,    0,    0,    0,    0,    0,    0,
642         0,  413,    0,    0,    0,    0,  290,  245,  514,    0,
643        28,    0,    0,    0,  482,   53,  337,  150,    0,  513,
644        52,  289,  244,   27,  481,    0,    0,   49,    0,    0,
645        50,   79,    0,    0,   79,    0,    0,    0,    0,    0,
646         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
647
648         0,  414,    0,    0,    0,    0,  338,  151,    0,    0,
649         0,    0,    0,    0,  155,  154,    0,    0,  175,    0,
650       181,  180,    0,  214,  214,    0,    0,  214,    0,    0,
651       285,    0,  271,  270,  285,    0,  249,  248,    0,    0,
652       285,  285,  285,    0,  251,  250,    0,    0,  294,  293,
653         0,    0,    0,  296,  295,    0,  333,    0,  321,  320,
654       333,  333,  346,    0,  361,    0,    0,    0,  392,    0,
655         0,  392,  392,    0,    0,  392,  409,    0,  410,    0,
656         0,  422,  421,    0,  420,  419,  430,    0,  447,    0,
657         0,    0,  473,  472,    0,  471,  470,    0,  498,  498,
658
659       498,  498,    0,    0,    0,    0,    0,    0,    0,   17,
660         0,   19,   18,    0,  413,  502,  350,    0,    0,  290,
661       245,    0,   28,  434,  178,   16,  482,  150,    0,    0,
662       289,  244,   27,  481,    0,    0,   49,  549,   79,    0,
663        67,   66,   79,    0,   80,    0,   98,   97,    0,    0,
664         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
665         0,    0,  414,  351,    0,    0,    0,  151,    0,    0,
666       142,  141,    0,    0,  157,  156,    0,    0,  214,  214,
667         0,    0,    0,    0,  214,  179,    0,  285,  285,    0,
668       253,  252,  285,  285,  285,    0,    0,  298,  297,    0,
669
670       333,  333,  333,  346,    0,  347,  361,    0,  357,  356,
671         0,  392,    0,  374,  373,  392,  392,    0,    0,    0,
672         0,  392,  409,  435,  430,    0,  447,    0,    0,    0,
673         0,    0,  498,  498,  498,    0,  503,    0,    0,  521,
674         0,    0,    0,   17,    0,  502,  350,    0,    0,  229,
675       434,  178,   16,    0,    0,    0,    0,   35,   49,    0,
676         0,   79,    0,    0,    0,    0,    0,    0,    0,    0,
677         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
678         0,    0,    0,    0,    0,  351,    0,    0,  230,    0,
679         0,    0,  162,    0,  214,  214,    0,  204,    0,  203,
680
681       214,  179,    0,  285,  285,    0,    0,  285,  285,    0,
682       286,    0,  309,  333,  333,  333,  346,    0,    0,    0,
683         0,    0,  392,  392,  392,    0,  378,    0,  377,  392,
684       409,  435,  430,    0,  431,    0,    0,    0,    0,    0,
685         0,  486,  485,    0,    0,  498,  498,    0,  499,  503,
686         0,    0,    0,    0,    0,   24,    0,    0,  229,    0,
687         0,    0,   49,    0,    0,    0,   79,    0,    0,    0,
688         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
689         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
690         0,    0,    0,    0,  230,    0,    0,    0,  188,  214,
691
692       214,  206,  205,    0,    0,    0,  285,  285,    0,  281,
693       280,  285,    0,    0,  333,  333,    0,    0,  346,    0,
694       355,  354,    0,  362,    0,  370,  369,  392,  392,  392,
695       380,  379,    0,    0,  409,  430,    0,    0,    0,    0,
696       448,    0,    0,    0,  490,  489,    0,    0,    0,    0,
697         0,  510,    0,    0,    0,    0,  451,    0,    0,    0,
698         0,    0,    0,    0,    0,    0,    0,    0,   79,    0,
699         0,    0,    0,   88,    0,    0,    0,    0,   87,    0,
700         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,  452,    0,    0,  214,    0,
702
703         0,    0,  208,  207,    0,  241,  285,  285,  285,    0,
704       279,  278,  333,    0,    0,    0,  329,  328,    0,    0,
705       392,  392,  392,    0,  382,  381,    0,    0,    0,    0,
706         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
707         0,    0,  488,  487,    0,    0,    0,    0,  451,  133,
708         0,    0,    0,   45,   44,    0,    0,    0,    0,    0,
709         0,    0,    0,   79,    0,    0,    0,    0,    0,    0,
710         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,  452,  134,
712         0,    0,    0,  214,    0,  210,  209,  285,  285,  285,
713
714       333,    0,  325,  324,    0,  342,  341,  392,    0,    0,
715       392,    0,    0,    0,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
717         0,    0,    0,  464,  133,   84,   83,    0,    0,    0,
718         0,    0,    0,    0,    0,    0,    0,    0,    0,   94,
719         0,    0,    0,   93,    0,    0,    0,    0,    0,  111,
720       119,    0,    0,    0,    0,    0,  110,  118,    0,    0,
721       465,  134,    0,    0,  200,  199,  214,  285,  285,  285,
722       333,  392,    0,  376,  375,  392,    0,    0,    0,    0,
723         0,    0,    0,    0,    0,    0,  439,    0,    0,  438,
724
725         0,  461,    0,    0,    0,    0,    0,    0,    0,    0,
726         0,    0,    0,  464,   84,   83,    0,    0,    0,    0,
727         0,    0,    0,    0,    0,   63,   62,    0,    0,    0,
728         0,    0,    0,    0,    0,    0,  113,    0,    0,    0,
729         0,  112,    0,    0,  465,    0,  147,  214,  285,  285,
730         0,    0,  333,    0,    0,    0,    0,    0,    0,    0,
731         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
732         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
733         0,   75,   71,    0,    0,   74,   70,    0,   92,    0,
734         0,   91,    0,    0,    0,  103,    0,    0,    0,    0,
735
736         0,    0,    0,    0,  214,  285,  285,    0,    0,    0,
737       333,    0,  372,  371,    0,    0,    0,  405,    0,  404,
738         0,  426,    0,  425,    0,  441,  443,  440,  442,    0,
739       478,  492,    0,  491,    0,    0,    0,    0,   12,    0,
740        12,    0,    0,    0,    0,    0,   86,   90,   85,   89,
741       125,    0,    0,  123,  124,    0,    0,  122,  214,  285,
742       285,    0,    0,    0,    0,  333,    0,    0,    0,    0,
743       403,  402,  424,  423,    0,    0,    0,    0,    0,    0,
744         0,    0,    0,    0,    0,  115,    0,    0,  114,    0,
745         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
746
747         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
748         0,    0,    0,    0,    0,   69,    0,   68,    0,    0,
749       121,    0,  120,    0,  202,  201,    0,  277,  276,    0,
750         0,    0,    0,    0,    0,    0,    0,    0,    0,  327,
751       326,    0,    0,    0,    0,    0,    0,    0,    0,    0,
752        11,    0,    0,    0,    0,    0,    0,    0,    0,    0,
753         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754         0,  494,  493,    0,   73,   72,    0,    0,    0,    0,
755         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
756         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
757
758         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
759         0,    0,    0,    0,  117,  116,    0,    0,    0,    0,
760         0,    0,  263,    0,    0,  262,    0,    0,  384,    0,
761         0,  383,    0,    0,    0,    0,    0,  267,    0,  266,
762         0,  386,    0,  385,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,  273,    0,  272,    0,
764         0,    0,    0,    0,    0,  275,  274,  265,  264,  388,
765       387,    0,    0,    0,    0,    0,    0,    0,    0,    0,
766         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
767         0,    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,    0,    0,    0,    0,
771         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
772         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774         0,    0,    0,    0,    0,    0,    0,   13,    0
775     } ;
776
777 static yyconst flex_int32_t yy_ec[256] =
778     {   0,
779         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
780         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
781         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
782         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
783         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
784        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
785        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
786        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
787        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
788        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
789
790        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
791        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
792        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
793         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
794         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
795         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
796         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
797         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
798         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
799         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
800
801         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
802         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
803         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
804         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
805         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
806         1,    1,    1,    1,    1
807     } ;
808
809 static yyconst flex_int32_t yy_meta[75] =
810     {   0,
811         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
812         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
813         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
814         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
815         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
816         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
817         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
818         5,    5,    5,    5
819     } ;
820
821 static yyconst flex_int16_t yy_base[3740] =
822     {   0,
823         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
824        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
825       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
826       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
827       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
828       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
829       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
830       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
831       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
832       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
833
834       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
835      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
836      1149, 1153, 1191, 1253, 1211, 1214, 1315, 1383, 1217, 1221,
837      1451, 1518, 1224, 1273, 1276, 1279, 1283, 1286, 1335, 1338,
838      1585, 1647, 1341, 1345, 1709, 1778, 1348, 1403, 1847,    0,
839      1406, 1409, 1921, 1988, 1413, 1416, 2055, 2122, 1471, 1474,
840      2189, 2246, 1477, 1481, 2303, 2363, 1538, 1541, 2423, 2490,
841      1544, 1548, 1605, 1608, 1611, 1615, 1618, 1667, 2557, 2624,
842      1670, 1673, 1677, 1680, 1729, 1732, 1735, 1739, 2691, 2758,
843      1742, 1798, 1801, 1804, 1808, 1811, 1941, 1944, 2825, 2882,
844
845      1947, 1951, 2939, 3006, 1954, 2008, 2011, 2014, 2018, 2021,
846      2075, 2078, 3073, 3140, 2081, 2085, 2142, 2145, 2148, 2152,
847      2209, 2212, 3207, 3274, 2215, 2219, 2266, 2269, 2272, 2276,
848      2323, 2326, 3341, 3411, 2329, 2333, 3481, 3538, 2336, 2383,
849      2386, 2389, 2393, 2396, 2443, 2446, 3595, 3665, 2449, 2453,
850         0,    0, 8929,11972,11972,   95,  100,   29,   41,11972,
851       103,   51,11972,11972, 8918,11972,11972, 8907,11972, 8918,
852      8918,  202,11972,11972,11972,11972, 8916, 8912, 8867,  153,
853     11972,  161, 8893,    0,  145,11972, 8855,11972,  165, 3731,
854        73, 2462,  315,  357, 8895, 8842,11972,  168, 8881,    0,
855
856       152,11972, 8843,11972,  261, 8887,   31,11972,  266, 8874,
857         0,  245,11972, 8836, 8840, 8834,  421, 8839,11972,  269,
858      8865,    0,  340,11972, 8827, 8827,  271, 8829,  238,11972,
859       441,  484,11972,  504, 8853,    0,  401,11972, 8812, 8814,
860      8800,11972,  561,  548,11972,  571, 8845,    0,  481,11972,
861      8812, 8796,11972,  628, 3795, 8794,  163, 2456,  567,  206,
862        38, 8845,  954, 2465,  639,  907,  437,   79,11972,  634,
863      8283,    0,  546,11972, 8239, 8248, 8236, 8241,11972,  638,
864       313,  368,11972,  697, 8277,    0,  549,11972, 8233, 8243,
865      8221,11972,  704,  426,  497,11972,  707, 8272,    0,  747,
866
867     11972, 8239, 8240,11972,  767,  753,11972,  773, 8261,    0,
868       757,11972, 8231, 8205,11972,  831,  818,11972,  838, 8250,
869         0,  758,11972, 8199, 8204, 8209, 8196, 8186,11972,  841,
870       559,  825,  530,11972,  906, 8233,    0,  815,11972, 8202,
871     11972,  914,  891,11972,  977, 8226,    0,  953,11972, 8182,
872      8186, 8172,11972,  981,  965,11972, 1021, 8215,    0,  966,
873     11972, 8163,  203, 8157, 8167, 8168,   85,  311,  972,11972,
874      1040, 1025,11972, 1048, 8189,    0, 1026,11972, 8137, 8154,
875      8156,  157, 8154, 8129,11972, 1088, 1092,11972, 1105, 8177,
876         0, 1033,11972, 8121, 8119, 8125, 8124, 8126, 8108, 8102,
877
878     11972, 1112, 1154,11972, 1115, 8148,    0, 1089,11972, 8104,
879      8091,11972, 1118, 1160,11972, 1174, 8118,    0, 1090,11972,
880      8088, 8072, 8074,11972, 1180, 1228,11972, 1183, 8101,    0,
881      1158,11972, 8067, 8063, 8064,   15,11972, 1186,  564,  814,
882     11972, 1241, 8088,    0, 1225,11972, 8040,  181,11972, 1248,
883      1294,  367,  303,11972, 1305, 8085,    0, 1226,11972, 8029,
884      8024,  299,11972, 1309, 1224,  350,11972, 1365, 8074,    0,
885      1293,11972, 8034, 8038,11972, 1368, 1352,11972, 1372, 8059,
886         0, 1360,11972, 8011, 8007,11972, 1376, 1426,  424,11972,
887      1433, 8052,    0, 1418,11972, 8003, 7997, 8001,11972, 1438,
888
889      1436,  429,11972, 1503, 8045,    0, 1423,11972, 7990, 7988,
890      7993, 7986, 7974,11972, 1507, 1504,  560,  899,11972, 1510,
891      8021,    0, 1428,11972, 7990,11972, 1568, 1622,11972, 1574,
892      8010,    0, 1482,11972, 7973,11972, 1577,  963, 1007,11972,
893      1635, 7991,    0, 1496,11972, 7953, 7955,11972, 1638, 1623,
894      1697,  677, 7930,11972, 7973, 7958,11972,11972,11972, 1690,
895       253, 7909, 7898, 7896, 7943, 7902,11972,    0, 7894, 7891,
896      7904, 7875,  104, 1383, 7871, 7869, 7863, 7867,  621, 1636,
897       704, 7854, 7845, 1500, 1037, 7871, 1691, 7842, 1699, 7837,
898      1709, 1710, 1711,11972,    0, 7841, 7833,11972,    0, 7828,
899
900      2088, 7821,  666, 7817, 7860,11972,    0, 7817, 2155, 7805,
901      7827, 7799, 7808, 7788, 7788, 7771,11972,    0, 7776, 7757,
902      7769, 7739,11972,    0, 2222, 7737, 7778, 7759,  172, 7733,
903      7732, 7733, 1767, 1105, 7717, 1768, 7744,  707,  724,  814,
904       841, 1297, 1782, 1567,  888,11972,    0, 7720, 2279, 7728,
905      7698, 7700,11972,    0, 7704, 2456, 7700, 7692,11972,    0,
906      2514, 7696, 7695,11972,    0, 7693, 7685, 7687,11972,    0,
907      7697,  758, 2519, 7670, 7690, 7681,  889,11972,    0, 7675,
908      7679,11972,    0, 7657, 2525, 2577, 7664,11972,    0, 7660,
909      7654, 2580, 7635, 2583, 7631, 7617, 7634, 7633, 7611, 7630,
910
911      7627, 7620, 7618,11972,    0, 2586, 2589, 7599, 7595, 7604,
912      7604, 7600, 7598,11972,    0, 7599, 7595, 7579, 2644, 7572,
913      7560, 7579, 7562,11972,    0, 7559, 2647, 7544,11972,    0,
914      7547, 2650, 7539, 7549,11972,    0, 7536, 2653, 7528, 7542,
915      7540, 7527,11972,    0, 7518, 7533, 7510, 7504, 7511,11972,
916         0, 7492, 7509, 7501, 7490, 7527,11972,    0, 7481, 2656,
917      7485,11972,    0, 7476, 7491, 7475,11972,    0, 7456, 7473,
918      7468, 7462,11972,    0, 7449, 7433, 7439, 7447, 7444, 7428,
919      7416,11972,    0, 7421, 7430,11972,    0, 2711, 7420,11972,
920         0, 2714, 7410, 7404, 7447, 7451, 1537, 7398,11972, 1823,
921
922         0, 7393, 7388, 7433, 7428, 7381,11972, 7389, 7370, 2719,
923      2722, 1971, 7380, 7373, 7359, 7371, 7351, 7355, 7342, 7329,
924      7344, 7331, 7315, 7315, 7328, 7327, 7306, 7306, 7297, 7294,
925      7303, 7289, 7283, 1980, 7290, 7270, 7286, 7276, 7265, 7277,
926      7270, 2725, 2732, 7267, 2781, 2038, 7238, 7269, 2786, 2789,
927     11972, 7233, 2793, 2107, 2799, 7223, 2845, 7226, 7230, 7225,
928      2848, 2855, 7194, 7198, 7198, 2858, 2903, 2906, 2174, 7179,
929      2910, 2916, 2353, 7191, 7173, 7165, 7156, 7156, 7153, 7142,
930      7147, 2413, 7144, 7133, 7127, 7125, 7125, 2913, 2539, 7138,
931      7137, 2959, 2962, 7120, 2968, 2608, 7134, 2972, 3029, 2986,
932
933      2675, 7117, 3034, 3037, 7116, 7109, 3040, 3043, 7104, 7087,
934      7095, 3099, 2745, 7093, 7072, 3102, 3109, 7066, 7055, 7069,
935      3112, 3165, 7055, 3105, 2813, 3160, 2991, 3171, 3174, 7057,
936      1910, 3178, 3062, 7054, 3186, 3197, 3228, 7052, 7049, 7045,
937      7028, 7029, 7003, 7013, 3231, 3236, 3239, 3246, 3295, 3298,
938      3306, 3313, 3320, 3376, 3373, 3242, 3361, 7005,   37, 6995,
939      3365, 3387, 3432, 7006, 6967, 3309, 3444, 6968, 3435, 3395,
940      3439, 3458, 6980, 3501, 3463, 6974, 3504, 3511, 6974, 3507,
941      3471, 6960, 6934, 6930, 3514, 3560, 3563, 3567, 3570, 3573,
942      3618, 6934, 3621, 3641, 3630, 3644, 3633, 3686, 6938, 3694,
943
944      3652, 3697, 3700, 3712, 3725, 3730, 3735, 3743, 3757, 3764,
945      3738, 3769, 6929, 6911, 6908, 6910, 6897, 3799, 3802, 6897,
946      6881, 3808, 3811, 3775, 3823, 3833, 3837, 3845, 3863, 6880,
947      3871, 3876, 6925,11972,11972,  940, 6884,11972, 6922, 6921,
948      6869,11972,11972, 6850, 6845, 6854, 3879, 3882,11972, 3885,
949      1704, 6847, 6839, 6841, 6844, 6833, 6818, 6826, 1771, 6804,
950      6809, 6802, 6798, 6795, 6791, 6783, 1109, 6798, 6776, 6767,
951      6777, 6773, 6773, 2047, 6767, 6755, 6754, 6746, 1510, 6760,
952      3890, 3904, 3908,11972, 3911, 3914, 3917,11972,11972, 3933,
953      6784, 3936, 3941,11972, 3944, 6727, 3951,11972,11972, 3947,
954
955      3965, 3973, 3976, 3979, 6740, 3987, 6737, 3995, 3998,11972,
956      4001, 6735, 4005, 6732, 4008, 4023,11972, 4027, 4030,11972,
957     11972, 6726, 4038, 4042,11972, 4046, 6717, 6706, 6714, 2240,
958      6691, 6695, 1912, 6684, 6681, 6697, 6695, 6659, 6658, 6652,
959      4050,11972,11972, 6634, 4065, 4068, 4071,11972, 4075, 6640,
960      4083,11972,11972, 6661, 4078, 4097,11972, 4100, 4103,11972,
961     11972, 4111, 4119, 4122,11972, 4125, 4129, 4132, 4150, 4153,
962     11972, 4156, 6626, 6633, 4162, 4165,11972,11972, 6608, 6620,
963      4175, 4180,11972, 4183, 6604, 6577, 4186, 4189, 4194,11972,
964      4208, 4204, 4213,11972,11972, 4223,11972,11972, 4231, 4234,
965
966     11972, 4237, 6579, 6562, 6582, 6566, 4240,11972,11972, 4256,
967      4259,11972,11972, 4267, 4270, 6555, 6560, 6561, 6558, 6548,
968      6549, 6543, 4278, 4281,11972, 4285, 4288,11972,11972, 4304,
969     11972,11972, 4312, 4315, 6533, 6540, 6538, 6528, 4323, 4326,
970     11972, 4330, 6523, 6520, 6511, 6518, 4333,11972,11972, 4345,
971      4349, 6501, 6509, 4357, 4363,11972, 4366, 6505, 4369,11972,
972     11972, 4385, 4388,11972, 4391, 6484, 4394,11972,11972, 6492,
973      4410, 4413,11972, 4418, 6481, 4422,11972,11972, 6479, 6482,
974      6481, 4432, 4437,11972, 4441, 4444, 4447, 4462, 4468, 6480,
975      4476, 4480,11972, 4484, 6472, 4487, 4505, 6459, 6452, 4491,
976
977      4513, 6464, 4521, 4524,11972, 4527, 6464, 4530,11972,11972,
978      4546, 4552,11972, 4555, 4558, 4561, 4576, 4579, 4587, 4594,
979     11972, 4598, 4601, 4606, 6439, 6421, 4619, 4622, 4630, 4633,
980     11972, 4637, 6408, 4640, 6427, 6420, 6396, 4643, 4652,11972,
981      4662, 6385, 6394, 4665, 4671,11972, 4674, 4677,11972,11972,
982      4685, 4693,11972, 4696, 4700,11972,11972, 6389, 4708, 4715,
983     11972, 4718, 1013, 4728,11972,11972, 6409, 6408, 6366, 6350,
984      4737, 6330, 6336, 6307, 6268, 6259, 6250, 6258, 2297, 2549,
985      6243, 2552, 6188, 6184, 2616, 6191, 6164, 2619, 6153, 6161,
986      6140, 6109, 6083, 6047, 5994, 5948, 5897, 2683, 5797, 5759,
987
988      4740, 4758, 4743, 4749, 4767, 5744, 5715, 4775, 5686, 4780,
989     11972,11972, 4788, 4795, 4806,11972,11972, 5684, 4814, 4818,
990      5679, 4826, 5561, 4832, 4835, 4845, 4850, 5558, 4752,11972,
991      5541,   16,   22, 2686, 2863, 3000, 2753,  141,  269,  315,
992       332,  352,  386,  384, 4853, 4856, 4859, 4877,  416,  447,
993      4880, 4883, 4886, 4901, 4904, 4907,  448, 4915,  461,  470,
994      4922, 4925, 4934, 4945, 4948,  482,  490, 4952, 4956, 4970,
995      4973, 4977, 4985,  569, 4992,  575,  636, 4995, 4998, 5006,
996     11972,11972, 5015,  625,  680,  678,  693,  764,  759, 5018,
997      5021,11972,11972, 5029, 5033, 5037, 5040, 5043,  797, 5047,
998
999       824,  840, 5058,11972,11972, 5068,  854, 5071,  863, 5074,
1000       991, 1047, 5077, 1048, 1088, 1096, 5080, 5086, 5105,11972,
1001     11972, 5113,11972,11972, 1094, 5100, 3135, 5121,11972,11972,
1002      1139, 1171, 5129,11972,11972, 1166, 5137, 1173, 5144, 5147,
1003     11972,11972, 5156,11972,11972, 5167, 5170,11972,11972, 1201,
1004      1242, 5179,11972,11972, 5187, 1238, 5190, 5193, 1228, 1245,
1005      1255, 5202, 1244, 5208, 5211, 5215, 5221, 5226, 1402, 1311,
1006      5230,11972, 1335,11972,11972, 1319, 1337, 5235, 1346, 1372,
1007      1363, 1383, 1414, 1429, 1433, 2877, 1430, 1439, 3131, 1442,
1008      3265, 1485, 3269, 1491, 1488, 3332, 1497, 3404, 1528, 3533,
1009
1010      1529, 1540, 1571, 1572, 1593, 3368, 1579, 4495, 5239,11972,
1011     11972, 5254, 5257,11972,11972, 1606, 1638, 5268, 1618, 5273,
1012     11972,11972, 1627, 5289,11972,11972, 1620, 5282, 1624, 5301,
1013      2898, 2944, 5309, 5313, 5322, 1642, 1657, 1685, 1682, 3588,
1014      1707, 3624, 3761, 5327, 1713, 1727, 1742, 5330, 5333, 1749,
1015      5336, 5344, 5354,11972,11972, 5362, 1750, 5365, 5368, 5374,
1016     11972,11972, 5383, 5388,11972,11972, 5402, 5398, 1773, 1770,
1017      5406,11972,11972, 5420, 5423, 5431, 5434, 1785, 5442, 5445,
1018      1792, 5450,11972,11972, 5463,11972, 5466,11972,11972, 5474,
1019      1793, 5477, 5482, 5495, 1778, 5498,11972,11972, 5506, 5509,
1020
1021      5517, 1786, 1889, 1897, 1907, 5524, 5527, 5530, 5535, 5548,
1022      5551, 5554, 5557, 1914, 5560, 5572, 5580, 1904, 5583, 5587,
1023      1925, 5601, 1918, 5604, 1934, 1931, 5610, 1967, 1954, 1973,
1024      5613, 5625, 1976, 5633, 1965, 5636, 1982, 5639, 5642, 5645,
1025      5648, 1986, 5667, 5663, 5671, 5674, 5677, 1990, 5682,11972,
1026     11972, 2014, 2026, 2026, 5692, 2042, 5697, 5700, 5716, 5719,
1027      5722, 5725, 5744, 2077, 2100, 2167,11972, 2032, 5747, 5750,
1028      2047, 2046, 2055, 2143, 2050, 2055, 5753, 2081, 2100, 2093,
1029      5756, 2109, 2101, 2108, 5759, 5765, 5769, 2131, 5776, 2134,
1030      5779, 5782, 2120, 2139, 2175, 2162, 5785, 2180, 5788, 2181,
1031
1032      2212, 5791, 2175, 5795, 2182, 5798, 5801, 2223, 2226, 2255,
1033      2250, 2266, 2253, 2312, 2255, 5813,11972,11972, 5821, 5824,
1034      2242, 2234, 2321, 2245, 5827, 5830, 2266, 2323, 2324, 5833,
1035      5842,11972,11972, 5851, 5854, 5858, 5861, 5872, 5876, 5879,
1036      5882, 5891, 2291, 2303, 5898,11972,11972, 5906, 2322, 2343,
1037      2337, 5914,11972, 5917, 2347, 5921, 2346, 5926,11972,11972,
1038      5934, 5940, 2348, 5948,11972,11972, 5956, 5959, 5967, 2349,
1039      2360, 2355, 5970, 5974, 5988, 5991,11972,11972, 5999, 6003,
1040      6011, 6017, 6020, 6029, 2361, 6036,11972,11972, 6044, 6048,
1041      2372, 6056,11972,11972, 2365, 6064,11972, 2390, 6067, 2386,
1042
1043      6070, 6073, 2394, 6076, 2415, 6088, 2429, 2430, 2415, 6096,
1044     11972, 2419, 6099, 2409, 6102, 6105, 6123, 6126, 2424, 6135,
1045      2419, 6141, 6144, 6147, 6150, 6165, 6168, 6176, 2423, 2425,
1046      2419, 2432, 6179, 2450, 6184,11972,11972, 6198, 6202, 6206,
1047     11972,11972, 6217,11972, 2575, 2699, 2574, 2453, 6221, 6224,
1048      6232, 6245, 2457, 2479, 2495, 2472, 6251, 6256, 6259, 2477,
1049      6262, 2484, 2496, 2512, 6265, 6268, 6271, 6274, 2535, 6277,
1050      6280, 6283, 6286, 6289, 6292, 2543, 6297, 2550, 2567, 6300,
1051     11972, 2549, 6304, 6307, 2567, 6322, 6325, 6328, 2626, 2623,
1052      2624, 2630, 2624, 2633, 2634, 2634, 2645, 2639, 6336, 6343,
1053
1054      6349, 6357, 2630, 2668, 2657, 2669, 6361, 6364, 6367, 6370,
1055      6378, 6381, 6386, 6399,11972,11972, 6407, 6412,11972, 6415,
1056     11972,11972, 6426, 2672, 2672, 2772, 3024, 2681, 2691, 6431,
1057      2693, 6434,11972,11972, 2712, 6446,11972,11972, 6454, 6459,
1058      2728, 2717, 2726, 6468,11972,11972, 6476, 6480,11972,11972,
1059      6488, 6491, 6499,11972,11972, 6507, 2727, 6510,11972,11972,
1060      2730, 2748, 2743, 6518, 2758, 6521, 6526, 6541, 2764, 6544,
1061      6547, 2767, 2759, 3034, 3035, 2764, 2790, 6556,11972, 2791,
1062      6562,11972,11972, 6575,11972,11972, 2803, 6570, 2794, 6584,
1063      6589, 6592,11972,11972, 6604,11972,11972, 6612, 6616, 6622,
1064
1065      6626, 6634, 6640, 2795, 6644, 6647, 6652, 2917, 3069, 6655,
1066      6659,11972,11972, 6667, 6674, 6677, 6680, 2803, 2801, 6686,
1067      6694, 2814, 6697, 6700, 6706, 6709, 6712, 6715, 2806, 2814,
1068      6718, 6721, 6727, 6730, 2836, 6733, 2854,11972, 6736, 6739,
1069     11972,11972, 6747, 6754,11972, 6758,11972,11972, 2899, 2886,
1070      2907, 2906, 2942, 2953, 2943, 2958, 2964, 2972, 6766, 6769,
1071      6752, 6757, 6794, 6798, 2933, 2932, 2963, 6801, 2960, 6804,
1072     11972,11972, 6814, 6817,11972,11972, 6828, 6833, 2972, 2981,
1073      3008, 3044, 3028, 3047, 3014, 6836, 6839, 3015, 3040, 6843,
1074     11972,11972, 6852, 3033, 3045, 6861, 6864,11972,11972, 6872,
1075
1076      3042, 3064, 3068, 3070, 6875,11972, 6880, 6885,11972,11972,
1077      6894, 6900, 6903,11972,11972, 6913, 6918, 3099, 3121, 3103,
1078      3122, 6921, 3107, 6924, 3116, 6931, 6927, 6939, 6951, 6958,
1079      6954, 6963, 6973, 6980, 6983, 6986, 6991, 7001, 7005,11972,
1080      7008, 3146, 3203, 7013, 7020, 7016, 7027, 3107, 3103, 7035,
1081      7039, 7042, 7045, 3111, 3131, 3134, 7048,11972, 3129, 7051,
1082      7054, 3147, 3193, 3209, 3224, 3216, 3227, 3247, 3255, 3270,
1083      3258, 3280, 7062, 3259, 3269, 3271, 3264, 3269, 3300, 3313,
1084      3325, 3325, 3320, 3317, 3343, 7071, 3339, 3335, 7074, 3332,
1085      7077, 7081,11972, 7084, 3341, 3373, 3438,11972, 3436,11972,
1086
1087      7087, 7090, 7096, 3381, 3402, 7106, 7109, 3392, 7117, 7124,
1088     11972, 7127,11972, 3385, 3388, 7130, 3389, 7135, 7154, 7139,
1089      7148, 7162, 7170, 7173, 7176, 3457,11972, 3459,11972, 7179,
1090      3411, 7182, 3416, 7197,11972, 7200, 7203, 7211, 7218, 7223,
1091      7226,11972,11972, 7237, 7242, 7250, 7255, 7258,11972, 7261,
1092      7264, 3459, 3630, 3505, 7268,11972, 3443, 3469, 7273, 3459,
1093      3476, 3477, 7277, 7288, 3795, 4026, 3469, 3503, 3532, 3537,
1094      3556, 3573, 3553, 3565, 3564, 3572, 3602, 7296, 3549, 3561,
1095      3566, 3570, 3577, 3591, 3587, 3590, 3604, 3601, 3631, 3630,
1096      3634, 3625, 3638, 3656, 7299, 3646, 7302, 7305,11972, 3645,
1097
1098      7308,11972,11972, 7311, 7315, 7329, 3646, 3657, 7332,11972,
1099     11972, 3666, 7340, 7344, 3651, 7352, 7358, 7361, 7370, 7376,
1100     11972,11972, 7384,11972, 7388,11972,11972, 7396, 7399, 7403,
1101     11972,11972, 7406, 7410, 7424, 7427, 7430, 3749, 3835, 7438,
1102     11972, 7445, 7452, 7460,11972,11972, 7471, 7474, 7482, 7485,
1103      7494,11972, 3736, 3731, 3734, 3658, 7500, 3677, 3697, 3698,
1104      7503, 7514, 3731, 3734, 3799, 3737, 3782, 3836, 3761, 3813,
1105      3801, 3809, 3848,11972, 3870, 3855, 3853, 3859,11972, 7506,
1106      3836, 3845, 3849, 3865, 3874, 3876, 3881, 3865, 3882, 3885,
1107      3899, 3910, 3912, 3921, 3904, 7525, 3920, 7528, 7531, 7534,
1108
1109      7537, 7552,11972,11972, 7560,11972, 3936, 3923, 3936, 7563,
1110     11972,11972, 3946, 7571, 7579, 7591,11972,11972, 7599, 7602,
1111      7610, 7613, 7617, 7621,11972,11972, 7631, 7635, 7643, 7649,
1112      3977, 3978, 3979, 3981, 3983, 3983, 7657, 7661, 7669, 3997,
1113      4058, 7680,11972,11972, 4040, 4035, 7688, 3970, 7574, 7691,
1114      3969, 3970, 7694,11972,11972, 4035, 4030, 4058, 4066, 4075,
1115      4075, 4076, 4088, 7702, 4078, 4097, 4131, 4118, 4101, 4121,
1116      4135, 4124, 7709, 4079, 4082, 4098, 4155, 4166, 4152, 4120,
1117      4131, 4134, 4150, 4195, 4204, 4195, 4160, 4168, 7712, 7715,
1118      7720, 7723, 7729, 4176, 7741,11972,11972, 4177, 4185, 4174,
1119
1120      4194, 7749,11972,11972, 7759,11972,11972, 7767, 7772, 7775,
1121      7785, 7790, 4221, 4258, 7799, 4264, 4267, 4209, 4218, 4249,
1122      4221, 4232, 4269, 7807, 7810, 4265, 4270, 4270, 4285, 4302,
1123      7813, 7819, 7822, 7832, 7841, 7844, 7847, 4285, 4297, 4313,
1124      4301, 4306, 4318, 4320, 4318, 7850, 7853, 4333, 4333,11972,
1125      4344, 4347, 4349,11972, 4351, 7861, 4329, 4316, 4379,11972,
1126     11972, 4350, 4349, 4349, 4336, 4397,11972,11972, 4358, 4357,
1127      7864, 7868, 7871, 7880,11972,11972, 4353, 4361, 4366, 7890,
1128      4370, 7893, 7896,11972,11972, 7904, 4393, 4406, 4401, 4416,
1129      4418, 4429, 4422, 4433, 4427, 4441,11972, 4433, 4447,11972,
1130
1131      7911,11972, 7914, 4449, 4437, 4459, 4453, 4482, 7917, 7924,
1132      7936, 7967, 8014, 7944, 7947, 7950, 4476, 4499, 4506, 4473,
1133      4493, 4511, 4512, 4495, 7955,11972,11972, 4531, 4505, 4507,
1134      4533, 4513, 4518, 7978, 4486, 4502,11972, 4502, 4514, 4507,
1135      4508,11972, 4509, 4527, 7987, 7990,11972, 4526, 4527, 4541,
1136      7993, 7997, 4534, 8005, 8034, 8025, 8043, 4593, 4567, 4602,
1137      4574, 4610, 4580, 4618, 4590, 4624, 4642, 4640, 4642, 8051,
1138      4646, 4618, 4651, 4621, 4670, 8060, 4664, 4706, 8080, 8127,
1139      4657,11972,11972, 4654, 4679,11972,11972, 4669,11972, 4702,
1140      4708,11972, 4714, 4715, 8054,11972, 4721, 4684, 4681, 4731,
1141
1142      4741, 4716, 4713, 4765, 4722, 4727, 4712, 8100, 4761, 4767,
1143      4734, 8108,11972,11972, 8116, 4775, 4784,11972, 4787,11972,
1144      4787,11972, 4807,11972, 4810,11972,11972,11972,11972, 8073,
1145     11972,11972, 4803,11972, 4809, 4812, 4871, 4822, 4834, 4913,
1146      4836, 8138, 4835, 4840, 4852, 4843,11972,11972,11972,11972,
1147     11972, 4870, 4819,11972,11972, 4890, 4822,11972, 8147, 8150,
1148      8153, 4871, 4867, 4898, 4869, 8158, 4920, 4886, 4944, 4901,
1149     11972,11972,11972,11972, 4894, 4902, 8161, 4938, 4924, 4948,
1150      8176, 4961, 4947, 4961, 4960,11972, 4935, 4985,11972, 4954,
1151      4997, 8180, 8183, 8191, 8198, 8209, 8212, 4973, 4993, 5006,
1152
1153      4989, 5021, 5033, 8220, 8228, 5017, 5025, 5043, 5028, 5036,
1154      5070, 5053, 5055, 8223, 5076,11972, 5064,11972, 5067, 5059,
1155     11972, 5062,11972, 8238,11972,11972, 8246,11972,11972, 8254,
1156      5116, 5127, 5081, 5088, 5088, 5092, 5101, 5106, 8262,11972,
1157     11972, 5115, 5128, 5125, 5130, 5142, 5139, 5172, 5171, 5181,
1158     11972, 5178, 5177, 5142, 5152, 5198, 5192, 5222, 5218, 5219,
1159      5226, 5226, 5224, 5237, 5238, 5235, 5242, 5242, 5243, 5253,
1160      5255,11972,11972, 5267,11972,11972, 5241, 5243, 5257, 5277,
1161      5261, 5286, 5272, 5273, 5293, 5283, 5286, 5316, 5306, 5303,
1162      5324, 5314, 5311, 5329, 5339, 5355, 5353, 5336, 5336, 5344,
1163
1164      5351, 5369, 5361, 5401, 5387, 5377, 5407, 5393, 5383, 5422,
1165      5404, 5394, 5432, 5435,11972,11972, 5412, 5431, 5428, 5434,
1166      5457, 5438,11972, 5464, 5441,11972, 5476, 5454,11972, 5480,
1167      5457,11972, 5472, 5456, 5470, 5466, 5480,11972, 5490,11972,
1168      5491,11972, 5497,11972, 5498, 8270, 5509, 5534, 5516, 5536,
1169      5502, 5504, 5521, 5522, 8273, 5562,11972, 5560,11972, 5565,
1170      5563, 5574, 5579, 5577, 5598,11972,11972,11972,11972,11972,
1171     11972, 5639, 5642, 5672, 5819, 5678, 5745, 5578, 5606, 5580,
1172      5589, 5643, 5693, 5605, 5754, 5718, 5790, 5829, 5852, 5688,
1173      5787, 5848, 5879, 5846, 5869, 5662, 5786, 5911, 5928, 5927,
1174
1175      5944, 5913, 5990, 5935, 5964, 5959, 5968, 6033, 6041, 5984,
1176      6065, 5976, 6044, 6063, 6066, 6095, 6111, 6015, 6092, 6140,
1177      6156, 5936, 6114, 6102, 6174, 6121, 6175, 6178, 6277, 5885,
1178      6219, 6171, 6329, 6321, 6334, 6316, 6384, 6187, 6386, 6328,
1179      6373, 6387, 6402, 5991, 6433, 6221, 6294, 6446, 6447, 6097,
1180      6355, 6484, 6517, 6313, 6008, 8281, 8284,11972,11972, 8304,
1181      8313, 8322, 8331, 8340, 8349, 8358, 8367, 8376, 8385, 8394,
1182      8403, 8412, 8421, 8430, 8439, 8448, 8457, 8466, 8475, 8484,
1183      8493, 8502, 8511, 8520, 8529, 8538, 8547, 8556, 8565, 8574,
1184      8583, 8592, 8601, 8610, 8619, 8628, 8637, 8646, 8655, 8664,
1185
1186      8673, 8682, 8691, 8700, 8709, 8718, 8727, 8736, 8745, 8754,
1187      8763, 8772, 8781, 8790, 8799, 8808, 8817, 8826, 8835, 8844,
1188      8851, 8858, 8865, 8872, 8879, 8886, 8893, 8900, 8907, 8914,
1189      8921, 8928, 8935, 8942, 8949, 8956, 8963, 8970, 8977, 8984,
1190      8991, 8998, 9005, 9012, 9019, 9026, 9033, 9040, 9049, 9056,
1191      9061, 9068, 9073, 9080, 9085, 9092, 9097, 9104, 9109, 9116,
1192      9121, 9128, 9133, 9140, 9145, 9152, 9157, 9164, 9169, 9176,
1193      9181, 9188, 9193, 9200, 9205, 9212, 9217, 9224, 9229, 9236,
1194      9241, 9248, 9253, 9260, 9265, 9272, 9277, 9284, 9289, 9296,
1195      9301, 9308, 9313, 9320, 9325, 9332, 9337, 9344, 9349, 9356,
1196
1197      9361, 9368, 9373, 9380, 9385, 9394, 9400, 9407, 9415, 9422,
1198      9430, 9437, 9445, 9452, 9460, 9467, 9475, 9482, 9490, 9497,
1199      9505, 9512, 9520, 9527, 9535, 9542, 9550, 9557, 9565, 9572,
1200      9580, 9587, 9595, 9602, 9610, 9618, 9626, 9633, 9641, 9648,
1201      9656, 9663, 9671, 9678, 9686, 9694, 9702, 9710, 9718, 9725,
1202      9733, 9741, 9749, 9757, 9765, 9772, 9780, 9787, 9795, 9803,
1203      9810, 9818, 9827, 9833, 9840, 9848, 9856, 9864, 9872, 9880,
1204      9887, 9895, 9902, 9910, 9917, 9925, 9932, 9940, 9947, 9955,
1205      9963, 9971, 9979, 9987, 9994,10002,10010,10018,10026,10034,
1206     10041,10049,10056,10064,10071,10079,10086,10094,10101,10109,
1207
1208     10116,10124,10131,10139,10146,10154,10161,10169,10177,10184,
1209     10192,10199,10207,10214,10222,10230,10237,10245,10254,10263,
1210     10270,10278,10286,10293,10301,10308,10316,10323,10331,10338,
1211     10345,10353,10360,10368,10376,10383,10391,10398,10406,10414,
1212     10422,10429,10437,10445,10453,10460,10468,10475,10483,10490,
1213     10498,10505,10513,10520,10528,10535,10543,10550,10558,10566,
1214     10573,10581,10588,10596,10604,10612,10620,10628,10636,10645,
1215     10654,10661,10669,10677,10684,10692,10699,10707,10714,10722,
1216     10729,10736,10744,10751,10759,10767,10775,10783,10790,10798,
1217     10806,10813,10821,10829,10837,10844,10852,10859,10867,10874,
1218
1219     10882,10889,10897,10904,10912,10920,10928,10935,10943,10951,
1220     10959,10967,10974,10982,10990,10998,11006,11015,11024,11032,
1221     11040,11048,11055,11063,11070,11078,11086,11094,11102,11110,
1222     11118,11126,11134,11142,11150,11157,11165,11172,11180,11188,
1223     11196,11203,11210,11218,11225,11233,11240,11247,11255,11262,
1224     11270,11277,11285,11293,11301,11308,11316,11324,11332,11341,
1225     11350,11358,11366,11373,11380,11388,11396,11404,11412,11420,
1226     11427,11435,11442,11450,11458,11465,11472,11480,11487,11495,
1227     11502,11509,11516,11524,11531,11539,11547,11555,11563,11571,
1228     11579,11587,11596,11605,11613,11621,11628,11636,11644,11652,
1229
1230     11660,11668,11675,11683,11690,11698,11706,11713,11720,11728,
1231     11736,11744,11751,11758,11766,11774,11782,11790,11798,11806,
1232     11814,11822,11831,11840,11848,11855,11862,11870,11878,11886,
1233     11893,11901,11908,11917,11926,11935,11944,11953,11962
1234     } ;
1235
1236 static yyconst flex_int16_t yy_def[3740] =
1237     {   0,
1238      3260, 3260, 3261, 3261, 3261, 3261, 3262, 3262, 3263, 3263,
1239      3264, 3264, 3265, 3265, 3265, 3265, 3266, 3266, 3260, 3260,
1240      3267, 3267, 3268, 3268, 3268, 3268, 3260, 3260, 3268, 3268,
1241      3268, 3268, 3260, 3260, 3268, 3268, 3260, 3260, 3268, 3268,
1242      3268, 3268, 3269, 3269, 3270, 3270, 3260, 3260, 3270, 3270,
1243      3270, 3270, 3271, 3271, 3265, 3265, 3272, 3272, 3273, 3273,
1244      3274, 3274, 3275, 3275, 3276, 3276, 3277, 3277, 3277, 3277,
1245      3260, 3260, 3277, 3277, 3277, 3277, 3260, 3260, 3277, 3277,
1246      3277, 3277, 3260, 3260, 3277, 3277, 3260, 3260, 3277, 3277,
1247      3277, 3277, 3260, 3260, 3277, 3277, 3260, 3260, 3277, 3277,
1248
1249      3277, 3277, 3278, 3278, 3279, 3279, 3260, 3260, 3279, 3279,
1250      3279, 3279, 3280, 3280, 3281, 3281, 3260, 3260, 3281, 3281,
1251      3281, 3281, 3282, 3282, 3283, 3283, 3284, 3284, 3285, 3285,
1252      3286, 3286, 3287, 3287, 3260, 3260, 3287, 3287, 3287, 3287,
1253      3288, 3288, 3289, 3289, 3290, 3290, 3291, 3291, 3259,  149,
1254      3292, 3292, 3293, 3293, 3294, 3294, 3295, 3295, 3296, 3296,
1255      3297, 3297, 3298, 3298, 3299, 3299, 3300, 3300, 3301, 3301,
1256      3302, 3302, 3260, 3260, 3302, 3302, 3302, 3302, 3303, 3303,
1257      3304, 3304, 3260, 3260, 3304, 3304, 3304, 3304, 3305, 3305,
1258      3306, 3306, 3260, 3260, 3306, 3306, 3306, 3306, 3307, 3307,
1259
1260      3308, 3308, 3309, 3309, 3310, 3310, 3260, 3260, 3310, 3310,
1261      3310, 3310, 3311, 3311, 3312, 3312, 3260, 3260, 3312, 3312,
1262      3312, 3312, 3313, 3313, 3314, 3314, 3260, 3260, 3314, 3314,
1263      3314, 3314, 3315, 3315, 3316, 3316, 3317, 3317, 3318, 3318,
1264      3260, 3260, 3318, 3318, 3318, 3318, 3319, 3319, 3320, 3320,
1265      3260, 3260, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1266      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1267      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1268      3259, 3259, 3259, 3321, 3259, 3259, 3321, 3259, 3259, 3259,
1269       290,  290,  292,  290,  293,  293, 3259, 3259, 3259, 3322,
1270
1271      3259, 3259, 3322, 3259, 3259,  294,  293, 3259, 3259, 3259,
1272      3323, 3259, 3259, 3323, 3323, 3323, 3259, 3259, 3259, 3259,
1273      3259, 3324, 3259, 3259, 3324, 3324, 3324, 3324, 3324, 3259,
1274      3259, 3259, 3259, 3259, 3259, 3325, 3259, 3259, 3325, 3325,
1275      3325, 3259, 3259, 3259, 3259, 3259, 3259, 3326, 3259, 3259,
1276      3326, 3326, 3259, 3259, 3259,  355,  293,  293,  294,  359,
1277       358,  358,  358,  358,  359,  365,  363,  363, 3259, 3259,
1278      3259, 3327, 3259, 3259, 3327, 3327, 3327, 3327, 3259, 3259,
1279       293,  293, 3259, 3259, 3259, 3328, 3259, 3259, 3328, 3328,
1280      3328, 3259, 3259,  293,  293, 3259, 3259, 3259, 3329, 3259,
1281
1282      3259, 3329, 3329, 3259, 3259, 3259, 3259, 3259, 3259, 3330,
1283      3259, 3259, 3330, 3330, 3259, 3259, 3259, 3259, 3259, 3259,
1284      3331, 3259, 3259, 3331, 3331, 3331, 3331, 3331, 3259, 3259,
1285       293,  293,  293, 3259, 3259, 3259, 3332, 3259, 3259, 3332,
1286      3259, 3259, 3259, 3259, 3259, 3259, 3333, 3259, 3259, 3333,
1287      3333, 3333, 3259, 3259, 3259, 3259, 3259, 3259, 3334, 3259,
1288      3259, 3334, 3334, 3334, 3334, 3334, 3334, 3334, 3334, 3259,
1289      3259, 3259, 3259, 3259, 3259, 3335, 3259, 3259, 3335, 3335,
1290      3335, 3335, 3335, 3335, 3259, 3259, 3259, 3259, 3259, 3259,
1291      3336, 3259, 3259, 3336, 3336, 3336, 3336, 3336, 3336, 3336,
1292
1293      3259, 3259, 3259, 3259, 3259, 3259, 3337, 3259, 3259, 3337,
1294      3337, 3259, 3259, 3259, 3259, 3259, 3259, 3338, 3259, 3259,
1295      3338, 3338, 3338, 3259, 3259, 3259, 3259, 3259, 3259, 3339,
1296      3259, 3259, 3339, 3339, 3339, 3339, 3259, 3259,  293,  293,
1297      3259, 3259, 3259, 3340, 3259, 3259, 3340, 3340, 3259, 3259,
1298       293,  363,  363, 3259, 3259, 3259, 3341, 3259, 3259, 3341,
1299      3341, 3341, 3259, 3259,  363,  363, 3259, 3259, 3259, 3342,
1300      3259, 3259, 3342, 3342, 3259, 3259, 3259, 3259, 3259, 3259,
1301      3343, 3259, 3259, 3343, 3343, 3259, 3259,  363,  363, 3259,
1302      3259, 3259, 3344, 3259, 3259, 3344, 3344, 3344, 3259, 3259,
1303
1304       363,  363, 3259, 3259, 3259, 3345, 3259, 3259, 3345, 3345,
1305      3345, 3345, 3345, 3259, 3259,  293,  432,  293, 3259, 3259,
1306      3259, 3346, 3259, 3259, 3346, 3259, 3259, 3259, 3259, 3259,
1307      3259, 3347, 3259, 3259, 3347, 3259, 3259,  293,  293, 3259,
1308      3259, 3259, 3348, 3259, 3259, 3348, 3348, 3259, 3259, 3259,
1309      3259, 3349, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1310      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3350, 3350, 3351,
1311      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1312      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1313      3259, 3259, 3259, 3259, 3352, 3352, 3353, 3259, 3354, 3354,
1314
1315      3354, 3354, 3259, 3355, 3259, 3259, 3356, 3356, 3356, 3356,
1316      3356, 3356, 3356, 3356, 3356, 3357, 3259, 3358, 3358, 3358,
1317      3358, 3359, 3259, 3360, 3360, 3360, 3361, 3259, 3259, 3259,
1318      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1319      3259, 3259, 3259, 3259, 3259, 3259, 3362, 3362, 3362, 3362,
1320      3362, 3363, 3259, 3364, 3364, 3364, 3364, 3365, 3259, 3366,
1321      3366, 3366, 3367, 3259, 3368, 3368, 3368, 3369, 3259, 3370,
1322      3370, 3370, 3370, 3370, 3370, 3371, 3259, 3259, 3372, 3372,
1323      3373, 3259, 3374, 3374, 3374, 3374, 3375, 3259, 3376, 3376,
1324      3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
1325
1326      3376, 3376, 3377, 3259, 3378, 3378, 3378, 3378, 3378, 3378,
1327      3378, 3378, 3379, 3259, 3380, 3380, 3380, 3380, 3380, 3380,
1328      3380, 3380, 3381, 3259, 3382, 3382, 3382, 3383, 3259, 3384,
1329      3384, 3384, 3384, 3385, 3259, 3386, 3386, 3386, 3386, 3386,
1330      3386, 3387, 3259, 3388, 3388, 3388, 3388, 3389, 3259, 3259,
1331      3390, 3390, 3390, 3390, 3390, 3391, 3259, 3392, 3392, 3392,
1332      3393, 3259, 3394, 3394, 3394, 3395, 3259, 3396, 3396, 3396,
1333      3396, 3397, 3259, 3398, 3398, 3398, 3398, 3398, 3398, 3399,
1334      3259, 3259, 3400, 3400, 3401, 3259, 3402, 3402, 3403, 3259,
1335      3404, 3404, 3404, 3405, 3406, 3259, 3406, 3259, 3259, 3259,
1336
1337      3407, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3408, 3409,
1338      3409, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1339      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1340      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1341      3410, 3411, 3411, 3412, 3259, 3259, 3412, 3259, 3413, 3413,
1342      3259, 3414, 3259, 3259, 3414, 3414, 3414, 3414, 3414, 3414,
1343      3415, 3415, 3416, 3416, 3416, 3417, 3417, 3259, 3259, 3418,
1344      3419, 3419, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1345      3259, 3259, 3259, 3259, 3259, 3259, 3420, 3259, 3259, 3420,
1346      3420, 3421, 3421, 3422, 3259, 3259, 3422, 3423, 3423, 3259,
1347
1348      3259, 3424, 3425, 3425, 3426, 3426, 3427, 3427, 3428, 3428,
1349      3428, 3259, 3259, 3428, 3428, 3429, 3429, 3259, 3259, 3430,
1350      3431, 3431, 3432, 3259, 3259, 3259, 3259, 3433, 3433, 3434,
1351      3434, 3259, 3259, 3434, 3259, 3259, 3434, 3434, 3434, 3434,
1352      3434, 3434, 3434, 3434, 3435, 3435, 3259, 3259, 3259, 3259,
1353      3436, 3436, 3436, 3436, 3436, 3437, 3437, 3438, 3438, 3438,
1354      3259, 3259, 3438, 3438, 3438, 3439, 3439, 3440, 3259, 3259,
1355      3441, 3441, 3442, 3259, 3259, 3442, 3443, 3443, 3444, 3259,
1356      3259, 3444, 3444, 3444, 3445, 3445, 3446, 3446, 3446, 3447,
1357      3447, 3259, 3448, 3448, 3448, 3448, 3449, 3449, 3450, 3259,
1358
1359      3259, 3451, 3451, 3452, 3452, 3453, 3453, 3454, 3454, 3454,
1360      3455, 3455, 3456, 3456, 3456, 3456, 3456, 3457, 3457, 3259,
1361      3458, 3459, 3459, 3259, 3259, 3460, 3460, 3259, 3259, 3461,
1362      3462, 3462, 3463, 3259, 3259, 3463, 3259, 3259, 3464, 3259,
1363      3259, 3259, 3259, 3259, 3259, 3465, 3259, 3466, 3259, 3466,
1364      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1365      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1366      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1367      3467, 3259, 3468, 3259, 3468, 3469, 3259, 3259, 3259, 3469,
1368      3259, 3259, 3470, 3259, 3470, 3471, 3259, 3259, 3259, 3259,
1369
1370      3259, 3471, 3259, 3259, 3471, 3471, 3471, 3259, 3472, 3259,
1371      3472, 3473, 3473, 3473, 3259, 3474, 3259, 3474, 3259, 3259,
1372      3259, 3475, 3259, 3476, 3259, 3476, 3259, 3259, 3259, 3259,
1373      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3477,
1374      3259, 3259, 3259, 3477, 3477, 3259, 3478, 3259, 3478, 3479,
1375      3259, 3259, 3259, 3479, 3259, 3480, 3259, 3480, 3259, 3259,
1376      3259, 3481, 3259, 3482, 3259, 3482, 3483, 3483, 3259, 3484,
1377      3259, 3484, 3485, 3485, 3485, 3259, 3259, 3259, 3485, 3485,
1378      3259, 3486, 3259, 3486, 3259, 3259, 3487, 3259, 3488, 3259,
1379      3488, 3489, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3490,
1380
1381      3259, 3490, 3491, 3491, 3491, 3491, 3259, 3259, 3259, 3491,
1382      3259, 3259, 3259, 3259, 3259, 3491, 3491, 3491, 3491, 3491,
1383      3491, 3491, 3259, 3492, 3259, 3492, 3259, 3259, 3259, 3259,
1384      3259, 3259, 3259, 3259, 3493, 3493, 3493, 3493, 3259, 3494,
1385      3259, 3494, 3495, 3495, 3495, 3495, 3259, 3259, 3259, 3259,
1386      3259, 3495, 3495, 3259, 3496, 3259, 3496, 3497, 3259, 3259,
1387      3259, 3259, 3498, 3259, 3498, 3499, 3259, 3259, 3259, 3499,
1388      3259, 3500, 3259, 3500, 3501, 3259, 3259, 3259, 3501, 3501,
1389      3501, 3259, 3502, 3259, 3502, 3259, 3259, 3259, 3259, 3503,
1390      3259, 3504, 3259, 3504, 3259, 3259, 3259, 3505, 3505, 3259,
1391
1392      3259, 3505, 3259, 3506, 3259, 3506, 3507, 3259, 3259, 3259,
1393      3259, 3508, 3259, 3508, 3259, 3259, 3259, 3259, 3259, 3509,
1394      3259, 3509, 3259, 3259, 3510, 3510, 3259, 3259, 3259, 3511,
1395      3259, 3511, 3512, 3512, 3512, 3512, 3512, 3259, 3513, 3259,
1396      3513, 3259, 3514, 3259, 3515, 3259, 3515, 3259, 3259, 3259,
1397      3259, 3516, 3259, 3516, 3259, 3259, 3259, 3517, 3259, 3518,
1398      3259, 3518, 3519, 3520, 3259, 3259, 3259, 3259, 3259, 3521,
1399      3522, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1400      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1401      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1402
1403      3259, 3259, 3523, 3259, 3259, 3524, 3259, 3525, 3526, 3259,
1404      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3526, 3259, 3259,
1405      3526, 3527, 3528, 3259, 3259, 3528, 3529, 3530, 3259, 3259,
1406      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1407      3259, 3259, 3259, 3531, 3531, 3259, 3259, 3532, 3533, 3533,
1408      3534, 3259, 3259, 3535, 3259, 3259, 3536, 3537, 3538, 3538,
1409      3259, 3259, 3538, 3538, 3539, 3259, 3259, 3259, 3259, 3540,
1410      3259, 3259, 3541, 3542, 3542, 3542, 3542, 3259, 3259, 3259,
1411      3259, 3259, 3542, 3542, 3542, 3542, 3542, 3542, 3542, 3543,
1412      3259, 3259, 3259, 3544, 3544, 3544, 3544, 3545, 3546, 3546,
1413
1414      3546, 3546, 3259, 3259, 3259, 3546, 3546, 3547, 3548, 3549,
1415      3550, 3550, 3551, 3552, 3552, 3552, 3552, 3553, 3259, 3259,
1416      3259, 3259, 3259, 3259, 3554, 3555, 3259, 3259, 3259, 3259,
1417      3556, 3556, 3259, 3259, 3259, 3556, 3557, 3558, 3559, 3259,
1418      3259, 3259, 3259, 3259, 3259, 3560, 3259, 3259, 3259, 3561,
1419      3561, 3259, 3259, 3259, 3562, 3563, 3259, 3259, 3563, 3563,
1420      3563, 3564, 3259, 3565, 3566, 3567, 3568, 3569, 3570, 3571,
1421      3571, 3259, 3571, 3259, 3259, 3259, 3572, 3573, 3259, 3259,
1422      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1423      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1424
1425      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1426      3259, 3574, 3259, 3259, 3259, 3575, 3259, 3576, 3577, 3259,
1427      3259, 3259, 3577, 3259, 3259, 3259, 3577, 3578, 3579, 3259,
1428      3259, 3259, 3259, 3259, 3580, 3581, 3259, 3259, 3259, 3259,
1429      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3582,
1430      3259, 3259, 3259, 3259, 3259, 3583, 3584, 3584, 3585, 3259,
1431      3259, 3259, 3586, 3259, 3259, 3259, 3587, 3588, 3589, 3589,
1432      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3589, 3590, 3259,
1433      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3591,
1434      3592, 3259, 3259, 3592, 3592, 3259, 3259, 3259, 3259, 3259,
1435
1436      3592, 3592, 3592, 3592, 3592, 3592, 3593, 3259, 3259, 3594,
1437      3594, 3594, 3595, 3596, 3259, 3259, 3596, 3596, 3259, 3259,
1438      3596, 3597, 3598, 3599, 3600, 3600, 3601, 3602, 3602, 3602,
1439      3259, 3259, 3602, 3603, 3604, 3605, 3259, 3606, 3606, 3606,
1440      3607, 3608, 3609, 3610, 3611, 3611, 3612, 3613, 3259, 3259,
1441      3259, 3613, 3613, 3613, 3614, 3259, 3259, 3259, 3615, 3616,
1442      3259, 3259, 3617, 3618, 3619, 3619, 3259, 3259, 3620, 3621,
1443      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1444      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1445      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3622, 3623,
1446
1447      3259, 3624, 3625, 3625, 3625, 3626, 3627, 3259, 3259, 3259,
1448      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3628, 3629,
1449      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3630,
1450      3259, 3259, 3259, 3631, 3632, 3259, 3259, 3633, 3634, 3259,
1451      3259, 3635, 3636, 3636, 3259, 3259, 3259, 3259, 3259, 3259,
1452      3636, 3259, 3259, 3259, 3259, 3637, 3638, 3259, 3259, 3259,
1453      3259, 3259, 3638, 3259, 3259, 3259, 3259, 3259, 3638, 3638,
1454      3638, 3638, 3259, 3259, 3639, 3259, 3259, 3259, 3259, 3259,
1455      3640, 3259, 3259, 3641, 3642, 3259, 3259, 3259, 3259, 3259,
1456      3642, 3259, 3259, 3259, 3642, 3259, 3259, 3643, 3644, 3645,
1457
1458      3645, 3646, 3647, 3647, 3647, 3259, 3259, 3259, 3647, 3259,
1459      3259, 3648, 3649, 3259, 3259, 3259, 3259, 3259, 3650, 3651,
1460      3652, 3653, 3654, 3259, 3259, 3259, 3259, 3655, 3656, 3656,
1461      3656, 3656, 3657, 3259, 3259, 3259, 3259, 3658, 3659, 3259,
1462      3259, 3259, 3259, 3259, 3660, 3661, 3661, 3259, 3259, 3259,
1463      3662, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1464      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1465      3259, 3259, 3259, 3259, 3259, 3259, 3663, 3664, 3259, 3259,
1466      3259, 3665, 3259, 3259, 3665, 3666, 3259, 3259, 3259, 3259,
1467      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3667, 3259,
1468
1469      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1470      3668, 3259, 3259, 3259, 3259, 3259, 3669, 3259, 3259, 3259,
1471      3259, 3259, 3670, 3671, 3671, 3259, 3259, 3671, 3259, 3672,
1472      3673, 3259, 3259, 3259, 3673, 3259, 3259, 3259, 3259, 3259,
1473      3673, 3673, 3673, 3259, 3259, 3259, 3674, 3259, 3259, 3259,
1474      3259, 3259, 3259, 3259, 3259, 3675, 3676, 3259, 3259, 3259,
1475      3676, 3676, 3677, 3678, 3679, 3259, 3259, 3680, 3681, 3259,
1476      3259, 3681, 3681, 3259, 3259, 3681, 3682, 3259, 3259, 3259,
1477      3259, 3259, 3259, 3259, 3259, 3259, 3683, 3684, 3685, 3686,
1478      3687, 3259, 3259, 3259, 3259, 3259, 3259, 3688, 3689, 3689,
1479
1480      3689, 3689, 3690, 3259, 3691, 3692, 3693, 3694, 3694, 3259,
1481      3259, 3259, 3259, 3695, 3259, 3259, 3259, 3259, 3259, 3259,
1482      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1483      3259, 3259, 3259, 3259, 3259, 3696, 3697, 3259, 3698, 3259,
1484      3259, 3259, 3698, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1485      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3699, 3259,
1486      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1487      3259, 3259, 3700, 3259, 3259, 3259, 3701, 3702, 3703, 3703,
1488      3259, 3259, 3259, 3259, 3703, 3259, 3704, 3705, 3705, 3259,
1489      3259, 3259, 3705, 3705, 3705, 3706, 3259, 3259, 3259, 3707,
1490
1491      3708, 3708, 3708, 3709, 3259, 3259, 3710, 3259, 3259, 3259,
1492      3711, 3712, 3259, 3259, 3259, 3712, 3712, 3259, 3259, 3259,
1493      3259, 3712, 3713, 3259, 3714, 3715, 3716, 3717, 3718, 3719,
1494      3259, 3259, 3720, 3720, 3720, 3721, 3259, 3722, 3259, 3259,
1495      3723, 3724, 3724, 3259, 3725, 3259, 3259, 3259, 3259, 3259,
1496      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3726, 3259,
1497      3259, 3727, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1498      3259, 3259, 3728, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1499      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1500      3729, 3259, 3259, 3730, 3731, 3731, 3259, 3259, 3259, 3259,
1501
1502      3731, 3259, 3732, 3733, 3733, 3259, 3259, 3733, 3733, 3259,
1503      3259, 3259, 3259, 3708, 3708, 3708, 3709, 3259, 3259, 3711,
1504      3259, 3259, 3712, 3712, 3712, 3259, 3259, 3259, 3259, 3712,
1505      3713, 3259, 3714, 3259, 3259, 3259, 3259, 3717, 3718, 3719,
1506      3259, 3259, 3259, 3259, 3259, 3720, 3720, 3259, 3259, 3259,
1507      3722, 3723, 3724, 3724, 3259, 3259, 3259, 3259, 3259, 3259,
1508      3259, 3259, 3726, 3259, 3259, 3259, 3727, 3259, 3259, 3259,
1509      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3728, 3259, 3259,
1510      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1511      3259, 3259, 3259, 3259, 3259, 3259, 3729, 3259, 3259, 3731,
1512
1513      3731, 3259, 3259, 3259, 3259, 3732, 3733, 3733, 3259, 3259,
1514      3259, 3733, 3259, 3259, 3708, 3708, 3259, 3259, 3709, 3259,
1515      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3712, 3712, 3712,
1516      3259, 3259, 3259, 3259, 3713, 3714, 3259, 3259, 3259, 3259,
1517      3259, 3718, 3719, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1518      3259, 3259, 3723, 3724, 3724, 3259, 3259, 3259, 3259, 3259,
1519      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3727, 3259,
1520      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3728,
1521      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1522      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3729, 3731, 3259,
1523
1524      3259, 3259, 3259, 3259, 3259, 3259, 3733, 3733, 3733, 3259,
1525      3259, 3259, 3708, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1526      3712, 3712, 3712, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1527      3259, 3259, 3259, 3259, 3259, 3259, 3718, 3719, 3259, 3259,
1528      3259, 3259, 3259, 3259, 3723, 3724, 3724, 3259, 3259, 3259,
1529      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1530      3259, 3259, 3259, 3727, 3259, 3259, 3259, 3259, 3259, 3259,
1531      3259, 3259, 3728, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1532      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1533      3729, 3259, 3259, 3731, 3259, 3259, 3259, 3733, 3733, 3733,
1534
1535      3708, 3259, 3259, 3259, 3259, 3259, 3259, 3712, 3259, 3259,
1536      3712, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1537      3259, 3259, 3259, 3718, 3719, 3259, 3259, 3259, 3259, 3723,
1538      3724, 3724, 3724, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1539      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1540      3259, 3259, 3259, 3259, 3259, 3728, 3259, 3259, 3259, 3259,
1541      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1542      3259, 3259, 3729, 3259, 3259, 3259, 3731, 3733, 3733, 3733,
1543      3708, 3712, 3259, 3259, 3259, 3712, 3259, 3259, 3259, 3259,
1544      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1545
1546      3259, 3259, 3719, 3259, 3259, 3259, 3259, 3723, 3724, 3724,
1547      3724, 3734, 3735, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1548      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1549      3259, 3259, 3259, 3728, 3259, 3259, 3259, 3259, 3259, 3259,
1550      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3731, 3733, 3733,
1551      3259, 3259, 3708, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1552      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3719,
1553      3259, 3259, 3259, 3259, 3723, 3724, 3736, 3737, 3734, 3735,
1554      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1555      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1556
1557      3259, 3259, 3259, 3259, 3731, 3733, 3733, 3259, 3259, 3259,
1558      3708, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1559      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1560      3259, 3259, 3259, 3259, 3259, 3723, 3736, 3724, 3738, 3737,
1561      3739, 3724, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1562      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3731, 3733,
1563      3733, 3259, 3259, 3259, 3259, 3708, 3259, 3259, 3259, 3259,
1564      3259, 3259, 3259, 3259, 3259, 3259, 3723, 3738, 3259, 3739,
1565      3724, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1566      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1567
1568      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1569      3259, 3259, 3259, 3723, 3259, 3259, 3259, 3259, 3259, 3259,
1570      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1571      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1572      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3723,
1573      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1574      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1575      3259, 3259, 3259, 3723, 3259, 3259, 3259, 3259, 3259, 3259,
1576      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1577      3259, 3259, 3259, 3259, 3723, 3259, 3259, 3259, 3259, 3259,
1578
1579      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1580      3259, 3259, 3259, 3723, 3259, 3259, 3259, 3259, 3259, 3259,
1581      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1582      3259, 3259, 3723, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1583      3259, 3259, 3259, 3259, 3259, 3723, 3259, 3259, 3259, 3259,
1584      3259, 3259, 3259, 3259, 3723, 3259, 3259, 3259, 3259, 3259,
1585      3259, 3259, 3259, 3723, 3723, 3259, 3259, 3259, 3259, 3259,
1586      3259, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1587      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1588      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1589
1590      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1591      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1592      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1593      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1594      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
1595      3723, 3723, 3723, 3723, 3723, 3723, 3723, 3259,    0, 3259,
1596      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1597      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1598      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1599      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1600
1601      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1602      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1603      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1604      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1605      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1606      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1607      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1608      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1609      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1610      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1611
1612      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1613      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1614      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1615      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1616      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1617      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1618      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1619      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1620      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1621      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1622
1623      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1624      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1625      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1626      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1627      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1628      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1629      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1630      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1631      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1632      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1633
1634      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1635      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1636      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1637      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1638      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1639      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1640      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1641      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1642      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1643      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1644
1645      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1646      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1647      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
1648      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259
1649     } ;
1650
1651 static yyconst flex_int16_t yy_nxt[12047] =
1652     {   0,
1653      3259,  256,  257,  256,  256,  257,  256,  256,  257,  256,
1654       256,  257,  256,  261,  257,  261,  267,  258,  264,  267,
1655       258,  264, 3259,  259, 3259,  265,  259, 3259,  265,  262,
1656       261,  257,  261,  652,  268,  270,  271,  268,  270,  271,
1657       272,  273,  697,  272,  273,  652,  262,  277,  278,  653,
1658       274,  270,  271,  274,  275,  655,  272,  270,  271,  686,
1659       275,  654,  272,  277,  278, 1738,  274,  257,  257,  257,
1660       840,  654,  274,  257,  257,  257,  289,  257,  289,  289,
1661       257,  289,  841,  280,  289,  257,  289,  673, 1739,  280,
1662       727,  279,  290, 1344,  689,  290,  651,  651,  651, 1345,
1663
1664       291,  651,  651,  651,  651,  651,  651,  279,  281,  282,
1665       257,  282,  281,  281,  281,  281,  281,  281,  281,  283,
1666       281,  281,  281,  684,  281,  285,  281,  286,  281,  289,
1667       257,  289,  257,  257,  257,  257,  257,  257,  685,  289,
1668       257,  289,  289,  257,  289,  291,  690,  796,  292,  655,
1669       797,  292,  914,  281,  281,  290,  655,  655,  290,  289,
1670       257,  289,  651,  651,  651,  654,  651,  651,  651,  651,
1671       651,  651,  654,  654, 3259,  293,  915,  287,  281,  282,
1672       257,  282,  281,  281,  281,  281,  281,  281,  281,  283,
1673       281,  281,  281, 1744,  281,  285,  281,  286,  281,  289,
1674
1675       257,  289,  257,  257,  257,  257,  257,  257,  660,  289,
1676       257,  289,  289,  257,  289,  293,  666,  727,  294,  809,
1677       974,  294,  810,  281,  281,  291,  736,  728,  291,  257,
1678       257,  257,  257,  257,  257,  289,  257,  289,  289,  257,
1679       289,  289,  257,  289,  975,  295,  846,  287,  295,  655,
1680       661,  293,  791,  847,  293,  740,  662,  296,  289,  257,
1681       289,  663,  651,  651,  651,  654,  664,  651,  651,  651,
1682       651,  651,  651,  792,  296,  297,  298,  257,  298,  297,
1683       297,  297,  297,  297,  297,  297,  299,  297,  297,  297,
1684       714,  297,  301,  297,  302,  297,  305,  257,  305,  305,
1685
1686       257,  305,  257,  257,  257,  715,  257,  257,  257,  305,
1687       257,  305,  306,  902,  848,  306,  903, 1745,  294,  710,
1688       297,  297,  294,  711,  752,  306,  670,  712,  303,  297,
1689       298,  257,  298,  297,  297,  297,  297,  297,  297,  297,
1690       299,  297,  297,  297,  655,  297,  301,  297,  302,  297,
1691       305,  257,  305,  305,  257,  305,  305,  257,  305,  798,
1692       654,  856,  270,  271,  854,  691,  306,  272, 3259,  307,
1693       690,  855,  307,  799,  297,  297,  736,  317,  692,  752,
1694       685, 1746,  303,  308,  309,  257,  309,  308,  308,  308,
1695       308,  308,  308,  308,  310,  308,  308,  308, 1747,  308,
1696
1697       312,  308,  313,  308, 1748,  655,  318,  684,  331,  257,
1698       331,  331,  257,  331,  343,  257,  343,  690,  270,  271,
1699       693,  654,  685,  272,  332,  703,  849,  332,  308,  308,
1700       344,  689,  704,  317,  690,  866,  314,  758, 1749,  315,
1701       872,  654,  651,  651,  651, 1750,  316,  308,  309,  257,
1702       309,  308,  308,  308,  308,  308,  308,  308,  310,  308,
1703       308,  308,  318,  308,  312,  308,  313,  308,  343,  257,
1704       343,  354,  257,  354,  354,  257,  354, 1757,  354,  257,
1705       354,  354,  257,  354,  344,  655,  741,  355,  655,  736,
1706       355,  690,  308,  308,  356,  716,  690,  356, 1758, 1767,
1707
1708       314,  654,  742,  315,  654,  651,  651,  651,  758, 1769,
1709       316,  319,  320,  257,  320,  319,  319,  319,  319,  319,
1710       319,  319,  321,  319,  319,  319, 1770,  319,  323,  319,
1711       324,  319,  257,  257,  257,  257,  257,  257,  354,  257,
1712       354,  776,  354,  257,  354,  354,  257,  354,  357, 1780,
1713       655,  357,  655,  655,  355, 1781,  319,  319,  355,  722,
1714       689,  358,  651,  651,  651,  325,  654,  326,  654,  654,
1715       776,  327,  651,  651,  651,  842,  328,  329,  319,  320,
1716       257,  320,  319,  319,  319,  319,  319,  319,  319,  321,
1717       319,  319,  319,  689,  319,  323,  319,  324,  319,  354,
1718
1719       257,  354,  257,  257,  257,  257,  257,  257,  881,  354,
1720       257,  354,  354,  257,  354,  358,  739, 1791,  359,  777,
1721       679,  359,  736,  319,  319,  360,  732,  736,  360,  651,
1722       651,  651,  325,  735,  326,  651,  651,  651,  327,  651,
1723       651,  651, 1794,  328,  329,  333,  334,  257,  334,  333,
1724       333,  333,  333,  333,  333,  333,  335,  333,  333,  333,
1725       686,  333,  337,  333,  338,  333,  354,  257,  354,  354,
1726       257,  354,  257,  257,  257,  896,  257,  257,  257,  354,
1727       257,  354,  361,  923, 1795,  361,  896,  924,  362,  743,
1728       333,  333,  362,  730,  731,  358, 1801,  339,  651,  651,
1729
1730       651,  897,  689,  340,  744,  651,  651,  651,  651,  651,
1731       651,  948,  341,  333,  334,  257,  334,  333,  333,  333,
1732       333,  333,  333,  333,  335,  333,  333,  333, 1802,  333,
1733       337,  333,  338,  333,  354,  257,  354,  257,  257,  257,
1734       257,  257,  257, 1803,  354,  257,  354,  354,  257,  354,
1735       358,  655,  928,  363, 1804,  914,  363,  655,  333,  333,
1736       361,  655,  655,  361,  763,  339,  929,  654,  651,  651,
1737       651,  340,  974,  654,  651,  651,  651,  654,  654,  983,
1738       341,  345,  346,  257,  346,  345,  345,  345,  345,  345,
1739       345,  345,  347,  345,  345,  345,  915,  345,  349,  345,
1740
1741       350,  345,  354,  257,  354,  354,  257,  354,  257,  257,
1742       257, 1805,  257,  257,  257,  354,  257,  354,  364,  655,
1743      1010,  364,  655, 1011,  365,  842,  345,  345,  365,  768,
1744      1806,  366,  651,  651,  651,  654, 3259,  351,  654,  651,
1745       651,  651,  651,  651,  651, 1814,  352,  345,  346,  257,
1746       346,  345,  345,  345,  345,  345,  345,  345,  347,  345,
1747       345,  345,  974,  345,  349,  345,  350,  345,  354,  257,
1748       354,  257,  257,  257,  257,  257,  257,  689,  354,  257,
1749       354,  354,  257,  354,  366,  777,  983,  367,  736,  914,
1750       367, 1817,  345,  345,  364,  655, 1818,  364,  354,  257,
1751
1752       354, 1821,  781,  351,  354,  257,  354,  651,  651,  651,
1753       880,  654,  352,  984,  368,  651,  651,  651,  727, 1823,
1754       368,  369,  370,  257,  370,  369,  369,  369,  369,  369,
1755       369,  369,  371,  369,  369,  369,  974,  369,  373,  369,
1756       374,  369,  380,  257,  380,  380,  257,  380,  257,  257,
1757       257, 1018,  257,  257,  257, 1019,  745,  655,  381, 1134,
1758       984,  381,  689, 1463,  357, 3259,  369,  369,  357,  655,
1759       655,  375,  734,  654,  889,  686,  787,  376,  651,  651,
1760       651,  377,  651,  651,  651,  654,  654,  378,  369,  370,
1761       257,  370,  369,  369,  369,  369,  369,  369,  369,  371,
1762
1763       369,  369,  369,  673,  369,  373,  369,  374,  369,  380,
1764       257,  380,  380,  257,  380,  380,  257,  380,  889,  380,
1765       257,  380,  651,  651,  651,  381,  736,  800,  381,  655,
1766       655,  382, 1134,  369,  369,  382,  803,  655,  375,  801,
1767       802,  651,  651,  651,  376,  654,  654, 1825,  377,  651,
1768       651,  651, 1669,  654,  378,  383,  384,  257,  384,  383,
1769       383,  383,  383,  383,  383,  383,  385,  383,  383,  383,
1770       689,  383,  387,  383,  388,  383,  393,  257,  393,  393,
1771       257,  393,  257,  257,  257,  933,  257,  257,  257,  651,
1772       651,  651,  394,  655,  655,  394,  655, 1826,  357,  929,
1773
1774       383,  383,  357,  813, 1828,  389,  651,  651,  651,  654,
1775       654,  390,  654,  651,  651,  651,  651,  651,  651,  651,
1776       651,  651,  391,  383,  384,  257,  384,  383,  383,  383,
1777       383,  383,  383,  383,  385,  383,  383,  383, 1829,  383,
1778       387,  383,  388,  383,  393,  257,  393,  393,  257,  393,
1779       393,  257,  393,  933,  393,  257,  393, 1830,  655, 1487,
1780       394, 1835,  655,  394,  655,  823,  395,  980,  383,  383,
1781       395,  828, 1488,  389,  654,  651,  651,  651,  654,  390,
1782       654,  651,  651,  651,  651,  651,  651,  651,  651,  651,
1783       391,  396,  397,  257,  397,  396,  396,  396,  396,  396,
1784
1785       396,  396,  398,  396,  396,  396, 1838,  396,  400,  396,
1786       401,  396,  405,  257,  405,  405,  257,  405,  416,  257,
1787       416, 1839,  416,  257,  416,  430,  257,  430,  406,  655,
1788       655,  406,  655, 1840,  417,  856,  396,  396,  417,  834,
1789      1842,  431,  651,  651,  651,  654,  654,  402,  654,  651,
1790       651,  651,  403,  396,  397,  257,  397,  396,  396,  396,
1791       396,  396,  396,  396,  398,  396,  396,  396, 1845,  396,
1792       400,  396,  401,  396,  430,  257,  430,  257,  257,  257,
1793       257,  257,  257,  849,  430,  257,  430,  430,  257,  430,
1794       431,  690, 1846,  432, 1848, 1852,  432,  655,  396,  396,
1795
1796       431, 1853, 1854,  431, 1856,  848,  651,  651,  651,  402,
1797       651,  651,  651,  654,  403,  407,  408,  257,  408,  407,
1798       407,  407,  407,  407,  407,  407,  409,  407,  407,  407,
1799      1672,  407,  411,  407,  412,  407,  430,  257,  430,  430,
1800       257,  430,  442,  257,  442,  933,  442,  257,  442,  454,
1801       257,  454,  433,  849, 1867,  433,  655,  689,  443,  985,
1802       407,  407,  443,  861,  655,  455,  651,  651,  651,  651,
1803       651,  651,  654,  651,  651,  651,  413,  651,  651,  651,
1804       654, 1868,  414,  407,  408,  257,  408,  407,  407,  407,
1805       407,  407,  407,  407,  409,  407,  407,  407, 1869,  407,
1806
1807       411,  407,  412,  407,  454,  257,  454,  471,  257,  471,
1808       471,  257,  471, 1871,  486,  257,  486,  486,  257,  486,
1809       455, 1134,  655,  472, 1872, 1873,  472,  655,  407,  407,
1810       487,  916,  655,  487,  651,  651,  651,  866,  654,  651,
1811       651,  651,  917,  654,  413,  918, 1864,  872,  654, 1874,
1812       414,  418,  419,  257,  419,  418,  418,  418,  418,  418,
1813       418,  418,  420,  418,  418,  418, 1875,  418,  422,  418,
1814       423,  418,  502,  257,  502,  502,  257,  502,  513,  257,
1815       513, 1876,  513,  257,  513,  849,  655, 1877,  503, 1878,
1816      1879,  503, 1880,  690,  514,  849,  418,  418,  514,  424,
1817
1818       655,  425,  654,  690,  651,  651,  651,  426,  651,  651,
1819       651,  651,  651,  651,  427,  880,  654,  428,  418,  419,
1820       257,  419,  418,  418,  418,  418,  418,  418,  418,  420,
1821       418,  418,  418, 1882,  418,  422,  418,  423,  418,  525,
1822       257,  525,  525,  257,  525,  538,  257,  538,  916,  538,
1823       257,  538,  881, 1883, 1884,  526, 1134, 1885,  526,  917,
1824      1499,  539,  932,  418,  418,  539,  424,  736,  425,  651,
1825       651,  651, 1136, 1488,  426,  651,  651,  651,  651,  651,
1826       651,  427, 1888, 1891,  428,  434,  435,  257,  435,  434,
1827       434,  434,  434,  434,  434,  434,  436,  434,  434,  434,
1828
1829      1892,  434,  438,  434,  439,  434,  257,  257,  257,  257,
1830       257,  257,  538,  257,  538,  933,  538,  257,  538,  538,
1831       257,  538,  357, 1893, 1894,  357,  655,  655,  539,  986,
1832       434,  434,  539,  885,  894,  540,  651,  651,  651,  651,
1833       651,  651,  654,  654, 1895, 1896,  440,  434,  435,  257,
1834       435,  434,  434,  434,  434,  434,  434,  434,  436,  434,
1835       434,  434, 1900,  434,  438,  434,  439,  434,  538,  257,
1836       538,  550,  257,  550,  550,  257,  550, 1901,  257,  257,
1837       257,  257,  257,  257,  540, 1903, 1904,  551,  925, 1905,
1838       551, 1907,  434,  434,  552,  926, 1920,  552,  651,  651,
1839
1840       651,  927,  900,  900,  900, 1151, 1151, 1151,  440,  444,
1841       445,  257,  445,  444,  444,  444,  444,  444,  444,  444,
1842       446,  444,  444,  444, 1921,  444,  448,  444,  449,  444,
1843       550,  257,  550,  550,  257,  550,  550,  257,  550,  935,
1844       550,  257,  550,  564,  257,  564,  551, 1922, 1923,  551,
1845       936,  938,  553,  918,  444,  444,  553,  935,  926,  565,
1846       450,  901,  938,  925,  939,  451, 1924, 1927,  936,  926,
1847       926,  932, 1479, 1479, 1479,  927,  939,  452,  444,  445,
1848       257,  445,  444,  444,  444,  444,  444,  444,  444,  446,
1849       444,  444,  444, 1928,  444,  448,  444,  449,  444,  564,
1850
1851       257,  564,  257,  257,  257,  257,  257,  257, 1929,  564,
1852       257,  564,  564,  257,  564,  565, 1930, 1935,  552,  925,
1853       938,  552, 1943,  444,  444,  565,  926,  926,  565,  450,
1854       916, 1944,  979,  979,  451,  900,  900,  900, 1951, 1138,
1855      1955,  936, 1957, 1963,  932, 1969,  452,  456,  457,  257,
1856       457,  456,  456,  456,  456,  456,  456,  456,  458,  456,
1857       456,  456,  459,  456,  460,  456,  461,  456,  459,  459,
1858       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
1859       459,  459,  459,  459,  459,  459,  459,  459,  459,  459,
1860       459,  459,  456,  456,  459,  462,  463,  464,  459,  459,
1861
1862       459,  459,  459,  465,  459,  459,  466,  459,  459,  459,
1863       467,  459,  468,  469,  459,  459,  459,  459,  459,  459,
1864       459,  473,  474,  257,  474,  473,  473,  473,  473,  473,
1865       473,  473,  475,  473,  473,  473, 1970,  473,  477,  473,
1866       478,  473,  564,  257,  564,  564,  257,  564,  576,  257,
1867       576, 1971,  576,  257,  576,  587,  257,  587,  566, 1304,
1868      1972,  566, 1499, 1985,  577, 1991,  473,  473,  577, 1305,
1869       479,  588, 1151, 1151, 1151, 1537, 1306,  480, 1995, 1998,
1870       481, 1174, 1174, 1174,  482, 2000,  483,  484,  473,  474,
1871       257,  474,  473,  473,  473,  473,  473,  473,  473,  475,
1872
1873       473,  473,  473, 2001,  473,  477,  473,  478,  473,  587,
1874       257,  587,  257,  257,  257,  257,  257,  257, 2003,  587,
1875       257,  587,  587,  257,  587,  588, 2004, 2005,  552, 2009,
1876      2012,  552, 2014,  473,  473,  588, 1152,  479,  588, 1187,
1877      1187, 1187, 2021, 1188,  480, 1152, 1189,  481, 1174, 1174,
1878      1174,  482, 2029,  483,  484,  488,  489,  257,  489,  488,
1879       488,  488,  488,  488,  488,  488,  490,  488,  488,  488,
1880      2030,  488,  492,  488,  493,  488,  587,  257,  587,  587,
1881       257,  587,  600,  257,  600, 2031,  600,  257,  600,  945,
1882       945,  945,  589, 2032, 2034,  589, 1134, 2048,  601, 2052,
1883
1884       488,  488,  601,  494,  495,  496,  946, 2053, 1197, 1197,
1885      1197,  497, 1198, 2045,  498, 1199, 2054, 2057,  499, 1672,
1886      2058,  500,  488,  489,  257,  489,  488,  488,  488,  488,
1887       488,  488,  488,  490,  488,  488,  488, 2060,  488,  492,
1888       488,  493,  488,  257,  257,  257,  257,  257,  257,  600,
1889       257,  600, 2061,  600,  257,  600,  953,  953,  953,  552,
1890      2062, 2046,  552, 2063, 2055,  601, 2064,  488,  488,  601,
1891       494,  495,  496,  954, 2065, 1219, 1219, 1219,  497, 1220,
1892      2056,  498, 1221, 2068, 2069,  499, 1672, 2072,  500,  504,
1893       505,  257,  505,  504,  504,  504,  504,  504,  504,  504,
1894
1895       506,  504,  504,  504, 2073,  504,  508,  504,  509,  504,
1896       600,  257,  600,  600,  257,  600,  615,  257,  615, 2047,
1897       615,  257,  615,  968,  968,  968,  602, 2074, 2075,  602,
1898      2076, 2078,  616, 2079,  504,  504,  616, 2082, 2085,  510,
1899       969, 1534, 1534, 1534, 2089,  511,  504,  505,  257,  505,
1900       504,  504,  504,  504,  504,  504,  504,  506,  504,  504,
1901       504, 2090,  504,  508,  504,  509,  504,  257,  257,  257,
1902       257,  257,  257,  615,  257,  615, 2091,  615,  257,  615,
1903       988,  988,  988,  617, 2092, 2093,  617, 2094, 2095,  616,
1904      2098,  504,  504,  616, 2102, 2103,  510,  989, 1479, 1479,
1905
1906      1479, 2106,  511,  515,  516,  257,  516,  515,  515,  515,
1907       515,  515,  515,  515,  517,  515,  515,  515, 2108,  515,
1908       519,  515,  520,  515,  615,  257,  615,  615,  257,  615,
1909       627,  257,  627, 2096,  627,  257,  627,  637,  257,  637,
1910       618, 2097, 2104,  618, 2104, 2055,  628, 2124,  515,  515,
1911       628, 2125,  521,  638, 1151, 1151, 1151, 2126, 2105,  522,
1912      2056, 2105,  523,  515,  516,  257,  516,  515,  515,  515,
1913       515,  515,  515,  515,  517,  515,  515,  515, 2127,  515,
1914       519,  515,  520,  515,  637,  257,  637,  257,  257,  257,
1915       257,  257,  257, 2128,  637,  257,  637,  637,  257,  637,
1916
1917       638, 2129, 2131,  357, 2135, 2141,  357, 2142,  515,  515,
1918       638, 2143,  521,  638, 1174, 1174, 1174, 2157, 1227,  522,
1919      2161, 2162,  523,  527,  528,  257,  528,  527,  527,  527,
1920       527,  527,  527,  527,  529,  527,  527,  527, 2163,  527,
1921       531,  527,  532,  527,  637,  257,  637,  637,  257,  637,
1922       649,  257,  649, 2165,  649,  257,  649,  995,  995,  995,
1923       639, 2169, 2173,  639, 2174, 2175,  650,  727,  527,  527,
1924       650, 2176,  533, 3259,  996, 2177, 2180,  737, 1227,  534,
1925      2187, 2189,  535,  686, 2199, 2200,  686, 2201, 2202,  536,
1926       527,  528,  257,  528,  527,  527,  527,  527,  527,  527,
1927
1928       527,  529,  527,  527,  527,  738,  527,  531,  527,  532,
1929       527, 2204,  687, 2210,  741, 1000, 1000, 1000,  688,  689,
1930      1012, 1012, 1012,  683, 2216,  689, 1024, 1024, 1024,  690,
1931       742, 2217, 1001, 2218, 2219,  527,  527, 1013, 2222,  533,
1932      1241, 1241, 1241, 1025, 1242, 2224,  534, 1243, 2225,  535,
1933      1686, 1686, 1686, 1689, 1689, 1689,  536,  541,  542,  257,
1934       542,  541,  541,  541,  541,  541,  541,  541,  543,  541,
1935       541,  541, 2226,  541,  545,  541,  546,  541, 1026, 1026,
1936      1026, 1032, 1032, 1032, 1035, 1035, 1035, 1047, 1047, 1047,
1937      1049, 1049, 1049, 1672, 1134, 1027, 1687, 2230, 1033, 1690,
1938
1939      2207, 1036,  541,  541, 1048, 2235, 2237, 1050,  547, 1251,
1940      1251, 1251, 2238, 1252, 2239, 2243, 1253, 1693, 1693, 1693,
1941      1696, 1696, 1696,  548,  541,  542,  257,  542,  541,  541,
1942       541,  541,  541,  541,  541,  543,  541,  541,  541, 2209,
1943       541,  545,  541,  546,  541, 1061, 1061, 1061, 1069, 1069,
1944      1069, 1074, 1074, 1074, 1080, 1080, 1080, 1100, 1100, 1100,
1945      2249, 2250, 1062, 2251, 2252, 1070, 2253, 2254, 1075,  541,
1946       541, 1081, 2255, 2256, 1101,  547, 1259, 1259, 1259, 2257,
1947      1260, 2258, 2264, 1261, 1706, 1706, 1706, 1534, 1534, 1534,
1948       548,  554,  555,  257,  555,  554,  554,  554,  554,  554,
1949
1950       554,  554,  556,  554,  554,  554, 2265,  554,  558,  554,
1951       559,  554, 1124, 1124, 1124, 1128, 1128, 1128, 1672, 2266,
1952      1147, 1147, 1147, 1147, 1147, 1147, 1182, 1182, 1182, 1125,
1953      2267, 2279, 1129, 1182, 1182, 1182,  554,  554, 1149, 2280,
1954      2285, 1149,  560, 2286, 1184,  561, 1276, 1276, 1276, 2208,
1955      1277, 1184, 2288, 1278, 1743, 1743, 1743,  562,  554,  555,
1956       257,  555,  554,  554,  554,  554,  554,  554,  554,  556,
1957       554,  554,  554, 2289,  554,  558,  554,  559,  554, 2293,
1958      2294, 1150,  945,  945,  945, 2295, 2301, 1192, 1192, 1192,
1959      1192, 1192, 1192, 1185,  953,  953,  953, 2302, 2281,  946,
1960
1961      1200, 1200, 1200,  554,  554, 1194, 2282, 2303, 1194,  560,
1962      2304,  954,  561, 2307, 1293, 1293, 1293, 1201, 1294, 2312,
1963      2316, 1295, 2317, 2322,  562,  567,  568,  257,  568,  567,
1964       567,  567,  567,  567,  567,  567,  569,  567,  567,  567,
1965      2323,  567,  571,  567,  572,  567, 1203, 1203, 1203, 1208,
1966      1208, 1208, 2324, 2325, 1195, 2327, 1208, 1208, 1208, 1215,
1967      1215, 1215, 2337, 1204, 1740, 1740, 1740, 1210, 2348, 2349,
1968       567,  567, 2350, 2354, 1210, 2355,  573, 1217, 1686, 1686,
1969      1686,  574,  567,  568,  257,  568,  567,  567,  567,  567,
1970       567,  567,  567,  569,  567,  567,  567, 2356,  567,  571,
1971
1972       567,  572,  567, 1211, 1215, 1215, 1215,  968,  968,  968,
1973      1741, 1223, 1223, 1223,  988,  988,  988, 1223, 1223, 1223,
1974      1908, 2359, 1217, 2363,  969, 2364, 1909,  567,  567, 1225,
1975      1910,  989, 2365,  573, 1911, 1225, 1672, 2366,  574,  578,
1976       579,  257,  579,  578,  578,  578,  578,  578,  578,  578,
1977       580,  578,  578,  578, 1226,  578,  582,  578,  583,  578,
1978      1246, 1246, 1246, 1246, 1246, 1246, 1912, 2367, 1218,  995,
1979       995,  995, 1913, 1255, 1255, 1255, 1914, 2368, 1248, 2342,
1980      1915, 1248, 2369, 2370,  578,  578,  996, 1000, 1000, 1000,
1981       584, 1257, 1296, 1296, 1296, 2371, 1297, 2372, 2387, 1298,
1982
1983      2388, 1742, 1742, 1742, 1001,  585,  578,  579,  257,  579,
1984       578,  578,  578,  578,  578,  578,  578,  580,  578,  578,
1985       578, 2389,  578,  582,  578,  583,  578, 2390, 2395, 1249,
1986      1255, 1255, 1255, 2396, 2397, 1263, 1263, 1263, 1263, 1263,
1987      1263, 1269, 1269, 1269, 1269, 1269, 1269, 1690, 1257, 2398,
1988      2283,  578,  578, 1265, 2399, 2400, 1265,  584, 2284, 1271,
1989      2318, 2320, 1271, 1307, 1307, 1307, 2401, 1308, 2319, 2321,
1990      1309, 2404,  585,  590,  591,  257,  591,  590,  590,  590,
1991       590,  590,  590,  590,  592,  590,  590,  590, 1672,  590,
1992       594,  590,  595,  590, 2405, 2408, 1258, 2409, 2414, 1266,
1993
1994      1012, 1012, 1012, 1281, 1281, 1281, 1024, 1024, 1024, 1272,
1995      1281, 1281, 1281, 1288, 1288, 1288, 2415, 1013,  590,  590,
1996      2416, 1283, 2417, 1025,  596, 2426, 2427,  597, 1283, 2428,
1997      2429, 1290, 1689, 1689, 1689, 2343, 1689, 1689, 1689,  598,
1998       590,  591,  257,  591,  590,  590,  590,  590,  590,  590,
1999       590,  592,  590,  590,  590, 2431,  590,  594,  590,  595,
2000       590, 1026, 1026, 1026, 2433, 1672, 1288, 1288, 1288, 2457,
2001      2458, 1284, 1299, 1299, 1299, 1299, 1299, 1299, 1027, 1032,
2002      1032, 1032, 1837, 2460, 1290,  590,  590, 1035, 1035, 1035,
2003      1301,  596, 2461, 1301,  597, 2462, 1033, 2453, 1311, 1311,
2004
2005      1311, 2463, 1312, 2467, 1036, 1313,  598,  603,  604,  257,
2006       604,  603,  603,  603,  603,  603,  603,  603,  605,  603,
2007       603,  603, 1672,  603,  607,  603,  608,  603, 1291, 1314,
2008      1314, 1314, 1323, 1323, 1323, 2468, 1302, 1323, 1323, 1323,
2009      1047, 1047, 1047, 1339, 1339, 1339, 1315, 1327, 1327, 1327,
2010      1325, 1328,  603,  603, 1329, 1325, 2469, 1048, 2470, 2454,
2011       609, 1341,  610, 2471, 2472,  611, 1881, 1881, 1881,  612,
2012      1693, 1693, 1693,  613,  603,  604,  257,  604,  603,  603,
2013       603,  603,  603,  603,  603,  605,  603,  603,  603, 2473,
2014       603,  607,  603,  608,  603, 1326, 1049, 1049, 1049, 1330,
2015
2016      1330, 1330, 2474, 1331, 2475, 2476, 1332, 1333, 1333, 1333,
2017      1354, 1354, 1354, 1050, 3259, 3259, 3259, 2477, 2479,  603,
2018       603, 3259, 3259, 3259, 1334, 2480, 2483,  609, 1356,  610,
2019      2481, 3259,  611, 1696, 1696, 1696,  612, 2484, 3259, 2482,
2020       613,  619,  620,  257,  620,  619,  619,  619,  619,  619,
2021       619,  619,  621,  619,  619,  619, 2485,  619,  623,  619,
2022       624,  619, 1339, 1339, 1339, 1335, 1061, 1061, 1061, 1706,
2023      1706, 1706, 2486, 1336, 3259, 3259, 3259, 3259, 3259, 3259,
2024      1341, 2487, 2490, 1062, 2488, 2491,  619,  619, 1347, 1347,
2025      1347, 3259, 1348, 2489, 3259, 1349, 1359, 1359, 1359, 2492,
2026
2027      1360, 2493, 2494, 1361, 2496, 1886, 1886, 1886, 2500, 1342,
2028       625,  619,  620,  257,  620,  619,  619,  619,  619,  619,
2029       619,  619,  621,  619,  619,  619, 1338,  619,  623,  619,
2030       624,  619, 1337, 1350, 1350, 1350, 1069, 1069, 1069, 2501,
2031      1362, 1362, 1362, 2502, 2503, 1354, 1354, 1354, 2507, 2508,
2032      1351, 2512, 2515, 1070, 2516, 2519,  619,  619, 1364, 1362,
2033      1362, 1362, 2531, 1356, 1367, 1367, 1367, 2532, 1368, 1887,
2034      2535, 1369, 1376, 1376, 1376, 2536, 1377, 1364, 1134, 1378,
2035       625,  629,  630,  257,  630,  629,  629,  629,  629,  629,
2036       629,  629,  631,  629,  629,  629, 1357,  629,  633,  629,
2037
2038       634,  629, 1074, 1074, 1074, 1371, 1371, 1371, 1080, 1080,
2039      1080, 2556, 1371, 1371, 1371, 1382, 1382, 1382, 2553, 1075,
2040      1365, 2557, 2558, 1373, 1672, 1081,  629,  629, 2559, 2560,
2041      1373, 2569, 2570, 1384, 1889, 1889, 1889,  635,  629,  630,
2042       257,  630,  629,  629,  629,  629,  629,  629,  629,  631,
2043       629,  629,  629, 2571,  629,  633,  629,  634,  629, 1374,
2044      2572, 1382, 1382, 1382, 1386, 1386, 1386, 2555, 1388, 1388,
2045      1388, 3259, 3259, 3259, 1391, 1391, 1391, 2573, 2574, 1384,
2046      1890, 1387, 2575,  629,  629, 1389, 2576, 2577, 3259, 1740,
2047      1740, 1740, 1393, 2578,  635,  640,  641,  257,  641,  640,
2048
2049       640,  640,  640,  640,  640,  640,  642,  640,  640,  640,
2050      2579,  640,  644,  640,  645,  640, 1385, 2581, 2582, 1391,
2051      1391, 1391, 1396, 1396, 1396, 1742, 1742, 1742, 2583, 2584,
2052      1390, 1400, 1400, 1400, 1403, 1403, 1403, 1393, 2585, 1397,
2053       640,  640, 3259, 3259, 3259, 3259, 3259, 3259, 1401, 1672,
2054      2586,  646, 1405, 1408, 1408, 1408, 2587, 1409, 2588, 3259,
2055      1410, 2589, 3259, 2590,  647,  640,  641,  257,  641,  640,
2056       640,  640,  640,  640,  640,  640,  642,  640,  640,  640,
2057      1394,  640,  644,  640,  645,  640, 2554, 1403, 1403, 1403,
2058      2591, 2592, 1398, 2593, 2594, 1100, 1100, 1100, 1411, 1411,
2059
2060      1411, 1411, 1411, 1411, 1402, 1405, 2595, 1399, 2596, 2597,
2061       640,  640, 1101, 1415, 1415, 1415, 1413, 2599, 2607, 1413,
2062      2608,  646, 2609, 2613, 1406, 2648, 1417, 1417, 1417, 2650,
2063      1416, 1419, 1419, 1419,  647,  655, 1419, 1419, 1419, 1429,
2064      1429, 1429,  670, 1418, 1423, 1423, 1423, 2651, 2652, 1421,
2065      1672,  654,  671, 1672, 1421, 1134, 1414, 1431, 3259, 3259,
2066      3259, 1424, 1743, 1743, 1743, 1427, 1427, 1427, 2656, 2657,
2067      1429, 1429, 1429, 2631, 2660, 3259, 1124, 1124, 1124,  672,
2068       673,  674, 1428, 2632, 2645,  675,  676,  677, 1431, 2633,
2069       678,  679, 2646, 1125,  680, 2647,  681,  682,  683,  655,
2070
2071      1438, 1438, 1438, 1438, 1438, 1438,  727, 1422, 1425, 1444,
2072      1444, 1444, 1444, 1444, 1444,  654,  728, 2661, 1440, 2563,
2073      2658, 1440, 2664, 1426, 1448, 1448, 1448, 1446, 1449, 2564,
2074      1446, 1450, 2565, 2659, 1451, 1451, 1451, 2665, 1451, 1451,
2075      1451, 1432, 2666,  672,  729,  684, 1128, 1128, 1128,  730,
2076       731,  677, 1453, 2667,  732,  679, 1453, 2662,  733, 2634,
2077       734,  735,  683, 1129, 1455, 1455, 1455, 1441, 1456, 2635,
2078      2663, 1457, 1459, 1459, 1459, 2636, 1447, 1459, 1459, 1459,
2079      1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 2668,
2080      1461, 1501, 1501, 1501, 2669, 1461, 2670, 2671, 1149, 1454,
2081
2082      2672, 1149, 2674, 2675, 1149, 1182, 1182, 1182, 1502, 1182,
2083      1182, 1182, 1182, 1182, 1182, 1504, 1504, 1504, 1187, 1187,
2084      1187, 2676, 1188, 1184, 2677, 1189, 2678, 1184, 2679, 2680,
2085      1184, 2681, 1505, 1471, 3259, 3259, 3259, 1192, 1192, 1192,
2086      2682, 1462, 1192, 1192, 1192, 1192, 1192, 1192, 1200, 1200,
2087      1200, 3259, 1197, 1197, 1197, 1194, 1198, 2683, 2684, 1199,
2088      1194, 1503, 2685, 1194, 2686, 1201, 1510, 1510, 1510, 2687,
2089      1511, 2688, 2690, 1512, 1513, 1513, 1513, 1203, 1203, 1203,
2090      1515, 1515, 1515, 2698, 1516, 2699, 2700, 1517, 1519, 1519,
2091      1519, 1514, 1508, 2701, 1204, 1506, 1208, 1208, 1208, 1208,
2092
2093      1208, 1208, 1208, 1208, 1208, 1520, 1524, 1524, 1524, 1215,
2094      1215, 1215, 2718, 2719, 1210, 2720, 2721, 1210, 2722, 2723,
2095      1210, 2726, 2734, 1525, 1215, 1215, 1215, 1217, 1215, 1215,
2096      1215, 1219, 1219, 1219, 2727, 1220, 2736, 2737, 1221, 1223,
2097      1223, 1223, 1217, 1223, 1223, 1223, 1217, 1529, 1529, 1529,
2098      2566, 1241, 1241, 1241, 1672, 1242, 2738, 1225, 1243, 1134,
2099      2567, 1225, 1522, 2568, 2739, 1530, 1546, 1546, 1546, 1246,
2100      1246, 1246, 1246, 1246, 1246, 1527, 1246, 1246, 1246, 1255,
2101      1255, 1255, 2728, 1547, 1251, 1251, 1251, 1248, 1252, 2731,
2102      1248, 1253, 2740, 2741, 1248, 2729, 2742, 1257, 1255, 1255,
2103
2104      1255, 1255, 1255, 1255, 1259, 1259, 1259, 2730, 1260, 2743,
2105      2744, 1261, 1552, 1552, 1552, 2745, 1257, 2748, 2749, 1257,
2106      1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1553,
2107      1555, 1555, 1555, 3259, 3259, 3259, 2750, 1548, 1265, 2751,
2108      2752, 1265, 2753, 2754, 1265, 2755, 2757, 1556, 2758, 2759,
2109      3259, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269,
2110      2760, 1557, 1551, 1561, 1561, 1561, 1276, 1276, 1276, 1271,
2111      1277, 2761, 1271, 1278, 2762, 1271, 1281, 1281, 1281, 2763,
2112      1562, 1281, 1281, 1281, 1281, 1281, 1281, 1568, 1568, 1568,
2113      1288, 1288, 1288, 1554, 1283, 1288, 1288, 1288, 2764, 1283,
2114
2115      2765, 2766, 1283, 2767, 1569, 1571, 1571, 1571, 1290, 1288,
2116      1288, 1288, 2768, 1290, 1293, 1293, 1293, 2769, 1294, 2770,
2117      2771, 1295, 1572, 1558, 1296, 1296, 1296, 1290, 1297, 2777,
2118      2778, 1298, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
2119      1299, 1307, 1307, 1307, 2779, 1308, 2780, 2781, 1309, 1565,
2120      1301, 2795, 2796, 1301, 2797, 2787, 1301, 1578, 1578, 1578,
2121      1311, 1311, 1311, 2798, 1312, 2788, 2799, 1313, 1314, 1314,
2122      1314, 1580, 1580, 1580, 1579, 1581, 1570, 2800, 1582, 1323,
2123      1323, 1323, 1323, 1323, 1323, 1315, 1323, 1323, 1323, 1327,
2124      1327, 1327, 2789, 1328, 2804, 2805, 1329, 1325, 2791, 2806,
2125
2126      1325, 2793, 2790, 1573, 1325, 1330, 1330, 1330, 2792, 1331,
2127      2807, 2794, 1332, 1333, 1333, 1333, 1591, 1591, 1591, 2817,
2128      1592, 1134, 2818, 1593, 1339, 1339, 1339, 1339, 1339, 1339,
2129      1334, 1339, 1339, 1339, 1347, 1347, 1347, 2819, 1348, 2820,
2130      2821, 1349, 1341, 2822, 2823, 1341, 1350, 1350, 1350, 1341,
2131      1603, 1603, 1603, 1590, 1604, 2808, 2824, 1605, 1354, 1354,
2132      1354, 2828, 2829, 1351, 1354, 1354, 1354, 1354, 1354, 1354,
2133      1359, 1359, 1359, 2830, 1360, 2831, 1356, 1361, 2832, 1598,
2134      2833, 2835, 1356, 2836, 2837, 1356, 1362, 1362, 1362, 1362,
2135      1362, 1362, 1362, 1362, 1362, 1367, 1367, 1367, 2838, 1368,
2136
2137      2839, 2840, 1369, 2841, 1364, 2842, 2843, 1364, 2844, 2848,
2138      1364, 1371, 1371, 1371, 1371, 1371, 1371, 2849, 1608, 1371,
2139      1371, 1371, 2850, 1376, 1376, 1376, 2853, 1377, 2858, 1373,
2140      1378, 2859, 1373, 1382, 1382, 1382, 2860, 1373, 1382, 1382,
2141      1382, 2861, 1382, 1382, 1382, 1386, 1386, 1386, 1619, 1619,
2142      1619, 1384, 1620, 2862, 2863, 1621, 1384, 2864, 2865, 1610,
2143      1384, 2866, 1387, 1388, 1388, 1388, 2867, 2868, 1613, 1622,
2144      1622, 1622, 2869, 1623, 2871, 2872, 1624, 1391, 1391, 1391,
2145      1389, 1391, 1391, 1391, 2873, 1391, 1391, 1391, 1396, 1396,
2146      1396, 2874, 1400, 1400, 1400, 1393, 1897, 1897, 1897, 1393,
2147
2148      2881, 1134, 1618, 1393, 2882, 1397, 1628, 1628, 1628, 1401,
2149      1629, 2883, 2884, 1630, 1633, 1633, 1633, 2885, 1634, 2886,
2150      2887, 1635, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403,
2151      1403, 1408, 1408, 1408, 2888, 1409, 2889, 2890, 1410, 2891,
2152      1405, 2892, 1898, 1405, 2875, 2893, 1405, 1411, 1411, 1411,
2153      2894, 2897, 1626, 1411, 1411, 1411, 1411, 1411, 1411, 1415,
2154      1415, 1415, 1640, 1640, 1640, 1413, 1641, 2898, 2899, 1642,
2155      2900, 1413, 2901, 2902, 1413, 2903, 1416, 1417, 1417, 1417,
2156      1643, 1643, 1643, 2904, 1644, 2905, 2906, 1645, 1419, 1419,
2157      1419, 2907, 1637, 2911, 1418, 1419, 1419, 1419, 2918, 1419,
2158
2159      1419, 1419, 1423, 1423, 1423, 2919, 1421, 1647, 1647, 1647,
2160      2920, 1648, 2921, 1421, 1649, 2922, 1639, 1421, 2923, 1424,
2161      1427, 1427, 1427, 1652, 1652, 1652, 2924, 1653, 2925, 2926,
2162      1654, 1429, 1429, 1429, 1429, 1429, 1429, 1428, 1429, 1429,
2163      1429, 1657, 1657, 1657, 1438, 1438, 1438, 2927, 2928, 1431,
2164      2929, 2932, 1431, 1438, 1438, 1438, 1431, 2933, 1658, 2934,
2165      2935, 1646, 1440, 1438, 1438, 1438, 1444, 1444, 1444, 2938,
2166      2943, 1440, 1444, 1444, 1444, 1444, 1444, 1444, 1448, 1448,
2167      1448, 1440, 1449, 2939, 1446, 1450, 1451, 1451, 1451, 1134,
2168      1446, 2944, 2945, 1446, 1451, 1451, 1451, 1451, 1451, 1451,
2169
2170      1655, 1455, 1455, 1455, 1453, 1456, 2946, 2947, 1457, 1459,
2171      1459, 1459, 1453, 2948, 2938, 1453, 1459, 1459, 1459, 1459,
2172      1459, 1459, 2949, 2950, 1662, 2941, 2951, 1461, 1665, 1671,
2173      1671, 1671, 2952, 2953, 1461, 2936, 2954, 1461, 1147, 1147,
2174      1147, 1501, 1501, 1501, 1182, 1182, 1182, 1672, 1673, 2955,
2175      1504, 1504, 1504, 1529, 1529, 1529, 1149, 1666, 1502, 1709,
2176      1709, 1709, 1184, 1710, 2956, 2957, 1711, 1505, 1713, 1713,
2177      1713, 1530, 1714, 2958, 2959, 1715, 1192, 1192, 1192, 2960,
2178      1668, 1510, 1510, 1510, 2961, 1511, 2966, 2962, 1512, 1513,
2179      1513, 1513, 2971, 2964, 1194, 2972, 1720, 1720, 1720, 2963,
2180
2181      1721, 2967, 1712, 1722, 1678, 2965, 1514, 1515, 1515, 1515,
2182      2969, 1516, 2973, 2968, 1517, 1519, 1519, 1519, 2974, 1724,
2183      1724, 1724, 2970, 1725, 2975, 1718, 1726, 1208, 1208, 1208,
2184      2976, 1134, 1520, 1524, 1524, 1524, 1730, 1730, 1730, 2979,
2185      1731, 1672, 1673, 1732, 2979, 1210, 1733, 1733, 1733, 2982,
2186      1525, 1215, 1215, 1215, 1751, 1751, 1751, 1546, 1546, 1546,
2187      1753, 1753, 1753, 1734, 1754, 2983, 2984, 1755, 2985, 1217,
2188      2988, 1752, 2977, 2991, 1547, 2986, 2938, 1728, 1246, 1246,
2189      1246, 1255, 1255, 1255, 1552, 1552, 1552, 1760, 1760, 1760,
2190      2939, 1761, 2998, 2987, 1762, 3000, 1248, 3003, 2989, 1257,
2191
2192      1735, 1553, 1263, 1263, 1263, 1555, 1555, 1555, 1764, 1764,
2193      1764, 2999, 1765, 2990, 3008, 1766, 1269, 1269, 1269, 3001,
2194      1265, 2938, 1556, 1561, 1561, 1561, 1771, 1771, 1771, 3011,
2195      1772, 3012, 2941, 1773, 1271, 1774, 1774, 1774, 3002, 3013,
2196      1562, 3006, 1756, 2979, 3015, 1759, 1776, 1776, 1776, 1281,
2197      1281, 1281, 1775, 1568, 1568, 1568, 2979, 1782, 1782, 1782,
2198      3007, 1783, 1763, 1777, 1784, 3009, 3016, 1283, 3017, 3018,
2199      1569, 1785, 1785, 1785, 1571, 1571, 1571, 1768, 1787, 1787,
2200      1787, 3019, 1788, 3020, 3010, 1789, 1299, 1299, 1299, 1786,
2201      3021, 1572, 1778, 1792, 1792, 1792, 1578, 1578, 1578, 1796,
2202
2203      1796, 1796, 3022, 1797, 1301, 3023, 1798, 1580, 1580, 1580,
2204      1793, 1581, 3033, 1579, 1582, 1779, 1799, 1799, 1799, 1323,
2205      1323, 1323, 1591, 1591, 1591, 3034, 1592, 3035, 3036, 1593,
2206      1808, 1808, 1808, 1800, 3259, 3259, 3259, 1325, 3259, 3259,
2207      3259, 3259, 3259, 3259, 1339, 1339, 1339, 1809, 1815, 1815,
2208      1815, 3259, 1790, 3037, 3038, 3259, 3042, 3043, 3259, 1603,
2209      1603, 1603, 1341, 1604, 3044, 1816, 1605, 3045, 3046, 1819,
2210      1819, 1819, 1354, 1354, 1354, 1362, 1362, 1362, 1371, 1371,
2211      1371, 1831, 1831, 1831, 1807, 1811, 1820, 1382, 1382, 1382,
2212      1356, 3047, 3048, 1364, 3049, 3051, 1373, 3052, 1832, 1813,
2213
2214      3053, 1391, 1391, 1391, 1810, 1384, 1619, 1619, 1619, 3054,
2215      1620, 1812, 3055, 1621, 1622, 1622, 1622, 3060, 1623, 1393,
2216      3061, 1624, 1628, 1628, 1628, 3062, 1629, 1833, 3063, 1630,
2217      1633, 1633, 1633, 3064, 1634, 1827, 1822, 1635, 1403, 1403,
2218      1403, 1824, 3056, 3065, 1834, 1411, 1411, 1411, 1640, 1640,
2219      1640, 3066, 1641, 3058, 3057, 1642, 1405, 1643, 1643, 1643,
2220      3067, 1644, 3068, 1413, 1645, 3059, 3069, 1836, 1419, 1419,
2221      1419, 1647, 1647, 1647, 3070, 1648, 3071, 3072, 1649, 3073,
2222      1652, 1652, 1652, 3075, 1653, 3076, 1421, 1654, 1429, 1429,
2223      1429, 1657, 1657, 1657, 1849, 1849, 1849, 3077, 1850, 1841,
2224
2225      1134, 1851, 1843, 1438, 1438, 1438, 1431, 3078, 1658, 1857,
2226      1857, 1857, 1444, 1444, 1444, 1844, 1451, 1451, 1451, 3079,
2227      3080, 1440, 1861, 1861, 1861, 3074, 1858, 1459, 1459, 1459,
2228      1446, 1671, 1671, 1671, 1453, 1847, 1147, 1147, 1147, 1862,
2229      1709, 1709, 1709, 3081, 1710, 1461, 3082, 1711, 3083, 1672,
2230      3084, 3085, 1855, 3086, 1149, 1182, 1182, 1182, 1713, 1713,
2231      1713, 3087, 1714, 3088, 3089, 1715, 3090, 3091, 1860, 1192,
2232      1192, 1192, 3092, 1184, 1720, 1720, 1720, 3093, 1721, 1859,
2233      3094, 1722, 1865, 1208, 1208, 1208, 1134, 1194, 1870, 1863,
2234      1724, 1724, 1724, 3096, 1725, 3097, 3098, 1726, 3099, 1866,
2235
2236      3100, 1210, 1730, 1730, 1730, 3095, 1731, 3101, 3102, 1732,
2237      1733, 1733, 1733, 3103, 1916, 1916, 1916, 3104, 1917, 3105,
2238      1902, 1918, 1899, 1215, 1215, 1215, 3106, 1734, 1925, 1925,
2239      1925, 1925, 1925, 1925, 1886, 1886, 1886, 1751, 1751, 1751,
2240      3107, 1217, 3108, 3109, 1906, 1931, 1931, 1931, 3110, 1932,
2241      3111, 3112, 1933, 3113, 1752, 1753, 1753, 1753, 1134, 1754,
2242      3115, 3116, 1755, 1246, 1246, 1246, 1936, 1936, 1936, 1255,
2243      1255, 1255, 3117, 3118, 1919, 1760, 1760, 1760, 3114, 1761,
2244      3119, 1248, 1762, 1937, 1263, 1263, 1263, 1257, 3120, 1764,
2245      1764, 1764, 1926, 1765, 3121, 1887, 1766, 3122, 1926, 1269,
2246
2247      1269, 1269, 1265, 1940, 1940, 1940, 3123, 1771, 1771, 1771,
2248      1934, 1772, 3124, 3125, 1773, 3126, 1938, 1271, 3127, 3128,
2249      1941, 1774, 1774, 1774, 1945, 1945, 1945, 3129, 1946, 3130,
2250      3131, 1947, 1776, 1776, 1776, 1948, 1948, 1948, 1775, 1949,
2251      3132, 3134, 1950, 1952, 1952, 1952, 1954, 1954, 1954, 1777,
2252      1939, 1782, 1782, 1782, 1134, 1783, 3135, 3136, 1784, 3137,
2253      3133, 1953, 3138, 1942, 1785, 1785, 1785, 1787, 1787, 1787,
2254      3139, 1788, 3140, 3141, 1789, 1299, 1299, 1299, 1792, 1792,
2255      1792, 3142, 1786, 1958, 1958, 1958, 3143, 1959, 3144, 3145,
2256      1960, 1134, 3147, 1301, 3148, 1793, 1961, 1961, 1961, 1796,
2257
2258      1796, 1796, 3149, 1797, 3150, 3146, 1798, 1799, 1799, 1799,
2259      1964, 1964, 1964, 1962, 1965, 3151, 3152, 1966, 1967, 1967,
2260      1967, 1956, 3153, 3154, 1800, 1973, 1973, 1973, 1323, 1323,
2261      1323, 1808, 1808, 1808, 3156, 1968, 1976, 1976, 1976, 3157,
2262      1977, 3158, 1974, 1978, 3159, 3160, 1325, 3161, 1809, 1979,
2263      1979, 1979, 3259, 3259, 3259, 1982, 1982, 1982, 1339, 1339,
2264      1339, 1815, 1815, 1815, 3162, 3163, 1980, 3166, 3167, 3259,
2265      3168, 3169, 1983, 1986, 1986, 1986, 1341, 1987, 1816, 3170,
2266      1988, 1989, 1989, 1989, 1819, 1819, 1819, 3171, 1992, 1992,
2267      1992, 3182, 1993, 3180, 1975, 1994, 1134, 1134, 1990, 1134,
2268
2269      3183, 1820, 1996, 1996, 1996, 1362, 1362, 1362, 1134, 1737,
2270      1981, 1371, 1371, 1371, 1831, 1831, 1831, 1134, 1984, 1736,
2271      1997, 3181, 1729, 1364, 1134, 1134, 2006, 2006, 2006, 1373,
2272      2007, 1832, 3172, 2008, 2010, 2010, 2010, 1391, 1391, 1391,
2273      2015, 2015, 2015, 2017, 2017, 2017, 3259, 3259, 3259, 1403,
2274      1403, 1403, 2011, 3173, 3184, 1393, 1999, 2016, 1134, 2002,
2275      2018, 1134, 1134, 3259, 1419, 1419, 1419, 1405, 1411, 1411,
2276      1411, 3186, 2024, 2024, 2024, 2026, 2026, 2026, 1429, 1429,
2277      1429, 1134, 1421, 1849, 1849, 1849, 1413, 1850, 2013, 2025,
2278      1851, 1134, 2027, 1438, 1438, 1438, 1431, 1134, 1857, 1857,
2279
2280      1857, 2035, 2035, 2035, 3185, 2036, 3174, 1134, 2037, 3175,
2281      2019, 1440, 1134, 3198, 2022, 1858, 2020, 1444, 1444, 1444,
2282      1451, 1451, 1451, 1861, 1861, 1861, 2040, 2040, 2040, 2023,
2283      2041, 1727, 1723, 2042, 1719, 1446, 1717, 1134, 1453, 3176,
2284      1862, 3178, 3192, 2028, 2033, 2043, 2043, 2043, 2049, 2049,
2285      2049, 1147, 1147, 1147, 2059, 2059, 2059, 1881, 1881, 1881,
2286      2066, 2066, 2066, 2044, 1134, 2050, 1886, 1886, 1886, 1149,
2287      2067, 2067, 2067, 1134, 3188, 2039, 2038, 1889, 1889, 1889,
2288      2070, 2070, 2070, 2071, 2071, 2071, 1897, 1897, 1897, 1182,
2289      1182, 1182, 2080, 2080, 2080, 1716, 2083, 2083, 2083, 1208,
2290
2291      1208, 1208, 2087, 2087, 2087, 1134, 1134, 1184, 3179, 1134,
2292      2081, 1708, 2051, 2084, 1916, 1916, 1916, 1210, 1917, 2088,
2293      3187, 1918, 1215, 1215, 1215, 2100, 2100, 2100, 1925, 1925,
2294      1925, 2107, 2107, 2107, 2109, 2109, 2109, 3199, 1134, 2077,
2295      1217, 3193, 2101, 1931, 1931, 1931, 3189, 1932, 1134, 1707,
2296      1933, 2110, 1246, 1246, 1246, 2112, 2112, 2112, 2086, 1936,
2297      1936, 1936, 2114, 2114, 2114, 1134, 2115, 1134, 2099, 2116,
2298      1248, 1134, 2113, 1255, 1255, 1255, 1937, 2118, 2118, 2118,
2299      1940, 1940, 1940, 2120, 2120, 2120, 3177, 2121, 1134, 3190,
2300      2122, 1257, 1269, 1269, 1269, 2119, 3232, 1941, 1134, 1945,
2301
2302      1945, 1945, 3196, 1946, 1134, 2111, 1947, 1948, 1948, 1948,
2303      1271, 1949, 3191, 3194, 1950, 1952, 1952, 1952, 1954, 1954,
2304      1954, 3200, 1299, 1299, 1299, 3197, 2117, 1958, 1958, 1958,
2305      1134, 1959, 1134, 1953, 1960, 1961, 1961, 1961, 3201, 2123,
2306      1301, 2132, 2132, 2132, 3195, 2133, 1134, 1134, 2134, 1964,
2307      1964, 1964, 1962, 1965, 1134, 1134, 1966, 1967, 1967, 1967,
2308      2136, 2136, 2136, 1134, 2137, 1705, 3204, 2138, 2139, 2139,
2309      2139, 1973, 1973, 1973, 1968, 2144, 2144, 2144, 1134, 2145,
2310      2130, 3202, 2146, 1134, 3224, 2140, 3214, 1134, 1974, 1323,
2311      1323, 1323, 1976, 1976, 1976, 1134, 1977, 3206, 3203, 1978,
2312
2313      1979, 1979, 1979, 1134, 2148, 2148, 2148, 1325, 2149, 1134,
2314      1134, 2150, 2151, 2151, 2151, 1704, 3256, 1980, 1982, 1982,
2315      1982, 2153, 2153, 2153, 3208, 2154, 3207, 1134, 2155, 2152,
2316      1339, 1339, 1339, 3209, 1134, 1983, 3212, 1986, 1986, 1986,
2317      2147, 1987, 3246, 3205, 1988, 1989, 1989, 1989, 1341, 2158,
2318      2158, 2158, 1134, 2159, 3215, 1703, 2160, 1992, 1992, 1992,
2319      1134, 1993, 1990, 1134, 1994, 1996, 1996, 1996, 1362, 1362,
2320      1362, 2166, 2166, 2166, 1371, 1371, 1371, 2170, 2170, 2170,
2321      3220, 2156, 1134, 1997, 1134, 1134, 1364, 3210, 2167, 2006,
2322      2006, 2006, 1373, 2007, 2171, 3211, 2008, 2010, 2010, 2010,
2323
2324      2178, 2178, 2178, 2015, 2015, 2015, 2181, 2181, 2181, 1702,
2325      2182, 1134, 3226, 2183, 1134, 2011, 1134, 3213, 2179, 3216,
2326      2016, 1134, 3217, 2172, 2017, 2017, 2017, 2184, 2184, 2184,
2327      1134, 2185, 2164, 1134, 2186, 2168, 1403, 1403, 1403, 1701,
2328      1134, 2018, 1411, 1411, 1411, 1419, 1419, 1419, 2024, 2024,
2329      2024, 2192, 2192, 2192, 1405, 2193, 3218, 3221, 2194, 1134,
2330      1413, 1700, 3225, 1421, 3252, 2025, 2026, 2026, 2026, 2195,
2331      2195, 2195, 3219, 2196, 3228, 1134, 2197, 1429, 1429, 1429,
2332      1438, 1438, 1438, 2027, 3227, 2035, 2035, 2035, 1699, 2036,
2333      1134, 2190, 2037, 1134, 1134, 1431, 3222, 1134, 1440, 1444,
2334
2335      1444, 1444, 2188, 1451, 1451, 1451, 1134, 2040, 2040, 2040,
2336      2191, 2041, 3223, 1698, 2042, 1697, 1695, 1446, 2043, 2043,
2337      2043, 1453, 2049, 2049, 2049, 2211, 2211, 2211, 3229, 2212,
2338      3233, 3248, 2213, 1147, 1147, 1147, 2044, 3234, 1134, 2050,
2339      1134, 3240, 2198, 3230, 1694, 2203, 2215, 2215, 2215, 1692,
2340      2205, 1149, 2220, 2220, 2220, 1691, 2206, 2221, 2221, 2221,
2341      2059, 2059, 2059, 2223, 2223, 2223, 2227, 2227, 2227, 2066,
2342      2066, 2066, 2067, 2067, 2067, 2228, 2228, 2228, 2070, 2070,
2343      2070, 2071, 2071, 2071, 2231, 2231, 2231, 2232, 2232, 2232,
2344      2233, 2233, 2233, 2234, 2234, 2234, 1134, 2214, 1182, 1182,
2345
2346      1182, 2080, 2080, 2080, 3249, 2083, 2083, 2083, 2240, 2240,
2347      2240, 1688, 2241, 1134, 1685, 2242, 1184, 1684, 3256, 2081,
2348      1683, 2229, 2084, 2244, 2244, 2244, 2087, 2087, 2087, 2246,
2349      2246, 2246, 1134, 2247, 1682, 1134, 2248, 1215, 1215, 1215,
2350      1134, 2245, 3231, 2088, 2100, 2100, 2100, 1134, 1134, 2236,
2351      2260, 2260, 2260, 1134, 2261, 1217, 1681, 2262, 2263, 2263,
2352      2263, 2101, 2107, 2107, 2107, 2268, 2268, 2268, 2109, 2109,
2353      2109, 2270, 2270, 2270, 1134, 2271, 3238, 3236, 2272, 1246,
2354      1246, 1246, 2112, 2112, 2112, 2110, 2259, 2274, 2274, 2274,
2355      3237, 2275, 1134, 3242, 2276, 3235, 1680, 1248, 1679, 2113,
2356
2357      2114, 2114, 2114, 1134, 2115, 1134, 1134, 2116, 1255, 1255,
2358      1255, 2269, 1677, 2118, 2118, 2118, 2120, 2120, 2120, 1676,
2359      2121, 1134, 3253, 2122, 1675, 1674, 1257, 1269, 1269, 1269,
2360      2273, 2119, 1299, 1299, 1299, 2132, 2132, 2132, 3243, 2133,
2361      3241, 1667, 2134, 3244, 3239, 1271, 1664, 2136, 2136, 2136,
2362      1301, 2137, 1134, 1663, 2138, 2139, 2139, 2139, 3245, 2277,
2363      2290, 2290, 2290, 1661, 2291, 1134, 1134, 2292, 1660, 2144,
2364      2144, 2144, 2140, 2145, 1659, 1656, 2146, 1323, 1323, 1323,
2365      2278, 2148, 2148, 2148, 3247, 2149, 1651, 2287, 2150, 2151,
2366      2151, 2151, 2297, 2297, 2297, 1325, 2298, 3250, 3251, 2299,
2367
2368      2153, 2153, 2153, 1134, 2154, 1650, 2152, 2155, 1339, 1339,
2369      1339, 2158, 2158, 2158, 1638, 2159, 1636, 1632, 2160, 2305,
2370      2305, 2305, 2166, 2166, 2166, 1631, 1341, 2308, 2308, 2308,
2371      1627, 2309, 1625, 1617, 2310, 3254, 1134, 2306, 1616, 2167,
2372      1615, 2296, 1371, 1371, 1371, 2170, 2170, 2170, 2313, 2313,
2373      2313, 1614, 2314, 1612, 1611, 2315, 1609, 2178, 2178, 2178,
2374      1373, 1607, 2171, 2181, 2181, 2181, 1606, 2182, 3255, 1602,
2375      2183, 1403, 1403, 1403, 2300, 2179, 2184, 2184, 2184, 1601,
2376      2185, 1600, 1599, 2186, 1597, 1411, 1411, 1411, 1596, 1405,
2377      1419, 1419, 1419, 2192, 2192, 2192, 1595, 2193, 1594, 1589,
2378
2379      2194, 1588, 2311, 1413, 1587, 2195, 2195, 2195, 1421, 2196,
2380      1586, 1585, 2197, 1429, 1429, 1429, 1584, 2331, 2331, 2331,
2381      1583, 1577, 2326, 3259, 3259, 3259, 2329, 3259, 3259, 3259,
2382      1576, 1431, 1575, 2330, 2332, 3259, 3259, 3259, 1574, 1567,
2383      3259, 1438, 1438, 1438, 3259, 1444, 1444, 1444, 2339, 2339,
2384      2339, 2328, 3259, 2341, 2341, 2341, 2344, 2344, 2344, 1440,
2385      2211, 2211, 2211, 1446, 2212, 1566, 2340, 2213, 1147, 1147,
2386      1147, 1134, 1564, 1563, 2333, 2215, 2215, 2215, 2346, 2346,
2387      2346, 2347, 2347, 2347, 1560, 1559, 1149, 2220, 2220, 2220,
2388      1550, 2334, 1549, 1545, 2335, 2221, 2221, 2221, 2223, 2223,
2389
2390      2223, 2351, 2351, 2351, 1544, 2338, 2336, 2352, 2352, 2352,
2391      2353, 2353, 2353, 2227, 2227, 2227, 2228, 2228, 2228, 2231,
2392      2231, 2231, 2232, 2232, 2232, 1543, 1542, 2345, 2233, 2233,
2393      2233, 2234, 2234, 2234, 2357, 2357, 2357, 2360, 2360, 2360,
2394      2240, 2240, 2240, 1541, 2241, 1540, 1539, 2242, 3259, 3259,
2395      3259, 1538, 2358, 1536, 2361, 2244, 2244, 2244, 1535, 2246,
2396      2246, 2246, 1533, 2247, 1532, 3259, 2248, 1215, 1215, 1215,
2397      2260, 2260, 2260, 2245, 2261, 2374, 2375, 2262, 2376, 1531,
2398      2380, 2381, 1528, 2382, 1526, 1217, 2377, 1523, 1521, 2378,
2399      1518, 2383, 1509, 2379, 2384, 2263, 2263, 2263, 2385, 2386,
2400
2401      2386, 2386, 2268, 2268, 2268, 2270, 2270, 2270, 1507, 2271,
2402      1500, 1498, 2272, 1497, 2362, 1246, 1246, 1246, 2274, 2274,
2403      2274, 1496, 2275, 1495, 1494, 2276, 1493, 1492, 2373, 2392,
2404      2392, 2392, 1491, 1248, 1269, 1269, 1269, 2402, 2402, 2402,
2405      1299, 1299, 1299, 1490, 2290, 2290, 2290, 2393, 2291, 1489,
2406      1486, 2292, 1271, 2406, 2406, 2406, 1485, 1484, 1301, 1483,
2407      1482, 2391, 2410, 2410, 2410, 2297, 2297, 2297, 1481, 2298,
2408      2407, 1480, 2299, 2412, 2412, 2412, 2305, 2305, 2305, 1478,
2409      2411, 2418, 2418, 2418, 1477, 2394, 2308, 2308, 2308, 1476,
2410      2309, 2413, 1475, 2310, 2306, 1371, 1371, 1371, 2419, 1474,
2411
2412      2403, 2421, 2421, 2421, 2313, 2313, 2313, 1473, 2314, 1472,
2413      1470, 2315, 1469, 1373, 3259, 3259, 3259, 1468, 2422, 3259,
2414      3259, 3259, 3259, 3259, 3259, 2432, 2432, 2432, 2436, 2436,
2415      2436, 3259, 2434, 2434, 2434, 1467, 3259, 1466, 1465, 3259,
2416      1411, 1411, 1411, 1464, 1134, 2437, 2420, 2423, 1458, 1443,
2417      2435, 1442, 1419, 1419, 1419, 2331, 2331, 2331, 1413, 1429,
2418      1429, 1429, 1437, 1436, 2441, 2441, 2441, 1435, 2442, 2424,
2419      1421, 2443, 2332, 2430, 2444, 2444, 2444, 1431, 1434, 1433,
2420      2425, 3259, 3259, 3259, 3259, 3259, 3259, 2448, 2448, 2448,
2421      1407, 2445, 2450, 2450, 2450, 1395, 2440, 1381, 3259, 1380,
2422
2423      2438, 3259, 1444, 1444, 1444, 2449, 2339, 2339, 2339, 2341,
2424      2341, 2341, 1379, 2439, 2344, 2344, 2344, 2346, 2346, 2346,
2425      1446, 2455, 2455, 2455, 2340, 1375, 1370, 1134, 2347, 2347,
2426      2347, 1366, 2446, 1358, 1353, 2447, 2459, 2459, 2459, 2456,
2427      2351, 2351, 2351, 2352, 2352, 2352, 2353, 2353, 2353, 2357,
2428      2357, 2357, 2360, 2360, 2360, 2464, 2464, 2464, 1352, 2465,
2429      1346, 1343, 2466, 1215, 1215, 1215, 1322, 2358, 2451, 2361,
2430      1321, 2452, 2386, 2386, 2386, 2495, 2495, 2495, 1246, 1246,
2431      1246, 1217, 2392, 2392, 2392, 2498, 2498, 2498, 2504, 2504,
2432      2504, 2402, 2402, 2402, 1320, 1319, 1248, 1299, 1299, 1299,
2433
2434      2393, 1318, 1317, 2499, 1316, 2505, 1310, 2406, 2406, 2406,
2435      2509, 2509, 2509, 1303, 2510, 1301, 1292, 2511, 2513, 2513,
2436      2513, 1287, 1286, 2478, 2407, 2410, 2410, 2410, 2412, 2412,
2437      2412, 2517, 2517, 2517, 1285, 2514, 2418, 2418, 2418, 1280,
2438      2523, 2523, 2523, 2411, 2497, 1279, 2413, 1275, 2518, 2421,
2439      2421, 2421, 1274, 2419, 2506, 2520, 2520, 2520, 2524, 2521,
2440      1273, 1268, 2522, 2525, 2525, 2525, 2422, 2526, 1267, 1262,
2441      2527, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2442      2533, 2533, 2533, 2432, 2432, 2432, 1254, 1250, 3259, 1245,
2443      1244, 3259, 1240, 1239, 3259, 1238, 1237, 2534, 2434, 2434,
2444
2445      2434, 2436, 2436, 2436, 2537, 2537, 2537, 1236, 2538, 1235,
2446      1234, 2539, 2540, 2540, 2540, 1233, 2435, 1232, 2437, 1419,
2447      1419, 1419, 1231, 2528, 1429, 1429, 1429, 2441, 2441, 2441,
2448      2541, 2442, 2529, 1230, 2443, 2530, 1229, 1421, 2444, 2444,
2449      2444, 1228, 1431, 2544, 2544, 2544, 1222, 2545, 1214, 1213,
2450      2546, 2547, 2547, 2547, 1212, 2445, 2549, 2549, 2549, 2448,
2451      2448, 2448, 2450, 2450, 2450, 2551, 2551, 2551, 2548, 2455,
2452      2455, 2455, 1207, 2550, 2459, 2459, 2459, 2449, 2561, 2561,
2453      2561, 1206, 1205, 2552, 1202, 1196, 2542, 2456, 2543, 2464,
2454      2464, 2464, 1191, 2465, 1190, 2562, 2466, 1215, 1215, 1215,
2455
2456      2495, 2495, 2495, 1246, 1246, 1246, 2498, 2498, 2498, 2600,
2457      2600, 2600, 2504, 2504, 2504, 1217, 2602, 2602, 2602, 1186,
2458      2603, 1248, 1181, 2604, 2499, 1180, 2601, 1179, 1178, 2505,
2459      2605, 2605, 2605, 2509, 2509, 2509, 1177, 2510, 1176, 1175,
2460      2511, 2513, 2513, 2513, 1173, 2610, 2610, 2610, 2606, 2611,
2461      1172, 1171, 2612, 2614, 2614, 2614, 1170, 2580, 2514, 2517,
2462      2517, 2517, 2616, 2616, 2616, 1169, 2617, 1168, 1167, 2618,
2463      2615, 2619, 2619, 2619, 2598, 1166, 2518, 2520, 2520, 2520,
2464      1165, 2521, 1164, 1163, 2522, 2523, 2523, 2523, 2620, 2525,
2465      2525, 2525, 1162, 2526, 1161, 1160, 2527, 3259, 3259, 3259,
2466
2467      3259, 3259, 3259, 2524, 3259, 3259, 3259, 2533, 2533, 2533,
2468      1159, 2624, 2624, 2624, 3259, 2625, 1158, 3259, 2626, 1157,
2469      1156, 3259, 1155, 1154, 2534, 2627, 2627, 2627, 2629, 2629,
2470      2629, 2537, 2537, 2537, 1153, 2538, 1146, 1145, 2539, 2540,
2471      2540, 2540, 2628, 1144, 1143, 2630, 1419, 1419, 1419, 1142,
2472      1141, 2622, 2621, 1429, 1429, 1429, 1140, 2541, 1137, 2623,
2473      1135, 2544, 2544, 2544, 1421, 2545, 1134, 1132, 2546, 1130,
2474      1127, 1431, 2547, 2547, 2547, 2639, 2639, 2639, 1123, 2640,
2475      1121, 1120, 2641, 2549, 2549, 2549, 2642, 2642, 2642, 2548,
2476      2643, 1119, 1117, 2644, 1116, 2551, 2551, 2551, 1115, 1114,
2477
2478      2550, 2649, 2649, 2649, 2561, 2561, 2561, 1215, 1215, 1215,
2479      1113, 1112, 2637, 2552, 2638, 2653, 2653, 2653, 1110, 2654,
2480      1109, 2562, 2655, 1108, 1107, 1217, 2689, 2689, 2689, 1246,
2481      1246, 1246, 2692, 2692, 2692, 2600, 2600, 2600, 2695, 2695,
2482      2695, 1105, 2696, 1104, 1103, 2697, 1099, 1248, 1098, 2693,
2483      1096, 1095, 2601, 2602, 2602, 2602, 1094, 2603, 2673, 1093,
2484      2604, 2605, 2605, 2605, 2610, 2610, 2610, 1092, 2611, 1091,
2485      1089, 2612, 2614, 2614, 2614, 2649, 2649, 2649, 2694, 2606,
2486      2702, 2702, 2702, 1088, 2703, 1087, 1086, 2704, 1084, 2615,
2487      1083, 2691, 2616, 2616, 2616, 1082, 2617, 1079, 1078, 2618,
2488
2489      2619, 2619, 2619, 2705, 2705, 2705, 1076, 2706, 1073, 1072,
2490      2707, 3259, 3259, 3259, 2709, 2709, 2709, 2620, 3259, 3259,
2491      3259, 1068, 2624, 2624, 2624, 1067, 2625, 1065, 3259, 2626,
2492      1064, 2710, 2627, 2627, 2627, 3259, 2712, 2712, 2712, 1063,
2493      2713, 1060, 1059, 2714, 2629, 2629, 2629, 1058, 1057, 2628,
2494      2715, 2715, 2715, 1055, 2716, 1054, 1053, 2717, 1419, 1419,
2495      1419, 2630, 1429, 1429, 1429, 1052, 1051, 2711, 1046, 2708,
2496      2639, 2639, 2639, 1044, 2640, 1043, 1421, 2641, 1042, 1041,
2497      1431, 2642, 2642, 2642, 1040, 2643, 1039, 1038, 2644, 2732,
2498      2732, 2732, 2735, 2735, 2735, 2653, 2653, 2653, 1037, 2654,
2499
2500      1034, 1031, 2655, 2746, 2746, 2746, 2733, 1672, 1030, 2724,
2501      1215, 1215, 1215, 2689, 2689, 2689, 2772, 2772, 2772, 1029,
2502      2747, 1246, 1246, 1246, 2692, 2692, 2692, 1023, 1217, 2725,
2503      2774, 2774, 2774, 1022, 2775, 1020, 1017, 2776, 1015, 1248,
2504      1014, 2693, 2695, 2695, 2695, 1009, 2696, 1008, 1006, 2697,
2505      2702, 2702, 2702, 1005, 2703, 1004, 1002, 2704,  999, 2756,
2506      2705, 2705, 2705,  997, 2706,  994,  993, 2707, 3259, 3259,
2507      3259,  991, 2773, 2709, 2709, 2709, 2783, 2783, 2783,  990,
2508      2784,  987,  982, 2785,  981, 3259, 3259, 3259, 3259,  978,
2509      2710, 2712, 2712, 2712,  977, 2713,  976,  973, 2714,  972,
2510
2511      2715, 2715, 2715, 3259, 2716,  970,  967, 2717, 2801, 2801,
2512      2801, 1429, 1429, 1429, 2809, 2809, 2809,  965,  964, 2782,
2513      2732, 2732, 2732, 2811, 2811, 2811, 2802, 2812,  963, 1431,
2514      2813, 2810, 1672, 2814, 2814, 2814,  962, 2733, 1672,  960,
2515       959, 1672, 2735, 2735, 2735, 2815, 2815, 2815, 2816, 2816,
2516      2816, 2746, 2746, 2746, 2825, 2825, 2825, 2786, 2826,  958,
2517       957, 2827, 1215, 1215, 1215, 2845, 2845, 2845, 2747, 2772,
2518      2772, 2772, 2846, 2846, 2846,  956,  955, 2803,  952,  951,
2519      1217, 2774, 2774, 2774,  950, 2775,  947,  944, 2776,  943,
2520      2847, 2851, 2851, 2851, 2854, 2854, 2854, 2783, 2783, 2783,
2521
2522       941, 2784,  940,  937, 2785, 2856, 2856, 2856, 2852,  934,
2523       931, 2855, 2801, 2801, 2801, 1429, 1429, 1429, 2809, 2809,
2524      2809,  930, 2857,  922,  921, 2876, 2876, 2876, 2834, 2877,
2525      2802,  920, 2878, 1431,  919, 2810, 1672, 2811, 2811, 2811,
2526       913, 2812,  912, 1672, 2813, 2814, 2814, 2814, 2815, 2815,
2527      2815, 2816, 2816, 2816,  911, 1672, 2825, 2825, 2825,  909,
2528      2826,  908,  907, 2827,  906,  905, 2870, 1670, 1670, 1670,
2529      1670, 1670, 1670, 1670, 1670, 1670,  904,  899, 1670, 2895,
2530      2895, 2895,  896, 1670, 1670, 1670, 1672, 1670, 2845, 2845,
2531      2845, 2846, 2846, 2846, 2851, 2851, 2851, 2896, 2908, 2908,
2532
2533      2908,  898, 2909,  893,  892, 2910, 2854, 2854, 2854, 2847,
2534       890, 2852, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670,
2535      1670, 1670, 1670, 2855,  888, 1670, 2856, 2856, 2856,  886,
2536      1670, 1670, 1670, 1672, 1670, 2912, 2912, 2912,  884, 2913,
2537       882,  879, 2914, 2857, 2915, 2915, 2915,  878, 2916,  877,
2538       876, 2917, 2930, 2930, 2930, 2895, 2895, 2895,  875, 1670,
2539      1670, 2876, 2876, 2876,  873, 2877,  871,  870, 2878,  869,
2540      2931,  867,  865, 2896, 2930, 2930, 2930,  864,  862, 1672,
2541      1670, 1670, 1670, 1670, 1670, 2942, 1670, 1670, 1670,  860,
2542       859, 1670, 2931,  857,  853,  852, 1670, 1670, 1670, 1672,
2543
2544      1670, 2908, 2908, 2908,  850, 2909,  845,  843, 2910, 2912,
2545      2912, 2912,  839, 2913,  838,  837, 2914, 2915, 2915, 2915,
2546       835, 2916,  833,  832, 2917, 1670, 1670, 1670, 1670, 1670,
2547      1670, 1670, 1670, 1670, 1670, 2942,  831,  829, 1670, 2981,
2548      2981, 2981,  827, 1670, 1670, 1670, 1672, 1670, 2992, 2992,
2549      2992, 2994, 2994, 2994, 2996, 2996, 2996, 1672, 1673, 3004,
2550      3004, 3004, 3014, 3014, 3014, 2993,  826,  824, 2995,  822,
2551       821, 2997, 1670, 1670,  820,  819, 3005, 2981, 2981, 2981,
2552      1134, 2992, 2992, 2992, 3024, 3024, 3024,  818, 3025,  817,
2553       816, 3026, 2994, 2994, 2994, 1672,  814,  812, 2993, 3027,
2554
2555      3027, 3027,  811, 3028,  808,  807, 3029,  806,  804, 2995,
2556      2996, 2996, 2996, 3030, 3030, 3030,  795, 3031,  794,  793,
2557      3032, 3004, 3004, 3004, 3014, 3014, 3014, 2997, 1865, 3039,
2558      3039, 3039,  790, 3040,  788,  786, 3041,  785, 3005, 3024,
2559      3024, 3024, 1134, 3025,  784,  782, 3026, 3027, 3027, 3027,
2560       780, 3028,  778,  775, 3029, 3030, 3030, 3030,  774, 3031,
2561       773, 3050, 3032, 3039, 3039, 3039,  772, 3040,  771,  769,
2562      3041, 3155, 3155, 3155, 3155, 3155, 3155,  767, 3164,  766,
2563       764, 3165, 3257, 3257, 3257, 3257, 3257, 3257,  762, 1134,
2564       761,  759, 1134,  757,  756,  755,  753,  751,  750,  749,
2565
2566      3258,  748,  746, 3258,  254,  254,  254,  254,  254,  254,
2567       254,  254,  254,  255,  255,  255,  255,  255,  255,  255,
2568       255,  255,  260,  260,  260,  260,  260,  260,  260,  260,
2569       260,  263,  263,  263,  263,  263,  263,  263,  263,  263,
2570       266,  266,  266,  266,  266,  266,  266,  266,  266,  269,
2571       269,  269,  269,  269,  269,  269,  269,  269,  276,  276,
2572       276,  276,  276,  276,  276,  276,  276,  284,  284,  284,
2573       284,  284,  284,  284,  284,  284,  288,  288,  288,  288,
2574       288,  288,  288,  288,  288,  300,  300,  300,  300,  300,
2575       300,  300,  300,  300,  304,  304,  304,  304,  304,  304,
2576
2577       304,  304,  304,  311,  311,  311,  311,  311,  311,  311,
2578       311,  311,  322,  322,  322,  322,  322,  322,  322,  322,
2579       322,  330,  330,  330,  330,  330,  330,  330,  330,  330,
2580       336,  336,  336,  336,  336,  336,  336,  336,  336,  342,
2581       342,  342,  342,  342,  342,  342,  342,  342,  348,  348,
2582       348,  348,  348,  348,  348,  348,  348,  353,  353,  353,
2583       353,  353,  353,  353,  353,  353,  372,  372,  372,  372,
2584       372,  372,  372,  372,  372,  379,  379,  379,  379,  379,
2585       379,  379,  379,  379,  386,  386,  386,  386,  386,  386,
2586       386,  386,  386,  392,  392,  392,  392,  392,  392,  392,
2587
2588       392,  392,  399,  399,  399,  399,  399,  399,  399,  399,
2589       399,  404,  404,  404,  404,  404,  404,  404,  404,  404,
2590       410,  410,  410,  410,  410,  410,  410,  410,  410,  415,
2591       415,  415,  415,  415,  415,  415,  415,  415,  421,  421,
2592       421,  421,  421,  421,  421,  421,  421,  429,  429,  429,
2593       429,  429,  429,  429,  429,  429,  437,  437,  437,  437,
2594       437,  437,  437,  437,  437,  441,  441,  441,  441,  441,
2595       441,  441,  441,  441,  447,  447,  447,  447,  447,  447,
2596       447,  447,  447,  453,  453,  453,  453,  453,  453,  453,
2597       453,  453,  470,  470,  470,  470,  470,  470,  470,  470,
2598
2599       470,  476,  476,  476,  476,  476,  476,  476,  476,  476,
2600       485,  485,  485,  485,  485,  485,  485,  485,  485,  491,
2601       491,  491,  491,  491,  491,  491,  491,  491,  501,  501,
2602       501,  501,  501,  501,  501,  501,  501,  507,  507,  507,
2603       507,  507,  507,  507,  507,  507,  512,  512,  512,  512,
2604       512,  512,  512,  512,  512,  518,  518,  518,  518,  518,
2605       518,  518,  518,  518,  524,  524,  524,  524,  524,  524,
2606       524,  524,  524,  530,  530,  530,  530,  530,  530,  530,
2607       530,  530,  537,  537,  537,  537,  537,  537,  537,  537,
2608       537,  544,  544,  544,  544,  544,  544,  544,  544,  544,
2609
2610       549,  549,  549,  549,  549,  549,  549,  549,  549,  557,
2611       557,  557,  557,  557,  557,  557,  557,  557,  563,  563,
2612       563,  563,  563,  563,  563,  563,  563,  570,  570,  570,
2613       570,  570,  570,  570,  570,  570,  575,  575,  575,  575,
2614       575,  575,  575,  575,  575,  581,  581,  581,  581,  581,
2615       581,  581,  581,  581,  586,  586,  586,  586,  586,  586,
2616       586,  586,  586,  593,  593,  593,  593,  593,  593,  593,
2617       593,  593,  599,  599,  599,  599,  599,  599,  599,  599,
2618       599,  606,  606,  606,  606,  606,  606,  606,  606,  606,
2619       614,  614,  614,  614,  614,  614,  614,  614,  614,  622,
2620
2621       622,  622,  622,  622,  622,  622,  622,  622,  626,  626,
2622       626,  626,  626,  626,  626,  626,  626,  632,  632,  632,
2623       632,  632,  632,  632,  632,  632,  636,  636,  636,  636,
2624       636,  636,  636,  636,  636,  643,  643,  643,  643,  643,
2625       643,  643,  643,  643,  648,  648,  648,  648,  648,  648,
2626       648,  648,  648,  668,  668,  668, 3259,  693,  726,  668,
2627       695,  695,  695,  725,  723,  721,  695,  699,  699,  699,
2628       720,  719,  717,  699,  707,  707,  707,  713,  709,  708,
2629       707,  718,  718,  718,  706,  705,  702,  718,  724,  724,
2630       724,  701,  700,  698,  724,  747,  747,  747,  697,  696,
2631
2632       694,  747,  754,  754,  754,  689, 3259,  669,  754,  760,
2633       760,  760,  667,  665,  659,  760,  765,  765,  765,  658,
2634       659,  658,  765,  770,  770,  770,  657,  656, 3259,  770,
2635       779,  779,  779, 3259, 3259, 3259,  779,  783,  783,  783,
2636      3259, 3259, 3259,  783,  789,  789,  789, 3259, 3259, 3259,
2637       789,  805,  805,  805, 3259, 3259, 3259,  805,  815,  815,
2638       815, 3259, 3259, 3259,  815,  825,  825,  825, 3259, 3259,
2639      3259,  825,  830,  830,  830, 3259, 3259, 3259,  830,  836,
2640       836,  836, 3259, 3259, 3259,  836,  844,  844,  844, 3259,
2641      3259, 3259,  844,  851,  851,  851, 3259, 3259, 3259,  851,
2642
2643       858,  858,  858, 3259, 3259, 3259,  858,  863,  863,  863,
2644      3259, 3259, 3259,  863,  868,  868,  868, 3259, 3259, 3259,
2645       868,  874,  874,  874, 3259, 3259, 3259,  874,  883,  883,
2646       883, 3259, 3259, 3259,  883,  887,  887,  887, 3259, 3259,
2647      3259,  887,  891,  891,  891, 3259, 3259, 3259,  891,  895,
2648       895,  895,  895,  895,  895,  895, 3259,  895,  668,  668,
2649       668, 3259, 3259, 3259,  668,  910, 3259, 3259, 3259,  910,
2650       695,  695,  695, 3259, 3259, 3259,  695,  942, 3259, 3259,
2651      3259,  942,  699,  699,  699, 3259, 3259, 3259,  699,  949,
2652      3259, 3259, 3259,  949,  707,  707,  707, 3259, 3259, 3259,
2653
2654       707,  961, 3259, 3259, 3259,  961,  718,  718,  718, 3259,
2655      3259, 3259,  718,  966, 3259, 3259, 3259,  966,  724,  724,
2656       724, 3259, 3259, 3259,  724,  971, 3259, 3259, 3259,  971,
2657       747,  747,  747, 3259, 3259, 3259,  747,  992, 3259, 3259,
2658      3259,  992,  754,  754,  754, 3259, 3259, 3259,  754,  998,
2659      3259, 3259, 3259,  998,  760,  760,  760, 3259, 3259, 3259,
2660       760, 1003, 3259, 3259, 3259, 1003,  765,  765,  765, 3259,
2661      3259, 3259,  765, 1007, 3259, 3259, 3259, 1007,  770,  770,
2662       770, 3259, 3259, 3259,  770, 1016, 3259, 3259, 3259, 1016,
2663       779,  779,  779, 3259, 3259, 3259,  779, 1021, 3259, 3259,
2664
2665      3259, 1021,  783,  783,  783, 3259, 3259, 3259,  783, 1028,
2666      3259, 3259, 3259, 1028,  789,  789,  789, 3259, 3259, 3259,
2667       789, 1045, 3259, 3259, 3259, 1045,  805,  805,  805, 3259,
2668      3259, 3259,  805, 1056, 3259, 3259, 3259, 1056,  815,  815,
2669       815, 3259, 3259, 3259,  815, 1066, 3259, 3259, 3259, 1066,
2670       825,  825,  825, 3259, 3259, 3259,  825, 1071, 3259, 3259,
2671      3259, 1071,  830,  830,  830, 3259, 3259, 3259,  830, 1077,
2672      3259, 3259, 3259, 1077,  836,  836,  836, 3259, 3259, 3259,
2673       836, 1085, 3259, 3259, 3259, 1085,  844,  844,  844, 3259,
2674      3259, 3259,  844, 1090, 3259, 3259, 3259, 1090,  851,  851,
2675
2676       851, 3259, 3259, 3259,  851, 1097, 3259, 3259, 3259, 1097,
2677       858,  858,  858, 3259, 3259, 3259,  858, 1102, 3259, 3259,
2678      3259, 1102,  863,  863,  863, 3259, 3259, 3259,  863, 1106,
2679      3259, 3259, 3259, 1106,  868,  868,  868, 3259, 3259, 3259,
2680       868, 1111, 3259, 3259, 3259, 1111,  874,  874,  874, 3259,
2681      3259, 3259,  874, 1118, 3259, 3259, 3259, 1118,  883,  883,
2682       883, 3259, 3259, 3259,  883, 1122, 3259, 3259, 3259, 1122,
2683       887,  887,  887, 3259, 3259, 3259,  887, 1126, 3259, 3259,
2684      3259, 1126,  891,  891,  891, 3259, 3259, 3259,  891, 1131,
2685      3259, 3259, 3259, 1131, 1133, 1133, 1133, 1133, 1133, 1133,
2686
2687      1133, 1133, 1133, 1139, 3259, 3259, 3259, 3259, 1139,  668,
2688       668,  668, 3259, 3259, 3259,  668, 1148, 1148, 1148, 1148,
2689      3259, 3259, 1148, 1148,  695,  695,  695, 3259, 3259, 3259,
2690       695, 1183, 1183, 1183, 1183, 3259, 3259, 1183, 1183,  699,
2691       699,  699, 3259, 3259, 3259,  699, 1193, 1193, 1193, 1193,
2692      3259, 3259, 1193, 1193,  707,  707,  707, 3259, 3259, 3259,
2693       707, 1209, 1209, 1209, 1209, 3259, 3259, 1209, 1209,  718,
2694       718,  718, 3259, 3259, 3259,  718, 1216, 1216, 1216, 1216,
2695      3259, 3259, 1216, 1216,  724,  724,  724, 3259, 3259, 3259,
2696       724, 1224, 1224, 1224, 1224, 3259, 3259, 1224, 1224,  747,
2697
2698       747,  747, 3259, 3259, 3259,  747, 1247, 1247, 1247, 1247,
2699      3259, 3259, 1247, 1247,  754,  754,  754, 3259, 3259, 3259,
2700       754, 1256, 1256, 1256, 1256, 3259, 3259, 1256, 1256,  760,
2701       760,  760, 3259, 3259, 3259,  760, 1264, 1264, 1264, 1264,
2702      3259, 3259, 1264, 1264,  765,  765,  765, 3259, 3259, 3259,
2703       765, 1270, 1270, 1270, 1270, 3259, 3259, 1270, 1270,  770,
2704       770,  770, 3259, 3259, 3259,  770, 1282, 1282, 1282, 1282,
2705      3259, 3259, 1282, 1282,  779,  779,  779, 3259, 3259, 3259,
2706       779, 1289, 1289, 1289, 1289, 3259, 3259, 1289, 1289,  783,
2707       783,  783, 3259, 3259, 3259,  783, 1300, 1300, 1300, 1300,
2708
2709      3259, 3259, 1300, 1300,  789,  789,  789, 3259, 3259, 3259,
2710       789, 1324, 1324, 1324, 1324, 3259, 3259, 1324, 1324,  805,
2711       805,  805,  805, 3259,  805, 3259,  805, 1340, 1340, 1340,
2712      1340, 3259, 3259, 1340, 1340,  815,  815,  815, 3259, 3259,
2713      3259,  815, 1355, 1355, 1355, 1355, 3259, 3259, 1355, 1355,
2714       825,  825,  825, 3259, 3259, 3259,  825, 1363, 1363, 1363,
2715      1363, 3259, 3259, 1363, 1363,  830,  830,  830, 3259, 3259,
2716      3259,  830, 1372, 1372, 1372, 1372, 3259, 3259, 1372, 1372,
2717       836,  836,  836, 3259, 3259, 3259,  836, 1383, 1383, 1383,
2718      1383, 3259, 3259, 1383, 1383,  844,  844,  844,  844, 3259,
2719
2720       844, 3259,  844, 1392, 1392, 1392, 1392, 3259, 3259, 1392,
2721      1392,  851,  851,  851,  851, 3259,  851, 3259,  851, 1404,
2722      1404, 1404, 1404, 3259, 3259, 1404, 1404,  858,  858,  858,
2723      3259, 3259, 3259,  858, 1412, 1412, 1412, 1412, 3259, 3259,
2724      1412, 1412,  863,  863,  863,  863, 3259,  863, 3259,  863,
2725      1420, 1420, 1420, 1420, 3259, 3259, 1420, 1420,  868,  868,
2726       868,  868, 3259,  868, 3259,  868, 1430, 1430, 1430, 1430,
2727      3259, 3259, 1430, 1430,  874,  874,  874, 3259, 3259, 3259,
2728       874, 1439, 1439, 1439, 1439, 3259, 3259, 1439, 1439,  883,
2729       883,  883, 3259, 3259, 3259,  883, 1445, 1445, 1445, 1445,
2730
2731      3259, 3259, 1445, 1445, 1452, 1452, 1452, 1452, 3259, 3259,
2732      1452, 1452,  891,  891,  891, 3259, 3259, 3259,  891, 1460,
2733      1460, 1460, 1460, 3259, 3259, 1460, 1460, 1133, 1133, 1133,
2734      1133, 1133, 1133, 1133, 1133, 1133, 1139, 3259, 1139, 3259,
2735      3259, 1139,  668,  668,  668, 3259, 3259, 3259,  668, 1148,
2736      1148, 1148, 1148, 3259, 3259, 1148, 1148,  695,  695,  695,
2737       695, 3259,  695, 3259,  695, 1183, 1183, 1183, 1183, 3259,
2738      3259, 1183, 1183,  699,  699,  699,  699, 3259,  699, 3259,
2739       699, 1193, 1193, 1193, 1193, 3259, 3259, 1193, 1193,  707,
2740       707,  707, 3259, 3259, 3259,  707, 1209, 1209, 1209, 1209,
2741
2742      3259, 3259, 1209, 1209,  718,  718,  718, 3259, 3259, 3259,
2743       718, 1216, 1216, 1216, 1216, 3259, 3259, 1216, 1216,  724,
2744       724,  724, 3259, 3259, 3259,  724, 1224, 1224, 1224, 1224,
2745      3259, 3259, 1224, 1224,  747,  747,  747, 3259, 3259, 3259,
2746       747, 1247, 1247, 1247, 1247, 3259, 3259, 1247, 1247,  754,
2747       754,  754, 3259, 3259, 3259,  754, 1256, 1256, 1256, 1256,
2748      3259, 3259, 1256, 1256,  760,  760,  760,  760, 3259,  760,
2749      3259,  760, 1264, 1264, 1264, 1264, 3259, 3259, 1264, 1264,
2750       765,  765,  765,  765, 3259,  765, 3259,  765, 1270, 1270,
2751      1270, 1270, 3259, 3259, 1270, 1270,  770,  770,  770, 3259,
2752
2753      3259, 3259,  770, 1282, 1282, 1282, 1282, 3259, 3259, 1282,
2754      1282,  779,  779,  779,  779, 3259,  779, 3259,  779, 1289,
2755      1289, 1289, 1289, 3259, 3259, 1289, 1289,  783,  783,  783,
2756       783, 3259,  783, 3259,  783, 1300, 1300, 1300, 1300, 3259,
2757      3259, 1300, 1300,  789,  789,  789, 3259, 3259, 3259,  789,
2758      1324, 1324, 1324, 1324, 3259, 3259, 1324, 1324,  805,  805,
2759       805, 3259, 3259, 3259,  805, 1340, 1340, 1340, 1340, 3259,
2760      3259, 1340, 1340,  815,  815,  815, 3259, 3259, 3259,  815,
2761      1355, 1355, 1355, 1355, 3259, 3259, 1355, 1355,  825,  825,
2762       825, 3259, 3259, 3259,  825, 1363, 1363, 1363, 1363, 3259,
2763
2764      3259, 1363, 1363,  830,  830,  830, 3259, 3259, 3259,  830,
2765      1372, 1372, 1372, 1372, 3259, 3259, 1372, 1372,  836,  836,
2766       836, 3259, 3259, 3259,  836, 1383, 1383, 1383, 1383, 3259,
2767      3259, 1383, 1383,  844,  844,  844, 3259, 3259, 3259,  844,
2768      1392, 1392, 1392, 1392, 3259, 3259, 1392, 1392,  851,  851,
2769       851, 3259, 3259, 3259,  851, 1404, 1404, 1404, 1404, 3259,
2770      3259, 1404, 1404,  858,  858,  858, 3259, 3259, 3259,  858,
2771      1412, 1412, 1412, 1412, 3259, 3259, 1412, 1412, 1420, 1420,
2772      1420, 1420, 3259, 3259, 1420, 1420,  868,  868,  868, 3259,
2773      3259, 3259,  868, 1430, 1430, 1430, 1430, 3259, 3259, 1430,
2774
2775      1430,  874,  874,  874, 3259, 3259, 3259,  874, 1439, 1439,
2776      1439, 1439, 3259, 3259, 1439, 1439,  883,  883,  883, 3259,
2777      3259, 3259,  883, 1445, 1445, 1445, 1445, 3259, 3259, 1445,
2778      1445, 1452, 1452, 1452, 1452, 3259, 3259, 1452, 1452,  891,
2779       891,  891, 3259, 3259, 3259,  891, 1460, 1460, 1460, 1460,
2780      3259, 3259, 1460, 1460, 1133, 1133, 1133, 1133, 1133, 1133,
2781      1133, 1133, 1133, 1670, 1670, 1670, 1670, 1670, 1670, 1670,
2782      1670, 1670,  668,  668,  668, 3259, 3259, 3259,  668, 1148,
2783      1148, 1148, 1148, 3259, 3259, 1148, 1148, 1183, 1183, 1183,
2784      1183, 3259, 3259, 1183, 1183,  699,  699,  699, 3259, 3259,
2785
2786      3259,  699, 1193, 1193, 1193, 1193, 3259, 3259, 1193, 1193,
2787       707,  707,  707, 3259, 3259, 3259,  707, 1209, 1209, 1209,
2788      1209, 3259, 3259, 1209, 1209,  718,  718,  718, 3259, 3259,
2789      3259,  718, 1216, 1216, 1216, 1216, 3259, 3259, 1216, 1216,
2790       724,  724,  724, 3259, 3259, 3259,  724,  747,  747,  747,
2791      3259, 3259, 3259,  747, 1247, 1247, 1247, 1247, 3259, 3259,
2792      1247, 1247,  754,  754,  754, 3259, 3259, 3259,  754, 1256,
2793      1256, 1256, 1256, 3259, 3259, 1256, 1256, 1264, 1264, 1264,
2794      1264, 3259, 3259, 1264, 1264,  765,  765,  765, 3259, 3259,
2795      3259,  765, 1270, 1270, 1270, 1270, 3259, 3259, 1270, 1270,
2796
2797       770,  770,  770, 3259, 3259, 3259,  770, 1282, 1282, 1282,
2798      1282, 3259, 3259, 1282, 1282, 1289, 1289, 1289, 1289, 3259,
2799      3259, 1289, 1289, 1300, 1300, 1300, 1300, 3259, 3259, 1300,
2800      1300,  789,  789,  789, 3259, 3259, 3259,  789, 1324, 1324,
2801      1324, 1324, 3259, 3259, 1324, 1324,  805,  805,  805,  805,
2802      3259,  805, 3259,  805, 1340, 1340, 1340, 1340, 3259, 3259,
2803      1340, 1340,  815,  815,  815, 3259, 3259, 3259,  815, 1355,
2804      1355, 1355, 1355, 3259, 3259, 1355, 1355,  825,  825,  825,
2805      3259, 3259, 3259,  825, 1363, 1363, 1363, 1363, 3259, 3259,
2806      1363, 1363,  830,  830,  830, 3259, 3259, 3259,  830, 1372,
2807
2808      1372, 1372, 1372, 3259, 3259, 1372, 1372,  836,  836,  836,
2809      3259, 3259, 3259,  836, 1383, 1383, 1383, 1383, 3259, 3259,
2810      1383, 1383,  844,  844,  844, 3259, 3259, 3259,  844, 1392,
2811      1392, 1392, 1392, 3259, 3259, 1392, 1392,  851,  851,  851,
2812      3259, 3259, 3259,  851, 1404, 1404, 1404, 1404, 3259, 3259,
2813      1404, 1404,  858,  858,  858, 3259, 3259, 3259,  858, 1412,
2814      1412, 1412, 1412, 3259, 3259, 1412, 1412, 1420, 1420, 1420,
2815      1420, 3259, 3259, 1420, 1420,  868,  868,  868, 3259, 3259,
2816      3259,  868, 1430, 1430, 1430, 1430, 3259, 3259, 1430, 1430,
2817       874,  874,  874, 3259, 3259, 3259,  874, 1439, 1439, 1439,
2818
2819      1439, 3259, 3259, 1439, 1439,  883,  883,  883,  883, 3259,
2820       883, 3259,  883, 1445, 1445, 1445, 1445, 3259, 3259, 1445,
2821      1445, 1452, 1452, 1452, 1452, 3259, 3259, 1452, 1452,  891,
2822       891,  891,  891, 3259,  891, 3259,  891, 1460, 1460, 1460,
2823      1460, 3259, 3259, 1460, 1460, 1133, 1133, 1133, 1133, 1133,
2824      1133, 1133, 1133, 1133, 1670, 1670, 1670, 1670, 1670, 1670,
2825      1670, 1670, 1670,  668,  668,  668, 3259, 3259, 3259,  668,
2826      1148, 1148, 1148, 1148, 3259, 3259, 1148, 1148, 1183, 1183,
2827      1183, 1183, 3259, 3259, 1183, 1183,  699,  699,  699, 3259,
2828      3259, 3259,  699, 1193, 1193, 1193, 1193, 3259, 3259, 1193,
2829
2830      1193,  707,  707,  707, 3259, 3259, 3259,  707, 1209, 1209,
2831      1209, 1209, 3259, 3259, 1209, 1209,  718,  718,  718, 3259,
2832      3259, 3259,  718, 1216, 1216, 1216, 1216, 3259, 3259, 1216,
2833      1216,  724,  724,  724, 3259, 3259, 3259,  724,  747,  747,
2834       747, 3259, 3259, 3259,  747, 1247, 1247, 1247, 1247, 3259,
2835      3259, 1247, 1247,  754,  754,  754, 3259, 3259, 3259,  754,
2836      1256, 1256, 1256, 1256, 3259, 3259, 1256, 1256, 1264, 1264,
2837      1264, 1264, 3259, 3259, 1264, 1264,  765,  765,  765,  765,
2838      3259,  765, 3259,  765, 1270, 1270, 1270, 1270, 3259, 3259,
2839      1270, 1270,  770,  770,  770, 3259, 3259, 3259,  770, 1282,
2840
2841      1282, 1282, 1282, 3259, 3259, 1282, 1282, 1300, 1300, 1300,
2842      1300, 3259, 3259, 1300, 1300,  789,  789,  789, 3259, 3259,
2843      3259,  789, 1324, 1324, 1324, 1324, 3259, 3259, 1324, 1324,
2844       805,  805,  805,  805, 3259,  805, 3259,  805, 1340, 1340,
2845      1340, 1340, 3259, 3259, 1340, 1340,  815,  815,  815, 3259,
2846      3259, 3259,  815, 1355, 1355, 1355, 1355, 3259, 3259, 1355,
2847      1355,  825,  825,  825, 3259, 3259, 3259,  825, 1363, 1363,
2848      1363, 1363, 3259, 3259, 1363, 1363,  830,  830,  830, 3259,
2849      3259, 3259,  830, 1372, 1372, 1372, 1372, 3259, 3259, 1372,
2850      1372,  836,  836,  836, 3259, 3259, 3259,  836, 1383, 1383,
2851
2852      1383, 1383, 3259, 3259, 1383, 1383,  844,  844,  844, 3259,
2853      3259, 3259,  844, 1392, 1392, 1392, 1392, 3259, 3259, 1392,
2854      1392,  851,  851,  851,  851, 3259,  851, 3259,  851, 1404,
2855      1404, 1404, 1404, 3259, 3259, 1404, 1404,  858,  858,  858,
2856      3259, 3259, 3259,  858, 1412, 1412, 1412, 1412, 3259, 3259,
2857      1412, 1412, 1420, 1420, 1420, 1420, 3259, 3259, 1420, 1420,
2858       868,  868,  868,  868, 3259,  868, 3259,  868, 1430, 1430,
2859      1430, 1430, 3259, 3259, 1430, 1430,  874,  874,  874, 3259,
2860      3259, 3259,  874, 1439, 1439, 1439, 1439, 3259, 3259, 1439,
2861      1439, 1445, 1445, 1445, 1445, 3259, 3259, 1445, 1445, 1452,
2862
2863      1452, 1452, 1452, 3259, 3259, 1452, 1452, 1460, 1460, 1460,
2864      1460, 3259, 3259, 1460, 1460, 1133, 1133, 1133, 1133, 1133,
2865      1133, 1133, 1133, 1133, 1670, 1670, 1670, 1670, 1670, 1670,
2866      1670, 1670, 1670,  668,  668,  668,  668, 3259,  668, 3259,
2867       668, 1148, 1148, 1148, 1148, 3259, 3259, 1148, 1148, 1183,
2868      1183, 1183, 1183, 3259, 3259, 1183, 1183,  699,  699,  699,
2869      3259, 3259, 3259,  699, 1193, 1193, 1193, 1193, 3259, 3259,
2870      1193, 1193,  707,  707,  707, 3259, 3259, 3259,  707, 1209,
2871      1209, 1209, 1209, 3259, 3259, 1209, 1209,  718,  718,  718,
2872       718, 3259,  718, 3259,  718, 1216, 1216, 1216, 1216, 3259,
2873
2874      3259, 1216, 1216,  724,  724,  724,  724, 3259,  724, 3259,
2875       724,  747,  747,  747,  747, 3259,  747, 3259,  747, 1247,
2876      1247, 1247, 1247, 3259, 3259, 1247, 1247,  754,  754,  754,
2877       754, 3259,  754, 3259,  754, 1256, 1256, 1256, 1256, 3259,
2878      3259, 1256, 1256, 1264, 1264, 1264, 1264, 3259, 3259, 1264,
2879      1264, 1270, 1270, 1270, 1270, 3259, 3259, 1270, 1270,  770,
2880       770,  770, 3259, 3259, 3259,  770, 1300, 1300, 1300, 1300,
2881      3259, 3259, 1300, 1300,  789,  789,  789, 3259, 3259, 3259,
2882       789, 1324, 1324, 1324, 1324, 3259, 3259, 1324, 1324,  805,
2883       805,  805,  805, 3259,  805, 3259,  805, 1340, 1340, 1340,
2884
2885      1340, 3259, 3259, 1340, 1340,  815,  815,  815, 3259, 3259,
2886      3259,  815,  825,  825,  825, 3259, 3259, 3259,  825, 1363,
2887      1363, 1363, 1363, 3259, 3259, 1363, 1363,  830,  830,  830,
2888      3259, 3259, 3259,  830, 1372, 1372, 1372, 1372, 3259, 3259,
2889      1372, 1372,  836,  836,  836, 3259, 3259, 3259,  836,  844,
2890       844,  844, 3259, 3259, 3259,  844, 1392, 1392, 1392, 1392,
2891      3259, 3259, 1392, 1392,  851,  851,  851, 3259, 3259, 3259,
2892       851, 1404, 1404, 1404, 1404, 3259, 3259, 1404, 1404,  858,
2893       858,  858, 3259, 3259, 3259,  858, 1412, 1412, 1412, 1412,
2894      3259, 3259, 1412, 1412, 1420, 1420, 1420, 1420, 3259, 3259,
2895
2896      1420, 1420, 1430, 1430, 1430, 1430, 3259, 3259, 1430, 1430,
2897       874,  874,  874, 3259, 3259, 3259,  874, 1439, 1439, 1439,
2898      1439, 3259, 3259, 1439, 1439, 1445, 1445, 1445, 1445, 3259,
2899      3259, 1445, 1445, 1452, 1452, 1452, 1452, 3259, 3259, 1452,
2900      1452, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
2901      1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1148,
2902      1148, 1148, 1148, 3259, 3259, 1148, 1148, 1183, 1183, 1183,
2903      1183, 3259, 3259, 1183, 1183,  699,  699,  699, 3259, 3259,
2904      3259,  699,  707,  707,  707, 3259, 3259, 3259,  707, 1209,
2905      1209, 1209, 1209, 3259, 3259, 1209, 1209, 1216, 1216, 1216,
2906
2907      1216, 3259, 3259, 1216, 1216, 1247, 1247, 1247, 1247, 3259,
2908      3259, 1247, 1247, 1256, 1256, 1256, 1256, 3259, 3259, 1256,
2909      1256, 1270, 1270, 1270, 1270, 3259, 3259, 1270, 1270,  770,
2910       770,  770, 3259, 3259, 3259,  770, 1300, 1300, 1300, 1300,
2911      3259, 3259, 1300, 1300,  789,  789,  789, 3259, 3259, 3259,
2912       789, 1324, 1324, 1324, 1324, 3259, 3259, 1324, 1324, 1340,
2913      1340, 1340, 1340, 3259, 3259, 1340, 1340,  815,  815,  815,
2914      3259, 3259, 3259,  815,  825,  825,  825, 3259, 3259, 3259,
2915       825, 1363, 1363, 1363, 1363, 3259, 3259, 1363, 1363,  830,
2916       830,  830, 3259, 3259, 3259,  830, 1372, 1372, 1372, 1372,
2917
2918      3259, 3259, 1372, 1372,  836,  836,  836, 3259, 3259, 3259,
2919       836,  844,  844,  844, 3259, 3259, 3259,  844,  851,  851,
2920       851, 3259, 3259, 3259,  851, 1404, 1404, 1404, 1404, 3259,
2921      3259, 1404, 1404,  858,  858,  858, 3259, 3259, 3259,  858,
2922      1412, 1412, 1412, 1412, 3259, 3259, 1412, 1412, 1420, 1420,
2923      1420, 1420, 3259, 3259, 1420, 1420, 1430, 1430, 1430, 1430,
2924      3259, 3259, 1430, 1430,  874,  874,  874,  874, 3259,  874,
2925      3259,  874, 1439, 1439, 1439, 1439, 3259, 3259, 1439, 1439,
2926      1445, 1445, 1445, 1445, 3259, 3259, 1445, 1445, 1452, 1452,
2927      1452, 1452, 3259, 3259, 1452, 1452, 1133, 1133, 1133, 1133,
2928
2929      1133, 1133, 1133, 1133, 1133, 1670, 1670, 1670, 1670, 1670,
2930      1670, 1670, 1670, 1670, 1148, 1148, 1148, 1148, 3259, 3259,
2931      1148, 1148, 1183, 1183, 1183, 1183, 3259, 3259, 1183, 1183,
2932       699,  699,  699, 3259, 3259, 3259,  699,  707,  707,  707,
2933       707, 3259,  707, 3259,  707, 1216, 1216, 1216, 1216, 3259,
2934      3259, 1216, 1216, 1247, 1247, 1247, 1247, 3259, 3259, 1247,
2935      1247, 1256, 1256, 1256, 1256, 3259, 3259, 1256, 1256, 1270,
2936      1270, 1270, 1270, 3259, 3259, 1270, 1270,  770,  770,  770,
2937      3259, 3259, 3259,  770, 1300, 1300, 1300, 1300, 3259, 3259,
2938      1300, 1300,  789,  789,  789, 3259, 3259, 3259,  789, 1324,
2939
2940      1324, 1324, 1324, 3259, 3259, 1324, 1324, 1340, 1340, 1340,
2941      1340, 3259, 3259, 1340, 1340,  815,  815,  815, 3259, 3259,
2942      3259,  815,  825,  825,  825, 3259, 3259, 3259,  825,  830,
2943       830,  830,  830, 3259,  830, 3259,  830, 1372, 1372, 1372,
2944      1372, 3259, 3259, 1372, 1372,  836,  836,  836,  836, 3259,
2945       836, 3259,  836,  844,  844,  844, 3259, 3259, 3259,  844,
2946       851,  851,  851, 3259, 3259, 3259,  851, 1404, 1404, 1404,
2947      1404, 3259, 3259, 1404, 1404,  858,  858,  858,  858, 3259,
2948       858, 3259,  858, 1412, 1412, 1412, 1412, 3259, 3259, 1412,
2949      1412, 1420, 1420, 1420, 1420, 3259, 3259, 1420, 1420, 1430,
2950
2951      1430, 1430, 1430, 3259, 3259, 1430, 1430,  874,  874,  874,
2952       874, 3259,  874, 3259,  874, 1439, 1439, 1439, 1439, 3259,
2953      3259, 1439, 1439, 1445, 1445, 1445, 1445, 3259, 3259, 1445,
2954      1445, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
2955      1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1670, 1148,
2956      1148, 1148, 1148, 3259, 3259, 1148, 1148,  699,  699,  699,
2957      3259, 3259, 3259,  699,  707,  707,  707, 3259, 3259, 3259,
2958       707, 1216, 1216, 1216, 1216, 3259, 3259, 1216, 1216, 1247,
2959      1247, 1247, 1247, 3259, 3259, 1247, 1247, 1270, 1270, 1270,
2960      1270, 3259, 3259, 1270, 1270,  770,  770,  770, 3259, 3259,
2961
2962      3259,  770, 1300, 1300, 1300, 1300, 3259, 3259, 1300, 1300,
2963       789,  789,  789, 3259, 3259, 3259,  789, 2879, 2879, 2879,
2964      2879, 2879, 2879, 2879, 2879, 2879, 2880, 2880, 2880, 2880,
2965      2880, 2880, 2880, 2880, 2880, 2937, 2937, 2937, 2937, 2937,
2966      2937, 2937, 2937, 2937, 2940, 2940, 2940, 2940, 2940, 2940,
2967      2940, 2940, 2940, 2978, 2978, 2978, 2978, 2978, 2978, 2978,
2968      2978, 2978, 2980, 2980, 2980, 2980, 2980, 2980, 2980, 2980,
2969      2980,  253, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2970      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2971      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2972
2973      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2974      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2975      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2976      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
2977      3259, 3259, 3259, 3259, 3259, 3259
2978     } ;
2979
2980 static yyconst flex_int16_t yy_chk[12047] =
2981     {   0,
2982         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2983         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2984         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
2985         8,    8,    8,  258,   11,   13,   13,   12,   14,   14,
2986        13,   13,  307,   14,   14,  259,    8,   17,   17,  258,
2987        13,   15,   15,   14,   15,  262,   15,   16,   16,  361,
2988        16,  259,   16,   18,   18, 1532,   15,   19,   19,   19,
2989       536,  262,   16,   20,   20,   20,   23,   23,   23,   24,
2990        24,   24,  536,   19,   25,   25,   25,  361, 1533,   20,
2991       368,   17,   23, 1059,  307,   24,  256,  256,  256, 1059,
2992
2993        25,  257,  257,  257,  261,  261,  261,   18,   21,   21,
2994        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
2995        21,   21,   21,  291,   21,   21,   21,   21,   21,   26,
2996        26,   26,   27,   27,   27,   28,   28,   28,  291,   29,
2997        29,   29,   30,   30,   30,   26,  368,  467,   27,  285,
2998       467,   28,  673,   21,   21,   29,  301,  280,   30,   31,
2999        31,   31,  282,  282,  282,  285,  289,  289,  289,  298,
3000       298,  298,  301,  280,  357,   31,  673,   21,   22,   22,
3001        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3002        22,   22,   22, 1538,   22,   22,   22,   22,   22,   32,
3003
3004        32,   32,   33,   33,   33,   34,   34,   34,  272,   35,
3005        35,   35,   36,   36,   36,   32,  280,  360,   33,  482,
3006       729,   34,  482,   22,   22,   35,  357,  360,   36,   37,
3007        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3008        40,   41,   41,   41,  729,   37,  548,   22,   38,  312,
3009       272,   39,  463,  548,   40,  360,  272,   41,   42,   42,
3010        42,  272,  305,  305,  305,  312,  272,  309,  309,  309,
3011       320,  320,  320,  463,   42,   43,   43,   43,   43,   43,
3012        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3013       329,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3014
3015        46,   46,   47,   47,   47,  329,   48,   48,   48,   49,
3016        49,   49,   45,  661,  553,   46,  661, 1539,   47,  327,
3017        43,   43,   48,  327,  381,   49,  293,  327,   43,   44,
3018        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3019        44,   44,   44,   44,  323,   44,   44,   44,   44,   44,
3020        50,   50,   50,   51,   51,   51,   52,   52,   52,  468,
3021       323,  566,   55,   55,  562,  293,   50,   55,  294,   51,
3022       553,  562,   52,  468,   44,   44,  381,   55,  293,  382,
3023       293, 1540,   44,   53,   53,   53,   53,   53,   53,   53,
3024        53,   53,   53,   53,   53,   53,   53,   53, 1541,   53,
3025
3026        53,   53,   53,   53, 1542,  337,   55,  294,   59,   59,
3027        59,   60,   60,   60,   63,   63,   63,  566,   56,   56,
3028       294,  337,  294,   56,   59,  317,  552,   60,   53,   53,
3029        63,  382,  317,   56,  552,  589,   53,  394, 1543,   53,
3030       602,  317,  331,  331,  331, 1544,   53,   54,   54,   54,
3031        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3032        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3033        64,   67,   67,   67,   68,   68,   68, 1549,   69,   69,
3034        69,   70,   70,   70,   64,  349,  367,   67,  332,  394,
3035        68,  589,   54,   54,   69,  332,  602,   70, 1550, 1557,
3036
3037        54,  349,  367,   54,  332,  334,  334,  334,  395, 1559,
3038        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3039        57,   57,   57,   57,   57,   57, 1560,   57,   57,   57,
3040        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3041        73,  433,   74,   74,   74,   75,   75,   75,   71, 1566,
3042       373,   72,  344,  387,   73, 1567,   57,   57,   74,  344,
3043       395,   75,  343,  343,  343,   57,  373,   57,  344,  387,
3044       431,   57,  346,  346,  346,  539,   57,   57,   58,   58,
3045        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3046        58,   58,   58,  433,   58,   58,   58,   58,   58,   76,
3047
3048        76,   76,   77,   77,   77,   78,   78,   78,  617,   79,
3049        79,   79,   80,   80,   80,   76,  359, 1574,   77,  431,
3050       617,   78,  431,   58,   58,   79,  359,  539,   80,  354,
3051       354,  354,   58,  359,   58,  370,  370,  370,   58,  380,
3052       380,  380, 1576,   58,   58,   61,   61,   61,   61,   61,
3053        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3054       365,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3055        82,   82,   83,   83,   83,  703,   84,   84,   84,   85,
3056        85,   85,   81,  679, 1577,   82,  652,  679,   83,  365,
3057        61,   61,   84,  365,  365,   85, 1584,   61,  384,  384,
3058
3059       384,  652,  365,   61,  365,  393,  393,  393,  397,  397,
3060       397,  703,   61,   62,   62,   62,   62,   62,   62,   62,
3061        62,   62,   62,   62,   62,   62,   62,   62, 1585,   62,
3062        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3063        88,   88,   88, 1586,   89,   89,   89,   90,   90,   90,
3064        86,  400,  681,   87, 1587,  738,   88,  406,   62,   62,
3065        89,  411,  422,   90,  406,   62,  681,  400,  405,  405,
3066       405,   62,  739,  406,  408,  408,  408,  411,  422,  738,
3067        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3068        65,   65,   65,   65,   65,   65,  739,   65,   65,   65,
3069
3070        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3071        93, 1588,   94,   94,   94,   95,   95,   95,   91,  438,
3072       772,   92,  417,  772,   93,  540,   65,   65,   94,  417,
3073      1589,   95,  416,  416,  416,  438,  432,   65,  417,  419,
3074       419,  419,  430,  430,  430, 1599,   65,   66,   66,   66,
3075        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3076        66,   66,  740,   66,   66,   66,   66,   66,   96,   96,
3077        96,   97,   97,   97,   98,   98,   98,  540,   99,   99,
3078        99,  100,  100,  100,   96,  432,  740,   97,  432,  741,
3079        98, 1601,   66,   66,   99,  443, 1602,  100,  101,  101,
3080
3081       101, 1607,  443,   66,  102,  102,  102,  435,  435,  435,
3082       618,  443,   66,  741,  101,  442,  442,  442,  366, 1609,
3083       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3084       103,  103,  103,  103,  103,  103,  745,  103,  103,  103,
3085       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3086       107,  777,  108,  108,  108,  777,  366,  448,  105, 1136,
3087       745,  106,  618, 1136,  107,  363,  103,  103,  108,  455,
3088       460,  103,  366,  448,  638,  363,  455,  103,  445,  445,
3089       445,  103,  454,  454,  454,  455,  460,  103,  104,  104,
3090       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3091
3092       104,  104,  104,  363,  104,  104,  104,  104,  104,  109,
3093       109,  109,  110,  110,  110,  111,  111,  111,  639,  112,
3094       112,  112,  457,  457,  457,  109,  638,  469,  110,  472,
3095       477,  111, 1463,  104,  104,  112,  472,  492,  104,  469,
3096       469,  471,  471,  471,  104,  472,  477, 1611,  104,  474,
3097       474,  474, 1463,  492,  104,  113,  113,  113,  113,  113,
3098       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3099       639,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3100       116,  116,  117,  117,  117,  685,  118,  118,  118,  486,
3101       486,  486,  115,  508,  519,  116,  487, 1612,  117,  685,
3102
3103       113,  113,  118,  487, 1614,  113,  489,  489,  489,  508,
3104       519,  113,  487,  502,  502,  502,  505,  505,  505,  513,
3105       513,  513,  113,  114,  114,  114,  114,  114,  114,  114,
3106       114,  114,  114,  114,  114,  114,  114,  114, 1615,  114,
3107       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3108       121,  121,  121,  734,  122,  122,  122, 1616,  503, 1167,
3109       119, 1625,  531,  120,  514,  503,  121,  734,  114,  114,
3110       122,  514, 1167,  114,  503,  516,  516,  516,  531,  114,
3111       514,  525,  525,  525,  528,  528,  528,  538,  538,  538,
3112       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3113
3114       123,  123,  123,  123,  123,  123, 1631,  123,  123,  123,
3115       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3116       129, 1632,  130,  130,  130,  133,  133,  133,  125,  545,
3117       558,  126,  526, 1636,  129,  565,  123,  123,  130,  526,
3118      1638,  133,  542,  542,  542,  545,  558,  123,  526,  550,
3119       550,  550,  123,  124,  124,  124,  124,  124,  124,  124,
3120       124,  124,  124,  124,  124,  124,  124,  124, 1650,  124,
3121       124,  124,  124,  124,  134,  134,  134,  135,  135,  135,
3122       136,  136,  136,  565,  137,  137,  137,  138,  138,  138,
3123       134,  565, 1651,  135, 1656, 1659,  136,  571,  124,  124,
3124
3125       137, 1660, 1661,  138, 1663,  551,  555,  555,  555,  124,
3126       564,  564,  564,  571,  124,  127,  127,  127,  127,  127,
3127       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3128      1670,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3129       140,  140,  143,  143,  143,  742,  144,  144,  144,  147,
3130       147,  147,  139,  551, 1673,  140,  577,  551,  143,  742,
3131       127,  127,  144,  577,  582,  147,  568,  568,  568,  576,
3132       576,  576,  577,  579,  579,  579,  127,  587,  587,  587,
3133       582, 1676,  127,  128,  128,  128,  128,  128,  128,  128,
3134       128,  128,  128,  128,  128,  128,  128,  128, 1677,  128,
3135
3136       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3137       152,  152,  152, 1679,  155,  155,  155,  156,  156,  156,
3138       148, 1669,  594,  151, 1680, 1681,  152,  607,  128,  128,
3139       155,  674,  623,  156,  591,  591,  591,  588,  594,  600,
3140       600,  600,  674,  607,  128,  674, 1669,  601,  623, 1682,
3141       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3142       131,  131,  131,  131,  131,  131, 1683,  131,  131,  131,
3143       131,  131,  159,  159,  159,  160,  160,  160,  163,  163,
3144       163, 1684,  164,  164,  164,  588,  633, 1685,  159, 1687,
3145      1688,  160, 1690,  588,  163,  601,  131,  131,  164,  131,
3146
3147       644,  131,  633,  601,  604,  604,  604,  131,  615,  615,
3148       615,  620,  620,  620,  131,  616,  644,  131,  132,  132,
3149       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3150       132,  132,  132, 1692,  132,  132,  132,  132,  132,  167,
3151       167,  167,  168,  168,  168,  171,  171,  171,  684,  172,
3152       172,  172,  616, 1694, 1695,  167,  897, 1697,  168,  684,
3153      1179,  171,  684,  132,  132,  172,  132,  616,  132,  627,
3154       627,  627,  897, 1179,  132,  630,  630,  630,  637,  637,
3155       637,  132, 1699, 1701,  132,  141,  141,  141,  141,  141,
3156       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3157
3158      1702,  141,  141,  141,  141,  141,  173,  173,  173,  174,
3159       174,  174,  175,  175,  175,  744,  176,  176,  176,  177,
3160       177,  177,  173, 1703, 1704,  174,  628,  650,  175,  744,
3161       141,  141,  176,  628,  650,  177,  641,  641,  641,  649,
3162       649,  649,  628,  650, 1705, 1707,  141,  142,  142,  142,
3163       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3164       142,  142, 1716,  142,  142,  142,  142,  142,  178,  178,
3165       178,  181,  181,  181,  182,  182,  182, 1717,  183,  183,
3166       183,  184,  184,  184,  178, 1719, 1723,  181,  680, 1727,
3167       182, 1729,  142,  142,  183,  680, 1736,  184,  651,  651,
3168
3169       651,  680,  660,  660,  660, 1151, 1151, 1151,  142,  145,
3170       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3171       145,  145,  145,  145, 1737,  145,  145,  145,  145,  145,
3172       185,  185,  185,  186,  186,  186,  187,  187,  187,  687,
3173       188,  188,  188,  191,  191,  191,  185, 1738, 1739,  186,
3174       687,  689,  187,  687,  145,  145,  188,  691,  689,  191,
3175       145,  660,  692,  693,  689,  145, 1741, 1745,  691,  692,
3176       693,  691, 1159, 1159, 1159,  692,  693,  145,  146,  146,
3177       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3178       146,  146,  146, 1746,  146,  146,  146,  146,  146,  192,
3179
3180       192,  192,  193,  193,  193,  194,  194,  194, 1747,  195,
3181       195,  195,  196,  196,  196,  192, 1750, 1757,  193,  733,
3182       736,  194, 1769,  146,  146,  195,  733,  736,  196,  146,
3183       743, 1770,  733,  736,  146,  900,  900,  900, 1778,  900,
3184      1781,  743, 1791, 1795,  743, 1802,  146,  149,  149,  149,
3185       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3186       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3187       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3188       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3189       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3190
3191       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3192       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3193       149,  153,  153,  153,  153,  153,  153,  153,  153,  153,
3194       153,  153,  153,  153,  153,  153, 1803,  153,  153,  153,
3195       153,  153,  197,  197,  197,  198,  198,  198,  201,  201,
3196       201, 1804,  202,  202,  202,  205,  205,  205,  197, 1031,
3197      1805,  198, 1233, 1814,  201, 1818,  153,  153,  202, 1031,
3198       153,  205,  912,  912,  912, 1233, 1031,  153, 1821, 1823,
3199       153,  934,  934,  934,  153, 1825,  153,  153,  154,  154,
3200       154,  154,  154,  154,  154,  154,  154,  154,  154,  154,
3201
3202       154,  154,  154, 1826,  154,  154,  154,  154,  154,  206,
3203       206,  206,  207,  207,  207,  208,  208,  208, 1828,  209,
3204       209,  209,  210,  210,  210,  206, 1829, 1830,  207, 1833,
3205      1835,  208, 1837,  154,  154,  209,  912,  154,  210,  946,
3206       946,  946, 1842,  946,  154,  934,  946,  154, 1174, 1174,
3207      1174,  154, 1848,  154,  154,  157,  157,  157,  157,  157,
3208       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3209      1852,  157,  157,  157,  157,  157,  211,  211,  211,  212,
3210       212,  212,  215,  215,  215, 1853,  216,  216,  216,  701,
3211       701,  701,  211, 1854, 1856,  212, 1864, 1868,  215, 1871,
3212
3213       157,  157,  216,  157,  157,  157,  701, 1872,  954,  954,
3214       954,  157,  954, 1864,  157,  954, 1873, 1875,  157, 1865,
3215      1876,  157,  158,  158,  158,  158,  158,  158,  158,  158,
3216       158,  158,  158,  158,  158,  158,  158, 1878,  158,  158,
3217       158,  158,  158,  217,  217,  217,  218,  218,  218,  219,
3218       219,  219, 1879,  220,  220,  220,  709,  709,  709,  217,
3219      1880, 1865,  218, 1882, 1874,  219, 1883,  158,  158,  220,
3220       158,  158,  158,  709, 1884,  969,  969,  969,  158,  969,
3221      1874,  158,  969, 1888, 1890,  158, 1866, 1893,  158,  161,
3222       161,  161,  161,  161,  161,  161,  161,  161,  161,  161,
3223
3224       161,  161,  161,  161, 1894,  161,  161,  161,  161,  161,
3225       221,  221,  221,  222,  222,  222,  225,  225,  225, 1866,
3226       226,  226,  226,  725,  725,  725,  221, 1895, 1896,  222,
3227      1898, 1900,  225, 1901,  161,  161,  226, 1903, 1905,  161,
3228       725, 1230, 1230, 1230, 1908,  161,  162,  162,  162,  162,
3229       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
3230       162, 1909,  162,  162,  162,  162,  162,  227,  227,  227,
3231       228,  228,  228,  229,  229,  229, 1910,  230,  230,  230,
3232       749,  749,  749,  227, 1910, 1911,  228, 1912, 1913,  229,
3233      1915,  162,  162,  230, 1921, 1922,  162,  749, 1479, 1479,
3234
3235      1479, 1924,  162,  165,  165,  165,  165,  165,  165,  165,
3236       165,  165,  165,  165,  165,  165,  165,  165, 1927,  165,
3237       165,  165,  165,  165,  231,  231,  231,  232,  232,  232,
3238       235,  235,  235, 1914,  236,  236,  236,  239,  239,  239,
3239       231, 1914, 1923,  232, 1928, 1929,  235, 1943,  165,  165,
3240       236, 1944,  165,  239,  973,  973,  973, 1949, 1923,  165,
3241      1928, 1929,  165,  166,  166,  166,  166,  166,  166,  166,
3242       166,  166,  166,  166,  166,  166,  166,  166, 1950,  166,
3243       166,  166,  166,  166,  240,  240,  240,  241,  241,  241,
3244       242,  242,  242, 1951,  243,  243,  243,  244,  244,  244,
3245
3246       240, 1955, 1957,  241, 1963, 1970,  242, 1971,  166,  166,
3247       243, 1972,  166,  244,  982,  982,  982, 1985,  973,  166,
3248      1991, 1995,  166,  169,  169,  169,  169,  169,  169,  169,
3249       169,  169,  169,  169,  169,  169,  169,  169, 1998,  169,
3250       169,  169,  169,  169,  245,  245,  245,  246,  246,  246,
3251       249,  249,  249, 2000,  250,  250,  250,  756,  756,  756,
3252       245, 2003, 2005,  246, 2007, 2008,  249,  358,  169,  169,
3253       250, 2009,  169,  292,  756, 2012, 2014,  358,  982,  169,
3254      2019, 2021,  169,  292, 2029, 2030,  364, 2031, 2032,  169,
3255       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
3256
3257       170,  170,  170,  170,  170,  358,  170,  170,  170,  170,
3258       170, 2034,  292, 2048,  364,  761,  761,  761,  292,  358,
3259       773,  773,  773,  358, 2053,  292,  785,  785,  785,  292,
3260       364, 2054,  761, 2055, 2056,  170,  170,  773, 2060,  170,
3261       989,  989,  989,  785,  989, 2062,  170,  989, 2063,  170,
3262      1480, 1480, 1480, 1482, 1482, 1482,  170,  179,  179,  179,
3263       179,  179,  179,  179,  179,  179,  179,  179,  179,  179,
3264       179,  179, 2064,  179,  179,  179,  179,  179,  786,  786,
3265       786,  792,  792,  792,  794,  794,  794,  806,  806,  806,
3266       807,  807,  807, 2047, 2045,  786, 1480, 2069,  792, 1482,
3267
3268      2045,  794,  179,  179,  806, 2076, 2078,  807,  179,  996,
3269       996,  996, 2079,  996, 2082, 2085,  996, 1485, 1485, 1485,
3270      1488, 1488, 1488,  179,  180,  180,  180,  180,  180,  180,
3271       180,  180,  180,  180,  180,  180,  180,  180,  180, 2047,
3272       180,  180,  180,  180,  180,  819,  819,  819,  827,  827,
3273       827,  832,  832,  832,  838,  838,  838,  860,  860,  860,
3274      2089, 2090,  819, 2091, 2092,  827, 2093, 2094,  832,  180,
3275       180,  838, 2095, 2096,  860,  180, 1001, 1001, 1001, 2097,
3276      1001, 2098, 2103, 1001, 1498, 1498, 1498, 1534, 1534, 1534,
3277       180,  189,  189,  189,  189,  189,  189,  189,  189,  189,
3278
3279       189,  189,  189,  189,  189,  189, 2104,  189,  189,  189,
3280       189,  189,  888,  888,  888,  892,  892,  892, 2046, 2105,
3281       910,  910,  910,  911,  911,  911,  942,  942,  942,  888,
3282      2106, 2124,  892,  943,  943,  943,  189,  189,  910, 2125,
3283      2128,  911,  189, 2129,  942,  189, 1013, 1013, 1013, 2046,
3284      1013,  943, 2131, 1013, 1537, 1537, 1537,  189,  190,  190,
3285       190,  190,  190,  190,  190,  190,  190,  190,  190,  190,
3286       190,  190,  190, 2135,  190,  190,  190,  190,  190, 2141,
3287      2142,  911,  945,  945,  945, 2143, 2157,  949,  949,  949,
3288       950,  950,  950,  943,  953,  953,  953, 2161, 2126,  945,
3289
3290       955,  955,  955,  190,  190,  949, 2126, 2162,  950,  190,
3291      2163,  953,  190, 2165, 1025, 1025, 1025,  955, 1025, 2169,
3292      2172, 1025, 2173, 2176,  190,  199,  199,  199,  199,  199,
3293       199,  199,  199,  199,  199,  199,  199,  199,  199,  199,
3294      2177,  199,  199,  199,  199,  199,  957,  957,  957,  961,
3295       961,  961, 2180, 2187,  950, 2189,  962,  962,  962,  966,
3296       966,  966, 2204,  957, 1535, 1535, 1535,  961, 2218, 2219,
3297       199,  199, 2222, 2229,  962, 2230,  199,  966, 1686, 1686,
3298      1686,  199,  200,  200,  200,  200,  200,  200,  200,  200,
3299       200,  200,  200,  200,  200,  200,  200, 2235,  200,  200,
3300
3301       200,  200,  200,  962,  967,  967,  967,  968,  968,  968,
3302      1535,  971,  971,  971,  988,  988,  988,  972,  972,  972,
3303      1731, 2237,  967, 2249,  968, 2250, 1731,  200,  200,  971,
3304      1731,  988, 2251,  200, 1731,  972, 2208, 2252,  200,  203,
3305       203,  203,  203,  203,  203,  203,  203,  203,  203,  203,
3306       203,  203,  203,  203,  972,  203,  203,  203,  203,  203,
3307       992,  992,  992,  993,  993,  993, 1732, 2253,  967,  995,
3308       995,  995, 1732,  998,  998,  998, 1732, 2254,  992, 2208,
3309      1732,  993, 2255, 2256,  203,  203,  995, 1000, 1000, 1000,
3310       203,  998, 1027, 1027, 1027, 2257, 1027, 2258, 2265, 1027,
3311
3312      2266, 1536, 1536, 1536, 1000,  203,  204,  204,  204,  204,
3313       204,  204,  204,  204,  204,  204,  204,  204,  204,  204,
3314       204, 2267,  204,  204,  204,  204,  204, 2269, 2279,  993,
3315       999,  999,  999, 2280, 2281, 1003, 1003, 1003, 1004, 1004,
3316      1004, 1007, 1007, 1007, 1008, 1008, 1008, 1536,  999, 2282,
3317      2127,  204,  204, 1003, 2283, 2284, 1004,  204, 2127, 1007,
3318      2174, 2175, 1008, 1033, 1033, 1033, 2285, 1033, 2174, 2175,
3319      1033, 2288,  204,  213,  213,  213,  213,  213,  213,  213,
3320       213,  213,  213,  213,  213,  213,  213,  213, 2209,  213,
3321       213,  213,  213,  213, 2289, 2294,  999, 2295, 2301, 1004,
3322
3323      1012, 1012, 1012, 1016, 1016, 1016, 1024, 1024, 1024, 1008,
3324      1017, 1017, 1017, 1021, 1021, 1021, 2302, 1012,  213,  213,
3325      2303, 1016, 2304, 1024,  213, 2318, 2319,  213, 1017, 2320,
3326      2321, 1021, 1689, 1689, 1689, 2209, 1627, 1627, 1627,  213,
3327       214,  214,  214,  214,  214,  214,  214,  214,  214,  214,
3328       214,  214,  214,  214,  214, 2323,  214,  214,  214,  214,
3329       214, 1026, 1026, 1026, 2325, 2342, 1022, 1022, 1022, 2348,
3330      2349, 1017, 1028, 1028, 1028, 1029, 1029, 1029, 1026, 1032,
3331      1032, 1032, 1627, 2354, 1022,  214,  214, 1035, 1035, 1035,
3332      1028,  214, 2355, 1029,  214, 2356, 1032, 2342, 1036, 1036,
3333
3334      1036, 2359, 1036, 2362, 1035, 1036,  214,  223,  223,  223,
3335       223,  223,  223,  223,  223,  223,  223,  223,  223,  223,
3336       223,  223, 2343,  223,  223,  223,  223,  223, 1022, 1037,
3337      1037, 1037, 1045, 1045, 1045, 2363, 1029, 1046, 1046, 1046,
3338      1047, 1047, 1047, 1056, 1056, 1056, 1037, 1048, 1048, 1048,
3339      1045, 1048,  223,  223, 1048, 1046, 2364, 1047, 2365, 2343,
3340       223, 1056,  223, 2366, 2367,  223, 1691, 1691, 1691,  223,
3341      1693, 1693, 1693,  223,  224,  224,  224,  224,  224,  224,
3342       224,  224,  224,  224,  224,  224,  224,  224,  224, 2368,
3343       224,  224,  224,  224,  224, 1046, 1049, 1049, 1049, 1050,
3344
3345      1050, 1050, 2369, 1050, 2370, 2371, 1050, 1051, 1051, 1051,
3346      1066, 1066, 1066, 1049, 1052, 1052, 1052, 2372, 2374,  224,
3347       224, 1053, 1053, 1053, 1051, 2375, 2377,  224, 1066,  224,
3348      2376, 1052,  224, 1696, 1696, 1696,  224, 2378, 1053, 2376,
3349       224,  233,  233,  233,  233,  233,  233,  233,  233,  233,
3350       233,  233,  233,  233,  233,  233, 2379,  233,  233,  233,
3351       233,  233, 1057, 1057, 1057, 1052, 1061, 1061, 1061, 1706,
3352      1706, 1706, 2380, 1053, 1055, 1055, 1055, 1054, 1054, 1054,
3353      1057, 2381, 2383, 1061, 2382, 2384,  233,  233, 1062, 1062,
3354      1062, 1055, 1062, 2382, 1054, 1062, 1070, 1070, 1070, 2385,
3355
3356      1070, 2387, 2388, 1070, 2390, 1698, 1698, 1698, 2395, 1057,
3357       233,  234,  234,  234,  234,  234,  234,  234,  234,  234,
3358       234,  234,  234,  234,  234,  234, 1055,  234,  234,  234,
3359       234,  234, 1054, 1063, 1063, 1063, 1069, 1069, 1069, 2396,
3360      1071, 1071, 1071, 2397, 2399, 1067, 1067, 1067, 2404, 2405,
3361      1063, 2408, 2414, 1069, 2415, 2417,  234,  234, 1071, 1072,
3362      1072, 1072, 2426, 1067, 1075, 1075, 1075, 2428, 1075, 1698,
3363      2431, 1075, 1081, 1081, 1081, 2433, 1081, 1072, 2452, 1081,
3364       234,  237,  237,  237,  237,  237,  237,  237,  237,  237,
3365       237,  237,  237,  237,  237,  237, 1067,  237,  237,  237,
3366
3367       237,  237, 1074, 1074, 1074, 1077, 1077, 1077, 1080, 1080,
3368      1080, 2457, 1078, 1078, 1078, 1085, 1085, 1085, 2452, 1074,
3369      1072, 2458, 2460, 1077, 2454, 1080,  237,  237, 2461, 2462,
3370      1078, 2467, 2468, 1085, 1700, 1700, 1700,  237,  238,  238,
3371       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
3372       238,  238,  238, 2469,  238,  238,  238,  238,  238, 1078,
3373      2470, 1086, 1086, 1086, 1087, 1087, 1087, 2454, 1088, 1088,
3374      1088, 1089, 1089, 1089, 1090, 1090, 1090, 2471, 2472, 1086,
3375      1700, 1087, 2473,  238,  238, 1088, 2474, 2475, 1089, 1740,
3376      1740, 1740, 1090, 2476,  238,  247,  247,  247,  247,  247,
3377
3378       247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
3379      2477,  247,  247,  247,  247,  247, 1086, 2479, 2480, 1091,
3380      1091, 1091, 1093, 1093, 1093, 1742, 1742, 1742, 2481, 2482,
3381      1089, 1095, 1095, 1095, 1097, 1097, 1097, 1091, 2483, 1093,
3382       247,  247, 1094, 1094, 1094, 1096, 1096, 1096, 1095, 2453,
3383      2484,  247, 1097, 1101, 1101, 1101, 2485, 1101, 2486, 1094,
3384      1101, 2487, 1096, 2488,  247,  248,  248,  248,  248,  248,
3385       248,  248,  248,  248,  248,  248,  248,  248,  248,  248,
3386      1091,  248,  248,  248,  248,  248, 2453, 1098, 1098, 1098,
3387      2489, 2490, 1094, 2491, 2492, 1100, 1100, 1100, 1102, 1102,
3388
3389      1102, 1103, 1103, 1103, 1096, 1098, 2493, 1094, 2494, 2496,
3390       248,  248, 1100, 1104, 1104, 1104, 1102, 2500, 2507, 1103,
3391      2508,  248, 2512, 2515, 1098, 2556, 1105, 1105, 1105, 2558,
3392      1104, 1106, 1106, 1106,  248,  290, 1107, 1107, 1107, 1111,
3393      1111, 1111,  290, 1105, 1108, 1108, 1108, 2559, 2560, 1106,
3394      2554,  290,  290, 2555, 1107, 2553, 1103, 1111, 1109, 1109,
3395      1109, 1108, 1743, 1743, 1743, 1110, 1110, 1110, 2563, 2564,
3396      1112, 1112, 1112, 2538, 2566, 1109, 1124, 1124, 1124,  290,
3397       290,  290, 1110, 2538, 2553,  290,  290,  290, 1112, 2538,
3398       290,  290, 2554, 1124,  290, 2555,  290,  290,  290,  355,
3399
3400      1118, 1118, 1118, 1119, 1119, 1119,  355, 1107, 1109, 1122,
3401      1122, 1122, 1123, 1123, 1123,  355,  355, 2567, 1118, 2465,
3402      2565, 1119, 2569, 1109, 1125, 1125, 1125, 1122, 1125, 2465,
3403      1123, 1125, 2465, 2565, 1126, 1126, 1126, 2570, 1127, 1127,
3404      1127, 1112, 2571,  355,  355,  355, 1128, 1128, 1128,  355,
3405       355,  355, 1126, 2572,  355,  355, 1127, 2568,  355, 2539,
3406       355,  355,  355, 1128, 1129, 1129, 1129, 1119, 1129, 2539,
3407      2568, 1129, 1131, 1131, 1131, 2539, 1123, 1132, 1132, 1132,
3408      1147, 1147, 1147, 1148, 1148, 1148, 1150, 1150, 1150, 2573,
3409      1131, 1181, 1181, 1181, 2575, 1132, 2576, 2577, 1147, 1127,
3410
3411      2578, 1148, 2581, 2582, 1150, 1182, 1182, 1182, 1181, 1183,
3412      1183, 1183, 1185, 1185, 1185, 1186, 1186, 1186, 1187, 1187,
3413      1187, 2583, 1187, 1182, 2584, 1187, 2585, 1183, 2586, 2587,
3414      1185, 2588, 1186, 1150, 1190, 1190, 1190, 1192, 1192, 1192,
3415      2589, 1132, 1193, 1193, 1193, 1195, 1195, 1195, 1200, 1200,
3416      1200, 1190, 1197, 1197, 1197, 1192, 1197, 2590, 2591, 1197,
3417      1193, 1185, 2592, 1195, 2593, 1200, 1201, 1201, 1201, 2594,
3418      1201, 2595, 2597, 1201, 1202, 1202, 1202, 1203, 1203, 1203,
3419      1204, 1204, 1204, 2607, 1204, 2608, 2609, 1204, 1206, 1206,
3420      1206, 1202, 1195, 2613, 1203, 1190, 1208, 1208, 1208, 1209,
3421
3422      1209, 1209, 1211, 1211, 1211, 1206, 1213, 1213, 1213, 1215,
3423      1215, 1215, 2631, 2632, 1208, 2633, 2634, 1209, 2635, 2636,
3424      1211, 2640, 2648, 1213, 1216, 1216, 1216, 1215, 1218, 1218,
3425      1218, 1219, 1219, 1219, 2640, 1219, 2651, 2652, 1219, 1223,
3426      1223, 1223, 1216, 1224, 1224, 1224, 1218, 1226, 1226, 1226,
3427      2466, 1241, 1241, 1241, 2646, 1241, 2656, 1223, 1241, 2645,
3428      2466, 1224, 1211, 2466, 2657, 1226, 1245, 1245, 1245, 1246,
3429      1246, 1246, 1247, 1247, 1247, 1218, 1249, 1249, 1249, 1255,
3430      1255, 1255, 2641, 1245, 1251, 1251, 1251, 1246, 1251, 2646,
3431      1247, 1251, 2658, 2659, 1249, 2641, 2660, 1255, 1256, 1256,
3432
3433      1256, 1258, 1258, 1258, 1259, 1259, 1259, 2645, 1259, 2661,
3434      2662, 1259, 1262, 1262, 1262, 2663, 1256, 2665, 2666, 1258,
3435      1263, 1263, 1263, 1264, 1264, 1264, 1266, 1266, 1266, 1262,
3436      1267, 1267, 1267, 1268, 1268, 1268, 2667, 1249, 1263, 2668,
3437      2669, 1264, 2670, 2671, 1266, 2672, 2674, 1267, 2675, 2676,
3438      1268, 1269, 1269, 1269, 1270, 1270, 1270, 1272, 1272, 1272,
3439      2677, 1268, 1258, 1275, 1275, 1275, 1276, 1276, 1276, 1269,
3440      1276, 2678, 1270, 1276, 2679, 1272, 1281, 1281, 1281, 2680,
3441      1275, 1282, 1282, 1282, 1284, 1284, 1284, 1287, 1287, 1287,
3442      1288, 1288, 1288, 1266, 1281, 1289, 1289, 1289, 2681, 1282,
3443
3444      2682, 2683, 1284, 2684, 1287, 1292, 1292, 1292, 1288, 1291,
3445      1291, 1291, 2685, 1289, 1293, 1293, 1293, 2686, 1293, 2687,
3446      2688, 1293, 1292, 1272, 1296, 1296, 1296, 1291, 1296, 2694,
3447      2698, 1296, 1299, 1299, 1299, 1300, 1300, 1300, 1302, 1302,
3448      1302, 1307, 1307, 1307, 2699, 1307, 2700, 2701, 1307, 1284,
3449      1299, 2718, 2719, 1300, 2720, 2713, 1302, 1310, 1310, 1310,
3450      1311, 1311, 1311, 2721, 1311, 2713, 2722, 1311, 1314, 1314,
3451      1314, 1315, 1315, 1315, 1310, 1315, 1291, 2723, 1315, 1323,
3452      1323, 1323, 1324, 1324, 1324, 1314, 1326, 1326, 1326, 1327,
3453      1327, 1327, 2714, 1327, 2726, 2727, 1327, 1323, 2716, 2728,
3454
3455      1324, 2717, 2714, 1302, 1326, 1330, 1330, 1330, 2716, 1330,
3456      2729, 2717, 1330, 1333, 1333, 1333, 1334, 1334, 1334, 2738,
3457      1334, 2730, 2739, 1334, 1339, 1339, 1339, 1340, 1340, 1340,
3458      1333, 1342, 1342, 1342, 1347, 1347, 1347, 2740, 1347, 2741,
3459      2742, 1347, 1339, 2743, 2744, 1340, 1350, 1350, 1350, 1342,
3460      1351, 1351, 1351, 1326, 1351, 2730, 2745, 1351, 1354, 1354,
3461      1354, 2748, 2749, 1350, 1355, 1355, 1355, 1357, 1357, 1357,
3462      1359, 1359, 1359, 2751, 1359, 2752, 1354, 1359, 2753, 1342,
3463      2755, 2757, 1355, 2758, 2759, 1357, 1362, 1362, 1362, 1363,
3464      1363, 1363, 1365, 1365, 1365, 1367, 1367, 1367, 2762, 1367,
3465
3466      2763, 2764, 1367, 2765, 1362, 2766, 2769, 1363, 2770, 2777,
3467      1365, 1371, 1371, 1371, 1372, 1372, 1372, 2778, 1357, 1374,
3468      1374, 1374, 2779, 1376, 1376, 1376, 2781, 1376, 2787, 1371,
3469      1376, 2788, 1372, 1382, 1382, 1382, 2789, 1374, 1383, 1383,
3470      1383, 2790, 1385, 1385, 1385, 1386, 1386, 1386, 1387, 1387,
3471      1387, 1382, 1387, 2791, 2792, 1387, 1383, 2793, 2794, 1365,
3472      1385, 2795, 1386, 1388, 1388, 1388, 2796, 2798, 1374, 1389,
3473      1389, 1389, 2799, 1389, 2804, 2805, 1389, 1391, 1391, 1391,
3474      1388, 1392, 1392, 1392, 2806, 1394, 1394, 1394, 1396, 1396,
3475      1396, 2807, 1400, 1400, 1400, 1391, 1708, 1708, 1708, 1392,
3476
3477      2817, 2808, 1385, 1394, 2818, 1396, 1397, 1397, 1397, 1400,
3478      1397, 2819, 2820, 1397, 1401, 1401, 1401, 2821, 1401, 2822,
3479      2823, 1401, 1403, 1403, 1403, 1404, 1404, 1404, 1406, 1406,
3480      1406, 1408, 1408, 1408, 2824, 1408, 2828, 2829, 1408, 2830,
3481      1403, 2831, 1708, 1404, 2808, 2832, 1406, 1411, 1411, 1411,
3482      2833, 2835, 1394, 1412, 1412, 1412, 1414, 1414, 1414, 1415,
3483      1415, 1415, 1416, 1416, 1416, 1411, 1416, 2836, 2838, 1416,
3484      2839, 1412, 2840, 2841, 1414, 2843, 1415, 1417, 1417, 1417,
3485      1418, 1418, 1418, 2844, 1418, 2848, 2849, 1418, 1419, 1419,
3486      1419, 2850, 1406, 2853, 1417, 1420, 1420, 1420, 2858, 1422,
3487
3488      1422, 1422, 1423, 1423, 1423, 2859, 1419, 1424, 1424, 1424,
3489      2860, 1424, 2861, 1420, 1424, 2862, 1414, 1422, 2863, 1423,
3490      1427, 1427, 1427, 1428, 1428, 1428, 2864, 1428, 2865, 2866,
3491      1428, 1429, 1429, 1429, 1430, 1430, 1430, 1427, 1432, 1432,
3492      1432, 1434, 1434, 1434, 1438, 1438, 1438, 2867, 2868, 1429,
3493      2869, 2871, 1430, 1439, 1439, 1439, 1432, 2872, 1434, 2873,
3494      2874, 1422, 1438, 1441, 1441, 1441, 1444, 1444, 1444, 2877,
3495      2881, 1439, 1445, 1445, 1445, 1447, 1447, 1447, 1448, 1448,
3496      1448, 1441, 1448, 2877, 1444, 1448, 1451, 1451, 1451, 2875,
3497      1445, 2884, 2885, 1447, 1452, 1452, 1452, 1454, 1454, 1454,
3498
3499      1432, 1455, 1455, 1455, 1451, 1455, 2888, 2890, 1455, 1459,
3500      1459, 1459, 1452, 2891, 2878, 1454, 1460, 1460, 1460, 1462,
3501      1462, 1462, 2893, 2894, 1441, 2878, 2897, 1459, 1447, 1464,
3502      1464, 1464, 2898, 2899, 1460, 2875, 2900, 1462, 1471, 1471,
3503      1471, 1501, 1501, 1501, 1503, 1503, 1503, 1464, 1464, 2901,
3504      1504, 1504, 1504, 1529, 1529, 1529, 1471, 1454, 1501, 1502,
3505      1502, 1502, 1503, 1502, 2902, 2903, 1502, 1504, 1505, 1505,
3506      1505, 1529, 1505, 2904, 2905, 1505, 1508, 1508, 1508, 2906,
3507      1462, 1510, 1510, 1510, 2907, 1510, 2911, 2909, 1510, 1513,
3508      1513, 1513, 2919, 2910, 1508, 2921, 1514, 1514, 1514, 2909,
3509
3510      1514, 2916, 1503, 1514, 1471, 2910, 1513, 1515, 1515, 1515,
3511      2917, 1515, 2923, 2916, 1515, 1519, 1519, 1519, 2925, 1520,
3512      1520, 1520, 2917, 1520, 2933, 1508, 1520, 1522, 1522, 1522,
3513      2935, 2936, 1519, 1524, 1524, 1524, 1525, 1525, 1525, 2939,
3514      1525, 2938, 2938, 1525, 2941, 1522, 1526, 1526, 1526, 2943,
3515      1524, 1527, 1527, 1527, 1545, 1545, 1545, 1546, 1546, 1546,
3516      1547, 1547, 1547, 1526, 1547, 2944, 2945, 1547, 2946, 1527,
3517      2953, 1545, 2936, 2957, 1546, 2952, 2937, 1522, 1548, 1548,
3518      1548, 1551, 1551, 1551, 1552, 1552, 1552, 1553, 1553, 1553,
3519      2937, 1553, 2962, 2952, 1553, 2963, 1548, 2965, 2956, 1551,
3520
3521      1527, 1552, 1554, 1554, 1554, 1555, 1555, 1555, 1556, 1556,
3522      1556, 2962, 1556, 2956, 2968, 1556, 1558, 1558, 1558, 2964,
3523      1554, 2940, 1555, 1561, 1561, 1561, 1562, 1562, 1562, 2970,
3524      1562, 2975, 2940, 1562, 1558, 1563, 1563, 1563, 2964, 2976,
3525      1561, 2967, 1548, 2978, 2979, 1551, 1564, 1564, 1564, 1565,
3526      1565, 1565, 1563, 1568, 1568, 1568, 2980, 1569, 1569, 1569,
3527      2967, 1569, 1554, 1564, 1569, 2969, 2982, 1565, 2983, 2984,
3528      1568, 1570, 1570, 1570, 1571, 1571, 1571, 1558, 1572, 1572,
3529      1572, 2985, 1572, 2987, 2969, 1572, 1573, 1573, 1573, 1570,
3530      2988, 1571, 1564, 1575, 1575, 1575, 1578, 1578, 1578, 1579,
3531
3532      1579, 1579, 2990, 1579, 1573, 2991, 1579, 1580, 1580, 1580,
3533      1575, 1580, 2998, 1578, 1580, 1565, 1583, 1583, 1583, 1590,
3534      1590, 1590, 1591, 1591, 1591, 2999, 1591, 3000, 3001, 1591,
3535      1594, 1594, 1594, 1583, 1595, 1595, 1595, 1590, 1596, 1596,
3536      1596, 1597, 1597, 1597, 1598, 1598, 1598, 1594, 1600, 1600,
3537      1600, 1595, 1573, 3002, 3003, 1596, 3006, 3007, 1597, 1603,
3538      1603, 1603, 1598, 1603, 3008, 1600, 1603, 3009, 3010, 1606,
3539      1606, 1606, 1608, 1608, 1608, 1610, 1610, 1610, 1613, 1613,
3540      1613, 1617, 1617, 1617, 1590, 1596, 1606, 1618, 1618, 1618,
3541      1608, 3011, 3012, 1610, 3013, 3015, 1613, 3017, 1617, 1598,
3542
3543      3019, 1626, 1626, 1626, 1595, 1618, 1619, 1619, 1619, 3020,
3544      1619, 1597, 3022, 1619, 1622, 1622, 1622, 3033, 1622, 1626,
3545      3034, 1622, 1628, 1628, 1628, 3035, 1628, 1617, 3036, 1628,
3546      1633, 1633, 1633, 3037, 1633, 1613, 1608, 1633, 1637, 1637,
3547      1637, 1610, 3031, 3038, 1618, 1639, 1639, 1639, 1640, 1640,
3548      1640, 3042, 1640, 3032, 3031, 1640, 1637, 1643, 1643, 1643,
3549      3043, 1643, 3044, 1639, 1643, 3032, 3045, 1626, 1646, 1646,
3550      1646, 1647, 1647, 1647, 3046, 1647, 3047, 3048, 1647, 3049,
3551      1652, 1652, 1652, 3052, 1652, 3053, 1646, 1652, 1655, 1655,
3552      1655, 1657, 1657, 1657, 1658, 1658, 1658, 3054, 1658, 1637,
3553
3554      3050, 1658, 1639, 1662, 1662, 1662, 1655, 3055, 1657, 1664,
3555      1664, 1664, 1665, 1665, 1665, 1646, 1666, 1666, 1666, 3056,
3556      3057, 1662, 1667, 1667, 1667, 3050, 1664, 1668, 1668, 1668,
3557      1665, 1671, 1671, 1671, 1666, 1655, 1678, 1678, 1678, 1667,
3558      1709, 1709, 1709, 3058, 1709, 1668, 3059, 1709, 3060, 1671,
3559      3061, 3062, 1662, 3063, 1678, 1712, 1712, 1712, 1713, 1713,
3560      1713, 3064, 1713, 3065, 3066, 1713, 3067, 3068, 1666, 1718,
3561      1718, 1718, 3069, 1712, 1720, 1720, 1720, 3070, 1720, 1665,
3562      3071, 1720, 1671, 1728, 1728, 1728, 3074, 1718, 1678, 1668,
3563      1724, 1724, 1724, 3077, 1724, 3078, 3079, 1724, 3080, 1671,
3564
3565      3081, 1728, 1730, 1730, 1730, 3074, 1730, 3082, 3083, 1730,
3566      1733, 1733, 1733, 3084, 1734, 1734, 1734, 3085, 1734, 3086,
3567      1718, 1734, 1712, 1735, 1735, 1735, 3087, 1733, 1744, 1744,
3568      1744, 1748, 1748, 1748, 1749, 1749, 1749, 1751, 1751, 1751,
3569      3088, 1735, 3089, 3090, 1728, 1752, 1752, 1752, 3091, 1752,
3570      3092, 3093, 1752, 3094, 1751, 1753, 1753, 1753, 3095, 1753,
3571      3096, 3097, 1753, 1756, 1756, 1756, 1758, 1758, 1758, 1759,
3572      1759, 1759, 3098, 3099, 1735, 1760, 1760, 1760, 3095, 1760,
3573      3100, 1756, 1760, 1758, 1763, 1763, 1763, 1759, 3101, 1764,
3574      1764, 1764, 1744, 1764, 3102, 1748, 1764, 3103, 1749, 1768,
3575
3576      1768, 1768, 1763, 1767, 1767, 1767, 3104, 1771, 1771, 1771,
3577      1756, 1771, 3105, 3106, 1771, 3107, 1759, 1768, 3108, 3109,
3578      1767, 1774, 1774, 1774, 1775, 1775, 1775, 3110, 1775, 3111,
3579      3112, 1775, 1776, 1776, 1776, 1777, 1777, 1777, 1774, 1777,
3580      3113, 3117, 1777, 1779, 1779, 1779, 1780, 1780, 1780, 1776,
3581      1763, 1782, 1782, 1782, 3114, 1782, 3118, 3119, 1782, 3120,
3582      3114, 1779, 3121, 1768, 1785, 1785, 1785, 1787, 1787, 1787,
3583      3122, 1787, 3124, 3125, 1787, 1790, 1790, 1790, 1792, 1792,
3584      1792, 3127, 1785, 1793, 1793, 1793, 3128, 1793, 3130, 3131,
3585      1793, 3133, 3134, 1790, 3135, 1792, 1794, 1794, 1794, 1796,
3586
3587      1796, 1796, 3136, 1796, 3137, 3133, 1796, 1799, 1799, 1799,
3588      1800, 1800, 1800, 1794, 1800, 3139, 3141, 1800, 1801, 1801,
3589      1801, 1790, 3143, 3145, 1799, 1806, 1806, 1806, 1807, 1807,
3590      1807, 1808, 1808, 1808, 3147, 1801, 1809, 1809, 1809, 3148,
3591      1809, 3149, 1806, 1809, 3150, 3151, 1807, 3152, 1808, 1810,
3592      1810, 1810, 1811, 1811, 1811, 1812, 1812, 1812, 1813, 1813,
3593      1813, 1815, 1815, 1815, 3153, 3154, 1810, 3156, 3158, 1811,
3594      3160, 3161, 1812, 1816, 1816, 1816, 1813, 1816, 1815, 3162,
3595      1816, 1817, 1817, 1817, 1819, 1819, 1819, 3163, 1820, 1820,
3596      1820, 3180, 1820, 3178, 1807, 1820, 3164, 3178, 1817, 3180,
3597
3598      3181, 1819, 1822, 1822, 1822, 1824, 1824, 1824, 3181, 1531,
3599      1811, 1827, 1827, 1827, 1831, 1831, 1831, 3165, 1813, 1528,
3600      1822, 3179, 1523, 1824, 3184, 3179, 1832, 1832, 1832, 1827,
3601      1832, 1831, 3164, 1832, 1834, 1834, 1834, 1836, 1836, 1836,
3602      1838, 1838, 1838, 1839, 1839, 1839, 1840, 1840, 1840, 1841,
3603      1841, 1841, 1834, 3165, 3182, 1836, 1824, 1838, 3172, 1827,
3604      1839, 3173, 3182, 1840, 1844, 1844, 1844, 1841, 1843, 1843,
3605      1843, 3184, 1845, 1845, 1845, 1846, 1846, 1846, 1847, 1847,
3606      1847, 3196, 1844, 1849, 1849, 1849, 1843, 1849, 1836, 1845,
3607      1849, 3174, 1846, 1855, 1855, 1855, 1847, 3176, 1857, 1857,
3608
3609      1857, 1858, 1858, 1858, 3183, 1858, 3172, 3190, 1858, 3173,
3610      1840, 1855, 3183, 3196, 1843, 1857, 1841, 1859, 1859, 1859,
3611      1860, 1860, 1860, 1861, 1861, 1861, 1862, 1862, 1862, 1844,
3612      1862, 1521, 1518, 1862, 1509, 1859, 1507, 3186, 1860, 3174,
3613      1861, 3176, 3190, 1847, 1855, 1863, 1863, 1863, 1869, 1869,
3614      1869, 1870, 1870, 1870, 1877, 1877, 1877, 1881, 1881, 1881,
3615      1885, 1885, 1885, 1863, 3177, 1869, 1886, 1886, 1886, 1870,
3616      1887, 1887, 1887, 3185, 3186, 1860, 1859, 1889, 1889, 1889,
3617      1891, 1891, 1891, 1892, 1892, 1892, 1897, 1897, 1897, 1899,
3618      1899, 1899, 1902, 1902, 1902, 1506, 1904, 1904, 1904, 1906,
3619
3620      1906, 1906, 1907, 1907, 1907, 3197, 3191, 1899, 3177, 3187,
3621      1902, 1500, 1870, 1904, 1916, 1916, 1916, 1906, 1916, 1907,
3622      3185, 1916, 1919, 1919, 1919, 1920, 1920, 1920, 1925, 1925,
3623      1925, 1926, 1926, 1926, 1930, 1930, 1930, 3197, 3175, 1899,
3624      1919, 3191, 1920, 1931, 1931, 1931, 3187, 1931, 3188, 1499,
3625      1931, 1930, 1934, 1934, 1934, 1935, 1935, 1935, 1906, 1936,
3626      1936, 1936, 1937, 1937, 1937, 3194, 1937, 3192, 1919, 1937,
3627      1934, 3189, 1935, 1938, 1938, 1938, 1936, 1939, 1939, 1939,
3628      1940, 1940, 1940, 1941, 1941, 1941, 3175, 1941, 3195, 3188,
3629      1941, 1938, 1942, 1942, 1942, 1939, 3230, 1940, 3193, 1945,
3630
3631      1945, 1945, 3194, 1945, 3230, 1934, 1945, 1948, 1948, 1948,
3632      1942, 1948, 3189, 3192, 1948, 1952, 1952, 1952, 1954, 1954,
3633      1954, 3198, 1956, 1956, 1956, 3195, 1938, 1958, 1958, 1958,
3634      3198, 1958, 3202, 1952, 1958, 1961, 1961, 1961, 3199, 1942,
3635      1956, 1962, 1962, 1962, 3193, 1962, 3200, 3199, 1962, 1964,
3636      1964, 1964, 1961, 1964, 3204, 3222, 1964, 1967, 1967, 1967,
3637      1968, 1968, 1968, 3201, 1968, 1497, 3202, 1968, 1969, 1969,
3638      1969, 1973, 1973, 1973, 1967, 1974, 1974, 1974, 3206, 1974,
3639      1956, 3200, 1974, 3205, 3222, 1969, 3212, 3207, 1973, 1975,
3640      1975, 1975, 1976, 1976, 1976, 3212, 1976, 3204, 3201, 1976,
3641
3642      1979, 1979, 1979, 3210, 1980, 1980, 1980, 1975, 1980, 3203,
3643      3244, 1980, 1981, 1981, 1981, 1496, 3255, 1979, 1982, 1982,
3644      1982, 1983, 1983, 1983, 3206, 1983, 3205, 3255, 1983, 1981,
3645      1984, 1984, 1984, 3207, 3218, 1982, 3210, 1986, 1986, 1986,
3646      1975, 1986, 3244, 3203, 1986, 1989, 1989, 1989, 1984, 1990,
3647      1990, 1990, 3208, 1990, 3213, 1495, 1990, 1992, 1992, 1992,
3648      3209, 1992, 1989, 3213, 1992, 1996, 1996, 1996, 1999, 1999,
3649      1999, 2001, 2001, 2001, 2002, 2002, 2002, 2004, 2004, 2004,
3650      3218, 1984, 3214, 1996, 3211, 3215, 1999, 3208, 2001, 2006,
3651      2006, 2006, 2002, 2006, 2004, 3209, 2006, 2010, 2010, 2010,
3652
3653      2013, 2013, 2013, 2015, 2015, 2015, 2016, 2016, 2016, 1494,
3654      2016, 3219, 3224, 2016, 3216, 2010, 3250, 3211, 2013, 3214,
3655      2015, 3224, 3215, 2004, 2017, 2017, 2017, 2018, 2018, 2018,
3656      3217, 2018, 1999, 3223, 2018, 2002, 2020, 2020, 2020, 1493,
3657      3226, 2017, 2022, 2022, 2022, 2023, 2023, 2023, 2024, 2024,
3658      2024, 2025, 2025, 2025, 2020, 2025, 3216, 3219, 2025, 3220,
3659      2022, 1492, 3223, 2023, 3250, 2024, 2026, 2026, 2026, 2027,
3660      2027, 2027, 3217, 2027, 3226, 3221, 2027, 2028, 2028, 2028,
3661      2033, 2033, 2033, 2026, 3225, 2035, 2035, 2035, 1491, 2035,
3662      3232, 2022, 2035, 3225, 3227, 2028, 3220, 3228, 2033, 2038,
3663
3664      2038, 2038, 2020, 2039, 2039, 2039, 3238, 2040, 2040, 2040,
3665      2023, 2040, 3221, 1490, 2040, 1489, 1487, 2038, 2043, 2043,
3666      2043, 2039, 2049, 2049, 2049, 2050, 2050, 2050, 3227, 2050,
3667      3231, 3246, 2050, 2051, 2051, 2051, 2043, 3232, 3231, 2049,
3668      3246, 3238, 2028, 3228, 1486, 2033, 2052, 2052, 2052, 1484,
3669      2038, 2051, 2057, 2057, 2057, 1483, 2039, 2058, 2058, 2058,
3670      2059, 2059, 2059, 2061, 2061, 2061, 2065, 2065, 2065, 2066,
3671      2066, 2066, 2067, 2067, 2067, 2068, 2068, 2068, 2070, 2070,
3672      2070, 2071, 2071, 2071, 2072, 2072, 2072, 2073, 2073, 2073,
3673      2074, 2074, 2074, 2075, 2075, 2075, 3229, 2051, 2077, 2077,
3674
3675      2077, 2080, 2080, 2080, 3247, 2083, 2083, 2083, 2084, 2084,
3676      2084, 1481, 2084, 3247, 1478, 2084, 2077, 1477, 3254, 2080,
3677      1476, 2068, 2083, 2086, 2086, 2086, 2087, 2087, 2087, 2088,
3678      2088, 2088, 3254, 2088, 1475, 3236, 2088, 2099, 2099, 2099,
3679      3234, 2086, 3229, 2087, 2100, 2100, 2100, 3240, 3233, 2077,
3680      2101, 2101, 2101, 3235, 2101, 2099, 1474, 2101, 2102, 2102,
3681      2102, 2100, 2107, 2107, 2107, 2108, 2108, 2108, 2109, 2109,
3682      2109, 2110, 2110, 2110, 3251, 2110, 3236, 3234, 2110, 2111,
3683      2111, 2111, 2112, 2112, 2112, 2109, 2099, 2113, 2113, 2113,
3684      3235, 2113, 3241, 3240, 2113, 3233, 1473, 2111, 1472, 2112,
3685
3686      2114, 2114, 2114, 3237, 2114, 3239, 3242, 2114, 2117, 2117,
3687      2117, 2108, 1470, 2118, 2118, 2118, 2120, 2120, 2120, 1469,
3688      2120, 3243, 3251, 2120, 1468, 1467, 2117, 2123, 2123, 2123,
3689      2111, 2118, 2130, 2130, 2130, 2132, 2132, 2132, 3241, 2132,
3690      3239, 1458, 2132, 3242, 3237, 2123, 1443, 2136, 2136, 2136,
3691      2130, 2136, 3245, 1442, 2136, 2139, 2139, 2139, 3243, 2117,
3692      2140, 2140, 2140, 1437, 2140, 3248, 3249, 2140, 1436, 2144,
3693      2144, 2144, 2139, 2144, 1435, 1433, 2144, 2147, 2147, 2147,
3694      2123, 2148, 2148, 2148, 3245, 2148, 1426, 2130, 2148, 2151,
3695      2151, 2151, 2152, 2152, 2152, 2147, 2152, 3248, 3249, 2152,
3696
3697      2153, 2153, 2153, 3252, 2153, 1425, 2151, 2153, 2156, 2156,
3698      2156, 2158, 2158, 2158, 1407, 2158, 1402, 1399, 2158, 2164,
3699      2164, 2164, 2166, 2166, 2166, 1398, 2156, 2167, 2167, 2167,
3700      1395, 2167, 1390, 1381, 2167, 3252, 3253, 2164, 1380, 2166,
3701      1379, 2147, 2168, 2168, 2168, 2170, 2170, 2170, 2171, 2171,
3702      2171, 1375, 2171, 1370, 1366, 2171, 1358, 2178, 2178, 2178,
3703      2168, 1353, 2170, 2181, 2181, 2181, 1352, 2181, 3253, 1346,
3704      2181, 2188, 2188, 2188, 2156, 2178, 2184, 2184, 2184, 1345,
3705      2184, 1344, 1343, 2184, 1338, 2190, 2190, 2190, 1337, 2188,
3706      2191, 2191, 2191, 2192, 2192, 2192, 1336, 2192, 1335, 1322,
3707
3708      2192, 1321, 2168, 2190, 1320, 2195, 2195, 2195, 2191, 2195,
3709      1319, 1318, 2195, 2198, 2198, 2198, 1317, 2199, 2199, 2199,
3710      1316, 1306, 2188, 2200, 2200, 2200, 2191, 2201, 2201, 2201,
3711      1305, 2198, 1304, 2198, 2199, 2202, 2202, 2202, 1303, 1286,
3712      2200, 2203, 2203, 2203, 2201, 2205, 2205, 2205, 2206, 2206,
3713      2206, 2190, 2202, 2207, 2207, 2207, 2210, 2210, 2210, 2203,
3714      2211, 2211, 2211, 2205, 2211, 1285, 2206, 2211, 2214, 2214,
3715      2214, 2207, 1280, 1279, 2200, 2215, 2215, 2215, 2216, 2216,
3716      2216, 2217, 2217, 2217, 1274, 1273, 2214, 2220, 2220, 2220,
3717      1254, 2201, 1250, 1244, 2202, 2221, 2221, 2221, 2223, 2223,
3718
3719      2223, 2224, 2224, 2224, 1240, 2205, 2203, 2225, 2225, 2225,
3720      2226, 2226, 2226, 2227, 2227, 2227, 2228, 2228, 2228, 2231,
3721      2231, 2231, 2232, 2232, 2232, 1239, 1238, 2214, 2233, 2233,
3722      2233, 2234, 2234, 2234, 2236, 2236, 2236, 2239, 2239, 2239,
3723      2240, 2240, 2240, 1237, 2240, 1236, 1235, 2240, 2243, 2243,
3724      2243, 1234, 2236, 1232, 2239, 2244, 2244, 2244, 1231, 2246,
3725      2246, 2246, 1229, 2246, 1228, 2243, 2246, 2259, 2259, 2259,
3726      2260, 2260, 2260, 2244, 2260, 2261, 2261, 2260, 2261, 1227,
3727      2262, 2262, 1222, 2262, 1214, 2259, 2261, 1212, 1207, 2261,
3728      1205, 2262, 1196, 2261, 2262, 2263, 2263, 2263, 2262, 2264,
3729
3730      2264, 2264, 2268, 2268, 2268, 2270, 2270, 2270, 1191, 2270,
3731      1180, 1178, 2270, 1177, 2243, 2273, 2273, 2273, 2274, 2274,
3732      2274, 1176, 2274, 1175, 1173, 2274, 1172, 1171, 2259, 2277,
3733      2277, 2277, 1170, 2273, 2278, 2278, 2278, 2286, 2286, 2286,
3734      2287, 2287, 2287, 1169, 2290, 2290, 2290, 2277, 2290, 1168,
3735      1166, 2290, 2278, 2293, 2293, 2293, 1165, 1164, 2287, 1163,
3736      1162, 2273, 2296, 2296, 2296, 2297, 2297, 2297, 1161, 2297,
3737      2293, 1160, 2297, 2300, 2300, 2300, 2305, 2305, 2305, 1158,
3738      2296, 2307, 2307, 2307, 1157, 2278, 2308, 2308, 2308, 1156,
3739      2308, 2300, 1155, 2308, 2305, 2311, 2311, 2311, 2307, 1154,
3740
3741      2287, 2312, 2312, 2312, 2313, 2313, 2313, 1153, 2313, 1152,
3742      1146, 2313, 1145, 2311, 2316, 2316, 2316, 1144, 2312, 2317,
3743      2317, 2317, 2322, 2322, 2322, 2324, 2324, 2324, 2327, 2327,
3744      2327, 2316, 2326, 2326, 2326, 1141, 2317, 1140, 1139, 2322,
3745      2328, 2328, 2328, 1137, 1133, 2327, 2311, 2312, 1130, 1121,
3746      2326, 1120, 2329, 2329, 2329, 2331, 2331, 2331, 2328, 2330,
3747      2330, 2330, 1117, 1116, 2332, 2332, 2332, 1115, 2332, 2316,
3748      2329, 2332, 2331, 2322, 2333, 2333, 2333, 2330, 1114, 1113,
3749      2317, 2334, 2334, 2334, 2335, 2335, 2335, 2336, 2336, 2336,
3750      1099, 2333, 2337, 2337, 2337, 1092, 2330, 1084, 2334, 1083,
3751
3752      2328, 2335, 2338, 2338, 2338, 2336, 2339, 2339, 2339, 2341,
3753      2341, 2341, 1082, 2329, 2344, 2344, 2344, 2346, 2346, 2346,
3754      2338, 2345, 2345, 2345, 2339, 1079, 1076, 2341, 2347, 2347,
3755      2347, 1073, 2334, 1068, 1065, 2335, 2350, 2350, 2350, 2345,
3756      2351, 2351, 2351, 2352, 2352, 2352, 2353, 2353, 2353, 2357,
3757      2357, 2357, 2360, 2360, 2360, 2361, 2361, 2361, 1064, 2361,
3758      1060, 1058, 2361, 2373, 2373, 2373, 1044, 2357, 2338, 2360,
3759      1043, 2341, 2386, 2386, 2386, 2389, 2389, 2389, 2391, 2391,
3760      2391, 2373, 2392, 2392, 2392, 2394, 2394, 2394, 2401, 2401,
3761      2401, 2402, 2402, 2402, 1042, 1041, 2391, 2403, 2403, 2403,
3762
3763      2392, 1040, 1039, 2394, 1038, 2401, 1034, 2406, 2406, 2406,
3764      2407, 2407, 2407, 1030, 2407, 2403, 1023, 2407, 2409, 2409,
3765      2409, 1020, 1019, 2373, 2406, 2410, 2410, 2410, 2412, 2412,
3766      2412, 2416, 2416, 2416, 1018, 2409, 2418, 2418, 2418, 1015,
3767      2420, 2420, 2420, 2410, 2391, 1014, 2412, 1011, 2416, 2421,
3768      2421, 2421, 1010, 2418, 2403, 2419, 2419, 2419, 2420, 2419,
3769      1009, 1006, 2419, 2422, 2422, 2422, 2421, 2422, 1005, 1002,
3770      2422, 2423, 2423, 2423, 2424, 2424, 2424, 2425, 2425, 2425,
3771      2430, 2430, 2430, 2432, 2432, 2432,  997,  994, 2423,  991,
3772       990, 2424,  987,  986, 2425,  985,  984, 2430, 2434, 2434,
3773
3774      2434, 2436, 2436, 2436, 2437, 2437, 2437,  983, 2437,  981,
3775       980, 2437, 2438, 2438, 2438,  979, 2434,  978, 2436, 2439,
3776      2439, 2439,  977, 2423, 2440, 2440, 2440, 2441, 2441, 2441,
3777      2438, 2441, 2424,  976, 2441, 2425,  975, 2439, 2444, 2444,
3778      2444,  974, 2440, 2445, 2445, 2445,  970, 2445,  965,  964,
3779      2445, 2446, 2446, 2446,  963, 2444, 2447, 2447, 2447, 2448,
3780      2448, 2448, 2450, 2450, 2450, 2451, 2451, 2451, 2446, 2455,
3781      2455, 2455,  960, 2447, 2459, 2459, 2459, 2448, 2463, 2463,
3782      2463,  959,  958, 2451,  956,  952, 2439, 2455, 2440, 2464,
3783      2464, 2464,  948, 2464,  947, 2463, 2464, 2478, 2478, 2478,
3784
3785      2495, 2495, 2495, 2497, 2497, 2497, 2498, 2498, 2498, 2501,
3786      2501, 2501, 2504, 2504, 2504, 2478, 2505, 2505, 2505,  944,
3787      2505, 2497,  941, 2505, 2498,  940, 2501,  939,  938, 2504,
3788      2506, 2506, 2506, 2509, 2509, 2509,  937, 2509,  936,  935,
3789      2509, 2513, 2513, 2513,  933, 2514, 2514, 2514, 2506, 2514,
3790       932,  931, 2514, 2516, 2516, 2516,  930, 2478, 2513, 2517,
3791      2517, 2517, 2518, 2518, 2518,  929, 2518,  928,  927, 2518,
3792      2516, 2519, 2519, 2519, 2497,  926, 2517, 2520, 2520, 2520,
3793       925, 2520,  924,  923, 2520, 2523, 2523, 2523, 2519, 2525,
3794      2525, 2525,  922, 2525,  921,  920, 2525, 2528, 2528, 2528,
3795
3796      2529, 2529, 2529, 2523, 2530, 2530, 2530, 2533, 2533, 2533,
3797       919, 2534, 2534, 2534, 2528, 2534,  918, 2529, 2534,  917,
3798       916, 2530,  915,  914, 2533, 2535, 2535, 2535, 2536, 2536,
3799      2536, 2537, 2537, 2537,  913, 2537,  909,  908, 2537, 2540,
3800      2540, 2540, 2535,  906,  905, 2536, 2542, 2542, 2542,  904,
3801       903, 2529, 2528, 2543, 2543, 2543,  902, 2540,  898, 2530,
3802       896, 2544, 2544, 2544, 2542, 2544,  895,  894, 2544,  893,
3803       889, 2543, 2547, 2547, 2547, 2548, 2548, 2548,  885, 2548,
3804       884,  881, 2548, 2549, 2549, 2549, 2550, 2550, 2550, 2547,
3805      2550,  880,  879, 2550,  878, 2551, 2551, 2551,  877,  876,
3806
3807      2549, 2557, 2557, 2557, 2561, 2561, 2561, 2580, 2580, 2580,
3808       875,  872, 2542, 2551, 2543, 2562, 2562, 2562,  871, 2562,
3809       870, 2561, 2562,  869,  866, 2580, 2596, 2596, 2596, 2598,
3810      2598, 2598, 2599, 2599, 2599, 2600, 2600, 2600, 2601, 2601,
3811      2601,  865, 2601,  864,  861, 2601,  859, 2598,  856, 2599,
3812       855,  854, 2600, 2602, 2602, 2602,  853, 2602, 2580,  852,
3813      2602, 2605, 2605, 2605, 2610, 2610, 2610,  849, 2610,  848,
3814       847, 2610, 2614, 2614, 2614, 2649, 2649, 2649, 2599, 2605,
3815      2615, 2615, 2615,  846, 2615,  845,  842, 2615,  841, 2614,
3816       840, 2598, 2616, 2616, 2616,  839, 2616,  837,  834, 2616,
3817
3818      2619, 2619, 2619, 2620, 2620, 2620,  833, 2620,  831,  828,
3819      2620, 2621, 2621, 2621, 2622, 2622, 2622, 2619, 2623, 2623,
3820      2623,  826, 2624, 2624, 2624,  823, 2624,  822, 2621, 2624,
3821       821, 2622, 2627, 2627, 2627, 2623, 2628, 2628, 2628,  820,
3822      2628,  818,  817, 2628, 2629, 2629, 2629,  816,  813, 2627,
3823      2630, 2630, 2630,  812, 2630,  811,  810, 2630, 2637, 2637,
3824      2637, 2629, 2638, 2638, 2638,  809,  808, 2623,  803, 2621,
3825      2639, 2639, 2639,  802, 2639,  801, 2637, 2639,  800,  799,
3826      2638, 2642, 2642, 2642,  798, 2642,  797,  796, 2642, 2647,
3827      2647, 2647, 2650, 2650, 2650, 2653, 2653, 2653,  795, 2653,
3828
3829       793,  791, 2653, 2664, 2664, 2664, 2647, 2647,  790, 2637,
3830      2673, 2673, 2673, 2689, 2689, 2689, 2690, 2690, 2690,  787,
3831      2664, 2691, 2691, 2691, 2692, 2692, 2692,  784, 2673, 2638,
3832      2693, 2693, 2693,  781, 2693,  780,  776, 2693,  775, 2691,
3833       774, 2692, 2695, 2695, 2695,  771, 2695,  768,  767, 2695,
3834      2702, 2702, 2702,  766, 2702,  763,  762, 2702,  758, 2673,
3835      2705, 2705, 2705,  757, 2705,  755,  752, 2705, 2708, 2708,
3836      2708,  751, 2691, 2709, 2709, 2709, 2710, 2710, 2710,  750,
3837      2710,  748,  737, 2710,  735, 2708, 2711, 2711, 2711,  732,
3838      2709, 2712, 2712, 2712,  731, 2712,  730,  728, 2712,  727,
3839
3840      2715, 2715, 2715, 2711, 2715,  726,  722, 2715, 2724, 2724,
3841      2724, 2725, 2725, 2725, 2731, 2731, 2731,  721,  720, 2708,
3842      2732, 2732, 2732, 2733, 2733, 2733, 2724, 2733,  719, 2725,
3843      2733, 2731, 2731, 2734, 2734, 2734,  716, 2732, 2732,  715,
3844       714, 2733, 2735, 2735, 2735, 2736, 2736, 2736, 2737, 2737,
3845      2737, 2746, 2746, 2746, 2747, 2747, 2747, 2711, 2747,  713,
3846       712, 2747, 2756, 2756, 2756, 2771, 2771, 2771, 2746, 2772,
3847      2772, 2772, 2773, 2773, 2773,  711,  710, 2725,  708,  705,
3848      2756, 2774, 2774, 2774,  704, 2774,  702,  700, 2774,  697,
3849      2773, 2780, 2780, 2780, 2782, 2782, 2782, 2783, 2783, 2783,
3850
3851       696, 2783,  690,  688, 2783, 2786, 2786, 2786, 2780,  686,
3852       683, 2782, 2801, 2801, 2801, 2803, 2803, 2803, 2809, 2809,
3853      2809,  682, 2786,  678,  677, 2810, 2810, 2810, 2756, 2810,
3854      2801,  676, 2810, 2803,  675, 2809, 2809, 2811, 2811, 2811,
3855       672, 2811,  671, 2810, 2811, 2814, 2814, 2814, 2815, 2815,
3856      2815, 2816, 2816, 2816,  670, 2811, 2825, 2825, 2825,  669,
3857      2825,  666,  665, 2825,  664,  663, 2803, 2812, 2812, 2812,
3858      2812, 2812, 2812, 2812, 2812, 2812,  662,  656, 2812, 2834,
3859      2834, 2834,  655, 2812, 2812, 2812, 2812, 2812, 2845, 2845,
3860      2845, 2846, 2846, 2846, 2851, 2851, 2851, 2834, 2852, 2852,
3861
3862      2852,  653, 2852,  647,  646, 2852, 2854, 2854, 2854, 2846,
3863       642, 2851, 2812, 2812, 2813, 2813, 2813, 2813, 2813, 2813,
3864      2813, 2813, 2813, 2854,  635, 2813, 2856, 2856, 2856,  631,
3865      2813, 2813, 2813, 2813, 2813, 2855, 2855, 2855,  625, 2855,
3866       621,  613, 2855, 2856, 2857, 2857, 2857,  612, 2857,  611,
3867       610, 2857, 2870, 2870, 2870, 2895, 2895, 2895,  609, 2813,
3868      2813, 2876, 2876, 2876,  605, 2876,  598,  597, 2876,  596,
3869      2870,  592,  585, 2895, 2930, 2930, 2930,  584,  580, 2876,
3870      2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879,  574,
3871       573, 2879, 2930,  569,  561,  560, 2879, 2879, 2879, 2879,
3872
3873      2879, 2908, 2908, 2908,  556, 2908,  547,  543, 2908, 2912,
3874      2912, 2912,  535, 2912,  534,  533, 2912, 2915, 2915, 2915,
3875       529, 2915,  523,  522, 2915, 2879, 2879, 2880, 2880, 2880,
3876      2880, 2880, 2880, 2880, 2880, 2880,  521,  517, 2880, 2942,
3877      2942, 2942,  511, 2880, 2880, 2880, 2880, 2880, 2959, 2959,
3878      2959, 2960, 2960, 2960, 2961, 2961, 2961, 2942, 2942, 2966,
3879      2966, 2966, 2977, 2977, 2977, 2959,  510,  506, 2960,  500,
3880       499, 2961, 2880, 2880,  498,  497, 2966, 2981, 2981, 2981,
3881      2977, 2992, 2992, 2992, 2993, 2993, 2993,  496, 2993,  495,
3882       494, 2993, 2994, 2994, 2994, 2981,  490,  484, 2992, 2995,
3883
3884      2995, 2995,  483, 2995,  481,  480, 2995,  479,  475, 2994,
3885      2996, 2996, 2996, 2997, 2997, 2997,  466, 2997,  465,  464,
3886      2997, 3004, 3004, 3004, 3014, 3014, 3014, 2996, 2981, 3005,
3887      3005, 3005,  462, 3005,  458,  452, 3005,  451, 3004, 3024,
3888      3024, 3024, 3014, 3024,  450,  446, 3024, 3027, 3027, 3027,
3889       440, 3027,  436,  428, 3027, 3030, 3030, 3030,  427, 3030,
3890       426, 3014, 3030, 3039, 3039, 3039,  425, 3039,  424,  420,
3891      3039, 3146, 3146, 3146, 3155, 3155, 3155,  414, 3155,  413,
3892       409, 3155, 3256, 3256, 3256, 3257, 3257, 3257,  403, 3146,
3893       402,  398, 3155,  391,  390,  389,  385,  378,  377,  376,
3894
3895      3256,  375,  371, 3257, 3260, 3260, 3260, 3260, 3260, 3260,
3896      3260, 3260, 3260, 3261, 3261, 3261, 3261, 3261, 3261, 3261,
3897      3261, 3261, 3262, 3262, 3262, 3262, 3262, 3262, 3262, 3262,
3898      3262, 3263, 3263, 3263, 3263, 3263, 3263, 3263, 3263, 3263,
3899      3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3264, 3265,
3900      3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3266, 3266,
3901      3266, 3266, 3266, 3266, 3266, 3266, 3266, 3267, 3267, 3267,
3902      3267, 3267, 3267, 3267, 3267, 3267, 3268, 3268, 3268, 3268,
3903      3268, 3268, 3268, 3268, 3268, 3269, 3269, 3269, 3269, 3269,
3904      3269, 3269, 3269, 3269, 3270, 3270, 3270, 3270, 3270, 3270,
3905
3906      3270, 3270, 3270, 3271, 3271, 3271, 3271, 3271, 3271, 3271,
3907      3271, 3271, 3272, 3272, 3272, 3272, 3272, 3272, 3272, 3272,
3908      3272, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273,
3909      3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3274, 3275,
3910      3275, 3275, 3275, 3275, 3275, 3275, 3275, 3275, 3276, 3276,
3911      3276, 3276, 3276, 3276, 3276, 3276, 3276, 3277, 3277, 3277,
3912      3277, 3277, 3277, 3277, 3277, 3277, 3278, 3278, 3278, 3278,
3913      3278, 3278, 3278, 3278, 3278, 3279, 3279, 3279, 3279, 3279,
3914      3279, 3279, 3279, 3279, 3280, 3280, 3280, 3280, 3280, 3280,
3915      3280, 3280, 3280, 3281, 3281, 3281, 3281, 3281, 3281, 3281,
3916
3917      3281, 3281, 3282, 3282, 3282, 3282, 3282, 3282, 3282, 3282,
3918      3282, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283,
3919      3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3284, 3285,
3920      3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3286, 3286,
3921      3286, 3286, 3286, 3286, 3286, 3286, 3286, 3287, 3287, 3287,
3922      3287, 3287, 3287, 3287, 3287, 3287, 3288, 3288, 3288, 3288,
3923      3288, 3288, 3288, 3288, 3288, 3289, 3289, 3289, 3289, 3289,
3924      3289, 3289, 3289, 3289, 3290, 3290, 3290, 3290, 3290, 3290,
3925      3290, 3290, 3290, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
3926      3291, 3291, 3292, 3292, 3292, 3292, 3292, 3292, 3292, 3292,
3927
3928      3292, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
3929      3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3294, 3295,
3930      3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3296, 3296,
3931      3296, 3296, 3296, 3296, 3296, 3296, 3296, 3297, 3297, 3297,
3932      3297, 3297, 3297, 3297, 3297, 3297, 3298, 3298, 3298, 3298,
3933      3298, 3298, 3298, 3298, 3298, 3299, 3299, 3299, 3299, 3299,
3934      3299, 3299, 3299, 3299, 3300, 3300, 3300, 3300, 3300, 3300,
3935      3300, 3300, 3300, 3301, 3301, 3301, 3301, 3301, 3301, 3301,
3936      3301, 3301, 3302, 3302, 3302, 3302, 3302, 3302, 3302, 3302,
3937      3302, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303,
3938
3939      3304, 3304, 3304, 3304, 3304, 3304, 3304, 3304, 3304, 3305,
3940      3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3306, 3306,
3941      3306, 3306, 3306, 3306, 3306, 3306, 3306, 3307, 3307, 3307,
3942      3307, 3307, 3307, 3307, 3307, 3307, 3308, 3308, 3308, 3308,
3943      3308, 3308, 3308, 3308, 3308, 3309, 3309, 3309, 3309, 3309,
3944      3309, 3309, 3309, 3309, 3310, 3310, 3310, 3310, 3310, 3310,
3945      3310, 3310, 3310, 3311, 3311, 3311, 3311, 3311, 3311, 3311,
3946      3311, 3311, 3312, 3312, 3312, 3312, 3312, 3312, 3312, 3312,
3947      3312, 3313, 3313, 3313, 3313, 3313, 3313, 3313, 3313, 3313,
3948      3314, 3314, 3314, 3314, 3314, 3314, 3314, 3314, 3314, 3315,
3949
3950      3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3316, 3316,
3951      3316, 3316, 3316, 3316, 3316, 3316, 3316, 3317, 3317, 3317,
3952      3317, 3317, 3317, 3317, 3317, 3317, 3318, 3318, 3318, 3318,
3953      3318, 3318, 3318, 3318, 3318, 3319, 3319, 3319, 3319, 3319,
3954      3319, 3319, 3319, 3319, 3320, 3320, 3320, 3320, 3320, 3320,
3955      3320, 3320, 3320, 3321, 3321, 3321,  362,  356,  352, 3321,
3956      3322, 3322, 3322,  351,  347,  341, 3322, 3323, 3323, 3323,
3957       340,  339,  335, 3323, 3324, 3324, 3324,  328,  326,  325,
3958      3324, 3325, 3325, 3325,  321,  318,  316, 3325, 3326, 3326,
3959      3326,  315,  314,  310, 3326, 3327, 3327, 3327,  306,  303,
3960
3961       299, 3327, 3328, 3328, 3328,  296,  295,  287, 3328, 3329,
3962      3329, 3329,  283,  279,  278, 3329, 3330, 3330, 3330,  277,
3963       271,  270, 3330, 3331, 3331, 3331,  268,  265,  253, 3331,
3964      3332, 3332, 3332,    0,    0,    0, 3332, 3333, 3333, 3333,
3965         0,    0,    0, 3333, 3334, 3334, 3334,    0,    0,    0,
3966      3334, 3335, 3335, 3335,    0,    0,    0, 3335, 3336, 3336,
3967      3336,    0,    0,    0, 3336, 3337, 3337, 3337,    0,    0,
3968         0, 3337, 3338, 3338, 3338,    0,    0,    0, 3338, 3339,
3969      3339, 3339,    0,    0,    0, 3339, 3340, 3340, 3340,    0,
3970         0,    0, 3340, 3341, 3341, 3341,    0,    0,    0, 3341,
3971
3972      3342, 3342, 3342,    0,    0,    0, 3342, 3343, 3343, 3343,
3973         0,    0,    0, 3343, 3344, 3344, 3344,    0,    0,    0,
3974      3344, 3345, 3345, 3345,    0,    0,    0, 3345, 3346, 3346,
3975      3346,    0,    0,    0, 3346, 3347, 3347, 3347,    0,    0,
3976         0, 3347, 3348, 3348, 3348,    0,    0,    0, 3348, 3349,
3977      3349, 3349, 3349, 3349, 3349, 3349,    0, 3349, 3350, 3350,
3978      3350,    0,    0,    0, 3350, 3351,    0,    0,    0, 3351,
3979      3352, 3352, 3352,    0,    0,    0, 3352, 3353,    0,    0,
3980         0, 3353, 3354, 3354, 3354,    0,    0,    0, 3354, 3355,
3981         0,    0,    0, 3355, 3356, 3356, 3356,    0,    0,    0,
3982
3983      3356, 3357,    0,    0,    0, 3357, 3358, 3358, 3358,    0,
3984         0,    0, 3358, 3359,    0,    0,    0, 3359, 3360, 3360,
3985      3360,    0,    0,    0, 3360, 3361,    0,    0,    0, 3361,
3986      3362, 3362, 3362,    0,    0,    0, 3362, 3363,    0,    0,
3987         0, 3363, 3364, 3364, 3364,    0,    0,    0, 3364, 3365,
3988         0,    0,    0, 3365, 3366, 3366, 3366,    0,    0,    0,
3989      3366, 3367,    0,    0,    0, 3367, 3368, 3368, 3368,    0,
3990         0,    0, 3368, 3369,    0,    0,    0, 3369, 3370, 3370,
3991      3370,    0,    0,    0, 3370, 3371,    0,    0,    0, 3371,
3992      3372, 3372, 3372,    0,    0,    0, 3372, 3373,    0,    0,
3993
3994         0, 3373, 3374, 3374, 3374,    0,    0,    0, 3374, 3375,
3995         0,    0,    0, 3375, 3376, 3376, 3376,    0,    0,    0,
3996      3376, 3377,    0,    0,    0, 3377, 3378, 3378, 3378,    0,
3997         0,    0, 3378, 3379,    0,    0,    0, 3379, 3380, 3380,
3998      3380,    0,    0,    0, 3380, 3381,    0,    0,    0, 3381,
3999      3382, 3382, 3382,    0,    0,    0, 3382, 3383,    0,    0,
4000         0, 3383, 3384, 3384, 3384,    0,    0,    0, 3384, 3385,
4001         0,    0,    0, 3385, 3386, 3386, 3386,    0,    0,    0,
4002      3386, 3387,    0,    0,    0, 3387, 3388, 3388, 3388,    0,
4003         0,    0, 3388, 3389,    0,    0,    0, 3389, 3390, 3390,
4004
4005      3390,    0,    0,    0, 3390, 3391,    0,    0,    0, 3391,
4006      3392, 3392, 3392,    0,    0,    0, 3392, 3393,    0,    0,
4007         0, 3393, 3394, 3394, 3394,    0,    0,    0, 3394, 3395,
4008         0,    0,    0, 3395, 3396, 3396, 3396,    0,    0,    0,
4009      3396, 3397,    0,    0,    0, 3397, 3398, 3398, 3398,    0,
4010         0,    0, 3398, 3399,    0,    0,    0, 3399, 3400, 3400,
4011      3400,    0,    0,    0, 3400, 3401,    0,    0,    0, 3401,
4012      3402, 3402, 3402,    0,    0,    0, 3402, 3403,    0,    0,
4013         0, 3403, 3404, 3404, 3404,    0,    0,    0, 3404, 3405,
4014         0,    0,    0, 3405, 3406, 3406, 3406, 3406, 3406, 3406,
4015
4016      3406, 3406, 3406, 3407,    0,    0,    0,    0, 3407, 3408,
4017      3408, 3408,    0,    0,    0, 3408, 3409, 3409, 3409, 3409,
4018         0,    0, 3409, 3409, 3410, 3410, 3410,    0,    0,    0,
4019      3410, 3411, 3411, 3411, 3411,    0,    0, 3411, 3411, 3412,
4020      3412, 3412,    0,    0,    0, 3412, 3413, 3413, 3413, 3413,
4021         0,    0, 3413, 3413, 3414, 3414, 3414,    0,    0,    0,
4022      3414, 3415, 3415, 3415, 3415,    0,    0, 3415, 3415, 3416,
4023      3416, 3416,    0,    0,    0, 3416, 3417, 3417, 3417, 3417,
4024         0,    0, 3417, 3417, 3418, 3418, 3418,    0,    0,    0,
4025      3418, 3419, 3419, 3419, 3419,    0,    0, 3419, 3419, 3420,
4026
4027      3420, 3420,    0,    0,    0, 3420, 3421, 3421, 3421, 3421,
4028         0,    0, 3421, 3421, 3422, 3422, 3422,    0,    0,    0,
4029      3422, 3423, 3423, 3423, 3423,    0,    0, 3423, 3423, 3424,
4030      3424, 3424,    0,    0,    0, 3424, 3425, 3425, 3425, 3425,
4031         0,    0, 3425, 3425, 3426, 3426, 3426,    0,    0,    0,
4032      3426, 3427, 3427, 3427, 3427,    0,    0, 3427, 3427, 3428,
4033      3428, 3428,    0,    0,    0, 3428, 3429, 3429, 3429, 3429,
4034         0,    0, 3429, 3429, 3430, 3430, 3430,    0,    0,    0,
4035      3430, 3431, 3431, 3431, 3431,    0,    0, 3431, 3431, 3432,
4036      3432, 3432,    0,    0,    0, 3432, 3433, 3433, 3433, 3433,
4037
4038         0,    0, 3433, 3433, 3434, 3434, 3434,    0,    0,    0,
4039      3434, 3435, 3435, 3435, 3435,    0,    0, 3435, 3435, 3436,
4040      3436, 3436, 3436,    0, 3436,    0, 3436, 3437, 3437, 3437,
4041      3437,    0,    0, 3437, 3437, 3438, 3438, 3438,    0,    0,
4042         0, 3438, 3439, 3439, 3439, 3439,    0,    0, 3439, 3439,
4043      3440, 3440, 3440,    0,    0,    0, 3440, 3441, 3441, 3441,
4044      3441,    0,    0, 3441, 3441, 3442, 3442, 3442,    0,    0,
4045         0, 3442, 3443, 3443, 3443, 3443,    0,    0, 3443, 3443,
4046      3444, 3444, 3444,    0,    0,    0, 3444, 3445, 3445, 3445,
4047      3445,    0,    0, 3445, 3445, 3446, 3446, 3446, 3446,    0,
4048
4049      3446,    0, 3446, 3447, 3447, 3447, 3447,    0,    0, 3447,
4050      3447, 3448, 3448, 3448, 3448,    0, 3448,    0, 3448, 3449,
4051      3449, 3449, 3449,    0,    0, 3449, 3449, 3450, 3450, 3450,
4052         0,    0,    0, 3450, 3451, 3451, 3451, 3451,    0,    0,
4053      3451, 3451, 3452, 3452, 3452, 3452,    0, 3452,    0, 3452,
4054      3453, 3453, 3453, 3453,    0,    0, 3453, 3453, 3454, 3454,
4055      3454, 3454,    0, 3454,    0, 3454, 3455, 3455, 3455, 3455,
4056         0,    0, 3455, 3455, 3456, 3456, 3456,    0,    0,    0,
4057      3456, 3457, 3457, 3457, 3457,    0,    0, 3457, 3457, 3458,
4058      3458, 3458,    0,    0,    0, 3458, 3459, 3459, 3459, 3459,
4059
4060         0,    0, 3459, 3459, 3460, 3460, 3460, 3460,    0,    0,
4061      3460, 3460, 3461, 3461, 3461,    0,    0,    0, 3461, 3462,
4062      3462, 3462, 3462,    0,    0, 3462, 3462, 3463, 3463, 3463,
4063      3463, 3463, 3463, 3463, 3463, 3463, 3464,    0, 3464,    0,
4064         0, 3464, 3465, 3465, 3465,    0,    0,    0, 3465, 3466,
4065      3466, 3466, 3466,    0,    0, 3466, 3466, 3467, 3467, 3467,
4066      3467,    0, 3467,    0, 3467, 3468, 3468, 3468, 3468,    0,
4067         0, 3468, 3468, 3469, 3469, 3469, 3469,    0, 3469,    0,
4068      3469, 3470, 3470, 3470, 3470,    0,    0, 3470, 3470, 3471,
4069      3471, 3471,    0,    0,    0, 3471, 3472, 3472, 3472, 3472,
4070
4071         0,    0, 3472, 3472, 3473, 3473, 3473,    0,    0,    0,
4072      3473, 3474, 3474, 3474, 3474,    0,    0, 3474, 3474, 3475,
4073      3475, 3475,    0,    0,    0, 3475, 3476, 3476, 3476, 3476,
4074         0,    0, 3476, 3476, 3477, 3477, 3477,    0,    0,    0,
4075      3477, 3478, 3478, 3478, 3478,    0,    0, 3478, 3478, 3479,
4076      3479, 3479,    0,    0,    0, 3479, 3480, 3480, 3480, 3480,
4077         0,    0, 3480, 3480, 3481, 3481, 3481, 3481,    0, 3481,
4078         0, 3481, 3482, 3482, 3482, 3482,    0,    0, 3482, 3482,
4079      3483, 3483, 3483, 3483,    0, 3483,    0, 3483, 3484, 3484,
4080      3484, 3484,    0,    0, 3484, 3484, 3485, 3485, 3485,    0,
4081
4082         0,    0, 3485, 3486, 3486, 3486, 3486,    0,    0, 3486,
4083      3486, 3487, 3487, 3487, 3487,    0, 3487,    0, 3487, 3488,
4084      3488, 3488, 3488,    0,    0, 3488, 3488, 3489, 3489, 3489,
4085      3489,    0, 3489,    0, 3489, 3490, 3490, 3490, 3490,    0,
4086         0, 3490, 3490, 3491, 3491, 3491,    0,    0,    0, 3491,
4087      3492, 3492, 3492, 3492,    0,    0, 3492, 3492, 3493, 3493,
4088      3493,    0,    0,    0, 3493, 3494, 3494, 3494, 3494,    0,
4089         0, 3494, 3494, 3495, 3495, 3495,    0,    0,    0, 3495,
4090      3496, 3496, 3496, 3496,    0,    0, 3496, 3496, 3497, 3497,
4091      3497,    0,    0,    0, 3497, 3498, 3498, 3498, 3498,    0,
4092
4093         0, 3498, 3498, 3499, 3499, 3499,    0,    0,    0, 3499,
4094      3500, 3500, 3500, 3500,    0,    0, 3500, 3500, 3501, 3501,
4095      3501,    0,    0,    0, 3501, 3502, 3502, 3502, 3502,    0,
4096         0, 3502, 3502, 3503, 3503, 3503,    0,    0,    0, 3503,
4097      3504, 3504, 3504, 3504,    0,    0, 3504, 3504, 3505, 3505,
4098      3505,    0,    0,    0, 3505, 3506, 3506, 3506, 3506,    0,
4099         0, 3506, 3506, 3507, 3507, 3507,    0,    0,    0, 3507,
4100      3508, 3508, 3508, 3508,    0,    0, 3508, 3508, 3509, 3509,
4101      3509, 3509,    0,    0, 3509, 3509, 3510, 3510, 3510,    0,
4102         0,    0, 3510, 3511, 3511, 3511, 3511,    0,    0, 3511,
4103
4104      3511, 3512, 3512, 3512,    0,    0,    0, 3512, 3513, 3513,
4105      3513, 3513,    0,    0, 3513, 3513, 3514, 3514, 3514,    0,
4106         0,    0, 3514, 3515, 3515, 3515, 3515,    0,    0, 3515,
4107      3515, 3516, 3516, 3516, 3516,    0,    0, 3516, 3516, 3517,
4108      3517, 3517,    0,    0,    0, 3517, 3518, 3518, 3518, 3518,
4109         0,    0, 3518, 3518, 3519, 3519, 3519, 3519, 3519, 3519,
4110      3519, 3519, 3519, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
4111      3520, 3520, 3521, 3521, 3521,    0,    0,    0, 3521, 3522,
4112      3522, 3522, 3522,    0,    0, 3522, 3522, 3523, 3523, 3523,
4113      3523,    0,    0, 3523, 3523, 3524, 3524, 3524,    0,    0,
4114
4115         0, 3524, 3525, 3525, 3525, 3525,    0,    0, 3525, 3525,
4116      3526, 3526, 3526,    0,    0,    0, 3526, 3527, 3527, 3527,
4117      3527,    0,    0, 3527, 3527, 3528, 3528, 3528,    0,    0,
4118         0, 3528, 3529, 3529, 3529, 3529,    0,    0, 3529, 3529,
4119      3530, 3530, 3530,    0,    0,    0, 3530, 3531, 3531, 3531,
4120         0,    0,    0, 3531, 3532, 3532, 3532, 3532,    0,    0,
4121      3532, 3532, 3533, 3533, 3533,    0,    0,    0, 3533, 3534,
4122      3534, 3534, 3534,    0,    0, 3534, 3534, 3535, 3535, 3535,
4123      3535,    0,    0, 3535, 3535, 3536, 3536, 3536,    0,    0,
4124         0, 3536, 3537, 3537, 3537, 3537,    0,    0, 3537, 3537,
4125
4126      3538, 3538, 3538,    0,    0,    0, 3538, 3539, 3539, 3539,
4127      3539,    0,    0, 3539, 3539, 3540, 3540, 3540, 3540,    0,
4128         0, 3540, 3540, 3541, 3541, 3541, 3541,    0,    0, 3541,
4129      3541, 3542, 3542, 3542,    0,    0,    0, 3542, 3543, 3543,
4130      3543, 3543,    0,    0, 3543, 3543, 3544, 3544, 3544, 3544,
4131         0, 3544,    0, 3544, 3545, 3545, 3545, 3545,    0,    0,
4132      3545, 3545, 3546, 3546, 3546,    0,    0,    0, 3546, 3547,
4133      3547, 3547, 3547,    0,    0, 3547, 3547, 3548, 3548, 3548,
4134         0,    0,    0, 3548, 3549, 3549, 3549, 3549,    0,    0,
4135      3549, 3549, 3550, 3550, 3550,    0,    0,    0, 3550, 3551,
4136
4137      3551, 3551, 3551,    0,    0, 3551, 3551, 3552, 3552, 3552,
4138         0,    0,    0, 3552, 3553, 3553, 3553, 3553,    0,    0,
4139      3553, 3553, 3554, 3554, 3554,    0,    0,    0, 3554, 3555,
4140      3555, 3555, 3555,    0,    0, 3555, 3555, 3556, 3556, 3556,
4141         0,    0,    0, 3556, 3557, 3557, 3557, 3557,    0,    0,
4142      3557, 3557, 3558, 3558, 3558,    0,    0,    0, 3558, 3559,
4143      3559, 3559, 3559,    0,    0, 3559, 3559, 3560, 3560, 3560,
4144      3560,    0,    0, 3560, 3560, 3561, 3561, 3561,    0,    0,
4145         0, 3561, 3562, 3562, 3562, 3562,    0,    0, 3562, 3562,
4146      3563, 3563, 3563,    0,    0,    0, 3563, 3564, 3564, 3564,
4147
4148      3564,    0,    0, 3564, 3564, 3565, 3565, 3565, 3565,    0,
4149      3565,    0, 3565, 3566, 3566, 3566, 3566,    0,    0, 3566,
4150      3566, 3567, 3567, 3567, 3567,    0,    0, 3567, 3567, 3568,
4151      3568, 3568, 3568,    0, 3568,    0, 3568, 3569, 3569, 3569,
4152      3569,    0,    0, 3569, 3569, 3570, 3570, 3570, 3570, 3570,
4153      3570, 3570, 3570, 3570, 3571, 3571, 3571, 3571, 3571, 3571,
4154      3571, 3571, 3571, 3572, 3572, 3572,    0,    0,    0, 3572,
4155      3573, 3573, 3573, 3573,    0,    0, 3573, 3573, 3574, 3574,
4156      3574, 3574,    0,    0, 3574, 3574, 3575, 3575, 3575,    0,
4157         0,    0, 3575, 3576, 3576, 3576, 3576,    0,    0, 3576,
4158
4159      3576, 3577, 3577, 3577,    0,    0,    0, 3577, 3578, 3578,
4160      3578, 3578,    0,    0, 3578, 3578, 3579, 3579, 3579,    0,
4161         0,    0, 3579, 3580, 3580, 3580, 3580,    0,    0, 3580,
4162      3580, 3581, 3581, 3581,    0,    0,    0, 3581, 3582, 3582,
4163      3582,    0,    0,    0, 3582, 3583, 3583, 3583, 3583,    0,
4164         0, 3583, 3583, 3584, 3584, 3584,    0,    0,    0, 3584,
4165      3585, 3585, 3585, 3585,    0,    0, 3585, 3585, 3586, 3586,
4166      3586, 3586,    0,    0, 3586, 3586, 3587, 3587, 3587, 3587,
4167         0, 3587,    0, 3587, 3588, 3588, 3588, 3588,    0,    0,
4168      3588, 3588, 3589, 3589, 3589,    0,    0,    0, 3589, 3590,
4169
4170      3590, 3590, 3590,    0,    0, 3590, 3590, 3591, 3591, 3591,
4171      3591,    0,    0, 3591, 3591, 3592, 3592, 3592,    0,    0,
4172         0, 3592, 3593, 3593, 3593, 3593,    0,    0, 3593, 3593,
4173      3594, 3594, 3594, 3594,    0, 3594,    0, 3594, 3595, 3595,
4174      3595, 3595,    0,    0, 3595, 3595, 3596, 3596, 3596,    0,
4175         0,    0, 3596, 3597, 3597, 3597, 3597,    0,    0, 3597,
4176      3597, 3598, 3598, 3598,    0,    0,    0, 3598, 3599, 3599,
4177      3599, 3599,    0,    0, 3599, 3599, 3600, 3600, 3600,    0,
4178         0,    0, 3600, 3601, 3601, 3601, 3601,    0,    0, 3601,
4179      3601, 3602, 3602, 3602,    0,    0,    0, 3602, 3603, 3603,
4180
4181      3603, 3603,    0,    0, 3603, 3603, 3604, 3604, 3604,    0,
4182         0,    0, 3604, 3605, 3605, 3605, 3605,    0,    0, 3605,
4183      3605, 3606, 3606, 3606, 3606,    0, 3606,    0, 3606, 3607,
4184      3607, 3607, 3607,    0,    0, 3607, 3607, 3608, 3608, 3608,
4185         0,    0,    0, 3608, 3609, 3609, 3609, 3609,    0,    0,
4186      3609, 3609, 3610, 3610, 3610, 3610,    0,    0, 3610, 3610,
4187      3611, 3611, 3611, 3611,    0, 3611,    0, 3611, 3612, 3612,
4188      3612, 3612,    0,    0, 3612, 3612, 3613, 3613, 3613,    0,
4189         0,    0, 3613, 3614, 3614, 3614, 3614,    0,    0, 3614,
4190      3614, 3615, 3615, 3615, 3615,    0,    0, 3615, 3615, 3616,
4191
4192      3616, 3616, 3616,    0,    0, 3616, 3616, 3617, 3617, 3617,
4193      3617,    0,    0, 3617, 3617, 3618, 3618, 3618, 3618, 3618,
4194      3618, 3618, 3618, 3618, 3619, 3619, 3619, 3619, 3619, 3619,
4195      3619, 3619, 3619, 3620, 3620, 3620, 3620,    0, 3620,    0,
4196      3620, 3621, 3621, 3621, 3621,    0,    0, 3621, 3621, 3622,
4197      3622, 3622, 3622,    0,    0, 3622, 3622, 3623, 3623, 3623,
4198         0,    0,    0, 3623, 3624, 3624, 3624, 3624,    0,    0,
4199      3624, 3624, 3625, 3625, 3625,    0,    0,    0, 3625, 3626,
4200      3626, 3626, 3626,    0,    0, 3626, 3626, 3627, 3627, 3627,
4201      3627,    0, 3627,    0, 3627, 3628, 3628, 3628, 3628,    0,
4202
4203         0, 3628, 3628, 3629, 3629, 3629, 3629,    0, 3629,    0,
4204      3629, 3630, 3630, 3630, 3630,    0, 3630,    0, 3630, 3631,
4205      3631, 3631, 3631,    0,    0, 3631, 3631, 3632, 3632, 3632,
4206      3632,    0, 3632,    0, 3632, 3633, 3633, 3633, 3633,    0,
4207         0, 3633, 3633, 3634, 3634, 3634, 3634,    0,    0, 3634,
4208      3634, 3635, 3635, 3635, 3635,    0,    0, 3635, 3635, 3636,
4209      3636, 3636,    0,    0,    0, 3636, 3637, 3637, 3637, 3637,
4210         0,    0, 3637, 3637, 3638, 3638, 3638,    0,    0,    0,
4211      3638, 3639, 3639, 3639, 3639,    0,    0, 3639, 3639, 3640,
4212      3640, 3640, 3640,    0, 3640,    0, 3640, 3641, 3641, 3641,
4213
4214      3641,    0,    0, 3641, 3641, 3642, 3642, 3642,    0,    0,
4215         0, 3642, 3643, 3643, 3643,    0,    0,    0, 3643, 3644,
4216      3644, 3644, 3644,    0,    0, 3644, 3644, 3645, 3645, 3645,
4217         0,    0,    0, 3645, 3646, 3646, 3646, 3646,    0,    0,
4218      3646, 3646, 3647, 3647, 3647,    0,    0,    0, 3647, 3648,
4219      3648, 3648,    0,    0,    0, 3648, 3649, 3649, 3649, 3649,
4220         0,    0, 3649, 3649, 3650, 3650, 3650,    0,    0,    0,
4221      3650, 3651, 3651, 3651, 3651,    0,    0, 3651, 3651, 3652,
4222      3652, 3652,    0,    0,    0, 3652, 3653, 3653, 3653, 3653,
4223         0,    0, 3653, 3653, 3654, 3654, 3654, 3654,    0,    0,
4224
4225      3654, 3654, 3655, 3655, 3655, 3655,    0,    0, 3655, 3655,
4226      3656, 3656, 3656,    0,    0,    0, 3656, 3657, 3657, 3657,
4227      3657,    0,    0, 3657, 3657, 3658, 3658, 3658, 3658,    0,
4228         0, 3658, 3658, 3659, 3659, 3659, 3659,    0,    0, 3659,
4229      3659, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660,
4230      3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3662,
4231      3662, 3662, 3662,    0,    0, 3662, 3662, 3663, 3663, 3663,
4232      3663,    0,    0, 3663, 3663, 3664, 3664, 3664,    0,    0,
4233         0, 3664, 3665, 3665, 3665,    0,    0,    0, 3665, 3666,
4234      3666, 3666, 3666,    0,    0, 3666, 3666, 3667, 3667, 3667,
4235
4236      3667,    0,    0, 3667, 3667, 3668, 3668, 3668, 3668,    0,
4237         0, 3668, 3668, 3669, 3669, 3669, 3669,    0,    0, 3669,
4238      3669, 3670, 3670, 3670, 3670,    0,    0, 3670, 3670, 3671,
4239      3671, 3671,    0,    0,    0, 3671, 3672, 3672, 3672, 3672,
4240         0,    0, 3672, 3672, 3673, 3673, 3673,    0,    0,    0,
4241      3673, 3674, 3674, 3674, 3674,    0,    0, 3674, 3674, 3675,
4242      3675, 3675, 3675,    0,    0, 3675, 3675, 3676, 3676, 3676,
4243         0,    0,    0, 3676, 3677, 3677, 3677,    0,    0,    0,
4244      3677, 3678, 3678, 3678, 3678,    0,    0, 3678, 3678, 3679,
4245      3679, 3679,    0,    0,    0, 3679, 3680, 3680, 3680, 3680,
4246
4247         0,    0, 3680, 3680, 3681, 3681, 3681,    0,    0,    0,
4248      3681, 3682, 3682, 3682,    0,    0,    0, 3682, 3683, 3683,
4249      3683,    0,    0,    0, 3683, 3684, 3684, 3684, 3684,    0,
4250         0, 3684, 3684, 3685, 3685, 3685,    0,    0,    0, 3685,
4251      3686, 3686, 3686, 3686,    0,    0, 3686, 3686, 3687, 3687,
4252      3687, 3687,    0,    0, 3687, 3687, 3688, 3688, 3688, 3688,
4253         0,    0, 3688, 3688, 3689, 3689, 3689, 3689,    0, 3689,
4254         0, 3689, 3690, 3690, 3690, 3690,    0,    0, 3690, 3690,
4255      3691, 3691, 3691, 3691,    0,    0, 3691, 3691, 3692, 3692,
4256      3692, 3692,    0,    0, 3692, 3692, 3693, 3693, 3693, 3693,
4257
4258      3693, 3693, 3693, 3693, 3693, 3694, 3694, 3694, 3694, 3694,
4259      3694, 3694, 3694, 3694, 3695, 3695, 3695, 3695,    0,    0,
4260      3695, 3695, 3696, 3696, 3696, 3696,    0,    0, 3696, 3696,
4261      3697, 3697, 3697,    0,    0,    0, 3697, 3698, 3698, 3698,
4262      3698,    0, 3698,    0, 3698, 3699, 3699, 3699, 3699,    0,
4263         0, 3699, 3699, 3700, 3700, 3700, 3700,    0,    0, 3700,
4264      3700, 3701, 3701, 3701, 3701,    0,    0, 3701, 3701, 3702,
4265      3702, 3702, 3702,    0,    0, 3702, 3702, 3703, 3703, 3703,
4266         0,    0,    0, 3703, 3704, 3704, 3704, 3704,    0,    0,
4267      3704, 3704, 3705, 3705, 3705,    0,    0,    0, 3705, 3706,
4268
4269      3706, 3706, 3706,    0,    0, 3706, 3706, 3707, 3707, 3707,
4270      3707,    0,    0, 3707, 3707, 3708, 3708, 3708,    0,    0,
4271         0, 3708, 3709, 3709, 3709,    0,    0,    0, 3709, 3710,
4272      3710, 3710, 3710,    0, 3710,    0, 3710, 3711, 3711, 3711,
4273      3711,    0,    0, 3711, 3711, 3712, 3712, 3712, 3712,    0,
4274      3712,    0, 3712, 3713, 3713, 3713,    0,    0,    0, 3713,
4275      3714, 3714, 3714,    0,    0,    0, 3714, 3715, 3715, 3715,
4276      3715,    0,    0, 3715, 3715, 3716, 3716, 3716, 3716,    0,
4277      3716,    0, 3716, 3717, 3717, 3717, 3717,    0,    0, 3717,
4278      3717, 3718, 3718, 3718, 3718,    0,    0, 3718, 3718, 3719,
4279
4280      3719, 3719, 3719,    0,    0, 3719, 3719, 3720, 3720, 3720,
4281      3720,    0, 3720,    0, 3720, 3721, 3721, 3721, 3721,    0,
4282         0, 3721, 3721, 3722, 3722, 3722, 3722,    0,    0, 3722,
4283      3722, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723, 3723,
4284      3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3725,
4285      3725, 3725, 3725,    0,    0, 3725, 3725, 3726, 3726, 3726,
4286         0,    0,    0, 3726, 3727, 3727, 3727,    0,    0,    0,
4287      3727, 3728, 3728, 3728, 3728,    0,    0, 3728, 3728, 3729,
4288      3729, 3729, 3729,    0,    0, 3729, 3729, 3730, 3730, 3730,
4289      3730,    0,    0, 3730, 3730, 3731, 3731, 3731,    0,    0,
4290
4291         0, 3731, 3732, 3732, 3732, 3732,    0,    0, 3732, 3732,
4292      3733, 3733, 3733,    0,    0,    0, 3733, 3734, 3734, 3734,
4293      3734, 3734, 3734, 3734, 3734, 3734, 3735, 3735, 3735, 3735,
4294      3735, 3735, 3735, 3735, 3735, 3736, 3736, 3736, 3736, 3736,
4295      3736, 3736, 3736, 3736, 3737, 3737, 3737, 3737, 3737, 3737,
4296      3737, 3737, 3737, 3738, 3738, 3738, 3738, 3738, 3738, 3738,
4297      3738, 3738, 3739, 3739, 3739, 3739, 3739, 3739, 3739, 3739,
4298      3739, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4299      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4300      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4301
4302      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4303      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4304      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4305      3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4306      3259, 3259, 3259, 3259, 3259, 3259
4307     } ;
4308
4309 /* Table of booleans, true if rule could match eol. */
4310 static yyconst flex_int32_t yy_rule_can_match_eol[559] =
4311     {   0,
4312 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4313     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4314     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4315     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4316     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4317     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4318     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4319     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4320     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4321     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4322     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4323     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4324     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4325     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4326     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4327     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4328     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4329     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4330     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4331     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4332     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4333     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4334     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4335     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4336     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4337     1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 
4338     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 
4339     0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4340
4341 static yy_state_type yy_last_accepting_state;
4342 static char *yy_last_accepting_cpos;
4343
4344 extern int surf_parse__flex_debug;
4345 int surf_parse__flex_debug = 0;
4346
4347 /* The intent behind this definition is that it'll catch
4348  * any uses of REJECT which flex missed.
4349  */
4350 #define REJECT reject_used_but_not_detected
4351 #define yymore() yymore_used_but_not_detected
4352 #define YY_MORE_ADJ 0
4353 #define YY_RESTORE_YY_MORE_OFFSET
4354 char *surf_parse_text;
4355 /* Validating XML processor for src/surf/simgrid.dtd.
4356  *
4357  * This program was generated with the FleXML XML processor generator.
4358  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4359  * FleXML is Copyright (C) 2003-2011 Martin Quinson.  All rights reserved.
4360  * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
4361  * 
4362  * There are two, intertwined parts to this program, part A and part B.
4363  *
4364  * Part A
4365  * ------
4366  * 
4367  * Some parts, here collectively called "Part A", are found in the 
4368  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4369  * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
4370  *
4371  * You can redistribute, use, perform, display and/or modify "Part A"
4372  * provided the following two conditions hold:
4373  *
4374  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4375  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4376  *    FITNESS FOR A PARTICULAR PURPOSE.
4377  *
4378  * 2. The program distribution conditions do not in any way affect the
4379  *    distribution conditions of the FleXML system used to generate this
4380  *    file or any version of FleXML derived from that system.
4381  *
4382  * Notice that these are explicit rights granted to you for files
4383  * generated by the FleXML system.  For your rights in connection with
4384  * the FleXML system itself please consult the GNU General Public License.
4385  * 
4386  * Part B
4387  * ------
4388  * 
4389  * The other parts, here collectively called "Part B", and which came 
4390  * from the DTD used by FleXML to generate this program, can be 
4391  * distributed (or not, as the case may be) under the terms of whoever
4392  * wrote them, provided these terms respect and obey the two conditions 
4393  * above under the heading "Part A".
4394  *
4395  * The author of and contributors to FleXML specifically disclaim
4396  * any copyright interest in "Part B", unless "Part B" was written 
4397  * by the author of or contributors to FleXML.
4398  * 
4399  */
4400
4401 /* Version strings. */
4402 const char rcs_surfxml_flexml_skeleton[] =
4403  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
4404 const char rcs_surfxml_flexml[] =
4405  "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
4406
4407 /* ANSI headers. */
4408 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4409 #include <stdio.h>
4410 #include <string.h>
4411 #include <assert.h>
4412 #include <stdarg.h>
4413 #include <ctype.h>
4414      
4415 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4416 # ifndef __STRICT_ANSI__
4417 #  include <io.h>
4418 #  include <process.h>
4419 # endif
4420 #else
4421 # include <unistd.h>
4422 #endif
4423      
4424 #ifndef FLEXML_INDEXSTACKSIZE
4425 #define FLEXML_INDEXSTACKSIZE 1000
4426 #endif
4427
4428 /* Generated definitions. */
4429 #define FLEXML_yylineno
4430 #ifndef FLEXML_BUFFERSTACKSIZE
4431 #define FLEXML_BUFFERSTACKSIZE 1000000
4432 #endif
4433 #define FLEXML_NEED_BUFFERLIT
4434
4435 /* XML processor api. */
4436 /* FleXML-provided data. */
4437 int surfxml_pcdata_ix;
4438 extern char *surfxml_bufferstack;
4439 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4440 AT_surfxml_mount_name AX_surfxml_mount_name;
4441 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4442 short int surfxml_mount_name_isset;
4443 AT_surfxml_random_generator AX_surfxml_random_generator;
4444 #define A_surfxml_random_generator AX_surfxml_random_generator
4445 short int surfxml_random_generator_isset;
4446 AT_surfxml_ASroute_gw_dst AX_surfxml_ASroute_gw_dst;
4447 #define A_surfxml_ASroute_gw_dst (surfxml_bufferstack + AX_surfxml_ASroute_gw_dst)
4448 short int surfxml_ASroute_gw_dst_isset;
4449 AT_surfxml_trace_connect_element AX_surfxml_trace_connect_element;
4450 #define A_surfxml_trace_connect_element (surfxml_bufferstack + AX_surfxml_trace_connect_element)
4451 short int surfxml_trace_connect_element_isset;
4452 AT_surfxml_prop_id AX_surfxml_prop_id;
4453 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4454 short int surfxml_prop_id_isset;
4455 AT_surfxml_host_link_up AX_surfxml_host_link_up;
4456 #define A_surfxml_host_link_up (surfxml_bufferstack + AX_surfxml_host_link_up)
4457 short int surfxml_host_link_up_isset;
4458 AT_surfxml_host_id AX_surfxml_host_id;
4459 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4460 short int surfxml_host_id_isset;
4461 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4462 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4463 short int surfxml_ASroute_symmetrical_isset;
4464 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4465 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4466 short int surfxml_peer_lat_isset;
4467 AT_surfxml_process_on_failure AX_surfxml_process_on_failure;
4468 #define A_surfxml_process_on_failure AX_surfxml_process_on_failure
4469 short int surfxml_process_on_failure_isset;
4470 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
4471 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
4472 short int surfxml_link_latency_file_isset;
4473 AT_surfxml_peer_availability_file AX_surfxml_peer_availability_file;
4474 #define A_surfxml_peer_availability_file (surfxml_bufferstack + AX_surfxml_peer_availability_file)
4475 short int surfxml_peer_availability_file_isset;
4476 AT_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction;
4477 #define A_surfxml_link_ctn_direction AX_surfxml_link_ctn_direction
4478 short int surfxml_link_ctn_direction_isset;
4479 AT_surfxml_host_state AX_surfxml_host_state;
4480 #define A_surfxml_host_state AX_surfxml_host_state
4481 short int surfxml_host_state_isset;
4482 AT_surfxml_AS_id AX_surfxml_AS_id;
4483 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4484 short int surfxml_AS_id_isset;
4485 AT_surfxml_host_power AX_surfxml_host_power;
4486 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4487 short int surfxml_host_power_isset;
4488 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4489 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4490 short int surfxml_cabinet_suffix_isset;
4491 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4492 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4493 short int surfxml_gpu_name_isset;
4494 AT_surfxml_router_id AX_surfxml_router_id;
4495 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4496 short int surfxml_router_id_isset;
4497 AT_surfxml_storage_type_id AX_surfxml_storage_type_id;
4498 #define A_surfxml_storage_type_id (surfxml_bufferstack + AX_surfxml_storage_type_id)
4499 short int surfxml_storage_type_id_isset;
4500 AT_surfxml_process_start_time AX_surfxml_process_start_time;
4501 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
4502 short int surfxml_process_start_time_isset;
4503 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4504 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4505 short int surfxml_cabinet_bw_isset;
4506 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4507 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4508 short int surfxml_cluster_suffix_isset;
4509 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4510 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4511 short int surfxml_bypassASroute_dst_isset;
4512 AT_surfxml_host_link_id AX_surfxml_host_link_id;
4513 #define A_surfxml_host_link_id (surfxml_bufferstack + AX_surfxml_host_link_id)
4514 short int surfxml_host_link_id_isset;
4515 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4516 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4517 short int surfxml_ASroute_src_isset;
4518 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4519 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4520 short int surfxml_cluster_prefix_isset;
4521 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4522 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4523 short int surfxml_cabinet_prefix_isset;
4524 AT_surfxml_trace_file AX_surfxml_trace_file;
4525 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4526 short int surfxml_trace_file_isset;
4527 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
4528 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
4529 short int surfxml_link_sharing_policy_isset;
4530 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4531 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4532 short int surfxml_storage_typeId_isset;
4533 AT_surfxml_random_min AX_surfxml_random_min;
4534 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4535 short int surfxml_random_min_isset;
4536 AT_surfxml_link_ctn_id AX_surfxml_link_ctn_id;
4537 #define A_surfxml_link_ctn_id (surfxml_bufferstack + AX_surfxml_link_ctn_id)
4538 short int surfxml_link_ctn_id_isset;
4539 AT_surfxml_peer_bw_out AX_surfxml_peer_bw_out;
4540 #define A_surfxml_peer_bw_out (surfxml_bufferstack + AX_surfxml_peer_bw_out)
4541 short int surfxml_peer_bw_out_isset;
4542 AT_surfxml_cluster_availability_file AX_surfxml_cluster_availability_file;
4543 #define A_surfxml_cluster_availability_file (surfxml_bufferstack + AX_surfxml_cluster_availability_file)
4544 short int surfxml_cluster_availability_file_isset;
4545 AT_surfxml_storage_content AX_surfxml_storage_content;
4546 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4547 short int surfxml_storage_content_isset;
4548 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
4549 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
4550 short int surfxml_process_kill_time_isset;
4551 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
4552 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
4553 short int surfxml_cluster_bb_bw_isset;
4554 AT_surfxml_argument_value AX_surfxml_argument_value;
4555 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4556 short int surfxml_argument_value_isset;
4557 AT_surfxml_link_state AX_surfxml_link_state;
4558 #define A_surfxml_link_state AX_surfxml_link_state
4559 short int surfxml_link_state_isset;
4560 AT_surfxml_ASroute_gw_src AX_surfxml_ASroute_gw_src;
4561 #define A_surfxml_ASroute_gw_src (surfxml_bufferstack + AX_surfxml_ASroute_gw_src)
4562 short int surfxml_ASroute_gw_src_isset;
4563 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4564 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4565 short int surfxml_AS_routing_isset;
4566 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4567 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4568 short int surfxml_link_bandwidth_isset;
4569 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4570 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4571 short int surfxml_cluster_id_isset;
4572 AT_surfxml_peer_bw_in AX_surfxml_peer_bw_in;
4573 #define A_surfxml_peer_bw_in (surfxml_bufferstack + AX_surfxml_peer_bw_in)
4574 short int surfxml_peer_bw_in_isset;
4575 AT_surfxml_random_mean AX_surfxml_random_mean;
4576 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4577 short int surfxml_random_mean_isset;
4578 AT_surfxml_storage_type_size AX_surfxml_storage_type_size;
4579 #define A_surfxml_storage_type_size (surfxml_bufferstack + AX_surfxml_storage_type_size)
4580 short int surfxml_storage_type_size_isset;
4581 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
4582 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
4583 short int surfxml_cluster_bb_lat_isset;
4584 AT_surfxml_link_latency AX_surfxml_link_latency;
4585 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4586 short int surfxml_link_latency_isset;
4587 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4588 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4589 short int surfxml_backbone_bandwidth_isset;
4590 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4591 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4592 short int surfxml_backbone_id_isset;
4593 AT_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind;
4594 #define A_surfxml_trace_connect_kind AX_surfxml_trace_connect_kind
4595 short int surfxml_trace_connect_kind_isset;
4596 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4597 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4598 short int surfxml_cabinet_lat_isset;
4599 AT_surfxml_random_seed AX_surfxml_random_seed;
4600 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4601 short int surfxml_random_seed_isset;
4602 AT_surfxml_cluster_state_file AX_surfxml_cluster_state_file;
4603 #define A_surfxml_cluster_state_file (surfxml_bufferstack + AX_surfxml_cluster_state_file)
4604 short int surfxml_cluster_state_file_isset;
4605 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
4606 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
4607 short int surfxml_link_bandwidth_file_isset;
4608 AT_surfxml_storage_type_content AX_surfxml_storage_type_content;
4609 #define A_surfxml_storage_type_content (surfxml_bufferstack + AX_surfxml_storage_type_content)
4610 short int surfxml_storage_type_content_isset;
4611 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4612 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4613 short int surfxml_route_symmetrical_isset;
4614 AT_surfxml_random_id AX_surfxml_random_id;
4615 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4616 short int surfxml_random_id_isset;
4617 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4618 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4619 short int surfxml_mstorage_name_isset;
4620 AT_surfxml_random_max AX_surfxml_random_max;
4621 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4622 short int surfxml_random_max_isset;
4623 AT_surfxml_link_id AX_surfxml_link_id;
4624 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4625 short int surfxml_link_id_isset;
4626 AT_surfxml_process_host AX_surfxml_process_host;
4627 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4628 short int surfxml_process_host_isset;
4629 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4630 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4631 short int surfxml_cabinet_id_isset;
4632 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
4633 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
4634 short int surfxml_host_availability_file_isset;
4635 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4636 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4637 short int surfxml_cluster_lat_isset;
4638 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4639 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4640 short int surfxml_router_coordinates_isset;
4641 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4642 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4643 short int surfxml_trace_periodicity_isset;
4644 AT_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy;
4645 #define A_surfxml_cluster_bb_sharing_policy AX_surfxml_cluster_bb_sharing_policy
4646 short int surfxml_cluster_bb_sharing_policy_isset;
4647 AT_surfxml_peer_state_file AX_surfxml_peer_state_file;
4648 #define A_surfxml_peer_state_file (surfxml_bufferstack + AX_surfxml_peer_state_file)
4649 short int surfxml_peer_state_file_isset;
4650 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4651 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4652 short int surfxml_peer_coordinates_isset;
4653 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4654 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4655 short int surfxml_bypassASroute_src_isset;
4656 AT_surfxml_prop_value AX_surfxml_prop_value;
4657 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4658 short int surfxml_prop_value_isset;
4659 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4660 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4661 short int surfxml_mstorage_typeId_isset;
4662 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4663 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4664 short int surfxml_ASroute_dst_isset;
4665 AT_surfxml_link_state_file AX_surfxml_link_state_file;
4666 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
4667 short int surfxml_link_state_file_isset;
4668 AT_surfxml_random_radical AX_surfxml_random_radical;
4669 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4670 short int surfxml_random_radical_isset;
4671 AT_surfxml_bypassASroute_gw_src AX_surfxml_bypassASroute_gw_src;
4672 #define A_surfxml_bypassASroute_gw_src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_src)
4673 short int surfxml_bypassASroute_gw_src_isset;
4674 AT_surfxml_trace_connect_trace AX_surfxml_trace_connect_trace;
4675 #define A_surfxml_trace_connect_trace (surfxml_bufferstack + AX_surfxml_trace_connect_trace)
4676 short int surfxml_trace_connect_trace_isset;
4677 AT_surfxml_mount_id AX_surfxml_mount_id;
4678 #define A_surfxml_mount_id (surfxml_bufferstack + AX_surfxml_mount_id)
4679 short int surfxml_mount_id_isset;
4680 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4681 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4682 short int surfxml_cluster_power_isset;
4683 AT_surfxml_process_function AX_surfxml_process_function;
4684 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4685 short int surfxml_process_function_isset;
4686 AT_surfxml_peer_id AX_surfxml_peer_id;
4687 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4688 short int surfxml_peer_id_isset;
4689 AT_surfxml_cluster_router_id AX_surfxml_cluster_router_id;
4690 #define A_surfxml_cluster_router_id (surfxml_bufferstack + AX_surfxml_cluster_router_id)
4691 short int surfxml_cluster_router_id_isset;
4692 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4693 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4694 short int surfxml_cabinet_radical_isset;
4695 AT_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy;
4696 #define A_surfxml_cluster_sharing_policy AX_surfxml_cluster_sharing_policy
4697 short int surfxml_cluster_sharing_policy_isset;
4698 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4699 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4700 short int surfxml_bypassRoute_dst_isset;
4701 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4702 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4703 short int surfxml_cabinet_power_isset;
4704 AT_surfxml_host_core AX_surfxml_host_core;
4705 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4706 short int surfxml_host_core_isset;
4707 AT_surfxml_storage_type_model AX_surfxml_storage_type_model;
4708 #define A_surfxml_storage_type_model (surfxml_bufferstack + AX_surfxml_storage_type_model)
4709 short int surfxml_storage_type_model_isset;
4710 AT_surfxml_host_availability AX_surfxml_host_availability;
4711 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4712 short int surfxml_host_availability_isset;
4713 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4714 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4715 short int surfxml_bypassRoute_src_isset;
4716 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4717 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4718 short int surfxml_backbone_latency_isset;
4719 AT_surfxml_route_src AX_surfxml_route_src;
4720 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4721 short int surfxml_route_src_isset;
4722 AT_surfxml_storage_id AX_surfxml_storage_id;
4723 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4724 short int surfxml_storage_id_isset;
4725 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4726 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4727 short int surfxml_host_coordinates_isset;
4728 AT_surfxml_trace_id AX_surfxml_trace_id;
4729 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4730 short int surfxml_trace_id_isset;
4731 AT_surfxml_peer_power AX_surfxml_peer_power;
4732 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4733 short int surfxml_peer_power_isset;
4734 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4735 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4736 short int surfxml_cluster_radical_isset;
4737 AT_surfxml_config_id AX_surfxml_config_id;
4738 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4739 short int surfxml_config_id_isset;
4740 AT_surfxml_bypassASroute_gw_dst AX_surfxml_bypassASroute_gw_dst;
4741 #define A_surfxml_bypassASroute_gw_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw_dst)
4742 short int surfxml_bypassASroute_gw_dst_isset;
4743 AT_surfxml_host_link_down AX_surfxml_host_link_down;
4744 #define A_surfxml_host_link_down (surfxml_bufferstack + AX_surfxml_host_link_down)
4745 short int surfxml_host_link_down_isset;
4746 AT_surfxml_include_file AX_surfxml_include_file;
4747 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4748 short int surfxml_include_file_isset;
4749 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
4750 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
4751 short int surfxml_random_std_deviation_isset;
4752 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4753 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4754 short int surfxml_cluster_core_isset;
4755 AT_surfxml_host_state_file AX_surfxml_host_state_file;
4756 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
4757 short int surfxml_host_state_file_isset;
4758 AT_surfxml_route_dst AX_surfxml_route_dst;
4759 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4760 short int surfxml_route_dst_isset;
4761 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4762 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4763 short int surfxml_cluster_bw_isset;
4764 AT_surfxml_platform_version AX_surfxml_platform_version;
4765 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4766 short int surfxml_platform_version_isset;
4767
4768 /* XML state. */
4769 #ifdef FLEX_DEBUG
4770 # define ENTER(state)   debug_enter(state,#state)
4771 # define LEAVE          debug_leave()
4772 # define SET(state)     debug_set(state,#state)
4773   static void debug_enter(int, const char*);
4774   static void debug_leave(void);
4775   static void debug_set(int, const char*);
4776 #else
4777 # define ENTER(state)   (yy_push_state(state))
4778 # define LEAVE          (yy_pop_state())
4779 # define SET(state)     BEGIN(state)
4780 #endif
4781
4782 /* Generic actions. */
4783 #define SKIP    /*skip*/
4784 #define SUCCEED        CLEANUP; return 0
4785
4786 #define FAIL    return fail
4787 static int fail(const char*, ...);
4788
4789 enum {flexml_max_err_msg_size = 512};
4790 static char flexml_err_msg[flexml_max_err_msg_size];
4791 const char * surfxml_parse_err_msg()
4792 {
4793     return flexml_err_msg;
4794 }
4795 static void reset_surfxml_parse_err_msg()
4796 {
4797     flexml_err_msg[0] = '\0';
4798 }
4799
4800 /* Cleanup */
4801 static void cleanup(void);
4802 #define CLEANUP  cleanup()
4803
4804 /* Text buffer stack handling. */
4805 char *surfxml_bufferstack = NULL;
4806 static int blimit = FLEXML_BUFFERSTACKSIZE;
4807 static int bnext = 1;
4808
4809 static int *indexstack = NULL;
4810 static int ilimit = FLEXML_INDEXSTACKSIZE;
4811 static int inext = 1;
4812
4813 #define BUFFERSET(P)  (P = bnext)
4814 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4815 #define BUFFERDONE    (BUFFERPUTC('\0'))
4816
4817 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4818
4819 /* after this is called, there are at least 2 slots left in the stack */
4820 static int ck_blimit()
4821 {
4822      if (bnext >= blimit) {
4823          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4824          {
4825              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4826              assert(temp);
4827              surfxml_bufferstack = temp;
4828          }
4829      }
4830      return 0;
4831 }
4832
4833 /* after this is called, there are at least 2 slots left in the stack */
4834 static int ck_ilimit()
4835 {
4836      if (inext >= ilimit) {
4837          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4838          {
4839              int *temp = (int *) realloc(indexstack, ilimit);
4840              assert(temp);
4841              indexstack = temp;
4842          }
4843      }
4844      return 0;
4845 }
4846
4847 #ifdef FLEXML_NEED_BUFFERLIT
4848 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4849 {
4850    BUFFERSET(*pp);
4851    if (c) {
4852       const char *s = strchr(text, c), *e = strrchr(text, c);
4853       assert(s && e && s <= e);
4854       ++s;
4855       while (s < e) {
4856          if (isspace(*s)) {
4857             BUFFERPUTC(' ');
4858             do ++s; while (s < e && isspace(*s));
4859          } else
4860            BUFFERPUTC(*s++);
4861       }
4862    } else {
4863       const char *s = text;
4864       while (*s)
4865         BUFFERPUTC(*s++);
4866    }
4867    BUFFERDONE;
4868 }
4869 #endif
4870
4871 static void pushbuffer(int p)
4872 {
4873     ck_ilimit();
4874     indexstack[inext++] = p;
4875     indexstack[inext++] = bnext;    
4876 }
4877
4878 static int popbuffer(void)
4879 {
4880     assert(inext >= 2);
4881     bnext = indexstack[--inext];
4882     return indexstack[--inext];
4883 }
4884
4885 /* General internal entities are `unput' back onto the input stream... */
4886 #define ENTITYTEXT(T) \
4887   { char *s = (T), *e = s+strlen(s);\
4888     while (--e >= s) { unput(*e); }}
4889
4890 /* Flex standard options. */
4891 #define YY_NO_INPUT 1
4892 /* Flex user-requested options. */
4893 /* XML character classes (currently restricted to ASCII). */
4894 /* "Common syntactic structures." */
4895 /* "Names and Tokens." */
4896 /* Miscellaneous. */
4897 /* Parser states (flex `exclusive start conditions'):
4898  *
4899  * PROLOG       the XML prolog of the document before <?xml...>
4900  * DOCTYPE      the XML prolog of the document after <?xml...>
4901  * EPILOG       after the root element
4902  * INCOMMENT    inside an XML comment <!--....-->
4903  * INPI         inside an XML PI <?...?>
4904  * VALUE1       inside a '...'-delimited literal
4905  * VALUE2       inside a "..."-delimited literal
4906  * CDATA        inside a <![CDATA[...] ]> section.
4907  * ROOT_<tag>   expect root element <tag>
4908  * AL_<tag>     inside the attribute list for <tag>
4909  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4910  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4911  */
4912
4913 /* State names. */
4914 const char* *surfxml_statenames=NULL;
4915
4916 #define INITIAL 0
4917 #define PROLOG 1
4918 #define DOCTYPE 2
4919 #define EPILOG 3
4920 #define INCOMMENT 4
4921 #define INPI 5
4922 #define VALUE1 6
4923 #define VALUE2 7
4924 #define CDATA 8
4925 #define ROOT_surfxml_platform 9
4926 #define AL_surfxml_platform 10
4927 #define S_surfxml_platform 11
4928 #define S_surfxml_platform_1 12
4929 #define S_surfxml_platform_2 13
4930 #define S_surfxml_platform_3 14
4931 #define S_surfxml_platform_4 15
4932 #define S_surfxml_platform_5 16
4933 #define S_surfxml_platform_6 17
4934 #define S_surfxml_platform_7 18
4935 #define S_surfxml_platform_8 19
4936 #define E_surfxml_platform 20
4937 #define AL_surfxml_include 21
4938 #define S_surfxml_include 22
4939 #define S_surfxml_include_1 23
4940 #define S_surfxml_include_2 24
4941 #define E_surfxml_include 25
4942 #define AL_surfxml_trace 26
4943 #define IN_trace 27
4944 #define AL_surfxml_random 28
4945 #define E_surfxml_random 29
4946 #define AL_surfxml_trace_connect 30
4947 #define E_surfxml_trace_connect 31
4948 #define AL_surfxml_AS 32
4949 #define S_surfxml_AS 33
4950 #define S_surfxml_AS_1 34
4951 #define S_surfxml_AS_2 35
4952 #define S_surfxml_AS_3 36
4953 #define S_surfxml_AS_4 37
4954 #define S_surfxml_AS_5 38
4955 #define S_surfxml_AS_6 39
4956 #define S_surfxml_AS_7 40
4957 #define S_surfxml_AS_8 41
4958 #define S_surfxml_AS_9 42
4959 #define S_surfxml_AS_10 43
4960 #define S_surfxml_AS_11 44
4961 #define S_surfxml_AS_12 45
4962 #define S_surfxml_AS_13 46
4963 #define S_surfxml_AS_14 47
4964 #define S_surfxml_AS_15 48
4965 #define S_surfxml_AS_16 49
4966 #define E_surfxml_AS 50
4967 #define AL_surfxml_storage_type 51
4968 #define S_surfxml_storage_type 52
4969 #define S_surfxml_storage_type_1 53
4970 #define S_surfxml_storage_type_2 54
4971 #define E_surfxml_storage_type 55
4972 #define AL_surfxml_storage 56
4973 #define S_surfxml_storage 57
4974 #define S_surfxml_storage_1 58
4975 #define S_surfxml_storage_2 59
4976 #define E_surfxml_storage 60
4977 #define AL_surfxml_mount 61
4978 #define E_surfxml_mount 62
4979 #define AL_surfxml_mstorage 63
4980 #define E_surfxml_mstorage 64
4981 #define AL_surfxml_host 65
4982 #define S_surfxml_host 66
4983 #define S_surfxml_host_1 67
4984 #define S_surfxml_host_2 68
4985 #define E_surfxml_host 69
4986 #define AL_surfxml_gpu 70
4987 #define E_surfxml_gpu 71
4988 #define AL_surfxml_host_link 72
4989 #define E_surfxml_host_link 73
4990 #define AL_surfxml_cluster 74
4991 #define E_surfxml_cluster 75
4992 #define AL_surfxml_cabinet 76
4993 #define E_surfxml_cabinet 77
4994 #define AL_surfxml_peer 78
4995 #define E_surfxml_peer 79
4996 #define AL_surfxml_router 80
4997 #define E_surfxml_router 81
4998 #define AL_surfxml_backbone 82
4999 #define E_surfxml_backbone 83
5000 #define AL_surfxml_link 84
5001 #define S_surfxml_link 85
5002 #define S_surfxml_link_1 86
5003 #define S_surfxml_link_2 87
5004 #define E_surfxml_link 88
5005 #define AL_surfxml_route 89
5006 #define S_surfxml_route 90
5007 #define S_surfxml_route_1 91
5008 #define S_surfxml_route_2 92
5009 #define E_surfxml_route 93
5010 #define AL_surfxml_ASroute 94
5011 #define S_surfxml_ASroute 95
5012 #define S_surfxml_ASroute_1 96
5013 #define S_surfxml_ASroute_2 97
5014 #define E_surfxml_ASroute 98
5015 #define AL_surfxml_link_ctn 99
5016 #define E_surfxml_link_ctn 100
5017 #define AL_surfxml_bypassRoute 101
5018 #define S_surfxml_bypassRoute 102
5019 #define S_surfxml_bypassRoute_1 103
5020 #define S_surfxml_bypassRoute_2 104
5021 #define E_surfxml_bypassRoute 105
5022 #define AL_surfxml_bypassASroute 106
5023 #define S_surfxml_bypassASroute 107
5024 #define S_surfxml_bypassASroute_1 108
5025 #define S_surfxml_bypassASroute_2 109
5026 #define E_surfxml_bypassASroute 110
5027 #define AL_surfxml_process 111
5028 #define S_surfxml_process 112
5029 #define S_surfxml_process_1 113
5030 #define S_surfxml_process_2 114
5031 #define E_surfxml_process 115
5032 #define AL_surfxml_argument 116
5033 #define E_surfxml_argument 117
5034 #define AL_surfxml_config 118
5035 #define S_surfxml_config 119
5036 #define S_surfxml_config_1 120
5037 #define S_surfxml_config_2 121
5038 #define E_surfxml_config 122
5039 #define AL_surfxml_prop 123
5040 #define E_surfxml_prop 124
5041 #define IMPOSSIBLE 125
5042
5043 #ifndef YY_NO_UNISTD_H
5044 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5045  * down here because we want the user's section 1 to have been scanned first.
5046  * The user has a chance to override it with an option.
5047  */
5048 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5049 #  ifndef __STRICT_ANSI__
5050 #    include <io.h>
5051 #    include <process.h>
5052 #  endif
5053 #else
5054 #  include <unistd.h>
5055 #endif
5056 #endif
5057
5058 #ifndef YY_EXTRA_TYPE
5059 #define YY_EXTRA_TYPE void *
5060 #endif
5061
5062 static int yy_init_globals (void );
5063
5064 /* Accessor methods to globals.
5065    These are made visible to non-reentrant scanners for convenience. */
5066
5067 int surf_parse_lex_destroy (void );
5068
5069 int surf_parse_get_debug (void );
5070
5071 void surf_parse_set_debug (int debug_flag  );
5072
5073 YY_EXTRA_TYPE surf_parse_get_extra (void );
5074
5075 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5076
5077 FILE *surf_parse_get_in (void );
5078
5079 void surf_parse_set_in  (FILE * in_str  );
5080
5081 FILE *surf_parse_get_out (void );
5082
5083 void surf_parse_set_out  (FILE * out_str  );
5084
5085 int surf_parse_get_leng (void );
5086
5087 char *surf_parse_get_text (void );
5088
5089 int surf_parse_get_lineno (void );
5090
5091 void surf_parse_set_lineno (int line_number  );
5092
5093 /* Macros after this point can all be overridden by user definitions in
5094  * section 1.
5095  */
5096
5097 #ifndef YY_SKIP_YYWRAP
5098 #ifdef __cplusplus
5099 extern "C" int surf_parse_wrap (void );
5100 #else
5101 extern int surf_parse_wrap (void );
5102 #endif
5103 #endif
5104
5105 #ifndef yytext_ptr
5106 static void yy_flex_strncpy (char *,yyconst char *,int );
5107 #endif
5108
5109 #ifdef YY_NEED_STRLEN
5110 static int yy_flex_strlen (yyconst char * );
5111 #endif
5112
5113 #ifndef YY_NO_INPUT
5114
5115 #ifdef __cplusplus
5116 static int yyinput (void );
5117 #else
5118 static int input (void );
5119 #endif
5120
5121 #endif
5122
5123         static int yy_start_stack_ptr = 0;
5124         static int yy_start_stack_depth = 0;
5125         static int *yy_start_stack = NULL;
5126     
5127     static void yy_push_state (int new_state );
5128     
5129     static void yy_pop_state (void );
5130     
5131 /* Amount of stuff to slurp up with each read. */
5132 #ifndef YY_READ_BUF_SIZE
5133 #ifdef __ia64__
5134 /* On IA-64, the buffer size is 16k, not 8k */
5135 #define YY_READ_BUF_SIZE 16384
5136 #else
5137 #define YY_READ_BUF_SIZE 8192
5138 #endif /* __ia64__ */
5139 #endif
5140
5141 /* Copy whatever the last rule matched to the standard output. */
5142 #ifndef ECHO
5143 /* This used to be an fputs(), but since the string might contain NUL's,
5144  * we now use fwrite().
5145  */
5146 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5147 #endif
5148
5149 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5150  * is returned in "result".
5151  */
5152 #ifndef YY_INPUT
5153 #define YY_INPUT(buf,result,max_size) \
5154         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5155                 { \
5156                 int c = '*'; \
5157                 size_t n; \
5158                 for ( n = 0; n < max_size && \
5159                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5160                         buf[n] = (char) c; \
5161                 if ( c == '\n' ) \
5162                         buf[n++] = (char) c; \
5163                 if ( c == EOF && ferror( surf_parse_in ) ) \
5164                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5165                 result = n; \
5166                 } \
5167         else \
5168                 { \
5169                 errno=0; \
5170                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5171                         { \
5172                         if( errno != EINTR) \
5173                                 { \
5174                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5175                                 break; \
5176                                 } \
5177                         errno=0; \
5178                         clearerr(surf_parse_in); \
5179                         } \
5180                 }\
5181 \
5182
5183 #endif
5184
5185 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5186  * we don't want an extra ';' after the "return" because that will cause
5187  * some compilers to complain about unreachable statements.
5188  */
5189 #ifndef yyterminate
5190 #define yyterminate() return YY_NULL
5191 #endif
5192
5193 /* Number of entries by which start-condition stack grows. */
5194 #ifndef YY_START_STACK_INCR
5195 #define YY_START_STACK_INCR 25
5196 #endif
5197
5198 /* Report a fatal error. */
5199 #ifndef YY_FATAL_ERROR
5200 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5201 #endif
5202
5203 /* end tables serialization structures and prototypes */
5204
5205 /* Default declaration of generated scanner - a define so the user can
5206  * easily add parameters.
5207  */
5208 #ifndef YY_DECL
5209 #define YY_DECL_IS_OURS 1
5210
5211 extern int surf_parse_lex (void);
5212
5213 #define YY_DECL int surf_parse_lex (void)
5214 #endif /* !YY_DECL */
5215
5216 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5217  * have been set up.
5218  */
5219 #ifndef YY_USER_ACTION
5220 #define YY_USER_ACTION
5221 #endif
5222
5223 /* Code executed at the end of each rule. */
5224 #ifndef YY_BREAK
5225 #define YY_BREAK break;
5226 #endif
5227
5228 #define YY_RULE_SETUP \
5229         YY_USER_ACTION
5230
5231 /** The main scanner function which does all the work.
5232  */
5233 YY_DECL
5234 {
5235         register yy_state_type yy_current_state;
5236         register char *yy_cp, *yy_bp;
5237         register int yy_act;
5238     
5239  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5240  SET(PROLOG);
5241  reset_surfxml_parse_err_msg();
5242  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5243  assert(surfxml_bufferstack);
5244  #ifdef FLEX_DEBUG
5245  {
5246      int i;
5247      for (i = 0; i < blimit; i++) {
5248          surfxml_bufferstack[i] = '\377';
5249      }
5250  }
5251  #endif
5252  surfxml_bufferstack[0] = '\0';
5253  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5254  assert(indexstack);
5255  indexstack[0] = 0;
5256
5257   /* FleXML_init */
5258   bnext = inext = 1;
5259   surfxml_bufferliteral('\0', &bnext, "0.0");
5260   surfxml_bufferliteral('\0', &bnext, "2147483647");
5261   surfxml_bufferliteral('\0', &bnext, "1");
5262   surfxml_bufferliteral('\0', &bnext, "1.0");
5263   surfxml_bufferliteral('\0', &bnext, "1");
5264   surfxml_bufferliteral('\0', &bnext, "0.0");
5265   surfxml_bufferliteral('\0', &bnext, "-1.0");
5266   surfxml_bufferliteral('\0', &bnext, "-1.0");
5267   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5268   surfxml_statenames[PROLOG] = NULL;
5269   surfxml_statenames[DOCTYPE] = NULL;
5270   surfxml_statenames[EPILOG] = NULL;
5271   surfxml_statenames[INCOMMENT] = NULL;
5272   surfxml_statenames[INPI] = NULL;
5273   surfxml_statenames[VALUE1] = NULL;
5274   surfxml_statenames[VALUE2] = NULL;
5275   surfxml_statenames[CDATA] = NULL;
5276   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5277   surfxml_statenames[AL_surfxml_platform] = NULL;
5278   surfxml_statenames[S_surfxml_platform] = "platform";
5279   surfxml_statenames[S_surfxml_platform_1] = "platform";
5280   surfxml_statenames[S_surfxml_platform_2] = "platform";
5281   surfxml_statenames[S_surfxml_platform_3] = "platform";
5282   surfxml_statenames[S_surfxml_platform_4] = "platform";
5283   surfxml_statenames[S_surfxml_platform_5] = "platform";
5284   surfxml_statenames[S_surfxml_platform_6] = "platform";
5285   surfxml_statenames[S_surfxml_platform_7] = "platform";
5286   surfxml_statenames[S_surfxml_platform_8] = "platform";
5287   surfxml_statenames[E_surfxml_platform] = "platform";
5288   surfxml_statenames[AL_surfxml_include] = NULL;
5289   surfxml_statenames[S_surfxml_include] = "include";
5290   surfxml_statenames[S_surfxml_include_1] = "include";
5291   surfxml_statenames[S_surfxml_include_2] = "include";
5292   surfxml_statenames[E_surfxml_include] = "include";
5293   surfxml_statenames[AL_surfxml_trace] = NULL;
5294   surfxml_statenames[IN_trace] = "trace";
5295   surfxml_statenames[AL_surfxml_random] = NULL;
5296   surfxml_statenames[E_surfxml_random] = "random";
5297   surfxml_statenames[AL_surfxml_trace_connect] = NULL;
5298   surfxml_statenames[E_surfxml_trace_connect] = "trace_connect";
5299   surfxml_statenames[AL_surfxml_AS] = NULL;
5300   surfxml_statenames[S_surfxml_AS] = "AS";
5301   surfxml_statenames[S_surfxml_AS_1] = "AS";
5302   surfxml_statenames[S_surfxml_AS_2] = "AS";
5303   surfxml_statenames[S_surfxml_AS_3] = "AS";
5304   surfxml_statenames[S_surfxml_AS_4] = "AS";
5305   surfxml_statenames[S_surfxml_AS_5] = "AS";
5306   surfxml_statenames[S_surfxml_AS_6] = "AS";
5307   surfxml_statenames[S_surfxml_AS_7] = "AS";
5308   surfxml_statenames[S_surfxml_AS_8] = "AS";
5309   surfxml_statenames[S_surfxml_AS_9] = "AS";
5310   surfxml_statenames[S_surfxml_AS_10] = "AS";
5311   surfxml_statenames[S_surfxml_AS_11] = "AS";
5312   surfxml_statenames[S_surfxml_AS_12] = "AS";
5313   surfxml_statenames[S_surfxml_AS_13] = "AS";
5314   surfxml_statenames[S_surfxml_AS_14] = "AS";
5315   surfxml_statenames[S_surfxml_AS_15] = "AS";
5316   surfxml_statenames[S_surfxml_AS_16] = "AS";
5317   surfxml_statenames[E_surfxml_AS] = "AS";
5318   surfxml_statenames[AL_surfxml_storage_type] = NULL;
5319   surfxml_statenames[S_surfxml_storage_type] = "storage_type";
5320   surfxml_statenames[S_surfxml_storage_type_1] = "storage_type";
5321   surfxml_statenames[S_surfxml_storage_type_2] = "storage_type";
5322   surfxml_statenames[E_surfxml_storage_type] = "storage_type";
5323   surfxml_statenames[AL_surfxml_storage] = NULL;
5324   surfxml_statenames[S_surfxml_storage] = "storage";
5325   surfxml_statenames[S_surfxml_storage_1] = "storage";
5326   surfxml_statenames[S_surfxml_storage_2] = "storage";
5327   surfxml_statenames[E_surfxml_storage] = "storage";
5328   surfxml_statenames[AL_surfxml_mount] = NULL;
5329   surfxml_statenames[E_surfxml_mount] = "mount";
5330   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5331   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5332   surfxml_statenames[AL_surfxml_host] = NULL;
5333   surfxml_statenames[S_surfxml_host] = "host";
5334   surfxml_statenames[S_surfxml_host_1] = "host";
5335   surfxml_statenames[S_surfxml_host_2] = "host";
5336   surfxml_statenames[E_surfxml_host] = "host";
5337   surfxml_statenames[AL_surfxml_gpu] = NULL;
5338   surfxml_statenames[E_surfxml_gpu] = "gpu";
5339   surfxml_statenames[AL_surfxml_host_link] = NULL;
5340   surfxml_statenames[E_surfxml_host_link] = "host_link";
5341   surfxml_statenames[AL_surfxml_cluster] = NULL;
5342   surfxml_statenames[E_surfxml_cluster] = "cluster";
5343   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5344   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5345   surfxml_statenames[AL_surfxml_peer] = NULL;
5346   surfxml_statenames[E_surfxml_peer] = "peer";
5347   surfxml_statenames[AL_surfxml_router] = NULL;
5348   surfxml_statenames[E_surfxml_router] = "router";
5349   surfxml_statenames[AL_surfxml_backbone] = NULL;
5350   surfxml_statenames[E_surfxml_backbone] = "backbone";
5351   surfxml_statenames[AL_surfxml_link] = NULL;
5352   surfxml_statenames[S_surfxml_link] = "link";
5353   surfxml_statenames[S_surfxml_link_1] = "link";
5354   surfxml_statenames[S_surfxml_link_2] = "link";
5355   surfxml_statenames[E_surfxml_link] = "link";
5356   surfxml_statenames[AL_surfxml_route] = NULL;
5357   surfxml_statenames[S_surfxml_route] = "route";
5358   surfxml_statenames[S_surfxml_route_1] = "route";
5359   surfxml_statenames[S_surfxml_route_2] = "route";
5360   surfxml_statenames[E_surfxml_route] = "route";
5361   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5362   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5363   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5364   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5365   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5366   surfxml_statenames[AL_surfxml_link_ctn] = NULL;
5367   surfxml_statenames[E_surfxml_link_ctn] = "link_ctn";
5368   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5369   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5370   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5371   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5372   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5373   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5374   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5375   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5376   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5377   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5378   surfxml_statenames[AL_surfxml_process] = NULL;
5379   surfxml_statenames[S_surfxml_process] = "process";
5380   surfxml_statenames[S_surfxml_process_1] = "process";
5381   surfxml_statenames[S_surfxml_process_2] = "process";
5382   surfxml_statenames[E_surfxml_process] = "process";
5383   surfxml_statenames[AL_surfxml_argument] = NULL;
5384   surfxml_statenames[E_surfxml_argument] = "argument";
5385   surfxml_statenames[AL_surfxml_config] = NULL;
5386   surfxml_statenames[S_surfxml_config] = "config";
5387   surfxml_statenames[S_surfxml_config_1] = "config";
5388   surfxml_statenames[S_surfxml_config_2] = "config";
5389   surfxml_statenames[E_surfxml_config] = "config";
5390   surfxml_statenames[AL_surfxml_prop] = NULL;
5391   surfxml_statenames[E_surfxml_prop] = "prop";
5392   }
5393
5394  /* COMMENTS and PIs: handled uniformly for efficiency. */
5395
5396         if ( !(yy_init) )
5397                 {
5398                 (yy_init) = 1;
5399
5400 #ifdef YY_USER_INIT
5401                 YY_USER_INIT;
5402 #endif
5403
5404                 if ( ! (yy_start) )
5405                         (yy_start) = 1; /* first start state */
5406
5407                 if ( ! surf_parse_in )
5408                         surf_parse_in = stdin;
5409
5410                 if ( ! surf_parse_out )
5411                         surf_parse_out = stdout;
5412
5413                 if ( ! YY_CURRENT_BUFFER ) {
5414                         surf_parse_ensure_buffer_stack ();
5415                         YY_CURRENT_BUFFER_LVALUE =
5416                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5417                 }
5418
5419                 surf_parse__load_buffer_state( );
5420                 }
5421
5422         while ( 1 )             /* loops until end-of-file is reached */
5423                 {
5424                 yy_cp = (yy_c_buf_p);
5425
5426                 /* Support of surf_parse_text. */
5427                 *yy_cp = (yy_hold_char);
5428
5429                 /* yy_bp points to the position in yy_ch_buf of the start of
5430                  * the current run.
5431                  */
5432                 yy_bp = yy_cp;
5433
5434                 yy_current_state = (yy_start);
5435 yy_match:
5436                 do
5437                         {
5438                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5439                         if ( yy_accept[yy_current_state] )
5440                                 {
5441                                 (yy_last_accepting_state) = yy_current_state;
5442                                 (yy_last_accepting_cpos) = yy_cp;
5443                                 }
5444                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5445                                 {
5446                                 yy_current_state = (int) yy_def[yy_current_state];
5447                                 if ( yy_current_state >= 3260 )
5448                                         yy_c = yy_meta[(unsigned int) yy_c];
5449                                 }
5450                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5451                         ++yy_cp;
5452                         }
5453                 while ( yy_base[yy_current_state] != 11972 );
5454
5455 yy_find_action:
5456                 yy_act = yy_accept[yy_current_state];
5457                 if ( yy_act == 0 )
5458                         { /* have to back up */
5459                         yy_cp = (yy_last_accepting_cpos);
5460                         yy_current_state = (yy_last_accepting_state);
5461                         yy_act = yy_accept[yy_current_state];
5462                         }
5463
5464                 YY_DO_BEFORE_ACTION;
5465
5466                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5467                         {
5468                         int yyl;
5469                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5470                                 if ( surf_parse_text[yyl] == '\n' )
5471                                            
5472     surf_parse_lineno++;
5473 ;
5474                         }
5475
5476 do_action:      /* This label is used only to access EOF actions. */
5477
5478                 switch ( yy_act )
5479         { /* beginning of action switch */
5480                         case 0: /* must back up */
5481                         /* undo the effects of YY_DO_BEFORE_ACTION */
5482                         *yy_cp = (yy_hold_char);
5483                         yy_cp = (yy_last_accepting_cpos);
5484                         yy_current_state = (yy_last_accepting_state);
5485                         goto yy_find_action;
5486
5487 case 1:
5488 YY_RULE_SETUP
5489 ENTER(INCOMMENT);
5490         YY_BREAK
5491 case 2:
5492 YY_RULE_SETUP
5493 ENTER(INPI);
5494         YY_BREAK
5495
5496 case 3:
5497 YY_RULE_SETUP
5498 LEAVE;
5499         YY_BREAK
5500 case 4:
5501 case 5:
5502 case 6:
5503 /* rule 6 can match eol */
5504 YY_RULE_SETUP
5505 SKIP;
5506         YY_BREAK
5507 case YY_STATE_EOF(INCOMMENT):
5508 FAIL("EOF in comment.");
5509         YY_BREAK
5510
5511 case 7:
5512 YY_RULE_SETUP
5513 LEAVE;
5514         YY_BREAK
5515 case 8:
5516 case 9:
5517 /* rule 9 can match eol */
5518 YY_RULE_SETUP
5519 SKIP;
5520         YY_BREAK
5521 case YY_STATE_EOF(INPI):
5522 FAIL("EOF in PI (processing instruction).");
5523         YY_BREAK
5524
5525 /* SPACES: skipped uniformly */
5526 case 10:
5527 /* rule 10 can match eol */
5528 YY_RULE_SETUP
5529 SKIP;
5530         YY_BREAK
5531 /* PROLOG: determine root element and process it. */
5532
5533 case 11:
5534 /* rule 11 can match eol */
5535 YY_RULE_SETUP
5536 SET(DOCTYPE); 
5537         YY_BREAK
5538 case 12:
5539 /* rule 12 can match eol */
5540 YY_RULE_SETUP
5541 FAIL("Bad declaration %s.",surf_parse_text);
5542         YY_BREAK
5543
5544 case 13:
5545 /* rule 13 can match eol */
5546 YY_RULE_SETUP
5547 SET(ROOT_surfxml_platform);
5548         YY_BREAK
5549 case 14:
5550 /* rule 14 can match eol */
5551 YY_RULE_SETUP
5552 FAIL("Bad declaration %s.",surf_parse_text);
5553         YY_BREAK
5554 case 15:
5555 YY_RULE_SETUP
5556 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5557         YY_BREAK
5558 case YY_STATE_EOF(PROLOG):
5559 case YY_STATE_EOF(DOCTYPE):
5560 FAIL("EOF in prolog.");
5561         YY_BREAK
5562
5563 /* RULES DERIVED FROM DTD. */
5564 /* <!-- Small DTD for SURF based tools. -->  */
5565 case 16:
5566 /* rule 16 can match eol */
5567 YY_RULE_SETUP
5568 FAIL("Starting tag <platform> is not allowed here.");
5569         YY_BREAK
5570 case 17:
5571 /* rule 17 can match eol */
5572 YY_RULE_SETUP
5573 {
5574   AX_surfxml_platform_version = 1;
5575   surfxml_platform_version_isset = 0;
5576   ENTER(AL_surfxml_platform); pushbuffer(0);
5577   }
5578         YY_BREAK
5579
5580 case 18:
5581 /* rule 18 can match eol */
5582 YY_RULE_SETUP
5583 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);
5584         YY_BREAK
5585 case 19:
5586 /* rule 19 can match eol */
5587 YY_RULE_SETUP
5588 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);
5589         YY_BREAK
5590 case 20:
5591 YY_RULE_SETUP
5592 {
5593   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5594  }
5595         YY_BREAK
5596 case 21:
5597 YY_RULE_SETUP
5598 {
5599   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5600   switch (YY_START) {
5601    case ROOT_surfxml_platform: SET(EPILOG); break;
5602   }
5603  }
5604         YY_BREAK
5605 case 22:
5606 YY_RULE_SETUP
5607 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5608         YY_BREAK
5609 case 23:
5610 YY_RULE_SETUP
5611 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5612         YY_BREAK
5613 case YY_STATE_EOF(AL_surfxml_platform):
5614 FAIL("EOF in attribute list of `platform' element.");
5615         YY_BREAK
5616
5617 case 24:
5618 /* rule 24 can match eol */
5619 YY_RULE_SETUP
5620 {
5621   LEAVE;
5622   ETag_surfxml_platform();
5623   popbuffer(); /* attribute */
5624   switch (YY_START) {
5625    case ROOT_surfxml_platform: SET(EPILOG); break;
5626   }
5627  }
5628         YY_BREAK
5629 case 25:
5630 /* rule 25 can match eol */
5631 YY_RULE_SETUP
5632 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5633         YY_BREAK
5634 case 26:
5635 YY_RULE_SETUP
5636 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5637         YY_BREAK
5638 case YY_STATE_EOF(S_surfxml_platform_8):
5639 case YY_STATE_EOF(S_surfxml_platform_1):
5640 case YY_STATE_EOF(S_surfxml_platform_3):
5641 case YY_STATE_EOF(S_surfxml_platform):
5642 case YY_STATE_EOF(S_surfxml_platform_4):
5643 case YY_STATE_EOF(S_surfxml_platform_6):
5644 case YY_STATE_EOF(E_surfxml_platform):
5645 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5646         YY_BREAK
5647
5648 case 27:
5649 /* rule 27 can match eol */
5650 YY_RULE_SETUP
5651 FAIL("Starting tag <include> is not allowed here.");
5652         YY_BREAK
5653 case 28:
5654 /* rule 28 can match eol */
5655 YY_RULE_SETUP
5656 {
5657   AX_surfxml_include_file = 0;
5658   surfxml_include_file_isset = 0;
5659   ENTER(AL_surfxml_include); pushbuffer(0);
5660   }
5661         YY_BREAK
5662
5663 case 29:
5664 /* rule 29 can match eol */
5665 YY_RULE_SETUP
5666 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);
5667         YY_BREAK
5668 case 30:
5669 /* rule 30 can match eol */
5670 YY_RULE_SETUP
5671 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);
5672         YY_BREAK
5673 case 31:
5674 YY_RULE_SETUP
5675 {
5676   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5677   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5678  }
5679         YY_BREAK
5680 case 32:
5681 YY_RULE_SETUP
5682 {
5683   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5684   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5685   switch (YY_START) {
5686    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5687    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;
5688    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;
5689    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5690   }
5691  }
5692         YY_BREAK
5693 case 33:
5694 YY_RULE_SETUP
5695 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5696         YY_BREAK
5697 case 34:
5698 YY_RULE_SETUP
5699 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5700         YY_BREAK
5701 case YY_STATE_EOF(AL_surfxml_include):
5702 FAIL("EOF in attribute list of `include' element.");
5703         YY_BREAK
5704
5705 case 35:
5706 /* rule 35 can match eol */
5707 YY_RULE_SETUP
5708 {
5709   LEAVE;
5710   ETag_surfxml_include();
5711   popbuffer(); /* attribute */
5712   switch (YY_START) {
5713    case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5714    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;
5715    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;
5716    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5717   }
5718  }
5719         YY_BREAK
5720 case 36:
5721 /* rule 36 can match eol */
5722 YY_RULE_SETUP
5723 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5724         YY_BREAK
5725 case 37:
5726 YY_RULE_SETUP
5727 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5728         YY_BREAK
5729 case YY_STATE_EOF(E_surfxml_include):
5730 case YY_STATE_EOF(S_surfxml_include):
5731 case YY_STATE_EOF(S_surfxml_include_2):
5732 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5733         YY_BREAK
5734
5735 case 38:
5736 /* rule 38 can match eol */
5737 YY_RULE_SETUP
5738 FAIL("Starting tag <trace> is not allowed here.");
5739         YY_BREAK
5740 case 39:
5741 /* rule 39 can match eol */
5742 YY_RULE_SETUP
5743 {
5744   AX_surfxml_trace_id = 0;
5745   surfxml_trace_id_isset = 0;
5746   AX_surfxml_trace_file = 0;
5747   surfxml_trace_file_isset = 0;
5748   AX_surfxml_trace_periodicity = 0;
5749   surfxml_trace_periodicity_isset = 0;
5750   ENTER(AL_surfxml_trace); pushbuffer(0);
5751   }
5752         YY_BREAK
5753
5754 case 40:
5755 /* rule 40 can match eol */
5756 YY_RULE_SETUP
5757 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);
5758         YY_BREAK
5759 case 41:
5760 /* rule 41 can match eol */
5761 YY_RULE_SETUP
5762 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);
5763         YY_BREAK
5764 case 42:
5765 /* rule 42 can match eol */
5766 YY_RULE_SETUP
5767 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);
5768         YY_BREAK
5769 case 43:
5770 /* rule 43 can match eol */
5771 YY_RULE_SETUP
5772 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);
5773         YY_BREAK
5774 case 44:
5775 /* rule 44 can match eol */
5776 YY_RULE_SETUP
5777 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);
5778         YY_BREAK
5779 case 45:
5780 /* rule 45 can match eol */
5781 YY_RULE_SETUP
5782 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);
5783         YY_BREAK
5784 case 46:
5785 YY_RULE_SETUP
5786 {
5787   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5788   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5789   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5790  }
5791         YY_BREAK
5792 case 47:
5793 YY_RULE_SETUP
5794 {
5795   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5796   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5797   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5798   switch (YY_START) {
5799    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5800    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5801    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5802    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;
5803    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5804    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;
5805    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5806   }
5807  }
5808         YY_BREAK
5809 case 48:
5810 YY_RULE_SETUP
5811 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5812         YY_BREAK
5813 case 49:
5814 YY_RULE_SETUP
5815 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5816         YY_BREAK
5817 case YY_STATE_EOF(AL_surfxml_trace):
5818 FAIL("EOF in attribute list of `trace' element.");
5819         YY_BREAK
5820
5821 case 50:
5822 /* rule 50 can match eol */
5823 YY_RULE_SETUP
5824 {
5825   LEAVE;
5826   BUFFERDONE;
5827   ETag_surfxml_trace();
5828   surfxml_pcdata_ix = popbuffer();
5829   popbuffer(); /* attribute */
5830   switch (YY_START) {
5831    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
5832    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
5833    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5834    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;
5835    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
5836    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;
5837    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5838   }
5839  }
5840         YY_BREAK
5841 case 51:
5842 /* rule 51 can match eol */
5843 YY_RULE_SETUP
5844 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5845         YY_BREAK
5846 case YY_STATE_EOF(IN_trace):
5847 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5848         YY_BREAK
5849
5850 case 52:
5851 /* rule 52 can match eol */
5852 YY_RULE_SETUP
5853 FAIL("Starting tag <random> is not allowed here.");
5854         YY_BREAK
5855 case 53:
5856 /* rule 53 can match eol */
5857 YY_RULE_SETUP
5858 {
5859   AX_surfxml_random_id = 0;
5860   surfxml_random_id_isset = 0;
5861   AX_surfxml_random_min = 0;
5862   surfxml_random_min_isset = 0;
5863   AX_surfxml_random_max = 0;
5864   surfxml_random_max_isset = 0;
5865   AX_surfxml_random_mean = 0;
5866   surfxml_random_mean_isset = 0;
5867   AX_surfxml_random_std_deviation = 0;
5868   surfxml_random_std_deviation_isset = 0;
5869   AX_surfxml_random_seed = 5;
5870   surfxml_random_seed_isset = 0;
5871   AX_surfxml_random_radical = 0;
5872   surfxml_random_radical_isset = 0;
5873   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5874   surfxml_random_generator_isset = 0;
5875   ENTER(AL_surfxml_random); pushbuffer(0);
5876   }
5877         YY_BREAK
5878
5879 case 54:
5880 /* rule 54 can match eol */
5881 YY_RULE_SETUP
5882 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);
5883         YY_BREAK
5884 case 55:
5885 /* rule 55 can match eol */
5886 YY_RULE_SETUP
5887 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);
5888         YY_BREAK
5889 case 56:
5890 /* rule 56 can match eol */
5891 YY_RULE_SETUP
5892 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);
5893         YY_BREAK
5894 case 57:
5895 /* rule 57 can match eol */
5896 YY_RULE_SETUP
5897 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);
5898         YY_BREAK
5899 case 58:
5900 /* rule 58 can match eol */
5901 YY_RULE_SETUP
5902 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);
5903         YY_BREAK
5904 case 59:
5905 /* rule 59 can match eol */
5906 YY_RULE_SETUP
5907 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);
5908         YY_BREAK
5909 case 60:
5910 /* rule 60 can match eol */
5911 YY_RULE_SETUP
5912 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);
5913         YY_BREAK
5914 case 61:
5915 /* rule 61 can match eol */
5916 YY_RULE_SETUP
5917 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);
5918         YY_BREAK
5919 case 62:
5920 /* rule 62 can match eol */
5921 YY_RULE_SETUP
5922 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);
5923         YY_BREAK
5924 case 63:
5925 /* rule 63 can match eol */
5926 YY_RULE_SETUP
5927 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);
5928         YY_BREAK
5929 case 64:
5930 /* rule 64 can match eol */
5931 YY_RULE_SETUP
5932 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);
5933         YY_BREAK
5934 case 65:
5935 /* rule 65 can match eol */
5936 YY_RULE_SETUP
5937 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);
5938         YY_BREAK
5939 case 66:
5940 /* rule 66 can match eol */
5941 YY_RULE_SETUP
5942 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);
5943         YY_BREAK
5944 case 67:
5945 /* rule 67 can match eol */
5946 YY_RULE_SETUP
5947 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);
5948         YY_BREAK
5949 case 68:
5950 /* rule 68 can match eol */
5951 case 69:
5952 /* rule 69 can match eol */
5953 YY_RULE_SETUP
5954 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
5955         YY_BREAK
5956 case 70:
5957 /* rule 70 can match eol */
5958 case 71:
5959 /* rule 71 can match eol */
5960 YY_RULE_SETUP
5961 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
5962         YY_BREAK
5963 case 72:
5964 /* rule 72 can match eol */
5965 case 73:
5966 /* rule 73 can match eol */
5967 YY_RULE_SETUP
5968 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
5969         YY_BREAK
5970 case 74:
5971 /* rule 74 can match eol */
5972 case 75:
5973 /* rule 75 can match eol */
5974 YY_RULE_SETUP
5975 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
5976         YY_BREAK
5977 case 76:
5978 YY_RULE_SETUP
5979 {
5980   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5981   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5982   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5983   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5984   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5985   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
5986  }
5987         YY_BREAK
5988 case 77:
5989 YY_RULE_SETUP
5990 {
5991   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
5992   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
5993   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
5994   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
5995   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
5996   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
5997   switch (YY_START) {
5998    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5999   }
6000  }
6001         YY_BREAK
6002 case 78:
6003 YY_RULE_SETUP
6004 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6005         YY_BREAK
6006 case 79:
6007 YY_RULE_SETUP
6008 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6009         YY_BREAK
6010 case YY_STATE_EOF(AL_surfxml_random):
6011 FAIL("EOF in attribute list of `random' element.");
6012         YY_BREAK
6013
6014 case 80:
6015 /* rule 80 can match eol */
6016 YY_RULE_SETUP
6017 {
6018   LEAVE;
6019   ETag_surfxml_random();
6020   popbuffer(); /* attribute */
6021   switch (YY_START) {
6022    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6023   }
6024  }
6025         YY_BREAK
6026 case 81:
6027 /* rule 81 can match eol */
6028 YY_RULE_SETUP
6029 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6030         YY_BREAK
6031 case 82:
6032 YY_RULE_SETUP
6033 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6034         YY_BREAK
6035 case YY_STATE_EOF(E_surfxml_random):
6036 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6037         YY_BREAK
6038
6039 case 83:
6040 /* rule 83 can match eol */
6041 YY_RULE_SETUP
6042 FAIL("Starting tag <trace_connect> is not allowed here.");
6043         YY_BREAK
6044 case 84:
6045 /* rule 84 can match eol */
6046 YY_RULE_SETUP
6047 {
6048   AX_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
6049   surfxml_trace_connect_kind_isset = 0;
6050   AX_surfxml_trace_connect_trace = 0;
6051   surfxml_trace_connect_trace_isset = 0;
6052   AX_surfxml_trace_connect_element = 0;
6053   surfxml_trace_connect_element_isset = 0;
6054   ENTER(AL_surfxml_trace_connect); pushbuffer(0);
6055   }
6056         YY_BREAK
6057
6058 case 85:
6059 /* rule 85 can match eol */
6060 case 86:
6061 /* rule 86 can match eol */
6062 YY_RULE_SETUP
6063 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_HOST_AVAIL;
6064         YY_BREAK
6065 case 87:
6066 /* rule 87 can match eol */
6067 case 88:
6068 /* rule 88 can match eol */
6069 YY_RULE_SETUP
6070 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_POWER;
6071         YY_BREAK
6072 case 89:
6073 /* rule 89 can match eol */
6074 case 90:
6075 /* rule 90 can match eol */
6076 YY_RULE_SETUP
6077 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LINK_AVAIL;
6078         YY_BREAK
6079 case 91:
6080 /* rule 91 can match eol */
6081 case 92:
6082 /* rule 92 can match eol */
6083 YY_RULE_SETUP
6084 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_BANDWIDTH;
6085         YY_BREAK
6086 case 93:
6087 /* rule 93 can match eol */
6088 case 94:
6089 /* rule 94 can match eol */
6090 YY_RULE_SETUP
6091 A_surfxml_trace_connect_kind = A_surfxml_trace_connect_kind_LATENCY;
6092         YY_BREAK
6093 case 95:
6094 /* rule 95 can match eol */
6095 YY_RULE_SETUP
6096 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);
6097         YY_BREAK
6098 case 96:
6099 /* rule 96 can match eol */
6100 YY_RULE_SETUP
6101 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);
6102         YY_BREAK
6103 case 97:
6104 /* rule 97 can match eol */
6105 YY_RULE_SETUP
6106 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);
6107         YY_BREAK
6108 case 98:
6109 /* rule 98 can match eol */
6110 YY_RULE_SETUP
6111 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);
6112         YY_BREAK
6113 case 99:
6114 YY_RULE_SETUP
6115 {
6116   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6117   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6118   LEAVE; STag_surfxml_trace_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_connect);
6119  }
6120         YY_BREAK
6121 case 100:
6122 YY_RULE_SETUP
6123 {
6124   if (!AX_surfxml_trace_connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6125   if (!AX_surfxml_trace_connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6126   LEAVE; STag_surfxml_trace_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_connect(); popbuffer(); /* attribute */
6127   switch (YY_START) {
6128    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6129    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6130    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6131    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;
6132    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6133    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;
6134    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6135   }
6136  }
6137         YY_BREAK
6138 case 101:
6139 YY_RULE_SETUP
6140 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6141         YY_BREAK
6142 case 102:
6143 YY_RULE_SETUP
6144 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6145         YY_BREAK
6146 case YY_STATE_EOF(AL_surfxml_trace_connect):
6147 FAIL("EOF in attribute list of `trace_connect' element.");
6148         YY_BREAK
6149
6150 case 103:
6151 /* rule 103 can match eol */
6152 YY_RULE_SETUP
6153 {
6154   LEAVE;
6155   ETag_surfxml_trace_connect();
6156   popbuffer(); /* attribute */
6157   switch (YY_START) {
6158    case S_surfxml_AS_11: case S_surfxml_AS_10: case S_surfxml_AS_7: SET(S_surfxml_AS_11); break;
6159    case S_surfxml_AS_12: case S_surfxml_AS_15: case S_surfxml_AS_16: SET(S_surfxml_AS_16); break;
6160    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6161    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;
6162    case S_surfxml_AS_14: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6163    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;
6164    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6165   }
6166  }
6167         YY_BREAK
6168 case 104:
6169 /* rule 104 can match eol */
6170 YY_RULE_SETUP
6171 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6172         YY_BREAK
6173 case 105:
6174 YY_RULE_SETUP
6175 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6176         YY_BREAK
6177 case YY_STATE_EOF(E_surfxml_trace_connect):
6178 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6179         YY_BREAK
6180
6181 case 106:
6182 /* rule 106 can match eol */
6183 YY_RULE_SETUP
6184 FAIL("Starting tag <AS> is not allowed here.");
6185         YY_BREAK
6186 case 107:
6187 /* rule 107 can match eol */
6188 YY_RULE_SETUP
6189 {
6190   AX_surfxml_AS_id = 0;
6191   surfxml_AS_id_isset = 0;
6192   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6193   surfxml_AS_routing_isset = 0;
6194   ENTER(AL_surfxml_AS); pushbuffer(0);
6195   }
6196         YY_BREAK
6197
6198 case 108:
6199 /* rule 108 can match eol */
6200 YY_RULE_SETUP
6201 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);
6202         YY_BREAK
6203 case 109:
6204 /* rule 109 can match eol */
6205 YY_RULE_SETUP
6206 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);
6207         YY_BREAK
6208 case 110:
6209 /* rule 110 can match eol */
6210 case 111:
6211 /* rule 111 can match eol */
6212 YY_RULE_SETUP
6213 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6214         YY_BREAK
6215 case 112:
6216 /* rule 112 can match eol */
6217 case 113:
6218 /* rule 113 can match eol */
6219 YY_RULE_SETUP
6220 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6221         YY_BREAK
6222 case 114:
6223 /* rule 114 can match eol */
6224 case 115:
6225 /* rule 115 can match eol */
6226 YY_RULE_SETUP
6227 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6228         YY_BREAK
6229 case 116:
6230 /* rule 116 can match eol */
6231 case 117:
6232 /* rule 117 can match eol */
6233 YY_RULE_SETUP
6234 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6235         YY_BREAK
6236 case 118:
6237 /* rule 118 can match eol */
6238 case 119:
6239 /* rule 119 can match eol */
6240 YY_RULE_SETUP
6241 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6242         YY_BREAK
6243 case 120:
6244 /* rule 120 can match eol */
6245 case 121:
6246 /* rule 121 can match eol */
6247 YY_RULE_SETUP
6248 A_surfxml_AS_routing = A_surfxml_AS_routing_RuleBased;
6249         YY_BREAK
6250 case 122:
6251 /* rule 122 can match eol */
6252 case 123:
6253 /* rule 123 can match eol */
6254 YY_RULE_SETUP
6255 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6256         YY_BREAK
6257 case 124:
6258 /* rule 124 can match eol */
6259 case 125:
6260 /* rule 125 can match eol */
6261 YY_RULE_SETUP
6262 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6263         YY_BREAK
6264 case 126:
6265 YY_RULE_SETUP
6266 {
6267   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6268   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6269  }
6270         YY_BREAK
6271 case 127:
6272 YY_RULE_SETUP
6273 {
6274   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6275   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6276   switch (YY_START) {
6277    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;
6278    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;
6279    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6280   }
6281  }
6282         YY_BREAK
6283 case 128:
6284 YY_RULE_SETUP
6285 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6286         YY_BREAK
6287 case 129:
6288 YY_RULE_SETUP
6289 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6290         YY_BREAK
6291 case YY_STATE_EOF(AL_surfxml_AS):
6292 FAIL("EOF in attribute list of `AS' element.");
6293         YY_BREAK
6294
6295 case 130:
6296 /* rule 130 can match eol */
6297 YY_RULE_SETUP
6298 {
6299   LEAVE;
6300   ETag_surfxml_AS();
6301   popbuffer(); /* attribute */
6302   switch (YY_START) {
6303    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;
6304    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;
6305    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
6306   }
6307  }
6308         YY_BREAK
6309 case 131:
6310 /* rule 131 can match eol */
6311 YY_RULE_SETUP
6312 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6313         YY_BREAK
6314 case 132:
6315 YY_RULE_SETUP
6316 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6317         YY_BREAK
6318 case YY_STATE_EOF(S_surfxml_AS_12):
6319 case YY_STATE_EOF(S_surfxml_AS_9):
6320 case YY_STATE_EOF(S_surfxml_AS_1):
6321 case YY_STATE_EOF(S_surfxml_AS_7):
6322 case YY_STATE_EOF(S_surfxml_AS_11):
6323 case YY_STATE_EOF(S_surfxml_AS_14):
6324 case YY_STATE_EOF(S_surfxml_AS_6):
6325 case YY_STATE_EOF(E_surfxml_AS):
6326 case YY_STATE_EOF(S_surfxml_AS_16):
6327 case YY_STATE_EOF(S_surfxml_AS_3):
6328 case YY_STATE_EOF(S_surfxml_AS):
6329 case YY_STATE_EOF(S_surfxml_AS_4):
6330 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6331         YY_BREAK
6332
6333 case 133:
6334 /* rule 133 can match eol */
6335 YY_RULE_SETUP
6336 FAIL("Starting tag <storage_type> is not allowed here.");
6337         YY_BREAK
6338 case 134:
6339 /* rule 134 can match eol */
6340 YY_RULE_SETUP
6341 {
6342   AX_surfxml_storage_type_id = 0;
6343   surfxml_storage_type_id_isset = 0;
6344   AX_surfxml_storage_type_model = 0;
6345   surfxml_storage_type_model_isset = 0;
6346   AX_surfxml_storage_type_size = 0;
6347   surfxml_storage_type_size_isset = 0;
6348   AX_surfxml_storage_type_content = 0;
6349   surfxml_storage_type_content_isset = 0;
6350   ENTER(AL_surfxml_storage_type); pushbuffer(0);
6351   }
6352         YY_BREAK
6353
6354 case 135:
6355 /* rule 135 can match eol */
6356 YY_RULE_SETUP
6357 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);
6358         YY_BREAK
6359 case 136:
6360 /* rule 136 can match eol */
6361 YY_RULE_SETUP
6362 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);
6363         YY_BREAK
6364 case 137:
6365 /* rule 137 can match eol */
6366 YY_RULE_SETUP
6367 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);
6368         YY_BREAK
6369 case 138:
6370 /* rule 138 can match eol */
6371 YY_RULE_SETUP
6372 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);
6373         YY_BREAK
6374 case 139:
6375 /* rule 139 can match eol */
6376 YY_RULE_SETUP
6377 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);
6378         YY_BREAK
6379 case 140:
6380 /* rule 140 can match eol */
6381 YY_RULE_SETUP
6382 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);
6383         YY_BREAK
6384 case 141:
6385 /* rule 141 can match eol */
6386 YY_RULE_SETUP
6387 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);
6388         YY_BREAK
6389 case 142:
6390 /* rule 142 can match eol */
6391 YY_RULE_SETUP
6392 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);
6393         YY_BREAK
6394 case 143:
6395 YY_RULE_SETUP
6396 {
6397   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6398   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6399   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6400   LEAVE; STag_surfxml_storage_type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage_type);
6401  }
6402         YY_BREAK
6403 case 144:
6404 YY_RULE_SETUP
6405 {
6406   if (!AX_surfxml_storage_type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6407   if (!AX_surfxml_storage_type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6408   if (!AX_surfxml_storage_type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6409   LEAVE; STag_surfxml_storage_type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage_type(); popbuffer(); /* attribute */
6410   switch (YY_START) {
6411    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6412    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;
6413   }
6414  }
6415         YY_BREAK
6416 case 145:
6417 YY_RULE_SETUP
6418 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6419         YY_BREAK
6420 case 146:
6421 YY_RULE_SETUP
6422 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6423         YY_BREAK
6424 case YY_STATE_EOF(AL_surfxml_storage_type):
6425 FAIL("EOF in attribute list of `storage_type' element.");
6426         YY_BREAK
6427
6428 case 147:
6429 /* rule 147 can match eol */
6430 YY_RULE_SETUP
6431 {
6432   LEAVE;
6433   ETag_surfxml_storage_type();
6434   popbuffer(); /* attribute */
6435   switch (YY_START) {
6436    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6437    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;
6438   }
6439  }
6440         YY_BREAK
6441 case 148:
6442 /* rule 148 can match eol */
6443 YY_RULE_SETUP
6444 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6445         YY_BREAK
6446 case 149:
6447 YY_RULE_SETUP
6448 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6449         YY_BREAK
6450 case YY_STATE_EOF(E_surfxml_storage_type):
6451 case YY_STATE_EOF(S_surfxml_storage_type_2):
6452 case YY_STATE_EOF(S_surfxml_storage_type):
6453 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6454         YY_BREAK
6455
6456 case 150:
6457 /* rule 150 can match eol */
6458 YY_RULE_SETUP
6459 FAIL("Starting tag <storage> is not allowed here.");
6460         YY_BREAK
6461 case 151:
6462 /* rule 151 can match eol */
6463 YY_RULE_SETUP
6464 {
6465   AX_surfxml_storage_id = 0;
6466   surfxml_storage_id_isset = 0;
6467   AX_surfxml_storage_typeId = 0;
6468   surfxml_storage_typeId_isset = 0;
6469   AX_surfxml_storage_content = 0;
6470   surfxml_storage_content_isset = 0;
6471   ENTER(AL_surfxml_storage); pushbuffer(0);
6472   }
6473         YY_BREAK
6474
6475 case 152:
6476 /* rule 152 can match eol */
6477 YY_RULE_SETUP
6478 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);
6479         YY_BREAK
6480 case 153:
6481 /* rule 153 can match eol */
6482 YY_RULE_SETUP
6483 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);
6484         YY_BREAK
6485 case 154:
6486 /* rule 154 can match eol */
6487 YY_RULE_SETUP
6488 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);
6489         YY_BREAK
6490 case 155:
6491 /* rule 155 can match eol */
6492 YY_RULE_SETUP
6493 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);
6494         YY_BREAK
6495 case 156:
6496 /* rule 156 can match eol */
6497 YY_RULE_SETUP
6498 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);
6499         YY_BREAK
6500 case 157:
6501 /* rule 157 can match eol */
6502 YY_RULE_SETUP
6503 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);
6504         YY_BREAK
6505 case 158:
6506 YY_RULE_SETUP
6507 {
6508   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6509   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6510   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6511  }
6512         YY_BREAK
6513 case 159:
6514 YY_RULE_SETUP
6515 {
6516   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6517   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6518   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6519   switch (YY_START) {
6520    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6521    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;
6522   }
6523  }
6524         YY_BREAK
6525 case 160:
6526 YY_RULE_SETUP
6527 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6528         YY_BREAK
6529 case 161:
6530 YY_RULE_SETUP
6531 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6532         YY_BREAK
6533 case YY_STATE_EOF(AL_surfxml_storage):
6534 FAIL("EOF in attribute list of `storage' element.");
6535         YY_BREAK
6536
6537 case 162:
6538 /* rule 162 can match eol */
6539 YY_RULE_SETUP
6540 {
6541   LEAVE;
6542   ETag_surfxml_storage();
6543   popbuffer(); /* attribute */
6544   switch (YY_START) {
6545    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6546    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;
6547   }
6548  }
6549         YY_BREAK
6550 case 163:
6551 /* rule 163 can match eol */
6552 YY_RULE_SETUP
6553 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6554         YY_BREAK
6555 case 164:
6556 YY_RULE_SETUP
6557 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6558         YY_BREAK
6559 case YY_STATE_EOF(E_surfxml_storage):
6560 case YY_STATE_EOF(S_surfxml_storage):
6561 case YY_STATE_EOF(S_surfxml_storage_2):
6562 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6563         YY_BREAK
6564
6565 case 165:
6566 /* rule 165 can match eol */
6567 YY_RULE_SETUP
6568 FAIL("Starting tag <mount> is not allowed here.");
6569         YY_BREAK
6570 case 166:
6571 /* rule 166 can match eol */
6572 YY_RULE_SETUP
6573 {
6574   AX_surfxml_mount_id = 0;
6575   surfxml_mount_id_isset = 0;
6576   AX_surfxml_mount_name = 0;
6577   surfxml_mount_name_isset = 0;
6578   ENTER(AL_surfxml_mount); pushbuffer(0);
6579   }
6580         YY_BREAK
6581
6582 case 167:
6583 /* rule 167 can match eol */
6584 YY_RULE_SETUP
6585 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");} surfxml_mount_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_id);
6586         YY_BREAK
6587 case 168:
6588 /* rule 168 can match eol */
6589 YY_RULE_SETUP
6590 if (surfxml_mount_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_mount>");}  surfxml_mount_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_id);
6591         YY_BREAK
6592 case 169:
6593 /* rule 169 can match eol */
6594 YY_RULE_SETUP
6595 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);
6596         YY_BREAK
6597 case 170:
6598 /* rule 170 can match eol */
6599 YY_RULE_SETUP
6600 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);
6601         YY_BREAK
6602 case 171:
6603 YY_RULE_SETUP
6604 {
6605   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6606   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6607   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6608  }
6609         YY_BREAK
6610 case 172:
6611 YY_RULE_SETUP
6612 {
6613   if (!AX_surfxml_mount_id) FAIL("Required attribute `id' not set for `mount' element.");
6614   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6615   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6616   switch (YY_START) {
6617    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6618   }
6619  }
6620         YY_BREAK
6621 case 173:
6622 YY_RULE_SETUP
6623 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6624         YY_BREAK
6625 case 174:
6626 YY_RULE_SETUP
6627 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6628         YY_BREAK
6629 case YY_STATE_EOF(AL_surfxml_mount):
6630 FAIL("EOF in attribute list of `mount' element.");
6631         YY_BREAK
6632
6633 case 175:
6634 /* rule 175 can match eol */
6635 YY_RULE_SETUP
6636 {
6637   LEAVE;
6638   ETag_surfxml_mount();
6639   popbuffer(); /* attribute */
6640   switch (YY_START) {
6641    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6642   }
6643  }
6644         YY_BREAK
6645 case 176:
6646 /* rule 176 can match eol */
6647 YY_RULE_SETUP
6648 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6649         YY_BREAK
6650 case 177:
6651 YY_RULE_SETUP
6652 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6653         YY_BREAK
6654 case YY_STATE_EOF(E_surfxml_mount):
6655 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6656         YY_BREAK
6657
6658 case 178:
6659 /* rule 178 can match eol */
6660 YY_RULE_SETUP
6661 FAIL("Starting tag <mstorage> is not allowed here.");
6662         YY_BREAK
6663 case 179:
6664 /* rule 179 can match eol */
6665 YY_RULE_SETUP
6666 {
6667   AX_surfxml_mstorage_typeId = 0;
6668   surfxml_mstorage_typeId_isset = 0;
6669   AX_surfxml_mstorage_name = 0;
6670   surfxml_mstorage_name_isset = 0;
6671   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6672   }
6673         YY_BREAK
6674
6675 case 180:
6676 /* rule 180 can match eol */
6677 YY_RULE_SETUP
6678 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);
6679         YY_BREAK
6680 case 181:
6681 /* rule 181 can match eol */
6682 YY_RULE_SETUP
6683 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);
6684         YY_BREAK
6685 case 182:
6686 /* rule 182 can match eol */
6687 YY_RULE_SETUP
6688 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);
6689         YY_BREAK
6690 case 183:
6691 /* rule 183 can match eol */
6692 YY_RULE_SETUP
6693 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);
6694         YY_BREAK
6695 case 184:
6696 YY_RULE_SETUP
6697 {
6698   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6699   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6700   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6701  }
6702         YY_BREAK
6703 case 185:
6704 YY_RULE_SETUP
6705 {
6706   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6707   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6708   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6709   switch (YY_START) {
6710    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6711   }
6712  }
6713         YY_BREAK
6714 case 186:
6715 YY_RULE_SETUP
6716 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6717         YY_BREAK
6718 case 187:
6719 YY_RULE_SETUP
6720 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6721         YY_BREAK
6722 case YY_STATE_EOF(AL_surfxml_mstorage):
6723 FAIL("EOF in attribute list of `mstorage' element.");
6724         YY_BREAK
6725
6726 case 188:
6727 /* rule 188 can match eol */
6728 YY_RULE_SETUP
6729 {
6730   LEAVE;
6731   ETag_surfxml_mstorage();
6732   popbuffer(); /* attribute */
6733   switch (YY_START) {
6734    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
6735   }
6736  }
6737         YY_BREAK
6738 case 189:
6739 /* rule 189 can match eol */
6740 YY_RULE_SETUP
6741 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6742         YY_BREAK
6743 case 190:
6744 YY_RULE_SETUP
6745 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6746         YY_BREAK
6747 case YY_STATE_EOF(E_surfxml_mstorage):
6748 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6749         YY_BREAK
6750
6751 case 191:
6752 /* rule 191 can match eol */
6753 YY_RULE_SETUP
6754 FAIL("Starting tag <host> is not allowed here.");
6755         YY_BREAK
6756 case 192:
6757 /* rule 192 can match eol */
6758 YY_RULE_SETUP
6759 {
6760   AX_surfxml_host_id = 0;
6761   surfxml_host_id_isset = 0;
6762   AX_surfxml_host_power = 0;
6763   surfxml_host_power_isset = 0;
6764   AX_surfxml_host_core = 16;
6765   surfxml_host_core_isset = 0;
6766   AX_surfxml_host_availability = 18;
6767   surfxml_host_availability_isset = 0;
6768   AX_surfxml_host_availability_file = 0;
6769   surfxml_host_availability_file_isset = 0;
6770   AX_surfxml_host_state = A_surfxml_host_state_ON;
6771   surfxml_host_state_isset = 0;
6772   AX_surfxml_host_state_file = 0;
6773   surfxml_host_state_file_isset = 0;
6774   AX_surfxml_host_coordinates = 0;
6775   surfxml_host_coordinates_isset = 0;
6776   ENTER(AL_surfxml_host); pushbuffer(0);
6777   }
6778         YY_BREAK
6779
6780 case 193:
6781 /* rule 193 can match eol */
6782 YY_RULE_SETUP
6783 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);
6784         YY_BREAK
6785 case 194:
6786 /* rule 194 can match eol */
6787 YY_RULE_SETUP
6788 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);
6789         YY_BREAK
6790 case 195:
6791 /* rule 195 can match eol */
6792 YY_RULE_SETUP
6793 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);
6794         YY_BREAK
6795 case 196:
6796 /* rule 196 can match eol */
6797 YY_RULE_SETUP
6798 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);
6799         YY_BREAK
6800 case 197:
6801 /* rule 197 can match eol */
6802 YY_RULE_SETUP
6803 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);
6804         YY_BREAK
6805 case 198:
6806 /* rule 198 can match eol */
6807 YY_RULE_SETUP
6808 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);
6809         YY_BREAK
6810 case 199:
6811 /* rule 199 can match eol */
6812 YY_RULE_SETUP
6813 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);
6814         YY_BREAK
6815 case 200:
6816 /* rule 200 can match eol */
6817 YY_RULE_SETUP
6818 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);
6819         YY_BREAK
6820 case 201:
6821 /* rule 201 can match eol */
6822 YY_RULE_SETUP
6823 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);
6824         YY_BREAK
6825 case 202:
6826 /* rule 202 can match eol */
6827 YY_RULE_SETUP
6828 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);
6829         YY_BREAK
6830 case 203:
6831 /* rule 203 can match eol */
6832 case 204:
6833 /* rule 204 can match eol */
6834 YY_RULE_SETUP
6835 A_surfxml_host_state = A_surfxml_host_state_ON;
6836         YY_BREAK
6837 case 205:
6838 /* rule 205 can match eol */
6839 case 206:
6840 /* rule 206 can match eol */
6841 YY_RULE_SETUP
6842 A_surfxml_host_state = A_surfxml_host_state_OFF;
6843         YY_BREAK
6844 case 207:
6845 /* rule 207 can match eol */
6846 YY_RULE_SETUP
6847 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);
6848         YY_BREAK
6849 case 208:
6850 /* rule 208 can match eol */
6851 YY_RULE_SETUP
6852 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);
6853         YY_BREAK
6854 case 209:
6855 /* rule 209 can match eol */
6856 YY_RULE_SETUP
6857 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);
6858         YY_BREAK
6859 case 210:
6860 /* rule 210 can match eol */
6861 YY_RULE_SETUP
6862 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);
6863         YY_BREAK
6864 case 211:
6865 YY_RULE_SETUP
6866 {
6867   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6868   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6869   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6870  }
6871         YY_BREAK
6872 case 212:
6873 YY_RULE_SETUP
6874 {
6875   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6876   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
6877   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6878   switch (YY_START) {
6879    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;
6880   }
6881  }
6882         YY_BREAK
6883 case 213:
6884 YY_RULE_SETUP
6885 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6886         YY_BREAK
6887 case 214:
6888 YY_RULE_SETUP
6889 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6890         YY_BREAK
6891 case YY_STATE_EOF(AL_surfxml_host):
6892 FAIL("EOF in attribute list of `host' element.");
6893         YY_BREAK
6894
6895 case 215:
6896 /* rule 215 can match eol */
6897 YY_RULE_SETUP
6898 {
6899   LEAVE;
6900   ETag_surfxml_host();
6901   popbuffer(); /* attribute */
6902   switch (YY_START) {
6903    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;
6904   }
6905  }
6906         YY_BREAK
6907 case 216:
6908 /* rule 216 can match eol */
6909 YY_RULE_SETUP
6910 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6911         YY_BREAK
6912 case 217:
6913 YY_RULE_SETUP
6914 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6915         YY_BREAK
6916 case YY_STATE_EOF(S_surfxml_host):
6917 case YY_STATE_EOF(E_surfxml_host):
6918 case YY_STATE_EOF(S_surfxml_host_2):
6919 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6920         YY_BREAK
6921
6922 case 218:
6923 /* rule 218 can match eol */
6924 YY_RULE_SETUP
6925 FAIL("Starting tag <gpu> is not allowed here.");
6926         YY_BREAK
6927 case 219:
6928 /* rule 219 can match eol */
6929 YY_RULE_SETUP
6930 {
6931   AX_surfxml_gpu_name = 0;
6932   ENTER(AL_surfxml_gpu); pushbuffer(0);
6933   }
6934         YY_BREAK
6935
6936 case 220:
6937 /* rule 220 can match eol */
6938 YY_RULE_SETUP
6939 ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
6940         YY_BREAK
6941 case 221:
6942 /* rule 221 can match eol */
6943 YY_RULE_SETUP
6944 ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
6945         YY_BREAK
6946 case 222:
6947 YY_RULE_SETUP
6948 {
6949   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
6950   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
6951  }
6952         YY_BREAK
6953 case 223:
6954 YY_RULE_SETUP
6955 {
6956   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
6957   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
6958   switch (YY_START) {
6959    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;
6960   }
6961  }
6962         YY_BREAK
6963 case 224:
6964 YY_RULE_SETUP
6965 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
6966         YY_BREAK
6967 case 225:
6968 YY_RULE_SETUP
6969 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
6970         YY_BREAK
6971 case YY_STATE_EOF(AL_surfxml_gpu):
6972 FAIL("EOF in attribute list of `gpu' element.");
6973         YY_BREAK
6974
6975 case 226:
6976 /* rule 226 can match eol */
6977 YY_RULE_SETUP
6978 {
6979   LEAVE;
6980   ETag_surfxml_gpu();
6981   popbuffer(); /* attribute */
6982   switch (YY_START) {
6983    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;
6984   }
6985  }
6986         YY_BREAK
6987 case 227:
6988 /* rule 227 can match eol */
6989 YY_RULE_SETUP
6990 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
6991         YY_BREAK
6992 case 228:
6993 YY_RULE_SETUP
6994 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
6995         YY_BREAK
6996 case YY_STATE_EOF(E_surfxml_gpu):
6997 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
6998         YY_BREAK
6999
7000 case 229:
7001 /* rule 229 can match eol */
7002 YY_RULE_SETUP
7003 FAIL("Starting tag <host_link> is not allowed here.");
7004         YY_BREAK
7005 case 230:
7006 /* rule 230 can match eol */
7007 YY_RULE_SETUP
7008 {
7009   AX_surfxml_host_link_id = 0;
7010   surfxml_host_link_id_isset = 0;
7011   AX_surfxml_host_link_up = 0;
7012   surfxml_host_link_up_isset = 0;
7013   AX_surfxml_host_link_down = 0;
7014   surfxml_host_link_down_isset = 0;
7015   ENTER(AL_surfxml_host_link); pushbuffer(0);
7016   }
7017         YY_BREAK
7018
7019 case 231:
7020 /* rule 231 can match eol */
7021 YY_RULE_SETUP
7022 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);
7023         YY_BREAK
7024 case 232:
7025 /* rule 232 can match eol */
7026 YY_RULE_SETUP
7027 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);
7028         YY_BREAK
7029 case 233:
7030 /* rule 233 can match eol */
7031 YY_RULE_SETUP
7032 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);
7033         YY_BREAK
7034 case 234:
7035 /* rule 234 can match eol */
7036 YY_RULE_SETUP
7037 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);
7038         YY_BREAK
7039 case 235:
7040 /* rule 235 can match eol */
7041 YY_RULE_SETUP
7042 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);
7043         YY_BREAK
7044 case 236:
7045 /* rule 236 can match eol */
7046 YY_RULE_SETUP
7047 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);
7048         YY_BREAK
7049 case 237:
7050 YY_RULE_SETUP
7051 {
7052   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7053   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7054   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7055   LEAVE; STag_surfxml_host_link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host_link);
7056  }
7057         YY_BREAK
7058 case 238:
7059 YY_RULE_SETUP
7060 {
7061   if (!AX_surfxml_host_link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7062   if (!AX_surfxml_host_link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7063   if (!AX_surfxml_host_link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7064   LEAVE; STag_surfxml_host_link(); surfxml_pcdata_ix = 0; ETag_surfxml_host_link(); popbuffer(); /* attribute */
7065   switch (YY_START) {
7066    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;
7067   }
7068  }
7069         YY_BREAK
7070 case 239:
7071 YY_RULE_SETUP
7072 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7073         YY_BREAK
7074 case 240:
7075 YY_RULE_SETUP
7076 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7077         YY_BREAK
7078 case YY_STATE_EOF(AL_surfxml_host_link):
7079 FAIL("EOF in attribute list of `host_link' element.");
7080         YY_BREAK
7081
7082 case 241:
7083 /* rule 241 can match eol */
7084 YY_RULE_SETUP
7085 {
7086   LEAVE;
7087   ETag_surfxml_host_link();
7088   popbuffer(); /* attribute */
7089   switch (YY_START) {
7090    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;
7091   }
7092  }
7093         YY_BREAK
7094 case 242:
7095 /* rule 242 can match eol */
7096 YY_RULE_SETUP
7097 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7098         YY_BREAK
7099 case 243:
7100 YY_RULE_SETUP
7101 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7102         YY_BREAK
7103 case YY_STATE_EOF(E_surfxml_host_link):
7104 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7105         YY_BREAK
7106
7107 case 244:
7108 /* rule 244 can match eol */
7109 YY_RULE_SETUP
7110 FAIL("Starting tag <cluster> is not allowed here.");
7111         YY_BREAK
7112 case 245:
7113 /* rule 245 can match eol */
7114 YY_RULE_SETUP
7115 {
7116   AX_surfxml_cluster_id = 0;
7117   surfxml_cluster_id_isset = 0;
7118   AX_surfxml_cluster_prefix = 0;
7119   surfxml_cluster_prefix_isset = 0;
7120   AX_surfxml_cluster_suffix = 0;
7121   surfxml_cluster_suffix_isset = 0;
7122   AX_surfxml_cluster_radical = 0;
7123   surfxml_cluster_radical_isset = 0;
7124   AX_surfxml_cluster_power = 0;
7125   surfxml_cluster_power_isset = 0;
7126   AX_surfxml_cluster_core = 22;
7127   surfxml_cluster_core_isset = 0;
7128   AX_surfxml_cluster_bw = 0;
7129   surfxml_cluster_bw_isset = 0;
7130   AX_surfxml_cluster_lat = 0;
7131   surfxml_cluster_lat_isset = 0;
7132   AX_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
7133   surfxml_cluster_sharing_policy_isset = 0;
7134   AX_surfxml_cluster_bb_bw = 0;
7135   surfxml_cluster_bb_bw_isset = 0;
7136   AX_surfxml_cluster_bb_lat = 0;
7137   surfxml_cluster_bb_lat_isset = 0;
7138   AX_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
7139   surfxml_cluster_bb_sharing_policy_isset = 0;
7140   AX_surfxml_cluster_availability_file = 0;
7141   surfxml_cluster_availability_file_isset = 0;
7142   AX_surfxml_cluster_state_file = 0;
7143   surfxml_cluster_state_file_isset = 0;
7144   AX_surfxml_cluster_router_id = 0;
7145   surfxml_cluster_router_id_isset = 0;
7146   ENTER(AL_surfxml_cluster); pushbuffer(0);
7147   }
7148         YY_BREAK
7149
7150 case 246:
7151 /* rule 246 can match eol */
7152 YY_RULE_SETUP
7153 <<<<<<< HEAD
7154 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
7155 =======
7156 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);
7157 >>>>>>> 52c07f4b6c9ba2b0af928b8e83c48f819e1c9fc0
7158         YY_BREAK
7159 case 247:
7160 /* rule 247 can match eol */
7161 YY_RULE_SETUP
7162 <<<<<<< HEAD
7163 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
7164 =======
7165 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);
7166 >>>>>>> 52c07f4b6c9ba2b0af928b8e83c48f819e1c9fc0
7167         YY_BREAK
7168 case 248:
7169 /* rule 248 can match eol */
7170 YY_RULE_SETUP
7171 <<<<<<< HEAD
7172 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
7173 =======
7174 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);
7175 >>>>>>> 52c07f4b6c9ba2b0af928b8e83c48f819e1c9fc0
7176         YY_BREAK
7177 case 249:
7178 /* rule 249 can match eol */
7179 YY_RULE_SETUP
7180 <<<<<<< HEAD
7181 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
7182 =======
7183 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);
7184 >>>>>>> 52c07f4b6c9ba2b0af928b8e83c48f819e1c9fc0
7185         YY_BREAK
7186 case 250:
7187 /* rule 250 can match eol */
7188 YY_RULE_SETUP
7189 <<<<<<< HEAD
7190 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
7191 =======
7192 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);
7193 >>>>>>> 52c07f4b6c9ba2b0af928b8e83c48f819e1c9fc0
7194         YY_BREAK
7195 case 251:
7196 /* rule 251 can match eol */
7197 YY_RULE_SETUP
7198 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
7199         YY_BREAK
7200 case 252:
7201 /* rule 252 can match eol */
7202 YY_RULE_SETUP
7203 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
7204         YY_BREAK
7205 case 253:
7206 /* rule 253 can match eol */
7207 YY_RULE_SETUP
7208 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
7209         YY_BREAK
7210 case 254:
7211 /* rule 254 can match eol */
7212 YY_RULE_SETUP
7213 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
7214         YY_BREAK
7215 case 255:
7216 /* rule 255 can match eol */
7217 YY_RULE_SETUP
7218 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
7219         YY_BREAK
7220 case 256:
7221 /* rule 256 can match eol */
7222 YY_RULE_SETUP
7223 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
7224         YY_BREAK
7225 case 257:
7226 /* rule 257 can match eol */
7227 YY_RULE_SETUP
7228 <<<<<<< HEAD
7229 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_core);
7230 =======
7231 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);
7232 >>>>>>> 52c07f4b6c9ba2b0af928b8e83c48f819e1c9fc0
7233         YY_BREAK
7234 case 258:
7235 /* rule 258 can match eol */
7236 YY_RULE_SETUP
7237 <<<<<<< HEAD
7238 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
7239 =======
7240 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);
7241 >>>>>>> 52c07f4b6c9ba2b0af928b8e83c48f819e1c9fc0
7242         YY_BREAK
7243 case 259:
7244 /* rule 259 can match eol */
7245 YY_RULE_SETUP
7246 <<<<<<< HEAD
7247 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
7248 =======
7249 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);
7250 >>>>>>> 52c07f4b6c9ba2b0af928b8e83c48f819e1c9fc0
7251         YY_BREAK
7252 case 260:
7253 /* rule 260 can match eol */
7254 YY_RULE_SETUP
7255 <<<<<<< HEAD
7256 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
7257 =======
7258 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);
7259 >>>>>>> 52c07f4b6c9ba2b0af928b8e83c48f819e1c9fc0
7260         YY_BREAK
7261 case 261:
7262 /* rule 261 can match eol */
7263 YY_RULE_SETUP
7264 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
7265         YY_BREAK
7266 case 262:
7267 /* rule 262 can match eol */
7268 case 263:
7269 /* rule 263 can match eol */
7270 YY_RULE_SETUP
7271 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_SHARED;
7272         YY_BREAK
7273 case 264:
7274 /* rule 264 can match eol */
7275 case 265:
7276 /* rule 265 can match eol */
7277 YY_RULE_SETUP
7278 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FULLDUPLEX;
7279         YY_BREAK
7280 case 266:
7281 /* rule 266 can match eol */
7282 case 267:
7283 /* rule 267 can match eol */
7284 YY_RULE_SETUP
7285 A_surfxml_cluster_sharing_policy = A_surfxml_cluster_sharing_policy_FATPIPE;
7286         YY_BREAK
7287 case 268:
7288 /* rule 268 can match eol */
7289 YY_RULE_SETUP
7290 <<<<<<< HEAD
7291 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_bw);
7292 =======
7293 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);
7294 >>>>>>> 52c07f4b6c9ba2b0af928b8e83c48f819e1c9fc0
7295         YY_BREAK
7296 case 269:
7297 /* rule 269 can match eol */
7298 YY_RULE_SETUP
7299 <<<<<<< HEAD
7300 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
7301 =======
7302 if (surfxml_cluster_bb_bw_isset != 0) {FAIL("Multiple definition of attribute bb_bw in <surfxml_cluster>");}  surfxml_cluster_bb_bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
7303 >>>>>>> 52c07f4b6c9ba2b0af928b8e83c48f819e1c9fc0
7304         YY_BREAK
7305 case 270:
7306 /* rule 270 can match eol */
7307 YY_RULE_SETUP
7308 <<<<<<< HEAD
7309 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_lat);
7310 =======
7311 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);
7312 >>>>>>> 52c07f4b6c9ba2b0af928b8e83c48f819e1c9fc0
7313         YY_BREAK
7314 case 271:
7315 /* rule 271 can match eol */
7316 YY_RULE_SETUP
7317 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_lat);
7318         YY_BREAK
7319 case 272:
7320 /* rule 272 can match eol */
7321 case 273:
7322 /* rule 273 can match eol */
7323 YY_RULE_SETUP
7324 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_SHARED;
7325         YY_BREAK
7326 case 274:
7327 /* rule 274 can match eol */
7328 case 275:
7329 /* rule 275 can match eol */
7330 YY_RULE_SETUP
7331 A_surfxml_cluster_bb_sharing_policy = A_surfxml_cluster_bb_sharing_policy_FATPIPE;
7332         YY_BREAK
7333 case 276:
7334 /* rule 276 can match eol */
7335 YY_RULE_SETUP
7336 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability_file);
7337         YY_BREAK
7338 case 277:
7339 /* rule 277 can match eol */
7340 YY_RULE_SETUP
7341 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability_file);
7342         YY_BREAK
7343 case 278:
7344 /* rule 278 can match eol */
7345 YY_RULE_SETUP
7346 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state_file);
7347         YY_BREAK
7348 case 279:
7349 /* rule 279 can match eol */
7350 YY_RULE_SETUP
7351 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state_file);
7352         YY_BREAK
7353 case 280:
7354 /* rule 280 can match eol */
7355 YY_RULE_SETUP
7356 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router_id);
7357         YY_BREAK
7358 case 281:
7359 /* rule 281 can match eol */
7360 YY_RULE_SETUP
7361 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router_id);
7362         YY_BREAK
7363 case 282:
7364 YY_RULE_SETUP
7365 {
7366   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7367   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7368   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7369   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7370   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7371   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7372   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7373   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
7374  }
7375         YY_BREAK
7376 case 283:
7377 YY_RULE_SETUP
7378 {
7379   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7380   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7381   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7382   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7383   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7384   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7385   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7386   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7387   switch (YY_START) {
7388    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;
7389    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;
7390    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7391   }
7392  }
7393         YY_BREAK
7394 case 284:
7395 YY_RULE_SETUP
7396 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7397         YY_BREAK
7398 case 285:
7399 YY_RULE_SETUP
7400 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7401         YY_BREAK
7402 case YY_STATE_EOF(AL_surfxml_cluster):
7403 FAIL("EOF in attribute list of `cluster' element.");
7404         YY_BREAK
7405
7406 case 286:
7407 /* rule 286 can match eol */
7408 YY_RULE_SETUP
7409 {
7410   LEAVE;
7411   ETag_surfxml_cluster();
7412   popbuffer(); /* attribute */
7413   switch (YY_START) {
7414    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;
7415    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;
7416    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7417   }
7418  }
7419         YY_BREAK
7420 case 287:
7421 /* rule 287 can match eol */
7422 YY_RULE_SETUP
7423 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7424         YY_BREAK
7425 case 288:
7426 YY_RULE_SETUP
7427 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7428         YY_BREAK
7429 case YY_STATE_EOF(E_surfxml_cluster):
7430 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7431         YY_BREAK
7432
7433 case 289:
7434 /* rule 289 can match eol */
7435 YY_RULE_SETUP
7436 FAIL("Starting tag <cabinet> is not allowed here.");
7437         YY_BREAK
7438 case 290:
7439 /* rule 290 can match eol */
7440 YY_RULE_SETUP
7441 {
7442   AX_surfxml_cabinet_id = 0;
7443   surfxml_cabinet_id_isset = 0;
7444   AX_surfxml_cabinet_prefix = 0;
7445   surfxml_cabinet_prefix_isset = 0;
7446   AX_surfxml_cabinet_suffix = 0;
7447   surfxml_cabinet_suffix_isset = 0;
7448   AX_surfxml_cabinet_radical = 0;
7449   surfxml_cabinet_radical_isset = 0;
7450   AX_surfxml_cabinet_power = 0;
7451   surfxml_cabinet_power_isset = 0;
7452   AX_surfxml_cabinet_bw = 0;
7453   surfxml_cabinet_bw_isset = 0;
7454   AX_surfxml_cabinet_lat = 0;
7455   surfxml_cabinet_lat_isset = 0;
7456   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7457   }
7458         YY_BREAK
7459
7460 case 291:
7461 /* rule 291 can match eol */
7462 YY_RULE_SETUP
7463 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);
7464         YY_BREAK
7465 case 292:
7466 /* rule 292 can match eol */
7467 YY_RULE_SETUP
7468 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);
7469         YY_BREAK
7470 case 293:
7471 /* rule 293 can match eol */
7472 YY_RULE_SETUP
7473 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);
7474         YY_BREAK
7475 case 294:
7476 /* rule 294 can match eol */
7477 YY_RULE_SETUP
7478 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);
7479         YY_BREAK
7480 case 295:
7481 /* rule 295 can match eol */
7482 YY_RULE_SETUP
7483 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);
7484         YY_BREAK
7485 case 296:
7486 /* rule 296 can match eol */
7487 YY_RULE_SETUP
7488 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);
7489         YY_BREAK
7490 case 297:
7491 /* rule 297 can match eol */
7492 YY_RULE_SETUP
7493 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);
7494         YY_BREAK
7495 case 298:
7496 /* rule 298 can match eol */
7497 YY_RULE_SETUP
7498 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);
7499         YY_BREAK
7500 case 299:
7501 /* rule 299 can match eol */
7502 YY_RULE_SETUP
7503 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);
7504         YY_BREAK
7505 case 300:
7506 /* rule 300 can match eol */
7507 YY_RULE_SETUP
7508 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);
7509         YY_BREAK
7510 case 301:
7511 /* rule 301 can match eol */
7512 YY_RULE_SETUP
7513 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);
7514         YY_BREAK
7515 case 302:
7516 /* rule 302 can match eol */
7517 YY_RULE_SETUP
7518 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);
7519         YY_BREAK
7520 case 303:
7521 /* rule 303 can match eol */
7522 YY_RULE_SETUP
7523 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);
7524         YY_BREAK
7525 case 304:
7526 /* rule 304 can match eol */
7527 YY_RULE_SETUP
7528 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);
7529         YY_BREAK
7530 case 305:
7531 YY_RULE_SETUP
7532 {
7533   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7534   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7535   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7536   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7537   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7538   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7539   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7540   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7541  }
7542         YY_BREAK
7543 case 306:
7544 YY_RULE_SETUP
7545 {
7546   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7547   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7548   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7549   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7550   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7551   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7552   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7553   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7554   switch (YY_START) {
7555    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7556    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;
7557    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;
7558    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7559   }
7560  }
7561         YY_BREAK
7562 case 307:
7563 YY_RULE_SETUP
7564 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7565         YY_BREAK
7566 case 308:
7567 YY_RULE_SETUP
7568 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7569         YY_BREAK
7570 case YY_STATE_EOF(AL_surfxml_cabinet):
7571 FAIL("EOF in attribute list of `cabinet' element.");
7572         YY_BREAK
7573
7574 case 309:
7575 /* rule 309 can match eol */
7576 YY_RULE_SETUP
7577 {
7578   LEAVE;
7579   ETag_surfxml_cabinet();
7580   popbuffer(); /* attribute */
7581   switch (YY_START) {
7582    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7583    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;
7584    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;
7585    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7586   }
7587  }
7588         YY_BREAK
7589 case 310:
7590 /* rule 310 can match eol */
7591 YY_RULE_SETUP
7592 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7593         YY_BREAK
7594 case 311:
7595 YY_RULE_SETUP
7596 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7597         YY_BREAK
7598 case YY_STATE_EOF(E_surfxml_cabinet):
7599 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7600         YY_BREAK
7601
7602 case 312:
7603 /* rule 312 can match eol */
7604 YY_RULE_SETUP
7605 FAIL("Starting tag <peer> is not allowed here.");
7606         YY_BREAK
7607 case 313:
7608 /* rule 313 can match eol */
7609 YY_RULE_SETUP
7610 {
7611   AX_surfxml_peer_id = 0;
7612   surfxml_peer_id_isset = 0;
7613   AX_surfxml_peer_power = 0;
7614   surfxml_peer_power_isset = 0;
7615   AX_surfxml_peer_bw_in = 0;
7616   surfxml_peer_bw_in_isset = 0;
7617   AX_surfxml_peer_bw_out = 0;
7618   surfxml_peer_bw_out_isset = 0;
7619   AX_surfxml_peer_lat = 0;
7620   surfxml_peer_lat_isset = 0;
7621   AX_surfxml_peer_coordinates = 0;
7622   surfxml_peer_coordinates_isset = 0;
7623   AX_surfxml_peer_availability_file = 0;
7624   surfxml_peer_availability_file_isset = 0;
7625   AX_surfxml_peer_state_file = 0;
7626   surfxml_peer_state_file_isset = 0;
7627   ENTER(AL_surfxml_peer); pushbuffer(0);
7628   }
7629         YY_BREAK
7630
7631 case 314:
7632 /* rule 314 can match eol */
7633 YY_RULE_SETUP
7634 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);
7635         YY_BREAK
7636 case 315:
7637 /* rule 315 can match eol */
7638 YY_RULE_SETUP
7639 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);
7640         YY_BREAK
7641 case 316:
7642 /* rule 316 can match eol */
7643 YY_RULE_SETUP
7644 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);
7645         YY_BREAK
7646 case 317:
7647 /* rule 317 can match eol */
7648 YY_RULE_SETUP
7649 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);
7650         YY_BREAK
7651 case 318:
7652 /* rule 318 can match eol */
7653 YY_RULE_SETUP
7654 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);
7655         YY_BREAK
7656 case 319:
7657 /* rule 319 can match eol */
7658 YY_RULE_SETUP
7659 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);
7660         YY_BREAK
7661 case 320:
7662 /* rule 320 can match eol */
7663 YY_RULE_SETUP
7664 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);
7665         YY_BREAK
7666 case 321:
7667 /* rule 321 can match eol */
7668 YY_RULE_SETUP
7669 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);
7670         YY_BREAK
7671 case 322:
7672 /* rule 322 can match eol */
7673 YY_RULE_SETUP
7674 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);
7675         YY_BREAK
7676 case 323:
7677 /* rule 323 can match eol */
7678 YY_RULE_SETUP
7679 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);
7680         YY_BREAK
7681 case 324:
7682 /* rule 324 can match eol */
7683 YY_RULE_SETUP
7684 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);
7685         YY_BREAK
7686 case 325:
7687 /* rule 325 can match eol */
7688 YY_RULE_SETUP
7689 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);
7690         YY_BREAK
7691 case 326:
7692 /* rule 326 can match eol */
7693 YY_RULE_SETUP
7694 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);
7695         YY_BREAK
7696 case 327:
7697 /* rule 327 can match eol */
7698 YY_RULE_SETUP
7699 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);
7700         YY_BREAK
7701 case 328:
7702 /* rule 328 can match eol */
7703 YY_RULE_SETUP
7704 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);
7705         YY_BREAK
7706 case 329:
7707 /* rule 329 can match eol */
7708 YY_RULE_SETUP
7709 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);
7710         YY_BREAK
7711 case 330:
7712 YY_RULE_SETUP
7713 {
7714   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7715   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7716   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7717   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7718   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7719   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7720  }
7721         YY_BREAK
7722 case 331:
7723 YY_RULE_SETUP
7724 {
7725   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7726   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7727   if (!AX_surfxml_peer_bw_in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7728   if (!AX_surfxml_peer_bw_out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7729   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7730   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7731   switch (YY_START) {
7732    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;
7733    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;
7734    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7735   }
7736  }
7737         YY_BREAK
7738 case 332:
7739 YY_RULE_SETUP
7740 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7741         YY_BREAK
7742 case 333:
7743 YY_RULE_SETUP
7744 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7745         YY_BREAK
7746 case YY_STATE_EOF(AL_surfxml_peer):
7747 FAIL("EOF in attribute list of `peer' element.");
7748         YY_BREAK
7749
7750 case 334:
7751 /* rule 334 can match eol */
7752 YY_RULE_SETUP
7753 {
7754   LEAVE;
7755   ETag_surfxml_peer();
7756   popbuffer(); /* attribute */
7757   switch (YY_START) {
7758    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;
7759    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;
7760    case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
7761   }
7762  }
7763         YY_BREAK
7764 case 335:
7765 /* rule 335 can match eol */
7766 YY_RULE_SETUP
7767 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7768         YY_BREAK
7769 case 336:
7770 YY_RULE_SETUP
7771 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7772         YY_BREAK
7773 case YY_STATE_EOF(E_surfxml_peer):
7774 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7775         YY_BREAK
7776
7777 case 337:
7778 /* rule 337 can match eol */
7779 YY_RULE_SETUP
7780 FAIL("Starting tag <router> is not allowed here.");
7781         YY_BREAK
7782 case 338:
7783 /* rule 338 can match eol */
7784 YY_RULE_SETUP
7785 {
7786   AX_surfxml_router_id = 0;
7787   surfxml_router_id_isset = 0;
7788   AX_surfxml_router_coordinates = 0;
7789   surfxml_router_coordinates_isset = 0;
7790   ENTER(AL_surfxml_router); pushbuffer(0);
7791   }
7792         YY_BREAK
7793
7794 case 339:
7795 /* rule 339 can match eol */
7796 YY_RULE_SETUP
7797 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);
7798         YY_BREAK
7799 case 340:
7800 /* rule 340 can match eol */
7801 YY_RULE_SETUP
7802 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);
7803         YY_BREAK
7804 case 341:
7805 /* rule 341 can match eol */
7806 YY_RULE_SETUP
7807 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);
7808         YY_BREAK
7809 case 342:
7810 /* rule 342 can match eol */
7811 YY_RULE_SETUP
7812 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);
7813         YY_BREAK
7814 case 343:
7815 YY_RULE_SETUP
7816 {
7817   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7818   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7819  }
7820         YY_BREAK
7821 case 344:
7822 YY_RULE_SETUP
7823 {
7824   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7825   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7826   switch (YY_START) {
7827    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;
7828   }
7829  }
7830         YY_BREAK
7831 case 345:
7832 YY_RULE_SETUP
7833 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
7834         YY_BREAK
7835 case 346:
7836 YY_RULE_SETUP
7837 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
7838         YY_BREAK
7839 case YY_STATE_EOF(AL_surfxml_router):
7840 FAIL("EOF in attribute list of `router' element.");
7841         YY_BREAK
7842
7843 case 347:
7844 /* rule 347 can match eol */
7845 YY_RULE_SETUP
7846 {
7847   LEAVE;
7848   ETag_surfxml_router();
7849   popbuffer(); /* attribute */
7850   switch (YY_START) {
7851    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;
7852   }
7853  }
7854         YY_BREAK
7855 case 348:
7856 /* rule 348 can match eol */
7857 YY_RULE_SETUP
7858 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
7859         YY_BREAK
7860 case 349:
7861 YY_RULE_SETUP
7862 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
7863         YY_BREAK
7864 case YY_STATE_EOF(E_surfxml_router):
7865 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
7866         YY_BREAK
7867
7868 case 350:
7869 /* rule 350 can match eol */
7870 YY_RULE_SETUP
7871 FAIL("Starting tag <backbone> is not allowed here.");
7872         YY_BREAK
7873 case 351:
7874 /* rule 351 can match eol */
7875 YY_RULE_SETUP
7876 {
7877   AX_surfxml_backbone_id = 0;
7878   surfxml_backbone_id_isset = 0;
7879   AX_surfxml_backbone_bandwidth = 0;
7880   surfxml_backbone_bandwidth_isset = 0;
7881   AX_surfxml_backbone_latency = 0;
7882   surfxml_backbone_latency_isset = 0;
7883   ENTER(AL_surfxml_backbone); pushbuffer(0);
7884   }
7885         YY_BREAK
7886
7887 case 352:
7888 /* rule 352 can match eol */
7889 YY_RULE_SETUP
7890 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);
7891         YY_BREAK
7892 case 353:
7893 /* rule 353 can match eol */
7894 YY_RULE_SETUP
7895 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);
7896         YY_BREAK
7897 case 354:
7898 /* rule 354 can match eol */
7899 YY_RULE_SETUP
7900 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);
7901         YY_BREAK
7902 case 355:
7903 /* rule 355 can match eol */
7904 YY_RULE_SETUP
7905 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);
7906         YY_BREAK
7907 case 356:
7908 /* rule 356 can match eol */
7909 YY_RULE_SETUP
7910 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);
7911         YY_BREAK
7912 case 357:
7913 /* rule 357 can match eol */
7914 YY_RULE_SETUP
7915 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);
7916         YY_BREAK
7917 case 358:
7918 YY_RULE_SETUP
7919 {
7920   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7921   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7922   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7923   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
7924  }
7925         YY_BREAK
7926 case 359:
7927 YY_RULE_SETUP
7928 {
7929   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
7930   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
7931   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
7932   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
7933   switch (YY_START) {
7934    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7935    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;
7936   }
7937  }
7938         YY_BREAK
7939 case 360:
7940 YY_RULE_SETUP
7941 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
7942         YY_BREAK
7943 case 361:
7944 YY_RULE_SETUP
7945 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
7946         YY_BREAK
7947 case YY_STATE_EOF(AL_surfxml_backbone):
7948 FAIL("EOF in attribute list of `backbone' element.");
7949         YY_BREAK
7950
7951 case 362:
7952 /* rule 362 can match eol */
7953 YY_RULE_SETUP
7954 {
7955   LEAVE;
7956   ETag_surfxml_backbone();
7957   popbuffer(); /* attribute */
7958   switch (YY_START) {
7959    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7960    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7961   }
7962  }
7963         YY_BREAK
7964 case 363:
7965 /* rule 363 can match eol */
7966 YY_RULE_SETUP
7967 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
7968         YY_BREAK
7969 case 364:
7970 YY_RULE_SETUP
7971 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
7972         YY_BREAK
7973 case YY_STATE_EOF(E_surfxml_backbone):
7974 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
7975         YY_BREAK
7976
7977 case 365:
7978 /* rule 365 can match eol */
7979 YY_RULE_SETUP
7980 FAIL("Starting tag <link> is not allowed here.");
7981         YY_BREAK
7982 case 366:
7983 /* rule 366 can match eol */
7984 YY_RULE_SETUP
7985 {
7986   AX_surfxml_link_id = 0;
7987   surfxml_link_id_isset = 0;
7988   AX_surfxml_link_bandwidth = 0;
7989   surfxml_link_bandwidth_isset = 0;
7990   AX_surfxml_link_bandwidth_file = 0;
7991   surfxml_link_bandwidth_file_isset = 0;
7992   AX_surfxml_link_latency = 24;
7993   surfxml_link_latency_isset = 0;
7994   AX_surfxml_link_latency_file = 0;
7995   surfxml_link_latency_file_isset = 0;
7996   AX_surfxml_link_state = A_surfxml_link_state_ON;
7997   surfxml_link_state_isset = 0;
7998   AX_surfxml_link_state_file = 0;
7999   surfxml_link_state_file_isset = 0;
8000   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
8001   surfxml_link_sharing_policy_isset = 0;
8002   ENTER(AL_surfxml_link); pushbuffer(0);
8003   }
8004         YY_BREAK
8005
8006 case 367:
8007 /* rule 367 can match eol */
8008 YY_RULE_SETUP
8009 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);
8010         YY_BREAK
8011 case 368:
8012 /* rule 368 can match eol */
8013 YY_RULE_SETUP
8014 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);
8015         YY_BREAK
8016 case 369:
8017 /* rule 369 can match eol */
8018 YY_RULE_SETUP
8019 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);
8020         YY_BREAK
8021 case 370:
8022 /* rule 370 can match eol */
8023 YY_RULE_SETUP
8024 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);
8025         YY_BREAK
8026 case 371:
8027 /* rule 371 can match eol */
8028 YY_RULE_SETUP
8029 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);
8030         YY_BREAK
8031 case 372:
8032 /* rule 372 can match eol */
8033 YY_RULE_SETUP
8034 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);
8035         YY_BREAK
8036 case 373:
8037 /* rule 373 can match eol */
8038 YY_RULE_SETUP
8039 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);
8040         YY_BREAK
8041 case 374:
8042 /* rule 374 can match eol */
8043 YY_RULE_SETUP
8044 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);
8045         YY_BREAK
8046 case 375:
8047 /* rule 375 can match eol */
8048 YY_RULE_SETUP
8049 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);
8050         YY_BREAK
8051 case 376:
8052 /* rule 376 can match eol */
8053 YY_RULE_SETUP
8054 <<<<<<< HEAD
8055 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
8056 =======
8057 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);
8058 >>>>>>> 52c07f4b6c9ba2b0af928b8e83c48f819e1c9fc0
8059         YY_BREAK
8060 case 377:
8061 /* rule 377 can match eol */
8062 case 378:
8063 /* rule 378 can match eol */
8064 YY_RULE_SETUP
8065 A_surfxml_link_state = A_surfxml_link_state_ON;
8066         YY_BREAK
8067 case 379:
8068 /* rule 379 can match eol */
8069 case 380:
8070 /* rule 380 can match eol */
8071 YY_RULE_SETUP
8072 A_surfxml_link_state = A_surfxml_link_state_OFF;
8073         YY_BREAK
8074 case 381:
8075 /* rule 381 can match eol */
8076 YY_RULE_SETUP
8077 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);
8078         YY_BREAK
8079 case 382:
8080 /* rule 382 can match eol */
8081 YY_RULE_SETUP
8082 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);
8083         YY_BREAK
8084 case 383:
8085 /* rule 383 can match eol */
8086 case 384:
8087 /* rule 384 can match eol */
8088 YY_RULE_SETUP
8089 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
8090         YY_BREAK
8091 case 385:
8092 /* rule 385 can match eol */
8093 case 386:
8094 /* rule 386 can match eol */
8095 YY_RULE_SETUP
8096 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
8097         YY_BREAK
8098 case 387:
8099 /* rule 387 can match eol */
8100 case 388:
8101 /* rule 388 can match eol */
8102 YY_RULE_SETUP
8103 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FULLDUPLEX;
8104         YY_BREAK
8105 case 389:
8106 YY_RULE_SETUP
8107 {
8108   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8109   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8110   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8111  }
8112         YY_BREAK
8113 case 390:
8114 YY_RULE_SETUP
8115 {
8116   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8117   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8118   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8119   switch (YY_START) {
8120    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8121    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;
8122   }
8123  }
8124         YY_BREAK
8125 case 391:
8126 YY_RULE_SETUP
8127 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8128         YY_BREAK
8129 case 392:
8130 YY_RULE_SETUP
8131 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8132         YY_BREAK
8133 case YY_STATE_EOF(AL_surfxml_link):
8134 FAIL("EOF in attribute list of `link' element.");
8135         YY_BREAK
8136
8137 case 393:
8138 /* rule 393 can match eol */
8139 YY_RULE_SETUP
8140 {
8141   LEAVE;
8142   ETag_surfxml_link();
8143   popbuffer(); /* attribute */
8144   switch (YY_START) {
8145    case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8146    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;
8147   }
8148  }
8149         YY_BREAK
8150 case 394:
8151 /* rule 394 can match eol */
8152 YY_RULE_SETUP
8153 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8154         YY_BREAK
8155 case 395:
8156 YY_RULE_SETUP
8157 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8158         YY_BREAK
8159 case YY_STATE_EOF(E_surfxml_link):
8160 case YY_STATE_EOF(S_surfxml_link_2):
8161 case YY_STATE_EOF(S_surfxml_link):
8162 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8163         YY_BREAK
8164
8165 case 396:
8166 /* rule 396 can match eol */
8167 YY_RULE_SETUP
8168 FAIL("Starting tag <route> is not allowed here.");
8169         YY_BREAK
8170 case 397:
8171 /* rule 397 can match eol */
8172 YY_RULE_SETUP
8173 {
8174   AX_surfxml_route_src = 0;
8175   surfxml_route_src_isset = 0;
8176   AX_surfxml_route_dst = 0;
8177   surfxml_route_dst_isset = 0;
8178   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8179   surfxml_route_symmetrical_isset = 0;
8180   ENTER(AL_surfxml_route); pushbuffer(0);
8181   }
8182         YY_BREAK
8183
8184 case 398:
8185 /* rule 398 can match eol */
8186 YY_RULE_SETUP
8187 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);
8188         YY_BREAK
8189 case 399:
8190 /* rule 399 can match eol */
8191 YY_RULE_SETUP
8192 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);
8193         YY_BREAK
8194 case 400:
8195 /* rule 400 can match eol */
8196 YY_RULE_SETUP
8197 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);
8198         YY_BREAK
8199 case 401:
8200 /* rule 401 can match eol */
8201 YY_RULE_SETUP
8202 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);
8203         YY_BREAK
8204 case 402:
8205 /* rule 402 can match eol */
8206 case 403:
8207 /* rule 403 can match eol */
8208 YY_RULE_SETUP
8209 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8210         YY_BREAK
8211 case 404:
8212 /* rule 404 can match eol */
8213 case 405:
8214 /* rule 405 can match eol */
8215 YY_RULE_SETUP
8216 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8217         YY_BREAK
8218 case 406:
8219 YY_RULE_SETUP
8220 {
8221   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8222   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8223   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8224  }
8225         YY_BREAK
8226 case 407:
8227 YY_RULE_SETUP
8228 {
8229   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8230   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8231   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8232   switch (YY_START) {
8233    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;
8234   }
8235  }
8236         YY_BREAK
8237 case 408:
8238 YY_RULE_SETUP
8239 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8240         YY_BREAK
8241 case 409:
8242 YY_RULE_SETUP
8243 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8244         YY_BREAK
8245 case YY_STATE_EOF(AL_surfxml_route):
8246 FAIL("EOF in attribute list of `route' element.");
8247         YY_BREAK
8248
8249 case 410:
8250 /* rule 410 can match eol */
8251 YY_RULE_SETUP
8252 {
8253   LEAVE;
8254   ETag_surfxml_route();
8255   popbuffer(); /* attribute */
8256   switch (YY_START) {
8257    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;
8258   }
8259  }
8260         YY_BREAK
8261 case 411:
8262 /* rule 411 can match eol */
8263 YY_RULE_SETUP
8264 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8265         YY_BREAK
8266 case 412:
8267 YY_RULE_SETUP
8268 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8269         YY_BREAK
8270 case YY_STATE_EOF(S_surfxml_route):
8271 case YY_STATE_EOF(S_surfxml_route_2):
8272 case YY_STATE_EOF(E_surfxml_route):
8273 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8274         YY_BREAK
8275
8276 case 413:
8277 /* rule 413 can match eol */
8278 YY_RULE_SETUP
8279 FAIL("Starting tag <ASroute> is not allowed here.");
8280         YY_BREAK
8281 case 414:
8282 /* rule 414 can match eol */
8283 YY_RULE_SETUP
8284 {
8285   AX_surfxml_ASroute_src = 0;
8286   surfxml_ASroute_src_isset = 0;
8287   AX_surfxml_ASroute_dst = 0;
8288   surfxml_ASroute_dst_isset = 0;
8289   AX_surfxml_ASroute_gw_src = 0;
8290   surfxml_ASroute_gw_src_isset = 0;
8291   AX_surfxml_ASroute_gw_dst = 0;
8292   surfxml_ASroute_gw_dst_isset = 0;
8293   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8294   surfxml_ASroute_symmetrical_isset = 0;
8295   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8296   }
8297         YY_BREAK
8298
8299 case 415:
8300 /* rule 415 can match eol */
8301 YY_RULE_SETUP
8302 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);
8303         YY_BREAK
8304 case 416:
8305 /* rule 416 can match eol */
8306 YY_RULE_SETUP
8307 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);
8308         YY_BREAK
8309 case 417:
8310 /* rule 417 can match eol */
8311 YY_RULE_SETUP
8312 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);
8313         YY_BREAK
8314 case 418:
8315 /* rule 418 can match eol */
8316 YY_RULE_SETUP
8317 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);
8318         YY_BREAK
8319 case 419:
8320 /* rule 419 can match eol */
8321 YY_RULE_SETUP
8322 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);
8323         YY_BREAK
8324 case 420:
8325 /* rule 420 can match eol */
8326 YY_RULE_SETUP
8327 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);
8328         YY_BREAK
8329 case 421:
8330 /* rule 421 can match eol */
8331 YY_RULE_SETUP
8332 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);
8333         YY_BREAK
8334 case 422:
8335 /* rule 422 can match eol */
8336 YY_RULE_SETUP
8337 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);
8338         YY_BREAK
8339 case 423:
8340 /* rule 423 can match eol */
8341 case 424:
8342 /* rule 424 can match eol */
8343 YY_RULE_SETUP
8344 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8345         YY_BREAK
8346 case 425:
8347 /* rule 425 can match eol */
8348 case 426:
8349 /* rule 426 can match eol */
8350 YY_RULE_SETUP
8351 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8352         YY_BREAK
8353 case 427:
8354 YY_RULE_SETUP
8355 {
8356   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8357   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8358   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8359   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8360   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8361  }
8362         YY_BREAK
8363 case 428:
8364 YY_RULE_SETUP
8365 {
8366   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8367   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8368   if (!AX_surfxml_ASroute_gw_src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8369   if (!AX_surfxml_ASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8370   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8371   switch (YY_START) {
8372    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;
8373   }
8374  }
8375         YY_BREAK
8376 case 429:
8377 YY_RULE_SETUP
8378 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8379         YY_BREAK
8380 case 430:
8381 YY_RULE_SETUP
8382 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8383         YY_BREAK
8384 case YY_STATE_EOF(AL_surfxml_ASroute):
8385 FAIL("EOF in attribute list of `ASroute' element.");
8386         YY_BREAK
8387
8388 case 431:
8389 /* rule 431 can match eol */
8390 YY_RULE_SETUP
8391 {
8392   LEAVE;
8393   ETag_surfxml_ASroute();
8394   popbuffer(); /* attribute */
8395   switch (YY_START) {
8396    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;
8397   }
8398  }
8399         YY_BREAK
8400 case 432:
8401 /* rule 432 can match eol */
8402 YY_RULE_SETUP
8403 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8404         YY_BREAK
8405 case 433:
8406 YY_RULE_SETUP
8407 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8408         YY_BREAK
8409 case YY_STATE_EOF(E_surfxml_ASroute):
8410 case YY_STATE_EOF(S_surfxml_ASroute):
8411 case YY_STATE_EOF(S_surfxml_ASroute_2):
8412 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8413         YY_BREAK
8414
8415 case 434:
8416 /* rule 434 can match eol */
8417 YY_RULE_SETUP
8418 FAIL("Starting tag <link_ctn> is not allowed here.");
8419         YY_BREAK
8420 case 435:
8421 /* rule 435 can match eol */
8422 YY_RULE_SETUP
8423 {
8424   AX_surfxml_link_ctn_id = 0;
8425   surfxml_link_ctn_id_isset = 0;
8426   AX_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
8427   surfxml_link_ctn_direction_isset = 0;
8428   ENTER(AL_surfxml_link_ctn); pushbuffer(0);
8429   }
8430         YY_BREAK
8431
8432 case 436:
8433 /* rule 436 can match eol */
8434 YY_RULE_SETUP
8435 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);
8436         YY_BREAK
8437 case 437:
8438 /* rule 437 can match eol */
8439 YY_RULE_SETUP
8440 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);
8441         YY_BREAK
8442 case 438:
8443 /* rule 438 can match eol */
8444 case 439:
8445 /* rule 439 can match eol */
8446 YY_RULE_SETUP
8447 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_UP;
8448         YY_BREAK
8449 case 440:
8450 /* rule 440 can match eol */
8451 case 441:
8452 /* rule 441 can match eol */
8453 YY_RULE_SETUP
8454 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_DOWN;
8455         YY_BREAK
8456 case 442:
8457 /* rule 442 can match eol */
8458 case 443:
8459 /* rule 443 can match eol */
8460 YY_RULE_SETUP
8461 A_surfxml_link_ctn_direction = A_surfxml_link_ctn_direction_NONE;
8462         YY_BREAK
8463 case 444:
8464 YY_RULE_SETUP
8465 {
8466   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8467   LEAVE; STag_surfxml_link_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_ctn);
8468  }
8469         YY_BREAK
8470 case 445:
8471 YY_RULE_SETUP
8472 {
8473   if (!AX_surfxml_link_ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8474   LEAVE; STag_surfxml_link_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_ctn(); popbuffer(); /* attribute */
8475   switch (YY_START) {
8476    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8477    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8478    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8479    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8480   }
8481  }
8482         YY_BREAK
8483 case 446:
8484 YY_RULE_SETUP
8485 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8486         YY_BREAK
8487 case 447:
8488 YY_RULE_SETUP
8489 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8490         YY_BREAK
8491 case YY_STATE_EOF(AL_surfxml_link_ctn):
8492 FAIL("EOF in attribute list of `link_ctn' element.");
8493         YY_BREAK
8494
8495 case 448:
8496 /* rule 448 can match eol */
8497 YY_RULE_SETUP
8498 {
8499   LEAVE;
8500   ETag_surfxml_link_ctn();
8501   popbuffer(); /* attribute */
8502   switch (YY_START) {
8503    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8504    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8505    case S_surfxml_bypassASroute_2: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute: SET(S_surfxml_bypassASroute_2); break;
8506    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8507   }
8508  }
8509         YY_BREAK
8510 case 449:
8511 /* rule 449 can match eol */
8512 YY_RULE_SETUP
8513 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8514         YY_BREAK
8515 case 450:
8516 YY_RULE_SETUP
8517 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8518         YY_BREAK
8519 case YY_STATE_EOF(E_surfxml_link_ctn):
8520 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8521         YY_BREAK
8522
8523 case 451:
8524 /* rule 451 can match eol */
8525 YY_RULE_SETUP
8526 FAIL("Starting tag <bypassRoute> is not allowed here.");
8527         YY_BREAK
8528 case 452:
8529 /* rule 452 can match eol */
8530 YY_RULE_SETUP
8531 {
8532   AX_surfxml_bypassRoute_src = 0;
8533   surfxml_bypassRoute_src_isset = 0;
8534   AX_surfxml_bypassRoute_dst = 0;
8535   surfxml_bypassRoute_dst_isset = 0;
8536   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8537   }
8538         YY_BREAK
8539
8540 case 453:
8541 /* rule 453 can match eol */
8542 YY_RULE_SETUP
8543 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);
8544         YY_BREAK
8545 case 454:
8546 /* rule 454 can match eol */
8547 YY_RULE_SETUP
8548 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);
8549         YY_BREAK
8550 case 455:
8551 /* rule 455 can match eol */
8552 YY_RULE_SETUP
8553 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);
8554         YY_BREAK
8555 case 456:
8556 /* rule 456 can match eol */
8557 YY_RULE_SETUP
8558 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);
8559         YY_BREAK
8560 case 457:
8561 YY_RULE_SETUP
8562 {
8563   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8564   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8565   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8566  }
8567         YY_BREAK
8568 case 458:
8569 YY_RULE_SETUP
8570 {
8571   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8572   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8573   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8574   switch (YY_START) {
8575    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;
8576   }
8577  }
8578         YY_BREAK
8579 case 459:
8580 YY_RULE_SETUP
8581 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8582         YY_BREAK
8583 case 460:
8584 YY_RULE_SETUP
8585 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8586         YY_BREAK
8587 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8588 FAIL("EOF in attribute list of `bypassRoute' element.");
8589         YY_BREAK
8590
8591 case 461:
8592 /* rule 461 can match eol */
8593 YY_RULE_SETUP
8594 {
8595   LEAVE;
8596   ETag_surfxml_bypassRoute();
8597   popbuffer(); /* attribute */
8598   switch (YY_START) {
8599    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;
8600   }
8601  }
8602         YY_BREAK
8603 case 462:
8604 /* rule 462 can match eol */
8605 YY_RULE_SETUP
8606 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8607         YY_BREAK
8608 case 463:
8609 YY_RULE_SETUP
8610 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8611         YY_BREAK
8612 case YY_STATE_EOF(S_surfxml_bypassRoute):
8613 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8614 case YY_STATE_EOF(E_surfxml_bypassRoute):
8615 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8616         YY_BREAK
8617
8618 case 464:
8619 /* rule 464 can match eol */
8620 YY_RULE_SETUP
8621 FAIL("Starting tag <bypassASroute> is not allowed here.");
8622         YY_BREAK
8623 case 465:
8624 /* rule 465 can match eol */
8625 YY_RULE_SETUP
8626 {
8627   AX_surfxml_bypassASroute_src = 0;
8628   surfxml_bypassASroute_src_isset = 0;
8629   AX_surfxml_bypassASroute_dst = 0;
8630   surfxml_bypassASroute_dst_isset = 0;
8631   AX_surfxml_bypassASroute_gw_src = 0;
8632   surfxml_bypassASroute_gw_src_isset = 0;
8633   AX_surfxml_bypassASroute_gw_dst = 0;
8634   surfxml_bypassASroute_gw_dst_isset = 0;
8635   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8636   }
8637         YY_BREAK
8638
8639 case 466:
8640 /* rule 466 can match eol */
8641 YY_RULE_SETUP
8642 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);
8643         YY_BREAK
8644 case 467:
8645 /* rule 467 can match eol */
8646 YY_RULE_SETUP
8647 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);
8648         YY_BREAK
8649 case 468:
8650 /* rule 468 can match eol */
8651 YY_RULE_SETUP
8652 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);
8653         YY_BREAK
8654 case 469:
8655 /* rule 469 can match eol */
8656 YY_RULE_SETUP
8657 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);
8658         YY_BREAK
8659 case 470:
8660 /* rule 470 can match eol */
8661 YY_RULE_SETUP
8662 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);
8663         YY_BREAK
8664 case 471:
8665 /* rule 471 can match eol */
8666 YY_RULE_SETUP
8667 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);
8668         YY_BREAK
8669 case 472:
8670 /* rule 472 can match eol */
8671 YY_RULE_SETUP
8672 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);
8673         YY_BREAK
8674 case 473:
8675 /* rule 473 can match eol */
8676 YY_RULE_SETUP
8677 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);
8678         YY_BREAK
8679 case 474:
8680 YY_RULE_SETUP
8681 {
8682   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8683   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8684   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8685   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8686   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8687  }
8688         YY_BREAK
8689 case 475:
8690 YY_RULE_SETUP
8691 {
8692   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8693   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8694   if (!AX_surfxml_bypassASroute_gw_src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8695   if (!AX_surfxml_bypassASroute_gw_dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8696   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8697   switch (YY_START) {
8698    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;
8699   }
8700  }
8701         YY_BREAK
8702 case 476:
8703 YY_RULE_SETUP
8704 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8705         YY_BREAK
8706 case 477:
8707 YY_RULE_SETUP
8708 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8709         YY_BREAK
8710 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8711 FAIL("EOF in attribute list of `bypassASroute' element.");
8712         YY_BREAK
8713
8714 case 478:
8715 /* rule 478 can match eol */
8716 YY_RULE_SETUP
8717 {
8718   LEAVE;
8719   ETag_surfxml_bypassASroute();
8720   popbuffer(); /* attribute */
8721   switch (YY_START) {
8722    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;
8723   }
8724  }
8725         YY_BREAK
8726 case 479:
8727 /* rule 479 can match eol */
8728 YY_RULE_SETUP
8729 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8730         YY_BREAK
8731 case 480:
8732 YY_RULE_SETUP
8733 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8734         YY_BREAK
8735 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8736 case YY_STATE_EOF(E_surfxml_bypassASroute):
8737 case YY_STATE_EOF(S_surfxml_bypassASroute):
8738 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8739         YY_BREAK
8740
8741 case 481:
8742 /* rule 481 can match eol */
8743 YY_RULE_SETUP
8744 FAIL("Starting tag <process> is not allowed here.");
8745         YY_BREAK
8746 case 482:
8747 /* rule 482 can match eol */
8748 YY_RULE_SETUP
8749 {
8750   AX_surfxml_process_host = 0;
8751   surfxml_process_host_isset = 0;
8752   AX_surfxml_process_function = 0;
8753   surfxml_process_function_isset = 0;
8754   AX_surfxml_process_start_time = 28;
8755   surfxml_process_start_time_isset = 0;
8756   AX_surfxml_process_kill_time = 33;
8757   surfxml_process_kill_time_isset = 0;
8758   AX_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8759   surfxml_process_on_failure_isset = 0;
8760   ENTER(AL_surfxml_process); pushbuffer(0);
8761   }
8762         YY_BREAK
8763
8764 case 483:
8765 /* rule 483 can match eol */
8766 YY_RULE_SETUP
8767 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);
8768         YY_BREAK
8769 case 484:
8770 /* rule 484 can match eol */
8771 YY_RULE_SETUP
8772 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);
8773         YY_BREAK
8774 case 485:
8775 /* rule 485 can match eol */
8776 YY_RULE_SETUP
8777 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);
8778         YY_BREAK
8779 case 486:
8780 /* rule 486 can match eol */
8781 YY_RULE_SETUP
8782 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);
8783         YY_BREAK
8784 case 487:
8785 /* rule 487 can match eol */
8786 YY_RULE_SETUP
8787 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);
8788         YY_BREAK
8789 case 488:
8790 /* rule 488 can match eol */
8791 YY_RULE_SETUP
8792 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);
8793         YY_BREAK
8794 case 489:
8795 /* rule 489 can match eol */
8796 YY_RULE_SETUP
8797 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);
8798         YY_BREAK
8799 case 490:
8800 /* rule 490 can match eol */
8801 YY_RULE_SETUP
8802 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);
8803         YY_BREAK
8804 case 491:
8805 /* rule 491 can match eol */
8806 case 492:
8807 /* rule 492 can match eol */
8808 YY_RULE_SETUP
8809 A_surfxml_process_on_failure = A_surfxml_process_on_failure_DIE;
8810         YY_BREAK
8811 case 493:
8812 /* rule 493 can match eol */
8813 case 494:
8814 /* rule 494 can match eol */
8815 YY_RULE_SETUP
8816 A_surfxml_process_on_failure = A_surfxml_process_on_failure_RESTART;
8817         YY_BREAK
8818 case 495:
8819 YY_RULE_SETUP
8820 {
8821   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8822   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8823   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8824  }
8825         YY_BREAK
8826 case 496:
8827 YY_RULE_SETUP
8828 {
8829   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8830   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8831   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8832   switch (YY_START) {
8833    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;
8834   }
8835  }
8836         YY_BREAK
8837 case 497:
8838 YY_RULE_SETUP
8839 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8840         YY_BREAK
8841 case 498:
8842 YY_RULE_SETUP
8843 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8844         YY_BREAK
8845 case YY_STATE_EOF(AL_surfxml_process):
8846 FAIL("EOF in attribute list of `process' element.");
8847         YY_BREAK
8848
8849 case 499:
8850 /* rule 499 can match eol */
8851 YY_RULE_SETUP
8852 {
8853   LEAVE;
8854   ETag_surfxml_process();
8855   popbuffer(); /* attribute */
8856   switch (YY_START) {
8857    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;
8858   }
8859  }
8860         YY_BREAK
8861 case 500:
8862 /* rule 500 can match eol */
8863 YY_RULE_SETUP
8864 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8865         YY_BREAK
8866 case 501:
8867 YY_RULE_SETUP
8868 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8869         YY_BREAK
8870 case YY_STATE_EOF(E_surfxml_process):
8871 case YY_STATE_EOF(S_surfxml_process):
8872 case YY_STATE_EOF(S_surfxml_process_2):
8873 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8874         YY_BREAK
8875
8876 case 502:
8877 /* rule 502 can match eol */
8878 YY_RULE_SETUP
8879 FAIL("Starting tag <argument> is not allowed here.");
8880         YY_BREAK
8881 case 503:
8882 /* rule 503 can match eol */
8883 YY_RULE_SETUP
8884 {
8885   AX_surfxml_argument_value = 0;
8886   surfxml_argument_value_isset = 0;
8887   ENTER(AL_surfxml_argument); pushbuffer(0);
8888   }
8889         YY_BREAK
8890
8891 case 504:
8892 /* rule 504 can match eol */
8893 YY_RULE_SETUP
8894 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);
8895         YY_BREAK
8896 case 505:
8897 /* rule 505 can match eol */
8898 YY_RULE_SETUP
8899 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);
8900         YY_BREAK
8901 case 506:
8902 YY_RULE_SETUP
8903 {
8904   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8905   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
8906  }
8907         YY_BREAK
8908 case 507:
8909 YY_RULE_SETUP
8910 {
8911   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
8912   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
8913   switch (YY_START) {
8914    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8915   }
8916  }
8917         YY_BREAK
8918 case 508:
8919 YY_RULE_SETUP
8920 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
8921         YY_BREAK
8922 case 509:
8923 YY_RULE_SETUP
8924 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
8925         YY_BREAK
8926 case YY_STATE_EOF(AL_surfxml_argument):
8927 FAIL("EOF in attribute list of `argument' element.");
8928         YY_BREAK
8929
8930 case 510:
8931 /* rule 510 can match eol */
8932 YY_RULE_SETUP
8933 {
8934   LEAVE;
8935   ETag_surfxml_argument();
8936   popbuffer(); /* attribute */
8937   switch (YY_START) {
8938    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8939   }
8940  }
8941         YY_BREAK
8942 case 511:
8943 /* rule 511 can match eol */
8944 YY_RULE_SETUP
8945 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
8946         YY_BREAK
8947 case 512:
8948 YY_RULE_SETUP
8949 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
8950         YY_BREAK
8951 case YY_STATE_EOF(E_surfxml_argument):
8952 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
8953         YY_BREAK
8954
8955 case 513:
8956 /* rule 513 can match eol */
8957 YY_RULE_SETUP
8958 FAIL("Starting tag <config> is not allowed here.");
8959         YY_BREAK
8960 case 514:
8961 /* rule 514 can match eol */
8962 YY_RULE_SETUP
8963 {
8964   AX_surfxml_config_id = 0;
8965   surfxml_config_id_isset = 0;
8966   ENTER(AL_surfxml_config); pushbuffer(0);
8967   }
8968         YY_BREAK
8969
8970 case 515:
8971 /* rule 515 can match eol */
8972 YY_RULE_SETUP
8973 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);
8974         YY_BREAK
8975 case 516:
8976 /* rule 516 can match eol */
8977 YY_RULE_SETUP
8978 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);
8979         YY_BREAK
8980 case 517:
8981 YY_RULE_SETUP
8982 {
8983   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
8984  }
8985         YY_BREAK
8986 case 518:
8987 YY_RULE_SETUP
8988 {
8989   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
8990   switch (YY_START) {
8991    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8992   }
8993  }
8994         YY_BREAK
8995 case 519:
8996 YY_RULE_SETUP
8997 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
8998         YY_BREAK
8999 case 520:
9000 YY_RULE_SETUP
9001 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9002         YY_BREAK
9003 case YY_STATE_EOF(AL_surfxml_config):
9004 FAIL("EOF in attribute list of `config' element.");
9005         YY_BREAK
9006
9007 case 521:
9008 /* rule 521 can match eol */
9009 YY_RULE_SETUP
9010 {
9011   LEAVE;
9012   ETag_surfxml_config();
9013   popbuffer(); /* attribute */
9014   switch (YY_START) {
9015    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9016   }
9017  }
9018         YY_BREAK
9019 case 522:
9020 /* rule 522 can match eol */
9021 YY_RULE_SETUP
9022 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9023         YY_BREAK
9024 case 523:
9025 YY_RULE_SETUP
9026 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9027         YY_BREAK
9028 case YY_STATE_EOF(S_surfxml_config):
9029 case YY_STATE_EOF(S_surfxml_config_2):
9030 case YY_STATE_EOF(E_surfxml_config):
9031 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9032         YY_BREAK
9033
9034 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9035   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9036 case 524:
9037 /* rule 524 can match eol */
9038 YY_RULE_SETUP
9039 FAIL("Starting tag <prop> is not allowed here.");
9040         YY_BREAK
9041 case 525:
9042 /* rule 525 can match eol */
9043 YY_RULE_SETUP
9044 {
9045   AX_surfxml_prop_id = 0;
9046   surfxml_prop_id_isset = 0;
9047   AX_surfxml_prop_value = 0;
9048   surfxml_prop_value_isset = 0;
9049   ENTER(AL_surfxml_prop); pushbuffer(0);
9050   }
9051         YY_BREAK
9052
9053 case 526:
9054 /* rule 526 can match eol */
9055 YY_RULE_SETUP
9056 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);
9057         YY_BREAK
9058 case 527:
9059 /* rule 527 can match eol */
9060 YY_RULE_SETUP
9061 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);
9062         YY_BREAK
9063 case 528:
9064 /* rule 528 can match eol */
9065 YY_RULE_SETUP
9066 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);
9067         YY_BREAK
9068 case 529:
9069 /* rule 529 can match eol */
9070 YY_RULE_SETUP
9071 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);
9072         YY_BREAK
9073 case 530:
9074 YY_RULE_SETUP
9075 {
9076   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9077   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9078   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9079  }
9080         YY_BREAK
9081 case 531:
9082 YY_RULE_SETUP
9083 {
9084   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9085   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9086   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9087   switch (YY_START) {
9088    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9089    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9090    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9091    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9092    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9093    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
9094    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9095   }
9096  }
9097         YY_BREAK
9098 case 532:
9099 YY_RULE_SETUP
9100 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9101         YY_BREAK
9102 case 533:
9103 YY_RULE_SETUP
9104 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9105         YY_BREAK
9106 case YY_STATE_EOF(AL_surfxml_prop):
9107 FAIL("EOF in attribute list of `prop' element.");
9108         YY_BREAK
9109
9110 case 534:
9111 /* rule 534 can match eol */
9112 YY_RULE_SETUP
9113 {
9114   LEAVE;
9115   ETag_surfxml_prop();
9116   popbuffer(); /* attribute */
9117   switch (YY_START) {
9118    case S_surfxml_AS_2: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9119    case S_surfxml_storage_1: case S_surfxml_storage_2: case S_surfxml_storage: SET(S_surfxml_storage_2); break;
9120    case S_surfxml_config_1: case S_surfxml_config: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9121    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9122    case S_surfxml_host_1: case S_surfxml_host_2: case S_surfxml_host: SET(S_surfxml_host_2); break;
9123    case S_surfxml_storage_type_2: case S_surfxml_storage_type: case S_surfxml_storage_type_1: SET(S_surfxml_storage_type_2); break;
9124    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
9125   }
9126  }
9127         YY_BREAK
9128 case 535:
9129 /* rule 535 can match eol */
9130 YY_RULE_SETUP
9131 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9132         YY_BREAK
9133 case 536:
9134 YY_RULE_SETUP
9135 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9136         YY_BREAK
9137 case YY_STATE_EOF(E_surfxml_prop):
9138 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9139         YY_BREAK
9140
9141 /* EPILOG: after the root element. */
9142
9143 case 537:
9144 YY_RULE_SETUP
9145 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9146         YY_BREAK
9147 case YY_STATE_EOF(EPILOG):
9148 SUCCEED;
9149         YY_BREAK
9150
9151 /* CHARACTER DATA. */
9152
9153 /* Non-defined standard entities... */
9154 case 538:
9155 YY_RULE_SETUP
9156 BUFFERPUTC('&');
9157         YY_BREAK
9158 case 539:
9159 YY_RULE_SETUP
9160 BUFFERPUTC('<');
9161         YY_BREAK
9162 case 540:
9163 YY_RULE_SETUP
9164 BUFFERPUTC('>');
9165         YY_BREAK
9166 case 541:
9167 YY_RULE_SETUP
9168 BUFFERPUTC('\'');
9169         YY_BREAK
9170 case 542:
9171 YY_RULE_SETUP
9172 BUFFERPUTC('"');
9173         YY_BREAK
9174 /* Character entities. */
9175 case 543:
9176 YY_RULE_SETUP
9177 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9178         YY_BREAK
9179 case 544:
9180 YY_RULE_SETUP
9181 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9182         YY_BREAK
9183
9184 case 545:
9185 /* rule 545 can match eol */
9186 case 546:
9187 /* rule 546 can match eol */
9188 case 547:
9189 /* rule 547 can match eol */
9190 case 548:
9191 /* rule 548 can match eol */
9192 YY_RULE_SETUP
9193 BUFFERPUTC('\n');
9194         YY_BREAK
9195
9196 case 549:
9197 YY_RULE_SETUP
9198 ENTER(CDATA);
9199         YY_BREAK
9200 case 550:
9201 YY_RULE_SETUP
9202 FAIL("Unexpected `]""]>' in character data.");
9203         YY_BREAK
9204
9205 case 551:
9206 YY_RULE_SETUP
9207 BUFFERDONE; LEAVE;
9208         YY_BREAK
9209 case YY_STATE_EOF(VALUE1):
9210 FAIL("EOF in literal (\"'\" expected).");
9211         YY_BREAK
9212
9213 case 552:
9214 YY_RULE_SETUP
9215 BUFFERDONE; LEAVE;
9216         YY_BREAK
9217 case YY_STATE_EOF(VALUE2):
9218 FAIL("EOF in literal (`\"' expected).");
9219         YY_BREAK
9220
9221 case 553:
9222 /* rule 553 can match eol */
9223 YY_RULE_SETUP
9224 BUFFERPUTC(surf_parse_text[0]);
9225         YY_BREAK
9226 case 554:
9227 YY_RULE_SETUP
9228 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9229         YY_BREAK
9230
9231 case 555:
9232 YY_RULE_SETUP
9233 LEAVE;
9234         YY_BREAK
9235 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9236 case 556:
9237 YY_RULE_SETUP
9238 BUFFERPUTC(surf_parse_text[0]);
9239         YY_BREAK
9240 case YY_STATE_EOF(CDATA):
9241 FAIL("EOF in CDATA section.");
9242         YY_BREAK
9243
9244 /* Impossible rules to avoid warnings from flex(1). */
9245 /* Ideally, this should be replaced by code in flexml.pl that
9246     generates just the states not covered by other rules. */
9247
9248 case 557:
9249 /* rule 557 can match eol */
9250 YY_RULE_SETUP
9251 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9252         YY_BREAK
9253
9254 case 558:
9255 YY_RULE_SETUP
9256 ECHO;
9257         YY_BREAK
9258 case YY_STATE_EOF(INITIAL):
9259 case YY_STATE_EOF(ROOT_surfxml_platform):
9260 case YY_STATE_EOF(S_surfxml_platform_2):
9261 case YY_STATE_EOF(S_surfxml_platform_5):
9262 case YY_STATE_EOF(S_surfxml_platform_7):
9263 case YY_STATE_EOF(S_surfxml_include_1):
9264 case YY_STATE_EOF(S_surfxml_AS_2):
9265 case YY_STATE_EOF(S_surfxml_AS_5):
9266 case YY_STATE_EOF(S_surfxml_AS_8):
9267 case YY_STATE_EOF(S_surfxml_AS_10):
9268 case YY_STATE_EOF(S_surfxml_AS_13):
9269 case YY_STATE_EOF(S_surfxml_AS_15):
9270 case YY_STATE_EOF(S_surfxml_storage_type_1):
9271 case YY_STATE_EOF(S_surfxml_storage_1):
9272 case YY_STATE_EOF(S_surfxml_host_1):
9273 case YY_STATE_EOF(S_surfxml_link_1):
9274 case YY_STATE_EOF(S_surfxml_route_1):
9275 case YY_STATE_EOF(S_surfxml_ASroute_1):
9276 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9277 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9278 case YY_STATE_EOF(S_surfxml_process_1):
9279 case YY_STATE_EOF(S_surfxml_config_1):
9280 case YY_STATE_EOF(IMPOSSIBLE):
9281         yyterminate();
9282
9283         case YY_END_OF_BUFFER:
9284                 {
9285                 /* Amount of text matched not including the EOB char. */
9286                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9287
9288                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9289                 *yy_cp = (yy_hold_char);
9290                 YY_RESTORE_YY_MORE_OFFSET
9291
9292                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9293                         {
9294                         /* We're scanning a new file or input source.  It's
9295                          * possible that this happened because the user
9296                          * just pointed surf_parse_in at a new source and called
9297                          * surf_parse_lex().  If so, then we have to assure
9298                          * consistency between YY_CURRENT_BUFFER and our
9299                          * globals.  Here is the right place to do so, because
9300                          * this is the first action (other than possibly a
9301                          * back-up) that will match for the new input source.
9302                          */
9303                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9304                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9305                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9306                         }
9307
9308                 /* Note that here we test for yy_c_buf_p "<=" to the position
9309                  * of the first EOB in the buffer, since yy_c_buf_p will
9310                  * already have been incremented past the NUL character
9311                  * (since all states make transitions on EOB to the
9312                  * end-of-buffer state).  Contrast this with the test
9313                  * in input().
9314                  */
9315                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9316                         { /* This was really a NUL. */
9317                         yy_state_type yy_next_state;
9318
9319                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9320
9321                         yy_current_state = yy_get_previous_state(  );
9322
9323                         /* Okay, we're now positioned to make the NUL
9324                          * transition.  We couldn't have
9325                          * yy_get_previous_state() go ahead and do it
9326                          * for us because it doesn't know how to deal
9327                          * with the possibility of jamming (and we don't
9328                          * want to build jamming into it because then it
9329                          * will run more slowly).
9330                          */
9331
9332                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9333
9334                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9335
9336                         if ( yy_next_state )
9337                                 {
9338                                 /* Consume the NUL. */
9339                                 yy_cp = ++(yy_c_buf_p);
9340                                 yy_current_state = yy_next_state;
9341                                 goto yy_match;
9342                                 }
9343
9344                         else
9345                                 {
9346                                 yy_cp = (yy_c_buf_p);
9347                                 goto yy_find_action;
9348                                 }
9349                         }
9350
9351                 else switch ( yy_get_next_buffer(  ) )
9352                         {
9353                         case EOB_ACT_END_OF_FILE:
9354                                 {
9355                                 (yy_did_buffer_switch_on_eof) = 0;
9356
9357                                 if ( surf_parse_wrap( ) )
9358                                         {
9359                                         /* Note: because we've taken care in
9360                                          * yy_get_next_buffer() to have set up
9361                                          * surf_parse_text, we can now set up
9362                                          * yy_c_buf_p so that if some total
9363                                          * hoser (like flex itself) wants to
9364                                          * call the scanner after we return the
9365                                          * YY_NULL, it'll still work - another
9366                                          * YY_NULL will get returned.
9367                                          */
9368                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9369
9370                                         yy_act = YY_STATE_EOF(YY_START);
9371                                         goto do_action;
9372                                         }
9373
9374                                 else
9375                                         {
9376                                         if ( ! (yy_did_buffer_switch_on_eof) )
9377                                                 YY_NEW_FILE;
9378                                         }
9379                                 break;
9380                                 }
9381
9382                         case EOB_ACT_CONTINUE_SCAN:
9383                                 (yy_c_buf_p) =
9384                                         (yytext_ptr) + yy_amount_of_matched_text;
9385
9386                                 yy_current_state = yy_get_previous_state(  );
9387
9388                                 yy_cp = (yy_c_buf_p);
9389                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9390                                 goto yy_match;
9391
9392                         case EOB_ACT_LAST_MATCH:
9393                                 (yy_c_buf_p) =
9394                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9395
9396                                 yy_current_state = yy_get_previous_state(  );
9397
9398                                 yy_cp = (yy_c_buf_p);
9399                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9400                                 goto yy_find_action;
9401                         }
9402                 break;
9403                 }
9404
9405         default:
9406                 YY_FATAL_ERROR(
9407                         "fatal flex scanner internal error--no action found" );
9408         } /* end of action switch */
9409                 } /* end of scanning one token */
9410 } /* end of surf_parse_lex */
9411
9412 /* yy_get_next_buffer - try to read in a new buffer
9413  *
9414  * Returns a code representing an action:
9415  *      EOB_ACT_LAST_MATCH -
9416  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9417  *      EOB_ACT_END_OF_FILE - end of file
9418  */
9419 static int yy_get_next_buffer (void)
9420 {
9421         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9422         register char *source = (yytext_ptr);
9423         register int number_to_move, i;
9424         int ret_val;
9425
9426         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9427                 YY_FATAL_ERROR(
9428                 "fatal flex scanner internal error--end of buffer missed" );
9429
9430         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9431                 { /* Don't try to fill the buffer, so this is an EOF. */
9432                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9433                         {
9434                         /* We matched a single character, the EOB, so
9435                          * treat this as a final EOF.
9436                          */
9437                         return EOB_ACT_END_OF_FILE;
9438                         }
9439
9440                 else
9441                         {
9442                         /* We matched some text prior to the EOB, first
9443                          * process it.
9444                          */
9445                         return EOB_ACT_LAST_MATCH;
9446                         }
9447                 }
9448
9449         /* Try to read more data. */
9450
9451         /* First move last chars to start of buffer. */
9452         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9453
9454         for ( i = 0; i < number_to_move; ++i )
9455                 *(dest++) = *(source++);
9456
9457         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9458                 /* don't do the read, it's not guaranteed to return an EOF,
9459                  * just force an EOF
9460                  */
9461                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9462
9463         else
9464                 {
9465                         int num_to_read =
9466                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9467
9468                 while ( num_to_read <= 0 )
9469                         { /* Not enough room in the buffer - grow it. */
9470
9471                         /* just a shorter name for the current buffer */
9472                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9473
9474                         int yy_c_buf_p_offset =
9475                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9476
9477                         if ( b->yy_is_our_buffer )
9478                                 {
9479                                 int new_size = b->yy_buf_size * 2;
9480
9481                                 if ( new_size <= 0 )
9482                                         b->yy_buf_size += b->yy_buf_size / 8;
9483                                 else
9484                                         b->yy_buf_size *= 2;
9485
9486                                 b->yy_ch_buf = (char *)
9487                                         /* Include room in for 2 EOB chars. */
9488                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9489                                 }
9490                         else
9491                                 /* Can't grow it, we don't own it. */
9492                                 b->yy_ch_buf = 0;
9493
9494                         if ( ! b->yy_ch_buf )
9495                                 YY_FATAL_ERROR(
9496                                 "fatal error - scanner input buffer overflow" );
9497
9498                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9499
9500                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9501                                                 number_to_move - 1;
9502
9503                         }
9504
9505                 if ( num_to_read > YY_READ_BUF_SIZE )
9506                         num_to_read = YY_READ_BUF_SIZE;
9507
9508                 /* Read in more data. */
9509                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9510                         (yy_n_chars), (size_t) num_to_read );
9511
9512                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9513                 }
9514
9515         if ( (yy_n_chars) == 0 )
9516                 {
9517                 if ( number_to_move == YY_MORE_ADJ )
9518                         {
9519                         ret_val = EOB_ACT_END_OF_FILE;
9520                         surf_parse_restart(surf_parse_in  );
9521                         }
9522
9523                 else
9524                         {
9525                         ret_val = EOB_ACT_LAST_MATCH;
9526                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9527                                 YY_BUFFER_EOF_PENDING;
9528                         }
9529                 }
9530
9531         else
9532                 ret_val = EOB_ACT_CONTINUE_SCAN;
9533
9534         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9535                 /* Extend the array by 50%, plus the number we really need. */
9536                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9537                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9538                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9539                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9540         }
9541
9542         (yy_n_chars) += number_to_move;
9543         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9544         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9545
9546         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9547
9548         return ret_val;
9549 }
9550
9551 /* yy_get_previous_state - get the state just before the EOB char was reached */
9552
9553     static yy_state_type yy_get_previous_state (void)
9554 {
9555         register yy_state_type yy_current_state;
9556         register char *yy_cp;
9557     
9558         yy_current_state = (yy_start);
9559
9560         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9561                 {
9562                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9563                 if ( yy_accept[yy_current_state] )
9564                         {
9565                         (yy_last_accepting_state) = yy_current_state;
9566                         (yy_last_accepting_cpos) = yy_cp;
9567                         }
9568                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9569                         {
9570                         yy_current_state = (int) yy_def[yy_current_state];
9571                         if ( yy_current_state >= 3260 )
9572                                 yy_c = yy_meta[(unsigned int) yy_c];
9573                         }
9574                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9575                 }
9576
9577         return yy_current_state;
9578 }
9579
9580 /* yy_try_NUL_trans - try to make a transition on the NUL character
9581  *
9582  * synopsis
9583  *      next_state = yy_try_NUL_trans( current_state );
9584  */
9585     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9586 {
9587         register int yy_is_jam;
9588         register char *yy_cp = (yy_c_buf_p);
9589
9590         register YY_CHAR yy_c = 1;
9591         if ( yy_accept[yy_current_state] )
9592                 {
9593                 (yy_last_accepting_state) = yy_current_state;
9594                 (yy_last_accepting_cpos) = yy_cp;
9595                 }
9596         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9597                 {
9598                 yy_current_state = (int) yy_def[yy_current_state];
9599                 if ( yy_current_state >= 3260 )
9600                         yy_c = yy_meta[(unsigned int) yy_c];
9601                 }
9602         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9603         yy_is_jam = (yy_current_state == 3259);
9604
9605         return yy_is_jam ? 0 : yy_current_state;
9606 }
9607
9608 #ifndef YY_NO_INPUT
9609 #ifdef __cplusplus
9610     static int yyinput (void)
9611 #else
9612     static int input  (void)
9613 #endif
9614
9615 {
9616         int c;
9617     
9618         *(yy_c_buf_p) = (yy_hold_char);
9619
9620         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9621                 {
9622                 /* yy_c_buf_p now points to the character we want to return.
9623                  * If this occurs *before* the EOB characters, then it's a
9624                  * valid NUL; if not, then we've hit the end of the buffer.
9625                  */
9626                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9627                         /* This was really a NUL. */
9628                         *(yy_c_buf_p) = '\0';
9629
9630                 else
9631                         { /* need more input */
9632                         int offset = (yy_c_buf_p) - (yytext_ptr);
9633                         ++(yy_c_buf_p);
9634
9635                         switch ( yy_get_next_buffer(  ) )
9636                                 {
9637                                 case EOB_ACT_LAST_MATCH:
9638                                         /* This happens because yy_g_n_b()
9639                                          * sees that we've accumulated a
9640                                          * token and flags that we need to
9641                                          * try matching the token before
9642                                          * proceeding.  But for input(),
9643                                          * there's no matching to consider.
9644                                          * So convert the EOB_ACT_LAST_MATCH
9645                                          * to EOB_ACT_END_OF_FILE.
9646                                          */
9647
9648                                         /* Reset buffer status. */
9649                                         surf_parse_restart(surf_parse_in );
9650
9651                                         /*FALLTHROUGH*/
9652
9653                                 case EOB_ACT_END_OF_FILE:
9654                                         {
9655                                         if ( surf_parse_wrap( ) )
9656                                                 return EOF;
9657
9658                                         if ( ! (yy_did_buffer_switch_on_eof) )
9659                                                 YY_NEW_FILE;
9660 #ifdef __cplusplus
9661                                         return yyinput();
9662 #else
9663                                         return input();
9664 #endif
9665                                         }
9666
9667                                 case EOB_ACT_CONTINUE_SCAN:
9668                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9669                                         break;
9670                                 }
9671                         }
9672                 }
9673
9674         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9675         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9676         (yy_hold_char) = *++(yy_c_buf_p);
9677
9678         if ( c == '\n' )
9679                    
9680     surf_parse_lineno++;
9681 ;
9682
9683         return c;
9684 }
9685 #endif  /* ifndef YY_NO_INPUT */
9686
9687 /** Immediately switch to a different input stream.
9688  * @param input_file A readable stream.
9689  * 
9690  * @note This function does not reset the start condition to @c INITIAL .
9691  */
9692     void surf_parse_restart  (FILE * input_file )
9693 {
9694     
9695         if ( ! YY_CURRENT_BUFFER ){
9696         surf_parse_ensure_buffer_stack ();
9697                 YY_CURRENT_BUFFER_LVALUE =
9698             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9699         }
9700
9701         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9702         surf_parse__load_buffer_state( );
9703 }
9704
9705 /** Switch to a different input buffer.
9706  * @param new_buffer The new input buffer.
9707  * 
9708  */
9709     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9710 {
9711     
9712         /* TODO. We should be able to replace this entire function body
9713          * with
9714          *              surf_parse_pop_buffer_state();
9715          *              surf_parse_push_buffer_state(new_buffer);
9716      */
9717         surf_parse_ensure_buffer_stack ();
9718         if ( YY_CURRENT_BUFFER == new_buffer )
9719                 return;
9720
9721         if ( YY_CURRENT_BUFFER )
9722                 {
9723                 /* Flush out information for old buffer. */
9724                 *(yy_c_buf_p) = (yy_hold_char);
9725                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9726                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9727                 }
9728
9729         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9730         surf_parse__load_buffer_state( );
9731
9732         /* We don't actually know whether we did this switch during
9733          * EOF (surf_parse_wrap()) processing, but the only time this flag
9734          * is looked at is after surf_parse_wrap() is called, so it's safe
9735          * to go ahead and always set it.
9736          */
9737         (yy_did_buffer_switch_on_eof) = 1;
9738 }
9739
9740 static void surf_parse__load_buffer_state  (void)
9741 {
9742         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9743         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9744         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9745         (yy_hold_char) = *(yy_c_buf_p);
9746 }
9747
9748 /** Allocate and initialize an input buffer state.
9749  * @param file A readable stream.
9750  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9751  * 
9752  * @return the allocated buffer state.
9753  */
9754     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9755 {
9756         YY_BUFFER_STATE b;
9757     
9758         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9759         if ( ! b )
9760                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9761
9762         b->yy_buf_size = size;
9763
9764         /* yy_ch_buf has to be 2 characters longer than the size given because
9765          * we need to put in 2 end-of-buffer characters.
9766          */
9767         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9768         if ( ! b->yy_ch_buf )
9769                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9770
9771         b->yy_is_our_buffer = 1;
9772
9773         surf_parse__init_buffer(b,file );
9774
9775         return b;
9776 }
9777
9778 /** Destroy the buffer.
9779  * @param b a buffer created with surf_parse__create_buffer()
9780  * 
9781  */
9782     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9783 {
9784     
9785         if ( ! b )
9786                 return;
9787
9788         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9789                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9790
9791         if ( b->yy_is_our_buffer )
9792                 surf_parse_free((void *) b->yy_ch_buf  );
9793
9794         surf_parse_free((void *) b  );
9795 }
9796
9797 #ifndef __cplusplus
9798 extern int isatty (int );
9799 #endif /* __cplusplus */
9800     
9801 /* Initializes or reinitializes a buffer.
9802  * This function is sometimes called more than once on the same buffer,
9803  * such as during a surf_parse_restart() or at EOF.
9804  */
9805     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9806
9807 {
9808         int oerrno = errno;
9809     
9810         surf_parse__flush_buffer(b );
9811
9812         b->yy_input_file = file;
9813         b->yy_fill_buffer = 1;
9814
9815     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9816      * called from surf_parse_restart() or through yy_get_next_buffer.
9817      * In that case, we don't want to reset the lineno or column.
9818      */
9819     if (b != YY_CURRENT_BUFFER){
9820         b->yy_bs_lineno = 1;
9821         b->yy_bs_column = 0;
9822     }
9823
9824         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9825     
9826         errno = oerrno;
9827 }
9828
9829 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9830  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9831  * 
9832  */
9833     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9834 {
9835         if ( ! b )
9836                 return;
9837
9838         b->yy_n_chars = 0;
9839
9840         /* We always need two end-of-buffer characters.  The first causes
9841          * a transition to the end-of-buffer state.  The second causes
9842          * a jam in that state.
9843          */
9844         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9845         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9846
9847         b->yy_buf_pos = &b->yy_ch_buf[0];
9848
9849         b->yy_at_bol = 1;
9850         b->yy_buffer_status = YY_BUFFER_NEW;
9851
9852         if ( b == YY_CURRENT_BUFFER )
9853                 surf_parse__load_buffer_state( );
9854 }
9855
9856 /** Pushes the new state onto the stack. The new state becomes
9857  *  the current state. This function will allocate the stack
9858  *  if necessary.
9859  *  @param new_buffer The new state.
9860  *  
9861  */
9862 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9863 {
9864         if (new_buffer == NULL)
9865                 return;
9866
9867         surf_parse_ensure_buffer_stack();
9868
9869         /* This block is copied from surf_parse__switch_to_buffer. */
9870         if ( YY_CURRENT_BUFFER )
9871                 {
9872                 /* Flush out information for old buffer. */
9873                 *(yy_c_buf_p) = (yy_hold_char);
9874                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9875                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9876                 }
9877
9878         /* Only push if top exists. Otherwise, replace top. */
9879         if (YY_CURRENT_BUFFER)
9880                 (yy_buffer_stack_top)++;
9881         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9882
9883         /* copied from surf_parse__switch_to_buffer. */
9884         surf_parse__load_buffer_state( );
9885         (yy_did_buffer_switch_on_eof) = 1;
9886 }
9887
9888 /** Removes and deletes the top of the stack, if present.
9889  *  The next element becomes the new top.
9890  *  
9891  */
9892 void surf_parse_pop_buffer_state (void)
9893 {
9894         if (!YY_CURRENT_BUFFER)
9895                 return;
9896
9897         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9898         YY_CURRENT_BUFFER_LVALUE = NULL;
9899         if ((yy_buffer_stack_top) > 0)
9900                 --(yy_buffer_stack_top);
9901
9902         if (YY_CURRENT_BUFFER) {
9903                 surf_parse__load_buffer_state( );
9904                 (yy_did_buffer_switch_on_eof) = 1;
9905         }
9906 }
9907
9908 /* Allocates the stack if it does not exist.
9909  *  Guarantees space for at least one push.
9910  */
9911 static void surf_parse_ensure_buffer_stack (void)
9912 {
9913         int num_to_alloc;
9914     
9915         if (!(yy_buffer_stack)) {
9916
9917                 /* First allocation is just for 2 elements, since we don't know if this
9918                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9919                  * immediate realloc on the next call.
9920          */
9921                 num_to_alloc = 1;
9922                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9923                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9924                                                                 );
9925                 if ( ! (yy_buffer_stack) )
9926                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9927                                                                   
9928                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9929                                 
9930                 (yy_buffer_stack_max) = num_to_alloc;
9931                 (yy_buffer_stack_top) = 0;
9932                 return;
9933         }
9934
9935         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9936
9937                 /* Increase the buffer to prepare for a possible push. */
9938                 int grow_size = 8 /* arbitrary grow size */;
9939
9940                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9941                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9942                                                                 ((yy_buffer_stack),
9943                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9944                                                                 );
9945                 if ( ! (yy_buffer_stack) )
9946                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9947
9948                 /* zero only the new slots.*/
9949                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9950                 (yy_buffer_stack_max) = num_to_alloc;
9951         }
9952 }
9953
9954 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9955  * @param base the character buffer
9956  * @param size the size in bytes of the character buffer
9957  * 
9958  * @return the newly allocated buffer state object. 
9959  */
9960 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9961 {
9962         YY_BUFFER_STATE b;
9963     
9964         if ( size < 2 ||
9965              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9966              base[size-1] != YY_END_OF_BUFFER_CHAR )
9967                 /* They forgot to leave room for the EOB's. */
9968                 return 0;
9969
9970         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9971         if ( ! b )
9972                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9973
9974         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
9975         b->yy_buf_pos = b->yy_ch_buf = base;
9976         b->yy_is_our_buffer = 0;
9977         b->yy_input_file = 0;
9978         b->yy_n_chars = b->yy_buf_size;
9979         b->yy_is_interactive = 0;
9980         b->yy_at_bol = 1;
9981         b->yy_fill_buffer = 0;
9982         b->yy_buffer_status = YY_BUFFER_NEW;
9983
9984         surf_parse__switch_to_buffer(b  );
9985
9986         return b;
9987 }
9988
9989 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
9990  * scan from a @e copy of @a str.
9991  * @param yystr a NUL-terminated string to scan
9992  * 
9993  * @return the newly allocated buffer state object.
9994  * @note If you want to scan bytes that may contain NUL values, then use
9995  *       surf_parse__scan_bytes() instead.
9996  */
9997 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
9998 {
9999     
10000         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10001 }
10002
10003 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10004  * scan from a @e copy of @a bytes.
10005  * @param yybytes the byte buffer to scan
10006  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10007  * 
10008  * @return the newly allocated buffer state object.
10009  */
10010 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
10011 {
10012         YY_BUFFER_STATE b;
10013         char *buf;
10014         yy_size_t n;
10015         int i;
10016     
10017         /* Get memory for full buffer, including space for trailing EOB's. */
10018         n = _yybytes_len + 2;
10019         buf = (char *) surf_parse_alloc(n  );
10020         if ( ! buf )
10021                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10022
10023         for ( i = 0; i < _yybytes_len; ++i )
10024                 buf[i] = yybytes[i];
10025
10026         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10027
10028         b = surf_parse__scan_buffer(buf,n );
10029         if ( ! b )
10030                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10031
10032         /* It's okay to grow etc. this buffer, and we should throw it
10033          * away when we're done.
10034          */
10035         b->yy_is_our_buffer = 1;
10036
10037         return b;
10038 }
10039
10040     static void yy_push_state (int  new_state )
10041 {
10042         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10043                 {
10044                 yy_size_t new_size;
10045
10046                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10047                 new_size = (yy_start_stack_depth) * sizeof( int );
10048
10049                 if ( ! (yy_start_stack) )
10050                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10051
10052                 else
10053                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10054
10055                 if ( ! (yy_start_stack) )
10056                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10057                 }
10058
10059         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10060
10061         BEGIN(new_state);
10062 }
10063
10064     static void yy_pop_state  (void)
10065 {
10066         if ( --(yy_start_stack_ptr) < 0 )
10067                 YY_FATAL_ERROR( "start-condition stack underflow" );
10068
10069         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10070 }
10071
10072 #ifndef YY_EXIT_FAILURE
10073 #define YY_EXIT_FAILURE 2
10074 #endif
10075
10076 static void yy_fatal_error (yyconst char* msg )
10077 {
10078         (void) fprintf( stderr, "%s\n", msg );
10079         exit( YY_EXIT_FAILURE );
10080 }
10081
10082 /* Redefine yyless() so it works in section 3 code. */
10083
10084 #undef yyless
10085 #define yyless(n) \
10086         do \
10087                 { \
10088                 /* Undo effects of setting up surf_parse_text. */ \
10089         int yyless_macro_arg = (n); \
10090         YY_LESS_LINENO(yyless_macro_arg);\
10091                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10092                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10093                 (yy_hold_char) = *(yy_c_buf_p); \
10094                 *(yy_c_buf_p) = '\0'; \
10095                 surf_parse_leng = yyless_macro_arg; \
10096                 } \
10097         while ( 0 )
10098
10099 /* Accessor  methods (get/set functions) to struct members. */
10100
10101 /** Get the current line number.
10102  * 
10103  */
10104 int surf_parse_get_lineno  (void)
10105 {
10106         
10107     return surf_parse_lineno;
10108 }
10109
10110 /** Get the input stream.
10111  * 
10112  */
10113 FILE *surf_parse_get_in  (void)
10114 {
10115         return surf_parse_in;
10116 }
10117
10118 /** Get the output stream.
10119  * 
10120  */
10121 FILE *surf_parse_get_out  (void)
10122 {
10123         return surf_parse_out;
10124 }
10125
10126 /** Get the length of the current token.
10127  * 
10128  */
10129 int surf_parse_get_leng  (void)
10130 {
10131         return surf_parse_leng;
10132 }
10133
10134 /** Get the current token.
10135  * 
10136  */
10137
10138 char *surf_parse_get_text  (void)
10139 {
10140         return surf_parse_text;
10141 }
10142
10143 /** Set the current line number.
10144  * @param line_number
10145  * 
10146  */
10147 void surf_parse_set_lineno (int  line_number )
10148 {
10149     
10150     surf_parse_lineno = line_number;
10151 }
10152
10153 /** Set the input stream. This does not discard the current
10154  * input buffer.
10155  * @param in_str A readable stream.
10156  * 
10157  * @see surf_parse__switch_to_buffer
10158  */
10159 void surf_parse_set_in (FILE *  in_str )
10160 {
10161         surf_parse_in = in_str ;
10162 }
10163
10164 void surf_parse_set_out (FILE *  out_str )
10165 {
10166         surf_parse_out = out_str ;
10167 }
10168
10169 int surf_parse_get_debug  (void)
10170 {
10171         return surf_parse__flex_debug;
10172 }
10173
10174 void surf_parse_set_debug (int  bdebug )
10175 {
10176         surf_parse__flex_debug = bdebug ;
10177 }
10178
10179 static int yy_init_globals (void)
10180 {
10181         /* Initialization is the same as for the non-reentrant scanner.
10182      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10183      */
10184
10185     /* We do not touch surf_parse_lineno unless the option is enabled. */
10186     surf_parse_lineno =  1;
10187     
10188     (yy_buffer_stack) = 0;
10189     (yy_buffer_stack_top) = 0;
10190     (yy_buffer_stack_max) = 0;
10191     (yy_c_buf_p) = (char *) 0;
10192     (yy_init) = 0;
10193     (yy_start) = 0;
10194
10195     (yy_start_stack_ptr) = 0;
10196     (yy_start_stack_depth) = 0;
10197     (yy_start_stack) =  NULL;
10198
10199 /* Defined in main.c */
10200 #ifdef YY_STDINIT
10201     surf_parse_in = stdin;
10202     surf_parse_out = stdout;
10203 #else
10204     surf_parse_in = (FILE *) 0;
10205     surf_parse_out = (FILE *) 0;
10206 #endif
10207
10208     /* For future reference: Set errno on error, since we are called by
10209      * surf_parse_lex_init()
10210      */
10211     return 0;
10212 }
10213
10214 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10215 int surf_parse_lex_destroy  (void)
10216 {
10217     
10218     /* Pop the buffer stack, destroying each element. */
10219         while(YY_CURRENT_BUFFER){
10220                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10221                 YY_CURRENT_BUFFER_LVALUE = NULL;
10222                 surf_parse_pop_buffer_state();
10223         }
10224
10225         /* Destroy the stack itself. */
10226         surf_parse_free((yy_buffer_stack) );
10227         (yy_buffer_stack) = NULL;
10228
10229     /* Destroy the start condition stack. */
10230         surf_parse_free((yy_start_stack)  );
10231         (yy_start_stack) = NULL;
10232
10233     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10234      * surf_parse_lex() is called, initialization will occur. */
10235     yy_init_globals( );
10236
10237     return 0;
10238 }
10239
10240 /*
10241  * Internal utility routines.
10242  */
10243
10244 #ifndef yytext_ptr
10245 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10246 {
10247         register int i;
10248         for ( i = 0; i < n; ++i )
10249                 s1[i] = s2[i];
10250 }
10251 #endif
10252
10253 #ifdef YY_NEED_STRLEN
10254 static int yy_flex_strlen (yyconst char * s )
10255 {
10256         register int n;
10257         for ( n = 0; s[n]; ++n )
10258                 ;
10259
10260         return n;
10261 }
10262 #endif
10263
10264 void *surf_parse_alloc (yy_size_t  size )
10265 {
10266         return (void *) malloc( size );
10267 }
10268
10269 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10270 {
10271         /* The cast to (char *) in the following accommodates both
10272          * implementations that use char* generic pointers, and those
10273          * that use void* generic pointers.  It works with the latter
10274          * because both ANSI C and C++ allow castless assignment from
10275          * any pointer type to void*, and deal with argument conversions
10276          * as though doing an assignment.
10277          */
10278         return (void *) realloc( (char *) ptr, size );
10279 }
10280
10281 void surf_parse_free (void * ptr )
10282 {
10283         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10284 }
10285
10286 #define YYTABLES_NAME "yytables"
10287
10288 /* Element context stack lookup. */
10289 int surfxml_element_context(int i)
10290 {
10291   return (0<i && i<yy_start_stack_depth
10292           ? yy_start_stack[yy_start_stack_ptr - i]
10293           : 0);
10294 }
10295
10296 #ifdef FLEX_DEBUG
10297 void print_yy_stack(char* fmt, ...)
10298 {
10299   int i = 0; va_list ap; va_start(ap, fmt);
10300   vfprintf(stderr, fmt, ap);
10301   if (surfxml_statenames) {
10302       for (i=1; i<yy_start_stack_ptr; i++) {
10303           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10304       }
10305       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10306   }
10307   va_end(ap);
10308 }
10309
10310 void print_surfxml_bufferstack()
10311 {
10312     int i;
10313     fputs("Buffer: ", stderr);
10314     for (i = 0; i < blimit; i++) {
10315        if ( surfxml_bufferstack[i] == '\377' ) break;
10316          putc(surfxml_bufferstack[i], stderr);
10317     }
10318     putc('\n', stderr);
10319 }
10320
10321 static void debug_enter(int state, const char* statename) {
10322   yy_push_state(state);
10323   if (surf_parse__flex_debug) {
10324        print_yy_stack("--ENTER(%s) : ",statename);
10325        print_surfxml_bufferstack();
10326   }
10327 }
10328
10329 static void debug_leave(void) {
10330     if (surf_parse__flex_debug) {
10331         print_yy_stack("--LEAVE : ");
10332         print_surfxml_bufferstack();
10333     }
10334   yy_pop_state();
10335 }
10336
10337 static void debug_set(int state, const char* statename) {
10338   BEGIN(state);
10339   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10340 }
10341 #endif
10342
10343 static void cleanup(void)
10344 {
10345     if (surfxml_statenames) {
10346         free(surfxml_statenames);
10347         surfxml_statenames = NULL;
10348     }
10349     free(surfxml_bufferstack);
10350     surfxml_bufferstack = NULL;
10351
10352     free(indexstack);
10353     indexstack = NULL;
10354 }
10355
10356 static int fail(const char* fmt, ...)
10357 {
10358     int chars_left, used;
10359     va_list ap; va_start(ap, fmt);
10360 #ifdef FLEXML_yylineno
10361     used = sprintf(flexml_err_msg,
10362                    "Invalid XML (XML input line %d, state %d): ",
10363                    surf_parse_lineno, YY_START);
10364 #else
10365     used = sprintf(flexml_err_msg,
10366                    "Invalid XML (state %d): ",
10367                    YY_START);
10368 #endif
10369     chars_left = flexml_max_err_msg_size - used - 1;
10370     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10371     va_end(ap);
10372
10373 #ifndef FLEXML_quiet_parser
10374     /* print directly to sdterr */
10375     fprintf(stderr, "%s\n", flexml_err_msg);
10376     flexml_err_msg[0] = '\0';
10377 #endif
10378
10379     cleanup();
10380
10381     return 1;
10382 }
10383