Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
98336cbdfe9aa48dca0d66d3f6d2af5caca5eb67
[simgrid.git] / src / surf / xml / simgrid_dtd.c
1
2 #define  YY_INT_ALIGNED short int
3
4 /* A lexical scanner generated by flex */
5
6 #define yy_create_buffer surf_parse__create_buffer
7 #define yy_delete_buffer surf_parse__delete_buffer
8 #define yy_flex_debug surf_parse__flex_debug
9 #define yy_init_buffer surf_parse__init_buffer
10 #define yy_flush_buffer surf_parse__flush_buffer
11 #define yy_load_buffer_state surf_parse__load_buffer_state
12 #define yy_switch_to_buffer surf_parse__switch_to_buffer
13 #define yyin surf_parse_in
14 #define yyleng surf_parse_leng
15 #define yylex surf_parse_lex
16 #define yylineno surf_parse_lineno
17 #define yyout surf_parse_out
18 #define yyrestart surf_parse_restart
19 #define yytext surf_parse_text
20 #define yywrap surf_parse_wrap
21 #define yyalloc surf_parse_alloc
22 #define yyrealloc surf_parse_realloc
23 #define yyfree surf_parse_free
24
25 #define FLEX_SCANNER
26 #define YY_FLEX_MAJOR_VERSION 2
27 #define YY_FLEX_MINOR_VERSION 6
28 #define YY_FLEX_SUBMINOR_VERSION 1
29 #if YY_FLEX_SUBMINOR_VERSION > 0
30 #define FLEX_BETA
31 #endif
32
33 /* First, we deal with  platform-specific or compiler-specific issues. */
34
35 /* begin standard C headers. */
36 #include <stdio.h>
37 #include <string.h>
38 #include <errno.h>
39 #include <stdlib.h>
40
41 /* end standard C headers. */
42
43 /* flex integer type definitions */
44
45 #ifndef FLEXINT_H
46 #define FLEXINT_H
47
48 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
49
50 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
51
52 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
53  * if you want the limit (max/min) macros for int types. 
54  */
55 #ifndef __STDC_LIMIT_MACROS
56 #define __STDC_LIMIT_MACROS 1
57 #endif
58
59 #include <inttypes.h>
60 typedef int8_t flex_int8_t;
61 typedef uint8_t flex_uint8_t;
62 typedef int16_t flex_int16_t;
63 typedef uint16_t flex_uint16_t;
64 typedef int32_t flex_int32_t;
65 typedef uint32_t flex_uint32_t;
66 #else
67 typedef signed char flex_int8_t;
68 typedef short int flex_int16_t;
69 typedef int flex_int32_t;
70 typedef unsigned char flex_uint8_t; 
71 typedef unsigned short int flex_uint16_t;
72 typedef unsigned int flex_uint32_t;
73
74 /* Limits of integral types. */
75 #ifndef INT8_MIN
76 #define INT8_MIN               (-128)
77 #endif
78 #ifndef INT16_MIN
79 #define INT16_MIN              (-32767-1)
80 #endif
81 #ifndef INT32_MIN
82 #define INT32_MIN              (-2147483647-1)
83 #endif
84 #ifndef INT8_MAX
85 #define INT8_MAX               (127)
86 #endif
87 #ifndef INT16_MAX
88 #define INT16_MAX              (32767)
89 #endif
90 #ifndef INT32_MAX
91 #define INT32_MAX              (2147483647)
92 #endif
93 #ifndef UINT8_MAX
94 #define UINT8_MAX              (255U)
95 #endif
96 #ifndef UINT16_MAX
97 #define UINT16_MAX             (65535U)
98 #endif
99 #ifndef UINT32_MAX
100 #define UINT32_MAX             (4294967295U)
101 #endif
102
103 #endif /* ! C99 */
104
105 #endif /* ! FLEXINT_H */
106
107 /* TODO: this is always defined, so inline it */
108 #define yyconst const
109
110 #if defined(__GNUC__) && __GNUC__ >= 3
111 #define yynoreturn __attribute__((__noreturn__))
112 #else
113 #define yynoreturn
114 #endif
115
116 /* Returned upon end-of-file. */
117 #define YY_NULL 0
118
119 /* Promotes a possibly negative, possibly signed char to an unsigned
120  * integer for use as an array index.  If the signed char is negative,
121  * we want to instead treat it as an 8-bit unsigned char, hence the
122  * double cast.
123  */
124 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
125
126 /* Enter a start condition.  This macro really ought to take a parameter,
127  * but we do it the disgusting crufty way forced on us by the ()-less
128  * definition of BEGIN.
129  */
130 #define BEGIN (yy_start) = 1 + 2 *
131
132 /* Translate the current start state into a value that can be later handed
133  * to BEGIN to return to the state.  The YYSTATE alias is for lex
134  * compatibility.
135  */
136 #define YY_START (((yy_start) - 1) / 2)
137 #define YYSTATE YY_START
138
139 /* Action number for EOF rule of a given start state. */
140 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
141
142 /* Special action meaning "start processing a new file". */
143 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
144
145 #define YY_END_OF_BUFFER_CHAR 0
146
147 /* Size of default input buffer. */
148 #ifndef YY_BUF_SIZE
149 #ifdef __ia64__
150 /* On IA-64, the buffer size is 16k, not 8k.
151  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
152  * Ditto for the __ia64__ case accordingly.
153  */
154 #define YY_BUF_SIZE 32768
155 #else
156 #define YY_BUF_SIZE 16384
157 #endif /* __ia64__ */
158 #endif
159
160 /* The state buf must be large enough to hold one state per character in the main buffer.
161  */
162 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
163
164 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
165 #define YY_TYPEDEF_YY_BUFFER_STATE
166 typedef struct yy_buffer_state *YY_BUFFER_STATE;
167 #endif
168
169 #ifndef YY_TYPEDEF_YY_SIZE_T
170 #define YY_TYPEDEF_YY_SIZE_T
171 typedef size_t yy_size_t;
172 #endif
173
174 extern unsigned int surf_parse_leng;
175
176 extern FILE *surf_parse_in, *surf_parse_out;
177
178 #define EOB_ACT_CONTINUE_SCAN 0
179 #define EOB_ACT_END_OF_FILE 1
180 #define EOB_ACT_LAST_MATCH 2
181
182     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
183      *       access to the local variable yy_act. Since yyless() is a macro, it would break
184      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex.
185      *       One obvious solution it to make yy_act a global. I tried that, and saw
186      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
187      *       normally declared as a variable-- so it is not worth it.
188      */
189     #define  YY_LESS_LINENO(n) \
190             do { \
191                 unsigned int yyl;\
192                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
193                     if ( surf_parse_text[yyl] == '\n' )\
194                         --surf_parse_lineno;\
195             }while(0)
196     #define YY_LINENO_REWIND_TO(dst) \
197             do {\
198                 const char *p;\
199                 for ( p = yy_cp-1; p >= (dst); --p)\
200                     if ( *p == '\n' )\
201                         --surf_parse_lineno;\
202             }while(0)
203     
204 /* Return all but the first "n" matched characters back to the input stream. */
205 #define yyless(n) \
206         do \
207                 { \
208                 /* Undo effects of setting up surf_parse_text. */ \
209         int yyless_macro_arg = (n); \
210         YY_LESS_LINENO(yyless_macro_arg);\
211                 *yy_cp = (yy_hold_char); \
212                 YY_RESTORE_YY_MORE_OFFSET \
213                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
214                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
215                 } \
216         while ( 0 )
217
218 #define unput(c) yyunput( c, (yytext_ptr)  )
219
220 #ifndef YY_STRUCT_YY_BUFFER_STATE
221 #define YY_STRUCT_YY_BUFFER_STATE
222 struct yy_buffer_state
223         {
224         FILE *yy_input_file;
225
226         char *yy_ch_buf;                /* input buffer */
227         char *yy_buf_pos;               /* current position in input buffer */
228
229         /* Size of input buffer in bytes, not including room for EOB
230          * characters.
231          */
232         int yy_buf_size;
233
234         /* Number of characters read into yy_ch_buf, not including EOB
235          * characters.
236          */
237         int yy_n_chars;
238
239         /* Whether we "own" the buffer - i.e., we know we created it,
240          * and can realloc() it to grow it, and should free() it to
241          * delete it.
242          */
243         int yy_is_our_buffer;
244
245         /* Whether this is an "interactive" input source; if so, and
246          * if we're using stdio for input, then we want to use getc()
247          * instead of fread(), to make sure we stop fetching input after
248          * each newline.
249          */
250         int yy_is_interactive;
251
252         /* Whether we're considered to be at the beginning of a line.
253          * If so, '^' rules will be active on the next match, otherwise
254          * not.
255          */
256         int yy_at_bol;
257
258     int yy_bs_lineno; /**< The line count. */
259     int yy_bs_column; /**< The column count. */
260
261         /* Whether to try to fill the input buffer when we reach the
262          * end of it.
263          */
264         int yy_fill_buffer;
265
266         int yy_buffer_status;
267
268 #define YY_BUFFER_NEW 0
269 #define YY_BUFFER_NORMAL 1
270         /* When an EOF's been seen but there's still some text to process
271          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
272          * shouldn't try reading from the input source any more.  We might
273          * still have a bunch of tokens to match, though, because of
274          * possible backing-up.
275          *
276          * When we actually see the EOF, we change the status to "new"
277          * (via surf_parse_restart()), so that the user can continue scanning by
278          * just pointing surf_parse_in at a new input file.
279          */
280 #define YY_BUFFER_EOF_PENDING 2
281
282         };
283 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
284
285 /* Stack of input buffers. */
286 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
287 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
288 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
289
290 /* We provide macros for accessing buffer states in case in the
291  * future we want to put the buffer states in a more general
292  * "scanner state".
293  *
294  * Returns the top of the stack, or NULL.
295  */
296 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
297                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
298                           : NULL)
299
300 /* Same as previous macro, but useful when we know that the buffer stack is not
301  * NULL or when we need an lvalue. For internal use only.
302  */
303 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
304
305 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
306 static char yy_hold_char;
307 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
308 unsigned int surf_parse_leng;
309
310 /* Points to current character in buffer. */
311 static char *yy_c_buf_p = NULL;
312 static int yy_init = 0;         /* whether we need to initialize */
313 static int yy_start = 0;        /* start state number */
314
315 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
316  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
317  */
318 static int yy_did_buffer_switch_on_eof;
319
320 void surf_parse_restart (FILE *input_file  );
321 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
322 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
323 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
324 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
325 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
326 void surf_parse_pop_buffer_state (void );
327
328 static void surf_parse_ensure_buffer_stack (void );
329 static void surf_parse__load_buffer_state (void );
330 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
331
332 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
333
334 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
335 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
336 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
337
338 void *surf_parse_alloc (yy_size_t  );
339 void *surf_parse_realloc (void *,yy_size_t  );
340 void surf_parse_free (void *  );
341
342 #define yy_new_buffer surf_parse__create_buffer
343
344 #define yy_set_interactive(is_interactive) \
345         { \
346         if ( ! YY_CURRENT_BUFFER ){ \
347         surf_parse_ensure_buffer_stack (); \
348                 YY_CURRENT_BUFFER_LVALUE =    \
349             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
350         } \
351         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
352         }
353
354 #define yy_set_bol(at_bol) \
355         { \
356         if ( ! YY_CURRENT_BUFFER ){\
357         surf_parse_ensure_buffer_stack (); \
358                 YY_CURRENT_BUFFER_LVALUE =    \
359             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
360         } \
361         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
362         }
363
364 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
365
366 /* Begin user sect3 */
367
368 #define surf_parse_wrap() (/*CONSTCOND*/1)
369 #define YY_SKIP_YYWRAP
370
371 typedef unsigned char YY_CHAR;
372
373 FILE *surf_parse_in = NULL, *surf_parse_out = NULL;
374
375 typedef int yy_state_type;
376
377 extern int surf_parse_lineno;
378
379 int surf_parse_lineno = 1;
380
381 extern char *surf_parse_text;
382 #ifdef yytext_ptr
383 #undef yytext_ptr
384 #endif
385 #define yytext_ptr surf_parse_text
386
387 static yy_state_type yy_get_previous_state (void );
388 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
389 static int yy_get_next_buffer (void );
390 static void yynoreturn yy_fatal_error (yyconst char* msg  );
391
392 /* Done after the current pattern has been matched and before the
393  * corresponding action - sets up surf_parse_text.
394  */
395 #define YY_DO_BEFORE_ACTION \
396         (yytext_ptr) = yy_bp; \
397         surf_parse_leng = (int) (yy_cp - yy_bp); \
398         (yy_hold_char) = *yy_cp; \
399         *yy_cp = '\0'; \
400         (yy_c_buf_p) = yy_cp;
401
402 #define YY_NUM_RULES 651
403 #define YY_END_OF_BUFFER 652
404 /* This struct is not used in this scanner,
405    but its presence is necessary. */
406 struct yy_trans_info
407         {
408         flex_int32_t yy_verify;
409         flex_int32_t yy_nxt;
410         };
411 static yyconst flex_int16_t yy_accept[3906] =
412     {   0,
413         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
414         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
415         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
416         0,    0,    0,    0,    0,    0,    0,    0,    0,    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
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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
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
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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
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       652,  650,   15,   10,   10,   15,   15,  630,   10,  630,
445
446         5,    6,    5,    8,    9,    8,  646,  638,  639,  647,
447       644,  647,  645,  649,  638,  639,  649,   42,   10,   42,
448        42,   42,   40,   42,   42,   46,   10,   46,   46,  650,
449        46,  650,  650,   46,   63,   10,   63,   63,   63,   61,
450        63,   63,   63,   67,   10,   67,  650,   67,   84,   10,
451        84,   84,   84,   82,   84,   84,   84,   84,   84,   88,
452        10,   88,  650,   88,   95,   10,   95,   95,   95,   93,
453        95,   99,   10,   99,  110,   10,  110,  110,  110,  108,
454       110,  110,  110,  114,   10,  114,  127,   10,  127,  127,
455       127,  125,  127,  127,  127,  131,   10,  131,  131,  140,
456
457        10,  140,  140,  140,  138,  140,  140,  144,   10,  144,
458       144,  157,   10,  157,  157,  157,  155,  157,  157,  157,
459       161,   10,  161,  161,  180,   10,  180,  180,  180,  178,
460       180,  180,  180,  180,  180,  180,  184,   10,  184,  237,
461        10,  237,  237,  237,  235,  237,  237,  237,  237,  237,
462       237,  237,  237,  241,   10,  241,  241,  248,   10,  248,
463       248,  248,  246,  248,  252,   10,  252,  252,  271,   10,
464       271,  271,  271,  269,  271,  271,  271,  271,  271,  275,
465        10,  275,  650,  275,  286,   10,  286,  286,  286,  284,
466       286,  286,  286,  290,   10,  290,  297,   10,  297,  297,
467
468       297,  295,  297,  301,   10,  301,  650,  301,  324,   10,
469       324,  324,  324,  322,  324,  324,  324,  324,  328,   10,
470       328,  328,  341,   10,  341,  341,  341,  339,  341,  341,
471       345,   10,  345,  354,   10,  354,  354,  354,  352,  354,
472       354,  358,   10,  358,  367,   10,  367,  367,  367,  365,
473       367,  367,  371,   10,  371,  392,   10,  392,  392,  392,
474       390,  392,  392,  392,  392,  392,  392,  396,   10,  396,
475       650,  403,   10,  403,  403,  403,  401,  403,  407,   10,
476       407,  407,  650,  407,  650,  407,  424,   10,  424,  424,
477       424,  422,  424,  424,  424,  424,  424,  428,   10,  428,
478
479       428,  437,   10,  437,  437,  437,  435,  437,  437,  441,
480        10,  441,  468,   10,  468,  468,  468,  466,  468,  468,
481       468,  468,  468,  472,   10,  472,  485,   10,  485,  485,
482       485,  483,  485,  485,  489,   10,  489,  489,  498,   10,
483       498,  498,  498,  496,  498,  498,  502,   10,  502,  517,
484        10,  517,  517,  517,  515,  517,  517,  517,  517,  521,
485        10,  521,  521,  536,   10,  536,  536,  536,  534,  536,
486       536,  536,  536,  540,   10,  540,  650,  540,  551,   10,
487       551,  551,  551,  549,  551,  551,  551,  647,  646,  573,
488        10,  573,  573,  573,  571,  573,  573,  573,  577,   10,
489
490       577,  604,   10,  604,  604,  604,  602,  604,  604,  608,
491        10,  608,  608,  608,  608,  625,   10,  625,  625,  625,
492       623,  625,  625,  625,  629,   10,  629,  629,   10,    0,
493         2,    2,    0,    4,    7,  641,  640,    0,    0,    0,
494         0,    0,    0,   41,   43,   43,   43,    0,    0,    0,
495         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
496         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
497         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498        62,   64,   64,   64,   64,   64,    0,    0,   83,   85,
499        85,   85,   85,   85,   85,    0,    0,   94,   96,   96,
500
501         0,  109,  111,  111,  111,  111,    0,  126,  128,  128,
502       128,  128,    0,  139,  141,  141,  141,    0,  156,  158,
503       158,  158,  158,    0,  179,  181,  181,  181,  181,  181,
504       181,  181,  181,    0,  236,  238,  238,  238,  238,  238,
505       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
506         0,  247,  249,  249,    0,  270,  272,  272,  272,  272,
507       272,  272,  272,    0,    0,  285,  287,  287,  287,  287,
508         0,  296,  298,  298,    0,    0,    0,  323,  325,  325,
509       325,  325,  325,  325,    0,  340,  342,  342,  342,    0,
510       353,  355,  355,  355,    0,  366,  368,  368,  368,    0,
511
512       391,  393,  393,  393,  393,  393,  393,  393,  393,    0,
513         0,  402,  404,  404,    0,    0,    0,    0,    0,    0,
514         0,  423,  425,  425,  425,  425,  425,  425,    0,  436,
515       438,  438,  438,    0,  467,  469,  469,  469,  469,  469,
516       469,  469,  469,  469,    0,  484,  486,  486,  486,  486,
517         0,  497,  499,  499,  499,    0,  516,  518,  518,  518,
518       518,  518,    0,  535,  537,  537,  537,  537,  537,    0,
519         0,  550,  552,  552,  552,  552,    0,    0,    0,  572,
520       574,  574,  574,  574,    0,  603,  605,  605,  605,    0,
521       624,  626,  626,  626,  626,  626,    0,    0,    0,    0,
522
523         0,    3,    0,    0,    0,    0,    0,    0,    0,  648,
524         0,    0,   43,    0,    0,   17,    0,    0,    0,    0,
525         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
526         0,    0,    0,    0,    0,    0,   16,    0,    0,    0,
527         0,    0,    0,    0,    0,    0,    0,    0,    0,   16,
528         0,    0,    0,   64,   64,   64,   64,    0,    0,    0,
529        85,   85,   85,   85,   85,    0,    0,    0,   96,    0,
530         0,  111,    0,    0,  111,    0,    0,  128,  128,  128,
531         0,    0,  141,  141,    0,    0,  158,  158,  158,    0,
532         0,    0,    0,    0,    0,  181,  181,  181,  181,  181,
533
534         0,    0,  238,    0,    0,  238,    0,    0,  238,  238,
535       238,  238,  238,  238,  238,  238,  238,  238,    0,    0,
536         0,    0,    0,    0,  272,  272,  272,    0,    0,  272,
537       272,  272,    0,    0,    0,  287,    0,    0,    0,    0,
538         0,    0,  298,    0,    0,   17,    0,  325,    0,    0,
539       325,  325,  325,    0,    0,  342,    0,    0,    0,    0,
540         0,    0,  355,    0,    0,  368,  368,    0,    0,  393,
541       393,  393,    0,    0,  393,  393,  393,    0,    0,    0,
542       404,    0,    0,    0,    0,    0,    0,  425,  425,  425,
543       425,  425,    0,    0,    0,    0,  438,    0,    0,  469,
544
545         0,    0,  469,  469,  469,  469,  469,  469,    0,    0,
546       486,  486,  486,    0,    0,  499,    0,    0,    0,    0,
547       518,  518,    0,    0,  518,    0,    0,  537,    0,    0,
548       537,  537,    0,    0,    0,  552,    0,    0,  552,    0,
549         0,    0,  643,  574,  574,  574,    0,    0,    0,    0,
550       605,    0,    0,  626,  626,  626,  626,    0,    0,    0,
551        14,    1,    0,    0,  636,    0,    0,    0,  633,  632,
552         0,    0,   19,   18,   43,    0,    0,   45,    0,   17,
553         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
554         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
555
556         0,    0,   16,    0,    0,    0,    0,    0,    0,    0,
557         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
558         0,   64,   64,    0,    0,   64,    0,    0,   66,    0,
559         0,   85,   85,   85,   85,   85,    0,    0,   87,    0,
560         0,   96,    0,    0,   98,    0,  111,    0,  105,  104,
561       111,    0,    0,  113,    0,    0,    0,  128,  128,    0,
562         0,    0,    0,  130,    0,    0,    0,    0,    0,    0,
563         0,  143,    0,    0,    0,  158,  158,    0,    0,    0,
564         0,  160,    0,    0,  165,  164,    0,  167,  166,    0,
565         0,  181,  181,  181,  181,    0,    0,  183,    0,  238,
566
567       238,  238,    0,  196,  195,  238,    0,  200,  199,    0,
568         0,  238,  238,  238,  238,  238,  238,  238,  238,  238,
569         0,    0,  240,    0,    0,  245,  244,    0,    0,  251,
570         0,  272,  272,  272,    0,  262,  261,  272,  272,  272,
571         0,    0,  274,    0,    0,  287,    0,  281,  280,    0,
572       283,  282,    0,    0,  289,    0,  298,    0,    0,  300,
573         0,    0,  325,    0,  309,  308,  325,  325,  325,    0,
574         0,  327,    0,  342,    0,  338,  337,    0,    0,  344,
575         0,    0,  349,  348,  355,    0,    0,  357,    0,  368,
576       368,    0,    0,  370,    0,  393,  393,  393,  393,    0,
577
578       383,  382,    0,    0,  393,  393,    0,    0,  395,    0,
579         0,  404,    0,    0,  406,    0,    0,    0,    0,    0,
580       425,  425,  425,  425,  425,    0,    0,  427,    0,    0,
581       432,  431,  438,    0,    0,  440,    0,  469,    0,  453,
582       452,    0,    0,  469,    0,    0,  469,  469,  469,    0,
583         0,  471,    0,    0,    0,    0,    0,  486,    0,    0,
584       488,    0,  499,    0,  495,  494,    0,    0,  501,    0,
585       518,  518,    0,  512,  511,  518,    0,    0,  520,    0,
586       537,    0,  529,  528,  537,  537,    0,    0,  539,    0,
587         0,  552,    0,  546,  545,  552,    0,    0,    0,  554,
588
589         0,  574,  574,  574,    0,    0,  576,    0,    0,  581,
590       580,  605,    0,    0,  607,    0,    0,    0,  626,  626,
591         0,    0,  626,    0,    0,  628,    0,    0,    0,  637,
592       631,    0,    0,   43,    0,   44,    0,    0,    0,    0,
593         0,    0,    0,    0,  254,    0,  303,    0,    0,  373,
594         0,    0,  430,    0,    0,    0,    0,  579,  429,    0,
595         0,    0,    0,    0,  253,    0,  302,  372,    0,    0,
596         0,  578,    0,  578,    0,    0,   50,   49,   64,   64,
597         0,   56,   55,   64,    0,  302,   85,    0,    0,   85,
598        85,   85,    0,    0,   96,    0,  111,  111,    0,    0,
599
600       118,  117,  128,  128,    0,  124,  123,    0,    0,  135,
601       134,    0,  137,  136,    0,    0,  148,  147,  158,  158,
602         0,  154,  153,    0,    0,  169,  168,  181,  181,  181,
603       181,    0,  238,  238,  238,    0,    0,    0,  202,  201,
604       238,  238,  238,  238,  238,  238,  238,  238,  238,  238,
605         0,    0,  272,  272,    0,    0,  272,  272,  272,    0,
606         0,    0,    0,    0,    0,    0,    0,  579,  325,  325,
607       325,  325,    0,  342,    0,  355,    0,    0,    0,  368,
608         0,  393,  393,  393,  393,    0,  385,  384,  393,  393,
609         0,    0,  404,    0,    0,    0,    0,    0,  425,    0,
610
611         0,  425,  425,  425,    0,  438,    0,  469,    0,  455,
612       454,    0,    0,    0,  459,  458,  469,    0,    0,  469,
613         0,    0,  476,  475,    0,  478,  477,  486,    0,  499,
614         0,  518,  518,  518,    0,  537,  537,    0,    0,    0,
615         0,    0,    0,  552,    0,    0,  574,    0,    0,  574,
616         0,  605,    0,    0,  612,  611,  626,  626,    0,  618,
617       617,  626,    0,    0,    0,    0,   12,    0,  634,  635,
618        43,    0,   68,    0,    0,    0,    0,    0,    0,  254,
619         0,    0,  303,    0,    0,  359,  373,    0,    0,  430,
620         0,  474,    0,  542,  579,    0,  429,    0,    0,    0,
621
622         0,    0,  253,    0,    0,  302,  372,  473,    0,  541,
623       578,    0,  474,  473,   64,   64,   64,    0,    0,   85,
624         0,   73,   72,   85,   85,   85,    0,    0,    0,    0,
625         0,  111,  111,    0,  128,  128,    0,    0,  158,  158,
626         0,  181,  181,    0,    0,  181,    0,    0,    0,  238,
627       238,    0,  198,  197,  238,  238,  238,  238,  238,  238,
628         0,    0,  238,  238,  238,    0,    0,  272,  272,    0,
629       260,  259,  272,    0,    0,  272,    0,  360,    0,  279,
630       278,    0,    0,  294,  293,    0,  325,  325,  325,  325,
631         0,  342,    0,    0,    0,    0,    0,  362,  361,  368,
632
633         0,  393,    0,    0,  393,  393,    0,    0,  393,    0,
634         0,  404,    0,   69,    0,    0,    0,  425,    0,  413,
635       412,  425,  425,  425,    0,    0,    0,    0,  469,    0,
636       457,  456,  469,    0,  463,  462,  469,    0,  486,    0,
637       499,    0,  518,  518,  518,    0,  537,    0,    0,    0,
638       533,  532,    0,    0,    0,  544,  543,  552,    0,    0,
639       574,    0,    0,    0,    0,    0,    0,  605,    0,  626,
640       626,  626,    0,    0,    0,    0,   11,   43,    0,   68,
641         0,    0,    0,    0,    0,  242,    0,    0,    0,    0,
642       359,    0,    0,  442,  474,  491,    0,  542,    0,    0,
643
644         0,    0,    0,    0,    0,    0,    0,  473,  490,    0,
645       541,    0,    0,    0,    0,    0,    0,   64,    0,    0,
646        85,   85,   85,   85,    0,    0,    0,   92,   91,    0,
647       111,  111,    0,    0,    0,    0,    0,    0,    0,    0,
648         0,    0,    0,    0,    0,    0,  181,    0,  175,  174,
649         0,    0,    0,    0,  188,  187,    0,    0,  238,  238,
650       238,    0,    0,  238,  238,  238,    0,  222,  221,    0,
651         0,  238,  238,    0,    0,  272,  272,    0,    0,    0,
652       266,  265,  272,    0,  273,  360,    0,    0,  325,  325,
653       325,  325,    0,  326,  342,    0,    0,  351,  350,    0,
654
655       368,    0,  393,    0,  377,  376,    0,    0,  393,    0,
656       387,  386,  393,    0,  394,    0,  404,    0,   69,  243,
657         0,  443,  425,  425,  425,  425,    0,    0,  434,  433,
658         0,  439,  469,  469,  469,    0,  486,    0,  499,    0,
659         0,    0,  518,    0,    0,    0,  537,    0,  531,  530,
660         0,    0,  552,    0,    0,  574,    0,    0,    0,    0,
661         0,    0,    0,    0,    0,  570,  569,    0,  605,    0,
662       606,    0,    0,    0,    0,  626,    0,    0,    0,    0,
663         0,    0,   48,    0,    0,    0,    0,    0,  163,  186,
664       242,    0,  292,    0,    0,    0,  408,  442,  491,  504,
665
666         0,    0,   47,    0,    0,    0,    0,  162,  185,    0,
667       291,  490,  503,    0,    0,    0,   52,   51,    0,   54,
668        53,   64,    0,    0,   85,   85,   85,   85,    0,   86,
669         0,    0,  111,    0,    0,    0,    0,  120,  119,    0,
670       122,  121,    0,    0,    0,  150,  149,    0,  152,  151,
671         0,    0,  171,  170,    0,    0,    0,  177,  176,    0,
672         0,  190,  189,  238,  238,  238,    0,  210,  209,    0,
673         0,  238,  238,    0,  224,  223,  238,  238,    0,    0,
674       272,  272,    0,  264,  263,  272,    0,    0,  325,    0,
675         0,  325,  325,  325,  342,    0,    0,  368,    0,  369,
676
677       393,    0,  379,  378,  393,  393,    0,    0,    0,    0,
678       243,  409,  443,  425,  425,  425,  425,    0,  469,    0,
679         0,  469,    0,  486,    0,  487,  499,    0,    0,  506,
680       505,    0,    0,  518,    0,  514,  513,    0,    0,    0,
681       537,    0,    0,  552,    0,    0,  553,    0,    0,    0,
682         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
683         0,    0,    0,  614,  613,    0,  616,  615,  626,    0,
684         0,    0,    0,    0,    0,    0,   48,   89,  101,    0,
685         0,    0,  163,  186,    0,  292,  329,    0,  397,  408,
686       504,    0,    0,    0,   47,  100,    0,    0,    0,  162,
687
688       185,    0,  291,  503,    0,    0,    0,   64,    0,  330,
689         0,    0,   85,   85,   85,   90,    0,  111,    0,  107,
690       106,    0,    0,    0,    0,    0,  173,  172,    0,  238,
691       238,  238,    0,  212,  211,  238,  238,  238,    0,    0,
692         0,    0,  250,  272,  272,  272,    0,    0,  325,    0,
693       311,  310,  325,  325,  325,  342,    0,    0,  368,  393,
694       393,  393,  398,    0,  400,  399,    0,  409,    0,    0,
695       425,  425,  425,    0,  469,    0,  461,  460,  469,    0,
696       470,  486,  499,    0,  500,    0,  508,  507,  518,    0,
697         0,  525,  524,  537,    0,    0,  552,  642,    0,  558,
698
699       557,    0,    0,    0,    0,    0,    0,    0,    0,    0,
700         0,    0,    0,    0,    0,  626,    0,    0,    0,    0,
701         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
702        89,  101,    0,    0,    0,  277,  329,    0,  397,    0,
703         0,  610,  100,    0,    0,    0,  276,    0,    0,  609,
704        64,    0,   65,  330,    0,   71,   70,    0,    0,   85,
705        85,   90,    0,    0,    0,    0,    0,    0,    0,    0,
706       182,  238,  238,  238,  238,    0,    0,  238,  238,    0,
707         0,    0,    0,  239,  272,  272,  272,    0,    0,  299,
708         0,    0,  325,  325,  325,  325,    0,    0,    0,    0,
709
710         0,    0,  393,  393,  393,  398,    0,    0,  411,  410,
711         0,    0,  425,  425,    0,  426,    0,    0,  469,  486,
712       499,  518,    0,  519,  537,    0,    0,  552,    0,    0,
713         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
714         0,    0,    0,    0,    0,    0,    0,    0,    0,  626,
715         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
716         0,    0,    0,    0,    0,    0,    0,    0,    0,  277,
717       346,    0,    0,  610,    0,    0,    0,  276,    0,    0,
718       609,   64,    0,   75,   74,    0,    0,    0,    0,    0,
719        97,    0,  103,  102,    0,  112,    0,    0,    0,  238,
720
721       238,  238,  238,    0,  214,  213,  238,  238,    0,    0,
722         0,    0,    0,    0,  272,  272,    0,    0,    0,    0,
723       305,  304,  325,  325,  325,    0,    0,    0,    0,    0,
724         0,  343,    0,    0,  364,  363,  393,  393,    0,    0,
725         0,  405,    0,  415,  414,    0,    0,    0,    0,    0,
726         0,    0,  469,  486,  499,  518,  537,    0,  347,  552,
727         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
728         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
729         0,    0,    0,  626,    0,    0,    0,    0,    0,    0,
730         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731
732         0,  133,    0,  346,    0,    0,    0,  132,    0,    0,
733         0,    0,    0,    0,    0,    0,    0,   81,   80,    0,
734         0,    0,  238,  238,    0,    0,  238,  238,  238,    0,
735         0,    0,    0,    0,    0,    0,    0,  272,    0,    0,
736         0,  268,  267,    0,  288,  325,  325,  325,    0,  321,
737       320,    0,    0,    0,    0,    0,    0,    0,  393,    0,
738         0,    0,  389,  388,    0,    0,    0,    0,  421,  420,
739         0,    0,    0,    0,    0,    0,  469,    0,    0,    0,
740         0,  518,  537,    0,  347,    0,    0,    0,    0,    0,
741         0,  562,    0,    0,    0,    0,  561,    0,    0,    0,
742
743         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
744         0,    0,    0,  627,    0,    0,    0,    0,    0,    0,
745         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
746       133,    0,  523,    0,    0,  132,    0,  522,    0,    0,
747         0,    0,    0,    0,    0,    0,    0,    0,    0,  238,
748         0,    0,    0,  206,  205,    0,    0,  238,  238,    0,
749         0,    0,    0,    0,    0,    0,    0,  272,    0,  258,
750       257,  325,    0,    0,  325,    0,    0,    0,    0,    0,
751         0,    0,  356,  393,    0,  381,  380,    0,    0,    0,
752         0,    0,    0,    0,    0,    0,    0,    0,    0,  469,
753
754         0,    0,    0,    0,  493,  492,    0,    0,    0,    0,
755         0,    0,  548,  547,    0,    0,    0,    0,    0,    0,
756         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
757         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
758         0,    0,    0,    0,    0,   21,   29,    0,    0,    0,
759         0,   20,   28,    0,  116,    0,  523,  556,  115,    0,
760       522,  555,    0,    0,    0,    0,    0,    0,    0,    0,
761         0,    0,  142,    0,  238,    0,  204,  203,    0,  208,
762       207,  238,  238,    0,    0,    0,    0,    0,    0,    0,
763         0,  272,  325,    0,  313,  312,  325,    0,    0,  332,
764
765         0,    0,  331,  393,    0,    0,    0,    0,    0,    0,
766         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
767         0,    0,    0,  510,  509,    0,  527,  526,    0,    0,
768         0,  568,    0,    0,    0,  567,    0,    0,    0,    0,
769         0,  583,  591,    0,    0,    0,    0,  582,  590,    0,
770         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
771         0,    0,   23,    0,    0,    0,   22,    0,  116,    0,
772       556,  115,    0,  555,    0,    0,    0,    0,    0,    0,
773         0,    0,    0,    0,  238,    0,    0,  238,    0,    0,
774       228,    0,    0,    0,  227,    0,  272,    0,    0,    0,
775
776         0,    0,    0,    0,    0,  393,    0,    0,    0,    0,
777         0,    0,    0,    0,    0,    0,    0,    0,    0,  465,
778       464,    0,    0,    0,    0,    0,  538,    0,    0,    0,
779         0,    0,    0,    0,    0,    0,  585,    0,    0,    0,
780       584,    0,    0,    0,    0,    0,    0,    0,    0,    0,
781         0,    0,    0,    0,    0,    0,    0,    0,  146,  145,
782        60,    0,   59,    0,   77,    0,   76,    0,    0,  129,
783         0,  238,    0,    0,    0,    0,    0,    0,    0,  230,
784         0,    0,  229,  272,    0,  307,  306,    0,    0,    0,
785       334,  336,  333,  335,  393,  417,    0,  416,    0,    0,
786
787       451,  447,    0,    0,  450,  446,    0,  482,    0,  481,
788         0,  566,    0,    0,  565,    0,    0,    0,  575,    0,
789         0,    0,    0,    0,    0,  622,    0,  621,    0,    0,
790         0,    0,   12,    0,   12,    0,   33,    0,    0,    0,
791         0,   31,   32,    0,    0,    0,    0,   30,  146,  145,
792        58,   57,    0,    0,    0,  238,    0,    0,    0,    0,
793         0,  226,  225,    0,    0,    0,    0,  272,    0,    0,
794         0,    0,  393,    0,    0,    0,    0,    0,    0,  480,
795       479,  560,  564,  559,  563,  595,    0,    0,    0,    0,
796       593,  594,    0,    0,    0,    0,  592,  620,  619,    0,
797
798         0,    0,    0,    0,    0,    0,    0,   25,    0,    0,
799         0,    0,   24,    0,    0,    0,    0,  159,    0,    0,
800         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
801         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
802         0,    0,    0,    0,    0,    0,    0,    0,    0,  587,
803         0,    0,    0,    0,  586,    0,    0,    0,    0,    0,
804         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
805         0,    0,    0,    0,    0,    0,    0,    0,  232,    0,
806       231,    0,  256,  255,    0,    0,    0,    0,    0,    0,
807         0,  375,  374,    0,    0,  445,    0,  444,    0,    0,
808
809         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
810         0,    0,    0,    0,    0,    0,    0,   79,   78,    0,
811         0,    0,    0,    0,    0,    0,    0,    0,    0,  234,
812       233,    0,    0,    0,    0,    0,    0,  419,  418,    0,
813         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
814         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
815         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
816         0,    0,    0,    0,  449,  448,    0,    0,    0,    0,
817         0,    0,    0,    0,    0,    0,    0,   35,    0,    0,
818         0,   34,    0,    0,    0,    0,    0,    0,    0,    0,
819
820         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
821         0,  597,    0,    0,    0,  596,    0,    0,    0,    0,
822        27,    0,    0,   26,    0,    0,    0,    0,    0,    0,
823       216,    0,    0,  215,    0,    0,  315,    0,    0,  314,
824         0,    0,  589,    0,    0,  588,    0,    0,   37,    0,
825        36,    0,    0,    0,    0,  220,    0,  219,    0,  317,
826         0,  316,    0,    0,  599,    0,  598,    0,    0,    0,
827         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
828         0,   39,   38,    0,  192,    0,  191,    0,    0,    0,
829         0,  601,  600,    0,    0,  194,  193,  218,  217,  319,
830
831       318,    0,    0,    0,    0,    0,    0,    0,    0,    0,
832         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
833         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
834         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
835         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
836         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
837         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
838         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
839         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
840         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
841
842         0,    0,    0,   13,    0
843     } ;
844
845 static yyconst YY_CHAR yy_ec[256] =
846     {   0,
847         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
848         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
849         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
850         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
851         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
852        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
853        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
854        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
855        31,   38,   39,   40,   41,   42,   43,   44,   45,   46,
856        47,    1,   48,    1,   49,    1,   50,   51,   52,   53,
857
858        54,   55,   56,   57,   58,   59,   60,   61,   62,   63,
859        64,   65,   66,   67,   68,   69,   70,   71,   72,   73,
860        74,   75,    1,    1,    1,    1,    1,    1,    1,    1,
861         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
862         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
863         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
864         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
865         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
866         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
867         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
868
869         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
870         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
871         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
872         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
873         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
874         1,    1,    1,    1,    1
875     } ;
876
877 static yyconst YY_CHAR yy_meta[76] =
878     {   0,
879         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
880         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
881         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
882         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
883         5,    5,    5,    5,    5,    5,    1,    1,    5,    9,
884         9,    9,    9,    9,    9,    5,    5,    5,    5,    5,
885         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
886         5,    5,    5,    5,    5
887     } ;
888
889 static yyconst flex_uint16_t yy_base[4472] =
890     {   0,
891         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
892        14,   17,   33,   36,   49,   55,   45,   61,  109,  176,
893        66,   72,   76,   79,   83,  129,  132,  135,  140,  157,
894       196,  199,  202,  207,  224,  227,  233,  236,  244,  253,
895       271,  339,  291,  294,  297,  302,  319,  359,  362,  365,
896       407,  475,  370,  387,  427,  430,  433,  438,  455,  495,
897       543,  614,  498,  501,  685,  746,  506,  523,  807,  875,
898       563,  566,  569,  574,  591,  594,  634,  637,  943, 1011,
899       640,  645,  662,  665,  705,  708,  711,  716, 1079, 1147,
900       766,  769,  772,  777,  827,  830,  833,  838, 1215, 1283,
901
902       855,  895, 1351, 1420,  898,  901,  906,  923,  963,  966,
903       969,  974, 1489, 1547,  991, 1031, 1034, 1037, 1042, 1059,
904      1099, 1102, 1605, 1673, 1105, 1110, 1127, 1167, 1170, 1173,
905      1178, 1195, 1741, 1811, 1235, 1238, 1881, 1936, 1241, 1246,
906      1303, 1306, 1309, 1314, 1371, 1374, 1991, 2059, 1377, 1382,
907      1440, 1443, 1446, 1451, 1509, 1512, 2127, 2185, 1515, 1520,
908      2243, 2314, 1567, 1570, 2385, 2453, 1573, 1578, 2521, 2589,
909      1625, 1628, 1631, 1636, 2657, 2728, 1693, 1696, 1699, 1704,
910      1761, 1764, 1767, 1772, 1789, 1831, 1834, 1837, 1842, 1859,
911      1901, 1904, 1907, 1912, 1956, 1959, 2799, 2867, 1962, 1967,
912
913      2011, 2014, 2017, 2022, 2079, 2082, 2935, 3006, 2085, 2090,
914      3077, 3145, 2147, 2150, 3213, 3281, 2153, 2158, 2205, 2208,
915      2211, 2216, 2263, 2266, 3349, 3407, 2269, 2274, 3465, 3534,
916      2291, 2294, 2334, 2337, 2340, 2345, 2362, 2365, 3603, 3671,
917      2405, 2408, 2411, 2416, 2433, 2473, 2476, 2479, 3739, 3804,
918       204, 2495, 3869, 3938, 2484, 2502, 4007, 4074, 2542, 2545,
919      2548, 2552, 2609, 2612, 2615, 2620, 2677, 2680, 2683, 2688,
920      2705, 2708, 2748, 2751, 2754, 2759, 2776, 2779, 4141, 4209,
921      2819, 2822, 2825, 2830, 2847, 2887, 2890, 2893,    0,    0,
922     10406,13997,13997,   96,  100,   29,   41,13997,  103,   51,
923
924     13997,13997,10395,13997,13997,10380,13997,10395,10395,  674,
925     13997,13997,13997,13997,10389,10389,10343,13997,  160,10366,
926         0,   87,13997,10332,10320,13997,  166, 4273,10314, 4344,
927      2906, 1200,10366,   31,13997,  169,10357,    0,  120,13997,
928     10304,10299,   21,13997,  256,  154,   84,  153,13997,  261,
929     10350,    0,  211,13997,10295,10300,10305,10295,10288,13997,
930       264,   16,10306,  237,13997,  326,10331,    0,  248,13997,
931     10300,13997,  329,  305,13997,  332,10329,    0,  282,13997,
932     10294,10290,10292,13997,  394,  373,13997,  397,10317,    0,
933       350,13997,10268,10263,10263,13997,  400,  453,  249,13997,
934
935       466,10309,    0,  418,13997,10260,10256,13997,  534,  521,
936       381,13997,  597,10302,    0,  439,13997,10253,10244,10248,
937     13997,  600,  595,  426,13997,  668,10294,    0,  442,13997,
938     10237,10255,10257,10235,10251,   81,13997,  671,  716,13997,
939       674,10280,    0,  445,13997,  141, 9610, 9620,   90, 9604,
940        27,  450, 9606,13997,  796, 9657,  441,13997,  799, 9648,
941         0,  507,13997, 9614,13997,  862, 9654,  509,13997,  865,
942      9645,    0,  554,13997, 9592, 9598, 9607, 9584,  242,13997,
943       868,  313, 9589,  594,13997,  930, 9621,    0,  584,13997,
944      9576, 9585, 9568,13997,  933,  784,13997,  936, 9612,    0,
945
946       625,13997, 9568,13997,  995, 2911, 9612,  713,13997,  998,
947      9603,    0,  696,13997, 9571, 9563, 9565,  164,13997, 1001,
948      9597,  726,13997, 1004, 9588,    0,  818,13997, 9540, 9544,
949     13997, 1063,  841,13997, 1066, 9575,    0,  886,13997, 9534,
950      9536,13997, 1069,  909,13997, 1072, 9564,    0,  954,13997,
951      9531, 9507,13997, 1134, 1113,13997, 1137, 9555,    0, 1022,
952     13997, 9498, 9496, 9499, 9509, 9501,  514,13997, 1140, 1181,
953      1187,13997, 1202, 9530,    0, 1090,13997, 9487,13997, 1207,
954      1534,  664, 1203,  727,  677,  773,13997, 1275, 9512,    0,
955      1158,13997, 9461, 9459, 9464, 9457, 9446,13997, 1333,  258,
956
957       917,13997, 1336, 9494,    0, 1226,13997, 9455, 9447,13997,
958      1343, 1321,13997, 1402, 9476,    0, 1253,13997, 9430, 9427,
959      1265, 9427,  920,13997, 1411, 1389,13997, 1471, 9455,    0,
960      1362,13997, 9403,  583,13997, 1480, 1395, 1045,13997, 1537,
961      9449,    0, 1431,13997, 9404, 9413,13997, 1540, 1458,13997,
962      1600, 9429,    0, 1500,13997, 9379, 9373, 9380, 9357,13997,
963      1656, 9418, 1189,13997, 1662, 9408,    0, 1524,13997, 9361,
964      9370, 9355, 9348,13997, 1665,  449, 9343, 1195,13997, 1724,
965      9383,    0, 1558,13997, 9340, 9344, 9341, 1775, 9332,13997,
966      1730, 9345,    0, 1616,13997, 9302, 9304, 9292,13997, 1733,
967
968      1845,13997, 1798, 9338,    0, 1640,13997, 9303, 9287,13997,
969      1801, 4415, 9285, 2977, 1234,13997, 1806, 9318,    0, 1651,
970     13997, 9265, 9249,  776,13997, 1868, 1522, 1249, 1871, 1247,
971      9240,13997, 9301, 9290,13997,13997,13997, 1973,   90, 9239,
972      9228, 9216, 9265,13997,    0, 2555, 9213, 9256, 9238, 1276,
973       332,  320, 9210, 9209, 9213, 9205, 1651,  467, 9198, 9199,
974      9200, 1859, 9211,  712,  856, 9185, 9184, 9183, 1914,  797,
975      9169, 9165, 9166, 9187,  732, 1969,  992, 9156,  868, 1069,
976     13997,    0, 9145, 9164, 9159, 9138, 9177, 9139,13997,    0,
977      9129, 9123, 9128, 9139, 9136, 9134, 1330,13997,    0, 9122,
978
979      9131,13997,    0, 9098, 2897, 9091, 9092,13997,    0, 9071,
980      9090, 9085, 9085,13997,    0, 9065, 9070, 9070,13997,    0,
981      9046, 9061, 9057, 9048,13997,    0, 2900, 2958, 9029, 9034,
982      9034, 9031, 9022, 9022,13997,    0, 9020, 3028, 9001, 3031,
983      8993, 8995, 8992, 9000, 8993, 8975, 8992, 8987, 8984, 8973,
984      8984,13997,    0, 3036, 8975,13997,    0, 8975,  177, 3054,
985      8951, 8965, 8967, 8952, 8944,13997,    0, 8934, 3057, 3097,
986      8944,13997,    0, 8938, 8940, 8957, 8929,13997,    0, 8928,
987      3100, 8905, 8923, 8921, 8909,13997,    0, 8901, 3103, 8884,
988     13997,    0, 3107, 8883, 8880,13997,    0, 8878, 8871, 8872,
989
990     13997,    0, 8882, 8871, 8855, 3110, 8844, 8857, 8860, 8843,
991      8829,13997,    0, 8822, 8814, 1341, 1401, 1980, 1416, 1528,
992      1983,13997,    0, 8815, 8808, 8807, 8818, 8815, 8795,13997,
993         0, 3165, 8798, 8792,13997,    0, 8789, 3168, 8772, 8793,
994      8779, 8787, 8775, 8775, 8759,13997,    0, 8756, 8770, 8759,
995      8752,13997,    0, 8742, 3171, 8731,13997,    0, 8727, 8722,
996      3175, 8719, 8712,13997,    0, 8710, 3178, 8719, 8679, 8685,
997      8687,13997,    0, 8689, 3233, 8681,   13, 8673, 8720,13997,
998         0, 8681, 8671, 8682, 8655,13997,    0, 3236, 8653, 8643,
999     13997,    0, 8648, 8656, 8644, 8633, 8618, 8672, 8665, 1693,
1000
1001      8612,13997, 1918,    0, 8607, 8603, 8649, 8647, 8599,13997,
1002      3239, 2109, 8588, 2964, 3301, 2052, 8586, 8598, 8597, 8583,
1003      8591, 8567, 8573, 8557, 8571, 8552, 1406, 8560, 8562, 8543,
1004      8543, 8534, 8529, 8540, 8522, 8520, 2175, 8526, 8508, 8521,
1005      8499, 8500, 8514, 8502, 8509, 8488, 8493, 8501, 8487, 2233,
1006      8478, 8474, 8465, 3243, 3312, 3246, 3316, 3304, 3307, 8471,
1007      8480, 8460, 8446, 8449, 8432, 3369, 3379, 8440, 8415, 3372,
1008      3382, 8431, 3431, 2301, 8425, 3436, 3440, 3443, 3497, 3485,
1009      3489, 3494, 3503, 3554, 3557, 3560, 3568, 3572, 3624, 3627,
1010      3633, 3691, 2372, 3694, 2436, 3697, 3718, 3762, 3772, 3776,
1011
1012      3642, 3780, 1866, 3766, 2505, 8424, 3825, 2574, 3830, 8410,
1013      8402, 8410, 8393, 8381, 8374, 8386, 8375, 8364, 3833, 3836,
1014      3839, 2640, 3843, 3890, 8369, 8355, 8367, 3896, 2711, 8364,
1015      8355, 8339, 3899, 3902, 1687, 8343, 3905, 2782, 3909, 2988,
1016      3958, 3967, 8351, 3961, 3970, 2584, 8337, 8335, 3980, 3063,
1017      8333, 8309, 8305, 3973, 4032, 8316, 4037, 3128, 4040, 4043,
1018      4047, 3196, 8288, 4094, 4100, 8301, 8283, 4103, 4106, 8291,
1019       385, 8277, 4109, 3265, 4114, 8289, 8268, 4163, 4171, 8286,
1020      8266, 4175, 4178, 8254, 8259, 8251, 8250, 8258, 8240, 8224,
1021      8229, 8215, 4182, 4229, 4232, 3335, 8207, 4238, 4241, 8222,
1022
1023      4244, 3522, 4250, 8211, 4264, 8211, 8214, 8217, 4268, 4271,
1024      4278, 4296, 4299, 4302, 4307, 8197, 4310, 3591, 4342, 4350,
1025      8213, 8192, 4353, 3654, 8206, 4356, 4365, 8189, 4371, 3700,
1026      8203, 8182, 4377, 4380, 1725, 8180, 4384, 3722, 8175, 8207,
1027      4413, 4419,13997, 8168, 8170, 8153, 4422, 4426, 4389, 3928,
1028      8129, 4441, 4448, 4451, 4455, 4460, 4485, 4493, 4496, 8176,
1029     13997,13997,  721, 8130,13997, 8173, 8171, 8090,13997,13997,
1030      8088, 4055,13997,13997, 8090, 4499, 4507,13997, 4518, 1876,
1031      8075, 8074, 8063, 8066, 8074, 8053, 8042, 8053, 8031, 8038,
1032      8037, 8042, 8026, 8020, 8017,  477, 8028, 8011, 8011, 8021,
1033
1034      8012, 1721, 2119, 7972, 7974, 7983, 7957, 7945, 7937, 7943,
1035      7932, 7919, 7916, 7916, 7930, 7926, 7908, 7922, 7905, 4522,
1036      4197, 7905, 7889, 4526, 4530, 7901, 4546, 4549,13997, 4552,
1037      7893, 7881, 4540, 7899, 7893, 7862, 4559, 4571,13997, 4574,
1038      7854, 7864, 4578, 4581,13997, 4584, 7839, 4593,13997,13997,
1039      7843, 4603, 4606,13997, 4609, 4612, 4618, 7832, 7831, 4630,
1040      4633, 4642, 4648,13997, 4651, 4654, 4661, 4672, 4675, 4683,
1041      4686,13997, 4690, 4693, 4696, 7827, 7820, 4705, 4711, 4719,
1042      4723,13997, 4726, 4729,13997,13997, 4738,13997,13997, 4746,
1043      4750, 7821, 7811, 7795, 7789, 4758, 4764,13997, 4767, 7773,
1044
1045      7772, 7762, 4770,13997,13997, 4778, 4786,13997,13997, 4796,
1046      4799, 7734, 7698, 7676, 7679, 7672, 7649, 7653, 7641, 1129,
1047      4807, 4810,13997, 4817, 4820,13997,13997, 4829, 4832,13997,
1048      4836, 7611, 7598, 4839, 4842,13997,13997, 7557, 7481, 7473,
1049      4851, 4857,13997, 4860, 7460, 4863, 4866,13997,13997, 4882,
1050     13997,13997, 4890, 4893,13997, 4898, 4901, 4904, 4912,13997,
1051      4919, 7452, 7365, 4927,13997,13997, 7351, 7354, 7317, 4923,
1052      4938,13997, 4942, 7309, 4945,13997,13997, 4953, 4957,13997,
1053      4961, 4966,13997,13997, 7220, 4976, 4980,13997, 4983, 4987,
1054      4990, 4995, 5008,13997, 5014, 7142, 7066, 7035, 6932, 5017,
1055
1056     13997,13997, 5027, 5035, 6892, 6885, 5045, 5048,13997, 5051,
1057      6810,   13, 5054, 5057,13997, 5060,   25,  119, 1732,  197,
1058       244, 5079,  267,  288,  307, 5083, 5086,13997, 5089, 5093,
1059     13997,13997,  325, 5109, 5112,13997, 5115,  385, 5118,13997,
1060     13997, 5135, 5138, 5146, 5153, 5157,  420, 5165,  421, 5171,
1061      5174,13997, 5178, 5183, 5186, 5197, 5201,  480, 5209, 5215,
1062     13997, 5218,  487, 5221,13997,13997, 5229, 5240,13997, 5243,
1063       528,  531, 5248,13997,13997,  558, 5262, 5265,13997, 5269,
1064       554, 5272,13997,13997,  549, 5288, 5291, 5294,13997, 5297,
1065       557, 5300, 5306,13997,13997, 5318,  588, 5321, 5324,13997,
1066
1067      5327,  591, 5332,  597, 5336, 5346,13997, 5350, 5356,13997,
1068     13997,  595, 5365, 5369,13997, 5372, 5376, 5384,  586,  612,
1069      5394, 5399,  628, 5407, 5412,13997, 5416, 1309, 5419,13997,
1070     13997,  667,  705,  681, 5422,13997,  713,  721,  782,  798,
1071       784,  811,  842,  854, 2179,  845, 2237,  918,  911, 2122,
1072       928,  931, 2515,  922,  934,  960,  993, 2650, 2858,  978,
1073       999,  983,  990,  985, 2999, 1008, 3139, 3206, 1061, 1066,
1074      1067, 3274, 1068, 3391, 1070, 5441,13997,13997, 1077, 1131,
1075      5449,13997,13997, 1115, 5426, 3402, 1129, 5457, 5460, 1120,
1076      1156, 1222, 5468, 1213, 5478, 5471, 1223, 1268, 5482, 5490,
1077
1078     13997,13997, 1253, 1273, 5501,13997,13997, 5509, 5512,13997,
1079     13997, 5521,13997,13997, 5531, 5534,13997,13997, 1318, 1336,
1080      5543,13997,13997, 5551, 5554,13997,13997, 1317, 1341, 5563,
1081      1323, 5566, 5570, 5573, 5576, 5581, 5600, 5608,13997,13997,
1082      5594, 5616, 5619, 5625, 5628, 5637, 5648, 5651, 5655, 5658,
1083      5661, 5676, 1361, 1359, 5669, 5680, 1403, 5695, 1428, 5699,
1084      1417, 5702, 5706, 5714, 5723, 5734, 5742, 3992, 1462, 1473,
1085      1463, 1479, 5745, 1462, 5749, 5752, 5756, 5770, 5775, 1476,
1086      5784, 1485, 5788, 1521, 1535, 5791,13997,13997, 5809, 1548,
1087      5812, 1543, 1536, 5815, 1569, 1583, 1588, 1580, 1589, 5818,
1088
1089      5821, 1579, 1592, 1602, 5836, 5839, 5842, 1612, 5846,13997,
1090     13997, 5857, 5861, 5869,13997,13997, 1621, 5878, 5883, 1635,
1091      5891, 5896,13997,13997, 5906,13997,13997, 1635, 5914, 1651,
1092      5917, 1653, 1652, 1663, 5920, 1656, 5923, 5926, 5929, 5944,
1093      1663, 5947, 5950, 1677, 1717, 5958, 1709, 5965, 5968, 5977,
1094      5986, 1714, 5989, 5995,13997,13997, 1712, 1731, 6010,13997,
1095     13997, 1729, 6019, 1822, 1786, 6022,13997, 1807,13997,13997,
1096      1787, 1778, 3516, 1794, 1787, 1785, 1800, 1802, 1809, 3586,
1097      1807, 1823, 3664, 1845, 1863, 3732, 3759, 1854, 1853, 3786,
1098      1861, 3799, 1868, 3999, 3923, 1888, 4002, 1898, 1908, 1905,
1099
1100      1922, 1924, 4065, 1918, 1929, 4068, 4127, 4503, 1933, 6025,
1101      4132, 1926, 6028, 6031, 6042, 6045, 6048, 6051, 1955, 1958,
1102      6054,13997,13997, 1969, 1967, 1962, 6066, 1979, 6075, 6078,
1103      6086, 1990, 1971, 6098, 6101, 6105, 6108, 6123, 6127, 6132,
1104      6135, 6138, 6150, 6156, 6159, 6168, 6175, 6178, 6190, 6181,
1105      6186, 6204,13997,13997, 6212, 6215, 6218, 6221, 6224, 6242,
1106      6245, 6248, 6256, 6266, 6274, 6284, 6287, 1997, 1988, 6293,
1107     13997,13997, 6306, 6309, 6315, 1998, 6329, 4135, 6332,13997,
1108     13997, 6340, 6348,13997,13997, 6344, 2004, 1984, 2019, 2035,
1109      6359, 2033, 6363, 6366, 6369, 6378, 6384,13997,13997, 2041,
1110
1111      6393, 2045, 6397, 6400, 6415, 2035, 6418, 6421, 2044, 6429,
1112      2037, 2039, 6438, 6441, 2048, 2037, 2047, 2050, 6444,13997,
1113     13997, 2058, 2082, 2089, 6452, 6457, 6461, 6471, 2090, 6475,
1114     13997,13997, 2102, 6483,13997,13997, 2093, 6492, 2099, 6495,
1115      2104, 6498, 6501, 6505, 6519, 6523, 2100, 6526, 6530, 6538,
1116     13997,13997, 6551, 2121, 6555,13997,13997, 2114, 2133, 6563,
1117      2115, 6566, 3303, 3609, 6574, 6578, 6586, 2145, 6592, 6595,
1118      6600, 6605, 6618, 2262, 2196, 2254,13997, 6623, 2163, 6626,
1119      2158, 2159, 2308, 2155, 2158, 6629, 2169, 2176, 2162, 2210,
1120      6632, 2212, 2212, 6641, 6644, 6647, 2229, 6650, 2233, 2218,
1121
1122      2235, 2239, 2379, 2237, 2244, 2255, 2291, 6655, 6658, 2296,
1123      6661, 2299, 2283, 6664, 6667, 6675, 6678, 2298, 6686, 2288,
1124      2296, 2298, 2300, 2313, 6689, 2310, 6693,13997,13997, 6708,
1125      2308, 6701, 6711, 6714, 6720, 6732, 6735, 6743, 6746, 6750,
1126      6755, 6768, 6774, 6782, 6786, 6789, 6797, 6804,13997,13997,
1127      6815, 6818, 6826, 6829,13997,13997, 6837, 6845, 2321, 2333,
1128      2324, 6840, 6858, 6866, 2358, 2372, 6869,13997,13997, 6879,
1129      6884, 2355, 2350, 6892, 6897, 2369, 2378, 6900, 6904, 6912,
1130     13997,13997, 2372, 6920,13997, 6923, 6927, 6930, 2362, 6933,
1131      2392, 2385, 6939,13997, 2380, 6952, 6958,13997,13997, 6966,
1132
1133      2416, 6971, 2389, 6975,13997,13997, 6990, 6993, 2399, 7004,
1134     13997,13997, 2392, 7014,13997, 2385, 7017, 7020, 7023, 7026,
1135      2401, 7029, 2421, 2423, 2419, 2432, 7035, 7039,13997,13997,
1136      7047,13997, 2428, 7050, 2435, 7054, 2437, 7057, 2446, 7060,
1137      7068, 7079, 7087, 7090, 7093, 7108, 7111, 7115,13997,13997,
1138      7129, 2445, 2460, 2493, 7135, 7138, 2515, 2517, 2545, 2524,
1139      2540, 2528, 2598, 2528, 7141,13997,13997, 7149, 7159, 7163,
1140     13997, 7168, 7171, 7186, 7190, 2523, 7198, 2605, 2669, 2565,
1141      7204, 7207, 7217, 2515, 2551, 2582, 2562, 2565, 7222, 7225,
1142      7228, 2571, 7231, 2572, 2578, 2586, 7234, 7237, 7240, 7243,
1143
1144      2591, 2587, 7246, 2619, 2654, 2630, 2632, 7249, 7252, 2634,
1145      7255, 7261, 7264, 2635, 2631, 7267,13997,13997, 7275,13997,
1146     13997, 2650, 7283, 2640, 7286, 7291, 7295, 7298, 7304,13997,
1147      2647, 7316, 2661, 7319, 7323, 7331, 7337,13997,13997, 7346,
1148     13997,13997, 7354, 7361, 7364,13997,13997, 7380,13997,13997,
1149      7388, 7394,13997,13997, 7402, 7407, 7416,13997,13997, 7424,
1150      7427,13997,13997, 2656, 2661, 2675, 7436,13997,13997, 7444,
1151      7447, 2672, 2662, 7455,13997,13997, 2694, 7463, 7466, 7469,
1152      2698, 2691, 7472,13997,13997, 2703, 7481, 7488, 2708, 7492,
1153      7496, 2712, 2703, 2709, 2708, 7510, 7515, 2720, 7518,13997,
1154
1155      2713, 7522,13997,13997, 2718, 2728, 2728, 7541, 7544, 7552,
1156      7555, 7559, 7562, 7565, 7571, 7574, 7583, 7579, 2725, 7592,
1157      7601, 2743, 7610, 2743, 7613,13997, 2727, 7618, 7625,13997,
1158     13997, 7633, 7640, 2729, 7651,13997,13997, 7659, 7662, 7665,
1159      2746, 7673, 2763, 2773, 2788, 7680,13997, 7683, 7686, 2801,
1160      2799, 2799, 2806, 2816, 2809, 2806, 2812, 2818, 2829, 7694,
1161      7701, 7706, 7715,13997,13997, 7726,13997,13997, 2805, 7734,
1162      7737, 2846, 2838, 7741, 5101, 7353, 7749, 7756, 7759, 2797,
1163      2813, 2835, 7762, 7765, 2847, 7768, 7771, 2845, 7774, 7777,
1164      7780, 2843, 2850, 2863, 7783, 7786, 2853, 2851, 2862, 7789,
1165
1166      7792, 2866, 7795, 7798, 2860, 2867, 2878, 2884, 7803, 7806,
1167      7809, 7812, 7822, 7827, 7830, 7833, 7836, 7840, 7848,13997,
1168     13997, 7858, 7862, 7865, 7868, 7871,13997,13997, 7887, 2895,
1169      2900, 2913, 7890,13997,13997, 7900, 2895, 2903, 7906, 7911,
1170      7919, 7924,13997, 2912, 2918, 2924, 7931, 7934, 7938, 7943,
1171     13997,13997, 7956, 7959, 7962, 7965, 7968, 7987, 7993, 2921,
1172      2931, 2933, 7996, 7999,13997,13997, 8007, 8015, 8018, 8026,
1173      8022, 8036, 8040, 8043, 8046, 8058,13997,13997, 8049, 8054,
1174     13997, 2938, 2941, 8068,13997, 8073,13997,13997, 2922, 8081,
1175      8089,13997,13997, 2924, 8100, 2936, 2935,13997, 8103,13997,
1176
1177     13997, 2980, 2982, 3003, 3004, 3011, 3016, 3003, 3019, 3017,
1178      3025, 8111, 8119, 8092, 8105, 3012, 8133, 8139, 3055, 3103,
1179      3002, 3010, 3057, 3006, 3013, 3013, 3035, 3115, 3051, 3059,
1180      8142, 8148, 3056, 3052, 3074, 8152, 8158, 3071, 8161, 3064,
1181      3077, 8164, 8167, 3119, 3117, 3135, 8170, 3117, 3132, 8174,
1182      3135, 8177,13997, 8180, 8183,13997,13997, 8191, 8197, 8205,
1183      8209, 8212, 8215, 8218, 8223, 8236, 8239, 8242, 8245, 8248,
1184     13997, 3155, 3143, 3139, 3179, 8251, 8269, 3183, 3197, 8277,
1185      3232, 3363, 8285,13997, 3184, 3186, 8288, 8291, 8294,13997,
1186      8297, 8315, 3201, 3202, 3203, 8323, 8326, 8329, 8300, 8337,
1187
1188      8344, 8350, 3201, 3205, 8358, 8362, 8365, 8369,13997,13997,
1189      8377, 8380, 8388, 8391, 8395,13997, 8400, 8414, 3217, 3218,
1190      3212, 3232, 8409,13997, 3248, 8422, 3252, 3248, 3280, 3276,
1191      3295, 3284, 3318, 3302, 3298, 3313, 3328, 3354, 8429, 3326,
1192      3333, 3362, 3334, 3342, 3369, 3378, 3387, 3373, 3383, 3391,
1193      8432, 3433, 3444, 3644, 3388, 3402, 3399, 3420, 3432, 3432,
1194      3438, 3451, 3447, 3460, 3464, 3458, 3460, 3478, 3495, 8435,
1195      8441, 3501, 3513, 8444, 3499, 3524, 3541, 8451, 3518, 3531,
1196      8454, 8457, 8460,13997,13997, 8468, 8471, 8479, 8491, 8486,
1197     13997, 8499,13997,13997, 8507,13997, 8510, 8513, 8516, 3531,
1198
1199      3538, 8519, 3530, 8522,13997,13997, 3543, 3533, 3581, 3619,
1200      3597, 3601, 3637, 3613, 3580, 8537, 8540, 8543, 8551, 8558,
1201     13997,13997, 3611, 3633, 3647, 8573, 8577, 8585, 4251, 4291,
1202      8593,13997, 8596, 8599,13997,13997, 3637, 8607, 8615, 8618,
1203      8626,13997, 8629,13997,13997, 8637, 8641, 8649, 8656, 8667,
1204      3692, 3829, 3648, 8675, 8678, 3660, 3661, 8681, 8684, 8687,
1205      3702, 3716, 3731, 3745, 3765, 3742, 3755, 3768, 3771, 3787,
1206      8696, 3728, 3740, 3784, 3789, 3792, 3786, 3790, 3802, 3801,
1207      3807, 3822, 3820, 8700, 8705, 3947, 3916, 3960, 3827, 3836,
1208      3840, 3857, 3866, 3871, 3865, 3875, 3894, 3927, 3935, 3941,
1209
1210      3931, 8708, 3965, 8711, 3978, 3985, 3969, 8718, 3989, 4008,
1211      4021, 8724, 8727, 8735, 4102, 4138, 8743,13997,13997, 8754,
1212      8758, 8761, 4035, 8764, 8767, 8773, 8785, 4048, 4061, 4097,
1213      4084, 4103, 4119, 4146, 4129, 4149, 4134, 4138, 8788, 8791,
1214      8799,13997,13997, 8807,13997, 4129, 8811, 4140, 8814,13997,
1215     13997, 4157, 4160, 4167, 4169, 4171, 4171, 8829, 4188, 8832,
1216      8835, 8844,13997,13997, 8852, 4282, 4312, 8860,13997,13997,
1217      4200, 4214, 4329, 4217, 4223, 4396, 4197, 8868, 8871, 8879,
1218      8882, 8890, 8893, 8897, 8900, 8903, 8912, 4239, 4237, 4239,
1219      4245,13997, 4264, 4248, 4248, 4275,13997, 8921, 4251, 4268,
1220
1221      4259, 4275, 4285, 4293, 4279, 4303, 4303, 4317, 4335, 4348,
1222      8924, 8927, 8935,13997, 4379, 4384, 8944, 4338, 4342, 4379,
1223      4429, 4432, 4380, 4378, 4388, 4407, 4460, 4462, 4414, 4424,
1224      8947, 4411, 8950, 4416, 4437, 8954, 4422, 8957, 4425, 8963,
1225      4522, 4523, 4484, 4489, 4487, 4492, 8974, 8977, 8980, 4470,
1226      8983, 8986, 9001,13997,13997, 9009, 9012, 4461, 4470, 4512,
1227      4497, 4524, 4524, 4543, 4540, 4550, 4551, 4538, 9020,13997,
1228     13997, 4546, 9028, 9031, 4529, 4574, 4583, 4619, 4585, 4595,
1229      4629, 9046,13997, 4586, 9049,13997,13997, 4617, 4622, 4629,
1230      4634, 4644, 4634, 4637, 4652, 4660, 4648, 4666, 4676, 9057,
1231
1232      9061, 4740, 4748, 9069,13997,13997, 9077, 9080, 9088, 9091,
1233      9099, 9102,13997,13997, 4671, 4696, 4713, 4712, 4696, 4715,
1234      4736, 4729, 9110, 4688, 4690, 4710, 4758, 4771, 4725, 4725,
1235      4728, 4751, 4797, 4798, 4755, 9114, 4812, 4838, 4854, 9122,
1236      9125, 9129, 4763, 4756, 4822,13997,13997, 4797, 4822, 4809,
1237      4870,13997,13997, 4828, 9144, 4820, 9148, 9152, 9155, 4821,
1238      9161, 9164, 4862, 4885, 4876, 4891, 4893, 4895, 4909, 4898,
1239      9167, 9170,13997, 9173, 4880, 9176,13997,13997, 9192,13997,
1240     13997, 9200, 4882, 4916, 4913, 4961, 4935, 4940, 4948, 4986,
1241      4962, 4944, 9203, 9206,13997,13997, 9214, 4969, 4981,13997,
1242
1243      4973, 4987,13997, 4956, 4996, 4986, 5001, 4993, 4998, 5009,
1244      5017, 5004, 5010, 5040, 5042, 5030, 9221, 9225, 5034, 5046,
1245      5037, 5049, 9233,13997,13997, 9242,13997,13997, 9250, 5047,
1246      5048,13997, 5049, 5065, 5070,13997, 5071, 9253, 5050, 5038,
1247      5102,13997,13997, 5070, 5076, 5062, 5124,13997,13997, 5081,
1248      5109, 5120, 5115, 5126, 5142, 9256, 9259, 9278, 9322, 9370,
1249      5091, 5097,13997, 5112, 5104, 5116,13997, 5135, 9286, 5142,
1250      9289, 9292, 5143, 9297, 5202, 5170, 5205, 5176, 5220, 5188,
1251      5225, 5196, 9300, 9312, 5185, 9333, 9303, 9342, 5204, 5202,
1252     13997, 5242, 5218, 5217,13997, 5247, 5197, 9345, 9351, 9364,
1253
1254      9390, 5253, 5255, 5253, 5261, 5216, 5273, 5240, 5274, 5244,
1255      5261, 5281, 5299, 5266, 5291, 5309, 5323, 5302, 9398,13997,
1256     13997, 5337, 5306, 5337, 5316, 9406,13997, 5351, 5330, 5331,
1257      5372, 5350, 5351, 9409, 5324, 5327,13997, 5341, 5337, 5339,
1258     13997, 5349, 5406, 5378, 5422, 5394, 5428, 9418, 5448, 5429,
1259      9438, 9486, 5609, 5384, 5431, 6367, 5391, 5447, 9315, 9382,
1260     13997, 5451,13997, 5456,13997, 5445,13997, 5455, 9412,13997,
1261      9458, 5404, 9461, 5462, 5481, 9432, 9470, 5456, 5461,13997,
1262      5471, 5474,13997, 5452, 9507,13997,13997, 9515, 5492, 5523,
1263     13997,13997,13997,13997, 5455,13997, 5495,13997, 5500, 5512,
1264
1265     13997,13997, 5490, 5525,13997,13997, 5506,13997, 5542,13997,
1266      5552,13997, 5558, 5581,13997, 5579, 5581, 9479,13997, 6510,
1267      5541, 5587, 6849, 5544, 5590,13997, 5599,13997, 5598, 5623,
1268      5670, 5625, 5602, 5719, 5607, 9523,13997, 5558, 5583, 5573,
1269      5663,13997,13997, 5601, 5641, 5629, 5726,13997, 9450, 9498,
1270     13997,13997, 5656, 5669, 9526, 9533, 5689, 5684, 5739, 5694,
1271      9536,13997,13997, 5699, 5707, 5708, 5731, 9545, 5741, 5735,
1272      5744, 5738, 9551, 5732, 5737, 5781, 5772, 5784, 5775,13997,
1273     13997,13997,13997,13997,13997,13997, 5735, 5756, 5744, 5827,
1274     13997,13997, 5759, 5779, 5767, 5844,13997,13997,13997, 9554,
1275
1276      5828, 5815, 5845, 9557, 5807, 5797, 5802,13997, 5824, 5827,
1277      5814, 5823,13997, 5841, 5856, 5861, 9563,13997, 9569, 9576,
1278      5863, 5871, 5884, 5873, 5881, 5914, 5894, 5935, 5898, 5946,
1279      9587, 9590, 5917, 5925, 5941, 5925, 5940, 5953, 9598, 9601,
1280      5936, 5942, 5979, 5972, 5986, 5978, 5952, 5934, 5938,13997,
1281      5957, 5958, 5946, 5950,13997, 5968, 9610, 6000, 5980, 5997,
1282      5970, 5989, 6003, 6022, 5995, 6014, 6066, 6066, 9616, 6058,
1283      6105, 6046, 6058, 6054, 6059, 6066, 6075, 6108,13997, 6107,
1284     13997, 9625,13997,13997, 6080, 6086, 6084, 6086, 6112, 6109,
1285      9633,13997,13997, 6144, 6147,13997, 6130,13997, 6132, 6111,
1286
1287      6133, 6104, 6134, 6142, 6161, 6132, 6152, 6210,13997, 6145,
1288      6145, 6161, 6175, 6169, 6168, 6168, 6182,13997,13997, 6219,
1289      6213, 6234, 6233, 6233, 6240, 6240, 6241, 6247, 6248,13997,
1290     13997, 6250, 6256, 6257, 6254, 6267, 6268,13997,13997, 6294,
1291      6292, 6239, 6238, 6238, 6257, 6251, 6253, 6254, 6266, 6317,
1292      6263, 6273, 6323, 6285, 6277, 6301, 6349, 6305, 6334, 6355,
1293      6344, 6369, 6368, 6367, 6385, 6374, 6374, 6401, 6391, 6388,
1294      6410, 6399, 6397, 6426,13997,13997, 6389, 6403, 6460, 6414,
1295      6406, 6417, 6471, 6428, 6470, 6428, 6434,13997, 6505, 6458,
1296      6460,13997, 6508, 6482, 6493, 6509, 6510, 6525, 6523, 6556,
1297
1298      6537, 6542, 6576, 6560, 6554, 6586, 6574, 6568, 6601, 6556,
1299      6559,13997, 6609, 6561, 6564,13997, 6614, 6681, 6576, 6633,
1300     13997, 6580, 6646,13997, 6644, 6649, 6655, 6660, 6692, 6667,
1301     13997, 6699, 6686,13997, 6715, 6692,13997, 6718, 6697,13997,
1302      6671, 6734,13997, 6681, 6734,13997, 6740, 6682,13997, 6691,
1303     13997, 6730, 6743, 6736, 6754,13997, 6755,13997, 6756,13997,
1304      6768,13997, 6770, 6723,13997, 6729,13997, 9641, 6798, 6800,
1305      6786, 6809, 6797, 6816, 6782, 6792, 6793, 6801, 6846, 6844,
1306      9644,13997,13997, 6849,13997, 6848,13997, 6857, 6856, 6860,
1307      6868,13997,13997, 6871, 6891,13997,13997,13997,13997,13997,
1308
1309     13997, 6889, 6918, 6929, 6931, 6900, 6924, 6960, 6985, 6872,
1310      6885, 6951, 6991, 6946, 7055, 7015, 7046, 7024, 7045, 7078,
1311      7100, 7058, 7059, 7088, 7128, 6937, 7048, 7148, 7171, 7102,
1312      7156, 6992, 7080, 7197, 7240, 7263, 7292, 7159, 7255, 7262,
1313      7333, 7184, 7382, 7164, 7289, 7134, 7252, 7308, 7334, 7311,
1314      7365, 7026, 7322, 7404, 7421, 7397, 7442, 7387, 7440, 7423,
1315      7467, 7276, 7435, 7457, 7512, 7489, 7490, 7460, 7484, 7521,
1316      7551, 7581, 7612, 7161, 7571, 7517, 7577, 7468, 7572, 7636,
1317      7653, 7586, 7588, 7603, 7660, 7658, 7681, 7797, 7800, 7638,
1318      7702, 7589, 7722, 7703, 7833, 7529, 7807, 7863, 7877, 7973,
1319
1320      7271, 9652, 9655,13997,13997, 9675, 9684, 9693, 9702, 9711,
1321      9720, 9729, 9738, 9747, 9756, 9765, 9774, 9783, 9792, 9801,
1322      9810, 9819, 9828, 9837, 9846, 9855, 9864, 9873, 9882, 9891,
1323      9900, 9909, 9918, 9927, 9936, 9945, 9954, 9963, 9972, 9981,
1324      9990, 9999,10008,10017,10026,10035,10044,10053,10062,10071,
1325     10080,10089,10098,10107,10116,10125,10134,10143,10152,10161,
1326     10170,10179,10188,10197,10206,10215,10224,10233,10242,10251,
1327     10260,10269,10278,10287,10294,10301,10308,10315,10322,10329,
1328     10336,10343,10350,10357,10364,10371,10378,10385,10392,10399,
1329     10406,10413,10420,10427,10434,10441,10448,10455,10462,10469,
1330
1331     10476,10483,10490,10497,10504,10513,10520,10525,10532,10537,
1332     10544,10549,10556,10561,10568,10573,10580,10585,10592,10597,
1333     10604,10609,10616,10621,10628,10633,10640,10645,10652,10657,
1334     10664,10669,10676,10681,10688,10693,10700,10705,10712,10717,
1335     10724,10729,10736,10741,10748,10753,10760,10765,10772,10777,
1336     10784,10789,10796,10801,10808,10813,10820,10825,10832,10837,
1337     10844,10849,10856,10861,10868,10873,10880,10885,10894,10900,
1338     10907,10915,10923,10931,10938,10946,10953,10961,10968,10976,
1339     10984,10992,11000,11008,11016,11024,11032,11040,11047,11055,
1340     11063,11070,11078,11085,11093,11100,11108,11115,11123,11130,
1341
1342     11138,11145,11153,11160,11168,11175,11183,11190,11198,11205,
1343     11213,11220,11228,11235,11243,11251,11259,11266,11274,11281,
1344     11289,11296,11304,11311,11319,11326,11334,11341,11349,11357,
1345     11365,11374,11380,11387,11395,11402,11410,11417,11425,11432,
1346     11440,11447,11455,11462,11470,11478,11485,11493,11500,11508,
1347     11515,11523,11531,11538,11546,11554,11562,11570,11578,11585,
1348     11593,11600,11608,11615,11623,11631,11639,11646,11654,11661,
1349     11669,11676,11684,11691,11699,11706,11714,11721,11729,11736,
1350     11744,11751,11759,11766,11774,11782,11790,11797,11805,11812,
1351     11820,11827,11835,11844,11853,11860,11867,11875,11882,11890,
1352
1353     11898,11906,11913,11921,11928,11936,11944,11951,11959,11966,
1354     11974,11982,11990,11998,12005,12013,12021,12029,12036,12044,
1355     12051,12059,12067,12075,12082,12090,12097,12105,12112,12120,
1356     12127,12135,12143,12151,12158,12166,12173,12181,12188,12196,
1357     12203,12211,12218,12226,12233,12241,12248,12256,12263,12271,
1358     12278,12286,12295,12304,12311,12319,12327,12334,12342,12350,
1359     12357,12365,12373,12381,12389,12397,12405,12413,12421,12429,
1360     12437,12445,12452,12460,12468,12476,12483,12491,12498,12506,
1361     12514,12521,12529,12536,12544,12551,12559,12566,12574,12582,
1362     12589,12597,12604,12612,12619,12627,12635,12643,12650,12658,
1363
1364     12665,12673,12680,12688,12695,12703,12711,12719,12728,12737,
1365     12745,12752,12760,12767,12775,12783,12790,12798,12806,12814,
1366     12822,12830,12838,12845,12853,12861,12868,12876,12884,12891,
1367     12898,12906,12914,12921,12929,12936,12944,12952,12959,12967,
1368     12974,12982,12989,12997,13004,13012,13020,13028,13036,13044,
1369     13051,13059,13067,13075,13083,13090,13098,13107,13116,13123,
1370     13131,13139,13147,13154,13162,13170,13178,13186,13194,13201,
1371     13209,13217,13224,13232,13240,13247,13254,13262,13270,13277,
1372     13284,13292,13300,13308,13315,13323,13330,13337,13345,13352,
1373     13360,13367,13375,13382,13390,13397,13405,13414,13423,13430,
1374
1375     13438,13446,13454,13462,13470,13478,13486,13494,13502,13509,
1376     13517,13524,13532,13540,13548,13556,13564,13572,13580,13587,
1377     13595,13603,13611,13619,13626,13633,13640,13648,13655,13663,
1378     13670,13678,13685,13693,13702,13711,13718,13726,13734,13742,
1379     13750,13758,13766,13773,13780,13788,13795,13803,13811,13818,
1380     13826,13834,13841,13848,13855,13862,13869,13877,13884,13892,
1381     13899,13907,13916,13925,13933,13942,13951,13960,13969,13978,
1382     13987
1383     } ;
1384
1385 static yyconst flex_int16_t yy_def[4472] =
1386     {   0,
1387      3906, 3906, 3907, 3907, 3907, 3907, 3908, 3908, 3909, 3909,
1388      3910, 3910, 3911, 3911, 3911, 3911, 3912, 3912, 3913, 3913,
1389      3914, 3914, 3914, 3914, 3906, 3906, 3914, 3914, 3914, 3914,
1390      3906, 3906, 3914, 3914, 3906, 3906, 3914, 3914, 3914, 3914,
1391      3915, 3915, 3916, 3916, 3906, 3906, 3916, 3916, 3916, 3916,
1392      3917, 3917, 3918, 3918, 3906, 3906, 3918, 3918, 3918, 3918,
1393      3919, 3919, 3920, 3920, 3921, 3921, 3922, 3922, 3923, 3923,
1394      3924, 3924, 3906, 3906, 3924, 3924, 3924, 3924, 3925, 3925,
1395      3926, 3926, 3906, 3906, 3926, 3926, 3926, 3926, 3927, 3927,
1396      3928, 3928, 3906, 3906, 3928, 3928, 3928, 3928, 3929, 3929,
1397
1398      3930, 3930, 3931, 3931, 3932, 3932, 3906, 3906, 3932, 3932,
1399      3932, 3932, 3933, 3933, 3934, 3934, 3906, 3906, 3934, 3934,
1400      3934, 3934, 3935, 3935, 3936, 3936, 3906, 3906, 3936, 3936,
1401      3936, 3936, 3937, 3937, 3938, 3938, 3939, 3939, 3940, 3940,
1402      3906, 3906, 3940, 3940, 3940, 3940, 3941, 3941, 3942, 3942,
1403      3906, 3906, 3942, 3942, 3942, 3942, 3943, 3943, 3944, 3944,
1404      3945, 3945, 3946, 3946, 3947, 3947, 3948, 3948, 3949, 3949,
1405      3950, 3950, 3906, 3906, 3951, 3951, 3952, 3952, 3952, 3952,
1406      3906, 3906, 3952, 3952, 3952, 3952, 3906, 3906, 3952, 3952,
1407      3906, 3906, 3952, 3952, 3952, 3952, 3953, 3953, 3954, 3954,
1408
1409      3906, 3906, 3954, 3954, 3954, 3954, 3955, 3955, 3956, 3956,
1410      3957, 3957, 3958, 3958, 3959, 3959, 3960, 3960, 3906, 3906,
1411      3960, 3960, 3960, 3960, 3961, 3961, 3962, 3962, 3963, 3963,
1412      3964, 3964, 3906, 3906, 3964, 3964, 3964, 3964, 3965, 3965,
1413      3966, 3966, 3906, 3906, 3966, 3966, 3966, 3966, 3967, 3967,
1414      3968, 3968, 3969, 3969, 3970, 3970, 3971, 3971, 3972, 3972,
1415      3972, 3972, 3906, 3906, 3972, 3972, 3972, 3972, 3906, 3906,
1416      3972, 3972, 3906, 3906, 3972, 3972, 3972, 3972, 3973, 3973,
1417      3974, 3974, 3906, 3906, 3974, 3974, 3974, 3974, 3906, 3906,
1418      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1419
1420      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1421      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1422      3975, 3905, 3905, 3975, 3975, 3905, 3905, 3905,  328, 3905,
1423       330,  328,  331,  330, 3905, 3905, 3905, 3976, 3905, 3905,
1424      3976, 3976, 3976, 3905, 3905,  330,  330,  330, 3905, 3905,
1425      3905, 3977, 3905, 3905, 3977, 3977, 3977, 3977, 3977, 3905,
1426      3905,  330,  330,  330, 3905, 3905, 3905, 3978, 3905, 3905,
1427      3978, 3905, 3905, 3905, 3905, 3905, 3905, 3979, 3905, 3905,
1428      3979, 3979, 3979, 3905, 3905, 3905, 3905, 3905, 3905, 3980,
1429      3905, 3905, 3980, 3980, 3980, 3905, 3905,  330,  330, 3905,
1430
1431      3905, 3905, 3981, 3905, 3905, 3981, 3981, 3905, 3905,  330,
1432       330, 3905, 3905, 3905, 3982, 3905, 3905, 3982, 3982, 3982,
1433      3905, 3905,  330,  330, 3905, 3905, 3905, 3983, 3905, 3905,
1434      3983, 3983, 3983, 3983, 3983, 3983, 3905, 3905, 3905, 3905,
1435      3905, 3905, 3984, 3905, 3905, 3984, 3984, 3984, 3984, 3984,
1436      3984, 3984, 3984, 3905, 3905,  330,  330, 3905, 3905, 3905,
1437      3985, 3905, 3905, 3985, 3905, 3905,  330,  330, 3905, 3905,
1438      3905, 3986, 3905, 3905, 3986, 3986, 3986, 3986, 3986, 3905,
1439      3905,  330,  330,  330, 3905, 3905, 3905, 3987, 3905, 3905,
1440      3987, 3987, 3987, 3905, 3905, 3905, 3905, 3905, 3905, 3988,
1441
1442      3905, 3905, 3988, 3905, 3905,  330,  506,  330, 3905, 3905,
1443      3905, 3989, 3905, 3905, 3989, 3989, 3989, 3989, 3905, 3905,
1444       330,  330, 3905, 3905, 3905, 3990, 3905, 3905, 3990, 3990,
1445      3905, 3905, 3905, 3905, 3905, 3905, 3991, 3905, 3905, 3991,
1446      3991, 3905, 3905, 3905, 3905, 3905, 3905, 3992, 3905, 3905,
1447      3992, 3992, 3905, 3905, 3905, 3905, 3905, 3905, 3993, 3905,
1448      3905, 3993, 3993, 3993, 3993, 3993, 3993, 3905, 3905, 3905,
1449      3905, 3905, 3905, 3905, 3994, 3905, 3905, 3994, 3905, 3905,
1450       506,  581,  330,  330,  330,  330, 3905, 3905, 3905, 3995,
1451      3905, 3905, 3995, 3995, 3995, 3995, 3995, 3905, 3905,  330,
1452
1453       330, 3905, 3905, 3905, 3996, 3905, 3905, 3996, 3996, 3905,
1454      3905, 3905, 3905, 3905, 3905, 3997, 3905, 3905, 3997, 3997,
1455      3997, 3997, 3997, 3905, 3905, 3905, 3905, 3905, 3905, 3998,
1456      3905, 3905, 3998, 3998, 3905, 3905,  330,  330, 3905, 3905,
1457      3905, 3999, 3905, 3905, 3999, 3999, 3905, 3905, 3905, 3905,
1458      3905, 3905, 4000, 3905, 3905, 4000, 4000, 4000, 4000, 3905,
1459      3905,  330,  330, 3905, 3905, 3905, 4001, 3905, 3905, 4001,
1460      4001, 4001, 4001, 3905, 3905,  330,  330,  330, 3905, 3905,
1461      3905, 4002, 3905, 3905, 4002, 4002, 4002, 3905, 3905, 3905,
1462      3905, 3905, 4003, 3905, 3905, 4003, 4003, 4003, 3905, 3905,
1463
1464      3905, 3905, 3905, 3905, 4004, 3905, 3905, 4004, 4004, 3905,
1465      3905, 3905,  712,  330,  330, 3905, 3905, 3905, 4005, 3905,
1466      3905, 4005, 4005, 4005, 3905, 3905,  330,  330, 3905, 4006,
1467      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1468      3905, 3905, 3905, 3905, 4007, 4007, 4007, 4008, 3905, 3905,
1469      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1470      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1471      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1472      3905, 4009, 4009, 4009, 4009, 4009, 4010, 3905, 3905, 4011,
1473      4011, 4011, 4011, 4011, 4011, 4012, 3905, 3905, 4013, 4013,
1474
1475      4014, 3905, 4015, 4015, 4015, 4015, 4016, 3905, 4017, 4017,
1476      4017, 4017, 4018, 3905, 4019, 4019, 4019, 4020, 3905, 4021,
1477      4021, 4021, 4021, 4022, 3905, 4023, 4023, 4023, 4023, 4023,
1478      4023, 4023, 4023, 4024, 3905, 4025, 4025, 4025, 4025, 4025,
1479      4025, 4025, 4025, 4025, 4025, 4025, 4025, 4025, 4025, 4025,
1480      4026, 3905, 4027, 4027, 4028, 3905, 4029, 4029, 4029, 4029,
1481      4029, 4029, 4029, 4030, 3905, 3905, 4031, 4031, 4031, 4031,
1482      4032, 3905, 4033, 4033, 4034, 3905, 3905, 3905, 4035, 4035,
1483      4035, 4035, 4035, 4035, 4036, 3905, 4037, 4037, 4037, 4038,
1484      3905, 4039, 4039, 4039, 4040, 3905, 4041, 4041, 4041, 4042,
1485
1486      3905, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4044,
1487      3905, 3905, 4045, 4045, 4046, 3905, 3905, 3905, 3905, 3905,
1488      3905, 3905, 4047, 4047, 4047, 4047, 4047, 4047, 4048, 3905,
1489      4049, 4049, 4049, 4050, 3905, 4051, 4051, 4051, 4051, 4051,
1490      4051, 4051, 4051, 4051, 4052, 3905, 4053, 4053, 4053, 4053,
1491      4054, 3905, 4055, 4055, 4055, 4056, 3905, 4057, 4057, 4057,
1492      4057, 4057, 4058, 3905, 4059, 4059, 4059, 4059, 4059, 4060,
1493      3905, 3905, 4061, 4061, 4061, 4061, 3905, 4062, 3905, 3905,
1494      4063, 4063, 4063, 4063, 4064, 3905, 4065, 4065, 4065, 4066,
1495      3905, 4067, 4067, 4067, 4067, 4067, 4068, 4069, 3905, 4069,
1496
1497      3905, 3905, 3905, 4070, 3905, 3905, 3905, 3905, 3905, 3905,
1498      3905, 3905, 4071, 4072, 4072, 3905, 3905, 3905, 3905, 3905,
1499      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1500      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1501      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1502      3905, 3905, 3905, 4073, 4073, 4073, 4073, 4074, 4074, 3905,
1503      4075, 4075, 4075, 4075, 4075, 4076, 4076, 3905, 4077, 4078,
1504      4078, 4079, 3905, 3905, 4079, 4080, 4080, 4081, 4081, 4081,
1505      4082, 4082, 4083, 4083, 4084, 4084, 4085, 4085, 4085, 4086,
1506      4086, 3905, 3905, 3905, 3905, 4087, 4087, 4087, 4087, 4087,
1507
1508      4088, 4088, 4089, 3905, 3905, 4089, 3905, 3905, 4089, 4089,
1509      4089, 4089, 4089, 4089, 4089, 4089, 4089, 4089, 4090, 4090,
1510      3905, 3905, 4091, 4091, 4092, 4092, 4092, 3905, 3905, 4092,
1511      4092, 4092, 4093, 4093, 3905, 4094, 3905, 3905, 3905, 3905,
1512      4095, 4095, 4096, 4097, 4097, 3905, 3905, 4098, 3905, 3905,
1513      4098, 4098, 4098, 4099, 4099, 4100, 3905, 3905, 4101, 4101,
1514      3905, 3905, 4102, 4103, 4103, 4104, 4104, 4105, 4105, 4106,
1515      4106, 4106, 3905, 3905, 4106, 4106, 4106, 4107, 4107, 3905,
1516      4108, 4109, 4109, 3905, 3905, 3905, 3905, 4110, 4110, 4110,
1517      4110, 4110, 4111, 4111, 3905, 3905, 4112, 4113, 4113, 4114,
1518
1519      3905, 3905, 4114, 4114, 4114, 4114, 4114, 4114, 4115, 4115,
1520      4116, 4116, 4116, 4117, 4117, 4118, 3905, 3905, 4119, 4119,
1521      4120, 4120, 3905, 3905, 4120, 4121, 4121, 4122, 3905, 3905,
1522      4122, 4122, 4123, 4123, 3905, 4124, 3905, 3905, 4124, 3905,
1523      4125, 4125, 3905, 4126, 4126, 4126, 4127, 4127, 3905, 3905,
1524      4128, 4129, 4129, 4130, 4130, 4130, 4130, 4131, 4131, 4132,
1525      3905, 3905, 4132, 3905, 3905, 4133, 3905, 3905, 3905, 3905,
1526      3905, 3905, 3905, 3905, 4134, 3905, 4135, 3905, 4135, 3905,
1527      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1528      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1529
1530      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1531      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1532      3905, 4136, 4136, 3905, 3905, 4136, 3905, 4137, 3905, 4137,
1533      3905, 4138, 4138, 4138, 4138, 4138, 3905, 4139, 3905, 4139,
1534      3905, 4140, 3905, 4141, 3905, 4141, 4142, 3905, 3905, 3905,
1535      4142, 3905, 4143, 3905, 4143, 3905, 3905, 4144, 4144, 3905,
1536      3905, 3905, 4145, 3905, 4145, 3905, 3905, 3905, 3905, 3905,
1537      4146, 3905, 4146, 3905, 3905, 4147, 4147, 3905, 3905, 3905,
1538      4148, 3905, 4148, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1539      3905, 4149, 4149, 4149, 4149, 3905, 4150, 3905, 4150, 4151,
1540
1541      4151, 4151, 3905, 3905, 3905, 4151, 3905, 3905, 3905, 3905,
1542      3905, 4151, 4151, 4151, 4151, 4151, 4151, 4151, 4151, 4151,
1543      3905, 4152, 3905, 4152, 3905, 3905, 3905, 3905, 4153, 3905,
1544      4153, 4154, 4154, 4154, 3905, 3905, 3905, 4154, 4154, 4154,
1545      3905, 4155, 3905, 4155, 3905, 4156, 3905, 3905, 3905, 3905,
1546      3905, 3905, 3905, 4157, 3905, 4157, 4158, 3905, 4159, 3905,
1547      4159, 3905, 4160, 3905, 3905, 3905, 4160, 4160, 4160, 3905,
1548      4161, 3905, 4161, 4162, 3905, 3905, 3905, 3905, 4163, 3905,
1549      4163, 3905, 3905, 3905, 4164, 3905, 4165, 3905, 4165, 4166,
1550      4166, 3905, 4167, 3905, 4167, 4168, 4168, 4168, 4168, 3905,
1551
1552      3905, 3905, 3905, 3905, 4168, 4168, 3905, 4169, 3905, 4169,
1553      3905, 4170, 3905, 4171, 3905, 4171, 3905, 3905, 3905, 3905,
1554      4172, 4172, 4172, 4172, 4172, 3905, 4173, 3905, 4173, 3905,
1555      3905, 3905, 4174, 3905, 4175, 3905, 4175, 4176, 3905, 3905,
1556      3905, 3905, 3905, 4176, 3905, 3905, 4176, 4176, 4176, 3905,
1557      4177, 3905, 4177, 3905, 3905, 3905, 3905, 4178, 3905, 4179,
1558      3905, 4179, 4180, 3905, 3905, 3905, 3905, 4181, 3905, 4181,
1559      4182, 4182, 3905, 3905, 3905, 4182, 3905, 4183, 3905, 4183,
1560      4184, 3905, 3905, 3905, 4184, 4184, 3905, 4185, 3905, 4185,
1561      3905, 4186, 3905, 3905, 3905, 4186, 3905, 3905, 4187, 3905,
1562
1563      4187, 4188, 4188, 4188, 3905, 4189, 3905, 4189, 3905, 3905,
1564      3905, 4190, 3905, 4191, 3905, 4191, 3905, 3905, 4192, 4192,
1565      3905, 3905, 4192, 3905, 4193, 3905, 4193, 4194, 4195, 3905,
1566      3905, 3905, 3905, 4196, 3905, 3905, 3905, 3905, 3905, 3905,
1567      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1568      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1569      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1570      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4197, 4197,
1571      3905, 3905, 3905, 4197, 4198, 3905, 4199, 3905, 3905, 4199,
1572      4199, 4199, 4200, 3905, 4201, 4202, 4203, 4203, 4204, 3905,
1573
1574      3905, 3905, 4205, 4205, 3905, 3905, 3905, 4206, 3905, 3905,
1575      3905, 3905, 3905, 3905, 4207, 3905, 3905, 3905, 4208, 4208,
1576      3905, 3905, 3905, 4209, 3905, 3905, 3905, 4210, 4210, 4210,
1577      4210, 4211, 4212, 4212, 4212, 3905, 3905, 3905, 3905, 3905,
1578      4212, 4212, 4212, 4212, 4212, 4212, 4212, 4212, 4212, 4212,
1579      4213, 4214, 4215, 4215, 3905, 3905, 4215, 4215, 4215, 4216,
1580      3905, 3905, 3905, 4217, 3905, 3905, 4218, 3905, 4219, 4219,
1581      4219, 4219, 4220, 4221, 4222, 4223, 4224, 3905, 3905, 4225,
1582      4226, 4227, 4227, 4227, 4227, 3905, 3905, 3905, 4227, 4227,
1583      4228, 3905, 4229, 4230, 3905, 3905, 3905, 3905, 4231, 3905,
1584
1585      3905, 4231, 4231, 4231, 4232, 4233, 4234, 4235, 3905, 3905,
1586      3905, 3905, 3905, 3905, 3905, 3905, 4235, 3905, 3905, 4235,
1587      4236, 3905, 3905, 3905, 3905, 3905, 3905, 4237, 4238, 4239,
1588      4240, 4241, 4241, 4241, 4242, 4243, 4243, 3905, 3905, 4244,
1589      3905, 3905, 3905, 4245, 3905, 4246, 4247, 3905, 3905, 4247,
1590      4248, 4249, 4250, 3905, 3905, 3905, 4251, 4251, 3905, 3905,
1591      3905, 4251, 4252, 4253, 4254, 4254, 3905, 4254, 3905, 3905,
1592      4255, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1593      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1594      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1595
1596      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1597      3905, 3905, 3905, 3905, 4256, 4256, 4256, 4257, 3905, 4258,
1598      3905, 3905, 3905, 4258, 4258, 4258, 4259, 3905, 3905, 3905,
1599      4260, 4261, 4261, 4262, 4263, 4263, 4264, 4265, 4266, 4266,
1600      4267, 4268, 4268, 3905, 3905, 4268, 4269, 3905, 3905, 4270,
1601      4270, 3905, 3905, 3905, 4270, 4270, 4270, 4270, 4270, 4270,
1602      3905, 3905, 4270, 4270, 4270, 4271, 4272, 4273, 4273, 3905,
1603      3905, 3905, 4273, 3905, 3905, 4273, 4274, 3905, 3905, 3905,
1604      3905, 4275, 3905, 3905, 3905, 4276, 4277, 4277, 4277, 4277,
1605      4278, 4279, 4280, 3905, 3905, 4281, 3905, 3905, 3905, 4282,
1606
1607      4283, 4284, 3905, 3905, 4284, 4284, 3905, 3905, 4284, 4285,
1608      3905, 4286, 4287, 3905, 3905, 3905, 3905, 4288, 3905, 3905,
1609      3905, 4288, 4288, 4288, 4289, 3905, 3905, 4290, 4291, 3905,
1610      3905, 3905, 4291, 3905, 3905, 3905, 4291, 4292, 4293, 4294,
1611      4295, 4296, 4297, 4297, 4297, 4298, 4299, 3905, 3905, 3905,
1612      3905, 3905, 4300, 3905, 3905, 3905, 3905, 4301, 3905, 4302,
1613      4303, 3905, 3905, 3905, 3905, 3905, 4304, 4305, 4306, 4307,
1614      4307, 4307, 4308, 4309, 4310, 4310, 3905, 4311, 3905, 3905,
1615      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1616      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1617
1618      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1619      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4312, 4313, 3905,
1620      4314, 4314, 4314, 4314, 4315, 3905, 3905, 3905, 3905, 4316,
1621      4317, 4317, 4318, 3905, 3905, 3905, 3905, 4319, 4320, 3905,
1622      3905, 3905, 3905, 4321, 3905, 3905, 4322, 3905, 3905, 3905,
1623      3905, 3905, 4323, 3905, 3905, 3905, 3905, 3905, 4324, 4324,
1624      4324, 3905, 3905, 4324, 4324, 4324, 3905, 3905, 3905, 3905,
1625      3905, 4324, 4324, 4325, 4326, 4327, 4327, 3905, 3905, 3905,
1626      3905, 3905, 4327, 3905, 3905, 3905, 4328, 4329, 4330, 4330,
1627      4330, 4330, 3905, 3905, 4331, 4332, 3905, 3905, 3905, 4333,
1628
1629      4334, 4335, 4336, 3905, 3905, 3905, 3905, 3905, 4336, 3905,
1630      3905, 3905, 4336, 3905, 3905, 3905, 4337, 4338, 3905, 3905,
1631      3905, 3905, 4339, 4339, 4339, 4339, 4340, 3905, 3905, 3905,
1632      3905, 3905, 4341, 4341, 4341, 4342, 4343, 4344, 4345, 4346,
1633      3905, 3905, 4347, 3905, 3905, 4348, 4349, 3905, 3905, 3905,
1634      4350, 3905, 4351, 3905, 4352, 4353, 3905, 3905, 3905, 3905,
1635      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4354, 4355, 3905,
1636      3905, 3905, 3905, 3905, 3905, 4356, 4357, 4358, 4359, 4359,
1637      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1638      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1639
1640      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1641      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1642      3905, 4360, 4361, 3905, 4362, 4362, 4362, 4362, 3905, 3905,
1643      3905, 4363, 4364, 3905, 3905, 4365, 3905, 3905, 3905, 3905,
1644      3905, 3905, 4366, 4367, 3905, 3905, 3905, 3905, 3905, 3905,
1645      4368, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4369,
1646      3905, 3905, 3905, 4370, 4370, 4370, 3905, 3905, 3905, 3905,
1647      3905, 4370, 4370, 3905, 3905, 3905, 4370, 4370, 4371, 4372,
1648      4373, 4373, 3905, 3905, 3905, 4373, 4374, 4375, 4376, 3905,
1649      3905, 4376, 4376, 4376, 4377, 4378, 4379, 4380, 3905, 3905,
1650
1651      4381, 3905, 3905, 3905, 4381, 4381, 3905, 3905, 3905, 4382,
1652      3905, 3905, 3905, 4383, 4383, 4383, 4383, 4384, 4385, 3905,
1653      3905, 4385, 4386, 4387, 3905, 3905, 4388, 4389, 3905, 3905,
1654      3905, 3905, 3905, 4390, 3905, 3905, 3905, 4391, 3905, 3905,
1655      4392, 4393, 3905, 4394, 3905, 3905, 3905, 3905, 3905, 3905,
1656      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4395,
1657      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4396, 4397,
1658      4398, 4399, 4399, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1659      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1660      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1661
1662      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4400, 4401, 3905,
1663      3905, 3905, 4402, 4402, 4402, 3905, 4403, 4404, 3905, 3905,
1664      3905, 4405, 4406, 4407, 4408, 3905, 3905, 3905, 4409, 4410,
1665      4410, 4410, 3905, 3905, 3905, 4410, 4410, 4410, 3905, 3905,
1666      4411, 3905, 3905, 4412, 4412, 4412, 4413, 4414, 4415, 3905,
1667      3905, 3905, 4415, 4415, 4415, 4416, 4417, 4418, 4419, 4420,
1668      4420, 4420, 3905, 3905, 3905, 3905, 4421, 3905, 3905, 3905,
1669      4422, 4422, 4422, 4423, 4424, 3905, 3905, 3905, 4424, 3905,
1670      3905, 4425, 4426, 3905, 3905, 3905, 3905, 3905, 4427, 4428,
1671      3905, 3905, 3905, 4429, 4430, 3905, 4431, 3905, 3905, 3905,
1672
1673      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1674      3905, 4432, 3905, 3905, 3905, 4433, 4434, 4435, 4436, 4436,
1675      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1676      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1677      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1678      4437, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4438,
1679      4438, 3905, 4439, 3905, 3905, 4440, 4441, 4442, 4443, 3905,
1680      3905, 4444, 4444, 4444, 4444, 3905, 3905, 4444, 4444, 3905,
1681      3905, 3905, 3905, 3905, 4445, 4445, 4445, 4446, 3905, 3905,
1682      3905, 3905, 4447, 4447, 4447, 4447, 3905, 3905, 4448, 4449,
1683
1684      3905, 3905, 4450, 4450, 4450, 3905, 4451, 3905, 3905, 3905,
1685      3905, 3905, 4452, 4452, 3905, 3905, 3905, 3905, 4453, 4454,
1686      4455, 4456, 3905, 3905, 4457, 4458, 3905, 4459, 3905, 3905,
1687      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4460, 3905,
1688      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4461,
1689      4462, 4463, 4464, 4464, 3905, 3905, 3905, 3905, 3905, 3905,
1690      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1691      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1692      3905, 4465, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1693      3905, 3905, 3905, 3905, 3905, 3905, 4441, 4442, 4443, 4444,
1694
1695      4444, 4444, 4444, 3905, 3905, 3905, 4444, 4444, 3905, 3905,
1696      3905, 3905, 3905, 3905, 4445, 4445, 3905, 3905, 4446, 3905,
1697      3905, 3905, 4447, 4447, 4447, 3905, 3905, 3905, 3905, 3905,
1698      3905, 3905, 4449, 3905, 3905, 3905, 4450, 4450, 3905, 3905,
1699      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1700      3905, 3905, 4453, 4454, 4455, 4456, 4457, 4458, 3905, 4459,
1701      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1702      4460, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1703      3905, 3905, 3905, 4461, 4462, 4463, 4464, 4464, 3905, 3905,
1704      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1705
1706      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1707      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4441,
1708      4442, 4443, 4444, 4444, 3905, 3905, 4444, 4444, 4444, 3905,
1709      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4445, 3905, 3905,
1710      3905, 3905, 3905, 3905, 3905, 4447, 4447, 4447, 3905, 3905,
1711      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4449, 4450, 3905,
1712      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1713      3905, 3905, 3905, 3905, 3905, 3905, 4453, 3905, 3905, 3905,
1714      3905, 4456, 4457, 4458, 3905, 3905, 3905, 3905, 3905, 3905,
1715      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4460, 3905, 3905,
1716
1717      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1718      3905, 3905, 3905, 3905, 4463, 4464, 4464, 3905, 3905, 3905,
1719      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1720      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1721      3905, 3905, 3905, 3905, 3905, 3905, 4441, 4442, 4443, 4444,
1722      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4444, 4444, 3905,
1723      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4445, 3905, 3905,
1724      3905, 4447, 3905, 3905, 4447, 3905, 3905, 3905, 3905, 3905,
1725      3905, 3905, 3905, 4450, 3905, 3905, 3905, 3905, 3905, 3905,
1726      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4453,
1727
1728      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1729      4458, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1730      3905, 3905, 4460, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1731      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4463, 4464,
1732      4464, 4464, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1733      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1734      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1735      4441, 3905, 3905, 4443, 4444, 3905, 3905, 3905, 3905, 3905,
1736      3905, 4444, 4444, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1737      3905, 4445, 4447, 3905, 3905, 3905, 4447, 3905, 3905, 3905,
1738
1739      3905, 3905, 3905, 4450, 3905, 3905, 3905, 3905, 3905, 3905,
1740      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1741      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4458, 3905,
1742      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4460, 3905, 3905,
1743      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1744      3905, 3905, 3905, 3905, 4463, 4464, 4464, 4464, 4466, 4467,
1745      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1746      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1747      3905, 3905, 4441, 4443, 4444, 3905, 3905, 4444, 3905, 3905,
1748      3905, 3905, 3905, 3905, 3905, 3905, 4445, 3905, 3905, 3905,
1749
1750      3905, 3905, 3905, 3905, 3905, 4450, 3905, 3905, 3905, 3905,
1751      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1752      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1753      3905, 3905, 3905, 4460, 3905, 3905, 3905, 3905, 3905, 3905,
1754      3905, 3905, 3905, 3905, 3905, 3905, 4463, 4464, 4468, 4469,
1755      4466, 4467, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1756      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1757      4443, 4444, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1758      3905, 3905, 3905, 4445, 3905, 3905, 3905, 3905, 3905, 3905,
1759      3905, 3905, 3905, 3905, 4450, 3905, 3905, 3905, 3905, 3905,
1760
1761      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1762      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1763      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4463,
1764      4468, 4464, 4470, 4469, 4471, 4464, 3905, 3905, 3905, 3905,
1765      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1766      3905, 3905, 3905, 3905, 4443, 4444, 3905, 3905, 3905, 3905,
1767      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4445, 3905, 3905,
1768      3905, 3905, 4450, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1769      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1770      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4463,
1771
1772      4470, 3905, 4471, 4464, 3905, 3905, 3905, 3905, 3905, 3905,
1773      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1774      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1775      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1776      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1777      3905, 3905, 3905, 3905, 3905, 3905, 4463, 3905, 3905, 3905,
1778      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1779      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1780      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1781      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1782
1783      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4463, 3905, 3905,
1784      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1785      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1786      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1787      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 4463,
1788      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1789      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1790      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1791      3905, 3905, 3905, 3905, 4463, 3905, 3905, 3905, 3905, 3905,
1792      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1793
1794      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1795      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4463, 3905, 3905,
1796      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1797      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1798      3905, 3905, 3905, 3905, 3905, 3905, 4463, 3905, 3905, 3905,
1799      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1800      3905, 3905, 3905, 3905, 3905, 3905, 3905, 4463, 3905, 3905,
1801      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1802      4463, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1803      3905, 3905, 3905, 4463, 4463, 3905, 3905, 3905, 3905, 3905,
1804
1805      3905, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463,
1806      4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463,
1807      4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463,
1808      4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463,
1809      4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463,
1810      4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463,
1811      4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463,
1812      4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463,
1813      4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463,
1814      4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463,
1815
1816      4463, 4463, 4463, 3905,    0, 3905, 3905, 3905, 3905, 3905,
1817      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1818      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1819      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1820      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1821      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1822      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1823      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1824      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1825      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1826
1827      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1828      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1829      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1830      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1831      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1832      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1833      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1834      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1835      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1836      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1837
1838      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1839      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1840      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1841      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1842      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1843      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1844      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1845      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1846      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1847      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1848
1849      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1850      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1851      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1852      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1853      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1854      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1855      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1856      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1857      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1858      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1859
1860      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1861      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1862      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1863      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1864      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1865      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1866      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1867      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1868      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1869      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1870
1871      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1872      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1873      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1874      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1875      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1876      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1877      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
1878      3905
1879     } ;
1880
1881 static yyconst flex_uint16_t yy_nxt[14073] =
1882     {   0,
1883      3905,  294,  295,  294,  294,  295,  294,  294,  295,  294,
1884       294,  295,  294,  299,  295,  299,  305,  296,  302,  305,
1885       296,  302,  999,  297, 3905,  303,  297,  796,  303,  300,
1886       299,  295,  299,  730,  306,  308,  309,  306,  308,  309,
1887       310,  311,  748,  310,  311,  730,  300,  315,  316,  731,
1888       312,  308,  309,  312,  313,  733,  310,  308,  309, 1240,
1889       313,  732,  310,  315,  316,  797,  312,  327,  295,  327,
1890      1793,  732,  312,  327,  295,  327,  845,  327,  295,  327,
1891       327,  295,  327,  328,  295,  295,  295,  785, 1795,  328,
1892       846,  733,  317,  329,  786,  776,  329,  729,  729,  729,
1893
1894       330,  729,  729,  729,  729,  729,  729,  732,  317,  318,
1895       319,  295,  319,  318,  318,  318,  318,  318,  318,  318,
1896       320,  318,  318,  318,  733,  318,  322,  318,  323,  318,
1897       295,  295,  295,  327,  295,  327,  327,  295,  327,  841,
1898       732,  327,  295,  327,  788,  832,  330,  842,  776,  328,
1899       833, 1005,  328,  843, 1006,  318,  318,  331,  327,  295,
1900       327,  729,  729,  729,  787,  787,  324,  729,  729,  729,
1901       729,  729,  729, 1796,  331,  325,  318,  319,  295,  319,
1902       318,  318,  318,  318,  318,  318,  318,  320,  318,  318,
1903       318,  837,  318,  322,  318,  323,  318,  295,  295,  295,
1904
1905       295,  295,  295,  327,  295,  327,  308,  309,  327,  295,
1906       327,  310,  838,  332,  788,  733,  332,  776,  776,  329,
1907       883,  688,  318,  318,  329,  295,  295,  295,  295,  295,
1908       295,  732,  884,  324,  327,  295,  327,  327,  295,  327,
1909      1126,  333,  325, 1127,  333,  327,  295,  327,  796, 1798,
1910       331,  689,  733,  331,  327,  295,  327,  729,  729,  729,
1911       813,  334,  729,  729,  729,  729,  729,  729,  732,  929,
1912       334,  335,  336,  295,  336,  335,  335,  335,  335,  335,
1913       335,  335,  337,  335,  335,  335,  733,  335,  339,  335,
1914       340,  335,  345,  295,  345,  345,  295,  345,  295,  295,
1915
1916       295,  776,  732,  295,  295,  295,  862,  797,  346,  733,
1917       863,  346, 1799,  776,  347, 1802,  801,  335,  335,  347,
1918       345,  295,  345,  341,  864,  732,  342,  729,  729,  729,
1919       729,  729,  729,  729,  729,  729,  346, 1803,  343,  335,
1920       336,  295,  336,  335,  335,  335,  335,  335,  335,  335,
1921       337,  335,  335,  335,  733,  335,  339,  335,  340,  335,
1922       345,  295,  345,  345,  295,  345,  345,  295,  345, 1021,
1923       732,  361,  295,  361,  865, 1804,  346,  733, 1806,  348,
1924      1022, 1019,  348, 1023,  807,  335,  335,  362,  361,  295,
1925       361,  341,  818,  732,  342,  729,  729,  729,  729,  729,
1926
1927       729,  729,  729,  729,  362, 1020,  343,  349,  350,  295,
1928       350,  349,  349,  349,  349,  349,  349,  349,  351,  349,
1929       349,  349,  733,  349,  353,  349,  354,  349,  295,  295,
1930       295,  295,  295,  295,  361,  295,  361,  824,  732,  361,
1931       295,  361, 1497,  733,  363,  776,  733,  363, 1498,  733,
1932       362, 1808,  851,  349,  349,  362,  361,  295,  361,  732,
1933       970,  355,  732,  356,  813,  732,  357,  729,  729,  729,
1934       358, 1817,  364, 1820,  359,  349,  350,  295,  350,  349,
1935       349,  349,  349,  349,  349,  349,  351,  349,  349,  349,
1936       776,  349,  353,  349,  354,  349,  361,  295,  361,  373,
1937
1938       295,  373,  373,  295,  373,  776,  847,  385,  295,  385,
1939       971,  733,  364,  788,  848,  374, 1031,  776,  374,  849,
1940       855,  349,  349,  386,  385,  295,  385,  732, 1652,  355,
1941      1032,  356,  818, 1828,  357,  729,  729,  729,  358, 1830,
1942       386, 1653,  359,  365,  366,  295,  366,  365,  365,  365,
1943       365,  365,  365,  365,  367,  365,  365,  365,  733,  365,
1944       369,  365,  370,  365,  397,  295,  397,  397,  295,  397,
1945       295,  295,  295,  776,  732,  295,  295,  295,  908, 1832,
1946       398,  788,  909,  398, 1833,  776,  347, 1834,  733,  365,
1947       365,  347,  397,  295,  397,  397,  295,  397,  729,  729,
1948
1949       729,  729,  729,  729,  732,  864,  824, 1836,  398, 1837,
1950      1841,  398, 1845,  371,  365,  366,  295,  366,  365,  365,
1951       365,  365,  365,  365,  365,  367,  365,  365,  365,  733,
1952       365,  369,  365,  370,  365,  397,  295,  397,  397,  295,
1953       397,  409,  295,  409, 1847,  732,  409,  295,  409,  949,
1954      1850,  399, 1852, 1857,  399,  788,  950,  410,  776,  776,
1955       365,  365,  410,  295,  295,  295,  295,  295,  295,  729,
1956       729,  729,  729,  729,  729,  729,  729,  729, 1858,  347,
1957       738, 1862,  347, 1869,  371,  375,  376,  295,  376,  375,
1958       375,  375,  375,  375,  375,  375,  377,  375,  375,  375,
1959
1960       733,  375,  379,  375,  380,  375,  409,  295,  409,  409,
1961       295,  409,  409,  295,  409,  752,  732,  409,  295,  409,
1962       733, 1870,  410,  739,  875,  410,  916,  834,  411,  740,
1963       770,  375,  375,  411,  741,  381,  732,  885,  915,  742,
1964      1261,  921,  382, 1871, 1628,  383,  375,  376,  295,  376,
1965       375,  375,  375,  375,  375,  375,  375,  377,  375,  375,
1966       375, 1038,  375,  379,  375,  380,  375,  422,  295,  422,
1967       422,  295,  422,  295,  295,  295,  916,  776,  295,  295,
1968       295, 1038, 1872,  423,  915, 1039,  423, 1873,  733,  347,
1969       776,  921,  375,  375,  347,  871,  381,  729,  729,  729,
1970
1971       729,  729,  729,  382,  732, 1020,  383,  387,  388,  295,
1972       388,  387,  387,  387,  387,  387,  387,  387,  389,  387,
1973       387,  387,  733,  387,  391,  387,  392,  387,  422,  295,
1974       422,  422,  295,  422,  422,  295,  422,  776,  732,  422,
1975       295,  422,  995, 1874,  423,  733, 1031,  423, 1875,  996,
1976       424, 1876,  890,  387,  387,  424,  438,  295,  438,  393,
1977      1046,  732,  394,  729,  729,  729,  729,  729,  729,  729,
1978       729,  729,  439, 1877,  395,  387,  388,  295,  388,  387,
1979       387,  387,  387,  387,  387,  387,  389,  387,  387,  387,
1980       733,  387,  391,  387,  392,  387,  438,  295,  438,  455,
1981
1982       295,  455,  455,  295,  455, 1040,  732,  295,  295,  295,
1983      1878, 1879,  439,  733, 1882,  456, 1041, 1019,  456, 1023,
1984       895,  387,  387,  330,  295,  295,  295,  393,  929,  732,
1985       394,  729,  729,  729,  729,  729,  729,  729,  729,  729,
1986       330, 1039,  395,  400,  401,  295,  401,  400,  400,  400,
1987       400,  400,  400,  400,  402,  400,  400,  400,  733,  400,
1988       404,  400,  405,  400,  455,  295,  455,  455,  295,  455,
1989       455,  295,  455,  943,  732,  455,  295,  455, 1885, 1886,
1990       456,  776, 1888,  456, 1889, 1891,  457, 1892,  944,  400,
1991       400,  457,  466,  295,  466,  406,  729,  729,  729,  729,
1992
1993       729,  729,  729,  729,  729,  729,  729,  729,  467, 1893,
1994       407,  400,  401,  295,  401,  400,  400,  400,  400,  400,
1995       400,  400,  402,  400,  400,  400,  733,  400,  404,  400,
1996       405,  400,  466,  295,  466,  295,  295,  295,  295,  295,
1997       295, 1031,  732,  466,  295,  466, 1894, 1898,  467, 1899,
1998      1900,  330, 1901, 1902,  330, 1051,  951,  400,  400,  467,
1999       466,  295,  466,  406,  729,  729,  729,  729,  729,  729,
2000       729,  729,  729,  729,  729,  729,  467, 1905,  407,  412,
2001       413,  295,  413,  412,  412,  412,  412,  412,  412,  412,
2002       414,  412,  412,  412,  733,  412,  416,  412,  417,  412,
2003
2004       466,  295,  466,  466,  295,  466,  481,  295,  481,  776,
2005       732,  481,  295,  481, 1908, 1909,  468,  733, 1031,  468,
2006      1910, 1913,  482, 1914,  900,  412,  412,  482,  295,  295,
2007       295,  418, 1053,  732,  419,  729,  729,  729,  729,  729,
2008       729,  729,  729,  729,  483, 1915,  420,  412,  413,  295,
2009       413,  412,  412,  412,  412,  412,  412,  412,  414,  412,
2010       412,  412,  733,  412,  416,  412,  417,  412,  295,  295,
2011       295,  481,  295,  481,  481,  295,  481, 1749,  732,  481,
2012       295,  481, 1916, 1917,  483,  733, 1920,  482, 1924, 1750,
2013       482,  733,  910,  412,  412,  484,  481,  295,  481,  418,
2014
2015       963,  732,  419,  729,  729,  729,  970,  732,  729,  729,
2016       729, 3905,  484, 1925,  420,  425,  426,  295,  426,  425,
2017       425,  425,  425,  425,  425,  425,  427,  425,  425,  425,
2018       733,  425,  429,  425,  430,  425,  495,  295,  495,  495,
2019       295,  495,  505,  295,  505,  990,  732,  505,  295,  505,
2020       779,  911,  496,  776,  920,  496,  999,  733,  506,  776,
2021       997,  425,  425,  506,  762,  431,  780,  776,  772,  919,
2022      1926, 1000,  432,  732, 1928,  433,  729,  729,  729,  434,
2023      1932,  435,  436,  425,  426,  295,  426,  425,  425,  425,
2024       425,  425,  425,  425,  427,  425,  425,  425,  776,  425,
2025
2026       429,  425,  430,  425,  295,  295,  295,  295,  295,  295,
2027       505,  295,  505,  776,  939,  505,  295,  505,  940, 1933,
2028       507, 1935,  941,  507, 1936,  733,  506, 1017, 1261,  425,
2029       425,  506,  934,  431,  729,  729,  729,  729,  729,  729,
2030       432,  732, 1018,  433,  729,  729,  729,  434, 1864,  435,
2031       436,  440,  441,  295,  441,  440,  440,  440,  440,  440,
2032       440,  440,  442,  440,  440,  440,  733,  440,  444,  440,
2033       445,  440,  505,  295,  505,  505,  295,  505,  520,  295,
2034       520, 1017,  732,  520,  295,  520, 1939, 1940,  508, 1942,
2035      1943,  508, 1184,  733,  521, 1946, 1068,  440,  440,  521,
2036
2037       945,  446,  447,  729,  729,  729,  951, 1018,  448,  732,
2038      1968,  449,  729,  729,  729,  450, 1969,  451,  452,  453,
2039       440,  441,  295,  441,  440,  440,  440,  440,  440,  440,
2040       440,  442,  440,  440,  440,  733,  440,  444,  440,  445,
2041       440,  295,  295,  295,  295,  295,  295,  520,  295,  520,
2042      1021,  732,  520,  295,  520,  788, 1973,  330, 1292,  776,
2043       330, 1022,  733,  521, 1185, 1187,  440,  440,  521,  956,
2044       446,  447,  729,  729,  729, 1293, 1976,  448,  732, 1046,
2045       449,  729,  729,  729,  450, 1978,  451,  452,  453,  458,
2046       459,  295,  459,  458,  458,  458,  458,  458,  458,  458,
2047
2048       460,  458,  458,  458,  733,  458,  462,  458,  463,  458,
2049       520,  295,  520,  520,  295,  520,  532,  295,  532, 1987,
2050       732,  532,  295,  532, 1988, 1989,  522, 1990,  733,  522,
2051      1992, 2000,  533,  997, 2002,  458,  458,  533,  729,  729,
2052       729,  729,  729,  729,  732,  915,  464,  458,  459,  295,
2053       459,  458,  458,  458,  458,  458,  458,  458,  460,  458,
2054       458,  458,  733,  458,  462,  458,  463,  458,  543,  295,
2055       543,  543,  295,  543,  554,  295,  554, 1040,  732,  554,
2056       295,  554,  788,  916,  544,  917,  776,  544, 1041, 2005,
2057       555, 1185, 2006,  458,  458,  555, 2009, 2011,  918, 2012,
2058
2059       919,  729,  729,  729,  464,  469,  470,  295,  470,  469,
2060       469,  469,  469,  469,  469,  469,  471,  469,  469,  469,
2061       733,  469,  473,  469,  474,  469,  569,  295,  569,  569,
2062       295,  569,  295,  295,  295, 2014,  732,  295,  295,  295,
2063      2015, 2016,  570, 2017,  733,  570, 2018, 2022,  571, 2023,
2064      2024,  469,  469,  571,  475,  733,  476,  729,  729,  729,
2065       732, 2029,  477,  729,  729,  729,  729,  729,  729,  478,
2066      2033,  732,  479,  469,  470,  295,  470,  469,  469,  469,
2067       469,  469,  469,  469,  471,  469,  469,  469, 2037,  469,
2068       473,  469,  474,  469,  580,  295,  580,  580,  295,  580,
2069
2070       580,  295,  580, 2039, 1028,  580,  295,  580, 2041, 2043,
2071       581, 1029, 1261,  581, 2044, 2045,  582, 1030, 2047,  469,
2072       469,  582,  475, 2054,  476,  729,  729,  729, 1263, 2058,
2073       477,  729,  729,  729,  729,  729,  729,  478, 2059, 1292,
2074       479,  485,  486,  295,  486,  485,  485,  485,  485,  485,
2075       485,  485,  487,  485,  485,  485, 1445,  485,  489,  485,
2076       490,  485,  295,  295,  295,  295,  295,  295,  580,  295,
2077       580, 2061, 1652,  580,  295,  580, 2068, 1591,  583,  977,
2078      2070,  583, 2071, 1797,  581, 1659,  978,  485,  485,  581,
2079       580,  295,  580,  491, 1293,  732, 1659, 2072,  492,  729,
2080
2081       729,  729,  729,  729,  729, 1867,  584,  729,  729,  729,
2082       493,  485,  486,  295,  486,  485,  485,  485,  485,  485,
2083       485,  485,  487,  485,  485,  485, 2077,  485,  489,  485,
2084       490,  485,  580,  295,  580,  295,  295,  295,  295,  295,
2085       295, 1261, 2078,  580,  295,  580, 2079, 2081,  584,  733,
2086      2082,  507, 2083, 2084,  507, 2085,  985,  485,  485,  582,
2087       580,  295,  580,  491, 2086,  732, 2074, 2087,  492,  729,
2088       729,  729,  729,  729,  729, 2088,  582, 1280, 1280, 1280,
2089       493,  497,  498,  295,  498,  497,  497,  497,  497,  497,
2090       497,  497,  499,  497,  497,  497, 2089,  497,  501,  497,
2091
2092       502,  497,  295,  295,  295,  295,  295,  295,  580,  295,
2093       580, 2090, 1028,  580,  295,  580, 1400, 2092,  585, 1029,
2094      2093,  585, 2094, 2097,  584, 1036, 1401,  497,  497,  584,
2095      1003, 1003, 1003, 1402, 1265,  503,  497,  498,  295,  498,
2096       497,  497,  497,  497,  497,  497,  497,  499,  497,  497,
2097       497, 2100,  497,  501,  497,  502,  497,  580,  295,  580,
2098       580,  295,  580,  599,  295,  599, 2101, 1045,  599,  295,
2099       599, 2102, 2103,  586, 1029, 2104,  586, 2105, 2106,  600,
2100      1030, 2107,  497,  497,  600, 1003, 1003, 1003, 2110, 2113,
2101       503,  509,  510,  295,  510,  509,  509,  509,  509,  509,
2102
2103       509,  509,  511,  509,  509,  509, 2120,  509,  513,  509,
2104       514,  509,  295,  295,  295,  295,  295,  295,  599,  295,
2105       599, 2121, 1045,  599,  295,  599, 2122, 2123,  363, 1029,
2106      2124,  363, 2126, 1028,  600, 1036, 1045,  509,  509,  600,
2107      1029,  515, 2131, 1029, 2132, 1004, 1186, 2176,  516, 1186,
2108      2177,  517, 2183, 1280, 1280, 1280, 2189, 2190,  518,  509,
2109       510,  295,  510,  509,  509,  509,  509,  509,  509,  509,
2110       511,  509,  509,  509, 2191,  509,  513,  509,  514,  509,
2111       599,  295,  599,  599,  295,  599,  611,  295,  611, 2192,
2112      2195,  611,  295,  611, 2201, 2203,  601, 2209, 2213,  601,
2113
2114      2216, 2217,  612, 2220, 2221,  509,  509,  612, 2222,  515,
2115      1272, 1272, 1272, 2223, 1273, 2224,  516, 1274, 1281,  517,
2116      1303, 1303, 1303, 1887, 1887, 1887,  518,  523,  524,  295,
2117       524,  523,  523,  523,  523,  523,  523,  523,  525,  523,
2118       523,  523, 2225,  523,  527,  523,  528,  523,  625,  295,
2119       625,  625,  295,  625,  636,  295,  636, 2226, 2233,  636,
2120       295,  636, 2234, 2235,  626, 2237, 2239,  626, 2247, 2252,
2121       637, 2253, 2254,  523,  523,  637, 1303, 1303, 1303,  529,
2122      1880, 1880, 1880, 2256,  530,  523,  524,  295,  524,  523,
2123       523,  523,  523,  523,  523,  523,  525,  523,  523,  523,
2124
2125      2269,  523,  527,  523,  528,  523,  295,  295,  295,  295,
2126       295,  295,  636,  295,  636, 1867, 2283,  636,  295,  636,
2127      2284, 2285,  347, 2289, 2290,  347, 2292, 1881,  637, 2293,
2128      2294,  523,  523,  637, 1303, 1303, 1303,  529, 1883, 1883,
2129      1883, 1304,  530,  534,  535,  295,  535,  534,  534,  534,
2130       534,  534,  534,  534,  536,  534,  534,  534, 2279,  534,
2131       538,  534,  539,  534,  636,  295,  636,  636,  295,  636,
2132       648,  295,  648, 1867, 2295,  648,  295,  648, 2296, 2297,
2133       638, 1261, 2300,  638, 2301, 1884,  649, 2302, 2303,  534,
2134       534,  649,  661,  295,  661,  661,  295,  661, 2278, 1281,
2135
2136       540, 2304, 1348, 1348, 1348, 2308, 1349, 2280,  662, 1350,
2137      2309,  662, 2310,  541,  534,  535,  295,  535,  534,  534,
2138       534,  534,  534,  534,  534,  536,  534,  534,  534, 2286,
2139       534,  538,  534,  539,  534,  295,  295,  295,  295,  295,
2140       295,  661,  295,  661, 2311, 2287,  661,  295,  661, 2313,
2141      2314,  330, 2315, 2288,  330, 2322, 2324,  662, 2325, 2326,
2142       534,  534,  662,  661,  295,  661,  661,  295,  661, 2327,
2143      2328,  540, 2331, 1384, 1384, 1384, 2333, 1385, 2364,  663,
2144      1386, 2365,  663, 2366,  541,  545,  546,  295,  546,  545,
2145       545,  545,  545,  545,  545,  545,  547,  545,  545,  545,
2146
2147      2305,  545,  549,  545,  550,  545,  675,  295,  675,  675,
2148       295,  675,  295,  295,  295, 2372, 2306,  295,  295,  295,
2149      2373, 2377,  676, 2378, 2307,  676, 2381, 2382,  677, 2386,
2150      2389,  545,  545,  677,  675,  295,  675, 1387, 1387, 1387,
2151      2393, 1388, 2394, 2395, 1389, 2398, 2401,  551, 2405, 2406,
2152       676, 2407,  552,  545,  546,  295,  546,  545,  545,  545,
2153       545,  545,  545,  545,  547,  545,  545,  545, 2412,  545,
2154       549,  545,  550,  545,  675,  295,  675,  675,  295,  675,
2155       675,  295,  675, 2414, 2415,  700,  295,  700, 2416, 2417,
2156       676, 2419, 2422,  678, 2424, 2427,  678,  308,  309,  545,
2157
2158       545,  701,  310,  700,  295,  700, 1403, 1403, 1403, 2443,
2159      1404, 2444,  688, 1405, 2445,  551, 1890, 1890, 1890,  701,
2160       552,  556,  557,  295,  557,  556,  556,  556,  556,  556,
2161       556,  556,  558,  556,  556,  556, 2450,  556,  560,  556,
2162       561,  556,  689,  711,  295,  711,  711,  295,  711,  711,
2163       295,  711, 2451,  711,  295,  711, 1011, 1011, 1011,  712,
2164      2454, 2455,  712, 2456, 2459,  713, 2452,  556,  556,  713,
2165       562,  563,  564, 1012, 2453, 1407, 1407, 1407,  565, 1408,
2166      2469,  566, 1409, 2478, 1867, 1280, 1280, 1280,  567,  556,
2167       557,  295,  557,  556,  556,  556,  556,  556,  556,  556,
2168
2169       558,  556,  556,  556, 2479,  556,  560,  556,  561,  556,
2170       295,  295,  295,  295,  295,  295,  711,  295,  711, 2457,
2171      2480,  711,  295,  711, 1261, 2481,  330, 2458, 2482,  330,
2172      2471, 2473,  712, 2485, 2487,  556,  556,  712,  562,  563,
2173       564, 1425, 1425, 1425, 2488, 1426,  565, 2489, 1427,  566,
2174      1304, 1895, 1895, 1895, 2493, 2494,  567,  572,  573,  295,
2175       573,  572,  572,  572,  572,  572,  572,  572,  574,  572,
2176       572,  572, 2496,  572,  576,  572,  577,  572,  711,  295,
2177       711,  711,  295,  711,  295,  295,  295, 1896, 1867,  295,
2178       295,  295, 2497, 2498,  714, 2499, 2502,  714, 2506, 2507,
2179
2180       332, 2508, 2510,  572,  572,  332,  711,  295,  711,  711,
2181       295,  711, 1435, 1435, 1435, 2516, 1436, 2518, 2530, 1437,
2182      2472, 2531,  713, 2532, 2536,  713, 2537,  578,  572,  573,
2183       295,  573,  572,  572,  572,  572,  572,  572,  572,  574,
2184       572,  572,  572, 2538,  572,  576,  572,  577,  572,  295,
2185       295,  295,  295,  295,  295,  711,  295,  711, 2544, 2545,
2186       711,  295,  711, 2546, 2549,  333, 2553, 2554,  333, 2555,
2187      2556,  714, 2559, 2560,  572,  572,  714,  711,  295,  711,
2188       711,  295,  711, 1447, 1447, 1447, 2561, 1448, 2562, 2563,
2189      1449, 2575, 2579,  715, 2582, 2583,  715, 2589,  578,  587,
2190
2191       588,  295,  588,  587,  587,  587,  587,  587,  587,  587,
2192       589,  587,  587,  587, 2594,  587,  591,  587,  592,  587,
2193       726,  295,  726,  726,  295,  726,  295,  295,  295, 2596,
2194      2597,  295,  295,  295, 2598, 2602,  727, 2603, 2604,  727,
2195      2605, 2606,  347, 2607, 2608,  587,  587,  347,  726,  295,
2196       726, 2609, 2610,  593, 2611,  594, 2616, 1867,  595, 1897,
2197      1897, 1897,  596, 2633,  727, 1867,  597,  587,  588,  295,
2198       588,  587,  587,  587,  587,  587,  587,  587,  589,  587,
2199       587,  587, 2634,  587,  591,  587,  592,  587,  726,  295,
2200       726,  726,  295,  726,  726,  295,  726, 2635, 1073, 1073,
2201
2202      1073, 1092, 1092, 1092,  727, 2620, 2636,  728, 2638, 2619,
2203       728, 2640, 2641,  587,  587, 1074, 2642,  748, 1093, 2644,
2204      2645,  593,  875,  594, 2646, 2647,  595,  774, 2648, 2649,
2205       596, 2650,  876, 2651,  597,  602,  603,  295,  603,  602,
2206       602,  602,  602,  602,  602,  602,  604,  602,  602,  602,
2207      2672,  602,  606,  602,  607,  602,  775, 2673, 2678, 1094,
2208      1094, 1094,  752, 2674, 2679, 1276, 1276, 1276,  754, 2685,
2209       776, 2686,  777, 2675,  760,  762, 1095, 2687, 2703,  760,
2210       778,  602,  602, 1278, 2704,  877, 2705, 2720,  990, 1450,
2211      1450, 1450,  608, 1451, 2721, 2722, 1452, 2725,  774, 2727,
2212
2213      1903, 1903, 1903, 2728, 2729,  609,  602,  603,  295,  603,
2214       602,  602,  602,  602,  602,  602,  602,  604,  602,  602,
2215       602, 2730,  602,  606,  602,  607,  602,  775, 2731, 1104,
2216      1104, 1104, 1107, 1107, 1107, 2732, 2733, 1121, 1121, 1121,
2217      2734,  776, 2735,  777, 2736,  760, 1105, 1904, 2737, 1108,
2218      2738,  778,  602,  602, 1122, 1128, 1128, 1128, 1137, 1137,
2219      1137, 2750, 2755,  608, 1464, 1464, 1464, 2756, 1465, 2759,
2220      2760, 1466, 1129, 2761, 1867, 1138,  609,  613,  614,  295,
2221       614,  613,  613,  613,  613,  613,  613,  613,  615,  613,
2222       613,  613, 2762,  613,  617,  613,  618,  613, 1139, 1139,
2223
2224      1139, 1149, 1149, 1149, 1157, 1157, 1157, 2753, 1161, 1161,
2225      1161, 1173, 1173, 1173, 2765, 1140, 2766, 2757, 1150, 2767,
2226      2768, 1158, 1867,  613,  613, 1162, 2758, 2769, 1174, 1475,
2227      1475, 1475,  619, 1476,  620, 2771, 1477, 2772,  621, 2773,
2228      1906, 1906, 1906,  622,  623,  613,  614,  295,  614,  613,
2229       613,  613,  613,  613,  613,  613,  615,  613,  613,  613,
2230      2754,  613,  617,  613,  618,  613, 1195, 1195, 1195, 1201,
2231      1201, 1201, 1217, 1217, 1217, 2763, 1223, 1223, 1223, 1229,
2232      1229, 1229, 2775, 1196, 2764, 2776, 1202, 1884, 2777, 1218,
2233      2779,  613,  613, 1224, 2780, 2782, 1230, 1482, 1482, 1482,
2234
2235       619, 1483,  620, 2800, 1484, 2801,  621, 1907, 1907, 1907,
2236      2802,  622,  623,  627,  628,  295,  628,  627,  627,  627,
2237       627,  627,  627,  627,  629,  627,  627,  627, 2803,  627,
2238       631,  627,  632,  627, 1237, 1237, 1237, 1249, 1249, 1249,
2239      1011, 1011, 1011, 2807, 1320, 1320, 1320, 1324, 1324, 1324,
2240      2808, 1238, 2815, 2816, 1250, 2823, 2809, 1012, 2810,  627,
2241       627, 1321, 2824, 2825, 1325,  633, 1500, 1500, 1500, 2837,
2242      1501, 2811, 2838, 1502, 2853, 1911, 1911, 1911, 2854, 2855,
2243       634,  627,  628,  295,  628,  627,  627,  627,  627,  627,
2244       627,  627,  629,  627,  627,  627, 2856,  627,  631,  627,
2245
2246       632,  627, 1276, 1276, 1276, 1327, 1327, 1327, 1327, 1327,
2247      1327, 1912, 2857, 3905, 3905, 3905, 2859, 3905, 3905, 3905,
2248      1278, 2860, 2861, 1329, 2862, 2257, 1329,  627,  627, 2863,
2249      3905, 2258, 2864,  633, 3905, 2259, 1530, 1530, 1530, 1279,
2250      1531, 2260, 2865, 1532, 2866, 1330, 2867, 2868,  634,  639,
2251       640,  295,  640,  639,  639,  639,  639,  639,  639,  639,
2252       641,  639,  639,  639, 1322,  639,  643,  639,  644,  639,
2253      1337, 1337, 1337, 1343, 1343, 1343, 2869, 1326, 2870, 1323,
2254      1337, 1337, 1337, 1343, 1343, 1343, 2872, 2812, 1339, 2813,
2255      2873, 1345, 1911, 1911, 1911,  639,  639, 2876, 1339, 2877,
2256
2257       645, 1345, 2814, 1906, 1906, 1906,  646,  639,  640,  295,
2258       640,  639,  639,  639,  639,  639,  639,  639,  641,  639,
2259       639,  639, 2874,  639,  643,  639,  644,  639, 1896, 2878,
2260      1340, 2875, 1073, 1073, 1073, 2879, 2882, 1352, 1352, 1352,
2261      2883, 1352, 1352, 1352, 1356, 1356, 1356, 2880, 1346, 1074,
2262      1919, 2884, 1261,  639,  639, 1354, 2881, 2889,  645, 1354,
2263      2890, 1357, 2891, 1867,  646,  650,  651,  295,  651,  650,
2264       650,  650,  650,  650,  650,  650,  652,  650,  650,  650,
2265      2892,  650,  654,  650,  655,  650, 1360, 1360, 1360, 1355,
2266      1362, 1362, 1362, 2886, 2893, 1362, 1362, 1362, 3905, 3905,
2267
2268      3905, 2887, 2894, 1361, 1366, 1366, 1366, 2895, 1364, 2896,
2269      2897,  650,  650, 1364,  656, 3905,  657, 2080, 2080, 2080,
2270      2898, 1367,  658, 1539, 1539, 1539, 2899, 1540, 2900, 2901,
2271      1541, 2902, 2903,  659,  650,  651,  295,  651,  650,  650,
2272       650,  650,  650,  650,  650,  652,  650,  650,  650, 1358,
2273       650,  654,  650,  655,  650, 1368, 1368, 1368, 1370, 1370,
2274      1370, 1370, 1370, 1370, 1359, 2905, 2906, 1365, 2907, 1374,
2275      1374, 1374, 1369, 3905, 3905, 3905, 1372, 2908, 2909, 1372,
2276       650,  650, 2910,  656, 2911,  657, 1375, 1880, 1880, 1880,
2277      3905,  658, 1564, 1564, 1564, 2923, 1565, 2924, 2927, 1566,
2278
2279      2928, 2929,  659,  664,  665,  295,  665,  664,  664,  664,
2280       664,  664,  664,  664,  666,  664,  664,  664, 2930,  664,
2281       668,  664,  669,  664, 1376, 1378, 1378, 1378, 1380, 1380,
2282      1380, 2261, 2933, 1373, 1380, 1380, 1380, 2262, 2934, 1377,
2283      2931, 2263, 1379, 1396, 1396, 1396, 1382, 2264, 2937,  664,
2284       664, 2932, 1382, 2938,  670, 1573, 1573, 1573, 2935, 1574,
2285       671, 1398, 1575, 1867,  672, 1883, 1883, 1883, 2946, 2936,
2286       673,  664,  665,  295,  665,  664,  664,  664,  664,  664,
2287       664,  664,  666,  664,  664,  664, 2947,  664,  668,  664,
2288       669,  664, 1092, 1092, 1092, 1094, 1094, 1094, 1390, 1390,
2289
2290      1390, 1582, 1582, 1582, 2948, 1583, 1383, 2888, 1584, 1093,
2291      2959, 2977, 1095, 2982, 2983, 1391, 2971,  664,  664, 3905,
2292      3905, 3905,  670, 1593, 1593, 1593, 2972, 1594,  671, 2973,
2293      1595, 2988,  672, 2091, 2091, 2091, 3905, 2989,  673,  679,
2294       680,  295,  680,  679,  679,  679,  679,  679,  679,  679,
2295       681,  679,  679,  679, 2990,  679,  683,  679,  684,  679,
2296      1887, 1887, 1887, 3905, 3905, 3905, 2991, 1104, 1104, 1104,
2297      2992, 2993, 1392, 3905, 3905, 3905, 2994, 3905, 3905, 3905,
2298      3905, 1396, 1396, 1396, 1105,  679,  679, 1890, 1890, 1890,
2299      3905, 2995, 2996,  685, 3905, 2997,  686, 2999, 3000, 1398,
2300
2301      2095, 2095, 2095,  687,  679,  680,  295,  680,  679,  679,
2302       679,  679,  679,  679,  679,  681,  679,  679,  679, 1393,
2303       679,  683,  679,  684,  679, 1394, 1107, 1107, 1107, 1399,
2304      1395, 1410, 1410, 1410, 1421, 1421, 1421, 1421, 1421, 1421,
2305      1121, 1121, 1121, 1108, 1428, 1428, 1428, 3001, 1411, 3002,
2306       679,  679, 1423, 2974, 3003, 1423, 3004, 1122,  685, 3005,
2307      3006,  686, 1430, 2975, 3007, 2096, 2976, 3008,  687,  690,
2308       691,  295,  691,  690,  690,  690,  690,  690,  690,  690,
2309       692,  690,  690,  690, 3009,  690,  694,  690,  695,  690,
2310      3010, 1428, 1428, 1428, 3018, 3019, 1424, 1128, 1128, 1128,
2311
2312      1441, 1441, 1441, 1441, 1441, 1441, 1137, 1137, 1137, 1430,
2313      1139, 1139, 1139, 3020, 1129,  690,  690, 3021, 1443, 3022,
2314      3023, 1443,  696, 1138, 1895, 1895, 1895, 1140,  697, 1609,
2315      1609, 1609, 3024, 1610, 3025, 1867, 1611,  698,  690,  691,
2316       295,  691,  690,  690,  690,  690,  690,  690,  690,  692,
2317       690,  690,  690, 1431,  690,  694,  690,  695,  690, 1453,
2318      1453, 1453, 1458, 1458, 1458, 1444, 1261, 3026, 1453, 1453,
2319      1453, 1458, 1458, 1458, 1470, 1470, 1470, 1455, 3016, 1867,
2320      1460, 1149, 1149, 1149,  690,  690, 1455, 3027, 3028, 1460,
2321      3029,  696, 1472, 1895, 1895, 1895, 3015,  697, 1150, 3030,
2322
2323      2098, 2098, 2098, 1897, 1897, 1897,  698,  702,  703,  295,
2324       703,  702,  702,  702,  702,  702,  702,  702,  704,  702,
2325       702,  702, 3017,  702,  706,  702,  707,  702, 3032, 1912,
2326      1456, 3033, 1461, 1470, 1470, 1470, 3034, 3035, 1157, 1157,
2327      1157, 1478, 1478, 1478, 1478, 1478, 1478, 2099, 1161, 1161,
2328      1161, 1472, 3037,  702,  702, 1158, 1272, 1272, 1272, 1480,
2329      1273, 3038, 1480, 1274,  708, 1162, 1903, 1903, 1903, 1906,
2330      1906, 1906, 3039,  709,  702,  703,  295,  703,  702,  702,
2331       702,  702,  702,  702,  702,  704,  702,  702,  702, 1473,
2332       702,  706,  702,  707,  702, 1486, 1486, 1486, 3050, 3058,
2333
2334      1481, 1486, 1486, 1486, 1492, 1492, 1492, 1492, 1492, 1492,
2335      1173, 1173, 1173, 1488, 3059, 1503, 1503, 1503, 3060, 1488,
2336       702,  702, 1494, 3061, 3062, 1494, 3043, 1174, 1907, 1907,
2337      1907,  708, 1504, 1911, 1911, 1911, 2186, 2186, 2186, 3044,
2338       709,  716,  717,  295,  717,  716,  716,  716,  716,  716,
2339       716,  716,  718,  716,  716,  716, 3063,  716,  720,  716,
2340       721,  716, 3045, 1489, 1507, 1507, 1507, 3064, 3065, 1495,
2341      3066, 3067, 1507, 1507, 1507, 3046, 1513, 1513, 1513, 1513,
2342      1513, 1513, 1509, 1526, 1526, 1526, 3068,  716,  716, 3072,
2343      1509, 3075, 3076,  722, 1515, 3077,  723, 1515, 1676, 1676,
2344
2345      1676, 1528, 1677, 3078, 3079, 1678, 3080, 3081,  724,  716,
2346       717,  295,  717,  716,  716,  716,  716,  716,  716,  716,
2347       718,  716,  716,  716, 1510,  716,  720,  716,  721,  716,
2348      1526, 1526, 1526, 1195, 1195, 1195, 3084, 3092, 1516, 1534,
2349      1534, 1534, 1534, 1534, 1534, 1201, 1201, 1201, 1528, 3093,
2350      1196, 1542, 1542, 1542, 3096,  716,  716, 1536, 3097, 3100,
2351      1536,  722, 1202, 3115,  723, 1545, 1545, 1545, 1543, 1550,
2352      1550, 1550, 1550, 1550, 1550, 2952,  724,  733, 3116, 1554,
2353      1554, 1554, 1546, 3117,  748, 2953, 3118, 1552, 3119, 3120,
2354      1552, 2954, 3121,  732,  749, 1529, 1555, 1556, 1556, 1556,
2355
2356      3905, 3905, 3905, 1559, 1559, 1559, 3088, 1537, 1559, 1559,
2357      1559, 1217, 1217, 1217, 1557, 2955, 3122, 3905, 3124, 3089,
2358      1553, 1561,  750,  751,  752, 2956, 1561, 3125, 1218,  753,
2359       754, 2957, 3126,  755,  756, 3127, 3090,  757, 3128,  758,
2360       759,  760, 3129, 1567, 1567, 1567, 3130,  761,  733, 3091,
2361      3094, 1567, 1567, 1567, 1223, 1223, 1223, 1577, 1577, 1577,
2362      1558, 1569, 3131, 3095,  732,  763, 1577, 1577, 1577, 1569,
2363      1562, 1224, 1229, 1229, 1229, 1579, 3132, 3133, 1587, 1587,
2364      1587, 1587, 1587, 1587, 1579, 1237, 1237, 1237, 3134, 1230,
2365      1249, 1249, 1249,  750,  764,  765, 1589, 3135, 1261, 1589,
2366
2367       766,  767, 1238, 1867,  768,  756, 3143, 1250,  769, 3144,
2368       770,  771,  772, 1570, 1598, 1598, 1598, 3098,  773,  733,
2369      1598, 1598, 1598, 1605, 1605, 1605,  990, 1605, 1605, 1605,
2370      3099, 3145, 1600, 1580, 3146,  732,  749, 3147, 1600, 3140,
2371      3148, 1607, 1613, 1613, 1613, 1607, 3149, 3139, 1590, 1613,
2372      1613, 1613, 1617, 1617, 1617, 3150, 3905, 3905, 3905, 3151,
2373      1615, 1621, 1621, 1621,  750,  751,  752, 1615, 3152, 1618,
2374      3153,  753,  754, 3905, 3154,  755,  756, 3155, 1622,  757,
2375      3156,  758,  759,  760, 3158, 1601, 3905, 3905, 3905,  761,
2376      3159, 3160, 1608, 3162, 1624, 1624, 1624, 1624, 1624, 1624,
2377
2378      1276, 1276, 1276, 3905, 2108, 2108, 2108, 1619, 1276, 1276,
2379      1276, 1616, 1626, 3167, 3168, 1626, 3169, 3170, 1278, 1635,
2380      1635, 1635, 1620, 1320, 1320, 1320, 1278, 1324, 1324, 1324,
2381      3175, 1681, 1681, 1681, 3182, 1682, 3183, 1636, 1683, 3184,
2382      1321, 1688, 1688, 1688, 1325, 3185, 1623, 1327, 1327, 1327,
2383      1327, 1327, 1327, 1327, 1327, 1327, 3163, 3165, 1689, 1627,
2384      1337, 1337, 1337, 3186, 3187, 1329, 3164, 3166, 1329, 2109,
2385      3188, 1329, 1337, 1337, 1337, 1337, 1337, 1337, 1339, 1343,
2386      1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 3189, 3190,
2387      1339, 3191, 3192, 1339, 1348, 1348, 1348, 1345, 1349, 3193,
2388
2389      1345, 1350, 3197, 1345, 1352, 1352, 1352, 1352, 1352, 1352,
2390      1352, 1352, 1352, 1356, 1356, 1356, 3198, 3199, 1685, 1700,
2391      1700, 1700, 1354, 1701, 3200, 1354, 1702, 3201, 1354, 3202,
2392      1357, 1360, 1360, 1360, 1705, 1705, 1705, 3203, 1706, 1696,
2393      3204, 1707, 1693, 1362, 1362, 1362, 3205, 3206, 1361, 1362,
2394      1362, 1362, 1362, 1362, 1362, 1366, 1366, 1366, 3207, 3208,
2395      1699, 1364, 1709, 1709, 1709, 3209, 1710, 1364, 3210, 1711,
2396      1364, 3211, 1367, 1368, 1368, 1368, 1712, 1712, 1712, 3212,
2397      1713, 3213, 3214, 1714, 1370, 1370, 1370, 1370, 1370, 1370,
2398      1369, 1370, 1370, 1370, 1374, 1374, 1374, 1716, 1716, 1716,
2399
2400      3215, 1717, 1372, 3216, 1718, 1372, 1378, 1378, 1378, 1372,
2401      3230, 1375, 1721, 1721, 1721, 1708, 1722, 3231, 3232, 1723,
2402      1380, 1380, 1380, 1379, 1380, 1380, 1380, 1380, 1380, 1380,
2403      1384, 1384, 1384, 3233, 1385, 3234, 3235, 1386, 1382, 1387,
2404      1387, 1387, 1382, 1388, 3236, 1382, 1389, 1390, 1390, 1390,
2405      3237, 1725, 1725, 1725, 1715, 1726, 3239, 3240, 1727, 1396,
2406      1396, 1396, 3241, 3242, 1391, 1396, 1396, 1396, 1396, 1396,
2407      1396, 1403, 1403, 1403, 3219, 1404, 3243, 1398, 1405, 1736,
2408      1736, 1736, 3221, 1398, 3220, 3244, 1398, 1407, 1407, 1407,
2409      1724, 1408, 3222, 3245, 1409, 3246, 1737, 1410, 1410, 1410,
2410
2411      1738, 1738, 1738, 3247, 1739, 3248, 3249, 1740, 1421, 1421,
2412      1421, 1421, 1421, 1421, 1411, 3250, 3261, 1732, 1421, 1421,
2413      1421, 1425, 1425, 1425, 3262, 1426, 1423, 3263, 1427, 1423,
2414      1428, 1428, 1428, 1428, 1428, 1428, 1423, 1428, 1428, 1428,
2415      1755, 1755, 1755, 1435, 1435, 1435, 3251, 1436, 1430, 3264,
2416      1437, 1430, 1441, 1441, 1441, 1430, 3252, 1756, 1441, 1441,
2417      1441, 1441, 1441, 1441, 1762, 1762, 1762, 1447, 1447, 1447,
2418      1443, 1448, 3253, 1261, 1449, 3265, 1443, 3266, 3267, 1443,
2419      3268, 1763, 3254, 1450, 1450, 1450, 1751, 1451, 3270, 3273,
2420      1452, 1453, 1453, 1453, 1453, 1453, 1453, 3275, 1752, 1453,
2421
2422      1453, 1453, 1765, 1765, 1765, 1458, 1458, 1458, 3255, 1455,
2423      3276, 3277, 1455, 1458, 1458, 1458, 3278, 1455, 3279, 1766,
2424      1458, 1458, 1458, 1460, 1470, 1470, 1470, 1760, 1464, 1464,
2425      1464, 1460, 1465, 3280, 3281, 1466, 3282, 3285, 1460, 1470,
2426      1470, 1470, 1472, 1470, 1470, 1470, 1475, 1475, 1475, 3288,
2427      1476, 3289, 3290, 1477, 1478, 1478, 1478, 1472, 1478, 1478,
2428      1478, 1472, 1478, 1478, 1478, 1764, 3291, 1482, 1482, 1482,
2429      1767, 1483, 1480, 3292, 1484, 3293, 1480, 1486, 1486, 1486,
2430      1480, 1486, 1486, 1486, 1486, 1486, 1486, 3294, 1778, 1778,
2431      1778, 3905, 3905, 3905, 3295, 1488, 1492, 1492, 1492, 1488,
2432
2433      3296, 3297, 1488, 3302, 1773, 1779, 3303, 3304, 3905, 1492,
2434      1492, 1492, 3305, 3306, 1494, 1492, 1492, 1492, 1500, 1500,
2435      1500, 3307, 1501, 1775, 3308, 1502, 3309, 1494, 1503, 1503,
2436      1503, 3310, 3311, 1494, 3312, 1777, 1786, 1786, 1786, 1780,
2437      1787, 3313, 3314, 1788, 3315, 1504, 1507, 1507, 1507, 1507,
2438      1507, 1507, 1507, 1507, 1507, 1513, 1513, 1513, 1513, 1513,
2439      1513, 1513, 1513, 1513, 1509, 3316, 3317, 1509, 3318, 3322,
2440      1509, 3323, 3324, 1515, 3325, 3328, 1515, 3329, 3330, 1515,
2441      1800, 1800, 1800, 1781, 1526, 1526, 1526, 1526, 1526, 1526,
2442      1526, 1526, 1526, 3331, 1530, 1530, 1530, 1801, 1531, 3332,
2443
2444      3333, 1532, 1528, 3335, 1791, 1528, 3336, 3337, 1528, 1794,
2445      1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1539,
2446      1539, 1539, 3338, 1540, 2621, 2622, 1541, 2623, 1536, 3339,
2447      3340, 1536, 3341, 3342, 1536, 2624, 1542, 1542, 1542, 1809,
2448      1809, 1809, 2625, 1810, 3343, 3344, 1811, 1812, 1812, 1812,
2449      3345, 3346, 1805, 1543, 1545, 1545, 1545, 3353, 1814, 1814,
2450      1814, 1261, 1815, 3354, 1813, 1816, 1818, 1818, 1818, 3355,
2451      3356, 1546, 1550, 1550, 1550, 1550, 1550, 1550, 1807, 1550,
2452      1550, 1550, 3357, 1819, 1554, 1554, 1554, 1822, 1822, 1822,
2453      1552, 1823, 3358, 1552, 1824, 3359, 3360, 1552, 1556, 1556,
2454
2455      1556, 1555, 1825, 1825, 1825, 3347, 1826, 3361, 3362, 1827,
2456      1559, 1559, 1559, 3363, 3364, 1557, 1559, 1559, 1559, 1559,
2457      1559, 1559, 1564, 1564, 1564, 3365, 1565, 3366, 1561, 1566,
2458      1567, 1567, 1567, 3367, 1561, 3368, 3372, 1561, 3378, 3379,
2459      1821, 1567, 1567, 1567, 1567, 1567, 1567, 3380, 1569, 1573,
2460      1573, 1573, 3381, 1574, 3382, 3383, 1575, 3384, 3391, 1569,
2461      3392, 3393, 1569, 1577, 1577, 1577, 1577, 1577, 1577, 3394,
2462      1577, 1577, 1577, 1582, 1582, 1582, 3395, 1583, 3396, 3397,
2463      1584, 1579, 3398, 3399, 1579, 3400, 3401, 1829, 1579, 1838,
2464      1838, 1838, 1587, 1587, 1587, 1587, 1587, 1587, 1587, 1587,
2465
2466      1587, 1842, 1842, 1842, 3402, 3403, 1839, 1593, 1593, 1593,
2467      1589, 1594, 1831, 1589, 1595, 3404, 1589, 3405, 1843, 3905,
2468      3905, 3905, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598,
2469      1598, 3406, 1835, 1848, 1848, 1848, 3905, 1605, 1605, 1605,
2470      1600, 3407, 3408, 1600, 3409, 3410, 1600, 1605, 1605, 1605,
2471      1849, 1605, 1605, 1605, 3411, 1607, 3412, 1609, 1609, 1609,
2472      1840, 1610, 3413, 3414, 1611, 1607, 1613, 1613, 1613, 1607,
2473      1613, 1613, 1613, 1613, 1613, 1613, 1846, 1617, 1617, 1617,
2474      3415, 1844, 3416, 3417, 1615, 1854, 1854, 1854, 1615, 1855,
2475      3420, 1615, 1856, 3421, 1618, 1621, 1621, 1621, 3422, 1851,
2476
2477      1859, 1859, 1859, 3423, 1860, 3424, 3425, 1861, 1624, 1624,
2478      1624, 3426, 1622, 1624, 1624, 1624, 3427, 1624, 1624, 1624,
2479      1866, 1866, 1866, 1635, 1635, 1635, 1626, 1327, 1327, 1327,
2480      3428, 1626, 3429, 3441, 1853, 1626, 3442, 3432, 1867, 1868,
2481      3447, 1636, 1676, 1676, 1676, 1329, 1677, 1261, 3435, 1678,
2482      1681, 1681, 1681, 3432, 1682, 3448, 3451, 1683, 1688, 1688,
2483      1688, 1921, 1921, 1921, 3452, 1922, 3453, 3433, 1923, 1337,
2484      1337, 1337, 1343, 1343, 1343, 1689, 3454, 3456, 1863, 1929,
2485      1929, 1929, 3464, 1352, 1352, 1352, 3465, 1339, 3457, 1918,
2486      1345, 1700, 1700, 1700, 3430, 1701, 1930, 3466, 1702, 3467,
2487
2488      3458, 1354, 1705, 1705, 1705, 3468, 1706, 3459, 3473, 1707,
2489      1362, 1362, 1362, 1709, 1709, 1709, 3474, 1710, 3469, 3460,
2490      1711, 3475, 1712, 1712, 1712, 3476, 1713, 3477, 1364, 1714,
2491      3470, 1927, 1370, 1370, 1370, 1716, 1716, 1716, 3478, 1717,
2492      1931, 1934, 1718, 3479, 1721, 1721, 1721, 3480, 1722, 3471,
2493      1372, 1723, 1380, 1380, 1380, 1725, 1725, 1725, 1937, 1726,
2494      3481, 3472, 1727, 3482, 1944, 1944, 1944, 1396, 1396, 1396,
2495      1382, 1948, 1948, 1948, 3905, 3905, 3905, 3905, 3905, 3905,
2496      1938, 1945, 1736, 1736, 1736, 1398, 3483, 3484, 1949, 3485,
2497      3490, 3905, 3491, 3496, 3905, 3905, 3905, 3905, 3497, 1737,
2498
2499      1941, 1952, 1952, 1952, 3498, 1953, 3499, 3502, 1954, 1738,
2500      1738, 1738, 3905, 1739, 3437, 3502, 1740, 3905, 3905, 3905,
2501      3905, 3905, 3905, 1947, 3505, 1951, 3905, 3905, 3905, 3905,
2502      3905, 3905, 3506, 3438, 3905, 3439, 3507, 3905, 3905, 3905,
2503      3905, 1950, 1261, 3905, 1867, 1868, 3905, 1955, 3440, 1961,
2504      1961, 1961, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
2505      3905, 3905, 1421, 1421, 1421, 1956, 1962, 3510, 3508, 3905,
2506      1755, 1755, 1755, 3905, 1958, 3432, 3905, 1428, 1428, 1428,
2507      1423, 1970, 1970, 1970, 3500, 1971, 3509, 1756, 1972, 3433,
2508      3511, 1957, 3512, 3515, 1959, 1430, 1974, 1974, 1974, 1960,
2509
2510      1441, 1441, 1441, 1762, 1762, 1762, 3516, 1979, 1979, 1979,
2511      3521, 1980, 3523, 1975, 1981, 1453, 1453, 1453, 1443, 1964,
2512      1763, 1965, 3526, 1963, 1765, 1765, 1765, 3432, 1966, 3522,
2513      1967, 3527, 3528, 1455, 3513, 1983, 1983, 1983, 3435, 1984,
2514      3529, 1766, 1985, 1458, 1458, 1458, 1470, 1470, 1470, 3514,
2515      1478, 1478, 1478, 1994, 1994, 1994, 3530, 1486, 1486, 1486,
2516      3524, 1460, 3533, 3535, 1472, 3536, 3538, 1977, 1480, 3541,
2517      1995, 1778, 1778, 1778, 3542, 1488, 1997, 1997, 1997, 3525,
2518      1998, 3534, 1982, 1999, 3537, 1492, 1492, 1492, 1779, 2003,
2519      2003, 2003, 1786, 1786, 1786, 3543, 1787, 3544, 3545, 1788,
2520
2521      3546, 3547, 1986, 1494, 1991, 3548, 2004, 3549, 1993, 1996,
2522      2007, 2007, 2007, 1507, 1507, 1507, 1513, 1513, 1513, 1800,
2523      1800, 1800, 2019, 2019, 2019, 3552, 2020, 2008, 3553, 2021,
2524      3554, 1509, 3550, 3502, 1515, 3558, 1801, 1526, 1526, 1526,
2525      2026, 2026, 2026, 1534, 1534, 1534, 2001, 1809, 1809, 1809,
2526      3551, 1810, 3555, 3502, 1811, 1528, 3559, 2027, 1812, 1812,
2527      1812, 1536, 2030, 2030, 2030, 3560, 2031, 3556, 3561, 2032,
2528      1814, 1814, 1814, 3562, 1815, 1813, 3563, 1816, 2010, 1818,
2529      1818, 1818, 3564, 2013, 2034, 2034, 2034, 2025, 2035, 3565,
2530      3566, 2036, 1550, 1550, 1550, 3567, 1819, 1822, 1822, 1822,
2531
2532      3568, 1823, 3572, 3573, 1824, 3574, 2028, 1825, 1825, 1825,
2533      1552, 1826, 3575, 3576, 1827, 1559, 1559, 1559, 1567, 1567,
2534      1567, 1577, 1577, 1577, 2048, 2048, 2048, 1838, 1838, 1838,
2535      2050, 2050, 2050, 1561, 2051, 3577, 1569, 2052, 3578, 1579,
2536      3579, 2049, 3580, 2038, 1839, 1587, 1587, 1587, 1842, 1842,
2537      1842, 2055, 2055, 2055, 3581, 2056, 3585, 3586, 2057, 1598,
2538      1598, 1598, 3587, 1589, 3588, 1843, 1848, 1848, 1848, 2062,
2539      2062, 2062, 3589, 2063, 3590, 3594, 2064, 1600, 2065, 2065,
2540      2065, 3595, 2040, 1849, 3596, 2042, 2046, 1605, 1605, 1605,
2541      1613, 1613, 1613, 3597, 3598, 2066, 1854, 1854, 1854, 3599,
2542
2543      1855, 3600, 3601, 1856, 3602, 1607, 3603, 3604, 1615, 2060,
2544      2053, 1859, 1859, 1859, 3605, 1860, 3606, 3607, 1861, 3609,
2545      1624, 1624, 1624, 1866, 1866, 1866, 2111, 2111, 2111, 2095,
2546      2095, 2095, 2108, 2108, 2108, 3610, 3611, 2067, 1626, 3612,
2547      3613, 1867, 2069, 2114, 2114, 2114, 2116, 2116, 2116, 3905,
2548      3905, 3905, 1327, 1327, 1327, 1921, 1921, 1921, 3614, 1922,
2549      2115, 3615, 1923, 2117, 3616, 3617, 3905, 1337, 1337, 1337,
2550      1329, 3618, 2073, 2112, 3619, 2075, 1929, 1929, 1929, 2127,
2551      2127, 2127, 3624, 2128, 3620, 1339, 2129, 1343, 1343, 1343,
2552      3625, 3626, 2076, 1930, 2109, 3627, 3621, 2096, 3628, 1352,
2553
2554      1352, 1352, 2134, 2134, 2134, 1345, 2136, 2136, 2136, 1362,
2555      1362, 1362, 3629, 3630, 2118, 3631, 3632, 1354, 3633, 2135,
2556      2119, 3634, 3635, 2137, 1370, 1370, 1370, 1364, 2140, 2140,
2557      2140, 3622, 2125, 2142, 2142, 2142, 1380, 1380, 1380, 2145,
2558      2145, 2145, 1372, 3623, 3636, 2141, 3637, 2130, 2133, 3638,
2559      2143, 3905, 3905, 3905, 1382, 3639, 2146, 1944, 1944, 1944,
2560      2148, 2148, 2148, 3640, 2149, 3641, 3642, 2150, 3905, 2151,
2561      2151, 2151, 3643, 3644, 1945, 2138, 1396, 1396, 1396, 1948,
2562      1948, 1948, 2157, 2157, 2157, 3645, 2152, 3905, 3905, 3905,
2563      2139, 2154, 2154, 2154, 1398, 2155, 1949, 3646, 2156, 2158,
2564
2565      3647, 3648, 2144, 3649, 3905, 1952, 1952, 1952, 3651, 1953,
2566      2147, 3652, 1954, 3905, 3905, 3905, 3905, 3905, 3905, 2162,
2567      2162, 2162, 3905, 3905, 3905, 3905, 3905, 3905, 3653, 1261,
2568      3905, 3654, 3655, 3905, 3656, 3657, 2163, 2153, 3658, 3905,
2569      3659, 3660, 3905, 3905, 3905, 3905, 1961, 1961, 1961, 2167,
2570      2167, 2167, 2159, 2168, 3650, 3661, 2169, 2170, 2170, 2170,
2571      3905, 3662, 3663, 1962, 3664, 3665, 2161, 3905, 3905, 3905,
2572      3666, 3667, 2165, 3668, 2171, 3905, 3905, 3905, 2160, 3669,
2573      3670, 2164, 3671, 3672, 3905, 1421, 1421, 1421, 1428, 1428,
2574      1428, 3673, 3905, 3674, 1970, 1970, 1970, 2166, 1971, 3675,
2575
2576      3676, 1972, 3677, 1423, 3678, 3679, 1430, 2178, 2178, 2178,
2577      1974, 1974, 1974, 3680, 3681, 2172, 2180, 2180, 2180, 3682,
2578      2181, 3683, 3684, 2182, 2179, 3686, 3687, 1975, 3688, 2173,
2579      2184, 2184, 2184, 1979, 1979, 1979, 1261, 1980, 3689, 3690,
2580      1981, 1453, 1453, 1453, 2175, 1458, 1458, 1458, 2185, 1983,
2581      1983, 1983, 2174, 1984, 3691, 3685, 1985, 3692, 3693, 1455,
2582      2193, 2193, 2193, 1460, 1478, 1478, 1478, 1994, 1994, 1994,
2583      2197, 2197, 2197, 3694, 2198, 3443, 3695, 2199, 2194, 1486,
2584      1486, 1486, 1480, 3696, 1995, 1997, 1997, 1997, 2187, 1998,
2585      3697, 3444, 1999, 3445, 1492, 1492, 1492, 1488, 2003, 2003,
2586
2587      2003, 2204, 2204, 2204, 3698, 2205, 3446, 3699, 2206, 3700,
2588      3701, 2196, 1494, 2188, 3702, 2004, 2207, 2207, 2207, 2007,
2589      2007, 2007, 2210, 2210, 2210, 3703, 2211, 3704, 3705, 2212,
2590      2214, 2214, 2214, 2208, 3706, 3707, 2008, 3708, 2200, 1513,
2591      1513, 1513, 2219, 2219, 2219, 2019, 2019, 2019, 2215, 2020,
2592      3709, 3710, 2021, 1526, 1526, 1526, 3711, 1515, 2026, 2026,
2593      2026, 2202, 2228, 2228, 2228, 3712, 2229, 3713, 3714, 2230,
2594      3715, 1528, 2231, 2231, 2231, 2027, 2030, 2030, 2030, 3716,
2595      2031, 3717, 3719, 2032, 2034, 2034, 2034, 3720, 2035, 1261,
2596      2232, 2036, 2218, 1550, 1550, 1550, 1559, 1559, 1559, 1567,
2597
2598      1567, 1567, 2241, 2241, 2241, 2227, 3905, 3905, 3905, 3718,
2599      3721, 1552, 3722, 3723, 1561, 3486, 3724, 1569, 3725, 2242,
2600      2244, 2244, 2244, 3905, 1577, 1577, 1577, 2048, 2048, 2048,
2601      3726, 2248, 2248, 2248, 3487, 2249, 3488, 2245, 2250, 2050,
2602      2050, 2050, 1579, 2051, 2049, 3727, 2052, 3728, 2238, 3489,
2603      3729, 2240, 1587, 1587, 1587, 2236, 2055, 2055, 2055, 3730,
2604      2056, 3731, 3732, 2057, 1598, 1598, 1598, 2062, 2062, 2062,
2605      1589, 2063, 2246, 2243, 2064, 2065, 2065, 2065, 3733, 2265,
2606      2265, 2265, 1600, 2266, 3734, 3735, 2267, 1605, 1605, 1605,
2607      3736, 3737, 2066, 2270, 2270, 2270, 2272, 2272, 2272, 3738,
2608
2609      2251, 2274, 2274, 2274, 3739, 1607, 3905, 3905, 3905, 3740,
2610      3741, 2271, 3742, 2273, 3743, 3744, 2255, 3745, 2275, 1624,
2611      1624, 1624, 3746, 3905, 2281, 2281, 2281, 2080, 2080, 2080,
2612      2291, 2291, 2291, 2091, 2091, 2091, 3748, 1626, 3749, 2268,
2613      3750, 2282, 2298, 2298, 2298, 2095, 2095, 2095, 2299, 2299,
2614      2299, 2098, 2098, 2098, 3751, 2277, 2108, 2108, 2108, 2312,
2615      2312, 2312, 2111, 2111, 2111, 2114, 2114, 2114, 2316, 2316,
2616      2316, 2276, 2317, 3752, 3753, 2318, 2116, 2116, 2116, 2319,
2617      2319, 2319, 2115, 2320, 3754, 3755, 2321, 1327, 1327, 1327,
2618      2329, 2329, 2329, 2117, 2127, 2127, 2127, 3756, 2128, 3757,
2619
2620      1261, 2129, 2334, 2334, 2334, 1329, 3747, 3758, 2330, 1343,
2621      1343, 1343, 1352, 1352, 1352, 2134, 2134, 2134, 3759, 2335,
2622      3760, 2337, 2337, 2337, 3761, 2338, 3762, 1345, 2339, 3763,
2623      1354, 3764, 2135, 2136, 2136, 2136, 2340, 2340, 2340, 3765,
2624      2341, 3766, 3767, 2342, 1362, 1362, 1362, 1370, 1370, 1370,
2625      2137, 2140, 2140, 2140, 2323, 3769, 2345, 2345, 2345, 1261,
2626      2346, 2332, 1364, 2347, 3770, 1372, 3771, 3772, 2141, 2142,
2627      2142, 2142, 3773, 3768, 2336, 2348, 2348, 2348, 3774, 2349,
2628      3775, 3776, 2350, 1380, 1380, 1380, 2143, 2145, 2145, 2145,
2629      2352, 2352, 2352, 3777, 2353, 3778, 3779, 2354, 2355, 2355,
2630
2631      2355, 1382, 3780, 3782, 2146, 2148, 2148, 2148, 3783, 2149,
2632      2343, 3784, 2150, 2344, 3785, 2356, 2151, 2151, 2151, 2357,
2633      2357, 2357, 3786, 2358, 3787, 3788, 2359, 1396, 1396, 1396,
2634      2154, 2154, 2154, 2152, 2155, 3789, 3790, 2156, 2157, 2157,
2635      2157, 2162, 2162, 2162, 3791, 1398, 2361, 2361, 2361, 2351,
2636      2362, 3792, 3793, 2363, 3796, 2158, 3797, 3492, 2163, 2367,
2637      2367, 2367, 3798, 2368, 3799, 3800, 2369, 2370, 2370, 2370,
2638      2167, 2167, 2167, 3493, 2168, 3494, 3801, 2169, 1792, 2360,
2639      2170, 2170, 2170, 3812, 2371, 2374, 2374, 2374, 3495, 2375,
2640      1261, 1261, 2376, 1421, 1421, 1421, 3813, 2171, 1428, 1428,
2641
2642      1428, 2178, 2178, 2178, 1261, 2383, 2383, 2383, 1261, 2384,
2643      1261, 1423, 2385, 2180, 2180, 2180, 1430, 2181, 2179, 1261,
2644      2182, 2184, 2184, 2184, 2186, 2186, 2186, 3802, 1453, 1453,
2645      1453, 1458, 1458, 1458, 2390, 2390, 2390, 1261, 1790, 2185,
2646      2193, 2193, 2193, 1261, 1789, 2379, 1455, 3803, 1261, 1460,
2647      1261, 2391, 2380, 1478, 1478, 1478, 1261, 3804, 2194, 2197,
2648      2197, 2197, 3814, 2198, 3808, 1261, 2199, 1486, 1486, 1486,
2649      1261, 1480, 2399, 2399, 2399, 3810, 2204, 2204, 2204, 1261,
2650      2205, 2392, 2388, 2206, 1785, 1488, 3805, 2387, 3809, 3828,
2651      2400, 2207, 2207, 2207, 2402, 2402, 2402, 3806, 2403, 3807,
2652
2653      3811, 2404, 3815, 2396, 1261, 2210, 2210, 2210, 2208, 2211,
2654      1261, 1261, 2212, 3816, 2397, 2214, 2214, 2214, 2408, 2408,
2655      2408, 1513, 1513, 1513, 2219, 2219, 2219, 2411, 2411, 2411,
2656      2413, 2413, 2413, 2215, 1261, 2409, 1526, 1526, 1526, 1515,
2657      2228, 2228, 2228, 1261, 2229, 1261, 3834, 2230, 2231, 2231,
2658      2231, 2420, 2420, 2420, 1528, 1550, 1550, 1550, 2425, 2425,
2659      2425, 1567, 1567, 1567, 1261, 1261, 2232, 1261, 2421, 2241,
2660      2241, 2241, 3818, 1552, 1261, 3854, 2426, 1261, 1261, 1569,
2661      2429, 2429, 2429, 2410, 2430, 3820, 2242, 2431, 2432, 2432,
2662      2432, 2244, 2244, 2244, 2435, 2435, 2435, 1261, 2436, 1261,
2663
2664      3829, 2437, 2418, 3819, 1784, 2433, 3821, 1261, 2245, 1577,
2665      1577, 1577, 2439, 2439, 2439, 2423, 2248, 2248, 2248, 1261,
2666      2249, 1261, 3817, 2250, 3824, 3825, 2428, 1579, 1783, 2440,
2667      1587, 1587, 1587, 3822, 3835, 2434, 2446, 2446, 2446, 2448,
2668      2448, 2448, 2265, 2265, 2265, 3826, 2266, 1261, 1589, 2267,
2669      1605, 1605, 1605, 1261, 2447, 3823, 2449, 3832, 3830, 2441,
2670      2461, 2461, 2461, 2438, 2270, 2270, 2270, 1261, 1607, 2272,
2671      2272, 2272, 2463, 2463, 2463, 1261, 2464, 2462, 1261, 2465,
2672      1261, 3831, 2271, 1261, 2442, 3827, 2273, 2274, 2274, 2274,
2673      1261, 2466, 2466, 2466, 3844, 2467, 3848, 2460, 2468, 1624,
2674
2675      1624, 1624, 1782, 1261, 2275, 2281, 2281, 2281, 2474, 2474,
2676      2474, 3833, 2475, 3876, 3840, 2476, 1261, 1626, 2477, 2477,
2677      2477, 3846, 2282, 2483, 2483, 2483, 2484, 2484, 2484, 2291,
2678      2291, 2291, 2486, 2486, 2486, 2490, 2490, 2490, 2298, 2298,
2679      2298, 2299, 2299, 2299, 2491, 2491, 2491, 2495, 2495, 2495,
2680      2500, 2500, 2500, 2501, 2501, 2501, 2503, 2503, 2503, 1261,
2681      3836, 2470, 2312, 2312, 2312, 2504, 2504, 2504, 2316, 2316,
2682      2316, 1261, 2317, 1776, 1261, 2318, 2319, 2319, 2319, 3902,
2683      2320, 1261, 1261, 2321, 1327, 1327, 1327, 2511, 2511, 2511,
2684      1261, 2492, 3905, 3905, 3905, 1261, 3905, 3905, 3905, 3905,
2685
2686      3905, 3905, 1329, 3837, 2512, 2329, 2329, 2329, 1261, 3905,
2687      3841, 1261, 2505, 3905, 3849, 3842, 3905, 1343, 1343, 1343,
2688      2334, 2334, 2334, 2330, 2519, 2519, 2519, 1261, 2520, 3838,
2689      1261, 2521, 1352, 1352, 1352, 1345, 2509, 2335, 2337, 2337,
2690      2337, 1261, 2338, 3864, 2513, 2339, 3847, 2340, 2340, 2340,
2691      1354, 2341, 1261, 1261, 2342, 1362, 1362, 1362, 3839, 2515,
2692      1774, 2514, 1370, 1370, 1370, 2345, 2345, 2345, 3852, 2346,
2693      1772, 3855, 2347, 1364, 3850, 2523, 2626, 2627, 2517, 2628,
2694      1372, 2348, 2348, 2348, 1261, 2349, 3843, 2629, 2350, 1380,
2695      1380, 1380, 3845, 2522, 2630, 2352, 2352, 2352, 2524, 2353,
2696
2697      3851, 1261, 2354, 2355, 2355, 2355, 1261, 1382, 2526, 2526,
2698      2526, 1771, 2527, 1770, 3856, 2528, 1261, 2357, 2357, 2357,
2699      2356, 2358, 3853, 1261, 2359, 1396, 1396, 1396, 2361, 2361,
2700      2361, 3857, 2362, 2525, 3862, 2363, 1769, 2367, 2367, 2367,
2701      1261, 2368, 1261, 1398, 2369, 2370, 2370, 2370, 2533, 2533,
2702      2533, 3858, 2534, 3860, 1261, 2535, 2374, 2374, 2374, 1261,
2703      2375, 1261, 2371, 2376, 2539, 2539, 2539, 1421, 1421, 1421,
2704      2542, 2542, 2542, 2383, 2383, 2383, 1261, 2384, 3863, 1261,
2705      2385, 2540, 1453, 1453, 1453, 1423, 1261, 1261, 2543, 1458,
2706      1458, 1458, 2529, 2390, 2390, 2390, 3859, 2550, 2550, 2550,
2707
2708      1455, 2551, 3865, 1261, 2552, 1768, 3861, 1460, 1261, 1261,
2709      2391, 1478, 1478, 1478, 3866, 3870, 1486, 1486, 1486, 2399,
2710      2399, 2399, 1761, 2402, 2402, 2402, 1759, 2403, 3878, 1480,
2711      2404, 1261, 2541, 1758, 1488, 3880, 1261, 2400, 2547, 3871,
2712      1261, 2548, 2408, 2408, 2408, 2564, 2564, 2564, 1261, 2565,
2713      3868, 3869, 2566, 1513, 1513, 1513, 2411, 2411, 2411, 2409,
2714      2568, 2568, 2568, 2413, 2413, 2413, 2569, 2569, 2569, 3867,
2715      1261, 1515, 3905, 3905, 3905, 3905, 3905, 3905, 2557, 2558,
2716      1526, 1526, 1526, 2570, 3905, 3905, 3905, 3872, 3879, 3905,
2717      1261, 1261, 3905, 2420, 2420, 2420, 1261, 3898, 1528, 3894,
2718
2719      1261, 3905, 2576, 2576, 2576, 1261, 2577, 1261, 1261, 2578,
2720      2421, 2580, 2580, 2580, 2425, 2425, 2425, 3873, 2567, 2584,
2721      2584, 2584, 1261, 3877, 2571, 1757, 2429, 2429, 2429, 2581,
2722      2430, 1261, 2426, 2431, 2432, 2432, 2432, 2585, 3874, 3881,
2723      2572, 2586, 2586, 2586, 2573, 2587, 2574, 3884, 2588, 3885,
2724      1754, 2433, 2435, 2435, 2435, 1261, 2436, 1261, 3886, 2437,
2725      1577, 1577, 1577, 2439, 2439, 2439, 2591, 2591, 2591, 3875,
2726      2592, 1753, 1261, 2593, 1587, 1587, 1587, 1261, 1579, 1261,
2727      2440, 2446, 2446, 2446, 2448, 2448, 2448, 2599, 2599, 2599,
2728      3892, 2600, 1589, 3882, 2601, 1605, 1605, 1605, 1748, 2447,
2729
2730      1261, 2449, 2461, 2461, 2461, 1747, 1746, 2613, 2613, 2613,
2731      3883, 2614, 2590, 1607, 2615, 3887, 2463, 2463, 2463, 2462,
2732      2464, 1261, 1261, 2465, 3888, 1745, 2595, 2466, 2466, 2466,
2733      1744, 2467, 3895, 1743, 2468, 1624, 1624, 1624, 2618, 2618,
2734      2618, 1261, 2474, 2474, 2474, 2612, 2475, 3889, 1742, 2476,
2735      2477, 2477, 2477, 1626, 3893, 3896, 1261, 2631, 2631, 2631,
2736      2632, 2632, 2632, 2483, 2483, 2483, 2484, 2484, 2484, 2486,
2737      2486, 2486, 2637, 2637, 2637, 2639, 2639, 2639, 2490, 2490,
2738      2490, 2491, 2491, 2491, 2495, 2495, 2495, 2643, 2643, 2643,
2739      2500, 2500, 2500, 2501, 2501, 2501, 2503, 2503, 2503, 2504,
2740
2741      2504, 2504, 1741, 2617, 2652, 2652, 2652, 2654, 2654, 2654,
2742      2511, 2511, 2511, 2655, 2655, 2655, 1261, 2656, 1735, 1261,
2743      2657, 1734, 2653, 2658, 2658, 2658, 1261, 2512, 3905, 3905,
2744      3905, 3905, 3905, 3905, 2662, 2662, 2662, 1343, 1343, 1343,
2745      2659, 2664, 2664, 2664, 1733, 3905, 1731, 1730, 3905, 2519,
2746      2519, 2519, 1261, 2520, 3890, 1345, 2521, 3891, 2665, 1352,
2747      1352, 1352, 1729, 1362, 1362, 1362, 1370, 1370, 1370, 1380,
2748      1380, 1380, 2526, 2526, 2526, 3899, 2527, 1354, 1728, 2528,
2749      2660, 1364, 1261, 2661, 1372, 3897, 1720, 1382, 2670, 2670,
2750      2670, 2533, 2533, 2533, 1719, 2534, 1261, 1704, 2535, 1703,
2751
2752      2667, 2676, 2676, 2676, 2663, 1698, 2671, 2539, 2539, 2539,
2753      1697, 2666, 2680, 2680, 2680, 3900, 2681, 1695, 2677, 2682,
2754      2683, 2683, 2683, 1694, 2540, 2542, 2542, 2542, 2668, 3901,
2755      1692, 2669, 1453, 1453, 1453, 2689, 2689, 2689, 2684, 2691,
2756      2691, 2691, 1691, 2543, 2550, 2550, 2550, 1690, 2551, 1687,
2757      1455, 2552, 1686, 2690, 1684, 1680, 2692, 3905, 3905, 3905,
2758      3905, 3905, 3905, 3905, 3905, 3905, 2697, 2697, 2697, 1478,
2759      1478, 1478, 1679, 1675, 3905, 1674, 1673, 3905, 3902, 1672,
2760      3905, 1671, 1670, 2698, 1669, 1668, 2693, 1480, 1486, 1486,
2761      1486, 1667, 1261, 2688, 2701, 2701, 2701, 2706, 2706, 2706,
2762
2763      2564, 2564, 2564, 1666, 2565, 1665, 1488, 2566, 1513, 1513,
2764      1513, 2702, 1664, 2694, 1663, 2696, 2568, 2568, 2568, 2569,
2765      2569, 2569, 2695, 2711, 2711, 2711, 1515, 2708, 2708, 2708,
2766      2699, 2709, 1662, 1661, 2710, 1660, 2570, 3905, 3905, 3905,
2767      2712, 3905, 3905, 3905, 2715, 2715, 2715, 2717, 2717, 2717,
2768      3905, 3905, 3905, 2700, 3905, 2580, 2580, 2580, 3905, 2576,
2769      2576, 2576, 2716, 2577, 2718, 1658, 2578, 3905, 2707, 2584,
2770      2584, 2584, 1657, 2581, 2586, 2586, 2586, 1656, 2587, 1655,
2771      1654, 2588, 2723, 2723, 2723, 1651, 1650, 2585, 1649, 2713,
2772      2591, 2591, 2591, 2714, 2592, 1648, 1647, 2593, 1646, 1645,
2773
2774      2724, 1587, 1587, 1587, 2599, 2599, 2599, 1644, 2600, 1643,
2775      1642, 2601, 1605, 1605, 1605, 2740, 2741, 2719, 2742, 1589,
2776      2613, 2613, 2613, 1641, 2614, 1640, 2743, 2615, 2745, 2746,
2777      1607, 2747, 1639, 2744, 1624, 1624, 1624, 1638, 1637, 2748,
2778      2618, 2618, 2618, 2631, 2631, 2631, 2749, 1634, 2726, 2632,
2779      2632, 2632, 1626, 2770, 2770, 2770, 1633, 1632, 1261, 2637,
2780      2637, 2637, 2639, 2639, 2639, 2774, 2774, 2774, 2643, 2643,
2781      2643, 2778, 2778, 2778, 2739, 2781, 2781, 2781, 2652, 2652,
2782      2652, 2654, 2654, 2654, 2655, 2655, 2655, 1631, 2656, 1630,
2783      1629, 2657, 2658, 2658, 2658, 1261, 2653, 1612, 2783, 2783,
2784
2785      2783, 2751, 2784, 2752, 1604, 2785, 2786, 2786, 2786, 2659,
2786      2788, 2788, 2788, 2662, 2662, 2662, 2790, 2790, 2790, 2664,
2787      2664, 2664, 1603, 2787, 2792, 2792, 2792, 2789, 2793, 1602,
2788      1597, 2794, 1596, 1592, 2791, 1586, 2665, 2795, 2795, 2795,
2789      1362, 1362, 1362, 1370, 1370, 1370, 1380, 1380, 1380, 2670,
2790      2670, 2670, 2676, 2676, 2676, 2796, 1585, 1581, 1364, 1576,
2791      1572, 1372, 1571, 1563, 1382, 1549, 1548, 2671, 1547, 2677,
2792      2804, 2804, 2804, 1544, 2805, 1538, 1533, 2806, 2680, 2680,
2793      2680, 1525, 2681, 1524, 1523, 2682, 2683, 2683, 2683, 2817,
2794      2817, 2817, 1453, 1453, 1453, 2689, 2689, 2689, 2691, 2691,
2795
2796      2691, 2831, 2831, 2831, 2684, 2797, 2818, 2799, 1522, 1521,
2797      1455, 2798, 1520, 2690, 1519, 2692, 2820, 2820, 2820, 2832,
2798      2821, 1518, 1517, 2822, 2826, 2826, 2826, 2697, 2697, 2697,
2799      2828, 2828, 2828, 1512, 2829, 1511, 1506, 2830, 1486, 1486,
2800      1486, 2827, 1505, 1499, 2698, 2701, 2701, 2701, 1496, 1491,
2801      2819, 2834, 2834, 2834, 1490, 2835, 1488, 1485, 2836, 2839,
2802      2839, 2839, 2702, 2706, 2706, 2706, 2841, 2841, 2841, 1474,
2803      2708, 2708, 2708, 1469, 2709, 1468, 2840, 2710, 2711, 2711,
2804      2711, 2843, 2843, 2843, 2842, 2844, 1467, 1463, 2845, 2846,
2805      2846, 2846, 2848, 2848, 2848, 2712, 2715, 2715, 2715, 1462,
2806
2807      2833, 2717, 2717, 2717, 1457, 1446, 2847, 1440, 1439, 2849,
2808      2723, 2723, 2723, 1438, 2716, 2850, 2850, 2850, 2718, 2851,
2809      1434, 1433, 2852, 1587, 1587, 1587, 1432, 1420, 2724, 1419,
2810      1605, 1605, 1605, 1624, 1624, 1624, 2770, 2770, 2770, 1418,
2811      1417, 1589, 2904, 2904, 2904, 2774, 2774, 2774, 1607, 1416,
2812      1415, 1626, 2778, 2778, 2778, 2781, 2781, 2781, 2912, 2912,
2813      2912, 2783, 2783, 2783, 1414, 2784, 1413, 1412, 2785, 2786,
2814      2786, 2786, 2914, 2914, 2914, 2913, 2915, 1406, 1351, 2916,
2815      2788, 2788, 2788, 1347, 1342, 2885, 2787, 2790, 2790, 2790,
2816      2858, 2871, 2917, 2917, 2917, 1341, 2918, 2789, 1336, 2919,
2817
2818      2792, 2792, 2792, 1335, 2793, 2791, 1334, 2794, 2795, 2795,
2819      2795, 1362, 1362, 1362, 1370, 1370, 1370, 1380, 1380, 1380,
2820      2925, 2925, 2925, 2804, 2804, 2804, 2796, 2805, 1333, 1364,
2821      2806, 1332, 1372, 1331, 1319, 1382, 1318, 2926, 2939, 2939,
2822      2939, 2817, 2817, 2817, 2941, 2941, 2941, 1317, 2942, 1316,
2823      1315, 2943, 2944, 2944, 2944, 2940, 1314, 1313, 2818, 2820,
2824      2820, 2820, 1312, 2821, 1311, 1310, 2822, 1309, 1308, 2922,
2825      2945, 1307, 1306, 2920, 2826, 2826, 2826, 1305, 2949, 2949,
2826      2949, 2921, 2950, 1302, 1301, 2951, 2828, 2828, 2828, 1300,
2827      2829, 2827, 1299, 2830, 2831, 2831, 2831, 1486, 1486, 1486,
2828
2829      2834, 2834, 2834, 1298, 2835, 1297, 1296, 2836, 2960, 2960,
2830      2960, 1295, 2832, 1294, 1291, 1488, 2839, 2839, 2839, 2962,
2831      2962, 2962, 1290, 2963, 1289, 2961, 2964, 2841, 2841, 2841,
2832      2843, 2843, 2843, 2840, 2844, 1288, 1287, 2845, 2846, 2846,
2833      2846, 1286, 2965, 2965, 2965, 2842, 2966, 1285, 1284, 2967,
2834      2848, 2848, 2848, 1283, 1282, 2847, 1275, 2968, 2968, 2968,
2835      2958, 2969, 1271, 1270, 2970, 1269, 1268, 2849, 2850, 2850,
2836      2850, 1267, 2851, 1264, 1262, 2852, 2978, 2978, 2978, 2980,
2837      2980, 2980, 1587, 1587, 1587, 2985, 2985, 2985, 2986, 2986,
2838      2986, 1261, 1259, 2979, 1257, 1256, 2981, 1605, 1605, 1605,
2839
2840      1589, 3011, 3011, 3011, 1255, 2987, 3013, 3013, 3013, 3031,
2841      3031, 3031, 2904, 2904, 2904, 1607, 1254, 1253, 3012, 3036,
2842      3036, 3036, 1251, 1248, 3014, 2912, 2912, 2912, 3040, 3040,
2843      3040, 1246, 3041, 1245, 1244, 3042, 2914, 2914, 2914, 1243,
2844      2915, 1242, 2913, 2916, 2917, 2917, 2917, 1239, 2918, 1236,
2845      1235, 2919, 1234, 1232, 2984, 1362, 1362, 1362, 2998, 1370,
2846      1370, 1370, 1380, 1380, 1380, 3051, 3051, 3051, 2925, 2925,
2847      2925, 1231, 1228, 1364, 3053, 3053, 3053, 1372, 3054, 1227,
2848      1382, 3055, 3052, 1225, 1222, 2926, 3056, 3056, 3056, 2939,
2849      2939, 2939, 3069, 3069, 3069, 1221, 3070, 1220, 3049, 3071,
2850
2851      2941, 2941, 2941, 3057, 2942, 1216, 2940, 2943, 2944, 2944,
2852      2944, 3048, 3073, 3073, 3073, 2949, 2949, 2949, 1215, 2950,
2853      1213, 1212, 2951, 3047, 1211, 1210, 2945, 1208, 1207, 3074,
2854      3082, 3082, 3082, 2960, 2960, 2960, 3085, 3085, 3085, 1206,
2855      3086, 1205, 1204, 3087, 1203, 2962, 2962, 2962, 3083, 2963,
2856      2961, 1200, 2964, 2965, 2965, 2965, 1199, 2966, 1197, 1194,
2857      2967, 2968, 2968, 2968, 1192, 2969, 1191, 1190, 2970, 2978,
2858      2978, 2978, 3101, 3101, 3101, 1189, 3102, 1188, 1183, 3103,
2859      2980, 2980, 2980, 3104, 3104, 3104, 2979, 3105, 1181, 1180,
2860      3106, 3107, 3107, 3107, 3109, 3109, 3109, 2981, 1587, 1587,
2861
2862      1587, 2985, 2985, 2985, 2986, 2986, 2986, 1179, 3108, 1177,
2863      1176, 3110, 1175, 3112, 3112, 3112, 1589, 3113, 1172, 1171,
2864      3114, 2987, 1605, 1605, 1605, 3011, 3011, 3011, 3136, 3136,
2865      3136, 1170, 3137, 1169, 1167, 3138, 3013, 3013, 3013, 1166,
2866      1607, 1165, 3012, 1163, 1160, 3141, 3141, 3141, 3031, 3031,
2867      3031, 3157, 3157, 3157, 3014, 3036, 3036, 3036, 3161, 3161,
2868      3161, 3111, 3142, 1867, 3040, 3040, 3040, 1156, 3041, 1155,
2869      1153, 3042, 1152, 1151, 3123, 1362, 1362, 1362, 3172, 3172,
2870      3172, 1380, 1380, 1380, 3051, 3051, 3051, 3176, 3176, 3176,
2871      1148, 3177, 1147, 1364, 3178, 1146, 3173, 1145, 1143, 1382,
2872
2873      1142, 3052, 3053, 3053, 3053, 1136, 3054, 1135, 1134, 3055,
2874      3056, 3056, 3056, 3179, 3179, 3179, 1132, 3180, 1131, 1130,
2875      3181, 3069, 3069, 3069, 1125, 3070, 1124, 3057, 3071, 3073,
2876      3073, 3073, 3194, 3194, 3194, 1120, 3195, 1118, 1117, 3196,
2877      1116, 1115, 3171, 3174, 1114, 1113, 3074, 3082, 3082, 3082,
2878      3085, 3085, 3085, 1112, 3086, 1111, 1110, 3087, 3217, 3217,
2879      3217, 1109, 3101, 3101, 3101, 3083, 3102, 1106, 1103, 3103,
2880      3104, 3104, 3104, 1102, 3105, 3218, 1100, 3106, 3107, 3107,
2881      3107, 3223, 3223, 3223, 1099, 3224, 1098, 1097, 3225, 3109,
2882      3109, 3109, 3226, 3226, 3226, 3108, 3227, 1096, 1091, 3228,
2883
2884      1587, 1587, 1587, 3112, 3112, 3112, 3110, 3113, 1089, 1088,
2885      3114, 1605, 1605, 1605, 1087, 3136, 3136, 3136, 1589, 3137,
2886      1086, 1084, 3138, 3256, 3256, 3256, 3141, 3141, 3141, 1607,
2887      3258, 3258, 3258, 1083, 3259, 1082, 1080, 3260, 1079, 1078,
2888      3257, 1867, 1077, 3142, 1867, 3269, 3269, 3269, 1867, 3157,
2889      3157, 3157, 3229, 3271, 3271, 3271, 3272, 3272, 3272, 1075,
2890      1072, 3238, 3161, 3161, 3161, 3274, 3274, 3274, 1362, 1362,
2891      1362, 3172, 3172, 3172, 1380, 1380, 1380, 3176, 3176, 3176,
2892      1071, 3177, 1069, 1067, 3178, 1065, 1364, 1064, 1063, 3173,
2893      1062, 1061, 1382, 3179, 3179, 3179, 1060, 3180, 1059, 1057,
2894
2895      3181, 3286, 3286, 3286, 3298, 3298, 3298, 3194, 3194, 3194,
2896      1056, 3195, 1055, 1054, 3196, 3300, 3300, 3300, 3287, 1052,
2897      3283, 3299, 3217, 3217, 3217, 1050, 3319, 3319, 3319, 1049,
2898      3320, 1048, 3301, 3321, 3223, 3223, 3223, 1047, 3224, 3218,
2899      1044, 3225, 3284, 3226, 3226, 3226, 1043, 3227, 1042, 1037,
2900      3228, 3326, 3326, 3326, 1605, 1605, 1605, 3256, 3256, 3256,
2901      3348, 3348, 3348, 1035, 3349, 1034, 1033, 3350, 1027, 3327,
2902      1026, 1025, 1607, 1024, 3257, 1867, 1016, 1015, 1867, 3258,
2903      3258, 3258, 1013, 3259, 1010, 1009, 3260, 3269, 3269, 3269,
2904      3271, 3271, 3271, 3272, 3272, 3272, 1008, 1867, 3274, 3274,
2905
2906      3274, 3369, 3369, 3369, 3373, 3373, 3373, 1007, 3374, 1002,
2907       999, 3375, 1001, 1380, 1380, 1380, 3449, 3449, 3449, 3370,
2908       994, 3334, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
2909      1865, 1382,  993, 1865, 3286, 3286, 3286,  991, 1865, 1865,
2910      1865, 1867, 1865, 3376, 3376, 3376, 3298, 3298, 3298,  762,
2911       989, 3287, 3385, 3385, 3385,  988, 3386,  986,  984, 3387,
2912      3377,  983,  982, 3299,  980, 3300, 3300, 3300, 1865, 1865,
2913      1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,  979,
2914      3371, 1865, 3301, 3450, 3450, 3450, 1865, 1865, 1865, 1867,
2915      1865, 3388, 3388, 3388,  976, 3389,  975,  974, 3390, 3319,
2916
2917      3319, 3319,  972, 3320,  971,  969, 3321, 3326, 3326, 3326,
2918      3418, 3418, 3418, 3369, 3369, 3369, 1865, 1865,  968, 3348,
2919      3348, 3348,  967, 3349,  966, 3327, 3350,  964, 3419,  963,
2920       962, 3370,  961, 3376, 3376, 3376,  960, 1867, 1865, 1865,
2921      1865, 1865, 1865, 3436, 1865, 1865, 1865,  959,  957, 1865,
2922      3377, 3449, 3449, 3449, 1865, 1865, 1865, 1867, 1865, 1380,
2923      1380, 1380, 3373, 3373, 3373,  955, 3374,  954,  952, 3375,
2924       948, 3461, 3461, 3461,  946, 3462,  942, 1382, 3463,  938,
2925      3418, 3418, 3418,  937, 1865, 1865, 1865, 1865, 1865, 1865,
2926      1865, 1865, 1865, 1865, 3436,  935,  933, 1865, 3419, 3450,
2927
2928      3450, 3450, 1865, 1865, 1865, 1867, 1865,  932, 3385, 3385,
2929      3385, 3455, 3386,  930,  928, 3387, 3388, 3388, 3388,  927,
2930      3389,  926,  925, 3390, 3504, 3504, 3504, 3517, 3517, 3517,
2931       924,  922, 1865, 1865, 3519, 3519, 3519, 3461, 3461, 3461,
2932       914, 3462, 1867, 1868, 3463, 3518, 3531, 3531, 3531,  912,
2933       907, 3520, 3539, 3539, 3539, 3557, 3557, 3557, 3504, 3504,
2934      3504,  906,  905, 3532, 3517, 3517, 3517,  904,  903, 3540,
2935      3519, 3519, 3519, 1261,  901,  899, 1867, 3569, 3569, 3569,
2936       898, 3570, 3518,  896, 3571,  894,  893, 3520, 3531, 3531,
2937      3531, 3582, 3582, 3582,  891, 3583,  889,  888, 3584, 3539,
2938
2939      3539, 3539, 3591, 3591, 3591, 3532, 3592,  886,  885, 3593,
2940      2075, 3557, 3557, 3557,  882,  881, 3540, 3569, 3569, 3569,
2941       880, 3570,  878, 3905, 3571,  874, 3582, 3582, 3582, 1261,
2942      3583,  872,  870, 3584, 3591, 3591, 3591,  869, 3592,  868,
2943       866, 3593, 3781, 3781, 3781, 3781, 3781, 3781, 3608, 3794,
2944       865,  861, 3795, 3903, 3903, 3903, 3903, 3903, 3903,  860,
2945      1261,  859,  858, 1261,  856,  855,  854,  852,  851,  850,
2946       844, 3904,  840,  839, 3904,  292,  292,  292,  292,  292,
2947       292,  292,  292,  292,  293,  293,  293,  293,  293,  293,
2948       293,  293,  293,  298,  298,  298,  298,  298,  298,  298,
2949
2950       298,  298,  301,  301,  301,  301,  301,  301,  301,  301,
2951       301,  304,  304,  304,  304,  304,  304,  304,  304,  304,
2952       307,  307,  307,  307,  307,  307,  307,  307,  307,  314,
2953       314,  314,  314,  314,  314,  314,  314,  314,  321,  321,
2954       321,  321,  321,  321,  321,  321,  321,  326,  326,  326,
2955       326,  326,  326,  326,  326,  326,  338,  338,  338,  338,
2956       338,  338,  338,  338,  338,  344,  344,  344,  344,  344,
2957       344,  344,  344,  344,  352,  352,  352,  352,  352,  352,
2958       352,  352,  352,  360,  360,  360,  360,  360,  360,  360,
2959       360,  360,  368,  368,  368,  368,  368,  368,  368,  368,
2960
2961       368,  372,  372,  372,  372,  372,  372,  372,  372,  372,
2962       378,  378,  378,  378,  378,  378,  378,  378,  378,  384,
2963       384,  384,  384,  384,  384,  384,  384,  384,  390,  390,
2964       390,  390,  390,  390,  390,  390,  390,  396,  396,  396,
2965       396,  396,  396,  396,  396,  396,  403,  403,  403,  403,
2966       403,  403,  403,  403,  403,  408,  408,  408,  408,  408,
2967       408,  408,  408,  408,  415,  415,  415,  415,  415,  415,
2968       415,  415,  415,  421,  421,  421,  421,  421,  421,  421,
2969       421,  421,  428,  428,  428,  428,  428,  428,  428,  428,
2970       428,  437,  437,  437,  437,  437,  437,  437,  437,  437,
2971
2972       443,  443,  443,  443,  443,  443,  443,  443,  443,  454,
2973       454,  454,  454,  454,  454,  454,  454,  454,  461,  461,
2974       461,  461,  461,  461,  461,  461,  461,  465,  465,  465,
2975       465,  465,  465,  465,  465,  465,  472,  472,  472,  472,
2976       472,  472,  472,  472,  472,  480,  480,  480,  480,  480,
2977       480,  480,  480,  480,  488,  488,  488,  488,  488,  488,
2978       488,  488,  488,  494,  494,  494,  494,  494,  494,  494,
2979       494,  494,  500,  500,  500,  500,  500,  500,  500,  500,
2980       500,  504,  504,  504,  504,  504,  504,  504,  504,  504,
2981       512,  512,  512,  512,  512,  512,  512,  512,  512,  519,
2982
2983       519,  519,  519,  519,  519,  519,  519,  519,  526,  526,
2984       526,  526,  526,  526,  526,  526,  526,  531,  531,  531,
2985       531,  531,  531,  531,  531,  531,  537,  537,  537,  537,
2986       537,  537,  537,  537,  537,  542,  542,  542,  542,  542,
2987       542,  542,  542,  542,  548,  548,  548,  548,  548,  548,
2988       548,  548,  548,  553,  553,  553,  553,  553,  553,  553,
2989       553,  553,  559,  559,  559,  559,  559,  559,  559,  559,
2990       559,  568,  568,  568,  568,  568,  568,  568,  568,  568,
2991       575,  575,  575,  575,  575,  575,  575,  575,  575,  579,
2992       579,  579,  579,  579,  579,  579,  579,  579,  590,  590,
2993
2994       590,  590,  590,  590,  590,  590,  590,  598,  598,  598,
2995       598,  598,  598,  598,  598,  598,  605,  605,  605,  605,
2996       605,  605,  605,  605,  605,  610,  610,  610,  610,  610,
2997       610,  610,  610,  610,  616,  616,  616,  616,  616,  616,
2998       616,  616,  616,  624,  624,  624,  624,  624,  624,  624,
2999       624,  624,  630,  630,  630,  630,  630,  630,  630,  630,
3000       630,  635,  635,  635,  635,  635,  635,  635,  635,  635,
3001       642,  642,  642,  642,  642,  642,  642,  642,  642,  647,
3002       647,  647,  647,  647,  647,  647,  647,  647,  653,  653,
3003       653,  653,  653,  653,  653,  653,  653,  660,  660,  660,
3004
3005       660,  660,  660,  660,  660,  660,  667,  667,  667,  667,
3006       667,  667,  667,  667,  667,  674,  674,  674,  674,  674,
3007       674,  674,  674,  674,  682,  682,  682,  682,  682,  682,
3008       682,  682,  682,  307,  307,  307,  307,  307,  307,  307,
3009       307,  307,  693,  693,  693,  693,  693,  693,  693,  693,
3010       693,  699,  699,  699,  699,  699,  699,  699,  699,  699,
3011       705,  705,  705,  705,  705,  705,  705,  705,  705,  710,
3012       710,  710,  710,  710,  710,  710,  710,  710,  719,  719,
3013       719,  719,  719,  719,  719,  719,  719,  725,  725,  725,
3014       725,  725,  725,  725,  725,  725,  745,  745,  745,  835,
3015
3016       831,  830,  745,  782,  782,  782,  829,  828,  827,  782,
3017       790,  790,  790,  825,  823,  822,  790,  799,  799,  799,
3018       821,  819,  817,  799,  803,  803,  803,  816,  814,  812,
3019       803,  809,  809,  809,  811,  810,  808,  809,  815,  815,
3020       815,  806,  805,  804,  815,  820,  820,  820,  802,  800,
3021       798,  820,  826,  826,  826,  797,  795,  794,  826,  836,
3022       836,  836,  793,  792,  791,  836,  853,  853,  853,  789,
3023       784,  783,  853,  857,  857,  857,  781, 3905,  762,  857,
3024       867,  867,  867,  747,  746,  744,  867,  873,  873,  873,
3025       743,  737,  736,  873,  879,  879,  879,  737,  736,  735,
3026
3027       879,  887,  887,  887,  734, 3905, 3905,  887,  892,  892,
3028       892, 3905, 3905, 3905,  892,  897,  897,  897, 3905, 3905,
3029      3905,  897,  902,  902,  902, 3905, 3905, 3905,  902,  913,
3030       913,  913, 3905, 3905, 3905,  913,  923,  923,  923, 3905,
3031      3905, 3905,  923,  931,  931,  931, 3905, 3905, 3905,  931,
3032       936,  936,  936, 3905, 3905, 3905,  936,  947,  947,  947,
3033      3905, 3905, 3905,  947,  953,  953,  953, 3905, 3905, 3905,
3034       953,  958,  958,  958, 3905, 3905, 3905,  958,  965,  965,
3035       965, 3905, 3905, 3905,  965,  973,  973,  973, 3905, 3905,
3036      3905,  973,  981,  981,  981, 3905, 3905, 3905,  981,  987,
3037
3038       987,  987, 3905, 3905, 3905,  987,  992,  992,  992, 3905,
3039      3905, 3905,  992,  998,  998,  998,  998,  998,  998,  998,
3040      3905,  998,  745,  745,  745, 3905, 3905, 3905,  745, 1014,
3041      3905, 3905, 3905, 1014,  782,  782,  782, 3905, 3905, 3905,
3042       782, 1058, 3905, 3905, 3905, 1058,  790,  790,  790, 3905,
3043      3905, 3905,  790, 1066, 3905, 3905, 3905, 1066,  799,  799,
3044       799, 3905, 3905, 3905,  799, 1070, 3905, 3905, 3905, 1070,
3045       803,  803,  803, 3905, 3905, 3905,  803, 1076, 3905, 3905,
3046      3905, 1076,  809,  809,  809, 3905, 3905, 3905,  809, 1081,
3047      3905, 3905, 3905, 1081,  815,  815,  815, 3905, 3905, 3905,
3048
3049       815, 1085, 3905, 3905, 3905, 1085,  820,  820,  820, 3905,
3050      3905, 3905,  820, 1090, 3905, 3905, 3905, 1090,  826,  826,
3051       826, 3905, 3905, 3905,  826, 1101, 3905, 3905, 3905, 1101,
3052       836,  836,  836, 3905, 3905, 3905,  836, 1119, 3905, 3905,
3053      3905, 1119,  853,  853,  853, 3905, 3905, 3905,  853, 1123,
3054      3905, 3905, 3905, 1123,  857,  857,  857, 3905, 3905, 3905,
3055       857, 1133, 3905, 3905, 3905, 1133,  867,  867,  867, 3905,
3056      3905, 3905,  867, 1141, 3905, 3905, 3905, 1141,  873,  873,
3057       873, 3905, 3905, 3905,  873, 1144, 3905, 3905, 3905, 1144,
3058       879,  879,  879, 3905, 3905, 3905,  879, 1154, 3905, 3905,
3059
3060      3905, 1154,  887,  887,  887, 3905, 3905, 3905,  887, 1159,
3061      3905, 3905, 3905, 1159,  892,  892,  892, 3905, 3905, 3905,
3062       892, 1164, 3905, 3905, 3905, 1164,  897,  897,  897, 3905,
3063      3905, 3905,  897, 1168, 3905, 3905, 3905, 1168,  902,  902,
3064       902, 3905, 3905, 3905,  902, 1178, 3905, 3905, 3905, 1178,
3065       913,  913,  913, 3905, 3905, 3905,  913, 1182, 3905, 3905,
3066      3905, 1182,  923,  923,  923, 3905, 3905, 3905,  923, 1193,
3067      3905, 3905, 3905, 1193,  931,  931,  931, 3905, 3905, 3905,
3068       931, 1198, 3905, 3905, 3905, 1198,  936,  936,  936, 3905,
3069      3905, 3905,  936, 1209, 3905, 3905, 3905, 1209,  947,  947,
3070
3071       947, 3905, 3905, 3905,  947, 1214, 3905, 3905, 3905, 1214,
3072       953,  953,  953, 3905, 3905, 3905,  953, 1219, 3905, 3905,
3073      3905, 1219,  958,  958,  958, 3905, 3905, 3905,  958, 1226,
3074      3905, 3905, 3905, 1226,  965,  965,  965, 3905, 3905, 3905,
3075       965, 1233, 3905, 3905, 3905, 1233,  973,  973,  973, 3905,
3076      3905, 3905,  973, 1241, 3905, 3905, 3905, 1241,  981,  981,
3077       981, 3905, 3905, 3905,  981, 1247, 3905, 3905, 3905, 1247,
3078       987,  987,  987, 3905, 3905, 3905,  987, 1252, 3905, 3905,
3079      3905, 1252,  992,  992,  992, 3905, 3905, 3905,  992, 1258,
3080      3905, 3905, 3905, 1258, 1260, 1260, 1260, 1260, 1260, 1260,
3081
3082      1260, 1260, 1260, 1266, 3905, 3905, 3905, 3905, 1266,  745,
3083       745,  745, 3905, 3905, 3905,  745, 1277, 1277, 1277, 1277,
3084      3905, 3905, 1277, 1277,  782,  782,  782,  782, 3905,  782,
3085      3905,  782, 1328, 1328, 1328, 1328, 3905, 3905, 1328, 1328,
3086       790,  790,  790, 3905, 3905, 3905,  790, 1338, 1338, 1338,
3087      1338, 3905, 3905, 1338, 1338,  799,  799,  799, 3905, 3905,
3088      3905,  799, 1344, 1344, 1344, 1344, 3905, 3905, 1344, 1344,
3089       803,  803,  803, 3905, 3905, 3905,  803, 1353, 1353, 1353,
3090      1353, 3905, 3905, 1353, 1353,  809,  809,  809,  809, 3905,
3091       809, 3905,  809, 1363, 1363, 1363, 1363, 3905, 3905, 1363,
3092
3093      1363,  815,  815,  815,  815, 3905,  815, 3905,  815, 1371,
3094      1371, 1371, 1371, 3905, 3905, 1371, 1371,  820,  820,  820,
3095       820, 3905,  820, 3905,  820, 1381, 1381, 1381, 1381, 3905,
3096      3905, 1381, 1381,  826,  826,  826,  826, 3905,  826, 3905,
3097       826, 1397, 1397, 1397, 1397, 3905, 3905, 1397, 1397,  836,
3098       836,  836, 3905, 3905, 3905,  836, 1422, 1422, 1422, 1422,
3099      3905, 3905, 1422, 1422, 1429, 1429, 1429, 1429, 3905, 3905,
3100      1429, 1429,  857,  857,  857, 3905, 3905, 3905,  857, 1442,
3101      1442, 1442, 1442, 3905, 3905, 1442, 1442,  867,  867,  867,
3102      3905, 3905, 3905,  867, 1454, 1454, 1454, 1454, 3905, 3905,
3103
3104      1454, 1454,  873,  873,  873, 3905, 3905, 3905,  873, 1459,
3105      1459, 1459, 1459, 3905, 3905, 1459, 1459,  879,  879,  879,
3106      3905, 3905, 3905,  879, 1471, 1471, 1471, 1471, 3905, 3905,
3107      1471, 1471,  887,  887,  887, 3905, 3905, 3905,  887, 1479,
3108      1479, 1479, 1479, 3905, 3905, 1479, 1479,  892,  892,  892,
3109      3905, 3905, 3905,  892, 1487, 1487, 1487, 1487, 3905, 3905,
3110      1487, 1487,  897,  897,  897, 3905, 3905, 3905,  897, 1493,
3111      1493, 1493, 1493, 3905, 3905, 1493, 1493,  902,  902,  902,
3112      3905, 3905, 3905,  902, 1508, 1508, 1508, 1508, 3905, 3905,
3113      1508, 1508,  913,  913,  913, 3905, 3905, 3905,  913, 1514,
3114
3115      1514, 1514, 1514, 3905, 3905, 1514, 1514,  923,  923,  923,
3116      3905, 3905, 3905,  923, 1527, 1527, 1527, 1527, 3905, 3905,
3117      1527, 1527,  931,  931,  931, 3905, 3905, 3905,  931, 1535,
3118      1535, 1535, 1535, 3905, 3905, 1535, 1535,  936,  936,  936,
3119      3905, 3905, 3905,  936, 1551, 1551, 1551, 1551, 3905, 3905,
3120      1551, 1551,  947,  947,  947,  947, 3905,  947, 3905,  947,
3121      1560, 1560, 1560, 1560, 3905, 3905, 1560, 1560,  953,  953,
3122       953, 3905, 3905, 3905,  953, 1568, 1568, 1568, 1568, 3905,
3123      3905, 1568, 1568,  958,  958,  958, 3905, 3905, 3905,  958,
3124      1578, 1578, 1578, 1578, 3905, 3905, 1578, 1578,  965,  965,
3125
3126       965, 3905, 3905, 3905,  965, 1588, 1588, 1588, 1588, 3905,
3127      3905, 1588, 1588,  973,  973,  973, 3905, 3905, 3905,  973,
3128      1599, 1599, 1599, 1599, 3905, 3905, 1599, 1599,  981,  981,
3129       981, 3905, 3905, 3905,  981, 1606, 1606, 1606, 1606, 3905,
3130      3905, 1606, 1606,  987,  987,  987, 3905, 3905, 3905,  987,
3131      1614, 1614, 1614, 1614, 3905, 3905, 1614, 1614,  992,  992,
3132       992,  992, 3905,  992, 3905,  992, 1625, 1625, 1625, 1625,
3133      3905, 3905, 1625, 1625, 1260, 1260, 1260, 1260, 1260, 1260,
3134      1260, 1260, 1260, 1266, 3905, 1266, 3905, 3905, 1266,  745,
3135       745,  745, 3905, 3905, 3905,  745, 1277, 1277, 1277, 1277,
3136
3137      3905, 3905, 1277, 1277,  782,  782,  782, 3905, 3905, 3905,
3138       782, 1328, 1328, 1328, 1328, 3905, 3905, 1328, 1328,  790,
3139       790,  790, 3905, 3905, 3905,  790, 1338, 1338, 1338, 1338,
3140      3905, 3905, 1338, 1338,  799,  799,  799, 3905, 3905, 3905,
3141       799, 1344, 1344, 1344, 1344, 3905, 3905, 1344, 1344,  803,
3142       803,  803, 3905, 3905, 3905,  803, 1353, 1353, 1353, 1353,
3143      3905, 3905, 1353, 1353,  809,  809,  809, 3905, 3905, 3905,
3144       809, 1363, 1363, 1363, 1363, 3905, 3905, 1363, 1363, 1371,
3145      1371, 1371, 1371, 3905, 3905, 1371, 1371,  820,  820,  820,
3146      3905, 3905, 3905,  820, 1381, 1381, 1381, 1381, 3905, 3905,
3147
3148      1381, 1381,  826,  826,  826, 3905, 3905, 3905,  826, 1397,
3149      1397, 1397, 1397, 3905, 3905, 1397, 1397,  836,  836,  836,
3150      3905, 3905, 3905,  836, 1422, 1422, 1422, 1422, 3905, 3905,
3151      1422, 1422, 1429, 1429, 1429, 1429, 3905, 3905, 1429, 1429,
3152       857,  857,  857, 3905, 3905, 3905,  857, 1442, 1442, 1442,
3153      1442, 3905, 3905, 1442, 1442,  867,  867,  867,  867, 3905,
3154       867, 3905,  867, 1454, 1454, 1454, 1454, 3905, 3905, 1454,
3155      1454,  873,  873,  873,  873, 3905,  873, 3905,  873, 1459,
3156      1459, 1459, 1459, 3905, 3905, 1459, 1459,  879,  879,  879,
3157      3905, 3905, 3905,  879, 1471, 1471, 1471, 1471, 3905, 3905,
3158
3159      1471, 1471,  887,  887,  887, 3905, 3905, 3905,  887, 1479,
3160      1479, 1479, 1479, 3905, 3905, 1479, 1479,  892,  892,  892,
3161      3905, 3905, 3905,  892, 1487, 1487, 1487, 1487, 3905, 3905,
3162      1487, 1487,  897,  897,  897,  897, 3905,  897, 3905,  897,
3163      1493, 1493, 1493, 1493, 3905, 3905, 1493, 1493,  902,  902,
3164       902, 3905, 3905, 3905,  902, 1508, 1508, 1508, 1508, 3905,
3165      3905, 1508, 1508,  913,  913,  913, 3905, 3905, 3905,  913,
3166      1514, 1514, 1514, 1514, 3905, 3905, 1514, 1514,  923,  923,
3167       923, 3905, 3905, 3905,  923, 1527, 1527, 1527, 1527, 3905,
3168      3905, 1527, 1527,  931,  931,  931, 3905, 3905, 3905,  931,
3169
3170      1535, 1535, 1535, 1535, 3905, 3905, 1535, 1535,  936,  936,
3171       936, 3905, 3905, 3905,  936, 1551, 1551, 1551, 1551, 3905,
3172      3905, 1551, 1551,  947,  947,  947, 3905, 3905, 3905,  947,
3173      1560, 1560, 1560, 1560, 3905, 3905, 1560, 1560,  953,  953,
3174       953, 3905, 3905, 3905,  953, 1568, 1568, 1568, 1568, 3905,
3175      3905, 1568, 1568,  958,  958,  958, 3905, 3905, 3905,  958,
3176      1578, 1578, 1578, 1578, 3905, 3905, 1578, 1578,  965,  965,
3177       965, 3905, 3905, 3905,  965, 1588, 1588, 1588, 1588, 3905,
3178      3905, 1588, 1588,  973,  973,  973,  973, 3905,  973, 3905,
3179       973, 1599, 1599, 1599, 1599, 3905, 3905, 1599, 1599,  981,
3180
3181       981,  981, 3905, 3905, 3905,  981, 1606, 1606, 1606, 1606,
3182      3905, 3905, 1606, 1606,  987,  987,  987, 3905, 3905, 3905,
3183       987, 1614, 1614, 1614, 1614, 3905, 3905, 1614, 1614,  992,
3184       992,  992, 3905, 3905, 3905,  992, 1625, 1625, 1625, 1625,
3185      3905, 3905, 1625, 1625, 1260, 1260, 1260, 1260, 1260, 1260,
3186      1260, 1260, 1260, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
3187      1865, 1865,  745,  745,  745, 3905, 3905, 3905,  745,  782,
3188       782,  782, 3905, 3905, 3905,  782, 1328, 1328, 1328, 1328,
3189      3905, 3905, 1328, 1328,  790,  790,  790, 3905, 3905, 3905,
3190       790, 1338, 1338, 1338, 1338, 3905, 3905, 1338, 1338,  799,
3191
3192       799,  799,  799, 3905,  799, 3905,  799, 1344, 1344, 1344,
3193      1344, 3905, 3905, 1344, 1344,  803,  803,  803, 3905, 3905,
3194      3905,  803, 1353, 1353, 1353, 1353, 3905, 3905, 1353, 1353,
3195       809,  809,  809, 3905, 3905, 3905,  809, 1363, 1363, 1363,
3196      1363, 3905, 3905, 1363, 1363, 1371, 1371, 1371, 1371, 3905,
3197      3905, 1371, 1371,  820,  820,  820, 3905, 3905, 3905,  820,
3198      1381, 1381, 1381, 1381, 3905, 3905, 1381, 1381,  826,  826,
3199       826, 3905, 3905, 3905,  826, 1397, 1397, 1397, 1397, 3905,
3200      3905, 1397, 1397,  836,  836,  836,  836, 3905,  836, 3905,
3201       836, 1422, 1422, 1422, 1422, 3905, 3905, 1422, 1422, 1429,
3202
3203      1429, 1429, 1429, 3905, 3905, 1429, 1429,  857,  857,  857,
3204      3905, 3905, 3905,  857, 1442, 1442, 1442, 1442, 3905, 3905,
3205      1442, 1442, 1454, 1454, 1454, 1454, 3905, 3905, 1454, 1454,
3206      1459, 1459, 1459, 1459, 3905, 3905, 1459, 1459,  879,  879,
3207       879, 3905, 3905, 3905,  879, 1471, 1471, 1471, 1471, 3905,
3208      3905, 1471, 1471,  887,  887,  887, 3905, 3905, 3905,  887,
3209      1479, 1479, 1479, 1479, 3905, 3905, 1479, 1479,  892,  892,
3210       892,  892, 3905,  892, 3905,  892, 1487, 1487, 1487, 1487,
3211      3905, 3905, 1487, 1487,  897,  897,  897, 3905, 3905, 3905,
3212       897, 1493, 1493, 1493, 1493, 3905, 3905, 1493, 1493,  902,
3213
3214       902,  902, 3905, 3905, 3905,  902, 1508, 1508, 1508, 1508,
3215      3905, 3905, 1508, 1508,  913,  913,  913, 3905, 3905, 3905,
3216       913, 1514, 1514, 1514, 1514, 3905, 3905, 1514, 1514,  923,
3217       923,  923, 3905, 3905, 3905,  923, 1527, 1527, 1527, 1527,
3218      3905, 3905, 1527, 1527,  931,  931,  931,  931, 3905,  931,
3219      3905,  931, 1535, 1535, 1535, 1535, 3905, 3905, 1535, 1535,
3220       936,  936,  936, 3905, 3905, 3905,  936, 1551, 1551, 1551,
3221      1551, 3905, 3905, 1551, 1551,  947,  947,  947, 3905, 3905,
3222      3905,  947, 1560, 1560, 1560, 1560, 3905, 3905, 1560, 1560,
3223       953,  953,  953, 3905, 3905, 3905,  953, 1568, 1568, 1568,
3224
3225      1568, 3905, 3905, 1568, 1568,  958,  958,  958, 3905, 3905,
3226      3905,  958, 1578, 1578, 1578, 1578, 3905, 3905, 1578, 1578,
3227       965,  965,  965, 3905, 3905, 3905,  965, 1588, 1588, 1588,
3228      1588, 3905, 3905, 1588, 1588,  973,  973,  973, 3905, 3905,
3229      3905,  973, 1599, 1599, 1599, 1599, 3905, 3905, 1599, 1599,
3230       981,  981,  981, 3905, 3905, 3905,  981, 1606, 1606, 1606,
3231      1606, 3905, 3905, 1606, 1606,  987,  987,  987, 3905, 3905,
3232      3905,  987, 1614, 1614, 1614, 1614, 3905, 3905, 1614, 1614,
3233       992,  992,  992, 3905, 3905, 3905,  992, 1625, 1625, 1625,
3234      1625, 3905, 3905, 1625, 1625, 1260, 1260, 1260, 1260, 1260,
3235
3236      1260, 1260, 1260, 1260, 1865, 1865, 1865, 1865, 1865, 1865,
3237      1865, 1865, 1865,  745,  745,  745, 3905, 3905, 3905,  745,
3238       782,  782,  782,  782, 3905,  782, 3905,  782, 1328, 1328,
3239      1328, 1328, 3905, 3905, 1328, 1328,  790,  790,  790, 3905,
3240      3905, 3905,  790, 1338, 1338, 1338, 1338, 3905, 3905, 1338,
3241      1338, 1344, 1344, 1344, 1344, 3905, 3905, 1344, 1344,  803,
3242       803,  803, 3905, 3905, 3905,  803, 1353, 1353, 1353, 1353,
3243      3905, 3905, 1353, 1353,  809,  809,  809,  809, 3905,  809,
3244      3905,  809, 1363, 1363, 1363, 1363, 3905, 3905, 1363, 1363,
3245      1371, 1371, 1371, 1371, 3905, 3905, 1371, 1371,  820,  820,
3246
3247       820,  820, 3905,  820, 3905,  820, 1381, 1381, 1381, 1381,
3248      3905, 3905, 1381, 1381,  826,  826,  826,  826, 3905,  826,
3249      3905,  826, 1397, 1397, 1397, 1397, 3905, 3905, 1397, 1397,
3250       836,  836,  836,  836, 3905,  836, 3905,  836, 1422, 1422,
3251      1422, 1422, 3905, 3905, 1422, 1422, 1429, 1429, 1429, 1429,
3252      3905, 3905, 1429, 1429,  857,  857,  857, 3905, 3905, 3905,
3253       857, 1442, 1442, 1442, 1442, 3905, 3905, 1442, 1442, 1454,
3254      1454, 1454, 1454, 3905, 3905, 1454, 1454, 1459, 1459, 1459,
3255      1459, 3905, 3905, 1459, 1459,  879,  879,  879, 3905, 3905,
3256      3905,  879, 1471, 1471, 1471, 1471, 3905, 3905, 1471, 1471,
3257
3258       887,  887,  887, 3905, 3905, 3905,  887, 1479, 1479, 1479,
3259      1479, 3905, 3905, 1479, 1479, 1487, 1487, 1487, 1487, 3905,
3260      3905, 1487, 1487,  897,  897,  897, 3905, 3905, 3905,  897,
3261      1493, 1493, 1493, 1493, 3905, 3905, 1493, 1493,  902,  902,
3262       902, 3905, 3905, 3905,  902, 1508, 1508, 1508, 1508, 3905,
3263      3905, 1508, 1508,  913,  913,  913, 3905, 3905, 3905,  913,
3264      1514, 1514, 1514, 1514, 3905, 3905, 1514, 1514,  923,  923,
3265       923, 3905, 3905, 3905,  923, 1527, 1527, 1527, 1527, 3905,
3266      3905, 1527, 1527, 1535, 1535, 1535, 1535, 3905, 3905, 1535,
3267      1535,  936,  936,  936, 3905, 3905, 3905,  936, 1551, 1551,
3268
3269      1551, 1551, 3905, 3905, 1551, 1551,  947,  947,  947, 3905,
3270      3905, 3905,  947, 1560, 1560, 1560, 1560, 3905, 3905, 1560,
3271      1560,  953,  953,  953, 3905, 3905, 3905,  953, 1568, 1568,
3272      1568, 1568, 3905, 3905, 1568, 1568,  958,  958,  958,  958,
3273      3905,  958, 3905,  958, 1578, 1578, 1578, 1578, 3905, 3905,
3274      1578, 1578,  965,  965,  965, 3905, 3905, 3905,  965, 1588,
3275      1588, 1588, 1588, 3905, 3905, 1588, 1588,  973,  973,  973,
3276      3905, 3905, 3905,  973, 1599, 1599, 1599, 1599, 3905, 3905,
3277      1599, 1599,  981,  981,  981, 3905, 3905, 3905,  981, 1606,
3278      1606, 1606, 1606, 3905, 3905, 1606, 1606,  987,  987,  987,
3279
3280      3905, 3905, 3905,  987, 1614, 1614, 1614, 1614, 3905, 3905,
3281      1614, 1614,  992,  992,  992,  992, 3905,  992, 3905,  992,
3282      1625, 1625, 1625, 1625, 3905, 3905, 1625, 1625, 1260, 1260,
3283      1260, 1260, 1260, 1260, 1260, 1260, 1260, 1865, 1865, 1865,
3284      1865, 1865, 1865, 1865, 1865, 1865,  745,  745,  745,  745,
3285      3905,  745, 3905,  745,  782,  782,  782, 3905, 3905, 3905,
3286       782, 1328, 1328, 1328, 1328, 3905, 3905, 1328, 1328,  790,
3287       790,  790, 3905, 3905, 3905,  790, 1338, 1338, 1338, 1338,
3288      3905, 3905, 1338, 1338, 1344, 1344, 1344, 1344, 3905, 3905,
3289      1344, 1344,  803,  803,  803, 3905, 3905, 3905,  803, 1353,
3290
3291      1353, 1353, 1353, 3905, 3905, 1353, 1353, 1363, 1363, 1363,
3292      1363, 3905, 3905, 1363, 1363, 1371, 1371, 1371, 1371, 3905,
3293      3905, 1371, 1371, 1381, 1381, 1381, 1381, 3905, 3905, 1381,
3294      1381,  826,  826,  826,  826, 3905,  826, 3905,  826, 1397,
3295      1397, 1397, 1397, 3905, 3905, 1397, 1397,  836,  836,  836,
3296      3905, 3905, 3905,  836, 1422, 1422, 1422, 1422, 3905, 3905,
3297      1422, 1422, 1429, 1429, 1429, 1429, 3905, 3905, 1429, 1429,
3298       857,  857,  857, 3905, 3905, 3905,  857, 1454, 1454, 1454,
3299      1454, 3905, 3905, 1454, 1454, 1459, 1459, 1459, 1459, 3905,
3300      3905, 1459, 1459,  879,  879,  879, 3905, 3905, 3905,  879,
3301
3302       887,  887,  887, 3905, 3905, 3905,  887, 1479, 1479, 1479,
3303      1479, 3905, 3905, 1479, 1479, 1487, 1487, 1487, 1487, 3905,
3304      3905, 1487, 1487,  897,  897,  897, 3905, 3905, 3905,  897,
3305      1493, 1493, 1493, 1493, 3905, 3905, 1493, 1493,  902,  902,
3306       902, 3905, 3905, 3905,  902,  913,  913,  913,  913, 3905,
3307       913, 3905,  913, 1514, 1514, 1514, 1514, 3905, 3905, 1514,
3308      1514,  923,  923,  923, 3905, 3905, 3905,  923, 1527, 1527,
3309      1527, 1527, 3905, 3905, 1527, 1527,  936,  936,  936, 3905,
3310      3905, 3905,  936, 1551, 1551, 1551, 1551, 3905, 3905, 1551,
3311      1551,  947,  947,  947, 3905, 3905, 3905,  947, 1560, 1560,
3312
3313      1560, 1560, 3905, 3905, 1560, 1560,  953,  953,  953, 3905,
3314      3905, 3905,  953, 1568, 1568, 1568, 1568, 3905, 3905, 1568,
3315      1568,  958,  958,  958,  958, 3905,  958, 3905,  958, 1578,
3316      1578, 1578, 1578, 3905, 3905, 1578, 1578,  965,  965,  965,
3317       965, 3905,  965, 3905,  965, 1588, 1588, 1588, 1588, 3905,
3318      3905, 1588, 1588,  973,  973,  973, 3905, 3905, 3905,  973,
3319      1599, 1599, 1599, 1599, 3905, 3905, 1599, 1599,  981,  981,
3320       981,  981, 3905,  981, 3905,  981, 1606, 1606, 1606, 1606,
3321      3905, 3905, 1606, 1606,  987,  987,  987,  987, 3905,  987,
3322      3905,  987,  992,  992,  992, 3905, 3905, 3905,  992, 1625,
3323
3324      1625, 1625, 1625, 3905, 3905, 1625, 1625, 1260, 1260, 1260,
3325      1260, 1260, 1260, 1260, 1260, 1260, 1865, 1865, 1865, 1865,
3326      1865, 1865, 1865, 1865, 1865,  782,  782,  782, 3905, 3905,
3327      3905,  782, 1328, 1328, 1328, 1328, 3905, 3905, 1328, 1328,
3328       790,  790,  790,  790, 3905,  790, 3905,  790, 1344, 1344,
3329      1344, 1344, 3905, 3905, 1344, 1344,  803,  803,  803, 3905,
3330      3905, 3905,  803, 1353, 1353, 1353, 1353, 3905, 3905, 1353,
3331      1353, 1363, 1363, 1363, 1363, 3905, 3905, 1363, 1363, 1371,
3332      1371, 1371, 1371, 3905, 3905, 1371, 1371, 1381, 1381, 1381,
3333      1381, 3905, 3905, 1381, 1381, 1397, 1397, 1397, 1397, 3905,
3334
3335      3905, 1397, 1397,  836,  836,  836, 3905, 3905, 3905,  836,
3336      1422, 1422, 1422, 1422, 3905, 3905, 1422, 1422, 1429, 1429,
3337      1429, 1429, 3905, 3905, 1429, 1429,  857,  857,  857, 3905,
3338      3905, 3905,  857, 1454, 1454, 1454, 1454, 3905, 3905, 1454,
3339      1454, 1459, 1459, 1459, 1459, 3905, 3905, 1459, 1459,  879,
3340       879,  879, 3905, 3905, 3905,  879,  887,  887,  887, 3905,
3341      3905, 3905,  887, 1479, 1479, 1479, 1479, 3905, 3905, 1479,
3342      1479, 1487, 1487, 1487, 1487, 3905, 3905, 1487, 1487,  897,
3343       897,  897, 3905, 3905, 3905,  897,  902,  902,  902, 3905,
3344      3905, 3905,  902, 1514, 1514, 1514, 1514, 3905, 3905, 1514,
3345
3346      1514,  923,  923,  923,  923, 3905,  923, 3905,  923, 1527,
3347      1527, 1527, 1527, 3905, 3905, 1527, 1527,  936,  936,  936,
3348      3905, 3905, 3905,  936, 1551, 1551, 1551, 1551, 3905, 3905,
3349      1551, 1551,  947,  947,  947, 3905, 3905, 3905,  947,  953,
3350       953,  953, 3905, 3905, 3905,  953, 1568, 1568, 1568, 1568,
3351      3905, 3905, 1568, 1568,  958,  958,  958, 3905, 3905, 3905,
3352       958, 1578, 1578, 1578, 1578, 3905, 3905, 1578, 1578,  965,
3353       965,  965, 3905, 3905, 3905,  965, 1588, 1588, 1588, 1588,
3354      3905, 3905, 1588, 1588,  973,  973,  973, 3905, 3905, 3905,
3355       973, 1606, 1606, 1606, 1606, 3905, 3905, 1606, 1606,  992,
3356
3357       992,  992, 3905, 3905, 3905,  992, 1625, 1625, 1625, 1625,
3358      3905, 3905, 1625, 1625, 1260, 1260, 1260, 1260, 1260, 1260,
3359      1260, 1260, 1260, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
3360      1865, 1865,  782,  782,  782, 3905, 3905, 3905,  782, 1328,
3361      1328, 1328, 1328, 3905, 3905, 1328, 1328,  790,  790,  790,
3362       790, 3905,  790, 3905,  790, 1344, 1344, 1344, 1344, 3905,
3363      3905, 1344, 1344,  803,  803,  803,  803, 3905,  803, 3905,
3364       803, 1353, 1353, 1353, 1353, 3905, 3905, 1353, 1353, 1363,
3365      1363, 1363, 1363, 3905, 3905, 1363, 1363, 1371, 1371, 1371,
3366      1371, 3905, 3905, 1371, 1371, 1381, 1381, 1381, 1381, 3905,
3367
3368      3905, 1381, 1381, 1397, 1397, 1397, 1397, 3905, 3905, 1397,
3369      1397,  836,  836,  836, 3905, 3905, 3905,  836, 1422, 1422,
3370      1422, 1422, 3905, 3905, 1422, 1422,  857,  857,  857, 3905,
3371      3905, 3905,  857, 1454, 1454, 1454, 1454, 3905, 3905, 1454,
3372      1454, 1459, 1459, 1459, 1459, 3905, 3905, 1459, 1459,  879,
3373       879,  879,  879, 3905,  879, 3905,  879,  887,  887,  887,
3374       887, 3905,  887, 3905,  887, 1479, 1479, 1479, 1479, 3905,
3375      3905, 1479, 1479, 1487, 1487, 1487, 1487, 3905, 3905, 1487,
3376      1487,  897,  897,  897,  897, 3905,  897, 3905,  897,  902,
3377       902,  902, 3905, 3905, 3905,  902, 1514, 1514, 1514, 1514,
3378
3379      3905, 3905, 1514, 1514,  923,  923,  923,  923, 3905,  923,
3380      3905,  923, 1527, 1527, 1527, 1527, 3905, 3905, 1527, 1527,
3381       936,  936,  936,  936, 3905,  936, 3905,  936,  947,  947,
3382       947, 3905, 3905, 3905,  947,  953,  953,  953, 3905, 3905,
3383      3905,  953,  958,  958,  958, 3905, 3905, 3905,  958, 1578,
3384      1578, 1578, 1578, 3905, 3905, 1578, 1578,  965,  965,  965,
3385      3905, 3905, 3905,  965, 1588, 1588, 1588, 1588, 3905, 3905,
3386      1588, 1588,  973,  973,  973, 3905, 3905, 3905,  973, 1606,
3387      1606, 1606, 1606, 3905, 3905, 1606, 1606,  992,  992,  992,
3388      3905, 3905, 3905,  992, 1625, 1625, 1625, 1625, 3905, 3905,
3389
3390      1625, 1625, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
3391      1260, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865, 1865,
3392       782,  782,  782, 3905, 3905, 3905,  782,  790,  790,  790,
3393       790, 3905,  790, 3905,  790, 1344, 1344, 1344, 1344, 3905,
3394      3905, 1344, 1344, 1353, 1353, 1353, 1353, 3905, 3905, 1353,
3395      1353, 1363, 1363, 1363, 1363, 3905, 3905, 1363, 1363, 1371,
3396      1371, 1371, 1371, 3905, 3905, 1371, 1371, 1381, 1381, 1381,
3397      1381, 3905, 3905, 1381, 1381,  836,  836,  836, 3905, 3905,
3398      3905,  836,  857,  857,  857, 3905, 3905, 3905,  857, 1454,
3399      1454, 1454, 1454, 3905, 3905, 1454, 1454,  879,  879,  879,
3400
3401      3905, 3905, 3905,  879, 1479, 1479, 1479, 1479, 3905, 3905,
3402      1479, 1479, 1487, 1487, 1487, 1487, 3905, 3905, 1487, 1487,
3403       902,  902,  902, 3905, 3905, 3905,  902, 1514, 1514, 1514,
3404      1514, 3905, 3905, 1514, 1514,  923,  923,  923,  923, 3905,
3405       923, 3905,  923,  936,  936,  936, 3905, 3905, 3905,  936,
3406       947,  947,  947, 3905, 3905, 3905,  947,  953,  953,  953,
3407      3905, 3905, 3905,  953,  958,  958,  958, 3905, 3905, 3905,
3408       958,  965,  965,  965, 3905, 3905, 3905,  965, 1588, 1588,
3409      1588, 1588, 3905, 3905, 1588, 1588,  973,  973,  973, 3905,
3410      3905, 3905,  973, 1606, 1606, 1606, 1606, 3905, 3905, 1606,
3411
3412      1606,  992,  992,  992, 3905, 3905, 3905,  992, 1625, 1625,
3413      1625, 1625, 3905, 3905, 1625, 1625, 1260, 1260, 1260, 1260,
3414      1260, 1260, 1260, 1260, 1260, 1865, 1865, 1865, 1865, 1865,
3415      1865, 1865, 1865, 1865,  782,  782,  782,  782, 3905,  782,
3416      3905,  782, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351,
3417      3351, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352, 3352,
3418      3431, 3431, 3431, 3431, 3431, 3431, 3431, 3431, 3431, 3434,
3419      3434, 3434, 3434, 3434, 3434, 3434, 3434, 3434, 3501, 3501,
3420      3501, 3501, 3501, 3501, 3501, 3501, 3501, 3503, 3503, 3503,
3421      3503, 3503, 3503, 3503, 3503, 3503,  291, 3905, 3905, 3905,
3422
3423      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
3424      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
3425      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
3426      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
3427      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
3428      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
3429      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
3430      3905, 3905
3431     } ;
3432
3433 static yyconst flex_int16_t yy_chk[14073] =
3434     {   0,
3435         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3436         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3437         4,   10,  977,    5,    0,    9,    6,  362,   10,    7,
3438         8,    8,    8,  296,   11,   13,   13,   12,   14,   14,
3439        13,   13,  334,   14,   14,  297,    8,   17,   17,  296,
3440        13,   15,   15,   14,   15,  300,   15,   16,   16,  977,
3441        16,  297,   16,   18,   18,  362,   15,   21,   21,   21,
3442      1512,  300,   16,   22,   22,   22,  451,   23,   23,   23,
3443        24,   24,   24,   21,   25,   25,   25,  343, 1517,   22,
3444       451,  322,   17,   23,  343,  334,   24,  294,  294,  294,
3445
3446        25,  295,  295,  295,  299,  299,  299,  322,   18,   19,
3447        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
3448        19,   19,   19,   19,  339,   19,   19,   19,   19,   19,
3449        26,   26,   26,   27,   27,   27,   28,   28,   28,  449,
3450       339,   29,   29,   29,  347,  436,   26,  449,  347,   27,
3451       436,  739,   28,  449,  739,   19,   19,   29,   30,   30,
3452        30,  319,  319,  319,  348,  346,   19,  327,  327,  327,
3453       336,  336,  336, 1518,   30,   19,   20,   20,   20,   20,
3454        20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
3455        20,  446,   20,   20,   20,   20,   20,   31,   31,   31,
3456
3457        32,   32,   32,   33,   33,   33,  251,  251,   34,   34,
3458        34,  251,  446,   31,  346,  353,   32,  348,  346,   33,
3459       518,  251,   20,   20,   34,   35,   35,   35,   36,   36,
3460        36,  353,  518,   20,   37,   37,   37,   38,   38,   38,
3461       859,   35,   20,  859,   36,   39,   39,   39,  364, 1520,
3462        37,  251,  369,   38,   40,   40,   40,  345,  345,  345,
3463       399,   39,  350,  350,  350,  361,  361,  361,  369,  600,
3464        40,   41,   41,   41,   41,   41,   41,   41,   41,   41,
3465        41,   41,   41,   41,   41,   41,  379,   41,   41,   41,
3466        41,   41,   43,   43,   43,   44,   44,   44,   45,   45,
3467
3468        45,  364,  379,   46,   46,   46,  479,  600,   43,  374,
3469       479,   44, 1521,  399,   45, 1523,  374,   41,   41,   46,
3470        47,   47,   47,   41,  482,  374,   41,  366,  366,  366,
3471       373,  373,  373,  376,  376,  376,   47, 1524,   41,   42,
3472        42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
3473        42,   42,   42,   42,  391,   42,   42,   42,   42,   42,
3474        48,   48,   48,   49,   49,   49,   50,   50,   50,  752,
3475       391,   53,   53,   53,  482, 1525,   48,  386, 1533,   49,
3476       752,  751,   50,  752,  386,   42,   42,   53,   54,   54,
3477        54,   42,  411,  386,   42,  385,  385,  385,  388,  388,
3478
3479       388,  397,  397,  397,   54,  751,   42,   51,   51,   51,
3480        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
3481        51,   51,  404,   51,   51,   51,   51,   51,   55,   55,
3482        55,   56,   56,   56,   57,   57,   57,  424,  404,   58,
3483        58,   58, 1171,  416,   55,  411,  429,   56, 1171,  444,
3484        57, 1538,  457,   51,   51,   58,   59,   59,   59,  416,
3485       676,   51,  429,   51,  398,  444,   51,  401,  401,  401,
3486        51, 1547,   59, 1549,   51,   52,   52,   52,   52,   52,
3487        52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
3488       424,   52,   52,   52,   52,   52,   60,   60,   60,   63,
3489
3490        63,   63,   64,   64,   64,  457,  452,   67,   67,   67,
3491       676,  462,   60,  398,  452,   63,  758,  398,   64,  452,
3492       468,   52,   52,   67,   68,   68,   68,  462, 1296,   52,
3493       758,   52,  410, 1558,   52,  409,  409,  409,   52, 1563,
3494        68, 1296,   52,   61,   61,   61,   61,   61,   61,   61,
3495        61,   61,   61,   61,   61,   61,   61,   61,  473,   61,
3496        61,   61,   61,   61,   71,   71,   71,   72,   72,   72,
3497        73,   73,   73,  468,  473,   74,   74,   74,  567, 1571,
3498        71,  410,  567,   72, 1572,  410,   73, 1576,  489,   61,
3499        61,   74,   75,   75,   75,   76,   76,   76,  413,  413,
3500
3501       413,  422,  422,  422,  489,  484,  423, 1581,   75, 1585,
3502      1591,   76, 1597,   61,   62,   62,   62,   62,   62,   62,
3503        62,   62,   62,   62,   62,   62,   62,   62,   62,  501,
3504        62,   62,   62,   62,   62,   77,   77,   77,   78,   78,
3505        78,   81,   81,   81, 1602,  501,   82,   82,   82,  634,
3506      1604,   77, 1612, 1619,   78,  423,  634,   81,  484,  423,
3507        62,   62,   82,   83,   83,   83,   84,   84,   84,  426,
3508       426,  426,  438,  438,  438,  441,  441,  441, 1620,   83,
3509       310, 1623,   84, 1632,   62,   65,   65,   65,   65,   65,
3510        65,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3511
3512       513,   65,   65,   65,   65,   65,   85,   85,   85,   86,
3513        86,   86,   87,   87,   87,  582,  513,   88,   88,   88,
3514       439, 1633,   85,  310,  508,   86,  585,  439,   87,  310,
3515       582,   65,   65,   88,  310,   65,  439,  522,  584,  310,
3516      1263,  585,   65, 1634, 1263,   65,   66,   66,   66,   66,
3517        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3518        66,  764,   66,   66,   66,   66,   66,   91,   91,   91,
3519        92,   92,   92,   93,   93,   93,  584,  508,   94,   94,
3520        94,  775, 1637,   91,  586,  764,   92, 1638,  496,   93,
3521       522,  584,   66,   66,   94,  496,   66,  455,  455,  455,
3522
3523       459,  459,  459,   66,  496,  775,   66,   69,   69,   69,
3524        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
3525        69,   69,  527,   69,   69,   69,   69,   69,   95,   95,
3526        95,   96,   96,   96,   97,   97,   97,  586,  527,   98,
3527        98,   98,  724, 1639,   95,  533,  770,   96, 1640,  724,
3528        97, 1641,  533,   69,   69,   98,  101,  101,  101,   69,
3529       770,  533,   69,  466,  466,  466,  470,  470,  470,  481,
3530       481,  481,  101, 1642,   69,   70,   70,   70,   70,   70,
3531        70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
3532       538,   70,   70,   70,   70,   70,  102,  102,  102,  105,
3533
3534       105,  105,  106,  106,  106,  765,  538,  107,  107,  107,
3535      1643, 1644,  102,  544, 1646,  105,  765,  779,  106,  765,
3536       544,   70,   70,  107,  108,  108,  108,   70,  601,  544,
3537        70,  486,  486,  486,  495,  495,  495,  498,  498,  498,
3538       108,  779,   70,   79,   79,   79,   79,   79,   79,   79,
3539        79,   79,   79,   79,   79,   79,   79,   79,  549,   79,
3540        79,   79,   79,   79,  109,  109,  109,  110,  110,  110,
3541       111,  111,  111,  623,  549,  112,  112,  112, 1648, 1649,
3542       109,  601, 1651,  110, 1652, 1654,  111, 1655,  623,   79,
3543        79,  112,  115,  115,  115,   79,  505,  505,  505,  510,
3544
3545       510,  510,  520,  520,  520,  524,  524,  524,  115, 1656,
3546        79,   80,   80,   80,   80,   80,   80,   80,   80,   80,
3547        80,   80,   80,   80,   80,   80,  560,   80,   80,   80,
3548        80,   80,  116,  116,  116,  117,  117,  117,  118,  118,
3549       118,  777,  560,  119,  119,  119, 1657, 1660,  116, 1661,
3550      1662,  117, 1663, 1664,  118,  777,  638,   80,   80,  119,
3551       120,  120,  120,   80,  532,  532,  532,  535,  535,  535,
3552       543,  543,  543,  546,  546,  546,  120, 1666,   80,   89,
3553        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
3554        89,   89,   89,   89,  576,   89,   89,   89,   89,   89,
3555
3556       121,  121,  121,  122,  122,  122,  125,  125,  125,  638,
3557       576,  126,  126,  126, 1669, 1670,  121,  555,  780,  122,
3558      1671, 1673,  125, 1675,  555,   89,   89,  126,  127,  127,
3559       127,   89,  780,  555,   89,  554,  554,  554,  557,  557,
3560       557,  569,  569,  569,  127, 1679,   89,   90,   90,   90,
3561        90,   90,   90,   90,   90,   90,   90,   90,   90,   90,
3562        90,   90,  591,   90,   90,   90,   90,   90,  128,  128,
3563       128,  129,  129,  129,  130,  130,  130, 1420,  591,  131,
3564       131,  131, 1680, 1684,  128,  570, 1687,  129, 1690, 1420,
3565       130,  571,  570,   90,   90,  131,  132,  132,  132,   90,
3566
3567       663,  570,   90,  573,  573,  573,  678,  571,  580,  580,
3568       580,  332,  132, 1691,   90,   99,   99,   99,   99,   99,
3569        99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
3570       606,   99,   99,   99,   99,   99,  135,  135,  135,  136,
3571       136,  136,  139,  139,  139,  715,  606,  140,  140,  140,
3572       332,  571,  135,  663,  583,  136,  730,  617,  139,  678,
3573       728,   99,   99,  140,  332,   99,  332,  583,  332,  583,
3574      1692,  730,   99,  617, 1694,   99,  588,  588,  588,   99,
3575      1697,   99,   99,  100,  100,  100,  100,  100,  100,  100,
3576       100,  100,  100,  100,  100,  100,  100,  100,  715,  100,
3577
3578       100,  100,  100,  100,  141,  141,  141,  142,  142,  142,
3579       143,  143,  143,  728,  621,  144,  144,  144,  621, 1698,
3580       141, 1703,  621,  142, 1704,  612,  143,  750, 1628,  100,
3581       100,  144,  612,  100,  599,  599,  599,  603,  603,  603,
3582       100,  612,  750,  100,  611,  611,  611,  100, 1628,  100,
3583       100,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3584       103,  103,  103,  103,  103,  103,  631,  103,  103,  103,
3585       103,  103,  145,  145,  145,  146,  146,  146,  149,  149,
3586       149,  797,  631,  150,  150,  150, 1719, 1720,  145, 1728,
3587      1729,  146,  916,  626,  149, 1731,  797,  103,  103,  150,
3588
3589       626,  103,  103,  614,  614,  614,  637,  916,  103,  626,
3590      1753,  103,  625,  625,  625,  103, 1754,  103,  103,  103,
3591       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3592       104,  104,  104,  104,  104,  643,  104,  104,  104,  104,
3593       104,  151,  151,  151,  152,  152,  152,  153,  153,  153,
3594       917,  643,  154,  154,  154,  637, 1757,  151, 1027,  637,
3595       152,  917,  649,  153,  917,  919,  104,  104,  154,  649,
3596       104,  104,  628,  628,  628, 1027, 1759,  104,  649,  919,
3597       104,  636,  636,  636,  104, 1761,  104,  104,  104,  113,
3598       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3599
3600       113,  113,  113,  113,  654,  113,  113,  113,  113,  113,
3601       155,  155,  155,  156,  156,  156,  159,  159,  159, 1769,
3602       654,  160,  160,  160, 1770, 1771,  155, 1772,  668,  156,
3603      1774, 1780,  159,  727, 1782,  113,  113,  160,  640,  640,
3604       640,  648,  648,  648,  668,  581,  113,  114,  114,  114,
3605       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
3606       114,  114,  683,  114,  114,  114,  114,  114,  163,  163,
3607       163,  164,  164,  164,  167,  167,  167,  920,  683,  168,
3608       168,  168,  727,  581,  163,  581,  727,  164,  920, 1784,
3609       167,  920, 1785,  114,  114,  168, 1790, 1792,  581, 1793,
3610
3611       581,  651,  651,  651,  114,  123,  123,  123,  123,  123,
3612       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3613       694,  123,  123,  123,  123,  123,  171,  171,  171,  172,
3614       172,  172,  173,  173,  173, 1795,  694,  174,  174,  174,
3615      1796, 1797,  171, 1798,  706,  172, 1799, 1802,  173, 1803,
3616      1804,  123,  123,  174,  123,  720,  123,  661,  661,  661,
3617       706, 1808,  123,  665,  665,  665,  675,  675,  675,  123,
3618      1817,  720,  123,  124,  124,  124,  124,  124,  124,  124,
3619       124,  124,  124,  124,  124,  124,  124,  124, 1820,  124,
3620       124,  124,  124,  124,  177,  177,  177,  178,  178,  178,
3621
3622       179,  179,  179, 1828,  757,  180,  180,  180, 1830, 1832,
3623       177,  757, 1000,  178, 1833, 1834,  179,  757, 1836,  124,
3624       124,  180,  124, 1841,  124,  680,  680,  680, 1000, 1844,
3625       124,  691,  691,  691,  700,  700,  700,  124, 1845, 1135,
3626       124,  133,  133,  133,  133,  133,  133,  133,  133,  133,
3627       133,  133,  133,  133,  133,  133, 1135,  133,  133,  133,
3628       133,  133,  181,  181,  181,  182,  182,  182,  183,  183,
3629       183, 1847, 1302,  184,  184,  184, 1852, 1235,  181,  688,
3630      1857,  182, 1858, 1519,  183, 1302,  688,  133,  133,  184,
3631       185,  185,  185,  133, 1235,  688, 1519, 1862,  133,  703,
3632
3633       703,  703,  711,  711,  711, 1865,  185,  717,  717,  717,
3634       133,  134,  134,  134,  134,  134,  134,  134,  134,  134,
3635       134,  134,  134,  134,  134,  134, 1868,  134,  134,  134,
3636       134,  134,  186,  186,  186,  187,  187,  187,  188,  188,
3637       188, 1864, 1871,  189,  189,  189, 1872, 1874,  186,  701,
3638      1875,  187, 1876, 1877,  188, 1878,  701,  134,  134,  189,
3639       190,  190,  190,  134, 1879,  701, 1864, 1881,  134,  726,
3640       726,  726,  729,  729,  729, 1882,  190, 1280, 1280, 1280,
3641       134,  137,  137,  137,  137,  137,  137,  137,  137,  137,
3642       137,  137,  137,  137,  137,  137, 1884,  137,  137,  137,
3643
3644       137,  137,  191,  191,  191,  192,  192,  192,  193,  193,
3645       193, 1885,  762,  194,  194,  194, 1103, 1888,  191,  762,
3646      1889,  192, 1891, 1893,  193,  762, 1103,  137,  137,  194,
3647      1003, 1003, 1003, 1103, 1003,  137,  138,  138,  138,  138,
3648       138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
3649       138, 1896,  138,  138,  138,  138,  138,  195,  195,  195,
3650       196,  196,  196,  199,  199,  199, 1898,  769,  200,  200,
3651       200, 1899, 1900,  195,  769, 1901,  196, 1902, 1904,  199,
3652       769, 1905,  138,  138,  200,  738,  738,  738, 1909, 1912,
3653       138,  147,  147,  147,  147,  147,  147,  147,  147,  147,
3654
3655       147,  147,  147,  147,  147,  147, 1919,  147,  147,  147,
3656       147,  147,  201,  201,  201,  202,  202,  202,  203,  203,
3657       203, 1920,  776,  204,  204,  204, 1924, 1925,  201,  776,
3658      1926,  202, 1928,  918,  203,  776,  921,  147,  147,  204,
3659       918,  147, 1932,  921, 1933,  738,  918, 1968,  147,  921,
3660      1969,  147, 1976, 1016, 1016, 1016, 1987, 1988,  147,  148,
3661       148,  148,  148,  148,  148,  148,  148,  148,  148,  148,
3662       148,  148,  148,  148, 1989,  148,  148,  148,  148,  148,
3663       205,  205,  205,  206,  206,  206,  209,  209,  209, 1990,
3664      1992,  210,  210,  210, 2000, 2002,  205, 2006, 2009,  206,
3665
3666      2011, 2012,  209, 2015, 2016,  148,  148,  210, 2017,  148,
3667      1012, 1012, 1012, 2018, 1012, 2022,  148, 1012, 1016,  148,
3668      1303, 1303, 1303, 1650, 1650, 1650,  148,  157,  157,  157,
3669       157,  157,  157,  157,  157,  157,  157,  157,  157,  157,
3670       157,  157, 2023,  157,  157,  157,  157,  157,  213,  213,
3671       213,  214,  214,  214,  217,  217,  217, 2024, 2029,  218,
3672       218,  218, 2033, 2037,  213, 2039, 2041,  214, 2047, 2054,
3673       217, 2058, 2059,  157,  157,  218, 1037, 1037, 1037,  157,
3674      1645, 1645, 1645, 2061,  157,  158,  158,  158,  158,  158,
3675       158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
3676
3677      2068,  158,  158,  158,  158,  158,  219,  219,  219,  220,
3678       220,  220,  221,  221,  221, 2075, 2079,  222,  222,  222,
3679      2081, 2082,  219, 2084, 2085,  220, 2087, 1645,  221, 2088,
3680      2089,  158,  158,  222, 1050, 1050, 1050,  158, 1647, 1647,
3681      1647, 1037,  158,  161,  161,  161,  161,  161,  161,  161,
3682       161,  161,  161,  161,  161,  161,  161,  161, 2075,  161,
3683       161,  161,  161,  161,  223,  223,  223,  224,  224,  224,
3684       227,  227,  227, 2076, 2090,  228,  228,  228, 2092, 2093,
3685       223, 2074, 2097,  224, 2099, 1647,  227, 2100, 2101,  161,
3686       161,  228,  231,  231,  231,  232,  232,  232, 2074, 1050,
3687
3688       161, 2102, 1074, 1074, 1074, 2104, 1074, 2076,  231, 1074,
3689      2105,  232, 2106,  161,  162,  162,  162,  162,  162,  162,
3690       162,  162,  162,  162,  162,  162,  162,  162,  162, 2083,
3691       162,  162,  162,  162,  162,  233,  233,  233,  234,  234,
3692       234,  235,  235,  235, 2107, 2083,  236,  236,  236, 2110,
3693      2112,  233, 2113, 2083,  234, 2118, 2120,  235, 2121, 2122,
3694       162,  162,  236,  237,  237,  237,  238,  238,  238, 2123,
3695      2124,  162, 2126, 1093, 1093, 1093, 2131, 1093, 2159,  237,
3696      1093, 2160,  238, 2161,  162,  165,  165,  165,  165,  165,
3697       165,  165,  165,  165,  165,  165,  165,  165,  165,  165,
3698
3699      2103,  165,  165,  165,  165,  165,  241,  241,  241,  242,
3700       242,  242,  243,  243,  243, 2165, 2103,  244,  244,  244,
3701      2166, 2172,  241, 2173, 2103,  242, 2176, 2177,  243, 2183,
3702      2189,  165,  165,  244,  245,  245,  245, 1095, 1095, 1095,
3703      2191, 1095, 2192, 2195, 1095, 2201, 2203,  165, 2209, 2213,
3704       245, 2216,  165,  166,  166,  166,  166,  166,  166,  166,
3705       166,  166,  166,  166,  166,  166,  166,  166, 2221,  166,
3706       166,  166,  166,  166,  246,  246,  246,  247,  247,  247,
3707       248,  248,  248, 2223, 2224,  255,  255,  255, 2225, 2226,
3708       246, 2233, 2235,  247, 2237, 2239,  248,  252,  252,  166,
3709
3710       166,  255,  252,  256,  256,  256, 1105, 1105, 1105, 2252,
3711      1105, 2253,  252, 1105, 2254,  166, 1653, 1653, 1653,  256,
3712       166,  169,  169,  169,  169,  169,  169,  169,  169,  169,
3713       169,  169,  169,  169,  169,  169, 2257,  169,  169,  169,
3714       169,  169,  252,  259,  259,  259,  260,  260,  260,  261,
3715       261,  261, 2258,  262,  262,  262,  746,  746,  746,  259,
3716      2260, 2261,  260, 2262, 2264,  261, 2259,  169,  169,  262,
3717       169,  169,  169,  746, 2259, 1108, 1108, 1108,  169, 1108,
3718      2276,  169, 1108, 2284, 2280, 1146, 1146, 1146,  169,  170,
3719       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
3720
3721       170,  170,  170,  170, 2285,  170,  170,  170,  170,  170,
3722       263,  263,  263,  264,  264,  264,  265,  265,  265, 2263,
3723      2286,  266,  266,  266, 2278, 2287,  263, 2263, 2288,  264,
3724      2278, 2280,  265, 2292, 2294,  170,  170,  266,  170,  170,
3725       170, 1122, 1122, 1122, 2295, 1122,  170, 2296, 1122,  170,
3726      1146, 1658, 1658, 1658, 2301, 2302,  170,  175,  175,  175,
3727       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
3728       175,  175, 2304,  175,  175,  175,  175,  175,  267,  267,
3729       267,  268,  268,  268,  269,  269,  269, 1658, 2279,  270,
3730       270,  270, 2305, 2306,  267, 2307, 2310,  268, 2314, 2315,
3731
3732       269, 2322, 2324,  175,  175,  270,  271,  271,  271,  272,
3733       272,  272, 1129, 1129, 1129, 2331, 1129, 2333, 2364, 1129,
3734      2279, 2365,  271, 2366, 2372,  272, 2373,  175,  176,  176,
3735       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3736       176,  176,  176, 2377,  176,  176,  176,  176,  176,  273,
3737       273,  273,  274,  274,  274,  275,  275,  275, 2381, 2382,
3738       276,  276,  276, 2386, 2389,  273, 2392, 2393,  274, 2394,
3739      2395,  275, 2398, 2401,  176,  176,  276,  277,  277,  277,
3740       278,  278,  278, 1138, 1138, 1138, 2405, 1138, 2406, 2407,
3741      1138, 2419, 2422,  277, 2424, 2427,  278, 2434,  176,  197,
3742
3743       197,  197,  197,  197,  197,  197,  197,  197,  197,  197,
3744       197,  197,  197,  197, 2441,  197,  197,  197,  197,  197,
3745       281,  281,  281,  282,  282,  282,  283,  283,  283, 2443,
3746      2444,  284,  284,  284, 2445, 2450,  281, 2451, 2452,  282,
3747      2453, 2454,  283, 2455, 2456,  197,  197,  284,  285,  285,
3748       285, 2457, 2458,  197, 2459,  197, 2469, 2473,  197, 1659,
3749      1659, 1659,  197, 2480,  285, 2472,  197,  198,  198,  198,
3750       198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
3751       198,  198, 2481,  198,  198,  198,  198,  198,  286,  286,
3752       286,  287,  287,  287,  288,  288,  288, 2482,  805,  805,
3753
3754       805,  827,  827,  827,  286, 2473, 2485,  287, 2488, 2472,
3755       288, 2492, 2493,  198,  198,  805, 2494,  331,  827, 2497,
3756      2498,  198,  506,  198, 2499, 2502,  198,  331, 2505, 2506,
3757       198, 2507,  506, 2508,  198,  207,  207,  207,  207,  207,
3758       207,  207,  207,  207,  207,  207,  207,  207,  207,  207,
3759      2530,  207,  207,  207,  207,  207,  331, 2531, 2537,  828,
3760       828,  828,  506, 2532, 2538, 1014, 1014, 1014,  506, 2544,
3761       331, 2545,  331, 2532,  331,  506,  828, 2546, 2560,  506,
3762       331,  207,  207, 1014, 2561,  506, 2562, 2582,  714, 1140,
3763      1140, 1140,  207, 1140, 2583, 2589, 1140, 2594,  714, 2596,
3764
3765      1665, 1665, 1665, 2597, 2602,  207,  208,  208,  208,  208,
3766       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
3767       208, 2603,  208,  208,  208,  208,  208,  714, 2604,  838,
3768       838,  838,  840,  840,  840, 2605, 2606,  854,  854,  854,
3769      2607,  714, 2608,  714, 2609,  714,  838, 1665, 2610,  840,
3770      2611,  714,  208,  208,  854,  860,  860,  860,  869,  869,
3771       869, 2616, 2621,  208, 1150, 1150, 1150, 2622, 1150, 2624,
3772      2625, 1150,  860, 2626, 2619,  869,  208,  211,  211,  211,
3773       211,  211,  211,  211,  211,  211,  211,  211,  211,  211,
3774       211,  211, 2627,  211,  211,  211,  211,  211,  870,  870,
3775
3776       870,  881,  881,  881,  889,  889,  889, 2619,  893,  893,
3777       893,  906,  906,  906, 2629,  870, 2630, 2623,  881, 2633,
3778      2634,  889, 2620,  211,  211,  893, 2623, 2635,  906, 1158,
3779      1158, 1158,  211, 1158,  211, 2638, 1158, 2640,  211, 2641,
3780      1667, 1667, 1667,  211,  211,  212,  212,  212,  212,  212,
3781       212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
3782      2620,  212,  212,  212,  212,  212,  932,  932,  932,  938,
3783       938,  938,  955,  955,  955, 2628,  961,  961,  961,  967,
3784       967,  967, 2644,  932, 2628, 2645,  938, 1667, 2646,  955,
3785      2648,  212,  212,  961, 2649, 2651,  967, 1162, 1162, 1162,
3786
3787       212, 1162,  212, 2672, 1162, 2673,  212, 1668, 1668, 1668,
3788      2674,  212,  212,  215,  215,  215,  215,  215,  215,  215,
3789       215,  215,  215,  215,  215,  215,  215,  215, 2675,  215,
3790       215,  215,  215,  215,  975,  975,  975,  988,  988,  988,
3791      1011, 1011, 1011, 2678, 1054, 1054, 1054, 1056, 1056, 1056,
3792      2679,  975, 2685, 2686,  988, 2693, 2681, 1011, 2681,  215,
3793       215, 1054, 2694, 2695, 1056,  215, 1174, 1174, 1174, 2703,
3794      1174, 2681, 2704, 1174, 2719, 1672, 1672, 1672, 2720, 2721,
3795       215,  216,  216,  216,  216,  216,  216,  216,  216,  216,
3796       216,  216,  216,  216,  216,  216, 2722,  216,  216,  216,
3797
3798       216,  216, 1015, 1015, 1015, 1058, 1058, 1058, 1059, 1059,
3799      1059, 1672, 2725, 1055, 1055, 1055, 2727, 1057, 1057, 1057,
3800      1015, 2728, 2729, 1058, 2730, 2063, 1059,  216,  216, 2731,
3801      1055, 2063, 2732,  216, 1057, 2063, 1196, 1196, 1196, 1015,
3802      1196, 2063, 2733, 1196, 2734, 1059, 2735, 2736,  216,  225,
3803       225,  225,  225,  225,  225,  225,  225,  225,  225,  225,
3804       225,  225,  225,  225, 1055,  225,  225,  225,  225,  225,
3805      1066, 1066, 1066, 1070, 1070, 1070, 2737, 1057, 2738, 1055,
3806      1067, 1067, 1067, 1071, 1071, 1071, 2740, 2682, 1066, 2682,
3807      2741, 1070, 1674, 1674, 1674,  225,  225, 2743, 1067, 2744,
3808
3809       225, 1071, 2682, 1686, 1686, 1686,  225,  226,  226,  226,
3810       226,  226,  226,  226,  226,  226,  226,  226,  226,  226,
3811       226,  226, 2742,  226,  226,  226,  226,  226, 1674, 2745,
3812      1067, 2742, 1073, 1073, 1073, 2746, 2748, 1076, 1076, 1076,
3813      2749, 1077, 1077, 1077, 1078, 1078, 1078, 2747, 1071, 1073,
3814      1686, 2750, 2752,  226,  226, 1076, 2747, 2755,  226, 1077,
3815      2756, 1078, 2757, 2753,  226,  229,  229,  229,  229,  229,
3816       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3817      2758,  229,  229,  229,  229,  229, 1080, 1080, 1080, 1077,
3818      1081, 1081, 1081, 2752, 2759, 1082, 1082, 1082, 1079, 1079,
3819
3820      1079, 2753, 2760, 1080, 1083, 1083, 1083, 2761, 1081, 2762,
3821      2763,  229,  229, 1082,  229, 1079,  229, 1873, 1873, 1873,
3822      2764, 1083,  229, 1202, 1202, 1202, 2765, 1202, 2766, 2767,
3823      1202, 2768, 2769,  229,  230,  230,  230,  230,  230,  230,
3824       230,  230,  230,  230,  230,  230,  230,  230,  230, 1079,
3825       230,  230,  230,  230,  230, 1084, 1084, 1084, 1085, 1085,
3826      1085, 1086, 1086, 1086, 1079, 2772, 2773, 1082, 2775, 1087,
3827      1087, 1087, 1084, 1088, 1088, 1088, 1085, 2776, 2777, 1086,
3828       230,  230, 2779,  230, 2780,  230, 1087, 1880, 1880, 1880,
3829      1088,  230, 1218, 1218, 1218, 2800, 1218, 2801, 2803, 1218,
3830
3831      2807, 2808,  230,  239,  239,  239,  239,  239,  239,  239,
3832       239,  239,  239,  239,  239,  239,  239,  239, 2809,  239,
3833       239,  239,  239,  239, 1088, 1089, 1089, 1089, 1090, 1090,
3834      1090, 2064, 2811, 1086, 1091, 1091, 1091, 2064, 2812, 1088,
3835      2810, 2064, 1089, 1101, 1101, 1101, 1090, 2064, 2814,  239,
3836       239, 2810, 1091, 2815,  239, 1224, 1224, 1224, 2813, 1224,
3837       239, 1101, 1224, 2754,  239, 1883, 1883, 1883, 2823, 2813,
3838       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3839       240,  240,  240,  240,  240,  240, 2824,  240,  240,  240,
3840       240,  240, 1092, 1092, 1092, 1094, 1094, 1094, 1096, 1096,
3841
3842      1096, 1230, 1230, 1230, 2825, 1230, 1091, 2754, 1230, 1092,
3843      2837, 2853, 1094, 2856, 2857, 1096, 2851,  240,  240, 1097,
3844      1097, 1097,  240, 1238, 1238, 1238, 2851, 1238,  240, 2851,
3845      1238, 2861,  240, 1886, 1886, 1886, 1097, 2862,  240,  249,
3846       249,  249,  249,  249,  249,  249,  249,  249,  249,  249,
3847       249,  249,  249,  249, 2863,  249,  249,  249,  249,  249,
3848      1887, 1887, 1887, 1098, 1098, 1098, 2864, 1104, 1104, 1104,
3849      2865, 2866, 1097, 1099, 1099, 1099, 2867, 1100, 1100, 1100,
3850      1098, 1102, 1102, 1102, 1104,  249,  249, 1890, 1890, 1890,
3851      1099, 2868, 2869,  249, 1100, 2870,  249, 2872, 2873, 1102,
3852
3853      1892, 1892, 1892,  249,  250,  250,  250,  250,  250,  250,
3854       250,  250,  250,  250,  250,  250,  250,  250,  250, 1098,
3855       250,  250,  250,  250,  250, 1099, 1107, 1107, 1107, 1102,
3856      1100, 1109, 1109, 1109, 1119, 1119, 1119, 1120, 1120, 1120,
3857      1121, 1121, 1121, 1107, 1123, 1123, 1123, 2874, 1109, 2875,
3858       250,  250, 1119, 2852, 2876, 1120, 2877, 1121,  250, 2878,
3859      2879,  250, 1123, 2852, 2880, 1892, 2852, 2881,  250,  253,
3860       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
3861       253,  253,  253,  253, 2882,  253,  253,  253,  253,  253,
3862      2883, 1124, 1124, 1124, 2889, 2890, 1120, 1128, 1128, 1128,
3863
3864      1133, 1133, 1133, 1134, 1134, 1134, 1137, 1137, 1137, 1124,
3865      1139, 1139, 1139, 2891, 1128,  253,  253, 2892, 1133, 2893,
3866      2894, 1134,  253, 1137, 1895, 1895, 1895, 1139,  253, 1250,
3867      1250, 1250, 2895, 1250, 2896, 2887, 1250,  253,  254,  254,
3868       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
3869       254,  254,  254, 1124,  254,  254,  254,  254,  254, 1141,
3870      1141, 1141, 1144, 1144, 1144, 1134, 2886, 2897, 1142, 1142,
3871      1142, 1145, 1145, 1145, 1154, 1154, 1154, 1141, 2887, 2888,
3872      1144, 1149, 1149, 1149,  254,  254, 1142, 2898, 2899, 1145,
3873      2900,  254, 1154, 1768, 1768, 1768, 2886,  254, 1149, 2901,
3874
3875      1894, 1894, 1894, 1897, 1897, 1897,  254,  257,  257,  257,
3876       257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
3877       257,  257, 2888,  257,  257,  257,  257,  257, 2903, 1768,
3878      1142, 2905, 1145, 1155, 1155, 1155, 2906, 2907, 1157, 1157,
3879      1157, 1159, 1159, 1159, 1160, 1160, 1160, 1894, 1161, 1161,
3880      1161, 1155, 2909,  257,  257, 1157, 1272, 1272, 1272, 1159,
3881      1272, 2910, 1160, 1272,  257, 1161, 1903, 1903, 1903, 1906,
3882      1906, 1906, 2911,  257,  258,  258,  258,  258,  258,  258,
3883       258,  258,  258,  258,  258,  258,  258,  258,  258, 1155,
3884       258,  258,  258,  258,  258, 1164, 1164, 1164, 2923, 2928,
3885
3886      1160, 1165, 1165, 1165, 1168, 1168, 1168, 1169, 1169, 1169,
3887      1173, 1173, 1173, 1164, 2929, 1175, 1175, 1175, 2930, 1165,
3888       258,  258, 1168, 2931, 2932, 1169, 2915, 1173, 1907, 1907,
3889      1907,  258, 1175, 1911, 1911, 1911, 1978, 1978, 1978, 2915,
3890       258,  279,  279,  279,  279,  279,  279,  279,  279,  279,
3891       279,  279,  279,  279,  279,  279, 2933,  279,  279,  279,
3892       279,  279, 2916, 1165, 1178, 1178, 1178, 2934, 2935, 1169,
3893      2936, 2937, 1179, 1179, 1179, 2916, 1182, 1182, 1182, 1183,
3894      1183, 1183, 1178, 1193, 1193, 1193, 2938,  279,  279, 2946,
3895      1179, 2948, 2952,  279, 1182, 2953,  279, 1183, 1321, 1321,
3896
3897      1321, 1193, 1321, 2954, 2955, 1321, 2956, 2957,  279,  280,
3898       280,  280,  280,  280,  280,  280,  280,  280,  280,  280,
3899       280,  280,  280,  280, 1179,  280,  280,  280,  280,  280,
3900      1194, 1194, 1194, 1195, 1195, 1195, 2959, 2971, 1183, 1198,
3901      1198, 1198, 1199, 1199, 1199, 1201, 1201, 1201, 1194, 2972,
3902      1195, 1203, 1203, 1203, 2974,  280,  280, 1198, 2975, 2977,
3903      1199,  280, 1201, 2988,  280, 1205, 1205, 1205, 1203, 1209,
3904      1209, 1209, 1210, 1210, 1210, 2829,  280,  328, 2989, 1211,
3905      1211, 1211, 1205, 2990,  328, 2829, 2991, 1209, 2993, 2994,
3906      1210, 2829, 2995,  328,  328, 1194, 1211, 1212, 1212, 1212,
3907
3908      1213, 1213, 1213, 1214, 1214, 1214, 2966, 1199, 1215, 1215,
3909      1215, 1217, 1217, 1217, 1212, 2830, 2996, 1213, 2999, 2966,
3910      1210, 1214,  328,  328,  328, 2830, 1215, 3000, 1217,  328,
3911       328, 2830, 3001,  328,  328, 3002, 2967,  328, 3003,  328,
3912       328,  328, 3004, 1219, 1219, 1219, 3005,  328,  330, 2967,
3913      2973, 1220, 1220, 1220, 1223, 1223, 1223, 1226, 1226, 1226,
3914      1213, 1219, 3006, 2973,  330,  330, 1227, 1227, 1227, 1220,
3915      1215, 1223, 1229, 1229, 1229, 1226, 3007, 3008, 1233, 1233,
3916      1233, 1234, 1234, 1234, 1227, 1237, 1237, 1237, 3009, 1229,
3917      1249, 1249, 1249,  330,  330,  330, 1233, 3010, 3015, 1234,
3918
3919       330,  330, 1237, 3016,  330,  330, 3018, 1249,  330, 3019,
3920       330,  330,  330, 1220, 1241, 1241, 1241, 2976,  330,  712,
3921      1242, 1242, 1242, 1247, 1247, 1247,  712, 1248, 1248, 1248,
3922      2976, 3020, 1241, 1227, 3021,  712,  712, 3022, 1242, 3016,
3923      3023, 1247, 1252, 1252, 1252, 1248, 3024, 3015, 1234, 1253,
3924      1253, 1253, 1254, 1254, 1254, 3025, 1255, 1255, 1255, 3026,
3925      1252, 1256, 1256, 1256,  712,  712,  712, 1253, 3027, 1254,
3926      3028,  712,  712, 1255, 3029,  712,  712, 3030, 1256,  712,
3927      3032,  712,  712,  712, 3034, 1242, 1257, 1257, 1257,  712,
3928      3035, 3037, 1248, 3039, 1258, 1258, 1258, 1259, 1259, 1259,
3929
3930      1276, 1276, 1276, 1257, 1908, 1908, 1908, 1255, 1277, 1277,
3931      1277, 1253, 1258, 3043, 3044, 1259, 3045, 3046, 1276, 1279,
3932      1279, 1279, 1255, 1320, 1320, 1320, 1277, 1324, 1324, 1324,
3933      3050, 1325, 1325, 1325, 3058, 1325, 3059, 1279, 1325, 3060,
3934      1320, 1333, 1333, 1333, 1324, 3061, 1257, 1327, 1327, 1327,
3935      1328, 1328, 1328, 1330, 1330, 1330, 3041, 3042, 1333, 1259,
3936      1337, 1337, 1337, 3062, 3063, 1327, 3041, 3042, 1328, 1908,
3937      3064, 1330, 1338, 1338, 1338, 1340, 1340, 1340, 1337, 1343,
3938      1343, 1343, 1344, 1344, 1344, 1346, 1346, 1346, 3065, 3066,
3939      1338, 3067, 3068, 1340, 1348, 1348, 1348, 1343, 1348, 3072,
3940
3941      1344, 1348, 3075, 1346, 1352, 1352, 1352, 1353, 1353, 1353,
3942      1355, 1355, 1355, 1356, 1356, 1356, 3076, 3077, 1330, 1357,
3943      1357, 1357, 1352, 1357, 3078, 1353, 1357, 3079, 1355, 3080,
3944      1356, 1360, 1360, 1360, 1361, 1361, 1361, 3081, 1361, 1346,
3945      3084, 1361, 1340, 1362, 1362, 1362, 3088, 3089, 1360, 1363,
3946      1363, 1363, 1365, 1365, 1365, 1366, 1366, 1366, 3090, 3091,
3947      1355, 1362, 1367, 1367, 1367, 3092, 1367, 1363, 3093, 1367,
3948      1365, 3094, 1366, 1368, 1368, 1368, 1369, 1369, 1369, 3095,
3949      1369, 3096, 3097, 1369, 1370, 1370, 1370, 1371, 1371, 1371,
3950      1368, 1373, 1373, 1373, 1374, 1374, 1374, 1375, 1375, 1375,
3951
3952      3098, 1375, 1370, 3099, 1375, 1371, 1378, 1378, 1378, 1373,
3953      3115, 1374, 1379, 1379, 1379, 1365, 1379, 3116, 3117, 1379,
3954      1380, 1380, 1380, 1378, 1381, 1381, 1381, 1383, 1383, 1383,
3955      1384, 1384, 1384, 3118, 1384, 3119, 3120, 1384, 1380, 1387,
3956      1387, 1387, 1381, 1387, 3121, 1383, 1387, 1390, 1390, 1390,
3957      3122, 1391, 1391, 1391, 1373, 1391, 3124, 3125, 1391, 1396,
3958      1396, 1396, 3126, 3127, 1390, 1397, 1397, 1397, 1399, 1399,
3959      1399, 1403, 1403, 1403, 3102, 1403, 3128, 1396, 1403, 1406,
3960      1406, 1406, 3103, 1397, 3102, 3129, 1399, 1407, 1407, 1407,
3961      1383, 1407, 3103, 3130, 1407, 3131, 1406, 1410, 1410, 1410,
3962
3963      1411, 1411, 1411, 3132, 1411, 3133, 3134, 1411, 1421, 1421,
3964      1421, 1422, 1422, 1422, 1410, 3135, 3143, 1399, 1424, 1424,
3965      1424, 1425, 1425, 1425, 3144, 1425, 1421, 3145, 1425, 1422,
3966      1428, 1428, 1428, 1429, 1429, 1429, 1424, 1431, 1431, 1431,
3967      1434, 1434, 1434, 1435, 1435, 1435, 3137, 1435, 1428, 3148,
3968      1435, 1429, 1441, 1441, 1441, 1431, 3137, 1434, 1442, 1442,
3969      1442, 1444, 1444, 1444, 1446, 1446, 1446, 1447, 1447, 1447,
3970      1441, 1447, 3138, 3139, 1447, 3149, 1442, 3150, 3151, 1444,
3971      3154, 1446, 3138, 1450, 1450, 1450, 1424, 1450, 3156, 3160,
3972      1450, 1453, 1453, 1453, 1454, 1454, 1454, 3163, 1431, 1456,
3973
3974      1456, 1456, 1457, 1457, 1457, 1458, 1458, 1458, 3139, 1453,
3975      3164, 3165, 1454, 1459, 1459, 1459, 3166, 1456, 3167, 1457,
3976      1461, 1461, 1461, 1458, 1470, 1470, 1470, 1444, 1464, 1464,
3977      1464, 1459, 1464, 3168, 3169, 1464, 3170, 3175, 1461, 1471,
3978      1471, 1471, 1470, 1473, 1473, 1473, 1475, 1475, 1475, 3183,
3979      1475, 3184, 3185, 1475, 1478, 1478, 1478, 1471, 1479, 1479,
3980      1479, 1473, 1481, 1481, 1481, 1456, 3186, 1482, 1482, 1482,
3981      1461, 1482, 1478, 3187, 1482, 3188, 1479, 1486, 1486, 1486,
3982      1481, 1487, 1487, 1487, 1489, 1489, 1489, 3189, 1490, 1490,
3983      1490, 1491, 1491, 1491, 3190, 1486, 1492, 1492, 1492, 1487,
3984
3985      3191, 3192, 1489, 3198, 1473, 1490, 3199, 3201, 1491, 1493,
3986      1493, 1493, 3202, 3204, 1492, 1495, 1495, 1495, 1500, 1500,
3987      1500, 3205, 1500, 1481, 3206, 1500, 3207, 1493, 1503, 1503,
3988      1503, 3208, 3209, 1495, 3210, 1489, 1504, 1504, 1504, 1491,
3989      1504, 3211, 3212, 1504, 3213, 1503, 1507, 1507, 1507, 1508,
3990      1508, 1508, 1510, 1510, 1510, 1513, 1513, 1513, 1514, 1514,
3991      1514, 1516, 1516, 1516, 1507, 3214, 3215, 1508, 3216, 3219,
3992      1510, 3220, 3221, 1513, 3222, 3230, 1514, 3231, 3233, 1516,
3993      1522, 1522, 1522, 1495, 1526, 1526, 1526, 1527, 1527, 1527,
3994      1529, 1529, 1529, 3234, 1530, 1530, 1530, 1522, 1530, 3235,
3995
3996      3237, 1530, 1526, 3239, 1510, 1527, 3240, 3241, 1529, 1516,
3997      1534, 1534, 1534, 1535, 1535, 1535, 1537, 1537, 1537, 1539,
3998      1539, 1539, 3244, 1539, 2475, 2475, 1539, 2475, 1534, 3245,
3999      3246, 1535, 3247, 3250, 1537, 2475, 1542, 1542, 1542, 1543,
4000      1543, 1543, 2475, 1543, 3251, 3252, 1543, 1544, 1544, 1544,
4001      3253, 3254, 1529, 1542, 1545, 1545, 1545, 3261, 1546, 1546,
4002      1546, 3255, 1546, 3262, 1544, 1546, 1548, 1548, 1548, 3264,
4003      3265, 1545, 1550, 1550, 1550, 1551, 1551, 1551, 1537, 1553,
4004      1553, 1553, 3266, 1548, 1554, 1554, 1554, 1555, 1555, 1555,
4005      1550, 1555, 3268, 1551, 1555, 3270, 3273, 1553, 1556, 1556,
4006
4007      1556, 1554, 1557, 1557, 1557, 3255, 1557, 3275, 3276, 1557,
4008      1559, 1559, 1559, 3277, 3278, 1556, 1560, 1560, 1560, 1562,
4009      1562, 1562, 1564, 1564, 1564, 3279, 1564, 3280, 1559, 1564,
4010      1567, 1567, 1567, 3281, 1560, 3282, 3285, 1562, 3289, 3290,
4011      1553, 1568, 1568, 1568, 1570, 1570, 1570, 3292, 1567, 1573,
4012      1573, 1573, 3293, 1573, 3294, 3296, 1573, 3297, 3302, 1568,
4013      3303, 3304, 1570, 1577, 1577, 1577, 1578, 1578, 1578, 3305,
4014      1580, 1580, 1580, 1582, 1582, 1582, 3306, 1582, 3307, 3308,
4015      1582, 1577, 3309, 3310, 1578, 3311, 3312, 1562, 1580, 1586,
4016      1586, 1586, 1587, 1587, 1587, 1588, 1588, 1588, 1590, 1590,
4017
4018      1590, 1592, 1592, 1592, 3313, 3314, 1586, 1593, 1593, 1593,
4019      1587, 1593, 1570, 1588, 1593, 3315, 1590, 3316, 1592, 1596,
4020      1596, 1596, 1598, 1598, 1598, 1599, 1599, 1599, 1601, 1601,
4021      1601, 3317, 1580, 1603, 1603, 1603, 1596, 1605, 1605, 1605,
4022      1598, 3318, 3322, 1599, 3323, 3324, 1601, 1606, 1606, 1606,
4023      1603, 1608, 1608, 1608, 3325, 1605, 3328, 1609, 1609, 1609,
4024      1590, 1609, 3329, 3330, 1609, 1606, 1613, 1613, 1613, 1608,
4025      1614, 1614, 1614, 1616, 1616, 1616, 1601, 1617, 1617, 1617,
4026      3331, 1596, 3332, 3333, 1613, 1618, 1618, 1618, 1614, 1618,
4027      3335, 1616, 1618, 3336, 1617, 1621, 1621, 1621, 3338, 1608,
4028
4029      1622, 1622, 1622, 3339, 1622, 3340, 3342, 1622, 1624, 1624,
4030      1624, 3343, 1621, 1625, 1625, 1625, 3344, 1627, 1627, 1627,
4031      1629, 1629, 1629, 1635, 1635, 1635, 1624, 1685, 1685, 1685,
4032      3345, 1625, 3346, 3354, 1616, 1627, 3355, 3350, 1629, 1629,
4033      3357, 1635, 1676, 1676, 1676, 1685, 1676, 3347, 3350, 1676,
4034      1681, 1681, 1681, 3349, 1681, 3358, 3362, 1681, 1688, 1688,
4035      1688, 1689, 1689, 1689, 3364, 1689, 3366, 3349, 1689, 1693,
4036      1693, 1693, 1696, 1696, 1696, 1688, 3368, 3372, 1627, 1695,
4037      1695, 1695, 3378, 1699, 1699, 1699, 3379, 1693, 3374, 1685,
4038      1696, 1700, 1700, 1700, 3347, 1700, 1695, 3381, 1700, 3382,
4039
4040      3374, 1699, 1705, 1705, 1705, 3384, 1705, 3375, 3395, 1705,
4041      1708, 1708, 1708, 1709, 1709, 1709, 3397, 1709, 3389, 3375,
4042      1709, 3399, 1712, 1712, 1712, 3400, 1712, 3403, 1708, 1712,
4043      3389, 1693, 1715, 1715, 1715, 1716, 1716, 1716, 3404, 1716,
4044      1696, 1699, 1716, 3407, 1721, 1721, 1721, 3409, 1721, 3390,
4045      1715, 1721, 1724, 1724, 1724, 1725, 1725, 1725, 1708, 1725,
4046      3411, 3390, 1725, 3413, 1730, 1730, 1730, 1732, 1732, 1732,
4047      1724, 1733, 1733, 1733, 1734, 1734, 1734, 1735, 1735, 1735,
4048      1715, 1730, 1736, 1736, 1736, 1732, 3414, 3416, 1733, 3417,
4049      3421, 1734, 3422, 3424, 1735, 1741, 1741, 1741, 3425, 1736,
4050
4051      1724, 1737, 1737, 1737, 3427, 1737, 3429, 3433, 1737, 1738,
4052      1738, 1738, 1741, 1738, 3353, 3435, 1738, 1742, 1742, 1742,
4053      1743, 1743, 1743, 1732, 3438, 1735, 1744, 1744, 1744, 1745,
4054      1745, 1745, 3439, 3353, 1742, 3353, 3440, 1743, 1746, 1746,
4055      1746, 1734, 3430, 1744, 3432, 3432, 1745, 1741, 3353, 1747,
4056      1747, 1747, 1748, 1748, 1748, 1746, 1749, 1749, 1749, 1750,
4057      1750, 1750, 1751, 1751, 1751, 1742, 1747, 3444, 3441, 1748,
4058      1755, 1755, 1755, 1749, 1744, 3431, 1750, 1752, 1752, 1752,
4059      1751, 1756, 1756, 1756, 3430, 1756, 3441, 1755, 1756, 3431,
4060      3445, 1743, 3446, 3453, 1745, 1752, 1758, 1758, 1758, 1746,
4061
4062      1760, 1760, 1760, 1762, 1762, 1762, 3454, 1763, 1763, 1763,
4063      3457, 1763, 3458, 1758, 1763, 1764, 1764, 1764, 1760, 1749,
4064      1762, 1750, 3460, 1748, 1765, 1765, 1765, 3434, 1751, 3457,
4065      1752, 3464, 3465, 1764, 3447, 1766, 1766, 1766, 3434, 1766,
4066      3466, 1765, 1766, 1767, 1767, 1767, 1773, 1773, 1773, 3447,
4067      1775, 1775, 1775, 1776, 1776, 1776, 3467, 1777, 1777, 1777,
4068      3459, 1767, 3469, 3470, 1773, 3471, 3472, 1760, 1775, 3474,
4069      1776, 1778, 1778, 1778, 3475, 1777, 1779, 1779, 1779, 3459,
4070      1779, 3469, 1764, 1779, 3471, 1781, 1781, 1781, 1778, 1783,
4071      1783, 1783, 1786, 1786, 1786, 3476, 1786, 3477, 3478, 1786,
4072
4073      3479, 3487, 1767, 1781, 1773, 3488, 1783, 3489, 1775, 1777,
4074      1789, 1789, 1789, 1791, 1791, 1791, 1794, 1794, 1794, 1800,
4075      1800, 1800, 1801, 1801, 1801, 3493, 1801, 1789, 3494, 1801,
4076      3495, 1791, 3490, 3501, 1794, 3502, 1800, 1805, 1805, 1805,
4077      1806, 1806, 1806, 1807, 1807, 1807, 1781, 1809, 1809, 1809,
4078      3490, 1809, 3496, 3503, 1809, 1805, 3505, 1806, 1812, 1812,
4079      1812, 1807, 1813, 1813, 1813, 3506, 1813, 3496, 3507, 1813,
4080      1814, 1814, 1814, 3509, 1814, 1812, 3510, 1814, 1791, 1818,
4081      1818, 1818, 3511, 1794, 1819, 1819, 1819, 1805, 1819, 3512,
4082      3514, 1819, 1821, 1821, 1821, 3515, 1818, 1822, 1822, 1822,
4083
4084      3516, 1822, 3521, 3522, 1822, 3523, 1807, 1825, 1825, 1825,
4085      1821, 1825, 3524, 3525, 1825, 1829, 1829, 1829, 1831, 1831,
4086      1831, 1835, 1835, 1835, 1837, 1837, 1837, 1838, 1838, 1838,
4087      1839, 1839, 1839, 1829, 1839, 3526, 1831, 1839, 3527, 1835,
4088      3528, 1837, 3529, 1821, 1838, 1840, 1840, 1840, 1842, 1842,
4089      1842, 1843, 1843, 1843, 3530, 1843, 3533, 3534, 1843, 1846,
4090      1846, 1846, 3535, 1840, 3536, 1842, 1848, 1848, 1848, 1849,
4091      1849, 1849, 3537, 1849, 3538, 3541, 1849, 1846, 1850, 1850,
4092      1850, 3542, 1829, 1848, 3543, 1831, 1835, 1851, 1851, 1851,
4093      1853, 1853, 1853, 3544, 3545, 1850, 1854, 1854, 1854, 3546,
4094
4095      1854, 3547, 3548, 1854, 3549, 1851, 3551, 3552, 1853, 1846,
4096      1840, 1859, 1859, 1859, 3553, 1859, 3554, 3556, 1859, 3558,
4097      1863, 1863, 1863, 1866, 1866, 1866, 1910, 1910, 1910, 1913,
4098      1913, 1913, 1914, 1914, 1914, 3559, 3560, 1851, 1863, 3561,
4099      3562, 1866, 1853, 1915, 1915, 1915, 1916, 1916, 1916, 1917,
4100      1917, 1917, 1918, 1918, 1918, 1921, 1921, 1921, 3563, 1921,
4101      1915, 3564, 1921, 1916, 3565, 3566, 1917, 1927, 1927, 1927,
4102      1918, 3567, 1863, 1910, 3568, 1866, 1929, 1929, 1929, 1930,
4103      1930, 1930, 3572, 1930, 3570, 1927, 1930, 1931, 1931, 1931,
4104      3573, 3574, 1866, 1929, 1913, 3575, 3570, 1914, 3576, 1934,
4105
4106      1934, 1934, 1935, 1935, 1935, 1931, 1936, 1936, 1936, 1937,
4107      1937, 1937, 3577, 3578, 1917, 3580, 3585, 1934, 3586, 1935,
4108      1918, 3587, 3588, 1936, 1938, 1938, 1938, 1937, 1939, 1939,
4109      1939, 3571, 1927, 1940, 1940, 1940, 1941, 1941, 1941, 1942,
4110      1942, 1942, 1938, 3571, 3589, 1939, 3590, 1931, 1934, 3594,
4111      1940, 1943, 1943, 1943, 1941, 3595, 1942, 1944, 1944, 1944,
4112      1945, 1945, 1945, 3597, 1945, 3599, 3600, 1945, 1943, 1946,
4113      1946, 1946, 3601, 3602, 1944, 1937, 1947, 1947, 1947, 1948,
4114      1948, 1948, 1950, 1950, 1950, 3603, 1946, 1951, 1951, 1951,
4115      1938, 1949, 1949, 1949, 1947, 1949, 1948, 3604, 1949, 1950,
4116
4117      3605, 3606, 1941, 3607, 1951, 1952, 1952, 1952, 3610, 1952,
4118      1943, 3611, 1952, 1955, 1955, 1955, 1956, 1956, 1956, 1957,
4119      1957, 1957, 1958, 1958, 1958, 1959, 1959, 1959, 3612, 3608,
4120      1955, 3613, 3614, 1956, 3615, 3616, 1957, 1947, 3617, 1958,
4121      3620, 3621, 1959, 1960, 1960, 1960, 1961, 1961, 1961, 1962,
4122      1962, 1962, 1951, 1962, 3608, 3622, 1962, 1963, 1963, 1963,
4123      1960, 3623, 3624, 1961, 3625, 3626, 1956, 1964, 1964, 1964,
4124      3627, 3628, 1959, 3629, 1963, 1965, 1965, 1965, 1955, 3632,
4125      3633, 1958, 3634, 3635, 1964, 1966, 1966, 1966, 1967, 1967,
4126      1967, 3636, 1965, 3637, 1970, 1970, 1970, 1960, 1970, 3640,
4127
4128      3641, 1970, 3642, 1966, 3643, 3644, 1967, 1973, 1973, 1973,
4129      1974, 1974, 1974, 3645, 3646, 1964, 1975, 1975, 1975, 3647,
4130      1975, 3648, 3649, 1975, 1973, 3651, 3652, 1974, 3653, 1965,
4131      1977, 1977, 1977, 1979, 1979, 1979, 3650, 1979, 3654, 3655,
4132      1979, 1982, 1982, 1982, 1967, 1986, 1986, 1986, 1977, 1983,
4133      1983, 1983, 1966, 1983, 3656, 3650, 1983, 3657, 3658, 1982,
4134      1991, 1991, 1991, 1986, 1993, 1993, 1993, 1994, 1994, 1994,
4135      1995, 1995, 1995, 3659, 1995, 3356, 3660, 1995, 1991, 1996,
4136      1996, 1996, 1993, 3661, 1994, 1997, 1997, 1997, 1982, 1997,
4137      3662, 3356, 1997, 3356, 2001, 2001, 2001, 1996, 2003, 2003,
4138
4139      2003, 2004, 2004, 2004, 3663, 2004, 3356, 3664, 2004, 3665,
4140      3666, 1993, 2001, 1986, 3667, 2003, 2005, 2005, 2005, 2007,
4141      2007, 2007, 2008, 2008, 2008, 3668, 2008, 3669, 3670, 2008,
4142      2010, 2010, 2010, 2005, 3671, 3672, 2007, 3673, 1996, 2013,
4143      2013, 2013, 2014, 2014, 2014, 2019, 2019, 2019, 2010, 2019,
4144      3674, 3677, 2019, 2025, 2025, 2025, 3678, 2013, 2026, 2026,
4145      2026, 2001, 2027, 2027, 2027, 3679, 2027, 3680, 3681, 2027,
4146      3682, 2025, 2028, 2028, 2028, 2026, 2030, 2030, 2030, 3683,
4147      2030, 3684, 3686, 2030, 2034, 2034, 2034, 3687, 2034, 3685,
4148      2028, 2034, 2013, 2038, 2038, 2038, 2040, 2040, 2040, 2042,
4149
4150      2042, 2042, 2043, 2043, 2043, 2025, 2044, 2044, 2044, 3685,
4151      3689, 2038, 3690, 3691, 2040, 3420, 3693, 2042, 3694, 2043,
4152      2045, 2045, 2045, 2044, 2046, 2046, 2046, 2048, 2048, 2048,
4153      3695, 2049, 2049, 2049, 3420, 2049, 3420, 2045, 2049, 2050,
4154      2050, 2050, 2046, 2050, 2048, 3696, 2050, 3697, 2040, 3420,
4155      3698, 2042, 2053, 2053, 2053, 2038, 2055, 2055, 2055, 3699,
4156      2055, 3700, 3701, 2055, 2060, 2060, 2060, 2062, 2062, 2062,
4157      2053, 2062, 2046, 2044, 2062, 2065, 2065, 2065, 3702, 2066,
4158      2066, 2066, 2060, 2066, 3703, 3704, 2066, 2067, 2067, 2067,
4159      3705, 3706, 2065, 2069, 2069, 2069, 2070, 2070, 2070, 3707,
4160
4161      2053, 2071, 2071, 2071, 3708, 2067, 2072, 2072, 2072, 3709,
4162      3710, 2069, 3711, 2070, 3713, 3714, 2060, 3715, 2071, 2073,
4163      2073, 2073, 3717, 2072, 2078, 2078, 2078, 2080, 2080, 2080,
4164      2086, 2086, 2086, 2091, 2091, 2091, 3719, 2073, 3720, 2067,
4165      3722, 2078, 2094, 2094, 2094, 2095, 2095, 2095, 2096, 2096,
4166      2096, 2098, 2098, 2098, 3723, 2073, 2108, 2108, 2108, 2109,
4167      2109, 2109, 2111, 2111, 2111, 2114, 2114, 2114, 2115, 2115,
4168      2115, 2072, 2115, 3725, 3726, 2115, 2116, 2116, 2116, 2117,
4169      2117, 2117, 2114, 2117, 3727, 3728, 2117, 2119, 2119, 2119,
4170      2125, 2125, 2125, 2116, 2127, 2127, 2127, 3729, 2127, 3730,
4171
4172      3718, 2127, 2132, 2132, 2132, 2119, 3718, 3732, 2125, 2130,
4173      2130, 2130, 2133, 2133, 2133, 2134, 2134, 2134, 3733, 2132,
4174      3735, 2135, 2135, 2135, 3736, 2135, 3738, 2130, 2135, 3739,
4175      2133, 3741, 2134, 2136, 2136, 2136, 2137, 2137, 2137, 3742,
4176      2137, 3744, 3745, 2137, 2138, 2138, 2138, 2139, 2139, 2139,
4177      2136, 2140, 2140, 2140, 2119, 3748, 2141, 2141, 2141, 3747,
4178      2141, 2130, 2138, 2141, 3750, 2139, 3752, 3753, 2140, 2142,
4179      2142, 2142, 3754, 3747, 2133, 2143, 2143, 2143, 3755, 2143,
4180      3757, 3759, 2143, 2144, 2144, 2144, 2142, 2145, 2145, 2145,
4181      2146, 2146, 2146, 3761, 2146, 3763, 3764, 2146, 2147, 2147,
4182
4183      2147, 2144, 3766, 3769, 2145, 2148, 2148, 2148, 3770, 2148,
4184      2138, 3771, 2148, 2139, 3772, 2147, 2151, 2151, 2151, 2152,
4185      2152, 2152, 3773, 2152, 3774, 3775, 2152, 2153, 2153, 2153,
4186      2154, 2154, 2154, 2151, 2154, 3776, 3777, 2154, 2157, 2157,
4187      2157, 2162, 2162, 2162, 3778, 2153, 2158, 2158, 2158, 2144,
4188      2158, 3779, 3780, 2158, 3784, 2157, 3786, 3423, 2162, 2163,
4189      2163, 2163, 3788, 2163, 3789, 3790, 2163, 2164, 2164, 2164,
4190      2167, 2167, 2167, 3423, 2167, 3423, 3791, 2167, 1511, 2153,
4191      2170, 2170, 2170, 3810, 2164, 2171, 2171, 2171, 3423, 2171,
4192      3794, 3810, 2171, 2174, 2174, 2174, 3811, 2170, 2175, 2175,
4193
4194      2175, 2178, 2178, 2178, 3811, 2179, 2179, 2179, 3802, 2179,
4195      3795, 2174, 2179, 2180, 2180, 2180, 2175, 2180, 2178, 3806,
4196      2180, 2184, 2184, 2184, 2186, 2186, 2186, 3794, 2187, 2187,
4197      2187, 2188, 2188, 2188, 2190, 2190, 2190, 3803, 1506, 2184,
4198      2193, 2193, 2193, 3807, 1505, 2174, 2187, 3795, 3804, 2188,
4199      3805, 2190, 2175, 2196, 2196, 2196, 3826, 3802, 2193, 2197,
4200      2197, 2197, 3812, 2197, 3806, 3814, 2197, 2200, 2200, 2200,
4201      3812, 2196, 2202, 2202, 2202, 3808, 2204, 2204, 2204, 3808,
4202      2204, 2190, 2188, 2204, 1499, 2200, 3803, 2187, 3807, 3826,
4203      2202, 2207, 2207, 2207, 2208, 2208, 2208, 3804, 2208, 3805,
4204
4205      3809, 2208, 3813, 2196, 3809, 2210, 2210, 2210, 2207, 2210,
4206      3813, 3832, 2210, 3814, 2200, 2214, 2214, 2214, 2217, 2217,
4207      2217, 2218, 2218, 2218, 2219, 2219, 2219, 2220, 2220, 2220,
4208      2222, 2222, 2222, 2214, 3816, 2217, 2227, 2227, 2227, 2218,
4209      2228, 2228, 2228, 3818, 2228, 3852, 3832, 2228, 2231, 2231,
4210      2231, 2234, 2234, 2234, 2227, 2236, 2236, 2236, 2238, 2238,
4211      2238, 2240, 2240, 2240, 3819, 3817, 2231, 3827, 2234, 2241,
4212      2241, 2241, 3816, 2236, 3815, 3852, 2238, 3822, 3823, 2240,
4213      2242, 2242, 2242, 2218, 2242, 3818, 2241, 2242, 2243, 2243,
4214      2243, 2244, 2244, 2244, 2245, 2245, 2245, 3820, 2245, 3833,
4215
4216      3827, 2245, 2227, 3817, 1498, 2243, 3819, 3824, 2244, 2246,
4217      2246, 2246, 2247, 2247, 2247, 2236, 2248, 2248, 2248, 3821,
4218      2248, 3830, 3815, 2248, 3822, 3823, 2240, 2246, 1497, 2247,
4219      2251, 2251, 2251, 3820, 3833, 2243, 2255, 2255, 2255, 2256,
4220      2256, 2256, 2265, 2265, 2265, 3824, 2265, 3825, 2251, 2265,
4221      2268, 2268, 2268, 3846, 2255, 3821, 2256, 3830, 3828, 2247,
4222      2269, 2269, 2269, 2246, 2270, 2270, 2270, 3828, 2268, 2272,
4223      2272, 2272, 2273, 2273, 2273, 3831, 2273, 2269, 3838, 2273,
4224      3874, 3829, 2270, 3844, 2251, 3825, 2272, 2274, 2274, 2274,
4225      3829, 2275, 2275, 2275, 3842, 2275, 3846, 2268, 2275, 2277,
4226
4227      2277, 2277, 1496, 3842, 2274, 2281, 2281, 2281, 2282, 2282,
4228      2282, 3831, 2282, 3874, 3838, 2282, 3834, 2277, 2283, 2283,
4229      2283, 3844, 2281, 2289, 2289, 2289, 2290, 2290, 2290, 2291,
4230      2291, 2291, 2293, 2293, 2293, 2297, 2297, 2297, 2298, 2298,
4231      2298, 2299, 2299, 2299, 2300, 2300, 2300, 2303, 2303, 2303,
4232      2308, 2308, 2308, 2309, 2309, 2309, 2311, 2311, 2311, 3835,
4233      3834, 2277, 2312, 2312, 2312, 2313, 2313, 2313, 2316, 2316,
4234      2316, 3847, 2316, 1485, 3839, 2316, 2319, 2319, 2319, 3901,
4235      2319, 3840, 3836, 2319, 2323, 2323, 2323, 2325, 2325, 2325,
4236      3901, 2300, 2326, 2326, 2326, 3862, 2327, 2327, 2327, 2328,
4237
4238      2328, 2328, 2323, 3835, 2325, 2329, 2329, 2329, 3845, 2326,
4239      3839, 3837, 2313, 2327, 3847, 3840, 2328, 2332, 2332, 2332,
4240      2334, 2334, 2334, 2329, 2335, 2335, 2335, 3848, 2335, 3836,
4241      3850, 2335, 2336, 2336, 2336, 2332, 2323, 2334, 2337, 2337,
4242      2337, 3853, 2337, 3862, 2326, 2337, 3845, 2340, 2340, 2340,
4243      2336, 2340, 3841, 3849, 2340, 2343, 2343, 2343, 3837, 2328,
4244      1474, 2327, 2344, 2344, 2344, 2345, 2345, 2345, 3850, 2345,
4245      1469, 3853, 2345, 2343, 3848, 2343, 2476, 2476, 2332, 2476,
4246      2344, 2348, 2348, 2348, 3851, 2348, 3841, 2476, 2348, 2351,
4247      2351, 2351, 3843, 2336, 2476, 2352, 2352, 2352, 2344, 2352,
4248
4249      3849, 3843, 2352, 2355, 2355, 2355, 3858, 2351, 2356, 2356,
4250      2356, 1468, 2356, 1467, 3854, 2356, 3856, 2357, 2357, 2357,
4251      2355, 2357, 3851, 3854, 2357, 2360, 2360, 2360, 2361, 2361,
4252      2361, 3855, 2361, 2351, 3860, 2361, 1463, 2367, 2367, 2367,
4253      3855, 2367, 3860, 2360, 2367, 2370, 2370, 2370, 2371, 2371,
4254      2371, 3856, 2371, 3858, 3863, 2371, 2374, 2374, 2374, 3859,
4255      2374, 3857, 2370, 2374, 2378, 2378, 2378, 2379, 2379, 2379,
4256      2380, 2380, 2380, 2383, 2383, 2383, 3864, 2383, 3861, 3868,
4257      2383, 2378, 2387, 2387, 2387, 2379, 3861, 3878, 2380, 2388,
4258      2388, 2388, 2360, 2390, 2390, 2390, 3857, 2391, 2391, 2391,
4259
4260      2387, 2391, 3863, 3869, 2391, 1462, 3859, 2388, 3866, 3867,
4261      2390, 2396, 2396, 2396, 3864, 3868, 2397, 2397, 2397, 2399,
4262      2399, 2399, 1445, 2402, 2402, 2402, 1440, 2402, 3876, 2396,
4263      2402, 3865, 2379, 1439, 2397, 3878, 3876, 2399, 2387, 3869,
4264      3870, 2388, 2408, 2408, 2408, 2409, 2409, 2409, 3896, 2409,
4265      3866, 3867, 2409, 2410, 2410, 2410, 2411, 2411, 2411, 2408,
4266      2412, 2412, 2412, 2413, 2413, 2413, 2414, 2414, 2414, 3865,
4267      3871, 2410, 2415, 2415, 2415, 2416, 2416, 2416, 2396, 2397,
4268      2418, 2418, 2418, 2414, 2417, 2417, 2417, 3870, 3877, 2415,
4269      3875, 3879, 2416, 2420, 2420, 2420, 3877, 3896, 2418, 3892,
4270
4271      3872, 2417, 2421, 2421, 2421, 3882, 2421, 3883, 3892, 2421,
4272      2420, 2423, 2423, 2423, 2425, 2425, 2425, 3871, 2410, 2428,
4273      2428, 2428, 3884, 3875, 2415, 1438, 2429, 2429, 2429, 2423,
4274      2429, 3873, 2425, 2429, 2432, 2432, 2432, 2428, 3872, 3879,
4275      2416, 2433, 2433, 2433, 2417, 2433, 2418, 3882, 2433, 3883,
4276      1433, 2432, 2435, 2435, 2435, 3880, 2435, 3890, 3884, 2435,
4277      2438, 2438, 2438, 2439, 2439, 2439, 2440, 2440, 2440, 3873,
4278      2440, 1432, 3881, 2440, 2442, 2442, 2442, 3886, 2438, 3885,
4279      2439, 2446, 2446, 2446, 2448, 2448, 2448, 2449, 2449, 2449,
4280      3890, 2449, 2442, 3880, 2449, 2460, 2460, 2460, 1419, 2446,
4281
4282      3887, 2448, 2461, 2461, 2461, 1418, 1417, 2462, 2462, 2462,
4283      3881, 2462, 2438, 2460, 2462, 3885, 2463, 2463, 2463, 2461,
4284      2463, 3891, 3894, 2463, 3886, 1416, 2442, 2466, 2466, 2466,
4285      1415, 2466, 3893, 1414, 2466, 2470, 2470, 2470, 2471, 2471,
4286      2471, 3893, 2474, 2474, 2474, 2460, 2474, 3887, 1413, 2474,
4287      2477, 2477, 2477, 2470, 3891, 3894, 2471, 2478, 2478, 2478,
4288      2479, 2479, 2479, 2483, 2483, 2483, 2484, 2484, 2484, 2486,
4289      2486, 2486, 2487, 2487, 2487, 2489, 2489, 2489, 2490, 2490,
4290      2490, 2491, 2491, 2491, 2495, 2495, 2495, 2496, 2496, 2496,
4291      2500, 2500, 2500, 2501, 2501, 2501, 2503, 2503, 2503, 2504,
4292
4293      2504, 2504, 1412, 2470, 2509, 2509, 2509, 2510, 2510, 2510,
4294      2511, 2511, 2511, 2512, 2512, 2512, 3888, 2512, 1402, 3889,
4295      2512, 1401, 2509, 2513, 2513, 2513, 3897, 2511, 2514, 2514,
4296      2514, 2515, 2515, 2515, 2516, 2516, 2516, 2517, 2517, 2517,
4297      2513, 2518, 2518, 2518, 1400, 2514, 1395, 1394, 2515, 2519,
4298      2519, 2519, 3895, 2519, 3888, 2517, 2519, 3889, 2518, 2522,
4299      2522, 2522, 1393, 2523, 2523, 2523, 2524, 2524, 2524, 2525,
4300      2525, 2525, 2526, 2526, 2526, 3897, 2526, 2522, 1392, 2526,
4301      2514, 2523, 3898, 2515, 2524, 3895, 1377, 2525, 2529, 2529,
4302      2529, 2533, 2533, 2533, 1376, 2533, 3899, 1359, 2533, 1358,
4303
4304      2523, 2536, 2536, 2536, 2517, 1351, 2529, 2539, 2539, 2539,
4305      1347, 2522, 2540, 2540, 2540, 3898, 2540, 1342, 2536, 2540,
4306      2541, 2541, 2541, 1341, 2539, 2542, 2542, 2542, 2524, 3899,
4307      1336, 2525, 2547, 2547, 2547, 2548, 2548, 2548, 2541, 2549,
4308      2549, 2549, 1335, 2542, 2550, 2550, 2550, 1334, 2550, 1332,
4309      2547, 2550, 1331, 2548, 1326, 1323, 2549, 2553, 2553, 2553,
4310      2554, 2554, 2554, 2555, 2555, 2555, 2556, 2556, 2556, 2557,
4311      2557, 2557, 1322, 1319, 2553, 1318, 1317, 2554, 3900, 1316,
4312      2555, 1315, 1314, 2556, 1313, 1312, 2549, 2557, 2558, 2558,
4313      2558, 1311, 3900, 2547, 2559, 2559, 2559, 2563, 2563, 2563,
4314
4315      2564, 2564, 2564, 1310, 2564, 1309, 2558, 2564, 2567, 2567,
4316      2567, 2559, 1308, 2553, 1307, 2555, 2568, 2568, 2568, 2569,
4317      2569, 2569, 2554, 2571, 2571, 2571, 2567, 2570, 2570, 2570,
4318      2557, 2570, 1306, 1305, 2570, 1304, 2569, 2572, 2572, 2572,
4319      2571, 2573, 2573, 2573, 2574, 2574, 2574, 2575, 2575, 2575,
4320      2579, 2579, 2579, 2558, 2572, 2580, 2580, 2580, 2573, 2576,
4321      2576, 2576, 2574, 2576, 2575, 1301, 2576, 2579, 2567, 2584,
4322      2584, 2584, 1300, 2580, 2586, 2586, 2586, 1299, 2586, 1298,
4323      1297, 2586, 2590, 2590, 2590, 1295, 1294, 2584, 1293, 2572,
4324      2591, 2591, 2591, 2573, 2591, 1292, 1291, 2591, 1290, 1289,
4325
4326      2590, 2595, 2595, 2595, 2599, 2599, 2599, 1288, 2599, 1287,
4327      1286, 2599, 2612, 2612, 2612, 2614, 2614, 2579, 2614, 2595,
4328      2613, 2613, 2613, 1285, 2613, 1284, 2614, 2613, 2615, 2615,
4329      2612, 2615, 1283, 2614, 2617, 2617, 2617, 1282, 1281, 2615,
4330      2618, 2618, 2618, 2631, 2631, 2631, 2615, 1275, 2595, 2632,
4331      2632, 2632, 2617, 2636, 2636, 2636, 1271, 1268, 2618, 2637,
4332      2637, 2637, 2639, 2639, 2639, 2642, 2642, 2642, 2643, 2643,
4333      2643, 2647, 2647, 2647, 2612, 2650, 2650, 2650, 2652, 2652,
4334      2652, 2654, 2654, 2654, 2655, 2655, 2655, 1267, 2655, 1266,
4335      1264, 2655, 2658, 2658, 2658, 1260, 2652, 1251, 2659, 2659,
4336
4337      2659, 2617, 2659, 2618, 1246, 2659, 2660, 2660, 2660, 2658,
4338      2661, 2661, 2661, 2662, 2662, 2662, 2663, 2663, 2663, 2664,
4339      2664, 2664, 1245, 2660, 2665, 2665, 2665, 2661, 2665, 1244,
4340      1240, 2665, 1239, 1236, 2663, 1232, 2664, 2666, 2666, 2666,
4341      2667, 2667, 2667, 2668, 2668, 2668, 2669, 2669, 2669, 2670,
4342      2670, 2670, 2676, 2676, 2676, 2666, 1231, 1228, 2667, 1225,
4343      1222, 2668, 1221, 1216, 2669, 1208, 1207, 2670, 1206, 2676,
4344      2677, 2677, 2677, 1204, 2677, 1200, 1197, 2677, 2680, 2680,
4345      2680, 1192, 2680, 1191, 1190, 2680, 2683, 2683, 2683, 2687,
4346      2687, 2687, 2688, 2688, 2688, 2689, 2689, 2689, 2691, 2691,
4347
4348      2691, 2699, 2699, 2699, 2683, 2667, 2687, 2669, 1189, 1188,
4349      2688, 2668, 1187, 2689, 1186, 2691, 2692, 2692, 2692, 2699,
4350      2692, 1185, 1184, 2692, 2696, 2696, 2696, 2697, 2697, 2697,
4351      2698, 2698, 2698, 1181, 2698, 1180, 1177, 2698, 2700, 2700,
4352      2700, 2696, 1176, 1172, 2697, 2701, 2701, 2701, 1170, 1167,
4353      2688, 2702, 2702, 2702, 1166, 2702, 2700, 1163, 2702, 2705,
4354      2705, 2705, 2701, 2706, 2706, 2706, 2707, 2707, 2707, 1156,
4355      2708, 2708, 2708, 1153, 2708, 1152, 2705, 2708, 2711, 2711,
4356      2711, 2712, 2712, 2712, 2707, 2712, 1151, 1148, 2712, 2713,
4357      2713, 2713, 2714, 2714, 2714, 2711, 2715, 2715, 2715, 1147,
4358
4359      2700, 2717, 2717, 2717, 1143, 1136, 2713, 1132, 1131, 2714,
4360      2723, 2723, 2723, 1130, 2715, 2718, 2718, 2718, 2717, 2718,
4361      1127, 1126, 2718, 2726, 2726, 2726, 1125, 1118, 2723, 1117,
4362      2739, 2739, 2739, 2751, 2751, 2751, 2770, 2770, 2770, 1116,
4363      1115, 2726, 2771, 2771, 2771, 2774, 2774, 2774, 2739, 1114,
4364      1113, 2751, 2778, 2778, 2778, 2781, 2781, 2781, 2782, 2782,
4365      2782, 2783, 2783, 2783, 1112, 2783, 1111, 1110, 2783, 2786,
4366      2786, 2786, 2787, 2787, 2787, 2782, 2787, 1106, 1075, 2787,
4367      2788, 2788, 2788, 1072, 1069, 2751, 2786, 2790, 2790, 2790,
4368      2726, 2739, 2789, 2789, 2789, 1068, 2789, 2788, 1065, 2789,
4369
4370      2792, 2792, 2792, 1064, 2792, 2790, 1063, 2792, 2795, 2795,
4371      2795, 2797, 2797, 2797, 2798, 2798, 2798, 2799, 2799, 2799,
4372      2802, 2802, 2802, 2804, 2804, 2804, 2795, 2804, 1062, 2797,
4373      2804, 1061, 2798, 1060, 1053, 2799, 1052, 2802, 2816, 2816,
4374      2816, 2817, 2817, 2817, 2818, 2818, 2818, 1051, 2818, 1049,
4375      1048, 2818, 2819, 2819, 2819, 2816, 1047, 1046, 2817, 2820,
4376      2820, 2820, 1045, 2820, 1044, 1043, 2820, 1042, 1041, 2799,
4377      2819, 1040, 1039, 2797, 2826, 2826, 2826, 1038, 2827, 2827,
4378      2827, 2798, 2827, 1036, 1035, 2827, 2828, 2828, 2828, 1034,
4379      2828, 2826, 1033, 2828, 2831, 2831, 2831, 2833, 2833, 2833,
4380
4381      2834, 2834, 2834, 1032, 2834, 1031, 1030, 2834, 2838, 2838,
4382      2838, 1029, 2831, 1028, 1026, 2833, 2839, 2839, 2839, 2840,
4383      2840, 2840, 1025, 2840, 1024, 2838, 2840, 2841, 2841, 2841,
4384      2843, 2843, 2843, 2839, 2843, 1023, 1022, 2843, 2846, 2846,
4385      2846, 1021, 2847, 2847, 2847, 2841, 2847, 1020, 1019, 2847,
4386      2848, 2848, 2848, 1018, 1017, 2846, 1013, 2849, 2849, 2849,
4387      2833, 2849, 1009, 1008, 2849, 1007, 1006, 2848, 2850, 2850,
4388      2850, 1005, 2850, 1001,  999, 2850, 2854, 2854, 2854, 2855,
4389      2855, 2855, 2858, 2858, 2858, 2859, 2859, 2859, 2860, 2860,
4390      2860,  998,  997, 2854,  996,  995, 2855, 2871, 2871, 2871,
4391
4392      2858, 2884, 2884, 2884,  994, 2860, 2885, 2885, 2885, 2902,
4393      2902, 2902, 2904, 2904, 2904, 2871,  993,  990, 2884, 2908,
4394      2908, 2908,  989,  985, 2885, 2912, 2912, 2912, 2913, 2913,
4395      2913,  984, 2913,  983,  982, 2913, 2914, 2914, 2914,  979,
4396      2914,  978, 2912, 2914, 2917, 2917, 2917,  976, 2917,  974,
4397       971, 2917,  970,  969, 2858, 2920, 2920, 2920, 2871, 2921,
4398      2921, 2921, 2922, 2922, 2922, 2924, 2924, 2924, 2925, 2925,
4399      2925,  968,  966, 2920, 2926, 2926, 2926, 2921, 2926,  963,
4400      2922, 2926, 2924,  962,  960, 2925, 2927, 2927, 2927, 2939,
4401      2939, 2939, 2940, 2940, 2940,  959, 2940,  956, 2922, 2940,
4402
4403      2941, 2941, 2941, 2927, 2941,  954, 2939, 2941, 2944, 2944,
4404      2944, 2921, 2947, 2947, 2947, 2949, 2949, 2949,  951, 2949,
4405       950,  949, 2949, 2920,  948,  945, 2944,  944,  943, 2947,
4406      2958, 2958, 2958, 2960, 2960, 2960, 2961, 2961, 2961,  942,
4407      2961,  941,  940, 2961,  939, 2962, 2962, 2962, 2958, 2962,
4408      2960,  937, 2962, 2965, 2965, 2965,  934, 2965,  933,  929,
4409      2965, 2968, 2968, 2968,  928, 2968,  927,  926, 2968, 2978,
4410      2978, 2978, 2979, 2979, 2979,  925, 2979,  924,  915, 2979,
4411      2980, 2980, 2980, 2981, 2981, 2981, 2978, 2981,  914,  911,
4412      2981, 2982, 2982, 2982, 2983, 2983, 2983, 2980, 2984, 2984,
4413
4414      2984, 2985, 2985, 2985, 2986, 2986, 2986,  910, 2982,  909,
4415       908, 2983,  907, 2987, 2987, 2987, 2984, 2987,  905,  904,
4416      2987, 2986, 2998, 2998, 2998, 3011, 3011, 3011, 3012, 3012,
4417      3012,  903, 3012,  900,  899, 3012, 3013, 3013, 3013,  898,
4418      2998,  895, 3011,  894,  890, 3017, 3017, 3017, 3031, 3031,
4419      3031, 3033, 3033, 3033, 3013, 3036, 3036, 3036, 3038, 3038,
4420      3038, 2984, 3017, 3017, 3040, 3040, 3040,  888, 3040,  885,
4421       884, 3040,  883,  882, 2998, 3047, 3047, 3047, 3048, 3048,
4422      3048, 3049, 3049, 3049, 3051, 3051, 3051, 3052, 3052, 3052,
4423       880, 3052,  877, 3047, 3052,  876, 3048,  875,  874, 3049,
4424
4425       871, 3051, 3053, 3053, 3053,  868, 3053,  865,  864, 3053,
4426      3056, 3056, 3056, 3057, 3057, 3057,  863, 3057,  862,  861,
4427      3057, 3069, 3069, 3069,  858, 3069,  855, 3056, 3069, 3073,
4428      3073, 3073, 3074, 3074, 3074,  851, 3074,  850,  849, 3074,
4429       848,  847, 3047, 3049,  846,  845, 3073, 3082, 3082, 3082,
4430      3085, 3085, 3085,  844, 3085,  843,  842, 3085, 3100, 3100,
4431      3100,  841, 3101, 3101, 3101, 3082, 3101,  839,  837, 3101,
4432      3104, 3104, 3104,  834, 3104, 3100,  833, 3104, 3107, 3107,
4433      3107, 3108, 3108, 3108,  832, 3108,  831,  830, 3108, 3109,
4434      3109, 3109, 3110, 3110, 3110, 3107, 3110,  829,  824, 3110,
4435
4436      3111, 3111, 3111, 3112, 3112, 3112, 3109, 3112,  823,  822,
4437      3112, 3123, 3123, 3123,  821, 3136, 3136, 3136, 3111, 3136,
4438       818,  817, 3136, 3140, 3140, 3140, 3141, 3141, 3141, 3123,
4439      3142, 3142, 3142,  816, 3142,  813,  812, 3142,  811,  810,
4440      3140, 3140,  807, 3141, 3141, 3155, 3155, 3155, 3142, 3157,
4441      3157, 3157, 3111, 3158, 3158, 3158, 3159, 3159, 3159,  806,
4442       804, 3123, 3161, 3161, 3161, 3162, 3162, 3162, 3171, 3171,
4443      3171, 3172, 3172, 3172, 3174, 3174, 3174, 3176, 3176, 3176,
4444       801, 3176,  800,  796, 3176,  795, 3171,  794,  793, 3172,
4445       792,  791, 3174, 3179, 3179, 3179,  788, 3179,  787,  786,
4446
4447      3179, 3182, 3182, 3182, 3193, 3193, 3193, 3194, 3194, 3194,
4448       785, 3194,  784,  783, 3194, 3197, 3197, 3197, 3182,  778,
4449      3171, 3193, 3217, 3217, 3217,  774, 3218, 3218, 3218,  773,
4450      3218,  772, 3197, 3218, 3223, 3223, 3223,  771, 3223, 3217,
4451       768, 3223, 3174, 3226, 3226, 3226,  767, 3226,  766,  763,
4452      3226, 3229, 3229, 3229, 3238, 3238, 3238, 3256, 3256, 3256,
4453      3257, 3257, 3257,  761, 3257,  760,  759, 3257,  756, 3229,
4454       755,  754, 3238,  753, 3256, 3256,  749,  748, 3257, 3258,
4455      3258, 3258,  747, 3258,  743,  742, 3258, 3269, 3269, 3269,
4456      3271, 3271, 3271, 3272, 3272, 3272,  741, 3258, 3274, 3274,
4457
4458      3274, 3283, 3283, 3283, 3287, 3287, 3287,  740, 3287,  734,
4459       733, 3287,  731, 3284, 3284, 3284, 3359, 3359, 3359, 3283,
4460       723, 3238, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
4461      3259, 3284,  722, 3259, 3286, 3286, 3286,  718, 3259, 3259,
4462      3259, 3259, 3259, 3288, 3288, 3288, 3298, 3298, 3298,  713,
4463       709, 3286, 3299, 3299, 3299,  708, 3299,  704,  698, 3299,
4464      3288,  697,  696, 3298,  692, 3300, 3300, 3300, 3259, 3259,
4465      3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260, 3260,  689,
4466      3284, 3260, 3300, 3360, 3360, 3360, 3260, 3260, 3260, 3260,
4467      3260, 3301, 3301, 3301,  687, 3301,  686,  685, 3301, 3319,
4468
4469      3319, 3319,  681, 3319,  677,  673, 3319, 3326, 3326, 3326,
4470      3334, 3334, 3334, 3369, 3369, 3369, 3260, 3260,  672, 3348,
4471      3348, 3348,  671, 3348,  670, 3326, 3348,  666, 3334,  662,
4472       659, 3369,  658, 3376, 3376, 3376,  657, 3348, 3351, 3351,
4473      3351, 3351, 3351, 3351, 3351, 3351, 3351,  656,  652, 3351,
4474      3376, 3449, 3449, 3449, 3351, 3351, 3351, 3351, 3351, 3371,
4475      3371, 3371, 3373, 3373, 3373,  646, 3373,  645,  641, 3373,
4476       633, 3377, 3377, 3377,  629, 3377,  622, 3371, 3377,  620,
4477      3418, 3418, 3418,  619, 3351, 3351, 3352, 3352, 3352, 3352,
4478      3352, 3352, 3352, 3352, 3352,  615,  609, 3352, 3418, 3450,
4479
4480      3450, 3450, 3352, 3352, 3352, 3352, 3352,  608, 3385, 3385,
4481      3385, 3371, 3385,  604,  597, 3385, 3388, 3388, 3388,  596,
4482      3388,  595,  594, 3388, 3436, 3436, 3436, 3455, 3455, 3455,
4483       593,  589, 3352, 3352, 3456, 3456, 3456, 3461, 3461, 3461,
4484       578, 3461, 3436, 3436, 3461, 3455, 3468, 3468, 3468,  574,
4485       566, 3456, 3473, 3473, 3473, 3500, 3500, 3500, 3504, 3504,
4486      3504,  565,  564, 3468, 3517, 3517, 3517,  563,  562, 3473,
4487      3519, 3519, 3519, 3500,  558,  552, 3504, 3520, 3520, 3520,
4488       551, 3520, 3517,  547, 3520,  541,  540, 3519, 3531, 3531,
4489      3531, 3532, 3532, 3532,  536, 3532,  530,  529, 3532, 3539,
4490
4491      3539, 3539, 3540, 3540, 3540, 3531, 3540,  525,  521, 3540,
4492      3504, 3557, 3557, 3557,  517,  516, 3539, 3569, 3569, 3569,
4493       515, 3569,  511,  507, 3569,  503, 3582, 3582, 3582, 3557,
4494      3582,  499,  493, 3582, 3591, 3591, 3591,  492, 3591,  491,
4495       487, 3591, 3768, 3768, 3768, 3781, 3781, 3781, 3557, 3781,
4496       483,  478, 3781, 3902, 3902, 3902, 3903, 3903, 3903,  477,
4497      3768,  476,  475, 3781,  471,  467,  464,  460,  456,  453,
4498       450, 3902,  448,  447, 3903, 3906, 3906, 3906, 3906, 3906,
4499      3906, 3906, 3906, 3906, 3907, 3907, 3907, 3907, 3907, 3907,
4500      3907, 3907, 3907, 3908, 3908, 3908, 3908, 3908, 3908, 3908,
4501
4502      3908, 3908, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909,
4503      3909, 3910, 3910, 3910, 3910, 3910, 3910, 3910, 3910, 3910,
4504      3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3912,
4505      3912, 3912, 3912, 3912, 3912, 3912, 3912, 3912, 3913, 3913,
4506      3913, 3913, 3913, 3913, 3913, 3913, 3913, 3914, 3914, 3914,
4507      3914, 3914, 3914, 3914, 3914, 3914, 3915, 3915, 3915, 3915,
4508      3915, 3915, 3915, 3915, 3915, 3916, 3916, 3916, 3916, 3916,
4509      3916, 3916, 3916, 3916, 3917, 3917, 3917, 3917, 3917, 3917,
4510      3917, 3917, 3917, 3918, 3918, 3918, 3918, 3918, 3918, 3918,
4511      3918, 3918, 3919, 3919, 3919, 3919, 3919, 3919, 3919, 3919,
4512
4513      3919, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
4514      3921, 3921, 3921, 3921, 3921, 3921, 3921, 3921, 3921, 3922,
4515      3922, 3922, 3922, 3922, 3922, 3922, 3922, 3922, 3923, 3923,
4516      3923, 3923, 3923, 3923, 3923, 3923, 3923, 3924, 3924, 3924,
4517      3924, 3924, 3924, 3924, 3924, 3924, 3925, 3925, 3925, 3925,
4518      3925, 3925, 3925, 3925, 3925, 3926, 3926, 3926, 3926, 3926,
4519      3926, 3926, 3926, 3926, 3927, 3927, 3927, 3927, 3927, 3927,
4520      3927, 3927, 3927, 3928, 3928, 3928, 3928, 3928, 3928, 3928,
4521      3928, 3928, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
4522      3929, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930, 3930,
4523
4524      3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3931, 3932,
4525      3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3933, 3933,
4526      3933, 3933, 3933, 3933, 3933, 3933, 3933, 3934, 3934, 3934,
4527      3934, 3934, 3934, 3934, 3934, 3934, 3935, 3935, 3935, 3935,
4528      3935, 3935, 3935, 3935, 3935, 3936, 3936, 3936, 3936, 3936,
4529      3936, 3936, 3936, 3936, 3937, 3937, 3937, 3937, 3937, 3937,
4530      3937, 3937, 3937, 3938, 3938, 3938, 3938, 3938, 3938, 3938,
4531      3938, 3938, 3939, 3939, 3939, 3939, 3939, 3939, 3939, 3939,
4532      3939, 3940, 3940, 3940, 3940, 3940, 3940, 3940, 3940, 3940,
4533      3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3941, 3942,
4534
4535      3942, 3942, 3942, 3942, 3942, 3942, 3942, 3942, 3943, 3943,
4536      3943, 3943, 3943, 3943, 3943, 3943, 3943, 3944, 3944, 3944,
4537      3944, 3944, 3944, 3944, 3944, 3944, 3945, 3945, 3945, 3945,
4538      3945, 3945, 3945, 3945, 3945, 3946, 3946, 3946, 3946, 3946,
4539      3946, 3946, 3946, 3946, 3947, 3947, 3947, 3947, 3947, 3947,
4540      3947, 3947, 3947, 3948, 3948, 3948, 3948, 3948, 3948, 3948,
4541      3948, 3948, 3949, 3949, 3949, 3949, 3949, 3949, 3949, 3949,
4542      3949, 3950, 3950, 3950, 3950, 3950, 3950, 3950, 3950, 3950,
4543      3951, 3951, 3951, 3951, 3951, 3951, 3951, 3951, 3951, 3952,
4544      3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952, 3953, 3953,
4545
4546      3953, 3953, 3953, 3953, 3953, 3953, 3953, 3954, 3954, 3954,
4547      3954, 3954, 3954, 3954, 3954, 3954, 3955, 3955, 3955, 3955,
4548      3955, 3955, 3955, 3955, 3955, 3956, 3956, 3956, 3956, 3956,
4549      3956, 3956, 3956, 3956, 3957, 3957, 3957, 3957, 3957, 3957,
4550      3957, 3957, 3957, 3958, 3958, 3958, 3958, 3958, 3958, 3958,
4551      3958, 3958, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959,
4552      3959, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960, 3960,
4553      3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3962,
4554      3962, 3962, 3962, 3962, 3962, 3962, 3962, 3962, 3963, 3963,
4555      3963, 3963, 3963, 3963, 3963, 3963, 3963, 3964, 3964, 3964,
4556
4557      3964, 3964, 3964, 3964, 3964, 3964, 3965, 3965, 3965, 3965,
4558      3965, 3965, 3965, 3965, 3965, 3966, 3966, 3966, 3966, 3966,
4559      3966, 3966, 3966, 3966, 3967, 3967, 3967, 3967, 3967, 3967,
4560      3967, 3967, 3967, 3968, 3968, 3968, 3968, 3968, 3968, 3968,
4561      3968, 3968, 3969, 3969, 3969, 3969, 3969, 3969, 3969, 3969,
4562      3969, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970,
4563      3971, 3971, 3971, 3971, 3971, 3971, 3971, 3971, 3971, 3972,
4564      3972, 3972, 3972, 3972, 3972, 3972, 3972, 3972, 3973, 3973,
4565      3973, 3973, 3973, 3973, 3973, 3973, 3973, 3974, 3974, 3974,
4566      3974, 3974, 3974, 3974, 3974, 3974, 3975, 3975, 3975,  442,
4567
4568       435,  434, 3975, 3976, 3976, 3976,  433,  432,  431, 3976,
4569      3977, 3977, 3977,  427,  420,  419, 3977, 3978, 3978, 3978,
4570       418,  414,  407, 3978, 3979, 3979, 3979,  406,  402,  395,
4571      3979, 3980, 3980, 3980,  394,  393,  389, 3980, 3981, 3981,
4572      3981,  383,  382,  381, 3981, 3982, 3982, 3982,  377,  371,
4573       367, 3982, 3983, 3983, 3983,  363,  359,  358, 3983, 3984,
4574      3984, 3984,  357,  356,  355, 3984, 3985, 3985, 3985,  351,
4575       342,  341, 3985, 3986, 3986, 3986,  337,  333,  329, 3986,
4576      3987, 3987, 3987,  325,  324,  320, 3987, 3988, 3988, 3988,
4577       317,  316,  315, 3988, 3989, 3989, 3989,  309,  308,  306,
4578
4579      3989, 3990, 3990, 3990,  303,  291,    0, 3990, 3991, 3991,
4580      3991,    0,    0,    0, 3991, 3992, 3992, 3992,    0,    0,
4581         0, 3992, 3993, 3993, 3993,    0,    0,    0, 3993, 3994,
4582      3994, 3994,    0,    0,    0, 3994, 3995, 3995, 3995,    0,
4583         0,    0, 3995, 3996, 3996, 3996,    0,    0,    0, 3996,
4584      3997, 3997, 3997,    0,    0,    0, 3997, 3998, 3998, 3998,
4585         0,    0,    0, 3998, 3999, 3999, 3999,    0,    0,    0,
4586      3999, 4000, 4000, 4000,    0,    0,    0, 4000, 4001, 4001,
4587      4001,    0,    0,    0, 4001, 4002, 4002, 4002,    0,    0,
4588         0, 4002, 4003, 4003, 4003,    0,    0,    0, 4003, 4004,
4589
4590      4004, 4004,    0,    0,    0, 4004, 4005, 4005, 4005,    0,
4591         0,    0, 4005, 4006, 4006, 4006, 4006, 4006, 4006, 4006,
4592         0, 4006, 4007, 4007, 4007,    0,    0,    0, 4007, 4008,
4593         0,    0,    0, 4008, 4009, 4009, 4009,    0,    0,    0,
4594      4009, 4010,    0,    0,    0, 4010, 4011, 4011, 4011,    0,
4595         0,    0, 4011, 4012,    0,    0,    0, 4012, 4013, 4013,
4596      4013,    0,    0,    0, 4013, 4014,    0,    0,    0, 4014,
4597      4015, 4015, 4015,    0,    0,    0, 4015, 4016,    0,    0,
4598         0, 4016, 4017, 4017, 4017,    0,    0,    0, 4017, 4018,
4599         0,    0,    0, 4018, 4019, 4019, 4019,    0,    0,    0,
4600
4601      4019, 4020,    0,    0,    0, 4020, 4021, 4021, 4021,    0,
4602         0,    0, 4021, 4022,    0,    0,    0, 4022, 4023, 4023,
4603      4023,    0,    0,    0, 4023, 4024,    0,    0,    0, 4024,
4604      4025, 4025, 4025,    0,    0,    0, 4025, 4026,    0,    0,
4605         0, 4026, 4027, 4027, 4027,    0,    0,    0, 4027, 4028,
4606         0,    0,    0, 4028, 4029, 4029, 4029,    0,    0,    0,
4607      4029, 4030,    0,    0,    0, 4030, 4031, 4031, 4031,    0,
4608         0,    0, 4031, 4032,    0,    0,    0, 4032, 4033, 4033,
4609      4033,    0,    0,    0, 4033, 4034,    0,    0,    0, 4034,
4610      4035, 4035, 4035,    0,    0,    0, 4035, 4036,    0,    0,
4611
4612         0, 4036, 4037, 4037, 4037,    0,    0,    0, 4037, 4038,
4613         0,    0,    0, 4038, 4039, 4039, 4039,    0,    0,    0,
4614      4039, 4040,    0,    0,    0, 4040, 4041, 4041, 4041,    0,
4615         0,    0, 4041, 4042,    0,    0,    0, 4042, 4043, 4043,
4616      4043,    0,    0,    0, 4043, 4044,    0,    0,    0, 4044,
4617      4045, 4045, 4045,    0,    0,    0, 4045, 4046,    0,    0,
4618         0, 4046, 4047, 4047, 4047,    0,    0,    0, 4047, 4048,
4619         0,    0,    0, 4048, 4049, 4049, 4049,    0,    0,    0,
4620      4049, 4050,    0,    0,    0, 4050, 4051, 4051, 4051,    0,
4621         0,    0, 4051, 4052,    0,    0,    0, 4052, 4053, 4053,
4622
4623      4053,    0,    0,    0, 4053, 4054,    0,    0,    0, 4054,
4624      4055, 4055, 4055,    0,    0,    0, 4055, 4056,    0,    0,
4625         0, 4056, 4057, 4057, 4057,    0,    0,    0, 4057, 4058,
4626         0,    0,    0, 4058, 4059, 4059, 4059,    0,    0,    0,
4627      4059, 4060,    0,    0,    0, 4060, 4061, 4061, 4061,    0,
4628         0,    0, 4061, 4062,    0,    0,    0, 4062, 4063, 4063,
4629      4063,    0,    0,    0, 4063, 4064,    0,    0,    0, 4064,
4630      4065, 4065, 4065,    0,    0,    0, 4065, 4066,    0,    0,
4631         0, 4066, 4067, 4067, 4067,    0,    0,    0, 4067, 4068,
4632         0,    0,    0, 4068, 4069, 4069, 4069, 4069, 4069, 4069,
4633
4634      4069, 4069, 4069, 4070,    0,    0,    0,    0, 4070, 4071,
4635      4071, 4071,    0,    0,    0, 4071, 4072, 4072, 4072, 4072,
4636         0,    0, 4072, 4072, 4073, 4073, 4073, 4073,    0, 4073,
4637         0, 4073, 4074, 4074, 4074, 4074,    0,    0, 4074, 4074,
4638      4075, 4075, 4075,    0,    0,    0, 4075, 4076, 4076, 4076,
4639      4076,    0,    0, 4076, 4076, 4077, 4077, 4077,    0,    0,
4640         0, 4077, 4078, 4078, 4078, 4078,    0,    0, 4078, 4078,
4641      4079, 4079, 4079,    0,    0,    0, 4079, 4080, 4080, 4080,
4642      4080,    0,    0, 4080, 4080, 4081, 4081, 4081, 4081,    0,
4643      4081,    0, 4081, 4082, 4082, 4082, 4082,    0,    0, 4082,
4644
4645      4082, 4083, 4083, 4083, 4083,    0, 4083,    0, 4083, 4084,
4646      4084, 4084, 4084,    0,    0, 4084, 4084, 4085, 4085, 4085,
4647      4085,    0, 4085,    0, 4085, 4086, 4086, 4086, 4086,    0,
4648         0, 4086, 4086, 4087, 4087, 4087, 4087,    0, 4087,    0,
4649      4087, 4088, 4088, 4088, 4088,    0,    0, 4088, 4088, 4089,
4650      4089, 4089,    0,    0,    0, 4089, 4090, 4090, 4090, 4090,
4651         0,    0, 4090, 4090, 4091, 4091, 4091, 4091,    0,    0,
4652      4091, 4091, 4092, 4092, 4092,    0,    0,    0, 4092, 4093,
4653      4093, 4093, 4093,    0,    0, 4093, 4093, 4094, 4094, 4094,
4654         0,    0,    0, 4094, 4095, 4095, 4095, 4095,    0,    0,
4655
4656      4095, 4095, 4096, 4096, 4096,    0,    0,    0, 4096, 4097,
4657      4097, 4097, 4097,    0,    0, 4097, 4097, 4098, 4098, 4098,
4658         0,    0,    0, 4098, 4099, 4099, 4099, 4099,    0,    0,
4659      4099, 4099, 4100, 4100, 4100,    0,    0,    0, 4100, 4101,
4660      4101, 4101, 4101,    0,    0, 4101, 4101, 4102, 4102, 4102,
4661         0,    0,    0, 4102, 4103, 4103, 4103, 4103,    0,    0,
4662      4103, 4103, 4104, 4104, 4104,    0,    0,    0, 4104, 4105,
4663      4105, 4105, 4105,    0,    0, 4105, 4105, 4106, 4106, 4106,
4664         0,    0,    0, 4106, 4107, 4107, 4107, 4107,    0,    0,
4665      4107, 4107, 4108, 4108, 4108,    0,    0,    0, 4108, 4109,
4666
4667      4109, 4109, 4109,    0,    0, 4109, 4109, 4110, 4110, 4110,
4668         0,    0,    0, 4110, 4111, 4111, 4111, 4111,    0,    0,
4669      4111, 4111, 4112, 4112, 4112,    0,    0,    0, 4112, 4113,
4670      4113, 4113, 4113,    0,    0, 4113, 4113, 4114, 4114, 4114,
4671         0,    0,    0, 4114, 4115, 4115, 4115, 4115,    0,    0,
4672      4115, 4115, 4116, 4116, 4116, 4116,    0, 4116,    0, 4116,
4673      4117, 4117, 4117, 4117,    0,    0, 4117, 4117, 4118, 4118,
4674      4118,    0,    0,    0, 4118, 4119, 4119, 4119, 4119,    0,
4675         0, 4119, 4119, 4120, 4120, 4120,    0,    0,    0, 4120,
4676      4121, 4121, 4121, 4121,    0,    0, 4121, 4121, 4122, 4122,
4677
4678      4122,    0,    0,    0, 4122, 4123, 4123, 4123, 4123,    0,
4679         0, 4123, 4123, 4124, 4124, 4124,    0,    0,    0, 4124,
4680      4125, 4125, 4125, 4125,    0,    0, 4125, 4125, 4126, 4126,
4681      4126,    0,    0,    0, 4126, 4127, 4127, 4127, 4127,    0,
4682         0, 4127, 4127, 4128, 4128, 4128,    0,    0,    0, 4128,
4683      4129, 4129, 4129, 4129,    0,    0, 4129, 4129, 4130, 4130,
4684      4130, 4130,    0, 4130,    0, 4130, 4131, 4131, 4131, 4131,
4685         0,    0, 4131, 4131, 4132, 4132, 4132, 4132, 4132, 4132,
4686      4132, 4132, 4132, 4133,    0, 4133,    0,    0, 4133, 4134,
4687      4134, 4134,    0,    0,    0, 4134, 4135, 4135, 4135, 4135,
4688
4689         0,    0, 4135, 4135, 4136, 4136, 4136,    0,    0,    0,
4690      4136, 4137, 4137, 4137, 4137,    0,    0, 4137, 4137, 4138,
4691      4138, 4138,    0,    0,    0, 4138, 4139, 4139, 4139, 4139,
4692         0,    0, 4139, 4139, 4140, 4140, 4140,    0,    0,    0,
4693      4140, 4141, 4141, 4141, 4141,    0,    0, 4141, 4141, 4142,
4694      4142, 4142,    0,    0,    0, 4142, 4143, 4143, 4143, 4143,
4695         0,    0, 4143, 4143, 4144, 4144, 4144,    0,    0,    0,
4696      4144, 4145, 4145, 4145, 4145,    0,    0, 4145, 4145, 4146,
4697      4146, 4146, 4146,    0,    0, 4146, 4146, 4147, 4147, 4147,
4698         0,    0,    0, 4147, 4148, 4148, 4148, 4148,    0,    0,
4699
4700      4148, 4148, 4149, 4149, 4149,    0,    0,    0, 4149, 4150,
4701      4150, 4150, 4150,    0,    0, 4150, 4150, 4151, 4151, 4151,
4702         0,    0,    0, 4151, 4152, 4152, 4152, 4152,    0,    0,
4703      4152, 4152, 4153, 4153, 4153, 4153,    0,    0, 4153, 4153,
4704      4154, 4154, 4154,    0,    0,    0, 4154, 4155, 4155, 4155,
4705      4155,    0,    0, 4155, 4155, 4156, 4156, 4156, 4156,    0,
4706      4156,    0, 4156, 4157, 4157, 4157, 4157,    0,    0, 4157,
4707      4157, 4158, 4158, 4158, 4158,    0, 4158,    0, 4158, 4159,
4708      4159, 4159, 4159,    0,    0, 4159, 4159, 4160, 4160, 4160,
4709         0,    0,    0, 4160, 4161, 4161, 4161, 4161,    0,    0,
4710
4711      4161, 4161, 4162, 4162, 4162,    0,    0,    0, 4162, 4163,
4712      4163, 4163, 4163,    0,    0, 4163, 4163, 4164, 4164, 4164,
4713         0,    0,    0, 4164, 4165, 4165, 4165, 4165,    0,    0,
4714      4165, 4165, 4166, 4166, 4166, 4166,    0, 4166,    0, 4166,
4715      4167, 4167, 4167, 4167,    0,    0, 4167, 4167, 4168, 4168,
4716      4168,    0,    0,    0, 4168, 4169, 4169, 4169, 4169,    0,
4717         0, 4169, 4169, 4170, 4170, 4170,    0,    0,    0, 4170,
4718      4171, 4171, 4171, 4171,    0,    0, 4171, 4171, 4172, 4172,
4719      4172,    0,    0,    0, 4172, 4173, 4173, 4173, 4173,    0,
4720         0, 4173, 4173, 4174, 4174, 4174,    0,    0,    0, 4174,
4721
4722      4175, 4175, 4175, 4175,    0,    0, 4175, 4175, 4176, 4176,
4723      4176,    0,    0,    0, 4176, 4177, 4177, 4177, 4177,    0,
4724         0, 4177, 4177, 4178, 4178, 4178,    0,    0,    0, 4178,
4725      4179, 4179, 4179, 4179,    0,    0, 4179, 4179, 4180, 4180,
4726      4180,    0,    0,    0, 4180, 4181, 4181, 4181, 4181,    0,
4727         0, 4181, 4181, 4182, 4182, 4182,    0,    0,    0, 4182,
4728      4183, 4183, 4183, 4183,    0,    0, 4183, 4183, 4184, 4184,
4729      4184,    0,    0,    0, 4184, 4185, 4185, 4185, 4185,    0,
4730         0, 4185, 4185, 4186, 4186, 4186, 4186,    0, 4186,    0,
4731      4186, 4187, 4187, 4187, 4187,    0,    0, 4187, 4187, 4188,
4732
4733      4188, 4188,    0,    0,    0, 4188, 4189, 4189, 4189, 4189,
4734         0,    0, 4189, 4189, 4190, 4190, 4190,    0,    0,    0,
4735      4190, 4191, 4191, 4191, 4191,    0,    0, 4191, 4191, 4192,
4736      4192, 4192,    0,    0,    0, 4192, 4193, 4193, 4193, 4193,
4737         0,    0, 4193, 4193, 4194, 4194, 4194, 4194, 4194, 4194,
4738      4194, 4194, 4194, 4195, 4195, 4195, 4195, 4195, 4195, 4195,
4739      4195, 4195, 4196, 4196, 4196,    0,    0,    0, 4196, 4197,
4740      4197, 4197,    0,    0,    0, 4197, 4198, 4198, 4198, 4198,
4741         0,    0, 4198, 4198, 4199, 4199, 4199,    0,    0,    0,
4742      4199, 4200, 4200, 4200, 4200,    0,    0, 4200, 4200, 4201,
4743
4744      4201, 4201, 4201,    0, 4201,    0, 4201, 4202, 4202, 4202,
4745      4202,    0,    0, 4202, 4202, 4203, 4203, 4203,    0,    0,
4746         0, 4203, 4204, 4204, 4204, 4204,    0,    0, 4204, 4204,
4747      4205, 4205, 4205,    0,    0,    0, 4205, 4206, 4206, 4206,
4748      4206,    0,    0, 4206, 4206, 4207, 4207, 4207, 4207,    0,
4749         0, 4207, 4207, 4208, 4208, 4208,    0,    0,    0, 4208,
4750      4209, 4209, 4209, 4209,    0,    0, 4209, 4209, 4210, 4210,
4751      4210,    0,    0,    0, 4210, 4211, 4211, 4211, 4211,    0,
4752         0, 4211, 4211, 4212, 4212, 4212, 4212,    0, 4212,    0,
4753      4212, 4213, 4213, 4213, 4213,    0,    0, 4213, 4213, 4214,
4754
4755      4214, 4214, 4214,    0,    0, 4214, 4214, 4215, 4215, 4215,
4756         0,    0,    0, 4215, 4216, 4216, 4216, 4216,    0,    0,
4757      4216, 4216, 4217, 4217, 4217, 4217,    0,    0, 4217, 4217,
4758      4218, 4218, 4218, 4218,    0,    0, 4218, 4218, 4219, 4219,
4759      4219,    0,    0,    0, 4219, 4220, 4220, 4220, 4220,    0,
4760         0, 4220, 4220, 4221, 4221, 4221,    0,    0,    0, 4221,
4761      4222, 4222, 4222, 4222,    0,    0, 4222, 4222, 4223, 4223,
4762      4223, 4223,    0, 4223,    0, 4223, 4224, 4224, 4224, 4224,
4763         0,    0, 4224, 4224, 4225, 4225, 4225,    0,    0,    0,
4764      4225, 4226, 4226, 4226, 4226,    0,    0, 4226, 4226, 4227,
4765
4766      4227, 4227,    0,    0,    0, 4227, 4228, 4228, 4228, 4228,
4767         0,    0, 4228, 4228, 4229, 4229, 4229,    0,    0,    0,
4768      4229, 4230, 4230, 4230, 4230,    0,    0, 4230, 4230, 4231,
4769      4231, 4231,    0,    0,    0, 4231, 4232, 4232, 4232, 4232,
4770         0,    0, 4232, 4232, 4233, 4233, 4233, 4233,    0, 4233,
4771         0, 4233, 4234, 4234, 4234, 4234,    0,    0, 4234, 4234,
4772      4235, 4235, 4235,    0,    0,    0, 4235, 4236, 4236, 4236,
4773      4236,    0,    0, 4236, 4236, 4237, 4237, 4237,    0,    0,
4774         0, 4237, 4238, 4238, 4238, 4238,    0,    0, 4238, 4238,
4775      4239, 4239, 4239,    0,    0,    0, 4239, 4240, 4240, 4240,
4776
4777      4240,    0,    0, 4240, 4240, 4241, 4241, 4241,    0,    0,
4778         0, 4241, 4242, 4242, 4242, 4242,    0,    0, 4242, 4242,
4779      4243, 4243, 4243,    0,    0,    0, 4243, 4244, 4244, 4244,
4780      4244,    0,    0, 4244, 4244, 4245, 4245, 4245,    0,    0,
4781         0, 4245, 4246, 4246, 4246, 4246,    0,    0, 4246, 4246,
4782      4247, 4247, 4247,    0,    0,    0, 4247, 4248, 4248, 4248,
4783      4248,    0,    0, 4248, 4248, 4249, 4249, 4249,    0,    0,
4784         0, 4249, 4250, 4250, 4250, 4250,    0,    0, 4250, 4250,
4785      4251, 4251, 4251,    0,    0,    0, 4251, 4252, 4252, 4252,
4786      4252,    0,    0, 4252, 4252, 4253, 4253, 4253, 4253, 4253,
4787
4788      4253, 4253, 4253, 4253, 4254, 4254, 4254, 4254, 4254, 4254,
4789      4254, 4254, 4254, 4255, 4255, 4255,    0,    0,    0, 4255,
4790      4256, 4256, 4256, 4256,    0, 4256,    0, 4256, 4257, 4257,
4791      4257, 4257,    0,    0, 4257, 4257, 4258, 4258, 4258,    0,
4792         0,    0, 4258, 4259, 4259, 4259, 4259,    0,    0, 4259,
4793      4259, 4260, 4260, 4260, 4260,    0,    0, 4260, 4260, 4261,
4794      4261, 4261,    0,    0,    0, 4261, 4262, 4262, 4262, 4262,
4795         0,    0, 4262, 4262, 4263, 4263, 4263, 4263,    0, 4263,
4796         0, 4263, 4264, 4264, 4264, 4264,    0,    0, 4264, 4264,
4797      4265, 4265, 4265, 4265,    0,    0, 4265, 4265, 4266, 4266,
4798
4799      4266, 4266,    0, 4266,    0, 4266, 4267, 4267, 4267, 4267,
4800         0,    0, 4267, 4267, 4268, 4268, 4268, 4268,    0, 4268,
4801         0, 4268, 4269, 4269, 4269, 4269,    0,    0, 4269, 4269,
4802      4270, 4270, 4270, 4270,    0, 4270,    0, 4270, 4271, 4271,
4803      4271, 4271,    0,    0, 4271, 4271, 4272, 4272, 4272, 4272,
4804         0,    0, 4272, 4272, 4273, 4273, 4273,    0,    0,    0,
4805      4273, 4274, 4274, 4274, 4274,    0,    0, 4274, 4274, 4275,
4806      4275, 4275, 4275,    0,    0, 4275, 4275, 4276, 4276, 4276,
4807      4276,    0,    0, 4276, 4276, 4277, 4277, 4277,    0,    0,
4808         0, 4277, 4278, 4278, 4278, 4278,    0,    0, 4278, 4278,
4809
4810      4279, 4279, 4279,    0,    0,    0, 4279, 4280, 4280, 4280,
4811      4280,    0,    0, 4280, 4280, 4281, 4281, 4281, 4281,    0,
4812         0, 4281, 4281, 4282, 4282, 4282,    0,    0,    0, 4282,
4813      4283, 4283, 4283, 4283,    0,    0, 4283, 4283, 4284, 4284,
4814      4284,    0,    0,    0, 4284, 4285, 4285, 4285, 4285,    0,
4815         0, 4285, 4285, 4286, 4286, 4286,    0,    0,    0, 4286,
4816      4287, 4287, 4287, 4287,    0,    0, 4287, 4287, 4288, 4288,
4817      4288,    0,    0,    0, 4288, 4289, 4289, 4289, 4289,    0,
4818         0, 4289, 4289, 4290, 4290, 4290, 4290,    0,    0, 4290,
4819      4290, 4291, 4291, 4291,    0,    0,    0, 4291, 4292, 4292,
4820
4821      4292, 4292,    0,    0, 4292, 4292, 4293, 4293, 4293,    0,
4822         0,    0, 4293, 4294, 4294, 4294, 4294,    0,    0, 4294,
4823      4294, 4295, 4295, 4295,    0,    0,    0, 4295, 4296, 4296,
4824      4296, 4296,    0,    0, 4296, 4296, 4297, 4297, 4297, 4297,
4825         0, 4297,    0, 4297, 4298, 4298, 4298, 4298,    0,    0,
4826      4298, 4298, 4299, 4299, 4299,    0,    0,    0, 4299, 4300,
4827      4300, 4300, 4300,    0,    0, 4300, 4300, 4301, 4301, 4301,
4828         0,    0,    0, 4301, 4302, 4302, 4302, 4302,    0,    0,
4829      4302, 4302, 4303, 4303, 4303,    0,    0,    0, 4303, 4304,
4830      4304, 4304, 4304,    0,    0, 4304, 4304, 4305, 4305, 4305,
4831
4832         0,    0,    0, 4305, 4306, 4306, 4306, 4306,    0,    0,
4833      4306, 4306, 4307, 4307, 4307, 4307,    0, 4307,    0, 4307,
4834      4308, 4308, 4308, 4308,    0,    0, 4308, 4308, 4309, 4309,
4835      4309, 4309, 4309, 4309, 4309, 4309, 4309, 4310, 4310, 4310,
4836      4310, 4310, 4310, 4310, 4310, 4310, 4311, 4311, 4311, 4311,
4837         0, 4311,    0, 4311, 4312, 4312, 4312,    0,    0,    0,
4838      4312, 4313, 4313, 4313, 4313,    0,    0, 4313, 4313, 4314,
4839      4314, 4314,    0,    0,    0, 4314, 4315, 4315, 4315, 4315,
4840         0,    0, 4315, 4315, 4316, 4316, 4316, 4316,    0,    0,
4841      4316, 4316, 4317, 4317, 4317,    0,    0,    0, 4317, 4318,
4842
4843      4318, 4318, 4318,    0,    0, 4318, 4318, 4319, 4319, 4319,
4844      4319,    0,    0, 4319, 4319, 4320, 4320, 4320, 4320,    0,
4845         0, 4320, 4320, 4321, 4321, 4321, 4321,    0,    0, 4321,
4846      4321, 4322, 4322, 4322, 4322,    0, 4322,    0, 4322, 4323,
4847      4323, 4323, 4323,    0,    0, 4323, 4323, 4324, 4324, 4324,
4848         0,    0,    0, 4324, 4325, 4325, 4325, 4325,    0,    0,
4849      4325, 4325, 4326, 4326, 4326, 4326,    0,    0, 4326, 4326,
4850      4327, 4327, 4327,    0,    0,    0, 4327, 4328, 4328, 4328,
4851      4328,    0,    0, 4328, 4328, 4329, 4329, 4329, 4329,    0,
4852         0, 4329, 4329, 4330, 4330, 4330,    0,    0,    0, 4330,
4853
4854      4331, 4331, 4331,    0,    0,    0, 4331, 4332, 4332, 4332,
4855      4332,    0,    0, 4332, 4332, 4333, 4333, 4333, 4333,    0,
4856         0, 4333, 4333, 4334, 4334, 4334,    0,    0,    0, 4334,
4857      4335, 4335, 4335, 4335,    0,    0, 4335, 4335, 4336, 4336,
4858      4336,    0,    0,    0, 4336, 4337, 4337, 4337, 4337,    0,
4859      4337,    0, 4337, 4338, 4338, 4338, 4338,    0,    0, 4338,
4860      4338, 4339, 4339, 4339,    0,    0,    0, 4339, 4340, 4340,
4861      4340, 4340,    0,    0, 4340, 4340, 4341, 4341, 4341,    0,
4862         0,    0, 4341, 4342, 4342, 4342, 4342,    0,    0, 4342,
4863      4342, 4343, 4343, 4343,    0,    0,    0, 4343, 4344, 4344,
4864
4865      4344, 4344,    0,    0, 4344, 4344, 4345, 4345, 4345,    0,
4866         0,    0, 4345, 4346, 4346, 4346, 4346,    0,    0, 4346,
4867      4346, 4347, 4347, 4347, 4347,    0, 4347,    0, 4347, 4348,
4868      4348, 4348, 4348,    0,    0, 4348, 4348, 4349, 4349, 4349,
4869      4349,    0, 4349,    0, 4349, 4350, 4350, 4350, 4350,    0,
4870         0, 4350, 4350, 4351, 4351, 4351,    0,    0,    0, 4351,
4871      4352, 4352, 4352, 4352,    0,    0, 4352, 4352, 4353, 4353,
4872      4353, 4353,    0, 4353,    0, 4353, 4354, 4354, 4354, 4354,
4873         0,    0, 4354, 4354, 4355, 4355, 4355, 4355,    0, 4355,
4874         0, 4355, 4356, 4356, 4356,    0,    0,    0, 4356, 4357,
4875
4876      4357, 4357, 4357,    0,    0, 4357, 4357, 4358, 4358, 4358,
4877      4358, 4358, 4358, 4358, 4358, 4358, 4359, 4359, 4359, 4359,
4878      4359, 4359, 4359, 4359, 4359, 4360, 4360, 4360,    0,    0,
4879         0, 4360, 4361, 4361, 4361, 4361,    0,    0, 4361, 4361,
4880      4362, 4362, 4362, 4362,    0, 4362,    0, 4362, 4363, 4363,
4881      4363, 4363,    0,    0, 4363, 4363, 4364, 4364, 4364,    0,
4882         0,    0, 4364, 4365, 4365, 4365, 4365,    0,    0, 4365,
4883      4365, 4366, 4366, 4366, 4366,    0,    0, 4366, 4366, 4367,
4884      4367, 4367, 4367,    0,    0, 4367, 4367, 4368, 4368, 4368,
4885      4368,    0,    0, 4368, 4368, 4369, 4369, 4369, 4369,    0,
4886
4887         0, 4369, 4369, 4370, 4370, 4370,    0,    0,    0, 4370,
4888      4371, 4371, 4371, 4371,    0,    0, 4371, 4371, 4372, 4372,
4889      4372, 4372,    0,    0, 4372, 4372, 4373, 4373, 4373,    0,
4890         0,    0, 4373, 4374, 4374, 4374, 4374,    0,    0, 4374,
4891      4374, 4375, 4375, 4375, 4375,    0,    0, 4375, 4375, 4376,
4892      4376, 4376,    0,    0,    0, 4376, 4377, 4377, 4377,    0,
4893         0,    0, 4377, 4378, 4378, 4378, 4378,    0,    0, 4378,
4894      4378, 4379, 4379, 4379, 4379,    0,    0, 4379, 4379, 4380,
4895      4380, 4380,    0,    0,    0, 4380, 4381, 4381, 4381,    0,
4896         0,    0, 4381, 4382, 4382, 4382, 4382,    0,    0, 4382,
4897
4898      4382, 4383, 4383, 4383, 4383,    0, 4383,    0, 4383, 4384,
4899      4384, 4384, 4384,    0,    0, 4384, 4384, 4385, 4385, 4385,
4900         0,    0,    0, 4385, 4386, 4386, 4386, 4386,    0,    0,
4901      4386, 4386, 4387, 4387, 4387,    0,    0,    0, 4387, 4388,
4902      4388, 4388,    0,    0,    0, 4388, 4389, 4389, 4389, 4389,
4903         0,    0, 4389, 4389, 4390, 4390, 4390,    0,    0,    0,
4904      4390, 4391, 4391, 4391, 4391,    0,    0, 4391, 4391, 4392,
4905      4392, 4392,    0,    0,    0, 4392, 4393, 4393, 4393, 4393,
4906         0,    0, 4393, 4393, 4394, 4394, 4394,    0,    0,    0,
4907      4394, 4395, 4395, 4395, 4395,    0,    0, 4395, 4395, 4396,
4908
4909      4396, 4396,    0,    0,    0, 4396, 4397, 4397, 4397, 4397,
4910         0,    0, 4397, 4397, 4398, 4398, 4398, 4398, 4398, 4398,
4911      4398, 4398, 4398, 4399, 4399, 4399, 4399, 4399, 4399, 4399,
4912      4399, 4399, 4400, 4400, 4400,    0,    0,    0, 4400, 4401,
4913      4401, 4401, 4401,    0,    0, 4401, 4401, 4402, 4402, 4402,
4914      4402,    0, 4402,    0, 4402, 4403, 4403, 4403, 4403,    0,
4915         0, 4403, 4403, 4404, 4404, 4404, 4404,    0, 4404,    0,
4916      4404, 4405, 4405, 4405, 4405,    0,    0, 4405, 4405, 4406,
4917      4406, 4406, 4406,    0,    0, 4406, 4406, 4407, 4407, 4407,
4918      4407,    0,    0, 4407, 4407, 4408, 4408, 4408, 4408,    0,
4919
4920         0, 4408, 4408, 4409, 4409, 4409, 4409,    0,    0, 4409,
4921      4409, 4410, 4410, 4410,    0,    0,    0, 4410, 4411, 4411,
4922      4411, 4411,    0,    0, 4411, 4411, 4412, 4412, 4412,    0,
4923         0,    0, 4412, 4413, 4413, 4413, 4413,    0,    0, 4413,
4924      4413, 4414, 4414, 4414, 4414,    0,    0, 4414, 4414, 4415,
4925      4415, 4415, 4415,    0, 4415,    0, 4415, 4416, 4416, 4416,
4926      4416,    0, 4416,    0, 4416, 4417, 4417, 4417, 4417,    0,
4927         0, 4417, 4417, 4418, 4418, 4418, 4418,    0,    0, 4418,
4928      4418, 4419, 4419, 4419, 4419,    0, 4419,    0, 4419, 4420,
4929      4420, 4420,    0,    0,    0, 4420, 4421, 4421, 4421, 4421,
4930
4931         0,    0, 4421, 4421, 4422, 4422, 4422, 4422,    0, 4422,
4932         0, 4422, 4423, 4423, 4423, 4423,    0,    0, 4423, 4423,
4933      4424, 4424, 4424, 4424,    0, 4424,    0, 4424, 4425, 4425,
4934      4425,    0,    0,    0, 4425, 4426, 4426, 4426,    0,    0,
4935         0, 4426, 4427, 4427, 4427,    0,    0,    0, 4427, 4428,
4936      4428, 4428, 4428,    0,    0, 4428, 4428, 4429, 4429, 4429,
4937         0,    0,    0, 4429, 4430, 4430, 4430, 4430,    0,    0,
4938      4430, 4430, 4431, 4431, 4431,    0,    0,    0, 4431, 4432,
4939      4432, 4432, 4432,    0,    0, 4432, 4432, 4433, 4433, 4433,
4940         0,    0,    0, 4433, 4434, 4434, 4434, 4434,    0,    0,
4941
4942      4434, 4434, 4435, 4435, 4435, 4435, 4435, 4435, 4435, 4435,
4943      4435, 4436, 4436, 4436, 4436, 4436, 4436, 4436, 4436, 4436,
4944      4437, 4437, 4437,    0,    0,    0, 4437, 4438, 4438, 4438,
4945      4438,    0, 4438,    0, 4438, 4439, 4439, 4439, 4439,    0,
4946         0, 4439, 4439, 4440, 4440, 4440, 4440,    0,    0, 4440,
4947      4440, 4441, 4441, 4441, 4441,    0,    0, 4441, 4441, 4442,
4948      4442, 4442, 4442,    0,    0, 4442, 4442, 4443, 4443, 4443,
4949      4443,    0,    0, 4443, 4443, 4444, 4444, 4444,    0,    0,
4950         0, 4444, 4445, 4445, 4445,    0,    0,    0, 4445, 4446,
4951      4446, 4446, 4446,    0,    0, 4446, 4446, 4447, 4447, 4447,
4952
4953         0,    0,    0, 4447, 4448, 4448, 4448, 4448,    0,    0,
4954      4448, 4448, 4449, 4449, 4449, 4449,    0,    0, 4449, 4449,
4955      4450, 4450, 4450,    0,    0,    0, 4450, 4451, 4451, 4451,
4956      4451,    0,    0, 4451, 4451, 4452, 4452, 4452, 4452,    0,
4957      4452,    0, 4452, 4453, 4453, 4453,    0,    0,    0, 4453,
4958      4454, 4454, 4454,    0,    0,    0, 4454, 4455, 4455, 4455,
4959         0,    0,    0, 4455, 4456, 4456, 4456,    0,    0,    0,
4960      4456, 4457, 4457, 4457,    0,    0,    0, 4457, 4458, 4458,
4961      4458, 4458,    0,    0, 4458, 4458, 4459, 4459, 4459,    0,
4962         0,    0, 4459, 4460, 4460, 4460, 4460,    0,    0, 4460,
4963
4964      4460, 4461, 4461, 4461,    0,    0,    0, 4461, 4462, 4462,
4965      4462, 4462,    0,    0, 4462, 4462, 4463, 4463, 4463, 4463,
4966      4463, 4463, 4463, 4463, 4463, 4464, 4464, 4464, 4464, 4464,
4967      4464, 4464, 4464, 4464, 4465, 4465, 4465, 4465,    0, 4465,
4968         0, 4465, 4466, 4466, 4466, 4466, 4466, 4466, 4466, 4466,
4969      4466, 4467, 4467, 4467, 4467, 4467, 4467, 4467, 4467, 4467,
4970      4468, 4468, 4468, 4468, 4468, 4468, 4468, 4468, 4468, 4469,
4971      4469, 4469, 4469, 4469, 4469, 4469, 4469, 4469, 4470, 4470,
4972      4470, 4470, 4470, 4470, 4470, 4470, 4470, 4471, 4471, 4471,
4973      4471, 4471, 4471, 4471, 4471, 4471, 3905, 3905, 3905, 3905,
4974
4975      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
4976      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
4977      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
4978      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
4979      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
4980      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
4981      3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905, 3905,
4982      3905, 3905
4983     } ;
4984
4985 /* Table of booleans, true if rule could match eol. */
4986 static yyconst flex_int32_t yy_rule_can_match_eol[652] =
4987     {   0,
4988 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4989     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4990     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4991     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4992     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4993     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
4994     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 
4995     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4996     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4997     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4998     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4999     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5000     1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
5001     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
5002     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5003     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5004     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
5005     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
5006     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
5007     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
5008     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5009     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5010     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5011     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
5012     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
5013     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
5014     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
5015     0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 
5016     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
5017     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5018     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
5019     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 
5020     1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
5021
5022 static yy_state_type yy_last_accepting_state;
5023 static char *yy_last_accepting_cpos;
5024
5025 extern int surf_parse__flex_debug;
5026 int surf_parse__flex_debug = 0;
5027
5028 /* The intent behind this definition is that it'll catch
5029  * any uses of REJECT which flex missed.
5030  */
5031 #define REJECT reject_used_but_not_detected
5032 #define yymore() yymore_used_but_not_detected
5033 #define YY_MORE_ADJ 0
5034 #define YY_RESTORE_YY_MORE_OFFSET
5035 char *surf_parse_text;
5036 /* Validating XML processor for src/surf/xml/simgrid.dtd.
5037  *
5038  * This program was generated with the FleXML XML processor generator.
5039  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
5040  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
5041  * (1.9.6).
5042  * 
5043  * There are two, intertwined parts to this program, part A and part B.
5044  *
5045  * Part A
5046  * ------
5047  * 
5048  * Some parts, here collectively called "Part A", are found in the 
5049  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
5050  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
5051  *
5052  * You can redistribute, use, perform, display and/or modify "Part A"
5053  * provided the following two conditions hold:
5054  *
5055  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
5056  *    FleXML; without even the implied warranty of MERCHANTABILITY or
5057  *    FITNESS FOR A PARTICULAR PURPOSE.
5058  *
5059  * 2. The program distribution conditions do not in any way affect the
5060  *    distribution conditions of the FleXML system used to generate this
5061  *    file or any version of FleXML derived from that system.
5062  *
5063  * Notice that these are explicit rights granted to you for files
5064  * generated by the FleXML system.  For your rights in connection with
5065  * the FleXML system itself please consult the GNU General Public License.
5066  * 
5067  * Part B
5068  * ------
5069  * 
5070  * The other parts, here collectively called "Part B", and which came 
5071  * from the DTD used by FleXML to generate this program, can be 
5072  * distributed (or not, as the case may be) under the terms of whoever
5073  * wrote them, provided these terms respect and obey the two conditions 
5074  * above under the heading "Part A".
5075  *
5076  * The author of and contributors to FleXML specifically disclaim
5077  * any copyright interest in "Part B", unless "Part B" was written 
5078  * by the author of or contributors to FleXML.
5079  * 
5080  */
5081
5082 /* Version strings. */
5083 const char surfxml_flexml_version[] = "1.9.6";
5084
5085 /* ANSI headers. */
5086 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
5087 #include <stdio.h>
5088 #include <string.h>
5089 #include <assert.h>
5090 #include <stdarg.h>
5091 #include <ctype.h>
5092      
5093 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5094 # ifndef __STRICT_ANSI__
5095 #  include <io.h>
5096 #  include <process.h>
5097 # endif
5098 #else
5099 # include <unistd.h>
5100 #endif
5101      
5102 #ifndef FLEXML_INDEXSTACKSIZE
5103 #define FLEXML_INDEXSTACKSIZE 1000
5104 #endif
5105
5106 /* Generated definitions. */
5107 #define FLEXML_yylineno
5108 #ifndef FLEXML_BUFFERSTACKSIZE
5109 #define FLEXML_BUFFERSTACKSIZE 1000000
5110 #endif
5111 #define FLEXML_NEED_BUFFERLIT
5112
5113 /* XML processor api. */
5114 /* FleXML-provided data. */
5115 int surfxml_pcdata_ix;
5116 extern char *surfxml_bufferstack;
5117 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
5118 AT_surfxml_AS_id AX_surfxml_AS_id;
5119 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
5120 short int surfxml_AS_id_isset;
5121 AT_surfxml_AS_routing AX_surfxml_AS_routing;
5122 #define A_surfxml_AS_routing AX_surfxml_AS_routing
5123 short int surfxml_AS_routing_isset;
5124 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
5125 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
5126 short int surfxml_ASroute_dst_isset;
5127 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
5128 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
5129 short int surfxml_ASroute_gw___dst_isset;
5130 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
5131 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
5132 short int surfxml_ASroute_gw___src_isset;
5133 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
5134 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
5135 short int surfxml_ASroute_src_isset;
5136 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
5137 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
5138 short int surfxml_ASroute_symmetrical_isset;
5139 AT_surfxml_actor_function AX_surfxml_actor_function;
5140 #define A_surfxml_actor_function (surfxml_bufferstack + AX_surfxml_actor_function)
5141 short int surfxml_actor_function_isset;
5142 AT_surfxml_actor_host AX_surfxml_actor_host;
5143 #define A_surfxml_actor_host (surfxml_bufferstack + AX_surfxml_actor_host)
5144 short int surfxml_actor_host_isset;
5145 AT_surfxml_actor_kill___time AX_surfxml_actor_kill___time;
5146 #define A_surfxml_actor_kill___time (surfxml_bufferstack + AX_surfxml_actor_kill___time)
5147 short int surfxml_actor_kill___time_isset;
5148 AT_surfxml_actor_on___failure AX_surfxml_actor_on___failure;
5149 #define A_surfxml_actor_on___failure AX_surfxml_actor_on___failure
5150 short int surfxml_actor_on___failure_isset;
5151 AT_surfxml_actor_start___time AX_surfxml_actor_start___time;
5152 #define A_surfxml_actor_start___time (surfxml_bufferstack + AX_surfxml_actor_start___time)
5153 short int surfxml_actor_start___time_isset;
5154 AT_surfxml_argument_value AX_surfxml_argument_value;
5155 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
5156 short int surfxml_argument_value_isset;
5157 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
5158 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
5159 short int surfxml_backbone_bandwidth_isset;
5160 AT_surfxml_backbone_id AX_surfxml_backbone_id;
5161 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
5162 short int surfxml_backbone_id_isset;
5163 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
5164 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
5165 short int surfxml_backbone_latency_isset;
5166 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
5167 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
5168 short int surfxml_bypassASroute_dst_isset;
5169 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
5170 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
5171 short int surfxml_bypassASroute_gw___dst_isset;
5172 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
5173 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
5174 short int surfxml_bypassASroute_gw___src_isset;
5175 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
5176 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
5177 short int surfxml_bypassASroute_src_isset;
5178 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
5179 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
5180 short int surfxml_bypassRoute_dst_isset;
5181 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
5182 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
5183 short int surfxml_bypassRoute_src_isset;
5184 AT_surfxml_bypassZoneRoute_dst AX_surfxml_bypassZoneRoute_dst;
5185 #define A_surfxml_bypassZoneRoute_dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_dst)
5186 short int surfxml_bypassZoneRoute_dst_isset;
5187 AT_surfxml_bypassZoneRoute_gw___dst AX_surfxml_bypassZoneRoute_gw___dst;
5188 #define A_surfxml_bypassZoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___dst)
5189 short int surfxml_bypassZoneRoute_gw___dst_isset;
5190 AT_surfxml_bypassZoneRoute_gw___src AX_surfxml_bypassZoneRoute_gw___src;
5191 #define A_surfxml_bypassZoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_gw___src)
5192 short int surfxml_bypassZoneRoute_gw___src_isset;
5193 AT_surfxml_bypassZoneRoute_src AX_surfxml_bypassZoneRoute_src;
5194 #define A_surfxml_bypassZoneRoute_src (surfxml_bufferstack + AX_surfxml_bypassZoneRoute_src)
5195 short int surfxml_bypassZoneRoute_src_isset;
5196 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
5197 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
5198 short int surfxml_cabinet_bw_isset;
5199 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
5200 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
5201 short int surfxml_cabinet_id_isset;
5202 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
5203 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
5204 short int surfxml_cabinet_lat_isset;
5205 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
5206 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
5207 short int surfxml_cabinet_prefix_isset;
5208 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
5209 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
5210 short int surfxml_cabinet_radical_isset;
5211 AT_surfxml_cabinet_speed AX_surfxml_cabinet_speed;
5212 #define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
5213 short int surfxml_cabinet_speed_isset;
5214 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
5215 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
5216 short int surfxml_cabinet_suffix_isset;
5217 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
5218 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
5219 short int surfxml_cluster_bb___bw_isset;
5220 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
5221 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
5222 short int surfxml_cluster_bb___lat_isset;
5223 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
5224 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
5225 short int surfxml_cluster_bb___sharing___policy_isset;
5226 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
5227 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
5228 short int surfxml_cluster_bw_isset;
5229 AT_surfxml_cluster_core AX_surfxml_cluster_core;
5230 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
5231 short int surfxml_cluster_core_isset;
5232 AT_surfxml_cluster_id AX_surfxml_cluster_id;
5233 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
5234 short int surfxml_cluster_id_isset;
5235 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
5236 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
5237 short int surfxml_cluster_lat_isset;
5238 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
5239 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
5240 short int surfxml_cluster_limiter___link_isset;
5241 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
5242 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
5243 short int surfxml_cluster_loopback___bw_isset;
5244 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
5245 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
5246 short int surfxml_cluster_loopback___lat_isset;
5247 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
5248 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
5249 short int surfxml_cluster_prefix_isset;
5250 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
5251 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
5252 short int surfxml_cluster_radical_isset;
5253 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
5254 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
5255 short int surfxml_cluster_router___id_isset;
5256 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
5257 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
5258 short int surfxml_cluster_sharing___policy_isset;
5259 AT_surfxml_cluster_speed AX_surfxml_cluster_speed;
5260 #define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
5261 short int surfxml_cluster_speed_isset;
5262 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
5263 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
5264 short int surfxml_cluster_suffix_isset;
5265 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
5266 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
5267 short int surfxml_cluster_topo___parameters_isset;
5268 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
5269 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
5270 short int surfxml_cluster_topology_isset;
5271 AT_surfxml_config_id AX_surfxml_config_id;
5272 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
5273 short int surfxml_config_id_isset;
5274 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
5275 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
5276 short int surfxml_host_availability___file_isset;
5277 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
5278 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
5279 short int surfxml_host_coordinates_isset;
5280 AT_surfxml_host_core AX_surfxml_host_core;
5281 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
5282 short int surfxml_host_core_isset;
5283 AT_surfxml_host_id AX_surfxml_host_id;
5284 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
5285 short int surfxml_host_id_isset;
5286 AT_surfxml_host_pstate AX_surfxml_host_pstate;
5287 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
5288 short int surfxml_host_pstate_isset;
5289 AT_surfxml_host_speed AX_surfxml_host_speed;
5290 #define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
5291 short int surfxml_host_speed_isset;
5292 AT_surfxml_host_state___file AX_surfxml_host_state___file;
5293 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
5294 short int surfxml_host_state___file_isset;
5295 AT_surfxml_host___link_down AX_surfxml_host___link_down;
5296 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
5297 short int surfxml_host___link_down_isset;
5298 AT_surfxml_host___link_id AX_surfxml_host___link_id;
5299 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
5300 short int surfxml_host___link_id_isset;
5301 AT_surfxml_host___link_up AX_surfxml_host___link_up;
5302 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
5303 short int surfxml_host___link_up_isset;
5304 AT_surfxml_include_file AX_surfxml_include_file;
5305 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
5306 short int surfxml_include_file_isset;
5307 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
5308 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
5309 short int surfxml_link_bandwidth_isset;
5310 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
5311 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
5312 short int surfxml_link_bandwidth___file_isset;
5313 AT_surfxml_link_id AX_surfxml_link_id;
5314 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
5315 short int surfxml_link_id_isset;
5316 AT_surfxml_link_latency AX_surfxml_link_latency;
5317 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
5318 short int surfxml_link_latency_isset;
5319 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
5320 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
5321 short int surfxml_link_latency___file_isset;
5322 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
5323 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
5324 short int surfxml_link_sharing___policy_isset;
5325 AT_surfxml_link_state___file AX_surfxml_link_state___file;
5326 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
5327 short int surfxml_link_state___file_isset;
5328 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
5329 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
5330 short int surfxml_link___ctn_direction_isset;
5331 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
5332 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
5333 short int surfxml_link___ctn_id_isset;
5334 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
5335 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
5336 short int surfxml_model___prop_id_isset;
5337 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
5338 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
5339 short int surfxml_model___prop_value_isset;
5340 AT_surfxml_mount_name AX_surfxml_mount_name;
5341 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
5342 short int surfxml_mount_name_isset;
5343 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
5344 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
5345 short int surfxml_mount_storageId_isset;
5346 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
5347 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
5348 short int surfxml_peer_availability___file_isset;
5349 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
5350 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
5351 short int surfxml_peer_bw___in_isset;
5352 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
5353 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
5354 short int surfxml_peer_bw___out_isset;
5355 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
5356 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
5357 short int surfxml_peer_coordinates_isset;
5358 AT_surfxml_peer_id AX_surfxml_peer_id;
5359 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
5360 short int surfxml_peer_id_isset;
5361 AT_surfxml_peer_lat AX_surfxml_peer_lat;
5362 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
5363 short int surfxml_peer_lat_isset;
5364 AT_surfxml_peer_speed AX_surfxml_peer_speed;
5365 #define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
5366 short int surfxml_peer_speed_isset;
5367 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
5368 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
5369 short int surfxml_peer_state___file_isset;
5370 AT_surfxml_platform_version AX_surfxml_platform_version;
5371 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
5372 short int surfxml_platform_version_isset;
5373 AT_surfxml_process_function AX_surfxml_process_function;
5374 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
5375 short int surfxml_process_function_isset;
5376 AT_surfxml_process_host AX_surfxml_process_host;
5377 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
5378 short int surfxml_process_host_isset;
5379 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
5380 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
5381 short int surfxml_process_kill___time_isset;
5382 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
5383 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
5384 short int surfxml_process_on___failure_isset;
5385 AT_surfxml_process_start___time AX_surfxml_process_start___time;
5386 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
5387 short int surfxml_process_start___time_isset;
5388 AT_surfxml_prop_id AX_surfxml_prop_id;
5389 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
5390 short int surfxml_prop_id_isset;
5391 AT_surfxml_prop_value AX_surfxml_prop_value;
5392 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
5393 short int surfxml_prop_value_isset;
5394 AT_surfxml_random_generator AX_surfxml_random_generator;
5395 #define A_surfxml_random_generator AX_surfxml_random_generator
5396 short int surfxml_random_generator_isset;
5397 AT_surfxml_random_id AX_surfxml_random_id;
5398 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
5399 short int surfxml_random_id_isset;
5400 AT_surfxml_random_max AX_surfxml_random_max;
5401 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
5402 short int surfxml_random_max_isset;
5403 AT_surfxml_random_mean AX_surfxml_random_mean;
5404 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
5405 short int surfxml_random_mean_isset;
5406 AT_surfxml_random_min AX_surfxml_random_min;
5407 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
5408 short int surfxml_random_min_isset;
5409 AT_surfxml_random_radical AX_surfxml_random_radical;
5410 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
5411 short int surfxml_random_radical_isset;
5412 AT_surfxml_random_seed AX_surfxml_random_seed;
5413 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
5414 short int surfxml_random_seed_isset;
5415 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
5416 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
5417 short int surfxml_random_std___deviation_isset;
5418 AT_surfxml_route_dst AX_surfxml_route_dst;
5419 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
5420 short int surfxml_route_dst_isset;
5421 AT_surfxml_route_src AX_surfxml_route_src;
5422 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
5423 short int surfxml_route_src_isset;
5424 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
5425 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
5426 short int surfxml_route_symmetrical_isset;
5427 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
5428 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
5429 short int surfxml_router_coordinates_isset;
5430 AT_surfxml_router_id AX_surfxml_router_id;
5431 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
5432 short int surfxml_router_id_isset;
5433 AT_surfxml_storage_attach AX_surfxml_storage_attach;
5434 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
5435 short int surfxml_storage_attach_isset;
5436 AT_surfxml_storage_content AX_surfxml_storage_content;
5437 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
5438 short int surfxml_storage_content_isset;
5439 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
5440 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
5441 short int surfxml_storage_content___type_isset;
5442 AT_surfxml_storage_id AX_surfxml_storage_id;
5443 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
5444 short int surfxml_storage_id_isset;
5445 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
5446 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
5447 short int surfxml_storage_typeId_isset;
5448 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
5449 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
5450 short int surfxml_storage___type_content_isset;
5451 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
5452 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
5453 short int surfxml_storage___type_content___type_isset;
5454 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
5455 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
5456 short int surfxml_storage___type_id_isset;
5457 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
5458 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
5459 short int surfxml_storage___type_model_isset;
5460 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
5461 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
5462 short int surfxml_storage___type_size_isset;
5463 AT_surfxml_trace_file AX_surfxml_trace_file;
5464 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
5465 short int surfxml_trace_file_isset;
5466 AT_surfxml_trace_id AX_surfxml_trace_id;
5467 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
5468 short int surfxml_trace_id_isset;
5469 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
5470 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
5471 short int surfxml_trace_periodicity_isset;
5472 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
5473 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
5474 short int surfxml_trace___connect_element_isset;
5475 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
5476 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
5477 short int surfxml_trace___connect_kind_isset;
5478 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
5479 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
5480 short int surfxml_trace___connect_trace_isset;
5481 AT_surfxml_zone_id AX_surfxml_zone_id;
5482 #define A_surfxml_zone_id (surfxml_bufferstack + AX_surfxml_zone_id)
5483 short int surfxml_zone_id_isset;
5484 AT_surfxml_zone_routing AX_surfxml_zone_routing;
5485 #define A_surfxml_zone_routing AX_surfxml_zone_routing
5486 short int surfxml_zone_routing_isset;
5487 AT_surfxml_zoneRoute_dst AX_surfxml_zoneRoute_dst;
5488 #define A_surfxml_zoneRoute_dst (surfxml_bufferstack + AX_surfxml_zoneRoute_dst)
5489 short int surfxml_zoneRoute_dst_isset;
5490 AT_surfxml_zoneRoute_gw___dst AX_surfxml_zoneRoute_gw___dst;
5491 #define A_surfxml_zoneRoute_gw___dst (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___dst)
5492 short int surfxml_zoneRoute_gw___dst_isset;
5493 AT_surfxml_zoneRoute_gw___src AX_surfxml_zoneRoute_gw___src;
5494 #define A_surfxml_zoneRoute_gw___src (surfxml_bufferstack + AX_surfxml_zoneRoute_gw___src)
5495 short int surfxml_zoneRoute_gw___src_isset;
5496 AT_surfxml_zoneRoute_src AX_surfxml_zoneRoute_src;
5497 #define A_surfxml_zoneRoute_src (surfxml_bufferstack + AX_surfxml_zoneRoute_src)
5498 short int surfxml_zoneRoute_src_isset;
5499 AT_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical;
5500 #define A_surfxml_zoneRoute_symmetrical AX_surfxml_zoneRoute_symmetrical
5501 short int surfxml_zoneRoute_symmetrical_isset;
5502
5503 /* XML state. */
5504 #ifdef FLEX_DEBUG
5505 # define ENTER(state)   debug_enter(state,#state)
5506 # define LEAVE          debug_leave()
5507 # define SET(state)     debug_set(state,#state)
5508   static void debug_enter(int, const char*);
5509   static void debug_leave(void);
5510   static void debug_set(int, const char*);
5511 #else
5512 # define ENTER(state)   (yy_push_state(state))
5513 # define LEAVE          (yy_pop_state())
5514 # define SET(state)     BEGIN(state)
5515 #endif
5516
5517 /* Generic actions. */
5518 #define SKIP    /*skip*/
5519 #define SUCCEED        CLEANUP; return 0
5520
5521 #define FAIL    return fail
5522 static int fail(const char*, ...);
5523
5524 enum {flexml_max_err_msg_size = 512};
5525 static char flexml_err_msg[flexml_max_err_msg_size];
5526 const char * surfxml_parse_err_msg()
5527 {
5528     return flexml_err_msg;
5529 }
5530 static void reset_surfxml_parse_err_msg()
5531 {
5532     flexml_err_msg[0] = '\0';
5533 }
5534
5535 /* Cleanup */
5536 static void cleanup(void);
5537 #define CLEANUP  cleanup()
5538
5539 /* Text buffer stack handling. */
5540 char *surfxml_bufferstack = NULL;
5541 static int blimit = FLEXML_BUFFERSTACKSIZE;
5542 static int bnext = 1;
5543
5544 static int *indexstack = NULL;
5545 static int ilimit = FLEXML_INDEXSTACKSIZE;
5546 static int inext = 1;
5547
5548 #define BUFFERSET(P)  (P = bnext)
5549 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
5550 #define BUFFERDONE    (BUFFERPUTC('\0'))
5551
5552 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
5553
5554 /* after this is called, there are at least 2 slots left in the stack */
5555 static int ck_blimit()
5556 {
5557      if (bnext >= blimit) {
5558          blimit += FLEXML_BUFFERSTACKSIZE + 2;
5559          {
5560              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
5561              assert(temp);
5562              surfxml_bufferstack = temp;
5563          }
5564      }
5565      return 0;
5566 }
5567
5568 /* after this is called, there are at least 2 slots left in the stack */
5569 static int ck_ilimit()
5570 {
5571      if (inext >= ilimit) {
5572          ilimit += FLEXML_INDEXSTACKSIZE + 2;
5573          {
5574              int *temp = (int *) realloc(indexstack, ilimit);
5575              assert(temp);
5576              indexstack = temp;
5577          }
5578      }
5579      return 0;
5580 }
5581
5582 #ifdef FLEXML_NEED_BUFFERLIT
5583 static void surfxml_bufferliteral(char c, int* pp, const char* text)
5584 {
5585    BUFFERSET(*pp);
5586    if (c) {
5587       const char *s = strchr(text, c), *e = strrchr(text, c);
5588       assert(s && e && s <= e);
5589       ++s;
5590       while (s < e) {
5591          if (isspace(*s)) {
5592             BUFFERPUTC(' ');
5593             do ++s; while (s < e && isspace(*s));
5594          } else
5595            BUFFERPUTC(*s++);
5596       }
5597    } else {
5598       const char *s = text;
5599       while (*s)
5600         BUFFERPUTC(*s++);
5601    }
5602    BUFFERDONE;
5603 }
5604 #endif
5605
5606 static void pushbuffer(int p)
5607 {
5608     ck_ilimit();
5609     indexstack[inext++] = p;
5610     indexstack[inext++] = bnext;    
5611 }
5612
5613 static int popbuffer(void)
5614 {
5615     assert(inext >= 2);
5616     bnext = indexstack[--inext];
5617     return indexstack[--inext];
5618 }
5619
5620 /* General internal entities are `unput' back onto the input stream... */
5621 #define ENTITYTEXT(T) \
5622   { char *s = (T), *e = s+strlen(s);\
5623     while (--e >= s) { unput(*e); }}
5624
5625 /* Flex standard options. */
5626 #define YY_NO_INPUT 1
5627 /* Flex user-requested options. */
5628 /* XML character classes (currently restricted to ASCII). */
5629 /* "Common syntactic structures." */
5630 /* "Names and Tokens." */
5631 /* Miscellaneous. */
5632 /* Parser states (flex `exclusive start conditions'):
5633  *
5634  * PROLOG       the XML prolog of the document before <?xml...>
5635  * DOCTYPE      the XML prolog of the document after <?xml...>
5636  * EPILOG       after the root element
5637  * INCOMMENT    inside an XML comment <!--....-->
5638  * INPI         inside an XML PI <?...?>
5639  * VALUE1       inside a '...'-delimited literal
5640  * VALUE2       inside a "..."-delimited literal
5641  * CDATA        inside a <![CDATA[...] ]> section.
5642  * ROOT_<tag>   expect root element <tag>
5643  * AL_<tag>     inside the attribute list for <tag>
5644  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5645  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5646  */
5647
5648 /* State names. */
5649 const char* *surfxml_statenames=NULL;
5650
5651 #define INITIAL 0
5652 #define PROLOG 1
5653 #define DOCTYPE 2
5654 #define EPILOG 3
5655 #define INCOMMENT 4
5656 #define INPI 5
5657 #define VALUE1 6
5658 #define VALUE2 7
5659 #define CDATA 8
5660 #define AL_surfxml_AS 9
5661 #define S_surfxml_AS 10
5662 #define S_surfxml_AS_1 11
5663 #define S_surfxml_AS_2 12
5664 #define S_surfxml_AS_3 13
5665 #define S_surfxml_AS_4 14
5666 #define S_surfxml_AS_5 15
5667 #define S_surfxml_AS_6 16
5668 #define S_surfxml_AS_7 17
5669 #define S_surfxml_AS_8 18
5670 #define E_surfxml_AS 19
5671 #define AL_surfxml_ASroute 20
5672 #define S_surfxml_ASroute 21
5673 #define S_surfxml_ASroute_1 22
5674 #define S_surfxml_ASroute_2 23
5675 #define E_surfxml_ASroute 24
5676 #define AL_surfxml_actor 25
5677 #define S_surfxml_actor 26
5678 #define S_surfxml_actor_1 27
5679 #define S_surfxml_actor_2 28
5680 #define E_surfxml_actor 29
5681 #define AL_surfxml_argument 30
5682 #define E_surfxml_argument 31
5683 #define AL_surfxml_backbone 32
5684 #define E_surfxml_backbone 33
5685 #define AL_surfxml_bypassASroute 34
5686 #define S_surfxml_bypassASroute 35
5687 #define S_surfxml_bypassASroute_1 36
5688 #define S_surfxml_bypassASroute_2 37
5689 #define E_surfxml_bypassASroute 38
5690 #define AL_surfxml_bypassRoute 39
5691 #define S_surfxml_bypassRoute 40
5692 #define S_surfxml_bypassRoute_1 41
5693 #define S_surfxml_bypassRoute_2 42
5694 #define E_surfxml_bypassRoute 43
5695 #define AL_surfxml_bypassZoneRoute 44
5696 #define S_surfxml_bypassZoneRoute 45
5697 #define S_surfxml_bypassZoneRoute_1 46
5698 #define S_surfxml_bypassZoneRoute_2 47
5699 #define E_surfxml_bypassZoneRoute 48
5700 #define AL_surfxml_cabinet 49
5701 #define E_surfxml_cabinet 50
5702 #define AL_surfxml_cluster 51
5703 #define S_surfxml_cluster 52
5704 #define S_surfxml_cluster_1 53
5705 #define S_surfxml_cluster_2 54
5706 #define E_surfxml_cluster 55
5707 #define AL_surfxml_config 56
5708 #define S_surfxml_config 57
5709 #define S_surfxml_config_1 58
5710 #define S_surfxml_config_2 59
5711 #define E_surfxml_config 60
5712 #define AL_surfxml_host 61
5713 #define S_surfxml_host 62
5714 #define S_surfxml_host_1 63
5715 #define S_surfxml_host_2 64
5716 #define E_surfxml_host 65
5717 #define AL_surfxml_host___link 66
5718 #define E_surfxml_host___link 67
5719 #define AL_surfxml_include 68
5720 #define S_surfxml_include 69
5721 #define S_surfxml_include_1 70
5722 #define S_surfxml_include_2 71
5723 #define E_surfxml_include 72
5724 #define AL_surfxml_link 73
5725 #define S_surfxml_link 74
5726 #define S_surfxml_link_1 75
5727 #define S_surfxml_link_2 76
5728 #define E_surfxml_link 77
5729 #define AL_surfxml_link___ctn 78
5730 #define E_surfxml_link___ctn 79
5731 #define AL_surfxml_model___prop 80
5732 #define E_surfxml_model___prop 81
5733 #define AL_surfxml_mount 82
5734 #define E_surfxml_mount 83
5735 #define AL_surfxml_peer 84
5736 #define E_surfxml_peer 85
5737 #define ROOT_surfxml_platform 86
5738 #define AL_surfxml_platform 87
5739 #define S_surfxml_platform 88
5740 #define S_surfxml_platform_1 89
5741 #define S_surfxml_platform_2 90
5742 #define S_surfxml_platform_3 91
5743 #define S_surfxml_platform_4 92
5744 #define S_surfxml_platform_5 93
5745 #define S_surfxml_platform_6 94
5746 #define S_surfxml_platform_7 95
5747 #define S_surfxml_platform_8 96
5748 #define E_surfxml_platform 97
5749 #define AL_surfxml_process 98
5750 #define S_surfxml_process 99
5751 #define S_surfxml_process_1 100
5752 #define S_surfxml_process_2 101
5753 #define E_surfxml_process 102
5754 #define AL_surfxml_prop 103
5755 #define E_surfxml_prop 104
5756 #define AL_surfxml_random 105
5757 #define E_surfxml_random 106
5758 #define AL_surfxml_route 107
5759 #define S_surfxml_route 108
5760 #define S_surfxml_route_1 109
5761 #define S_surfxml_route_2 110
5762 #define E_surfxml_route 111
5763 #define AL_surfxml_router 112
5764 #define E_surfxml_router 113
5765 #define AL_surfxml_storage 114
5766 #define S_surfxml_storage 115
5767 #define S_surfxml_storage_1 116
5768 #define S_surfxml_storage_2 117
5769 #define E_surfxml_storage 118
5770 #define AL_surfxml_storage___type 119
5771 #define S_surfxml_storage___type 120
5772 #define S_surfxml_storage___type_1 121
5773 #define S_surfxml_storage___type_2 122
5774 #define E_surfxml_storage___type 123
5775 #define AL_surfxml_trace 124
5776 #define IN_trace 125
5777 #define AL_surfxml_trace___connect 126
5778 #define E_surfxml_trace___connect 127
5779 #define AL_surfxml_zone 128
5780 #define S_surfxml_zone 129
5781 #define S_surfxml_zone_1 130
5782 #define S_surfxml_zone_2 131
5783 #define S_surfxml_zone_3 132
5784 #define S_surfxml_zone_4 133
5785 #define S_surfxml_zone_5 134
5786 #define S_surfxml_zone_6 135
5787 #define S_surfxml_zone_7 136
5788 #define S_surfxml_zone_8 137
5789 #define E_surfxml_zone 138
5790 #define AL_surfxml_zoneRoute 139
5791 #define S_surfxml_zoneRoute 140
5792 #define S_surfxml_zoneRoute_1 141
5793 #define S_surfxml_zoneRoute_2 142
5794 #define E_surfxml_zoneRoute 143
5795 #define IMPOSSIBLE 144
5796
5797 #ifndef YY_NO_UNISTD_H
5798 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5799  * down here because we want the user's section 1 to have been scanned first.
5800  * The user has a chance to override it with an option.
5801  */
5802 #if defined(_WIN32)
5803 #  ifndef __STRICT_ANSI__
5804 #    include <io.h>
5805 #    include <process.h>
5806 #  endif
5807 #else
5808 #  include <unistd.h>
5809 #endif
5810 #endif
5811
5812 #ifndef YY_EXTRA_TYPE
5813 #define YY_EXTRA_TYPE void *
5814 #endif
5815
5816 static int yy_init_globals (void );
5817
5818 /* Accessor methods to globals.
5819    These are made visible to non-reentrant scanners for convenience. */
5820
5821 int surf_parse_lex_destroy (void );
5822
5823 int surf_parse_get_debug (void );
5824
5825 void surf_parse_set_debug (int debug_flag  );
5826
5827 YY_EXTRA_TYPE surf_parse_get_extra (void );
5828
5829 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5830
5831 FILE *surf_parse_get_in (void );
5832
5833 void surf_parse_set_in  (FILE * _in_str  );
5834
5835 FILE *surf_parse_get_out (void );
5836
5837 void surf_parse_set_out  (FILE * _out_str  );
5838
5839                         int surf_parse_get_leng (void );
5840
5841 char *surf_parse_get_text (void );
5842
5843 int surf_parse_get_lineno (void );
5844
5845 void surf_parse_set_lineno (int _line_number  );
5846
5847 /* Macros after this point can all be overridden by user definitions in
5848  * section 1.
5849  */
5850
5851 #ifndef YY_SKIP_YYWRAP
5852 #ifdef __cplusplus
5853 extern "C" int surf_parse_wrap (void );
5854 #else
5855 extern int surf_parse_wrap (void );
5856 #endif
5857 #endif
5858
5859 #ifndef YY_NO_UNPUT
5860     
5861 #endif
5862
5863 #ifndef yytext_ptr
5864 static void yy_flex_strncpy (char *,yyconst char *,int );
5865 #endif
5866
5867 #ifdef YY_NEED_STRLEN
5868 static int yy_flex_strlen (yyconst char * );
5869 #endif
5870
5871 #ifndef YY_NO_INPUT
5872
5873 #ifdef __cplusplus
5874 static int yyinput (void );
5875 #else
5876 static int input (void );
5877 #endif
5878
5879 #endif
5880
5881         static int yy_start_stack_ptr = 0;
5882         static int yy_start_stack_depth = 0;
5883         static int *yy_start_stack = NULL;
5884     
5885     static void yy_push_state (int _new_state );
5886     
5887     static void yy_pop_state (void );
5888     
5889 /* Amount of stuff to slurp up with each read. */
5890 #ifndef YY_READ_BUF_SIZE
5891 #ifdef __ia64__
5892 /* On IA-64, the buffer size is 16k, not 8k */
5893 #define YY_READ_BUF_SIZE 16384
5894 #else
5895 #define YY_READ_BUF_SIZE 8192
5896 #endif /* __ia64__ */
5897 #endif
5898
5899 /* Copy whatever the last rule matched to the standard output. */
5900 #ifndef ECHO
5901 /* This used to be an fputs(), but since the string might contain NUL's,
5902  * we now use fwrite().
5903  */
5904 #define ECHO do { if (fwrite( surf_parse_text, (size_t) surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5905 #endif
5906
5907 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5908  * is returned in "result".
5909  */
5910 #ifndef YY_INPUT
5911 #define YY_INPUT(buf,result,max_size) \
5912         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5913                 { \
5914                 int c = '*'; \
5915                 size_t n; \
5916                 for ( n = 0; n < (size_t)max_size && \
5917                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5918                         buf[n] = (char) c; \
5919                 if ( c == '\n' ) \
5920                         buf[n++] = (char) c; \
5921                 if ( c == EOF && ferror( surf_parse_in ) ) \
5922                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5923                 result = n; \
5924                 } \
5925         else \
5926                 { \
5927                 errno=0; \
5928                 while ( (result = (int) fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5929                         { \
5930                         if( errno != EINTR) \
5931                                 { \
5932                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5933                                 break; \
5934                                 } \
5935                         errno=0; \
5936                         clearerr(surf_parse_in); \
5937                         } \
5938                 }\
5939 \
5940
5941 #endif
5942
5943 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5944  * we don't want an extra ';' after the "return" because that will cause
5945  * some compilers to complain about unreachable statements.
5946  */
5947 #ifndef yyterminate
5948 #define yyterminate() return YY_NULL
5949 #endif
5950
5951 /* Number of entries by which start-condition stack grows. */
5952 #ifndef YY_START_STACK_INCR
5953 #define YY_START_STACK_INCR 25
5954 #endif
5955
5956 /* Report a fatal error. */
5957 #ifndef YY_FATAL_ERROR
5958 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5959 #endif
5960
5961 /* end tables serialization structures and prototypes */
5962
5963 /* Default declaration of generated scanner - a define so the user can
5964  * easily add parameters.
5965  */
5966 #ifndef YY_DECL
5967 #define YY_DECL_IS_OURS 1
5968
5969 extern int surf_parse_lex (void);
5970
5971 #define YY_DECL int surf_parse_lex (void)
5972 #endif /* !YY_DECL */
5973
5974 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5975  * have been set up.
5976  */
5977 #ifndef YY_USER_ACTION
5978 #define YY_USER_ACTION
5979 #endif
5980
5981 /* Code executed at the end of each rule. */
5982 #ifndef YY_BREAK
5983 #define YY_BREAK /*LINTED*/break;
5984 #endif
5985
5986 #define YY_RULE_SETUP \
5987         YY_USER_ACTION
5988
5989 /** The main scanner function which does all the work.
5990  */
5991 YY_DECL
5992 {
5993         yy_state_type yy_current_state;
5994         char *yy_cp, *yy_bp;
5995         int yy_act;
5996     
5997         if ( !(yy_init) )
5998                 {
5999                 (yy_init) = 1;
6000
6001 #ifdef YY_USER_INIT
6002                 YY_USER_INIT;
6003 #endif
6004
6005                 if ( ! (yy_start) )
6006                         (yy_start) = 1; /* first start state */
6007
6008                 if ( ! surf_parse_in )
6009                         surf_parse_in = stdin;
6010
6011                 if ( ! surf_parse_out )
6012                         surf_parse_out = stdout;
6013
6014                 if ( ! YY_CURRENT_BUFFER ) {
6015                         surf_parse_ensure_buffer_stack ();
6016                         YY_CURRENT_BUFFER_LVALUE =
6017                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
6018                 }
6019
6020                 surf_parse__load_buffer_state( );
6021                 }
6022
6023         {
6024
6025  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
6026  SET(PROLOG);
6027  reset_surfxml_parse_err_msg();
6028  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
6029  assert(surfxml_bufferstack);
6030  #ifdef FLEX_DEBUG
6031  {
6032      int i;
6033      for (i = 0; i < blimit; i++) {
6034          surfxml_bufferstack[i] = '\377';
6035      }
6036  }
6037  #endif
6038  surfxml_bufferstack[0] = '\0';
6039  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
6040  assert(indexstack);
6041  indexstack[0] = 0;
6042
6043   /* FleXML_init */
6044   bnext = inext = 1;
6045   surfxml_bufferliteral('\0', &bnext, "0.0");
6046   surfxml_bufferliteral('\0', &bnext, "2147483647");
6047   surfxml_bufferliteral('\0', &bnext, "txt_unix");
6048   surfxml_bufferliteral('\0', &bnext, "1");
6049   surfxml_bufferliteral('\0', &bnext, "0.0");
6050   surfxml_bufferliteral('\0', &bnext, "txt_unix");
6051   surfxml_bufferliteral('\0', &bnext, "1");
6052   surfxml_bufferliteral('\0', &bnext, "0s");
6053   surfxml_bufferliteral('\0', &bnext, "-1.0");
6054   surfxml_bufferliteral('\0', &bnext, "-1.0");
6055   surfxml_bufferliteral('\0', &bnext, "-1.0");
6056   surfxml_bufferliteral('\0', &bnext, "-1.0");
6057   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
6058   surfxml_statenames[PROLOG] = NULL;
6059   surfxml_statenames[DOCTYPE] = NULL;
6060   surfxml_statenames[EPILOG] = NULL;
6061   surfxml_statenames[INCOMMENT] = NULL;
6062   surfxml_statenames[INPI] = NULL;
6063   surfxml_statenames[VALUE1] = NULL;
6064   surfxml_statenames[VALUE2] = NULL;
6065   surfxml_statenames[CDATA] = NULL;
6066   surfxml_statenames[AL_surfxml_AS] = NULL;
6067   surfxml_statenames[S_surfxml_AS] = "AS";
6068   surfxml_statenames[S_surfxml_AS_1] = "AS";
6069   surfxml_statenames[S_surfxml_AS_2] = "AS";
6070   surfxml_statenames[S_surfxml_AS_3] = "AS";
6071   surfxml_statenames[S_surfxml_AS_4] = "AS";
6072   surfxml_statenames[S_surfxml_AS_5] = "AS";
6073   surfxml_statenames[S_surfxml_AS_6] = "AS";
6074   surfxml_statenames[S_surfxml_AS_7] = "AS";
6075   surfxml_statenames[S_surfxml_AS_8] = "AS";
6076   surfxml_statenames[E_surfxml_AS] = "AS";
6077   surfxml_statenames[AL_surfxml_ASroute] = NULL;
6078   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
6079   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
6080   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
6081   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
6082   surfxml_statenames[AL_surfxml_actor] = NULL;
6083   surfxml_statenames[S_surfxml_actor] = "actor";
6084   surfxml_statenames[S_surfxml_actor_1] = "actor";
6085   surfxml_statenames[S_surfxml_actor_2] = "actor";
6086   surfxml_statenames[E_surfxml_actor] = "actor";
6087   surfxml_statenames[AL_surfxml_argument] = NULL;
6088   surfxml_statenames[E_surfxml_argument] = "argument";
6089   surfxml_statenames[AL_surfxml_backbone] = NULL;
6090   surfxml_statenames[E_surfxml_backbone] = "backbone";
6091   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
6092   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
6093   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
6094   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
6095   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
6096   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
6097   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
6098   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
6099   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
6100   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
6101   surfxml_statenames[AL_surfxml_bypassZoneRoute] = NULL;
6102   surfxml_statenames[S_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6103   surfxml_statenames[S_surfxml_bypassZoneRoute_1] = "bypassZoneRoute";
6104   surfxml_statenames[S_surfxml_bypassZoneRoute_2] = "bypassZoneRoute";
6105   surfxml_statenames[E_surfxml_bypassZoneRoute] = "bypassZoneRoute";
6106   surfxml_statenames[AL_surfxml_cabinet] = NULL;
6107   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
6108   surfxml_statenames[AL_surfxml_cluster] = NULL;
6109   surfxml_statenames[S_surfxml_cluster] = "cluster";
6110   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
6111   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
6112   surfxml_statenames[E_surfxml_cluster] = "cluster";
6113   surfxml_statenames[AL_surfxml_config] = NULL;
6114   surfxml_statenames[S_surfxml_config] = "config";
6115   surfxml_statenames[S_surfxml_config_1] = "config";
6116   surfxml_statenames[S_surfxml_config_2] = "config";
6117   surfxml_statenames[E_surfxml_config] = "config";
6118   surfxml_statenames[AL_surfxml_host] = NULL;
6119   surfxml_statenames[S_surfxml_host] = "host";
6120   surfxml_statenames[S_surfxml_host_1] = "host";
6121   surfxml_statenames[S_surfxml_host_2] = "host";
6122   surfxml_statenames[E_surfxml_host] = "host";
6123   surfxml_statenames[AL_surfxml_host___link] = NULL;
6124   surfxml_statenames[E_surfxml_host___link] = "host_link";
6125   surfxml_statenames[AL_surfxml_include] = NULL;
6126   surfxml_statenames[S_surfxml_include] = "include";
6127   surfxml_statenames[S_surfxml_include_1] = "include";
6128   surfxml_statenames[S_surfxml_include_2] = "include";
6129   surfxml_statenames[E_surfxml_include] = "include";
6130   surfxml_statenames[AL_surfxml_link] = NULL;
6131   surfxml_statenames[S_surfxml_link] = "link";
6132   surfxml_statenames[S_surfxml_link_1] = "link";
6133   surfxml_statenames[S_surfxml_link_2] = "link";
6134   surfxml_statenames[E_surfxml_link] = "link";
6135   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
6136   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
6137   surfxml_statenames[AL_surfxml_model___prop] = NULL;
6138   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
6139   surfxml_statenames[AL_surfxml_mount] = NULL;
6140   surfxml_statenames[E_surfxml_mount] = "mount";
6141   surfxml_statenames[AL_surfxml_peer] = NULL;
6142   surfxml_statenames[E_surfxml_peer] = "peer";
6143   surfxml_statenames[ROOT_surfxml_platform] = NULL;
6144   surfxml_statenames[AL_surfxml_platform] = NULL;
6145   surfxml_statenames[S_surfxml_platform] = "platform";
6146   surfxml_statenames[S_surfxml_platform_1] = "platform";
6147   surfxml_statenames[S_surfxml_platform_2] = "platform";
6148   surfxml_statenames[S_surfxml_platform_3] = "platform";
6149   surfxml_statenames[S_surfxml_platform_4] = "platform";
6150   surfxml_statenames[S_surfxml_platform_5] = "platform";
6151   surfxml_statenames[S_surfxml_platform_6] = "platform";
6152   surfxml_statenames[S_surfxml_platform_7] = "platform";
6153   surfxml_statenames[S_surfxml_platform_8] = "platform";
6154   surfxml_statenames[E_surfxml_platform] = "platform";
6155   surfxml_statenames[AL_surfxml_process] = NULL;
6156   surfxml_statenames[S_surfxml_process] = "process";
6157   surfxml_statenames[S_surfxml_process_1] = "process";
6158   surfxml_statenames[S_surfxml_process_2] = "process";
6159   surfxml_statenames[E_surfxml_process] = "process";
6160   surfxml_statenames[AL_surfxml_prop] = NULL;
6161   surfxml_statenames[E_surfxml_prop] = "prop";
6162   surfxml_statenames[AL_surfxml_random] = NULL;
6163   surfxml_statenames[E_surfxml_random] = "random";
6164   surfxml_statenames[AL_surfxml_route] = NULL;
6165   surfxml_statenames[S_surfxml_route] = "route";
6166   surfxml_statenames[S_surfxml_route_1] = "route";
6167   surfxml_statenames[S_surfxml_route_2] = "route";
6168   surfxml_statenames[E_surfxml_route] = "route";
6169   surfxml_statenames[AL_surfxml_router] = NULL;
6170   surfxml_statenames[E_surfxml_router] = "router";
6171   surfxml_statenames[AL_surfxml_storage] = NULL;
6172   surfxml_statenames[S_surfxml_storage] = "storage";
6173   surfxml_statenames[S_surfxml_storage_1] = "storage";
6174   surfxml_statenames[S_surfxml_storage_2] = "storage";
6175   surfxml_statenames[E_surfxml_storage] = "storage";
6176   surfxml_statenames[AL_surfxml_storage___type] = NULL;
6177   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
6178   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
6179   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
6180   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
6181   surfxml_statenames[AL_surfxml_trace] = NULL;
6182   surfxml_statenames[IN_trace] = "trace";
6183   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
6184   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
6185   surfxml_statenames[AL_surfxml_zone] = NULL;
6186   surfxml_statenames[S_surfxml_zone] = "zone";
6187   surfxml_statenames[S_surfxml_zone_1] = "zone";
6188   surfxml_statenames[S_surfxml_zone_2] = "zone";
6189   surfxml_statenames[S_surfxml_zone_3] = "zone";
6190   surfxml_statenames[S_surfxml_zone_4] = "zone";
6191   surfxml_statenames[S_surfxml_zone_5] = "zone";
6192   surfxml_statenames[S_surfxml_zone_6] = "zone";
6193   surfxml_statenames[S_surfxml_zone_7] = "zone";
6194   surfxml_statenames[S_surfxml_zone_8] = "zone";
6195   surfxml_statenames[E_surfxml_zone] = "zone";
6196   surfxml_statenames[AL_surfxml_zoneRoute] = NULL;
6197   surfxml_statenames[S_surfxml_zoneRoute] = "zoneRoute";
6198   surfxml_statenames[S_surfxml_zoneRoute_1] = "zoneRoute";
6199   surfxml_statenames[S_surfxml_zoneRoute_2] = "zoneRoute";
6200   surfxml_statenames[E_surfxml_zoneRoute] = "zoneRoute";
6201   }
6202
6203  /* COMMENTS and PIs: handled uniformly for efficiency. */
6204
6205         while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
6206                 {
6207                 yy_cp = (yy_c_buf_p);
6208
6209                 /* Support of surf_parse_text. */
6210                 *yy_cp = (yy_hold_char);
6211
6212                 /* yy_bp points to the position in yy_ch_buf of the start of
6213                  * the current run.
6214                  */
6215                 yy_bp = yy_cp;
6216
6217                 yy_current_state = (yy_start);
6218 yy_match:
6219                 do
6220                         {
6221                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
6222                         if ( yy_accept[yy_current_state] )
6223                                 {
6224                                 (yy_last_accepting_state) = yy_current_state;
6225                                 (yy_last_accepting_cpos) = yy_cp;
6226                                 }
6227                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6228                                 {
6229                                 yy_current_state = (int) yy_def[yy_current_state];
6230                                 if ( yy_current_state >= 3906 )
6231                                         yy_c = yy_meta[(unsigned int) yy_c];
6232                                 }
6233                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
6234                         ++yy_cp;
6235                         }
6236                 while ( yy_base[yy_current_state] != 13997 );
6237
6238 yy_find_action:
6239                 yy_act = yy_accept[yy_current_state];
6240                 if ( yy_act == 0 )
6241                         { /* have to back up */
6242                         yy_cp = (yy_last_accepting_cpos);
6243                         yy_current_state = (yy_last_accepting_state);
6244                         yy_act = yy_accept[yy_current_state];
6245                         }
6246
6247                 YY_DO_BEFORE_ACTION;
6248
6249                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
6250                         {
6251                         unsigned int yyl;
6252                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
6253                                 if ( surf_parse_text[yyl] == '\n' )
6254                                         
6255     surf_parse_lineno++;
6256 ;
6257                         }
6258
6259 do_action:      /* This label is used only to access EOF actions. */
6260
6261                 switch ( yy_act )
6262         { /* beginning of action switch */
6263                         case 0: /* must back up */
6264                         /* undo the effects of YY_DO_BEFORE_ACTION */
6265                         *yy_cp = (yy_hold_char);
6266                         yy_cp = (yy_last_accepting_cpos);
6267                         yy_current_state = (yy_last_accepting_state);
6268                         goto yy_find_action;
6269
6270 case 1:
6271 YY_RULE_SETUP
6272 ENTER(INCOMMENT);
6273         YY_BREAK
6274 case 2:
6275 YY_RULE_SETUP
6276 ENTER(INPI);
6277         YY_BREAK
6278
6279 case 3:
6280 YY_RULE_SETUP
6281 LEAVE;
6282         YY_BREAK
6283 case 4:
6284 case 5:
6285 case 6:
6286 /* rule 6 can match eol */
6287 YY_RULE_SETUP
6288 SKIP;
6289         YY_BREAK
6290 case YY_STATE_EOF(INCOMMENT):
6291 FAIL("EOF in comment.");
6292         YY_BREAK
6293
6294 case 7:
6295 YY_RULE_SETUP
6296 LEAVE;
6297         YY_BREAK
6298 case 8:
6299 case 9:
6300 /* rule 9 can match eol */
6301 YY_RULE_SETUP
6302 SKIP;
6303         YY_BREAK
6304 case YY_STATE_EOF(INPI):
6305 FAIL("EOF in PI (processing instruction).");
6306         YY_BREAK
6307
6308 /* SPACES: skipped uniformly */
6309 case 10:
6310 /* rule 10 can match eol */
6311 YY_RULE_SETUP
6312 SKIP;
6313         YY_BREAK
6314 /* PROLOG: determine root element and process it. */
6315
6316 case 11:
6317 /* rule 11 can match eol */
6318 YY_RULE_SETUP
6319 SET(DOCTYPE); 
6320         YY_BREAK
6321 case 12:
6322 /* rule 12 can match eol */
6323 YY_RULE_SETUP
6324 FAIL("Bad declaration %s.\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl",surf_parse_text);
6325         YY_BREAK
6326
6327 case 13:
6328 /* rule 13 can match eol */
6329 YY_RULE_SETUP
6330 SET(ROOT_surfxml_platform);
6331         YY_BREAK
6332 case 14:
6333 /* rule 14 can match eol */
6334 YY_RULE_SETUP
6335 FAIL("Bad declaration %s.\nIf your are using a XML v3 file (check the version attribute in <platform>), please update it with tools/simgrid_update_xml.pl",surf_parse_text);
6336         YY_BREAK
6337 case 15:
6338 YY_RULE_SETUP
6339 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
6340         YY_BREAK
6341 case YY_STATE_EOF(PROLOG):
6342 case YY_STATE_EOF(DOCTYPE):
6343 FAIL("EOF in prolog.");
6344         YY_BREAK
6345
6346 /* RULES DERIVED FROM DTD. */
6347 case 16:
6348 /* rule 16 can match eol */
6349 YY_RULE_SETUP
6350 FAIL("Starting tag <AS> is not allowed here.");
6351         YY_BREAK
6352 case 17:
6353 /* rule 17 can match eol */
6354 YY_RULE_SETUP
6355 {
6356   AX_surfxml_AS_id = 0;
6357   surfxml_AS_id_isset = 0;
6358   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
6359   surfxml_AS_routing_isset = 0;
6360   ENTER(AL_surfxml_AS); pushbuffer(0);
6361   }
6362         YY_BREAK
6363
6364 case 18:
6365 /* rule 18 can match eol */
6366 YY_RULE_SETUP
6367 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);
6368         YY_BREAK
6369 case 19:
6370 /* rule 19 can match eol */
6371 YY_RULE_SETUP
6372 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);
6373         YY_BREAK
6374 case 20:
6375 /* rule 20 can match eol */
6376 case 21:
6377 /* rule 21 can match eol */
6378 YY_RULE_SETUP
6379 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6380         YY_BREAK
6381 case 22:
6382 /* rule 22 can match eol */
6383 case 23:
6384 /* rule 23 can match eol */
6385 YY_RULE_SETUP
6386 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6387         YY_BREAK
6388 case 24:
6389 /* rule 24 can match eol */
6390 case 25:
6391 /* rule 25 can match eol */
6392 YY_RULE_SETUP
6393 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6394         YY_BREAK
6395 case 26:
6396 /* rule 26 can match eol */
6397 case 27:
6398 /* rule 27 can match eol */
6399 YY_RULE_SETUP
6400 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6401         YY_BREAK
6402 case 28:
6403 /* rule 28 can match eol */
6404 case 29:
6405 /* rule 29 can match eol */
6406 YY_RULE_SETUP
6407 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6408         YY_BREAK
6409 case 30:
6410 /* rule 30 can match eol */
6411 case 31:
6412 /* rule 31 can match eol */
6413 YY_RULE_SETUP
6414 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6415         YY_BREAK
6416 case 32:
6417 /* rule 32 can match eol */
6418 case 33:
6419 /* rule 33 can match eol */
6420 YY_RULE_SETUP
6421 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6422         YY_BREAK
6423 case 34:
6424 /* rule 34 can match eol */
6425 case 35:
6426 /* rule 35 can match eol */
6427 YY_RULE_SETUP
6428 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterTorus;
6429         YY_BREAK
6430 case 36:
6431 /* rule 36 can match eol */
6432 case 37:
6433 /* rule 37 can match eol */
6434 YY_RULE_SETUP
6435 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterFatTree;
6436         YY_BREAK
6437 case 38:
6438 /* rule 38 can match eol */
6439 case 39:
6440 /* rule 39 can match eol */
6441 YY_RULE_SETUP
6442 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterDragonfly;
6443         YY_BREAK
6444 case 40:
6445 YY_RULE_SETUP
6446 {
6447   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6448   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6449   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6450  }
6451         YY_BREAK
6452 case 41:
6453 YY_RULE_SETUP
6454 {
6455   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6456   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
6457   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6458   switch (YY_START) {
6459    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6460    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6461    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6462    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
6463   }
6464  }
6465         YY_BREAK
6466 case 42:
6467 YY_RULE_SETUP
6468 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6469         YY_BREAK
6470 case 43:
6471 YY_RULE_SETUP
6472 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6473         YY_BREAK
6474 case YY_STATE_EOF(AL_surfxml_AS):
6475 FAIL("EOF in attribute list of `AS' element.");
6476         YY_BREAK
6477
6478 case 44:
6479 /* rule 44 can match eol */
6480 YY_RULE_SETUP
6481 {
6482   LEAVE;
6483   ETag_surfxml_AS();
6484   popbuffer(); /* attribute */
6485   switch (YY_START) {
6486    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6487    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6488    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
6489    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
6490   }
6491  }
6492         YY_BREAK
6493 case 45:
6494 /* rule 45 can match eol */
6495 YY_RULE_SETUP
6496 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6497         YY_BREAK
6498 case 46:
6499 YY_RULE_SETUP
6500 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6501         YY_BREAK
6502 case YY_STATE_EOF(E_surfxml_AS):
6503 case YY_STATE_EOF(S_surfxml_AS):
6504 case YY_STATE_EOF(S_surfxml_AS_1):
6505 case YY_STATE_EOF(S_surfxml_AS_3):
6506 case YY_STATE_EOF(S_surfxml_AS_4):
6507 case YY_STATE_EOF(S_surfxml_AS_6):
6508 case YY_STATE_EOF(S_surfxml_AS_8):
6509 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6510         YY_BREAK
6511
6512 case 47:
6513 /* rule 47 can match eol */
6514 YY_RULE_SETUP
6515 FAIL("Starting tag <ASroute> is not allowed here.");
6516         YY_BREAK
6517 case 48:
6518 /* rule 48 can match eol */
6519 YY_RULE_SETUP
6520 {
6521   AX_surfxml_ASroute_dst = 0;
6522   surfxml_ASroute_dst_isset = 0;
6523   AX_surfxml_ASroute_gw___dst = 0;
6524   surfxml_ASroute_gw___dst_isset = 0;
6525   AX_surfxml_ASroute_gw___src = 0;
6526   surfxml_ASroute_gw___src_isset = 0;
6527   AX_surfxml_ASroute_src = 0;
6528   surfxml_ASroute_src_isset = 0;
6529   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6530   surfxml_ASroute_symmetrical_isset = 0;
6531   ENTER(AL_surfxml_ASroute); pushbuffer(0);
6532   }
6533         YY_BREAK
6534
6535 case 49:
6536 /* rule 49 can match eol */
6537 YY_RULE_SETUP
6538 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);
6539         YY_BREAK
6540 case 50:
6541 /* rule 50 can match eol */
6542 YY_RULE_SETUP
6543 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);
6544         YY_BREAK
6545 case 51:
6546 /* rule 51 can match eol */
6547 YY_RULE_SETUP
6548 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);
6549         YY_BREAK
6550 case 52:
6551 /* rule 52 can match eol */
6552 YY_RULE_SETUP
6553 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);
6554         YY_BREAK
6555 case 53:
6556 /* rule 53 can match eol */
6557 YY_RULE_SETUP
6558 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);
6559         YY_BREAK
6560 case 54:
6561 /* rule 54 can match eol */
6562 YY_RULE_SETUP
6563 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);
6564         YY_BREAK
6565 case 55:
6566 /* rule 55 can match eol */
6567 YY_RULE_SETUP
6568 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);
6569         YY_BREAK
6570 case 56:
6571 /* rule 56 can match eol */
6572 YY_RULE_SETUP
6573 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);
6574         YY_BREAK
6575 case 57:
6576 /* rule 57 can match eol */
6577 case 58:
6578 /* rule 58 can match eol */
6579 YY_RULE_SETUP
6580 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
6581         YY_BREAK
6582 case 59:
6583 /* rule 59 can match eol */
6584 case 60:
6585 /* rule 60 can match eol */
6586 YY_RULE_SETUP
6587 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
6588         YY_BREAK
6589 case 61:
6590 YY_RULE_SETUP
6591 {
6592   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6593   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6594   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6595   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6596   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
6597  }
6598         YY_BREAK
6599 case 62:
6600 YY_RULE_SETUP
6601 {
6602   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
6603   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
6604   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
6605   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
6606   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
6607   switch (YY_START) {
6608    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6609    case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6610    case S_surfxml_zone: case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
6611    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
6612   }
6613  }
6614         YY_BREAK
6615 case 63:
6616 YY_RULE_SETUP
6617 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
6618         YY_BREAK
6619 case 64:
6620 YY_RULE_SETUP
6621 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
6622         YY_BREAK
6623 case YY_STATE_EOF(AL_surfxml_ASroute):
6624 FAIL("EOF in attribute list of `ASroute' element.");
6625         YY_BREAK
6626
6627 case 65:
6628 /* rule 65 can match eol */
6629 YY_RULE_SETUP
6630 {
6631   LEAVE;
6632   ETag_surfxml_ASroute();
6633   popbuffer(); /* attribute */
6634   switch (YY_START) {
6635    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6636    case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
6637    case S_surfxml_zone: case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
6638    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
6639   }
6640  }
6641         YY_BREAK
6642 case 66:
6643 /* rule 66 can match eol */
6644 YY_RULE_SETUP
6645 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
6646         YY_BREAK
6647 case 67:
6648 YY_RULE_SETUP
6649 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
6650         YY_BREAK
6651 case YY_STATE_EOF(E_surfxml_ASroute):
6652 case YY_STATE_EOF(S_surfxml_ASroute):
6653 case YY_STATE_EOF(S_surfxml_ASroute_2):
6654 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
6655         YY_BREAK
6656
6657 case 68:
6658 /* rule 68 can match eol */
6659 YY_RULE_SETUP
6660 FAIL("Starting tag <actor> is not allowed here.");
6661         YY_BREAK
6662 case 69:
6663 /* rule 69 can match eol */
6664 YY_RULE_SETUP
6665 {
6666   AX_surfxml_actor_function = 0;
6667   surfxml_actor_function_isset = 0;
6668   AX_surfxml_actor_host = 0;
6669   surfxml_actor_host_isset = 0;
6670   AX_surfxml_actor_kill___time = 60;
6671   surfxml_actor_kill___time_isset = 0;
6672   AX_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
6673   surfxml_actor_on___failure_isset = 0;
6674   AX_surfxml_actor_start___time = 55;
6675   surfxml_actor_start___time_isset = 0;
6676   ENTER(AL_surfxml_actor); pushbuffer(0);
6677   }
6678         YY_BREAK
6679
6680 case 70:
6681 /* rule 70 can match eol */
6682 YY_RULE_SETUP
6683 if (surfxml_actor_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_actor>");} surfxml_actor_function_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_function);
6684         YY_BREAK
6685 case 71:
6686 /* rule 71 can match eol */
6687 YY_RULE_SETUP
6688 if (surfxml_actor_function_isset != 0) {FAIL("Multiple definition of attribute function in <surfxml_actor>");}  surfxml_actor_function_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_function);
6689         YY_BREAK
6690 case 72:
6691 /* rule 72 can match eol */
6692 YY_RULE_SETUP
6693 if (surfxml_actor_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_actor>");} surfxml_actor_host_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_host);
6694         YY_BREAK
6695 case 73:
6696 /* rule 73 can match eol */
6697 YY_RULE_SETUP
6698 if (surfxml_actor_host_isset != 0) {FAIL("Multiple definition of attribute host in <surfxml_actor>");}  surfxml_actor_host_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_host);
6699         YY_BREAK
6700 case 74:
6701 /* rule 74 can match eol */
6702 YY_RULE_SETUP
6703 if (surfxml_actor_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_actor>");} surfxml_actor_kill___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_kill___time);
6704         YY_BREAK
6705 case 75:
6706 /* rule 75 can match eol */
6707 YY_RULE_SETUP
6708 if (surfxml_actor_kill___time_isset != 0) {FAIL("Multiple definition of attribute kill_time in <surfxml_actor>");}  surfxml_actor_kill___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_kill___time);
6709         YY_BREAK
6710 case 76:
6711 /* rule 76 can match eol */
6712 case 77:
6713 /* rule 77 can match eol */
6714 YY_RULE_SETUP
6715 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_DIE;
6716         YY_BREAK
6717 case 78:
6718 /* rule 78 can match eol */
6719 case 79:
6720 /* rule 79 can match eol */
6721 YY_RULE_SETUP
6722 A_surfxml_actor_on___failure = A_surfxml_actor_on___failure_RESTART;
6723         YY_BREAK
6724 case 80:
6725 /* rule 80 can match eol */
6726 YY_RULE_SETUP
6727 if (surfxml_actor_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_actor>");} surfxml_actor_start___time_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_actor_start___time);
6728         YY_BREAK
6729 case 81:
6730 /* rule 81 can match eol */
6731 YY_RULE_SETUP
6732 if (surfxml_actor_start___time_isset != 0) {FAIL("Multiple definition of attribute start_time in <surfxml_actor>");}  surfxml_actor_start___time_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_actor_start___time);
6733         YY_BREAK
6734 case 82:
6735 YY_RULE_SETUP
6736 {
6737   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
6738   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
6739   LEAVE; STag_surfxml_actor();surfxml_pcdata_ix = 0; ENTER(S_surfxml_actor);
6740  }
6741         YY_BREAK
6742 case 83:
6743 YY_RULE_SETUP
6744 {
6745   if (!AX_surfxml_actor_function) FAIL("Required attribute `function' not set for `actor' element.");
6746   if (!AX_surfxml_actor_host) FAIL("Required attribute `host' not set for `actor' element.");
6747   LEAVE; STag_surfxml_actor(); surfxml_pcdata_ix = 0; ETag_surfxml_actor(); popbuffer(); /* attribute */
6748   switch (YY_START) {
6749    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
6750   }
6751  }
6752         YY_BREAK
6753 case 84:
6754 YY_RULE_SETUP
6755 FAIL("Unexpected character `%c' in attribute list of actor element.", surf_parse_text[0]);
6756         YY_BREAK
6757 case 85:
6758 YY_RULE_SETUP
6759 FAIL("Bad attribute `%s' in `actor' element start tag.",surf_parse_text);
6760         YY_BREAK
6761 case YY_STATE_EOF(AL_surfxml_actor):
6762 FAIL("EOF in attribute list of `actor' element.");
6763         YY_BREAK
6764
6765 case 86:
6766 /* rule 86 can match eol */
6767 YY_RULE_SETUP
6768 {
6769   LEAVE;
6770   ETag_surfxml_actor();
6771   popbuffer(); /* attribute */
6772   switch (YY_START) {
6773    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
6774   }
6775  }
6776         YY_BREAK
6777 case 87:
6778 /* rule 87 can match eol */
6779 YY_RULE_SETUP
6780 FAIL("Unexpected end-tag `%s': `</actor>' expected.",surf_parse_text);
6781         YY_BREAK
6782 case 88:
6783 YY_RULE_SETUP
6784 FAIL("Unexpected character `%c': `</actor>' expected.",surf_parse_text[0]);
6785         YY_BREAK
6786 case YY_STATE_EOF(E_surfxml_actor):
6787 case YY_STATE_EOF(S_surfxml_actor):
6788 case YY_STATE_EOF(S_surfxml_actor_2):
6789 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</actor>' expected.");
6790         YY_BREAK
6791
6792 case 89:
6793 /* rule 89 can match eol */
6794 YY_RULE_SETUP
6795 FAIL("Starting tag <argument> is not allowed here.");
6796         YY_BREAK
6797 case 90:
6798 /* rule 90 can match eol */
6799 YY_RULE_SETUP
6800 {
6801   AX_surfxml_argument_value = 0;
6802   surfxml_argument_value_isset = 0;
6803   ENTER(AL_surfxml_argument); pushbuffer(0);
6804   }
6805         YY_BREAK
6806
6807 case 91:
6808 /* rule 91 can match eol */
6809 YY_RULE_SETUP
6810 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);
6811         YY_BREAK
6812 case 92:
6813 /* rule 92 can match eol */
6814 YY_RULE_SETUP
6815 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);
6816         YY_BREAK
6817 case 93:
6818 YY_RULE_SETUP
6819 {
6820   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6821   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
6822  }
6823         YY_BREAK
6824 case 94:
6825 YY_RULE_SETUP
6826 {
6827   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
6828   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
6829   switch (YY_START) {
6830    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
6831    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6832   }
6833  }
6834         YY_BREAK
6835 case 95:
6836 YY_RULE_SETUP
6837 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
6838         YY_BREAK
6839 case 96:
6840 YY_RULE_SETUP
6841 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
6842         YY_BREAK
6843 case YY_STATE_EOF(AL_surfxml_argument):
6844 FAIL("EOF in attribute list of `argument' element.");
6845         YY_BREAK
6846
6847 case 97:
6848 /* rule 97 can match eol */
6849 YY_RULE_SETUP
6850 {
6851   LEAVE;
6852   ETag_surfxml_argument();
6853   popbuffer(); /* attribute */
6854   switch (YY_START) {
6855    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
6856    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
6857   }
6858  }
6859         YY_BREAK
6860 case 98:
6861 /* rule 98 can match eol */
6862 YY_RULE_SETUP
6863 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
6864         YY_BREAK
6865 case 99:
6866 YY_RULE_SETUP
6867 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
6868         YY_BREAK
6869 case YY_STATE_EOF(E_surfxml_argument):
6870 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
6871         YY_BREAK
6872
6873 case 100:
6874 /* rule 100 can match eol */
6875 YY_RULE_SETUP
6876 FAIL("Starting tag <backbone> is not allowed here.");
6877         YY_BREAK
6878 case 101:
6879 /* rule 101 can match eol */
6880 YY_RULE_SETUP
6881 {
6882   AX_surfxml_backbone_bandwidth = 0;
6883   surfxml_backbone_bandwidth_isset = 0;
6884   AX_surfxml_backbone_id = 0;
6885   surfxml_backbone_id_isset = 0;
6886   AX_surfxml_backbone_latency = 0;
6887   surfxml_backbone_latency_isset = 0;
6888   ENTER(AL_surfxml_backbone); pushbuffer(0);
6889   }
6890         YY_BREAK
6891
6892 case 102:
6893 /* rule 102 can match eol */
6894 YY_RULE_SETUP
6895 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);
6896         YY_BREAK
6897 case 103:
6898 /* rule 103 can match eol */
6899 YY_RULE_SETUP
6900 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);
6901         YY_BREAK
6902 case 104:
6903 /* rule 104 can match eol */
6904 YY_RULE_SETUP
6905 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);
6906         YY_BREAK
6907 case 105:
6908 /* rule 105 can match eol */
6909 YY_RULE_SETUP
6910 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);
6911         YY_BREAK
6912 case 106:
6913 /* rule 106 can match eol */
6914 YY_RULE_SETUP
6915 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);
6916         YY_BREAK
6917 case 107:
6918 /* rule 107 can match eol */
6919 YY_RULE_SETUP
6920 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);
6921         YY_BREAK
6922 case 108:
6923 YY_RULE_SETUP
6924 {
6925   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6926   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6927   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6928   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
6929  }
6930         YY_BREAK
6931 case 109:
6932 YY_RULE_SETUP
6933 {
6934   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6935   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6936   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6937   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
6938   switch (YY_START) {
6939    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6940    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
6941   }
6942  }
6943         YY_BREAK
6944 case 110:
6945 YY_RULE_SETUP
6946 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
6947         YY_BREAK
6948 case 111:
6949 YY_RULE_SETUP
6950 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
6951         YY_BREAK
6952 case YY_STATE_EOF(AL_surfxml_backbone):
6953 FAIL("EOF in attribute list of `backbone' element.");
6954         YY_BREAK
6955
6956 case 112:
6957 /* rule 112 can match eol */
6958 YY_RULE_SETUP
6959 {
6960   LEAVE;
6961   ETag_surfxml_backbone();
6962   popbuffer(); /* attribute */
6963   switch (YY_START) {
6964    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
6965    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
6966   }
6967  }
6968         YY_BREAK
6969 case 113:
6970 /* rule 113 can match eol */
6971 YY_RULE_SETUP
6972 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
6973         YY_BREAK
6974 case 114:
6975 YY_RULE_SETUP
6976 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
6977         YY_BREAK
6978 case YY_STATE_EOF(E_surfxml_backbone):
6979 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
6980         YY_BREAK
6981
6982 case 115:
6983 /* rule 115 can match eol */
6984 YY_RULE_SETUP
6985 FAIL("Starting tag <bypassASroute> is not allowed here.");
6986         YY_BREAK
6987 case 116:
6988 /* rule 116 can match eol */
6989 YY_RULE_SETUP
6990 {
6991   AX_surfxml_bypassASroute_dst = 0;
6992   surfxml_bypassASroute_dst_isset = 0;
6993   AX_surfxml_bypassASroute_gw___dst = 0;
6994   surfxml_bypassASroute_gw___dst_isset = 0;
6995   AX_surfxml_bypassASroute_gw___src = 0;
6996   surfxml_bypassASroute_gw___src_isset = 0;
6997   AX_surfxml_bypassASroute_src = 0;
6998   surfxml_bypassASroute_src_isset = 0;
6999   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
7000   }
7001         YY_BREAK
7002
7003 case 117:
7004 /* rule 117 can match eol */
7005 YY_RULE_SETUP
7006 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);
7007         YY_BREAK
7008 case 118:
7009 /* rule 118 can match eol */
7010 YY_RULE_SETUP
7011 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);
7012         YY_BREAK
7013 case 119:
7014 /* rule 119 can match eol */
7015 YY_RULE_SETUP
7016 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);
7017         YY_BREAK
7018 case 120:
7019 /* rule 120 can match eol */
7020 YY_RULE_SETUP
7021 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);
7022         YY_BREAK
7023 case 121:
7024 /* rule 121 can match eol */
7025 YY_RULE_SETUP
7026 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);
7027         YY_BREAK
7028 case 122:
7029 /* rule 122 can match eol */
7030 YY_RULE_SETUP
7031 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);
7032         YY_BREAK
7033 case 123:
7034 /* rule 123 can match eol */
7035 YY_RULE_SETUP
7036 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);
7037         YY_BREAK
7038 case 124:
7039 /* rule 124 can match eol */
7040 YY_RULE_SETUP
7041 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);
7042         YY_BREAK
7043 case 125:
7044 YY_RULE_SETUP
7045 {
7046   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7047   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7048   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7049   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7050   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
7051  }
7052         YY_BREAK
7053 case 126:
7054 YY_RULE_SETUP
7055 {
7056   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
7057   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
7058   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
7059   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
7060   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
7061   switch (YY_START) {
7062    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
7063    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
7064   }
7065  }
7066         YY_BREAK
7067 case 127:
7068 YY_RULE_SETUP
7069 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
7070         YY_BREAK
7071 case 128:
7072 YY_RULE_SETUP
7073 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
7074         YY_BREAK
7075 case YY_STATE_EOF(AL_surfxml_bypassASroute):
7076 FAIL("EOF in attribute list of `bypassASroute' element.");
7077         YY_BREAK
7078
7079 case 129:
7080 /* rule 129 can match eol */
7081 YY_RULE_SETUP
7082 {
7083   LEAVE;
7084   ETag_surfxml_bypassASroute();
7085   popbuffer(); /* attribute */
7086   switch (YY_START) {
7087    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
7088    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
7089   }
7090  }
7091         YY_BREAK
7092 case 130:
7093 /* rule 130 can match eol */
7094 YY_RULE_SETUP
7095 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
7096         YY_BREAK
7097 case 131:
7098 YY_RULE_SETUP
7099 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
7100         YY_BREAK
7101 case YY_STATE_EOF(E_surfxml_bypassASroute):
7102 case YY_STATE_EOF(S_surfxml_bypassASroute):
7103 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
7104 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
7105         YY_BREAK
7106
7107 case 132:
7108 /* rule 132 can match eol */
7109 YY_RULE_SETUP
7110 FAIL("Starting tag <bypassRoute> is not allowed here.");
7111         YY_BREAK
7112 case 133:
7113 /* rule 133 can match eol */
7114 YY_RULE_SETUP
7115 {
7116   AX_surfxml_bypassRoute_dst = 0;
7117   surfxml_bypassRoute_dst_isset = 0;
7118   AX_surfxml_bypassRoute_src = 0;
7119   surfxml_bypassRoute_src_isset = 0;
7120   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
7121   }
7122         YY_BREAK
7123
7124 case 134:
7125 /* rule 134 can match eol */
7126 YY_RULE_SETUP
7127 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);
7128         YY_BREAK
7129 case 135:
7130 /* rule 135 can match eol */
7131 YY_RULE_SETUP
7132 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);
7133         YY_BREAK
7134 case 136:
7135 /* rule 136 can match eol */
7136 YY_RULE_SETUP
7137 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);
7138         YY_BREAK
7139 case 137:
7140 /* rule 137 can match eol */
7141 YY_RULE_SETUP
7142 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);
7143         YY_BREAK
7144 case 138:
7145 YY_RULE_SETUP
7146 {
7147   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7148   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7149   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
7150  }
7151         YY_BREAK
7152 case 139:
7153 YY_RULE_SETUP
7154 {
7155   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
7156   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
7157   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
7158   switch (YY_START) {
7159    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
7160    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
7161   }
7162  }
7163         YY_BREAK
7164 case 140:
7165 YY_RULE_SETUP
7166 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
7167         YY_BREAK
7168 case 141:
7169 YY_RULE_SETUP
7170 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
7171         YY_BREAK
7172 case YY_STATE_EOF(AL_surfxml_bypassRoute):
7173 FAIL("EOF in attribute list of `bypassRoute' element.");
7174         YY_BREAK
7175
7176 case 142:
7177 /* rule 142 can match eol */
7178 YY_RULE_SETUP
7179 {
7180   LEAVE;
7181   ETag_surfxml_bypassRoute();
7182   popbuffer(); /* attribute */
7183   switch (YY_START) {
7184    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
7185    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
7186   }
7187  }
7188         YY_BREAK
7189 case 143:
7190 /* rule 143 can match eol */
7191 YY_RULE_SETUP
7192 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
7193         YY_BREAK
7194 case 144:
7195 YY_RULE_SETUP
7196 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
7197         YY_BREAK
7198 case YY_STATE_EOF(E_surfxml_bypassRoute):
7199 case YY_STATE_EOF(S_surfxml_bypassRoute):
7200 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
7201 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
7202         YY_BREAK
7203
7204 case 145:
7205 /* rule 145 can match eol */
7206 YY_RULE_SETUP
7207 FAIL("Starting tag <bypassZoneRoute> is not allowed here.");
7208         YY_BREAK
7209 case 146:
7210 /* rule 146 can match eol */
7211 YY_RULE_SETUP
7212 {
7213   AX_surfxml_bypassZoneRoute_dst = 0;
7214   surfxml_bypassZoneRoute_dst_isset = 0;
7215   AX_surfxml_bypassZoneRoute_gw___dst = 0;
7216   surfxml_bypassZoneRoute_gw___dst_isset = 0;
7217   AX_surfxml_bypassZoneRoute_gw___src = 0;
7218   surfxml_bypassZoneRoute_gw___src_isset = 0;
7219   AX_surfxml_bypassZoneRoute_src = 0;
7220   surfxml_bypassZoneRoute_src_isset = 0;
7221   ENTER(AL_surfxml_bypassZoneRoute); pushbuffer(0);
7222   }
7223         YY_BREAK
7224
7225 case 147:
7226 /* rule 147 can match eol */
7227 YY_RULE_SETUP
7228 if (surfxml_bypassZoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_dst);
7229         YY_BREAK
7230 case 148:
7231 /* rule 148 can match eol */
7232 YY_RULE_SETUP
7233 if (surfxml_bypassZoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_dst);
7234         YY_BREAK
7235 case 149:
7236 /* rule 149 can match eol */
7237 YY_RULE_SETUP
7238 if (surfxml_bypassZoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___dst);
7239         YY_BREAK
7240 case 150:
7241 /* rule 150 can match eol */
7242 YY_RULE_SETUP
7243 if (surfxml_bypassZoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___dst);
7244         YY_BREAK
7245 case 151:
7246 /* rule 151 can match eol */
7247 YY_RULE_SETUP
7248 if (surfxml_bypassZoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___src);
7249         YY_BREAK
7250 case 152:
7251 /* rule 152 can match eol */
7252 YY_RULE_SETUP
7253 if (surfxml_bypassZoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_gw___src);
7254         YY_BREAK
7255 case 153:
7256 /* rule 153 can match eol */
7257 YY_RULE_SETUP
7258 if (surfxml_bypassZoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassZoneRoute>");} surfxml_bypassZoneRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_bypassZoneRoute_src);
7259         YY_BREAK
7260 case 154:
7261 /* rule 154 can match eol */
7262 YY_RULE_SETUP
7263 if (surfxml_bypassZoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_bypassZoneRoute>");}  surfxml_bypassZoneRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_bypassZoneRoute_src);
7264         YY_BREAK
7265 case 155:
7266 YY_RULE_SETUP
7267 {
7268   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7269   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7270   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7271   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7272   LEAVE; STag_surfxml_bypassZoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassZoneRoute);
7273  }
7274         YY_BREAK
7275 case 156:
7276 YY_RULE_SETUP
7277 {
7278   if (!AX_surfxml_bypassZoneRoute_dst) FAIL("Required attribute `dst' not set for `bypassZoneRoute' element.");
7279   if (!AX_surfxml_bypassZoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassZoneRoute' element.");
7280   if (!AX_surfxml_bypassZoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassZoneRoute' element.");
7281   if (!AX_surfxml_bypassZoneRoute_src) FAIL("Required attribute `src' not set for `bypassZoneRoute' element.");
7282   LEAVE; STag_surfxml_bypassZoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassZoneRoute(); popbuffer(); /* attribute */
7283   switch (YY_START) {
7284    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
7285    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
7286   }
7287  }
7288         YY_BREAK
7289 case 157:
7290 YY_RULE_SETUP
7291 FAIL("Unexpected character `%c' in attribute list of bypassZoneRoute element.", surf_parse_text[0]);
7292         YY_BREAK
7293 case 158:
7294 YY_RULE_SETUP
7295 FAIL("Bad attribute `%s' in `bypassZoneRoute' element start tag.",surf_parse_text);
7296         YY_BREAK
7297 case YY_STATE_EOF(AL_surfxml_bypassZoneRoute):
7298 FAIL("EOF in attribute list of `bypassZoneRoute' element.");
7299         YY_BREAK
7300
7301 case 159:
7302 /* rule 159 can match eol */
7303 YY_RULE_SETUP
7304 {
7305   LEAVE;
7306   ETag_surfxml_bypassZoneRoute();
7307   popbuffer(); /* attribute */
7308   switch (YY_START) {
7309    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
7310    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
7311   }
7312  }
7313         YY_BREAK
7314 case 160:
7315 /* rule 160 can match eol */
7316 YY_RULE_SETUP
7317 FAIL("Unexpected end-tag `%s': `</bypassZoneRoute>' expected.",surf_parse_text);
7318         YY_BREAK
7319 case 161:
7320 YY_RULE_SETUP
7321 FAIL("Unexpected character `%c': `</bypassZoneRoute>' expected.",surf_parse_text[0]);
7322         YY_BREAK
7323 case YY_STATE_EOF(E_surfxml_bypassZoneRoute):
7324 case YY_STATE_EOF(S_surfxml_bypassZoneRoute):
7325 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_2):
7326 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassZoneRoute>' expected.");
7327         YY_BREAK
7328
7329 case 162:
7330 /* rule 162 can match eol */
7331 YY_RULE_SETUP
7332 FAIL("Starting tag <cabinet> is not allowed here.");
7333         YY_BREAK
7334 case 163:
7335 /* rule 163 can match eol */
7336 YY_RULE_SETUP
7337 {
7338   AX_surfxml_cabinet_bw = 0;
7339   surfxml_cabinet_bw_isset = 0;
7340   AX_surfxml_cabinet_id = 0;
7341   surfxml_cabinet_id_isset = 0;
7342   AX_surfxml_cabinet_lat = 0;
7343   surfxml_cabinet_lat_isset = 0;
7344   AX_surfxml_cabinet_prefix = 0;
7345   surfxml_cabinet_prefix_isset = 0;
7346   AX_surfxml_cabinet_radical = 0;
7347   surfxml_cabinet_radical_isset = 0;
7348   AX_surfxml_cabinet_speed = 0;
7349   surfxml_cabinet_speed_isset = 0;
7350   AX_surfxml_cabinet_suffix = 0;
7351   surfxml_cabinet_suffix_isset = 0;
7352   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7353   }
7354         YY_BREAK
7355
7356 case 164:
7357 /* rule 164 can match eol */
7358 YY_RULE_SETUP
7359 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);
7360         YY_BREAK
7361 case 165:
7362 /* rule 165 can match eol */
7363 YY_RULE_SETUP
7364 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);
7365         YY_BREAK
7366 case 166:
7367 /* rule 166 can match eol */
7368 YY_RULE_SETUP
7369 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);
7370         YY_BREAK
7371 case 167:
7372 /* rule 167 can match eol */
7373 YY_RULE_SETUP
7374 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);
7375         YY_BREAK
7376 case 168:
7377 /* rule 168 can match eol */
7378 YY_RULE_SETUP
7379 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);
7380         YY_BREAK
7381 case 169:
7382 /* rule 169 can match eol */
7383 YY_RULE_SETUP
7384 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);
7385         YY_BREAK
7386 case 170:
7387 /* rule 170 can match eol */
7388 YY_RULE_SETUP
7389 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);
7390         YY_BREAK
7391 case 171:
7392 /* rule 171 can match eol */
7393 YY_RULE_SETUP
7394 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);
7395         YY_BREAK
7396 case 172:
7397 /* rule 172 can match eol */
7398 YY_RULE_SETUP
7399 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);
7400         YY_BREAK
7401 case 173:
7402 /* rule 173 can match eol */
7403 YY_RULE_SETUP
7404 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);
7405         YY_BREAK
7406 case 174:
7407 /* rule 174 can match eol */
7408 YY_RULE_SETUP
7409 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");} surfxml_cabinet_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_speed);
7410         YY_BREAK
7411 case 175:
7412 /* rule 175 can match eol */
7413 YY_RULE_SETUP
7414 if (surfxml_cabinet_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cabinet>");}  surfxml_cabinet_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_speed);
7415         YY_BREAK
7416 case 176:
7417 /* rule 176 can match eol */
7418 YY_RULE_SETUP
7419 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);
7420         YY_BREAK
7421 case 177:
7422 /* rule 177 can match eol */
7423 YY_RULE_SETUP
7424 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);
7425         YY_BREAK
7426 case 178:
7427 YY_RULE_SETUP
7428 {
7429   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7430   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7431   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7432   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7433   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7434   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7435   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7436   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7437  }
7438         YY_BREAK
7439 case 179:
7440 YY_RULE_SETUP
7441 {
7442   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7443   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7444   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7445   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7446   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7447   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
7448   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7449   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7450   switch (YY_START) {
7451    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7452    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7453    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7454    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7455   }
7456  }
7457         YY_BREAK
7458 case 180:
7459 YY_RULE_SETUP
7460 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7461         YY_BREAK
7462 case 181:
7463 YY_RULE_SETUP
7464 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7465         YY_BREAK
7466 case YY_STATE_EOF(AL_surfxml_cabinet):
7467 FAIL("EOF in attribute list of `cabinet' element.");
7468         YY_BREAK
7469
7470 case 182:
7471 /* rule 182 can match eol */
7472 YY_RULE_SETUP
7473 {
7474   LEAVE;
7475   ETag_surfxml_cabinet();
7476   popbuffer(); /* attribute */
7477   switch (YY_START) {
7478    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7479    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7480    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7481    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7482   }
7483  }
7484         YY_BREAK
7485 case 183:
7486 /* rule 183 can match eol */
7487 YY_RULE_SETUP
7488 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7489         YY_BREAK
7490 case 184:
7491 YY_RULE_SETUP
7492 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7493         YY_BREAK
7494 case YY_STATE_EOF(E_surfxml_cabinet):
7495 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7496         YY_BREAK
7497
7498 case 185:
7499 /* rule 185 can match eol */
7500 YY_RULE_SETUP
7501 FAIL("Starting tag <cluster> is not allowed here.");
7502         YY_BREAK
7503 case 186:
7504 /* rule 186 can match eol */
7505 YY_RULE_SETUP
7506 {
7507   AX_surfxml_cluster_bb___bw = 0;
7508   surfxml_cluster_bb___bw_isset = 0;
7509   AX_surfxml_cluster_bb___lat = 42;
7510   surfxml_cluster_bb___lat_isset = 0;
7511   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7512   surfxml_cluster_bb___sharing___policy_isset = 0;
7513   AX_surfxml_cluster_bw = 0;
7514   surfxml_cluster_bw_isset = 0;
7515   AX_surfxml_cluster_core = 40;
7516   surfxml_cluster_core_isset = 0;
7517   AX_surfxml_cluster_id = 0;
7518   surfxml_cluster_id_isset = 0;
7519   AX_surfxml_cluster_lat = 0;
7520   surfxml_cluster_lat_isset = 0;
7521   AX_surfxml_cluster_limiter___link = 0;
7522   surfxml_cluster_limiter___link_isset = 0;
7523   AX_surfxml_cluster_loopback___bw = 0;
7524   surfxml_cluster_loopback___bw_isset = 0;
7525   AX_surfxml_cluster_loopback___lat = 0;
7526   surfxml_cluster_loopback___lat_isset = 0;
7527   AX_surfxml_cluster_prefix = 0;
7528   surfxml_cluster_prefix_isset = 0;
7529   AX_surfxml_cluster_radical = 0;
7530   surfxml_cluster_radical_isset = 0;
7531   AX_surfxml_cluster_router___id = 0;
7532   surfxml_cluster_router___id_isset = 0;
7533   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7534   surfxml_cluster_sharing___policy_isset = 0;
7535   AX_surfxml_cluster_speed = 0;
7536   surfxml_cluster_speed_isset = 0;
7537   AX_surfxml_cluster_suffix = 0;
7538   surfxml_cluster_suffix_isset = 0;
7539   AX_surfxml_cluster_topo___parameters = 0;
7540   surfxml_cluster_topo___parameters_isset = 0;
7541   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7542   surfxml_cluster_topology_isset = 0;
7543   ENTER(AL_surfxml_cluster); pushbuffer(0);
7544   }
7545         YY_BREAK
7546
7547 case 187:
7548 /* rule 187 can match eol */
7549 YY_RULE_SETUP
7550 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);
7551         YY_BREAK
7552 case 188:
7553 /* rule 188 can match eol */
7554 YY_RULE_SETUP
7555 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);
7556         YY_BREAK
7557 case 189:
7558 /* rule 189 can match eol */
7559 YY_RULE_SETUP
7560 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);
7561         YY_BREAK
7562 case 190:
7563 /* rule 190 can match eol */
7564 YY_RULE_SETUP
7565 if (surfxml_cluster_bb___lat_isset != 0) {FAIL("Multiple definition of attribute bb_lat in <surfxml_cluster>");}  surfxml_cluster_bb___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb___lat);
7566         YY_BREAK
7567 case 191:
7568 /* rule 191 can match eol */
7569 case 192:
7570 /* rule 192 can match eol */
7571 YY_RULE_SETUP
7572 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7573         YY_BREAK
7574 case 193:
7575 /* rule 193 can match eol */
7576 case 194:
7577 /* rule 194 can match eol */
7578 YY_RULE_SETUP
7579 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7580         YY_BREAK
7581 case 195:
7582 /* rule 195 can match eol */
7583 YY_RULE_SETUP
7584 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);
7585         YY_BREAK
7586 case 196:
7587 /* rule 196 can match eol */
7588 YY_RULE_SETUP
7589 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);
7590         YY_BREAK
7591 case 197:
7592 /* rule 197 can match eol */
7593 YY_RULE_SETUP
7594 if (surfxml_cluster_core_isset != 0) {FAIL("Multiple definition of attribute core in <surfxml_cluster>");} surfxml_cluster_core_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_core);
7595         YY_BREAK
7596 case 198:
7597 /* rule 198 can match eol */
7598 YY_RULE_SETUP
7599 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);
7600         YY_BREAK
7601 case 199:
7602 /* rule 199 can match eol */
7603 YY_RULE_SETUP
7604 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);
7605         YY_BREAK
7606 case 200:
7607 /* rule 200 can match eol */
7608 YY_RULE_SETUP
7609 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);
7610         YY_BREAK
7611 case 201:
7612 /* rule 201 can match eol */
7613 YY_RULE_SETUP
7614 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);
7615         YY_BREAK
7616 case 202:
7617 /* rule 202 can match eol */
7618 YY_RULE_SETUP
7619 if (surfxml_cluster_lat_isset != 0) {FAIL("Multiple definition of attribute lat in <surfxml_cluster>");}  surfxml_cluster_lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
7620         YY_BREAK
7621 case 203:
7622 /* rule 203 can match eol */
7623 YY_RULE_SETUP
7624 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");} surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_limiter___link);
7625         YY_BREAK
7626 case 204:
7627 /* rule 204 can match eol */
7628 YY_RULE_SETUP
7629 if (surfxml_cluster_limiter___link_isset != 0) {FAIL("Multiple definition of attribute limiter_link in <surfxml_cluster>");}  surfxml_cluster_limiter___link_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_limiter___link);
7630         YY_BREAK
7631 case 205:
7632 /* rule 205 can match eol */
7633 YY_RULE_SETUP
7634 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");} surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7635         YY_BREAK
7636 case 206:
7637 /* rule 206 can match eol */
7638 YY_RULE_SETUP
7639 if (surfxml_cluster_loopback___bw_isset != 0) {FAIL("Multiple definition of attribute loopback_bw in <surfxml_cluster>");}  surfxml_cluster_loopback___bw_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___bw);
7640         YY_BREAK
7641 case 207:
7642 /* rule 207 can match eol */
7643 YY_RULE_SETUP
7644 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");} surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7645         YY_BREAK
7646 case 208:
7647 /* rule 208 can match eol */
7648 YY_RULE_SETUP
7649 if (surfxml_cluster_loopback___lat_isset != 0) {FAIL("Multiple definition of attribute loopback_lat in <surfxml_cluster>");}  surfxml_cluster_loopback___lat_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_loopback___lat);
7650         YY_BREAK
7651 case 209:
7652 /* rule 209 can match eol */
7653 YY_RULE_SETUP
7654 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);
7655         YY_BREAK
7656 case 210:
7657 /* rule 210 can match eol */
7658 YY_RULE_SETUP
7659 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);
7660         YY_BREAK
7661 case 211:
7662 /* rule 211 can match eol */
7663 YY_RULE_SETUP
7664 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");} surfxml_cluster_radical_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
7665         YY_BREAK
7666 case 212:
7667 /* rule 212 can match eol */
7668 YY_RULE_SETUP
7669 if (surfxml_cluster_radical_isset != 0) {FAIL("Multiple definition of attribute radical in <surfxml_cluster>");}  surfxml_cluster_radical_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
7670         YY_BREAK
7671 case 213:
7672 /* rule 213 can match eol */
7673 YY_RULE_SETUP
7674 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");} surfxml_cluster_router___id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_router___id);
7675         YY_BREAK
7676 case 214:
7677 /* rule 214 can match eol */
7678 YY_RULE_SETUP
7679 if (surfxml_cluster_router___id_isset != 0) {FAIL("Multiple definition of attribute router_id in <surfxml_cluster>");}  surfxml_cluster_router___id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_router___id);
7680         YY_BREAK
7681 case 215:
7682 /* rule 215 can match eol */
7683 case 216:
7684 /* rule 216 can match eol */
7685 YY_RULE_SETUP
7686 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7687         YY_BREAK
7688 case 217:
7689 /* rule 217 can match eol */
7690 case 218:
7691 /* rule 218 can match eol */
7692 YY_RULE_SETUP
7693 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7694         YY_BREAK
7695 case 219:
7696 /* rule 219 can match eol */
7697 case 220:
7698 /* rule 220 can match eol */
7699 YY_RULE_SETUP
7700 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7701         YY_BREAK
7702 case 221:
7703 /* rule 221 can match eol */
7704 YY_RULE_SETUP
7705 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");} surfxml_cluster_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_speed);
7706         YY_BREAK
7707 case 222:
7708 /* rule 222 can match eol */
7709 YY_RULE_SETUP
7710 if (surfxml_cluster_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_cluster>");}  surfxml_cluster_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_speed);
7711         YY_BREAK
7712 case 223:
7713 /* rule 223 can match eol */
7714 YY_RULE_SETUP
7715 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);
7716         YY_BREAK
7717 case 224:
7718 /* rule 224 can match eol */
7719 YY_RULE_SETUP
7720 if (surfxml_cluster_suffix_isset != 0) {FAIL("Multiple definition of attribute suffix in <surfxml_cluster>");}  surfxml_cluster_suffix_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
7721         YY_BREAK
7722 case 225:
7723 /* rule 225 can match eol */
7724 YY_RULE_SETUP
7725 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");} surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_topo___parameters);
7726         YY_BREAK
7727 case 226:
7728 /* rule 226 can match eol */
7729 YY_RULE_SETUP
7730 if (surfxml_cluster_topo___parameters_isset != 0) {FAIL("Multiple definition of attribute topo_parameters in <surfxml_cluster>");}  surfxml_cluster_topo___parameters_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_topo___parameters);
7731         YY_BREAK
7732 case 227:
7733 /* rule 227 can match eol */
7734 case 228:
7735 /* rule 228 can match eol */
7736 YY_RULE_SETUP
7737 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
7738         YY_BREAK
7739 case 229:
7740 /* rule 229 can match eol */
7741 case 230:
7742 /* rule 230 can match eol */
7743 YY_RULE_SETUP
7744 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
7745         YY_BREAK
7746 case 231:
7747 /* rule 231 can match eol */
7748 case 232:
7749 /* rule 232 can match eol */
7750 YY_RULE_SETUP
7751 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
7752         YY_BREAK
7753 case 233:
7754 /* rule 233 can match eol */
7755 case 234:
7756 /* rule 234 can match eol */
7757 YY_RULE_SETUP
7758 A_surfxml_cluster_topology = A_surfxml_cluster_topology_DRAGONFLY;
7759         YY_BREAK
7760 case 235:
7761 YY_RULE_SETUP
7762 {
7763   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7764   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7765   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7766   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7767   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7768   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
7769   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7770   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7771  }
7772         YY_BREAK
7773 case 236:
7774 YY_RULE_SETUP
7775 {
7776   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7777   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7778   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7779   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7780   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7781   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
7782   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7783   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7784   switch (YY_START) {
7785    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7786    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7787    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7788    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7789   }
7790  }
7791         YY_BREAK
7792 case 237:
7793 YY_RULE_SETUP
7794 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7795         YY_BREAK
7796 case 238:
7797 YY_RULE_SETUP
7798 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7799         YY_BREAK
7800 case YY_STATE_EOF(AL_surfxml_cluster):
7801 FAIL("EOF in attribute list of `cluster' element.");
7802         YY_BREAK
7803
7804 case 239:
7805 /* rule 239 can match eol */
7806 YY_RULE_SETUP
7807 {
7808   LEAVE;
7809   ETag_surfxml_cluster();
7810   popbuffer(); /* attribute */
7811   switch (YY_START) {
7812    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7813    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7814    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
7815    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
7816   }
7817  }
7818         YY_BREAK
7819 case 240:
7820 /* rule 240 can match eol */
7821 YY_RULE_SETUP
7822 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7823         YY_BREAK
7824 case 241:
7825 YY_RULE_SETUP
7826 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7827         YY_BREAK
7828 case YY_STATE_EOF(E_surfxml_cluster):
7829 case YY_STATE_EOF(S_surfxml_cluster):
7830 case YY_STATE_EOF(S_surfxml_cluster_2):
7831 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7832         YY_BREAK
7833
7834 case 242:
7835 /* rule 242 can match eol */
7836 YY_RULE_SETUP
7837 FAIL("Starting tag <config> is not allowed here.");
7838         YY_BREAK
7839 case 243:
7840 /* rule 243 can match eol */
7841 YY_RULE_SETUP
7842 {
7843   AX_surfxml_config_id = 0;
7844   surfxml_config_id_isset = 0;
7845   ENTER(AL_surfxml_config); pushbuffer(0);
7846   }
7847         YY_BREAK
7848
7849 case 244:
7850 /* rule 244 can match eol */
7851 YY_RULE_SETUP
7852 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);
7853         YY_BREAK
7854 case 245:
7855 /* rule 245 can match eol */
7856 YY_RULE_SETUP
7857 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);
7858         YY_BREAK
7859 case 246:
7860 YY_RULE_SETUP
7861 {
7862   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
7863  }
7864         YY_BREAK
7865 case 247:
7866 YY_RULE_SETUP
7867 {
7868   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
7869   switch (YY_START) {
7870    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7871   }
7872  }
7873         YY_BREAK
7874 case 248:
7875 YY_RULE_SETUP
7876 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
7877         YY_BREAK
7878 case 249:
7879 YY_RULE_SETUP
7880 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
7881         YY_BREAK
7882 case YY_STATE_EOF(AL_surfxml_config):
7883 FAIL("EOF in attribute list of `config' element.");
7884         YY_BREAK
7885
7886 case 250:
7887 /* rule 250 can match eol */
7888 YY_RULE_SETUP
7889 {
7890   LEAVE;
7891   ETag_surfxml_config();
7892   popbuffer(); /* attribute */
7893   switch (YY_START) {
7894    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
7895   }
7896  }
7897         YY_BREAK
7898 case 251:
7899 /* rule 251 can match eol */
7900 YY_RULE_SETUP
7901 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
7902         YY_BREAK
7903 case 252:
7904 YY_RULE_SETUP
7905 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
7906         YY_BREAK
7907 case YY_STATE_EOF(E_surfxml_config):
7908 case YY_STATE_EOF(S_surfxml_config):
7909 case YY_STATE_EOF(S_surfxml_config_2):
7910 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
7911         YY_BREAK
7912
7913 case 253:
7914 /* rule 253 can match eol */
7915 YY_RULE_SETUP
7916 FAIL("Starting tag <host> is not allowed here.");
7917         YY_BREAK
7918 case 254:
7919 /* rule 254 can match eol */
7920 YY_RULE_SETUP
7921 {
7922   AX_surfxml_host_availability___file = 0;
7923   surfxml_host_availability___file_isset = 0;
7924   AX_surfxml_host_coordinates = 0;
7925   surfxml_host_coordinates_isset = 0;
7926   AX_surfxml_host_core = 25;
7927   surfxml_host_core_isset = 0;
7928   AX_surfxml_host_id = 0;
7929   surfxml_host_id_isset = 0;
7930   AX_surfxml_host_pstate = 27;
7931   surfxml_host_pstate_isset = 0;
7932   AX_surfxml_host_speed = 0;
7933   surfxml_host_speed_isset = 0;
7934   AX_surfxml_host_state___file = 0;
7935   surfxml_host_state___file_isset = 0;
7936   ENTER(AL_surfxml_host); pushbuffer(0);
7937   }
7938         YY_BREAK
7939
7940 case 255:
7941 /* rule 255 can match eol */
7942 YY_RULE_SETUP
7943 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);
7944         YY_BREAK
7945 case 256:
7946 /* rule 256 can match eol */
7947 YY_RULE_SETUP
7948 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);
7949         YY_BREAK
7950 case 257:
7951 /* rule 257 can match eol */
7952 YY_RULE_SETUP
7953 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);
7954         YY_BREAK
7955 case 258:
7956 /* rule 258 can match eol */
7957 YY_RULE_SETUP
7958 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);
7959         YY_BREAK
7960 case 259:
7961 /* rule 259 can match eol */
7962 YY_RULE_SETUP
7963 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);
7964         YY_BREAK
7965 case 260:
7966 /* rule 260 can match eol */
7967 YY_RULE_SETUP
7968 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);
7969         YY_BREAK
7970 case 261:
7971 /* rule 261 can match eol */
7972 YY_RULE_SETUP
7973 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);
7974         YY_BREAK
7975 case 262:
7976 /* rule 262 can match eol */
7977 YY_RULE_SETUP
7978 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);
7979         YY_BREAK
7980 case 263:
7981 /* rule 263 can match eol */
7982 YY_RULE_SETUP
7983 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");} surfxml_host_pstate_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_pstate);
7984         YY_BREAK
7985 case 264:
7986 /* rule 264 can match eol */
7987 YY_RULE_SETUP
7988 if (surfxml_host_pstate_isset != 0) {FAIL("Multiple definition of attribute pstate in <surfxml_host>");}  surfxml_host_pstate_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_pstate);
7989         YY_BREAK
7990 case 265:
7991 /* rule 265 can match eol */
7992 YY_RULE_SETUP
7993 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");} surfxml_host_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_speed);
7994         YY_BREAK
7995 case 266:
7996 /* rule 266 can match eol */
7997 YY_RULE_SETUP
7998 if (surfxml_host_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_host>");}  surfxml_host_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_speed);
7999         YY_BREAK
8000 case 267:
8001 /* rule 267 can match eol */
8002 YY_RULE_SETUP
8003 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);
8004         YY_BREAK
8005 case 268:
8006 /* rule 268 can match eol */
8007 YY_RULE_SETUP
8008 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);
8009         YY_BREAK
8010 case 269:
8011 YY_RULE_SETUP
8012 {
8013   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
8014   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
8015   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
8016  }
8017         YY_BREAK
8018 case 270:
8019 YY_RULE_SETUP
8020 {
8021   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
8022   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
8023   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
8024   switch (YY_START) {
8025    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8026    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8027   }
8028  }
8029         YY_BREAK
8030 case 271:
8031 YY_RULE_SETUP
8032 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
8033         YY_BREAK
8034 case 272:
8035 YY_RULE_SETUP
8036 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
8037         YY_BREAK
8038 case YY_STATE_EOF(AL_surfxml_host):
8039 FAIL("EOF in attribute list of `host' element.");
8040         YY_BREAK
8041
8042 case 273:
8043 /* rule 273 can match eol */
8044 YY_RULE_SETUP
8045 {
8046   LEAVE;
8047   ETag_surfxml_host();
8048   popbuffer(); /* attribute */
8049   switch (YY_START) {
8050    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8051    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8052   }
8053  }
8054         YY_BREAK
8055 case 274:
8056 /* rule 274 can match eol */
8057 YY_RULE_SETUP
8058 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
8059         YY_BREAK
8060 case 275:
8061 YY_RULE_SETUP
8062 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
8063         YY_BREAK
8064 case YY_STATE_EOF(E_surfxml_host):
8065 case YY_STATE_EOF(S_surfxml_host):
8066 case YY_STATE_EOF(S_surfxml_host_2):
8067 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
8068         YY_BREAK
8069
8070 case 276:
8071 /* rule 276 can match eol */
8072 YY_RULE_SETUP
8073 FAIL("Starting tag <host_link> is not allowed here.");
8074         YY_BREAK
8075 case 277:
8076 /* rule 277 can match eol */
8077 YY_RULE_SETUP
8078 {
8079   AX_surfxml_host___link_down = 0;
8080   surfxml_host___link_down_isset = 0;
8081   AX_surfxml_host___link_id = 0;
8082   surfxml_host___link_id_isset = 0;
8083   AX_surfxml_host___link_up = 0;
8084   surfxml_host___link_up_isset = 0;
8085   ENTER(AL_surfxml_host___link); pushbuffer(0);
8086   }
8087         YY_BREAK
8088
8089 case 278:
8090 /* rule 278 can match eol */
8091 YY_RULE_SETUP
8092 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);
8093         YY_BREAK
8094 case 279:
8095 /* rule 279 can match eol */
8096 YY_RULE_SETUP
8097 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);
8098         YY_BREAK
8099 case 280:
8100 /* rule 280 can match eol */
8101 YY_RULE_SETUP
8102 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);
8103         YY_BREAK
8104 case 281:
8105 /* rule 281 can match eol */
8106 YY_RULE_SETUP
8107 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);
8108         YY_BREAK
8109 case 282:
8110 /* rule 282 can match eol */
8111 YY_RULE_SETUP
8112 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);
8113         YY_BREAK
8114 case 283:
8115 /* rule 283 can match eol */
8116 YY_RULE_SETUP
8117 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);
8118         YY_BREAK
8119 case 284:
8120 YY_RULE_SETUP
8121 {
8122   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8123   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8124   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8125   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
8126  }
8127         YY_BREAK
8128 case 285:
8129 YY_RULE_SETUP
8130 {
8131   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
8132   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
8133   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
8134   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
8135   switch (YY_START) {
8136    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8137    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8138   }
8139  }
8140         YY_BREAK
8141 case 286:
8142 YY_RULE_SETUP
8143 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
8144         YY_BREAK
8145 case 287:
8146 YY_RULE_SETUP
8147 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
8148         YY_BREAK
8149 case YY_STATE_EOF(AL_surfxml_host___link):
8150 FAIL("EOF in attribute list of `host_link' element.");
8151         YY_BREAK
8152
8153 case 288:
8154 /* rule 288 can match eol */
8155 YY_RULE_SETUP
8156 {
8157   LEAVE;
8158   ETag_surfxml_host___link();
8159   popbuffer(); /* attribute */
8160   switch (YY_START) {
8161    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8162    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8163   }
8164  }
8165         YY_BREAK
8166 case 289:
8167 /* rule 289 can match eol */
8168 YY_RULE_SETUP
8169 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
8170         YY_BREAK
8171 case 290:
8172 YY_RULE_SETUP
8173 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
8174         YY_BREAK
8175 case YY_STATE_EOF(E_surfxml_host___link):
8176 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
8177         YY_BREAK
8178
8179 case 291:
8180 /* rule 291 can match eol */
8181 YY_RULE_SETUP
8182 FAIL("Starting tag <include> is not allowed here.");
8183         YY_BREAK
8184 case 292:
8185 /* rule 292 can match eol */
8186 YY_RULE_SETUP
8187 {
8188   AX_surfxml_include_file = 0;
8189   surfxml_include_file_isset = 0;
8190   ENTER(AL_surfxml_include); pushbuffer(0);
8191   }
8192         YY_BREAK
8193
8194 case 293:
8195 /* rule 293 can match eol */
8196 YY_RULE_SETUP
8197 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);
8198         YY_BREAK
8199 case 294:
8200 /* rule 294 can match eol */
8201 YY_RULE_SETUP
8202 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);
8203         YY_BREAK
8204 case 295:
8205 YY_RULE_SETUP
8206 {
8207   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8208   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
8209  }
8210         YY_BREAK
8211 case 296:
8212 YY_RULE_SETUP
8213 {
8214   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
8215   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
8216   switch (YY_START) {
8217    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8218    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8219    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8220    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8221   }
8222  }
8223         YY_BREAK
8224 case 297:
8225 YY_RULE_SETUP
8226 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
8227         YY_BREAK
8228 case 298:
8229 YY_RULE_SETUP
8230 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
8231         YY_BREAK
8232 case YY_STATE_EOF(AL_surfxml_include):
8233 FAIL("EOF in attribute list of `include' element.");
8234         YY_BREAK
8235
8236 case 299:
8237 /* rule 299 can match eol */
8238 YY_RULE_SETUP
8239 {
8240   LEAVE;
8241   ETag_surfxml_include();
8242   popbuffer(); /* attribute */
8243   switch (YY_START) {
8244    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8245    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8246    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8247    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8248   }
8249  }
8250         YY_BREAK
8251 case 300:
8252 /* rule 300 can match eol */
8253 YY_RULE_SETUP
8254 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
8255         YY_BREAK
8256 case 301:
8257 YY_RULE_SETUP
8258 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
8259         YY_BREAK
8260 case YY_STATE_EOF(E_surfxml_include):
8261 case YY_STATE_EOF(S_surfxml_include):
8262 case YY_STATE_EOF(S_surfxml_include_2):
8263 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
8264         YY_BREAK
8265
8266 case 302:
8267 /* rule 302 can match eol */
8268 YY_RULE_SETUP
8269 FAIL("Starting tag <link> is not allowed here.");
8270         YY_BREAK
8271 case 303:
8272 /* rule 303 can match eol */
8273 YY_RULE_SETUP
8274 {
8275   AX_surfxml_link_bandwidth = 0;
8276   surfxml_link_bandwidth_isset = 0;
8277   AX_surfxml_link_bandwidth___file = 0;
8278   surfxml_link_bandwidth___file_isset = 0;
8279   AX_surfxml_link_id = 0;
8280   surfxml_link_id_isset = 0;
8281   AX_surfxml_link_latency = 0;
8282   surfxml_link_latency_isset = 0;
8283   AX_surfxml_link_latency___file = 0;
8284   surfxml_link_latency___file_isset = 0;
8285   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8286   surfxml_link_sharing___policy_isset = 0;
8287   AX_surfxml_link_state___file = 0;
8288   surfxml_link_state___file_isset = 0;
8289   ENTER(AL_surfxml_link); pushbuffer(0);
8290   }
8291         YY_BREAK
8292
8293 case 304:
8294 /* rule 304 can match eol */
8295 YY_RULE_SETUP
8296 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);
8297         YY_BREAK
8298 case 305:
8299 /* rule 305 can match eol */
8300 YY_RULE_SETUP
8301 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);
8302         YY_BREAK
8303 case 306:
8304 /* rule 306 can match eol */
8305 YY_RULE_SETUP
8306 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);
8307         YY_BREAK
8308 case 307:
8309 /* rule 307 can match eol */
8310 YY_RULE_SETUP
8311 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);
8312         YY_BREAK
8313 case 308:
8314 /* rule 308 can match eol */
8315 YY_RULE_SETUP
8316 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);
8317         YY_BREAK
8318 case 309:
8319 /* rule 309 can match eol */
8320 YY_RULE_SETUP
8321 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);
8322         YY_BREAK
8323 case 310:
8324 /* rule 310 can match eol */
8325 YY_RULE_SETUP
8326 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);
8327         YY_BREAK
8328 case 311:
8329 /* rule 311 can match eol */
8330 YY_RULE_SETUP
8331 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);
8332         YY_BREAK
8333 case 312:
8334 /* rule 312 can match eol */
8335 YY_RULE_SETUP
8336 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);
8337         YY_BREAK
8338 case 313:
8339 /* rule 313 can match eol */
8340 YY_RULE_SETUP
8341 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);
8342         YY_BREAK
8343 case 314:
8344 /* rule 314 can match eol */
8345 case 315:
8346 /* rule 315 can match eol */
8347 YY_RULE_SETUP
8348 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8349         YY_BREAK
8350 case 316:
8351 /* rule 316 can match eol */
8352 case 317:
8353 /* rule 317 can match eol */
8354 YY_RULE_SETUP
8355 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8356         YY_BREAK
8357 case 318:
8358 /* rule 318 can match eol */
8359 case 319:
8360 /* rule 319 can match eol */
8361 YY_RULE_SETUP
8362 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8363         YY_BREAK
8364 case 320:
8365 /* rule 320 can match eol */
8366 YY_RULE_SETUP
8367 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);
8368         YY_BREAK
8369 case 321:
8370 /* rule 321 can match eol */
8371 YY_RULE_SETUP
8372 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);
8373         YY_BREAK
8374 case 322:
8375 YY_RULE_SETUP
8376 {
8377   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8378   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8379   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8380  }
8381         YY_BREAK
8382 case 323:
8383 YY_RULE_SETUP
8384 {
8385   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8386   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8387   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8388   switch (YY_START) {
8389    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8390    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8391   }
8392  }
8393         YY_BREAK
8394 case 324:
8395 YY_RULE_SETUP
8396 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8397         YY_BREAK
8398 case 325:
8399 YY_RULE_SETUP
8400 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8401         YY_BREAK
8402 case YY_STATE_EOF(AL_surfxml_link):
8403 FAIL("EOF in attribute list of `link' element.");
8404         YY_BREAK
8405
8406 case 326:
8407 /* rule 326 can match eol */
8408 YY_RULE_SETUP
8409 {
8410   LEAVE;
8411   ETag_surfxml_link();
8412   popbuffer(); /* attribute */
8413   switch (YY_START) {
8414    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8415    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8416   }
8417  }
8418         YY_BREAK
8419 case 327:
8420 /* rule 327 can match eol */
8421 YY_RULE_SETUP
8422 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8423         YY_BREAK
8424 case 328:
8425 YY_RULE_SETUP
8426 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8427         YY_BREAK
8428 case YY_STATE_EOF(E_surfxml_link):
8429 case YY_STATE_EOF(S_surfxml_link):
8430 case YY_STATE_EOF(S_surfxml_link_2):
8431 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8432         YY_BREAK
8433
8434 case 329:
8435 /* rule 329 can match eol */
8436 YY_RULE_SETUP
8437 FAIL("Starting tag <link_ctn> is not allowed here.");
8438         YY_BREAK
8439 case 330:
8440 /* rule 330 can match eol */
8441 YY_RULE_SETUP
8442 {
8443   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8444   surfxml_link___ctn_direction_isset = 0;
8445   AX_surfxml_link___ctn_id = 0;
8446   surfxml_link___ctn_id_isset = 0;
8447   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8448   }
8449         YY_BREAK
8450
8451 case 331:
8452 /* rule 331 can match eol */
8453 case 332:
8454 /* rule 332 can match eol */
8455 YY_RULE_SETUP
8456 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8457         YY_BREAK
8458 case 333:
8459 /* rule 333 can match eol */
8460 case 334:
8461 /* rule 334 can match eol */
8462 YY_RULE_SETUP
8463 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8464         YY_BREAK
8465 case 335:
8466 /* rule 335 can match eol */
8467 case 336:
8468 /* rule 336 can match eol */
8469 YY_RULE_SETUP
8470 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8471         YY_BREAK
8472 case 337:
8473 /* rule 337 can match eol */
8474 YY_RULE_SETUP
8475 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);
8476         YY_BREAK
8477 case 338:
8478 /* rule 338 can match eol */
8479 YY_RULE_SETUP
8480 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);
8481         YY_BREAK
8482 case 339:
8483 YY_RULE_SETUP
8484 {
8485   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8486   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8487  }
8488         YY_BREAK
8489 case 340:
8490 YY_RULE_SETUP
8491 {
8492   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8493   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8494   switch (YY_START) {
8495    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8496    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8497    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8498    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8499    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8500    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8501   }
8502  }
8503         YY_BREAK
8504 case 341:
8505 YY_RULE_SETUP
8506 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8507         YY_BREAK
8508 case 342:
8509 YY_RULE_SETUP
8510 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8511         YY_BREAK
8512 case YY_STATE_EOF(AL_surfxml_link___ctn):
8513 FAIL("EOF in attribute list of `link_ctn' element.");
8514         YY_BREAK
8515
8516 case 343:
8517 /* rule 343 can match eol */
8518 YY_RULE_SETUP
8519 {
8520   LEAVE;
8521   ETag_surfxml_link___ctn();
8522   popbuffer(); /* attribute */
8523   switch (YY_START) {
8524    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
8525    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8526    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
8527    case S_surfxml_bypassZoneRoute: case S_surfxml_bypassZoneRoute_1: case S_surfxml_bypassZoneRoute_2: SET(S_surfxml_bypassZoneRoute_2); break;
8528    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
8529    case S_surfxml_zoneRoute: case S_surfxml_zoneRoute_1: case S_surfxml_zoneRoute_2: SET(S_surfxml_zoneRoute_2); break;
8530   }
8531  }
8532         YY_BREAK
8533 case 344:
8534 /* rule 344 can match eol */
8535 YY_RULE_SETUP
8536 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8537         YY_BREAK
8538 case 345:
8539 YY_RULE_SETUP
8540 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8541         YY_BREAK
8542 case YY_STATE_EOF(E_surfxml_link___ctn):
8543 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8544         YY_BREAK
8545
8546 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
8547   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
8548 case 346:
8549 /* rule 346 can match eol */
8550 YY_RULE_SETUP
8551 FAIL("Starting tag <model_prop> is not allowed here.");
8552         YY_BREAK
8553 case 347:
8554 /* rule 347 can match eol */
8555 YY_RULE_SETUP
8556 {
8557   AX_surfxml_model___prop_id = 0;
8558   surfxml_model___prop_id_isset = 0;
8559   AX_surfxml_model___prop_value = 0;
8560   surfxml_model___prop_value_isset = 0;
8561   ENTER(AL_surfxml_model___prop); pushbuffer(0);
8562   }
8563         YY_BREAK
8564
8565 case 348:
8566 /* rule 348 can match eol */
8567 YY_RULE_SETUP
8568 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");} surfxml_model___prop_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_id);
8569         YY_BREAK
8570 case 349:
8571 /* rule 349 can match eol */
8572 YY_RULE_SETUP
8573 if (surfxml_model___prop_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_model___prop>");}  surfxml_model___prop_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_id);
8574         YY_BREAK
8575 case 350:
8576 /* rule 350 can match eol */
8577 YY_RULE_SETUP
8578 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");} surfxml_model___prop_value_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_model___prop_value);
8579         YY_BREAK
8580 case 351:
8581 /* rule 351 can match eol */
8582 YY_RULE_SETUP
8583 if (surfxml_model___prop_value_isset != 0) {FAIL("Multiple definition of attribute value in <surfxml_model___prop>");}  surfxml_model___prop_value_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_model___prop_value);
8584         YY_BREAK
8585 case 352:
8586 YY_RULE_SETUP
8587 {
8588   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
8589   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
8590   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
8591  }
8592         YY_BREAK
8593 case 353:
8594 YY_RULE_SETUP
8595 {
8596   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
8597   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
8598   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
8599   switch (YY_START) {
8600    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8601   }
8602  }
8603         YY_BREAK
8604 case 354:
8605 YY_RULE_SETUP
8606 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
8607         YY_BREAK
8608 case 355:
8609 YY_RULE_SETUP
8610 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
8611         YY_BREAK
8612 case YY_STATE_EOF(AL_surfxml_model___prop):
8613 FAIL("EOF in attribute list of `model_prop' element.");
8614         YY_BREAK
8615
8616 case 356:
8617 /* rule 356 can match eol */
8618 YY_RULE_SETUP
8619 {
8620   LEAVE;
8621   ETag_surfxml_model___prop();
8622   popbuffer(); /* attribute */
8623   switch (YY_START) {
8624    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8625   }
8626  }
8627         YY_BREAK
8628 case 357:
8629 /* rule 357 can match eol */
8630 YY_RULE_SETUP
8631 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
8632         YY_BREAK
8633 case 358:
8634 YY_RULE_SETUP
8635 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
8636         YY_BREAK
8637 case YY_STATE_EOF(E_surfxml_model___prop):
8638 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
8639         YY_BREAK
8640
8641 case 359:
8642 /* rule 359 can match eol */
8643 YY_RULE_SETUP
8644 FAIL("Starting tag <mount> is not allowed here.");
8645         YY_BREAK
8646 case 360:
8647 /* rule 360 can match eol */
8648 YY_RULE_SETUP
8649 {
8650   AX_surfxml_mount_name = 0;
8651   surfxml_mount_name_isset = 0;
8652   AX_surfxml_mount_storageId = 0;
8653   surfxml_mount_storageId_isset = 0;
8654   ENTER(AL_surfxml_mount); pushbuffer(0);
8655   }
8656         YY_BREAK
8657
8658 case 361:
8659 /* rule 361 can match eol */
8660 YY_RULE_SETUP
8661 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);
8662         YY_BREAK
8663 case 362:
8664 /* rule 362 can match eol */
8665 YY_RULE_SETUP
8666 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);
8667         YY_BREAK
8668 case 363:
8669 /* rule 363 can match eol */
8670 YY_RULE_SETUP
8671 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");} surfxml_mount_storageId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mount_storageId);
8672         YY_BREAK
8673 case 364:
8674 /* rule 364 can match eol */
8675 YY_RULE_SETUP
8676 if (surfxml_mount_storageId_isset != 0) {FAIL("Multiple definition of attribute storageId in <surfxml_mount>");}  surfxml_mount_storageId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mount_storageId);
8677         YY_BREAK
8678 case 365:
8679 YY_RULE_SETUP
8680 {
8681   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
8682   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
8683   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
8684  }
8685         YY_BREAK
8686 case 366:
8687 YY_RULE_SETUP
8688 {
8689   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
8690   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
8691   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
8692   switch (YY_START) {
8693    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8694   }
8695  }
8696         YY_BREAK
8697 case 367:
8698 YY_RULE_SETUP
8699 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
8700         YY_BREAK
8701 case 368:
8702 YY_RULE_SETUP
8703 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
8704         YY_BREAK
8705 case YY_STATE_EOF(AL_surfxml_mount):
8706 FAIL("EOF in attribute list of `mount' element.");
8707         YY_BREAK
8708
8709 case 369:
8710 /* rule 369 can match eol */
8711 YY_RULE_SETUP
8712 {
8713   LEAVE;
8714   ETag_surfxml_mount();
8715   popbuffer(); /* attribute */
8716   switch (YY_START) {
8717    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8718   }
8719  }
8720         YY_BREAK
8721 case 370:
8722 /* rule 370 can match eol */
8723 YY_RULE_SETUP
8724 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
8725         YY_BREAK
8726 case 371:
8727 YY_RULE_SETUP
8728 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
8729         YY_BREAK
8730 case YY_STATE_EOF(E_surfxml_mount):
8731 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
8732         YY_BREAK
8733
8734 case 372:
8735 /* rule 372 can match eol */
8736 YY_RULE_SETUP
8737 FAIL("Starting tag <peer> is not allowed here.");
8738         YY_BREAK
8739 case 373:
8740 /* rule 373 can match eol */
8741 YY_RULE_SETUP
8742 {
8743   AX_surfxml_peer_availability___file = 0;
8744   surfxml_peer_availability___file_isset = 0;
8745   AX_surfxml_peer_bw___in = 0;
8746   surfxml_peer_bw___in_isset = 0;
8747   AX_surfxml_peer_bw___out = 0;
8748   surfxml_peer_bw___out_isset = 0;
8749   AX_surfxml_peer_coordinates = 0;
8750   surfxml_peer_coordinates_isset = 0;
8751   AX_surfxml_peer_id = 0;
8752   surfxml_peer_id_isset = 0;
8753   AX_surfxml_peer_lat = 0;
8754   surfxml_peer_lat_isset = 0;
8755   AX_surfxml_peer_speed = 0;
8756   surfxml_peer_speed_isset = 0;
8757   AX_surfxml_peer_state___file = 0;
8758   surfxml_peer_state___file_isset = 0;
8759   ENTER(AL_surfxml_peer); pushbuffer(0);
8760   }
8761         YY_BREAK
8762
8763 case 374:
8764 /* rule 374 can match eol */
8765 YY_RULE_SETUP
8766 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);
8767         YY_BREAK
8768 case 375:
8769 /* rule 375 can match eol */
8770 YY_RULE_SETUP
8771 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);
8772         YY_BREAK
8773 case 376:
8774 /* rule 376 can match eol */
8775 YY_RULE_SETUP
8776 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);
8777         YY_BREAK
8778 case 377:
8779 /* rule 377 can match eol */
8780 YY_RULE_SETUP
8781 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);
8782         YY_BREAK
8783 case 378:
8784 /* rule 378 can match eol */
8785 YY_RULE_SETUP
8786 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);
8787         YY_BREAK
8788 case 379:
8789 /* rule 379 can match eol */
8790 YY_RULE_SETUP
8791 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);
8792         YY_BREAK
8793 case 380:
8794 /* rule 380 can match eol */
8795 YY_RULE_SETUP
8796 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);
8797         YY_BREAK
8798 case 381:
8799 /* rule 381 can match eol */
8800 YY_RULE_SETUP
8801 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);
8802         YY_BREAK
8803 case 382:
8804 /* rule 382 can match eol */
8805 YY_RULE_SETUP
8806 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);
8807         YY_BREAK
8808 case 383:
8809 /* rule 383 can match eol */
8810 YY_RULE_SETUP
8811 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);
8812         YY_BREAK
8813 case 384:
8814 /* rule 384 can match eol */
8815 YY_RULE_SETUP
8816 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);
8817         YY_BREAK
8818 case 385:
8819 /* rule 385 can match eol */
8820 YY_RULE_SETUP
8821 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);
8822         YY_BREAK
8823 case 386:
8824 /* rule 386 can match eol */
8825 YY_RULE_SETUP
8826 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");} surfxml_peer_speed_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_speed);
8827         YY_BREAK
8828 case 387:
8829 /* rule 387 can match eol */
8830 YY_RULE_SETUP
8831 if (surfxml_peer_speed_isset != 0) {FAIL("Multiple definition of attribute speed in <surfxml_peer>");}  surfxml_peer_speed_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_speed);
8832         YY_BREAK
8833 case 388:
8834 /* rule 388 can match eol */
8835 YY_RULE_SETUP
8836 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);
8837         YY_BREAK
8838 case 389:
8839 /* rule 389 can match eol */
8840 YY_RULE_SETUP
8841 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);
8842         YY_BREAK
8843 case 390:
8844 YY_RULE_SETUP
8845 {
8846   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8847   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8848   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8849   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
8850   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
8851  }
8852         YY_BREAK
8853 case 391:
8854 YY_RULE_SETUP
8855 {
8856   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
8857   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
8858   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
8859   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
8860   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
8861   switch (YY_START) {
8862    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8863    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8864    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8865    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8866   }
8867  }
8868         YY_BREAK
8869 case 392:
8870 YY_RULE_SETUP
8871 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
8872         YY_BREAK
8873 case 393:
8874 YY_RULE_SETUP
8875 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
8876         YY_BREAK
8877 case YY_STATE_EOF(AL_surfxml_peer):
8878 FAIL("EOF in attribute list of `peer' element.");
8879         YY_BREAK
8880
8881 case 394:
8882 /* rule 394 can match eol */
8883 YY_RULE_SETUP
8884 {
8885   LEAVE;
8886   ETag_surfxml_peer();
8887   popbuffer(); /* attribute */
8888   switch (YY_START) {
8889    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
8890    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8891    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
8892    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
8893   }
8894  }
8895         YY_BREAK
8896 case 395:
8897 /* rule 395 can match eol */
8898 YY_RULE_SETUP
8899 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
8900         YY_BREAK
8901 case 396:
8902 YY_RULE_SETUP
8903 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
8904         YY_BREAK
8905 case YY_STATE_EOF(E_surfxml_peer):
8906 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
8907         YY_BREAK
8908
8909 /* <!-- 
8910   *              DTD of SimGrid platform and deployment files.
8911   * More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
8912   * To upgrade your files, use the tool simgrid_update_xml
8913   * * New in DTD version 5 (in SimGrid 3.16): backward compatible change (v4 files are valid v5 files)
8914   *    - <zone> can be used as a synonym for the now deprecated <as>
8915   *    - <zoneZoute> an be used as a synonym for the now deprecated <asroute>
8916   *    - <bypassZoneRoute> an be used as a synonym for the now deprecated <bypassAsRoute>
8917   *    - <actor>  can be used as a synonym for the now deprecated <process>
8918   * * New in DTD version 4 (in SimGrid 3.13):
8919   *    - Rename (power->speed) the attributes describing the amount of flop
8920   *      that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
8921   *    - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
8922   *    
8923   *    - In <host> and <link>, attributes availability and state are gone.
8924   *      It was redundent with state and availability traces, and with peak values.
8925   *      
8926   *    - In <cluster>, cannot set the availability nor state traces. 
8927   *      This was too complex and unused.
8928   *    - The DOCTYPE points to the right URL (this file):
8929   *      http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
8930   *      
8931   *    - Kill <gpu>. Was not doing anything.
8932   *    - A warning is emitted for unit-less values (they are still accepted).
8933   *      - speed. Default: 'f' or 'flops'. Also defined:
8934   *         'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
8935   *         'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
8936   *      - bandwidth. Default: 'Bps' bytes per second
8937   *        In bytes and powers of 2  (1 KiBps = 1024 Bps): 'EiBps', 'PiBps', 'TiBps', 'GiBps', 'MiBps', 'KiBps'
8938   *        In bits  and powers of 2  (1 Bps = 8 bps)     : 'Eibps', 'Pibps', 'Tibps', 'Gibps', 'Mibps', 'Kibps'
8939   *        In bytes and powers of 10 (1 KBps = 1000 Bps) : 'EBps', 'PBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
8940   *        In bits  and powers of 10                     : 'Ebps', 'Pbps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
8941   *        (Exa and Peta notations were introduced in SimGrid v3.14)
8942   *      - latency. Default: 's' second. Also defined:
8943   *        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
8944   * * New in DTD version 3 (in SimGrid 3.5):
8945   *    - The AS tag were introduced. Every platform should now
8946   *      contain an englobing AS tag.
8947   *    - Routes are now symmetric by default.
8948   *    - Renamed tags (for sake of XML sanity):
8949   *      - LINK:CTN -> LINK_CTN
8950   *      - TRACE:CONNECT -> TRACE_CONNECT
8951   * * New in DTD version 2 (in SimGrid 3.4):
8952   *    - Renamed tags:
8953   *      - CPU -> HOST
8954   *      - NETWORK_LINK -> LINK
8955   *      - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
8956   *      - PLATFORM_DESCRIPTION -> PLATFORM
8957   * * New in DTD version 1 (in SimGrid 3.3):
8958   *    - DTD is now versionned with the version attribute of platform
8959   *    - Unit change: 
8960   *      - Link bandwidth: from Mb/s to b/s
8961   *      - CPU speed: from MFlop/s to Flop/s
8962   * -->  */
8963 case 397:
8964 /* rule 397 can match eol */
8965 YY_RULE_SETUP
8966 FAIL("Starting tag <platform> is not allowed here.");
8967         YY_BREAK
8968 case 398:
8969 /* rule 398 can match eol */
8970 YY_RULE_SETUP
8971 {
8972   AX_surfxml_platform_version = 1;
8973   surfxml_platform_version_isset = 0;
8974   ENTER(AL_surfxml_platform); pushbuffer(0);
8975   }
8976         YY_BREAK
8977
8978 case 399:
8979 /* rule 399 can match eol */
8980 YY_RULE_SETUP
8981 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);
8982         YY_BREAK
8983 case 400:
8984 /* rule 400 can match eol */
8985 YY_RULE_SETUP
8986 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);
8987         YY_BREAK
8988 case 401:
8989 YY_RULE_SETUP
8990 {
8991   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
8992  }
8993         YY_BREAK
8994 case 402:
8995 YY_RULE_SETUP
8996 {
8997   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
8998   switch (YY_START) {
8999    case ROOT_surfxml_platform: SET(EPILOG); break;
9000   }
9001  }
9002         YY_BREAK
9003 case 403:
9004 YY_RULE_SETUP
9005 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
9006         YY_BREAK
9007 case 404:
9008 YY_RULE_SETUP
9009 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
9010         YY_BREAK
9011 case YY_STATE_EOF(AL_surfxml_platform):
9012 FAIL("EOF in attribute list of `platform' element.");
9013         YY_BREAK
9014
9015 case 405:
9016 /* rule 405 can match eol */
9017 YY_RULE_SETUP
9018 {
9019   LEAVE;
9020   ETag_surfxml_platform();
9021   popbuffer(); /* attribute */
9022   switch (YY_START) {
9023    case ROOT_surfxml_platform: SET(EPILOG); break;
9024   }
9025  }
9026         YY_BREAK
9027 case 406:
9028 /* rule 406 can match eol */
9029 YY_RULE_SETUP
9030 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
9031         YY_BREAK
9032 case 407:
9033 YY_RULE_SETUP
9034 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
9035         YY_BREAK
9036 case YY_STATE_EOF(E_surfxml_platform):
9037 case YY_STATE_EOF(S_surfxml_platform):
9038 case YY_STATE_EOF(S_surfxml_platform_1):
9039 case YY_STATE_EOF(S_surfxml_platform_3):
9040 case YY_STATE_EOF(S_surfxml_platform_4):
9041 case YY_STATE_EOF(S_surfxml_platform_6):
9042 case YY_STATE_EOF(S_surfxml_platform_8):
9043 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
9044         YY_BREAK
9045
9046 case 408:
9047 /* rule 408 can match eol */
9048 YY_RULE_SETUP
9049 FAIL("Starting tag <process> is not allowed here.");
9050         YY_BREAK
9051 case 409:
9052 /* rule 409 can match eol */
9053 YY_RULE_SETUP
9054 {
9055   AX_surfxml_process_function = 0;
9056   surfxml_process_function_isset = 0;
9057   AX_surfxml_process_host = 0;
9058   surfxml_process_host_isset = 0;
9059   AX_surfxml_process_kill___time = 50;
9060   surfxml_process_kill___time_isset = 0;
9061   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9062   surfxml_process_on___failure_isset = 0;
9063   AX_surfxml_process_start___time = 45;
9064   surfxml_process_start___time_isset = 0;
9065   ENTER(AL_surfxml_process); pushbuffer(0);
9066   }
9067         YY_BREAK
9068
9069 case 410:
9070 /* rule 410 can match eol */
9071 YY_RULE_SETUP
9072 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);
9073         YY_BREAK
9074 case 411:
9075 /* rule 411 can match eol */
9076 YY_RULE_SETUP
9077 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);
9078         YY_BREAK
9079 case 412:
9080 /* rule 412 can match eol */
9081 YY_RULE_SETUP
9082 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);
9083         YY_BREAK
9084 case 413:
9085 /* rule 413 can match eol */
9086 YY_RULE_SETUP
9087 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);
9088         YY_BREAK
9089 case 414:
9090 /* rule 414 can match eol */
9091 YY_RULE_SETUP
9092 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);
9093         YY_BREAK
9094 case 415:
9095 /* rule 415 can match eol */
9096 YY_RULE_SETUP
9097 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);
9098         YY_BREAK
9099 case 416:
9100 /* rule 416 can match eol */
9101 case 417:
9102 /* rule 417 can match eol */
9103 YY_RULE_SETUP
9104 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
9105         YY_BREAK
9106 case 418:
9107 /* rule 418 can match eol */
9108 case 419:
9109 /* rule 419 can match eol */
9110 YY_RULE_SETUP
9111 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
9112         YY_BREAK
9113 case 420:
9114 /* rule 420 can match eol */
9115 YY_RULE_SETUP
9116 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);
9117         YY_BREAK
9118 case 421:
9119 /* rule 421 can match eol */
9120 YY_RULE_SETUP
9121 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);
9122         YY_BREAK
9123 case 422:
9124 YY_RULE_SETUP
9125 {
9126   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9127   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9128   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
9129  }
9130         YY_BREAK
9131 case 423:
9132 YY_RULE_SETUP
9133 {
9134   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
9135   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
9136   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
9137   switch (YY_START) {
9138    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
9139   }
9140  }
9141         YY_BREAK
9142 case 424:
9143 YY_RULE_SETUP
9144 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
9145         YY_BREAK
9146 case 425:
9147 YY_RULE_SETUP
9148 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
9149         YY_BREAK
9150 case YY_STATE_EOF(AL_surfxml_process):
9151 FAIL("EOF in attribute list of `process' element.");
9152         YY_BREAK
9153
9154 case 426:
9155 /* rule 426 can match eol */
9156 YY_RULE_SETUP
9157 {
9158   LEAVE;
9159   ETag_surfxml_process();
9160   popbuffer(); /* attribute */
9161   switch (YY_START) {
9162    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_6: case S_surfxml_platform_7: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
9163   }
9164  }
9165         YY_BREAK
9166 case 427:
9167 /* rule 427 can match eol */
9168 YY_RULE_SETUP
9169 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
9170         YY_BREAK
9171 case 428:
9172 YY_RULE_SETUP
9173 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
9174         YY_BREAK
9175 case YY_STATE_EOF(E_surfxml_process):
9176 case YY_STATE_EOF(S_surfxml_process):
9177 case YY_STATE_EOF(S_surfxml_process_2):
9178 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
9179         YY_BREAK
9180
9181 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9182   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9183 case 429:
9184 /* rule 429 can match eol */
9185 YY_RULE_SETUP
9186 FAIL("Starting tag <prop> is not allowed here.");
9187         YY_BREAK
9188 case 430:
9189 /* rule 430 can match eol */
9190 YY_RULE_SETUP
9191 {
9192   AX_surfxml_prop_id = 0;
9193   surfxml_prop_id_isset = 0;
9194   AX_surfxml_prop_value = 0;
9195   surfxml_prop_value_isset = 0;
9196   ENTER(AL_surfxml_prop); pushbuffer(0);
9197   }
9198         YY_BREAK
9199
9200 case 431:
9201 /* rule 431 can match eol */
9202 YY_RULE_SETUP
9203 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);
9204         YY_BREAK
9205 case 432:
9206 /* rule 432 can match eol */
9207 YY_RULE_SETUP
9208 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);
9209         YY_BREAK
9210 case 433:
9211 /* rule 433 can match eol */
9212 YY_RULE_SETUP
9213 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);
9214         YY_BREAK
9215 case 434:
9216 /* rule 434 can match eol */
9217 YY_RULE_SETUP
9218 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);
9219         YY_BREAK
9220 case 435:
9221 YY_RULE_SETUP
9222 {
9223   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9224   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9225   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9226  }
9227         YY_BREAK
9228 case 436:
9229 YY_RULE_SETUP
9230 {
9231   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9232   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9233   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9234   switch (YY_START) {
9235    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9236    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9237    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9238    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9239    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9240    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9241    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9242    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9243    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9244    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9245   }
9246  }
9247         YY_BREAK
9248 case 437:
9249 YY_RULE_SETUP
9250 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9251         YY_BREAK
9252 case 438:
9253 YY_RULE_SETUP
9254 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9255         YY_BREAK
9256 case YY_STATE_EOF(AL_surfxml_prop):
9257 FAIL("EOF in attribute list of `prop' element.");
9258         YY_BREAK
9259
9260 case 439:
9261 /* rule 439 can match eol */
9262 YY_RULE_SETUP
9263 {
9264   LEAVE;
9265   ETag_surfxml_prop();
9266   popbuffer(); /* attribute */
9267   switch (YY_START) {
9268    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9269    case S_surfxml_actor: case S_surfxml_actor_1: case S_surfxml_actor_2: SET(S_surfxml_actor_2); break;
9270    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
9271    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
9272    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
9273    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9274    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9275    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
9276    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9277    case S_surfxml_zone: case S_surfxml_zone_2: case S_surfxml_zone_3: SET(S_surfxml_zone_3); break;
9278   }
9279  }
9280         YY_BREAK
9281 case 440:
9282 /* rule 440 can match eol */
9283 YY_RULE_SETUP
9284 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9285         YY_BREAK
9286 case 441:
9287 YY_RULE_SETUP
9288 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9289         YY_BREAK
9290 case YY_STATE_EOF(E_surfxml_prop):
9291 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9292         YY_BREAK
9293
9294 case 442:
9295 /* rule 442 can match eol */
9296 YY_RULE_SETUP
9297 FAIL("Starting tag <random> is not allowed here.");
9298         YY_BREAK
9299 case 443:
9300 /* rule 443 can match eol */
9301 YY_RULE_SETUP
9302 {
9303   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9304   surfxml_random_generator_isset = 0;
9305   AX_surfxml_random_id = 0;
9306   surfxml_random_id_isset = 0;
9307   AX_surfxml_random_max = 0;
9308   surfxml_random_max_isset = 0;
9309   AX_surfxml_random_mean = 0;
9310   surfxml_random_mean_isset = 0;
9311   AX_surfxml_random_min = 0;
9312   surfxml_random_min_isset = 0;
9313   AX_surfxml_random_radical = 0;
9314   surfxml_random_radical_isset = 0;
9315   AX_surfxml_random_seed = 5;
9316   surfxml_random_seed_isset = 0;
9317   AX_surfxml_random_std___deviation = 0;
9318   surfxml_random_std___deviation_isset = 0;
9319   ENTER(AL_surfxml_random); pushbuffer(0);
9320   }
9321         YY_BREAK
9322
9323 case 444:
9324 /* rule 444 can match eol */
9325 case 445:
9326 /* rule 445 can match eol */
9327 YY_RULE_SETUP
9328 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
9329         YY_BREAK
9330 case 446:
9331 /* rule 446 can match eol */
9332 case 447:
9333 /* rule 447 can match eol */
9334 YY_RULE_SETUP
9335 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
9336         YY_BREAK
9337 case 448:
9338 /* rule 448 can match eol */
9339 case 449:
9340 /* rule 449 can match eol */
9341 YY_RULE_SETUP
9342 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
9343         YY_BREAK
9344 case 450:
9345 /* rule 450 can match eol */
9346 case 451:
9347 /* rule 451 can match eol */
9348 YY_RULE_SETUP
9349 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
9350         YY_BREAK
9351 case 452:
9352 /* rule 452 can match eol */
9353 YY_RULE_SETUP
9354 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);
9355         YY_BREAK
9356 case 453:
9357 /* rule 453 can match eol */
9358 YY_RULE_SETUP
9359 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);
9360         YY_BREAK
9361 case 454:
9362 /* rule 454 can match eol */
9363 YY_RULE_SETUP
9364 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);
9365         YY_BREAK
9366 case 455:
9367 /* rule 455 can match eol */
9368 YY_RULE_SETUP
9369 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);
9370         YY_BREAK
9371 case 456:
9372 /* rule 456 can match eol */
9373 YY_RULE_SETUP
9374 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);
9375         YY_BREAK
9376 case 457:
9377 /* rule 457 can match eol */
9378 YY_RULE_SETUP
9379 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);
9380         YY_BREAK
9381 case 458:
9382 /* rule 458 can match eol */
9383 YY_RULE_SETUP
9384 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);
9385         YY_BREAK
9386 case 459:
9387 /* rule 459 can match eol */
9388 YY_RULE_SETUP
9389 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);
9390         YY_BREAK
9391 case 460:
9392 /* rule 460 can match eol */
9393 YY_RULE_SETUP
9394 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);
9395         YY_BREAK
9396 case 461:
9397 /* rule 461 can match eol */
9398 YY_RULE_SETUP
9399 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);
9400         YY_BREAK
9401 case 462:
9402 /* rule 462 can match eol */
9403 YY_RULE_SETUP
9404 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);
9405         YY_BREAK
9406 case 463:
9407 /* rule 463 can match eol */
9408 YY_RULE_SETUP
9409 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);
9410         YY_BREAK
9411 case 464:
9412 /* rule 464 can match eol */
9413 YY_RULE_SETUP
9414 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);
9415         YY_BREAK
9416 case 465:
9417 /* rule 465 can match eol */
9418 YY_RULE_SETUP
9419 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);
9420         YY_BREAK
9421 case 466:
9422 YY_RULE_SETUP
9423 {
9424   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9425   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9426   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9427   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9428   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9429   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
9430  }
9431         YY_BREAK
9432 case 467:
9433 YY_RULE_SETUP
9434 {
9435   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
9436   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
9437   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
9438   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
9439   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
9440   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
9441   switch (YY_START) {
9442    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9443   }
9444  }
9445         YY_BREAK
9446 case 468:
9447 YY_RULE_SETUP
9448 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
9449         YY_BREAK
9450 case 469:
9451 YY_RULE_SETUP
9452 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
9453         YY_BREAK
9454 case YY_STATE_EOF(AL_surfxml_random):
9455 FAIL("EOF in attribute list of `random' element.");
9456         YY_BREAK
9457
9458 case 470:
9459 /* rule 470 can match eol */
9460 YY_RULE_SETUP
9461 {
9462   LEAVE;
9463   ETag_surfxml_random();
9464   popbuffer(); /* attribute */
9465   switch (YY_START) {
9466    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
9467   }
9468  }
9469         YY_BREAK
9470 case 471:
9471 /* rule 471 can match eol */
9472 YY_RULE_SETUP
9473 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
9474         YY_BREAK
9475 case 472:
9476 YY_RULE_SETUP
9477 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
9478         YY_BREAK
9479 case YY_STATE_EOF(E_surfxml_random):
9480 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
9481         YY_BREAK
9482
9483 case 473:
9484 /* rule 473 can match eol */
9485 YY_RULE_SETUP
9486 FAIL("Starting tag <route> is not allowed here.");
9487         YY_BREAK
9488 case 474:
9489 /* rule 474 can match eol */
9490 YY_RULE_SETUP
9491 {
9492   AX_surfxml_route_dst = 0;
9493   surfxml_route_dst_isset = 0;
9494   AX_surfxml_route_src = 0;
9495   surfxml_route_src_isset = 0;
9496   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9497   surfxml_route_symmetrical_isset = 0;
9498   ENTER(AL_surfxml_route); pushbuffer(0);
9499   }
9500         YY_BREAK
9501
9502 case 475:
9503 /* rule 475 can match eol */
9504 YY_RULE_SETUP
9505 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);
9506         YY_BREAK
9507 case 476:
9508 /* rule 476 can match eol */
9509 YY_RULE_SETUP
9510 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);
9511         YY_BREAK
9512 case 477:
9513 /* rule 477 can match eol */
9514 YY_RULE_SETUP
9515 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);
9516         YY_BREAK
9517 case 478:
9518 /* rule 478 can match eol */
9519 YY_RULE_SETUP
9520 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);
9521         YY_BREAK
9522 case 479:
9523 /* rule 479 can match eol */
9524 case 480:
9525 /* rule 480 can match eol */
9526 YY_RULE_SETUP
9527 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
9528         YY_BREAK
9529 case 481:
9530 /* rule 481 can match eol */
9531 case 482:
9532 /* rule 482 can match eol */
9533 YY_RULE_SETUP
9534 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
9535         YY_BREAK
9536 case 483:
9537 YY_RULE_SETUP
9538 {
9539   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
9540   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
9541   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
9542  }
9543         YY_BREAK
9544 case 484:
9545 YY_RULE_SETUP
9546 {
9547   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
9548   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
9549   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
9550   switch (YY_START) {
9551    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9552    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
9553   }
9554  }
9555         YY_BREAK
9556 case 485:
9557 YY_RULE_SETUP
9558 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
9559         YY_BREAK
9560 case 486:
9561 YY_RULE_SETUP
9562 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
9563         YY_BREAK
9564 case YY_STATE_EOF(AL_surfxml_route):
9565 FAIL("EOF in attribute list of `route' element.");
9566         YY_BREAK
9567
9568 case 487:
9569 /* rule 487 can match eol */
9570 YY_RULE_SETUP
9571 {
9572   LEAVE;
9573   ETag_surfxml_route();
9574   popbuffer(); /* attribute */
9575   switch (YY_START) {
9576    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
9577    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
9578   }
9579  }
9580         YY_BREAK
9581 case 488:
9582 /* rule 488 can match eol */
9583 YY_RULE_SETUP
9584 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
9585         YY_BREAK
9586 case 489:
9587 YY_RULE_SETUP
9588 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
9589         YY_BREAK
9590 case YY_STATE_EOF(E_surfxml_route):
9591 case YY_STATE_EOF(S_surfxml_route):
9592 case YY_STATE_EOF(S_surfxml_route_2):
9593 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
9594         YY_BREAK
9595
9596 case 490:
9597 /* rule 490 can match eol */
9598 YY_RULE_SETUP
9599 FAIL("Starting tag <router> is not allowed here.");
9600         YY_BREAK
9601 case 491:
9602 /* rule 491 can match eol */
9603 YY_RULE_SETUP
9604 {
9605   AX_surfxml_router_coordinates = 0;
9606   surfxml_router_coordinates_isset = 0;
9607   AX_surfxml_router_id = 0;
9608   surfxml_router_id_isset = 0;
9609   ENTER(AL_surfxml_router); pushbuffer(0);
9610   }
9611         YY_BREAK
9612
9613 case 492:
9614 /* rule 492 can match eol */
9615 YY_RULE_SETUP
9616 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);
9617         YY_BREAK
9618 case 493:
9619 /* rule 493 can match eol */
9620 YY_RULE_SETUP
9621 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);
9622         YY_BREAK
9623 case 494:
9624 /* rule 494 can match eol */
9625 YY_RULE_SETUP
9626 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);
9627         YY_BREAK
9628 case 495:
9629 /* rule 495 can match eol */
9630 YY_RULE_SETUP
9631 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);
9632         YY_BREAK
9633 case 496:
9634 YY_RULE_SETUP
9635 {
9636   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
9637   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
9638  }
9639         YY_BREAK
9640 case 497:
9641 YY_RULE_SETUP
9642 {
9643   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
9644   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
9645   switch (YY_START) {
9646    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9647    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9648   }
9649  }
9650         YY_BREAK
9651 case 498:
9652 YY_RULE_SETUP
9653 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
9654         YY_BREAK
9655 case 499:
9656 YY_RULE_SETUP
9657 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
9658         YY_BREAK
9659 case YY_STATE_EOF(AL_surfxml_router):
9660 FAIL("EOF in attribute list of `router' element.");
9661         YY_BREAK
9662
9663 case 500:
9664 /* rule 500 can match eol */
9665 YY_RULE_SETUP
9666 {
9667   LEAVE;
9668   ETag_surfxml_router();
9669   popbuffer(); /* attribute */
9670   switch (YY_START) {
9671    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9672    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9673   }
9674  }
9675         YY_BREAK
9676 case 501:
9677 /* rule 501 can match eol */
9678 YY_RULE_SETUP
9679 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
9680         YY_BREAK
9681 case 502:
9682 YY_RULE_SETUP
9683 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
9684         YY_BREAK
9685 case YY_STATE_EOF(E_surfxml_router):
9686 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
9687         YY_BREAK
9688
9689 case 503:
9690 /* rule 503 can match eol */
9691 YY_RULE_SETUP
9692 FAIL("Starting tag <storage> is not allowed here.");
9693         YY_BREAK
9694 case 504:
9695 /* rule 504 can match eol */
9696 YY_RULE_SETUP
9697 {
9698   AX_surfxml_storage_attach = 0;
9699   surfxml_storage_attach_isset = 0;
9700   AX_surfxml_storage_content = 0;
9701   surfxml_storage_content_isset = 0;
9702   AX_surfxml_storage_content___type = 31;
9703   surfxml_storage_content___type_isset = 0;
9704   AX_surfxml_storage_id = 0;
9705   surfxml_storage_id_isset = 0;
9706   AX_surfxml_storage_typeId = 0;
9707   surfxml_storage_typeId_isset = 0;
9708   ENTER(AL_surfxml_storage); pushbuffer(0);
9709   }
9710         YY_BREAK
9711
9712 case 505:
9713 /* rule 505 can match eol */
9714 YY_RULE_SETUP
9715 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");} surfxml_storage_attach_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_attach);
9716         YY_BREAK
9717 case 506:
9718 /* rule 506 can match eol */
9719 YY_RULE_SETUP
9720 if (surfxml_storage_attach_isset != 0) {FAIL("Multiple definition of attribute attach in <surfxml_storage>");}  surfxml_storage_attach_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_attach);
9721         YY_BREAK
9722 case 507:
9723 /* rule 507 can match eol */
9724 YY_RULE_SETUP
9725 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);
9726         YY_BREAK
9727 case 508:
9728 /* rule 508 can match eol */
9729 YY_RULE_SETUP
9730 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);
9731         YY_BREAK
9732 case 509:
9733 /* rule 509 can match eol */
9734 YY_RULE_SETUP
9735 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");} surfxml_storage_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage_content___type);
9736         YY_BREAK
9737 case 510:
9738 /* rule 510 can match eol */
9739 YY_RULE_SETUP
9740 if (surfxml_storage_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage>");}  surfxml_storage_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage_content___type);
9741         YY_BREAK
9742 case 511:
9743 /* rule 511 can match eol */
9744 YY_RULE_SETUP
9745 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);
9746         YY_BREAK
9747 case 512:
9748 /* rule 512 can match eol */
9749 YY_RULE_SETUP
9750 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);
9751         YY_BREAK
9752 case 513:
9753 /* rule 513 can match eol */
9754 YY_RULE_SETUP
9755 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);
9756         YY_BREAK
9757 case 514:
9758 /* rule 514 can match eol */
9759 YY_RULE_SETUP
9760 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);
9761         YY_BREAK
9762 case 515:
9763 YY_RULE_SETUP
9764 {
9765   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
9766   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
9767   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
9768   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
9769  }
9770         YY_BREAK
9771 case 516:
9772 YY_RULE_SETUP
9773 {
9774   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
9775   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
9776   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
9777   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
9778   switch (YY_START) {
9779    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9780    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9781   }
9782  }
9783         YY_BREAK
9784 case 517:
9785 YY_RULE_SETUP
9786 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
9787         YY_BREAK
9788 case 518:
9789 YY_RULE_SETUP
9790 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
9791         YY_BREAK
9792 case YY_STATE_EOF(AL_surfxml_storage):
9793 FAIL("EOF in attribute list of `storage' element.");
9794         YY_BREAK
9795
9796 case 519:
9797 /* rule 519 can match eol */
9798 YY_RULE_SETUP
9799 {
9800   LEAVE;
9801   ETag_surfxml_storage();
9802   popbuffer(); /* attribute */
9803   switch (YY_START) {
9804    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9805    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9806   }
9807  }
9808         YY_BREAK
9809 case 520:
9810 /* rule 520 can match eol */
9811 YY_RULE_SETUP
9812 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
9813         YY_BREAK
9814 case 521:
9815 YY_RULE_SETUP
9816 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
9817         YY_BREAK
9818 case YY_STATE_EOF(E_surfxml_storage):
9819 case YY_STATE_EOF(S_surfxml_storage):
9820 case YY_STATE_EOF(S_surfxml_storage_2):
9821 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
9822         YY_BREAK
9823
9824 case 522:
9825 /* rule 522 can match eol */
9826 YY_RULE_SETUP
9827 FAIL("Starting tag <storage_type> is not allowed here.");
9828         YY_BREAK
9829 case 523:
9830 /* rule 523 can match eol */
9831 YY_RULE_SETUP
9832 {
9833   AX_surfxml_storage___type_content = 0;
9834   surfxml_storage___type_content_isset = 0;
9835   AX_surfxml_storage___type_content___type = 16;
9836   surfxml_storage___type_content___type_isset = 0;
9837   AX_surfxml_storage___type_id = 0;
9838   surfxml_storage___type_id_isset = 0;
9839   AX_surfxml_storage___type_model = 0;
9840   surfxml_storage___type_model_isset = 0;
9841   AX_surfxml_storage___type_size = 0;
9842   surfxml_storage___type_size_isset = 0;
9843   ENTER(AL_surfxml_storage___type); pushbuffer(0);
9844   }
9845         YY_BREAK
9846
9847 case 524:
9848 /* rule 524 can match eol */
9849 YY_RULE_SETUP
9850 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);
9851         YY_BREAK
9852 case 525:
9853 /* rule 525 can match eol */
9854 YY_RULE_SETUP
9855 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);
9856         YY_BREAK
9857 case 526:
9858 /* rule 526 can match eol */
9859 YY_RULE_SETUP
9860 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");} surfxml_storage___type_content___type_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_storage___type_content___type);
9861         YY_BREAK
9862 case 527:
9863 /* rule 527 can match eol */
9864 YY_RULE_SETUP
9865 if (surfxml_storage___type_content___type_isset != 0) {FAIL("Multiple definition of attribute content_type in <surfxml_storage___type>");}  surfxml_storage___type_content___type_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_storage___type_content___type);
9866         YY_BREAK
9867 case 528:
9868 /* rule 528 can match eol */
9869 YY_RULE_SETUP
9870 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);
9871         YY_BREAK
9872 case 529:
9873 /* rule 529 can match eol */
9874 YY_RULE_SETUP
9875 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);
9876         YY_BREAK
9877 case 530:
9878 /* rule 530 can match eol */
9879 YY_RULE_SETUP
9880 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);
9881         YY_BREAK
9882 case 531:
9883 /* rule 531 can match eol */
9884 YY_RULE_SETUP
9885 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);
9886         YY_BREAK
9887 case 532:
9888 /* rule 532 can match eol */
9889 YY_RULE_SETUP
9890 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);
9891         YY_BREAK
9892 case 533:
9893 /* rule 533 can match eol */
9894 YY_RULE_SETUP
9895 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);
9896         YY_BREAK
9897 case 534:
9898 YY_RULE_SETUP
9899 {
9900   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9901   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
9902   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9903   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
9904  }
9905         YY_BREAK
9906 case 535:
9907 YY_RULE_SETUP
9908 {
9909   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
9910   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
9911   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
9912   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
9913   switch (YY_START) {
9914    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9915    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9916   }
9917  }
9918         YY_BREAK
9919 case 536:
9920 YY_RULE_SETUP
9921 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
9922         YY_BREAK
9923 case 537:
9924 YY_RULE_SETUP
9925 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
9926         YY_BREAK
9927 case YY_STATE_EOF(AL_surfxml_storage___type):
9928 FAIL("EOF in attribute list of `storage_type' element.");
9929         YY_BREAK
9930
9931 case 538:
9932 /* rule 538 can match eol */
9933 YY_RULE_SETUP
9934 {
9935   LEAVE;
9936   ETag_surfxml_storage___type();
9937   popbuffer(); /* attribute */
9938   switch (YY_START) {
9939    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
9940    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
9941   }
9942  }
9943         YY_BREAK
9944 case 539:
9945 /* rule 539 can match eol */
9946 YY_RULE_SETUP
9947 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
9948         YY_BREAK
9949 case 540:
9950 YY_RULE_SETUP
9951 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
9952         YY_BREAK
9953 case YY_STATE_EOF(E_surfxml_storage___type):
9954 case YY_STATE_EOF(S_surfxml_storage___type):
9955 case YY_STATE_EOF(S_surfxml_storage___type_2):
9956 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
9957         YY_BREAK
9958
9959 case 541:
9960 /* rule 541 can match eol */
9961 YY_RULE_SETUP
9962 FAIL("Starting tag <trace> is not allowed here.");
9963         YY_BREAK
9964 case 542:
9965 /* rule 542 can match eol */
9966 YY_RULE_SETUP
9967 {
9968   AX_surfxml_trace_file = 0;
9969   surfxml_trace_file_isset = 0;
9970   AX_surfxml_trace_id = 0;
9971   surfxml_trace_id_isset = 0;
9972   AX_surfxml_trace_periodicity = 0;
9973   surfxml_trace_periodicity_isset = 0;
9974   ENTER(AL_surfxml_trace); pushbuffer(0);
9975   }
9976         YY_BREAK
9977
9978 case 543:
9979 /* rule 543 can match eol */
9980 YY_RULE_SETUP
9981 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);
9982         YY_BREAK
9983 case 544:
9984 /* rule 544 can match eol */
9985 YY_RULE_SETUP
9986 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);
9987         YY_BREAK
9988 case 545:
9989 /* rule 545 can match eol */
9990 YY_RULE_SETUP
9991 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);
9992         YY_BREAK
9993 case 546:
9994 /* rule 546 can match eol */
9995 YY_RULE_SETUP
9996 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);
9997         YY_BREAK
9998 case 547:
9999 /* rule 547 can match eol */
10000 YY_RULE_SETUP
10001 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);
10002         YY_BREAK
10003 case 548:
10004 /* rule 548 can match eol */
10005 YY_RULE_SETUP
10006 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);
10007         YY_BREAK
10008 case 549:
10009 YY_RULE_SETUP
10010 {
10011   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
10012   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
10013   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
10014  }
10015         YY_BREAK
10016 case 550:
10017 YY_RULE_SETUP
10018 {
10019   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
10020   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
10021   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
10022   switch (YY_START) {
10023    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
10024    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10025    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10026    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
10027   }
10028  }
10029         YY_BREAK
10030 case 551:
10031 YY_RULE_SETUP
10032 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
10033         YY_BREAK
10034 case 552:
10035 YY_RULE_SETUP
10036 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
10037         YY_BREAK
10038 case YY_STATE_EOF(AL_surfxml_trace):
10039 FAIL("EOF in attribute list of `trace' element.");
10040         YY_BREAK
10041
10042 case 553:
10043 /* rule 553 can match eol */
10044 YY_RULE_SETUP
10045 {
10046   LEAVE;
10047   BUFFERDONE;
10048   ETag_surfxml_trace();
10049   surfxml_pcdata_ix = popbuffer();
10050   popbuffer(); /* attribute */
10051   switch (YY_START) {
10052    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
10053    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10054    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10055    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
10056   }
10057  }
10058         YY_BREAK
10059 case 554:
10060 /* rule 554 can match eol */
10061 YY_RULE_SETUP
10062 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
10063         YY_BREAK
10064 case YY_STATE_EOF(IN_trace):
10065 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
10066         YY_BREAK
10067
10068 case 555:
10069 /* rule 555 can match eol */
10070 YY_RULE_SETUP
10071 FAIL("Starting tag <trace_connect> is not allowed here.");
10072         YY_BREAK
10073 case 556:
10074 /* rule 556 can match eol */
10075 YY_RULE_SETUP
10076 {
10077   AX_surfxml_trace___connect_element = 0;
10078   surfxml_trace___connect_element_isset = 0;
10079   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10080   surfxml_trace___connect_kind_isset = 0;
10081   AX_surfxml_trace___connect_trace = 0;
10082   surfxml_trace___connect_trace_isset = 0;
10083   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
10084   }
10085         YY_BREAK
10086
10087 case 557:
10088 /* rule 557 can match eol */
10089 YY_RULE_SETUP
10090 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);
10091         YY_BREAK
10092 case 558:
10093 /* rule 558 can match eol */
10094 YY_RULE_SETUP
10095 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);
10096         YY_BREAK
10097 case 559:
10098 /* rule 559 can match eol */
10099 case 560:
10100 /* rule 560 can match eol */
10101 YY_RULE_SETUP
10102 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
10103         YY_BREAK
10104 case 561:
10105 /* rule 561 can match eol */
10106 case 562:
10107 /* rule 562 can match eol */
10108 YY_RULE_SETUP
10109 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_SPEED;
10110         YY_BREAK
10111 case 563:
10112 /* rule 563 can match eol */
10113 case 564:
10114 /* rule 564 can match eol */
10115 YY_RULE_SETUP
10116 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
10117         YY_BREAK
10118 case 565:
10119 /* rule 565 can match eol */
10120 case 566:
10121 /* rule 566 can match eol */
10122 YY_RULE_SETUP
10123 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
10124         YY_BREAK
10125 case 567:
10126 /* rule 567 can match eol */
10127 case 568:
10128 /* rule 568 can match eol */
10129 YY_RULE_SETUP
10130 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
10131         YY_BREAK
10132 case 569:
10133 /* rule 569 can match eol */
10134 YY_RULE_SETUP
10135 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);
10136         YY_BREAK
10137 case 570:
10138 /* rule 570 can match eol */
10139 YY_RULE_SETUP
10140 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);
10141         YY_BREAK
10142 case 571:
10143 YY_RULE_SETUP
10144 {
10145   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10146   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10147   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
10148  }
10149         YY_BREAK
10150 case 572:
10151 YY_RULE_SETUP
10152 {
10153   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
10154   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
10155   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
10156   switch (YY_START) {
10157    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
10158    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10159    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10160    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
10161   }
10162  }
10163         YY_BREAK
10164 case 573:
10165 YY_RULE_SETUP
10166 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
10167         YY_BREAK
10168 case 574:
10169 YY_RULE_SETUP
10170 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
10171         YY_BREAK
10172 case YY_STATE_EOF(AL_surfxml_trace___connect):
10173 FAIL("EOF in attribute list of `trace_connect' element.");
10174         YY_BREAK
10175
10176 case 575:
10177 /* rule 575 can match eol */
10178 YY_RULE_SETUP
10179 {
10180   LEAVE;
10181   ETag_surfxml_trace___connect();
10182   popbuffer(); /* attribute */
10183   switch (YY_START) {
10184    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_4: case S_surfxml_AS_6: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
10185    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10186    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10187    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
10188   }
10189  }
10190         YY_BREAK
10191 case 576:
10192 /* rule 576 can match eol */
10193 YY_RULE_SETUP
10194 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
10195         YY_BREAK
10196 case 577:
10197 YY_RULE_SETUP
10198 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
10199         YY_BREAK
10200 case YY_STATE_EOF(E_surfxml_trace___connect):
10201 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
10202         YY_BREAK
10203
10204 case 578:
10205 /* rule 578 can match eol */
10206 YY_RULE_SETUP
10207 FAIL("Starting tag <zone> is not allowed here.");
10208         YY_BREAK
10209 case 579:
10210 /* rule 579 can match eol */
10211 YY_RULE_SETUP
10212 {
10213   AX_surfxml_zone_id = 0;
10214   surfxml_zone_id_isset = 0;
10215   AX_surfxml_zone_routing = AU_surfxml_zone_routing;
10216   surfxml_zone_routing_isset = 0;
10217   ENTER(AL_surfxml_zone); pushbuffer(0);
10218   }
10219         YY_BREAK
10220
10221 case 580:
10222 /* rule 580 can match eol */
10223 YY_RULE_SETUP
10224 if (surfxml_zone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_zone>");} surfxml_zone_id_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zone_id);
10225         YY_BREAK
10226 case 581:
10227 /* rule 581 can match eol */
10228 YY_RULE_SETUP
10229 if (surfxml_zone_id_isset != 0) {FAIL("Multiple definition of attribute id in <surfxml_zone>");}  surfxml_zone_id_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zone_id);
10230         YY_BREAK
10231 case 582:
10232 /* rule 582 can match eol */
10233 case 583:
10234 /* rule 583 can match eol */
10235 YY_RULE_SETUP
10236 A_surfxml_zone_routing = A_surfxml_zone_routing_Full;
10237         YY_BREAK
10238 case 584:
10239 /* rule 584 can match eol */
10240 case 585:
10241 /* rule 585 can match eol */
10242 YY_RULE_SETUP
10243 A_surfxml_zone_routing = A_surfxml_zone_routing_Floyd;
10244         YY_BREAK
10245 case 586:
10246 /* rule 586 can match eol */
10247 case 587:
10248 /* rule 587 can match eol */
10249 YY_RULE_SETUP
10250 A_surfxml_zone_routing = A_surfxml_zone_routing_Dijkstra;
10251         YY_BREAK
10252 case 588:
10253 /* rule 588 can match eol */
10254 case 589:
10255 /* rule 589 can match eol */
10256 YY_RULE_SETUP
10257 A_surfxml_zone_routing = A_surfxml_zone_routing_DijkstraCache;
10258         YY_BREAK
10259 case 590:
10260 /* rule 590 can match eol */
10261 case 591:
10262 /* rule 591 can match eol */
10263 YY_RULE_SETUP
10264 A_surfxml_zone_routing = A_surfxml_zone_routing_None;
10265         YY_BREAK
10266 case 592:
10267 /* rule 592 can match eol */
10268 case 593:
10269 /* rule 593 can match eol */
10270 YY_RULE_SETUP
10271 A_surfxml_zone_routing = A_surfxml_zone_routing_Vivaldi;
10272         YY_BREAK
10273 case 594:
10274 /* rule 594 can match eol */
10275 case 595:
10276 /* rule 595 can match eol */
10277 YY_RULE_SETUP
10278 A_surfxml_zone_routing = A_surfxml_zone_routing_Cluster;
10279         YY_BREAK
10280 case 596:
10281 /* rule 596 can match eol */
10282 case 597:
10283 /* rule 597 can match eol */
10284 YY_RULE_SETUP
10285 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterTorus;
10286         YY_BREAK
10287 case 598:
10288 /* rule 598 can match eol */
10289 case 599:
10290 /* rule 599 can match eol */
10291 YY_RULE_SETUP
10292 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterFatTree;
10293         YY_BREAK
10294 case 600:
10295 /* rule 600 can match eol */
10296 case 601:
10297 /* rule 601 can match eol */
10298 YY_RULE_SETUP
10299 A_surfxml_zone_routing = A_surfxml_zone_routing_ClusterDragonfly;
10300         YY_BREAK
10301 case 602:
10302 YY_RULE_SETUP
10303 {
10304   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10305   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10306   LEAVE; STag_surfxml_zone();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zone);
10307  }
10308         YY_BREAK
10309 case 603:
10310 YY_RULE_SETUP
10311 {
10312   if (!AX_surfxml_zone_id) FAIL("Required attribute `id' not set for `zone' element.");
10313   if (!AX_surfxml_zone_routing) FAIL("Required attribute `routing' not set for `zone' element.");
10314   LEAVE; STag_surfxml_zone(); surfxml_pcdata_ix = 0; ETag_surfxml_zone(); popbuffer(); /* attribute */
10315   switch (YY_START) {
10316    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10317    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10318    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10319    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10320   }
10321  }
10322         YY_BREAK
10323 case 604:
10324 YY_RULE_SETUP
10325 FAIL("Unexpected character `%c' in attribute list of zone element.", surf_parse_text[0]);
10326         YY_BREAK
10327 case 605:
10328 YY_RULE_SETUP
10329 FAIL("Bad attribute `%s' in `zone' element start tag.",surf_parse_text);
10330         YY_BREAK
10331 case YY_STATE_EOF(AL_surfxml_zone):
10332 FAIL("EOF in attribute list of `zone' element.");
10333         YY_BREAK
10334
10335 case 606:
10336 /* rule 606 can match eol */
10337 YY_RULE_SETUP
10338 {
10339   LEAVE;
10340   ETag_surfxml_zone();
10341   popbuffer(); /* attribute */
10342   switch (YY_START) {
10343    case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10344    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
10345    case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
10346    case S_surfxml_zone: case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_5: case S_surfxml_zone_6: SET(S_surfxml_zone_6); break;
10347   }
10348  }
10349         YY_BREAK
10350 case 607:
10351 /* rule 607 can match eol */
10352 YY_RULE_SETUP
10353 FAIL("Unexpected end-tag `%s': `</zone>' expected.",surf_parse_text);
10354         YY_BREAK
10355 case 608:
10356 YY_RULE_SETUP
10357 FAIL("Unexpected character `%c': `</zone>' expected.",surf_parse_text[0]);
10358         YY_BREAK
10359 case YY_STATE_EOF(E_surfxml_zone):
10360 case YY_STATE_EOF(S_surfxml_zone):
10361 case YY_STATE_EOF(S_surfxml_zone_1):
10362 case YY_STATE_EOF(S_surfxml_zone_3):
10363 case YY_STATE_EOF(S_surfxml_zone_4):
10364 case YY_STATE_EOF(S_surfxml_zone_6):
10365 case YY_STATE_EOF(S_surfxml_zone_8):
10366 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</zone>' expected.");
10367         YY_BREAK
10368
10369 case 609:
10370 /* rule 609 can match eol */
10371 YY_RULE_SETUP
10372 FAIL("Starting tag <zoneRoute> is not allowed here.");
10373         YY_BREAK
10374 case 610:
10375 /* rule 610 can match eol */
10376 YY_RULE_SETUP
10377 {
10378   AX_surfxml_zoneRoute_dst = 0;
10379   surfxml_zoneRoute_dst_isset = 0;
10380   AX_surfxml_zoneRoute_gw___dst = 0;
10381   surfxml_zoneRoute_gw___dst_isset = 0;
10382   AX_surfxml_zoneRoute_gw___src = 0;
10383   surfxml_zoneRoute_gw___src_isset = 0;
10384   AX_surfxml_zoneRoute_src = 0;
10385   surfxml_zoneRoute_src_isset = 0;
10386   AX_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10387   surfxml_zoneRoute_symmetrical_isset = 0;
10388   ENTER(AL_surfxml_zoneRoute); pushbuffer(0);
10389   }
10390         YY_BREAK
10391
10392 case 611:
10393 /* rule 611 can match eol */
10394 YY_RULE_SETUP
10395 if (surfxml_zoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_zoneRoute>");} surfxml_zoneRoute_dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_dst);
10396         YY_BREAK
10397 case 612:
10398 /* rule 612 can match eol */
10399 YY_RULE_SETUP
10400 if (surfxml_zoneRoute_dst_isset != 0) {FAIL("Multiple definition of attribute dst in <surfxml_zoneRoute>");}  surfxml_zoneRoute_dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_dst);
10401         YY_BREAK
10402 case 613:
10403 /* rule 613 can match eol */
10404 YY_RULE_SETUP
10405 if (surfxml_zoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_zoneRoute>");} surfxml_zoneRoute_gw___dst_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_gw___dst);
10406         YY_BREAK
10407 case 614:
10408 /* rule 614 can match eol */
10409 YY_RULE_SETUP
10410 if (surfxml_zoneRoute_gw___dst_isset != 0) {FAIL("Multiple definition of attribute gw_dst in <surfxml_zoneRoute>");}  surfxml_zoneRoute_gw___dst_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_gw___dst);
10411         YY_BREAK
10412 case 615:
10413 /* rule 615 can match eol */
10414 YY_RULE_SETUP
10415 if (surfxml_zoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_zoneRoute>");} surfxml_zoneRoute_gw___src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_gw___src);
10416         YY_BREAK
10417 case 616:
10418 /* rule 616 can match eol */
10419 YY_RULE_SETUP
10420 if (surfxml_zoneRoute_gw___src_isset != 0) {FAIL("Multiple definition of attribute gw_src in <surfxml_zoneRoute>");}  surfxml_zoneRoute_gw___src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_gw___src);
10421         YY_BREAK
10422 case 617:
10423 /* rule 617 can match eol */
10424 YY_RULE_SETUP
10425 if (surfxml_zoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_zoneRoute>");} surfxml_zoneRoute_src_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_zoneRoute_src);
10426         YY_BREAK
10427 case 618:
10428 /* rule 618 can match eol */
10429 YY_RULE_SETUP
10430 if (surfxml_zoneRoute_src_isset != 0) {FAIL("Multiple definition of attribute src in <surfxml_zoneRoute>");}  surfxml_zoneRoute_src_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_zoneRoute_src);
10431         YY_BREAK
10432 case 619:
10433 /* rule 619 can match eol */
10434 case 620:
10435 /* rule 620 can match eol */
10436 YY_RULE_SETUP
10437 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_YES;
10438         YY_BREAK
10439 case 621:
10440 /* rule 621 can match eol */
10441 case 622:
10442 /* rule 622 can match eol */
10443 YY_RULE_SETUP
10444 A_surfxml_zoneRoute_symmetrical = A_surfxml_zoneRoute_symmetrical_NO;
10445         YY_BREAK
10446 case 623:
10447 YY_RULE_SETUP
10448 {
10449   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10450   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10451   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10452   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10453   LEAVE; STag_surfxml_zoneRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_zoneRoute);
10454  }
10455         YY_BREAK
10456 case 624:
10457 YY_RULE_SETUP
10458 {
10459   if (!AX_surfxml_zoneRoute_dst) FAIL("Required attribute `dst' not set for `zoneRoute' element.");
10460   if (!AX_surfxml_zoneRoute_gw___dst) FAIL("Required attribute `gw_dst' not set for `zoneRoute' element.");
10461   if (!AX_surfxml_zoneRoute_gw___src) FAIL("Required attribute `gw_src' not set for `zoneRoute' element.");
10462   if (!AX_surfxml_zoneRoute_src) FAIL("Required attribute `src' not set for `zoneRoute' element.");
10463   LEAVE; STag_surfxml_zoneRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_zoneRoute(); popbuffer(); /* attribute */
10464   switch (YY_START) {
10465    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10466    case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
10467    case S_surfxml_zone: case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10468    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
10469   }
10470  }
10471         YY_BREAK
10472 case 625:
10473 YY_RULE_SETUP
10474 FAIL("Unexpected character `%c' in attribute list of zoneRoute element.", surf_parse_text[0]);
10475         YY_BREAK
10476 case 626:
10477 YY_RULE_SETUP
10478 FAIL("Bad attribute `%s' in `zoneRoute' element start tag.",surf_parse_text);
10479         YY_BREAK
10480 case YY_STATE_EOF(AL_surfxml_zoneRoute):
10481 FAIL("EOF in attribute list of `zoneRoute' element.");
10482         YY_BREAK
10483
10484 case 627:
10485 /* rule 627 can match eol */
10486 YY_RULE_SETUP
10487 {
10488   LEAVE;
10489   ETag_surfxml_zoneRoute();
10490   popbuffer(); /* attribute */
10491   switch (YY_START) {
10492    case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
10493    case S_surfxml_AS_1: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
10494    case S_surfxml_zone: case S_surfxml_zone_5: SET(S_surfxml_zone_6); break;
10495    case S_surfxml_zone_1: case S_surfxml_zone_3: case S_surfxml_zone_4: case S_surfxml_zone_6: case S_surfxml_zone_7: case S_surfxml_zone_8: SET(S_surfxml_zone_8); break;
10496   }
10497  }
10498         YY_BREAK
10499 case 628:
10500 /* rule 628 can match eol */
10501 YY_RULE_SETUP
10502 FAIL("Unexpected end-tag `%s': `</zoneRoute>' expected.",surf_parse_text);
10503         YY_BREAK
10504 case 629:
10505 YY_RULE_SETUP
10506 FAIL("Unexpected character `%c': `</zoneRoute>' expected.",surf_parse_text[0]);
10507         YY_BREAK
10508 case YY_STATE_EOF(E_surfxml_zoneRoute):
10509 case YY_STATE_EOF(S_surfxml_zoneRoute):
10510 case YY_STATE_EOF(S_surfxml_zoneRoute_2):
10511 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</zoneRoute>' expected.");
10512         YY_BREAK
10513
10514 /* EPILOG: after the root element. */
10515
10516 case 630:
10517 YY_RULE_SETUP
10518 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
10519         YY_BREAK
10520 case YY_STATE_EOF(EPILOG):
10521 SUCCEED;
10522         YY_BREAK
10523
10524 /* CHARACTER DATA. */
10525
10526 /* Non-defined standard entities... */
10527 case 631:
10528 YY_RULE_SETUP
10529 BUFFERPUTC('&');
10530         YY_BREAK
10531 case 632:
10532 YY_RULE_SETUP
10533 BUFFERPUTC('<');
10534         YY_BREAK
10535 case 633:
10536 YY_RULE_SETUP
10537 BUFFERPUTC('>');
10538         YY_BREAK
10539 case 634:
10540 YY_RULE_SETUP
10541 BUFFERPUTC('\'');
10542         YY_BREAK
10543 case 635:
10544 YY_RULE_SETUP
10545 BUFFERPUTC('"');
10546         YY_BREAK
10547 /* Character entities. */
10548 case 636:
10549 YY_RULE_SETUP
10550 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
10551         YY_BREAK
10552 case 637:
10553 YY_RULE_SETUP
10554 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
10555         YY_BREAK
10556
10557 case 638:
10558 /* rule 638 can match eol */
10559 case 639:
10560 /* rule 639 can match eol */
10561 case 640:
10562 /* rule 640 can match eol */
10563 case 641:
10564 /* rule 641 can match eol */
10565 YY_RULE_SETUP
10566 BUFFERPUTC('\n');
10567         YY_BREAK
10568
10569 case 642:
10570 YY_RULE_SETUP
10571 ENTER(CDATA);
10572         YY_BREAK
10573 case 643:
10574 YY_RULE_SETUP
10575 FAIL("Unexpected `]""]>' in character data.");
10576         YY_BREAK
10577
10578 case 644:
10579 YY_RULE_SETUP
10580 BUFFERDONE; LEAVE;
10581         YY_BREAK
10582 case YY_STATE_EOF(VALUE1):
10583 FAIL("EOF in literal (\"'\" expected).");
10584         YY_BREAK
10585
10586 case 645:
10587 YY_RULE_SETUP
10588 BUFFERDONE; LEAVE;
10589         YY_BREAK
10590 case YY_STATE_EOF(VALUE2):
10591 FAIL("EOF in literal (`\"' expected).");
10592         YY_BREAK
10593
10594 case 646:
10595 /* rule 646 can match eol */
10596 YY_RULE_SETUP
10597 BUFFERPUTC(surf_parse_text[0]);
10598         YY_BREAK
10599 case 647:
10600 YY_RULE_SETUP
10601 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
10602         YY_BREAK
10603
10604 case 648:
10605 YY_RULE_SETUP
10606 LEAVE;
10607         YY_BREAK
10608 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
10609 case 649:
10610 YY_RULE_SETUP
10611 BUFFERPUTC(surf_parse_text[0]);
10612         YY_BREAK
10613 case YY_STATE_EOF(CDATA):
10614 FAIL("EOF in CDATA section.");
10615         YY_BREAK
10616
10617 /* Impossible rules to avoid warnings from flex(1). */
10618 /* Ideally, this should be replaced by code in flexml.pl that
10619     generates just the states not covered by other rules. */
10620
10621 case 650:
10622 /* rule 650 can match eol */
10623 YY_RULE_SETUP
10624 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
10625         YY_BREAK
10626
10627 case 651:
10628 YY_RULE_SETUP
10629 ECHO;
10630         YY_BREAK
10631 case YY_STATE_EOF(INITIAL):
10632 case YY_STATE_EOF(S_surfxml_AS_2):
10633 case YY_STATE_EOF(S_surfxml_AS_5):
10634 case YY_STATE_EOF(S_surfxml_AS_7):
10635 case YY_STATE_EOF(S_surfxml_ASroute_1):
10636 case YY_STATE_EOF(S_surfxml_actor_1):
10637 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
10638 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
10639 case YY_STATE_EOF(S_surfxml_bypassZoneRoute_1):
10640 case YY_STATE_EOF(S_surfxml_cluster_1):
10641 case YY_STATE_EOF(S_surfxml_config_1):
10642 case YY_STATE_EOF(S_surfxml_host_1):
10643 case YY_STATE_EOF(S_surfxml_include_1):
10644 case YY_STATE_EOF(S_surfxml_link_1):
10645 case YY_STATE_EOF(ROOT_surfxml_platform):
10646 case YY_STATE_EOF(S_surfxml_platform_2):
10647 case YY_STATE_EOF(S_surfxml_platform_5):
10648 case YY_STATE_EOF(S_surfxml_platform_7):
10649 case YY_STATE_EOF(S_surfxml_process_1):
10650 case YY_STATE_EOF(S_surfxml_route_1):
10651 case YY_STATE_EOF(S_surfxml_storage_1):
10652 case YY_STATE_EOF(S_surfxml_storage___type_1):
10653 case YY_STATE_EOF(S_surfxml_zone_2):
10654 case YY_STATE_EOF(S_surfxml_zone_5):
10655 case YY_STATE_EOF(S_surfxml_zone_7):
10656 case YY_STATE_EOF(S_surfxml_zoneRoute_1):
10657 case YY_STATE_EOF(IMPOSSIBLE):
10658         yyterminate();
10659
10660         case YY_END_OF_BUFFER:
10661                 {
10662                 /* Amount of text matched not including the EOB char. */
10663                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
10664
10665                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
10666                 *yy_cp = (yy_hold_char);
10667                 YY_RESTORE_YY_MORE_OFFSET
10668
10669                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
10670                         {
10671                         /* We're scanning a new file or input source.  It's
10672                          * possible that this happened because the user
10673                          * just pointed surf_parse_in at a new source and called
10674                          * surf_parse_lex().  If so, then we have to assure
10675                          * consistency between YY_CURRENT_BUFFER and our
10676                          * globals.  Here is the right place to do so, because
10677                          * this is the first action (other than possibly a
10678                          * back-up) that will match for the new input source.
10679                          */
10680                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
10681                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
10682                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
10683                         }
10684
10685                 /* Note that here we test for yy_c_buf_p "<=" to the position
10686                  * of the first EOB in the buffer, since yy_c_buf_p will
10687                  * already have been incremented past the NUL character
10688                  * (since all states make transitions on EOB to the
10689                  * end-of-buffer state).  Contrast this with the test
10690                  * in input().
10691                  */
10692                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
10693                         { /* This was really a NUL. */
10694                         yy_state_type yy_next_state;
10695
10696                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
10697
10698                         yy_current_state = yy_get_previous_state(  );
10699
10700                         /* Okay, we're now positioned to make the NUL
10701                          * transition.  We couldn't have
10702                          * yy_get_previous_state() go ahead and do it
10703                          * for us because it doesn't know how to deal
10704                          * with the possibility of jamming (and we don't
10705                          * want to build jamming into it because then it
10706                          * will run more slowly).
10707                          */
10708
10709                         yy_next_state = yy_try_NUL_trans( yy_current_state );
10710
10711                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
10712
10713                         if ( yy_next_state )
10714                                 {
10715                                 /* Consume the NUL. */
10716                                 yy_cp = ++(yy_c_buf_p);
10717                                 yy_current_state = yy_next_state;
10718                                 goto yy_match;
10719                                 }
10720
10721                         else
10722                                 {
10723                                 yy_cp = (yy_c_buf_p);
10724                                 goto yy_find_action;
10725                                 }
10726                         }
10727
10728                 else switch ( yy_get_next_buffer(  ) )
10729                         {
10730                         case EOB_ACT_END_OF_FILE:
10731                                 {
10732                                 (yy_did_buffer_switch_on_eof) = 0;
10733
10734                                 if ( surf_parse_wrap( ) )
10735                                         {
10736                                         /* Note: because we've taken care in
10737                                          * yy_get_next_buffer() to have set up
10738                                          * surf_parse_text, we can now set up
10739                                          * yy_c_buf_p so that if some total
10740                                          * hoser (like flex itself) wants to
10741                                          * call the scanner after we return the
10742                                          * YY_NULL, it'll still work - another
10743                                          * YY_NULL will get returned.
10744                                          */
10745                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
10746
10747                                         yy_act = YY_STATE_EOF(YY_START);
10748                                         goto do_action;
10749                                         }
10750
10751                                 else
10752                                         {
10753                                         if ( ! (yy_did_buffer_switch_on_eof) )
10754                                                 YY_NEW_FILE;
10755                                         }
10756                                 break;
10757                                 }
10758
10759                         case EOB_ACT_CONTINUE_SCAN:
10760                                 (yy_c_buf_p) =
10761                                         (yytext_ptr) + yy_amount_of_matched_text;
10762
10763                                 yy_current_state = yy_get_previous_state(  );
10764
10765                                 yy_cp = (yy_c_buf_p);
10766                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
10767                                 goto yy_match;
10768
10769                         case EOB_ACT_LAST_MATCH:
10770                                 (yy_c_buf_p) =
10771                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
10772
10773                                 yy_current_state = yy_get_previous_state(  );
10774
10775                                 yy_cp = (yy_c_buf_p);
10776                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
10777                                 goto yy_find_action;
10778                         }
10779                 break;
10780                 }
10781
10782         default:
10783                 YY_FATAL_ERROR(
10784                         "fatal flex scanner internal error--no action found" );
10785         } /* end of action switch */
10786                 } /* end of scanning one token */
10787         } /* end of user's declarations */
10788 } /* end of surf_parse_lex */
10789
10790 /* yy_get_next_buffer - try to read in a new buffer
10791  *
10792  * Returns a code representing an action:
10793  *      EOB_ACT_LAST_MATCH -
10794  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
10795  *      EOB_ACT_END_OF_FILE - end of file
10796  */
10797 static int yy_get_next_buffer (void)
10798 {
10799         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
10800         char *source = (yytext_ptr);
10801         int number_to_move, i;
10802         int ret_val;
10803
10804         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
10805                 YY_FATAL_ERROR(
10806                 "fatal flex scanner internal error--end of buffer missed" );
10807
10808         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
10809                 { /* Don't try to fill the buffer, so this is an EOF. */
10810                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
10811                         {
10812                         /* We matched a single character, the EOB, so
10813                          * treat this as a final EOF.
10814                          */
10815                         return EOB_ACT_END_OF_FILE;
10816                         }
10817
10818                 else
10819                         {
10820                         /* We matched some text prior to the EOB, first
10821                          * process it.
10822                          */
10823                         return EOB_ACT_LAST_MATCH;
10824                         }
10825                 }
10826
10827         /* Try to read more data. */
10828
10829         /* First move last chars to start of buffer. */
10830         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
10831
10832         for ( i = 0; i < number_to_move; ++i )
10833                 *(dest++) = *(source++);
10834
10835         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
10836                 /* don't do the read, it's not guaranteed to return an EOF,
10837                  * just force an EOF
10838                  */
10839                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
10840
10841         else
10842                 {
10843                         int num_to_read =
10844                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
10845
10846                 while ( num_to_read <= 0 )
10847                         { /* Not enough room in the buffer - grow it. */
10848
10849                         /* just a shorter name for the current buffer */
10850                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
10851
10852                         int yy_c_buf_p_offset =
10853                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
10854
10855                         if ( b->yy_is_our_buffer )
10856                                 {
10857                                 int new_size = b->yy_buf_size * 2;
10858
10859                                 if ( new_size <= 0 )
10860                                         b->yy_buf_size += b->yy_buf_size / 8;
10861                                 else
10862                                         b->yy_buf_size *= 2;
10863
10864                                 b->yy_ch_buf = (char *)
10865                                         /* Include room in for 2 EOB chars. */
10866                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
10867                                 }
10868                         else
10869                                 /* Can't grow it, we don't own it. */
10870                                 b->yy_ch_buf = NULL;
10871
10872                         if ( ! b->yy_ch_buf )
10873                                 YY_FATAL_ERROR(
10874                                 "fatal error - scanner input buffer overflow" );
10875
10876                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
10877
10878                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
10879                                                 number_to_move - 1;
10880
10881                         }
10882
10883                 if ( num_to_read > YY_READ_BUF_SIZE )
10884                         num_to_read = YY_READ_BUF_SIZE;
10885
10886                 /* Read in more data. */
10887                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
10888                         (yy_n_chars), num_to_read );
10889
10890                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10891                 }
10892
10893         if ( (yy_n_chars) == 0 )
10894                 {
10895                 if ( number_to_move == YY_MORE_ADJ )
10896                         {
10897                         ret_val = EOB_ACT_END_OF_FILE;
10898                         surf_parse_restart(surf_parse_in  );
10899                         }
10900
10901                 else
10902                         {
10903                         ret_val = EOB_ACT_LAST_MATCH;
10904                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
10905                                 YY_BUFFER_EOF_PENDING;
10906                         }
10907                 }
10908
10909         else
10910                 ret_val = EOB_ACT_CONTINUE_SCAN;
10911
10912         if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
10913                 /* Extend the array by 50%, plus the number we really need. */
10914                 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
10915                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
10916                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
10917                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
10918         }
10919
10920         (yy_n_chars) += number_to_move;
10921         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
10922         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
10923
10924         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
10925
10926         return ret_val;
10927 }
10928
10929 /* yy_get_previous_state - get the state just before the EOB char was reached */
10930
10931     static yy_state_type yy_get_previous_state (void)
10932 {
10933         yy_state_type yy_current_state;
10934         char *yy_cp;
10935     
10936         yy_current_state = (yy_start);
10937
10938         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
10939                 {
10940                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
10941                 if ( yy_accept[yy_current_state] )
10942                         {
10943                         (yy_last_accepting_state) = yy_current_state;
10944                         (yy_last_accepting_cpos) = yy_cp;
10945                         }
10946                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10947                         {
10948                         yy_current_state = (int) yy_def[yy_current_state];
10949                         if ( yy_current_state >= 3906 )
10950                                 yy_c = yy_meta[(unsigned int) yy_c];
10951                         }
10952                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
10953                 }
10954
10955         return yy_current_state;
10956 }
10957
10958 /* yy_try_NUL_trans - try to make a transition on the NUL character
10959  *
10960  * synopsis
10961  *      next_state = yy_try_NUL_trans( current_state );
10962  */
10963     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
10964 {
10965         int yy_is_jam;
10966         char *yy_cp = (yy_c_buf_p);
10967
10968         YY_CHAR yy_c = 1;
10969         if ( yy_accept[yy_current_state] )
10970                 {
10971                 (yy_last_accepting_state) = yy_current_state;
10972                 (yy_last_accepting_cpos) = yy_cp;
10973                 }
10974         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
10975                 {
10976                 yy_current_state = (int) yy_def[yy_current_state];
10977                 if ( yy_current_state >= 3906 )
10978                         yy_c = yy_meta[(unsigned int) yy_c];
10979                 }
10980         yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
10981         yy_is_jam = (yy_current_state == 3905);
10982
10983                 return yy_is_jam ? 0 : yy_current_state;
10984 }
10985
10986 #ifndef YY_NO_UNPUT
10987
10988 #endif
10989
10990 #ifndef YY_NO_INPUT
10991 #ifdef __cplusplus
10992     static int yyinput (void)
10993 #else
10994     static int input  (void)
10995 #endif
10996
10997 {
10998         int c;
10999     
11000         *(yy_c_buf_p) = (yy_hold_char);
11001
11002         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
11003                 {
11004                 /* yy_c_buf_p now points to the character we want to return.
11005                  * If this occurs *before* the EOB characters, then it's a
11006                  * valid NUL; if not, then we've hit the end of the buffer.
11007                  */
11008                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
11009                         /* This was really a NUL. */
11010                         *(yy_c_buf_p) = '\0';
11011
11012                 else
11013                         { /* need more input */
11014                         int offset = (yy_c_buf_p) - (yytext_ptr);
11015                         ++(yy_c_buf_p);
11016
11017                         switch ( yy_get_next_buffer(  ) )
11018                                 {
11019                                 case EOB_ACT_LAST_MATCH:
11020                                         /* This happens because yy_g_n_b()
11021                                          * sees that we've accumulated a
11022                                          * token and flags that we need to
11023                                          * try matching the token before
11024                                          * proceeding.  But for input(),
11025                                          * there's no matching to consider.
11026                                          * So convert the EOB_ACT_LAST_MATCH
11027                                          * to EOB_ACT_END_OF_FILE.
11028                                          */
11029
11030                                         /* Reset buffer status. */
11031                                         surf_parse_restart(surf_parse_in );
11032
11033                                         /*FALLTHROUGH*/
11034
11035                                 case EOB_ACT_END_OF_FILE:
11036                                         {
11037                                         if ( surf_parse_wrap( ) )
11038                                                 return 0;
11039
11040                                         if ( ! (yy_did_buffer_switch_on_eof) )
11041                                                 YY_NEW_FILE;
11042 #ifdef __cplusplus
11043                                         return yyinput();
11044 #else
11045                                         return input();
11046 #endif
11047                                         }
11048
11049                                 case EOB_ACT_CONTINUE_SCAN:
11050                                         (yy_c_buf_p) = (yytext_ptr) + offset;
11051                                         break;
11052                                 }
11053                         }
11054                 }
11055
11056         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
11057         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
11058         (yy_hold_char) = *++(yy_c_buf_p);
11059
11060         if ( c == '\n' )
11061                 
11062     surf_parse_lineno++;
11063 ;
11064
11065         return c;
11066 }
11067 #endif  /* ifndef YY_NO_INPUT */
11068
11069 /** Immediately switch to a different input stream.
11070  * @param input_file A readable stream.
11071  * 
11072  * @note This function does not reset the start condition to @c INITIAL .
11073  */
11074     void surf_parse_restart  (FILE * input_file )
11075 {
11076     
11077         if ( ! YY_CURRENT_BUFFER ){
11078         surf_parse_ensure_buffer_stack ();
11079                 YY_CURRENT_BUFFER_LVALUE =
11080             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
11081         }
11082
11083         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
11084         surf_parse__load_buffer_state( );
11085 }
11086
11087 /** Switch to a different input buffer.
11088  * @param new_buffer The new input buffer.
11089  * 
11090  */
11091     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
11092 {
11093     
11094         /* TODO. We should be able to replace this entire function body
11095          * with
11096          *              surf_parse_pop_buffer_state();
11097          *              surf_parse_push_buffer_state(new_buffer);
11098      */
11099         surf_parse_ensure_buffer_stack ();
11100         if ( YY_CURRENT_BUFFER == new_buffer )
11101                 return;
11102
11103         if ( YY_CURRENT_BUFFER )
11104                 {
11105                 /* Flush out information for old buffer. */
11106                 *(yy_c_buf_p) = (yy_hold_char);
11107                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11108                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11109                 }
11110
11111         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11112         surf_parse__load_buffer_state( );
11113
11114         /* We don't actually know whether we did this switch during
11115          * EOF (surf_parse_wrap()) processing, but the only time this flag
11116          * is looked at is after surf_parse_wrap() is called, so it's safe
11117          * to go ahead and always set it.
11118          */
11119         (yy_did_buffer_switch_on_eof) = 1;
11120 }
11121
11122 static void surf_parse__load_buffer_state  (void)
11123 {
11124         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
11125         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
11126         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
11127         (yy_hold_char) = *(yy_c_buf_p);
11128 }
11129
11130 /** Allocate and initialize an input buffer state.
11131  * @param file A readable stream.
11132  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
11133  * 
11134  * @return the allocated buffer state.
11135  */
11136     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
11137 {
11138         YY_BUFFER_STATE b;
11139     
11140         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
11141         if ( ! b )
11142                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
11143
11144         b->yy_buf_size = (yy_size_t)size;
11145
11146         /* yy_ch_buf has to be 2 characters longer than the size given because
11147          * we need to put in 2 end-of-buffer characters.
11148          */
11149         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
11150         if ( ! b->yy_ch_buf )
11151                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
11152
11153         b->yy_is_our_buffer = 1;
11154
11155         surf_parse__init_buffer(b,file );
11156
11157         return b;
11158 }
11159
11160 /** Destroy the buffer.
11161  * @param b a buffer created with surf_parse__create_buffer()
11162  * 
11163  */
11164     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
11165 {
11166     
11167         if ( ! b )
11168                 return;
11169
11170         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
11171                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
11172
11173         if ( b->yy_is_our_buffer )
11174                 surf_parse_free((void *) b->yy_ch_buf  );
11175
11176         surf_parse_free((void *) b  );
11177 }
11178
11179 /* Initializes or reinitializes a buffer.
11180  * This function is sometimes called more than once on the same buffer,
11181  * such as during a surf_parse_restart() or at EOF.
11182  */
11183     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
11184
11185 {
11186         int oerrno = errno;
11187     
11188         surf_parse__flush_buffer(b );
11189
11190         b->yy_input_file = file;
11191         b->yy_fill_buffer = 1;
11192
11193     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
11194      * called from surf_parse_restart() or through yy_get_next_buffer.
11195      * In that case, we don't want to reset the lineno or column.
11196      */
11197     if (b != YY_CURRENT_BUFFER){
11198         b->yy_bs_lineno = 1;
11199         b->yy_bs_column = 0;
11200     }
11201
11202         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
11203     
11204         errno = oerrno;
11205 }
11206
11207 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
11208  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
11209  * 
11210  */
11211     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
11212 {
11213         if ( ! b )
11214                 return;
11215
11216         b->yy_n_chars = 0;
11217
11218         /* We always need two end-of-buffer characters.  The first causes
11219          * a transition to the end-of-buffer state.  The second causes
11220          * a jam in that state.
11221          */
11222         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
11223         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
11224
11225         b->yy_buf_pos = &b->yy_ch_buf[0];
11226
11227         b->yy_at_bol = 1;
11228         b->yy_buffer_status = YY_BUFFER_NEW;
11229
11230         if ( b == YY_CURRENT_BUFFER )
11231                 surf_parse__load_buffer_state( );
11232 }
11233
11234 /** Pushes the new state onto the stack. The new state becomes
11235  *  the current state. This function will allocate the stack
11236  *  if necessary.
11237  *  @param new_buffer The new state.
11238  *  
11239  */
11240 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
11241 {
11242         if (new_buffer == NULL)
11243                 return;
11244
11245         surf_parse_ensure_buffer_stack();
11246
11247         /* This block is copied from surf_parse__switch_to_buffer. */
11248         if ( YY_CURRENT_BUFFER )
11249                 {
11250                 /* Flush out information for old buffer. */
11251                 *(yy_c_buf_p) = (yy_hold_char);
11252                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
11253                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
11254                 }
11255
11256         /* Only push if top exists. Otherwise, replace top. */
11257         if (YY_CURRENT_BUFFER)
11258                 (yy_buffer_stack_top)++;
11259         YY_CURRENT_BUFFER_LVALUE = new_buffer;
11260
11261         /* copied from surf_parse__switch_to_buffer. */
11262         surf_parse__load_buffer_state( );
11263         (yy_did_buffer_switch_on_eof) = 1;
11264 }
11265
11266 /** Removes and deletes the top of the stack, if present.
11267  *  The next element becomes the new top.
11268  *  
11269  */
11270 void surf_parse_pop_buffer_state (void)
11271 {
11272         if (!YY_CURRENT_BUFFER)
11273                 return;
11274
11275         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
11276         YY_CURRENT_BUFFER_LVALUE = NULL;
11277         if ((yy_buffer_stack_top) > 0)
11278                 --(yy_buffer_stack_top);
11279
11280         if (YY_CURRENT_BUFFER) {
11281                 surf_parse__load_buffer_state( );
11282                 (yy_did_buffer_switch_on_eof) = 1;
11283         }
11284 }
11285
11286 /* Allocates the stack if it does not exist.
11287  *  Guarantees space for at least one push.
11288  */
11289 static void surf_parse_ensure_buffer_stack (void)
11290 {
11291         int num_to_alloc;
11292     
11293         if (!(yy_buffer_stack)) {
11294
11295                 /* First allocation is just for 2 elements, since we don't know if this
11296                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
11297                  * immediate realloc on the next call.
11298          */
11299       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
11300                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
11301                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
11302                                                                 );
11303                 if ( ! (yy_buffer_stack) )
11304                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
11305
11306                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
11307
11308                 (yy_buffer_stack_max) = num_to_alloc;
11309                 (yy_buffer_stack_top) = 0;
11310                 return;
11311         }
11312
11313         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
11314
11315                 /* Increase the buffer to prepare for a possible push. */
11316                 yy_size_t grow_size = 8 /* arbitrary grow size */;
11317
11318                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
11319                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
11320                                                                 ((yy_buffer_stack),
11321                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
11322                                                                 );
11323                 if ( ! (yy_buffer_stack) )
11324                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
11325
11326                 /* zero only the new slots.*/
11327                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
11328                 (yy_buffer_stack_max) = num_to_alloc;
11329         }
11330 }
11331
11332 /** Setup the input buffer state to scan directly from a user-specified character buffer.
11333  * @param base the character buffer
11334  * @param size the size in bytes of the character buffer
11335  * 
11336  * @return the newly allocated buffer state object.
11337  */
11338 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
11339 {
11340         YY_BUFFER_STATE b;
11341     
11342         if ( size < 2 ||
11343              base[size-2] != YY_END_OF_BUFFER_CHAR ||
11344              base[size-1] != YY_END_OF_BUFFER_CHAR )
11345                 /* They forgot to leave room for the EOB's. */
11346                 return NULL;
11347
11348         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
11349         if ( ! b )
11350                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
11351
11352         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
11353         b->yy_buf_pos = b->yy_ch_buf = base;
11354         b->yy_is_our_buffer = 0;
11355         b->yy_input_file = NULL;
11356         b->yy_n_chars = b->yy_buf_size;
11357         b->yy_is_interactive = 0;
11358         b->yy_at_bol = 1;
11359         b->yy_fill_buffer = 0;
11360         b->yy_buffer_status = YY_BUFFER_NEW;
11361
11362         surf_parse__switch_to_buffer(b  );
11363
11364         return b;
11365 }
11366
11367 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
11368  * scan from a @e copy of @a str.
11369  * @param yystr a NUL-terminated string to scan
11370  * 
11371  * @return the newly allocated buffer state object.
11372  * @note If you want to scan bytes that may contain NUL values, then use
11373  *       surf_parse__scan_bytes() instead.
11374  */
11375 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
11376 {
11377     
11378         return surf_parse__scan_bytes(yystr,(int) strlen(yystr) );
11379 }
11380
11381 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
11382  * scan from a @e copy of @a bytes.
11383  * @param yybytes the byte buffer to scan
11384  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
11385  * 
11386  * @return the newly allocated buffer state object.
11387  */
11388 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
11389 {
11390         YY_BUFFER_STATE b;
11391         char *buf;
11392         yy_size_t n;
11393         int i;
11394     
11395         /* Get memory for full buffer, including space for trailing EOB's. */
11396         n = (yy_size_t) (_yybytes_len + 2);
11397         buf = (char *) surf_parse_alloc(n  );
11398         if ( ! buf )
11399                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
11400
11401         for ( i = 0; i < _yybytes_len; ++i )
11402                 buf[i] = yybytes[i];
11403
11404         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
11405
11406         b = surf_parse__scan_buffer(buf,n );
11407         if ( ! b )
11408                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
11409
11410         /* It's okay to grow etc. this buffer, and we should throw it
11411          * away when we're done.
11412          */
11413         b->yy_is_our_buffer = 1;
11414
11415         return b;
11416 }
11417
11418     static void yy_push_state (int  _new_state )
11419 {
11420         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
11421                 {
11422                 yy_size_t new_size;
11423
11424                 (yy_start_stack_depth) += YY_START_STACK_INCR;
11425                 new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
11426
11427                 if ( ! (yy_start_stack) )
11428                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
11429
11430                 else
11431                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
11432
11433                 if ( ! (yy_start_stack) )
11434                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
11435                 }
11436
11437         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
11438
11439         BEGIN(_new_state);
11440 }
11441
11442     static void yy_pop_state  (void)
11443 {
11444         if ( --(yy_start_stack_ptr) < 0 )
11445                 YY_FATAL_ERROR( "start-condition stack underflow" );
11446
11447         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
11448 }
11449
11450 #ifndef YY_EXIT_FAILURE
11451 #define YY_EXIT_FAILURE 2
11452 #endif
11453
11454 static void yynoreturn yy_fatal_error (yyconst char* msg )
11455 {
11456                         (void) fprintf( stderr, "%s\n", msg );
11457         exit( YY_EXIT_FAILURE );
11458 }
11459
11460 /* Redefine yyless() so it works in section 3 code. */
11461
11462 #undef yyless
11463 #define yyless(n) \
11464         do \
11465                 { \
11466                 /* Undo effects of setting up surf_parse_text. */ \
11467         int yyless_macro_arg = (n); \
11468         YY_LESS_LINENO(yyless_macro_arg);\
11469                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
11470                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
11471                 (yy_hold_char) = *(yy_c_buf_p); \
11472                 *(yy_c_buf_p) = '\0'; \
11473                 surf_parse_leng = yyless_macro_arg; \
11474                 } \
11475         while ( 0 )
11476
11477 /* Accessor  methods (get/set functions) to struct members. */
11478
11479 /** Get the current line number.
11480  * 
11481  */
11482 int surf_parse_get_lineno  (void)
11483 {
11484     
11485     return surf_parse_lineno;
11486 }
11487
11488 /** Get the input stream.
11489  * 
11490  */
11491 FILE *surf_parse_get_in  (void)
11492 {
11493         return surf_parse_in;
11494 }
11495
11496 /** Get the output stream.
11497  * 
11498  */
11499 FILE *surf_parse_get_out  (void)
11500 {
11501         return surf_parse_out;
11502 }
11503
11504 /** Get the length of the current token.
11505  * 
11506  */
11507 int surf_parse_get_leng  (void)
11508 {
11509         return surf_parse_leng;
11510 }
11511
11512 /** Get the current token.
11513  * 
11514  */
11515
11516 char *surf_parse_get_text  (void)
11517 {
11518         return surf_parse_text;
11519 }
11520
11521 /** Set the current line number.
11522  * @param _line_number line number
11523  * 
11524  */
11525 void surf_parse_set_lineno (int  _line_number )
11526 {
11527     
11528     surf_parse_lineno = _line_number;
11529 }
11530
11531 /** Set the input stream. This does not discard the current
11532  * input buffer.
11533  * @param _in_str A readable stream.
11534  * 
11535  * @see surf_parse__switch_to_buffer
11536  */
11537 void surf_parse_set_in (FILE *  _in_str )
11538 {
11539         surf_parse_in = _in_str ;
11540 }
11541
11542 void surf_parse_set_out (FILE *  _out_str )
11543 {
11544         surf_parse_out = _out_str ;
11545 }
11546
11547 int surf_parse_get_debug  (void)
11548 {
11549         return surf_parse__flex_debug;
11550 }
11551
11552 void surf_parse_set_debug (int  _bdebug )
11553 {
11554         surf_parse__flex_debug = _bdebug ;
11555 }
11556
11557 static int yy_init_globals (void)
11558 {
11559         /* Initialization is the same as for the non-reentrant scanner.
11560      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
11561      */
11562
11563     /* We do not touch surf_parse_lineno unless the option is enabled. */
11564     surf_parse_lineno =  1;
11565     
11566     (yy_buffer_stack) = NULL;
11567     (yy_buffer_stack_top) = 0;
11568     (yy_buffer_stack_max) = 0;
11569     (yy_c_buf_p) = NULL;
11570     (yy_init) = 0;
11571     (yy_start) = 0;
11572
11573     (yy_start_stack_ptr) = 0;
11574     (yy_start_stack_depth) = 0;
11575     (yy_start_stack) =  NULL;
11576
11577 /* Defined in main.c */
11578 #ifdef YY_STDINIT
11579     surf_parse_in = stdin;
11580     surf_parse_out = stdout;
11581 #else
11582     surf_parse_in = NULL;
11583     surf_parse_out = NULL;
11584 #endif
11585
11586     /* For future reference: Set errno on error, since we are called by
11587      * surf_parse_lex_init()
11588      */
11589     return 0;
11590 }
11591
11592 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
11593 int surf_parse_lex_destroy  (void)
11594 {
11595     
11596     /* Pop the buffer stack, destroying each element. */
11597         while(YY_CURRENT_BUFFER){
11598                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
11599                 YY_CURRENT_BUFFER_LVALUE = NULL;
11600                 surf_parse_pop_buffer_state();
11601         }
11602
11603         /* Destroy the stack itself. */
11604         surf_parse_free((yy_buffer_stack) );
11605         (yy_buffer_stack) = NULL;
11606
11607     /* Destroy the start condition stack. */
11608         surf_parse_free((yy_start_stack)  );
11609         (yy_start_stack) = NULL;
11610
11611     /* Reset the globals. This is important in a non-reentrant scanner so the next time
11612      * surf_parse_lex() is called, initialization will occur. */
11613     yy_init_globals( );
11614
11615     return 0;
11616 }
11617
11618 /*
11619  * Internal utility routines.
11620  */
11621
11622 #ifndef yytext_ptr
11623 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
11624 {
11625                 
11626         int i;
11627         for ( i = 0; i < n; ++i )
11628                 s1[i] = s2[i];
11629 }
11630 #endif
11631
11632 #ifdef YY_NEED_STRLEN
11633 static int yy_flex_strlen (yyconst char * s )
11634 {
11635         int n;
11636         for ( n = 0; s[n]; ++n )
11637                 ;
11638
11639         return n;
11640 }
11641 #endif
11642
11643 void *surf_parse_alloc (yy_size_t  size )
11644 {
11645                         return malloc(size);
11646 }
11647
11648 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
11649 {
11650                 
11651         /* The cast to (char *) in the following accommodates both
11652          * implementations that use char* generic pointers, and those
11653          * that use void* generic pointers.  It works with the latter
11654          * because both ANSI C and C++ allow castless assignment from
11655          * any pointer type to void*, and deal with argument conversions
11656          * as though doing an assignment.
11657          */
11658         return realloc(ptr, size);
11659 }
11660
11661 void surf_parse_free (void * ptr )
11662 {
11663                         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
11664 }
11665
11666 #define YYTABLES_NAME "yytables"
11667
11668 /* Element context stack lookup. */
11669 int surfxml_element_context(int i)
11670 {
11671   return (0<i && i<yy_start_stack_depth
11672           ? yy_start_stack[yy_start_stack_ptr - i]
11673           : 0);
11674 }
11675
11676 #ifdef FLEX_DEBUG
11677 void print_yy_stack(char* fmt, ...)
11678 {
11679   int i = 0; va_list ap; va_start(ap, fmt);
11680   vfprintf(stderr, fmt, ap);
11681   if (surfxml_statenames) {
11682       for (i=1; i<yy_start_stack_ptr; i++) {
11683           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
11684       }
11685       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
11686   }
11687   va_end(ap);
11688 }
11689
11690 void print_surfxml_bufferstack()
11691 {
11692     int i;
11693     fputs("Buffer: ", stderr);
11694     for (i = 0; i < blimit; i++) {
11695        if ( surfxml_bufferstack[i] == '\377' ) break;
11696          putc(surfxml_bufferstack[i], stderr);
11697     }
11698     putc('\n', stderr);
11699 }
11700
11701 static void debug_enter(int state, const char* statename) {
11702   yy_push_state(state);
11703   if (surf_parse__flex_debug) {
11704        print_yy_stack("--ENTER(%s) : ",statename);
11705        print_surfxml_bufferstack();
11706   }
11707 }
11708
11709 static void debug_leave(void) {
11710     if (surf_parse__flex_debug) {
11711         print_yy_stack("--LEAVE : ");
11712         print_surfxml_bufferstack();
11713     }
11714   yy_pop_state();
11715 }
11716
11717 static void debug_set(int state, const char* statename) {
11718   BEGIN(state);
11719   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
11720 }
11721 #endif
11722
11723 static void cleanup(void)
11724 {
11725     if (surfxml_statenames) {
11726         free(surfxml_statenames);
11727         surfxml_statenames = NULL;
11728     }
11729     free(surfxml_bufferstack);
11730     surfxml_bufferstack = NULL;
11731
11732     free(indexstack);
11733     indexstack = NULL;
11734 }
11735
11736 static int fail(const char* fmt, ...)
11737 {
11738     int chars_left, used;
11739     va_list ap; va_start(ap, fmt);
11740 #ifdef FLEXML_yylineno
11741     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
11742                    "Invalid XML (XML input line %d, state %d): ",
11743                    surf_parse_lineno, YY_START);
11744 #else
11745     used = snprintf(flexml_err_msg,flexml_max_err_msg_size,
11746                    "Invalid XML (state %d): ",
11747                    YY_START);
11748 #endif
11749     chars_left = flexml_max_err_msg_size - used - 1;
11750     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
11751     va_end(ap);
11752
11753 #ifndef FLEXML_quiet_parser
11754     /* print directly to sdterr */
11755     fprintf(stderr, "%s\n", flexml_err_msg);
11756     flexml_err_msg[0] = '\0';
11757 #endif
11758
11759     cleanup();
11760
11761     return 1;
11762 }
11763