Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
f3167441c12b233ba44c1e69f125e59b00e446a9
[simgrid.git] / src / surf / xml / simgrid_dtd.c
1
2 #line 3 "src/surf/xml/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 39
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 #ifndef YY_TYPEDEF_YY_SIZE_T
184 #define YY_TYPEDEF_YY_SIZE_T
185 typedef size_t yy_size_t;
186 #endif
187
188 extern yy_size_t surf_parse_leng;
189
190 extern FILE *surf_parse_in, *surf_parse_out;
191
192 #define EOB_ACT_CONTINUE_SCAN 0
193 #define EOB_ACT_END_OF_FILE 1
194 #define EOB_ACT_LAST_MATCH 2
195
196     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
197      *       access to the local variable yy_act. Since yyless() is a macro, it would break
198      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
199      *       One obvious solution it to make yy_act a global. I tried that, and saw
200      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
201      *       normally declared as a variable-- so it is not worth it.
202      */
203     #define  YY_LESS_LINENO(n) \
204             do { \
205                 unsigned int yyl;\
206                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
207                     if ( surf_parse_text[yyl] == '\n' )\
208                         --surf_parse_lineno;\
209             }while(0)
210     #define YY_LINENO_REWIND_TO(dst) \
211             do {\
212                 const char *p;\
213                 for ( p = yy_cp-1; p >= (dst); --p)\
214                     if ( *p == '\n' )\
215                         --surf_parse_lineno;\
216             }while(0)
217     
218 /* Return all but the first "n" matched characters back to the input stream. */
219 #define yyless(n) \
220         do \
221                 { \
222                 /* Undo effects of setting up surf_parse_text. */ \
223         int yyless_macro_arg = (n); \
224         YY_LESS_LINENO(yyless_macro_arg);\
225                 *yy_cp = (yy_hold_char); \
226                 YY_RESTORE_YY_MORE_OFFSET \
227                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
228                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
229                 } \
230         while ( 0 )
231
232 #define unput(c) yyunput( c, (yytext_ptr)  )
233
234 #ifndef YY_STRUCT_YY_BUFFER_STATE
235 #define YY_STRUCT_YY_BUFFER_STATE
236 struct yy_buffer_state
237         {
238         FILE *yy_input_file;
239
240         char *yy_ch_buf;                /* input buffer */
241         char *yy_buf_pos;               /* current position in input buffer */
242
243         /* Size of input buffer in bytes, not including room for EOB
244          * characters.
245          */
246         yy_size_t yy_buf_size;
247
248         /* Number of characters read into yy_ch_buf, not including EOB
249          * characters.
250          */
251         yy_size_t yy_n_chars;
252
253         /* Whether we "own" the buffer - i.e., we know we created it,
254          * and can realloc() it to grow it, and should free() it to
255          * delete it.
256          */
257         int yy_is_our_buffer;
258
259         /* Whether this is an "interactive" input source; if so, and
260          * if we're using stdio for input, then we want to use getc()
261          * instead of fread(), to make sure we stop fetching input after
262          * each newline.
263          */
264         int yy_is_interactive;
265
266         /* Whether we're considered to be at the beginning of a line.
267          * If so, '^' rules will be active on the next match, otherwise
268          * not.
269          */
270         int yy_at_bol;
271
272     int yy_bs_lineno; /**< The line count. */
273     int yy_bs_column; /**< The column count. */
274     
275         /* Whether to try to fill the input buffer when we reach the
276          * end of it.
277          */
278         int yy_fill_buffer;
279
280         int yy_buffer_status;
281
282 #define YY_BUFFER_NEW 0
283 #define YY_BUFFER_NORMAL 1
284         /* When an EOF's been seen but there's still some text to process
285          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
286          * shouldn't try reading from the input source any more.  We might
287          * still have a bunch of tokens to match, though, because of
288          * possible backing-up.
289          *
290          * When we actually see the EOF, we change the status to "new"
291          * (via surf_parse_restart()), so that the user can continue scanning by
292          * just pointing surf_parse_in at a new input file.
293          */
294 #define YY_BUFFER_EOF_PENDING 2
295
296         };
297 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
298
299 /* Stack of input buffers. */
300 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
301 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
302 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
303
304 /* We provide macros for accessing buffer states in case in the
305  * future we want to put the buffer states in a more general
306  * "scanner state".
307  *
308  * Returns the top of the stack, or NULL.
309  */
310 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
311                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
312                           : NULL)
313
314 /* Same as previous macro, but useful when we know that the buffer stack is not
315  * NULL or when we need an lvalue. For internal use only.
316  */
317 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
318
319 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
320 static char yy_hold_char;
321 static yy_size_t yy_n_chars;            /* number of characters read into yy_ch_buf */
322 yy_size_t surf_parse_leng;
323
324 /* Points to current character in buffer. */
325 static char *yy_c_buf_p = (char *) 0;
326 static int yy_init = 0;         /* whether we need to initialize */
327 static int yy_start = 0;        /* start state number */
328
329 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
330  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
331  */
332 static int yy_did_buffer_switch_on_eof;
333
334 void surf_parse_restart (FILE *input_file  );
335 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
336 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
337 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
338 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
339 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
340 void surf_parse_pop_buffer_state (void );
341
342 static void surf_parse_ensure_buffer_stack (void );
343 static void surf_parse__load_buffer_state (void );
344 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
345
346 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
347
348 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
349 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
350 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,yy_size_t len  );
351
352 void *surf_parse_alloc (yy_size_t  );
353 void *surf_parse_realloc (void *,yy_size_t  );
354 void surf_parse_free (void *  );
355
356 #define yy_new_buffer surf_parse__create_buffer
357
358 #define yy_set_interactive(is_interactive) \
359         { \
360         if ( ! YY_CURRENT_BUFFER ){ \
361         surf_parse_ensure_buffer_stack (); \
362                 YY_CURRENT_BUFFER_LVALUE =    \
363             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
364         } \
365         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
366         }
367
368 #define yy_set_bol(at_bol) \
369         { \
370         if ( ! YY_CURRENT_BUFFER ){\
371         surf_parse_ensure_buffer_stack (); \
372                 YY_CURRENT_BUFFER_LVALUE =    \
373             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
374         } \
375         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
376         }
377
378 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
379
380 /* Begin user sect3 */
381
382 #define surf_parse_wrap() 1
383 #define YY_SKIP_YYWRAP
384
385 typedef unsigned char YY_CHAR;
386
387 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
388
389 typedef int yy_state_type;
390
391 extern int surf_parse_lineno;
392
393 int surf_parse_lineno = 1;
394
395 extern char *surf_parse_text;
396 #define yytext_ptr surf_parse_text
397
398 static yy_state_type yy_get_previous_state (void );
399 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
400 static int yy_get_next_buffer (void );
401 static void yy_fatal_error (yyconst char msg[]  );
402
403 /* Done after the current pattern has been matched and before the
404  * corresponding action - sets up surf_parse_text.
405  */
406 #define YY_DO_BEFORE_ACTION \
407         (yytext_ptr) = yy_bp; \
408         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
409         (yy_hold_char) = *yy_cp; \
410         *yy_cp = '\0'; \
411         (yy_c_buf_p) = yy_cp;
412
413 #define YY_NUM_RULES 557
414 #define YY_END_OF_BUFFER 558
415 /* This struct is not used in this scanner,
416    but its presence is necessary. */
417 struct yy_trans_info
418         {
419         flex_int32_t yy_verify;
420         flex_int32_t yy_nxt;
421         };
422 static yyconst flex_int16_t yy_accept[3294] =
423     {   0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427         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         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
445
446         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
447         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
448         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
449         0,    0,    0,    0,    0,    0,    0,    0,  558,  556,
450        15,   10,   10,   15,   15,  536,   10,  536,    5,    6,
451         5,    8,    9,    8,  552,  544,  545,  553,  550,  553,
452       551,  555,  544,  545,  555,   40,   10,   40,   40,   40,
453        38,   40,   40,   44,   10,   44,   44,  556,   44,  556,
454       556,   44,   61,   10,   61,   61,   61,   59,   61,   61,
455        61,   65,   10,   65,  556,   65,   72,   10,   72,   72,
456
457        72,   70,   72,   76,   10,   76,   87,   10,   87,   87,
458        87,   85,   87,   87,   87,   91,   10,   91,  104,   10,
459       104,  104,  104,  102,  104,  104,  104,  108,   10,  108,
460       108,  117,   10,  117,  117,  117,  115,  117,  117,  121,
461        10,  121,  121,  140,   10,  140,  140,  140,  138,  140,
462       140,  140,  140,  140,  140,  144,   10,  144,  195,   10,
463       195,  195,  195,  193,  195,  195,  195,  195,  195,  195,
464       195,  195,  199,   10,  199,  199,  206,   10,  206,  206,
465       206,  204,  206,  210,   10,  210,  210,  229,   10,  229,
466       229,  229,  227,  229,  229,  229,  229,  229,  233,   10,
467
468       233,  556,  233,  244,   10,  244,  244,  244,  242,  244,
469       244,  244,  248,   10,  248,  255,   10,  255,  255,  255,
470       253,  255,  259,   10,  259,  556,  259,  282,   10,  282,
471       282,  282,  280,  282,  282,  282,  282,  286,   10,  286,
472       286,  299,   10,  299,  299,  299,  297,  299,  299,  303,
473        10,  303,  312,   10,  312,  312,  312,  310,  312,  312,
474       316,   10,  316,  325,   10,  325,  325,  325,  323,  325,
475       325,  329,   10,  329,  350,   10,  350,  350,  350,  348,
476       350,  350,  350,  350,  350,  350,  354,   10,  354,  556,
477       361,   10,  361,  361,  361,  359,  361,  365,   10,  365,
478
479       365,  556,  365,  556,  365,  382,   10,  382,  382,  382,
480       380,  382,  382,  382,  382,  382,  386,   10,  386,  556,
481       386,  395,   10,  395,  395,  395,  393,  395,  395,  399,
482        10,  399,  426,   10,  426,  426,  426,  424,  426,  426,
483       426,  426,  426,  430,   10,  430,  443,   10,  443,  443,
484       443,  441,  443,  443,  447,   10,  447,  447,  456,   10,
485       456,  456,  456,  454,  456,  456,  460,   10,  460,  475,
486        10,  475,  475,  475,  473,  475,  475,  475,  475,  479,
487        10,  479,  479,  494,   10,  494,  494,  494,  492,  494,
488       494,  494,  494,  498,   10,  498,  556,  498,  509,   10,
489
490       509,  509,  509,  507,  509,  509,  509,  553,  552,  531,
491        10,  531,  531,  531,  529,  531,  531,  531,  535,   10,
492       535,   10,    0,    2,    2,    0,    4,    7,  547,  546,
493         0,    0,    0,    0,    0,    0,   39,   41,   41,   41,
494         0,    0,    0,    0,    0,    0,    0,    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        60,   62,   62,   62,   62,   62,    0,    0,   71,   73,
498        73,    0,   86,   88,   88,   88,   88,    0,  103,  105,
499       105,  105,  105,    0,  116,  118,  118,  118,    0,  139,
500
501       141,  141,  141,  141,  141,  141,  141,  141,    0,  194,
502       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
503       196,  196,  196,  196,  196,    0,  205,  207,  207,    0,
504       228,  230,  230,  230,  230,  230,  230,  230,    0,    0,
505       243,  245,  245,  245,  245,    0,  254,  256,  256,    0,
506         0,  281,  283,  283,  283,  283,  283,  283,    0,  298,
507       300,  300,  300,    0,  311,  313,  313,  313,    0,  324,
508       326,  326,  326,    0,  349,  351,  351,  351,  351,  351,
509       351,  351,  351,    0,    0,  360,  362,  362,    0,    0,
510         0,    0,    0,    0,  381,  383,  383,  383,  383,  383,
511
512       383,    0,    0,  394,  396,  396,  396,    0,  425,  427,
513       427,  427,  427,  427,  427,  427,  427,  427,    0,  442,
514       444,  444,  444,  444,    0,  455,  457,  457,  457,    0,
515       474,  476,  476,  476,  476,  476,    0,  493,  495,  495,
516       495,  495,  495,    0,    0,  508,  510,  510,  510,  510,
517         0,    0,    0,  530,  532,  532,  532,  532,    0,    0,
518         0,    0,    0,    3,    0,    0,    0,    0,    0,    0,
519         0,  554,    0,    0,   41,    0,    0,   17,    0,    0,
520         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
521         0,    0,    0,    0,    0,    0,   16,    0,    0,    0,
522
523         0,    0,    0,    0,    0,    0,    0,    0,   16,    0,
524         0,   62,   62,   62,   62,    0,    0,    0,   73,    0,
525         0,   88,    0,    0,   88,    0,    0,  105,  105,  105,
526         0,    0,  118,  118,    0,    0,    0,    0,    0,    0,
527       141,  141,  141,  141,  141,    0,    0,  196,    0,    0,
528       196,    0,    0,  196,  196,  196,  196,  196,  196,  196,
529       196,  196,  196,    0,    0,    0,    0,    0,    0,  230,
530       230,  230,    0,    0,  230,  230,  230,    0,    0,    0,
531       245,    0,    0,    0,    0,    0,    0,  256,    0,    0,
532        17,  283,    0,    0,  283,  283,  283,    0,    0,  300,
533
534         0,    0,    0,    0,    0,    0,  313,    0,    0,  326,
535       326,    0,    0,  351,  351,  351,    0,    0,  351,  351,
536       351,    0,    0,    0,  362,    0,    0,    0,    0,    0,
537       383,  383,  383,  383,  383,    0,    0,    0,    0,    0,
538       396,    0,    0,  427,    0,    0,  427,  427,  427,  427,
539       427,  427,    0,    0,  444,  444,  444,    0,    0,  457,
540         0,    0,    0,    0,  476,  476,    0,    0,  476,    0,
541         0,  495,    0,    0,  495,  495,    0,    0,    0,  510,
542         0,    0,  510,    0,    0,    0,  549,  532,  532,  532,
543         0,    0,    0,   14,    1,    0,    0,  542,    0,    0,
544
545         0,  539,  538,    0,    0,   19,   18,   41,    0,    0,
546        43,    0,   17,    0,    0,    0,    0,    0,    0,    0,
547         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
548         0,    0,    0,   16,    0,    0,    0,    0,    0,    0,
549         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
550        62,   62,    0,    0,   62,    0,    0,   64,    0,    0,
551        73,    0,    0,   75,    0,   88,    0,   82,   81,   88,
552         0,    0,   90,    0,    0,    0,  105,  105,    0,    0,
553         0,    0,  107,    0,    0,    0,    0,    0,    0,    0,
554       120,    0,    0,  125,  124,    0,  127,  126,    0,    0,
555
556       141,  141,  141,  141,    0,    0,  143,    0,  196,  196,
557       196,    0,  156,  155,  196,    0,  160,  159,    0,    0,
558       196,  196,  196,  196,  196,  196,  196,  196,  196,    0,
559         0,  198,    0,    0,  203,  202,    0,    0,  209,    0,
560       230,  230,  230,    0,  220,  219,  230,  230,  230,    0,
561         0,  232,    0,    0,  245,    0,  239,  238,    0,  241,
562       240,    0,    0,  247,    0,  256,    0,    0,  258,    0,
563       283,    0,  267,  266,  283,  283,  283,    0,    0,  285,
564         0,  300,    0,  296,  295,    0,    0,  302,    0,    0,
565       307,  306,  313,    0,    0,  315,    0,  326,  326,    0,
566
567         0,  328,    0,  351,  351,  351,  351,    0,  341,  340,
568         0,    0,  351,  351,    0,    0,  353,    0,    0,  362,
569         0,    0,  364,    0,    0,    0,    0,  383,  383,  383,
570       383,  383,    0,    0,  385,    0,    0,    0,  390,  389,
571       396,    0,    0,  398,    0,  427,    0,  411,  410,    0,
572         0,  427,    0,    0,  427,  427,  427,    0,    0,  429,
573         0,    0,    0,    0,    0,  444,    0,    0,  446,    0,
574       457,    0,  453,  452,    0,    0,  459,    0,  476,  476,
575         0,  470,  469,  476,    0,    0,  478,    0,  495,    0,
576       487,  486,  495,  495,    0,    0,  497,    0,    0,  510,
577
578         0,  504,  503,  510,    0,    0,    0,  512,    0,  532,
579       532,  532,    0,    0,  534,    0,    0,    0,  543,  537,
580         0,    0,   41,    0,   42,    0,    0,    0,    0,    0,
581         0,    0,  212,    0,  261,    0,    0,  331,    0,    0,
582       388,    0,    0,    0,    0,  387,    0,    0,    0,    0,
583         0,  211,    0,  260,  330,    0,    0,    0,    0,    0,
584         0,   48,   47,   62,   62,    0,   54,   53,   62,    0,
585       260,   73,    0,   88,   88,    0,    0,   95,   94,  105,
586       105,    0,  101,  100,    0,    0,  112,  111,    0,  114,
587       113,    0,    0,  129,  128,  141,  141,  141,  141,    0,
588
589       196,  196,  196,    0,    0,    0,  162,  161,  196,  196,
590       196,  196,  196,  196,  196,  196,  196,  196,    0,    0,
591       230,  230,    0,    0,  230,  230,  230,    0,    0,    0,
592         0,    0,    0,    0,    0,  283,  283,  283,  283,    0,
593       300,    0,  313,    0,    0,    0,  326,    0,  351,  351,
594       351,  351,    0,  343,  342,  351,  351,    0,    0,  362,
595         0,    0,    0,    0,  383,    0,    0,  383,  383,  383,
596         0,    0,  396,    0,  427,    0,  413,  412,    0,    0,
597         0,  417,  416,  427,    0,    0,  427,    0,    0,  434,
598       433,    0,  436,  435,  444,    0,  457,    0,  476,  476,
599
600       476,    0,  495,  495,    0,    0,    0,    0,    0,    0,
601       510,    0,    0,  532,    0,    0,  532,    0,    0,    0,
602         0,   12,    0,  540,  541,   41,    0,    0,    0,    0,
603         0,    0,    0,  212,    0,    0,  261,    0,    0,  317,
604       331,    0,    0,  388,    0,  432,    0,  500,  387,    0,
605         0,    0,    0,    0,  211,    0,    0,  260,  330,  431,
606         0,  499,  432,  431,   62,   62,   62,    0,    0,    0,
607         0,    0,   88,   88,    0,  105,  105,    0,    0,  141,
608       141,    0,    0,  141,    0,    0,    0,  196,  196,    0,
609       158,  157,  196,  196,  196,  196,  196,  196,    0,    0,
610
611       196,  196,  196,    0,    0,  230,  230,    0,  218,  217,
612       230,    0,    0,  230,    0,  318,    0,  237,  236,    0,
613         0,  252,  251,    0,  283,  283,  283,  283,    0,  300,
614         0,    0,    0,    0,    0,  320,  319,  326,    0,  351,
615         0,    0,  351,  351,    0,    0,  351,    0,    0,  362,
616         0,    0,    0,    0,  383,    0,  371,  370,  383,  383,
617       383,    0,    0,    0,    0,    0,  427,    0,  415,  414,
618       427,    0,  421,  420,  427,    0,  444,    0,  457,    0,
619       476,  476,  476,    0,  495,    0,    0,    0,  491,  490,
620         0,    0,    0,  502,  501,  510,    0,    0,  532,    0,
621
622         0,    0,    0,    0,    0,    0,    0,    0,   11,   41,
623         0,    0,    0,    0,    0,    0,  200,    0,    0,    0,
624         0,  317,    0,    0,  400,  432,  449,    0,  500,    0,
625         0,    0,    0,    0,    0,    0,    0,  431,  448,    0,
626       499,    0,    0,    0,    0,    0,   62,    0,    0,    0,
627        69,   68,    0,   88,   88,    0,    0,    0,    0,    0,
628         0,    0,    0,    0,  141,    0,  135,  134,    0,    0,
629         0,    0,  148,  147,    0,    0,  196,  196,  196,    0,
630         0,  196,  196,  196,    0,  182,  181,    0,    0,  196,
631       196,    0,    0,  230,  230,    0,    0,    0,  224,  223,
632
633       230,    0,  231,  318,    0,    0,  283,  283,  283,  283,
634         0,  284,  300,    0,    0,  309,  308,    0,  326,    0,
635       351,    0,  335,  334,    0,    0,  351,    0,  345,  344,
636       351,    0,  352,    0,  362,    0,  201,    0,  401,  383,
637       383,  383,  383,    0,    0,    0,  392,  391,    0,  397,
638       427,  427,  427,    0,  444,    0,  457,    0,    0,    0,
639       476,    0,    0,    0,  495,    0,  489,  488,    0,    0,
640       510,    0,    0,  532,    0,    0,    0,    0,    0,    0,
641         0,    0,    0,  528,  527,    0,    0,    0,    0,    0,
642         0,   46,    0,    0,    0,    0,  123,  146,  200,    0,
643
644       250,    0,    0,    0,  366,  400,  449,  462,    0,   45,
645         0,    0,    0,  122,  145,    0,  249,  448,  461,    0,
646         0,   50,   49,    0,   52,   51,   62,    0,    0,    0,
647        88,    0,    0,    0,    0,   97,   96,    0,   99,   98,
648         0,    0,    0,  131,  130,    0,    0,    0,  137,  136,
649         0,    0,  150,  149,  196,  196,  196,    0,  170,  169,
650         0,    0,  196,  196,    0,  184,  183,  196,  196,    0,
651         0,  230,  230,    0,  222,  221,  230,    0,    0,  283,
652         0,    0,  283,  283,  283,  300,    0,    0,  326,    0,
653       327,  351,    0,  337,  336,  351,  351,    0,    0,    0,
654
655         0,  201,  367,  401,  383,  383,  383,  383,    0,    0,
656       427,    0,    0,  427,    0,  444,    0,  445,  457,    0,
657         0,  464,  463,    0,    0,  476,    0,  472,  471,    0,
658         0,    0,  495,    0,    0,  510,    0,    0,  511,    0,
659         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
660         0,    0,    0,    0,    0,    0,    0,    0,   46,   66,
661        78,    0,    0,  123,  146,    0,  250,  287,    0,  355,
662       366,  462,    0,    0,   45,   77,    0,    0,  122,  145,
663         0,  249,  461,    0,    0,   62,    0,  288,    0,   88,
664         0,   84,   83,    0,    0,    0,    0,  133,  132,    0,
665
666       196,  196,  196,    0,  172,  171,  196,  196,  196,    0,
667         0,    0,    0,  208,  230,  230,  230,    0,    0,  283,
668         0,  269,  268,  283,  283,  283,  300,    0,    0,  326,
669       351,  351,  351,  356,    0,  358,  357,    0,  367,    0,
670         0,  383,  383,  383,    0,   67,  427,    0,  419,  418,
671       427,    0,  428,  444,  457,    0,  458,    0,  466,  465,
672       476,    0,    0,  483,  482,  495,    0,    0,  510,  548,
673         0,  516,  515,    0,    0,    0,    0,    0,    0,    0,
674         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
675         0,    0,    0,    0,    0,    0,    0,   66,   78,    0,
676
677         0,  235,  287,    0,  355,    0,    0,   77,    0,    0,
678       234,    0,    0,   62,    0,   63,  288,    0,    0,    0,
679         0,    0,    0,    0,  142,  196,  196,  196,  196,    0,
680         0,  196,  196,    0,    0,    0,    0,  197,  230,  230,
681       230,    0,    0,  257,    0,    0,  283,  283,  283,  283,
682         0,    0,    0,    0,    0,    0,  351,  351,  351,  356,
683         0,    0,  369,  368,    0,    0,  383,  383,    0,  384,
684        67,    0,    0,  427,  444,  457,  476,    0,  477,  495,
685         0,    0,  510,    0,    0,    0,    0,    0,    0,    0,
686         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
687
688         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
689         0,  235,  304,    0,    0,    0,    0,  234,    0,    0,
690        62,    0,   74,    0,   80,   79,    0,   89,    0,    0,
691       196,  196,  196,  196,    0,  174,  173,  196,  196,    0,
692         0,    0,    0,  230,  230,    0,    0,    0,    0,  263,
693       262,  283,  283,  283,    0,    0,    0,    0,    0,    0,
694       301,    0,    0,  322,  321,  351,  351,    0,    0,    0,
695       363,    0,  373,  372,    0,    0,    0,    0,    0,    0,
696         0,  427,  444,  457,  476,  495,    0,  305,  510,    0,
697         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
698
699         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
700         0,    0,    0,    0,    0,    0,  110,  304,    0,    0,
701         0,  109,    0,    0,    0,    0,    0,    0,  196,  196,
702         0,    0,  196,  196,  196,    0,    0,    0,    0,    0,
703         0,  230,    0,    0,    0,  226,  225,    0,  246,  283,
704       283,  283,    0,  279,  278,    0,    0,    0,    0,    0,
705         0,    0,  351,    0,    0,    0,  347,  346,    0,    0,
706         0,    0,  379,  378,    0,    0,    0,    0,    0,    0,
707       427,    0,    0,    0,    0,  476,  495,    0,  305,    0,
708         0,    0,    0,    0,    0,  520,    0,    0,    0,    0,
709
710       519,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711         0,    0,    0,    0,    0,    0,    0,    0,  110,  481,
712         0,    0,  109,  480,    0,    0,    0,    0,    0,    0,
713       196,    0,    0,    0,  166,  165,    0,    0,  196,  196,
714         0,    0,    0,    0,    0,    0,  230,    0,  216,  215,
715       283,    0,    0,  283,    0,    0,    0,    0,    0,    0,
716         0,  314,  351,    0,  339,  338,    0,    0,    0,    0,
717         0,    0,    0,    0,    0,    0,    0,    0,  427,    0,
718         0,    0,    0,  451,  450,    0,    0,    0,    0,    0,
719         0,  506,  505,    0,    0,    0,    0,    0,    0,    0,
720
721         0,    0,    0,    0,    0,    0,    0,    0,    0,   21,
722        29,    0,    0,    0,    0,   20,   28,    0,   93,  481,
723       514,   92,  480,  513,    0,    0,    0,    0,    0,    0,
724       119,  196,    0,  164,  163,    0,  168,  167,  196,  196,
725         0,    0,    0,    0,    0,    0,  230,  283,    0,  271,
726       270,  283,    0,    0,  290,    0,    0,  289,  351,    0,
727         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
728         0,    0,    0,    0,    0,    0,    0,    0,  468,  467,
729         0,  485,  484,    0,    0,    0,  526,    0,    0,    0,
730       525,    0,    0,    0,    0,    0,    0,    0,    0,    0,
731
732         0,   23,    0,    0,    0,   22,    0,   93,  514,   92,
733       513,    0,    0,    0,    0,    0,  196,    0,    0,  196,
734         0,  188,    0,    0,  187,    0,  230,    0,    0,    0,
735         0,    0,    0,    0,    0,  351,    0,    0,    0,    0,
736         0,    0,    0,    0,    0,    0,    0,    0,    0,  423,
737       422,    0,    0,    0,    0,    0,  496,    0,    0,    0,
738         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
739         0,    0,    0,    0,    0,    0,   58,    0,   57,    0,
740         0,  106,  196,    0,    0,    0,    0,    0,    0,  190,
741         0,  189,  230,    0,  265,  264,    0,    0,    0,  292,
742
743       294,  291,  293,  351,  375,    0,  374,    0,    0,  409,
744       405,    0,    0,  408,  404,    0,  440,    0,  439,    0,
745       524,    0,    0,  523,    0,    0,    0,  533,    0,    0,
746         0,   12,    0,   12,    0,   33,    0,    0,    0,   31,
747        32,    0,    0,    0,   30,   56,   55,  196,    0,    0,
748         0,    0,    0,  186,  185,    0,    0,  230,    0,    0,
749         0,    0,  351,    0,    0,    0,    0,    0,    0,  438,
750       437,  518,  522,  517,  521,    0,    0,    0,    0,    0,
751         0,    0,   25,    0,    0,    0,   24,    0,    0,    0,
752         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
753
754         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
755         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
756         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
757         0,  192,  191,    0,  214,  213,    0,    0,    0,    0,
758         0,    0,    0,  333,  332,    0,    0,  403,    0,  402,
759         0,    0,   11,    0,    0,    0,    0,    0,    0,    0,
760         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
761         0,    0,    0,    0,    0,  377,  376,    0,    0,    0,
762         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
764
765         0,    0,  407,  406,    0,    0,   35,    0,    0,   34,
766         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
767         0,    0,    0,    0,    0,    0,    0,    0,    0,   27,
768         0,   26,    0,    0,    0,    0,    0,    0,  176,    0,
769         0,  175,    0,    0,  273,    0,    0,  272,    0,   37,
770        36,    0,    0,    0,    0,  180,    0,  179,    0,  275,
771         0,  274,    0,    0,    0,    0,    0,    0,    0,    0,
772         0,    0,    0,    0,  152,    0,  151,    0,    0,    0,
773         0,    0,    0,  154,  153,  178,  177,  277,  276,    0,
774         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775
776         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
777         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
778         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
779         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
780         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
781         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
782         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
783         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
784         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
785         0,   13,    0
786
787     } ;
788
789 static yyconst flex_int32_t yy_ec[256] =
790     {   0,
791         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
792         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
793         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
794         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
795         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
796        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
797        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
798        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
799        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
800        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
801
802        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
803        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
804        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
805         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
806         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
807         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
808         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
809         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
810         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
811         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
812
813         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
814         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
815         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
816         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
817         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
818         1,    1,    1,    1,    1
819     } ;
820
821 static yyconst flex_int32_t yy_meta[75] =
822     {   0,
823         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
824         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
825         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
826         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
827         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
828         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
829         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
830         5,    5,    5,    5
831     } ;
832
833 static yyconst flex_int16_t yy_base[3773] =
834     {   0,
835         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
836        14,   17,   33,   36,   49,   55,   45,   61,  108,  174,
837        66,   72,   75,   78,   83,  128,  131,  134,  138,  141,
838       194,  197,  200,  204,  207,  224,  230,  233,  241,  250,
839       268,  335,  288,  291,  294,  298,  301,  355,  358,  361,
840       402,  472,  365,  368,  542,  602,  422,  425,  662,  729,
841       428,  432,  435,  452,  492,  495,  498,  502,  796,  863,
842       505,  522,  562,  565,  568,  572,  575,  622,  930,  997,
843       625,  628, 1064,    0,  632,  635,  682,  685,  688,  692,
844       695,  749, 1138, 1195,  752,  755,  759,  762,  816,  819,
845
846       822,  826, 1252, 1319,  829,  883,  886,  889,  893,  896,
847       950,  953, 1386, 1455,  956,  960, 1524, 1578,  963, 1017,
848      1020, 1023, 1027, 1030, 1158, 1161, 1632, 1699, 1164, 1168,
849      1171, 1215, 1218, 1221, 1225, 1228, 1766, 1823, 1272, 1275,
850      1880, 1950, 1278, 1282, 2020, 2087, 1339, 1342, 2154, 2221,
851      1345, 1349, 1406, 1409, 2288, 2358, 1412, 1416, 1419, 1475,
852      1478, 1481, 1485, 1488, 1544, 1547, 1550, 1554, 1557, 1598,
853      1601, 1604, 1608, 1611, 1652, 1655, 2428, 2495, 1658, 1662,
854      1665, 1719, 1722, 1725, 1729, 1732, 2562, 2632, 1786, 1789,
855      2702, 2769, 1792, 1796, 2836, 2903, 1799, 1843, 1846, 1849,
856
857      1853, 1856, 1900, 1903, 2970, 3027, 1906, 1910, 3084, 3152,
858      1913, 1930, 1970, 1973, 1976, 1980, 1983, 2000, 3220, 3287,
859      2040, 2043, 2046, 2050, 2053, 2107, 2110, 2113, 3354, 3418,
860      2132, 2134, 3482, 3550, 2174, 2180,    0,    0, 8985,11902,
861     11902,   95,  100,   29,   41,11902,  103,   51,11902,11902,
862      8970,11902,11902, 8951,11902, 8966, 8966,  164,11902,11902,
863     11902,11902, 8960, 8960, 8915,11902,  158, 8937,    0,  142,
864     11902, 8904, 8892,11902,  164, 3614, 8886, 3678, 2187, 1238,
865      8937,   31,11902,  253, 8928,    0,  143,11902, 8876, 8871,
866        84,11902,  258,  253, 8929, 8876,11902,  322, 8915,    0,
867
868       148,11902, 8885,11902,  325,  218,11902,  328, 8909,    0,
869       242,11902, 8879, 8875, 8873,11902,  389,  373,11902,  393,
870      8901,    0,  245,11902, 8853, 8844, 8848,11902,  396, 8901,
871        11,11902,  455, 8888,    0,  313,11902, 8840, 8840,11902,
872       458, 8889,   79,11902,  461, 8880,    0,  446,11902, 8828,
873      8842, 8844, 8826, 8838,   19,11902,  525,  509,11902,  529,
874      8866,    0,  447,11902,  101, 8822, 8828,  317, 8813,  258,
875       531, 8815,11902,  532, 8861,  246,11902,  535, 8852,    0,
876       576,11902, 8819,11902,  652, 8854,  287,11902,  716, 8845,
877         0,  577,11902, 8794, 8796, 8806, 8790,  320,11902,  719,
878
879       112, 8791,  377,11902,  722, 8831,    0,  580,11902, 8787,
880      8793, 8780,11902,  783,  639,11902,  786, 8823,    0,  636,
881     11902, 8781,11902,  789, 2129, 8825,  681,11902,  847, 8816,
882         0,  637,11902, 8782, 8778, 8780,  102,11902,  850, 8812,
883       704,11902,  853, 8803,    0,  640,11902, 8765, 8765,11902,
884       856,  900,11902,  914, 8796,    0,  706,11902, 8763, 8761,
885     11902,  920,  908,11902,  923, 8789,    0,  707,11902, 8759,
886      8735,11902,  980,  967,11902,  989, 8782,    0,  773,11902,
887      8731, 8725, 8732, 8742, 8740,  447,11902, 1047, 1034,  774,
888     11902, 1056, 8768,    0,  840,11902, 8734,11902, 1188, 1305,
889
890       748, 1183,  771, 8178,  815,11902, 1308, 8221,    0,  841,
891     11902, 8170, 8175, 8180, 8174, 8167,11902, 1311,  454, 8185,
892       882,11902, 1370, 8213,    0,  898,11902, 8179, 8181,11902,
893      1375, 1423,11902, 1378, 8208,    0,  964,11902, 8166, 8165,
894      1191, 8160,  137,11902, 1437, 1424,11902, 1444, 8188,    0,
895       965,11902, 8139,  518,11902, 1447, 8188,  204,11902, 1450,
896      8178,    0,  968,11902, 8131, 8140,11902, 1506, 1492,11902,
897      1512, 8161,    0, 1031,11902, 8112, 8107, 8117, 8094,11902,
898      1515, 8145,  949,11902, 1518, 8131,    0, 1032,11902, 8086,
899      8096, 8083, 8068,11902, 1682,  272, 8056, 1171,11902, 1691,
900
901      8096,    0, 1035,11902, 8057, 8057, 8055, 1669, 8059,11902,
902      1694, 8077,    0, 1172,11902, 8036, 8035, 8013,11902, 1749,
903      1736, 1758,  408, 7999,11902, 8060, 8048,11902,11902,11902,
904      1750,  153, 7994, 7993, 7990, 8030,11902,    0, 2120, 7976,
905      8011, 7993, 7959,  328, 1234, 7961, 7960, 7964, 7956, 1128,
906       259, 7943, 7944, 1185, 7969,  396, 1301, 7936, 7936, 7939,
907      1445,  584, 7926, 7908, 7934,  398, 1755,  652,  439,  979,
908     11902,    0, 7903, 7918, 7913, 7902, 7939, 7890,11902,    0,
909      7868, 7877,11902,    0, 7863, 2187, 7855, 7862,11902,    0,
910      7833, 7852, 7847, 7843,11902,    0, 7824, 7838, 7837,11902,
911
912         0, 2241, 2244, 7818, 7831, 7830, 7828, 7825, 7814,11902,
913         0, 7816, 2254, 7796, 2308, 7789, 7793, 7785, 7793, 7785,
914      7767, 7781, 7776, 7773, 7752, 7762,11902,    0, 2311, 7757,
915     11902,    0, 7757,  175, 2314, 7737, 7750, 7746, 7738, 7701,
916     11902,    0, 7691, 2317, 2320, 7702,11902,    0, 7693, 7688,
917      7705,11902,    0, 7672, 2338, 7665, 7674, 7673, 7660,11902,
918         0, 7646, 2378, 7649,11902,    0, 2381, 7644, 7642,11902,
919         0, 7636, 7629, 7620,11902,    0, 7631, 7630, 7606, 2384,
920      7599, 7609, 7612, 7595, 7590,11902,    0, 7576, 7576, 1506,
921      1812, 1242, 1514, 1813,11902,    0, 7566, 7556, 7562, 7572,
922
923      7553, 7537, 7533,11902,    0, 2387, 7537, 7532,11902,    0,
924      7532, 2390, 7508, 7530, 7515, 7524, 7506, 7506, 7490,11902,
925         0, 7487, 7502, 7487, 7481,11902,    0, 7478, 2408, 7474,
926     11902,    0, 7470, 7465, 2448, 7462, 7457,11902,    0, 7457,
927      2451, 7466, 7442, 7444, 7441,11902,    0, 7442, 2454, 7435,
928       512, 7431, 7468,11902,    0, 7434, 7423, 7435, 7414, 7461,
929      7465, 1272, 7404,11902, 1925,    0, 7394, 7394, 7438, 7427,
930      7379,11902, 2457, 2006, 7373, 2192, 2516, 2077, 7380, 7380,
931      7365, 7369, 7348, 7353, 7343, 7358, 7345, 1266, 7349, 7348,
932      7316, 7316, 7307, 7312, 7324, 7309, 2081, 7304, 7290, 7298,
933
934      7277, 7278, 7292, 7271, 7279, 7261, 7262, 7272, 2142, 7250,
935      7249, 2460, 2526, 2519, 2529, 2262, 2582, 7254, 7242, 2523,
936      2592, 7254, 2585, 2341, 7251, 2595, 2652, 2603, 2666, 2657,
937      2660, 2663, 2671, 2722, 2725, 2735, 2728, 2411, 2748, 2614,
938      2790, 2798, 2801, 2808, 2865, 2740, 2876, 1869, 2794, 2622,
939      7250, 2862, 2689, 2868, 7244, 7229, 7234, 7230, 7217, 7214,
940      7226, 7220, 7210, 2871, 2926, 2929, 2819, 2932, 2936, 7214,
941      7195, 7207, 2939, 2891, 7205, 7195, 7179, 2990, 2993, 1306,
942      7183, 2999, 2957, 3003, 3048, 3056, 3059, 7187, 3062, 3106,
943      2213, 7187, 3109, 3066, 7180, 7166, 7162, 3112, 3117, 7166,
944
945      3121, 3140, 3173, 3185, 3176, 3188, 7148, 3180, 3248, 7163,
946      7146, 3241, 3252, 7139,    3, 7123, 3244, 3204, 3255, 7135,
947      7118, 3310, 3317, 7136, 7116, 3320, 3323, 7114, 7105, 7105,
948      7114, 7096, 7095, 7100, 7077, 3374, 3377, 7087, 3383, 3276,
949      7068, 3386, 3389, 7083, 3438, 3343, 3442, 7072, 3447, 7068,
950      7072, 7071, 3450, 3456, 3504, 3507, 3511, 3514, 3517, 7052,
951      3529, 3401, 3571, 3574, 7067, 7047, 3579, 3465, 7054, 3582,
952      3585, 7038, 3597, 3536, 7048, 7047, 3604, 3608, 1333, 7041,
953      3611, 3636, 7032, 7062, 3629, 3648,11902, 7014, 7017, 7015,
954      3652, 3657, 7034,11902,11902,  882, 6993,11902, 7030, 7029,
955
956      6977,11902,11902, 6968, 3682,11902,11902, 6978, 3690, 3693,
957     11902, 3699, 1941, 6967, 6960, 6968, 6976, 6967, 6955, 6966,
958      6929, 6930, 6928, 6921, 6911, 6899, 6896,  718, 6909, 6887,
959      6886, 6894, 1566, 2070, 6858, 6861, 6868, 6842, 6831, 6824,
960      6827, 6827, 6818, 6808, 6809, 6822, 6804, 6798, 3702, 3745,
961      6795, 6785, 3705, 3753, 6795, 3713, 3761,11902, 3764, 6787,
962      6789, 3767, 3770,11902, 3773, 6765, 3776,11902,11902, 6773,
963      3792, 3795,11902, 3798, 3801, 3804, 6766, 6766, 3819, 3823,
964      3831, 3837,11902, 3840, 3843, 3850, 3861, 3864, 3872, 3875,
965     11902, 3879, 3882,11902,11902, 3894,11902,11902, 3903, 3906,
966
967      6770, 6775, 6762, 6749, 3914, 3917,11902, 3921, 6731, 6744,
968      6731, 3924,11902,11902, 3936, 3942,11902,11902, 3950, 3954,
969      6718, 6734, 6719, 6724, 6716, 6711, 6714, 6707, 1247, 3962,
970      3970,11902, 3973, 3977,11902,11902, 3985, 3992,11902, 3995,
971      6702, 6709, 3998, 4004,11902,11902, 6691, 6706, 6703, 4016,
972      4019,11902, 4023, 6693, 4026, 4029,11902,11902, 4044,11902,
973     11902, 4052, 4056,11902, 4059, 4062, 4065, 4071,11902, 4080,
974      6667, 4090,11902,11902, 6675, 6678, 6679, 4084, 4099,11902,
975      4103, 6680, 4106,11902,11902, 4114, 4118,11902, 4125, 4133,
976     11902,11902, 6651, 4144, 4147,11902, 4150, 4153, 4156, 4159,
977
978      4174,11902, 4178, 6643, 6625, 6612, 6626, 4182,11902,11902,
979      4193, 4197, 6624, 6617, 4205, 4211,11902, 4214, 6600, 6606,
980      4217, 4220,11902, 4224, 6606, 1567, 6589, 6514, 4239, 6520,
981      6517, 6490, 4246, 4249,11902, 4252, 6487, 4259,11902,11902,
982      6498, 4272, 4275,11902, 4278, 6482, 4281,11902,11902, 4297,
983      4300, 4308, 4315, 4319, 6484, 4327, 6477, 4333, 4336,11902,
984      4340, 4345, 4348, 4359, 4363, 6462, 4371, 4377,11902, 4380,
985      6455, 4383,11902,11902, 4391, 4401,11902, 4404, 6445, 6435,
986      4410,11902,11902, 6455, 4423, 4426,11902, 4430, 6402, 4433,
987     11902,11902, 6394, 4449, 4452, 4455,11902, 4458, 6344, 4461,
988
989      4479,11902,11902, 4467, 6367, 4487, 4492,11902, 4495, 6331,
990      4498, 6311, 4502, 4506,11902, 4516,  888, 4521,11902,11902,
991      6346, 6344, 6297, 4525,11902, 6270, 6229, 6239, 6197, 6183,
992      6156, 6155, 2073, 6140, 2281, 6146, 6111, 2116, 6069, 6051,
993      2216, 6003, 5977, 5908, 5886, 2272, 5869, 5886, 5866, 5788,
994      5762, 2350, 5756, 2420, 2486, 5759, 5681, 5638, 5559, 5549,
995      4529,11902,11902, 5531,   38, 4544,11902,11902,   26, 4552,
996      2829, 4555, 4558,   43,  195, 4564, 4567,11902,11902,  181,
997       216, 4577,11902,11902, 4585, 4588,11902,11902, 4597,11902,
998     11902, 4605, 4608,11902,11902,  239,  326, 4616,  370, 4626,
999
1000      4629, 4634, 4637, 4640, 4658, 4666,11902,11902, 4647, 4674,
1001      4677, 4685, 4688, 4695, 4706, 4709, 4713, 4716, 4727, 4735,
1002       395,  460, 4739, 4742,  488, 4757,  525, 4760,  526, 4763,
1003      4766, 4781, 4784, 4789, 4802,  539,  567,  616,  654, 4805,
1004       636, 4809, 4812, 4816, 4831, 4835,  650, 4843,  658, 4851,
1005       703,  715, 4869,11902,11902, 4855,  726, 4863,  782,  776,
1006      4877,  784,  922,  932, 1005, 4882, 4885, 1086, 1112, 1130,
1007      4896, 1119, 4900, 4904, 1138, 4908,11902,11902, 4918, 4924,
1008      4932,11902,11902, 1162, 4940, 4946, 1173, 4954, 4958,11902,
1009     11902, 4967,11902,11902, 1169, 4975, 1211, 4978, 1231, 1227,
1010
1011      1302, 4981, 1293, 4984, 4988, 5006, 5014, 1299, 5017, 5020,
1012      1310, 1362, 5028, 1355, 5035, 5047, 5038, 5056, 1603, 1405,
1013      5061,11902, 1406,11902,11902, 1376, 1374, 1418, 1423, 1427,
1014      1442, 1447, 1468, 2490, 1480, 1512, 2557, 1516, 1525, 2684,
1015      2762, 1513, 1527, 2965, 1548, 3411, 1565, 3212, 3021, 1553,
1016      1564, 1561, 1610, 1618, 3215, 1612, 1623, 3314, 3476, 5064,
1017      1622, 3618, 5067, 5070, 5080, 5083, 5086, 5089, 1636, 5092,
1018      5113, 5121, 1636, 1618, 5124, 5135, 5143, 5146, 5153, 5157,
1019      5161, 5165, 5183, 5175, 5168, 5193, 5196, 5204, 5207, 5213,
1020     11902,11902, 5225, 5229, 5232, 5235, 5238, 5243, 5256, 5261,
1021
1022      5274, 5280, 5285, 5298, 5303, 1665, 1668, 5306,11902,11902,
1023      5317, 5322, 5328, 1684, 5341, 3644, 5344,11902,11902, 5352,
1024      5361,11902,11902, 5355, 1687, 1669, 1689, 1700, 5374, 1698,
1025      5377, 5380, 5383, 5399, 5402,11902,11902, 1705, 5410, 1732,
1026      5413, 5425, 5418, 1735, 5436, 5439, 1751, 5447, 1743, 1747,
1027      5450, 1756, 1749, 1758, 1757, 5454,11902,11902, 1782, 1794,
1028      1794, 5462, 1810, 5469, 5477, 5472, 1800, 5487,11902,11902,
1029      1816, 5496,11902,11902, 1807, 5504, 1830, 5507, 1849, 5510,
1030      5514, 5517, 5535, 5538, 1852, 5542, 5546, 5562,11902,11902,
1031      5570, 1874, 5573,11902,11902, 1866, 1885, 5589, 1862, 5592,
1032
1033      1966, 2511, 5601, 5604, 5612, 1929, 1997, 1961,11902, 5619,
1034      1882, 1879, 1884, 1968, 1879, 1926, 3728, 1936, 1947, 1943,
1035      1949, 5622, 1950, 1952, 5625, 5631, 5637, 1983, 5641, 2000,
1036      2007, 2000, 2048, 1995, 1999, 2012, 2025, 5644, 5647, 2050,
1037      5650, 2075, 5653, 5657, 5665, 5671, 2070, 5679, 2061, 5683,
1038     11902,11902, 5691, 2062, 5694, 5698, 5701, 5706, 5719, 5722,
1039      5730, 5733, 5737, 5756, 5764, 5767,11902,11902, 5775, 5778,
1040      5786, 5789,11902,11902, 5799, 5805, 2075, 2100, 2094, 5813,
1041      5817, 5825, 2113, 2137, 5831,11902,11902, 5839, 5843, 2121,
1042      2115, 5851, 5857, 2145, 2158, 5860, 5863, 5872,11902,11902,
1043
1044      2153, 5880,11902, 5883, 5886, 5889, 2145, 5892, 2201, 2193,
1045      5895,11902, 2189, 5899, 5914,11902,11902, 5922, 2224, 5925,
1046      2202, 5928,11902,11902, 5945, 5949, 2212, 5957,11902,11902,
1047      2205, 5965,11902, 2203, 5969, 5972, 5975, 2210, 5978, 2218,
1048      2225, 2218, 2247, 5987, 2263, 5991,11902,11902, 5999,11902,
1049      2263, 6002, 2271, 6006, 2274, 6009, 2283, 6012, 6020, 6034,
1050      6042, 6045, 6049, 6066, 6069, 6073,11902,11902, 6081, 2273,
1051      2287, 2324, 6089, 6092, 2326, 2313, 2377, 2314, 2333, 2320,
1052      2386, 2337, 6096,11902,11902, 6104, 2375, 2460, 2399, 6110,
1053      6116, 6124, 2328, 2349, 2379, 2358, 6128, 6131, 6135, 2363,
1054
1055      6138, 2364, 2378, 2405, 6141, 6144, 6147, 6151, 2406, 6154,
1056      2418, 2433, 2414, 6157, 6160, 2416, 6163, 6166, 6169, 2418,
1057      6172,11902,11902, 6180,11902,11902, 2432, 6188, 2423, 6191,
1058      2430, 6194, 6198, 6212, 6216,11902,11902, 6224,11902,11902,
1059      6232, 6235, 6240,11902,11902, 6256, 6259, 6274,11902,11902,
1060      6267, 6282,11902,11902, 2455, 2464, 2487, 6290,11902,11902,
1061      6298, 6301, 2485, 2475, 6309,11902,11902, 2497, 6317, 6320,
1062      6323, 2487, 2484, 6328,11902,11902, 2493, 6342, 6345, 2500,
1063      6348, 6351, 2503, 2527, 2532, 2538, 6367, 6370, 2549, 6373,
1064     11902, 2543, 6376,11902,11902, 2542, 2551, 2552, 6392, 6398,
1065
1066      6406, 6410, 6413, 6416, 6419, 6425, 6428, 6437, 6446, 2546,
1067      2561, 6449, 6455, 2580, 6467, 2579, 6471,11902, 2580, 6477,
1068      6480,11902,11902, 6497, 6500, 2589, 6508,11902,11902, 6516,
1069      6519, 6522, 2603, 6530, 2611, 2624, 2636, 6537,11902, 6540,
1070      6543, 2649, 2655, 2656, 2662, 2673, 2665, 2695, 2695, 2705,
1071      2720, 6551, 6558, 2736, 2809, 6561, 2984, 3943, 6570, 6573,
1072      6577, 2687, 2685, 6582, 6585, 2699, 6588, 6591, 2698, 6594,
1073      6597, 6601, 2694, 2723, 6604, 6607, 2725, 2726, 6610, 6613,
1074      2747, 6616, 6619, 2739, 2752, 2769, 6622, 6625, 6628, 6631,
1075      6634,11902,11902, 6642, 6649, 6652, 6655,11902,11902, 6663,
1076
1077      2764, 2777, 2839, 6671,11902,11902, 6682, 2796, 2799, 6687,
1078      6696, 6690, 6705,11902, 2805, 2810, 2832, 6709, 6714, 6717,
1079      6724,11902,11902, 6720, 6738, 6741, 6744, 6747, 6750, 6770,
1080      2829, 2837, 2839, 6776, 6779,11902,11902, 6788, 6793, 6796,
1081      6801, 6809, 6815, 6818, 6821, 6827, 6836, 6841,11902,11902,
1082      6850, 6854,11902, 2849, 2848, 6857,11902, 6861,11902,11902,
1083      2829, 6876, 6879,11902,11902, 2853, 6887, 2864, 2869,11902,
1084      6891,11902,11902, 2919, 2905, 2921, 2919, 2927, 2929, 2917,
1085      2936, 2932, 2939, 6899, 6902, 3029, 3023, 2938, 2943, 3058,
1086      2941, 2955, 2954, 2958, 3069, 2957, 2996, 6906, 6909, 2992,
1087
1088      2999, 6912, 6921, 3007, 6924, 3004, 3021, 6927, 3037, 3038,
1089      6930, 3034, 3055, 3074, 6934,11902, 6937, 6940, 6944, 6947,
1090      6955, 6965, 6968, 6974,11902, 3088, 3077, 3074, 3098, 6977,
1091      6980, 3088, 3097, 6989, 3209, 3235, 6997,11902, 3083, 3114,
1092      7000, 7003, 7006,11902, 7009, 7012, 3131, 3126, 3136, 7030,
1093      7036, 7039, 7048, 7054, 7057, 7061, 3134, 3137, 7069, 7075,
1094      7078, 7081,11902,11902, 7089, 7093, 7101, 7107, 7110,11902,
1095      7119, 7125, 7129, 7137, 3151, 3145, 3189, 7143,11902, 3200,
1096      7146, 3201, 3196, 3227, 3225, 3241, 3235, 3259, 3243, 3255,
1097      3274, 3262, 3303, 7149, 3322, 3492, 3321, 3260, 3273, 3269,
1098
1099      3275, 3274, 3269, 3281, 3293, 3290, 3335, 3334, 3328, 3330,
1100      3359, 7155, 7158, 3352, 3364, 3365, 3394, 7168, 3384, 3403,
1101      7171, 7175,11902, 7178,11902,11902, 7189,11902, 7195, 7198,
1102      3398, 3404, 7201, 3405, 7204,11902,11902, 3424, 3430, 3503,
1103      3468, 3557, 3486, 3451, 7219, 7222, 7225, 7233, 7240,11902,
1104     11902, 3470, 3490, 3487, 7248, 7253, 7266, 3632, 3999, 7261,
1105     11902, 7274, 7280,11902,11902, 3473, 7288, 7293, 7296, 7306,
1106     11902, 7311,11902,11902, 7320, 7325, 7333, 7338, 7347, 3687,
1107      3715, 7355, 7358, 7361, 3494, 3513, 7364, 7367, 7379, 3562,
1108      3571, 3571, 3582, 3611, 3593, 3603, 3603, 3607, 3625, 7383,
1109
1110      3638, 3649, 3698, 3574, 3584, 3571, 3602, 3626, 3640, 3623,
1111      3639, 3647, 3666, 3683, 3688, 3673, 7386, 7389, 3690, 3701,
1112      3690, 7392, 3708, 3732, 7397, 7402, 7410, 7418, 3723, 7421,
1113      7424, 7430, 7444, 3737, 3736, 3751, 3770, 3771, 3771, 3792,
1114      3778, 3769, 7447, 7450, 7458,11902,11902, 7466,11902, 3759,
1115      7470, 3773, 7474,11902,11902, 3795, 3800, 3800, 3812, 3814,
1116      3818, 7488, 3810, 7491, 7494, 7503,11902,11902, 7511, 3864,
1117      3876, 7519,11902,11902, 3823, 3833, 3907, 3833, 3836, 3914,
1118      7527, 7530, 7533, 7541, 7548, 7559, 7562, 7565, 7568, 7571,
1119      7589, 3862, 3848, 3848, 3852,11902, 3886, 3871, 3886, 3890,
1120
1121     11902, 7580, 3941, 3994, 7584, 3867, 3880, 3898, 3953, 3956,
1122      3924, 3923, 3925, 3951, 3995, 4002, 3956, 3984, 7603, 7606,
1123      3973, 3991, 7609, 7612, 3983, 7615, 4035, 4079, 7623, 7628,
1124      3992, 7632, 7635, 7643,11902,11902, 7651, 7654, 3998, 4011,
1125      4030, 4049, 4054, 4049, 4058, 4070, 4059, 7662,11902,11902,
1126      4072, 7670, 7673, 4057, 4089, 4098, 4134, 4098, 4108, 4135,
1127      7681,11902, 4112, 7684,11902,11902, 4138, 4143, 4141, 4147,
1128      4152, 4148, 4154, 4162, 4170, 4158, 4169, 4182, 7692, 7696,
1129      4194, 4200, 7704,11902,11902, 7712, 7715, 7723, 7726, 7734,
1130      7737,11902,11902, 4171, 4208, 4226, 4211, 4196, 4216, 4237,
1131
1132      4235, 7745, 4239, 7748, 7753, 7757, 4207, 4196, 4264,11902,
1133     11902, 4219, 4233, 4220, 4280,11902,11902, 4239, 7767, 7772,
1134      7776, 7779, 7782, 7786, 4258, 4270, 4261, 4279, 7789, 7795,
1135     11902, 4250, 7798,11902,11902, 7808,11902,11902, 7816, 4241,
1136      4273, 4308, 4281, 4284, 4317, 4293, 4276, 7819, 7822,11902,
1137     11902, 7830, 4310, 4329,11902, 4323, 4333,11902, 4311, 4344,
1138      4332, 4350, 4338, 4353, 4364, 4371, 4359, 4364, 4375, 4384,
1139      4371, 7837, 7841, 4379, 4391, 4382, 4394, 7849,11902,11902,
1140      7857,11902,11902, 7865, 4393, 4393,11902, 4401, 4409, 4410,
1141     11902, 4411, 7868, 4424, 7871, 7874, 7893, 7936, 7983, 4379,
1142
1143      4381,11902, 4391, 4400, 4401,11902, 4417, 7901, 7904, 7907,
1144      7912, 4470, 4438, 4470, 4445, 7915, 4441, 7927, 7918, 7930,
1145      4465,11902, 4505, 4475,11902, 4505, 4456, 7948, 7956, 7974,
1146      7966, 4528, 4531, 4530, 4531, 4483, 4543, 4511, 4543, 4523,
1147      4539, 4569, 4571, 4542, 4560, 4584, 4586, 4556, 8003,11902,
1148     11902, 4592, 4563, 4595, 4574, 7977,11902, 4610, 4588, 4589,
1149      4615, 4593, 4612, 8011, 4635, 8014, 4651, 4638, 8034, 8081,
1150      4700, 4603, 4657, 4790, 4616, 4664,11902, 4668,11902, 4673,
1151      8024,11902, 4611, 8054, 4694, 4697, 8045, 8063, 4659,11902,
1152      4668,11902, 4642, 8101,11902,11902, 8109, 4751, 4813,11902,
1153
1154     11902,11902,11902, 4650,11902, 4683,11902, 4700, 4712,11902,
1155     11902, 4712, 4738,11902,11902, 4715,11902, 4750,11902, 4762,
1156     11902, 4767, 4768,11902, 4787, 4788, 8071,11902, 4782, 4804,
1157      4806, 4794, 4812, 4814, 8074,11902, 4793, 4785, 4871,11902,
1158     11902, 4802, 4793, 4852,11902,11902,11902, 8117, 4868, 4831,
1159      4874, 4853, 8120,11902,11902, 4866, 4867, 8128, 4891, 4889,
1160      4924, 4894, 8131, 4887, 4893, 4924, 4914, 4936, 4927,11902,
1161     11902,11902,11902,11902,11902, 8135, 4948, 4942, 4957, 8138,
1162      4904, 4909,11902, 4940, 4925, 4928,11902, 4947, 8141, 8150,
1163      4957, 4966, 4978, 4962, 4971, 4983, 5005, 5004, 8159, 8162,
1164
1165      4974, 4992, 5005, 4988, 5000, 5013, 8170, 8173, 5004, 5005,
1166      5046, 5033, 5052, 5040, 8181, 5055, 5037, 5009, 5046, 5058,
1167      5031, 5050, 8184, 5079, 5081, 5066, 5071, 5072, 5075, 5080,
1168      5083,11902,11902, 8193,11902,11902, 5092, 5099, 5096, 5098,
1169      5107, 5104, 8201,11902,11902, 5137, 5142,11902, 5119,11902,
1170      5141, 5173,11902, 5115, 5116, 5134, 5125, 5134, 5147, 5182,
1171      5185, 5202, 5196, 5213, 5224, 5224, 5222, 5228, 5229, 5226,
1172      5236, 5240, 5238, 5244, 5245,11902,11902, 5266, 5265, 5272,
1173      5226, 5275, 5232, 5237, 5285, 5243, 5257, 5281, 5273, 5292,
1174      5279, 5276, 5297, 5290, 5287, 5308, 5298, 5297, 5314, 5305,
1175
1176      5308, 5326,11902,11902, 5348, 5299,11902, 5356, 5316,11902,
1177      5362, 5336, 5336, 5353, 5353, 5367, 5358, 5390, 5372, 5370,
1178      5400, 5384, 5381, 5417, 5400, 5396, 5426, 5442, 5430,11902,
1179      5435,11902, 5416, 5421, 5431, 5443, 5471, 5451,11902, 5476,
1180      5454,11902, 5488, 5462,11902, 5488, 5468,11902, 5509,11902,
1181     11902, 5466, 5497, 5486, 5500,11902, 5500,11902, 5502,11902,
1182      5505,11902, 5506, 8209, 5508, 5529, 5521, 5542, 5509, 5512,
1183      5513, 5515, 8212, 5556,11902, 5560,11902, 5564, 5569, 5574,
1184      5572, 5580, 5650,11902,11902,11902,11902,11902,11902, 5563,
1185      5569, 5610, 5651, 5598, 5687, 5568, 5726, 5737, 5743, 5752,
1186
1187      5784, 5591, 5597, 5659, 5670, 5656, 5668, 5755, 5793, 5765,
1188      5785, 5779, 5848, 5734, 5804, 5732, 5902, 5802, 5818, 5694,
1189      5860, 5923, 5924, 5888, 5890, 5963, 5976, 5945, 5964, 6014,
1190      6022, 5850, 5942, 6000, 6054, 6021, 6037, 6008, 6040, 5725,
1191      6007, 6039, 6069, 6061, 6167, 6157, 6165, 6168, 6228, 6043,
1192      6183, 6190, 6209, 6236, 6237, 6259, 6261, 6185, 6262, 6252,
1193      6309, 6286, 6336, 6321, 6369, 6275, 6338, 6386, 6405, 6247,
1194      6363, 6348, 6422, 6371, 6426, 6470, 6473, 6413, 6443, 6425,
1195      6456, 6485, 6619, 6440, 6629, 6627, 6662, 5915, 5577, 8220,
1196      8223,11902,11902, 8243, 8252, 8261, 8270, 8279, 8288, 8297,
1197
1198      8306, 8315, 8324, 8333, 8342, 8351, 8360, 8369, 8378, 8387,
1199      8396, 8405, 8414, 8423, 8432, 8441, 8450, 8459, 8468, 8477,
1200      8486, 8495, 8504, 8513, 8522, 8531, 8540, 8549, 8558, 8567,
1201      8576, 8585, 8594, 8603, 8612, 8621, 8630, 8639, 8648, 8657,
1202      8666, 8675, 8684, 8693, 8702, 8711, 8720, 8729, 8738, 8747,
1203      8756, 8765, 8774, 8781, 8788, 8795, 8802, 8809, 8816, 8823,
1204      8830, 8837, 8844, 8851, 8858, 8865, 8872, 8879, 8886, 8893,
1205      8900, 8907, 8914, 8921, 8928, 8935, 8942, 8949, 8956, 8963,
1206      8972, 8979, 8984, 8991, 8996, 9003, 9008, 9015, 9020, 9027,
1207      9032, 9039, 9044, 9051, 9056, 9063, 9068, 9075, 9080, 9087,
1208
1209      9092, 9099, 9104, 9111, 9116, 9123, 9128, 9135, 9140, 9147,
1210      9152, 9159, 9164, 9171, 9176, 9183, 9188, 9195, 9200, 9207,
1211      9212, 9219, 9224, 9231, 9236, 9243, 9248, 9255, 9260, 9267,
1212      9272, 9279, 9284, 9291, 9296, 9305, 9311, 9318, 9326, 9334,
1213      9342, 9349, 9357, 9364, 9372, 9380, 9388, 9396, 9404, 9412,
1214      9420, 9427, 9435, 9443, 9450, 9458, 9465, 9473, 9480, 9488,
1215      9495, 9503, 9510, 9518, 9525, 9533, 9540, 9548, 9555, 9563,
1216      9570, 9578, 9585, 9593, 9600, 9608, 9615, 9623, 9631, 9639,
1217      9646, 9654, 9661, 9669, 9676, 9684, 9691, 9699, 9706, 9714,
1218      9723, 9729, 9736, 9744, 9751, 9759, 9766, 9774, 9781, 9789,
1219
1220      9796, 9804, 9812, 9819, 9827, 9834, 9842, 9850, 9857, 9865,
1221      9873, 9881, 9889, 9897, 9904, 9912, 9919, 9927, 9934, 9942,
1222      9950, 9958, 9965, 9973, 9980, 9988, 9995,10003,10010,10018,
1223     10025,10033,10040,10048,10055,10063,10070,10078,10085,10093,
1224     10101,10109,10116,10124,10133,10142,10149,10156,10164,10172,
1225     10180,10187,10195,10202,10210,10218,10225,10233,10241,10249,
1226     10257,10264,10272,10280,10288,10295,10303,10310,10318,10326,
1227     10334,10341,10349,10356,10364,10371,10379,10386,10394,10402,
1228     10410,10417,10425,10432,10440,10447,10455,10462,10470,10477,
1229     10485,10492,10500,10507,10515,10524,10533,10540,10548,10556,
1230
1231     10564,10571,10579,10587,10595,10603,10611,10619,10627,10635,
1232     10643,10650,10658,10666,10674,10681,10689,10696,10704,10712,
1233     10719,10727,10734,10742,10749,10757,10764,10772,10780,10787,
1234     10795,10802,10810,10817,10825,10833,10841,10848,10856,10863,
1235     10871,10878,10886,10895,10904,10912,10919,10927,10935,10942,
1236     10950,10958,10966,10974,10982,10989,10997,11005,11012,11020,
1237     11028,11035,11042,11050,11058,11065,11073,11080,11088,11096,
1238     11103,11111,11118,11126,11133,11141,11148,11156,11164,11172,
1239     11180,11188,11195,11203,11211,11219,11228,11237,11244,11252,
1240     11260,11267,11275,11283,11291,11299,11306,11314,11322,11329,
1241
1242     11337,11345,11352,11359,11367,11375,11382,11389,11397,11405,
1243     11413,11420,11428,11435,11442,11450,11457,11465,11472,11480,
1244     11487,11495,11504,11513,11520,11528,11536,11544,11552,11560,
1245     11568,11576,11583,11591,11598,11606,11614,11622,11630,11638,
1246     11646,11654,11661,11669,11677,11685,11693,11700,11707,11714,
1247     11722,11729,11737,11744,11752,11761,11770,11777,11785,11793,
1248     11801,11809,11816,11823,11831,11838,11847,11856,11865,11874,
1249     11883,11892
1250     } ;
1251
1252 static yyconst flex_int16_t yy_def[3773] =
1253     {   0,
1254      3294, 3294, 3295, 3295, 3295, 3295, 3296, 3296, 3297, 3297,
1255      3298, 3298, 3299, 3299, 3299, 3299, 3300, 3300, 3301, 3301,
1256      3302, 3302, 3302, 3302, 3294, 3294, 3302, 3302, 3302, 3302,
1257      3294, 3294, 3302, 3302, 3294, 3294, 3302, 3302, 3302, 3302,
1258      3303, 3303, 3304, 3304, 3294, 3294, 3304, 3304, 3304, 3304,
1259      3305, 3305, 3306, 3306, 3307, 3307, 3308, 3308, 3309, 3309,
1260      3310, 3310, 3294, 3294, 3310, 3310, 3310, 3310, 3311, 3311,
1261      3312, 3312, 3294, 3294, 3312, 3312, 3312, 3312, 3313, 3313,
1262      3314, 3314, 3293,   83, 3315, 3315, 3294, 3294, 3315, 3315,
1263      3315, 3315, 3316, 3316, 3317, 3317, 3294, 3294, 3317, 3317,
1264
1265      3317, 3317, 3318, 3318, 3319, 3319, 3294, 3294, 3319, 3319,
1266      3319, 3319, 3320, 3320, 3321, 3321, 3322, 3322, 3323, 3323,
1267      3294, 3294, 3323, 3323, 3323, 3323, 3324, 3324, 3325, 3325,
1268      3294, 3294, 3325, 3325, 3325, 3325, 3326, 3326, 3327, 3327,
1269      3328, 3328, 3329, 3329, 3330, 3330, 3331, 3331, 3332, 3332,
1270      3333, 3333, 3294, 3294, 3334, 3334, 3335, 3335, 3335, 3335,
1271      3294, 3294, 3335, 3335, 3335, 3335, 3294, 3294, 3335, 3335,
1272      3294, 3294, 3335, 3335, 3335, 3335, 3336, 3336, 3337, 3337,
1273      3294, 3294, 3337, 3337, 3337, 3337, 3338, 3338, 3339, 3339,
1274      3340, 3340, 3341, 3341, 3342, 3342, 3343, 3343, 3294, 3294,
1275
1276      3343, 3343, 3343, 3343, 3344, 3344, 3345, 3345, 3346, 3346,
1277      3347, 3347, 3294, 3294, 3347, 3347, 3347, 3347, 3348, 3348,
1278      3349, 3349, 3294, 3294, 3349, 3349, 3349, 3349, 3350, 3350,
1279      3351, 3351, 3352, 3352, 3353, 3353, 3294, 3294, 3293, 3293,
1280      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1281      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1282      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3354, 3293,
1283      3293, 3354, 3354, 3293, 3293, 3293,  276, 3293,  278,  276,
1284       279,  278, 3293, 3293, 3293, 3355, 3293, 3293, 3355, 3355,
1285      3355, 3293, 3293,  278,  294,  294, 3293, 3293, 3293, 3356,
1286
1287      3293, 3293, 3356, 3293, 3293, 3293, 3293, 3293, 3293, 3357,
1288      3293, 3293, 3357, 3357, 3357, 3293, 3293, 3293, 3293, 3293,
1289      3293, 3358, 3293, 3293, 3358, 3358, 3358, 3293, 3293,  294,
1290       294, 3293, 3293, 3293, 3359, 3293, 3293, 3359, 3359, 3293,
1291      3293,  294,  294, 3293, 3293, 3293, 3360, 3293, 3293, 3360,
1292      3360, 3360, 3360, 3360, 3360, 3293, 3293, 3293, 3293, 3293,
1293      3293, 3361, 3293, 3293, 3361, 3361, 3361, 3361, 3361, 3361,
1294      3361, 3361, 3293, 3293,  278,  278, 3293, 3293, 3293, 3362,
1295      3293, 3293, 3362, 3293, 3293,  278,  278, 3293, 3293, 3293,
1296      3363, 3293, 3293, 3363, 3363, 3363, 3363, 3363, 3293, 3293,
1297
1298       278,  278,  278, 3293, 3293, 3293, 3364, 3293, 3293, 3364,
1299      3364, 3364, 3293, 3293, 3293, 3293, 3293, 3293, 3365, 3293,
1300      3293, 3365, 3293, 3293,  278,  425,  278, 3293, 3293, 3293,
1301      3366, 3293, 3293, 3366, 3366, 3366, 3366, 3293, 3293,  278,
1302       278, 3293, 3293, 3293, 3367, 3293, 3293, 3367, 3367, 3293,
1303      3293, 3293, 3293, 3293, 3293, 3368, 3293, 3293, 3368, 3368,
1304      3293, 3293, 3293, 3293, 3293, 3293, 3369, 3293, 3293, 3369,
1305      3369, 3293, 3293, 3293, 3293, 3293, 3293, 3370, 3293, 3293,
1306      3370, 3370, 3370, 3370, 3370, 3370, 3293, 3293, 3293, 3293,
1307      3293, 3293, 3293, 3371, 3293, 3293, 3371, 3293, 3293,  425,
1308
1309       425,  278,  278,  278,  278, 3293, 3293, 3293, 3372, 3293,
1310      3293, 3372, 3372, 3372, 3372, 3372, 3293, 3293,  278,  278,
1311       278, 3293, 3293, 3293, 3373, 3293, 3293, 3373, 3373, 3293,
1312      3293, 3293, 3293, 3293, 3293, 3374, 3293, 3293, 3374, 3374,
1313      3374, 3374, 3374, 3293, 3293, 3293, 3293, 3293, 3293, 3375,
1314      3293, 3293, 3375, 3375, 3293, 3293,  294,  294, 3293, 3293,
1315      3293, 3376, 3293, 3293, 3376, 3376, 3293, 3293, 3293, 3293,
1316      3293, 3293, 3377, 3293, 3293, 3377, 3377, 3377, 3377, 3293,
1317      3293,  278,  278, 3293, 3293, 3293, 3378, 3293, 3293, 3378,
1318      3378, 3378, 3378, 3293, 3293,  278,  278,  278, 3293, 3293,
1319
1320      3293, 3379, 3293, 3293, 3379, 3379, 3379, 3293, 3293, 3293,
1321      3293, 3293, 3380, 3293, 3293, 3380, 3380, 3380, 3293, 3293,
1322      3293, 3293, 3381, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1323      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3382, 3382, 3382,
1324      3383, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1325      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1326      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1327      3293, 3384, 3384, 3384, 3384, 3384, 3385, 3293, 3293, 3386,
1328      3386, 3387, 3293, 3388, 3388, 3388, 3388, 3389, 3293, 3390,
1329      3390, 3390, 3390, 3391, 3293, 3392, 3392, 3392, 3393, 3293,
1330
1331      3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3395, 3293,
1332      3396, 3396, 3396, 3396, 3396, 3396, 3396, 3396, 3396, 3396,
1333      3396, 3396, 3396, 3396, 3396, 3397, 3293, 3398, 3398, 3399,
1334      3293, 3400, 3400, 3400, 3400, 3400, 3400, 3400, 3401, 3293,
1335      3293, 3402, 3402, 3402, 3402, 3403, 3293, 3404, 3404, 3405,
1336      3293, 3293, 3406, 3406, 3406, 3406, 3406, 3406, 3407, 3293,
1337      3408, 3408, 3408, 3409, 3293, 3410, 3410, 3410, 3411, 3293,
1338      3412, 3412, 3412, 3413, 3293, 3414, 3414, 3414, 3414, 3414,
1339      3414, 3414, 3414, 3415, 3293, 3293, 3416, 3416, 3417, 3293,
1340      3293, 3293, 3293, 3293, 3293, 3418, 3418, 3418, 3418, 3418,
1341
1342      3418, 3419, 3293, 3293, 3420, 3420, 3420, 3421, 3293, 3422,
1343      3422, 3422, 3422, 3422, 3422, 3422, 3422, 3422, 3423, 3293,
1344      3424, 3424, 3424, 3424, 3425, 3293, 3426, 3426, 3426, 3427,
1345      3293, 3428, 3428, 3428, 3428, 3428, 3429, 3293, 3430, 3430,
1346      3430, 3430, 3430, 3431, 3293, 3293, 3432, 3432, 3432, 3432,
1347      3293, 3433, 3293, 3293, 3434, 3434, 3434, 3434, 3435, 3436,
1348      3293, 3436, 3293, 3293, 3293, 3437, 3293, 3293, 3293, 3293,
1349      3293, 3293, 3293, 3293, 3438, 3439, 3439, 3293, 3293, 3293,
1350      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1351      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1352
1353      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1354      3293, 3440, 3440, 3440, 3440, 3441, 3441, 3293, 3442, 3443,
1355      3443, 3444, 3293, 3293, 3444, 3445, 3445, 3446, 3446, 3446,
1356      3447, 3447, 3448, 3448, 3449, 3449, 3293, 3293, 3293, 3293,
1357      3450, 3450, 3450, 3450, 3450, 3451, 3451, 3452, 3293, 3293,
1358      3452, 3293, 3293, 3452, 3452, 3452, 3452, 3452, 3452, 3452,
1359      3452, 3452, 3452, 3453, 3453, 3293, 3293, 3454, 3454, 3455,
1360      3455, 3455, 3293, 3293, 3455, 3455, 3455, 3456, 3456, 3293,
1361      3457, 3293, 3293, 3293, 3293, 3458, 3458, 3459, 3460, 3460,
1362      3293, 3461, 3293, 3293, 3461, 3461, 3461, 3462, 3462, 3463,
1363
1364      3293, 3293, 3464, 3464, 3293, 3293, 3465, 3466, 3466, 3467,
1365      3467, 3468, 3468, 3469, 3469, 3469, 3293, 3293, 3469, 3469,
1366      3469, 3470, 3470, 3293, 3471, 3472, 3472, 3293, 3293, 3293,
1367      3473, 3473, 3473, 3473, 3473, 3474, 3474, 3293, 3293, 3293,
1368      3475, 3476, 3476, 3477, 3293, 3293, 3477, 3477, 3477, 3477,
1369      3477, 3477, 3478, 3478, 3479, 3479, 3479, 3480, 3480, 3481,
1370      3293, 3293, 3482, 3482, 3483, 3483, 3293, 3293, 3483, 3484,
1371      3484, 3485, 3293, 3293, 3485, 3485, 3486, 3486, 3293, 3487,
1372      3293, 3293, 3487, 3293, 3488, 3488, 3293, 3489, 3489, 3489,
1373      3490, 3490, 3491, 3293, 3293, 3491, 3293, 3293, 3492, 3293,
1374
1375      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3493, 3293, 3494,
1376      3293, 3494, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1377      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1378      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1379      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1380      3495, 3495, 3293, 3293, 3495, 3293, 3496, 3293, 3496, 3293,
1381      3497, 3293, 3498, 3293, 3498, 3499, 3293, 3293, 3293, 3499,
1382      3293, 3500, 3293, 3500, 3293, 3293, 3501, 3501, 3293, 3293,
1383      3293, 3502, 3293, 3502, 3293, 3293, 3293, 3293, 3293, 3503,
1384      3293, 3503, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1385
1386      3504, 3504, 3504, 3504, 3293, 3505, 3293, 3505, 3506, 3506,
1387      3506, 3293, 3293, 3293, 3506, 3293, 3293, 3293, 3293, 3293,
1388      3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3293,
1389      3507, 3293, 3507, 3293, 3293, 3293, 3293, 3508, 3293, 3508,
1390      3509, 3509, 3509, 3293, 3293, 3293, 3509, 3509, 3509, 3293,
1391      3510, 3293, 3510, 3293, 3511, 3293, 3293, 3293, 3293, 3293,
1392      3293, 3293, 3512, 3293, 3512, 3513, 3293, 3514, 3293, 3514,
1393      3515, 3293, 3293, 3293, 3515, 3515, 3515, 3293, 3516, 3293,
1394      3516, 3517, 3293, 3293, 3293, 3293, 3518, 3293, 3518, 3293,
1395      3293, 3293, 3519, 3293, 3520, 3293, 3520, 3521, 3521, 3293,
1396
1397      3522, 3293, 3522, 3523, 3523, 3523, 3523, 3293, 3293, 3293,
1398      3293, 3293, 3523, 3523, 3293, 3524, 3293, 3524, 3293, 3525,
1399      3293, 3526, 3293, 3526, 3293, 3293, 3293, 3527, 3527, 3527,
1400      3527, 3527, 3293, 3528, 3293, 3528, 3293, 3293, 3293, 3293,
1401      3529, 3293, 3530, 3293, 3530, 3531, 3293, 3293, 3293, 3293,
1402      3293, 3531, 3293, 3293, 3531, 3531, 3531, 3293, 3532, 3293,
1403      3532, 3293, 3293, 3293, 3293, 3533, 3293, 3534, 3293, 3534,
1404      3535, 3293, 3293, 3293, 3293, 3536, 3293, 3536, 3537, 3537,
1405      3293, 3293, 3293, 3537, 3293, 3538, 3293, 3538, 3539, 3293,
1406      3293, 3293, 3539, 3539, 3293, 3540, 3293, 3540, 3293, 3541,
1407
1408      3293, 3293, 3293, 3541, 3293, 3293, 3542, 3293, 3542, 3543,
1409      3543, 3543, 3293, 3544, 3293, 3544, 3545, 3546, 3293, 3293,
1410      3293, 3293, 3547, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1411      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1412      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1413      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1414      3293, 3293, 3293, 3548, 3548, 3293, 3293, 3293, 3548, 3549,
1415      3293, 3550, 3551, 3552, 3552, 3553, 3293, 3293, 3293, 3554,
1416      3554, 3293, 3293, 3293, 3555, 3293, 3293, 3293, 3293, 3293,
1417      3293, 3556, 3293, 3293, 3293, 3557, 3557, 3557, 3557, 3558,
1418
1419      3559, 3559, 3559, 3293, 3293, 3293, 3293, 3293, 3559, 3559,
1420      3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3560, 3561,
1421      3562, 3562, 3293, 3293, 3562, 3562, 3562, 3563, 3293, 3293,
1422      3293, 3564, 3293, 3293, 3565, 3566, 3566, 3566, 3566, 3567,
1423      3568, 3569, 3570, 3571, 3293, 3293, 3572, 3573, 3574, 3574,
1424      3574, 3574, 3293, 3293, 3293, 3574, 3574, 3575, 3293, 3576,
1425      3577, 3293, 3293, 3293, 3578, 3293, 3293, 3578, 3578, 3578,
1426      3579, 3293, 3580, 3581, 3582, 3293, 3293, 3293, 3293, 3293,
1427      3293, 3293, 3293, 3582, 3293, 3293, 3582, 3583, 3293, 3293,
1428      3293, 3293, 3293, 3293, 3584, 3585, 3586, 3587, 3588, 3588,
1429
1430      3588, 3589, 3590, 3590, 3293, 3293, 3591, 3293, 3293, 3293,
1431      3592, 3293, 3593, 3594, 3293, 3293, 3594, 3595, 3596, 3597,
1432      3597, 3293, 3597, 3293, 3293, 3598, 3293, 3293, 3293, 3293,
1433      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1434      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1435      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1436      3293, 3293, 3293, 3293, 3599, 3599, 3599, 3600, 3293, 3293,
1437      3293, 3601, 3602, 3602, 3603, 3604, 3604, 3605, 3606, 3607,
1438      3607, 3293, 3293, 3607, 3608, 3293, 3293, 3609, 3609, 3293,
1439      3293, 3293, 3609, 3609, 3609, 3609, 3609, 3609, 3293, 3293,
1440
1441      3609, 3609, 3609, 3610, 3611, 3612, 3612, 3293, 3293, 3293,
1442      3612, 3293, 3293, 3612, 3613, 3293, 3293, 3293, 3293, 3614,
1443      3293, 3293, 3293, 3615, 3616, 3616, 3616, 3616, 3617, 3618,
1444      3619, 3293, 3293, 3620, 3293, 3293, 3293, 3621, 3622, 3623,
1445      3293, 3293, 3623, 3623, 3293, 3293, 3623, 3624, 3293, 3625,
1446      3626, 3293, 3293, 3293, 3627, 3293, 3293, 3293, 3627, 3627,
1447      3627, 3628, 3293, 3293, 3293, 3629, 3630, 3293, 3293, 3293,
1448      3630, 3293, 3293, 3293, 3630, 3631, 3632, 3633, 3634, 3635,
1449      3636, 3636, 3636, 3637, 3638, 3293, 3293, 3293, 3293, 3293,
1450      3639, 3293, 3293, 3293, 3293, 3640, 3293, 3641, 3642, 3293,
1451
1452      3293, 3293, 3293, 3293, 3643, 3644, 3645, 3645, 3293, 3646,
1453      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1454      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1455      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1456      3293, 3293, 3293, 3293, 3293, 3293, 3647, 3648, 3293, 3293,
1457      3293, 3293, 3649, 3650, 3650, 3651, 3293, 3293, 3293, 3293,
1458      3652, 3653, 3293, 3293, 3654, 3293, 3293, 3293, 3293, 3293,
1459      3655, 3293, 3293, 3293, 3293, 3293, 3656, 3656, 3656, 3293,
1460      3293, 3656, 3656, 3656, 3293, 3293, 3293, 3293, 3293, 3656,
1461      3656, 3657, 3658, 3659, 3659, 3293, 3293, 3293, 3293, 3293,
1462
1463      3659, 3293, 3293, 3293, 3660, 3661, 3662, 3662, 3662, 3662,
1464      3293, 3293, 3663, 3664, 3293, 3293, 3293, 3665, 3666, 3667,
1465      3668, 3293, 3293, 3293, 3293, 3293, 3668, 3293, 3293, 3293,
1466      3668, 3293, 3293, 3293, 3669, 3670, 3293, 3293, 3293, 3671,
1467      3671, 3671, 3671, 3672, 3293, 3293, 3293, 3293, 3293, 3293,
1468      3673, 3673, 3673, 3674, 3675, 3676, 3677, 3678, 3293, 3293,
1469      3679, 3293, 3293, 3680, 3681, 3293, 3293, 3293, 3682, 3293,
1470      3683, 3293, 3684, 3685, 3293, 3293, 3293, 3293, 3293, 3293,
1471      3293, 3293, 3293, 3293, 3293, 3686, 3687, 3688, 3688, 3293,
1472      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1473
1474      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1475      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1476      3293, 3293, 3293, 3293, 3293, 3293, 3689, 3690, 3293, 3691,
1477      3692, 3293, 3293, 3693, 3293, 3293, 3293, 3293, 3293, 3293,
1478      3694, 3695, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1479      3696, 3293, 3293, 3293, 3697, 3697, 3697, 3293, 3293, 3293,
1480      3293, 3293, 3697, 3697, 3293, 3293, 3293, 3697, 3697, 3698,
1481      3699, 3700, 3700, 3293, 3293, 3293, 3700, 3701, 3702, 3703,
1482      3293, 3293, 3703, 3703, 3703, 3704, 3705, 3706, 3707, 3293,
1483      3293, 3708, 3293, 3293, 3293, 3708, 3708, 3293, 3293, 3293,
1484
1485      3709, 3293, 3293, 3293, 3710, 3710, 3710, 3710, 3711, 3293,
1486      3712, 3293, 3293, 3712, 3713, 3714, 3293, 3293, 3715, 3716,
1487      3293, 3293, 3293, 3293, 3293, 3717, 3293, 3293, 3293, 3718,
1488      3293, 3293, 3719, 3720, 3293, 3721, 3293, 3293, 3293, 3293,
1489      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1490      3293, 3722, 3723, 3724, 3724, 3293, 3293, 3293, 3293, 3293,
1491      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1492      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1493      3293, 3293, 3293, 3293, 3293, 3725, 3726, 3293, 3727, 3728,
1494      3293, 3293, 3293, 3729, 3730, 3731, 3293, 3293, 3293, 3732,
1495
1496      3733, 3733, 3733, 3293, 3293, 3293, 3733, 3733, 3733, 3293,
1497      3293, 3734, 3293, 3293, 3735, 3735, 3735, 3736, 3737, 3738,
1498      3293, 3293, 3293, 3738, 3738, 3738, 3739, 3740, 3741, 3742,
1499      3743, 3743, 3743, 3293, 3293, 3293, 3293, 3744, 3293, 3293,
1500      3293, 3745, 3745, 3745, 3746, 3293, 3747, 3293, 3293, 3293,
1501      3747, 3293, 3293, 3748, 3749, 3293, 3293, 3293, 3293, 3293,
1502      3750, 3751, 3293, 3293, 3293, 3752, 3753, 3293, 3754, 3293,
1503      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1504      3293, 3293, 3293, 3755, 3756, 3757, 3757, 3293, 3293, 3293,
1505      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1506
1507      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1508      3293, 3293, 3293, 3758, 3293, 3293, 3293, 3759, 3293, 3293,
1509      3760, 3761, 3762, 3293, 3293, 3763, 3763, 3763, 3763, 3293,
1510      3293, 3763, 3763, 3293, 3293, 3293, 3293, 3293, 3764, 3764,
1511      3764, 3765, 3293, 3293, 3293, 3293, 3766, 3766, 3766, 3766,
1512      3293, 3293, 3740, 3741, 3293, 3293, 3743, 3743, 3743, 3293,
1513      3744, 3293, 3293, 3293, 3293, 3293, 3745, 3745, 3293, 3293,
1514      3293, 3293, 3293, 3747, 3748, 3749, 3750, 3293, 3293, 3752,
1515      3753, 3293, 3754, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1516      3293, 3293, 3293, 3755, 3756, 3757, 3757, 3293, 3293, 3293,
1517
1518      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1519      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1520      3758, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3761, 3762,
1521      3763, 3763, 3763, 3763, 3293, 3293, 3293, 3763, 3763, 3293,
1522      3293, 3293, 3293, 3764, 3764, 3293, 3293, 3765, 3293, 3293,
1523      3293, 3766, 3766, 3766, 3293, 3293, 3293, 3293, 3293, 3293,
1524      3293, 3741, 3293, 3293, 3293, 3743, 3743, 3293, 3293, 3293,
1525      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1526      3293, 3747, 3748, 3749, 3750, 3752, 3753, 3293, 3754, 3293,
1527      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3755,
1528
1529      3756, 3757, 3757, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1530      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1531      3293, 3293, 3293, 3293, 3293, 3293, 3761, 3762, 3763, 3763,
1532      3293, 3293, 3763, 3763, 3763, 3293, 3293, 3293, 3293, 3293,
1533      3293, 3764, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3766,
1534      3766, 3766, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1535      3293, 3741, 3743, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1536      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1537      3747, 3293, 3293, 3293, 3293, 3750, 3752, 3753, 3293, 3293,
1538      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1539
1540      3293, 3755, 3756, 3757, 3757, 3293, 3293, 3293, 3293, 3293,
1541      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1542      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3761, 3762,
1543      3763, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3763, 3763,
1544      3293, 3293, 3293, 3293, 3293, 3293, 3764, 3293, 3293, 3293,
1545      3766, 3293, 3293, 3766, 3293, 3293, 3293, 3293, 3293, 3293,
1546      3293, 3293, 3743, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1547      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3747, 3293,
1548      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3753,
1549      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1550
1551      3293, 3755, 3756, 3757, 3757, 3757, 3293, 3293, 3293, 3293,
1552      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1553      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3761, 3293,
1554      3293, 3763, 3293, 3293, 3293, 3293, 3293, 3293, 3763, 3763,
1555      3293, 3293, 3293, 3293, 3293, 3293, 3764, 3766, 3293, 3293,
1556      3293, 3766, 3293, 3293, 3293, 3293, 3293, 3293, 3743, 3293,
1557      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1558      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1559      3293, 3293, 3293, 3753, 3293, 3293, 3293, 3293, 3293, 3293,
1560      3293, 3293, 3755, 3756, 3757, 3757, 3757, 3767, 3768, 3293,
1561
1562      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1563      3293, 3293, 3293, 3293, 3293, 3761, 3763, 3293, 3293, 3763,
1564      3293, 3293, 3293, 3293, 3293, 3293, 3764, 3293, 3293, 3293,
1565      3293, 3293, 3293, 3293, 3293, 3743, 3293, 3293, 3293, 3293,
1566      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1567      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1568      3293, 3293, 3293, 3755, 3756, 3757, 3769, 3770, 3767, 3768,
1569      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1570      3293, 3293, 3763, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1571      3293, 3293, 3764, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1572
1573      3293, 3293, 3293, 3743, 3293, 3293, 3293, 3293, 3293, 3293,
1574      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1575      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3756, 3769,
1576      3757, 3771, 3770, 3772, 3757, 3293, 3293, 3293, 3293, 3293,
1577      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3763, 3293, 3293,
1578      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3764, 3293, 3293,
1579      3293, 3293, 3743, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1580      3293, 3293, 3293, 3293, 3293, 3756, 3771, 3293, 3772, 3757,
1581      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1582      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1583
1584      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1585      3293, 3293, 3293, 3293, 3756, 3293, 3293, 3293, 3293, 3293,
1586      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1587      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1588      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1589      3293, 3756, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1590      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1591      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3756,
1592      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1593      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1594
1595      3293, 3293, 3293, 3293, 3756, 3293, 3293, 3293, 3293, 3293,
1596      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1597      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3756, 3293, 3293,
1598      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1599      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3756, 3293,
1600      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1601      3293, 3293, 3293, 3756, 3293, 3293, 3293, 3293, 3293, 3293,
1602      3293, 3293, 3756, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1603      3293, 3756, 3756, 3293, 3293, 3293, 3293, 3293, 3293, 3756,
1604      3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
1605
1606      3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
1607      3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
1608      3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
1609      3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
1610      3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
1611      3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
1612      3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
1613      3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
1614      3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
1615      3756, 3293,    0, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1616
1617      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1618      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1619      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1620      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1621      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1622      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1623      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1624      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1625      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1626      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1627
1628      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1629      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1630      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1631      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1632      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1633      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1634      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1635      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1636      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1637      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1638
1639      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1640      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1641      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1642      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1643      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1644      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1645      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1646      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1647      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1648      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1649
1650      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1651      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1652      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1653      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1654      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1655      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1656      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1657      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1658      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1659      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1660
1661      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1662      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1663      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1664      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1665      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1666      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1667      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
1668      3293, 3293
1669     } ;
1670
1671 static yyconst flex_int16_t yy_nxt[11977] =
1672     {   0,
1673      3293,  242,  243,  242,  242,  243,  242,  242,  243,  242,
1674       242,  243,  242,  247,  243,  247,  253,  244,  250,  253,
1675       244,  250,  694,  245, 3293,  251,  245, 3293,  251,  248,
1676       247,  243,  247,  623,  254,  256,  257,  254,  256,  257,
1677       258,  259,  641,  258,  259,  623,  248,  263,  264,  624,
1678       260,  256,  257,  260,  261,  626,  258,  256,  257, 1305,
1679       261,  625,  258,  263,  264, 1306,  260,  275,  243,  275,
1680       660,  625,  260,  275,  243,  275,  275,  243,  275,  275,
1681       243,  275,  707,  276,  243,  243,  243,  708, 1666,  276,
1682       699,  265,  277, 1667,  667,  277,  622,  622,  622, 1673,
1683
1684       278,  622,  622,  622,  622,  622,  622,  265,  266,  267,
1685       243,  267,  266,  266,  266,  266,  266,  266,  266,  268,
1686       266,  266,  266,  739,  266,  270,  266,  271,  266,  243,
1687       243,  243,  275,  243,  275,  275,  243,  275,  660,  275,
1688       243,  275,  275,  243,  275,  278,  626,  626,  276,  675,
1689       712,  276,  626,  266,  266,  279,  676,  757,  279,  622,
1690       622,  622,  625,  625,  272,  622,  622,  622,  625,  758,
1691       631,  713,  740,  273,  266,  267,  243,  267,  266,  266,
1692       266,  266,  266,  266,  266,  268,  266,  266,  266,  817,
1693       266,  270,  266,  271,  266,  243,  243,  243,  243,  243,
1694
1695       243,  275,  243,  275,  818,  275,  243,  275,  243,  243,
1696       243,  280,  632,  867,  280,  825,  868,  277,  633,  266,
1697       266,  277,  626,  634,  281,  243,  243,  243,  635,  682,
1698       272,  275,  243,  275,  275,  243,  275,  971,  625,  273,
1699       972,  281,  275,  243,  275, 1674,  626,  279, 1676,  626,
1700       279,  275,  243,  275,  622,  622,  622,  726,  282,  622,
1701       622,  622,  625,  660,  677,  625, 1677,  282,  283,  284,
1702       243,  284,  283,  283,  283,  283,  283,  283,  283,  285,
1703       283,  283,  283,  844,  283,  287,  283,  288,  283,  293,
1704       243,  293,  293,  243,  293,  243,  243,  243,  730,  243,
1705
1706       243,  243,  293,  243,  293,  294,  720,  892,  294,  667,
1707      1680,  295,  678,  283,  283,  295,  667,  626,  294,  289,
1708       721,  893,  290,  622,  622,  622,  622,  622,  622,  622,
1709       622,  622,  845,  625,  291,  283,  284,  243,  284,  283,
1710       283,  283,  283,  283,  283,  283,  285,  283,  283,  283,
1711       667,  283,  287,  283,  288,  283,  293,  243,  293,  293,
1712       243,  293,  293,  243,  293,  716,  305,  243,  305,  305,
1713       243,  305,  294,  717, 1681,  296,  880,  626,  296,  718,
1714       283,  283,  306,  737,  688,  306,  289,  738,  739,  290,
1715       622,  622,  622,  625,  622,  622,  622,  622,  622,  622,
1716
1717       881,  291,  297,  298,  243,  298,  297,  297,  297,  297,
1718       297,  297,  297,  299,  297,  297,  297,  861,  297,  301,
1719       297,  302,  297,  317,  243,  317,  317,  243,  317,  329,
1720       243,  329,  862,  329,  243,  329,  243,  243,  243,  318,
1721       667, 1684,  318, 1706,  898,  330,  898,  297,  297,  330,
1722       626,  626,  295,  243,  243,  243,  622,  622,  622,  622,
1723       622,  622,  622,  622,  622,  802,  625,  625,  899,  295,
1724       881,  303,  297,  298,  243,  298,  297,  297,  297,  297,
1725       297,  297,  297,  299,  297,  297,  297,  880,  297,  301,
1726       297,  302,  297,  329,  243,  329,  329,  243,  329,  329,
1727
1728       243,  329,  803,  329,  243,  329,  341,  243,  341,  330,
1729       782,  899,  330,  626,  783,  331, 1707,  297,  297,  331,
1730       709,  861,  342,  341,  243,  341,  622,  622,  622,  625,
1731       622,  622,  622,  622,  622,  622,  622,  622,  622,  342,
1732      1711,  303,  307,  308,  243,  308,  307,  307,  307,  307,
1733       307,  307,  307,  309,  307,  307,  307, 1084,  307,  311,
1734       307,  312,  307,  243,  243,  243,  243,  243,  243,  341,
1735       243,  341, 1714,  341,  243,  341,  341,  243,  341,  295,
1736       626,  626,  295,  823,  626,  342,  722,  307,  307,  342,
1737       824,  313,  343, 1716,  723, 1725,  625,  625,  314,  724,
1738
1739       625,  315,  307,  308,  243,  308,  307,  307,  307,  307,
1740       307,  307,  307,  309,  307,  307,  307, 1726,  307,  311,
1741       307,  312,  307,  341,  243,  341,  357,  243,  357,  357,
1742       243,  357,  892,  374,  243,  374,  374,  243,  374,  343,
1743       626,  626,  358,  626,  626,  358,  906,  307,  307,  375,
1744       746,  313,  375,  622,  622,  622,  625,  625,  314,  625,
1745       625,  315,  319,  320,  243,  320,  319,  319,  319,  319,
1746       319,  319,  319,  321,  319,  319,  319, 1727,  319,  323,
1747       319,  324,  319,  243,  243,  243,  243,  243,  243,  374,
1748       243,  374,  750,  374,  243,  374,  374,  243,  374,  278,
1749
1750       892, 1728,  278, 1730, 1738,  375, 1740,  319,  319,  375,
1751       626,  626,  376,  325,  910,  759,  326,  622,  622,  622,
1752       622,  622,  622,  622,  622,  622,  625,  625,  327,  319,
1753       320,  243,  320,  319,  319,  319,  319,  319,  319,  319,
1754       321,  319,  319,  319,  667,  319,  323,  319,  324,  319,
1755       374,  243,  374,  385,  243,  385,  385,  243,  385,  789,
1756       243,  243,  243,  243,  243,  243,  376,  667, 1440,  386,
1757      1743, 1744,  386, 1747,  319,  319,  278,  626,  626,  278,
1758       325, 1441,  789,  326,  622,  622,  622,  622,  622,  622,
1759       622,  622,  622,  625,  625,  327,  332,  333,  243,  333,
1760
1761       332,  332,  332,  332,  332,  332,  332,  334,  332,  332,
1762       332,  791,  332,  336,  332,  337,  332,  385,  243,  385,
1763       385,  243,  385,  385,  243,  385,  789,  385,  243,  385,
1764       400,  243,  400,  386,  794, 1749,  386,  785, 1750,  387,
1765      1752,  332,  332,  387,  626,  626,  401,  338,  622,  622,
1766       622,  622,  622,  622,  622,  622,  622,  622,  622,  622,
1767       625,  625,  339,  332,  333,  243,  333,  332,  332,  332,
1768       332,  332,  332,  332,  334,  332,  332,  332,  667,  332,
1769       336,  332,  337,  332,  400,  243,  400,  243,  243,  243,
1770       243,  243,  243,  802,  400,  243,  400,  400,  243,  400,
1771
1772       401, 1094,  626,  402,  626, 1417,  402, 1094,  332,  332,
1773       401,  764,  626,  401,  338,  622,  622,  622,  625,  769,
1774       625,  622,  622,  622,  622,  622,  622, 1619,  625,  339,
1775       344,  345,  243,  345,  344,  344,  344,  344,  344,  344,
1776       344,  346,  344,  344,  344,  667,  344,  348,  344,  349,
1777       344,  400,  243,  400,  400,  243,  400,  414,  243,  414,
1778       837,  414,  243,  414,  424,  243,  424,  403,  626,  626,
1779       403,  626,  626,  415, 1753,  344,  344,  415,  774,  350,
1780       425,  622,  622,  622,  625,  625,  351,  625,  625,  352,
1781       622,  622,  622,  353, 1754,  354,  355,  344,  345,  243,
1782
1783       345,  344,  344,  344,  344,  344,  344,  344,  346,  344,
1784       344,  344,  667,  344,  348,  344,  349,  344,  424,  243,
1785       424,  243,  243,  243,  243,  243,  243,  892,  424,  243,
1786       424,  424,  243,  424,  425,  626,  626,  426,  626,  626,
1787       426,  911,  344,  344,  425,  784,  350,  425,  622,  622,
1788       622,  625,  625,  351,  625,  625,  352,  622,  622,  622,
1789       353, 1755,  354,  355,  359,  360,  243,  360,  359,  359,
1790       359,  359,  359,  359,  359,  361,  359,  359,  359,  362,
1791       359,  363,  359,  364,  359,  362,  362,  362,  362,  362,
1792       362,  362,  362,  362,  362,  362,  362,  362,  362,  362,
1793
1794       362,  362,  362,  362,  362,  362,  362,  362,  362,  359,
1795       359,  362,  362,  365,  366,  362,  362,  362,  362,  362,
1796       367,  362,  362,  368,  362,  362,  362,  369,  362,  370,
1797       371,  372,  362,  362,  362,  362,  362,  362,  377,  378,
1798       243,  378,  377,  377,  377,  377,  377,  377,  377,  379,
1799       377,  377,  377, 1759,  377,  381,  377,  382,  377,  424,
1800       243,  424,  424,  243,  424,  439,  243,  439, 1760,  439,
1801       243,  439,  243,  243,  243,  427,  626, 1761,  427, 1763,
1802       889,  440,  844,  377,  377,  440, 1767,  890,  278,  622,
1803       622,  622,  625,  891,  383,  377,  378,  243,  378,  377,
1804
1805       377,  377,  377,  377,  377,  377,  379,  377,  377,  377,
1806      1771,  377,  381,  377,  382,  377,  243,  243,  243,  439,
1807       243,  439,  439,  243,  439, 1775,  439,  243,  439,  439,
1808       243,  439,  278,  793,  667,  440, 1777,  889,  440,  813,
1809       377,  377,  441,  814,  890,  441,  667,  815,  792, 3293,
1810       896,  383,  388,  389,  243,  389,  388,  388,  388,  388,
1811       388,  388,  388,  390,  388,  388,  388, 1779,  388,  392,
1812       388,  393,  388,  451,  243,  451,  451,  243,  451,  462,
1813       243,  462,  882,  462,  243,  462, 1781,  669, 1782,  452,
1814      1030, 1094,  452,  883, 1517,  463,  884,  388,  388,  463,
1815
1816       394,  654,  395,  670,  906,  664, 1518, 1096,  396,  622,
1817       622,  622,  622,  622,  622,  397,  789, 1124,  398,  388,
1818       389,  243,  389,  388,  388,  388,  388,  388,  388,  388,
1819       390,  388,  388,  388, 1125,  388,  392,  388,  393,  388,
1820       473,  243,  473,  473,  243,  473,  488,  243,  488,  900,
1821       488,  243,  488, 1783, 1785,  790,  474, 1124, 1792,  474,
1822       901, 1796,  489,  884,  388,  388,  489,  394,  791,  395,
1823       792,  622,  622,  622, 1254,  396,  622,  622,  622,  622,
1824       622,  622,  397, 1797, 1399,  398,  404,  405,  243,  405,
1825       404,  404,  404,  404,  404,  404,  404,  406,  404,  404,
1826
1827       404, 1125,  404,  408,  404,  409,  404,  243,  243,  243,
1828       243,  243,  243,  499,  243,  499, 1799,  499,  243,  499,
1829       499,  243,  499,  490, 1622, 1809,  490,  626,  626,  500,
1830      1810,  404,  404,  500,  808,  819,  501,  410,  622,  622,
1831       622, 1811,  411,  625,  625,  622,  622,  622,  622,  622,
1832       622,  622,  622,  622,  412,  404,  405,  243,  405,  404,
1833       404,  404,  404,  404,  404,  404,  406,  404,  404,  404,
1834      1812,  404,  408,  404,  409,  404,  499,  243,  499,  243,
1835       243,  243,  243,  243,  243, 1813,  499,  243,  499,  499,
1836       243,  499,  501, 1814, 1815,  502,  626,  905,  502, 1816,
1837
1838       404,  404,  500,  830,  890,  500,  410,  622,  622,  622,
1839       891,  411,  625,  622,  622,  622,  622,  622,  622,  622,
1840       622,  622, 1817,  412,  416,  417,  243,  417,  416,  416,
1841       416,  416,  416,  416,  416,  418,  416,  416,  416, 1818,
1842       416,  420,  416,  421,  416,  499,  243,  499,  499,  243,
1843       499,  243,  243,  243,  882,  243,  243,  243,  499,  243,
1844       499,  503,  900, 1819,  503,  883, 1820,  426, 1028,  416,
1845       416,  426, 1821,  901,  501, 1823, 1028,  422,  416,  417,
1846       243,  417,  416,  416,  416,  416,  416,  416,  416,  418,
1847       416,  416,  416, 1824,  416,  420,  416,  421,  416,  499,
1848
1849       243,  499,  243,  243,  243,  243,  243,  243, 1825,  499,
1850       243,  499,  499,  243,  499,  501, 1440, 1563,  504, 1828,
1851      1831,  504, 1094,  416,  416,  503, 1832, 1833,  503, 1446,
1852      1446,  422,  428,  429,  243,  429,  428,  428,  428,  428,
1853       428,  428,  428,  430,  428,  428,  428, 1806,  428,  432,
1854       428,  433,  428,  499,  243,  499,  499,  243,  499,  518,
1855       243,  518, 1834,  518,  243,  518,  243,  243,  243,  505,
1856      1835, 1836,  505,  851, 1837,  519, 1840,  428,  428,  519,
1857       852,  434,  520,  622,  622,  622, 1849, 1854,  435,  625,
1858      1855,  436,  622,  622,  622,  622,  622,  622,  437,  428,
1859
1860       429,  243,  429,  428,  428,  428,  428,  428,  428,  428,
1861       430,  428,  428,  428, 1894,  428,  432,  428,  433,  428,
1862       243,  243,  243,  518,  243,  518,  518,  243,  518, 1895,
1863       518,  243,  518,  518,  243,  518,  520, 1901, 1907,  519,
1864       626, 1908,  519, 1909,  428,  428,  521,  859,  434,  521,
1865       622,  622,  622, 1910, 1913,  435,  625, 1919,  436,  622,
1866       622,  622,  865,  865,  865,  437,  442,  443,  243,  443,
1867       442,  442,  442,  442,  442,  442,  442,  444,  442,  442,
1868       442, 1921,  442,  446,  442,  447,  442,  531,  243,  531,
1869       531,  243,  531,  545,  243,  545, 1927,  545,  243,  545,
1870
1871       556,  243,  556,  532, 1931, 1934,  532,  905, 1935,  546,
1872      1937,  442,  442,  546,  890, 1938,  557,  448, 1939, 1940,
1873       896,  866,  449,  442,  443,  243,  443,  442,  442,  442,
1874       442,  442,  442,  442,  444,  442,  442,  442, 1941,  442,
1875       446,  442,  447,  442,  556,  243,  556,  243,  243,  243,
1876       243,  243,  243, 1942,  556,  243,  556,  556,  243,  556,
1877       557, 1943, 1945,  295,  889,  905,  295, 1951,  442,  442,
1878       557,  890,  890,  557,  448, 1952, 1953, 1029, 1029,  449,
1879       453,  454,  243,  454,  453,  453,  453,  453,  453,  453,
1880       453,  455,  453,  453,  453, 1955,  453,  457,  453,  458,
1881
1882       453,  556,  243,  556,  556,  243,  556,  568,  243,  568,
1883      1957,  568,  243,  568,  581,  243,  581,  558, 1209, 1965,
1884       558, 1970, 1971,  569, 1972,  453,  453,  569, 1210, 1974,
1885       582,  581,  243,  581, 1992, 1211,  459,  865,  865,  865,
1886      1993, 1098, 1113, 1113, 1113, 1994, 1997,  582, 1094,  460,
1887       453,  454,  243,  454,  453,  453,  453,  453,  453,  453,
1888       453,  455,  453,  453,  453, 1987,  453,  457,  453,  458,
1889       453,  243,  243,  243,  243,  243,  243,  581,  243,  581,
1890      1622,  581,  243,  581,  581,  243,  581,  278, 1975, 1995,
1891       278, 1998, 2000,  582, 1976,  453,  453,  582, 1977, 2001,
1892
1893       583,  581,  243,  581, 1978, 1996,  459, 1105, 1105, 1105,
1894      2002, 1106, 2003, 1989, 1107, 2004, 1622,  583, 2005,  460,
1895       464,  465,  243,  465,  464,  464,  464,  464,  464,  464,
1896       464,  466,  464,  464,  464, 2008,  464,  468,  464,  469,
1897       464,  595,  243,  595,  595,  243,  595,  243,  243,  243,
1898      2009,  243,  243,  243,  595,  243,  595,  596, 1988, 2010,
1899       596, 2011, 2014,  597, 2015,  464,  464,  597, 2016, 2012,
1900       596, 1134, 1134, 1134, 1634, 1634, 1634, 2017, 1113, 1113,
1901      1113,  470, 1134, 1134, 1134, 2013,  471,  464,  465,  243,
1902       465,  464,  464,  464,  464,  464,  464,  464,  466,  464,
1903
1904       464,  464, 2019,  464,  468,  464,  469,  464,  595,  243,
1905       595,  595,  243,  595,  595,  243,  595, 1641, 1641, 1641,
1906      1635,  873,  873,  873,  596, 2020, 2027,  598, 2029, 2031,
1907       598, 2055,  464,  464,  256,  257,  256,  257,  874,  258,
1908       750,  258, 1114, 1134, 1134, 1134, 1135, 2056,  470,  608,
1909       751,  608, 2057,  471,  475,  476,  243,  476,  475,  475,
1910       475,  475,  475,  475,  475,  477,  475,  475,  475, 2063,
1911       475,  479,  475,  480,  475,  620,  243,  620,  609,  645,
1912       609,  620,  243,  620, 2064,  647, 2068, 2069,  923,  923,
1913       923,  621,  654, 1109, 1109, 1109,  653,  621,  641,  475,
1914
1915       475, 2072,  481,  482,  483,  924, 2073, 1114,  665, 2077,
1916       484, 1111, 2080,  485, 1113, 1113, 1113, 1644, 1644, 1644,
1917       486,  475,  476,  243,  476,  475,  475,  475,  475,  475,
1918       475,  475,  477,  475,  475,  475,  666,  475,  479,  475,
1919       480,  475,  937,  937,  937,  939,  939,  939, 2084, 2085,
1920       667, 2086,  668, 2089,  653,  949,  949,  949, 2092,  938,
1921      2096, 2097,  940, 1156, 1156, 1156,  475,  475, 2098,  481,
1922       482,  483,  950, 1649, 1649, 1649, 2103,  484, 1135, 2105,
1923       485, 1158, 1637, 1637, 1637, 2106, 2107,  486,  491,  492,
1924       243,  492,  491,  491,  491,  491,  491,  491,  491,  493,
1925
1926       491,  491,  491, 2108,  491,  495,  491,  496,  491,  952,
1927       952,  952,  966,  966,  966,  973,  973,  973,  982,  982,
1928       982,  984,  984,  984, 2110, 2111,  953, 2114, 1638,  967,
1929      2116, 2119,  974,  491,  491,  983, 2135, 2136,  985,  993,
1930       993,  993, 1167, 1167, 1167, 2137, 1168, 2142, 2143, 1169,
1931      2146, 1655, 1655, 1655, 2147, 2148,  994,  497,  491,  492,
1932       243,  492,  491,  491,  491,  491,  491,  491,  491,  493,
1933       491,  491,  491, 2151,  491,  495,  491,  496,  491, 1001,
1934      1001, 1001, 1005, 1005, 1005, 1017, 1017, 1017, 1039, 1039,
1935      1039, 1045, 1045, 1045, 1094, 2160, 1002, 1656, 2144, 1006,
1936
1937      2153, 2161, 1018,  491,  491, 1040, 2145, 2149, 1046, 1061,
1938      1061, 1061, 1193, 1193, 1193, 2150, 1194, 2162, 1622, 1195,
1939      2163, 1658, 1658, 1658, 2166, 2168, 1062,  497,  506,  507,
1940       243,  507,  506,  506,  506,  506,  506,  506,  506,  508,
1941       506,  506,  506, 2169,  506,  510,  506,  511,  506, 1067,
1942      1067, 1067, 1073, 1073, 1073, 1081, 1081, 1081,  873,  873,
1943       873, 1149, 1149, 1149, 2155, 2170, 1068, 1638, 2174, 1074,
1944      2176, 2177, 1082,  506,  506,  874, 2178, 2181, 1150, 1622,
1945      2185,  512, 2186,  513, 2188, 2190,  514, 1659, 1659, 1659,
1946       515, 1634, 1634, 1634,  516,  506,  507,  243,  507,  506,
1947
1948       506,  506,  506,  506,  506,  506,  508,  506,  506,  506,
1949      2154,  506,  510,  506,  511,  506, 2201, 1109, 1109, 1109,
1950      1153, 1153, 1153, 2202, 1162, 1162, 1162, 3293, 3293, 3293,
1951      3293, 3293, 3293, 1979, 2203, 1111, 2207, 1154, 2208, 1980,
1952       506,  506, 1164, 1981, 3293, 2209, 2215, 3293,  512, 1982,
1953       513, 2216, 2217,  514, 1112, 2220, 2224,  515, 1637, 1637,
1954      1637,  516,  522,  523,  243,  523,  522,  522,  522,  522,
1955       522,  522,  522,  524,  522,  522,  522, 1151,  522,  526,
1956       522,  527,  522, 1156, 1156, 1156,  923,  923,  923, 1155,
1957      2225, 2226, 1152, 1162, 1162, 1162, 1171, 1171, 1171, 2227,
1958
1959      2230, 1158, 2231,  924, 1175, 1175, 1175,  522,  522, 2232,
1960      2233, 1164, 2234, 2246, 1173, 1196, 1196, 1196,  528, 1197,
1961      1159, 1176, 1198, 1212, 1212, 1212, 2247, 1213, 2251, 2254,
1962      1214,  529,  522,  523,  243,  523,  522,  522,  522,  522,
1963       522,  522,  522,  524,  522,  522,  522, 2255,  522,  526,
1964       522,  527,  522, 1171, 1171, 1171, 2261, 1165, 1179, 1179,
1965      1179, 1181, 1181, 1181, 1181, 1181, 1181, 3293, 3293, 3293,
1966      2266, 1173, 1185, 1185, 1185, 1180, 2268,  522,  522, 1183,
1967      2269, 2270, 1183, 2274, 3293, 1822, 1822, 1822,  528, 1186,
1968      1216, 1216, 1216, 2275, 1217, 2276, 2277, 1218, 2278, 2279,
1969
1970      1174,  529,  533,  534,  243,  534,  533,  533,  533,  533,
1971       533,  533,  533,  535,  533,  533,  533, 1177,  533,  537,
1972       533,  538,  533, 1187, 1187, 1187, 1189, 1189, 1189,  937,
1973       937,  937, 1178, 2280, 2281, 1184, 1189, 1189, 1189, 2282,
1974      1188, 1205, 1205, 1205, 1191, 2283,  938,  533,  533,  939,
1975       939,  939, 2300, 2301, 1191, 1622,  539, 2302,  540, 1207,
1976      2304, 2306,  541, 1641, 1641, 1641,  940,  542,  543,  533,
1977       534,  243,  534,  533,  533,  533,  533,  533,  533,  533,
1978       535,  533,  533,  533, 2307,  533,  537,  533,  538,  533,
1979      2309, 1199, 1199, 1199, 2310,  949,  949,  949, 2286, 3293,
1980
1981      3293, 3293, 3293, 3293, 3293, 2311, 2312, 1192, 1200, 3293,
1982      3293, 3293,  950, 2313,  533,  533, 3293, 2314, 2326, 3293,
1983      1234, 1234, 1234,  539, 1235,  540, 3293, 1236, 1622,  541,
1984      1658, 1658, 1658, 2327,  542,  543,  547,  548,  243,  548,
1985       547,  547,  547,  547,  547,  547,  547,  549,  547,  547,
1986       547, 1201,  547,  551,  547,  552,  547, 1202, 2332, 2333,
1987      1203, 2339, 2340,  952,  952,  952, 3293, 3293, 3293, 1219,
1988      1219, 1219, 1230, 1230, 1230, 2287, 1669, 1205, 1205, 1205,
1989       953,  547,  547, 3293, 2341, 2357, 1220,  553, 2328, 2358,
1990      1232, 2359, 1244, 1244, 1244, 1207, 1245, 2375, 2329, 1246,
1991
1992      2376, 2377,  554,  547,  548,  243,  548,  547,  547,  547,
1993       547,  547,  547,  547,  549,  547,  547,  547, 1204,  547,
1994       551,  547,  552,  547, 1208, 2380, 2382, 1230, 1230, 1230,
1995       966,  966,  966, 1237, 1237, 1237, 2383, 1237, 1237, 1237,
1996       973,  973,  973, 2384, 2385, 1232, 2386,  967,  547,  547,
1997      2387, 1239, 2388, 2389,  553, 1239, 2390,  974, 1256, 1256,
1998      1256, 2391, 1257, 2392, 2393, 1258, 1644, 1644, 1644,  554,
1999       559,  560,  243,  560,  559,  559,  559,  559,  559,  559,
2000       559,  561,  559,  559,  559, 1233,  559,  563,  559,  564,
2001       559, 1250, 1250, 1250, 1250, 1250, 1250, 2398, 1240, 2399,
2002
2003       982,  982,  982, 2402,  984,  984,  984, 2288, 2289, 1252,
2004      2290, 2403, 1252, 2404, 2405,  559,  559,  983, 2291, 2408,
2005       565,  985, 1649, 1649, 1649, 2292,  566,  559,  560,  243,
2006       560,  559,  559,  559,  559,  559,  559,  559,  561,  559,
2007       559,  559, 1622,  559,  563,  559,  564,  559, 1622, 1259,
2008      1259, 1259, 2409, 1260, 2410, 1253, 1261, 1262, 1262, 1262,
2009      1262, 1262, 1262, 1267, 1267, 1267, 2411, 1272, 1272, 1272,
2010      2413, 1273,  559,  559, 1274, 1264, 2414,  565, 1264, 2397,
2011      2396, 1269, 2415,  566,  570,  571,  243,  571,  570,  570,
2012       570,  570,  570,  570,  570,  572,  570,  570,  570, 2416,
2013
2014       570,  574,  570,  575,  570, 2417, 2419, 1267, 1267, 1267,
2015       993,  993,  993, 1278, 1278, 1278, 2420, 2400, 1278, 1278,
2016      1278, 1265, 1001, 1001, 1001, 1269, 2401,  994, 2406,  570,
2017       570, 1280,  576, 2421,  577, 2431, 1280, 2407, 2432, 1002,
2018       578, 1283, 1283, 1283, 2433, 1284, 2434, 2438, 1285, 2439,
2019      2444,  579,  570,  571,  243,  571,  570,  570,  570,  570,
2020       570,  570,  570,  572,  570,  570,  570, 1270,  570,  574,
2021       570,  575,  570, 1281, 1286, 1286, 1286, 1005, 1005, 1005,
2022      2445, 1294, 1294, 1294, 2452, 2453, 1286, 1286, 1286, 1290,
2023      1290, 1290, 1288, 1291, 1006, 2454, 1292,  570,  570, 1296,
2024
2025       576, 2466,  577, 2467, 1288, 1308, 1308, 1308,  578, 1309,
2026      2483, 2484, 1310, 1829, 1829, 1829, 1655, 1655, 1655,  579,
2027       584,  585,  243,  585,  584,  584,  584,  584,  584,  584,
2028       584,  586,  584,  584,  584, 2440,  584,  588,  584,  589,
2029       584, 1289, 1300, 1300, 1300, 1017, 1017, 1017, 2441, 1294,
2030      1294, 1294, 2485, 1300, 1300, 1300, 1311, 1311, 1311, 1830,
2031      1302, 2442, 1018, 2486, 2488,  584,  584, 1296, 2489, 2490,
2032       590, 1302, 2491, 1312, 2443, 2492,  591, 1338, 1338, 1338,
2033       592, 1339, 2493, 2494, 1340, 2495,  593,  584,  585,  243,
2034       585,  584,  584,  584,  584,  584,  584,  584,  586,  584,
2035
2036       584,  584, 2496,  584,  588,  584,  589,  584, 2497, 2498,
2037      1297, 1315, 1315, 1315, 1303, 1658, 1658, 1658, 1315, 1315,
2038      1315, 1321, 1321, 1321, 1321, 1321, 1321, 2499, 2504, 1317,
2039      2505, 2506,  584,  584, 2507, 2508, 1317,  590, 2509, 1323,
2040      1622, 1094, 1323,  591, 1347, 1347, 1347,  592, 1348, 2510,
2041      2511, 1349, 2512,  593,  599,  600,  243,  600,  599,  599,
2042       599,  599,  599,  599,  599,  601,  599,  599,  599, 1318,
2043       599,  603,  599,  604,  599, 1333, 1333, 1333, 1333, 1333,
2044      1333, 2501, 1324, 2503, 1039, 1039, 1039, 1342, 1342, 1342,
2045      1342, 1342, 1342, 1335, 2513, 2514, 1335, 2515, 2516,  599,
2046
2047       599, 1040, 1372, 1372, 1372, 1344, 1373,  605, 1344, 1374,
2048       606, 2517, 1826, 1826, 1826, 2519, 2520,  607,  599,  600,
2049       243,  600,  599,  599,  599,  599,  599,  599,  599,  601,
2050       599,  599,  599, 2521,  599,  603,  599,  604,  599, 1045,
2051      1045, 1045, 1336, 1350, 1350, 1350, 2522, 2523, 1353, 1353,
2052      1353, 1358, 1358, 1358, 1345, 2524, 1046, 1358, 1358, 1358,
2053      1351, 2529, 2530,  599,  599, 1354, 1381, 1381, 1381, 1360,
2054      1382,  605, 2533, 1383,  606, 1360, 1827, 1659, 1659, 1659,
2055      2534,  607,  610,  611,  243,  611,  610,  610,  610,  610,
2056       610,  610,  610,  612,  610,  610,  610, 2535,  610,  614,
2057
2058       610,  615,  610, 2538, 1361, 1362, 1362, 1362, 1364, 1364,
2059      1364, 1622, 3293, 3293, 3293, 1367, 1367, 1367, 1367, 1367,
2060      1367, 2541, 1363, 2542, 2536, 1365, 2550,  610,  610, 3293,
2061      1061, 1061, 1061, 1369,  616, 2537, 1369, 1390, 1390, 1390,
2062       617, 1391, 2551, 2552, 1392, 2563, 2586, 1062, 2502,  618,
2063       610,  611,  243,  611,  610,  610,  610,  610,  610,  610,
2064       610,  612,  610,  610,  610, 2587,  610,  614,  610,  615,
2065       610, 1366, 1375, 1375, 1375, 1375, 1375, 1375, 2539, 1370,
2066      1067, 1067, 1067, 1385, 1385, 1385, 1385, 1385, 1385, 2540,
2067      1377, 2592, 2593, 1377, 2594,  610,  610, 1068, 1073, 1073,
2068
2069      1073, 1387,  616, 2595, 1387, 1395, 1395, 1395,  617, 1395,
2070      1395, 1395, 1081, 1081, 1081, 1074, 2596,  618,  626, 1841,
2071      1841, 1841, 2597, 1397, 2598,  641, 2599, 1397, 2600, 1082,
2072      1406, 1406, 1406, 2601,  625,  642, 1378, 1401, 1401, 1401,
2073      2606, 1402, 2607, 2608, 1403, 1904, 1904, 1904, 1408, 1406,
2074      1406, 1406, 1388, 1413, 1413, 1413, 2556, 1094, 1413, 1413,
2075      1413, 2609,  643,  644,  645, 1842, 2557, 1408, 1622,  646,
2076       647, 1415, 2558,  648,  649, 1398, 1415,  650, 2610,  651,
2077       652,  653,  626, 1105, 1105, 1105, 2603, 1106, 2611, 2612,
2078      1107, 1109, 1109, 1109, 1109, 1109, 1109, 2613,  625,  655,
2079
2080      1424, 1424, 1424, 1149, 1149, 1149, 1153, 1153, 1153, 1111,
2081      2604, 2575, 1111, 1409, 1156, 1156, 1156, 1622, 1425, 2614,
2082      1150, 2576, 1416, 1154, 2577, 2615,  643,  656,  657, 1999,
2083      1999, 1999, 1158,  658,  659, 2616, 2617,  660,  649, 2578,
2084      2618,  661, 2620,  662,  663,  664, 1461, 1461, 1461, 2579,
2085      1462, 2621, 2580, 1463, 1466, 1466, 1466, 2622, 1467, 2605,
2086      2624, 1468, 1156, 1156, 1156, 1156, 1156, 1156, 1162, 1162,
2087      1162, 1162, 1162, 1162, 1162, 1162, 1162, 1167, 1167, 1167,
2088      1158, 1168, 2625, 1158, 1169, 2631, 1164, 2639, 2640, 1164,
2089      2641, 2642, 1164, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
2090
2091      1171, 1171, 1175, 1175, 1175, 1477, 1477, 1477, 2643, 1478,
2092      2644, 1173, 1479, 2645, 1173, 2646, 2647, 1173, 2651, 1176,
2093      1179, 1179, 1179, 2654, 1482, 1482, 1482, 1473, 1483, 1470,
2094      2655, 1484, 1181, 1181, 1181, 2656, 2657, 1180, 1181, 1181,
2095      1181, 1181, 1181, 1181, 1185, 1185, 1185, 2658, 1476, 2659,
2096      1183, 1486, 1486, 1486, 2660, 1487, 1183, 2663, 1488, 1183,
2097      2671, 1186, 1187, 1187, 1187, 1489, 1489, 1489, 2672, 1490,
2098      2675, 2676, 1491, 1189, 1189, 1189, 1189, 1189, 1189, 1188,
2099      1189, 1189, 1189, 1193, 1193, 1193, 2694, 1194, 2667, 2695,
2100      1195, 1191, 2696, 2697, 1191, 1196, 1196, 1196, 1191, 1197,
2101
2102      2669, 2668, 1198, 1485, 1199, 1199, 1199, 1493, 1493, 1493,
2103      2698, 1494, 2699, 2670, 1495, 1205, 1205, 1205, 1205, 1205,
2104      1205, 1200, 1205, 1205, 1205, 1212, 1212, 1212, 2673, 1213,
2105      2700, 2701, 1214, 1207, 2707, 2677, 1207, 1504, 1504, 1504,
2106      1207, 2674, 1492, 1216, 1216, 1216, 2708, 1217, 2678, 2709,
2107      1218, 1219, 1219, 1219, 1505, 1506, 1506, 1506, 2710, 1507,
2108      1094, 2711, 1508, 1230, 1230, 1230, 2293, 2294, 1220, 2295,
2109      1500, 1230, 1230, 1230, 1230, 1230, 1230, 2296, 1234, 1234,
2110      1234, 1232, 1235, 2712, 2297, 1236, 1237, 1237, 1237, 1232,
2111      2713, 2714, 1232, 1237, 1237, 1237, 1237, 1237, 1237, 1523,
2112
2113      1523, 1523, 2715, 2716, 1239, 1244, 1244, 1244, 2703, 1245,
2114      2717, 1239, 1246, 1622, 1239, 2718, 1524, 1250, 1250, 1250,
2115      1250, 1250, 1250, 2559, 1250, 1250, 1250, 1530, 1530, 1530,
2116      1256, 1256, 1256, 2560, 1257, 1252, 2719, 1258, 1252, 2561,
2117      2721, 1519, 1252, 2722, 1531, 1259, 1259, 1259, 2704, 1260,
2118      2724, 2732, 1261, 1262, 1262, 1262, 1520, 1262, 1262, 1262,
2119      1262, 1262, 1262, 1533, 1533, 1533, 1267, 1267, 1267, 2725,
2120      2739, 1264, 1267, 1267, 1267, 1264, 2740, 2741, 1264, 2726,
2121      1534, 1267, 1267, 1267, 1269, 1278, 1278, 1278, 2742, 1528,
2122      1269, 1272, 1272, 1272, 2743, 1273, 2744, 2745, 1274, 1269,
2123
2124      1278, 1278, 1278, 1280, 1278, 1278, 1278, 1283, 1283, 1283,
2125      2746, 1284, 2747, 2727, 1285, 1286, 1286, 1286, 1280, 1286,
2126      1286, 1286, 1280, 2728, 2748, 1532, 1286, 1286, 1286, 2752,
2127      1535, 2753, 2754, 1288, 1290, 1290, 1290, 1288, 1291, 2755,
2128      2756, 1292, 2757, 2758, 1288, 1294, 1294, 1294, 1294, 1294,
2129      1294, 1294, 1294, 1294, 1545, 1545, 1545, 3293, 3293, 3293,
2130      1300, 1300, 1300, 1296, 1540, 2759, 1296, 2760, 2761, 1296,
2131      2762, 1546, 2763, 2764, 3293, 1300, 1300, 1300, 1302, 1300,
2132      1300, 1300, 2765, 1308, 1308, 1308, 1542, 1309, 2766, 2767,
2133      1310, 2768, 2769, 1302, 1311, 1311, 1311, 1302, 1553, 1553,
2134
2135      1553, 1544, 1554, 2770, 1547, 1555, 1315, 1315, 1315, 2771,
2136      2785, 1312, 1315, 1315, 1315, 1315, 1315, 1315, 1321, 1321,
2137      1321, 1321, 1321, 1321, 1317, 1321, 1321, 1321, 2774, 2786,
2138      1317, 2787, 2788, 1317, 2776, 2789, 1323, 2790, 2775, 1323,
2139      1566, 1566, 1566, 1323, 2777, 2791, 1548, 1333, 1333, 1333,
2140      1333, 1333, 1333, 1333, 1333, 1333, 2792, 1567, 1094, 2800,
2141      1338, 1338, 1338, 2801, 1339, 1335, 1558, 1340, 1335, 2802,
2142      2803, 1335, 1561, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
2143      1342, 1342, 1347, 1347, 1347, 2804, 1348, 2805, 2806, 1349,
2144      2807, 1344, 2794, 2812, 1344, 2813, 2814, 1344, 1350, 1350,
2145
2146      1350, 1576, 1576, 1576, 2815, 1577, 2817, 2820, 1578, 1579,
2147      1579, 1579, 2821, 2822, 1571, 1351, 1353, 1353, 1353, 2823,
2148      1581, 1581, 1581, 2824, 1582, 2825, 1580, 1583, 1585, 1585,
2149      1585, 2826, 2827, 1354, 1358, 1358, 1358, 1358, 1358, 1358,
2150      1574, 1358, 1358, 1358, 2832, 1586, 1362, 1362, 1362, 1589,
2151      1589, 1589, 1360, 1590, 2833, 1360, 1591, 2834, 2835, 1360,
2152      1364, 1364, 1364, 1363, 1592, 1592, 1592, 2836, 1593, 2837,
2153      2838, 1594, 1367, 1367, 1367, 2839, 2840, 1365, 1367, 1367,
2154      1367, 1367, 1367, 1367, 1372, 1372, 1372, 2841, 1373, 2842,
2155      1369, 1374, 1375, 1375, 1375, 2843, 1369, 2844, 2845, 1369,
2156
2157      2846, 1588, 1375, 1375, 1375, 1375, 1375, 1375, 2847, 2848,
2158      1377, 1381, 1381, 1381, 2852, 1382, 2853, 2854, 1383, 2855,
2159      1377, 2858, 2859, 1377, 1385, 1385, 1385, 1385, 1385, 1385,
2160      2860, 1385, 1385, 1385, 1390, 1390, 1390, 2861, 1391, 2862,
2161      2863, 1392, 1387, 1094, 2871, 1387, 2872, 2873, 1596, 1387,
2162      1605, 1605, 1605, 1395, 1395, 1395, 1395, 1395, 1395, 1395,
2163      1395, 1395, 1609, 1609, 1609, 2874, 2875, 1606, 3293, 3293,
2164      3293, 1397, 1598, 2876, 1397, 2877, 2878, 1397, 2879, 1610,
2165      1401, 1401, 1401, 2880, 1402, 3293, 2865, 1403, 1406, 1406,
2166      1406, 2883, 1602, 1406, 1406, 1406, 1406, 1406, 1406, 1615,
2167
2168      1615, 1615, 2889, 1413, 1413, 1413, 1408, 1413, 1413, 1413,
2169      2890, 1408, 2891, 2892, 1408, 2893, 1616, 1413, 1413, 1413,
2170      1607, 1415, 1621, 1621, 1621, 1415, 1424, 1424, 1424, 1611,
2171      1461, 1461, 1461, 2900, 1462, 1415, 2901, 1463, 2902, 2903,
2172      1622, 1623, 2904, 1613, 1425, 1466, 1466, 1466, 2905, 1467,
2173      2906, 2907, 1468, 1156, 1156, 1156, 1670, 1670, 1670, 1162,
2174      1162, 1162, 2908, 2909, 1618, 1171, 1171, 1171, 1477, 1477,
2175      1477, 1158, 1478, 1671, 2910, 1479, 2911, 1164, 1482, 1482,
2176      1482, 2912, 1483, 1173, 2913, 1484, 1181, 1181, 1181, 1486,
2177      1486, 1486, 2914, 1487, 2915, 2916, 1488, 2917, 1489, 1489,
2178
2179      1489, 2918, 1490, 2919, 1183, 1491, 1189, 1189, 1189, 1493,
2180      1493, 1493, 2920, 1494, 1668, 2921, 1495, 1682, 1682, 1682,
2181      2922, 2923, 1675, 2924, 1191, 2925, 1672, 1205, 1205, 1205,
2182      1686, 1686, 1686, 1678, 1683, 3293, 3293, 3293, 3293, 3293,
2183      3293, 1504, 1504, 1504, 2926, 1207, 2931, 1687, 3293, 3293,
2184      3293, 2939, 3293, 1679, 1094, 3293, 2931, 2934, 1505, 1690,
2185      1690, 1690, 2940, 1691, 2944, 3293, 1692, 1506, 1506, 1506,
2186      2932, 1507, 2945, 2946, 1508, 3293, 3293, 3293, 3293, 3293,
2187      3293, 2947, 1685, 2948, 2956, 1689, 3293, 3293, 3293, 3293,
2188      3293, 3293, 3293, 2957, 2958, 3293, 3293, 3293, 3293, 1693,
2189
2190      2929, 1688, 2963, 3293, 2964, 2936, 3293, 1699, 1699, 1699,
2191      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
2192      2949, 2965, 1694, 2951, 1700, 2966, 2937, 3293, 1230, 1230,
2193      1230, 3293, 2950, 1696, 3293, 2952, 1237, 1237, 1237, 2938,
2194      1523, 1523, 1523, 1708, 1708, 1708, 1232, 1709, 1695, 2967,
2195      1710, 2968, 2969, 1697, 1239, 2970, 1698, 1524, 1712, 1712,
2196      1712, 1250, 1250, 1250, 1530, 1530, 1530, 1717, 1717, 1717,
2197      2971, 1718, 2972, 2973, 1719, 1713, 1702, 2959, 1703, 1252,
2198      1701, 1531, 1262, 1262, 1262, 1533, 1533, 1533, 1705, 2960,
2199      1721, 1721, 1721, 1704, 1722, 2974, 2975, 1723, 2941, 2978,
2200
2201      1264, 1094, 1534, 1267, 1267, 1267, 1278, 1278, 1278, 2931,
2202      1286, 1286, 1286, 1732, 1732, 1732, 2942, 1294, 1294, 1294,
2203      2931, 1269, 2978, 2932, 1280, 1622, 1623, 1715, 1288, 2943,
2204      1733, 2934, 1545, 1545, 1545, 1296, 1735, 1735, 1735, 2961,
2205      1736, 2981, 2976, 1737, 1300, 1300, 1300, 2982, 1720, 1546,
2206      2985, 2962, 1741, 1741, 1741, 2986, 1745, 1745, 1745, 2993,
2207      2987, 1724, 1302, 1729, 1315, 1315, 1315, 1731, 1734, 1742,
2208      1553, 1553, 1553, 1746, 1554, 2988, 2983, 1555, 1321, 1321,
2209      1321, 2996, 1317, 1566, 1566, 1566, 1756, 1756, 1756, 2991,
2210      1757, 2997, 2998, 1758, 2984, 2994, 1323, 1333, 1333, 1333,
2211
2212      1567, 1764, 1764, 1764, 1739, 1342, 1342, 1342, 2992, 1576,
2213      1576, 1576, 3001, 1577, 2995, 1335, 1578, 3003, 1765, 1579,
2214      1579, 1579, 3006, 1344, 3009, 1768, 1768, 1768, 1748, 1769,
2215      3010, 3002, 1770, 1581, 1581, 1581, 1580, 1582, 3011, 3012,
2216      1583, 1585, 1585, 1585, 1751, 3004, 1762, 1772, 1772, 1772,
2217      3013, 1773, 3014, 2978, 1774, 1358, 1358, 1358, 1586, 1589,
2218      1589, 1589, 3016, 1590, 3005, 2978, 1591, 1766, 1592, 1592,
2219      1592, 3017, 1593, 1360, 3018, 1594, 1367, 1367, 1367, 1375,
2220      1375, 1375, 1385, 1385, 1385, 1786, 1786, 1786, 3019, 1605,
2221      1605, 1605, 3020, 3021, 1369, 3022, 3026, 1377, 3027, 3028,
2222
2223      1387, 3029, 1787, 3030, 3031, 1776, 1606, 1788, 1788, 1788,
2224      3032, 1789, 3033, 3037, 1790, 1395, 1395, 1395, 1609, 1609,
2225      1609, 1793, 1793, 1793, 3038, 1794, 3039, 3040, 1795, 1406,
2226      1406, 1406, 3041, 1397, 3042, 1610, 1615, 1615, 1615, 1803,
2227      1803, 1803, 1778, 3046, 3047, 1780, 1784, 1408, 1800, 1800,
2228      1800, 3048, 1801, 1616, 3049, 1802, 1804, 1413, 1413, 1413,
2229      3050, 3051, 1621, 1621, 1621, 1838, 1838, 1838, 1826, 1826,
2230      1826, 1838, 1838, 1838, 3053, 1415, 3054, 3055, 1798, 1791,
2231      1622, 1843, 1843, 1843, 1845, 1845, 1845, 3293, 3293, 3293,
2232      1156, 1156, 1156, 1670, 1670, 1670, 3056, 3057, 1844, 3058,
2233
2234      3059, 1846, 3064, 3065, 3293, 3060, 1805, 3062, 1158, 3066,
2235      1671, 3067, 3068, 1807, 1850, 1850, 1850, 3061, 1851, 3063,
2236      3069, 1852, 1162, 1162, 1162, 1171, 1171, 1171, 3070, 1839,
2237      1808, 3071, 1839, 3072, 3073, 1827, 1857, 1857, 1857, 3074,
2238      1164, 3075, 3076, 1173, 1859, 1859, 1859, 1181, 1181, 1181,
2239      3077, 1847, 3078, 1858, 1189, 1189, 1189, 1848, 1863, 1863,
2240      1863, 1860, 3293, 3293, 3293, 1183, 1682, 1682, 1682, 1205,
2241      1205, 1205, 1191, 1856, 3079, 1864, 1869, 1869, 1869, 3293,
2242      3081, 1853, 3082, 1683, 1866, 1866, 1866, 1207, 1867, 3083,
2243      3084, 1868, 1094, 1870, 1686, 1686, 1686, 1872, 1872, 1872,
2244
2245      3085, 1873, 3086, 3087, 1874, 1875, 1875, 1875, 3293, 3293,
2246      3293, 1687, 1861, 3088, 1690, 1690, 1690, 3080, 1691, 1862,
2247      1865, 1692, 1876, 3089, 3090, 3293, 3293, 3293, 3293, 1871,
2248      3293, 3293, 3293, 1880, 1880, 1880, 3293, 3293, 3293, 3293,
2249      3293, 3293, 3091, 3293, 3293, 3293, 3293, 3293, 3092, 3093,
2250      1881, 3094, 3095, 3293, 3096, 3097, 3293, 1699, 1699, 1699,
2251      3098, 3293, 1885, 1885, 1885, 3099, 1886, 3100, 3101, 1887,
2252      3102, 3103, 1877, 3104, 1700, 1888, 1888, 1888, 3106, 1879,
2253      3107, 3293, 3293, 3293, 3108, 1883, 3293, 3293, 3293, 3109,
2254      1878, 1094, 1889, 3110, 1882, 3111, 3112, 1884, 3293, 1230,
2255
2256      1230, 1230, 3113, 3293, 1237, 1237, 1237, 1708, 1708, 1708,
2257      3105, 1709, 3114, 3115, 1710, 3116, 3117, 1232, 1896, 1896,
2258      1896, 3118, 1239, 1712, 1712, 1712, 3119, 3120, 1890, 1898,
2259      1898, 1898, 3121, 1899, 3122, 1897, 1900, 3123, 3124, 1891,
2260      1713, 3125, 1902, 1902, 1902, 1717, 1717, 1717, 3126, 1718,
2261      3127, 3129, 1719, 1262, 1262, 1262, 1267, 1267, 1267, 1893,
2262      1903, 3130, 1721, 1721, 1721, 1892, 1722, 1094, 3131, 1723,
2263      3132, 1264, 3133, 3134, 1269, 1911, 1911, 1911, 1286, 1286,
2264      1286, 1732, 1732, 1732, 1915, 1915, 1915, 3128, 1916, 3135,
2265      3136, 1917, 3137, 1912, 3138, 3139, 1288, 3140, 1733, 1905,
2266
2267      1294, 1294, 1294, 1735, 1735, 1735, 3141, 1736, 3142, 3143,
2268      1737, 1300, 1300, 1300, 1741, 1741, 1741, 3144, 1296, 1925,
2269      1925, 1925, 3145, 1906, 1914, 3146, 1922, 1922, 1922, 1302,
2270      1923, 1742, 3147, 1924, 3148, 3150, 1926, 1745, 1745, 1745,
2271      1928, 1928, 1928, 3151, 1929, 3152, 3153, 1930, 1932, 1932,
2272      1932, 1321, 1321, 1321, 1746, 1756, 1756, 1756, 1918, 1757,
2273      3154, 1094, 1758, 1333, 1333, 1333, 1933, 3149, 3155, 1323,
2274      1764, 1764, 1764, 1949, 1949, 1949, 3156, 1920, 1946, 1946,
2275      1946, 1335, 1947, 3157, 3158, 1948, 3159, 1765, 1768, 1768,
2276      1768, 1950, 1769, 3160, 3161, 1770, 3162, 1772, 1772, 1772,
2277
2278      3163, 1773, 3165, 1936, 1774, 1358, 1358, 1358, 1367, 1367,
2279      1367, 1375, 1375, 1375, 1944, 1959, 1959, 1959, 3293, 3293,
2280      3293, 3166, 3167, 1360, 3168, 3169, 1369, 3170, 1094, 1377,
2281      3171, 3172, 1960, 3174, 3175, 3293, 1962, 1962, 1962, 1385,
2282      1385, 1385, 3164, 1786, 1786, 1786, 3176, 1966, 1966, 1966,
2283      3177, 1967, 3178, 1963, 1968, 3179, 3180, 1387, 3181, 1956,
2284      1787, 3184, 1958, 1788, 1788, 1788, 1954, 1789, 3185, 3186,
2285      1790, 1395, 1395, 1395, 1793, 1793, 1793, 3187, 1794, 3188,
2286      3189, 1795, 1094, 3198, 1961, 3290, 1964, 1094, 1094, 1397,
2287      1406, 1406, 1406, 1800, 1800, 1800, 1094, 1801, 1665, 1094,
2288
2289      1802, 1664, 1803, 1803, 1803, 1983, 1983, 1983, 1408, 1984,
2290      1094, 1663, 1985, 1413, 1413, 1413, 1094, 1094, 1969, 1804,
2291      1990, 1990, 1990, 1822, 1822, 1822, 2006, 2006, 2006, 1094,
2292      3192, 1415, 1826, 1826, 1826, 3190, 3193, 1991, 2007, 2007,
2293      2007, 1973, 1829, 1829, 1829, 1838, 1838, 1838, 2018, 2018,
2294      2018, 1841, 1841, 1841, 1843, 1843, 1843, 3204, 2021, 2021,
2295      2021, 3196, 2022, 3205, 1986, 2023, 1845, 1845, 1845, 1094,
2296      1094, 1844, 2024, 2024, 2024, 1094, 2025, 3194, 1094, 2026,
2297      1156, 1156, 1156, 1846, 1850, 1850, 1850, 1094, 1851, 1094,
2298      1662, 1852, 1162, 1162, 1162, 2032, 2032, 2032, 1158, 1171,
2299
2300      1171, 1171, 1857, 1857, 1857, 3191, 1094, 2035, 2035, 2035,
2301      1164, 2036, 2033, 1094, 2037, 3206, 3208, 1173, 3195, 1858,
2302      1859, 1859, 1859, 2038, 2038, 2038, 3207, 2039, 3209, 1661,
2303      2040, 1181, 1181, 1181, 1189, 1189, 1189, 1860, 1863, 1863,
2304      1863, 3199, 3218, 2030, 1094, 1094, 2028, 3222, 3200, 1183,
2305      3197, 1094, 1191, 1094, 3201, 1864, 1094, 2043, 2043, 2043,
2306      2034, 2044, 1094, 3202, 2045, 2046, 2046, 2046, 1866, 1866,
2307      1866, 1094, 1867, 3242, 1094, 1868, 1869, 1869, 1869, 2048,
2308      2048, 2048, 2047, 2049, 1094, 3216, 2050, 1205, 1205, 1205,
2309      1872, 1872, 1872, 1870, 1873, 3203, 2041, 1874, 1094, 2042,
2310
2311      1875, 1875, 1875, 1094, 1094, 1207, 2052, 2052, 2052, 3210,
2312      2053, 1660, 1094, 2054, 1880, 1880, 1880, 1876, 2058, 2058,
2313      2058, 1094, 2059, 1094, 1657, 2060, 2061, 2061, 2061, 1654,
2314      3212, 1881, 1885, 1885, 1885, 3214, 1886, 1094, 2051, 1887,
2315      1888, 1888, 1888, 2062, 2065, 2065, 2065, 3211, 2066, 1653,
2316      3213, 2067, 1230, 1230, 1230, 3217, 3220, 1889, 1237, 1237,
2317      1237, 1896, 1896, 1896, 2074, 2074, 2074, 1094, 2075, 1094,
2318      1232, 2076, 3221, 1898, 1898, 1898, 1239, 1899, 1897, 1094,
2319      1900, 1902, 1902, 1902, 1904, 1904, 1904, 1262, 1262, 1262,
2320      1267, 1267, 1267, 2081, 2081, 2081, 1911, 1911, 1911, 1903,
2321
2322      1286, 1286, 1286, 2070, 3215, 1264, 3234, 1094, 1269, 1094,
2323      2082, 2071, 3219, 3223, 1912, 1915, 1915, 1915, 1288, 1916,
2324      3290, 1094, 1917, 1294, 1294, 1294, 2090, 2090, 2090, 1922,
2325      1922, 1922, 1652, 1923, 1094, 1651, 1924, 1650, 1648, 2083,
2326      2079, 1296, 1094, 1094, 2091, 2078, 1925, 1925, 1925, 2087,
2327      2093, 2093, 2093, 3226, 2094, 3227, 1647, 2095, 1928, 1928,
2328      1928, 1094, 1929, 1926, 1094, 1930, 1932, 1932, 1932, 2088,
2329      2099, 2099, 2099, 1321, 1321, 1321, 2102, 2102, 2102, 2104,
2330      2104, 2104, 1094, 1094, 1933, 3224, 3225, 2100, 1333, 1333,
2331      1333, 1323, 1946, 1946, 1946, 1094, 1947, 3230, 3235, 1948,
2332
2333      1949, 1949, 1949, 2112, 2112, 2112, 1335, 1358, 1358, 1358,
2334      2117, 2117, 2117, 1375, 1375, 1375, 3231, 3228, 1950, 1094,
2335      2113, 1959, 1959, 1959, 3232, 1360, 1094, 1094, 2118, 1646,
2336      3229, 1377, 3233, 1094, 2101, 2121, 2121, 2121, 1960, 2122,
2337      1094, 1094, 2123, 2124, 2124, 2124, 1962, 1962, 1962, 3244,
2338      2127, 2127, 2127, 2109, 2128, 3243, 1094, 2129, 1094, 1094,
2339      2125, 3236, 1094, 1963, 3240, 1645, 2115, 1385, 1385, 1385,
2340      2131, 2131, 2131, 1094, 1966, 1966, 1966, 2120, 1967, 3245,
2341      1094, 1968, 1395, 1395, 1395, 1387, 3238, 2132, 1094, 2126,
2342      2138, 2138, 2138, 2140, 2140, 2140, 3241, 1983, 1983, 1983,
2343
2344      1397, 1984, 3239, 1643, 1985, 1413, 1413, 1413, 2139, 3252,
2345      2141, 1990, 1990, 1990, 3246, 3237, 2133, 2156, 2156, 2156,
2346      2130, 2157, 1642, 1415, 2158, 2159, 2159, 2159, 1991, 2164,
2347      2164, 2164, 2165, 2165, 2165, 2134, 1999, 1999, 1999, 2167,
2348      2167, 2167, 2171, 2171, 2171, 2006, 2006, 2006, 2007, 2007,
2349      2007, 2152, 2172, 2172, 2172, 2175, 2175, 2175, 2179, 2179,
2350      2179, 2180, 2180, 2180, 2182, 2182, 2182, 2018, 2018, 2018,
2351      2183, 2183, 2183, 2021, 2021, 2021, 1094, 2022, 1640, 3250,
2352      2023, 2024, 2024, 2024, 1094, 2025, 1094, 1094, 2026, 1156,
2353      1156, 1156, 1162, 1162, 1162, 2032, 2032, 2032, 2173, 2191,
2354
2355      2191, 2191, 1094, 2192, 1094, 1639, 2193, 1158, 1636, 1094,
2356      1164, 1633, 2033, 1171, 1171, 1171, 2184, 2035, 2035, 2035,
2357      3247, 2036, 3248, 1632, 2037, 2038, 2038, 2038, 1094, 2039,
2358      3249, 1173, 2040, 1181, 1181, 1181, 1189, 1189, 1189, 3251,
2359      2187, 2043, 2043, 2043, 1631, 2044, 3254, 1094, 2045, 3253,
2360      3260, 1183, 2189, 2195, 1191, 1094, 1094, 2046, 2046, 2046,
2361      2197, 2197, 2197, 1630, 2198, 3255, 1094, 2199, 1205, 1205,
2362      1205, 1094, 2196, 2194, 2047, 2048, 2048, 2048, 1094, 2049,
2363      1094, 1094, 2050, 2052, 2052, 2052, 1207, 2053, 1629, 1628,
2364      2054, 2058, 2058, 2058, 1094, 2059, 3256, 3257, 2060, 2061,
2365
2366      2061, 2061, 2204, 2204, 2204, 1094, 2205, 3272, 3262, 2206,
2367      2065, 2065, 2065, 3258, 2066, 3259, 2062, 2067, 2210, 2210,
2368      2210, 1230, 1230, 1230, 2213, 2213, 2213, 3261, 1094, 2074,
2369      2074, 2074, 3266, 2075, 2200, 2211, 2076, 3264, 1627, 1232,
2370      1094, 3268, 2214, 1262, 1262, 1262, 1267, 1267, 1267, 2081,
2371      2081, 2081, 2221, 2221, 2221, 1094, 2222, 1094, 1626, 2223,
2372      1625, 1264, 1624, 1617, 1269, 3263, 2082, 1094, 1286, 1286,
2373      1286, 1294, 1294, 1294, 2090, 2090, 2090, 2093, 2093, 2093,
2374      3267, 2094, 1094, 1614, 2095, 2212, 1288, 3265, 1094, 1296,
2375      1094, 1612, 2091, 2099, 2099, 2099, 1608, 2219, 2218, 2235,
2376
2377      2235, 2235, 3274, 2236, 3269, 1094, 2237, 1321, 1321, 1321,
2378      2100, 2102, 2102, 2102, 2239, 2239, 2239, 2104, 2104, 2104,
2379      2240, 2240, 2240, 3273, 1094, 1323, 3293, 3293, 3293, 3293,
2380      3293, 3293, 1094, 2229, 2228, 3282, 3276, 2241, 3293, 3293,
2381      3293, 1094, 3270, 3293, 1094, 1094, 3293, 1333, 1333, 1333,
2382      2112, 2112, 2112, 1604, 1603, 3293, 2248, 2248, 2248, 1094,
2383      2249, 3271, 1094, 2250, 3280, 1335, 3283, 2113, 2252, 2252,
2384      2252, 2238, 2117, 2117, 2117, 1094, 3275, 2242, 2256, 2256,
2385      2256, 2121, 2121, 2121, 1601, 2122, 2253, 1600, 2123, 1094,
2386      2118, 3277, 1094, 2243, 3281, 1599, 2257, 2244, 2124, 2124,
2387
2388      2124, 2258, 2258, 2258, 1094, 2259, 1597, 3286, 2260, 2127,
2389      2127, 2127, 2245, 2128, 1595, 2125, 2129, 1385, 1385, 1385,
2390      2131, 2131, 2131, 2263, 2263, 2263, 3278, 2264, 1587, 3279,
2391      2265, 1395, 1395, 1395, 1584, 1387, 3284, 2132, 2138, 2138,
2392      2138, 2140, 2140, 2140, 2271, 2271, 2271, 1575, 2272, 1397,
2393      1573, 2273, 1413, 1413, 1413, 1572, 2139, 1570, 2141, 2285,
2394      2285, 2285, 2156, 2156, 2156, 1569, 2157, 1568, 2262, 2158,
2395      1415, 2159, 2159, 2159, 2298, 2298, 2298, 1094, 2299, 2299,
2396      2299, 1565, 2267, 2164, 2164, 2164, 2165, 2165, 2165, 2167,
2397      2167, 2167, 2303, 2303, 2303, 2305, 2305, 2305, 2171, 2171,
2398
2399      2171, 2284, 2172, 2172, 2172, 2175, 2175, 2175, 2308, 2308,
2400      2308, 2179, 2179, 2179, 2180, 2180, 2180, 2182, 2182, 2182,
2401      2183, 2183, 2183, 2315, 2315, 2315, 2317, 2317, 2317, 1162,
2402      1162, 1162, 2319, 2319, 2319, 2191, 2191, 2191, 1094, 2192,
2403      1564, 2316, 2193, 1171, 1171, 1171, 1094, 1164, 1094, 2320,
2404      1181, 1181, 1181, 1189, 1189, 1189, 2197, 2197, 2197, 1562,
2405      2198, 1173, 1560, 2199, 2324, 2324, 2324, 1559, 1183, 1557,
2406      3285, 1191, 2204, 2204, 2204, 1556, 2205, 1552, 3288, 2206,
2407      1551, 1094, 2325, 2330, 2330, 2330, 1550, 2322, 2210, 2210,
2408      2210, 2337, 2337, 2337, 2321, 2318, 3287, 2334, 2334, 2334,
2409
2410      2331, 2335, 1549, 1543, 2336, 2211, 2213, 2213, 2213, 2338,
2411      1262, 1262, 1262, 3289, 2323, 2343, 2343, 2343, 2345, 2345,
2412      2345, 3293, 3293, 3293, 2214, 2221, 2221, 2221, 1264, 2222,
2413      1541, 1539, 2223, 2344, 1538, 2346, 1537, 1536, 3293, 3293,
2414      3293, 3293, 3293, 3293, 3293, 2351, 2351, 2351, 1286, 1286,
2415      1286, 1294, 1294, 1294, 1529, 1527, 3293, 1526, 1525, 3293,
2416      1522, 1521, 2352, 1516, 2347, 1515, 1288, 1514, 1513, 1296,
2417      2342, 2355, 2355, 2355, 1512, 1511, 2348, 2360, 2360, 2360,
2418      2235, 2235, 2235, 1510, 2236, 1509, 1503, 2237, 2356, 1321,
2419      1321, 1321, 1502, 2350, 2239, 2239, 2239, 2240, 2240, 2240,
2420
2421      2349, 1501, 2362, 2362, 2362, 1499, 2363, 1323, 2353, 2364,
2422      2365, 2365, 2365, 1498, 2241, 2354, 3293, 3293, 3293, 3293,
2423      3293, 3293, 2369, 2369, 2369, 1497, 1496, 2366, 2371, 2371,
2424      2371, 1481, 1480, 3293, 1475, 1474, 3293, 2372, 2372, 2372,
2425      2370, 1472, 2248, 2248, 2248, 1471, 2249, 1469, 2361, 2250,
2426      1465, 3293, 3293, 3293, 2373, 2252, 2252, 2252, 2256, 2256,
2427      2256, 1464, 2258, 2258, 2258, 1460, 2259, 2367, 3293, 2260,
2428      2368, 1459, 1458, 2253, 1457, 1456, 2257, 2378, 2378, 2378,
2429      2263, 2263, 2263, 1455, 2264, 1454, 1453, 2265, 1395, 1395,
2430      1395, 1452, 2271, 2271, 2271, 2379, 2272, 1451, 1450, 2273,
2431
2432      1413, 1413, 1413, 2285, 2285, 2285, 1397, 2298, 2298, 2298,
2433      2299, 2299, 2299, 2412, 2412, 2412, 1449, 2374, 1415, 1448,
2434      1447, 1094, 2303, 2303, 2303, 2305, 2305, 2305, 2308, 2308,
2435      2308, 2418, 2418, 2418, 2381, 2315, 2315, 2315, 2317, 2317,
2436      2317, 2422, 2422, 2422, 1445, 2319, 2319, 2319, 2424, 2424,
2437      2424, 1444, 2425, 2316, 1443, 2426, 2427, 2427, 2427, 2423,
2438      1442, 2394, 2320, 1439, 1438, 2395, 1181, 1181, 1181, 1189,
2439      1189, 1189, 1437, 1436, 2428, 2324, 2324, 2324, 2330, 2330,
2440      2330, 2435, 2435, 2435, 1183, 2436, 1435, 1191, 2437, 1434,
2441      2334, 2334, 2334, 2325, 2335, 2331, 1433, 2336, 2337, 2337,
2442
2443      2337, 2446, 2446, 2446, 1262, 1262, 1262, 2343, 2343, 2343,
2444      2345, 2345, 2345, 2449, 2449, 2449, 2338, 2450, 2447, 1432,
2445      2451, 1431, 1264, 1430, 1429, 2344, 1428, 2346, 1427, 1426,
2446      2429, 2455, 2455, 2455, 1423, 1422, 2430, 2351, 2351, 2351,
2447      2457, 2457, 2457, 1421, 2458, 1420, 1419, 2459, 2456, 2460,
2448      2460, 2460, 1418, 1094, 2352, 1294, 1294, 1294, 2355, 2355,
2449      2355, 2448, 2463, 2463, 2463, 1412, 2464, 2461, 1411, 2465,
2450      2468, 2468, 2468, 1296, 1410, 2356, 2360, 2360, 2360, 2470,
2451      2470, 2470, 2362, 2362, 2362, 1405, 2363, 2469, 1404, 2364,
2452      2365, 2365, 2365, 1400, 2472, 2472, 2472, 2471, 2473, 1394,
2453
2454      1393, 2474, 2475, 2475, 2475, 1389, 1384, 2366, 2477, 2477,
2455      2477, 2369, 2369, 2369, 1380, 1379, 2462, 1371, 1357, 2476,
2456      2371, 2371, 2371, 1356, 1355, 2478, 2372, 2372, 2372, 2370,
2457      2479, 2479, 2479, 1352, 2480, 1346, 1341, 2481, 3293, 3293,
2458      3293, 1337, 1332, 2373, 2378, 2378, 2378, 1395, 1395, 1395,
2459      1413, 1413, 1413, 1331, 1330, 3293, 2412, 2412, 2412, 2518,
2460      2518, 2518, 2379, 1329, 1328, 1397, 1327, 1326, 1415, 2418,
2461      2418, 2418, 2525, 2525, 2525, 1325, 2422, 2422, 2422, 2424,
2462      2424, 2424, 1320, 2425, 1319, 1314, 2426, 1313, 1307, 2526,
2463      2427, 2427, 2427, 2482, 2423, 1304, 1181, 1181, 1181, 1189,
2464
2465      1189, 1189, 2531, 2531, 2531, 2435, 2435, 2435, 2428, 2436,
2466      2500, 1299, 2437, 2487, 1183, 1298, 1293, 1191, 1282, 2532,
2467      2543, 2543, 2543, 2446, 2446, 2446, 2545, 2545, 2545, 1277,
2468      2546, 1276, 1275, 2547, 2548, 2548, 2548, 2544, 1271, 1266,
2469      2447, 2449, 2449, 2449, 1255, 2450, 1249, 1248, 2451, 2455,
2470      2455, 2455, 2549, 1247, 2553, 2553, 2553, 2527, 2554, 1243,
2471      1242, 2555, 2460, 2460, 2460, 2528, 2456, 2457, 2457, 2457,
2472      1241, 2458, 1229, 1228, 2459, 1294, 1294, 1294, 1227, 1226,
2473      2461, 2463, 2463, 2463, 1225, 2464, 1224, 1223, 2465, 2564,
2474      2564, 2564, 1222, 1296, 2468, 2468, 2468, 2566, 2566, 2566,
2475
2476      1221, 2567, 1215, 1170, 2568, 1166, 2565, 2470, 2470, 2470,
2477      1161, 2469, 2472, 2472, 2472, 1160, 2473, 1148, 1147, 2474,
2478      1146, 2475, 2475, 2475, 1145, 2471, 2569, 2569, 2569, 1144,
2479      2570, 1143, 1142, 2571, 2477, 2477, 2477, 2562, 2476, 2572,
2480      2572, 2572, 1141, 2573, 1140, 1139, 2574, 1138, 2479, 2479,
2481      2479, 2478, 2480, 1137, 1136, 2481, 3293, 3293, 3293, 2582,
2482      2582, 2582, 2584, 2584, 2584, 1395, 1395, 1395, 2589, 2589,
2483      2589, 1133, 1132, 3293, 1131, 1130, 2583, 1129, 1128, 2585,
2484      2590, 2590, 2590, 1397, 1413, 1413, 1413, 2619, 2619, 2619,
2485      2518, 2518, 2518, 2623, 2623, 2623, 1127, 2591, 2525, 2525,
2486
2487      2525, 1126, 1415, 2626, 2626, 2626, 1123, 2627, 1122, 1121,
2488      2628, 1181, 1181, 1181, 1120, 2526, 1119, 2581, 1118, 1189,
2489      1189, 1189, 2632, 2632, 2632, 2531, 2531, 2531, 1117, 1183,
2490      1116, 2634, 2634, 2634, 1115, 2635, 2588, 1191, 2636, 2633,
2491      1108, 1104, 2532, 1103, 2602, 2637, 2637, 2637, 2543, 2543,
2492      2543, 2648, 2648, 2648, 1102, 2649, 1101, 1100, 2650, 2545,
2493      2545, 2545, 2638, 2546, 1097, 2544, 2547, 2548, 2548, 2548,
2494      2630, 2652, 2652, 2652, 1095, 2553, 2553, 2553, 2629, 2554,
2495      1094, 1092, 2555, 1090, 1089, 2549, 1088, 1087, 2653, 2661,
2496      2661, 2661, 2564, 2564, 2564, 2664, 2664, 2664, 1086, 2665,
2497
2498      1083, 1080, 2666, 1079, 2566, 2566, 2566, 2662, 2567, 2565,
2499      1078, 2568, 2569, 2569, 2569, 1076, 2570, 1075, 1072, 2571,
2500      2572, 2572, 2572, 1071, 2573, 1069, 1066, 2574, 3293, 3293,
2501      3293, 2582, 2582, 2582, 2680, 2680, 2680, 1065, 2681, 1064,
2502      1060, 2682, 2584, 2584, 2584, 3293, 1059, 1057, 2583, 2683,
2503      2683, 2683, 1056, 2684, 1055, 1054, 2685, 1052, 1051, 2585,
2504      2686, 2686, 2686, 2688, 2688, 2688, 1395, 1395, 1395, 2589,
2505      2589, 2589, 2590, 2590, 2590, 1050, 1049, 2687, 1048, 1047,
2506      2689, 1413, 1413, 1413, 1397, 2705, 2705, 2705, 2679, 2591,
2507      2691, 2691, 2691, 1044, 2692, 1043, 1041, 2693, 1038, 1415,
2508
2509      1037, 1035, 2706, 1622, 2619, 2619, 2619, 2720, 2720, 2720,
2510      2623, 2623, 2623, 2723, 2723, 2723, 2626, 2626, 2626, 1034,
2511      2627, 1033, 1032, 2628, 1181, 1181, 1181, 1031, 2690, 2730,
2512      2730, 2730, 2702, 2632, 2632, 2632, 2733, 2733, 2733, 1027,
2513      2734, 1025, 1183, 2735, 2634, 2634, 2634, 2731, 2635, 1024,
2514      2633, 2636, 2637, 2637, 2637, 2736, 2736, 2736, 1023, 2737,
2515      1021, 1020, 2738, 2648, 2648, 2648, 1019, 2649, 1016, 2638,
2516      2650, 2652, 2652, 2652, 2749, 2749, 2749, 1015, 2750, 1014,
2517      1013, 2751, 2661, 2661, 2661, 2664, 2664, 2664, 2653, 2665,
2518      2729, 1011, 2666, 2772, 2772, 2772, 1010, 2680, 2680, 2680,
2519
2520      2662, 2681, 1009, 1007, 2682, 2683, 2683, 2683, 1004, 2684,
2521      2773, 1000, 2685, 2686, 2686, 2686, 2778, 2778, 2778,  999,
2522      2779,  997,  996, 2780, 2688, 2688, 2688, 2781, 2781, 2781,
2523      2687, 2782,  995,  992, 2783, 1395, 1395, 1395, 2691, 2691,
2524      2691, 2689, 2692,  991,  990, 2693, 1413, 1413, 1413, 2795,
2525      2795, 2795,  988, 1397, 2705, 2705, 2705,  987, 2797, 2797,
2526      2797,  981, 2798,  980, 1415, 2799, 2796, 1622, 2808, 2808,
2527      2808, 2706, 1622, 2720, 2720, 2720, 1622, 2809, 2809, 2809,
2528      2810, 2810, 2810, 2723, 2723, 2723, 2784, 2811, 2811, 2811,
2529      1181, 1181, 1181,  979,  977, 2793, 2730, 2730, 2730, 2733,
2530
2531      2733, 2733,  976, 2734,  975,  970, 2735,  969, 1183, 2736,
2532      2736, 2736,  965, 2737, 2731,  963, 2738, 2818, 2818, 2818,
2533      2828, 2828, 2828, 2749, 2749, 2749,  962, 2750,  961,  960,
2534      2751, 2830, 2830, 2830, 2819,  959,  958, 2829, 2772, 2772,
2535      2772, 2816, 2849, 2849, 2849,  957, 2850,  956, 2831, 2851,
2536      2778, 2778, 2778,  955, 2779, 2773,  954, 2780, 2781, 2781,
2537      2781,  951, 2782,  948,  947, 2783, 2856, 2856, 2856, 1413,
2538      1413, 1413, 2795, 2795, 2795, 2866, 2866, 2866,  945, 2867,
2539       944,  943, 2868,  942, 2857,  941,  936, 1415,  934, 2796,
2540      1622,  933,  932, 1622, 2797, 2797, 2797,  930, 2798,  929,
2541
2542       928, 2799, 2808, 2808, 2808, 2809, 2809, 2809, 2810, 2810,
2543      2810,  927, 1622, 2811, 2811, 2811, 2881, 2881, 2881, 2884,
2544      2884, 2884,  925, 2885,  922,  921, 2886,  919, 2818, 2818,
2545      2818, 2887, 2887, 2887, 2882, 2864, 1620, 1620, 1620, 1620,
2546      1620, 1620, 1620, 1620, 1620, 2819,  918, 1620, 2888, 2828,
2547      2828, 2828, 1620, 1620, 1620, 1622, 1620, 2894, 2894, 2894,
2548       917, 2895,  915,  914, 2896,  913, 2829, 2897, 2897, 2897,
2549       912, 2898,  909,  908, 2899, 2830, 2830, 2830, 2856, 2856,
2550      2856, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
2551      1620, 1620, 2831,  907, 1620,  904, 2857,  903,  902, 1620,
2552
2553      1620, 1620, 1622, 1620, 2849, 2849, 2849,  897, 2850,  895,
2554       894, 2851, 2927, 2927, 2927, 2866, 2866, 2866,  888, 2867,
2555       887,  886, 2868,  885,  879, 2881, 2881, 2881, 1620, 1620,
2556      2928,  878,  877, 1622, 1620, 1620, 1620, 1620, 1620, 2935,
2557      1620, 1620, 1620, 2882,  875, 1620, 2887, 2887, 2887,  872,
2558      1620, 1620, 1620, 1622, 1620, 2884, 2884, 2884,  871, 2885,
2559       870,  869, 2886, 2888, 2953, 2953, 2953,  864, 2954,  861,
2560       863, 2955, 2927, 2927, 2927, 2980, 2980, 2980,  858, 1620,
2561      1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 2935,
2562      2928,  857, 1620, 1622, 1623,  856,  854, 1620, 1620, 1620,
2563
2564      1622, 1620, 2894, 2894, 2894,  853, 2895,  850,  849, 2896,
2565      2897, 2897, 2897,  848, 2898,  846,  845, 2899, 2989, 2989,
2566      2989, 2953, 2953, 2953,  843, 2954, 1620, 1620, 2955, 2999,
2567      2999, 2999, 3007, 3007, 3007, 2990, 3015, 3015, 3015, 2980,
2568      2980, 2980, 2989, 2989, 2989,  842, 3000,  841,  840, 3008,
2569       838, 3023, 3023, 3023, 1094, 3024,  837, 1622, 3025, 2990,
2570      2999, 2999, 2999, 3034, 3034, 3034,  836, 3035,  835,  834,
2571      3036, 3007, 3007, 3007, 3043, 3043, 3043, 3000, 3044,  833,
2572       831, 3045, 3015, 3015, 3015, 3023, 3023, 3023, 3008, 3024,
2573      1807,  829, 3025,  828, 3034, 3034, 3034,  826, 3035,  825,
2574
2575      1094, 3036, 3043, 3043, 3043,  822, 3044,  820,  816, 3045,
2576      3173, 3173, 3173, 3173, 3173, 3173,  812, 3182,  811, 3052,
2577      3183, 3291, 3291, 3291, 3291, 3291, 3291,  809, 1094,  807,
2578       806, 1094,  804,  803,  801,  800,  799,  798,  797, 3292,
2579       795,  794, 3292,  240,  240,  240,  240,  240,  240,  240,
2580       240,  240,  241,  241,  241,  241,  241,  241,  241,  241,
2581       241,  246,  246,  246,  246,  246,  246,  246,  246,  246,
2582       249,  249,  249,  249,  249,  249,  249,  249,  249,  252,
2583       252,  252,  252,  252,  252,  252,  252,  252,  255,  255,
2584       255,  255,  255,  255,  255,  255,  255,  262,  262,  262,
2585
2586       262,  262,  262,  262,  262,  262,  269,  269,  269,  269,
2587       269,  269,  269,  269,  269,  274,  274,  274,  274,  274,
2588       274,  274,  274,  274,  286,  286,  286,  286,  286,  286,
2589       286,  286,  286,  292,  292,  292,  292,  292,  292,  292,
2590       292,  292,  300,  300,  300,  300,  300,  300,  300,  300,
2591       300,  304,  304,  304,  304,  304,  304,  304,  304,  304,
2592       310,  310,  310,  310,  310,  310,  310,  310,  310,  316,
2593       316,  316,  316,  316,  316,  316,  316,  316,  322,  322,
2594       322,  322,  322,  322,  322,  322,  322,  328,  328,  328,
2595       328,  328,  328,  328,  328,  328,  335,  335,  335,  335,
2596
2597       335,  335,  335,  335,  335,  340,  340,  340,  340,  340,
2598       340,  340,  340,  340,  347,  347,  347,  347,  347,  347,
2599       347,  347,  347,  356,  356,  356,  356,  356,  356,  356,
2600       356,  356,  373,  373,  373,  373,  373,  373,  373,  373,
2601       373,  380,  380,  380,  380,  380,  380,  380,  380,  380,
2602       384,  384,  384,  384,  384,  384,  384,  384,  384,  391,
2603       391,  391,  391,  391,  391,  391,  391,  391,  399,  399,
2604       399,  399,  399,  399,  399,  399,  399,  407,  407,  407,
2605       407,  407,  407,  407,  407,  407,  413,  413,  413,  413,
2606       413,  413,  413,  413,  413,  419,  419,  419,  419,  419,
2607
2608       419,  419,  419,  419,  423,  423,  423,  423,  423,  423,
2609       423,  423,  423,  431,  431,  431,  431,  431,  431,  431,
2610       431,  431,  438,  438,  438,  438,  438,  438,  438,  438,
2611       438,  445,  445,  445,  445,  445,  445,  445,  445,  445,
2612       450,  450,  450,  450,  450,  450,  450,  450,  450,  456,
2613       456,  456,  456,  456,  456,  456,  456,  456,  461,  461,
2614       461,  461,  461,  461,  461,  461,  461,  467,  467,  467,
2615       467,  467,  467,  467,  467,  467,  472,  472,  472,  472,
2616       472,  472,  472,  472,  472,  478,  478,  478,  478,  478,
2617       478,  478,  478,  478,  487,  487,  487,  487,  487,  487,
2618
2619       487,  487,  487,  494,  494,  494,  494,  494,  494,  494,
2620       494,  494,  498,  498,  498,  498,  498,  498,  498,  498,
2621       498,  509,  509,  509,  509,  509,  509,  509,  509,  509,
2622       517,  517,  517,  517,  517,  517,  517,  517,  517,  525,
2623       525,  525,  525,  525,  525,  525,  525,  525,  530,  530,
2624       530,  530,  530,  530,  530,  530,  530,  536,  536,  536,
2625       536,  536,  536,  536,  536,  536,  544,  544,  544,  544,
2626       544,  544,  544,  544,  544,  550,  550,  550,  550,  550,
2627       550,  550,  550,  550,  555,  555,  555,  555,  555,  555,
2628       555,  555,  555,  562,  562,  562,  562,  562,  562,  562,
2629
2630       562,  562,  567,  567,  567,  567,  567,  567,  567,  567,
2631       567,  573,  573,  573,  573,  573,  573,  573,  573,  573,
2632       580,  580,  580,  580,  580,  580,  580,  580,  580,  587,
2633       587,  587,  587,  587,  587,  587,  587,  587,  594,  594,
2634       594,  594,  594,  594,  594,  594,  594,  602,  602,  602,
2635       602,  602,  602,  602,  602,  602,  255,  255,  255,  255,
2636       255,  255,  255,  255,  255,  613,  613,  613,  613,  613,
2637       613,  613,  613,  613,  619,  619,  619,  619,  619,  619,
2638       619,  619,  619,  638,  638,  638,  788,  786,  781,  638,
2639       672,  672,  672,  780,  779,  778,  672,  680,  680,  680,
2640
2641       777,  775,  773,  680,  684,  684,  684,  772,  770,  768,
2642       684,  690,  690,  690,  767,  765,  763,  690,  696,  696,
2643       696,  762,  760,  759,  696,  701,  701,  701,  756,  755,
2644       754,  701,  711,  711,  711,  752, 3293,  749,  711,  728,
2645       728,  728,  747,  745,  744,  728,  732,  732,  732,  743,
2646       741,  740,  732,  742,  742,  742,  736,  735,  734,  742,
2647       748,  748,  748,  733,  731,  730,  748,  753,  753,  753,
2648       729,  727,  726,  753,  761,  761,  761,  725,  719,  715,
2649       761,  766,  766,  766,  714,  710,  706,  766,  771,  771,
2650       771,  705,  704,  703,  771,  776,  776,  776,  702,  700,
2651
2652       699,  776,  787,  787,  787,  698,  697,  695,  787,  796,
2653       796,  796,  694,  693,  692,  796,  805,  805,  805,  691,
2654       689,  687,  805,  810,  810,  810,  686,  685,  683,  810,
2655       821,  821,  821,  681,  679,  660,  821,  827,  827,  827,
2656      3293,  674,  673,  827,  832,  832,  832,  671, 3293,  654,
2657       832,  839,  839,  839,  640,  639,  637,  839,  847,  847,
2658       847,  636,  630,  629,  847,  855,  855,  855,  630,  629,
2659       628,  855,  860,  860,  860,  860,  860,  860,  860,  627,
2660       860,  638,  638,  638, 3293, 3293, 3293,  638,  876, 3293,
2661      3293, 3293,  876,  672,  672,  672, 3293, 3293, 3293,  672,
2662
2663       916, 3293, 3293, 3293,  916,  680,  680,  680, 3293, 3293,
2664      3293,  680,  920, 3293, 3293, 3293,  920,  684,  684,  684,
2665      3293, 3293, 3293,  684,  926, 3293, 3293, 3293,  926,  690,
2666       690,  690, 3293, 3293, 3293,  690,  931, 3293, 3293, 3293,
2667       931,  696,  696,  696, 3293, 3293, 3293,  696,  935, 3293,
2668      3293, 3293,  935,  701,  701,  701, 3293, 3293, 3293,  701,
2669       946, 3293, 3293, 3293,  946,  711,  711,  711, 3293, 3293,
2670      3293,  711,  964, 3293, 3293, 3293,  964,  728,  728,  728,
2671      3293, 3293, 3293,  728,  968, 3293, 3293, 3293,  968,  732,
2672       732,  732, 3293, 3293, 3293,  732,  978, 3293, 3293, 3293,
2673
2674       978,  742,  742,  742, 3293, 3293, 3293,  742,  986, 3293,
2675      3293, 3293,  986,  748,  748,  748, 3293, 3293, 3293,  748,
2676       989, 3293, 3293, 3293,  989,  753,  753,  753, 3293, 3293,
2677      3293,  753,  998, 3293, 3293, 3293,  998,  761,  761,  761,
2678      3293, 3293, 3293,  761, 1003, 3293, 3293, 3293, 1003,  766,
2679       766,  766, 3293, 3293, 3293,  766, 1008, 3293, 3293, 3293,
2680      1008,  771,  771,  771, 3293, 3293, 3293,  771, 1012, 3293,
2681      3293, 3293, 1012,  776,  776,  776, 3293, 3293, 3293,  776,
2682      1022, 3293, 3293, 3293, 1022,  787,  787,  787, 3293, 3293,
2683      3293,  787, 1026, 3293, 3293, 3293, 1026,  796,  796,  796,
2684
2685      3293, 3293, 3293,  796, 1036, 3293, 3293, 3293, 1036,  805,
2686       805,  805, 3293, 3293, 3293,  805, 1042, 3293, 3293, 3293,
2687      1042,  810,  810,  810, 3293, 3293, 3293,  810, 1053, 3293,
2688      3293, 3293, 1053,  821,  821,  821, 3293, 3293, 3293,  821,
2689      1058, 3293, 3293, 3293, 1058,  827,  827,  827, 3293, 3293,
2690      3293,  827, 1063, 3293, 3293, 3293, 1063,  832,  832,  832,
2691      3293, 3293, 3293,  832, 1070, 3293, 3293, 3293, 1070,  839,
2692       839,  839, 3293, 3293, 3293,  839, 1077, 3293, 3293, 3293,
2693      1077,  847,  847,  847, 3293, 3293, 3293,  847, 1085, 3293,
2694      3293, 3293, 1085,  855,  855,  855, 3293, 3293, 3293,  855,
2695
2696      1091, 3293, 3293, 3293, 1091, 1093, 1093, 1093, 1093, 1093,
2697      1093, 1093, 1093, 1093, 1099, 3293, 3293, 3293, 3293, 1099,
2698       638,  638,  638, 3293, 3293, 3293,  638, 1110, 1110, 1110,
2699      1110, 3293, 3293, 1110, 1110,  672,  672,  672,  672, 3293,
2700       672, 3293,  672, 1157, 1157, 1157, 1157, 3293, 3293, 1157,
2701      1157,  680,  680,  680, 3293, 3293, 3293,  680, 1163, 1163,
2702      1163, 1163, 3293, 3293, 1163, 1163,  684,  684,  684, 3293,
2703      3293, 3293,  684, 1172, 1172, 1172, 1172, 3293, 3293, 1172,
2704      1172,  690,  690,  690,  690, 3293,  690, 3293,  690, 1182,
2705      1182, 1182, 1182, 3293, 3293, 1182, 1182,  696,  696,  696,
2706
2707       696, 3293,  696, 3293,  696, 1190, 1190, 1190, 1190, 3293,
2708      3293, 1190, 1190,  701,  701,  701,  701, 3293,  701, 3293,
2709       701, 1206, 1206, 1206, 1206, 3293, 3293, 1206, 1206,  711,
2710       711,  711, 3293, 3293, 3293,  711, 1231, 1231, 1231, 1231,
2711      3293, 3293, 1231, 1231, 1238, 1238, 1238, 1238, 3293, 3293,
2712      1238, 1238,  732,  732,  732, 3293, 3293, 3293,  732, 1251,
2713      1251, 1251, 1251, 3293, 3293, 1251, 1251,  742,  742,  742,
2714      3293, 3293, 3293,  742, 1263, 1263, 1263, 1263, 3293, 3293,
2715      1263, 1263,  748,  748,  748, 3293, 3293, 3293,  748, 1268,
2716      1268, 1268, 1268, 3293, 3293, 1268, 1268,  753,  753,  753,
2717
2718      3293, 3293, 3293,  753, 1279, 1279, 1279, 1279, 3293, 3293,
2719      1279, 1279,  761,  761,  761, 3293, 3293, 3293,  761, 1287,
2720      1287, 1287, 1287, 3293, 3293, 1287, 1287,  766,  766,  766,
2721      3293, 3293, 3293,  766, 1295, 1295, 1295, 1295, 3293, 3293,
2722      1295, 1295,  771,  771,  771, 3293, 3293, 3293,  771, 1301,
2723      1301, 1301, 1301, 3293, 3293, 1301, 1301,  776,  776,  776,
2724      3293, 3293, 3293,  776, 1316, 1316, 1316, 1316, 3293, 3293,
2725      1316, 1316,  787,  787,  787, 3293, 3293, 3293,  787, 1322,
2726      1322, 1322, 1322, 3293, 3293, 1322, 1322,  796,  796,  796,
2727      3293, 3293, 3293,  796, 1334, 1334, 1334, 1334, 3293, 3293,
2728
2729      1334, 1334,  805,  805,  805, 3293, 3293, 3293,  805, 1343,
2730      1343, 1343, 1343, 3293, 3293, 1343, 1343,  810,  810,  810,
2731      3293, 3293, 3293,  810, 1359, 1359, 1359, 1359, 3293, 3293,
2732      1359, 1359,  821,  821,  821,  821, 3293,  821, 3293,  821,
2733      1368, 1368, 1368, 1368, 3293, 3293, 1368, 1368,  827,  827,
2734       827, 3293, 3293, 3293,  827, 1376, 1376, 1376, 1376, 3293,
2735      3293, 1376, 1376,  832,  832,  832, 3293, 3293, 3293,  832,
2736      1386, 1386, 1386, 1386, 3293, 3293, 1386, 1386,  839,  839,
2737       839, 3293, 3293, 3293,  839, 1396, 1396, 1396, 1396, 3293,
2738      3293, 1396, 1396,  847,  847,  847, 3293, 3293, 3293,  847,
2739
2740      1407, 1407, 1407, 1407, 3293, 3293, 1407, 1407,  855,  855,
2741       855, 3293, 3293, 3293,  855, 1414, 1414, 1414, 1414, 3293,
2742      3293, 1414, 1414, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
2743      1093, 1093, 1099, 3293, 1099, 3293, 3293, 1099,  638,  638,
2744       638, 3293, 3293, 3293,  638, 1110, 1110, 1110, 1110, 3293,
2745      3293, 1110, 1110,  672,  672,  672, 3293, 3293, 3293,  672,
2746      1157, 1157, 1157, 1157, 3293, 3293, 1157, 1157,  680,  680,
2747       680, 3293, 3293, 3293,  680, 1163, 1163, 1163, 1163, 3293,
2748      3293, 1163, 1163,  684,  684,  684, 3293, 3293, 3293,  684,
2749      1172, 1172, 1172, 1172, 3293, 3293, 1172, 1172,  690,  690,
2750
2751       690, 3293, 3293, 3293,  690, 1182, 1182, 1182, 1182, 3293,
2752      3293, 1182, 1182, 1190, 1190, 1190, 1190, 3293, 3293, 1190,
2753      1190,  701,  701,  701, 3293, 3293, 3293,  701, 1206, 1206,
2754      1206, 1206, 3293, 3293, 1206, 1206,  711,  711,  711, 3293,
2755      3293, 3293,  711, 1231, 1231, 1231, 1231, 3293, 3293, 1231,
2756      1231, 1238, 1238, 1238, 1238, 3293, 3293, 1238, 1238,  732,
2757       732,  732, 3293, 3293, 3293,  732, 1251, 1251, 1251, 1251,
2758      3293, 3293, 1251, 1251,  742,  742,  742,  742, 3293,  742,
2759      3293,  742, 1263, 1263, 1263, 1263, 3293, 3293, 1263, 1263,
2760       748,  748,  748,  748, 3293,  748, 3293,  748, 1268, 1268,
2761
2762      1268, 1268, 3293, 3293, 1268, 1268,  753,  753,  753, 3293,
2763      3293, 3293,  753, 1279, 1279, 1279, 1279, 3293, 3293, 1279,
2764      1279,  761,  761,  761, 3293, 3293, 3293,  761, 1287, 1287,
2765      1287, 1287, 3293, 3293, 1287, 1287,  766,  766,  766, 3293,
2766      3293, 3293,  766, 1295, 1295, 1295, 1295, 3293, 3293, 1295,
2767      1295,  771,  771,  771,  771, 3293,  771, 3293,  771, 1301,
2768      1301, 1301, 1301, 3293, 3293, 1301, 1301,  776,  776,  776,
2769      3293, 3293, 3293,  776, 1316, 1316, 1316, 1316, 3293, 3293,
2770      1316, 1316,  787,  787,  787, 3293, 3293, 3293,  787, 1322,
2771      1322, 1322, 1322, 3293, 3293, 1322, 1322,  796,  796,  796,
2772
2773      3293, 3293, 3293,  796, 1334, 1334, 1334, 1334, 3293, 3293,
2774      1334, 1334,  805,  805,  805, 3293, 3293, 3293,  805, 1343,
2775      1343, 1343, 1343, 3293, 3293, 1343, 1343,  810,  810,  810,
2776      3293, 3293, 3293,  810, 1359, 1359, 1359, 1359, 3293, 3293,
2777      1359, 1359,  821,  821,  821, 3293, 3293, 3293,  821, 1368,
2778      1368, 1368, 1368, 3293, 3293, 1368, 1368,  827,  827,  827,
2779      3293, 3293, 3293,  827, 1376, 1376, 1376, 1376, 3293, 3293,
2780      1376, 1376,  832,  832,  832, 3293, 3293, 3293,  832, 1386,
2781      1386, 1386, 1386, 3293, 3293, 1386, 1386,  839,  839,  839,
2782      3293, 3293, 3293,  839, 1396, 1396, 1396, 1396, 3293, 3293,
2783
2784      1396, 1396,  847,  847,  847,  847, 3293,  847, 3293,  847,
2785      1407, 1407, 1407, 1407, 3293, 3293, 1407, 1407,  855,  855,
2786       855, 3293, 3293, 3293,  855, 1414, 1414, 1414, 1414, 3293,
2787      3293, 1414, 1414, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
2788      1093, 1093, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
2789      1620,  638,  638,  638, 3293, 3293, 3293,  638,  672,  672,
2790       672, 3293, 3293, 3293,  672, 1157, 1157, 1157, 1157, 3293,
2791      3293, 1157, 1157,  680,  680,  680,  680, 3293,  680, 3293,
2792       680, 1163, 1163, 1163, 1163, 3293, 3293, 1163, 1163,  684,
2793       684,  684, 3293, 3293, 3293,  684, 1172, 1172, 1172, 1172,
2794
2795      3293, 3293, 1172, 1172,  690,  690,  690, 3293, 3293, 3293,
2796       690, 1182, 1182, 1182, 1182, 3293, 3293, 1182, 1182, 1190,
2797      1190, 1190, 1190, 3293, 3293, 1190, 1190,  701,  701,  701,
2798      3293, 3293, 3293,  701, 1206, 1206, 1206, 1206, 3293, 3293,
2799      1206, 1206,  711,  711,  711,  711, 3293,  711, 3293,  711,
2800      1231, 1231, 1231, 1231, 3293, 3293, 1231, 1231, 1238, 1238,
2801      1238, 1238, 3293, 3293, 1238, 1238,  732,  732,  732, 3293,
2802      3293, 3293,  732, 1251, 1251, 1251, 1251, 3293, 3293, 1251,
2803      1251, 1263, 1263, 1263, 1263, 3293, 3293, 1263, 1263, 1268,
2804      1268, 1268, 1268, 3293, 3293, 1268, 1268,  753,  753,  753,
2805
2806      3293, 3293, 3293,  753, 1279, 1279, 1279, 1279, 3293, 3293,
2807      1279, 1279,  761,  761,  761, 3293, 3293, 3293,  761, 1287,
2808      1287, 1287, 1287, 3293, 3293, 1287, 1287,  766,  766,  766,
2809       766, 3293,  766, 3293,  766, 1295, 1295, 1295, 1295, 3293,
2810      3293, 1295, 1295,  771,  771,  771, 3293, 3293, 3293,  771,
2811      1301, 1301, 1301, 1301, 3293, 3293, 1301, 1301,  776,  776,
2812       776, 3293, 3293, 3293,  776, 1316, 1316, 1316, 1316, 3293,
2813      3293, 1316, 1316,  787,  787,  787, 3293, 3293, 3293,  787,
2814      1322, 1322, 1322, 1322, 3293, 3293, 1322, 1322,  796,  796,
2815       796, 3293, 3293, 3293,  796, 1334, 1334, 1334, 1334, 3293,
2816
2817      3293, 1334, 1334,  805,  805,  805,  805, 3293,  805, 3293,
2818       805, 1343, 1343, 1343, 1343, 3293, 3293, 1343, 1343,  810,
2819       810,  810, 3293, 3293, 3293,  810, 1359, 1359, 1359, 1359,
2820      3293, 3293, 1359, 1359,  821,  821,  821, 3293, 3293, 3293,
2821       821, 1368, 1368, 1368, 1368, 3293, 3293, 1368, 1368,  827,
2822       827,  827, 3293, 3293, 3293,  827, 1376, 1376, 1376, 1376,
2823      3293, 3293, 1376, 1376,  832,  832,  832, 3293, 3293, 3293,
2824       832, 1386, 1386, 1386, 1386, 3293, 3293, 1386, 1386,  839,
2825       839,  839, 3293, 3293, 3293,  839, 1396, 1396, 1396, 1396,
2826      3293, 3293, 1396, 1396,  847,  847,  847, 3293, 3293, 3293,
2827
2828       847, 1407, 1407, 1407, 1407, 3293, 3293, 1407, 1407,  855,
2829       855,  855, 3293, 3293, 3293,  855, 1414, 1414, 1414, 1414,
2830      3293, 3293, 1414, 1414, 1093, 1093, 1093, 1093, 1093, 1093,
2831      1093, 1093, 1093, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
2832      1620, 1620,  638,  638,  638, 3293, 3293, 3293,  638,  672,
2833       672,  672,  672, 3293,  672, 3293,  672, 1157, 1157, 1157,
2834      1157, 3293, 3293, 1157, 1157, 1163, 1163, 1163, 1163, 3293,
2835      3293, 1163, 1163,  684,  684,  684, 3293, 3293, 3293,  684,
2836      1172, 1172, 1172, 1172, 3293, 3293, 1172, 1172,  690,  690,
2837       690,  690, 3293,  690, 3293,  690, 1182, 1182, 1182, 1182,
2838
2839      3293, 3293, 1182, 1182, 1190, 1190, 1190, 1190, 3293, 3293,
2840      1190, 1190,  701,  701,  701,  701, 3293,  701, 3293,  701,
2841      1206, 1206, 1206, 1206, 3293, 3293, 1206, 1206,  711,  711,
2842       711,  711, 3293,  711, 3293,  711, 1231, 1231, 1231, 1231,
2843      3293, 3293, 1231, 1231, 1238, 1238, 1238, 1238, 3293, 3293,
2844      1238, 1238,  732,  732,  732, 3293, 3293, 3293,  732, 1251,
2845      1251, 1251, 1251, 3293, 3293, 1251, 1251, 1263, 1263, 1263,
2846      1263, 3293, 3293, 1263, 1263, 1268, 1268, 1268, 1268, 3293,
2847      3293, 1268, 1268,  753,  753,  753, 3293, 3293, 3293,  753,
2848      1279, 1279, 1279, 1279, 3293, 3293, 1279, 1279,  761,  761,
2849
2850       761, 3293, 3293, 3293,  761, 1287, 1287, 1287, 1287, 3293,
2851      3293, 1287, 1287, 1295, 1295, 1295, 1295, 3293, 3293, 1295,
2852      1295,  771,  771,  771, 3293, 3293, 3293,  771, 1301, 1301,
2853      1301, 1301, 3293, 3293, 1301, 1301,  776,  776,  776, 3293,
2854      3293, 3293,  776, 1316, 1316, 1316, 1316, 3293, 3293, 1316,
2855      1316,  787,  787,  787, 3293, 3293, 3293,  787, 1322, 1322,
2856      1322, 1322, 3293, 3293, 1322, 1322,  796,  796,  796, 3293,
2857      3293, 3293,  796, 1334, 1334, 1334, 1334, 3293, 3293, 1334,
2858      1334, 1343, 1343, 1343, 1343, 3293, 3293, 1343, 1343,  810,
2859       810,  810, 3293, 3293, 3293,  810, 1359, 1359, 1359, 1359,
2860
2861      3293, 3293, 1359, 1359,  821,  821,  821, 3293, 3293, 3293,
2862       821, 1368, 1368, 1368, 1368, 3293, 3293, 1368, 1368,  827,
2863       827,  827, 3293, 3293, 3293,  827, 1376, 1376, 1376, 1376,
2864      3293, 3293, 1376, 1376,  832,  832,  832,  832, 3293,  832,
2865      3293,  832, 1386, 1386, 1386, 1386, 3293, 3293, 1386, 1386,
2866       839,  839,  839, 3293, 3293, 3293,  839, 1396, 1396, 1396,
2867      1396, 3293, 3293, 1396, 1396,  847,  847,  847, 3293, 3293,
2868      3293,  847, 1407, 1407, 1407, 1407, 3293, 3293, 1407, 1407,
2869       855,  855,  855, 3293, 3293, 3293,  855, 1414, 1414, 1414,
2870      1414, 3293, 3293, 1414, 1414, 1093, 1093, 1093, 1093, 1093,
2871
2872      1093, 1093, 1093, 1093, 1620, 1620, 1620, 1620, 1620, 1620,
2873      1620, 1620, 1620,  638,  638,  638,  638, 3293,  638, 3293,
2874       638,  672,  672,  672, 3293, 3293, 3293,  672, 1157, 1157,
2875      1157, 1157, 3293, 3293, 1157, 1157, 1163, 1163, 1163, 1163,
2876      3293, 3293, 1163, 1163,  684,  684,  684, 3293, 3293, 3293,
2877       684, 1172, 1172, 1172, 1172, 3293, 3293, 1172, 1172, 1182,
2878      1182, 1182, 1182, 3293, 3293, 1182, 1182, 1190, 1190, 1190,
2879      1190, 3293, 3293, 1190, 1190,  701,  701,  701,  701, 3293,
2880       701, 3293,  701, 1206, 1206, 1206, 1206, 3293, 3293, 1206,
2881      1206,  711,  711,  711, 3293, 3293, 3293,  711, 1231, 1231,
2882
2883      1231, 1231, 3293, 3293, 1231, 1231, 1238, 1238, 1238, 1238,
2884      3293, 3293, 1238, 1238,  732,  732,  732, 3293, 3293, 3293,
2885       732, 1263, 1263, 1263, 1263, 3293, 3293, 1263, 1263, 1268,
2886      1268, 1268, 1268, 3293, 3293, 1268, 1268,  753,  753,  753,
2887      3293, 3293, 3293,  753,  761,  761,  761, 3293, 3293, 3293,
2888       761, 1287, 1287, 1287, 1287, 3293, 3293, 1287, 1287, 1295,
2889      1295, 1295, 1295, 3293, 3293, 1295, 1295,  771,  771,  771,
2890      3293, 3293, 3293,  771, 1301, 1301, 1301, 1301, 3293, 3293,
2891      1301, 1301,  776,  776,  776, 3293, 3293, 3293,  776,  787,
2892       787,  787,  787, 3293,  787, 3293,  787, 1322, 1322, 1322,
2893
2894      1322, 3293, 3293, 1322, 1322,  796,  796,  796, 3293, 3293,
2895      3293,  796, 1334, 1334, 1334, 1334, 3293, 3293, 1334, 1334,
2896       810,  810,  810, 3293, 3293, 3293,  810, 1359, 1359, 1359,
2897      1359, 3293, 3293, 1359, 1359,  821,  821,  821, 3293, 3293,
2898      3293,  821, 1368, 1368, 1368, 1368, 3293, 3293, 1368, 1368,
2899       827,  827,  827, 3293, 3293, 3293,  827, 1376, 1376, 1376,
2900      1376, 3293, 3293, 1376, 1376,  832,  832,  832,  832, 3293,
2901       832, 3293,  832, 1386, 1386, 1386, 1386, 3293, 3293, 1386,
2902      1386,  839,  839,  839,  839, 3293,  839, 3293,  839, 1396,
2903      1396, 1396, 1396, 3293, 3293, 1396, 1396,  847,  847,  847,
2904
2905      3293, 3293, 3293,  847, 1407, 1407, 1407, 1407, 3293, 3293,
2906      1407, 1407,  855,  855,  855,  855, 3293,  855, 3293,  855,
2907      1414, 1414, 1414, 1414, 3293, 3293, 1414, 1414, 1093, 1093,
2908      1093, 1093, 1093, 1093, 1093, 1093, 1093, 1620, 1620, 1620,
2909      1620, 1620, 1620, 1620, 1620, 1620,  672,  672,  672, 3293,
2910      3293, 3293,  672, 1157, 1157, 1157, 1157, 3293, 3293, 1157,
2911      1157, 1163, 1163, 1163, 1163, 3293, 3293, 1163, 1163,  684,
2912       684,  684, 3293, 3293, 3293,  684, 1172, 1172, 1172, 1172,
2913      3293, 3293, 1172, 1172, 1182, 1182, 1182, 1182, 3293, 3293,
2914      1182, 1182, 1190, 1190, 1190, 1190, 3293, 3293, 1190, 1190,
2915
2916      1206, 1206, 1206, 1206, 3293, 3293, 1206, 1206,  711,  711,
2917       711, 3293, 3293, 3293,  711, 1231, 1231, 1231, 1231, 3293,
2918      3293, 1231, 1231, 1238, 1238, 1238, 1238, 3293, 3293, 1238,
2919      1238,  732,  732,  732, 3293, 3293, 3293,  732, 1263, 1263,
2920      1263, 1263, 3293, 3293, 1263, 1263, 1268, 1268, 1268, 1268,
2921      3293, 3293, 1268, 1268,  753,  753,  753, 3293, 3293, 3293,
2922       753,  761,  761,  761, 3293, 3293, 3293,  761, 1287, 1287,
2923      1287, 1287, 3293, 3293, 1287, 1287, 1295, 1295, 1295, 1295,
2924      3293, 3293, 1295, 1295,  771,  771,  771, 3293, 3293, 3293,
2925       771,  776,  776,  776, 3293, 3293, 3293,  776, 1322, 1322,
2926
2927      1322, 1322, 3293, 3293, 1322, 1322,  796,  796,  796,  796,
2928      3293,  796, 3293,  796, 1334, 1334, 1334, 1334, 3293, 3293,
2929      1334, 1334,  810,  810,  810, 3293, 3293, 3293,  810, 1359,
2930      1359, 1359, 1359, 3293, 3293, 1359, 1359,  821,  821,  821,
2931      3293, 3293, 3293,  821,  827,  827,  827, 3293, 3293, 3293,
2932       827, 1376, 1376, 1376, 1376, 3293, 3293, 1376, 1376,  832,
2933       832,  832, 3293, 3293, 3293,  832, 1386, 1386, 1386, 1386,
2934      3293, 3293, 1386, 1386,  839,  839,  839, 3293, 3293, 3293,
2935       839, 1396, 1396, 1396, 1396, 3293, 3293, 1396, 1396,  847,
2936       847,  847, 3293, 3293, 3293,  847, 1414, 1414, 1414, 1414,
2937
2938      3293, 3293, 1414, 1414, 1093, 1093, 1093, 1093, 1093, 1093,
2939      1093, 1093, 1093, 1620, 1620, 1620, 1620, 1620, 1620, 1620,
2940      1620, 1620,  672,  672,  672, 3293, 3293, 3293,  672, 1157,
2941      1157, 1157, 1157, 3293, 3293, 1157, 1157, 1163, 1163, 1163,
2942      1163, 3293, 3293, 1163, 1163,  684,  684,  684,  684, 3293,
2943       684, 3293,  684, 1172, 1172, 1172, 1172, 3293, 3293, 1172,
2944      1172, 1182, 1182, 1182, 1182, 3293, 3293, 1182, 1182, 1190,
2945      1190, 1190, 1190, 3293, 3293, 1190, 1190, 1206, 1206, 1206,
2946      1206, 3293, 3293, 1206, 1206,  711,  711,  711, 3293, 3293,
2947      3293,  711, 1231, 1231, 1231, 1231, 3293, 3293, 1231, 1231,
2948
2949       732,  732,  732, 3293, 3293, 3293,  732, 1263, 1263, 1263,
2950      1263, 3293, 3293, 1263, 1263, 1268, 1268, 1268, 1268, 3293,
2951      3293, 1268, 1268,  753,  753,  753,  753, 3293,  753, 3293,
2952       753,  761,  761,  761,  761, 3293,  761, 3293,  761, 1287,
2953      1287, 1287, 1287, 3293, 3293, 1287, 1287, 1295, 1295, 1295,
2954      1295, 3293, 3293, 1295, 1295,  771,  771,  771,  771, 3293,
2955       771, 3293,  771,  776,  776,  776, 3293, 3293, 3293,  776,
2956      1322, 1322, 1322, 1322, 3293, 3293, 1322, 1322,  796,  796,
2957       796,  796, 3293,  796, 3293,  796, 1334, 1334, 1334, 1334,
2958      3293, 3293, 1334, 1334,  810,  810,  810,  810, 3293,  810,
2959
2960      3293,  810,  821,  821,  821, 3293, 3293, 3293,  821,  827,
2961       827,  827, 3293, 3293, 3293,  827,  832,  832,  832, 3293,
2962      3293, 3293,  832, 1386, 1386, 1386, 1386, 3293, 3293, 1386,
2963      1386,  839,  839,  839, 3293, 3293, 3293,  839, 1396, 1396,
2964      1396, 1396, 3293, 3293, 1396, 1396,  847,  847,  847, 3293,
2965      3293, 3293,  847, 1414, 1414, 1414, 1414, 3293, 3293, 1414,
2966      1414, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
2967      1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620, 1620,  672,
2968       672,  672, 3293, 3293, 3293,  672, 1163, 1163, 1163, 1163,
2969      3293, 3293, 1163, 1163, 1172, 1172, 1172, 1172, 3293, 3293,
2970
2971      1172, 1172, 1182, 1182, 1182, 1182, 3293, 3293, 1182, 1182,
2972      1190, 1190, 1190, 1190, 3293, 3293, 1190, 1190,  711,  711,
2973       711, 3293, 3293, 3293,  711,  732,  732,  732, 3293, 3293,
2974      3293,  732, 1263, 1263, 1263, 1263, 3293, 3293, 1263, 1263,
2975       753,  753,  753, 3293, 3293, 3293,  753, 2869, 2869, 2869,
2976      2869, 2869, 2869, 2869, 2869, 2869, 2870, 2870, 2870, 2870,
2977      2870, 2870, 2870, 2870, 2870, 2930, 2930, 2930, 2930, 2930,
2978      2930, 2930, 2930, 2930, 2933, 2933, 2933, 2933, 2933, 2933,
2979      2933, 2933, 2933, 2977, 2977, 2977, 2977, 2977, 2977, 2977,
2980      2977, 2977, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979,
2981
2982      2979,  239, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
2983      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
2984      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
2985      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
2986      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
2987      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
2988      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
2989      3293, 3293, 3293, 3293, 3293, 3293
2990     } ;
2991
2992 static yyconst flex_int16_t yy_chk[11977] =
2993     {   0,
2994         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
2995         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
2996         4,   10,  331,    5,    0,    9,    6,    0,   10,    7,
2997         8,    8,    8,  244,   11,   13,   13,   12,   14,   14,
2998        13,   13,  282,   14,   14,  245,    8,   17,   17,  244,
2999        13,   15,   15,   14,   15,  248,   15,   16,   16, 1015,
3000        16,  245,   16,   18,   18, 1015,   15,   21,   21,   21,
3001       331,  248,   16,   22,   22,   22,   23,   23,   23,   24,
3002        24,   24,  355,   21,   25,   25,   25,  355, 1465,   22,
3003       343,   17,   23, 1469,  282,   24,  242,  242,  242, 1474,
3004
3005        25,  243,  243,  243,  247,  247,  247,   18,   19,   19,
3006        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
3007        19,   19,   19,  401,   19,   19,   19,   19,   19,   26,
3008        26,   26,   27,   27,   27,   28,   28,   28,  343,   29,
3009        29,   29,   30,   30,   30,   26,  270,  287,   27,  291,
3010       365,   28,  301,   19,   19,   29,  291,  437,   30,  267,
3011       267,  267,  270,  287,   19,  275,  275,  275,  301,  437,
3012       258,  365,  401,   19,   20,   20,   20,   20,   20,   20,
3013        20,   20,   20,   20,   20,   20,   20,   20,   20,  543,
3014        20,   20,   20,   20,   20,   31,   31,   31,   32,   32,
3015
3016        32,   33,   33,   33,  543,   34,   34,   34,   35,   35,
3017        35,   31,  258,  632,   32,  558,  632,   33,  258,   20,
3018        20,   34,  306,  258,   35,   36,   36,   36,  258,  306,
3019        20,   37,   37,   37,   38,   38,   38,  734,  306,   20,
3020       734,   36,   39,   39,   39, 1475,  311,   37, 1480,  323,
3021        38,   40,   40,   40,  284,  284,  284,  376,   39,  293,
3022       293,  293,  311,  558,  294,  323, 1481,   40,   41,   41,
3023        41,   41,   41,   41,   41,   41,   41,   41,   41,   41,
3024        41,   41,   41,  596,   41,   41,   41,   41,   41,   43,
3025        43,   43,   44,   44,   44,   45,   45,   45,  387,   46,
3026
3027        46,   46,   47,   47,   47,   43,  370,  651,   44,  376,
3028      1496,   45,  294,   41,   41,   46,  294,  336,   47,   41,
3029       370,  651,   41,  298,  298,  298,  305,  305,  305,  308,
3030       308,  308,  596,  336,   41,   42,   42,   42,   42,   42,
3031        42,   42,   42,   42,   42,   42,   42,   42,   42,   42,
3032       387,   42,   42,   42,   42,   42,   48,   48,   48,   49,
3033        49,   49,   50,   50,   50,  368,   53,   53,   53,   54,
3034        54,   54,   48,  368, 1497,   49,  644,  318,   50,  368,
3035        42,   42,   53,  398,  318,   54,   42,  398,  403,   42,
3036       317,  317,  317,  318,  320,  320,  320,  329,  329,  329,
3037
3038       644,   42,   51,   51,   51,   51,   51,   51,   51,   51,
3039        51,   51,   51,   51,   51,   51,   51,  623,   51,   51,
3040        51,   51,   51,   57,   57,   57,   58,   58,   58,   61,
3041        61,   61,  623,   62,   62,   62,   63,   63,   63,   57,
3042       403, 1499,   58, 1521,  656,   61,  666,   51,   51,   62,
3043       348,  363,   63,   64,   64,   64,  333,  333,  333,  341,
3044       341,  341,  345,  345,  345,  519,  348,  363,  656,   64,
3045       666,   51,   52,   52,   52,   52,   52,   52,   52,   52,
3046        52,   52,   52,   52,   52,   52,   52,  669,   52,   52,
3047        52,   52,   52,   65,   65,   65,   66,   66,   66,   67,
3048
3049        67,   67,  519,   68,   68,   68,   71,   71,   71,   65,
3050       486,  669,   66,  358,  486,   67, 1522,   52,   52,   68,
3051       358,  851,   71,   72,   72,   72,  357,  357,  357,  358,
3052       360,  360,  360,  374,  374,  374,  378,  378,  378,   72,
3053      1525,   52,   55,   55,   55,   55,   55,   55,   55,   55,
3054        55,   55,   55,   55,   55,   55,   55,  851,   55,   55,
3055        55,   55,   55,   73,   73,   73,   74,   74,   74,   75,
3056        75,   75, 1527,   76,   76,   76,   77,   77,   77,   73,
3057       381,  392,   74,  554,  408,   75,  371,   55,   55,   76,
3058       554,   55,   77, 1529,  371, 1536,  381,  392,   55,  371,
3059
3060       408,   55,   56,   56,   56,   56,   56,   56,   56,   56,
3061        56,   56,   56,   56,   56,   56,   56, 1537,   56,   56,
3062        56,   56,   56,   78,   78,   78,   81,   81,   81,   82,
3063        82,   82,  662,   85,   85,   85,   86,   86,   86,   78,
3064       420,  432,   81,  415,  446,   82,  662,   56,   56,   85,
3065       415,   56,   86,  385,  385,  385,  420,  432,   56,  415,
3066       446,   56,   59,   59,   59,   59,   59,   59,   59,   59,
3067        59,   59,   59,   59,   59,   59,   59, 1538,   59,   59,
3068        59,   59,   59,   87,   87,   87,   88,   88,   88,   89,
3069        89,   89,  427,   90,   90,   90,   91,   91,   91,   87,
3070
3071       668, 1539,   88, 1541, 1547,   89, 1549,   59,   59,   90,
3072       457,  468,   91,   59,  668,  441,   59,  389,  389,  389,
3073       400,  400,  400,  405,  405,  405,  457,  468,   59,   60,
3074        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
3075        60,   60,   60,   60,  427,   60,   60,   60,   60,   60,
3076        92,   92,   92,   95,   95,   95,   96,   96,   96,  501,
3077        97,   97,   97,   98,   98,   98,   92,  441, 1128,   95,
3078      1551, 1552,   96, 1557,   60,   60,   97,  479,  490,   98,
3079        60, 1128,  503,   60,  414,  414,  414,  417,  417,  417,
3080       424,  424,  424,  479,  490,   60,   69,   69,   69,   69,
3081
3082        69,   69,   69,   69,   69,   69,   69,   69,   69,   69,
3083        69,  501,   69,   69,   69,   69,   69,   99,   99,   99,
3084       100,  100,  100,  101,  101,  101,  505,  102,  102,  102,
3085       105,  105,  105,   99,  503, 1559,  100,  490, 1560,  101,
3086      1562,   69,   69,  102,  495,  510,  105,   69,  429,  429,
3087       429,  439,  439,  439,  443,  443,  443,  451,  451,  451,
3088       495,  510,   69,   70,   70,   70,   70,   70,   70,   70,
3089        70,   70,   70,   70,   70,   70,   70,   70,  505,   70,
3090        70,   70,   70,   70,  106,  106,  106,  107,  107,  107,
3091       108,  108,  108,  521,  109,  109,  109,  110,  110,  110,
3092
3093       106, 1096,  526,  107,  452, 1096,  108, 1417,   70,   70,
3094       109,  452,  463,  110,   70,  454,  454,  454,  526,  463,
3095       452,  462,  462,  462,  465,  465,  465, 1417,  463,   70,
3096        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
3097        79,   79,   79,   79,   79,  521,   79,   79,   79,   79,
3098        79,  111,  111,  111,  112,  112,  112,  115,  115,  115,
3099       583,  116,  116,  116,  119,  119,  119,  111,  537,  551,
3100       112,  474,  563,  115, 1563,   79,   79,  116,  474,   79,
3101       119,  473,  473,  473,  537,  551,   79,  474,  563,   79,
3102       476,  476,  476,   79, 1564,   79,   79,   80,   80,   80,
3103
3104        80,   80,   80,   80,   80,   80,   80,   80,   80,   80,
3105        80,   80,  583,   80,   80,   80,   80,   80,  120,  120,
3106       120,  121,  121,  121,  122,  122,  122,  670,  123,  123,
3107       123,  124,  124,  124,  120,  574,  588,  121,  489,  603,
3108       122,  670,   80,   80,  123,  489,   80,  124,  488,  488,
3109       488,  574,  588,   80,  489,  603,   80,  492,  492,  492,
3110        80, 1565,   80,   80,   83,   83,   83,   83,   83,   83,
3111        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3112        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3113        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3114
3115        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3116        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3117        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
3118        83,   83,   83,   83,   83,   83,   83,   83,   93,   93,
3119        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
3120        93,   93,   93, 1568,   93,   93,   93,   93,   93,  125,
3121       125,  125,  126,  126,  126,  129,  129,  129, 1569,  130,
3122       130,  130,  131,  131,  131,  125,  614, 1570,  126, 1572,
3123       650,  129,  598,   93,   93,  130, 1575,  650,  131,  499,
3124       499,  499,  614,  650,   93,   94,   94,   94,   94,   94,
3125
3126        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
3127      1584,   94,   94,   94,   94,   94,  132,  132,  132,  133,
3128       133,  133,  134,  134,  134, 1587,  135,  135,  135,  136,
3129       136,  136,  132,  502,  598,  133, 1595,  654,  134,  541,
3130        94,   94,  135,  541,  654,  136,  502,  541,  502,  280,
3131       654,   94,  103,  103,  103,  103,  103,  103,  103,  103,
3132       103,  103,  103,  103,  103,  103,  103, 1597,  103,  103,
3133       103,  103,  103,  139,  139,  139,  140,  140,  140,  143,
3134       143,  143,  645,  144,  144,  144, 1599,  280, 1600,  139,
3135       792,  862,  140,  645, 1229,  143,  645,  103,  103,  144,
3136
3137       103,  280,  103,  280,  792,  280, 1229,  862,  103,  507,
3138       507,  507,  518,  518,  518,  103,  500,  888,  103,  104,
3139       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3140       104,  104,  104,  104,  888,  104,  104,  104,  104,  104,
3141       147,  147,  147,  148,  148,  148,  151,  151,  151,  657,
3142       152,  152,  152, 1601, 1603,  500,  147,  980, 1608,  148,
3143       657, 1611,  151,  657,  104,  104,  152,  104,  500,  104,
3144       500,  523,  523,  523,  980,  104,  531,  531,  531,  534,
3145       534,  534,  104, 1612, 1079,  104,  113,  113,  113,  113,
3146       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3147
3148       113, 1079,  113,  113,  113,  113,  113,  153,  153,  153,
3149       154,  154,  154,  157,  157,  157, 1614,  158,  158,  158,
3150       159,  159,  159,  153, 1620, 1623,  154,  532,  546,  157,
3151      1626,  113,  113,  158,  532,  546,  159,  113,  545,  545,
3152       545, 1627,  113,  532,  546,  548,  548,  548,  556,  556,
3153       556,  560,  560,  560,  113,  114,  114,  114,  114,  114,
3154       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
3155      1628,  114,  114,  114,  114,  114,  160,  160,  160,  161,
3156       161,  161,  162,  162,  162, 1629,  163,  163,  163,  164,
3157       164,  164,  160, 1630, 1631,  161,  569,  661,  162, 1632,
3158
3159       114,  114,  163,  569,  661,  164,  114,  568,  568,  568,
3160       661,  114,  569,  571,  571,  571,  581,  581,  581,  585,
3161       585,  585, 1633,  114,  117,  117,  117,  117,  117,  117,
3162       117,  117,  117,  117,  117,  117,  117,  117,  117, 1635,
3163       117,  117,  117,  117,  117,  165,  165,  165,  166,  166,
3164       166,  167,  167,  167,  790,  168,  168,  168,  169,  169,
3165       169,  165,  793, 1636,  166,  790, 1638,  167,  790,  117,
3166       117,  168, 1639,  793,  169, 1642,  793,  117,  118,  118,
3167       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
3168       118,  118,  118, 1643,  118,  118,  118,  118,  118,  170,
3169
3170       170,  170,  171,  171,  171,  172,  172,  172, 1645,  173,
3171       173,  173,  174,  174,  174,  170, 1133, 1326,  171, 1647,
3172      1650,  172, 1619,  118,  118,  173, 1651, 1652,  174, 1133,
3173      1326,  118,  127,  127,  127,  127,  127,  127,  127,  127,
3174       127,  127,  127,  127,  127,  127,  127, 1619,  127,  127,
3175       127,  127,  127,  175,  175,  175,  176,  176,  176,  179,
3176       179,  179, 1653,  180,  180,  180,  181,  181,  181,  175,
3177      1654, 1656,  176,  608, 1657,  179, 1661,  127,  127,  180,
3178       608,  127,  181,  595,  595,  595, 1669, 1673,  127,  608,
3179      1674,  127,  600,  600,  600,  611,  611,  611,  127,  128,
3180
3181       128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
3182       128,  128,  128,  128, 1706,  128,  128,  128,  128,  128,
3183       182,  182,  182,  183,  183,  183,  184,  184,  184, 1707,
3184       185,  185,  185,  186,  186,  186,  182, 1714, 1725,  183,
3185       621, 1726,  184, 1727,  128,  128,  185,  621,  128,  186,
3186       620,  620,  620, 1728, 1730,  128,  621, 1738,  128,  622,
3187       622,  622,  631,  631,  631,  128,  137,  137,  137,  137,
3188       137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
3189       137, 1740,  137,  137,  137,  137,  137,  189,  189,  189,
3190       190,  190,  190,  193,  193,  193, 1744,  194,  194,  194,
3191
3192       197,  197,  197,  189, 1747, 1749,  190,  667, 1750,  193,
3193      1752,  137,  137,  194,  667, 1753,  197,  137, 1754, 1755,
3194       667,  631,  137,  138,  138,  138,  138,  138,  138,  138,
3195       138,  138,  138,  138,  138,  138,  138,  138, 1759,  138,
3196       138,  138,  138,  138,  198,  198,  198,  199,  199,  199,
3197       200,  200,  200, 1760,  201,  201,  201,  202,  202,  202,
3198       198, 1761, 1763,  199,  791,  794,  200, 1767,  138,  138,
3199       201,  791,  794,  202,  138, 1771, 1775,  791,  794,  138,
3200       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3201       141,  141,  141,  141,  141, 1777,  141,  141,  141,  141,
3202
3203       141,  203,  203,  203,  204,  204,  204,  207,  207,  207,
3204      1779,  208,  208,  208,  211,  211,  211,  203,  948, 1785,
3205       204, 1792, 1796,  207, 1797,  141,  141,  208,  948, 1799,
3206       211,  212,  212,  212, 1811,  948,  141,  865,  865,  865,
3207      1812,  865, 1113, 1113, 1113, 1813, 1815,  212, 1806,  141,
3208       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3209       142,  142,  142,  142,  142, 1806,  142,  142,  142,  142,
3210       142,  213,  213,  213,  214,  214,  214,  215,  215,  215,
3211      1808,  216,  216,  216,  217,  217,  217,  213, 1801, 1814,
3212       214, 1816, 1818,  215, 1801,  142,  142,  216, 1801, 1819,
3213
3214       217,  218,  218,  218, 1801, 1814,  142,  874,  874,  874,
3215      1820,  874, 1821, 1808,  874, 1823, 1807,  218, 1824,  142,
3216       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3217       145,  145,  145,  145,  145, 1828,  145,  145,  145,  145,
3218       145,  221,  221,  221,  222,  222,  222,  223,  223,  223,
3219      1830,  224,  224,  224,  225,  225,  225,  221, 1807, 1831,
3220       222, 1832, 1834,  223, 1835,  145,  145,  224, 1836, 1833,
3221       225, 1134, 1134, 1134, 1433, 1433, 1433, 1837,  878,  878,
3222       878,  145,  897,  897,  897, 1833,  145,  146,  146,  146,
3223       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3224
3225       146,  146, 1840,  146,  146,  146,  146,  146,  226,  226,
3226       226,  227,  227,  227,  228,  228,  228, 1438, 1438, 1438,
3227      1433,  639,  639,  639,  226, 1842, 1847,  227, 1849, 1854,
3228       228, 1877,  146,  146,  231,  231,  232,  232,  639,  231,
3229       425,  232,  878,  909,  909,  909,  897, 1878,  146,  231,
3230       425,  232, 1879,  146,  149,  149,  149,  149,  149,  149,
3231       149,  149,  149,  149,  149,  149,  149,  149,  149, 1883,
3232       149,  149,  149,  149,  149,  235,  235,  235,  231,  425,
3233       232,  236,  236,  236, 1884,  425, 1890, 1891,  686,  686,
3234       686,  235,  425,  876,  876,  876,  425,  236,  279,  149,
3235
3236       149, 1894,  149,  149,  149,  686, 1895,  909,  279, 1901,
3237       149,  876, 1907,  149,  991,  991,  991, 1441, 1441, 1441,
3238       149,  150,  150,  150,  150,  150,  150,  150,  150,  150,
3239       150,  150,  150,  150,  150,  150,  279,  150,  150,  150,
3240       150,  150,  702,  702,  702,  703,  703,  703, 1909, 1910,
3241       279, 1913,  279, 1919,  279,  713,  713,  713, 1921,  702,
3242      1927, 1931,  703,  916,  916,  916,  150,  150, 1934,  150,
3243       150,  150,  713, 1446, 1446, 1446, 1938,  150,  991, 1940,
3244       150,  916, 1435, 1435, 1435, 1941, 1942,  150,  155,  155,
3245       155,  155,  155,  155,  155,  155,  155,  155,  155,  155,
3246
3247       155,  155,  155, 1943,  155,  155,  155,  155,  155,  715,
3248       715,  715,  729,  729,  729,  735,  735,  735,  744,  744,
3249       744,  745,  745,  745, 1945, 1951,  715, 1953, 1435,  729,
3250      1955, 1957,  735,  155,  155,  744, 1970, 1971,  745,  755,
3251       755,  755,  924,  924,  924, 1972,  924, 1975, 1976,  924,
3252      1978, 1452, 1452, 1452, 1979, 1980,  755,  155,  156,  156,
3253       156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
3254       156,  156,  156, 1982,  156,  156,  156,  156,  156,  763,
3255       763,  763,  767,  767,  767,  780,  780,  780,  806,  806,
3256       806,  812,  812,  812, 1987, 1993,  763, 1452, 1977,  767,
3257
3258      1987, 1994,  780,  156,  156,  806, 1977, 1981,  812,  829,
3259       829,  829,  938,  938,  938, 1981,  938, 1995, 1989,  938,
3260      1996, 1454, 1454, 1454, 2000, 2002,  829,  156,  177,  177,
3261       177,  177,  177,  177,  177,  177,  177,  177,  177,  177,
3262       177,  177,  177, 2003,  177,  177,  177,  177,  177,  835,
3263       835,  835,  841,  841,  841,  849,  849,  849,  873,  873,
3264       873,  912,  912,  912, 1989, 2004,  835, 1454, 2009,  841,
3265      2011, 2012,  849,  177,  177,  873, 2013, 2016,  912, 1988,
3266      2020,  177, 2027,  177, 2029, 2031,  177, 1455, 1455, 1455,
3267       177, 1634, 1634, 1634,  177,  178,  178,  178,  178,  178,
3268
3269       178,  178,  178,  178,  178,  178,  178,  178,  178,  178,
3270      1988,  178,  178,  178,  178,  178, 2055,  877,  877,  877,
3271       914,  914,  914, 2056,  920,  920,  920,  913,  913,  913,
3272       915,  915,  915, 1802, 2057,  877, 2063,  914, 2064, 1802,
3273       178,  178,  920, 1802,  913, 2068, 2072,  915,  178, 1802,
3274       178, 2073, 2077,  178,  877, 2080, 2083,  178, 1637, 1637,
3275      1637,  178,  187,  187,  187,  187,  187,  187,  187,  187,
3276       187,  187,  187,  187,  187,  187,  187,  913,  187,  187,
3277       187,  187,  187,  917,  917,  917,  923,  923,  923,  915,
3278      2084, 2085,  913,  921,  921,  921,  926,  926,  926, 2086,
3279
3280      2089,  917, 2092,  923,  928,  928,  928,  187,  187, 2096,
3281      2097,  921, 2098, 2110,  926,  940,  940,  940,  187,  940,
3282       917,  928,  940,  950,  950,  950, 2111,  950, 2114, 2116,
3283       950,  187,  188,  188,  188,  188,  188,  188,  188,  188,
3284       188,  188,  188,  188,  188,  188,  188, 2119,  188,  188,
3285       188,  188,  188,  927,  927,  927, 2126,  921,  930,  930,
3286       930,  931,  931,  931,  932,  932,  932,  929,  929,  929,
3287      2133,  927,  933,  933,  933,  930, 2135,  188,  188,  931,
3288      2136, 2137,  932, 2142,  929, 1640, 1640, 1640,  188,  933,
3289       953,  953,  953, 2143,  953, 2144, 2145,  953, 2146, 2147,
3290
3291       927,  188,  191,  191,  191,  191,  191,  191,  191,  191,
3292       191,  191,  191,  191,  191,  191,  191,  929,  191,  191,
3293       191,  191,  191,  934,  934,  934,  935,  935,  935,  937,
3294       937,  937,  929, 2148, 2149,  932,  936,  936,  936, 2150,
3295       934,  946,  946,  946,  935, 2151,  937,  191,  191,  939,
3296       939,  939, 2162, 2163,  936, 2154,  191, 2166,  191,  946,
3297      2169, 2173,  191, 1641, 1641, 1641,  939,  191,  191,  192,
3298       192,  192,  192,  192,  192,  192,  192,  192,  192,  192,
3299       192,  192,  192,  192, 2174,  192,  192,  192,  192,  192,
3300      2177,  941,  941,  941, 2178,  949,  949,  949, 2154,  942,
3301
3302       942,  942,  943,  943,  943, 2181, 2184,  936,  941,  944,
3303       944,  944,  949, 2185,  192,  192,  942, 2186, 2201,  943,
3304       967,  967,  967,  192,  967,  192,  944,  967, 2155,  192,
3305      1471, 1471, 1471, 2202,  192,  192,  195,  195,  195,  195,
3306       195,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3307       195,  942,  195,  195,  195,  195,  195,  943, 2208, 2209,
3308       944, 2215, 2216,  952,  952,  952,  945,  945,  945,  954,
3309       954,  954,  964,  964,  964, 2155, 1471,  947,  947,  947,
3310       952,  195,  195,  945, 2217, 2231,  954,  195, 2203, 2232,
3311       964, 2233,  974,  974,  974,  947,  974, 2254, 2203,  974,
3312
3313      2255, 2261,  195,  196,  196,  196,  196,  196,  196,  196,
3314       196,  196,  196,  196,  196,  196,  196,  196,  945,  196,
3315       196,  196,  196,  196,  947, 2266, 2268,  965,  965,  965,
3316       966,  966,  966,  968,  968,  968, 2269,  969,  969,  969,
3317       973,  973,  973, 2274, 2275,  965, 2276,  966,  196,  196,
3318      2277,  968, 2278, 2279,  196,  969, 2280,  973,  983,  983,
3319       983, 2281,  983, 2282, 2283,  983, 1644, 1644, 1644,  196,
3320       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3321       205,  205,  205,  205,  205,  965,  205,  205,  205,  205,
3322       205,  978,  978,  978,  979,  979,  979, 2288,  969, 2289,
3323
3324       982,  982,  982, 2291,  984,  984,  984, 2157, 2157,  978,
3325      2157, 2292,  979, 2293, 2294,  205,  205,  982, 2157, 2296,
3326       205,  984, 1649, 1649, 1649, 2157,  205,  206,  206,  206,
3327       206,  206,  206,  206,  206,  206,  206,  206,  206,  206,
3328       206,  206, 2287,  206,  206,  206,  206,  206, 2286,  985,
3329       985,  985, 2297,  985, 2300,  979,  985,  986,  986,  986,
3330       987,  987,  987,  989,  989,  989, 2301,  994,  994,  994,
3331      2304,  994,  206,  206,  994,  986, 2306,  206,  987, 2287,
3332      2286,  989, 2307,  206,  209,  209,  209,  209,  209,  209,
3333       209,  209,  209,  209,  209,  209,  209,  209,  209, 2309,
3334
3335       209,  209,  209,  209,  209, 2310, 2312,  990,  990,  990,
3336       993,  993,  993,  998,  998,  998, 2313, 2290,  999,  999,
3337       999,  987, 1001, 1001, 1001,  990, 2290,  993, 2295,  209,
3338       209,  998,  209, 2314,  209, 2326,  999, 2295, 2327, 1001,
3339       209, 1002, 1002, 1002, 2328, 1002, 2329, 2332, 1002, 2333,
3340      2339,  209,  210,  210,  210,  210,  210,  210,  210,  210,
3341       210,  210,  210,  210,  210,  210,  210,  990,  210,  210,
3342       210,  210,  210,  999, 1003, 1003, 1003, 1005, 1005, 1005,
3343      2340, 1008, 1008, 1008, 2347, 2348, 1004, 1004, 1004, 1006,
3344      1006, 1006, 1003, 1006, 1005, 2349, 1006,  210,  210, 1008,
3345
3346       210, 2357,  210, 2358, 1004, 1018, 1018, 1018,  210, 1018,
3347      2375, 2376, 1018, 1648, 1648, 1648, 1655, 1655, 1655,  210,
3348       219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
3349       219,  219,  219,  219,  219, 2335,  219,  219,  219,  219,
3350       219, 1004, 1012, 1012, 1012, 1017, 1017, 1017, 2335, 1009,
3351      1009, 1009, 2377, 1013, 1013, 1013, 1019, 1019, 1019, 1648,
3352      1012, 2336, 1017, 2380, 2382,  219,  219, 1009, 2383, 2384,
3353       219, 1013, 2385, 1019, 2336, 2386,  219, 1040, 1040, 1040,
3354       219, 1040, 2387, 2388, 1040, 2389,  219,  220,  220,  220,
3355       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3356
3357       220,  220, 2390,  220,  220,  220,  220,  220, 2391, 2392,
3358      1009, 1022, 1022, 1022, 1013, 1658, 1658, 1658, 1023, 1023,
3359      1023, 1026, 1026, 1026, 1027, 1027, 1027, 2393, 2398, 1022,
3360      2399, 2400,  220,  220, 2401, 2402, 1023,  220, 2403, 1026,
3361      2397, 2395, 1027,  220, 1046, 1046, 1046,  220, 1046, 2404,
3362      2405, 1046, 2406,  220,  229,  229,  229,  229,  229,  229,
3363       229,  229,  229,  229,  229,  229,  229,  229,  229, 1023,
3364       229,  229,  229,  229,  229, 1036, 1036, 1036, 1037, 1037,
3365      1037, 2395, 1027, 2397, 1039, 1039, 1039, 1042, 1042, 1042,
3366      1043, 1043, 1043, 1036, 2407, 2408, 1037, 2409, 2410,  229,
3367
3368       229, 1039, 1062, 1062, 1062, 1042, 1062,  229, 1043, 1062,
3369       229, 2411, 1646, 1646, 1646, 2414, 2415,  229,  230,  230,
3370       230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
3371       230,  230,  230, 2416,  230,  230,  230,  230,  230, 1045,
3372      1045, 1045, 1037, 1047, 1047, 1047, 2417, 2419, 1049, 1049,
3373      1049, 1053, 1053, 1053, 1043, 2420, 1045, 1054, 1054, 1054,
3374      1047, 2431, 2432,  230,  230, 1049, 1068, 1068, 1068, 1053,
3375      1068,  230, 2434, 1068,  230, 1054, 1646, 1659, 1659, 1659,
3376      2438,  230,  233,  233,  233,  233,  233,  233,  233,  233,
3377       233,  233,  233,  233,  233,  233,  233, 2439,  233,  233,
3378
3379       233,  233,  233, 2441, 1054, 1055, 1055, 1055, 1056, 1056,
3380      1056, 2396, 1057, 1057, 1057, 1058, 1058, 1058, 1059, 1059,
3381      1059, 2443, 1055, 2444, 2440, 1056, 2452,  233,  233, 1057,
3382      1061, 1061, 1061, 1058,  233, 2440, 1059, 1074, 1074, 1074,
3383       233, 1074, 2453, 2454, 1074, 2466, 2485, 1061, 2396,  233,
3384       234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
3385       234,  234,  234,  234,  234, 2486,  234,  234,  234,  234,
3386       234, 1057, 1063, 1063, 1063, 1064, 1064, 1064, 2442, 1059,
3387      1067, 1067, 1067, 1070, 1070, 1070, 1071, 1071, 1071, 2442,
3388      1063, 2490, 2491, 1064, 2492,  234,  234, 1067, 1073, 1073,
3389
3390      1073, 1070,  234, 2493, 1071, 1077, 1077, 1077,  234, 1078,
3391      1078, 1078, 1081, 1081, 1081, 1073, 2494,  234,  276, 1662,
3392      1662, 1662, 2495, 1077, 2496,  276, 2497, 1078, 2498, 1081,
3393      1085, 1085, 1085, 2499,  276,  276, 1064, 1082, 1082, 1082,
3394      2504, 1082, 2505, 2506, 1082, 1716, 1716, 1716, 1085, 1086,
3395      1086, 1086, 1071, 1091, 1091, 1091, 2458, 2501, 1092, 1092,
3396      1092, 2507,  276,  276,  276, 1662, 2458, 1086, 2502,  276,
3397       276, 1091, 2458,  276,  276, 1078, 1092,  276, 2508,  276,
3398       276,  276,  278, 1105, 1105, 1105, 2501, 1105, 2509, 2510,
3399      1105, 1109, 1109, 1109, 1110, 1110, 1110, 2511,  278,  278,
3400
3401      1112, 1112, 1112, 1149, 1149, 1149, 1153, 1153, 1153, 1109,
3402      2502, 2480, 1110, 1086, 1156, 1156, 1156, 2503, 1112, 2512,
3403      1149, 2480, 1092, 1153, 2480, 2513,  278,  278,  278, 1817,
3404      1817, 1817, 1156,  278,  278, 2514, 2515,  278,  278, 2481,
3405      2516,  278, 2519,  278,  278,  278, 1150, 1150, 1150, 2481,
3406      1150, 2520, 2481, 1150, 1154, 1154, 1154, 2521, 1154, 2503,
3407      2523, 1154, 1157, 1157, 1157, 1159, 1159, 1159, 1162, 1162,
3408      1162, 1163, 1163, 1163, 1165, 1165, 1165, 1167, 1167, 1167,
3409      1157, 1167, 2524, 1159, 1167, 2529, 1162, 2534, 2535, 1163,
3410      2536, 2537, 1165, 1171, 1171, 1171, 1172, 1172, 1172, 1174,
3411
3412      1174, 1174, 1175, 1175, 1175, 1176, 1176, 1176, 2538, 1176,
3413      2539, 1171, 1176, 2540, 1172, 2541, 2542, 1174, 2550, 1175,
3414      1179, 1179, 1179, 2552, 1180, 1180, 1180, 1165, 1180, 1159,
3415      2556, 1180, 1181, 1181, 1181, 2557, 2558, 1179, 1182, 1182,
3416      1182, 1184, 1184, 1184, 1185, 1185, 1185, 2559, 1174, 2560,
3417      1181, 1186, 1186, 1186, 2561, 1186, 1182, 2563, 1186, 1184,
3418      2575, 1185, 1187, 1187, 1187, 1188, 1188, 1188, 2576, 1188,
3419      2578, 2579, 1188, 1189, 1189, 1189, 1190, 1190, 1190, 1187,
3420      1192, 1192, 1192, 1193, 1193, 1193, 2592, 1193, 2570, 2593,
3421      1193, 1189, 2594, 2595, 1190, 1196, 1196, 1196, 1192, 1196,
3422
3423      2571, 2570, 1196, 1184, 1199, 1199, 1199, 1200, 1200, 1200,
3424      2597, 1200, 2598, 2571, 1200, 1205, 1205, 1205, 1206, 1206,
3425      1206, 1199, 1208, 1208, 1208, 1212, 1212, 1212, 2577, 1212,
3426      2599, 2600, 1212, 1205, 2606, 2580, 1206, 1215, 1215, 1215,
3427      1208, 2577, 1192, 1216, 1216, 1216, 2607, 1216, 2580, 2608,
3428      1216, 1219, 1219, 1219, 1215, 1220, 1220, 1220, 2609, 1220,
3429      2603, 2610, 1220, 1230, 1230, 1230, 2158, 2158, 1219, 2158,
3430      1208, 1231, 1231, 1231, 1233, 1233, 1233, 2158, 1234, 1234,
3431      1234, 1230, 1234, 2611, 2158, 1234, 1237, 1237, 1237, 1231,
3432      2612, 2613, 1233, 1238, 1238, 1238, 1240, 1240, 1240, 1243,
3433
3434      1243, 1243, 2614, 2615, 1237, 1244, 1244, 1244, 2603, 1244,
3435      2616, 1238, 1244, 2604, 1240, 2617, 1243, 1250, 1250, 1250,
3436      1251, 1251, 1251, 2459, 1253, 1253, 1253, 1255, 1255, 1255,
3437      1256, 1256, 1256, 2459, 1256, 1250, 2618, 1256, 1251, 2459,
3438      2621, 1233, 1253, 2622, 1255, 1259, 1259, 1259, 2604, 1259,
3439      2625, 2631, 1259, 1262, 1262, 1262, 1240, 1263, 1263, 1263,
3440      1265, 1265, 1265, 1266, 1266, 1266, 1267, 1267, 1267, 2627,
3441      2639, 1262, 1268, 1268, 1268, 1263, 2640, 2641, 1265, 2627,
3442      1266, 1270, 1270, 1270, 1267, 1278, 1278, 1278, 2642, 1253,
3443      1268, 1272, 1272, 1272, 2643, 1272, 2644, 2645, 1272, 1270,
3444
3445      1279, 1279, 1279, 1278, 1281, 1281, 1281, 1283, 1283, 1283,
3446      2646, 1283, 2647, 2628, 1283, 1286, 1286, 1286, 1279, 1287,
3447      1287, 1287, 1281, 2628, 2651, 1265, 1289, 1289, 1289, 2654,
3448      1270, 2655, 2656, 1286, 1290, 1290, 1290, 1287, 1290, 2657,
3449      2658, 1290, 2659, 2660, 1289, 1294, 1294, 1294, 1295, 1295,
3450      1295, 1297, 1297, 1297, 1298, 1298, 1298, 1299, 1299, 1299,
3451      1300, 1300, 1300, 1294, 1281, 2663, 1295, 2667, 2668, 1297,
3452      2669, 1298, 2670, 2671, 1299, 1301, 1301, 1301, 1300, 1303,
3453      1303, 1303, 2672, 1308, 1308, 1308, 1289, 1308, 2673, 2674,
3454      1308, 2675, 2676, 1301, 1311, 1311, 1311, 1303, 1312, 1312,
3455
3456      1312, 1297, 1312, 2677, 1299, 1312, 1315, 1315, 1315, 2678,
3457      2694, 1311, 1316, 1316, 1316, 1318, 1318, 1318, 1321, 1321,
3458      1321, 1322, 1322, 1322, 1315, 1324, 1324, 1324, 2681, 2695,
3459      1316, 2696, 2697, 1318, 2682, 2698, 1321, 2699, 2681, 1322,
3460      1329, 1329, 1329, 1324, 2682, 2700, 1303, 1333, 1333, 1333,
3461      1334, 1334, 1334, 1336, 1336, 1336, 2701, 1329, 2703, 2707,
3462      1338, 1338, 1338, 2708, 1338, 1333, 1318, 1338, 1334, 2709,
3463      2712, 1336, 1324, 1342, 1342, 1342, 1343, 1343, 1343, 1345,
3464      1345, 1345, 1347, 1347, 1347, 2713, 1347, 2714, 2715, 1347,
3465      2718, 1342, 2703, 2725, 1343, 2726, 2727, 1345, 1350, 1350,
3466
3467      1350, 1351, 1351, 1351, 2728, 1351, 2732, 2740, 1351, 1352,
3468      1352, 1352, 2741, 2742, 1336, 1350, 1353, 1353, 1353, 2743,
3469      1354, 1354, 1354, 2744, 1354, 2745, 1352, 1354, 1356, 1356,
3470      1356, 2746, 2747, 1353, 1358, 1358, 1358, 1359, 1359, 1359,
3471      1345, 1361, 1361, 1361, 2753, 1356, 1362, 1362, 1362, 1363,
3472      1363, 1363, 1358, 1363, 2754, 1359, 1363, 2756, 2757, 1361,
3473      1364, 1364, 1364, 1362, 1365, 1365, 1365, 2759, 1365, 2760,
3474      2761, 1365, 1367, 1367, 1367, 2762, 2763, 1364, 1368, 1368,
3475      1368, 1370, 1370, 1370, 1372, 1372, 1372, 2764, 1372, 2765,
3476      1367, 1372, 1375, 1375, 1375, 2766, 1368, 2767, 2768, 1370,
3477
3478      2769, 1361, 1376, 1376, 1376, 1378, 1378, 1378, 2770, 2771,
3479      1375, 1381, 1381, 1381, 2774, 1381, 2775, 2776, 1381, 2777,
3480      1376, 2785, 2786, 1378, 1385, 1385, 1385, 1386, 1386, 1386,
3481      2788, 1388, 1388, 1388, 1390, 1390, 1390, 2789, 1390, 2790,
3482      2792, 1390, 1385, 2794, 2800, 1386, 2801, 2803, 1370, 1388,
3483      1394, 1394, 1394, 1395, 1395, 1395, 1396, 1396, 1396, 1398,
3484      1398, 1398, 1400, 1400, 1400, 2804, 2805, 1394, 1404, 1404,
3485      1404, 1395, 1378, 2807, 1396, 2812, 2813, 1398, 2814, 1400,
3486      1401, 1401, 1401, 2815, 1401, 1404, 2794, 1401, 1406, 1406,
3487      1406, 2817, 1388, 1407, 1407, 1407, 1409, 1409, 1409, 1411,
3488
3489      1411, 1411, 2821, 1413, 1413, 1413, 1406, 1414, 1414, 1414,
3490      2823, 1407, 2824, 2826, 1409, 2827, 1411, 1416, 1416, 1416,
3491      1398, 1413, 1418, 1418, 1418, 1414, 1424, 1424, 1424, 1404,
3492      1461, 1461, 1461, 2832, 1461, 1416, 2833, 1461, 2834, 2835,
3493      1418, 1418, 2836, 1409, 1424, 1466, 1466, 1466, 2837, 1466,
3494      2838, 2839, 1466, 1470, 1470, 1470, 1472, 1472, 1472, 1473,
3495      1473, 1473, 2840, 2841, 1416, 1476, 1476, 1476, 1477, 1477,
3496      1477, 1470, 1477, 1472, 2842, 1477, 2843, 1473, 1482, 1482,
3497      1482, 2844, 1482, 1476, 2845, 1482, 1485, 1485, 1485, 1486,
3498      1486, 1486, 2846, 1486, 2847, 2848, 1486, 2852, 1489, 1489,
3499
3500      1489, 2853, 1489, 2854, 1485, 1489, 1492, 1492, 1492, 1493,
3501      1493, 1493, 2855, 1493, 1470, 2858, 1493, 1498, 1498, 1498,
3502      2859, 2860, 1476, 2861, 1492, 2862, 1473, 1500, 1500, 1500,
3503      1501, 1501, 1501, 1485, 1498, 1502, 1502, 1502, 1503, 1503,
3504      1503, 1504, 1504, 1504, 2863, 1500, 2868, 1501, 1509, 1509,
3505      1509, 2872, 1502, 1492, 2865, 1503, 2867, 2868, 1504, 1505,
3506      1505, 1505, 2873, 1505, 2875, 1509, 1505, 1506, 1506, 1506,
3507      2867, 1506, 2876, 2878, 1506, 1510, 1510, 1510, 1511, 1511,
3508      1511, 2880, 1500, 2883, 2889, 1503, 1512, 1512, 1512, 1513,
3509      1513, 1513, 1510, 2891, 2893, 1511, 1514, 1514, 1514, 1509,
3510
3511      2865, 1502, 2904, 1512, 2906, 2871, 1513, 1515, 1515, 1515,
3512      1516, 1516, 1516, 1514, 1517, 1517, 1517, 1518, 1518, 1518,
3513      2885, 2908, 1510, 2886, 1515, 2909, 2871, 1516, 1519, 1519,
3514      1519, 1517, 2885, 1512, 1518, 2886, 1520, 1520, 1520, 2871,
3515      1523, 1523, 1523, 1524, 1524, 1524, 1519, 1524, 1511, 2912,
3516      1524, 2913, 2916, 1513, 1520, 2918, 1514, 1523, 1526, 1526,
3517      1526, 1528, 1528, 1528, 1530, 1530, 1530, 1531, 1531, 1531,
3518      2920, 1531, 2922, 2923, 1531, 1526, 1517, 2898, 1518, 1528,
3519      1516, 1530, 1532, 1532, 1532, 1533, 1533, 1533, 1520, 2898,
3520      1534, 1534, 1534, 1519, 1534, 2925, 2926, 1534, 2874, 2932,
3521
3522      1532, 2929, 1533, 1535, 1535, 1535, 1540, 1540, 1540, 2930,
3523      1542, 1542, 1542, 1543, 1543, 1543, 2874, 1544, 1544, 1544,
3524      2933, 1535, 2934, 2930, 1540, 2931, 2931, 1528, 1542, 2874,
3525      1543, 2933, 1545, 1545, 1545, 1544, 1546, 1546, 1546, 2899,
3526      1546, 2937, 2929, 1546, 1548, 1548, 1548, 2938, 1532, 1545,
3527      2942, 2899, 1550, 1550, 1550, 2943, 1556, 1556, 1556, 2950,
3528      2944, 1535, 1548, 1540, 1558, 1558, 1558, 1542, 1544, 1550,
3529      1553, 1553, 1553, 1556, 1553, 2944, 2939, 1553, 1561, 1561,
3530      1561, 2952, 1558, 1566, 1566, 1566, 1567, 1567, 1567, 2949,
3531      1567, 2956, 2957, 1567, 2939, 2951, 1561, 1571, 1571, 1571,
3532
3533      1566, 1573, 1573, 1573, 1548, 1574, 1574, 1574, 2949, 1576,
3534      1576, 1576, 2959, 1576, 2951, 1571, 1576, 2960, 1573, 1579,
3535      1579, 1579, 2962, 1574, 2964, 1580, 1580, 1580, 1558, 1580,
3536      2965, 2959, 1580, 1581, 1581, 1581, 1579, 1581, 2966, 2967,
3537      1581, 1585, 1585, 1585, 1561, 2961, 1571, 1586, 1586, 1586,
3538      2968, 1586, 2969, 2977, 1586, 1588, 1588, 1588, 1585, 1589,
3539      1589, 1589, 2978, 1589, 2961, 2979, 1589, 1574, 1592, 1592,
3540      1592, 2981, 1592, 1588, 2982, 1592, 1596, 1596, 1596, 1598,
3541      1598, 1598, 1602, 1602, 1602, 1604, 1604, 1604, 2984, 1605,
3542      1605, 1605, 2985, 2986, 1596, 2988, 2991, 1598, 2992, 2993,
3543
3544      1602, 2994, 1604, 2995, 2996, 1588, 1605, 1606, 1606, 1606,
3545      2997, 1606, 2998, 3001, 1606, 1607, 1607, 1607, 1609, 1609,
3546      1609, 1610, 1610, 1610, 3002, 1610, 3003, 3004, 1610, 1613,
3547      1613, 1613, 3005, 1607, 3006, 1609, 1615, 1615, 1615, 1617,
3548      1617, 1617, 1596, 3009, 3010, 1598, 1602, 1613, 1616, 1616,
3549      1616, 3011, 1616, 1615, 3012, 1616, 1617, 1618, 1618, 1618,
3550      3013, 3014, 1621, 1621, 1621, 1660, 1660, 1660, 1663, 1663,
3551      1663, 1664, 1664, 1664, 3016, 1618, 3017, 3018, 1613, 1607,
3552      1621, 1665, 1665, 1665, 1666, 1666, 1666, 1667, 1667, 1667,
3553      1668, 1668, 1668, 1670, 1670, 1670, 3019, 3020, 1665, 3021,
3554
3555      3022, 1666, 3026, 3027, 1667, 3024, 1618, 3025, 1668, 3028,
3556      1670, 3029, 3030, 1621, 1671, 1671, 1671, 3024, 1671, 3025,
3557      3031, 1671, 1672, 1672, 1672, 1675, 1675, 1675, 3037, 1660,
3558      1621, 3038, 1663, 3039, 3040, 1664, 1676, 1676, 1676, 3041,
3559      1672, 3042, 3046, 1675, 1677, 1677, 1677, 1678, 1678, 1678,
3560      3047, 1667, 3049, 1676, 1679, 1679, 1679, 1668, 1680, 1680,
3561      1680, 1677, 1681, 1681, 1681, 1678, 1682, 1682, 1682, 1685,
3562      1685, 1685, 1679, 1675, 3051, 1680, 1684, 1684, 1684, 1681,
3563      3054, 1672, 3055, 1682, 1683, 1683, 1683, 1685, 1683, 3056,
3564      3057, 1683, 3052, 1684, 1686, 1686, 1686, 1687, 1687, 1687,
3565
3566      3058, 1687, 3059, 3060, 1687, 1688, 1688, 1688, 1689, 1689,
3567      1689, 1686, 1678, 3061, 1690, 1690, 1690, 3052, 1690, 1679,
3568      1681, 1690, 1688, 3062, 3063, 1689, 1693, 1693, 1693, 1685,
3569      1694, 1694, 1694, 1695, 1695, 1695, 1696, 1696, 1696, 1697,
3570      1697, 1697, 3064, 1693, 1698, 1698, 1698, 1694, 3065, 3066,
3571      1695, 3067, 3068, 1696, 3069, 3070, 1697, 1699, 1699, 1699,
3572      3071, 1698, 1700, 1700, 1700, 3072, 1700, 3073, 3074, 1700,
3573      3075, 3078, 1689, 3079, 1699, 1701, 1701, 1701, 3081, 1694,
3574      3082, 1702, 1702, 1702, 3083, 1697, 1703, 1703, 1703, 3084,
3575      1693, 3080, 1701, 3085, 1696, 3086, 3087, 1698, 1702, 1704,
3576
3577      1704, 1704, 3088, 1703, 1705, 1705, 1705, 1708, 1708, 1708,
3578      3080, 1708, 3089, 3090, 1708, 3091, 3092, 1704, 1711, 1711,
3579      1711, 3093, 1705, 1712, 1712, 1712, 3094, 3095, 1702, 1713,
3580      1713, 1713, 3096, 1713, 3097, 1711, 1713, 3098, 3099, 1703,
3581      1712, 3100, 1715, 1715, 1715, 1717, 1717, 1717, 3101, 1717,
3582      3102, 3106, 1717, 1720, 1720, 1720, 1724, 1724, 1724, 1705,
3583      1715, 3108, 1721, 1721, 1721, 1704, 1721, 3105, 3109, 1721,
3584      3111, 1720, 3112, 3113, 1724, 1729, 1729, 1729, 1731, 1731,
3585      1731, 1732, 1732, 1732, 1733, 1733, 1733, 3105, 1733, 3114,
3586      3115, 1733, 3116, 1729, 3117, 3118, 1731, 3119, 1732, 1720,
3587
3588      1734, 1734, 1734, 1735, 1735, 1735, 3120, 1735, 3121, 3122,
3589      1735, 1739, 1739, 1739, 1741, 1741, 1741, 3123, 1734, 1743,
3590      1743, 1743, 3124, 1724, 1731, 3125, 1742, 1742, 1742, 1739,
3591      1742, 1741, 3126, 1742, 3127, 3129, 1743, 1745, 1745, 1745,
3592      1746, 1746, 1746, 3131, 1746, 3133, 3134, 1746, 1748, 1748,
3593      1748, 1751, 1751, 1751, 1745, 1756, 1756, 1756, 1734, 1756,
3594      3135, 3128, 1756, 1762, 1762, 1762, 1748, 3128, 3136, 1751,
3595      1764, 1764, 1764, 1766, 1766, 1766, 3137, 1739, 1765, 1765,
3596      1765, 1762, 1765, 3138, 3140, 1765, 3141, 1764, 1768, 1768,
3597      1768, 1766, 1768, 3143, 3144, 1768, 3146, 1772, 1772, 1772,
3598
3599      3147, 1772, 3152, 1751, 1772, 1776, 1776, 1776, 1778, 1778,
3600      1778, 1780, 1780, 1780, 1762, 1781, 1781, 1781, 1782, 1782,
3601      1782, 3153, 3154, 1776, 3155, 3157, 1778, 3159, 3149, 1780,
3602      3161, 3163, 1781, 3165, 3166, 1782, 1783, 1783, 1783, 1784,
3603      1784, 1784, 3149, 1786, 1786, 1786, 3167, 1787, 1787, 1787,
3604      3168, 1787, 3169, 1783, 1787, 3170, 3171, 1784, 3172, 1778,
3605      1786, 3174, 1780, 1788, 1788, 1788, 1776, 1788, 3176, 3178,
3606      1788, 1791, 1791, 1791, 1793, 1793, 1793, 3179, 1793, 3180,
3607      3181, 1793, 3190, 3196, 1782, 3289, 1784, 3196, 3191, 1791,
3608      1798, 1798, 1798, 1800, 1800, 1800, 3289, 1800, 1464, 3182,
3609
3610      1800, 1460, 1803, 1803, 1803, 1804, 1804, 1804, 1798, 1804,
3611      3202, 1459, 1804, 1805, 1805, 1805, 3203, 3194, 1791, 1803,
3612      1810, 1810, 1810, 1822, 1822, 1822, 1825, 1825, 1825, 3192,
3613      3190, 1805, 1826, 1826, 1826, 3182, 3191, 1810, 1827, 1827,
3614      1827, 1798, 1829, 1829, 1829, 1838, 1838, 1838, 1839, 1839,
3615      1839, 1841, 1841, 1841, 1843, 1843, 1843, 3202, 1844, 1844,
3616      1844, 3194, 1844, 3203, 1805, 1844, 1845, 1845, 1845, 3183,
3617      3193, 1843, 1846, 1846, 1846, 3206, 1846, 3192, 3204, 1846,
3618      1848, 1848, 1848, 1845, 1850, 1850, 1850, 3207, 1850, 3205,
3619      1458, 1850, 1853, 1853, 1853, 1855, 1855, 1855, 1848, 1856,
3620
3621      1856, 1856, 1857, 1857, 1857, 3183, 3195, 1858, 1858, 1858,
3622      1853, 1858, 1855, 3220, 1858, 3204, 3206, 1856, 3193, 1857,
3623      1859, 1859, 1859, 1860, 1860, 1860, 3205, 1860, 3207, 1457,
3624      1860, 1861, 1861, 1861, 1862, 1862, 1862, 1859, 1863, 1863,
3625      1863, 3197, 3216, 1853, 3240, 3197, 1848, 3220, 3198, 1861,
3626      3195, 3216, 1862, 3214, 3199, 1863, 3198, 1864, 1864, 1864,
3627      1856, 1864, 3199, 3200, 1864, 1865, 1865, 1865, 1866, 1866,
3628      1866, 3200, 1866, 3240, 3208, 1866, 1869, 1869, 1869, 1870,
3629      1870, 1870, 1865, 1870, 3210, 3214, 1870, 1871, 1871, 1871,
3630      1872, 1872, 1872, 1869, 1872, 3201, 1861, 1872, 3212, 1862,
3631
3632      1875, 1875, 1875, 3201, 3211, 1871, 1876, 1876, 1876, 3208,
3633      1876, 1456, 3209, 1876, 1880, 1880, 1880, 1875, 1881, 1881,
3634      1881, 3218, 1881, 3215, 1453, 1881, 1882, 1882, 1882, 1451,
3635      3210, 1880, 1885, 1885, 1885, 3212, 1885, 3219, 1871, 1885,
3636      1888, 1888, 1888, 1882, 1889, 1889, 1889, 3209, 1889, 1450,
3637      3211, 1889, 1892, 1892, 1892, 3215, 3218, 1888, 1893, 1893,
3638      1893, 1896, 1896, 1896, 1897, 1897, 1897, 3213, 1897, 3232,
3639      1892, 1897, 3219, 1898, 1898, 1898, 1893, 1898, 1896, 3221,
3640      1898, 1902, 1902, 1902, 1904, 1904, 1904, 1905, 1905, 1905,
3641      1906, 1906, 1906, 1908, 1908, 1908, 1911, 1911, 1911, 1902,
3642
3643      1914, 1914, 1914, 1892, 3213, 1905, 3232, 3224, 1906, 3225,
3644      1908, 1893, 3217, 3221, 1911, 1915, 1915, 1915, 1914, 1915,
3645      3288, 3217, 1915, 1918, 1918, 1918, 1920, 1920, 1920, 1922,
3646      1922, 1922, 1449, 1922, 3288, 1448, 1922, 1447, 1445, 1908,
3647      1906, 1918, 3222, 3223, 1920, 1905, 1925, 1925, 1925, 1914,
3648      1926, 1926, 1926, 3224, 1926, 3225, 1444, 1926, 1928, 1928,
3649      1928, 3233, 1928, 1925, 3228, 1928, 1932, 1932, 1932, 1918,
3650      1935, 1935, 1935, 1936, 1936, 1936, 1937, 1937, 1937, 1939,
3651      1939, 1939, 3226, 3229, 1932, 3222, 3223, 1935, 1944, 1944,
3652      1944, 1936, 1946, 1946, 1946, 3227, 1946, 3228, 3233, 1946,
3653
3654      1949, 1949, 1949, 1952, 1952, 1952, 1944, 1954, 1954, 1954,
3655      1956, 1956, 1956, 1958, 1958, 1958, 3229, 3226, 1949, 3234,
3656      1952, 1959, 1959, 1959, 3230, 1954, 3241, 3238, 1956, 1443,
3657      3227, 1958, 3231, 3230, 1936, 1960, 1960, 1960, 1959, 1960,
3658      3236, 3231, 1960, 1961, 1961, 1961, 1962, 1962, 1962, 3242,
3659      1963, 1963, 1963, 1944, 1963, 3241, 3237, 1963, 3242, 3239,
3660      1961, 3234, 3250, 1962, 3238, 1442, 1954, 1964, 1964, 1964,
3661      1965, 1965, 1965, 3235, 1966, 1966, 1966, 1958, 1966, 3243,
3662      3244, 1966, 1969, 1969, 1969, 1964, 3236, 1965, 3243, 1961,
3663      1973, 1973, 1973, 1974, 1974, 1974, 3239, 1983, 1983, 1983,
3664
3665      1969, 1983, 3237, 1440, 1983, 1986, 1986, 1986, 1973, 3250,
3666      1974, 1990, 1990, 1990, 3244, 3235, 1965, 1991, 1991, 1991,
3667      1964, 1991, 1439, 1986, 1991, 1992, 1992, 1992, 1990, 1997,
3668      1997, 1997, 1998, 1998, 1998, 1969, 1999, 1999, 1999, 2001,
3669      2001, 2001, 2005, 2005, 2005, 2006, 2006, 2006, 2007, 2007,
3670      2007, 1986, 2008, 2008, 2008, 2010, 2010, 2010, 2014, 2014,
3671      2014, 2015, 2015, 2015, 2017, 2017, 2017, 2018, 2018, 2018,
3672      2019, 2019, 2019, 2021, 2021, 2021, 3246, 2021, 1437, 3248,
3673      2021, 2024, 2024, 2024, 3247, 2024, 3245, 3248, 2024, 2028,
3674      2028, 2028, 2030, 2030, 2030, 2032, 2032, 2032, 2008, 2033,
3675
3676      2033, 2033, 3251, 2033, 3258, 1436, 2033, 2028, 1434, 3252,
3677      2030, 1432, 2032, 2034, 2034, 2034, 2019, 2035, 2035, 2035,
3678      3245, 2035, 3246, 1431, 2035, 2038, 2038, 2038, 3253, 2038,
3679      3247, 2034, 2038, 2041, 2041, 2041, 2042, 2042, 2042, 3249,
3680      2028, 2043, 2043, 2043, 1430, 2043, 3252, 3249, 2043, 3251,
3681      3258, 2041, 2030, 2041, 2042, 3254, 3255, 2046, 2046, 2046,
3682      2047, 2047, 2047, 1429, 2047, 3253, 3270, 2047, 2051, 2051,
3683      2051, 3260, 2042, 2034, 2046, 2048, 2048, 2048, 3256, 2048,
3684      3257, 3259, 2048, 2052, 2052, 2052, 2051, 2052, 1428, 1427,
3685      2052, 2058, 2058, 2058, 3266, 2058, 3254, 3255, 2058, 2061,
3686
3687      2061, 2061, 2062, 2062, 2062, 3262, 2062, 3270, 3260, 2062,
3688      2065, 2065, 2065, 3256, 2065, 3257, 2061, 2065, 2069, 2069,
3689      2069, 2070, 2070, 2070, 2071, 2071, 2071, 3259, 3261, 2074,
3690      2074, 2074, 3264, 2074, 2051, 2069, 2074, 3262, 1426, 2070,
3691      3264, 3266, 2071, 2078, 2078, 2078, 2079, 2079, 2079, 2081,
3692      2081, 2081, 2082, 2082, 2082, 3263, 2082, 3267, 1423, 2082,
3693      1422, 2078, 1421, 1412, 2079, 3261, 2081, 3272, 2087, 2087,
3694      2087, 2088, 2088, 2088, 2090, 2090, 2090, 2093, 2093, 2093,
3695      3265, 2093, 3271, 1410, 2093, 2070, 2087, 3263, 3265, 2088,
3696      3274, 1405, 2090, 2099, 2099, 2099, 1399, 2079, 2078, 2100,
3697
3698      2100, 2100, 3272, 2100, 3267, 3268, 2100, 2101, 2101, 2101,
3699      2099, 2102, 2102, 2102, 2103, 2103, 2103, 2104, 2104, 2104,
3700      2105, 2105, 2105, 3271, 3269, 2101, 2106, 2106, 2106, 2107,
3701      2107, 2107, 3278, 2088, 2087, 3280, 3274, 2105, 2108, 2108,
3702      2108, 3273, 3268, 2106, 3280, 3275, 2107, 2109, 2109, 2109,
3703      2112, 2112, 2112, 1393, 1389, 2108, 2113, 2113, 2113, 3284,
3704      2113, 3269, 3279, 2113, 3278, 2109, 3281, 2112, 2115, 2115,
3705      2115, 2101, 2117, 2117, 2117, 3281, 3273, 2106, 2120, 2120,
3706      2120, 2121, 2121, 2121, 1384, 2121, 2115, 1380, 2121, 3276,
3707      2117, 3275, 3277, 2107, 3279, 1379, 2120, 2108, 2124, 2124,
3708
3709      2124, 2125, 2125, 2125, 3282, 2125, 1371, 3284, 2125, 2127,
3710      2127, 2127, 2109, 2127, 1366, 2124, 2127, 2130, 2130, 2130,
3711      2131, 2131, 2131, 2132, 2132, 2132, 3276, 2132, 1357, 3277,
3712      2132, 2134, 2134, 2134, 1355, 2130, 3282, 2131, 2138, 2138,
3713      2138, 2140, 2140, 2140, 2141, 2141, 2141, 1346, 2141, 2134,
3714      1341, 2141, 2152, 2152, 2152, 1337, 2138, 1332, 2140, 2153,
3715      2153, 2153, 2156, 2156, 2156, 1331, 2156, 1330, 2130, 2156,
3716      2152, 2159, 2159, 2159, 2160, 2160, 2160, 2153, 2161, 2161,
3717      2161, 1328, 2134, 2164, 2164, 2164, 2165, 2165, 2165, 2167,
3718      2167, 2167, 2168, 2168, 2168, 2170, 2170, 2170, 2171, 2171,
3719
3720      2171, 2152, 2172, 2172, 2172, 2175, 2175, 2175, 2176, 2176,
3721      2176, 2179, 2179, 2179, 2180, 2180, 2180, 2182, 2182, 2182,
3722      2183, 2183, 2183, 2187, 2187, 2187, 2188, 2188, 2188, 2189,
3723      2189, 2189, 2190, 2190, 2190, 2191, 2191, 2191, 3283, 2191,
3724      1327, 2187, 2191, 2194, 2194, 2194, 3286, 2189, 3285, 2190,
3725      2195, 2195, 2195, 2196, 2196, 2196, 2197, 2197, 2197, 1325,
3726      2197, 2194, 1320, 2197, 2200, 2200, 2200, 1319, 2195, 1314,
3727      3283, 2196, 2204, 2204, 2204, 1313, 2204, 1307, 3286, 2204,
3728      1306, 3287, 2200, 2207, 2207, 2207, 1305, 2195, 2210, 2210,
3729      2210, 2212, 2212, 2212, 2194, 2189, 3285, 2211, 2211, 2211,
3730
3731      2207, 2211, 1304, 1293, 2211, 2210, 2213, 2213, 2213, 2212,
3732      2218, 2218, 2218, 3287, 2196, 2219, 2219, 2219, 2220, 2220,
3733      2220, 2224, 2224, 2224, 2213, 2221, 2221, 2221, 2218, 2221,
3734      1282, 1277, 2221, 2219, 1276, 2220, 1275, 1271, 2224, 2225,
3735      2225, 2225, 2226, 2226, 2226, 2227, 2227, 2227, 2228, 2228,
3736      2228, 2229, 2229, 2229, 1254, 1249, 2225, 1248, 1247, 2226,
3737      1242, 1241, 2227, 1228, 2220, 1227, 2228, 1226, 1225, 2229,
3738      2218, 2230, 2230, 2230, 1224, 1223, 2224, 2234, 2234, 2234,
3739      2235, 2235, 2235, 1222, 2235, 1221, 1211, 2235, 2230, 2238,
3740      2238, 2238, 1210, 2226, 2239, 2239, 2239, 2240, 2240, 2240,
3741
3742      2225, 1209, 2241, 2241, 2241, 1204, 2241, 2238, 2228, 2241,
3743      2242, 2242, 2242, 1203, 2240, 2229, 2243, 2243, 2243, 2244,
3744      2244, 2244, 2245, 2245, 2245, 1202, 1201, 2242, 2246, 2246,
3745      2246, 1178, 1177, 2243, 1170, 1166, 2244, 2247, 2247, 2247,
3746      2245, 1161, 2248, 2248, 2248, 1160, 2248, 1155, 2238, 2248,
3747      1152, 2251, 2251, 2251, 2247, 2252, 2252, 2252, 2256, 2256,
3748      2256, 1151, 2258, 2258, 2258, 1148, 2258, 2243, 2251, 2258,
3749      2244, 1147, 1146, 2252, 1145, 1144, 2256, 2262, 2262, 2262,
3750      2263, 2263, 2263, 1143, 2263, 1142, 1141, 2263, 2267, 2267,
3751      2267, 1140, 2271, 2271, 2271, 2262, 2271, 1139, 1138, 2271,
3752
3753      2284, 2284, 2284, 2285, 2285, 2285, 2267, 2298, 2298, 2298,
3754      2299, 2299, 2299, 2302, 2302, 2302, 1137, 2251, 2284, 1136,
3755      1135, 2285, 2303, 2303, 2303, 2305, 2305, 2305, 2308, 2308,
3756      2308, 2311, 2311, 2311, 2267, 2315, 2315, 2315, 2317, 2317,
3757      2317, 2318, 2318, 2318, 1132, 2319, 2319, 2319, 2320, 2320,
3758      2320, 1131, 2320, 2315, 1130, 2320, 2321, 2321, 2321, 2318,
3759      1129, 2284, 2319, 1127, 1126, 2285, 2322, 2322, 2322, 2323,
3760      2323, 2323, 1125, 1124, 2321, 2324, 2324, 2324, 2330, 2330,
3761      2330, 2331, 2331, 2331, 2322, 2331, 1123, 2323, 2331, 1122,
3762      2334, 2334, 2334, 2324, 2334, 2330, 1121, 2334, 2337, 2337,
3763
3764      2337, 2341, 2341, 2341, 2342, 2342, 2342, 2343, 2343, 2343,
3765      2345, 2345, 2345, 2346, 2346, 2346, 2337, 2346, 2341, 1120,
3766      2346, 1119, 2342, 1118, 1117, 2343, 1116, 2345, 1115, 1114,
3767      2322, 2350, 2350, 2350, 1108, 1104, 2323, 2351, 2351, 2351,
3768      2352, 2352, 2352, 1101, 2352, 1100, 1099, 2352, 2350, 2353,
3769      2353, 2353, 1097, 1093, 2351, 2354, 2354, 2354, 2355, 2355,
3770      2355, 2342, 2356, 2356, 2356, 1090, 2356, 2353, 1089, 2356,
3771      2359, 2359, 2359, 2354, 1088, 2355, 2360, 2360, 2360, 2361,
3772      2361, 2361, 2362, 2362, 2362, 1084, 2362, 2359, 1083, 2362,
3773      2365, 2365, 2365, 1080, 2366, 2366, 2366, 2361, 2366, 1076,
3774
3775      1075, 2366, 2367, 2367, 2367, 1072, 1069, 2365, 2368, 2368,
3776      2368, 2369, 2369, 2369, 1066, 1065, 2354, 1060, 1052, 2367,
3777      2371, 2371, 2371, 1051, 1050, 2368, 2372, 2372, 2372, 2369,
3778      2373, 2373, 2373, 1048, 2373, 1044, 1041, 2373, 2374, 2374,
3779      2374, 1038, 1035, 2372, 2378, 2378, 2378, 2381, 2381, 2381,
3780      2394, 2394, 2394, 1034, 1033, 2374, 2412, 2412, 2412, 2413,
3781      2413, 2413, 2378, 1032, 1031, 2381, 1030, 1029, 2394, 2418,
3782      2418, 2418, 2421, 2421, 2421, 1028, 2422, 2422, 2422, 2424,
3783      2424, 2424, 1025, 2424, 1024, 1021, 2424, 1020, 1016, 2421,
3784      2427, 2427, 2427, 2374, 2422, 1014, 2429, 2429, 2429, 2430,
3785
3786      2430, 2430, 2433, 2433, 2433, 2435, 2435, 2435, 2427, 2435,
3787      2394, 1011, 2435, 2381, 2429, 1010, 1007, 2430, 1000, 2433,
3788      2445, 2445, 2445, 2446, 2446, 2446, 2447, 2447, 2447,  997,
3789      2447,  996,  995, 2447, 2448, 2448, 2448, 2445,  992,  988,
3790      2446, 2449, 2449, 2449,  981, 2449,  977,  976, 2449, 2455,
3791      2455, 2455, 2448,  975, 2456, 2456, 2456, 2429, 2456,  972,
3792       971, 2456, 2460, 2460, 2460, 2430, 2455, 2457, 2457, 2457,
3793       970, 2457,  963,  962, 2457, 2462, 2462, 2462,  961,  960,
3794      2460, 2463, 2463, 2463,  959, 2463,  958,  957, 2463, 2467,
3795      2467, 2467,  956, 2462, 2468, 2468, 2468, 2469, 2469, 2469,
3796
3797       955, 2469,  951,  925, 2469,  922, 2467, 2470, 2470, 2470,
3798       919, 2468, 2472, 2472, 2472,  918, 2472,  911,  910, 2472,
3799       908, 2475, 2475, 2475,  907, 2470, 2476, 2476, 2476,  906,
3800      2476,  905,  904, 2476, 2477, 2477, 2477, 2462, 2475, 2478,
3801      2478, 2478,  903, 2478,  902,  901, 2478,  900, 2479, 2479,
3802      2479, 2477, 2479,  899,  898, 2479, 2482, 2482, 2482, 2483,
3803      2483, 2483, 2484, 2484, 2484, 2487, 2487, 2487, 2488, 2488,
3804      2488,  896,  895, 2482,  894,  893, 2483,  892,  891, 2484,
3805      2489, 2489, 2489, 2487, 2500, 2500, 2500, 2517, 2517, 2517,
3806      2518, 2518, 2518, 2522, 2522, 2522,  890, 2489, 2525, 2525,
3807
3808      2525,  889, 2500, 2526, 2526, 2526,  887, 2526,  886,  885,
3809      2526, 2527, 2527, 2527,  884, 2525,  883, 2482,  882, 2528,
3810      2528, 2528, 2530, 2530, 2530, 2531, 2531, 2531,  881, 2527,
3811       880, 2532, 2532, 2532,  879, 2532, 2487, 2528, 2532, 2530,
3812       875,  871, 2531,  870, 2500, 2533, 2533, 2533, 2543, 2543,
3813      2543, 2544, 2544, 2544,  869, 2544,  868,  867, 2544, 2545,
3814      2545, 2545, 2533, 2545,  863, 2543, 2545, 2548, 2548, 2548,
3815      2528, 2551, 2551, 2551,  861, 2553, 2553, 2553, 2527, 2553,
3816       860,  859, 2553,  858,  857, 2548,  856,  853, 2551, 2562,
3817      2562, 2562, 2564, 2564, 2564, 2565, 2565, 2565,  852, 2565,
3818
3819       850,  848, 2565,  845, 2566, 2566, 2566, 2562, 2566, 2564,
3820       844, 2566, 2569, 2569, 2569,  843, 2569,  842,  840, 2569,
3821      2572, 2572, 2572,  837, 2572,  836,  834, 2572, 2581, 2581,
3822      2581, 2582, 2582, 2582, 2583, 2583, 2583,  833, 2583,  830,
3823       828, 2583, 2584, 2584, 2584, 2581,  825,  824, 2582, 2585,
3824      2585, 2585,  823, 2585,  822,  819, 2585,  818,  817, 2584,
3825      2586, 2586, 2586, 2587, 2587, 2587, 2588, 2588, 2588, 2589,
3826      2589, 2589, 2590, 2590, 2590,  816,  815, 2586,  814,  813,
3827      2587, 2602, 2602, 2602, 2588, 2605, 2605, 2605, 2581, 2590,
3828      2591, 2591, 2591,  811, 2591,  808,  807, 2591,  803, 2602,
3829
3830       802,  801, 2605, 2605, 2619, 2619, 2619, 2620, 2620, 2620,
3831      2623, 2623, 2623, 2624, 2624, 2624, 2626, 2626, 2626,  800,
3832      2626,  799,  798, 2626, 2629, 2629, 2629,  797, 2588, 2630,
3833      2630, 2630, 2602, 2632, 2632, 2632, 2633, 2633, 2633,  789,
3834      2633,  788, 2629, 2633, 2634, 2634, 2634, 2630, 2634,  785,
3835      2632, 2634, 2637, 2637, 2637, 2638, 2638, 2638,  784, 2638,
3836       783,  782, 2638, 2648, 2648, 2648,  781, 2648,  779, 2637,
3837      2648, 2652, 2652, 2652, 2653, 2653, 2653,  778, 2653,  777,
3838       774, 2653, 2661, 2661, 2661, 2664, 2664, 2664, 2652, 2664,
3839      2629,  773, 2664, 2679, 2679, 2679,  772, 2680, 2680, 2680,
3840
3841      2661, 2680,  769,  768, 2680, 2683, 2683, 2683,  764, 2683,
3842      2679,  762, 2683, 2686, 2686, 2686, 2687, 2687, 2687,  759,
3843      2687,  758,  757, 2687, 2688, 2688, 2688, 2689, 2689, 2689,
3844      2686, 2689,  756,  754, 2689, 2690, 2690, 2690, 2691, 2691,
3845      2691, 2688, 2691,  751,  750, 2691, 2702, 2702, 2702, 2704,
3846      2704, 2704,  749, 2690, 2705, 2705, 2705,  746, 2706, 2706,
3847      2706,  743, 2706,  740, 2702, 2706, 2704, 2704, 2719, 2719,
3848      2719, 2705, 2705, 2720, 2720, 2720, 2706, 2721, 2721, 2721,
3849      2722, 2722, 2722, 2723, 2723, 2723, 2690, 2724, 2724, 2724,
3850      2729, 2729, 2729,  739,  738, 2702, 2730, 2730, 2730, 2733,
3851
3852      2733, 2733,  737, 2733,  736,  733, 2733,  730, 2729, 2736,
3853      2736, 2736,  726, 2736, 2730,  725, 2736, 2739, 2739, 2739,
3854      2748, 2748, 2748, 2749, 2749, 2749,  724, 2749,  723,  722,
3855      2749, 2752, 2752, 2752, 2739,  721,  720, 2748, 2772, 2772,
3856      2772, 2729, 2773, 2773, 2773,  719, 2773,  718, 2752, 2773,
3857      2778, 2778, 2778,  717, 2778, 2772,  716, 2778, 2781, 2781,
3858      2781,  714, 2781,  712,  709, 2781, 2784, 2784, 2784, 2793,
3859      2793, 2793, 2795, 2795, 2795, 2796, 2796, 2796,  708, 2796,
3860       707,  706, 2796,  705, 2784,  704,  699, 2793,  698, 2795,
3861      2795,  697,  694, 2796, 2797, 2797, 2797,  693, 2797,  692,
3862
3863       691, 2797, 2808, 2808, 2808, 2809, 2809, 2809, 2810, 2810,
3864      2810,  688, 2797, 2811, 2811, 2811, 2816, 2816, 2816, 2819,
3865      2819, 2819,  687, 2819,  685,  682, 2819,  681, 2818, 2818,
3866      2818, 2820, 2820, 2820, 2816, 2793, 2798, 2798, 2798, 2798,
3867      2798, 2798, 2798, 2798, 2798, 2818,  678, 2798, 2820, 2828,
3868      2828, 2828, 2798, 2798, 2798, 2798, 2798, 2829, 2829, 2829,
3869       677, 2829,  676,  675, 2829,  674, 2828, 2831, 2831, 2831,
3870       673, 2831,  665,  664, 2831, 2830, 2830, 2830, 2856, 2856,
3871      2856, 2798, 2798, 2799, 2799, 2799, 2799, 2799, 2799, 2799,
3872      2799, 2799, 2830,  663, 2799,  660, 2856,  659,  658, 2799,
3873
3874      2799, 2799, 2799, 2799, 2849, 2849, 2849,  655, 2849,  653,
3875       652, 2849, 2864, 2864, 2864, 2866, 2866, 2866,  649, 2866,
3876       648,  647, 2866,  646,  643, 2881, 2881, 2881, 2799, 2799,
3877      2864,  642,  641, 2866, 2869, 2869, 2869, 2869, 2869, 2869,
3878      2869, 2869, 2869, 2881,  640, 2869, 2887, 2887, 2887,  636,
3879      2869, 2869, 2869, 2869, 2869, 2884, 2884, 2884,  635, 2884,
3880       634,  633, 2884, 2887, 2888, 2888, 2888,  627, 2888,  626,
3881       624, 2888, 2927, 2927, 2927, 2935, 2935, 2935,  618, 2869,
3882      2869, 2870, 2870, 2870, 2870, 2870, 2870, 2870, 2870, 2870,
3883      2927,  617, 2870, 2935, 2935,  616,  612, 2870, 2870, 2870,
3884
3885      2870, 2870, 2894, 2894, 2894,  609, 2894,  607,  606, 2894,
3886      2897, 2897, 2897,  605, 2897,  601,  597, 2897, 2948, 2948,
3887      2948, 2953, 2953, 2953,  593, 2953, 2870, 2870, 2953, 2958,
3888      2958, 2958, 2963, 2963, 2963, 2948, 2976, 2976, 2976, 2980,
3889      2980, 2980, 2989, 2989, 2989,  592, 2958,  591,  590, 2963,
3890       586, 2990, 2990, 2990, 2976, 2990,  582, 2980, 2990, 2989,
3891      2999, 2999, 2999, 3000, 3000, 3000,  579, 3000,  578,  577,
3892      3000, 3007, 3007, 3007, 3008, 3008, 3008, 2999, 3008,  576,
3893       572, 3008, 3015, 3015, 3015, 3023, 3023, 3023, 3007, 3023,
3894      2980,  566, 3023,  565, 3034, 3034, 3034,  561, 3034,  557,
3895
3896      3015, 3034, 3043, 3043, 3043,  553, 3043,  549,  542, 3043,
3897      3164, 3164, 3164, 3173, 3173, 3173,  540, 3173,  539, 3015,
3898      3173, 3290, 3290, 3290, 3291, 3291, 3291,  535, 3164,  529,
3899       528, 3173,  524,  520,  516,  515,  514,  513,  512, 3290,
3900       508,  504, 3291, 3294, 3294, 3294, 3294, 3294, 3294, 3294,
3901      3294, 3294, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
3902      3295, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
3903      3297, 3297, 3297, 3297, 3297, 3297, 3297, 3297, 3297, 3298,
3904      3298, 3298, 3298, 3298, 3298, 3298, 3298, 3298, 3299, 3299,
3905      3299, 3299, 3299, 3299, 3299, 3299, 3299, 3300, 3300, 3300,
3906
3907      3300, 3300, 3300, 3300, 3300, 3300, 3301, 3301, 3301, 3301,
3908      3301, 3301, 3301, 3301, 3301, 3302, 3302, 3302, 3302, 3302,
3909      3302, 3302, 3302, 3302, 3303, 3303, 3303, 3303, 3303, 3303,
3910      3303, 3303, 3303, 3304, 3304, 3304, 3304, 3304, 3304, 3304,
3911      3304, 3304, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305,
3912      3305, 3306, 3306, 3306, 3306, 3306, 3306, 3306, 3306, 3306,
3913      3307, 3307, 3307, 3307, 3307, 3307, 3307, 3307, 3307, 3308,
3914      3308, 3308, 3308, 3308, 3308, 3308, 3308, 3308, 3309, 3309,
3915      3309, 3309, 3309, 3309, 3309, 3309, 3309, 3310, 3310, 3310,
3916      3310, 3310, 3310, 3310, 3310, 3310, 3311, 3311, 3311, 3311,
3917
3918      3311, 3311, 3311, 3311, 3311, 3312, 3312, 3312, 3312, 3312,
3919      3312, 3312, 3312, 3312, 3313, 3313, 3313, 3313, 3313, 3313,
3920      3313, 3313, 3313, 3314, 3314, 3314, 3314, 3314, 3314, 3314,
3921      3314, 3314, 3315, 3315, 3315, 3315, 3315, 3315, 3315, 3315,
3922      3315, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316, 3316,
3923      3317, 3317, 3317, 3317, 3317, 3317, 3317, 3317, 3317, 3318,
3924      3318, 3318, 3318, 3318, 3318, 3318, 3318, 3318, 3319, 3319,
3925      3319, 3319, 3319, 3319, 3319, 3319, 3319, 3320, 3320, 3320,
3926      3320, 3320, 3320, 3320, 3320, 3320, 3321, 3321, 3321, 3321,
3927      3321, 3321, 3321, 3321, 3321, 3322, 3322, 3322, 3322, 3322,
3928
3929      3322, 3322, 3322, 3322, 3323, 3323, 3323, 3323, 3323, 3323,
3930      3323, 3323, 3323, 3324, 3324, 3324, 3324, 3324, 3324, 3324,
3931      3324, 3324, 3325, 3325, 3325, 3325, 3325, 3325, 3325, 3325,
3932      3325, 3326, 3326, 3326, 3326, 3326, 3326, 3326, 3326, 3326,
3933      3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3327, 3328,
3934      3328, 3328, 3328, 3328, 3328, 3328, 3328, 3328, 3329, 3329,
3935      3329, 3329, 3329, 3329, 3329, 3329, 3329, 3330, 3330, 3330,
3936      3330, 3330, 3330, 3330, 3330, 3330, 3331, 3331, 3331, 3331,
3937      3331, 3331, 3331, 3331, 3331, 3332, 3332, 3332, 3332, 3332,
3938      3332, 3332, 3332, 3332, 3333, 3333, 3333, 3333, 3333, 3333,
3939
3940      3333, 3333, 3333, 3334, 3334, 3334, 3334, 3334, 3334, 3334,
3941      3334, 3334, 3335, 3335, 3335, 3335, 3335, 3335, 3335, 3335,
3942      3335, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336,
3943      3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3337, 3338,
3944      3338, 3338, 3338, 3338, 3338, 3338, 3338, 3338, 3339, 3339,
3945      3339, 3339, 3339, 3339, 3339, 3339, 3339, 3340, 3340, 3340,
3946      3340, 3340, 3340, 3340, 3340, 3340, 3341, 3341, 3341, 3341,
3947      3341, 3341, 3341, 3341, 3341, 3342, 3342, 3342, 3342, 3342,
3948      3342, 3342, 3342, 3342, 3343, 3343, 3343, 3343, 3343, 3343,
3949      3343, 3343, 3343, 3344, 3344, 3344, 3344, 3344, 3344, 3344,
3950
3951      3344, 3344, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345,
3952      3345, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346, 3346,
3953      3347, 3347, 3347, 3347, 3347, 3347, 3347, 3347, 3347, 3348,
3954      3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3349, 3349,
3955      3349, 3349, 3349, 3349, 3349, 3349, 3349, 3350, 3350, 3350,
3956      3350, 3350, 3350, 3350, 3350, 3350, 3351, 3351, 3351, 3351,
3957      3351, 3351, 3351, 3351, 3351, 3352, 3352, 3352, 3352, 3352,
3958      3352, 3352, 3352, 3352, 3353, 3353, 3353, 3353, 3353, 3353,
3959      3353, 3353, 3353, 3354, 3354, 3354,  497,  493,  485, 3354,
3960      3355, 3355, 3355,  484,  483,  482, 3355, 3356, 3356, 3356,
3961
3962       481,  477,  471, 3356, 3357, 3357, 3357,  470,  466,  460,
3963      3357, 3358, 3358, 3358,  459,  455,  449, 3358, 3359, 3359,
3964      3359,  448,  444,  440, 3359, 3360, 3360, 3360,  436,  435,
3965       434, 3360, 3361, 3361, 3361,  430,  426,  422, 3361, 3362,
3966      3362, 3362,  418,  412,  411, 3362, 3363, 3363, 3363,  410,
3967       406,  402, 3363, 3364, 3364, 3364,  397,  396,  395, 3364,
3968      3365, 3365, 3365,  394,  390,  386, 3365, 3366, 3366, 3366,
3969       383,  379,  375, 3366, 3367, 3367, 3367,  372,  369,  367,
3970      3367, 3368, 3368, 3368,  366,  361,  354, 3368, 3369, 3369,
3971      3369,  353,  352,  351, 3369, 3370, 3370, 3370,  350,  346,
3972
3973       342, 3370, 3371, 3371, 3371,  339,  338,  334, 3371, 3372,
3974      3372, 3372,  330,  327,  326, 3372, 3373, 3373, 3373,  325,
3975       321,  315, 3373, 3374, 3374, 3374,  314,  313,  309, 3374,
3976      3375, 3375, 3375,  303,  299,  296, 3375, 3376, 3376, 3376,
3977       295,  290,  289, 3376, 3377, 3377, 3377,  285,  281,  277,
3978      3377, 3378, 3378, 3378,  273,  272,  268, 3378, 3379, 3379,
3979      3379,  265,  264,  263, 3379, 3380, 3380, 3380,  257,  256,
3980       254, 3380, 3381, 3381, 3381, 3381, 3381, 3381, 3381,  251,
3981      3381, 3382, 3382, 3382,  239,    0,    0, 3382, 3383,    0,
3982         0,    0, 3383, 3384, 3384, 3384,    0,    0,    0, 3384,
3983
3984      3385,    0,    0,    0, 3385, 3386, 3386, 3386,    0,    0,
3985         0, 3386, 3387,    0,    0,    0, 3387, 3388, 3388, 3388,
3986         0,    0,    0, 3388, 3389,    0,    0,    0, 3389, 3390,
3987      3390, 3390,    0,    0,    0, 3390, 3391,    0,    0,    0,
3988      3391, 3392, 3392, 3392,    0,    0,    0, 3392, 3393,    0,
3989         0,    0, 3393, 3394, 3394, 3394,    0,    0,    0, 3394,
3990      3395,    0,    0,    0, 3395, 3396, 3396, 3396,    0,    0,
3991         0, 3396, 3397,    0,    0,    0, 3397, 3398, 3398, 3398,
3992         0,    0,    0, 3398, 3399,    0,    0,    0, 3399, 3400,
3993      3400, 3400,    0,    0,    0, 3400, 3401,    0,    0,    0,
3994
3995      3401, 3402, 3402, 3402,    0,    0,    0, 3402, 3403,    0,
3996         0,    0, 3403, 3404, 3404, 3404,    0,    0,    0, 3404,
3997      3405,    0,    0,    0, 3405, 3406, 3406, 3406,    0,    0,
3998         0, 3406, 3407,    0,    0,    0, 3407, 3408, 3408, 3408,
3999         0,    0,    0, 3408, 3409,    0,    0,    0, 3409, 3410,
4000      3410, 3410,    0,    0,    0, 3410, 3411,    0,    0,    0,
4001      3411, 3412, 3412, 3412,    0,    0,    0, 3412, 3413,    0,
4002         0,    0, 3413, 3414, 3414, 3414,    0,    0,    0, 3414,
4003      3415,    0,    0,    0, 3415, 3416, 3416, 3416,    0,    0,
4004         0, 3416, 3417,    0,    0,    0, 3417, 3418, 3418, 3418,
4005
4006         0,    0,    0, 3418, 3419,    0,    0,    0, 3419, 3420,
4007      3420, 3420,    0,    0,    0, 3420, 3421,    0,    0,    0,
4008      3421, 3422, 3422, 3422,    0,    0,    0, 3422, 3423,    0,
4009         0,    0, 3423, 3424, 3424, 3424,    0,    0,    0, 3424,
4010      3425,    0,    0,    0, 3425, 3426, 3426, 3426,    0,    0,
4011         0, 3426, 3427,    0,    0,    0, 3427, 3428, 3428, 3428,
4012         0,    0,    0, 3428, 3429,    0,    0,    0, 3429, 3430,
4013      3430, 3430,    0,    0,    0, 3430, 3431,    0,    0,    0,
4014      3431, 3432, 3432, 3432,    0,    0,    0, 3432, 3433,    0,
4015         0,    0, 3433, 3434, 3434, 3434,    0,    0,    0, 3434,
4016
4017      3435,    0,    0,    0, 3435, 3436, 3436, 3436, 3436, 3436,
4018      3436, 3436, 3436, 3436, 3437,    0,    0,    0,    0, 3437,
4019      3438, 3438, 3438,    0,    0,    0, 3438, 3439, 3439, 3439,
4020      3439,    0,    0, 3439, 3439, 3440, 3440, 3440, 3440,    0,
4021      3440,    0, 3440, 3441, 3441, 3441, 3441,    0,    0, 3441,
4022      3441, 3442, 3442, 3442,    0,    0,    0, 3442, 3443, 3443,
4023      3443, 3443,    0,    0, 3443, 3443, 3444, 3444, 3444,    0,
4024         0,    0, 3444, 3445, 3445, 3445, 3445,    0,    0, 3445,
4025      3445, 3446, 3446, 3446, 3446,    0, 3446,    0, 3446, 3447,
4026      3447, 3447, 3447,    0,    0, 3447, 3447, 3448, 3448, 3448,
4027
4028      3448,    0, 3448,    0, 3448, 3449, 3449, 3449, 3449,    0,
4029         0, 3449, 3449, 3450, 3450, 3450, 3450,    0, 3450,    0,
4030      3450, 3451, 3451, 3451, 3451,    0,    0, 3451, 3451, 3452,
4031      3452, 3452,    0,    0,    0, 3452, 3453, 3453, 3453, 3453,
4032         0,    0, 3453, 3453, 3454, 3454, 3454, 3454,    0,    0,
4033      3454, 3454, 3455, 3455, 3455,    0,    0,    0, 3455, 3456,
4034      3456, 3456, 3456,    0,    0, 3456, 3456, 3457, 3457, 3457,
4035         0,    0,    0, 3457, 3458, 3458, 3458, 3458,    0,    0,
4036      3458, 3458, 3459, 3459, 3459,    0,    0,    0, 3459, 3460,
4037      3460, 3460, 3460,    0,    0, 3460, 3460, 3461, 3461, 3461,
4038
4039         0,    0,    0, 3461, 3462, 3462, 3462, 3462,    0,    0,
4040      3462, 3462, 3463, 3463, 3463,    0,    0,    0, 3463, 3464,
4041      3464, 3464, 3464,    0,    0, 3464, 3464, 3465, 3465, 3465,
4042         0,    0,    0, 3465, 3466, 3466, 3466, 3466,    0,    0,
4043      3466, 3466, 3467, 3467, 3467,    0,    0,    0, 3467, 3468,
4044      3468, 3468, 3468,    0,    0, 3468, 3468, 3469, 3469, 3469,
4045         0,    0,    0, 3469, 3470, 3470, 3470, 3470,    0,    0,
4046      3470, 3470, 3471, 3471, 3471,    0,    0,    0, 3471, 3472,
4047      3472, 3472, 3472,    0,    0, 3472, 3472, 3473, 3473, 3473,
4048         0,    0,    0, 3473, 3474, 3474, 3474, 3474,    0,    0,
4049
4050      3474, 3474, 3475, 3475, 3475,    0,    0,    0, 3475, 3476,
4051      3476, 3476, 3476,    0,    0, 3476, 3476, 3477, 3477, 3477,
4052         0,    0,    0, 3477, 3478, 3478, 3478, 3478,    0,    0,
4053      3478, 3478, 3479, 3479, 3479, 3479,    0, 3479,    0, 3479,
4054      3480, 3480, 3480, 3480,    0,    0, 3480, 3480, 3481, 3481,
4055      3481,    0,    0,    0, 3481, 3482, 3482, 3482, 3482,    0,
4056         0, 3482, 3482, 3483, 3483, 3483,    0,    0,    0, 3483,
4057      3484, 3484, 3484, 3484,    0,    0, 3484, 3484, 3485, 3485,
4058      3485,    0,    0,    0, 3485, 3486, 3486, 3486, 3486,    0,
4059         0, 3486, 3486, 3487, 3487, 3487,    0,    0,    0, 3487,
4060
4061      3488, 3488, 3488, 3488,    0,    0, 3488, 3488, 3489, 3489,
4062      3489,    0,    0,    0, 3489, 3490, 3490, 3490, 3490,    0,
4063         0, 3490, 3490, 3491, 3491, 3491, 3491, 3491, 3491, 3491,
4064      3491, 3491, 3492,    0, 3492,    0,    0, 3492, 3493, 3493,
4065      3493,    0,    0,    0, 3493, 3494, 3494, 3494, 3494,    0,
4066         0, 3494, 3494, 3495, 3495, 3495,    0,    0,    0, 3495,
4067      3496, 3496, 3496, 3496,    0,    0, 3496, 3496, 3497, 3497,
4068      3497,    0,    0,    0, 3497, 3498, 3498, 3498, 3498,    0,
4069         0, 3498, 3498, 3499, 3499, 3499,    0,    0,    0, 3499,
4070      3500, 3500, 3500, 3500,    0,    0, 3500, 3500, 3501, 3501,
4071
4072      3501,    0,    0,    0, 3501, 3502, 3502, 3502, 3502,    0,
4073         0, 3502, 3502, 3503, 3503, 3503, 3503,    0,    0, 3503,
4074      3503, 3504, 3504, 3504,    0,    0,    0, 3504, 3505, 3505,
4075      3505, 3505,    0,    0, 3505, 3505, 3506, 3506, 3506,    0,
4076         0,    0, 3506, 3507, 3507, 3507, 3507,    0,    0, 3507,
4077      3507, 3508, 3508, 3508, 3508,    0,    0, 3508, 3508, 3509,
4078      3509, 3509,    0,    0,    0, 3509, 3510, 3510, 3510, 3510,
4079         0,    0, 3510, 3510, 3511, 3511, 3511, 3511,    0, 3511,
4080         0, 3511, 3512, 3512, 3512, 3512,    0,    0, 3512, 3512,
4081      3513, 3513, 3513, 3513,    0, 3513,    0, 3513, 3514, 3514,
4082
4083      3514, 3514,    0,    0, 3514, 3514, 3515, 3515, 3515,    0,
4084         0,    0, 3515, 3516, 3516, 3516, 3516,    0,    0, 3516,
4085      3516, 3517, 3517, 3517,    0,    0,    0, 3517, 3518, 3518,
4086      3518, 3518,    0,    0, 3518, 3518, 3519, 3519, 3519,    0,
4087         0,    0, 3519, 3520, 3520, 3520, 3520,    0,    0, 3520,
4088      3520, 3521, 3521, 3521, 3521,    0, 3521,    0, 3521, 3522,
4089      3522, 3522, 3522,    0,    0, 3522, 3522, 3523, 3523, 3523,
4090         0,    0,    0, 3523, 3524, 3524, 3524, 3524,    0,    0,
4091      3524, 3524, 3525, 3525, 3525,    0,    0,    0, 3525, 3526,
4092      3526, 3526, 3526,    0,    0, 3526, 3526, 3527, 3527, 3527,
4093
4094         0,    0,    0, 3527, 3528, 3528, 3528, 3528,    0,    0,
4095      3528, 3528, 3529, 3529, 3529,    0,    0,    0, 3529, 3530,
4096      3530, 3530, 3530,    0,    0, 3530, 3530, 3531, 3531, 3531,
4097         0,    0,    0, 3531, 3532, 3532, 3532, 3532,    0,    0,
4098      3532, 3532, 3533, 3533, 3533,    0,    0,    0, 3533, 3534,
4099      3534, 3534, 3534,    0,    0, 3534, 3534, 3535, 3535, 3535,
4100         0,    0,    0, 3535, 3536, 3536, 3536, 3536,    0,    0,
4101      3536, 3536, 3537, 3537, 3537,    0,    0,    0, 3537, 3538,
4102      3538, 3538, 3538,    0,    0, 3538, 3538, 3539, 3539, 3539,
4103         0,    0,    0, 3539, 3540, 3540, 3540, 3540,    0,    0,
4104
4105      3540, 3540, 3541, 3541, 3541, 3541,    0, 3541,    0, 3541,
4106      3542, 3542, 3542, 3542,    0,    0, 3542, 3542, 3543, 3543,
4107      3543,    0,    0,    0, 3543, 3544, 3544, 3544, 3544,    0,
4108         0, 3544, 3544, 3545, 3545, 3545, 3545, 3545, 3545, 3545,
4109      3545, 3545, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546,
4110      3546, 3547, 3547, 3547,    0,    0,    0, 3547, 3548, 3548,
4111      3548,    0,    0,    0, 3548, 3549, 3549, 3549, 3549,    0,
4112         0, 3549, 3549, 3550, 3550, 3550, 3550,    0, 3550,    0,
4113      3550, 3551, 3551, 3551, 3551,    0,    0, 3551, 3551, 3552,
4114      3552, 3552,    0,    0,    0, 3552, 3553, 3553, 3553, 3553,
4115
4116         0,    0, 3553, 3553, 3554, 3554, 3554,    0,    0,    0,
4117      3554, 3555, 3555, 3555, 3555,    0,    0, 3555, 3555, 3556,
4118      3556, 3556, 3556,    0,    0, 3556, 3556, 3557, 3557, 3557,
4119         0,    0,    0, 3557, 3558, 3558, 3558, 3558,    0,    0,
4120      3558, 3558, 3559, 3559, 3559, 3559,    0, 3559,    0, 3559,
4121      3560, 3560, 3560, 3560,    0,    0, 3560, 3560, 3561, 3561,
4122      3561, 3561,    0,    0, 3561, 3561, 3562, 3562, 3562,    0,
4123         0,    0, 3562, 3563, 3563, 3563, 3563,    0,    0, 3563,
4124      3563, 3564, 3564, 3564, 3564,    0,    0, 3564, 3564, 3565,
4125      3565, 3565, 3565,    0,    0, 3565, 3565, 3566, 3566, 3566,
4126
4127         0,    0,    0, 3566, 3567, 3567, 3567, 3567,    0,    0,
4128      3567, 3567, 3568, 3568, 3568,    0,    0,    0, 3568, 3569,
4129      3569, 3569, 3569,    0,    0, 3569, 3569, 3570, 3570, 3570,
4130      3570,    0, 3570,    0, 3570, 3571, 3571, 3571, 3571,    0,
4131         0, 3571, 3571, 3572, 3572, 3572,    0,    0,    0, 3572,
4132      3573, 3573, 3573, 3573,    0,    0, 3573, 3573, 3574, 3574,
4133      3574,    0,    0,    0, 3574, 3575, 3575, 3575, 3575,    0,
4134         0, 3575, 3575, 3576, 3576, 3576,    0,    0,    0, 3576,
4135      3577, 3577, 3577, 3577,    0,    0, 3577, 3577, 3578, 3578,
4136      3578,    0,    0,    0, 3578, 3579, 3579, 3579, 3579,    0,
4137
4138         0, 3579, 3579, 3580, 3580, 3580, 3580,    0, 3580,    0,
4139      3580, 3581, 3581, 3581, 3581,    0,    0, 3581, 3581, 3582,
4140      3582, 3582,    0,    0,    0, 3582, 3583, 3583, 3583, 3583,
4141         0,    0, 3583, 3583, 3584, 3584, 3584,    0,    0,    0,
4142      3584, 3585, 3585, 3585, 3585,    0,    0, 3585, 3585, 3586,
4143      3586, 3586,    0,    0,    0, 3586, 3587, 3587, 3587, 3587,
4144         0,    0, 3587, 3587, 3588, 3588, 3588,    0,    0,    0,
4145      3588, 3589, 3589, 3589, 3589,    0,    0, 3589, 3589, 3590,
4146      3590, 3590,    0,    0,    0, 3590, 3591, 3591, 3591, 3591,
4147         0,    0, 3591, 3591, 3592, 3592, 3592,    0,    0,    0,
4148
4149      3592, 3593, 3593, 3593, 3593,    0,    0, 3593, 3593, 3594,
4150      3594, 3594,    0,    0,    0, 3594, 3595, 3595, 3595, 3595,
4151         0,    0, 3595, 3595, 3596, 3596, 3596, 3596, 3596, 3596,
4152      3596, 3596, 3596, 3597, 3597, 3597, 3597, 3597, 3597, 3597,
4153      3597, 3597, 3598, 3598, 3598,    0,    0,    0, 3598, 3599,
4154      3599, 3599, 3599,    0, 3599,    0, 3599, 3600, 3600, 3600,
4155      3600,    0,    0, 3600, 3600, 3601, 3601, 3601, 3601,    0,
4156         0, 3601, 3601, 3602, 3602, 3602,    0,    0,    0, 3602,
4157      3603, 3603, 3603, 3603,    0,    0, 3603, 3603, 3604, 3604,
4158      3604, 3604,    0, 3604,    0, 3604, 3605, 3605, 3605, 3605,
4159
4160         0,    0, 3605, 3605, 3606, 3606, 3606, 3606,    0,    0,
4161      3606, 3606, 3607, 3607, 3607, 3607,    0, 3607,    0, 3607,
4162      3608, 3608, 3608, 3608,    0,    0, 3608, 3608, 3609, 3609,
4163      3609, 3609,    0, 3609,    0, 3609, 3610, 3610, 3610, 3610,
4164         0,    0, 3610, 3610, 3611, 3611, 3611, 3611,    0,    0,
4165      3611, 3611, 3612, 3612, 3612,    0,    0,    0, 3612, 3613,
4166      3613, 3613, 3613,    0,    0, 3613, 3613, 3614, 3614, 3614,
4167      3614,    0,    0, 3614, 3614, 3615, 3615, 3615, 3615,    0,
4168         0, 3615, 3615, 3616, 3616, 3616,    0,    0,    0, 3616,
4169      3617, 3617, 3617, 3617,    0,    0, 3617, 3617, 3618, 3618,
4170
4171      3618,    0,    0,    0, 3618, 3619, 3619, 3619, 3619,    0,
4172         0, 3619, 3619, 3620, 3620, 3620, 3620,    0,    0, 3620,
4173      3620, 3621, 3621, 3621,    0,    0,    0, 3621, 3622, 3622,
4174      3622, 3622,    0,    0, 3622, 3622, 3623, 3623, 3623,    0,
4175         0,    0, 3623, 3624, 3624, 3624, 3624,    0,    0, 3624,
4176      3624, 3625, 3625, 3625,    0,    0,    0, 3625, 3626, 3626,
4177      3626, 3626,    0,    0, 3626, 3626, 3627, 3627, 3627,    0,
4178         0,    0, 3627, 3628, 3628, 3628, 3628,    0,    0, 3628,
4179      3628, 3629, 3629, 3629, 3629,    0,    0, 3629, 3629, 3630,
4180      3630, 3630,    0,    0,    0, 3630, 3631, 3631, 3631, 3631,
4181
4182         0,    0, 3631, 3631, 3632, 3632, 3632,    0,    0,    0,
4183      3632, 3633, 3633, 3633, 3633,    0,    0, 3633, 3633, 3634,
4184      3634, 3634,    0,    0,    0, 3634, 3635, 3635, 3635, 3635,
4185         0,    0, 3635, 3635, 3636, 3636, 3636, 3636,    0, 3636,
4186         0, 3636, 3637, 3637, 3637, 3637,    0,    0, 3637, 3637,
4187      3638, 3638, 3638,    0,    0,    0, 3638, 3639, 3639, 3639,
4188      3639,    0,    0, 3639, 3639, 3640, 3640, 3640,    0,    0,
4189         0, 3640, 3641, 3641, 3641, 3641,    0,    0, 3641, 3641,
4190      3642, 3642, 3642,    0,    0,    0, 3642, 3643, 3643, 3643,
4191      3643,    0,    0, 3643, 3643, 3644, 3644, 3644, 3644, 3644,
4192
4193      3644, 3644, 3644, 3644, 3645, 3645, 3645, 3645, 3645, 3645,
4194      3645, 3645, 3645, 3646, 3646, 3646, 3646,    0, 3646,    0,
4195      3646, 3647, 3647, 3647,    0,    0,    0, 3647, 3648, 3648,
4196      3648, 3648,    0,    0, 3648, 3648, 3649, 3649, 3649, 3649,
4197         0,    0, 3649, 3649, 3650, 3650, 3650,    0,    0,    0,
4198      3650, 3651, 3651, 3651, 3651,    0,    0, 3651, 3651, 3652,
4199      3652, 3652, 3652,    0,    0, 3652, 3652, 3653, 3653, 3653,
4200      3653,    0,    0, 3653, 3653, 3654, 3654, 3654, 3654,    0,
4201      3654,    0, 3654, 3655, 3655, 3655, 3655,    0,    0, 3655,
4202      3655, 3656, 3656, 3656,    0,    0,    0, 3656, 3657, 3657,
4203
4204      3657, 3657,    0,    0, 3657, 3657, 3658, 3658, 3658, 3658,
4205         0,    0, 3658, 3658, 3659, 3659, 3659,    0,    0,    0,
4206      3659, 3660, 3660, 3660, 3660,    0,    0, 3660, 3660, 3661,
4207      3661, 3661, 3661,    0,    0, 3661, 3661, 3662, 3662, 3662,
4208         0,    0,    0, 3662, 3663, 3663, 3663,    0,    0,    0,
4209      3663, 3664, 3664, 3664, 3664,    0,    0, 3664, 3664, 3665,
4210      3665, 3665, 3665,    0,    0, 3665, 3665, 3666, 3666, 3666,
4211         0,    0,    0, 3666, 3667, 3667, 3667, 3667,    0,    0,
4212      3667, 3667, 3668, 3668, 3668,    0,    0,    0, 3668, 3669,
4213      3669, 3669, 3669,    0, 3669,    0, 3669, 3670, 3670, 3670,
4214
4215      3670,    0,    0, 3670, 3670, 3671, 3671, 3671,    0,    0,
4216         0, 3671, 3672, 3672, 3672, 3672,    0,    0, 3672, 3672,
4217      3673, 3673, 3673,    0,    0,    0, 3673, 3674, 3674, 3674,
4218      3674,    0,    0, 3674, 3674, 3675, 3675, 3675,    0,    0,
4219         0, 3675, 3676, 3676, 3676, 3676,    0,    0, 3676, 3676,
4220      3677, 3677, 3677,    0,    0,    0, 3677, 3678, 3678, 3678,
4221      3678,    0,    0, 3678, 3678, 3679, 3679, 3679, 3679,    0,
4222      3679,    0, 3679, 3680, 3680, 3680, 3680,    0,    0, 3680,
4223      3680, 3681, 3681, 3681, 3681,    0, 3681,    0, 3681, 3682,
4224      3682, 3682, 3682,    0,    0, 3682, 3682, 3683, 3683, 3683,
4225
4226         0,    0,    0, 3683, 3684, 3684, 3684, 3684,    0,    0,
4227      3684, 3684, 3685, 3685, 3685, 3685,    0, 3685,    0, 3685,
4228      3686, 3686, 3686, 3686,    0,    0, 3686, 3686, 3687, 3687,
4229      3687, 3687, 3687, 3687, 3687, 3687, 3687, 3688, 3688, 3688,
4230      3688, 3688, 3688, 3688, 3688, 3688, 3689, 3689, 3689,    0,
4231         0,    0, 3689, 3690, 3690, 3690, 3690,    0,    0, 3690,
4232      3690, 3691, 3691, 3691, 3691,    0,    0, 3691, 3691, 3692,
4233      3692, 3692,    0,    0,    0, 3692, 3693, 3693, 3693, 3693,
4234         0,    0, 3693, 3693, 3694, 3694, 3694, 3694,    0,    0,
4235      3694, 3694, 3695, 3695, 3695, 3695,    0,    0, 3695, 3695,
4236
4237      3696, 3696, 3696, 3696,    0,    0, 3696, 3696, 3697, 3697,
4238      3697,    0,    0,    0, 3697, 3698, 3698, 3698, 3698,    0,
4239         0, 3698, 3698, 3699, 3699, 3699, 3699,    0,    0, 3699,
4240      3699, 3700, 3700, 3700,    0,    0,    0, 3700, 3701, 3701,
4241      3701, 3701,    0,    0, 3701, 3701, 3702, 3702, 3702, 3702,
4242         0,    0, 3702, 3702, 3703, 3703, 3703,    0,    0,    0,
4243      3703, 3704, 3704, 3704,    0,    0,    0, 3704, 3705, 3705,
4244      3705, 3705,    0,    0, 3705, 3705, 3706, 3706, 3706, 3706,
4245         0,    0, 3706, 3706, 3707, 3707, 3707,    0,    0,    0,
4246      3707, 3708, 3708, 3708,    0,    0,    0, 3708, 3709, 3709,
4247
4248      3709, 3709,    0,    0, 3709, 3709, 3710, 3710, 3710, 3710,
4249         0, 3710,    0, 3710, 3711, 3711, 3711, 3711,    0,    0,
4250      3711, 3711, 3712, 3712, 3712,    0,    0,    0, 3712, 3713,
4251      3713, 3713, 3713,    0,    0, 3713, 3713, 3714, 3714, 3714,
4252         0,    0,    0, 3714, 3715, 3715, 3715,    0,    0,    0,
4253      3715, 3716, 3716, 3716, 3716,    0,    0, 3716, 3716, 3717,
4254      3717, 3717,    0,    0,    0, 3717, 3718, 3718, 3718, 3718,
4255         0,    0, 3718, 3718, 3719, 3719, 3719,    0,    0,    0,
4256      3719, 3720, 3720, 3720, 3720,    0,    0, 3720, 3720, 3721,
4257      3721, 3721,    0,    0,    0, 3721, 3722, 3722, 3722, 3722,
4258
4259         0,    0, 3722, 3722, 3723, 3723, 3723, 3723, 3723, 3723,
4260      3723, 3723, 3723, 3724, 3724, 3724, 3724, 3724, 3724, 3724,
4261      3724, 3724, 3725, 3725, 3725,    0,    0,    0, 3725, 3726,
4262      3726, 3726, 3726,    0,    0, 3726, 3726, 3727, 3727, 3727,
4263      3727,    0,    0, 3727, 3727, 3728, 3728, 3728, 3728,    0,
4264      3728,    0, 3728, 3729, 3729, 3729, 3729,    0,    0, 3729,
4265      3729, 3730, 3730, 3730, 3730,    0,    0, 3730, 3730, 3731,
4266      3731, 3731, 3731,    0,    0, 3731, 3731, 3732, 3732, 3732,
4267      3732,    0,    0, 3732, 3732, 3733, 3733, 3733,    0,    0,
4268         0, 3733, 3734, 3734, 3734, 3734,    0,    0, 3734, 3734,
4269
4270      3735, 3735, 3735,    0,    0,    0, 3735, 3736, 3736, 3736,
4271      3736,    0,    0, 3736, 3736, 3737, 3737, 3737, 3737,    0,
4272         0, 3737, 3737, 3738, 3738, 3738, 3738,    0, 3738,    0,
4273      3738, 3739, 3739, 3739, 3739,    0, 3739,    0, 3739, 3740,
4274      3740, 3740, 3740,    0,    0, 3740, 3740, 3741, 3741, 3741,
4275      3741,    0,    0, 3741, 3741, 3742, 3742, 3742, 3742,    0,
4276      3742,    0, 3742, 3743, 3743, 3743,    0,    0,    0, 3743,
4277      3744, 3744, 3744, 3744,    0,    0, 3744, 3744, 3745, 3745,
4278      3745, 3745,    0, 3745,    0, 3745, 3746, 3746, 3746, 3746,
4279         0,    0, 3746, 3746, 3747, 3747, 3747, 3747,    0, 3747,
4280
4281         0, 3747, 3748, 3748, 3748,    0,    0,    0, 3748, 3749,
4282      3749, 3749,    0,    0,    0, 3749, 3750, 3750, 3750,    0,
4283         0,    0, 3750, 3751, 3751, 3751, 3751,    0,    0, 3751,
4284      3751, 3752, 3752, 3752,    0,    0,    0, 3752, 3753, 3753,
4285      3753, 3753,    0,    0, 3753, 3753, 3754, 3754, 3754,    0,
4286         0,    0, 3754, 3755, 3755, 3755, 3755,    0,    0, 3755,
4287      3755, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756, 3756,
4288      3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3757, 3758,
4289      3758, 3758,    0,    0,    0, 3758, 3759, 3759, 3759, 3759,
4290         0,    0, 3759, 3759, 3760, 3760, 3760, 3760,    0,    0,
4291
4292      3760, 3760, 3761, 3761, 3761, 3761,    0,    0, 3761, 3761,
4293      3762, 3762, 3762, 3762,    0,    0, 3762, 3762, 3763, 3763,
4294      3763,    0,    0,    0, 3763, 3764, 3764, 3764,    0,    0,
4295         0, 3764, 3765, 3765, 3765, 3765,    0,    0, 3765, 3765,
4296      3766, 3766, 3766,    0,    0,    0, 3766, 3767, 3767, 3767,
4297      3767, 3767, 3767, 3767, 3767, 3767, 3768, 3768, 3768, 3768,
4298      3768, 3768, 3768, 3768, 3768, 3769, 3769, 3769, 3769, 3769,
4299      3769, 3769, 3769, 3769, 3770, 3770, 3770, 3770, 3770, 3770,
4300      3770, 3770, 3770, 3771, 3771, 3771, 3771, 3771, 3771, 3771,
4301      3771, 3771, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772,
4302
4303      3772, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
4304      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
4305      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
4306      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
4307      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
4308      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
4309      3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293, 3293,
4310      3293, 3293, 3293, 3293, 3293, 3293
4311     } ;
4312
4313 /* Table of booleans, true if rule could match eol. */
4314 static yyconst flex_int32_t yy_rule_can_match_eol[558] =
4315     {   0,
4316 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4317     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4318     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4319     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4320     1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 
4321     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4322     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4323     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4324     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4325     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4326     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4327     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 
4328     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4329     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4330     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4331     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4332     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4333     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 
4334     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4335     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4336     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4337     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4338     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4339     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4340     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
4341     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4342     1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 
4343     0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4344
4345 static yy_state_type yy_last_accepting_state;
4346 static char *yy_last_accepting_cpos;
4347
4348 extern int surf_parse__flex_debug;
4349 int surf_parse__flex_debug = 0;
4350
4351 /* The intent behind this definition is that it'll catch
4352  * any uses of REJECT which flex missed.
4353  */
4354 #define REJECT reject_used_but_not_detected
4355 #define yymore() yymore_used_but_not_detected
4356 #define YY_MORE_ADJ 0
4357 #define YY_RESTORE_YY_MORE_OFFSET
4358 char *surf_parse_text;
4359 /* Validating XML processor for src/surf/xml/simgrid.dtd.
4360  *
4361  * This program was generated with the FleXML XML processor generator.
4362  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4363  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4364  * (1.9.6).
4365  * 
4366  * There are two, intertwined parts to this program, part A and part B.
4367  *
4368  * Part A
4369  * ------
4370  * 
4371  * Some parts, here collectively called "Part A", are found in the 
4372  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4373  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4374  *
4375  * You can redistribute, use, perform, display and/or modify "Part A"
4376  * provided the following two conditions hold:
4377  *
4378  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4379  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4380  *    FITNESS FOR A PARTICULAR PURPOSE.
4381  *
4382  * 2. The program distribution conditions do not in any way affect the
4383  *    distribution conditions of the FleXML system used to generate this
4384  *    file or any version of FleXML derived from that system.
4385  *
4386  * Notice that these are explicit rights granted to you for files
4387  * generated by the FleXML system.  For your rights in connection with
4388  * the FleXML system itself please consult the GNU General Public License.
4389  * 
4390  * Part B
4391  * ------
4392  * 
4393  * The other parts, here collectively called "Part B", and which came 
4394  * from the DTD used by FleXML to generate this program, can be 
4395  * distributed (or not, as the case may be) under the terms of whoever
4396  * wrote them, provided these terms respect and obey the two conditions 
4397  * above under the heading "Part A".
4398  *
4399  * The author of and contributors to FleXML specifically disclaim
4400  * any copyright interest in "Part B", unless "Part B" was written 
4401  * by the author of or contributors to FleXML.
4402  * 
4403  */
4404
4405 /* Version strings. */
4406 const char surfxml_flexml_version[] = "1.9.6";
4407
4408 /* ANSI headers. */
4409 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4410 #include <stdio.h>
4411 #include <string.h>
4412 #include <assert.h>
4413 #include <stdarg.h>
4414 #include <ctype.h>
4415      
4416 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4417 # ifndef __STRICT_ANSI__
4418 #  include <io.h>
4419 #  include <process.h>
4420 # endif
4421 #else
4422 # include <unistd.h>
4423 #endif
4424      
4425 #ifndef FLEXML_INDEXSTACKSIZE
4426 #define FLEXML_INDEXSTACKSIZE 1000
4427 #endif
4428
4429 /* Generated definitions. */
4430 #define FLEXML_yylineno
4431 #ifndef FLEXML_BUFFERSTACKSIZE
4432 #define FLEXML_BUFFERSTACKSIZE 1000000
4433 #endif
4434 #define FLEXML_NEED_BUFFERLIT
4435
4436 /* XML processor api. */
4437 /* FleXML-provided data. */
4438 int surfxml_pcdata_ix;
4439 extern char *surfxml_bufferstack;
4440 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4441 AT_surfxml_AS_id AX_surfxml_AS_id;
4442 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4443 short int surfxml_AS_id_isset;
4444 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4445 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4446 short int surfxml_AS_routing_isset;
4447 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4448 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4449 short int surfxml_ASroute_dst_isset;
4450 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4451 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4452 short int surfxml_ASroute_gw___dst_isset;
4453 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4454 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4455 short int surfxml_ASroute_gw___src_isset;
4456 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4457 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4458 short int surfxml_ASroute_src_isset;
4459 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4460 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4461 short int surfxml_ASroute_symmetrical_isset;
4462 AT_surfxml_argument_value AX_surfxml_argument_value;
4463 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4464 short int surfxml_argument_value_isset;
4465 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4466 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4467 short int surfxml_backbone_bandwidth_isset;
4468 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4469 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4470 short int surfxml_backbone_id_isset;
4471 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4472 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4473 short int surfxml_backbone_latency_isset;
4474 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4475 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4476 short int surfxml_bypassASroute_dst_isset;
4477 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4478 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4479 short int surfxml_bypassASroute_gw___dst_isset;
4480 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4481 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4482 short int surfxml_bypassASroute_gw___src_isset;
4483 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4484 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4485 short int surfxml_bypassASroute_src_isset;
4486 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4487 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4488 short int surfxml_bypassRoute_dst_isset;
4489 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4490 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4491 short int surfxml_bypassRoute_src_isset;
4492 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4493 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4494 short int surfxml_cabinet_bw_isset;
4495 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4496 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4497 short int surfxml_cabinet_id_isset;
4498 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4499 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4500 short int surfxml_cabinet_lat_isset;
4501 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4502 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4503 short int surfxml_cabinet_prefix_isset;
4504 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4505 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4506 short int surfxml_cabinet_radical_isset;
4507 AT_surfxml_cabinet_speed AX_surfxml_cabinet_speed;
4508 #define A_surfxml_cabinet_speed (surfxml_bufferstack + AX_surfxml_cabinet_speed)
4509 short int surfxml_cabinet_speed_isset;
4510 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4511 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4512 short int surfxml_cabinet_suffix_isset;
4513 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4514 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4515 short int surfxml_cluster_bb___bw_isset;
4516 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4517 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4518 short int surfxml_cluster_bb___lat_isset;
4519 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4520 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4521 short int surfxml_cluster_bb___sharing___policy_isset;
4522 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4523 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4524 short int surfxml_cluster_bw_isset;
4525 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4526 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4527 short int surfxml_cluster_core_isset;
4528 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4529 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4530 short int surfxml_cluster_id_isset;
4531 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4532 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4533 short int surfxml_cluster_lat_isset;
4534 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4535 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4536 short int surfxml_cluster_limiter___link_isset;
4537 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4538 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4539 short int surfxml_cluster_loopback___bw_isset;
4540 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4541 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4542 short int surfxml_cluster_loopback___lat_isset;
4543 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4544 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4545 short int surfxml_cluster_prefix_isset;
4546 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4547 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4548 short int surfxml_cluster_radical_isset;
4549 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4550 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4551 short int surfxml_cluster_router___id_isset;
4552 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4553 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4554 short int surfxml_cluster_sharing___policy_isset;
4555 AT_surfxml_cluster_speed AX_surfxml_cluster_speed;
4556 #define A_surfxml_cluster_speed (surfxml_bufferstack + AX_surfxml_cluster_speed)
4557 short int surfxml_cluster_speed_isset;
4558 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4559 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4560 short int surfxml_cluster_suffix_isset;
4561 AT_surfxml_cluster_topo___parameters AX_surfxml_cluster_topo___parameters;
4562 #define A_surfxml_cluster_topo___parameters (surfxml_bufferstack + AX_surfxml_cluster_topo___parameters)
4563 short int surfxml_cluster_topo___parameters_isset;
4564 AT_surfxml_cluster_topology AX_surfxml_cluster_topology;
4565 #define A_surfxml_cluster_topology AX_surfxml_cluster_topology
4566 short int surfxml_cluster_topology_isset;
4567 AT_surfxml_config_id AX_surfxml_config_id;
4568 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4569 short int surfxml_config_id_isset;
4570 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4571 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4572 short int surfxml_host_availability___file_isset;
4573 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4574 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4575 short int surfxml_host_coordinates_isset;
4576 AT_surfxml_host_core AX_surfxml_host_core;
4577 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4578 short int surfxml_host_core_isset;
4579 AT_surfxml_host_id AX_surfxml_host_id;
4580 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4581 short int surfxml_host_id_isset;
4582 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4583 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4584 short int surfxml_host_pstate_isset;
4585 AT_surfxml_host_speed AX_surfxml_host_speed;
4586 #define A_surfxml_host_speed (surfxml_bufferstack + AX_surfxml_host_speed)
4587 short int surfxml_host_speed_isset;
4588 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4589 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4590 short int surfxml_host_state___file_isset;
4591 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4592 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4593 short int surfxml_host___link_down_isset;
4594 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4595 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4596 short int surfxml_host___link_id_isset;
4597 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4598 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4599 short int surfxml_host___link_up_isset;
4600 AT_surfxml_include_file AX_surfxml_include_file;
4601 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4602 short int surfxml_include_file_isset;
4603 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4604 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4605 short int surfxml_link_bandwidth_isset;
4606 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4607 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4608 short int surfxml_link_bandwidth___file_isset;
4609 AT_surfxml_link_id AX_surfxml_link_id;
4610 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4611 short int surfxml_link_id_isset;
4612 AT_surfxml_link_latency AX_surfxml_link_latency;
4613 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4614 short int surfxml_link_latency_isset;
4615 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4616 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4617 short int surfxml_link_latency___file_isset;
4618 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4619 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4620 short int surfxml_link_sharing___policy_isset;
4621 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4622 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4623 short int surfxml_link_state___file_isset;
4624 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4625 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4626 short int surfxml_link___ctn_direction_isset;
4627 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4628 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4629 short int surfxml_link___ctn_id_isset;
4630 AT_surfxml_model___prop_id AX_surfxml_model___prop_id;
4631 #define A_surfxml_model___prop_id (surfxml_bufferstack + AX_surfxml_model___prop_id)
4632 short int surfxml_model___prop_id_isset;
4633 AT_surfxml_model___prop_value AX_surfxml_model___prop_value;
4634 #define A_surfxml_model___prop_value (surfxml_bufferstack + AX_surfxml_model___prop_value)
4635 short int surfxml_model___prop_value_isset;
4636 AT_surfxml_mount_name AX_surfxml_mount_name;
4637 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4638 short int surfxml_mount_name_isset;
4639 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4640 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4641 short int surfxml_mount_storageId_isset;
4642 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4643 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4644 short int surfxml_peer_availability___file_isset;
4645 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4646 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4647 short int surfxml_peer_bw___in_isset;
4648 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4649 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4650 short int surfxml_peer_bw___out_isset;
4651 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4652 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4653 short int surfxml_peer_coordinates_isset;
4654 AT_surfxml_peer_id AX_surfxml_peer_id;
4655 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4656 short int surfxml_peer_id_isset;
4657 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4658 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4659 short int surfxml_peer_lat_isset;
4660 AT_surfxml_peer_speed AX_surfxml_peer_speed;
4661 #define A_surfxml_peer_speed (surfxml_bufferstack + AX_surfxml_peer_speed)
4662 short int surfxml_peer_speed_isset;
4663 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4664 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4665 short int surfxml_peer_state___file_isset;
4666 AT_surfxml_platform_version AX_surfxml_platform_version;
4667 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4668 short int surfxml_platform_version_isset;
4669 AT_surfxml_process_function AX_surfxml_process_function;
4670 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4671 short int surfxml_process_function_isset;
4672 AT_surfxml_process_host AX_surfxml_process_host;
4673 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4674 short int surfxml_process_host_isset;
4675 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4676 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4677 short int surfxml_process_kill___time_isset;
4678 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4679 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4680 short int surfxml_process_on___failure_isset;
4681 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4682 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4683 short int surfxml_process_start___time_isset;
4684 AT_surfxml_prop_id AX_surfxml_prop_id;
4685 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4686 short int surfxml_prop_id_isset;
4687 AT_surfxml_prop_value AX_surfxml_prop_value;
4688 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4689 short int surfxml_prop_value_isset;
4690 AT_surfxml_random_generator AX_surfxml_random_generator;
4691 #define A_surfxml_random_generator AX_surfxml_random_generator
4692 short int surfxml_random_generator_isset;
4693 AT_surfxml_random_id AX_surfxml_random_id;
4694 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4695 short int surfxml_random_id_isset;
4696 AT_surfxml_random_max AX_surfxml_random_max;
4697 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4698 short int surfxml_random_max_isset;
4699 AT_surfxml_random_mean AX_surfxml_random_mean;
4700 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4701 short int surfxml_random_mean_isset;
4702 AT_surfxml_random_min AX_surfxml_random_min;
4703 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4704 short int surfxml_random_min_isset;
4705 AT_surfxml_random_radical AX_surfxml_random_radical;
4706 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4707 short int surfxml_random_radical_isset;
4708 AT_surfxml_random_seed AX_surfxml_random_seed;
4709 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4710 short int surfxml_random_seed_isset;
4711 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4712 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4713 short int surfxml_random_std___deviation_isset;
4714 AT_surfxml_route_dst AX_surfxml_route_dst;
4715 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4716 short int surfxml_route_dst_isset;
4717 AT_surfxml_route_src AX_surfxml_route_src;
4718 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4719 short int surfxml_route_src_isset;
4720 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4721 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4722 short int surfxml_route_symmetrical_isset;
4723 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4724 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4725 short int surfxml_router_coordinates_isset;
4726 AT_surfxml_router_id AX_surfxml_router_id;
4727 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4728 short int surfxml_router_id_isset;
4729 AT_surfxml_storage_attach AX_surfxml_storage_attach;
4730 #define A_surfxml_storage_attach (surfxml_bufferstack + AX_surfxml_storage_attach)
4731 short int surfxml_storage_attach_isset;
4732 AT_surfxml_storage_content AX_surfxml_storage_content;
4733 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4734 short int surfxml_storage_content_isset;
4735 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4736 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4737 short int surfxml_storage_content___type_isset;
4738 AT_surfxml_storage_id AX_surfxml_storage_id;
4739 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4740 short int surfxml_storage_id_isset;
4741 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4742 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4743 short int surfxml_storage_typeId_isset;
4744 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4745 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4746 short int surfxml_storage___type_content_isset;
4747 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4748 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4749 short int surfxml_storage___type_content___type_isset;
4750 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4751 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4752 short int surfxml_storage___type_id_isset;
4753 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4754 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4755 short int surfxml_storage___type_model_isset;
4756 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4757 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4758 short int surfxml_storage___type_size_isset;
4759 AT_surfxml_trace_file AX_surfxml_trace_file;
4760 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4761 short int surfxml_trace_file_isset;
4762 AT_surfxml_trace_id AX_surfxml_trace_id;
4763 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4764 short int surfxml_trace_id_isset;
4765 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4766 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4767 short int surfxml_trace_periodicity_isset;
4768 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4769 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4770 short int surfxml_trace___connect_element_isset;
4771 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4772 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4773 short int surfxml_trace___connect_kind_isset;
4774 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4775 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4776 short int surfxml_trace___connect_trace_isset;
4777
4778 /* XML state. */
4779 #ifdef FLEX_DEBUG
4780 # define ENTER(state)   debug_enter(state,#state)
4781 # define LEAVE          debug_leave()
4782 # define SET(state)     debug_set(state,#state)
4783   static void debug_enter(int, const char*);
4784   static void debug_leave(void);
4785   static void debug_set(int, const char*);
4786 #else
4787 # define ENTER(state)   (yy_push_state(state))
4788 # define LEAVE          (yy_pop_state())
4789 # define SET(state)     BEGIN(state)
4790 #endif
4791
4792 /* Generic actions. */
4793 #define SKIP    /*skip*/
4794 #define SUCCEED        CLEANUP; return 0
4795
4796 #define FAIL    return fail
4797 static int fail(const char*, ...);
4798
4799 enum {flexml_max_err_msg_size = 512};
4800 static char flexml_err_msg[flexml_max_err_msg_size];
4801 const char * surfxml_parse_err_msg()
4802 {
4803     return flexml_err_msg;
4804 }
4805 static void reset_surfxml_parse_err_msg()
4806 {
4807     flexml_err_msg[0] = '\0';
4808 }
4809
4810 /* Cleanup */
4811 static void cleanup(void);
4812 #define CLEANUP  cleanup()
4813
4814 /* Text buffer stack handling. */
4815 char *surfxml_bufferstack = NULL;
4816 static int blimit = FLEXML_BUFFERSTACKSIZE;
4817 static int bnext = 1;
4818
4819 static int *indexstack = NULL;
4820 static int ilimit = FLEXML_INDEXSTACKSIZE;
4821 static int inext = 1;
4822
4823 #define BUFFERSET(P)  (P = bnext)
4824 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4825 #define BUFFERDONE    (BUFFERPUTC('\0'))
4826
4827 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4828
4829 /* after this is called, there are at least 2 slots left in the stack */
4830 static int ck_blimit()
4831 {
4832      if (bnext >= blimit) {
4833          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4834          {
4835              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4836              assert(temp);
4837              surfxml_bufferstack = temp;
4838          }
4839      }
4840      return 0;
4841 }
4842
4843 /* after this is called, there are at least 2 slots left in the stack */
4844 static int ck_ilimit()
4845 {
4846      if (inext >= ilimit) {
4847          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4848          {
4849              int *temp = (int *) realloc(indexstack, ilimit);
4850              assert(temp);
4851              indexstack = temp;
4852          }
4853      }
4854      return 0;
4855 }
4856
4857 #ifdef FLEXML_NEED_BUFFERLIT
4858 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4859 {
4860    BUFFERSET(*pp);
4861    if (c) {
4862       const char *s = strchr(text, c), *e = strrchr(text, c);
4863       assert(s && e && s <= e);
4864       ++s;
4865       while (s < e) {
4866          if (isspace(*s)) {
4867             BUFFERPUTC(' ');
4868             do ++s; while (s < e && isspace(*s));
4869          } else
4870            BUFFERPUTC(*s++);
4871       }
4872    } else {
4873       const char *s = text;
4874       while (*s)
4875         BUFFERPUTC(*s++);
4876    }
4877    BUFFERDONE;
4878 }
4879 #endif
4880
4881 static void pushbuffer(int p)
4882 {
4883     ck_ilimit();
4884     indexstack[inext++] = p;
4885     indexstack[inext++] = bnext;    
4886 }
4887
4888 static int popbuffer(void)
4889 {
4890     assert(inext >= 2);
4891     bnext = indexstack[--inext];
4892     return indexstack[--inext];
4893 }
4894
4895 /* General internal entities are `unput' back onto the input stream... */
4896 #define ENTITYTEXT(T) \
4897   { char *s = (T), *e = s+strlen(s);\
4898     while (--e >= s) { unput(*e); }}
4899
4900 /* Flex standard options. */
4901 #define YY_NO_INPUT 1
4902 /* Flex user-requested options. */
4903 /* XML character classes (currently restricted to ASCII). */
4904 /* "Common syntactic structures." */
4905 /* "Names and Tokens." */
4906 /* Miscellaneous. */
4907 /* Parser states (flex `exclusive start conditions'):
4908  *
4909  * PROLOG       the XML prolog of the document before <?xml...>
4910  * DOCTYPE      the XML prolog of the document after <?xml...>
4911  * EPILOG       after the root element
4912  * INCOMMENT    inside an XML comment <!--....-->
4913  * INPI         inside an XML PI <?...?>
4914  * VALUE1       inside a '...'-delimited literal
4915  * VALUE2       inside a "..."-delimited literal
4916  * CDATA        inside a <![CDATA[...] ]> section.
4917  * ROOT_<tag>   expect root element <tag>
4918  * AL_<tag>     inside the attribute list for <tag>
4919  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
4920  * IMPOSSIBLE   dummy to permit disabling rules; must be last
4921  */
4922
4923 /* State names. */
4924 const char* *surfxml_statenames=NULL;
4925
4926 #define INITIAL 0
4927 #define PROLOG 1
4928 #define DOCTYPE 2
4929 #define EPILOG 3
4930 #define INCOMMENT 4
4931 #define INPI 5
4932 #define VALUE1 6
4933 #define VALUE2 7
4934 #define CDATA 8
4935 #define AL_surfxml_AS 9
4936 #define S_surfxml_AS 10
4937 #define S_surfxml_AS_1 11
4938 #define S_surfxml_AS_2 12
4939 #define S_surfxml_AS_3 13
4940 #define S_surfxml_AS_4 14
4941 #define S_surfxml_AS_5 15
4942 #define S_surfxml_AS_6 16
4943 #define S_surfxml_AS_7 17
4944 #define S_surfxml_AS_8 18
4945 #define E_surfxml_AS 19
4946 #define AL_surfxml_ASroute 20
4947 #define S_surfxml_ASroute 21
4948 #define S_surfxml_ASroute_1 22
4949 #define S_surfxml_ASroute_2 23
4950 #define E_surfxml_ASroute 24
4951 #define AL_surfxml_argument 25
4952 #define E_surfxml_argument 26
4953 #define AL_surfxml_backbone 27
4954 #define E_surfxml_backbone 28
4955 #define AL_surfxml_bypassASroute 29
4956 #define S_surfxml_bypassASroute 30
4957 #define S_surfxml_bypassASroute_1 31
4958 #define S_surfxml_bypassASroute_2 32
4959 #define E_surfxml_bypassASroute 33
4960 #define AL_surfxml_bypassRoute 34
4961 #define S_surfxml_bypassRoute 35
4962 #define S_surfxml_bypassRoute_1 36
4963 #define S_surfxml_bypassRoute_2 37
4964 #define E_surfxml_bypassRoute 38
4965 #define AL_surfxml_cabinet 39
4966 #define E_surfxml_cabinet 40
4967 #define AL_surfxml_cluster 41
4968 #define S_surfxml_cluster 42
4969 #define S_surfxml_cluster_1 43
4970 #define S_surfxml_cluster_2 44
4971 #define E_surfxml_cluster 45
4972 #define AL_surfxml_config 46
4973 #define S_surfxml_config 47
4974 #define S_surfxml_config_1 48
4975 #define S_surfxml_config_2 49
4976 #define E_surfxml_config 50
4977 #define AL_surfxml_host 51
4978 #define S_surfxml_host 52
4979 #define S_surfxml_host_1 53
4980 #define S_surfxml_host_2 54
4981 #define E_surfxml_host 55
4982 #define AL_surfxml_host___link 56
4983 #define E_surfxml_host___link 57
4984 #define AL_surfxml_include 58
4985 #define S_surfxml_include 59
4986 #define S_surfxml_include_1 60
4987 #define S_surfxml_include_2 61
4988 #define E_surfxml_include 62
4989 #define AL_surfxml_link 63
4990 #define S_surfxml_link 64
4991 #define S_surfxml_link_1 65
4992 #define S_surfxml_link_2 66
4993 #define E_surfxml_link 67
4994 #define AL_surfxml_link___ctn 68
4995 #define E_surfxml_link___ctn 69
4996 #define AL_surfxml_model___prop 70
4997 #define E_surfxml_model___prop 71
4998 #define AL_surfxml_mount 72
4999 #define E_surfxml_mount 73
5000 #define AL_surfxml_peer 74
5001 #define E_surfxml_peer 75
5002 #define ROOT_surfxml_platform 76
5003 #define AL_surfxml_platform 77
5004 #define S_surfxml_platform 78
5005 #define S_surfxml_platform_1 79
5006 #define S_surfxml_platform_2 80
5007 #define S_surfxml_platform_3 81
5008 #define S_surfxml_platform_4 82
5009 #define S_surfxml_platform_5 83
5010 #define S_surfxml_platform_6 84
5011 #define S_surfxml_platform_7 85
5012 #define S_surfxml_platform_8 86
5013 #define E_surfxml_platform 87
5014 #define AL_surfxml_process 88
5015 #define S_surfxml_process 89
5016 #define S_surfxml_process_1 90
5017 #define S_surfxml_process_2 91
5018 #define E_surfxml_process 92
5019 #define AL_surfxml_prop 93
5020 #define E_surfxml_prop 94
5021 #define AL_surfxml_random 95
5022 #define E_surfxml_random 96
5023 #define AL_surfxml_route 97
5024 #define S_surfxml_route 98
5025 #define S_surfxml_route_1 99
5026 #define S_surfxml_route_2 100
5027 #define E_surfxml_route 101
5028 #define AL_surfxml_router 102
5029 #define E_surfxml_router 103
5030 #define AL_surfxml_storage 104
5031 #define S_surfxml_storage 105
5032 #define S_surfxml_storage_1 106
5033 #define S_surfxml_storage_2 107
5034 #define E_surfxml_storage 108
5035 #define AL_surfxml_storage___type 109
5036 #define S_surfxml_storage___type 110
5037 #define S_surfxml_storage___type_1 111
5038 #define S_surfxml_storage___type_2 112
5039 #define E_surfxml_storage___type 113
5040 #define AL_surfxml_trace 114
5041 #define IN_trace 115
5042 #define AL_surfxml_trace___connect 116
5043 #define E_surfxml_trace___connect 117
5044 #define IMPOSSIBLE 118
5045
5046 #ifndef YY_NO_UNISTD_H
5047 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5048  * down here because we want the user's section 1 to have been scanned first.
5049  * The user has a chance to override it with an option.
5050  */
5051 #if defined(_WIN32)
5052 #  ifndef __STRICT_ANSI__
5053 #    include <io.h>
5054 #    include <process.h>
5055 #  endif
5056 #else
5057 #  include <unistd.h>
5058 #endif
5059 #endif
5060
5061 #ifndef YY_EXTRA_TYPE
5062 #define YY_EXTRA_TYPE void *
5063 #endif
5064
5065 static int yy_init_globals (void );
5066
5067 /* Accessor methods to globals.
5068    These are made visible to non-reentrant scanners for convenience. */
5069
5070 int surf_parse_lex_destroy (void );
5071
5072 int surf_parse_get_debug (void );
5073
5074 void surf_parse_set_debug (int debug_flag  );
5075
5076 YY_EXTRA_TYPE surf_parse_get_extra (void );
5077
5078 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5079
5080 FILE *surf_parse_get_in (void );
5081
5082 void surf_parse_set_in  (FILE * in_str  );
5083
5084 FILE *surf_parse_get_out (void );
5085
5086 void surf_parse_set_out  (FILE * out_str  );
5087
5088 yy_size_t surf_parse_get_leng (void );
5089
5090 char *surf_parse_get_text (void );
5091
5092 int surf_parse_get_lineno (void );
5093
5094 void surf_parse_set_lineno (int line_number  );
5095
5096 /* Macros after this point can all be overridden by user definitions in
5097  * section 1.
5098  */
5099
5100 #ifndef YY_SKIP_YYWRAP
5101 #ifdef __cplusplus
5102 extern "C" int surf_parse_wrap (void );
5103 #else
5104 extern int surf_parse_wrap (void );
5105 #endif
5106 #endif
5107
5108 #ifndef yytext_ptr
5109 static void yy_flex_strncpy (char *,yyconst char *,int );
5110 #endif
5111
5112 #ifdef YY_NEED_STRLEN
5113 static int yy_flex_strlen (yyconst char * );
5114 #endif
5115
5116 #ifndef YY_NO_INPUT
5117
5118 #ifdef __cplusplus
5119 static int yyinput (void );
5120 #else
5121 static int input (void );
5122 #endif
5123
5124 #endif
5125
5126         static int yy_start_stack_ptr = 0;
5127         static int yy_start_stack_depth = 0;
5128         static int *yy_start_stack = NULL;
5129     
5130     static void yy_push_state (int new_state );
5131     
5132     static void yy_pop_state (void );
5133     
5134 /* Amount of stuff to slurp up with each read. */
5135 #ifndef YY_READ_BUF_SIZE
5136 #ifdef __ia64__
5137 /* On IA-64, the buffer size is 16k, not 8k */
5138 #define YY_READ_BUF_SIZE 16384
5139 #else
5140 #define YY_READ_BUF_SIZE 8192
5141 #endif /* __ia64__ */
5142 #endif
5143
5144 /* Copy whatever the last rule matched to the standard output. */
5145 #ifndef ECHO
5146 /* This used to be an fputs(), but since the string might contain NUL's,
5147  * we now use fwrite().
5148  */
5149 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5150 #endif
5151
5152 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5153  * is returned in "result".
5154  */
5155 #ifndef YY_INPUT
5156 #define YY_INPUT(buf,result,max_size) \
5157         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5158                 { \
5159                 int c = '*'; \
5160                 size_t n; \
5161                 for ( n = 0; n < max_size && \
5162                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5163                         buf[n] = (char) c; \
5164                 if ( c == '\n' ) \
5165                         buf[n++] = (char) c; \
5166                 if ( c == EOF && ferror( surf_parse_in ) ) \
5167                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5168                 result = n; \
5169                 } \
5170         else \
5171                 { \
5172                 errno=0; \
5173                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5174                         { \
5175                         if( errno != EINTR) \
5176                                 { \
5177                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5178                                 break; \
5179                                 } \
5180                         errno=0; \
5181                         clearerr(surf_parse_in); \
5182                         } \
5183                 }\
5184 \
5185
5186 #endif
5187
5188 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5189  * we don't want an extra ';' after the "return" because that will cause
5190  * some compilers to complain about unreachable statements.
5191  */
5192 #ifndef yyterminate
5193 #define yyterminate() return YY_NULL
5194 #endif
5195
5196 /* Number of entries by which start-condition stack grows. */
5197 #ifndef YY_START_STACK_INCR
5198 #define YY_START_STACK_INCR 25
5199 #endif
5200
5201 /* Report a fatal error. */
5202 #ifndef YY_FATAL_ERROR
5203 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5204 #endif
5205
5206 /* end tables serialization structures and prototypes */
5207
5208 /* Default declaration of generated scanner - a define so the user can
5209  * easily add parameters.
5210  */
5211 #ifndef YY_DECL
5212 #define YY_DECL_IS_OURS 1
5213
5214 extern int surf_parse_lex (void);
5215
5216 #define YY_DECL int surf_parse_lex (void)
5217 #endif /* !YY_DECL */
5218
5219 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5220  * have been set up.
5221  */
5222 #ifndef YY_USER_ACTION
5223 #define YY_USER_ACTION
5224 #endif
5225
5226 /* Code executed at the end of each rule. */
5227 #ifndef YY_BREAK
5228 #define YY_BREAK break;
5229 #endif
5230
5231 #define YY_RULE_SETUP \
5232         YY_USER_ACTION
5233
5234 /** The main scanner function which does all the work.
5235  */
5236 YY_DECL
5237 {
5238         yy_state_type yy_current_state;
5239         char *yy_cp, *yy_bp;
5240         int yy_act;
5241     
5242         if ( !(yy_init) )
5243                 {
5244                 (yy_init) = 1;
5245
5246 #ifdef YY_USER_INIT
5247                 YY_USER_INIT;
5248 #endif
5249
5250                 if ( ! (yy_start) )
5251                         (yy_start) = 1; /* first start state */
5252
5253                 if ( ! surf_parse_in )
5254                         surf_parse_in = stdin;
5255
5256                 if ( ! surf_parse_out )
5257                         surf_parse_out = stdout;
5258
5259                 if ( ! YY_CURRENT_BUFFER ) {
5260                         surf_parse_ensure_buffer_stack ();
5261                         YY_CURRENT_BUFFER_LVALUE =
5262                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5263                 }
5264
5265                 surf_parse__load_buffer_state( );
5266                 }
5267
5268         {
5269
5270  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5271  SET(PROLOG);
5272  reset_surfxml_parse_err_msg();
5273  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5274  assert(surfxml_bufferstack);
5275  #ifdef FLEX_DEBUG
5276  {
5277      int i;
5278      for (i = 0; i < blimit; i++) {
5279          surfxml_bufferstack[i] = '\377';
5280      }
5281  }
5282  #endif
5283  surfxml_bufferstack[0] = '\0';
5284  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5285  assert(indexstack);
5286  indexstack[0] = 0;
5287
5288   /* FleXML_init */
5289   bnext = inext = 1;
5290   surfxml_bufferliteral('\0', &bnext, "0.0");
5291   surfxml_bufferliteral('\0', &bnext, "2147483647");
5292   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5293   surfxml_bufferliteral('\0', &bnext, "1");
5294   surfxml_bufferliteral('\0', &bnext, "0.0");
5295   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5296   surfxml_bufferliteral('\0', &bnext, "1");
5297   surfxml_bufferliteral('\0', &bnext, "0s");
5298   surfxml_bufferliteral('\0', &bnext, "-1.0");
5299   surfxml_bufferliteral('\0', &bnext, "-1.0");
5300   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5301   surfxml_statenames[PROLOG] = NULL;
5302   surfxml_statenames[DOCTYPE] = NULL;
5303   surfxml_statenames[EPILOG] = NULL;
5304   surfxml_statenames[INCOMMENT] = NULL;
5305   surfxml_statenames[INPI] = NULL;
5306   surfxml_statenames[VALUE1] = NULL;
5307   surfxml_statenames[VALUE2] = NULL;
5308   surfxml_statenames[CDATA] = NULL;
5309   surfxml_statenames[AL_surfxml_AS] = NULL;
5310   surfxml_statenames[S_surfxml_AS] = "AS";
5311   surfxml_statenames[S_surfxml_AS_1] = "AS";
5312   surfxml_statenames[S_surfxml_AS_2] = "AS";
5313   surfxml_statenames[S_surfxml_AS_3] = "AS";
5314   surfxml_statenames[S_surfxml_AS_4] = "AS";
5315   surfxml_statenames[S_surfxml_AS_5] = "AS";
5316   surfxml_statenames[S_surfxml_AS_6] = "AS";
5317   surfxml_statenames[S_surfxml_AS_7] = "AS";
5318   surfxml_statenames[S_surfxml_AS_8] = "AS";
5319   surfxml_statenames[E_surfxml_AS] = "AS";
5320   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5321   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5322   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5323   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5324   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5325   surfxml_statenames[AL_surfxml_argument] = NULL;
5326   surfxml_statenames[E_surfxml_argument] = "argument";
5327   surfxml_statenames[AL_surfxml_backbone] = NULL;
5328   surfxml_statenames[E_surfxml_backbone] = "backbone";
5329   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5330   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5331   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5332   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5333   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5334   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5335   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5336   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5337   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5338   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5339   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5340   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5341   surfxml_statenames[AL_surfxml_cluster] = NULL;
5342   surfxml_statenames[S_surfxml_cluster] = "cluster";
5343   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5344   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5345   surfxml_statenames[E_surfxml_cluster] = "cluster";
5346   surfxml_statenames[AL_surfxml_config] = NULL;
5347   surfxml_statenames[S_surfxml_config] = "config";
5348   surfxml_statenames[S_surfxml_config_1] = "config";
5349   surfxml_statenames[S_surfxml_config_2] = "config";
5350   surfxml_statenames[E_surfxml_config] = "config";
5351   surfxml_statenames[AL_surfxml_host] = NULL;
5352   surfxml_statenames[S_surfxml_host] = "host";
5353   surfxml_statenames[S_surfxml_host_1] = "host";
5354   surfxml_statenames[S_surfxml_host_2] = "host";
5355   surfxml_statenames[E_surfxml_host] = "host";
5356   surfxml_statenames[AL_surfxml_host___link] = NULL;
5357   surfxml_statenames[E_surfxml_host___link] = "host_link";
5358   surfxml_statenames[AL_surfxml_include] = NULL;
5359   surfxml_statenames[S_surfxml_include] = "include";
5360   surfxml_statenames[S_surfxml_include_1] = "include";
5361   surfxml_statenames[S_surfxml_include_2] = "include";
5362   surfxml_statenames[E_surfxml_include] = "include";
5363   surfxml_statenames[AL_surfxml_link] = NULL;
5364   surfxml_statenames[S_surfxml_link] = "link";
5365   surfxml_statenames[S_surfxml_link_1] = "link";
5366   surfxml_statenames[S_surfxml_link_2] = "link";
5367   surfxml_statenames[E_surfxml_link] = "link";
5368   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5369   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5370   surfxml_statenames[AL_surfxml_model___prop] = NULL;
5371   surfxml_statenames[E_surfxml_model___prop] = "model_prop";
5372   surfxml_statenames[AL_surfxml_mount] = NULL;
5373   surfxml_statenames[E_surfxml_mount] = "mount";
5374   surfxml_statenames[AL_surfxml_peer] = NULL;
5375   surfxml_statenames[E_surfxml_peer] = "peer";
5376   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5377   surfxml_statenames[AL_surfxml_platform] = NULL;
5378   surfxml_statenames[S_surfxml_platform] = "platform";
5379   surfxml_statenames[S_surfxml_platform_1] = "platform";
5380   surfxml_statenames[S_surfxml_platform_2] = "platform";
5381   surfxml_statenames[S_surfxml_platform_3] = "platform";
5382   surfxml_statenames[S_surfxml_platform_4] = "platform";
5383   surfxml_statenames[S_surfxml_platform_5] = "platform";
5384   surfxml_statenames[S_surfxml_platform_6] = "platform";
5385   surfxml_statenames[S_surfxml_platform_7] = "platform";
5386   surfxml_statenames[S_surfxml_platform_8] = "platform";
5387   surfxml_statenames[E_surfxml_platform] = "platform";
5388   surfxml_statenames[AL_surfxml_process] = NULL;
5389   surfxml_statenames[S_surfxml_process] = "process";
5390   surfxml_statenames[S_surfxml_process_1] = "process";
5391   surfxml_statenames[S_surfxml_process_2] = "process";
5392   surfxml_statenames[E_surfxml_process] = "process";
5393   surfxml_statenames[AL_surfxml_prop] = NULL;
5394   surfxml_statenames[E_surfxml_prop] = "prop";
5395   surfxml_statenames[AL_surfxml_random] = NULL;
5396   surfxml_statenames[E_surfxml_random] = "random";
5397   surfxml_statenames[AL_surfxml_route] = NULL;
5398   surfxml_statenames[S_surfxml_route] = "route";
5399   surfxml_statenames[S_surfxml_route_1] = "route";
5400   surfxml_statenames[S_surfxml_route_2] = "route";
5401   surfxml_statenames[E_surfxml_route] = "route";
5402   surfxml_statenames[AL_surfxml_router] = NULL;
5403   surfxml_statenames[E_surfxml_router] = "router";
5404   surfxml_statenames[AL_surfxml_storage] = NULL;
5405   surfxml_statenames[S_surfxml_storage] = "storage";
5406   surfxml_statenames[S_surfxml_storage_1] = "storage";
5407   surfxml_statenames[S_surfxml_storage_2] = "storage";
5408   surfxml_statenames[E_surfxml_storage] = "storage";
5409   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5410   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5411   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5412   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5413   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5414   surfxml_statenames[AL_surfxml_trace] = NULL;
5415   surfxml_statenames[IN_trace] = "trace";
5416   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5417   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5418   }
5419
5420  /* COMMENTS and PIs: handled uniformly for efficiency. */
5421
5422         while ( 1 )             /* loops until end-of-file is reached */
5423                 {
5424                 yy_cp = (yy_c_buf_p);
5425
5426                 /* Support of surf_parse_text. */
5427                 *yy_cp = (yy_hold_char);
5428
5429                 /* yy_bp points to the position in yy_ch_buf of the start of
5430                  * the current run.
5431                  */
5432                 yy_bp = yy_cp;
5433
5434                 yy_current_state = (yy_start);
5435 yy_match:
5436                 do
5437                         {
5438                         YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
5439                         if ( yy_accept[yy_current_state] )
5440                                 {
5441                                 (yy_last_accepting_state) = yy_current_state;
5442                                 (yy_last_accepting_cpos) = yy_cp;
5443                                 }
5444                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5445                                 {
5446                                 yy_current_state = (int) yy_def[yy_current_state];
5447                                 if ( yy_current_state >= 3294 )
5448                                         yy_c = yy_meta[(unsigned int) yy_c];
5449                                 }
5450                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5451                         ++yy_cp;
5452                         }
5453                 while ( yy_base[yy_current_state] != 11902 );
5454
5455 yy_find_action:
5456                 yy_act = yy_accept[yy_current_state];
5457                 if ( yy_act == 0 )
5458                         { /* have to back up */
5459                         yy_cp = (yy_last_accepting_cpos);
5460                         yy_current_state = (yy_last_accepting_state);
5461                         yy_act = yy_accept[yy_current_state];
5462                         }
5463
5464                 YY_DO_BEFORE_ACTION;
5465
5466                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5467                         {
5468                         yy_size_t yyl;
5469                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5470                                 if ( surf_parse_text[yyl] == '\n' )
5471                                            
5472     surf_parse_lineno++;
5473 ;
5474                         }
5475
5476 do_action:      /* This label is used only to access EOF actions. */
5477
5478                 switch ( yy_act )
5479         { /* beginning of action switch */
5480                         case 0: /* must back up */
5481                         /* undo the effects of YY_DO_BEFORE_ACTION */
5482                         *yy_cp = (yy_hold_char);
5483                         yy_cp = (yy_last_accepting_cpos);
5484                         yy_current_state = (yy_last_accepting_state);
5485                         goto yy_find_action;
5486
5487 case 1:
5488 YY_RULE_SETUP
5489 ENTER(INCOMMENT);
5490         YY_BREAK
5491 case 2:
5492 YY_RULE_SETUP
5493 ENTER(INPI);
5494         YY_BREAK
5495
5496 case 3:
5497 YY_RULE_SETUP
5498 LEAVE;
5499         YY_BREAK
5500 case 4:
5501 case 5:
5502 case 6:
5503 /* rule 6 can match eol */
5504 YY_RULE_SETUP
5505 SKIP;
5506         YY_BREAK
5507 case YY_STATE_EOF(INCOMMENT):
5508 FAIL("EOF in comment.");
5509         YY_BREAK
5510
5511 case 7:
5512 YY_RULE_SETUP
5513 LEAVE;
5514         YY_BREAK
5515 case 8:
5516 case 9:
5517 /* rule 9 can match eol */
5518 YY_RULE_SETUP
5519 SKIP;
5520         YY_BREAK
5521 case YY_STATE_EOF(INPI):
5522 FAIL("EOF in PI (processing instruction).");
5523         YY_BREAK
5524
5525 /* SPACES: skipped uniformly */
5526 case 10:
5527 /* rule 10 can match eol */
5528 YY_RULE_SETUP
5529 SKIP;
5530         YY_BREAK
5531 /* PROLOG: determine root element and process it. */
5532
5533 case 11:
5534 /* rule 11 can match eol */
5535 YY_RULE_SETUP
5536 SET(DOCTYPE); 
5537         YY_BREAK
5538 case 12:
5539 /* rule 12 can match eol */
5540 YY_RULE_SETUP
5541 FAIL("Bad declaration %s.\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);
5542         YY_BREAK
5543
5544 case 13:
5545 /* rule 13 can match eol */
5546 YY_RULE_SETUP
5547 SET(ROOT_surfxml_platform);
5548         YY_BREAK
5549 case 14:
5550 /* rule 14 can match eol */
5551 YY_RULE_SETUP
5552 FAIL("Bad declaration %s.\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);
5553         YY_BREAK
5554 case 15:
5555 YY_RULE_SETUP
5556 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5557         YY_BREAK
5558 case YY_STATE_EOF(PROLOG):
5559 case YY_STATE_EOF(DOCTYPE):
5560 FAIL("EOF in prolog.");
5561         YY_BREAK
5562
5563 /* RULES DERIVED FROM DTD. */
5564 case 16:
5565 /* rule 16 can match eol */
5566 YY_RULE_SETUP
5567 FAIL("Starting tag <AS> is not allowed here.");
5568         YY_BREAK
5569 case 17:
5570 /* rule 17 can match eol */
5571 YY_RULE_SETUP
5572 {
5573   AX_surfxml_AS_id = 0;
5574   surfxml_AS_id_isset = 0;
5575   AX_surfxml_AS_routing = AU_surfxml_AS_routing;
5576   surfxml_AS_routing_isset = 0;
5577   ENTER(AL_surfxml_AS); pushbuffer(0);
5578   }
5579         YY_BREAK
5580
5581 case 18:
5582 /* rule 18 can match eol */
5583 YY_RULE_SETUP
5584 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);
5585         YY_BREAK
5586 case 19:
5587 /* rule 19 can match eol */
5588 YY_RULE_SETUP
5589 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);
5590         YY_BREAK
5591 case 20:
5592 /* rule 20 can match eol */
5593 case 21:
5594 /* rule 21 can match eol */
5595 YY_RULE_SETUP
5596 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
5597         YY_BREAK
5598 case 22:
5599 /* rule 22 can match eol */
5600 case 23:
5601 /* rule 23 can match eol */
5602 YY_RULE_SETUP
5603 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
5604         YY_BREAK
5605 case 24:
5606 /* rule 24 can match eol */
5607 case 25:
5608 /* rule 25 can match eol */
5609 YY_RULE_SETUP
5610 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
5611         YY_BREAK
5612 case 26:
5613 /* rule 26 can match eol */
5614 case 27:
5615 /* rule 27 can match eol */
5616 YY_RULE_SETUP
5617 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
5618         YY_BREAK
5619 case 28:
5620 /* rule 28 can match eol */
5621 case 29:
5622 /* rule 29 can match eol */
5623 YY_RULE_SETUP
5624 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
5625         YY_BREAK
5626 case 30:
5627 /* rule 30 can match eol */
5628 case 31:
5629 /* rule 31 can match eol */
5630 YY_RULE_SETUP
5631 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
5632         YY_BREAK
5633 case 32:
5634 /* rule 32 can match eol */
5635 case 33:
5636 /* rule 33 can match eol */
5637 YY_RULE_SETUP
5638 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
5639         YY_BREAK
5640 case 34:
5641 /* rule 34 can match eol */
5642 case 35:
5643 /* rule 35 can match eol */
5644 YY_RULE_SETUP
5645 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterTorus;
5646         YY_BREAK
5647 case 36:
5648 /* rule 36 can match eol */
5649 case 37:
5650 /* rule 37 can match eol */
5651 YY_RULE_SETUP
5652 A_surfxml_AS_routing = A_surfxml_AS_routing_ClusterFatTree;
5653         YY_BREAK
5654 case 38:
5655 YY_RULE_SETUP
5656 {
5657   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5658   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5659   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
5660  }
5661         YY_BREAK
5662 case 39:
5663 YY_RULE_SETUP
5664 {
5665   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
5666   if (!AX_surfxml_AS_routing) FAIL("Required attribute `routing' not set for `AS' element.");
5667   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
5668   switch (YY_START) {
5669    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;
5670    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5671    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;
5672   }
5673  }
5674         YY_BREAK
5675 case 40:
5676 YY_RULE_SETUP
5677 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
5678         YY_BREAK
5679 case 41:
5680 YY_RULE_SETUP
5681 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
5682         YY_BREAK
5683 case YY_STATE_EOF(AL_surfxml_AS):
5684 FAIL("EOF in attribute list of `AS' element.");
5685         YY_BREAK
5686
5687 case 42:
5688 /* rule 42 can match eol */
5689 YY_RULE_SETUP
5690 {
5691   LEAVE;
5692   ETag_surfxml_AS();
5693   popbuffer(); /* attribute */
5694   switch (YY_START) {
5695    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;
5696    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5697    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;
5698   }
5699  }
5700         YY_BREAK
5701 case 43:
5702 /* rule 43 can match eol */
5703 YY_RULE_SETUP
5704 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
5705         YY_BREAK
5706 case 44:
5707 YY_RULE_SETUP
5708 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
5709         YY_BREAK
5710 case YY_STATE_EOF(E_surfxml_AS):
5711 case YY_STATE_EOF(S_surfxml_AS):
5712 case YY_STATE_EOF(S_surfxml_AS_1):
5713 case YY_STATE_EOF(S_surfxml_AS_3):
5714 case YY_STATE_EOF(S_surfxml_AS_4):
5715 case YY_STATE_EOF(S_surfxml_AS_6):
5716 case YY_STATE_EOF(S_surfxml_AS_8):
5717 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
5718         YY_BREAK
5719
5720 case 45:
5721 /* rule 45 can match eol */
5722 YY_RULE_SETUP
5723 FAIL("Starting tag <ASroute> is not allowed here.");
5724         YY_BREAK
5725 case 46:
5726 /* rule 46 can match eol */
5727 YY_RULE_SETUP
5728 {
5729   AX_surfxml_ASroute_dst = 0;
5730   surfxml_ASroute_dst_isset = 0;
5731   AX_surfxml_ASroute_gw___dst = 0;
5732   surfxml_ASroute_gw___dst_isset = 0;
5733   AX_surfxml_ASroute_gw___src = 0;
5734   surfxml_ASroute_gw___src_isset = 0;
5735   AX_surfxml_ASroute_src = 0;
5736   surfxml_ASroute_src_isset = 0;
5737   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
5738   surfxml_ASroute_symmetrical_isset = 0;
5739   ENTER(AL_surfxml_ASroute); pushbuffer(0);
5740   }
5741         YY_BREAK
5742
5743 case 47:
5744 /* rule 47 can match eol */
5745 YY_RULE_SETUP
5746 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);
5747         YY_BREAK
5748 case 48:
5749 /* rule 48 can match eol */
5750 YY_RULE_SETUP
5751 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);
5752         YY_BREAK
5753 case 49:
5754 /* rule 49 can match eol */
5755 YY_RULE_SETUP
5756 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);
5757         YY_BREAK
5758 case 50:
5759 /* rule 50 can match eol */
5760 YY_RULE_SETUP
5761 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);
5762         YY_BREAK
5763 case 51:
5764 /* rule 51 can match eol */
5765 YY_RULE_SETUP
5766 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);
5767         YY_BREAK
5768 case 52:
5769 /* rule 52 can match eol */
5770 YY_RULE_SETUP
5771 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);
5772         YY_BREAK
5773 case 53:
5774 /* rule 53 can match eol */
5775 YY_RULE_SETUP
5776 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);
5777         YY_BREAK
5778 case 54:
5779 /* rule 54 can match eol */
5780 YY_RULE_SETUP
5781 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);
5782         YY_BREAK
5783 case 55:
5784 /* rule 55 can match eol */
5785 case 56:
5786 /* rule 56 can match eol */
5787 YY_RULE_SETUP
5788 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
5789         YY_BREAK
5790 case 57:
5791 /* rule 57 can match eol */
5792 case 58:
5793 /* rule 58 can match eol */
5794 YY_RULE_SETUP
5795 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
5796         YY_BREAK
5797 case 59:
5798 YY_RULE_SETUP
5799 {
5800   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
5801   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
5802   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
5803   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
5804   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
5805  }
5806         YY_BREAK
5807 case 60:
5808 YY_RULE_SETUP
5809 {
5810   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
5811   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
5812   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
5813   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
5814   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
5815   switch (YY_START) {
5816    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;
5817    case S_surfxml_AS: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
5818   }
5819  }
5820         YY_BREAK
5821 case 61:
5822 YY_RULE_SETUP
5823 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
5824         YY_BREAK
5825 case 62:
5826 YY_RULE_SETUP
5827 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
5828         YY_BREAK
5829 case YY_STATE_EOF(AL_surfxml_ASroute):
5830 FAIL("EOF in attribute list of `ASroute' element.");
5831         YY_BREAK
5832
5833 case 63:
5834 /* rule 63 can match eol */
5835 YY_RULE_SETUP
5836 {
5837   LEAVE;
5838   ETag_surfxml_ASroute();
5839   popbuffer(); /* attribute */
5840   switch (YY_START) {
5841    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;
5842    case S_surfxml_AS: case S_surfxml_AS_4: case S_surfxml_AS_7: case S_surfxml_AS_8: SET(S_surfxml_AS_8); break;
5843   }
5844  }
5845         YY_BREAK
5846 case 64:
5847 /* rule 64 can match eol */
5848 YY_RULE_SETUP
5849 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
5850         YY_BREAK
5851 case 65:
5852 YY_RULE_SETUP
5853 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
5854         YY_BREAK
5855 case YY_STATE_EOF(E_surfxml_ASroute):
5856 case YY_STATE_EOF(S_surfxml_ASroute):
5857 case YY_STATE_EOF(S_surfxml_ASroute_2):
5858 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
5859         YY_BREAK
5860
5861 case 66:
5862 /* rule 66 can match eol */
5863 YY_RULE_SETUP
5864 FAIL("Starting tag <argument> is not allowed here.");
5865         YY_BREAK
5866 case 67:
5867 /* rule 67 can match eol */
5868 YY_RULE_SETUP
5869 {
5870   AX_surfxml_argument_value = 0;
5871   surfxml_argument_value_isset = 0;
5872   ENTER(AL_surfxml_argument); pushbuffer(0);
5873   }
5874         YY_BREAK
5875
5876 case 68:
5877 /* rule 68 can match eol */
5878 YY_RULE_SETUP
5879 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);
5880         YY_BREAK
5881 case 69:
5882 /* rule 69 can match eol */
5883 YY_RULE_SETUP
5884 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);
5885         YY_BREAK
5886 case 70:
5887 YY_RULE_SETUP
5888 {
5889   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
5890   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
5891  }
5892         YY_BREAK
5893 case 71:
5894 YY_RULE_SETUP
5895 {
5896   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
5897   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
5898   switch (YY_START) {
5899    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
5900   }
5901  }
5902         YY_BREAK
5903 case 72:
5904 YY_RULE_SETUP
5905 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
5906         YY_BREAK
5907 case 73:
5908 YY_RULE_SETUP
5909 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
5910         YY_BREAK
5911 case YY_STATE_EOF(AL_surfxml_argument):
5912 FAIL("EOF in attribute list of `argument' element.");
5913         YY_BREAK
5914
5915 case 74:
5916 /* rule 74 can match eol */
5917 YY_RULE_SETUP
5918 {
5919   LEAVE;
5920   ETag_surfxml_argument();
5921   popbuffer(); /* attribute */
5922   switch (YY_START) {
5923    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
5924   }
5925  }
5926         YY_BREAK
5927 case 75:
5928 /* rule 75 can match eol */
5929 YY_RULE_SETUP
5930 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
5931         YY_BREAK
5932 case 76:
5933 YY_RULE_SETUP
5934 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
5935         YY_BREAK
5936 case YY_STATE_EOF(E_surfxml_argument):
5937 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
5938         YY_BREAK
5939
5940 case 77:
5941 /* rule 77 can match eol */
5942 YY_RULE_SETUP
5943 FAIL("Starting tag <backbone> is not allowed here.");
5944         YY_BREAK
5945 case 78:
5946 /* rule 78 can match eol */
5947 YY_RULE_SETUP
5948 {
5949   AX_surfxml_backbone_bandwidth = 0;
5950   surfxml_backbone_bandwidth_isset = 0;
5951   AX_surfxml_backbone_id = 0;
5952   surfxml_backbone_id_isset = 0;
5953   AX_surfxml_backbone_latency = 0;
5954   surfxml_backbone_latency_isset = 0;
5955   ENTER(AL_surfxml_backbone); pushbuffer(0);
5956   }
5957         YY_BREAK
5958
5959 case 79:
5960 /* rule 79 can match eol */
5961 YY_RULE_SETUP
5962 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);
5963         YY_BREAK
5964 case 80:
5965 /* rule 80 can match eol */
5966 YY_RULE_SETUP
5967 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);
5968         YY_BREAK
5969 case 81:
5970 /* rule 81 can match eol */
5971 YY_RULE_SETUP
5972 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);
5973         YY_BREAK
5974 case 82:
5975 /* rule 82 can match eol */
5976 YY_RULE_SETUP
5977 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);
5978         YY_BREAK
5979 case 83:
5980 /* rule 83 can match eol */
5981 YY_RULE_SETUP
5982 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);
5983         YY_BREAK
5984 case 84:
5985 /* rule 84 can match eol */
5986 YY_RULE_SETUP
5987 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);
5988         YY_BREAK
5989 case 85:
5990 YY_RULE_SETUP
5991 {
5992   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
5993   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
5994   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
5995   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
5996  }
5997         YY_BREAK
5998 case 86:
5999 YY_RULE_SETUP
6000 {
6001   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
6002   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
6003   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
6004   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
6005   switch (YY_START) {
6006    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;
6007   }
6008  }
6009         YY_BREAK
6010 case 87:
6011 YY_RULE_SETUP
6012 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
6013         YY_BREAK
6014 case 88:
6015 YY_RULE_SETUP
6016 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
6017         YY_BREAK
6018 case YY_STATE_EOF(AL_surfxml_backbone):
6019 FAIL("EOF in attribute list of `backbone' element.");
6020         YY_BREAK
6021
6022 case 89:
6023 /* rule 89 can match eol */
6024 YY_RULE_SETUP
6025 {
6026   LEAVE;
6027   ETag_surfxml_backbone();
6028   popbuffer(); /* attribute */
6029   switch (YY_START) {
6030    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;
6031   }
6032  }
6033         YY_BREAK
6034 case 90:
6035 /* rule 90 can match eol */
6036 YY_RULE_SETUP
6037 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
6038         YY_BREAK
6039 case 91:
6040 YY_RULE_SETUP
6041 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
6042         YY_BREAK
6043 case YY_STATE_EOF(E_surfxml_backbone):
6044 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
6045         YY_BREAK
6046
6047 case 92:
6048 /* rule 92 can match eol */
6049 YY_RULE_SETUP
6050 FAIL("Starting tag <bypassASroute> is not allowed here.");
6051         YY_BREAK
6052 case 93:
6053 /* rule 93 can match eol */
6054 YY_RULE_SETUP
6055 {
6056   AX_surfxml_bypassASroute_dst = 0;
6057   surfxml_bypassASroute_dst_isset = 0;
6058   AX_surfxml_bypassASroute_gw___dst = 0;
6059   surfxml_bypassASroute_gw___dst_isset = 0;
6060   AX_surfxml_bypassASroute_gw___src = 0;
6061   surfxml_bypassASroute_gw___src_isset = 0;
6062   AX_surfxml_bypassASroute_src = 0;
6063   surfxml_bypassASroute_src_isset = 0;
6064   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
6065   }
6066         YY_BREAK
6067
6068 case 94:
6069 /* rule 94 can match eol */
6070 YY_RULE_SETUP
6071 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);
6072         YY_BREAK
6073 case 95:
6074 /* rule 95 can match eol */
6075 YY_RULE_SETUP
6076 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);
6077         YY_BREAK
6078 case 96:
6079 /* rule 96 can match eol */
6080 YY_RULE_SETUP
6081 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);
6082         YY_BREAK
6083 case 97:
6084 /* rule 97 can match eol */
6085 YY_RULE_SETUP
6086 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);
6087         YY_BREAK
6088 case 98:
6089 /* rule 98 can match eol */
6090 YY_RULE_SETUP
6091 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);
6092         YY_BREAK
6093 case 99:
6094 /* rule 99 can match eol */
6095 YY_RULE_SETUP
6096 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);
6097         YY_BREAK
6098 case 100:
6099 /* rule 100 can match eol */
6100 YY_RULE_SETUP
6101 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);
6102         YY_BREAK
6103 case 101:
6104 /* rule 101 can match eol */
6105 YY_RULE_SETUP
6106 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);
6107         YY_BREAK
6108 case 102:
6109 YY_RULE_SETUP
6110 {
6111   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
6112   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
6113   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
6114   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
6115   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
6116  }
6117         YY_BREAK
6118 case 103:
6119 YY_RULE_SETUP
6120 {
6121   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
6122   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
6123   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
6124   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
6125   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
6126   switch (YY_START) {
6127    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;
6128   }
6129  }
6130         YY_BREAK
6131 case 104:
6132 YY_RULE_SETUP
6133 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
6134         YY_BREAK
6135 case 105:
6136 YY_RULE_SETUP
6137 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
6138         YY_BREAK
6139 case YY_STATE_EOF(AL_surfxml_bypassASroute):
6140 FAIL("EOF in attribute list of `bypassASroute' element.");
6141         YY_BREAK
6142
6143 case 106:
6144 /* rule 106 can match eol */
6145 YY_RULE_SETUP
6146 {
6147   LEAVE;
6148   ETag_surfxml_bypassASroute();
6149   popbuffer(); /* attribute */
6150   switch (YY_START) {
6151    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;
6152   }
6153  }
6154         YY_BREAK
6155 case 107:
6156 /* rule 107 can match eol */
6157 YY_RULE_SETUP
6158 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
6159         YY_BREAK
6160 case 108:
6161 YY_RULE_SETUP
6162 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
6163         YY_BREAK
6164 case YY_STATE_EOF(E_surfxml_bypassASroute):
6165 case YY_STATE_EOF(S_surfxml_bypassASroute):
6166 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
6167 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
6168         YY_BREAK
6169
6170 case 109:
6171 /* rule 109 can match eol */
6172 YY_RULE_SETUP
6173 FAIL("Starting tag <bypassRoute> is not allowed here.");
6174         YY_BREAK
6175 case 110:
6176 /* rule 110 can match eol */
6177 YY_RULE_SETUP
6178 {
6179   AX_surfxml_bypassRoute_dst = 0;
6180   surfxml_bypassRoute_dst_isset = 0;
6181   AX_surfxml_bypassRoute_src = 0;
6182   surfxml_bypassRoute_src_isset = 0;
6183   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
6184   }
6185         YY_BREAK
6186
6187 case 111:
6188 /* rule 111 can match eol */
6189 YY_RULE_SETUP
6190 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);
6191         YY_BREAK
6192 case 112:
6193 /* rule 112 can match eol */
6194 YY_RULE_SETUP
6195 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);
6196         YY_BREAK
6197 case 113:
6198 /* rule 113 can match eol */
6199 YY_RULE_SETUP
6200 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);
6201         YY_BREAK
6202 case 114:
6203 /* rule 114 can match eol */
6204 YY_RULE_SETUP
6205 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);
6206         YY_BREAK
6207 case 115:
6208 YY_RULE_SETUP
6209 {
6210   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6211   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6212   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
6213  }
6214         YY_BREAK
6215 case 116:
6216 YY_RULE_SETUP
6217 {
6218   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
6219   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
6220   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
6221   switch (YY_START) {
6222    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;
6223   }
6224  }
6225         YY_BREAK
6226 case 117:
6227 YY_RULE_SETUP
6228 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
6229         YY_BREAK
6230 case 118:
6231 YY_RULE_SETUP
6232 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
6233         YY_BREAK
6234 case YY_STATE_EOF(AL_surfxml_bypassRoute):
6235 FAIL("EOF in attribute list of `bypassRoute' element.");
6236         YY_BREAK
6237
6238 case 119:
6239 /* rule 119 can match eol */
6240 YY_RULE_SETUP
6241 {
6242   LEAVE;
6243   ETag_surfxml_bypassRoute();
6244   popbuffer(); /* attribute */
6245   switch (YY_START) {
6246    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;
6247   }
6248  }
6249         YY_BREAK
6250 case 120:
6251 /* rule 120 can match eol */
6252 YY_RULE_SETUP
6253 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
6254         YY_BREAK
6255 case 121:
6256 YY_RULE_SETUP
6257 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
6258         YY_BREAK
6259 case YY_STATE_EOF(E_surfxml_bypassRoute):
6260 case YY_STATE_EOF(S_surfxml_bypassRoute):
6261 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
6262 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
6263         YY_BREAK
6264
6265 case 122:
6266 /* rule 122 can match eol */
6267 YY_RULE_SETUP
6268 FAIL("Starting tag <cabinet> is not allowed here.");
6269         YY_BREAK
6270 case 123:
6271 /* rule 123 can match eol */
6272 YY_RULE_SETUP
6273 {
6274   AX_surfxml_cabinet_bw = 0;
6275   surfxml_cabinet_bw_isset = 0;
6276   AX_surfxml_cabinet_id = 0;
6277   surfxml_cabinet_id_isset = 0;
6278   AX_surfxml_cabinet_lat = 0;
6279   surfxml_cabinet_lat_isset = 0;
6280   AX_surfxml_cabinet_prefix = 0;
6281   surfxml_cabinet_prefix_isset = 0;
6282   AX_surfxml_cabinet_radical = 0;
6283   surfxml_cabinet_radical_isset = 0;
6284   AX_surfxml_cabinet_speed = 0;
6285   surfxml_cabinet_speed_isset = 0;
6286   AX_surfxml_cabinet_suffix = 0;
6287   surfxml_cabinet_suffix_isset = 0;
6288   ENTER(AL_surfxml_cabinet); pushbuffer(0);
6289   }
6290         YY_BREAK
6291
6292 case 124:
6293 /* rule 124 can match eol */
6294 YY_RULE_SETUP
6295 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);
6296         YY_BREAK
6297 case 125:
6298 /* rule 125 can match eol */
6299 YY_RULE_SETUP
6300 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);
6301         YY_BREAK
6302 case 126:
6303 /* rule 126 can match eol */
6304 YY_RULE_SETUP
6305 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);
6306         YY_BREAK
6307 case 127:
6308 /* rule 127 can match eol */
6309 YY_RULE_SETUP
6310 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);
6311         YY_BREAK
6312 case 128:
6313 /* rule 128 can match eol */
6314 YY_RULE_SETUP
6315 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);
6316         YY_BREAK
6317 case 129:
6318 /* rule 129 can match eol */
6319 YY_RULE_SETUP
6320 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);
6321         YY_BREAK
6322 case 130:
6323 /* rule 130 can match eol */
6324 YY_RULE_SETUP
6325 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);
6326         YY_BREAK
6327 case 131:
6328 /* rule 131 can match eol */
6329 YY_RULE_SETUP
6330 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);
6331         YY_BREAK
6332 case 132:
6333 /* rule 132 can match eol */
6334 YY_RULE_SETUP
6335 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);
6336         YY_BREAK
6337 case 133:
6338 /* rule 133 can match eol */
6339 YY_RULE_SETUP
6340 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);
6341         YY_BREAK
6342 case 134:
6343 /* rule 134 can match eol */
6344 YY_RULE_SETUP
6345 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);
6346         YY_BREAK
6347 case 135:
6348 /* rule 135 can match eol */
6349 YY_RULE_SETUP
6350 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);
6351         YY_BREAK
6352 case 136:
6353 /* rule 136 can match eol */
6354 YY_RULE_SETUP
6355 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);
6356         YY_BREAK
6357 case 137:
6358 /* rule 137 can match eol */
6359 YY_RULE_SETUP
6360 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);
6361         YY_BREAK
6362 case 138:
6363 YY_RULE_SETUP
6364 {
6365   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
6366   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
6367   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
6368   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
6369   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
6370   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
6371   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
6372   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
6373  }
6374         YY_BREAK
6375 case 139:
6376 YY_RULE_SETUP
6377 {
6378   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
6379   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
6380   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
6381   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
6382   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
6383   if (!AX_surfxml_cabinet_speed) FAIL("Required attribute `speed' not set for `cabinet' element.");
6384   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
6385   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
6386   switch (YY_START) {
6387    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;
6388    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6389    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;
6390   }
6391  }
6392         YY_BREAK
6393 case 140:
6394 YY_RULE_SETUP
6395 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
6396         YY_BREAK
6397 case 141:
6398 YY_RULE_SETUP
6399 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
6400         YY_BREAK
6401 case YY_STATE_EOF(AL_surfxml_cabinet):
6402 FAIL("EOF in attribute list of `cabinet' element.");
6403         YY_BREAK
6404
6405 case 142:
6406 /* rule 142 can match eol */
6407 YY_RULE_SETUP
6408 {
6409   LEAVE;
6410   ETag_surfxml_cabinet();
6411   popbuffer(); /* attribute */
6412   switch (YY_START) {
6413    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;
6414    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6415    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;
6416   }
6417  }
6418         YY_BREAK
6419 case 143:
6420 /* rule 143 can match eol */
6421 YY_RULE_SETUP
6422 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
6423         YY_BREAK
6424 case 144:
6425 YY_RULE_SETUP
6426 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
6427         YY_BREAK
6428 case YY_STATE_EOF(E_surfxml_cabinet):
6429 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
6430         YY_BREAK
6431
6432 case 145:
6433 /* rule 145 can match eol */
6434 YY_RULE_SETUP
6435 FAIL("Starting tag <cluster> is not allowed here.");
6436         YY_BREAK
6437 case 146:
6438 /* rule 146 can match eol */
6439 YY_RULE_SETUP
6440 {
6441   AX_surfxml_cluster_bb___bw = 0;
6442   surfxml_cluster_bb___bw_isset = 0;
6443   AX_surfxml_cluster_bb___lat = 42;
6444   surfxml_cluster_bb___lat_isset = 0;
6445   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
6446   surfxml_cluster_bb___sharing___policy_isset = 0;
6447   AX_surfxml_cluster_bw = 0;
6448   surfxml_cluster_bw_isset = 0;
6449   AX_surfxml_cluster_core = 40;
6450   surfxml_cluster_core_isset = 0;
6451   AX_surfxml_cluster_id = 0;
6452   surfxml_cluster_id_isset = 0;
6453   AX_surfxml_cluster_lat = 0;
6454   surfxml_cluster_lat_isset = 0;
6455   AX_surfxml_cluster_limiter___link = 0;
6456   surfxml_cluster_limiter___link_isset = 0;
6457   AX_surfxml_cluster_loopback___bw = 0;
6458   surfxml_cluster_loopback___bw_isset = 0;
6459   AX_surfxml_cluster_loopback___lat = 0;
6460   surfxml_cluster_loopback___lat_isset = 0;
6461   AX_surfxml_cluster_prefix = 0;
6462   surfxml_cluster_prefix_isset = 0;
6463   AX_surfxml_cluster_radical = 0;
6464   surfxml_cluster_radical_isset = 0;
6465   AX_surfxml_cluster_router___id = 0;
6466   surfxml_cluster_router___id_isset = 0;
6467   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
6468   surfxml_cluster_sharing___policy_isset = 0;
6469   AX_surfxml_cluster_speed = 0;
6470   surfxml_cluster_speed_isset = 0;
6471   AX_surfxml_cluster_suffix = 0;
6472   surfxml_cluster_suffix_isset = 0;
6473   AX_surfxml_cluster_topo___parameters = 0;
6474   surfxml_cluster_topo___parameters_isset = 0;
6475   AX_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
6476   surfxml_cluster_topology_isset = 0;
6477   ENTER(AL_surfxml_cluster); pushbuffer(0);
6478   }
6479         YY_BREAK
6480
6481 case 147:
6482 /* rule 147 can match eol */
6483 YY_RULE_SETUP
6484 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);
6485         YY_BREAK
6486 case 148:
6487 /* rule 148 can match eol */
6488 YY_RULE_SETUP
6489 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);
6490         YY_BREAK
6491 case 149:
6492 /* rule 149 can match eol */
6493 YY_RULE_SETUP
6494 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);
6495         YY_BREAK
6496 case 150:
6497 /* rule 150 can match eol */
6498 YY_RULE_SETUP
6499 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);
6500         YY_BREAK
6501 case 151:
6502 /* rule 151 can match eol */
6503 case 152:
6504 /* rule 152 can match eol */
6505 YY_RULE_SETUP
6506 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
6507         YY_BREAK
6508 case 153:
6509 /* rule 153 can match eol */
6510 case 154:
6511 /* rule 154 can match eol */
6512 YY_RULE_SETUP
6513 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
6514         YY_BREAK
6515 case 155:
6516 /* rule 155 can match eol */
6517 YY_RULE_SETUP
6518 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);
6519         YY_BREAK
6520 case 156:
6521 /* rule 156 can match eol */
6522 YY_RULE_SETUP
6523 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);
6524         YY_BREAK
6525 case 157:
6526 /* rule 157 can match eol */
6527 YY_RULE_SETUP
6528 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);
6529         YY_BREAK
6530 case 158:
6531 /* rule 158 can match eol */
6532 YY_RULE_SETUP
6533 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);
6534         YY_BREAK
6535 case 159:
6536 /* rule 159 can match eol */
6537 YY_RULE_SETUP
6538 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);
6539         YY_BREAK
6540 case 160:
6541 /* rule 160 can match eol */
6542 YY_RULE_SETUP
6543 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);
6544         YY_BREAK
6545 case 161:
6546 /* rule 161 can match eol */
6547 YY_RULE_SETUP
6548 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);
6549         YY_BREAK
6550 case 162:
6551 /* rule 162 can match eol */
6552 YY_RULE_SETUP
6553 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);
6554         YY_BREAK
6555 case 163:
6556 /* rule 163 can match eol */
6557 YY_RULE_SETUP
6558 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);
6559         YY_BREAK
6560 case 164:
6561 /* rule 164 can match eol */
6562 YY_RULE_SETUP
6563 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);
6564         YY_BREAK
6565 case 165:
6566 /* rule 165 can match eol */
6567 YY_RULE_SETUP
6568 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);
6569         YY_BREAK
6570 case 166:
6571 /* rule 166 can match eol */
6572 YY_RULE_SETUP
6573 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);
6574         YY_BREAK
6575 case 167:
6576 /* rule 167 can match eol */
6577 YY_RULE_SETUP
6578 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);
6579         YY_BREAK
6580 case 168:
6581 /* rule 168 can match eol */
6582 YY_RULE_SETUP
6583 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);
6584         YY_BREAK
6585 case 169:
6586 /* rule 169 can match eol */
6587 YY_RULE_SETUP
6588 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);
6589         YY_BREAK
6590 case 170:
6591 /* rule 170 can match eol */
6592 YY_RULE_SETUP
6593 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);
6594         YY_BREAK
6595 case 171:
6596 /* rule 171 can match eol */
6597 YY_RULE_SETUP
6598 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);
6599         YY_BREAK
6600 case 172:
6601 /* rule 172 can match eol */
6602 YY_RULE_SETUP
6603 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);
6604         YY_BREAK
6605 case 173:
6606 /* rule 173 can match eol */
6607 YY_RULE_SETUP
6608 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);
6609         YY_BREAK
6610 case 174:
6611 /* rule 174 can match eol */
6612 YY_RULE_SETUP
6613 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);
6614         YY_BREAK
6615 case 175:
6616 /* rule 175 can match eol */
6617 case 176:
6618 /* rule 176 can match eol */
6619 YY_RULE_SETUP
6620 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
6621         YY_BREAK
6622 case 177:
6623 /* rule 177 can match eol */
6624 case 178:
6625 /* rule 178 can match eol */
6626 YY_RULE_SETUP
6627 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
6628         YY_BREAK
6629 case 179:
6630 /* rule 179 can match eol */
6631 case 180:
6632 /* rule 180 can match eol */
6633 YY_RULE_SETUP
6634 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
6635         YY_BREAK
6636 case 181:
6637 /* rule 181 can match eol */
6638 YY_RULE_SETUP
6639 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);
6640         YY_BREAK
6641 case 182:
6642 /* rule 182 can match eol */
6643 YY_RULE_SETUP
6644 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);
6645         YY_BREAK
6646 case 183:
6647 /* rule 183 can match eol */
6648 YY_RULE_SETUP
6649 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);
6650         YY_BREAK
6651 case 184:
6652 /* rule 184 can match eol */
6653 YY_RULE_SETUP
6654 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);
6655         YY_BREAK
6656 case 185:
6657 /* rule 185 can match eol */
6658 YY_RULE_SETUP
6659 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);
6660         YY_BREAK
6661 case 186:
6662 /* rule 186 can match eol */
6663 YY_RULE_SETUP
6664 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);
6665         YY_BREAK
6666 case 187:
6667 /* rule 187 can match eol */
6668 case 188:
6669 /* rule 188 can match eol */
6670 YY_RULE_SETUP
6671 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FLAT;
6672         YY_BREAK
6673 case 189:
6674 /* rule 189 can match eol */
6675 case 190:
6676 /* rule 190 can match eol */
6677 YY_RULE_SETUP
6678 A_surfxml_cluster_topology = A_surfxml_cluster_topology_TORUS;
6679         YY_BREAK
6680 case 191:
6681 /* rule 191 can match eol */
6682 case 192:
6683 /* rule 192 can match eol */
6684 YY_RULE_SETUP
6685 A_surfxml_cluster_topology = A_surfxml_cluster_topology_FAT___TREE;
6686         YY_BREAK
6687 case 193:
6688 YY_RULE_SETUP
6689 {
6690   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6691   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6692   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6693   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6694   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6695   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
6696   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6697   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
6698  }
6699         YY_BREAK
6700 case 194:
6701 YY_RULE_SETUP
6702 {
6703   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
6704   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
6705   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
6706   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
6707   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
6708   if (!AX_surfxml_cluster_speed) FAIL("Required attribute `speed' not set for `cluster' element.");
6709   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
6710   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
6711   switch (YY_START) {
6712    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;
6713    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6714    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;
6715   }
6716  }
6717         YY_BREAK
6718 case 195:
6719 YY_RULE_SETUP
6720 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
6721         YY_BREAK
6722 case 196:
6723 YY_RULE_SETUP
6724 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
6725         YY_BREAK
6726 case YY_STATE_EOF(AL_surfxml_cluster):
6727 FAIL("EOF in attribute list of `cluster' element.");
6728         YY_BREAK
6729
6730 case 197:
6731 /* rule 197 can match eol */
6732 YY_RULE_SETUP
6733 {
6734   LEAVE;
6735   ETag_surfxml_cluster();
6736   popbuffer(); /* attribute */
6737   switch (YY_START) {
6738    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;
6739    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6740    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;
6741   }
6742  }
6743         YY_BREAK
6744 case 198:
6745 /* rule 198 can match eol */
6746 YY_RULE_SETUP
6747 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
6748         YY_BREAK
6749 case 199:
6750 YY_RULE_SETUP
6751 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
6752         YY_BREAK
6753 case YY_STATE_EOF(E_surfxml_cluster):
6754 case YY_STATE_EOF(S_surfxml_cluster):
6755 case YY_STATE_EOF(S_surfxml_cluster_2):
6756 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
6757         YY_BREAK
6758
6759 case 200:
6760 /* rule 200 can match eol */
6761 YY_RULE_SETUP
6762 FAIL("Starting tag <config> is not allowed here.");
6763         YY_BREAK
6764 case 201:
6765 /* rule 201 can match eol */
6766 YY_RULE_SETUP
6767 {
6768   AX_surfxml_config_id = 0;
6769   surfxml_config_id_isset = 0;
6770   ENTER(AL_surfxml_config); pushbuffer(0);
6771   }
6772         YY_BREAK
6773
6774 case 202:
6775 /* rule 202 can match eol */
6776 YY_RULE_SETUP
6777 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);
6778         YY_BREAK
6779 case 203:
6780 /* rule 203 can match eol */
6781 YY_RULE_SETUP
6782 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);
6783         YY_BREAK
6784 case 204:
6785 YY_RULE_SETUP
6786 {
6787   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
6788  }
6789         YY_BREAK
6790 case 205:
6791 YY_RULE_SETUP
6792 {
6793   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
6794   switch (YY_START) {
6795    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6796   }
6797  }
6798         YY_BREAK
6799 case 206:
6800 YY_RULE_SETUP
6801 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
6802         YY_BREAK
6803 case 207:
6804 YY_RULE_SETUP
6805 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
6806         YY_BREAK
6807 case YY_STATE_EOF(AL_surfxml_config):
6808 FAIL("EOF in attribute list of `config' element.");
6809         YY_BREAK
6810
6811 case 208:
6812 /* rule 208 can match eol */
6813 YY_RULE_SETUP
6814 {
6815   LEAVE;
6816   ETag_surfxml_config();
6817   popbuffer(); /* attribute */
6818   switch (YY_START) {
6819    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
6820   }
6821  }
6822         YY_BREAK
6823 case 209:
6824 /* rule 209 can match eol */
6825 YY_RULE_SETUP
6826 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
6827         YY_BREAK
6828 case 210:
6829 YY_RULE_SETUP
6830 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
6831         YY_BREAK
6832 case YY_STATE_EOF(E_surfxml_config):
6833 case YY_STATE_EOF(S_surfxml_config):
6834 case YY_STATE_EOF(S_surfxml_config_2):
6835 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
6836         YY_BREAK
6837
6838 case 211:
6839 /* rule 211 can match eol */
6840 YY_RULE_SETUP
6841 FAIL("Starting tag <host> is not allowed here.");
6842         YY_BREAK
6843 case 212:
6844 /* rule 212 can match eol */
6845 YY_RULE_SETUP
6846 {
6847   AX_surfxml_host_availability___file = 0;
6848   surfxml_host_availability___file_isset = 0;
6849   AX_surfxml_host_coordinates = 0;
6850   surfxml_host_coordinates_isset = 0;
6851   AX_surfxml_host_core = 25;
6852   surfxml_host_core_isset = 0;
6853   AX_surfxml_host_id = 0;
6854   surfxml_host_id_isset = 0;
6855   AX_surfxml_host_pstate = 27;
6856   surfxml_host_pstate_isset = 0;
6857   AX_surfxml_host_speed = 0;
6858   surfxml_host_speed_isset = 0;
6859   AX_surfxml_host_state___file = 0;
6860   surfxml_host_state___file_isset = 0;
6861   ENTER(AL_surfxml_host); pushbuffer(0);
6862   }
6863         YY_BREAK
6864
6865 case 213:
6866 /* rule 213 can match eol */
6867 YY_RULE_SETUP
6868 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);
6869         YY_BREAK
6870 case 214:
6871 /* rule 214 can match eol */
6872 YY_RULE_SETUP
6873 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);
6874         YY_BREAK
6875 case 215:
6876 /* rule 215 can match eol */
6877 YY_RULE_SETUP
6878 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);
6879         YY_BREAK
6880 case 216:
6881 /* rule 216 can match eol */
6882 YY_RULE_SETUP
6883 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);
6884         YY_BREAK
6885 case 217:
6886 /* rule 217 can match eol */
6887 YY_RULE_SETUP
6888 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);
6889         YY_BREAK
6890 case 218:
6891 /* rule 218 can match eol */
6892 YY_RULE_SETUP
6893 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);
6894         YY_BREAK
6895 case 219:
6896 /* rule 219 can match eol */
6897 YY_RULE_SETUP
6898 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);
6899         YY_BREAK
6900 case 220:
6901 /* rule 220 can match eol */
6902 YY_RULE_SETUP
6903 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);
6904         YY_BREAK
6905 case 221:
6906 /* rule 221 can match eol */
6907 YY_RULE_SETUP
6908 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);
6909         YY_BREAK
6910 case 222:
6911 /* rule 222 can match eol */
6912 YY_RULE_SETUP
6913 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);
6914         YY_BREAK
6915 case 223:
6916 /* rule 223 can match eol */
6917 YY_RULE_SETUP
6918 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);
6919         YY_BREAK
6920 case 224:
6921 /* rule 224 can match eol */
6922 YY_RULE_SETUP
6923 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);
6924         YY_BREAK
6925 case 225:
6926 /* rule 225 can match eol */
6927 YY_RULE_SETUP
6928 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);
6929         YY_BREAK
6930 case 226:
6931 /* rule 226 can match eol */
6932 YY_RULE_SETUP
6933 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);
6934         YY_BREAK
6935 case 227:
6936 YY_RULE_SETUP
6937 {
6938   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6939   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
6940   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
6941  }
6942         YY_BREAK
6943 case 228:
6944 YY_RULE_SETUP
6945 {
6946   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
6947   if (!AX_surfxml_host_speed) FAIL("Required attribute `speed' not set for `host' element.");
6948   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
6949   switch (YY_START) {
6950    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;
6951   }
6952  }
6953         YY_BREAK
6954 case 229:
6955 YY_RULE_SETUP
6956 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
6957         YY_BREAK
6958 case 230:
6959 YY_RULE_SETUP
6960 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
6961         YY_BREAK
6962 case YY_STATE_EOF(AL_surfxml_host):
6963 FAIL("EOF in attribute list of `host' element.");
6964         YY_BREAK
6965
6966 case 231:
6967 /* rule 231 can match eol */
6968 YY_RULE_SETUP
6969 {
6970   LEAVE;
6971   ETag_surfxml_host();
6972   popbuffer(); /* attribute */
6973   switch (YY_START) {
6974    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;
6975   }
6976  }
6977         YY_BREAK
6978 case 232:
6979 /* rule 232 can match eol */
6980 YY_RULE_SETUP
6981 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
6982         YY_BREAK
6983 case 233:
6984 YY_RULE_SETUP
6985 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
6986         YY_BREAK
6987 case YY_STATE_EOF(E_surfxml_host):
6988 case YY_STATE_EOF(S_surfxml_host):
6989 case YY_STATE_EOF(S_surfxml_host_2):
6990 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
6991         YY_BREAK
6992
6993 case 234:
6994 /* rule 234 can match eol */
6995 YY_RULE_SETUP
6996 FAIL("Starting tag <host_link> is not allowed here.");
6997         YY_BREAK
6998 case 235:
6999 /* rule 235 can match eol */
7000 YY_RULE_SETUP
7001 {
7002   AX_surfxml_host___link_down = 0;
7003   surfxml_host___link_down_isset = 0;
7004   AX_surfxml_host___link_id = 0;
7005   surfxml_host___link_id_isset = 0;
7006   AX_surfxml_host___link_up = 0;
7007   surfxml_host___link_up_isset = 0;
7008   ENTER(AL_surfxml_host___link); pushbuffer(0);
7009   }
7010         YY_BREAK
7011
7012 case 236:
7013 /* rule 236 can match eol */
7014 YY_RULE_SETUP
7015 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);
7016         YY_BREAK
7017 case 237:
7018 /* rule 237 can match eol */
7019 YY_RULE_SETUP
7020 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);
7021         YY_BREAK
7022 case 238:
7023 /* rule 238 can match eol */
7024 YY_RULE_SETUP
7025 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);
7026         YY_BREAK
7027 case 239:
7028 /* rule 239 can match eol */
7029 YY_RULE_SETUP
7030 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);
7031         YY_BREAK
7032 case 240:
7033 /* rule 240 can match eol */
7034 YY_RULE_SETUP
7035 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);
7036         YY_BREAK
7037 case 241:
7038 /* rule 241 can match eol */
7039 YY_RULE_SETUP
7040 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);
7041         YY_BREAK
7042 case 242:
7043 YY_RULE_SETUP
7044 {
7045   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7046   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7047   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7048   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7049  }
7050         YY_BREAK
7051 case 243:
7052 YY_RULE_SETUP
7053 {
7054   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7055   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7056   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7057   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7058   switch (YY_START) {
7059    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;
7060   }
7061  }
7062         YY_BREAK
7063 case 244:
7064 YY_RULE_SETUP
7065 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7066         YY_BREAK
7067 case 245:
7068 YY_RULE_SETUP
7069 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7070         YY_BREAK
7071 case YY_STATE_EOF(AL_surfxml_host___link):
7072 FAIL("EOF in attribute list of `host_link' element.");
7073         YY_BREAK
7074
7075 case 246:
7076 /* rule 246 can match eol */
7077 YY_RULE_SETUP
7078 {
7079   LEAVE;
7080   ETag_surfxml_host___link();
7081   popbuffer(); /* attribute */
7082   switch (YY_START) {
7083    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;
7084   }
7085  }
7086         YY_BREAK
7087 case 247:
7088 /* rule 247 can match eol */
7089 YY_RULE_SETUP
7090 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7091         YY_BREAK
7092 case 248:
7093 YY_RULE_SETUP
7094 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7095         YY_BREAK
7096 case YY_STATE_EOF(E_surfxml_host___link):
7097 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7098         YY_BREAK
7099
7100 case 249:
7101 /* rule 249 can match eol */
7102 YY_RULE_SETUP
7103 FAIL("Starting tag <include> is not allowed here.");
7104         YY_BREAK
7105 case 250:
7106 /* rule 250 can match eol */
7107 YY_RULE_SETUP
7108 {
7109   AX_surfxml_include_file = 0;
7110   surfxml_include_file_isset = 0;
7111   ENTER(AL_surfxml_include); pushbuffer(0);
7112   }
7113         YY_BREAK
7114
7115 case 251:
7116 /* rule 251 can match eol */
7117 YY_RULE_SETUP
7118 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);
7119         YY_BREAK
7120 case 252:
7121 /* rule 252 can match eol */
7122 YY_RULE_SETUP
7123 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);
7124         YY_BREAK
7125 case 253:
7126 YY_RULE_SETUP
7127 {
7128   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
7129   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
7130  }
7131         YY_BREAK
7132 case 254:
7133 YY_RULE_SETUP
7134 {
7135   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
7136   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
7137   switch (YY_START) {
7138    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;
7139    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7140    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;
7141   }
7142  }
7143         YY_BREAK
7144 case 255:
7145 YY_RULE_SETUP
7146 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
7147         YY_BREAK
7148 case 256:
7149 YY_RULE_SETUP
7150 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
7151         YY_BREAK
7152 case YY_STATE_EOF(AL_surfxml_include):
7153 FAIL("EOF in attribute list of `include' element.");
7154         YY_BREAK
7155
7156 case 257:
7157 /* rule 257 can match eol */
7158 YY_RULE_SETUP
7159 {
7160   LEAVE;
7161   ETag_surfxml_include();
7162   popbuffer(); /* attribute */
7163   switch (YY_START) {
7164    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;
7165    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7166    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;
7167   }
7168  }
7169         YY_BREAK
7170 case 258:
7171 /* rule 258 can match eol */
7172 YY_RULE_SETUP
7173 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
7174         YY_BREAK
7175 case 259:
7176 YY_RULE_SETUP
7177 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
7178         YY_BREAK
7179 case YY_STATE_EOF(E_surfxml_include):
7180 case YY_STATE_EOF(S_surfxml_include):
7181 case YY_STATE_EOF(S_surfxml_include_2):
7182 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
7183         YY_BREAK
7184
7185 case 260:
7186 /* rule 260 can match eol */
7187 YY_RULE_SETUP
7188 FAIL("Starting tag <link> is not allowed here.");
7189         YY_BREAK
7190 case 261:
7191 /* rule 261 can match eol */
7192 YY_RULE_SETUP
7193 {
7194   AX_surfxml_link_bandwidth = 0;
7195   surfxml_link_bandwidth_isset = 0;
7196   AX_surfxml_link_bandwidth___file = 0;
7197   surfxml_link_bandwidth___file_isset = 0;
7198   AX_surfxml_link_id = 0;
7199   surfxml_link_id_isset = 0;
7200   AX_surfxml_link_latency = 0;
7201   surfxml_link_latency_isset = 0;
7202   AX_surfxml_link_latency___file = 0;
7203   surfxml_link_latency___file_isset = 0;
7204   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7205   surfxml_link_sharing___policy_isset = 0;
7206   AX_surfxml_link_state___file = 0;
7207   surfxml_link_state___file_isset = 0;
7208   ENTER(AL_surfxml_link); pushbuffer(0);
7209   }
7210         YY_BREAK
7211
7212 case 262:
7213 /* rule 262 can match eol */
7214 YY_RULE_SETUP
7215 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);
7216         YY_BREAK
7217 case 263:
7218 /* rule 263 can match eol */
7219 YY_RULE_SETUP
7220 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);
7221         YY_BREAK
7222 case 264:
7223 /* rule 264 can match eol */
7224 YY_RULE_SETUP
7225 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);
7226         YY_BREAK
7227 case 265:
7228 /* rule 265 can match eol */
7229 YY_RULE_SETUP
7230 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);
7231         YY_BREAK
7232 case 266:
7233 /* rule 266 can match eol */
7234 YY_RULE_SETUP
7235 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);
7236         YY_BREAK
7237 case 267:
7238 /* rule 267 can match eol */
7239 YY_RULE_SETUP
7240 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);
7241         YY_BREAK
7242 case 268:
7243 /* rule 268 can match eol */
7244 YY_RULE_SETUP
7245 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);
7246         YY_BREAK
7247 case 269:
7248 /* rule 269 can match eol */
7249 YY_RULE_SETUP
7250 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);
7251         YY_BREAK
7252 case 270:
7253 /* rule 270 can match eol */
7254 YY_RULE_SETUP
7255 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);
7256         YY_BREAK
7257 case 271:
7258 /* rule 271 can match eol */
7259 YY_RULE_SETUP
7260 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);
7261         YY_BREAK
7262 case 272:
7263 /* rule 272 can match eol */
7264 case 273:
7265 /* rule 273 can match eol */
7266 YY_RULE_SETUP
7267 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
7268         YY_BREAK
7269 case 274:
7270 /* rule 274 can match eol */
7271 case 275:
7272 /* rule 275 can match eol */
7273 YY_RULE_SETUP
7274 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
7275         YY_BREAK
7276 case 276:
7277 /* rule 276 can match eol */
7278 case 277:
7279 /* rule 277 can match eol */
7280 YY_RULE_SETUP
7281 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
7282         YY_BREAK
7283 case 278:
7284 /* rule 278 can match eol */
7285 YY_RULE_SETUP
7286 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);
7287         YY_BREAK
7288 case 279:
7289 /* rule 279 can match eol */
7290 YY_RULE_SETUP
7291 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);
7292         YY_BREAK
7293 case 280:
7294 YY_RULE_SETUP
7295 {
7296   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7297   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7298   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
7299  }
7300         YY_BREAK
7301 case 281:
7302 YY_RULE_SETUP
7303 {
7304   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
7305   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
7306   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
7307   switch (YY_START) {
7308    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;
7309   }
7310  }
7311         YY_BREAK
7312 case 282:
7313 YY_RULE_SETUP
7314 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
7315         YY_BREAK
7316 case 283:
7317 YY_RULE_SETUP
7318 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
7319         YY_BREAK
7320 case YY_STATE_EOF(AL_surfxml_link):
7321 FAIL("EOF in attribute list of `link' element.");
7322         YY_BREAK
7323
7324 case 284:
7325 /* rule 284 can match eol */
7326 YY_RULE_SETUP
7327 {
7328   LEAVE;
7329   ETag_surfxml_link();
7330   popbuffer(); /* attribute */
7331   switch (YY_START) {
7332    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;
7333   }
7334  }
7335         YY_BREAK
7336 case 285:
7337 /* rule 285 can match eol */
7338 YY_RULE_SETUP
7339 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
7340         YY_BREAK
7341 case 286:
7342 YY_RULE_SETUP
7343 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
7344         YY_BREAK
7345 case YY_STATE_EOF(E_surfxml_link):
7346 case YY_STATE_EOF(S_surfxml_link):
7347 case YY_STATE_EOF(S_surfxml_link_2):
7348 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
7349         YY_BREAK
7350
7351 case 287:
7352 /* rule 287 can match eol */
7353 YY_RULE_SETUP
7354 FAIL("Starting tag <link_ctn> is not allowed here.");
7355         YY_BREAK
7356 case 288:
7357 /* rule 288 can match eol */
7358 YY_RULE_SETUP
7359 {
7360   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
7361   surfxml_link___ctn_direction_isset = 0;
7362   AX_surfxml_link___ctn_id = 0;
7363   surfxml_link___ctn_id_isset = 0;
7364   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
7365   }
7366         YY_BREAK
7367
7368 case 289:
7369 /* rule 289 can match eol */
7370 case 290:
7371 /* rule 290 can match eol */
7372 YY_RULE_SETUP
7373 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
7374         YY_BREAK
7375 case 291:
7376 /* rule 291 can match eol */
7377 case 292:
7378 /* rule 292 can match eol */
7379 YY_RULE_SETUP
7380 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
7381         YY_BREAK
7382 case 293:
7383 /* rule 293 can match eol */
7384 case 294:
7385 /* rule 294 can match eol */
7386 YY_RULE_SETUP
7387 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
7388         YY_BREAK
7389 case 295:
7390 /* rule 295 can match eol */
7391 YY_RULE_SETUP
7392 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);
7393         YY_BREAK
7394 case 296:
7395 /* rule 296 can match eol */
7396 YY_RULE_SETUP
7397 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);
7398         YY_BREAK
7399 case 297:
7400 YY_RULE_SETUP
7401 {
7402   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7403   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
7404  }
7405         YY_BREAK
7406 case 298:
7407 YY_RULE_SETUP
7408 {
7409   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
7410   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
7411   switch (YY_START) {
7412    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7413    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
7414    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
7415    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7416   }
7417  }
7418         YY_BREAK
7419 case 299:
7420 YY_RULE_SETUP
7421 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
7422         YY_BREAK
7423 case 300:
7424 YY_RULE_SETUP
7425 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
7426         YY_BREAK
7427 case YY_STATE_EOF(AL_surfxml_link___ctn):
7428 FAIL("EOF in attribute list of `link_ctn' element.");
7429         YY_BREAK
7430
7431 case 301:
7432 /* rule 301 can match eol */
7433 YY_RULE_SETUP
7434 {
7435   LEAVE;
7436   ETag_surfxml_link___ctn();
7437   popbuffer(); /* attribute */
7438   switch (YY_START) {
7439    case S_surfxml_ASroute: case S_surfxml_ASroute_1: case S_surfxml_ASroute_2: SET(S_surfxml_ASroute_2); break;
7440    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
7441    case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: case S_surfxml_bypassRoute_2: SET(S_surfxml_bypassRoute_2); break;
7442    case S_surfxml_route: case S_surfxml_route_1: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
7443   }
7444  }
7445         YY_BREAK
7446 case 302:
7447 /* rule 302 can match eol */
7448 YY_RULE_SETUP
7449 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
7450         YY_BREAK
7451 case 303:
7452 YY_RULE_SETUP
7453 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
7454         YY_BREAK
7455 case YY_STATE_EOF(E_surfxml_link___ctn):
7456 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
7457         YY_BREAK
7458
7459 /* <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->
7460   * <!-- <!ATTLIST model_prop key CDATA #REQUIRED> -->  */
7461 case 304:
7462 /* rule 304 can match eol */
7463 YY_RULE_SETUP
7464 FAIL("Starting tag <model_prop> is not allowed here.");
7465         YY_BREAK
7466 case 305:
7467 /* rule 305 can match eol */
7468 YY_RULE_SETUP
7469 {
7470   AX_surfxml_model___prop_id = 0;
7471   surfxml_model___prop_id_isset = 0;
7472   AX_surfxml_model___prop_value = 0;
7473   surfxml_model___prop_value_isset = 0;
7474   ENTER(AL_surfxml_model___prop); pushbuffer(0);
7475   }
7476         YY_BREAK
7477
7478 case 306:
7479 /* rule 306 can match eol */
7480 YY_RULE_SETUP
7481 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);
7482         YY_BREAK
7483 case 307:
7484 /* rule 307 can match eol */
7485 YY_RULE_SETUP
7486 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);
7487         YY_BREAK
7488 case 308:
7489 /* rule 308 can match eol */
7490 YY_RULE_SETUP
7491 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);
7492         YY_BREAK
7493 case 309:
7494 /* rule 309 can match eol */
7495 YY_RULE_SETUP
7496 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);
7497         YY_BREAK
7498 case 310:
7499 YY_RULE_SETUP
7500 {
7501   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
7502   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
7503   LEAVE; STag_surfxml_model___prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_model___prop);
7504  }
7505         YY_BREAK
7506 case 311:
7507 YY_RULE_SETUP
7508 {
7509   if (!AX_surfxml_model___prop_id) FAIL("Required attribute `id' not set for `model_prop' element.");
7510   if (!AX_surfxml_model___prop_value) FAIL("Required attribute `value' not set for `model_prop' element.");
7511   LEAVE; STag_surfxml_model___prop(); surfxml_pcdata_ix = 0; ETag_surfxml_model___prop(); popbuffer(); /* attribute */
7512   switch (YY_START) {
7513    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
7514   }
7515  }
7516         YY_BREAK
7517 case 312:
7518 YY_RULE_SETUP
7519 FAIL("Unexpected character `%c' in attribute list of model_prop element.", surf_parse_text[0]);
7520         YY_BREAK
7521 case 313:
7522 YY_RULE_SETUP
7523 FAIL("Bad attribute `%s' in `model_prop' element start tag.",surf_parse_text);
7524         YY_BREAK
7525 case YY_STATE_EOF(AL_surfxml_model___prop):
7526 FAIL("EOF in attribute list of `model_prop' element.");
7527         YY_BREAK
7528
7529 case 314:
7530 /* rule 314 can match eol */
7531 YY_RULE_SETUP
7532 {
7533   LEAVE;
7534   ETag_surfxml_model___prop();
7535   popbuffer(); /* attribute */
7536   switch (YY_START) {
7537    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
7538   }
7539  }
7540         YY_BREAK
7541 case 315:
7542 /* rule 315 can match eol */
7543 YY_RULE_SETUP
7544 FAIL("Unexpected end-tag `%s': `</model_prop>' expected.",surf_parse_text);
7545         YY_BREAK
7546 case 316:
7547 YY_RULE_SETUP
7548 FAIL("Unexpected character `%c': `</model_prop>' expected.",surf_parse_text[0]);
7549         YY_BREAK
7550 case YY_STATE_EOF(E_surfxml_model___prop):
7551 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</model_prop>' expected.");
7552         YY_BREAK
7553
7554 case 317:
7555 /* rule 317 can match eol */
7556 YY_RULE_SETUP
7557 FAIL("Starting tag <mount> is not allowed here.");
7558         YY_BREAK
7559 case 318:
7560 /* rule 318 can match eol */
7561 YY_RULE_SETUP
7562 {
7563   AX_surfxml_mount_name = 0;
7564   surfxml_mount_name_isset = 0;
7565   AX_surfxml_mount_storageId = 0;
7566   surfxml_mount_storageId_isset = 0;
7567   ENTER(AL_surfxml_mount); pushbuffer(0);
7568   }
7569         YY_BREAK
7570
7571 case 319:
7572 /* rule 319 can match eol */
7573 YY_RULE_SETUP
7574 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);
7575         YY_BREAK
7576 case 320:
7577 /* rule 320 can match eol */
7578 YY_RULE_SETUP
7579 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);
7580         YY_BREAK
7581 case 321:
7582 /* rule 321 can match eol */
7583 YY_RULE_SETUP
7584 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);
7585         YY_BREAK
7586 case 322:
7587 /* rule 322 can match eol */
7588 YY_RULE_SETUP
7589 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);
7590         YY_BREAK
7591 case 323:
7592 YY_RULE_SETUP
7593 {
7594   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
7595   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
7596   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
7597  }
7598         YY_BREAK
7599 case 324:
7600 YY_RULE_SETUP
7601 {
7602   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
7603   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
7604   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
7605   switch (YY_START) {
7606    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
7607   }
7608  }
7609         YY_BREAK
7610 case 325:
7611 YY_RULE_SETUP
7612 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
7613         YY_BREAK
7614 case 326:
7615 YY_RULE_SETUP
7616 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
7617         YY_BREAK
7618 case YY_STATE_EOF(AL_surfxml_mount):
7619 FAIL("EOF in attribute list of `mount' element.");
7620         YY_BREAK
7621
7622 case 327:
7623 /* rule 327 can match eol */
7624 YY_RULE_SETUP
7625 {
7626   LEAVE;
7627   ETag_surfxml_mount();
7628   popbuffer(); /* attribute */
7629   switch (YY_START) {
7630    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
7631   }
7632  }
7633         YY_BREAK
7634 case 328:
7635 /* rule 328 can match eol */
7636 YY_RULE_SETUP
7637 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
7638         YY_BREAK
7639 case 329:
7640 YY_RULE_SETUP
7641 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
7642         YY_BREAK
7643 case YY_STATE_EOF(E_surfxml_mount):
7644 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
7645         YY_BREAK
7646
7647 case 330:
7648 /* rule 330 can match eol */
7649 YY_RULE_SETUP
7650 FAIL("Starting tag <peer> is not allowed here.");
7651         YY_BREAK
7652 case 331:
7653 /* rule 331 can match eol */
7654 YY_RULE_SETUP
7655 {
7656   AX_surfxml_peer_availability___file = 0;
7657   surfxml_peer_availability___file_isset = 0;
7658   AX_surfxml_peer_bw___in = 0;
7659   surfxml_peer_bw___in_isset = 0;
7660   AX_surfxml_peer_bw___out = 0;
7661   surfxml_peer_bw___out_isset = 0;
7662   AX_surfxml_peer_coordinates = 0;
7663   surfxml_peer_coordinates_isset = 0;
7664   AX_surfxml_peer_id = 0;
7665   surfxml_peer_id_isset = 0;
7666   AX_surfxml_peer_lat = 0;
7667   surfxml_peer_lat_isset = 0;
7668   AX_surfxml_peer_speed = 0;
7669   surfxml_peer_speed_isset = 0;
7670   AX_surfxml_peer_state___file = 0;
7671   surfxml_peer_state___file_isset = 0;
7672   ENTER(AL_surfxml_peer); pushbuffer(0);
7673   }
7674         YY_BREAK
7675
7676 case 332:
7677 /* rule 332 can match eol */
7678 YY_RULE_SETUP
7679 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);
7680         YY_BREAK
7681 case 333:
7682 /* rule 333 can match eol */
7683 YY_RULE_SETUP
7684 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);
7685         YY_BREAK
7686 case 334:
7687 /* rule 334 can match eol */
7688 YY_RULE_SETUP
7689 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);
7690         YY_BREAK
7691 case 335:
7692 /* rule 335 can match eol */
7693 YY_RULE_SETUP
7694 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);
7695         YY_BREAK
7696 case 336:
7697 /* rule 336 can match eol */
7698 YY_RULE_SETUP
7699 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);
7700         YY_BREAK
7701 case 337:
7702 /* rule 337 can match eol */
7703 YY_RULE_SETUP
7704 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);
7705         YY_BREAK
7706 case 338:
7707 /* rule 338 can match eol */
7708 YY_RULE_SETUP
7709 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");} surfxml_peer_coordinates_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_coordinates);
7710         YY_BREAK
7711 case 339:
7712 /* rule 339 can match eol */
7713 YY_RULE_SETUP
7714 if (surfxml_peer_coordinates_isset != 0) {FAIL("Multiple definition of attribute coordinates in <surfxml_peer>");}  surfxml_peer_coordinates_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_coordinates);
7715         YY_BREAK
7716 case 340:
7717 /* rule 340 can match eol */
7718 YY_RULE_SETUP
7719 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);
7720         YY_BREAK
7721 case 341:
7722 /* rule 341 can match eol */
7723 YY_RULE_SETUP
7724 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);
7725         YY_BREAK
7726 case 342:
7727 /* rule 342 can match eol */
7728 YY_RULE_SETUP
7729 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);
7730         YY_BREAK
7731 case 343:
7732 /* rule 343 can match eol */
7733 YY_RULE_SETUP
7734 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);
7735         YY_BREAK
7736 case 344:
7737 /* rule 344 can match eol */
7738 YY_RULE_SETUP
7739 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);
7740         YY_BREAK
7741 case 345:
7742 /* rule 345 can match eol */
7743 YY_RULE_SETUP
7744 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);
7745         YY_BREAK
7746 case 346:
7747 /* rule 346 can match eol */
7748 YY_RULE_SETUP
7749 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);
7750         YY_BREAK
7751 case 347:
7752 /* rule 347 can match eol */
7753 YY_RULE_SETUP
7754 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);
7755         YY_BREAK
7756 case 348:
7757 YY_RULE_SETUP
7758 {
7759   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7760   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7761   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7762   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7763   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
7764   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7765  }
7766         YY_BREAK
7767 case 349:
7768 YY_RULE_SETUP
7769 {
7770   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7771   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7772   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7773   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7774   if (!AX_surfxml_peer_speed) FAIL("Required attribute `speed' not set for `peer' element.");
7775   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7776   switch (YY_START) {
7777    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;
7778    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7779    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;
7780   }
7781  }
7782         YY_BREAK
7783 case 350:
7784 YY_RULE_SETUP
7785 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7786         YY_BREAK
7787 case 351:
7788 YY_RULE_SETUP
7789 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7790         YY_BREAK
7791 case YY_STATE_EOF(AL_surfxml_peer):
7792 FAIL("EOF in attribute list of `peer' element.");
7793         YY_BREAK
7794
7795 case 352:
7796 /* rule 352 can match eol */
7797 YY_RULE_SETUP
7798 {
7799   LEAVE;
7800   ETag_surfxml_peer();
7801   popbuffer(); /* attribute */
7802   switch (YY_START) {
7803    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;
7804    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7805    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;
7806   }
7807  }
7808         YY_BREAK
7809 case 353:
7810 /* rule 353 can match eol */
7811 YY_RULE_SETUP
7812 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7813         YY_BREAK
7814 case 354:
7815 YY_RULE_SETUP
7816 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7817         YY_BREAK
7818 case YY_STATE_EOF(E_surfxml_peer):
7819 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7820         YY_BREAK
7821
7822 /* <!-- 
7823   *              DTD of SimGrid platform and deployment files.
7824   * More info: http://simgrid.gforge.inria.fr/simgrid/latest/doc/platform.html
7825   * To upgrade your files, use the tool simgrid_update_xml
7826   * * New in DTD version 4 (in SimGrid 3.13):
7827   *    - Rename (power->speed) the attributes describing the amount of flop
7828   *      that a <host>, <peer>, <cluster> or <cabinet> can deliver per second.
7829   *    - In <trace_connect>, attribute kind="POWER" is now kind="SPEED".
7830   *    
7831   *    - In <host> and <link>, attributes availability and state are gone.
7832   *      It was redundent with state and availability traces, and with peak values.
7833   *      
7834   *    - In <cluster>, cannot set the availability nor state traces. 
7835   *      This was too complex and unused.
7836   *    - The DOCTYPE points to the right URL (this file):
7837   *      http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd
7838   *      
7839   *    - Kill <gpu>. Was not doing anything.
7840   *    - A warning is emitted for unit-less values (they are still accepted).
7841   *      - speed. Default: 'f' or 'flops'. Also defined:
7842   *         'Yf',         'Zf',         'Ef',       'Pf',        'Tf',        'Gf',        'Mf',        'kf'
7843   *         'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops'
7844   *      - bandwidth. Default: 'Bps' bytes per second (or 'bps' for bits but 1 Bps = 8 bps)
7845   *        Also defined in bytes: 'TiBps', 'GiBps', 'MiBps', 'KiBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps'
7846   *        And the same in bits:  'Tibps', 'Gibps', 'Mibps', 'Kibps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps'
7847   *      - latency. Default: 's' second. Also defined:
7848   *        'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond
7849   * * New in DTD version 3 (in SimGrid 3.5):
7850   *    - The AS tag were introduced. Every platform should now
7851   *      contain an englobing AS tag.
7852   *    - Routes are now symmetric by default.
7853   *    - Renamed tags (for sake of XML sanity):
7854   *      - LINK:CTN -> LINK_CTN
7855   *      - TRACE:CONNECT -> TRACE_CONNECT
7856   * * New in DTD version 2 (in SimGrid 3.4):
7857   *    - Renamed tags:
7858   *      - CPU -> HOST
7859   *      - NETWORK_LINK -> LINK
7860   *      - ROUTE_ELEMENT ->  LINK:CTN (changed again in v3)
7861   *      - PLATFORM_DESCRIPTION -> PLATFORM
7862   * * New in DTD version 1 (in SimGrid 3.3):
7863   *    - DTD is now versionned with the version attribute of platform
7864   *    - Unit change: 
7865   *      - Link bandwidth: from Mb/s to b/s
7866   *      - CPU speed: from MFlop/s to Flop/s
7867   * -->  */
7868 case 355:
7869 /* rule 355 can match eol */
7870 YY_RULE_SETUP
7871 FAIL("Starting tag <platform> is not allowed here.");
7872         YY_BREAK
7873 case 356:
7874 /* rule 356 can match eol */
7875 YY_RULE_SETUP
7876 {
7877   AX_surfxml_platform_version = 1;
7878   surfxml_platform_version_isset = 0;
7879   ENTER(AL_surfxml_platform); pushbuffer(0);
7880   }
7881         YY_BREAK
7882
7883 case 357:
7884 /* rule 357 can match eol */
7885 YY_RULE_SETUP
7886 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);
7887         YY_BREAK
7888 case 358:
7889 /* rule 358 can match eol */
7890 YY_RULE_SETUP
7891 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);
7892         YY_BREAK
7893 case 359:
7894 YY_RULE_SETUP
7895 {
7896   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
7897  }
7898         YY_BREAK
7899 case 360:
7900 YY_RULE_SETUP
7901 {
7902   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
7903   switch (YY_START) {
7904    case ROOT_surfxml_platform: SET(EPILOG); break;
7905   }
7906  }
7907         YY_BREAK
7908 case 361:
7909 YY_RULE_SETUP
7910 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
7911         YY_BREAK
7912 case 362:
7913 YY_RULE_SETUP
7914 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
7915         YY_BREAK
7916 case YY_STATE_EOF(AL_surfxml_platform):
7917 FAIL("EOF in attribute list of `platform' element.");
7918         YY_BREAK
7919
7920 case 363:
7921 /* rule 363 can match eol */
7922 YY_RULE_SETUP
7923 {
7924   LEAVE;
7925   ETag_surfxml_platform();
7926   popbuffer(); /* attribute */
7927   switch (YY_START) {
7928    case ROOT_surfxml_platform: SET(EPILOG); break;
7929   }
7930  }
7931         YY_BREAK
7932 case 364:
7933 /* rule 364 can match eol */
7934 YY_RULE_SETUP
7935 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
7936         YY_BREAK
7937 case 365:
7938 YY_RULE_SETUP
7939 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
7940         YY_BREAK
7941 case YY_STATE_EOF(E_surfxml_platform):
7942 case YY_STATE_EOF(S_surfxml_platform):
7943 case YY_STATE_EOF(S_surfxml_platform_1):
7944 case YY_STATE_EOF(S_surfxml_platform_3):
7945 case YY_STATE_EOF(S_surfxml_platform_4):
7946 case YY_STATE_EOF(S_surfxml_platform_6):
7947 case YY_STATE_EOF(S_surfxml_platform_8):
7948 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
7949         YY_BREAK
7950
7951 case 366:
7952 /* rule 366 can match eol */
7953 YY_RULE_SETUP
7954 FAIL("Starting tag <process> is not allowed here.");
7955         YY_BREAK
7956 case 367:
7957 /* rule 367 can match eol */
7958 YY_RULE_SETUP
7959 {
7960   AX_surfxml_process_function = 0;
7961   surfxml_process_function_isset = 0;
7962   AX_surfxml_process_host = 0;
7963   surfxml_process_host_isset = 0;
7964   AX_surfxml_process_kill___time = 50;
7965   surfxml_process_kill___time_isset = 0;
7966   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
7967   surfxml_process_on___failure_isset = 0;
7968   AX_surfxml_process_start___time = 45;
7969   surfxml_process_start___time_isset = 0;
7970   ENTER(AL_surfxml_process); pushbuffer(0);
7971   }
7972         YY_BREAK
7973
7974 case 368:
7975 /* rule 368 can match eol */
7976 YY_RULE_SETUP
7977 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);
7978         YY_BREAK
7979 case 369:
7980 /* rule 369 can match eol */
7981 YY_RULE_SETUP
7982 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);
7983         YY_BREAK
7984 case 370:
7985 /* rule 370 can match eol */
7986 YY_RULE_SETUP
7987 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);
7988         YY_BREAK
7989 case 371:
7990 /* rule 371 can match eol */
7991 YY_RULE_SETUP
7992 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);
7993         YY_BREAK
7994 case 372:
7995 /* rule 372 can match eol */
7996 YY_RULE_SETUP
7997 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);
7998         YY_BREAK
7999 case 373:
8000 /* rule 373 can match eol */
8001 YY_RULE_SETUP
8002 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);
8003         YY_BREAK
8004 case 374:
8005 /* rule 374 can match eol */
8006 case 375:
8007 /* rule 375 can match eol */
8008 YY_RULE_SETUP
8009 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8010         YY_BREAK
8011 case 376:
8012 /* rule 376 can match eol */
8013 case 377:
8014 /* rule 377 can match eol */
8015 YY_RULE_SETUP
8016 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8017         YY_BREAK
8018 case 378:
8019 /* rule 378 can match eol */
8020 YY_RULE_SETUP
8021 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);
8022         YY_BREAK
8023 case 379:
8024 /* rule 379 can match eol */
8025 YY_RULE_SETUP
8026 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);
8027         YY_BREAK
8028 case 380:
8029 YY_RULE_SETUP
8030 {
8031   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8032   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8033   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8034  }
8035         YY_BREAK
8036 case 381:
8037 YY_RULE_SETUP
8038 {
8039   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8040   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8041   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8042   switch (YY_START) {
8043    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;
8044   }
8045  }
8046         YY_BREAK
8047 case 382:
8048 YY_RULE_SETUP
8049 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
8050         YY_BREAK
8051 case 383:
8052 YY_RULE_SETUP
8053 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
8054         YY_BREAK
8055 case YY_STATE_EOF(AL_surfxml_process):
8056 FAIL("EOF in attribute list of `process' element.");
8057         YY_BREAK
8058
8059 case 384:
8060 /* rule 384 can match eol */
8061 YY_RULE_SETUP
8062 {
8063   LEAVE;
8064   ETag_surfxml_process();
8065   popbuffer(); /* attribute */
8066   switch (YY_START) {
8067    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;
8068   }
8069  }
8070         YY_BREAK
8071 case 385:
8072 /* rule 385 can match eol */
8073 YY_RULE_SETUP
8074 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
8075         YY_BREAK
8076 case 386:
8077 YY_RULE_SETUP
8078 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
8079         YY_BREAK
8080 case YY_STATE_EOF(E_surfxml_process):
8081 case YY_STATE_EOF(S_surfxml_process):
8082 case YY_STATE_EOF(S_surfxml_process_2):
8083 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
8084         YY_BREAK
8085
8086 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
8087   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
8088 case 387:
8089 /* rule 387 can match eol */
8090 YY_RULE_SETUP
8091 FAIL("Starting tag <prop> is not allowed here.");
8092         YY_BREAK
8093 case 388:
8094 /* rule 388 can match eol */
8095 YY_RULE_SETUP
8096 {
8097   AX_surfxml_prop_id = 0;
8098   surfxml_prop_id_isset = 0;
8099   AX_surfxml_prop_value = 0;
8100   surfxml_prop_value_isset = 0;
8101   ENTER(AL_surfxml_prop); pushbuffer(0);
8102   }
8103         YY_BREAK
8104
8105 case 389:
8106 /* rule 389 can match eol */
8107 YY_RULE_SETUP
8108 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);
8109         YY_BREAK
8110 case 390:
8111 /* rule 390 can match eol */
8112 YY_RULE_SETUP
8113 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);
8114         YY_BREAK
8115 case 391:
8116 /* rule 391 can match eol */
8117 YY_RULE_SETUP
8118 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);
8119         YY_BREAK
8120 case 392:
8121 /* rule 392 can match eol */
8122 YY_RULE_SETUP
8123 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);
8124         YY_BREAK
8125 case 393:
8126 YY_RULE_SETUP
8127 {
8128   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8129   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8130   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
8131  }
8132         YY_BREAK
8133 case 394:
8134 YY_RULE_SETUP
8135 {
8136   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
8137   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
8138   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
8139   switch (YY_START) {
8140    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8141    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
8142    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8143    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8144    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
8145    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8146    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
8147    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8148   }
8149  }
8150         YY_BREAK
8151 case 395:
8152 YY_RULE_SETUP
8153 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
8154         YY_BREAK
8155 case 396:
8156 YY_RULE_SETUP
8157 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
8158         YY_BREAK
8159 case YY_STATE_EOF(AL_surfxml_prop):
8160 FAIL("EOF in attribute list of `prop' element.");
8161         YY_BREAK
8162
8163 case 397:
8164 /* rule 397 can match eol */
8165 YY_RULE_SETUP
8166 {
8167   LEAVE;
8168   ETag_surfxml_prop();
8169   popbuffer(); /* attribute */
8170   switch (YY_START) {
8171    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
8172    case S_surfxml_cluster: case S_surfxml_cluster_1: case S_surfxml_cluster_2: SET(S_surfxml_cluster_2); break;
8173    case S_surfxml_config: case S_surfxml_config_1: case S_surfxml_config_2: SET(S_surfxml_config_2); break;
8174    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
8175    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
8176    case S_surfxml_process: case S_surfxml_process_1: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
8177    case S_surfxml_storage: case S_surfxml_storage_1: case S_surfxml_storage_2: SET(S_surfxml_storage_2); break;
8178    case S_surfxml_storage___type: case S_surfxml_storage___type_1: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
8179   }
8180  }
8181         YY_BREAK
8182 case 398:
8183 /* rule 398 can match eol */
8184 YY_RULE_SETUP
8185 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
8186         YY_BREAK
8187 case 399:
8188 YY_RULE_SETUP
8189 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
8190         YY_BREAK
8191 case YY_STATE_EOF(E_surfxml_prop):
8192 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
8193         YY_BREAK
8194
8195 case 400:
8196 /* rule 400 can match eol */
8197 YY_RULE_SETUP
8198 FAIL("Starting tag <random> is not allowed here.");
8199         YY_BREAK
8200 case 401:
8201 /* rule 401 can match eol */
8202 YY_RULE_SETUP
8203 {
8204   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
8205   surfxml_random_generator_isset = 0;
8206   AX_surfxml_random_id = 0;
8207   surfxml_random_id_isset = 0;
8208   AX_surfxml_random_max = 0;
8209   surfxml_random_max_isset = 0;
8210   AX_surfxml_random_mean = 0;
8211   surfxml_random_mean_isset = 0;
8212   AX_surfxml_random_min = 0;
8213   surfxml_random_min_isset = 0;
8214   AX_surfxml_random_radical = 0;
8215   surfxml_random_radical_isset = 0;
8216   AX_surfxml_random_seed = 5;
8217   surfxml_random_seed_isset = 0;
8218   AX_surfxml_random_std___deviation = 0;
8219   surfxml_random_std___deviation_isset = 0;
8220   ENTER(AL_surfxml_random); pushbuffer(0);
8221   }
8222         YY_BREAK
8223
8224 case 402:
8225 /* rule 402 can match eol */
8226 case 403:
8227 /* rule 403 can match eol */
8228 YY_RULE_SETUP
8229 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
8230         YY_BREAK
8231 case 404:
8232 /* rule 404 can match eol */
8233 case 405:
8234 /* rule 405 can match eol */
8235 YY_RULE_SETUP
8236 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
8237         YY_BREAK
8238 case 406:
8239 /* rule 406 can match eol */
8240 case 407:
8241 /* rule 407 can match eol */
8242 YY_RULE_SETUP
8243 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
8244         YY_BREAK
8245 case 408:
8246 /* rule 408 can match eol */
8247 case 409:
8248 /* rule 409 can match eol */
8249 YY_RULE_SETUP
8250 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
8251         YY_BREAK
8252 case 410:
8253 /* rule 410 can match eol */
8254 YY_RULE_SETUP
8255 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);
8256         YY_BREAK
8257 case 411:
8258 /* rule 411 can match eol */
8259 YY_RULE_SETUP
8260 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);
8261         YY_BREAK
8262 case 412:
8263 /* rule 412 can match eol */
8264 YY_RULE_SETUP
8265 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);
8266         YY_BREAK
8267 case 413:
8268 /* rule 413 can match eol */
8269 YY_RULE_SETUP
8270 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);
8271         YY_BREAK
8272 case 414:
8273 /* rule 414 can match eol */
8274 YY_RULE_SETUP
8275 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);
8276         YY_BREAK
8277 case 415:
8278 /* rule 415 can match eol */
8279 YY_RULE_SETUP
8280 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);
8281         YY_BREAK
8282 case 416:
8283 /* rule 416 can match eol */
8284 YY_RULE_SETUP
8285 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);
8286         YY_BREAK
8287 case 417:
8288 /* rule 417 can match eol */
8289 YY_RULE_SETUP
8290 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);
8291         YY_BREAK
8292 case 418:
8293 /* rule 418 can match eol */
8294 YY_RULE_SETUP
8295 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);
8296         YY_BREAK
8297 case 419:
8298 /* rule 419 can match eol */
8299 YY_RULE_SETUP
8300 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);
8301         YY_BREAK
8302 case 420:
8303 /* rule 420 can match eol */
8304 YY_RULE_SETUP
8305 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);
8306         YY_BREAK
8307 case 421:
8308 /* rule 421 can match eol */
8309 YY_RULE_SETUP
8310 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);
8311         YY_BREAK
8312 case 422:
8313 /* rule 422 can match eol */
8314 YY_RULE_SETUP
8315 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);
8316         YY_BREAK
8317 case 423:
8318 /* rule 423 can match eol */
8319 YY_RULE_SETUP
8320 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);
8321         YY_BREAK
8322 case 424:
8323 YY_RULE_SETUP
8324 {
8325   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
8326   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
8327   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
8328   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
8329   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
8330   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
8331  }
8332         YY_BREAK
8333 case 425:
8334 YY_RULE_SETUP
8335 {
8336   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
8337   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
8338   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
8339   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
8340   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
8341   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
8342   switch (YY_START) {
8343    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8344   }
8345  }
8346         YY_BREAK
8347 case 426:
8348 YY_RULE_SETUP
8349 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
8350         YY_BREAK
8351 case 427:
8352 YY_RULE_SETUP
8353 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
8354         YY_BREAK
8355 case YY_STATE_EOF(AL_surfxml_random):
8356 FAIL("EOF in attribute list of `random' element.");
8357         YY_BREAK
8358
8359 case 428:
8360 /* rule 428 can match eol */
8361 YY_RULE_SETUP
8362 {
8363   LEAVE;
8364   ETag_surfxml_random();
8365   popbuffer(); /* attribute */
8366   switch (YY_START) {
8367    case S_surfxml_platform: case S_surfxml_platform_2: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
8368   }
8369  }
8370         YY_BREAK
8371 case 429:
8372 /* rule 429 can match eol */
8373 YY_RULE_SETUP
8374 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
8375         YY_BREAK
8376 case 430:
8377 YY_RULE_SETUP
8378 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
8379         YY_BREAK
8380 case YY_STATE_EOF(E_surfxml_random):
8381 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
8382         YY_BREAK
8383
8384 case 431:
8385 /* rule 431 can match eol */
8386 YY_RULE_SETUP
8387 FAIL("Starting tag <route> is not allowed here.");
8388         YY_BREAK
8389 case 432:
8390 /* rule 432 can match eol */
8391 YY_RULE_SETUP
8392 {
8393   AX_surfxml_route_dst = 0;
8394   surfxml_route_dst_isset = 0;
8395   AX_surfxml_route_src = 0;
8396   surfxml_route_src_isset = 0;
8397   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8398   surfxml_route_symmetrical_isset = 0;
8399   ENTER(AL_surfxml_route); pushbuffer(0);
8400   }
8401         YY_BREAK
8402
8403 case 433:
8404 /* rule 433 can match eol */
8405 YY_RULE_SETUP
8406 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);
8407         YY_BREAK
8408 case 434:
8409 /* rule 434 can match eol */
8410 YY_RULE_SETUP
8411 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);
8412         YY_BREAK
8413 case 435:
8414 /* rule 435 can match eol */
8415 YY_RULE_SETUP
8416 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);
8417         YY_BREAK
8418 case 436:
8419 /* rule 436 can match eol */
8420 YY_RULE_SETUP
8421 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);
8422         YY_BREAK
8423 case 437:
8424 /* rule 437 can match eol */
8425 case 438:
8426 /* rule 438 can match eol */
8427 YY_RULE_SETUP
8428 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8429         YY_BREAK
8430 case 439:
8431 /* rule 439 can match eol */
8432 case 440:
8433 /* rule 440 can match eol */
8434 YY_RULE_SETUP
8435 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8436         YY_BREAK
8437 case 441:
8438 YY_RULE_SETUP
8439 {
8440   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8441   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8442   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8443  }
8444         YY_BREAK
8445 case 442:
8446 YY_RULE_SETUP
8447 {
8448   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8449   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8450   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8451   switch (YY_START) {
8452    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;
8453   }
8454  }
8455         YY_BREAK
8456 case 443:
8457 YY_RULE_SETUP
8458 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8459         YY_BREAK
8460 case 444:
8461 YY_RULE_SETUP
8462 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8463         YY_BREAK
8464 case YY_STATE_EOF(AL_surfxml_route):
8465 FAIL("EOF in attribute list of `route' element.");
8466         YY_BREAK
8467
8468 case 445:
8469 /* rule 445 can match eol */
8470 YY_RULE_SETUP
8471 {
8472   LEAVE;
8473   ETag_surfxml_route();
8474   popbuffer(); /* attribute */
8475   switch (YY_START) {
8476    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;
8477   }
8478  }
8479         YY_BREAK
8480 case 446:
8481 /* rule 446 can match eol */
8482 YY_RULE_SETUP
8483 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8484         YY_BREAK
8485 case 447:
8486 YY_RULE_SETUP
8487 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8488         YY_BREAK
8489 case YY_STATE_EOF(E_surfxml_route):
8490 case YY_STATE_EOF(S_surfxml_route):
8491 case YY_STATE_EOF(S_surfxml_route_2):
8492 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8493         YY_BREAK
8494
8495 case 448:
8496 /* rule 448 can match eol */
8497 YY_RULE_SETUP
8498 FAIL("Starting tag <router> is not allowed here.");
8499         YY_BREAK
8500 case 449:
8501 /* rule 449 can match eol */
8502 YY_RULE_SETUP
8503 {
8504   AX_surfxml_router_coordinates = 0;
8505   surfxml_router_coordinates_isset = 0;
8506   AX_surfxml_router_id = 0;
8507   surfxml_router_id_isset = 0;
8508   ENTER(AL_surfxml_router); pushbuffer(0);
8509   }
8510         YY_BREAK
8511
8512 case 450:
8513 /* rule 450 can match eol */
8514 YY_RULE_SETUP
8515 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);
8516         YY_BREAK
8517 case 451:
8518 /* rule 451 can match eol */
8519 YY_RULE_SETUP
8520 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);
8521         YY_BREAK
8522 case 452:
8523 /* rule 452 can match eol */
8524 YY_RULE_SETUP
8525 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);
8526         YY_BREAK
8527 case 453:
8528 /* rule 453 can match eol */
8529 YY_RULE_SETUP
8530 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);
8531         YY_BREAK
8532 case 454:
8533 YY_RULE_SETUP
8534 {
8535   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8536   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
8537  }
8538         YY_BREAK
8539 case 455:
8540 YY_RULE_SETUP
8541 {
8542   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
8543   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
8544   switch (YY_START) {
8545    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;
8546   }
8547  }
8548         YY_BREAK
8549 case 456:
8550 YY_RULE_SETUP
8551 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
8552         YY_BREAK
8553 case 457:
8554 YY_RULE_SETUP
8555 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
8556         YY_BREAK
8557 case YY_STATE_EOF(AL_surfxml_router):
8558 FAIL("EOF in attribute list of `router' element.");
8559         YY_BREAK
8560
8561 case 458:
8562 /* rule 458 can match eol */
8563 YY_RULE_SETUP
8564 {
8565   LEAVE;
8566   ETag_surfxml_router();
8567   popbuffer(); /* attribute */
8568   switch (YY_START) {
8569    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;
8570   }
8571  }
8572         YY_BREAK
8573 case 459:
8574 /* rule 459 can match eol */
8575 YY_RULE_SETUP
8576 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
8577         YY_BREAK
8578 case 460:
8579 YY_RULE_SETUP
8580 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
8581         YY_BREAK
8582 case YY_STATE_EOF(E_surfxml_router):
8583 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
8584         YY_BREAK
8585
8586 case 461:
8587 /* rule 461 can match eol */
8588 YY_RULE_SETUP
8589 FAIL("Starting tag <storage> is not allowed here.");
8590         YY_BREAK
8591 case 462:
8592 /* rule 462 can match eol */
8593 YY_RULE_SETUP
8594 {
8595   AX_surfxml_storage_attach = 0;
8596   surfxml_storage_attach_isset = 0;
8597   AX_surfxml_storage_content = 0;
8598   surfxml_storage_content_isset = 0;
8599   AX_surfxml_storage_content___type = 31;
8600   surfxml_storage_content___type_isset = 0;
8601   AX_surfxml_storage_id = 0;
8602   surfxml_storage_id_isset = 0;
8603   AX_surfxml_storage_typeId = 0;
8604   surfxml_storage_typeId_isset = 0;
8605   ENTER(AL_surfxml_storage); pushbuffer(0);
8606   }
8607         YY_BREAK
8608
8609 case 463:
8610 /* rule 463 can match eol */
8611 YY_RULE_SETUP
8612 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);
8613         YY_BREAK
8614 case 464:
8615 /* rule 464 can match eol */
8616 YY_RULE_SETUP
8617 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);
8618         YY_BREAK
8619 case 465:
8620 /* rule 465 can match eol */
8621 YY_RULE_SETUP
8622 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);
8623         YY_BREAK
8624 case 466:
8625 /* rule 466 can match eol */
8626 YY_RULE_SETUP
8627 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);
8628         YY_BREAK
8629 case 467:
8630 /* rule 467 can match eol */
8631 YY_RULE_SETUP
8632 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);
8633         YY_BREAK
8634 case 468:
8635 /* rule 468 can match eol */
8636 YY_RULE_SETUP
8637 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);
8638         YY_BREAK
8639 case 469:
8640 /* rule 469 can match eol */
8641 YY_RULE_SETUP
8642 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);
8643         YY_BREAK
8644 case 470:
8645 /* rule 470 can match eol */
8646 YY_RULE_SETUP
8647 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);
8648         YY_BREAK
8649 case 471:
8650 /* rule 471 can match eol */
8651 YY_RULE_SETUP
8652 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);
8653         YY_BREAK
8654 case 472:
8655 /* rule 472 can match eol */
8656 YY_RULE_SETUP
8657 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);
8658         YY_BREAK
8659 case 473:
8660 YY_RULE_SETUP
8661 {
8662   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
8663   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
8664   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
8665   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
8666  }
8667         YY_BREAK
8668 case 474:
8669 YY_RULE_SETUP
8670 {
8671   if (!AX_surfxml_storage_attach) FAIL("Required attribute `attach' not set for `storage' element.");
8672   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
8673   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
8674   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
8675   switch (YY_START) {
8676    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;
8677   }
8678  }
8679         YY_BREAK
8680 case 475:
8681 YY_RULE_SETUP
8682 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
8683         YY_BREAK
8684 case 476:
8685 YY_RULE_SETUP
8686 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
8687         YY_BREAK
8688 case YY_STATE_EOF(AL_surfxml_storage):
8689 FAIL("EOF in attribute list of `storage' element.");
8690         YY_BREAK
8691
8692 case 477:
8693 /* rule 477 can match eol */
8694 YY_RULE_SETUP
8695 {
8696   LEAVE;
8697   ETag_surfxml_storage();
8698   popbuffer(); /* attribute */
8699   switch (YY_START) {
8700    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;
8701   }
8702  }
8703         YY_BREAK
8704 case 478:
8705 /* rule 478 can match eol */
8706 YY_RULE_SETUP
8707 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
8708         YY_BREAK
8709 case 479:
8710 YY_RULE_SETUP
8711 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
8712         YY_BREAK
8713 case YY_STATE_EOF(E_surfxml_storage):
8714 case YY_STATE_EOF(S_surfxml_storage):
8715 case YY_STATE_EOF(S_surfxml_storage_2):
8716 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
8717         YY_BREAK
8718
8719 case 480:
8720 /* rule 480 can match eol */
8721 YY_RULE_SETUP
8722 FAIL("Starting tag <storage_type> is not allowed here.");
8723         YY_BREAK
8724 case 481:
8725 /* rule 481 can match eol */
8726 YY_RULE_SETUP
8727 {
8728   AX_surfxml_storage___type_content = 0;
8729   surfxml_storage___type_content_isset = 0;
8730   AX_surfxml_storage___type_content___type = 16;
8731   surfxml_storage___type_content___type_isset = 0;
8732   AX_surfxml_storage___type_id = 0;
8733   surfxml_storage___type_id_isset = 0;
8734   AX_surfxml_storage___type_model = 0;
8735   surfxml_storage___type_model_isset = 0;
8736   AX_surfxml_storage___type_size = 0;
8737   surfxml_storage___type_size_isset = 0;
8738   ENTER(AL_surfxml_storage___type); pushbuffer(0);
8739   }
8740         YY_BREAK
8741
8742 case 482:
8743 /* rule 482 can match eol */
8744 YY_RULE_SETUP
8745 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);
8746         YY_BREAK
8747 case 483:
8748 /* rule 483 can match eol */
8749 YY_RULE_SETUP
8750 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);
8751         YY_BREAK
8752 case 484:
8753 /* rule 484 can match eol */
8754 YY_RULE_SETUP
8755 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);
8756         YY_BREAK
8757 case 485:
8758 /* rule 485 can match eol */
8759 YY_RULE_SETUP
8760 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);
8761         YY_BREAK
8762 case 486:
8763 /* rule 486 can match eol */
8764 YY_RULE_SETUP
8765 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);
8766         YY_BREAK
8767 case 487:
8768 /* rule 487 can match eol */
8769 YY_RULE_SETUP
8770 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);
8771         YY_BREAK
8772 case 488:
8773 /* rule 488 can match eol */
8774 YY_RULE_SETUP
8775 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);
8776         YY_BREAK
8777 case 489:
8778 /* rule 489 can match eol */
8779 YY_RULE_SETUP
8780 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);
8781         YY_BREAK
8782 case 490:
8783 /* rule 490 can match eol */
8784 YY_RULE_SETUP
8785 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);
8786         YY_BREAK
8787 case 491:
8788 /* rule 491 can match eol */
8789 YY_RULE_SETUP
8790 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);
8791         YY_BREAK
8792 case 492:
8793 YY_RULE_SETUP
8794 {
8795   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
8796   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
8797   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
8798   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
8799  }
8800         YY_BREAK
8801 case 493:
8802 YY_RULE_SETUP
8803 {
8804   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
8805   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
8806   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
8807   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
8808   switch (YY_START) {
8809    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;
8810   }
8811  }
8812         YY_BREAK
8813 case 494:
8814 YY_RULE_SETUP
8815 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
8816         YY_BREAK
8817 case 495:
8818 YY_RULE_SETUP
8819 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
8820         YY_BREAK
8821 case YY_STATE_EOF(AL_surfxml_storage___type):
8822 FAIL("EOF in attribute list of `storage_type' element.");
8823         YY_BREAK
8824
8825 case 496:
8826 /* rule 496 can match eol */
8827 YY_RULE_SETUP
8828 {
8829   LEAVE;
8830   ETag_surfxml_storage___type();
8831   popbuffer(); /* attribute */
8832   switch (YY_START) {
8833    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;
8834   }
8835  }
8836         YY_BREAK
8837 case 497:
8838 /* rule 497 can match eol */
8839 YY_RULE_SETUP
8840 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
8841         YY_BREAK
8842 case 498:
8843 YY_RULE_SETUP
8844 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
8845         YY_BREAK
8846 case YY_STATE_EOF(E_surfxml_storage___type):
8847 case YY_STATE_EOF(S_surfxml_storage___type):
8848 case YY_STATE_EOF(S_surfxml_storage___type_2):
8849 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
8850         YY_BREAK
8851
8852 case 499:
8853 /* rule 499 can match eol */
8854 YY_RULE_SETUP
8855 FAIL("Starting tag <trace> is not allowed here.");
8856         YY_BREAK
8857 case 500:
8858 /* rule 500 can match eol */
8859 YY_RULE_SETUP
8860 {
8861   AX_surfxml_trace_file = 0;
8862   surfxml_trace_file_isset = 0;
8863   AX_surfxml_trace_id = 0;
8864   surfxml_trace_id_isset = 0;
8865   AX_surfxml_trace_periodicity = 0;
8866   surfxml_trace_periodicity_isset = 0;
8867   ENTER(AL_surfxml_trace); pushbuffer(0);
8868   }
8869         YY_BREAK
8870
8871 case 501:
8872 /* rule 501 can match eol */
8873 YY_RULE_SETUP
8874 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);
8875         YY_BREAK
8876 case 502:
8877 /* rule 502 can match eol */
8878 YY_RULE_SETUP
8879 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);
8880         YY_BREAK
8881 case 503:
8882 /* rule 503 can match eol */
8883 YY_RULE_SETUP
8884 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);
8885         YY_BREAK
8886 case 504:
8887 /* rule 504 can match eol */
8888 YY_RULE_SETUP
8889 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);
8890         YY_BREAK
8891 case 505:
8892 /* rule 505 can match eol */
8893 YY_RULE_SETUP
8894 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);
8895         YY_BREAK
8896 case 506:
8897 /* rule 506 can match eol */
8898 YY_RULE_SETUP
8899 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);
8900         YY_BREAK
8901 case 507:
8902 YY_RULE_SETUP
8903 {
8904   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
8905   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
8906   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
8907  }
8908         YY_BREAK
8909 case 508:
8910 YY_RULE_SETUP
8911 {
8912   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
8913   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
8914   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
8915   switch (YY_START) {
8916    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;
8917    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8918    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;
8919   }
8920  }
8921         YY_BREAK
8922 case 509:
8923 YY_RULE_SETUP
8924 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
8925         YY_BREAK
8926 case 510:
8927 YY_RULE_SETUP
8928 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
8929         YY_BREAK
8930 case YY_STATE_EOF(AL_surfxml_trace):
8931 FAIL("EOF in attribute list of `trace' element.");
8932         YY_BREAK
8933
8934 case 511:
8935 /* rule 511 can match eol */
8936 YY_RULE_SETUP
8937 {
8938   LEAVE;
8939   BUFFERDONE;
8940   ETag_surfxml_trace();
8941   surfxml_pcdata_ix = popbuffer();
8942   popbuffer(); /* attribute */
8943   switch (YY_START) {
8944    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;
8945    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
8946    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;
8947   }
8948  }
8949         YY_BREAK
8950 case 512:
8951 /* rule 512 can match eol */
8952 YY_RULE_SETUP
8953 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
8954         YY_BREAK
8955 case YY_STATE_EOF(IN_trace):
8956 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
8957         YY_BREAK
8958
8959 case 513:
8960 /* rule 513 can match eol */
8961 YY_RULE_SETUP
8962 FAIL("Starting tag <trace_connect> is not allowed here.");
8963         YY_BREAK
8964 case 514:
8965 /* rule 514 can match eol */
8966 YY_RULE_SETUP
8967 {
8968   AX_surfxml_trace___connect_element = 0;
8969   surfxml_trace___connect_element_isset = 0;
8970   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
8971   surfxml_trace___connect_kind_isset = 0;
8972   AX_surfxml_trace___connect_trace = 0;
8973   surfxml_trace___connect_trace_isset = 0;
8974   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
8975   }
8976         YY_BREAK
8977
8978 case 515:
8979 /* rule 515 can match eol */
8980 YY_RULE_SETUP
8981 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);
8982         YY_BREAK
8983 case 516:
8984 /* rule 516 can match eol */
8985 YY_RULE_SETUP
8986 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);
8987         YY_BREAK
8988 case 517:
8989 /* rule 517 can match eol */
8990 case 518:
8991 /* rule 518 can match eol */
8992 YY_RULE_SETUP
8993 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
8994         YY_BREAK
8995 case 519:
8996 /* rule 519 can match eol */
8997 case 520:
8998 /* rule 520 can match eol */
8999 YY_RULE_SETUP
9000 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_SPEED;
9001         YY_BREAK
9002 case 521:
9003 /* rule 521 can match eol */
9004 case 522:
9005 /* rule 522 can match eol */
9006 YY_RULE_SETUP
9007 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
9008         YY_BREAK
9009 case 523:
9010 /* rule 523 can match eol */
9011 case 524:
9012 /* rule 524 can match eol */
9013 YY_RULE_SETUP
9014 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
9015         YY_BREAK
9016 case 525:
9017 /* rule 525 can match eol */
9018 case 526:
9019 /* rule 526 can match eol */
9020 YY_RULE_SETUP
9021 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
9022         YY_BREAK
9023 case 527:
9024 /* rule 527 can match eol */
9025 YY_RULE_SETUP
9026 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);
9027         YY_BREAK
9028 case 528:
9029 /* rule 528 can match eol */
9030 YY_RULE_SETUP
9031 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);
9032         YY_BREAK
9033 case 529:
9034 YY_RULE_SETUP
9035 {
9036   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
9037   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
9038   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
9039  }
9040         YY_BREAK
9041 case 530:
9042 YY_RULE_SETUP
9043 {
9044   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
9045   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
9046   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
9047   switch (YY_START) {
9048    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;
9049    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9050    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;
9051   }
9052  }
9053         YY_BREAK
9054 case 531:
9055 YY_RULE_SETUP
9056 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
9057         YY_BREAK
9058 case 532:
9059 YY_RULE_SETUP
9060 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
9061         YY_BREAK
9062 case YY_STATE_EOF(AL_surfxml_trace___connect):
9063 FAIL("EOF in attribute list of `trace_connect' element.");
9064         YY_BREAK
9065
9066 case 533:
9067 /* rule 533 can match eol */
9068 YY_RULE_SETUP
9069 {
9070   LEAVE;
9071   ETag_surfxml_trace___connect();
9072   popbuffer(); /* attribute */
9073   switch (YY_START) {
9074    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;
9075    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
9076    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;
9077   }
9078  }
9079         YY_BREAK
9080 case 534:
9081 /* rule 534 can match eol */
9082 YY_RULE_SETUP
9083 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
9084         YY_BREAK
9085 case 535:
9086 YY_RULE_SETUP
9087 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
9088         YY_BREAK
9089 case YY_STATE_EOF(E_surfxml_trace___connect):
9090 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
9091         YY_BREAK
9092
9093 /* EPILOG: after the root element. */
9094
9095 case 536:
9096 YY_RULE_SETUP
9097 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9098         YY_BREAK
9099 case YY_STATE_EOF(EPILOG):
9100 SUCCEED;
9101         YY_BREAK
9102
9103 /* CHARACTER DATA. */
9104
9105 /* Non-defined standard entities... */
9106 case 537:
9107 YY_RULE_SETUP
9108 BUFFERPUTC('&');
9109         YY_BREAK
9110 case 538:
9111 YY_RULE_SETUP
9112 BUFFERPUTC('<');
9113         YY_BREAK
9114 case 539:
9115 YY_RULE_SETUP
9116 BUFFERPUTC('>');
9117         YY_BREAK
9118 case 540:
9119 YY_RULE_SETUP
9120 BUFFERPUTC('\'');
9121         YY_BREAK
9122 case 541:
9123 YY_RULE_SETUP
9124 BUFFERPUTC('"');
9125         YY_BREAK
9126 /* Character entities. */
9127 case 542:
9128 YY_RULE_SETUP
9129 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9130         YY_BREAK
9131 case 543:
9132 YY_RULE_SETUP
9133 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9134         YY_BREAK
9135
9136 case 544:
9137 /* rule 544 can match eol */
9138 case 545:
9139 /* rule 545 can match eol */
9140 case 546:
9141 /* rule 546 can match eol */
9142 case 547:
9143 /* rule 547 can match eol */
9144 YY_RULE_SETUP
9145 BUFFERPUTC('\n');
9146         YY_BREAK
9147
9148 case 548:
9149 YY_RULE_SETUP
9150 ENTER(CDATA);
9151         YY_BREAK
9152 case 549:
9153 YY_RULE_SETUP
9154 FAIL("Unexpected `]""]>' in character data.");
9155         YY_BREAK
9156
9157 case 550:
9158 YY_RULE_SETUP
9159 BUFFERDONE; LEAVE;
9160         YY_BREAK
9161 case YY_STATE_EOF(VALUE1):
9162 FAIL("EOF in literal (\"'\" expected).");
9163         YY_BREAK
9164
9165 case 551:
9166 YY_RULE_SETUP
9167 BUFFERDONE; LEAVE;
9168         YY_BREAK
9169 case YY_STATE_EOF(VALUE2):
9170 FAIL("EOF in literal (`\"' expected).");
9171         YY_BREAK
9172
9173 case 552:
9174 /* rule 552 can match eol */
9175 YY_RULE_SETUP
9176 BUFFERPUTC(surf_parse_text[0]);
9177         YY_BREAK
9178 case 553:
9179 YY_RULE_SETUP
9180 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9181         YY_BREAK
9182
9183 case 554:
9184 YY_RULE_SETUP
9185 LEAVE;
9186         YY_BREAK
9187 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9188 case 555:
9189 YY_RULE_SETUP
9190 BUFFERPUTC(surf_parse_text[0]);
9191         YY_BREAK
9192 case YY_STATE_EOF(CDATA):
9193 FAIL("EOF in CDATA section.");
9194         YY_BREAK
9195
9196 /* Impossible rules to avoid warnings from flex(1). */
9197 /* Ideally, this should be replaced by code in flexml.pl that
9198     generates just the states not covered by other rules. */
9199
9200 case 556:
9201 /* rule 556 can match eol */
9202 YY_RULE_SETUP
9203 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9204         YY_BREAK
9205
9206 case 557:
9207 YY_RULE_SETUP
9208 ECHO;
9209         YY_BREAK
9210 case YY_STATE_EOF(INITIAL):
9211 case YY_STATE_EOF(S_surfxml_AS_2):
9212 case YY_STATE_EOF(S_surfxml_AS_5):
9213 case YY_STATE_EOF(S_surfxml_AS_7):
9214 case YY_STATE_EOF(S_surfxml_ASroute_1):
9215 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9216 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9217 case YY_STATE_EOF(S_surfxml_cluster_1):
9218 case YY_STATE_EOF(S_surfxml_config_1):
9219 case YY_STATE_EOF(S_surfxml_host_1):
9220 case YY_STATE_EOF(S_surfxml_include_1):
9221 case YY_STATE_EOF(S_surfxml_link_1):
9222 case YY_STATE_EOF(ROOT_surfxml_platform):
9223 case YY_STATE_EOF(S_surfxml_platform_2):
9224 case YY_STATE_EOF(S_surfxml_platform_5):
9225 case YY_STATE_EOF(S_surfxml_platform_7):
9226 case YY_STATE_EOF(S_surfxml_process_1):
9227 case YY_STATE_EOF(S_surfxml_route_1):
9228 case YY_STATE_EOF(S_surfxml_storage_1):
9229 case YY_STATE_EOF(S_surfxml_storage___type_1):
9230 case YY_STATE_EOF(IMPOSSIBLE):
9231         yyterminate();
9232
9233         case YY_END_OF_BUFFER:
9234                 {
9235                 /* Amount of text matched not including the EOB char. */
9236                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9237
9238                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9239                 *yy_cp = (yy_hold_char);
9240                 YY_RESTORE_YY_MORE_OFFSET
9241
9242                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9243                         {
9244                         /* We're scanning a new file or input source.  It's
9245                          * possible that this happened because the user
9246                          * just pointed surf_parse_in at a new source and called
9247                          * surf_parse_lex().  If so, then we have to assure
9248                          * consistency between YY_CURRENT_BUFFER and our
9249                          * globals.  Here is the right place to do so, because
9250                          * this is the first action (other than possibly a
9251                          * back-up) that will match for the new input source.
9252                          */
9253                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9254                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9255                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9256                         }
9257
9258                 /* Note that here we test for yy_c_buf_p "<=" to the position
9259                  * of the first EOB in the buffer, since yy_c_buf_p will
9260                  * already have been incremented past the NUL character
9261                  * (since all states make transitions on EOB to the
9262                  * end-of-buffer state).  Contrast this with the test
9263                  * in input().
9264                  */
9265                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9266                         { /* This was really a NUL. */
9267                         yy_state_type yy_next_state;
9268
9269                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9270
9271                         yy_current_state = yy_get_previous_state(  );
9272
9273                         /* Okay, we're now positioned to make the NUL
9274                          * transition.  We couldn't have
9275                          * yy_get_previous_state() go ahead and do it
9276                          * for us because it doesn't know how to deal
9277                          * with the possibility of jamming (and we don't
9278                          * want to build jamming into it because then it
9279                          * will run more slowly).
9280                          */
9281
9282                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9283
9284                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9285
9286                         if ( yy_next_state )
9287                                 {
9288                                 /* Consume the NUL. */
9289                                 yy_cp = ++(yy_c_buf_p);
9290                                 yy_current_state = yy_next_state;
9291                                 goto yy_match;
9292                                 }
9293
9294                         else
9295                                 {
9296                                 yy_cp = (yy_c_buf_p);
9297                                 goto yy_find_action;
9298                                 }
9299                         }
9300
9301                 else switch ( yy_get_next_buffer(  ) )
9302                         {
9303                         case EOB_ACT_END_OF_FILE:
9304                                 {
9305                                 (yy_did_buffer_switch_on_eof) = 0;
9306
9307                                 if ( surf_parse_wrap( ) )
9308                                         {
9309                                         /* Note: because we've taken care in
9310                                          * yy_get_next_buffer() to have set up
9311                                          * surf_parse_text, we can now set up
9312                                          * yy_c_buf_p so that if some total
9313                                          * hoser (like flex itself) wants to
9314                                          * call the scanner after we return the
9315                                          * YY_NULL, it'll still work - another
9316                                          * YY_NULL will get returned.
9317                                          */
9318                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9319
9320                                         yy_act = YY_STATE_EOF(YY_START);
9321                                         goto do_action;
9322                                         }
9323
9324                                 else
9325                                         {
9326                                         if ( ! (yy_did_buffer_switch_on_eof) )
9327                                                 YY_NEW_FILE;
9328                                         }
9329                                 break;
9330                                 }
9331
9332                         case EOB_ACT_CONTINUE_SCAN:
9333                                 (yy_c_buf_p) =
9334                                         (yytext_ptr) + yy_amount_of_matched_text;
9335
9336                                 yy_current_state = yy_get_previous_state(  );
9337
9338                                 yy_cp = (yy_c_buf_p);
9339                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9340                                 goto yy_match;
9341
9342                         case EOB_ACT_LAST_MATCH:
9343                                 (yy_c_buf_p) =
9344                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9345
9346                                 yy_current_state = yy_get_previous_state(  );
9347
9348                                 yy_cp = (yy_c_buf_p);
9349                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9350                                 goto yy_find_action;
9351                         }
9352                 break;
9353                 }
9354
9355         default:
9356                 YY_FATAL_ERROR(
9357                         "fatal flex scanner internal error--no action found" );
9358         } /* end of action switch */
9359                 } /* end of scanning one token */
9360         } /* end of user's declarations */
9361 } /* end of surf_parse_lex */
9362
9363 /* yy_get_next_buffer - try to read in a new buffer
9364  *
9365  * Returns a code representing an action:
9366  *      EOB_ACT_LAST_MATCH -
9367  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9368  *      EOB_ACT_END_OF_FILE - end of file
9369  */
9370 static int yy_get_next_buffer (void)
9371 {
9372         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9373         char *source = (yytext_ptr);
9374         int number_to_move, i;
9375         int ret_val;
9376
9377         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9378                 YY_FATAL_ERROR(
9379                 "fatal flex scanner internal error--end of buffer missed" );
9380
9381         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9382                 { /* Don't try to fill the buffer, so this is an EOF. */
9383                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9384                         {
9385                         /* We matched a single character, the EOB, so
9386                          * treat this as a final EOF.
9387                          */
9388                         return EOB_ACT_END_OF_FILE;
9389                         }
9390
9391                 else
9392                         {
9393                         /* We matched some text prior to the EOB, first
9394                          * process it.
9395                          */
9396                         return EOB_ACT_LAST_MATCH;
9397                         }
9398                 }
9399
9400         /* Try to read more data. */
9401
9402         /* First move last chars to start of buffer. */
9403         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9404
9405         for ( i = 0; i < number_to_move; ++i )
9406                 *(dest++) = *(source++);
9407
9408         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9409                 /* don't do the read, it's not guaranteed to return an EOF,
9410                  * just force an EOF
9411                  */
9412                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9413
9414         else
9415                 {
9416                         yy_size_t num_to_read =
9417                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9418
9419                 while ( num_to_read <= 0 )
9420                         { /* Not enough room in the buffer - grow it. */
9421
9422                         /* just a shorter name for the current buffer */
9423                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
9424
9425                         int yy_c_buf_p_offset =
9426                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9427
9428                         if ( b->yy_is_our_buffer )
9429                                 {
9430                                 yy_size_t new_size = b->yy_buf_size * 2;
9431
9432                                 if ( new_size <= 0 )
9433                                         b->yy_buf_size += b->yy_buf_size / 8;
9434                                 else
9435                                         b->yy_buf_size *= 2;
9436
9437                                 b->yy_ch_buf = (char *)
9438                                         /* Include room in for 2 EOB chars. */
9439                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9440                                 }
9441                         else
9442                                 /* Can't grow it, we don't own it. */
9443                                 b->yy_ch_buf = 0;
9444
9445                         if ( ! b->yy_ch_buf )
9446                                 YY_FATAL_ERROR(
9447                                 "fatal error - scanner input buffer overflow" );
9448
9449                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9450
9451                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9452                                                 number_to_move - 1;
9453
9454                         }
9455
9456                 if ( num_to_read > YY_READ_BUF_SIZE )
9457                         num_to_read = YY_READ_BUF_SIZE;
9458
9459                 /* Read in more data. */
9460                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9461                         (yy_n_chars), num_to_read );
9462
9463                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9464                 }
9465
9466         if ( (yy_n_chars) == 0 )
9467                 {
9468                 if ( number_to_move == YY_MORE_ADJ )
9469                         {
9470                         ret_val = EOB_ACT_END_OF_FILE;
9471                         surf_parse_restart(surf_parse_in  );
9472                         }
9473
9474                 else
9475                         {
9476                         ret_val = EOB_ACT_LAST_MATCH;
9477                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9478                                 YY_BUFFER_EOF_PENDING;
9479                         }
9480                 }
9481
9482         else
9483                 ret_val = EOB_ACT_CONTINUE_SCAN;
9484
9485         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9486                 /* Extend the array by 50%, plus the number we really need. */
9487                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9488                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9489                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9490                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9491         }
9492
9493         (yy_n_chars) += number_to_move;
9494         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9495         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9496
9497         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9498
9499         return ret_val;
9500 }
9501
9502 /* yy_get_previous_state - get the state just before the EOB char was reached */
9503
9504     static yy_state_type yy_get_previous_state (void)
9505 {
9506         yy_state_type yy_current_state;
9507         char *yy_cp;
9508     
9509         yy_current_state = (yy_start);
9510
9511         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9512                 {
9513                 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9514                 if ( yy_accept[yy_current_state] )
9515                         {
9516                         (yy_last_accepting_state) = yy_current_state;
9517                         (yy_last_accepting_cpos) = yy_cp;
9518                         }
9519                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9520                         {
9521                         yy_current_state = (int) yy_def[yy_current_state];
9522                         if ( yy_current_state >= 3294 )
9523                                 yy_c = yy_meta[(unsigned int) yy_c];
9524                         }
9525                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9526                 }
9527
9528         return yy_current_state;
9529 }
9530
9531 /* yy_try_NUL_trans - try to make a transition on the NUL character
9532  *
9533  * synopsis
9534  *      next_state = yy_try_NUL_trans( current_state );
9535  */
9536     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9537 {
9538         int yy_is_jam;
9539         char *yy_cp = (yy_c_buf_p);
9540
9541         YY_CHAR yy_c = 1;
9542         if ( yy_accept[yy_current_state] )
9543                 {
9544                 (yy_last_accepting_state) = yy_current_state;
9545                 (yy_last_accepting_cpos) = yy_cp;
9546                 }
9547         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9548                 {
9549                 yy_current_state = (int) yy_def[yy_current_state];
9550                 if ( yy_current_state >= 3294 )
9551                         yy_c = yy_meta[(unsigned int) yy_c];
9552                 }
9553         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9554         yy_is_jam = (yy_current_state == 3293);
9555
9556                 return yy_is_jam ? 0 : yy_current_state;
9557 }
9558
9559 #ifndef YY_NO_INPUT
9560 #ifdef __cplusplus
9561     static int yyinput (void)
9562 #else
9563     static int input  (void)
9564 #endif
9565
9566 {
9567         int c;
9568     
9569         *(yy_c_buf_p) = (yy_hold_char);
9570
9571         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9572                 {
9573                 /* yy_c_buf_p now points to the character we want to return.
9574                  * If this occurs *before* the EOB characters, then it's a
9575                  * valid NUL; if not, then we've hit the end of the buffer.
9576                  */
9577                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9578                         /* This was really a NUL. */
9579                         *(yy_c_buf_p) = '\0';
9580
9581                 else
9582                         { /* need more input */
9583                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
9584                         ++(yy_c_buf_p);
9585
9586                         switch ( yy_get_next_buffer(  ) )
9587                                 {
9588                                 case EOB_ACT_LAST_MATCH:
9589                                         /* This happens because yy_g_n_b()
9590                                          * sees that we've accumulated a
9591                                          * token and flags that we need to
9592                                          * try matching the token before
9593                                          * proceeding.  But for input(),
9594                                          * there's no matching to consider.
9595                                          * So convert the EOB_ACT_LAST_MATCH
9596                                          * to EOB_ACT_END_OF_FILE.
9597                                          */
9598
9599                                         /* Reset buffer status. */
9600                                         surf_parse_restart(surf_parse_in );
9601
9602                                         /*FALLTHROUGH*/
9603
9604                                 case EOB_ACT_END_OF_FILE:
9605                                         {
9606                                         if ( surf_parse_wrap( ) )
9607                                                 return EOF;
9608
9609                                         if ( ! (yy_did_buffer_switch_on_eof) )
9610                                                 YY_NEW_FILE;
9611 #ifdef __cplusplus
9612                                         return yyinput();
9613 #else
9614                                         return input();
9615 #endif
9616                                         }
9617
9618                                 case EOB_ACT_CONTINUE_SCAN:
9619                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9620                                         break;
9621                                 }
9622                         }
9623                 }
9624
9625         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9626         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9627         (yy_hold_char) = *++(yy_c_buf_p);
9628
9629         if ( c == '\n' )
9630                    
9631     surf_parse_lineno++;
9632 ;
9633
9634         return c;
9635 }
9636 #endif  /* ifndef YY_NO_INPUT */
9637
9638 /** Immediately switch to a different input stream.
9639  * @param input_file A readable stream.
9640  * 
9641  * @note This function does not reset the start condition to @c INITIAL .
9642  */
9643     void surf_parse_restart  (FILE * input_file )
9644 {
9645     
9646         if ( ! YY_CURRENT_BUFFER ){
9647         surf_parse_ensure_buffer_stack ();
9648                 YY_CURRENT_BUFFER_LVALUE =
9649             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9650         }
9651
9652         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9653         surf_parse__load_buffer_state( );
9654 }
9655
9656 /** Switch to a different input buffer.
9657  * @param new_buffer The new input buffer.
9658  * 
9659  */
9660     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9661 {
9662     
9663         /* TODO. We should be able to replace this entire function body
9664          * with
9665          *              surf_parse_pop_buffer_state();
9666          *              surf_parse_push_buffer_state(new_buffer);
9667      */
9668         surf_parse_ensure_buffer_stack ();
9669         if ( YY_CURRENT_BUFFER == new_buffer )
9670                 return;
9671
9672         if ( YY_CURRENT_BUFFER )
9673                 {
9674                 /* Flush out information for old buffer. */
9675                 *(yy_c_buf_p) = (yy_hold_char);
9676                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9677                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9678                 }
9679
9680         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9681         surf_parse__load_buffer_state( );
9682
9683         /* We don't actually know whether we did this switch during
9684          * EOF (surf_parse_wrap()) processing, but the only time this flag
9685          * is looked at is after surf_parse_wrap() is called, so it's safe
9686          * to go ahead and always set it.
9687          */
9688         (yy_did_buffer_switch_on_eof) = 1;
9689 }
9690
9691 static void surf_parse__load_buffer_state  (void)
9692 {
9693         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9694         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9695         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9696         (yy_hold_char) = *(yy_c_buf_p);
9697 }
9698
9699 /** Allocate and initialize an input buffer state.
9700  * @param file A readable stream.
9701  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9702  * 
9703  * @return the allocated buffer state.
9704  */
9705     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9706 {
9707         YY_BUFFER_STATE b;
9708     
9709         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9710         if ( ! b )
9711                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9712
9713         b->yy_buf_size = size;
9714
9715         /* yy_ch_buf has to be 2 characters longer than the size given because
9716          * we need to put in 2 end-of-buffer characters.
9717          */
9718         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9719         if ( ! b->yy_ch_buf )
9720                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9721
9722         b->yy_is_our_buffer = 1;
9723
9724         surf_parse__init_buffer(b,file );
9725
9726         return b;
9727 }
9728
9729 /** Destroy the buffer.
9730  * @param b a buffer created with surf_parse__create_buffer()
9731  * 
9732  */
9733     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9734 {
9735     
9736         if ( ! b )
9737                 return;
9738
9739         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9740                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9741
9742         if ( b->yy_is_our_buffer )
9743                 surf_parse_free((void *) b->yy_ch_buf  );
9744
9745         surf_parse_free((void *) b  );
9746 }
9747
9748 /* Initializes or reinitializes a buffer.
9749  * This function is sometimes called more than once on the same buffer,
9750  * such as during a surf_parse_restart() or at EOF.
9751  */
9752     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9753
9754 {
9755         int oerrno = errno;
9756     
9757         surf_parse__flush_buffer(b );
9758
9759         b->yy_input_file = file;
9760         b->yy_fill_buffer = 1;
9761
9762     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9763      * called from surf_parse_restart() or through yy_get_next_buffer.
9764      * In that case, we don't want to reset the lineno or column.
9765      */
9766     if (b != YY_CURRENT_BUFFER){
9767         b->yy_bs_lineno = 1;
9768         b->yy_bs_column = 0;
9769     }
9770
9771         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9772     
9773         errno = oerrno;
9774 }
9775
9776 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9777  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9778  * 
9779  */
9780     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9781 {
9782         if ( ! b )
9783                 return;
9784
9785         b->yy_n_chars = 0;
9786
9787         /* We always need two end-of-buffer characters.  The first causes
9788          * a transition to the end-of-buffer state.  The second causes
9789          * a jam in that state.
9790          */
9791         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
9792         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
9793
9794         b->yy_buf_pos = &b->yy_ch_buf[0];
9795
9796         b->yy_at_bol = 1;
9797         b->yy_buffer_status = YY_BUFFER_NEW;
9798
9799         if ( b == YY_CURRENT_BUFFER )
9800                 surf_parse__load_buffer_state( );
9801 }
9802
9803 /** Pushes the new state onto the stack. The new state becomes
9804  *  the current state. This function will allocate the stack
9805  *  if necessary.
9806  *  @param new_buffer The new state.
9807  *  
9808  */
9809 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
9810 {
9811         if (new_buffer == NULL)
9812                 return;
9813
9814         surf_parse_ensure_buffer_stack();
9815
9816         /* This block is copied from surf_parse__switch_to_buffer. */
9817         if ( YY_CURRENT_BUFFER )
9818                 {
9819                 /* Flush out information for old buffer. */
9820                 *(yy_c_buf_p) = (yy_hold_char);
9821                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9822                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9823                 }
9824
9825         /* Only push if top exists. Otherwise, replace top. */
9826         if (YY_CURRENT_BUFFER)
9827                 (yy_buffer_stack_top)++;
9828         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9829
9830         /* copied from surf_parse__switch_to_buffer. */
9831         surf_parse__load_buffer_state( );
9832         (yy_did_buffer_switch_on_eof) = 1;
9833 }
9834
9835 /** Removes and deletes the top of the stack, if present.
9836  *  The next element becomes the new top.
9837  *  
9838  */
9839 void surf_parse_pop_buffer_state (void)
9840 {
9841         if (!YY_CURRENT_BUFFER)
9842                 return;
9843
9844         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
9845         YY_CURRENT_BUFFER_LVALUE = NULL;
9846         if ((yy_buffer_stack_top) > 0)
9847                 --(yy_buffer_stack_top);
9848
9849         if (YY_CURRENT_BUFFER) {
9850                 surf_parse__load_buffer_state( );
9851                 (yy_did_buffer_switch_on_eof) = 1;
9852         }
9853 }
9854
9855 /* Allocates the stack if it does not exist.
9856  *  Guarantees space for at least one push.
9857  */
9858 static void surf_parse_ensure_buffer_stack (void)
9859 {
9860         yy_size_t num_to_alloc;
9861     
9862         if (!(yy_buffer_stack)) {
9863
9864                 /* First allocation is just for 2 elements, since we don't know if this
9865                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
9866                  * immediate realloc on the next call.
9867          */
9868                 num_to_alloc = 1;
9869                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
9870                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
9871                                                                 );
9872                 if ( ! (yy_buffer_stack) )
9873                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9874                                                                   
9875                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
9876                                 
9877                 (yy_buffer_stack_max) = num_to_alloc;
9878                 (yy_buffer_stack_top) = 0;
9879                 return;
9880         }
9881
9882         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
9883
9884                 /* Increase the buffer to prepare for a possible push. */
9885                 int grow_size = 8 /* arbitrary grow size */;
9886
9887                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
9888                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
9889                                                                 ((yy_buffer_stack),
9890                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
9891                                                                 );
9892                 if ( ! (yy_buffer_stack) )
9893                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
9894
9895                 /* zero only the new slots.*/
9896                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
9897                 (yy_buffer_stack_max) = num_to_alloc;
9898         }
9899 }
9900
9901 /** Setup the input buffer state to scan directly from a user-specified character buffer.
9902  * @param base the character buffer
9903  * @param size the size in bytes of the character buffer
9904  * 
9905  * @return the newly allocated buffer state object. 
9906  */
9907 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
9908 {
9909         YY_BUFFER_STATE b;
9910     
9911         if ( size < 2 ||
9912              base[size-2] != YY_END_OF_BUFFER_CHAR ||
9913              base[size-1] != YY_END_OF_BUFFER_CHAR )
9914                 /* They forgot to leave room for the EOB's. */
9915                 return 0;
9916
9917         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9918         if ( ! b )
9919                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
9920
9921         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
9922         b->yy_buf_pos = b->yy_ch_buf = base;
9923         b->yy_is_our_buffer = 0;
9924         b->yy_input_file = 0;
9925         b->yy_n_chars = b->yy_buf_size;
9926         b->yy_is_interactive = 0;
9927         b->yy_at_bol = 1;
9928         b->yy_fill_buffer = 0;
9929         b->yy_buffer_status = YY_BUFFER_NEW;
9930
9931         surf_parse__switch_to_buffer(b  );
9932
9933         return b;
9934 }
9935
9936 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
9937  * scan from a @e copy of @a str.
9938  * @param yystr a NUL-terminated string to scan
9939  * 
9940  * @return the newly allocated buffer state object.
9941  * @note If you want to scan bytes that may contain NUL values, then use
9942  *       surf_parse__scan_bytes() instead.
9943  */
9944 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
9945 {
9946     
9947         return surf_parse__scan_bytes(yystr,strlen(yystr) );
9948 }
9949
9950 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
9951  * scan from a @e copy of @a bytes.
9952  * @param yybytes the byte buffer to scan
9953  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
9954  * 
9955  * @return the newly allocated buffer state object.
9956  */
9957 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
9958 {
9959         YY_BUFFER_STATE b;
9960         char *buf;
9961         yy_size_t n;
9962         yy_size_t i;
9963     
9964         /* Get memory for full buffer, including space for trailing EOB's. */
9965         n = _yybytes_len + 2;
9966         buf = (char *) surf_parse_alloc(n  );
9967         if ( ! buf )
9968                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
9969
9970         for ( i = 0; i < _yybytes_len; ++i )
9971                 buf[i] = yybytes[i];
9972
9973         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
9974
9975         b = surf_parse__scan_buffer(buf,n );
9976         if ( ! b )
9977                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
9978
9979         /* It's okay to grow etc. this buffer, and we should throw it
9980          * away when we're done.
9981          */
9982         b->yy_is_our_buffer = 1;
9983
9984         return b;
9985 }
9986
9987     static void yy_push_state (int  new_state )
9988 {
9989         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
9990                 {
9991                 yy_size_t new_size;
9992
9993                 (yy_start_stack_depth) += YY_START_STACK_INCR;
9994                 new_size = (yy_start_stack_depth) * sizeof( int );
9995
9996                 if ( ! (yy_start_stack) )
9997                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
9998
9999                 else
10000                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10001
10002                 if ( ! (yy_start_stack) )
10003                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10004                 }
10005
10006         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10007
10008         BEGIN(new_state);
10009 }
10010
10011     static void yy_pop_state  (void)
10012 {
10013         if ( --(yy_start_stack_ptr) < 0 )
10014                 YY_FATAL_ERROR( "start-condition stack underflow" );
10015
10016         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10017 }
10018
10019 #ifndef YY_EXIT_FAILURE
10020 #define YY_EXIT_FAILURE 2
10021 #endif
10022
10023 static void yy_fatal_error (yyconst char* msg )
10024 {
10025         (void) fprintf( stderr, "%s\n", msg );
10026         exit( YY_EXIT_FAILURE );
10027 }
10028
10029 /* Redefine yyless() so it works in section 3 code. */
10030
10031 #undef yyless
10032 #define yyless(n) \
10033         do \
10034                 { \
10035                 /* Undo effects of setting up surf_parse_text. */ \
10036         int yyless_macro_arg = (n); \
10037         YY_LESS_LINENO(yyless_macro_arg);\
10038                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10039                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10040                 (yy_hold_char) = *(yy_c_buf_p); \
10041                 *(yy_c_buf_p) = '\0'; \
10042                 surf_parse_leng = yyless_macro_arg; \
10043                 } \
10044         while ( 0 )
10045
10046 /* Accessor  methods (get/set functions) to struct members. */
10047
10048 /** Get the current line number.
10049  * 
10050  */
10051 int surf_parse_get_lineno  (void)
10052 {
10053         
10054     return surf_parse_lineno;
10055 }
10056
10057 /** Get the input stream.
10058  * 
10059  */
10060 FILE *surf_parse_get_in  (void)
10061 {
10062         return surf_parse_in;
10063 }
10064
10065 /** Get the output stream.
10066  * 
10067  */
10068 FILE *surf_parse_get_out  (void)
10069 {
10070         return surf_parse_out;
10071 }
10072
10073 /** Get the length of the current token.
10074  * 
10075  */
10076 yy_size_t surf_parse_get_leng  (void)
10077 {
10078         return surf_parse_leng;
10079 }
10080
10081 /** Get the current token.
10082  * 
10083  */
10084
10085 char *surf_parse_get_text  (void)
10086 {
10087         return surf_parse_text;
10088 }
10089
10090 /** Set the current line number.
10091  * @param line_number
10092  * 
10093  */
10094 void surf_parse_set_lineno (int  line_number )
10095 {
10096     
10097     surf_parse_lineno = line_number;
10098 }
10099
10100 /** Set the input stream. This does not discard the current
10101  * input buffer.
10102  * @param in_str A readable stream.
10103  * 
10104  * @see surf_parse__switch_to_buffer
10105  */
10106 void surf_parse_set_in (FILE *  in_str )
10107 {
10108         surf_parse_in = in_str ;
10109 }
10110
10111 void surf_parse_set_out (FILE *  out_str )
10112 {
10113         surf_parse_out = out_str ;
10114 }
10115
10116 int surf_parse_get_debug  (void)
10117 {
10118         return surf_parse__flex_debug;
10119 }
10120
10121 void surf_parse_set_debug (int  bdebug )
10122 {
10123         surf_parse__flex_debug = bdebug ;
10124 }
10125
10126 static int yy_init_globals (void)
10127 {
10128         /* Initialization is the same as for the non-reentrant scanner.
10129      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10130      */
10131
10132     /* We do not touch surf_parse_lineno unless the option is enabled. */
10133     surf_parse_lineno =  1;
10134     
10135     (yy_buffer_stack) = 0;
10136     (yy_buffer_stack_top) = 0;
10137     (yy_buffer_stack_max) = 0;
10138     (yy_c_buf_p) = (char *) 0;
10139     (yy_init) = 0;
10140     (yy_start) = 0;
10141
10142     (yy_start_stack_ptr) = 0;
10143     (yy_start_stack_depth) = 0;
10144     (yy_start_stack) =  NULL;
10145
10146 /* Defined in main.c */
10147 #ifdef YY_STDINIT
10148     surf_parse_in = stdin;
10149     surf_parse_out = stdout;
10150 #else
10151     surf_parse_in = (FILE *) 0;
10152     surf_parse_out = (FILE *) 0;
10153 #endif
10154
10155     /* For future reference: Set errno on error, since we are called by
10156      * surf_parse_lex_init()
10157      */
10158     return 0;
10159 }
10160
10161 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10162 int surf_parse_lex_destroy  (void)
10163 {
10164     
10165     /* Pop the buffer stack, destroying each element. */
10166         while(YY_CURRENT_BUFFER){
10167                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10168                 YY_CURRENT_BUFFER_LVALUE = NULL;
10169                 surf_parse_pop_buffer_state();
10170         }
10171
10172         /* Destroy the stack itself. */
10173         surf_parse_free((yy_buffer_stack) );
10174         (yy_buffer_stack) = NULL;
10175
10176     /* Destroy the start condition stack. */
10177         surf_parse_free((yy_start_stack)  );
10178         (yy_start_stack) = NULL;
10179
10180     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10181      * surf_parse_lex() is called, initialization will occur. */
10182     yy_init_globals( );
10183
10184     return 0;
10185 }
10186
10187 /*
10188  * Internal utility routines.
10189  */
10190
10191 #ifndef yytext_ptr
10192 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10193 {
10194         int i;
10195         for ( i = 0; i < n; ++i )
10196                 s1[i] = s2[i];
10197 }
10198 #endif
10199
10200 #ifdef YY_NEED_STRLEN
10201 static int yy_flex_strlen (yyconst char * s )
10202 {
10203         int n;
10204         for ( n = 0; s[n]; ++n )
10205                 ;
10206
10207         return n;
10208 }
10209 #endif
10210
10211 void *surf_parse_alloc (yy_size_t  size )
10212 {
10213         return (void *) malloc( size );
10214 }
10215
10216 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10217 {
10218         /* The cast to (char *) in the following accommodates both
10219          * implementations that use char* generic pointers, and those
10220          * that use void* generic pointers.  It works with the latter
10221          * because both ANSI C and C++ allow castless assignment from
10222          * any pointer type to void*, and deal with argument conversions
10223          * as though doing an assignment.
10224          */
10225         return (void *) realloc( (char *) ptr, size );
10226 }
10227
10228 void surf_parse_free (void * ptr )
10229 {
10230         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10231 }
10232
10233 #define YYTABLES_NAME "yytables"
10234
10235 /* Element context stack lookup. */
10236 int surfxml_element_context(int i)
10237 {
10238   return (0<i && i<yy_start_stack_depth
10239           ? yy_start_stack[yy_start_stack_ptr - i]
10240           : 0);
10241 }
10242
10243 #ifdef FLEX_DEBUG
10244 void print_yy_stack(char* fmt, ...)
10245 {
10246   int i = 0; va_list ap; va_start(ap, fmt);
10247   vfprintf(stderr, fmt, ap);
10248   if (surfxml_statenames) {
10249       for (i=1; i<yy_start_stack_ptr; i++) {
10250           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10251       }
10252       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10253   }
10254   va_end(ap);
10255 }
10256
10257 void print_surfxml_bufferstack()
10258 {
10259     int i;
10260     fputs("Buffer: ", stderr);
10261     for (i = 0; i < blimit; i++) {
10262        if ( surfxml_bufferstack[i] == '\377' ) break;
10263          putc(surfxml_bufferstack[i], stderr);
10264     }
10265     putc('\n', stderr);
10266 }
10267
10268 static void debug_enter(int state, const char* statename) {
10269   yy_push_state(state);
10270   if (surf_parse__flex_debug) {
10271        print_yy_stack("--ENTER(%s) : ",statename);
10272        print_surfxml_bufferstack();
10273   }
10274 }
10275
10276 static void debug_leave(void) {
10277     if (surf_parse__flex_debug) {
10278         print_yy_stack("--LEAVE : ");
10279         print_surfxml_bufferstack();
10280     }
10281   yy_pop_state();
10282 }
10283
10284 static void debug_set(int state, const char* statename) {
10285   BEGIN(state);
10286   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10287 }
10288 #endif
10289
10290 static void cleanup(void)
10291 {
10292     if (surfxml_statenames) {
10293         free(surfxml_statenames);
10294         surfxml_statenames = NULL;
10295     }
10296     free(surfxml_bufferstack);
10297     surfxml_bufferstack = NULL;
10298
10299     free(indexstack);
10300     indexstack = NULL;
10301 }
10302
10303 static int fail(const char* fmt, ...)
10304 {
10305     int chars_left, used;
10306     va_list ap; va_start(ap, fmt);
10307 #ifdef FLEXML_yylineno
10308     used = sprintf(flexml_err_msg,
10309                    "Invalid XML (XML input line %d, state %d): ",
10310                    surf_parse_lineno, YY_START);
10311 #else
10312     used = sprintf(flexml_err_msg,
10313                    "Invalid XML (state %d): ",
10314                    YY_START);
10315 #endif
10316     chars_left = flexml_max_err_msg_size - used - 1;
10317     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10318     va_end(ap);
10319
10320 #ifndef FLEXML_quiet_parser
10321     /* print directly to sdterr */
10322     fprintf(stderr, "%s\n", flexml_err_msg);
10323     flexml_err_msg[0] = '\0';
10324 #endif
10325
10326     cleanup();
10327
10328     return 1;
10329 }
10330