Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
update dtd to add torus_dimensions tag to clusters
[simgrid.git] / src / surf / simgrid_dtd.c
1
2 #line 3 "src/surf/simgrid_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer surf_parse__create_buffer
9 #define yy_delete_buffer surf_parse__delete_buffer
10 #define yy_flex_debug surf_parse__flex_debug
11 #define yy_init_buffer surf_parse__init_buffer
12 #define yy_flush_buffer surf_parse__flush_buffer
13 #define yy_load_buffer_state surf_parse__load_buffer_state
14 #define yy_switch_to_buffer surf_parse__switch_to_buffer
15 #define yyin surf_parse_in
16 #define yyleng surf_parse_leng
17 #define yylex surf_parse_lex
18 #define yylineno surf_parse_lineno
19 #define yyout surf_parse_out
20 #define yyrestart surf_parse_restart
21 #define yytext surf_parse_text
22 #define yywrap surf_parse_wrap
23 #define yyalloc surf_parse_alloc
24 #define yyrealloc surf_parse_realloc
25 #define yyfree surf_parse_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int surf_parse_leng;
184
185 extern FILE *surf_parse_in, *surf_parse_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
202                     if ( surf_parse_text[yyl] == '\n' )\
203                         --surf_parse_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up surf_parse_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via surf_parse_restart()), so that the user can continue scanning by
285          * just pointing surf_parse_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int surf_parse_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
323  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void surf_parse_restart (FILE *input_file  );
328 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
330 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
331 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
332 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void surf_parse_pop_buffer_state (void );
334
335 static void surf_parse_ensure_buffer_stack (void );
336 static void surf_parse__load_buffer_state (void );
337 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
344
345 void *surf_parse_alloc (yy_size_t  );
346 void *surf_parse_realloc (void *,yy_size_t  );
347 void surf_parse_free (void *  );
348
349 #define yy_new_buffer surf_parse__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         surf_parse_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         surf_parse_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define surf_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int surf_parse_lineno;
385
386 int surf_parse_lineno = 1;
387
388 extern char *surf_parse_text;
389 #define yytext_ptr surf_parse_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up surf_parse_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 570
407 #define YY_END_OF_BUFFER 571
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[3344] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
428         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
438
439         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
440         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
442         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
443         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
444         0,    0,    0,    0,    0,    0,    0,    0,  571,  569,
445        15,   10,   10,   15,   15,  549,   10,  549,    5,    6,
446         5,    8,    9,    8,  565,  557,  558,  566,  563,  566,
447       564,  568,  557,  558,  568,  569,   22,   10,   22,   22,
448        22,   20,   22,   26,   10,   26,   26,  569,   26,  569,
449
450       569,   26,   33,   10,   33,   33,   33,   31,   33,   37,
451        10,   37,   37,   48,   10,   48,   48,   48,   46,   48,
452        48,   48,  566,  565,   78,   10,   78,   78,   78,   76,
453        78,   78,   78,   78,   78,   82,   10,   82,  101,   10,
454       101,  101,  101,   99,  101,  101,  101,  105,   10,  105,
455       126,   10,  126,  126,  126,  124,  126,  126,  130,   10,
456       130,  130,  569,  130,  569,  130,  130,  569,  569,  130,
457       569,  130,  569,  130,  145,   10,  145,  145,  145,  143,
458       145,  145,  145,  145,  149,   10,  149,  149,  162,   10,
459       162,  162,  162,  160,  162,  162,  162,  166,   10,  166,
460
461       166,  175,   10,  175,  175,  175,  173,  175,  175,  179,
462        10,  179,  188,   10,  188,  188,  188,  186,  188,  188,
463       192,   10,  192,  217,   10,  217,  217,  217,  215,  217,
464       217,  217,  217,  217,  221,   10,  221,  569,  221,  228,
465        10,  228,  228,  228,  226,  228,  232,   10,  232,  243,
466        10,  243,  243,  243,  241,  243,  243,  243,  247,   10,
467       247,  296,   10,  296,  296,  296,  294,  296,  296,  296,
468       296,  296,  296,  296,  296,  296,  300,   10,  300,  300,
469       319,   10,  319,  319,  319,  317,  319,  319,  319,  319,
470       319,  319,  323,   10,  323,  344,   10,  344,  344,  344,
471
472       342,  344,  344,  344,  344,  344,  344,  344,  348,   10,
473       348,  357,   10,  357,  357,  357,  355,  357,  357,  361,
474        10,  361,  372,   10,  372,  372,  372,  370,  372,  372,
475       372,  376,   10,  376,  403,   10,  403,  403,  403,  401,
476       403,  403,  403,  403,  407,   10,  407,  407,  420,   10,
477       420,  420,  420,  418,  420,  420,  424,   10,  424,  569,
478       424,  441,   10,  441,  441,  441,  439,  441,  441,  441,
479       445,   10,  445,  445,  458,   10,  458,  458,  458,  456,
480       458,  458,  462,   10,  462,  471,   10,  471,  471,  471,
481       469,  471,  471,  475,   10,  475,  475,  488,   10,  488,
482
483       488,  488,  486,  488,  488,  488,  492,   10,  492,  492,
484       509,   10,  509,  509,  509,  507,  509,  509,  509,  509,
485       509,  513,   10,  513,  569,  513,  520,   10,  520,  520,
486       520,  518,  520,  524,   10,  524,  531,   10,  531,  531,
487       531,  529,  531,  535,   10,  535,  535,  544,   10,  544,
488       544,  544,  542,  544,  544,  548,   10,  548,   10,    0,
489         2,    2,    0,    4,    7,  560,  559,    0,    0,    0,
490         0,    0,    0,    0,   21,   23,   23,    0,    0,    0,
491         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
493
494         0,   32,   34,   34,    0,   47,   49,   49,   49,   49,
495         0,    0,    0,   77,   79,   79,   79,   79,   79,   79,
496        79,   79,   79,    0,  100,  102,  102,  102,  102,    0,
497       125,  127,  127,  127,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499         0,    0,    0,  144,  146,  146,  146,  146,  146,    0,
500       161,  163,  163,  163,  163,    0,  174,  176,  176,  176,
501         0,  187,  189,  189,  189,    0,  216,  218,  218,  218,
502       218,  218,  218,  218,    0,    0,  227,  229,  229,    0,
503       242,  244,  244,  244,  244,    0,  295,  297,  297,  297,
504
505       297,  297,  297,  297,  297,  297,  297,  297,  297,  297,
506       297,  297,  297,  297,    0,  318,  320,  320,  320,  320,
507       320,  320,  320,  320,    0,  343,  345,  345,  345,  345,
508       345,  345,  345,  345,    0,  356,  358,  358,  358,    0,
509       371,  373,  373,  373,  373,    0,  402,  404,  404,  404,
510       404,  404,  404,    0,  419,  421,  421,  421,  421,    0,
511         0,  440,  442,  442,  442,  442,  442,    0,  457,  459,
512       459,  459,    0,  470,  472,  472,  472,    0,  487,  489,
513       489,  489,  489,    0,  508,  510,  510,  510,  510,  510,
514       510,    0,    0,  519,  521,  521,    0,  530,  532,  532,
515
516         0,  543,  545,  545,  545,    0,    0,    0,    0,    0,
517         3,    0,    0,    0,    0,    0,    0,    0,  567,    0,
518        23,    0,    0,  107,    0,    0,    0,    0,    0,    0,
519         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
520         0,    0,    0,    0,    0,  106,    0,    0,    0,    0,
521         0,    0,   34,    0,    0,   49,    0,    0,   49,    0,
522         0,    0,  562,   79,    0,    0,   79,   79,   79,   79,
523        79,   79,    0,    0,  102,  102,  102,    0,    0,    0,
524         0,  127,    0,    0,  107,    0,    0,    0,    0,    0,
525         0,    0,    0,  106,    0,    0,    0,    0,  146,    0,
526
527         0,  146,  146,    0,    0,  163,    0,    0,  163,    0,
528         0,  176,  176,    0,    0,  189,  189,    0,    0,  218,
529       218,  218,    0,    0,  218,  218,  218,    0,    0,    0,
530         0,  229,    0,    0,  244,    0,    0,    0,    0,    0,
531         0,  297,  297,    0,    0,  297,    0,    0,  297,  297,
532       297,  297,  297,  297,  297,  297,  297,  297,  297,    0,
533         0,    0,    0,    0,    0,  320,  320,  320,  320,  320,
534         0,    0,  345,  345,  345,    0,    0,  345,  345,  345,
535         0,    0,  358,    0,    0,    0,    0,  373,    0,    0,
536       373,    0,    0,  404,    0,    0,  404,  404,  404,    0,
537
538         0,  421,  421,  421,    0,    0,    0,  442,  442,  442,
539       442,    0,    0,  459,    0,    0,    0,    0,  472,  472,
540         0,    0,  489,  489,  489,    0,    0,  510,  510,  510,
541       510,  510,    0,    0,    0,  521,    0,    0,    0,    0,
542         0,    0,    0,    0,  545,    0,    0,    0,   14,    1,
543         0,    0,  555,    0,    0,    0,  552,  551,    0,    0,
544        23,    0,    0,   25,    0,  107,    0,    0,    0,    0,
545         0,    0,    0,  222,    0,    0,    0,    0,    0,    0,
546         0,    0,    0,    0,    0,    0,    0,    0,  106,    0,
547         0,    0,    0,    0,    0,   34,    0,    0,   36,    0,
548
549        49,    0,   41,   40,   49,    0,    0,    0,   51,    0,
550        79,    0,   55,   54,    0,    0,   79,    0,    0,   79,
551        79,   79,    0,    0,   81,    0,  102,  102,  102,    0,
552         0,  104,    0,    0,  109,  108,  127,    0,    0,  129,
553         0,    0,    0,    0,  223,    0,    0,    0,    0,    0,
554         0,    0,    0,    0,  146,    0,  134,  133,  146,  146,
555         0,    0,  148,    0,  163,    0,  153,  152,  163,    0,
556         0,  165,    0,  176,  176,    0,    0,  178,    0,  189,
557       189,    0,    0,  191,    0,  218,  218,  218,    0,  196,
558       195,  218,  218,  218,    0,    0,  220,    0,    0,    0,
559
560       229,    0,    0,  231,    0,  244,    0,  236,  235,    0,
561       238,  237,    0,    0,  246,    0,  297,  297,  297,  297,
562         0,  263,  262,  297,    0,  251,  250,    0,    0,  297,
563       297,  297,  297,  297,  297,  297,  297,  297,  297,    0,
564         0,  299,    0,    0,  314,  313,    0,  304,  303,    0,
565         0,  320,  320,  320,  320,    0,    0,  322,    0,  345,
566       345,  345,  345,    0,  327,  326,    0,    0,  345,  345,
567         0,    0,  347,    0,  358,    0,  352,  351,    0,    0,
568       360,    0,  373,    0,  365,  364,  373,    0,    0,  375,
569         0,  404,    0,  380,  379,  404,  404,  404,    0,    0,
570
571       406,    0,    0,    0,    0,    0,  421,    0,    0,  423,
572         0,    0,    0,    0,  442,  442,    0,    0,  442,    0,
573         0,  444,    0,  459,    0,  449,  448,    0,    0,  461,
574         0,    0,    0,    0,    0,    0,    0,  474,    0,    0,
575         0,  489,  489,    0,    0,    0,    0,  491,    0,  510,
576       510,  510,  510,  510,    0,    0,  512,    0,    0,  521,
577         0,    0,  523,    0,    0,  528,  527,    0,    0,  534,
578         0,    0,  539,  538,  545,    0,    0,  547,    0,    0,
579         0,  556,  550,    0,    0,    0,   23,    0,    0,    0,
580         0,    0,    0,    0,    0,  222,  193,    0,  377,    0,
581
582         0,  325,    0,    0,  536,    0,    0,    0,    0,    0,
583         0,    0,    0,    0,  324,    0,    0,    0,    0,    0,
584         0,    0,   49,    0,    0,   79,    0,   59,   58,    0,
585         0,    0,   57,   56,   79,    0,    0,   79,    0,  102,
586         0,    0,  102,    0,  127,    0,  128,    0,    0,    0,
587       223,  194,  378,  537,    0,    0,    0,    0,    0,    0,
588       146,  146,    0,    0,    0,  163,  163,    0,    0,    0,
589       176,    0,    0,    0,  189,    0,  218,  218,    0,    0,
590       218,  218,  218,    0,    0,    0,    0,    0,    0,    0,
591         0,    0,  297,  297,  297,  297,    0,    0,    0,  265,
592
593       264,  297,  297,  297,  297,  297,  297,  297,  297,  297,
594       297,    0,    0,  316,  315,  320,  320,  320,  320,    0,
595       345,  345,  345,  345,    0,  335,  334,  345,  345,    0,
596       358,    0,  373,  373,    0,  404,  404,  404,  404,    0,
597         0,  413,  412,    0,  411,  410,  421,    0,  377,    0,
598       430,  429,  442,  442,    0,  428,  427,  442,    0,  459,
599         0,    0,  468,  467,    0,  466,  465,    0,    0,  481,
600       480,  489,  489,    0,  479,  478,    0,  510,    0,    0,
601       510,  510,  510,    0,    0,  521,    0,    0,  545,    0,
602         0,    0,    0,   12,    0,  553,  554,    0,   23,    0,
603
604         0,    0,    0,    0,    0,    0,    0,  193,    0,    0,
605       377,    0,  167,    0,  325,    0,    0,  536,    0,  408,
606         0,   39,    0,    0,    0,    0,    0,  324,    0,   38,
607         0,   30,   29,    0,    0,   43,   42,   49,    0,    0,
608        79,    0,   61,   60,   79,    0,   65,   64,   79,    0,
609       102,    0,    0,    0,    0,    0,    0,  127,    0,    0,
610         0,  194,    0,  378,  537,  409,    0,    0,    0,  409,
611       408,  146,    0,    0,    0,  138,  137,    0,  163,  163,
612         0,    0,  172,  171,  176,    0,    0,  185,  184,  189,
613         0,  218,  218,    0,  200,  199,    0,    0,  218,    0,
614
615         0,  218,    0,  168,    0,    0,  225,  224,    0,  230,
616         0,  240,  239,    0,  297,    0,    0,  297,  297,    0,
617       261,  260,  297,  297,    0,    0,  297,  297,  297,  297,
618       297,  297,  297,    0,    0,    0,  320,  320,  320,    0,
619       345,    0,    0,  345,  345,    0,    0,  345,    0,  358,
620         0,  373,  373,    0,  404,  404,  404,    0,    0,  404,
621         0,  421,    0,    0,  442,  442,  442,    0,  459,    0,
622         0,  489,  489,    0,  510,    0,  496,  495,  510,  510,
623       510,    0,    0,    0,    0,    0,    0,    0,    0,    0,
624         0,    0,    0,   11,    0,   23,    0,    0,    0,    0,
625
626         0,    0,    0,  526,    0,    0,    0,  167,    0,    0,
627         0,   53,  408,  349,    0,   39,    0,  525,   52,    0,
628         0,    0,    0,   38,    0,    0,   49,    0,    0,   79,
629        79,   79,    0,  102,    0,    0,    0,    0,    0,    0,
630         0,    0,    0,   96,   95,    0,  127,    0,    0,    0,
631         0,  409,  350,    0,    0,    0,  146,    0,  136,  135,
632         0,  163,    0,    0,    0,  176,    0,    0,    0,    0,
633       218,  218,    0,  198,  197,    0,    0,    0,    0,    0,
634       218,    0,  219,  168,    0,    0,  297,    0,  275,  274,
635         0,    0,  297,  297,  297,    0,  259,  258,    0,    0,
636
637       297,  297,  297,  297,    0,    0,  297,    0,    0,  312,
638       311,    0,    0,  320,    0,    0,    0,  345,    0,  331,
639       330,    0,    0,  345,    0,  329,  328,  345,    0,  346,
640       358,    0,  373,  373,    0,  404,  404,  404,    0,    0,
641         0,  404,    0,  405,  421,    0,    0,    0,    0,    0,
642         0,  442,    0,  459,    0,    0,    0,    0,    0,    0,
643         0,  510,  510,  510,  510,    0,    0,    0,  517,  516,
644         0,    0,    0,  541,  540,    0,  546,    0,    0,    0,
645         0,    0,    0,    0,  425,    0,    0,    0,    0,  302,
646       249,  526,    0,   28,    0,    0,    0,  494,   53,  349,
647
648       150,    0,  525,   52,  301,  248,   27,  493,    0,    0,
649        49,    0,    0,   50,   79,    0,    0,   79,    0,    0,
650         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
651         0,    0,    0,    0,  426,    0,    0,    0,    0,  350,
652       151,    0,    0,  146,    0,    0,    0,  163,    0,  155,
653       154,    0,  176,    0,  177,    0,  183,  182,    0,  218,
654       218,    0,  214,  213,    0,    0,  218,    0,    0,  297,
655         0,  277,  276,  297,  297,  297,    0,  253,  252,    0,
656         0,  297,  297,  297,    0,  255,  254,  297,    0,    0,
657       306,  305,    0,    0,    0,  308,  307,    0,  345,    0,
658
659       333,  332,  345,  345,  358,    0,  373,    0,    0,    0,
660       404,    0,    0,  404,  404,    0,    0,  404,  421,    0,
661       422,    0,    0,  434,  433,    0,  432,  431,  442,    0,
662       459,    0,    0,    0,  485,  484,    0,  483,  482,    0,
663       510,  510,  510,  510,    0,    0,    0,    0,    0,    0,
664         0,   17,    0,   19,   18,    0,  425,  514,  362,    0,
665         0,  302,  249,    0,   28,  446,  180,   16,  494,  150,
666         0,    0,  301,  248,   27,  493,    0,    0,   49,  561,
667        79,    0,   67,   66,   79,    0,   80,    0,   98,   97,
668         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
669
670         0,    0,    0,    0,  426,  363,    0,    0,    0,  151,
671         0,    0,  140,  139,  146,    0,    0,  157,  156,  163,
672         0,  176,    0,  218,  218,    0,    0,    0,    0,  218,
673       181,    0,  297,  297,  297,  297,    0,  257,  256,  297,
674       297,  297,  297,    0,    0,  310,  309,    0,  345,  345,
675       345,  358,    0,  359,  373,    0,  369,  368,    0,  404,
676         0,  386,  385,  404,  404,    0,    0,    0,    0,  404,
677       421,  447,  442,    0,  459,    0,    0,    0,    0,    0,
678       510,  510,  510,    0,  515,    0,    0,  533,    0,    0,
679         0,   17,    0,  514,  362,    0,    0,  233,  446,  180,
680
681        16,    0,    0,    0,    0,   35,   49,    0,    0,   79,
682         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
683         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
684         0,  363,    0,    0,  234,    0,  146,    0,  163,    0,
685       164,    0,    0,    0,  218,  218,    0,  206,    0,  205,
686       218,  181,    0,  297,  297,  297,  297,  297,    0,    0,
687       297,  297,  297,    0,  298,    0,  321,  345,  345,  345,
688       358,    0,    0,    0,    0,    0,  404,  404,  404,    0,
689       390,    0,  389,  404,  421,  447,  442,    0,  443,    0,
690         0,    0,    0,    0,    0,  498,  497,    0,    0,  510,
691
692       510,    0,  511,  515,    0,    0,    0,    0,    0,   24,
693         0,    0,  233,    0,    0,    0,   49,    0,    0,    0,
694        79,    0,    0,    0,    0,    0,    0,    0,    0,    0,
695         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
696         0,    0,    0,    0,    0,    0,  234,    0,  146,    0,
697       163,    0,  170,  169,    0,  190,  218,  218,  208,  207,
698         0,    0,    0,  297,  297,  297,  297,  297,    0,  287,
699       286,  297,    0,    0,  297,  345,  345,    0,    0,  358,
700         0,  367,  366,    0,  374,    0,  382,  381,  404,  404,
701       404,  392,  391,    0,    0,  421,  442,    0,    0,    0,
702
703         0,  460,    0,    0,    0,  502,  501,    0,    0,    0,
704         0,    0,  522,    0,    0,    0,    0,  463,    0,    0,
705         0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
706         0,    0,    0,    0,   88,    0,    0,    0,    0,   87,
707         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
708         0,    0,    0,    0,  464,    0,  146,    0,  163,  218,
709         0,    0,    0,  210,  209,    0,  245,  297,  297,  297,
710         0,    0,  297,  297,    0,  285,  284,  297,  345,    0,
711         0,    0,  341,  340,    0,    0,  404,  404,  404,    0,
712       394,  393,    0,    0,    0,    0,    0,    0,    0,    0,
713
714         0,    0,    0,    0,    0,    0,    0,    0,  500,  499,
715         0,    0,    0,    0,  463,  131,    0,    0,    0,   45,
716        44,    0,    0,    0,    0,    0,    0,    0,    0,   79,
717         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
718         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
719         0,    0,  464,  132,    0,    0,    0,    0,    0,    0,
720         0,  218,    0,  212,  211,  297,  297,    0,    0,    0,
721       291,  290,    0,    0,  297,  297,  345,    0,  337,  336,
722         0,  354,  353,  404,    0,    0,  404,    0,    0,    0,
723         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
724
725         0,    0,    0,    0,    0,    0,    0,    0,    0,  476,
726       131,   84,   83,    0,    0,    0,    0,    0,    0,    0,
727         0,    0,    0,    0,    0,   94,    0,    0,    0,   93,
728         0,    0,    0,    0,    0,  111,  119,    0,    0,    0,
729         0,  110,  118,    0,  477,  132,    0,  142,  141,    0,
730         0,  159,  158,    0,  202,  201,  218,  297,  297,    0,
731       289,  288,    0,  293,  292,  297,  297,  345,  404,    0,
732       388,  387,  404,    0,    0,    0,    0,    0,    0,    0,
733         0,    0,    0,  451,    0,    0,  450,    0,  473,    0,
734         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
735
736       476,   84,   83,    0,    0,    0,    0,    0,    0,    0,
737         0,    0,   63,   62,    0,    0,    0,    0,    0,    0,
738         0,    0,    0,  113,    0,    0,    0,  112,    0,  477,
739         0,  147,  218,  297,  297,    0,    0,  297,  345,    0,
740         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
741         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
742         0,    0,    0,    0,    0,    0,    0,   75,   71,    0,
743         0,   74,   70,    0,   92,    0,    0,   91,    0,    0,
744         0,  103,    0,    0,    0,    0,    0,    0,  218,  297,
745       297,    0,    0,    0,  297,  345,    0,  384,  383,    0,
746
747         0,    0,  417,    0,  416,    0,  438,    0,  437,    0,
748       453,  455,  452,  454,    0,  490,  504,    0,  503,    0,
749         0,    0,    0,   12,    0,   12,    0,    0,    0,    0,
750         0,   86,   90,   85,   89,  123,    0,  121,  122,    0,
751       120,  218,  297,  297,    0,    0,    0,    0,    0,    0,
752       345,    0,    0,    0,    0,  415,  414,  436,  435,    0,
753         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754       115,    0,  114,    0,    0,    0,    0,    0,    0,    0,
755         0,    0,    0,    0,    0,    0,    0,  273,  272,    0,
756         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
757
758         0,   69,    0,   68,    0,    0,    0,    0,  204,  203,
759         0,  283,  282,    0,    0,    0,    0,    0,    0,    0,
760         0,    0,    0,  339,  338,    0,    0,    0,    0,    0,
761         0,    0,    0,    0,   11,    0,    0,    0,    0,    0,
762         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763         0,    0,    0,    0,    0,  506,  505,    0,   73,   72,
764         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
765         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
766         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
767         0,    0,    0,    0,    0,    0,    0,    0,  117,  116,
768
769         0,    0,    0,    0,    0,    0,  267,    0,    0,  266,
770         0,    0,  396,    0,    0,  395,    0,    0,    0,    0,
771         0,  271,    0,  270,    0,  398,    0,  397,    0,    0,
772         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
773       279,    0,  278,    0,    0,    0,    0,    0,    0,  281,
774       280,  269,  268,  400,  399,    0,    0,    0,    0,    0,
775         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
776         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
777         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
778         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
779
780         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
781         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
782         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
783         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
784         0,   13,    0
785     } ;
786
787 static yyconst flex_int32_t yy_ec[256] =
788     {   0,
789         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
790         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
791         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
792         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
793         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
794        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
795        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
796        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
797        31,   38,   39,   40,   41,   42,   43,   44,   45,   31,
798        46,    1,   47,    1,   48,    1,   49,   50,   51,   52,
799
800        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
801        63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
802        73,   74,    1,    1,    1,    1,    1,    1,    1,    1,
803         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
804         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
805         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
806         1,    1,    1,    1,    1,    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
811         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
812         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
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
817     } ;
818
819 static yyconst flex_int32_t yy_meta[75] =
820     {   0,
821         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
822         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
823         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
824         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
825         5,    5,    5,    5,    5,    1,    1,    5,    9,    9,
826         9,    9,    9,    9,    5,    5,    5,    5,    5,    5,
827         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
828         5,    5,    5,    5
829     } ;
830
831 static yyconst flex_int16_t yy_base[3837] =
832     {   0,
833         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
834        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
835       108,  178,   75,   78,   83,  128,  131,  134,  138,  141,
836       158,  198,  201,  204,  208,  211,  228,  231,  234,  237,
837       240,  257,  275,  329,  295,  298,  301,  305,  308,  349,
838       352,  355,  383,  447,  360,  416,  511,  578,  407,  410,
839       645,  713,  413,  467,  781,  847,  470,  473,  477,  480,
840       531,  534,  537,  541,  544,  598,  601,  604,  608,  611,
841       665,  668,  671,  675,  678,  733,  736,  739,  743,  746,
842       801,  804,  807,  811,  814,  867,  870,  873,  877,  880,
843
844       897,  903,  921,  988,  941,  944,  947,  951, 1008, 1011,
845      1014, 1018, 1055, 1123, 1075, 1078, 1081, 1085, 1143, 1146,
846      1149, 1153, 1191, 1258, 1211, 1214, 1325, 1393, 1217, 1221,
847      1461, 1528, 1224, 1278, 1281, 1284, 1288, 1291, 1345, 1348,
848      1595, 1657, 1351, 1355, 1719, 1788, 1358, 1413, 1857,    0,
849      1416, 1419, 1423, 1426, 1481, 1484, 1487, 1491, 1931, 1998,
850      1548, 1551, 2065, 2132, 1554, 1558, 2199, 2256, 1615, 1618,
851      2313, 2373, 1621, 1625, 2433, 2500, 1628, 1677, 1680, 1683,
852      1687, 1690, 1739, 1742, 2567, 2634, 1745, 1749, 1752, 1808,
853      1811, 1814, 1818, 1821, 2701, 2768, 1951, 1954, 1957, 1961,
854
855      1964, 2018, 2021, 2024, 2835, 2892, 2028, 2031, 2949, 3016,
856      2085, 2088, 2091, 2095, 2152, 2155, 2158, 2162, 3083, 3150,
857      2219, 2222, 2225, 2229, 2276, 2279, 2282, 2286, 3217, 3284,
858      2333, 2336, 2339, 2343, 2346, 2393, 2396, 2399, 3351, 3421,
859      2403, 2406, 3491, 3548, 2453, 2456, 2459, 2463, 2466, 2520,
860      2523, 2526, 3605, 3675, 2530, 2533,    0,    0, 8502,12315,
861     12315,   95,  100,   29,   41,12315,  103,   51,12315,12315,
862      8490,12315,12315, 8476,12315, 8490, 8490,  202,12315,12315,
863     12315,12315, 8479, 8479, 8433,  153,12315,  161, 8450,    0,
864       145,12315, 8415,12315,  165, 3741,   73, 2540,  315,  357,
865
866      8451, 8398,12315,  168, 8432,    0,  152,12315, 8394,12315,
867       261, 8437,   31,12315,  266, 8421,    0,  245,12315, 8382,
868      8386, 8383,  421, 8387,12315,  269, 8411,    0,  340,12315,
869      8361, 8361,  271, 8362,  238,12315,  441,  484,12315,  504,
870      8386,    0,  401,12315, 8345, 8346, 8333,12315,  561,  548,
871     12315,  571, 8378,    0,  481,12315, 8342, 8330,12315,  628,
872      3805, 8307,  163, 2542,  567,  206,   38, 8354,  954, 2533,
873       639,  907,  437,   79,12315,  634, 8345,    0,  546,12315,
874      8289, 8299, 8286, 8287,12315,  638,  313,  368,12315,  697,
875      8323,    0,  549,12315, 8278, 8284, 8262,12315,  704,  426,
876
877       497,12315,  707, 8313,    0,  747,12315, 8275, 8255,12315,
878       767,  753,12315,  773, 8302,    0,  757,12315, 8270, 8245,
879     12315,  831,  818,12315,  838, 8287,    0,  758,12315, 8233,
880      8238, 8248,  251, 8230,12315,  841,  559,  825,  530,12315,
881       906, 8276,    0,  815,12315, 8246,12315,  914,  891,12315,
882       977, 8273,    0,  953,12315, 8224, 8227, 8214,12315,  981,
883       965,12315, 1021, 8256,    0,  966,12315, 8200,  203, 8206,
884      8215,  378,   85,  311,  972, 8195,12315, 1040,  564,  814,
885     12315, 1044, 8233,    0, 1032,12315, 8168, 8181, 8183,  157,
886      8181, 8142,12315, 1048, 1086,12315, 1106, 8186,    0, 1033,
887
888     12315, 8135, 8123, 8130, 8139, 8141, 8125, 8115,12315, 1111,
889      1099,12315, 1114, 8152,    0, 1100,12315, 8106, 8111,12315,
890      1156, 1160,12315, 1173, 8141,    0, 1157,12315, 8109, 8104,
891      8103,12315, 1180, 1228,12315, 1183, 8130,    0, 1158,12315,
892      8090, 8086, 8083,   15,12315, 1186,  899,  963,12315, 1241,
893      8111,    0, 1225,12315, 8051,  181,12315, 1248, 1243,  432,
894       303,12315, 1308, 8097,    0, 1226,12315, 8048, 8039,  299,
895     12315, 1311, 1229,  350,12315, 1314, 8089,    0, 1303,12315,
896      8050, 8049,12315, 1319, 1362,12315, 1375, 8079,    0, 1359,
897     12315, 8028, 8027,12315, 1382, 1378,  676,12315, 1445, 8072,
898
899         0, 1360,12315, 8023, 8011, 8013,12315, 1448, 1446,  685,
900     12315, 1494, 8054,    0, 1370,12315, 8004, 7998, 8003, 7996,
901      7982,12315, 1513, 1514,  560, 1007,12315, 1517, 8029,    0,
902      1438,12315, 7989,12315, 1520, 1559,12315, 1579, 8017,    0,
903      1506,12315, 7982,12315, 1584, 1210, 1236,12315, 1587, 8006,
904         0, 1563,12315, 7964, 7966,12315, 1645, 1632, 1648,  677,
905      7932,12315, 7993, 7981,12315,12315,12315, 1641,  375, 7928,
906      7927, 7924, 7972, 7930,12315,    0, 7919, 7920, 7939, 7911,
907       104, 1037, 7911, 7901, 7901, 7904,  889, 1646, 1105, 7887,
908      7887, 1393, 1307, 7909, 1510, 7885, 1649, 7879, 1647, 1708,
909
910      1709,12315,    0, 7877, 7877,12315,    0, 7868, 2098, 7861,
911       666, 7857, 7897,12315,    0, 7854, 2165, 7842, 7860, 7845,
912      7854, 7851, 7846, 7830,12315,    0, 7838, 7828, 7839, 7808,
913     12315,    0, 2232, 7805, 7848, 7829,  172, 7802, 7801, 7806,
914      1719, 1319, 7778, 1720, 7803,  707,  724,  814,  841, 1577,
915      1651, 1701,  888,12315,    0, 7779, 2289, 7787, 7751, 7757,
916     12315,    0, 7760, 2592, 7753, 7749,12315,    0, 7752, 7748,
917      7745,12315,    0, 7743, 7739, 7733,12315,    0, 7744,  758,
918      2598, 7720, 7718, 7736, 7724,  897,12315,    0, 7718, 7722,
919     12315,    0, 7697, 2654, 2657, 7709,12315,    0, 7714, 7711,
920
921      2660, 7681, 2663, 7678, 7683, 7672, 7662, 7675, 7675, 7648,
922      7667, 7665, 7652, 7639, 7652,12315,    0, 2666, 2721, 7634,
923      7629, 7643, 7642, 7636, 7628,12315,    0, 7629, 7628, 7607,
924      2724, 7601, 7595, 7609, 7590,12315,    0, 7574, 2727, 7570,
925     12315,    0, 7571, 2730, 7563, 7574,12315,    0, 7561, 2733,
926      7544, 7562, 7558, 7545,12315,    0, 7536, 7543, 7532, 7525,
927      7526,12315,    0, 7514, 7532, 7528, 7512, 7549,12315,    0,
928      7503, 2788, 7503,12315,    0, 7494, 7506, 7506,12315,    0,
929      7482, 7501, 7496, 7486,12315,    0, 7473, 7466, 7472, 7481,
930      7474, 7444, 7441,12315,    0, 7445, 7447,12315,    0, 2791,
931
932      7444,12315,    0, 2794, 7433, 7424, 7467, 7471, 1807, 7419,
933     12315, 1833,    0, 7414, 7407, 7452, 7447, 7400,12315, 7412,
934      7393, 2797, 2801, 1981, 7403, 7401, 7382, 7395, 7374, 7369,
935      7359, 7360, 7374, 7347, 7339, 7338, 7338, 7341, 7325, 7321,
936      7313, 7312, 7325, 7307, 7302, 1990, 7313, 7292, 7292, 7289,
937      7277, 7282, 7276, 2855, 2860, 7274, 2864, 2048, 7267, 7298,
938      2868, 2912,12315, 7265, 2915, 2117, 2921, 7243, 2924, 7245,
939      7242, 7245, 2927, 2983, 7230, 7238, 7230, 2969, 2972, 2978,
940      2184, 7202, 3037, 3040, 2363, 7217, 7199, 7193, 7193, 7185,
941      7183, 7175, 7176, 2423, 7173, 7172, 7161, 7160, 7159, 2996,
942
943      2618, 7173, 7159, 3044, 3047, 7142, 3050, 2685, 7156, 3103,
944      3106, 7153, 7134, 3114, 3117, 7132, 7125, 3129, 3173, 7120,
945      7109, 7101, 3109, 2755, 7097, 7096, 7076, 3179, 3183, 7073,
946      7048, 7061, 3186, 3245, 7051, 3239, 2822, 3248, 3002, 3252,
947      3257, 7049, 1920, 3304, 3068, 7052, 3308, 3137, 3313, 7046,
948      7038, 7031, 7028, 7023, 7011, 7011, 7004, 7016, 6990, 3322,
949      3383, 3331, 3205, 3371, 3374, 3389, 3392, 3397, 3450, 3459,
950      3444, 3468, 6997,   37, 6985, 3454, 3403, 3512, 6993, 6974,
951      3516, 3519, 6964, 3522, 3411, 3525, 3571, 6976, 3574, 3473,
952      6973, 3577, 3580, 6966, 3583, 3481, 6962, 6948, 6941, 3628,
953
954      3634, 3637, 3640, 3695, 3643, 3698, 6946, 3701, 3705, 3708,
955      3732, 3713, 3727, 6944, 3735, 3662, 3738, 3765, 3746, 3775,
956      3779, 3784, 3809, 3812, 3816, 3821, 3830, 6945, 6923, 6930,
957      6934, 6911, 3843, 3872, 6921, 6900, 3878, 3881, 3834, 3884,
958      3892, 3902, 3840, 3905, 6893, 3913, 3916, 6940,12315,12315,
959      1070, 6890,12315, 6932, 6930, 6869,12315,12315, 6867, 6865,
960      6874, 3921, 3924,12315, 3928, 1714, 6867, 6854, 6863, 6867,
961      6848, 6836, 6848, 1779, 6829, 6836, 6835, 6824, 6822, 6788,
962      6784,  446, 6796, 6775, 6775, 6785, 6781, 6781, 1849, 6759,
963      6748, 6734, 6717, 1381, 6731, 3947, 3950, 3953,12315, 3956,
964
965      3959, 3965,12315,12315, 3977, 6755, 3981, 3984,12315, 3988,
966      6709, 3991,12315,12315, 4007, 4010, 4019, 4025, 4030, 6723,
967      4039, 6711, 4043, 4046,12315, 4049, 6709, 4052, 6702, 4057,
968      4070,12315, 4076, 4079,12315,12315, 6672, 4089, 4095,12315,
969      4098, 6665, 6663, 6671, 1852, 6643, 6651, 1449, 6638, 6635,
970      6651, 6645, 6623, 6621, 6635, 4101,12315,12315, 6626, 4110,
971      4117, 4120,12315, 4124, 6625, 4129,12315,12315, 6644, 4139,
972      4143,12315, 4146, 4149, 4152, 4158, 4170,12315, 4173, 4177,
973      4180, 4200, 4203,12315, 4209, 6612, 6619, 4212, 4215,12315,
974     12315, 6603, 6591, 6605, 4223, 4230,12315, 4233, 6594, 6588,
975
976      4236, 4242, 4245,12315, 4254, 4257, 4264,12315,12315, 4276,
977     12315,12315, 4284, 4287,12315, 4290, 6586, 6573, 6594, 6585,
978      4293,12315,12315, 4309, 4312,12315,12315, 4322, 4327, 6562,
979      6578, 6560, 6568, 6572, 6569, 6563, 6562, 6550, 6539, 4335,
980      4340,12315, 4343, 4347,12315,12315, 4362,12315,12315, 4370,
981      4373, 6538, 6538, 6542, 6530, 4381, 4384,12315, 4388, 6516,
982      6512, 6501, 6513, 4391,12315,12315, 4403, 4407, 6498, 6505,
983      4415, 4421,12315, 4424, 6496, 4427,12315,12315, 4443, 4446,
984     12315, 4449, 6476, 4452,12315,12315, 6483, 4468, 4471,12315,
985      4476, 6468, 4480,12315,12315, 6472, 6462, 6451, 4490, 4495,
986
987     12315, 4499, 4502, 4505, 4520, 4526, 6450, 4534, 4538,12315,
988      4542, 6421, 4545, 4563, 6391, 6372, 4549, 4571, 6364, 4579,
989      4582,12315, 4585, 6365, 4588,12315,12315, 4604, 4610,12315,
990      4613, 4616, 4619, 4634, 4637, 4645, 4652,12315, 4656, 4659,
991      4664, 6347, 6334, 4677, 4680, 4688, 4691,12315, 4695, 6331,
992      4698, 6348, 6337, 6258, 4701, 4710,12315, 4720, 6256, 6260,
993      4723, 4729,12315, 4732, 4735,12315,12315, 4743, 4751,12315,
994      4754, 4758,12315,12315, 6257, 4766, 4773,12315, 4776, 1099,
995      4786,12315,12315, 6281, 6280, 6241, 6207, 4795, 6175, 6160,
996      6165, 6132, 6075, 6056, 6023, 2057, 2250, 5968, 2307, 5957,
997
998      5941, 2483, 5952, 5878, 2492, 5828, 5822, 5814, 5807, 5710,
999      5668,    4,   21,  125, 2495,  264,  329, 4798, 4816, 4801,
1000      4807, 4825,  347,  383, 4833,  397, 4838,12315,12315, 4846,
1001      4853, 4864,12315,12315,  429, 4872, 4876,  446, 4884,  465,
1002      4890, 4893, 4903, 4908,  488, 4810,12315,  487,  568,  576,
1003      2626, 2629, 2693, 2696,  631,  636,  662,  688,  714,  759,
1004       769, 4911, 4914, 4917, 4935,  784,  840, 4938, 4941, 4944,
1005       842, 4959, 4962, 4965,  850, 4973,  871,  973, 4980, 4983,
1006      4992,  978, 5003, 5006,  965, 1026, 5010, 5014, 5028, 5031,
1007      5035, 5043, 1046, 5050, 1054, 1117, 5053, 5056, 5064,12315,
1008
1009     12315, 1120, 1158, 5073, 1162, 1187, 1188, 1194, 1209, 1226,
1010      1253, 5076, 5079,12315,12315, 5087, 5091, 5095, 5098, 5101,
1011      1270, 5105, 1273, 1331, 5116,12315,12315, 5126, 1341, 5129,
1012      1335, 5132, 1352, 1373, 5135, 1376, 1384, 1374, 5138, 5144,
1013      5163,12315,12315, 5171,12315,12315, 1386, 5158, 2763, 5179,
1014     12315,12315, 1389, 1409, 5187,12315,12315, 1409, 5195, 1424,
1015      5202, 5205,12315,12315, 5214,12315,12315, 5225, 5228,12315,
1016     12315, 1433, 1452, 5237,12315,12315, 5245, 1447, 5248, 5251,
1017      1476, 1508, 1519, 5260, 1532, 5266, 5269, 5273, 5279, 5284,
1018      1739, 1574, 5288,12315, 1591,12315,12315, 1571, 1573, 5293,
1019
1020      1570, 1592, 1610, 1621, 1644, 1682, 1703, 2830, 1717, 1726,
1021      2874, 1736, 2882, 1755, 2887, 1756, 1761, 2933, 1769, 3010,
1022      1776, 3266, 1778, 1776, 1785, 1788, 1790, 3078, 1777, 3540,
1023      5297,12315,12315, 5312, 5315,12315,12315, 1792, 1907, 5326,
1024      1894, 5331,12315,12315, 1911, 5347,12315,12315, 1903, 5340,
1025      1906, 5359, 2516, 2779, 5367, 5371, 5380, 1921, 1918, 1926,
1026      1923, 3279, 1936, 3342, 3530, 5385, 1959, 1962, 1970, 5388,
1027      5391, 1970, 5394, 5402, 5412,12315,12315, 5420, 1972, 5423,
1028      5426, 5432,12315,12315, 1988, 5441, 5446,12315,12315, 5460,
1029      5456, 1993, 1991, 5464,12315,12315, 5478, 5481, 5489, 5492,
1030
1031      5496, 2009, 5510, 3670, 2032, 5514,12315,12315, 5522,12315,
1032      5525,12315,12315, 5533, 2046, 5536, 5541, 5554, 2038, 5557,
1033     12315,12315, 2039, 2056, 5565, 5568, 5576, 2048, 2062, 2063,
1034      2070, 5583, 2075, 5586, 5589, 5594, 5607, 5610, 5613, 5616,
1035      2078, 5619, 5631, 5639, 2068, 5642, 5646, 2077, 5660, 2086,
1036      5663, 2111, 2098, 5669, 2120, 2101, 2120, 5672, 5684, 2123,
1037      5692, 2119, 5695, 2140, 5698, 5701, 5704, 5707, 2137, 5726,
1038      5722, 5730, 5733, 5736, 2132, 5741,12315,12315, 2140, 2138,
1039      2147, 5751, 2177, 5756, 5759, 5775, 5778, 5781, 5784, 5803,
1040      2218, 2267, 2219,12315, 2175, 5806, 5809, 2189, 2182, 2186,
1041
1042      2274, 2181, 2229, 3771, 2242, 2248, 2237, 4553, 2251, 2278,
1043      2285, 5812, 5815, 5818, 2300, 5824, 2305, 5828, 5835, 2290,
1044      2296, 2315, 2302, 5838, 2320, 5841, 2321, 2367, 5844, 2341,
1045      5847, 2355, 5850, 5854, 2391, 2379, 2442, 2380, 2396, 2386,
1046      2536, 2392, 5865,12315,12315, 5874, 5877, 2378, 2370, 2453,
1047      2392, 5880, 5883, 2420, 2454, 2518, 5886, 5895,12315,12315,
1048      5904, 5910, 5913, 5917, 5933, 2448, 5936, 5941, 5945, 5959,
1049      2425, 2439, 5962,12315,12315, 5970, 5974, 5988, 2480, 2495,
1050      2485, 5982,12315, 5996, 2488, 6001, 2502, 6007,12315,12315,
1051      6015, 6020, 2504, 2515, 2506, 6029,12315,12315, 6037, 6040,
1052
1053      6048, 2532, 2542, 2536, 6051, 6056, 2541, 6069, 6072,12315,
1054     12315, 6080, 6084, 6092, 6098, 6101, 6110, 2546, 6117,12315,
1055     12315, 6125, 6129, 2556, 6137,12315,12315, 2550, 6145,12315,
1056      2560, 6148, 2544, 6151, 6154, 2547, 6157, 2568, 6169, 2582,
1057      2587, 2568, 6177,12315, 2569, 6180, 2582, 6183, 6186, 6204,
1058      6207, 2614, 6216, 2609, 6222, 6225, 6228, 6231, 6246, 6249,
1059      6257, 2612, 2614, 2609, 2626, 6260, 2622, 6265,12315,12315,
1060      6279, 6283, 6287,12315,12315, 6298,12315, 2718, 2809, 2673,
1061      2629, 6302, 6305, 6313, 6326, 2624, 2664, 2703, 2682, 6332,
1062      6337, 6340, 2688, 6343, 2689, 2701, 2694, 6346, 6349, 6352,
1063
1064      6355, 2697, 6358, 6361, 6364, 6367, 6370, 6373, 2699, 6378,
1065      2706, 2738, 6381,12315, 2740, 6385, 6388, 2760, 6403, 6406,
1066      6409, 2783, 2780, 2782, 2792, 2787, 2816, 2826, 2829, 2838,
1067      2831, 6417, 6424, 6430, 6438, 2826, 2869, 2857, 2859, 6442,
1068      6445, 6448, 6451, 2865, 6459, 6462, 6467, 2873, 6480,12315,
1069     12315, 6488, 2890, 6493,12315, 6496,12315,12315, 6507, 2885,
1070      2878, 6512,12315,12315, 2956, 2967, 2888, 2912, 6520, 2917,
1071      6526,12315,12315, 2917, 2924, 2940, 6540,12315,12315, 6534,
1072      6548, 2938, 2929, 2947, 6557,12315,12315, 2948, 6565, 6569,
1073     12315,12315, 6577, 6580, 6588,12315,12315, 6596, 2950, 6599,
1074
1075     12315,12315, 2977, 2995, 2988, 6607, 3002, 6610, 6615, 6630,
1076      3003, 6633, 6636, 3007, 3001, 3087, 3109, 3006, 3022, 6645,
1077     12315, 3013, 6651,12315,12315, 6664,12315,12315, 3027, 6659,
1078      3037, 6673, 6678, 6681,12315,12315, 6693,12315,12315, 6701,
1079      6705, 6711, 6715, 6723, 6729, 3056, 6733, 6736, 6741, 3128,
1080      3105, 6744, 6748,12315,12315, 6756, 6763, 6766, 6769, 3061,
1081      3073, 6775, 6783, 3086, 6786, 6789, 6795, 6798, 6801, 6804,
1082      3079, 3104, 6807, 6810, 6816, 6819, 3111, 6822, 3110,12315,
1083      6825, 6828,12315,12315, 6836, 6843,12315, 6847,12315,12315,
1084      3154, 3144, 3166, 3162, 3169, 3173, 3160, 3175, 3172, 3184,
1085
1086      6855, 6858, 3294, 6841, 6867, 6870, 3146, 3144, 3156, 6875,
1087      3148, 6878,12315,12315, 3160, 6886, 6889,12315,12315, 3166,
1088      6897, 6905, 6908, 3187, 3192, 3226, 3251, 3235, 3257, 3221,
1089      6911, 6917, 3218, 3223, 3222, 3289, 6923,12315,12315, 6936,
1090      3237, 3260, 3269, 6939, 6942,12315,12315, 6950, 3271, 3284,
1091      3288, 3295, 6954,12315, 6961, 6969,12315,12315, 6964, 6979,
1092      6983,12315,12315, 6991, 6997, 3340, 3373, 3354, 3373, 7000,
1093      3335, 7003, 3339, 7009, 7018, 7021, 7029, 7032, 7036, 7041,
1094      7054, 7059, 7062, 7065, 7072, 7084, 7087,12315, 7091, 3398,
1095      3417, 7094, 7097, 7106, 7116, 3326, 3334, 7119, 7122, 7125,
1096
1097      7128, 3331, 3348, 3357, 7131,12315, 3371, 7134, 7137, 3392,
1098      3412, 3411, 3425, 3417, 3428, 3437, 3433, 3451, 3441, 3492,
1099      7145, 3475, 3483, 3529, 3483, 3490, 3504, 3513, 3530, 3508,
1100      3535, 7154, 3533, 3533, 7157, 3530, 3540, 7160, 3557, 7164,
1101     12315, 7167, 7170, 7179, 3559, 3561, 3627,12315, 3626,12315,
1102      7185, 7188, 7191, 3581, 3602, 3591, 3584, 3608, 7194, 7199,
1103      3598, 7212, 3598, 7215,12315, 7218,12315, 3593, 3600, 7221,
1104      3602, 7230, 7239, 7249, 7252, 7255, 7263, 7270, 7273, 3664,
1105     12315, 3697,12315, 7276, 3653, 7281, 3659, 7284,12315, 7294,
1106      7297, 7305, 7308, 7312, 7317,12315,12315, 7332, 7335, 7343,
1107
1108      7346, 7350,12315, 7353, 7356, 3724, 3703, 3708, 7364,12315,
1109      3656, 3673, 7369, 3679, 3699, 3702, 7377, 7383, 3814, 3864,
1110      3696, 3734, 3748, 3752, 3758, 3783, 3765, 3778, 3779, 3784,
1111      3812, 7391, 3760, 3772, 3777, 3788, 3789, 3788, 3798, 3810,
1112      3807, 3817, 3816, 3821, 3828, 3847, 7395, 3846, 3860, 7398,
1113      3868, 7401,12315,12315, 7410,12315, 3856, 7413,12315,12315,
1114      7417, 7420, 7431, 3861, 3871, 3878, 7435, 3871, 7438,12315,
1115     12315, 3883, 7446, 7453, 3875, 3870, 7464, 7470, 7473, 7482,
1116      7488,12315,12315, 7496,12315, 7500,12315,12315, 7508, 7511,
1117      7515,12315,12315, 7518, 7522, 7536, 7539, 7542, 3964, 3990,
1118
1119      7550,12315, 7557, 7564, 7572,12315,12315, 7583, 7586, 7594,
1120      7597, 7606,12315, 3926, 3944, 4000, 3877, 7612, 3919, 3947,
1121      3951, 7615, 7626, 3965, 3981, 4035, 3980, 3988, 4054, 3968,
1122      4010, 4022, 4020, 4025,12315, 4043, 4033, 4039, 4044,12315,
1123      7618, 4020, 4035, 4022, 4046, 4055, 4067, 4050, 4071, 4061,
1124      4076, 4086, 4108, 4090, 7637, 4111, 7640, 7643, 7646, 7649,
1125      7653, 7658, 7671,12315,12315, 7679,12315, 4117, 4104, 7682,
1126      7685, 7689, 7706, 4118, 7709,12315,12315, 4113, 4137, 7717,
1127      7720, 7728,12315,12315, 7736, 7739, 7747, 7750, 7754, 7758,
1128     12315,12315, 7768, 7772, 7780, 7786, 4150, 4152, 4152, 4155,
1129
1130      4156, 4157, 7794, 7798, 7806, 4170, 4203, 7817,12315,12315,
1131      4249, 4243, 7825, 4144, 7828, 7831, 4130, 4132, 7834,12315,
1132     12315, 4200, 4195, 4216, 4224, 4232, 4229, 4236, 4244, 7846,
1133      4235, 4259, 4277, 4262, 4261, 4281, 4296, 4284, 7849, 4240,
1134      4242, 4267, 4314, 4316, 4267, 4264, 4267, 4283, 4331, 4339,
1135      4292, 4301, 7852, 7855, 7858, 7869, 7877, 7880, 7883, 7891,
1136      7899, 4304, 7909,12315,12315, 4305, 4301, 7917, 7920, 7929,
1137     12315,12315, 7937, 7940, 4289, 4304, 4315, 7948,12315,12315,
1138      7956,12315,12315, 7964, 7967, 7970, 7978, 7985, 4335, 4397,
1139      7996, 4422, 4450, 4335, 4346, 4390, 4355, 4364, 4393, 8004,
1140
1141      8007, 4373, 4388, 4385, 4394, 4414, 8010, 8016, 8019, 8029,
1142      8038, 8041, 8044, 4386, 4411, 4414, 4401, 4408, 4433, 4435,
1143      4423, 8050, 8053, 4435, 4435,12315, 4446, 4452, 4457,12315,
1144      4460, 8061, 4447, 4444, 4507,12315,12315, 4464, 4464, 4452,
1145      4516,12315,12315, 4474, 8064, 8068, 8074,12315,12315, 8082,
1146      8085,12315,12315, 8094,12315,12315, 4474, 4476, 4477, 8102,
1147     12315,12315, 8110,12315,12315, 8118, 4481, 4493, 8121, 8124,
1148     12315,12315, 8132, 4523, 4534, 4527, 4544, 4535, 4550, 4542,
1149      4553, 4558, 4569,12315, 4561, 4572,12315, 8139,12315, 8142,
1150      4574, 4562, 4577, 4565, 4589, 8145, 8151, 8164, 8195, 8242,
1151
1152      8172, 8175, 8178, 4585, 4620, 4621, 4589, 4606, 4623, 4625,
1153      4602, 8183,12315,12315, 4638, 4612, 4617, 4648, 4631, 4636,
1154      8206, 4605, 4608,12315, 4620, 4619, 4621,12315, 4631, 8215,
1155      8218,12315, 4646, 4647, 4658, 8221, 8225, 4643, 4656, 8233,
1156      8262, 8253, 8271, 4712, 4680, 4719, 4690, 4736, 4709, 4741,
1157      4712, 4759, 4760, 4763, 4764, 8279, 4775, 4742, 4775, 4745,
1158      4772, 8288, 4788, 4823, 8308, 8355, 4777,12315,12315, 4757,
1159      4809,12315,12315, 4786,12315, 4827, 4839,12315, 4837, 4842,
1160      8282,12315, 4846, 4805, 4852, 4851, 4815, 4860, 4818, 4819,
1161      4804, 8328, 4862, 4951, 8302, 4828, 8336,12315,12315, 8344,
1162
1163      4961, 4964,12315, 4877,12315, 4881,12315, 4892,12315, 4891,
1164     12315,12315,12315,12315, 8366,12315,12315, 4881,12315, 4886,
1165      4909, 4929, 4904, 4921, 5103, 4922, 8375, 4917, 4908, 4936,
1166      4926,12315,12315,12315,12315,12315, 4948,12315,12315, 5016,
1167     12315, 8378, 8381, 8385, 5002, 4927, 5020, 4928, 8388, 8406,
1168      8414, 5146, 4944, 5180, 4951,12315,12315,12315,12315, 4959,
1169      4960, 8417, 4996, 4994, 5010, 8420, 5021, 5006, 5040, 5042,
1170     12315, 5022,12315, 5035, 8423, 8426, 8441, 8444, 8452, 8455,
1171      5046, 5054, 5091, 5075, 5083, 5104, 8463,12315,12315, 8472,
1172      8475, 5087, 5117, 5129, 5113, 5121, 5134, 5119, 5131, 8483,
1173
1174      5156,12315, 5145,12315, 5150, 5141, 5150, 8486,12315,12315,
1175      8495,12315,12315, 8503, 5185, 5186, 5173, 5186, 5195, 5198,
1176      5203, 5200, 8511,12315,12315, 5205, 5211, 5218, 5222, 5233,
1177      5240, 5273, 5275, 5300,12315, 5296, 5296, 5251, 5253, 5288,
1178      5283, 5300, 5294, 5295, 5301, 5305, 5306, 5314, 5326, 5324,
1179      5330, 5331, 5329, 5339, 5340,12315,12315, 5381,12315,12315,
1180      5314, 5319, 5336, 5356, 5345, 5377, 5365, 5366, 5384, 5373,
1181      5371, 5392, 5382, 5390, 5407, 5400, 5398, 5422, 5466, 5447,
1182      5447, 5428, 5433, 5435, 5436, 5451, 5441, 5482, 5463, 5464,
1183      5494, 5478, 5470, 5504, 5489, 5482, 5512, 5526,12315,12315,
1184
1185      5502, 5507, 5511, 5522, 5543, 5518,12315, 5545, 5529,12315,
1186      5558, 5532,12315, 5566, 5543,12315, 5605, 5545, 5558, 5557,
1187      5574,12315, 5575,12315, 5578,12315, 5579,12315, 5581, 8521,
1188      5598, 5621, 5602, 5621, 5587, 5603, 5607, 5609, 8524, 5650,
1189     12315, 5648,12315, 5653, 5651, 5662, 5660, 5657, 5662,12315,
1190     12315,12315,12315,12315,12315, 5701, 5731, 5835, 5842, 5702,
1191      5737, 5665, 5776, 5672, 5752, 5782, 5880, 5875, 5908, 5777,
1192      5845, 5889, 5921, 5659, 5804, 5935, 5949, 5910, 5913, 5721,
1193      5905, 5907, 5976, 5926, 5973, 5994, 6010, 5932, 6000, 6025,
1194      6049, 5992, 6037, 6065, 6089, 6016, 6057, 6059, 6077, 5771,
1195
1196      6046, 6125, 6146, 6105, 6144, 6147, 6149, 6183, 6246, 6184,
1197      6202, 6173, 6256, 6086, 6234, 6221, 6252, 6255, 6274, 6116,
1198      6259, 6223, 6375, 6358, 6409, 6402, 6415, 6436, 6454, 6382,
1199      6467, 6465, 6474, 6457, 6487, 6481, 6536, 6317, 6511, 8532,
1200      8535,12315,12315, 8555, 8564, 8573, 8582, 8591, 8600, 8609,
1201      8618, 8627, 8636, 8645, 8654, 8663, 8672, 8681, 8690, 8699,
1202      8708, 8717, 8726, 8735, 8744, 8753, 8762, 8771, 8780, 8789,
1203      8798, 8807, 8816, 8825, 8834, 8843, 8852, 8861, 8870, 8879,
1204      8888, 8897, 8906, 8915, 8924, 8933, 8942, 8951, 8960, 8969,
1205      8978, 8987, 8996, 9005, 9014, 9023, 9032, 9041, 9050, 9059,
1206
1207      9068, 9077, 9086, 9095, 9102, 9109, 9116, 9123, 9130, 9137,
1208      9144, 9151, 9158, 9165, 9172, 9179, 9186, 9193, 9200, 9207,
1209      9214, 9221, 9228, 9235, 9242, 9249, 9256, 9263, 9270, 9277,
1210      9284, 9291, 9300, 9307, 9312, 9319, 9324, 9331, 9336, 9343,
1211      9348, 9355, 9360, 9367, 9372, 9379, 9384, 9391, 9396, 9403,
1212      9408, 9415, 9420, 9427, 9432, 9439, 9444, 9451, 9456, 9463,
1213      9468, 9475, 9480, 9487, 9492, 9499, 9504, 9511, 9516, 9523,
1214      9528, 9535, 9540, 9547, 9552, 9559, 9564, 9571, 9576, 9583,
1215      9588, 9595, 9600, 9607, 9612, 9619, 9624, 9631, 9636, 9645,
1216      9651, 9658, 9666, 9673, 9681, 9688, 9696, 9703, 9711, 9718,
1217
1218      9726, 9733, 9741, 9748, 9756, 9763, 9771, 9778, 9786, 9793,
1219      9801, 9808, 9816, 9823, 9831, 9838, 9846, 9853, 9861, 9869,
1220      9877, 9884, 9892, 9899, 9907, 9914, 9922, 9929, 9937, 9945,
1221      9953, 9961, 9969, 9976, 9984, 9992,10000,10008,10016,10023,
1222     10031,10038,10046,10054,10061,10069,10078,10084,10091,10099,
1223     10107,10115,10123,10131,10138,10146,10153,10161,10168,10176,
1224     10183,10191,10198,10206,10214,10222,10230,10238,10245,10253,
1225     10261,10269,10277,10285,10292,10300,10307,10315,10322,10330,
1226     10337,10345,10352,10360,10367,10375,10382,10390,10397,10405,
1227     10412,10420,10428,10435,10443,10450,10458,10465,10473,10481,
1228
1229     10488,10496,10505,10514,10521,10529,10537,10544,10552,10559,
1230     10567,10574,10582,10589,10596,10604,10611,10619,10626,10634,
1231     10641,10649,10656,10664,10672,10680,10687,10695,10703,10711,
1232     10718,10726,10733,10741,10748,10756,10763,10771,10778,10786,
1233     10793,10801,10808,10816,10824,10831,10839,10846,10854,10862,
1234     10870,10878,10886,10894,10903,10912,10919,10927,10935,10942,
1235     10950,10957,10965,10972,10980,10987,10994,11002,11009,11017,
1236     11024,11032,11040,11048,11055,11063,11071,11078,11086,11094,
1237     11102,11109,11117,11124,11132,11139,11147,11154,11162,11169,
1238     11177,11185,11193,11200,11208,11216,11224,11232,11239,11247,
1239
1240     11255,11263,11271,11280,11289,11297,11305,11313,11320,11328,
1241     11335,11343,11351,11359,11367,11375,11383,11391,11399,11406,
1242     11414,11422,11429,11437,11444,11452,11460,11468,11475,11482,
1243     11490,11497,11505,11512,11519,11527,11534,11542,11549,11557,
1244     11565,11573,11580,11588,11596,11604,11613,11622,11630,11638,
1245     11645,11652,11660,11668,11675,11683,11690,11698,11705,11713,
1246     11720,11728,11735,11743,11751,11758,11765,11773,11780,11788,
1247     11795,11802,11809,11817,11824,11832,11840,11848,11856,11864,
1248     11872,11880,11889,11898,11906,11914,11921,11929,11937,11944,
1249     11952,11959,11967,11975,11983,11990,11998,12005,12013,12021,
1250
1251     12028,12035,12043,12051,12059,12066,12073,12081,12089,12097,
1252     12105,12113,12121,12129,12137,12146,12155,12163,12170,12177,
1253     12185,12192,12200,12207,12215,12222,12230,12237,12244,12251,
1254     12260,12269,12278,12287,12296,12305
1255     } ;
1256
1257 static yyconst flex_int16_t yy_def[3837] =
1258     {   0,
1259      3344, 3344, 3345, 3345, 3345, 3345, 3346, 3346, 3347, 3347,
1260      3348, 3348, 3349, 3349, 3349, 3349, 3350, 3350, 3344, 3344,
1261      3351, 3351, 3352, 3352, 3352, 3352, 3344, 3344, 3352, 3352,
1262      3352, 3352, 3344, 3344, 3352, 3352, 3344, 3344, 3352, 3352,
1263      3352, 3352, 3353, 3353, 3354, 3354, 3344, 3344, 3354, 3354,
1264      3354, 3354, 3355, 3355, 3349, 3349, 3356, 3356, 3357, 3357,
1265      3358, 3358, 3359, 3359, 3360, 3360, 3361, 3361, 3361, 3361,
1266      3344, 3344, 3361, 3361, 3361, 3361, 3344, 3344, 3361, 3361,
1267      3361, 3361, 3344, 3344, 3361, 3361, 3344, 3344, 3361, 3361,
1268      3361, 3361, 3344, 3344, 3361, 3361, 3344, 3344, 3361, 3361,
1269
1270      3361, 3361, 3362, 3362, 3363, 3363, 3344, 3344, 3363, 3363,
1271      3363, 3363, 3364, 3364, 3365, 3365, 3344, 3344, 3365, 3365,
1272      3365, 3365, 3366, 3366, 3367, 3367, 3368, 3368, 3369, 3369,
1273      3370, 3370, 3371, 3371, 3344, 3344, 3371, 3371, 3371, 3371,
1274      3372, 3372, 3373, 3373, 3374, 3374, 3375, 3375, 3343,  149,
1275      3376, 3376, 3344, 3344, 3376, 3376, 3376, 3376, 3377, 3377,
1276      3378, 3378, 3379, 3379, 3380, 3380, 3381, 3381, 3382, 3382,
1277      3383, 3383, 3384, 3384, 3385, 3385, 3386, 3386, 3344, 3344,
1278      3386, 3386, 3386, 3386, 3387, 3387, 3388, 3388, 3344, 3344,
1279      3388, 3388, 3388, 3388, 3389, 3389, 3390, 3390, 3344, 3344,
1280
1281      3390, 3390, 3390, 3390, 3391, 3391, 3392, 3392, 3393, 3393,
1282      3394, 3394, 3344, 3344, 3394, 3394, 3394, 3394, 3395, 3395,
1283      3396, 3396, 3344, 3344, 3396, 3396, 3396, 3396, 3397, 3397,
1284      3398, 3398, 3344, 3344, 3398, 3398, 3398, 3398, 3399, 3399,
1285      3400, 3400, 3401, 3401, 3402, 3402, 3344, 3344, 3402, 3402,
1286      3402, 3402, 3403, 3403, 3404, 3404, 3344, 3344, 3343, 3343,
1287      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1288      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1289      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3405,
1290      3343, 3343, 3405, 3343, 3343, 3343,  296,  296,  298,  296,
1291
1292       299,  299, 3343, 3343, 3343, 3406, 3343, 3343, 3406, 3343,
1293      3343,  300,  299, 3343, 3343, 3343, 3407, 3343, 3343, 3407,
1294      3407, 3407, 3343, 3343, 3343, 3343, 3343, 3408, 3343, 3343,
1295      3408, 3408, 3408, 3408, 3408, 3343, 3343, 3343, 3343, 3343,
1296      3343, 3409, 3343, 3343, 3409, 3409, 3409, 3343, 3343, 3343,
1297      3343, 3343, 3343, 3410, 3343, 3343, 3410, 3410, 3343, 3343,
1298      3343,  361,  299,  299,  300,  365,  364,  364,  364,  364,
1299       365,  371,  369,  369, 3343, 3343, 3343, 3411, 3343, 3343,
1300      3411, 3411, 3411, 3411, 3343, 3343,  299,  299, 3343, 3343,
1301      3343, 3412, 3343, 3343, 3412, 3412, 3412, 3343, 3343,  299,
1302
1303       299, 3343, 3343, 3343, 3413, 3343, 3343, 3413, 3413, 3343,
1304      3343, 3343, 3343, 3343, 3343, 3414, 3343, 3343, 3414, 3414,
1305      3343, 3343, 3343, 3343, 3343, 3343, 3415, 3343, 3343, 3415,
1306      3415, 3415, 3415, 3415, 3343, 3343,  299,  299,  299, 3343,
1307      3343, 3343, 3416, 3343, 3343, 3416, 3343, 3343, 3343, 3343,
1308      3343, 3343, 3417, 3343, 3343, 3417, 3417, 3417, 3343, 3343,
1309      3343, 3343, 3343, 3343, 3418, 3343, 3343, 3418, 3418, 3418,
1310      3418, 3418, 3418, 3418, 3418, 3418, 3343, 3343,  299,  299,
1311      3343, 3343, 3343, 3419, 3343, 3343, 3419, 3419, 3419, 3419,
1312      3419, 3419, 3343, 3343, 3343, 3343, 3343, 3343, 3420, 3343,
1313
1314      3343, 3420, 3420, 3420, 3420, 3420, 3420, 3420, 3343, 3343,
1315      3343, 3343, 3343, 3343, 3421, 3343, 3343, 3421, 3421, 3343,
1316      3343, 3343, 3343, 3343, 3343, 3422, 3343, 3343, 3422, 3422,
1317      3422, 3343, 3343, 3343, 3343, 3343, 3343, 3423, 3343, 3343,
1318      3423, 3423, 3423, 3423, 3343, 3343,  299,  299, 3343, 3343,
1319      3343, 3424, 3343, 3343, 3424, 3424, 3343, 3343,  299,  369,
1320       369, 3343, 3343, 3343, 3425, 3343, 3343, 3425, 3425, 3425,
1321      3343, 3343,  369,  369, 3343, 3343, 3343, 3426, 3343, 3343,
1322      3426, 3426, 3343, 3343, 3343, 3343, 3343, 3343, 3427, 3343,
1323      3343, 3427, 3427, 3343, 3343,  369,  369, 3343, 3343, 3343,
1324
1325      3428, 3343, 3343, 3428, 3428, 3428, 3343, 3343,  369,  369,
1326      3343, 3343, 3343, 3429, 3343, 3343, 3429, 3429, 3429, 3429,
1327      3429, 3343, 3343,  299,  438,  299, 3343, 3343, 3343, 3430,
1328      3343, 3343, 3430, 3343, 3343, 3343, 3343, 3343, 3343, 3431,
1329      3343, 3343, 3431, 3343, 3343,  299,  299, 3343, 3343, 3343,
1330      3432, 3343, 3343, 3432, 3432, 3343, 3343, 3343, 3343, 3433,
1331      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1332      3343, 3343, 3343, 3343, 3343, 3434, 3434, 3435, 3343, 3343,
1333      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1334      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1335
1336      3343, 3343, 3436, 3436, 3437, 3343, 3438, 3438, 3438, 3438,
1337      3343, 3439, 3343, 3343, 3440, 3440, 3440, 3440, 3440, 3440,
1338      3440, 3440, 3440, 3441, 3343, 3442, 3442, 3442, 3442, 3443,
1339      3343, 3444, 3444, 3444, 3445, 3343, 3343, 3343, 3343, 3343,
1340      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1341      3343, 3343, 3343, 3343, 3446, 3446, 3446, 3446, 3446, 3447,
1342      3343, 3448, 3448, 3448, 3448, 3449, 3343, 3450, 3450, 3450,
1343      3451, 3343, 3452, 3452, 3452, 3453, 3343, 3454, 3454, 3454,
1344      3454, 3454, 3454, 3454, 3455, 3343, 3343, 3456, 3456, 3457,
1345      3343, 3458, 3458, 3458, 3458, 3459, 3343, 3460, 3460, 3460,
1346
1347      3460, 3460, 3460, 3460, 3460, 3460, 3460, 3460, 3460, 3460,
1348      3460, 3460, 3460, 3460, 3461, 3343, 3462, 3462, 3462, 3462,
1349      3462, 3462, 3462, 3462, 3463, 3343, 3464, 3464, 3464, 3464,
1350      3464, 3464, 3464, 3464, 3465, 3343, 3466, 3466, 3466, 3467,
1351      3343, 3468, 3468, 3468, 3468, 3469, 3343, 3470, 3470, 3470,
1352      3470, 3470, 3470, 3471, 3343, 3472, 3472, 3472, 3472, 3473,
1353      3343, 3343, 3474, 3474, 3474, 3474, 3474, 3475, 3343, 3476,
1354      3476, 3476, 3477, 3343, 3478, 3478, 3478, 3479, 3343, 3480,
1355      3480, 3480, 3480, 3481, 3343, 3482, 3482, 3482, 3482, 3482,
1356      3482, 3483, 3343, 3343, 3484, 3484, 3485, 3343, 3486, 3486,
1357
1358      3487, 3343, 3488, 3488, 3488, 3489, 3490, 3343, 3490, 3343,
1359      3343, 3343, 3491, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1360      3492, 3493, 3493, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1361      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1362      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1363      3343, 3343, 3494, 3495, 3495, 3496, 3343, 3343, 3496, 3343,
1364      3497, 3497, 3343, 3498, 3343, 3343, 3498, 3498, 3498, 3498,
1365      3498, 3498, 3499, 3499, 3500, 3500, 3500, 3501, 3501, 3343,
1366      3343, 3502, 3503, 3503, 3343, 3343, 3343, 3343, 3343, 3343,
1367      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3504, 3343,
1368
1369      3343, 3504, 3504, 3505, 3505, 3506, 3343, 3343, 3506, 3507,
1370      3507, 3508, 3508, 3509, 3509, 3510, 3510, 3511, 3511, 3512,
1371      3512, 3512, 3343, 3343, 3512, 3512, 3512, 3513, 3513, 3343,
1372      3343, 3514, 3515, 3515, 3516, 3343, 3343, 3343, 3343, 3517,
1373      3517, 3518, 3518, 3343, 3343, 3518, 3343, 3343, 3518, 3518,
1374      3518, 3518, 3518, 3518, 3518, 3518, 3518, 3518, 3518, 3519,
1375      3519, 3343, 3343, 3343, 3343, 3520, 3520, 3520, 3520, 3520,
1376      3521, 3521, 3522, 3522, 3522, 3343, 3343, 3522, 3522, 3522,
1377      3523, 3523, 3524, 3343, 3343, 3525, 3525, 3526, 3343, 3343,
1378      3526, 3527, 3527, 3528, 3343, 3343, 3528, 3528, 3528, 3529,
1379
1380      3529, 3530, 3530, 3530, 3531, 3531, 3343, 3532, 3532, 3532,
1381      3532, 3533, 3533, 3534, 3343, 3343, 3535, 3535, 3536, 3536,
1382      3537, 3537, 3538, 3538, 3538, 3539, 3539, 3540, 3540, 3540,
1383      3540, 3540, 3541, 3541, 3343, 3542, 3543, 3543, 3343, 3343,
1384      3544, 3544, 3343, 3343, 3545, 3546, 3546, 3547, 3343, 3343,
1385      3547, 3343, 3343, 3548, 3343, 3343, 3343, 3343, 3343, 3343,
1386      3549, 3343, 3550, 3343, 3550, 3343, 3343, 3343, 3343, 3343,
1387      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1388      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1389      3343, 3343, 3343, 3343, 3343, 3551, 3343, 3552, 3343, 3552,
1390
1391      3553, 3343, 3343, 3343, 3553, 3343, 3343, 3554, 3343, 3554,
1392      3555, 3343, 3343, 3343, 3343, 3343, 3555, 3343, 3343, 3555,
1393      3555, 3555, 3343, 3556, 3343, 3556, 3557, 3557, 3557, 3343,
1394      3558, 3343, 3558, 3343, 3343, 3343, 3559, 3343, 3560, 3343,
1395      3560, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1396      3343, 3343, 3343, 3343, 3561, 3343, 3343, 3343, 3561, 3561,
1397      3343, 3562, 3343, 3562, 3563, 3343, 3343, 3343, 3563, 3343,
1398      3564, 3343, 3564, 3565, 3565, 3343, 3566, 3343, 3566, 3567,
1399      3567, 3343, 3568, 3343, 3568, 3569, 3569, 3569, 3343, 3343,
1400      3343, 3569, 3569, 3569, 3343, 3570, 3343, 3570, 3343, 3343,
1401
1402      3571, 3343, 3572, 3343, 3572, 3573, 3343, 3343, 3343, 3343,
1403      3343, 3343, 3343, 3574, 3343, 3574, 3575, 3575, 3575, 3575,
1404      3343, 3343, 3343, 3575, 3343, 3343, 3343, 3343, 3343, 3575,
1405      3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3343,
1406      3576, 3343, 3576, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1407      3343, 3577, 3577, 3577, 3577, 3343, 3578, 3343, 3578, 3579,
1408      3579, 3579, 3579, 3343, 3343, 3343, 3343, 3343, 3579, 3579,
1409      3343, 3580, 3343, 3580, 3581, 3343, 3343, 3343, 3343, 3582,
1410      3343, 3582, 3583, 3343, 3343, 3343, 3583, 3343, 3584, 3343,
1411      3584, 3585, 3343, 3343, 3343, 3585, 3585, 3585, 3343, 3586,
1412
1413      3343, 3586, 3343, 3343, 3343, 3343, 3587, 3343, 3588, 3343,
1414      3588, 3343, 3343, 3343, 3589, 3589, 3343, 3343, 3589, 3343,
1415      3590, 3343, 3590, 3591, 3343, 3343, 3343, 3343, 3592, 3343,
1416      3592, 3343, 3343, 3343, 3343, 3343, 3593, 3343, 3593, 3343,
1417      3343, 3594, 3594, 3343, 3343, 3343, 3595, 3343, 3595, 3596,
1418      3596, 3596, 3596, 3596, 3343, 3597, 3343, 3597, 3343, 3598,
1419      3343, 3599, 3343, 3599, 3343, 3343, 3343, 3343, 3600, 3343,
1420      3600, 3343, 3343, 3343, 3601, 3343, 3602, 3343, 3602, 3603,
1421      3604, 3343, 3343, 3343, 3343, 3343, 3605, 3606, 3343, 3343,
1422      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1423
1424      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1425      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3607,
1426      3343, 3343, 3608, 3343, 3609, 3610, 3343, 3343, 3343, 3343,
1427      3343, 3343, 3343, 3343, 3610, 3343, 3343, 3610, 3611, 3612,
1428      3343, 3343, 3612, 3613, 3614, 3343, 3343, 3343, 3343, 3343,
1429      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1430      3615, 3615, 3343, 3343, 3616, 3617, 3617, 3618, 3343, 3343,
1431      3619, 3620, 3343, 3343, 3621, 3622, 3623, 3623, 3343, 3343,
1432      3623, 3623, 3623, 3624, 3343, 3343, 3343, 3343, 3625, 3343,
1433      3343, 3626, 3627, 3627, 3627, 3627, 3343, 3343, 3343, 3343,
1434
1435      3343, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627, 3627,
1436      3627, 3628, 3343, 3343, 3343, 3629, 3629, 3629, 3629, 3630,
1437      3631, 3631, 3631, 3631, 3343, 3343, 3343, 3631, 3631, 3632,
1438      3633, 3634, 3635, 3635, 3636, 3637, 3637, 3637, 3637, 3638,
1439      3343, 3343, 3343, 3343, 3343, 3343, 3639, 3640, 3343, 3343,
1440      3343, 3343, 3641, 3641, 3343, 3343, 3343, 3641, 3642, 3643,
1441      3644, 3343, 3343, 3343, 3343, 3343, 3343, 3645, 3343, 3343,
1442      3343, 3646, 3646, 3343, 3343, 3343, 3647, 3648, 3343, 3343,
1443      3648, 3648, 3648, 3649, 3343, 3650, 3651, 3652, 3653, 3654,
1444      3655, 3656, 3656, 3343, 3656, 3343, 3343, 3343, 3657, 3658,
1445
1446      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1447      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1448      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1449      3343, 3343, 3343, 3659, 3343, 3343, 3343, 3660, 3343, 3661,
1450      3662, 3343, 3343, 3343, 3662, 3343, 3343, 3343, 3662, 3663,
1451      3664, 3343, 3343, 3343, 3343, 3343, 3665, 3666, 3343, 3343,
1452      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1453      3343, 3667, 3343, 3343, 3343, 3343, 3343, 3668, 3669, 3669,
1454      3670, 3343, 3343, 3343, 3671, 3672, 3343, 3343, 3343, 3673,
1455      3674, 3675, 3675, 3343, 3343, 3343, 3343, 3343, 3675, 3343,
1456
1457      3343, 3675, 3676, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1458      3343, 3343, 3343, 3677, 3678, 3343, 3343, 3678, 3678, 3343,
1459      3343, 3343, 3678, 3678, 3343, 3343, 3678, 3678, 3678, 3678,
1460      3678, 3678, 3678, 3679, 3343, 3343, 3680, 3680, 3680, 3681,
1461      3682, 3343, 3343, 3682, 3682, 3343, 3343, 3682, 3683, 3684,
1462      3685, 3686, 3686, 3687, 3688, 3688, 3688, 3343, 3343, 3688,
1463      3689, 3690, 3691, 3343, 3692, 3692, 3692, 3693, 3694, 3695,
1464      3696, 3697, 3697, 3698, 3699, 3343, 3343, 3343, 3699, 3699,
1465      3699, 3700, 3343, 3343, 3343, 3701, 3702, 3343, 3343, 3703,
1466      3704, 3705, 3705, 3343, 3343, 3706, 3707, 3343, 3343, 3343,
1467
1468      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1469      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1470      3343, 3343, 3343, 3343, 3343, 3708, 3709, 3343, 3710, 3711,
1471      3711, 3711, 3712, 3713, 3343, 3343, 3343, 3343, 3343, 3343,
1472      3343, 3343, 3343, 3343, 3343, 3714, 3715, 3343, 3343, 3343,
1473      3343, 3343, 3343, 3343, 3343, 3343, 3716, 3343, 3343, 3343,
1474      3717, 3718, 3343, 3343, 3719, 3720, 3721, 3343, 3343, 3722,
1475      3723, 3723, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1476      3723, 3343, 3343, 3343, 3343, 3724, 3725, 3343, 3343, 3343,
1477      3343, 3343, 3725, 3725, 3725, 3343, 3343, 3343, 3343, 3343,
1478
1479      3725, 3725, 3725, 3725, 3343, 3343, 3725, 3726, 3343, 3343,
1480      3343, 3343, 3343, 3727, 3343, 3343, 3728, 3729, 3343, 3343,
1481      3343, 3343, 3343, 3729, 3343, 3343, 3343, 3729, 3343, 3343,
1482      3730, 3731, 3732, 3732, 3733, 3734, 3734, 3734, 3343, 3343,
1483      3343, 3734, 3343, 3343, 3735, 3736, 3343, 3343, 3343, 3343,
1484      3343, 3737, 3738, 3739, 3740, 3741, 3343, 3343, 3343, 3343,
1485      3742, 3743, 3743, 3743, 3743, 3744, 3343, 3343, 3343, 3343,
1486      3745, 3746, 3343, 3343, 3343, 3343, 3343, 3747, 3748, 3748,
1487      3343, 3343, 3343, 3749, 3343, 3343, 3343, 3343, 3343, 3343,
1488      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1489
1490      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3750,
1491      3751, 3343, 3343, 3343, 3752, 3343, 3343, 3752, 3753, 3343,
1492      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1493      3343, 3754, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1494      3343, 3343, 3343, 3755, 3756, 3343, 3343, 3757, 3343, 3343,
1495      3343, 3758, 3759, 3343, 3343, 3343, 3343, 3343, 3760, 3761,
1496      3761, 3343, 3343, 3343, 3343, 3343, 3761, 3343, 3762, 3763,
1497      3343, 3343, 3343, 3763, 3763, 3763, 3343, 3343, 3343, 3343,
1498      3343, 3763, 3763, 3763, 3343, 3343, 3343, 3763, 3764, 3343,
1499      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3765, 3766, 3343,
1500
1501      3343, 3343, 3766, 3766, 3767, 3768, 3769, 3343, 3343, 3770,
1502      3771, 3343, 3343, 3771, 3771, 3343, 3343, 3771, 3772, 3343,
1503      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3773, 3774,
1504      3775, 3776, 3777, 3343, 3343, 3343, 3343, 3343, 3343, 3778,
1505      3779, 3779, 3779, 3779, 3780, 3343, 3781, 3782, 3783, 3784,
1506      3784, 3343, 3343, 3343, 3343, 3785, 3343, 3343, 3343, 3343,
1507      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1508      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3786, 3787, 3343,
1509      3788, 3343, 3343, 3343, 3788, 3343, 3343, 3343, 3343, 3343,
1510      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1511
1512      3789, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1513      3343, 3343, 3343, 3343, 3790, 3791, 3343, 3343, 3343, 3792,
1514      3793, 3794, 3795, 3796, 3796, 3343, 3343, 3343, 3343, 3796,
1515      3343, 3797, 3798, 3798, 3798, 3798, 3343, 3343, 3343, 3798,
1516      3798, 3798, 3798, 3799, 3343, 3343, 3343, 3800, 3801, 3801,
1517      3801, 3802, 3343, 3343, 3803, 3343, 3343, 3343, 3804, 3805,
1518      3343, 3343, 3343, 3805, 3805, 3343, 3343, 3343, 3343, 3805,
1519      3806, 3343, 3807, 3808, 3809, 3810, 3811, 3812, 3343, 3343,
1520      3813, 3813, 3813, 3814, 3343, 3815, 3343, 3343, 3816, 3817,
1521      3817, 3343, 3818, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1522
1523      3343, 3343, 3343, 3343, 3343, 3343, 3819, 3343, 3343, 3820,
1524      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1525      3821, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1526      3343, 3343, 3343, 3343, 3343, 3343, 3822, 3823, 3824, 3343,
1527      3343, 3343, 3343, 3825, 3826, 3826, 3343, 3343, 3343, 3343,
1528      3826, 3343, 3827, 3828, 3828, 3828, 3828, 3828, 3343, 3343,
1529      3828, 3828, 3828, 3343, 3343, 3343, 3343, 3829, 3829, 3829,
1530      3830, 3343, 3343, 3804, 3343, 3343, 3805, 3805, 3805, 3343,
1531      3343, 3343, 3343, 3805, 3806, 3343, 3807, 3343, 3343, 3343,
1532      3343, 3810, 3811, 3812, 3343, 3343, 3343, 3343, 3343, 3813,
1533
1534      3813, 3343, 3343, 3343, 3815, 3816, 3817, 3817, 3343, 3343,
1535      3343, 3343, 3343, 3343, 3343, 3343, 3819, 3343, 3343, 3343,
1536      3820, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1537      3343, 3821, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1538      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3822, 3823,
1539      3824, 3343, 3343, 3343, 3343, 3343, 3826, 3826, 3343, 3343,
1540      3343, 3343, 3827, 3828, 3828, 3828, 3828, 3828, 3343, 3343,
1541      3343, 3828, 3343, 3343, 3828, 3829, 3829, 3343, 3343, 3830,
1542      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3805, 3805,
1543      3805, 3343, 3343, 3343, 3343, 3806, 3807, 3343, 3343, 3343,
1544
1545      3343, 3343, 3811, 3812, 3343, 3343, 3343, 3343, 3343, 3343,
1546      3343, 3343, 3343, 3816, 3817, 3817, 3343, 3343, 3343, 3343,
1547      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3820,
1548      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1549      3821, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1550      3343, 3343, 3343, 3343, 3343, 3343, 3822, 3823, 3824, 3826,
1551      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3828, 3828, 3828,
1552      3343, 3343, 3828, 3828, 3343, 3343, 3343, 3828, 3829, 3343,
1553      3343, 3343, 3343, 3343, 3343, 3343, 3805, 3805, 3805, 3343,
1554      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1555
1556      3343, 3343, 3811, 3812, 3343, 3343, 3343, 3343, 3343, 3343,
1557      3816, 3817, 3817, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1558      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3820,
1559      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3821, 3343,
1560      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1561      3343, 3343, 3343, 3343, 3343, 3343, 3823, 3343, 3343, 3343,
1562      3343, 3826, 3343, 3343, 3343, 3828, 3828, 3343, 3343, 3343,
1563      3343, 3343, 3343, 3343, 3828, 3828, 3829, 3343, 3343, 3343,
1564      3343, 3343, 3343, 3805, 3343, 3343, 3805, 3343, 3343, 3343,
1565      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3811,
1566
1567      3812, 3343, 3343, 3343, 3343, 3816, 3817, 3817, 3817, 3343,
1568      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1569      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1570      3343, 3821, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1571      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3823,
1572      3343, 3343, 3343, 3343, 3343, 3343, 3826, 3828, 3828, 3343,
1573      3343, 3343, 3343, 3343, 3343, 3828, 3828, 3829, 3805, 3343,
1574      3343, 3343, 3805, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1575      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3812,
1576      3343, 3343, 3343, 3343, 3816, 3817, 3817, 3817, 3831, 3832,
1577
1578      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1579      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1580      3821, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1581      3343, 3343, 3826, 3828, 3828, 3343, 3343, 3828, 3829, 3343,
1582      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1583      3343, 3343, 3343, 3343, 3343, 3812, 3343, 3343, 3343, 3343,
1584      3816, 3817, 3833, 3834, 3831, 3832, 3343, 3343, 3343, 3343,
1585      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1586      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3826, 3828,
1587      3828, 3343, 3343, 3343, 3828, 3829, 3343, 3343, 3343, 3343,
1588
1589      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1590      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1591      3816, 3833, 3817, 3835, 3834, 3836, 3817, 3343, 3343, 3343,
1592      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1593      3343, 3826, 3828, 3828, 3343, 3343, 3343, 3343, 3343, 3343,
1594      3829, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1595      3343, 3816, 3835, 3343, 3836, 3817, 3343, 3343, 3343, 3343,
1596      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1597      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1598      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3816,
1599
1600      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1601      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1602      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1603      3343, 3343, 3343, 3816, 3343, 3343, 3343, 3343, 3343, 3343,
1604      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1605      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3816, 3343, 3343,
1606      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1607      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3816, 3343,
1608      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1609      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3816, 3343, 3343,
1610
1611      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1612      3343, 3343, 3343, 3343, 3343, 3343, 3816, 3343, 3343, 3343,
1613      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3816,
1614      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3816, 3343,
1615      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3816, 3816, 3343,
1616      3343, 3343, 3343, 3343, 3343, 3816, 3816, 3816, 3816, 3816,
1617      3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816,
1618      3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816,
1619      3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816,
1620      3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816,
1621
1622      3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816,
1623      3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816,
1624      3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816,
1625      3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816,
1626      3816, 3343,    0, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1627      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1628      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1629      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1630      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1631      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1632
1633      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1634      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1635      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1636      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1637      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1638      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1639      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1640      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1641      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1642      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1643
1644      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1645      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1646      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1647      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1648      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1649      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1650      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1651      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1652      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1653      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1654
1655      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1656      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1657      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1658      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1659      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1660      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1661      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1662      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1663      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1664      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1665
1666      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1667      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1668      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1669      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1670      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1671      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1672      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1673      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1674      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1675      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1676
1677      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1678      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1679      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
1680      3343, 3343, 3343, 3343, 3343, 3343
1681     } ;
1682
1683 static yyconst flex_int16_t yy_nxt[12390] =
1684     {   0,
1685      3343,  262,  263,  262,  262,  263,  262,  262,  263,  262,
1686       262,  263,  262,  267,  263,  267,  273,  264,  270,  273,
1687       264,  270, 3343,  265, 3343,  271,  265, 3343,  271,  268,
1688       267,  263,  267,  660,  274,  276,  277,  274,  276,  277,
1689       278,  279,  705,  278,  279,  660,  268,  283,  284,  661,
1690       280,  276,  277,  280,  281,  663,  278,  276,  277,  694,
1691       281,  662,  278,  283,  284, 1725,  280,  263,  263,  263,
1692       852,  662,  280,  263,  263,  263,  295,  263,  295,  295,
1693       263,  295,  853,  286,  295,  263,  295,  681, 1726,  286,
1694       735,  285,  296, 1361,  697,  296,  659,  659,  659, 1362,
1695
1696       297,  659,  659,  659,  659,  659,  659,  285,  287,  288,
1697       263,  288,  287,  287,  287,  287,  287,  287,  287,  289,
1698       287,  287,  287,  692,  287,  291,  287,  292,  287,  295,
1699       263,  295,  263,  263,  263,  263,  263,  263,  693,  295,
1700       263,  295,  295,  263,  295,  297,  698,  807,  298,  663,
1701       808,  298,  926,  287,  287,  296,  663,  663,  296,  295,
1702       263,  295,  659,  659,  659,  662,  659,  659,  659,  659,
1703       659,  659,  662,  662, 3343,  299,  927,  293,  287,  288,
1704       263,  288,  287,  287,  287,  287,  287,  287,  287,  289,
1705       287,  287,  287, 1727,  287,  291,  287,  292,  287,  295,
1706
1707       263,  295,  263,  263,  263,  263,  263,  263,  668,  295,
1708       263,  295,  295,  263,  295,  299,  674,  735,  300,  821,
1709       986,  300,  822,  287,  287,  297,  744,  736,  297,  263,
1710       263,  263,  263,  263,  263,  295,  263,  295,  295,  263,
1711       295,  295,  263,  295,  987,  301,  858,  293,  301,  663,
1712       669,  299,  800,  859,  299,  748,  670,  302,  295,  263,
1713       295,  671,  659,  659,  659,  662,  672,  659,  659,  659,
1714       659,  659,  659,  801,  302,  303,  304,  263,  304,  303,
1715       303,  303,  303,  303,  303,  303,  305,  303,  303,  303,
1716       722,  303,  307,  303,  308,  303,  311,  263,  311,  311,
1717
1718       263,  311,  263,  263,  263,  723,  263,  263,  263,  311,
1719       263,  311,  312,  782,  860,  312, 1729,  783,  300,  718,
1720       303,  303,  300,  719,  760,  312,  678,  720,  309,  303,
1721       304,  263,  304,  303,  303,  303,  303,  303,  303,  303,
1722       305,  303,  303,  303,  663,  303,  307,  303,  308,  303,
1723       311,  263,  311,  311,  263,  311,  311,  263,  311,  809,
1724       662,  868,  276,  277,  866,  699,  312,  278, 3343,  313,
1725       698,  867,  313,  810,  303,  303,  744,  323,  700,  760,
1726       693, 1730,  309,  314,  315,  263,  315,  314,  314,  314,
1727       314,  314,  314,  314,  316,  314,  314,  314, 1738,  314,
1728
1729       318,  314,  319,  314, 1739,  663,  324,  692,  337,  263,
1730       337,  337,  263,  337,  349,  263,  349,  698,  276,  277,
1731       701,  662,  693,  278,  338,  711,  804,  338,  314,  314,
1732       350,  697,  712,  323,  805,  914,  320,  766,  915,  321,
1733       806,  662,  659,  659,  659, 1741,  322,  314,  315,  263,
1734       315,  314,  314,  314,  314,  314,  314,  314,  316,  314,
1735       314,  314,  324,  314,  318,  314,  319,  314,  349,  263,
1736       349,  360,  263,  360,  360,  263,  360, 1745,  360,  263,
1737       360,  360,  263,  360,  350,  663,  749,  361,  663,  744,
1738       361,  861,  314,  314,  362,  724, 1504,  362, 1749,  698,
1739
1740       320,  662,  750,  321,  662,  659,  659,  659,  766, 1505,
1741       322,  325,  326,  263,  326,  325,  325,  325,  325,  325,
1742       325,  325,  327,  325,  325,  325, 1751,  325,  329,  325,
1743       330,  325,  263,  263,  263,  263,  263,  263,  360,  263,
1744       360,  785,  360,  263,  360,  360,  263,  360,  363, 1758,
1745       663,  363,  663,  663,  361, 1759,  325,  325,  361,  730,
1746       697,  364,  659,  659,  659,  331,  662,  332,  662,  662,
1747       785,  333,  659,  659,  659,  815,  334,  335,  325,  326,
1748       263,  326,  325,  325,  325,  325,  325,  325,  325,  327,
1749       325,  325,  325,  697,  325,  329,  325,  330,  325,  360,
1750
1751       263,  360,  263,  263,  263,  263,  263,  263,  893,  360,
1752       263,  360,  360,  263,  360,  364,  747, 1760,  365,  786,
1753       687,  365,  744,  325,  325,  366,  740,  744,  366,  659,
1754       659,  659,  331,  743,  332,  659,  659,  659,  333,  659,
1755       659,  659, 1761,  334,  335,  339,  340,  263,  340,  339,
1756       339,  339,  339,  339,  339,  339,  341,  339,  339,  339,
1757       694,  339,  343,  339,  344,  339,  360,  263,  360,  360,
1758       263,  360,  263,  263,  263,  908,  263,  263,  263,  360,
1759       263,  360,  367, 1766, 1767,  367,  908,  878,  368,  751,
1760       339,  339,  368,  738,  739,  364,  884,  345,  659,  659,
1761
1762       659,  909,  697,  346,  752,  659,  659,  659,  659,  659,
1763       659,  960,  347,  339,  340,  263,  340,  339,  339,  339,
1764       339,  339,  339,  339,  341,  339,  339,  339, 1768,  339,
1765       343,  339,  344,  339,  360,  263,  360,  263,  263,  263,
1766       263,  263,  263,  698,  360,  263,  360,  360,  263,  360,
1767       364,  663,  698,  369, 1769,  926,  369,  663,  339,  339,
1768       367,  663,  663,  367,  771,  345, 1770,  662,  659,  659,
1769       659,  346,  986,  662,  659,  659,  659,  662,  662,  995,
1770       347,  351,  352,  263,  352,  351,  351,  351,  351,  351,
1771       351,  351,  353,  351,  351,  351,  927,  351,  355,  351,
1772
1773       356,  351,  360,  263,  360,  360,  263,  360,  263,  263,
1774       263, 1771,  263,  263,  263,  360,  263,  360,  370,  663,
1775      1021,  370,  663, 1022,  371,  815,  351,  351,  371,  776,
1776      1772,  372,  659,  659,  659,  662, 3343,  357,  662,  659,
1777       659,  659,  659,  659,  659, 1779,  358,  351,  352,  263,
1778       352,  351,  351,  351,  351,  351,  351,  351,  353,  351,
1779       351,  351,  986,  351,  355,  351,  356,  351,  360,  263,
1780       360,  263,  263,  263,  263,  263,  263,  697,  360,  263,
1781       360,  360,  263,  360,  372,  786,  995,  373,  744,  926,
1782       373, 1780,  351,  351,  370,  663, 1785,  370,  360,  263,
1783
1784       360, 1790,  790,  357,  360,  263,  360,  659,  659,  659,
1785       854,  662,  358,  996,  374,  659,  659,  659,  735, 1792,
1786       374,  375,  376,  263,  376,  375,  375,  375,  375,  375,
1787       375,  375,  377,  375,  375,  375,  986,  375,  379,  375,
1788       380,  375,  386,  263,  386,  386,  263,  386,  263,  263,
1789       263,  935,  263,  263,  263,  936,  753,  663,  387, 1030,
1790       996,  387,  744, 1031,  363, 3343,  375,  375,  363,  663,
1791       663,  381,  742,  662,  854,  694,  796,  382,  659,  659,
1792       659,  383,  659,  659,  659,  662,  662,  384,  375,  376,
1793       263,  376,  375,  375,  375,  375,  375,  375,  375,  377,
1794
1795       375,  375,  375,  681,  375,  379,  375,  380,  375,  386,
1796       263,  386,  386,  263,  386,  386,  263,  386,  892,  386,
1797       263,  386,  659,  659,  659,  387,  697,  811,  387, 1793,
1798      1799,  388, 1804,  375,  375,  388,  663,  663,  381,  812,
1799       813,  659,  659,  659,  382,  659,  659,  659,  383,  659,
1800       659,  659,  662,  662,  384,  389,  390,  263,  390,  389,
1801       389,  389,  389,  389,  389,  389,  391,  389,  389,  389,
1802       697,  389,  393,  389,  394,  389,  399,  263,  399,  399,
1803       263,  399,  263,  263,  263,  928,  263,  263,  263, 1149,
1804       663, 1805,  400, 1480, 1815,  400,  929,  825,  363,  930,
1805
1806       389,  389,  363,  663,  663,  395,  662,  659,  659,  659,
1807       835,  396,  659,  659,  659,  659,  659,  659, 1149,  662,
1808       662, 1818,  397,  389,  390,  263,  390,  389,  389,  389,
1809       389,  389,  389,  389,  391,  389,  389,  389, 1691,  389,
1810       393,  389,  394,  389,  399,  263,  399,  399,  263,  399,
1811       399,  263,  399,  940,  399,  263,  399,  659,  659,  659,
1812       400,  663,  663,  400,  663, 1819,  401,  941,  389,  389,
1813       401,  840, 1823,  395,  659,  659,  659,  662,  662,  396,
1814       662,  659,  659,  659,  659,  659,  659,  659,  659,  659,
1815       397,  402,  403,  263,  403,  402,  402,  402,  402,  402,
1816
1817       402,  402,  404,  402,  402,  402, 1824,  402,  406,  402,
1818       407,  402,  411,  263,  411,  411,  263,  411,  422,  263,
1819       422,  901,  422,  263,  422,  436,  263,  436,  412,  663,
1820       663,  412,  663, 1827,  423, 1828,  402,  402,  423,  846,
1821       868,  437,  659,  659,  659,  662,  662,  901,  662,  659,
1822       659,  659,  408, 1829,  860, 1830, 1831,  409,  402,  403,
1823       263,  403,  402,  402,  402,  402,  402,  402,  402,  404,
1824       402,  402,  402,  744,  402,  406,  402,  407,  402,  436,
1825       263,  436,  263,  263,  263,  263,  263,  263,  861,  436,
1826       263,  436,  436,  263,  436,  437,  698, 1832,  438,  697,
1827
1828      1833,  438,  861,  402,  402,  437,  697,  663,  437,  659,
1829       659,  659,  659,  659,  659,  659,  659,  659, 1841,  408,
1830       659,  659,  659,  662,  409,  413,  414,  263,  414,  413,
1831       413,  413,  413,  413,  413,  413,  415,  413,  413,  413,
1832      1844,  413,  417,  413,  418,  413,  436,  263,  436,  436,
1833       263,  436,  448,  263,  448,  945,  448,  263,  448,  460,
1834       263,  460,  439,  663,  663,  439,  663,  945,  449,  941,
1835       413,  413,  449,  873,  663,  461,  659,  659,  659,  662,
1836       662,  992,  662,  659,  659,  659,  419, 1845, 1848,  878,
1837       662, 1850,  420,  413,  414,  263,  414,  413,  413,  413,
1838
1839       413,  413,  413,  413,  415,  413,  413,  413, 1852,  413,
1840       417,  413,  418,  413,  460,  263,  460,  478,  263,  478,
1841       478,  263,  478, 1853,  263,  263,  263,  263,  263,  263,
1842       461, 1516, 1855,  479, 1856, 1857,  479,  861,  413,  413,
1843       363,  928,  663,  363, 1505,  698,  659,  659,  659,  659,
1844       659,  659,  929, 1862,  419,  944, 1865,  884,  662, 1866,
1845       420,  424,  425,  263,  425,  424,  424,  424,  424,  424,
1846       424,  424,  426,  424,  424,  424, 1867,  424,  428,  424,
1847       429,  424,  478,  263,  478,  478,  263,  478,  478,  263,
1848       478, 1869,  478,  263,  478,  659,  659,  659,  479, 1516,
1849
1850      1872,  479, 1873, 1875,  480,  861,  424,  424,  480,  430,
1851       663,  431, 1554,  698,  659,  659,  659,  432,  659,  659,
1852       659,  659,  659,  659,  433,  892,  662,  434,  424,  425,
1853       263,  425,  424,  424,  424,  424,  424,  424,  424,  426,
1854       424,  424,  424, 1879,  424,  428,  424,  429,  424,  494,
1855       263,  494,  494,  263,  494,  510,  263,  510,  947,  510,
1856       263,  510,  893,  663, 1880,  495, 1881,  663,  495,  948,
1857       897,  511,  930,  424,  424,  511,  430,  744,  431,  662,
1858       659,  659,  659,  662,  432,  659,  659,  659,  659,  659,
1859       659,  433, 1883, 1694,  434,  440,  441,  263,  441,  440,
1860
1861       440,  440,  440,  440,  440,  440,  442,  440,  440,  440,
1862      1894,  440,  444,  440,  445,  440,  521,  263,  521,  521,
1863       263,  521,  533,  263,  533,  945,  533,  263,  533,  546,
1864       263,  546,  522, 1895, 1896,  522,  663, 1898,  534,  997,
1865       440,  440,  534,  906, 1899,  547,  659,  659,  659,  659,
1866       659,  659,  662,  912,  912,  912,  446,  440,  441,  263,
1867       441,  440,  440,  440,  440,  440,  440,  440,  442,  440,
1868       440,  440, 1900,  440,  444,  440,  445,  440,  546,  263,
1869       546,  263,  263,  263,  263,  263,  263, 1901,  546,  263,
1870       546,  546,  263,  546,  547,  947, 1902,  363,  937,  928,
1871
1872       363,  950,  440,  440,  547,  938,  948,  547,  938,  944,
1873       948,  939,  913,  944,  951, 1166, 1166, 1166,  446,  450,
1874       451,  263,  451,  450,  450,  450,  450,  450,  450,  450,
1875       452,  450,  450,  450, 1903,  450,  454,  450,  455,  450,
1876       546,  263,  546,  546,  263,  546,  558,  263,  558,  945,
1877       558,  263,  558,  263,  263,  263,  548, 1904, 1149,  548,
1878       950,  937,  559,  998,  450,  450,  559,  938,  938,  560,
1879       456,  937,  950,  939,  951,  457, 1905, 1906,  938,  938,
1880      1496, 1496, 1496, 1891,  991,  991, 1907,  458,  450,  451,
1881       263,  451,  450,  450,  450,  450,  450,  450,  450,  452,
1882
1883       450,  450,  450, 1909,  450,  454,  450,  455,  450,  263,
1884       263,  263,  558,  263,  558,  558,  263,  558, 1910,  558,
1885       263,  558,  558,  263,  558,  560, 1149, 1911,  559, 1912,
1886      1915,  559, 1918,  450,  450,  561, 1919, 1920,  561,  456,
1887      1921, 1922, 1151, 1923,  457,  912,  912,  912, 1927, 1153,
1888      1189, 1189, 1189, 1551, 1551, 1551,  458,  462,  463,  263,
1889       463,  462,  462,  462,  462,  462,  462,  462,  464,  462,
1890       462,  462,  465,  462,  466,  462,  467,  462,  465,  465,
1891       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
1892       465,  465,  465,  465,  465,  465,  465,  465,  465,  465,
1893
1894       465,  465,  462,  462,  465,  468,  469,  470,  465,  465,
1895       465,  465,  465,  471,  465,  465,  472,  465,  465,  465,
1896       473,  465,  474,  475,  476,  465,  465,  465,  465,  465,
1897       465,  481,  482,  263,  482,  481,  481,  481,  481,  481,
1898       481,  481,  483,  481,  481,  481, 1928,  481,  485,  481,
1899       486,  481,  572,  263,  572,  572,  263,  572,  263,  263,
1900       263, 1930,  263,  263,  263,  572,  263,  572,  573, 1318,
1901      1931,  573, 1932, 1934,  560, 1947,  481,  481,  560, 1319,
1902       487,  573, 1166, 1166, 1166, 1948, 1320,  488, 1949, 1950,
1903       489, 1189, 1189, 1189,  490, 1951,  491,  492,  481,  482,
1904
1905       263,  482,  481,  481,  481,  481,  481,  481,  481,  483,
1906       481,  481,  481, 1954,  481,  485,  481,  486,  481,  572,
1907       263,  572,  572,  263,  572,  572,  263,  572, 1955,  584,
1908       263,  584,  584,  263,  584,  573, 1956, 1957,  574, 1962,
1909      1966,  574, 1971,  481,  481,  585, 1167,  487,  585, 1202,
1910      1202, 1202, 1972, 1203,  488, 1167, 1204,  489, 1496, 1496,
1911      1496,  490, 1981,  491,  492,  496,  497,  263,  497,  496,
1912       496,  496,  496,  496,  496,  496,  498,  496,  496,  496,
1913      1985,  496,  500,  496,  501,  496,  595,  263,  595,  595,
1914       263,  595,  263,  263,  263, 1987,  263,  263,  263,  957,
1915
1916       957,  957,  596, 1993, 1994,  596, 1995, 2001,  560, 2002,
1917       496,  496,  560,  502,  503,  504,  958, 2003, 1212, 1212,
1918      1212,  505, 1213, 2004,  506, 1214, 2007, 2018,  507, 2024,
1919      2028,  508,  496,  497,  263,  497,  496,  496,  496,  496,
1920       496,  496,  496,  498,  496,  496,  496, 2031,  496,  500,
1921       496,  501,  496,  595,  263,  595,  595,  263,  595,  595,
1922       263,  595, 2033,  595,  263,  595,  965,  965,  965,  596,
1923      2034, 2036,  596, 2037, 2038,  597, 2042,  496,  496,  597,
1924       502,  503,  504,  966, 2045, 1234, 1234, 1234,  505, 1235,
1925      2047,  506, 1236, 2054, 2062,  507, 2063, 2064,  508,  512,
1926
1927       513,  263,  513,  512,  512,  512,  512,  512,  512,  512,
1928       514,  512,  512,  512, 2065,  512,  516,  512,  517,  512,
1929       608,  263,  608,  608,  263,  608,  263,  263,  263, 2067,
1930       263,  263,  263,  980,  980,  980,  609, 1149, 1694,  609,
1931      2081, 2085,  560, 2086,  512,  512,  560, 2087, 2090,  518,
1932       981, 1708, 1708, 1708, 2078,  519,  512,  513,  263,  513,
1933       512,  512,  512,  512,  512,  512,  512,  514,  512,  512,
1934       512, 2080,  512,  516,  512,  517,  512,  608,  263,  608,
1935       608,  263,  608,  608,  263,  608, 1694,  608,  263,  608,
1936      1000, 1000, 1000,  609, 2091, 2088,  609, 1709, 2093,  610,
1937
1938      2094,  512,  512,  610, 2095, 2096,  518, 1001, 1711, 1711,
1939      1711, 2089,  519,  523,  524,  263,  524,  523,  523,  523,
1940       523,  523,  523,  523,  525,  523,  523,  523, 2079,  523,
1941       527,  523,  528,  523,  623,  263,  623,  623,  263,  623,
1942       263,  263,  263, 2097,  263,  263,  263,  623,  263,  623,
1943       624, 2098, 2101,  624, 1712, 2102,  625, 2105,  523,  523,
1944       625, 2106,  529,  624, 1166, 1166, 1166, 2107, 2108,  530,
1945      2109, 2111,  531,  523,  524,  263,  524,  523,  523,  523,
1946       523,  523,  523,  523,  525,  523,  523,  523, 2112,  523,
1947       527,  523,  528,  523,  623,  263,  623,  623,  263,  623,
1948
1949       623,  263,  623, 2115,  635,  263,  635,  635,  263,  635,
1950       624, 2118, 2122,  626, 2123, 2126,  626, 2127,  523,  523,
1951       636, 2128,  529,  636, 1189, 1189, 1189, 2131, 1242,  530,
1952      2135, 2136,  531,  535,  536,  263,  536,  535,  535,  535,
1953       535,  535,  535,  535,  537,  535,  535,  535, 2139,  535,
1954       539,  535,  540,  535,  645,  263,  645,  645,  263,  645,
1955       263,  263,  263, 2124,  263,  263,  263,  645,  263,  645,
1956       646, 2125, 2141,  646, 2137, 2137,  363, 2153,  535,  535,
1957       363, 2160,  541,  646, 1715, 1715, 1715, 2161, 1242,  542,
1958      2138, 2089,  543, 1718, 1718, 1718, 1728, 1728, 1728,  544,
1959
1960       535,  536,  263,  536,  535,  535,  535,  535,  535,  535,
1961       535,  537,  535,  535,  535, 2165,  535,  539,  535,  540,
1962       535,  645,  263,  645,  645,  263,  645,  645,  263,  645,
1963      2166,  657,  263,  657,  657,  263,  657,  646, 1935, 2088,
1964       647, 2167, 2168,  647, 1936,  535,  535,  658, 1937,  541,
1965       658, 3343, 1938,  735,  694, 2138,  542, 2129, 2170,  543,
1966      2174,  694, 2175,  745, 2176, 2130,  544,  549,  550,  263,
1967       550,  549,  549,  549,  549,  549,  549,  549,  551,  549,
1968       549,  549,  749,  549,  553,  549,  554,  549, 2182, 2183,
1969       695,  746, 2184, 1007, 1007, 1007,  696, 2188,  750, 1023,
1970
1971      1023, 1023, 2199,  697, 2203,  697, 2204,  698, 2205,  691,
1972      1008, 2207,  549,  549, 2211, 2215, 1024, 2216,  555, 1256,
1973      1256, 1256, 2217, 1257, 2218, 2219, 1258, 1551, 1551, 1551,
1974      1762, 1762, 1762,  556,  549,  550,  263,  550,  549,  549,
1975       549,  549,  549,  549,  549,  551,  549,  549,  549, 2222,
1976       549,  553,  549,  554,  549, 1036, 1036, 1036, 1038, 1038,
1977      1038, 1044, 1044, 1044, 1047, 1047, 1047, 1062, 1062, 1062,
1978      2229, 2231, 1037, 2241, 2242, 1039, 1763, 2243, 1045,  549,
1979       549, 1048, 2244, 2246, 1063,  555, 1266, 1266, 1266, 2252,
1980      1267, 2258, 1694, 1268, 1764, 1764, 1764, 1765, 1765, 1765,
1981
1982       556,  562,  563,  263,  563,  562,  562,  562,  562,  562,
1983       562,  562,  564,  562,  562,  562, 2259,  562,  566,  562,
1984       567,  562, 1064, 1064, 1064, 1076, 1076, 1076, 1084, 1084,
1985      1084, 1089, 1089, 1089, 1095, 1095, 1095, 1149, 2251, 1065,
1986      1712, 2260, 1077, 2249, 2261, 1085,  562,  562, 1090, 2264,
1987      2266, 1096,  568, 2267, 2268,  569, 1289, 1289, 1289, 2272,
1988      1290, 2277, 2279, 1291, 1711, 1711, 1711,  570,  562,  563,
1989       263,  563,  562,  562,  562,  562,  562,  562,  562,  564,
1990       562,  562,  562, 2280,  562,  566,  562,  567,  562, 1115,
1991      1115, 1115, 1139, 1139, 1139, 1143, 1143, 1143, 1162, 1162,
1992
1993      1162, 1939, 1162, 1162, 1162, 2281, 1116, 1940, 2285, 1140,
1994      1864, 1941, 1144,  562,  562, 1942, 1164, 2291, 2292,  568,
1995      1164, 2293,  569, 1307, 1307, 1307, 2294, 1308, 1694, 2295,
1996      1309, 1708, 1708, 1708,  570,  575,  576,  263,  576,  575,
1997       575,  575,  575,  575,  575,  575,  577,  575,  575,  575,
1998      2296,  575,  579,  575,  580,  575, 1197, 1197, 1197, 2250,
1999      1165, 1197, 1197, 1197, 2297,  957,  957,  957, 2298, 1207,
2000      1207, 1207, 2299, 2300, 1199, 1711, 1711, 1711, 2306, 1199,
2001       575,  575,  958, 1908, 1908, 1908,  581, 1209, 1715, 1715,
2002      1715,  582,  575,  576,  263,  576,  575,  575,  575,  575,
2003
2004       575,  575,  575,  577,  575,  575,  575, 2307,  575,  579,
2005       575,  580,  575, 1207, 1207, 1207,  965,  965,  965, 2308,
2006      2309, 1200, 1215, 1215, 1215, 1218, 1218, 1218, 1223, 1223,
2007      1223, 1209, 2315,  966, 1718, 1718, 1718,  575,  575, 1216,
2008      2320, 2322, 1219,  581, 2324, 2325, 1225, 2330,  582,  586,
2009       587,  263,  587,  586,  586,  586,  586,  586,  586,  586,
2010       588,  586,  586,  586, 2331,  586,  590,  586,  591,  586,
2011      1230, 1230, 1230, 1230, 1230, 1230, 2333, 1210, 2334,  980,
2012       980,  980, 2326, 2335, 1223, 1223, 1223, 2336, 1232, 2340,
2013      2327, 1232, 2341, 2328,  586,  586,  981, 1000, 1000, 1000,
2014
2015       592, 2329, 1225, 1310, 1310, 1310, 2342, 1311, 2343, 2349,
2016      1312, 1913, 1913, 1913, 1001,  593,  586,  587,  263,  587,
2017       586,  586,  586,  586,  586,  586,  586,  588,  586,  586,
2018       586, 1226,  586,  590,  586,  591,  586, 1233, 1238, 1238,
2019      1238, 1238, 1238, 1238, 2350, 1261, 1261, 1261, 1261, 1261,
2020      1261, 1007, 1007, 1007, 2351, 2352, 1240, 2355, 2360, 1240,
2021      2364,  586,  586, 1263, 2365, 2370, 1263,  592, 1008, 1321,
2022      1321, 1321, 2371, 1322, 2372, 1914, 1323, 2373, 1241, 1728,
2023      1728, 1728,  593,  598,  599,  263,  599,  598,  598,  598,
2024       598,  598,  598,  598,  600,  598,  598,  598, 2375,  598,
2025
2026       602,  598,  603,  598, 1270, 1270, 1270, 1270, 1270, 1270,
2027      1023, 1023, 1023, 2366, 1264, 1276, 1276, 1276, 1276, 1276,
2028      1276, 2367, 1272, 2385, 1694, 1272, 2396, 1024,  598,  598,
2029      1282, 1282, 1282, 1278,  604, 2368, 1278,  605, 1325, 1325,
2030      1325, 2397, 1326, 2369, 2398, 1327, 2402, 1694, 1284,  606,
2031       598,  599,  263,  599,  598,  598,  598,  598,  598,  598,
2032       598,  600,  598,  598,  598, 2403,  598,  602,  598,  603,
2033       598, 2391, 2404, 1273, 1282, 1282, 1282, 2407, 2411, 1279,
2034      1295, 1295, 1295, 2412, 1295, 1295, 1295, 1302, 1302, 1302,
2035      2390, 2413, 1284, 2414, 2415,  598,  598, 2416, 1297, 2417,
2036
2037      2418,  604, 1297, 2419,  605, 1304, 1344, 1344, 1344, 2420,
2038      1345, 2433, 2434, 1346, 2435, 2436,  606,  611,  612,  263,
2039       612,  611,  611,  611,  611,  611,  611,  611,  613,  611,
2040       611,  611, 2437,  611,  615,  611,  616,  611, 2439, 1285,
2041      1036, 1036, 1036, 2445, 2446, 1298, 1302, 1302, 1302, 1038,
2042      1038, 1038, 2447, 1313, 1313, 1313, 2448, 1037, 1313, 1313,
2043      1313, 2449,  611,  611, 1304, 2450, 1039, 1916, 1916, 1916,
2044       617, 1315,  618, 2451, 2454,  619, 1315, 2455, 2456,  620,
2045      1762, 1762, 1762,  621,  611,  612,  263,  612,  611,  611,
2046       611,  611,  611,  611,  611,  613,  611,  611,  611, 2461,
2047
2048       611,  615,  611,  616,  611, 1044, 1044, 1044, 1305, 1047,
2049      1047, 1047, 2462, 1917, 1328, 1328, 1328, 2422, 2423, 1316,
2050      2424, 2463, 1045, 1340, 1340, 1340, 1048, 2468, 2425,  611,
2051       611, 1329, 1062, 1062, 1062, 2426, 2469,  617, 2457,  618,
2052      2470, 1342,  619, 1764, 1764, 1764,  620, 2471, 2458, 1063,
2053       621,  627,  628,  263,  628,  627,  627,  627,  627,  627,
2054       627,  627,  629,  627,  627,  627, 2480,  627,  631,  627,
2055       632,  627, 1064, 1064, 1064, 1347, 1347, 1347, 2481, 1348,
2056      2482, 2483, 1349, 2485, 1340, 1340, 1340, 2487, 2511, 1065,
2057      1350, 1350, 1350, 3343, 3343, 3343,  627,  627, 3343, 3343,
2058
2059      3343, 2512, 1342, 2514, 1364, 1364, 1364, 1351, 1365, 2515,
2060      3343, 1366, 1376, 1376, 1376, 3343, 1377, 1694, 2516, 1378,
2061       633,  627,  628,  263,  628,  627,  627,  627,  627,  627,
2062       627,  627,  629,  627,  627,  627, 1694,  627,  631,  627,
2063       632,  627, 1343, 2517, 1352, 1356, 1356, 1356, 2521, 2507,
2064      1353, 3343, 3343, 3343, 2522, 1076, 1076, 1076, 2523, 2524,
2065      3343, 3343, 3343, 1358, 2525, 2526,  627,  627, 3343, 1356,
2066      1356, 1356, 1077, 2508, 1384, 1384, 1384, 3343, 1385, 2527,
2067      2528, 1386, 1393, 1393, 1393, 2529, 1394, 1358, 2530, 1395,
2068       633,  637,  638,  263,  638,  637,  637,  637,  637,  637,
2069
2070       637,  637,  639,  637,  637,  637, 1354,  637,  641,  637,
2071       642,  637, 1355, 1367, 1367, 1367, 1359, 1371, 1371, 1371,
2072      1371, 1371, 1371, 1084, 1084, 1084, 1379, 1379, 1379, 2531,
2073      1368, 1765, 1765, 1765, 2533, 1373,  637,  637, 1373, 2534,
2074      1085, 1924, 1924, 1924, 1381, 2537, 2538,  643,  637,  638,
2075       263,  638,  637,  637,  637,  637,  637,  637,  637,  639,
2076       637,  637,  637, 2539,  637,  641,  637,  642,  637, 2540,
2077      2543, 1374, 1379, 1379, 1379, 1089, 1089, 1089, 1388, 1388,
2078      1388, 1388, 1388, 1388, 1095, 1095, 1095, 1925, 2535, 2541,
2079      1381, 2544, 1090,  637,  637, 2545, 1390, 2536, 2542, 1390,
2080
2081      2546, 1096, 2548, 2549,  643,  648,  649,  263,  649,  648,
2082       648,  648,  648,  648,  648,  648,  650,  648,  648,  648,
2083      2551,  648,  652,  648,  653,  648, 2557, 2558, 1391, 1399,
2084      1399, 1399, 2559, 1382, 2560, 1399, 1399, 1399, 1403, 1403,
2085      1403, 1405, 1405, 1405, 1408, 1408, 1408, 1401, 2564, 2565,
2086       648,  648, 2566, 1401, 2567, 1404, 2568, 2572, 1406, 2575,
2087      2576,  654, 1410, 1425, 1425, 1425, 2577, 1426, 2580, 2592,
2088      1427, 1984, 1984, 1984,  655,  648,  649,  263,  649,  648,
2089       648,  648,  648,  648,  648,  648,  650,  648,  648,  648,
2090      1402,  648,  652,  648,  653,  648, 3343, 3343, 3343, 1408,
2091
2092      1408, 1408, 1413, 1413, 1413, 2593, 3343, 3343, 3343, 1417,
2093      1417, 1417, 2596, 3343, 1420, 1420, 1420, 1410, 2597, 1414,
2094       648,  648, 1694, 3343, 2617, 2618, 1418, 1694, 1420, 1420,
2095      1420,  654, 1422, 3343, 3343, 3343, 1115, 1115, 1115, 1428,
2096      1428, 1428, 2619, 1149,  655,  663, 1422, 1432, 1432, 1432,
2097      3343, 2620,  678, 1116, 2621, 1407, 1415, 1430, 2630, 2615,
2098      1411,  662,  679, 2631, 1433, 1423, 1428, 1428, 1428, 2632,
2099      2616, 1416, 2092, 2092, 2092, 2633, 1434, 1434, 1434, 2634,
2100      1436, 1436, 1436, 2614, 1430, 1436, 1436, 1436, 2635,  680,
2101       681,  682, 1419, 1435, 2636,  683,  684,  685, 1438, 2637,
2102
2103       686,  687, 2638, 1438,  688, 2639,  689,  690,  691,  663,
2104      1440, 1440, 1440, 3343, 3343, 3343,  735, 1444, 1444, 1444,
2105      2640, 1431, 1446, 1446, 1446,  662,  736, 1441, 2642, 2643,
2106      3343, 1446, 1446, 1446, 1445, 1139, 1139, 1139, 2624, 2644,
2107      1448, 1143, 1143, 1143, 1455, 1455, 1455, 2645, 2625, 1448,
2108      2646, 2626, 1140,  680,  737,  692, 1439, 2647, 1144,  738,
2109       739,  685, 1457, 1442,  740,  687, 2648, 2649,  741, 2650,
2110       742,  743,  691, 1455, 1455, 1455, 2651, 2652, 1443, 1461,
2111      1461, 1461, 1461, 1461, 1461, 1465, 1465, 1465, 2627, 1466,
2112      2653, 1457, 1467, 1468, 1468, 1468, 2654, 1463, 2628, 2655,
2113
2114      1463, 2629, 1449, 1468, 1468, 1468, 1472, 1472, 1472, 2656,
2115      1473, 1470, 2657, 1474, 1476, 1476, 1476, 1476, 1476, 1476,
2116      2659, 1470, 1162, 1162, 1162, 1162, 1162, 1162, 2660, 1162,
2117      1162, 1162, 1478, 2668, 2669, 1478, 2670, 1458, 2673, 2674,
2118      1164, 2678, 2679, 1164, 2714, 1149, 1464, 1164, 1518, 1518,
2119      1518, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
2120      1521, 1521, 1521, 1694, 1471, 1519, 1202, 1202, 1202, 1199,
2121      1203, 2716, 1199, 1204, 2711, 1199, 1488, 1522, 3343, 3343,
2122      3343, 1479, 1207, 1207, 1207, 1207, 1207, 1207, 2697, 1207,
2123      1207, 1207, 1212, 1212, 1212, 3343, 1213, 2717, 2698, 1214,
2124
2125      1209, 2718, 2722, 1209, 2699, 2712, 1520, 1209, 1215, 1215,
2126      1215, 1527, 1527, 1527, 2700, 1528, 2723, 2726, 1529, 1694,
2127      1530, 1530, 1530, 2727, 2701, 1216, 1218, 1218, 1218, 2730,
2128      2702, 1532, 1532, 1532, 2731, 1533, 1525, 1531, 1534, 1523,
2129      1536, 1536, 1536, 1219, 1223, 1223, 1223, 1223, 1223, 1223,
2130      1223, 1223, 1223, 1541, 1541, 1541, 2724, 1537, 1230, 1230,
2131      1230, 2713, 1225, 2732, 2733, 1225, 2734, 2735, 1225, 2725,
2132      1542, 1230, 1230, 1230, 2736, 2728, 1232, 1230, 1230, 1230,
2133      1234, 1234, 1234, 2737, 1235, 2738, 2740, 1236, 2729, 1232,
2134      1238, 1238, 1238, 2741, 2742, 1232, 1238, 1238, 1238, 1546,
2135
2136      1546, 1546, 1256, 1256, 1256, 2743, 1257, 2744, 1240, 1258,
2137      1539, 1563, 1563, 1563, 1240, 2745, 2746, 1547, 1261, 1261,
2138      1261, 1261, 1261, 1261, 1544, 1261, 1261, 1261, 1564, 2747,
2139      1266, 1266, 1266, 2748, 1267, 2749, 1263, 1268, 2750, 1263,
2140      1270, 1270, 1270, 1263, 1270, 1270, 1270, 1270, 1270, 1270,
2141      1569, 1569, 1569, 3343, 3343, 3343, 2751, 2752, 1272, 1276,
2142      1276, 1276, 1272, 2754, 2766, 1272, 2767, 1570, 2775, 2776,
2143      3343, 1276, 1276, 1276, 1276, 1276, 1276, 1278, 1573, 1573,
2144      1573, 3343, 3343, 3343, 2777, 2794, 1565, 2795, 2796, 1278,
2145      2797, 2798, 1278, 2799, 2802, 1574, 2810, 2812, 3343, 2813,
2146
2147      1571, 1282, 1282, 1282, 1282, 1282, 1282, 2803, 1568, 1575,
2148      1282, 1282, 1282, 1579, 1579, 1579, 1289, 1289, 1289, 1284,
2149      1290, 2814, 1284, 1291, 1295, 1295, 1295, 2804, 1284, 2815,
2150      1580, 1295, 1295, 1295, 1295, 1295, 1295, 1587, 1587, 1587,
2151      2805, 1572, 1297, 1302, 1302, 1302, 1302, 1302, 1302, 1297,
2152      2816, 2817, 1297, 2818, 1588, 1302, 1302, 1302, 1590, 1590,
2153      1590, 1304, 1694, 2819, 1304, 1307, 1307, 1307, 1149, 1308,
2154      2820, 2821, 1309, 1304, 2824, 1591, 1576, 1310, 1310, 1310,
2155      2825, 1311, 2826, 2827, 1312, 1313, 1313, 1313, 1313, 1313,
2156      1313, 1313, 1313, 1313, 1321, 1321, 1321, 2807, 1322, 1584,
2157
2158      2828, 1323, 2829, 1315, 2830, 2831, 1315, 2833, 2834, 1315,
2159      1597, 1597, 1597, 1325, 1325, 1325, 2806, 1326, 2835, 2836,
2160      1327, 2837, 1589, 1328, 1328, 1328, 2838, 1598, 1599, 1599,
2161      1599, 2839, 1600, 2840, 2841, 1601, 1340, 1340, 1340, 2842,
2162      1329, 1340, 1340, 1340, 1340, 1340, 1340, 2843, 1344, 1344,
2163      1344, 2844, 1345, 2845, 1342, 1346, 1592, 2857, 2858, 1342,
2164      2859, 2866, 1342, 1347, 1347, 1347, 2867, 1348, 2868, 2874,
2165      1349, 1350, 1350, 1350, 1613, 1613, 1613, 2882, 1614, 2875,
2166      2883, 1615, 1356, 1356, 1356, 1356, 1356, 1356, 1351, 1356,
2167      1356, 1356, 1364, 1364, 1364, 2884, 1365, 2885, 2886, 1366,
2168
2169      1358, 2887, 2891, 1358, 1367, 1367, 1367, 1358, 1625, 1625,
2170      1625, 1612, 1626, 2892, 2893, 1627, 1371, 1371, 1371, 2894,
2171      2904, 1368, 1371, 1371, 1371, 1371, 1371, 1371, 1376, 1376,
2172      1376, 2876, 1377, 1149, 1373, 1378, 2905, 1620, 2906, 2907,
2173      1373, 2877, 2908, 1373, 1379, 1379, 1379, 1379, 1379, 1379,
2174      1379, 1379, 1379, 1384, 1384, 1384, 2878, 1385, 2909, 2910,
2175      1386, 2911, 1381, 2915, 2916, 1381, 2879, 2895, 1381, 1388,
2176      1388, 1388, 1388, 1388, 1388, 2917, 1630, 1388, 1388, 1388,
2177      2918, 1393, 1393, 1393, 2880, 1394, 2919, 1390, 1395, 2920,
2178      1390, 1399, 1399, 1399, 2881, 1390, 1399, 1399, 1399, 2922,
2179
2180      1399, 1399, 1399, 1403, 1403, 1403, 1641, 1641, 1641, 1401,
2181      1642, 2923, 2924, 1643, 1401, 2925, 2926, 1632, 1401, 2927,
2182      1404, 1405, 1405, 1405, 2928, 2929, 1635, 1644, 1644, 1644,
2183      2933, 1645, 2934, 2935, 1646, 1408, 1408, 1408, 1406, 1408,
2184      1408, 1408, 2938, 1408, 1408, 1408, 1413, 1413, 1413, 2939,
2185      1417, 1417, 1417, 1410, 1908, 1908, 1908, 1410, 2944, 2945,
2186      1640, 1410, 2946, 1414, 1650, 1650, 1650, 1418, 1651, 2947,
2187      2948, 1652, 1655, 1655, 1655, 2949, 1656, 2950, 2951, 1657,
2188      1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1425,
2189      1425, 1425, 2952, 1426, 2953, 2954, 1427, 2955, 1422, 2957,
2190
2191      2958, 1422, 2959, 2960, 1422, 1428, 1428, 1428, 1149, 2967,
2192      1648, 1428, 1428, 1428, 1428, 1428, 1428, 1432, 1432, 1432,
2193      1662, 1662, 1662, 1430, 1663, 2968, 2969, 1664, 2970, 1430,
2194      2971, 2972, 1430, 2973, 1433, 1434, 1434, 1434, 1665, 1665,
2195      1665, 2974, 1666, 2975, 2976, 1667, 1436, 1436, 1436, 2977,
2196      1659, 2961, 1435, 1436, 1436, 1436, 2978, 1436, 1436, 1436,
2197      1440, 1440, 1440, 2979, 1438, 1669, 1669, 1669, 2980, 1670,
2198      2983, 1438, 1671, 2984, 1661, 1438, 2985, 1441, 1444, 1444,
2199      1444, 1674, 1674, 1674, 2986, 1675, 2987, 2988, 1676, 1446,
2200      1446, 1446, 1446, 1446, 1446, 1445, 1446, 1446, 1446, 1679,
2201
2202      1679, 1679, 1455, 1455, 1455, 2989, 2990, 1448, 2991, 2995,
2203      1448, 1455, 1455, 1455, 1448, 2996, 1680, 3003, 3004, 1668,
2204      1457, 1455, 1455, 1455, 1461, 1461, 1461, 3005, 3006, 1457,
2205      1461, 1461, 1461, 1461, 1461, 1461, 1465, 1465, 1465, 1457,
2206      1466, 3007, 1463, 1467, 1468, 1468, 1468, 3008, 1463, 3009,
2207      3010, 1463, 1468, 1468, 1468, 1468, 1468, 1468, 1677, 1472,
2208      1472, 1472, 1470, 1473, 3011, 3012, 1474, 1476, 1476, 1476,
2209      1470, 3013, 3014, 1470, 1476, 1476, 1476, 1476, 1476, 1476,
2210      3017, 3018, 1684, 3019, 3020, 1478, 1687, 1693, 1693, 1693,
2211      3028, 1149, 1478, 3023, 3029, 1478, 1162, 1162, 1162, 1518,
2212
2213      1518, 1518, 1197, 1197, 1197, 1694, 1695, 3024, 1521, 1521,
2214      1521, 1546, 1546, 1546, 1164, 1688, 1519, 1731, 1731, 1731,
2215      1199, 1732, 3030, 3031, 1733, 1522, 1735, 1735, 1735, 1547,
2216      1736, 3023, 3032, 1737, 1207, 1207, 1207, 3021, 1690, 1527,
2217      1527, 1527, 3026, 1528, 3033, 3034, 1529, 1530, 1530, 1530,
2218      3035, 3036, 1209, 3037, 1742, 1742, 1742, 3038, 1743, 3039,
2219      1734, 1744, 1700, 3040, 1531, 1532, 1532, 1532, 3041, 1533,
2220      3042, 3043, 1534, 1536, 1536, 1536, 3044, 1746, 1746, 1746,
2221      3051, 1747, 3056, 1740, 1748, 1223, 1223, 1223, 3045, 3057,
2222      1537, 1541, 1541, 1541, 1752, 1752, 1752, 3058, 1753, 3059,
2223
2224      3046, 1754, 3060, 1225, 1755, 1755, 1755, 3061, 1542, 1230,
2225      1230, 1230, 1773, 1773, 1773, 1563, 1563, 1563, 1775, 1775,
2226      1775, 1756, 1776, 1694, 1695, 1777, 3064, 1232, 1149, 1774,
2227      3064, 3067, 1564, 3068, 3023, 1750, 1261, 1261, 1261, 1270,
2228      1270, 1270, 1569, 1569, 1569, 1782, 1782, 1782, 3024, 1783,
2229      3069, 3070, 1784, 3071, 1263, 3083, 3086, 1272, 1757, 1570,
2230      1276, 1276, 1276, 1573, 1573, 1573, 1787, 1787, 1787, 3062,
2231      1788, 3072, 3094, 1789, 1282, 1282, 1282, 3047, 1278, 3097,
2232      1574, 1579, 1579, 1579, 1794, 1794, 1794, 3052, 1795, 3048,
2233      3054, 1796, 1284, 1797, 1797, 1797, 3098, 3099, 1580, 3053,
2234
2235      1778, 3064, 3055, 1781, 1800, 1800, 1800, 1295, 1295, 1295,
2236      1798, 1587, 1587, 1587, 3101, 1806, 1806, 1806, 3064, 1807,
2237      1786, 1801, 1808, 3081, 3073, 1297, 3102, 3103, 1588, 1809,
2238      1809, 1809, 1590, 1590, 1590, 1791, 1811, 1811, 1811, 3074,
2239      1812, 3084, 3082, 1813, 1313, 1313, 1313, 1810, 3104, 1591,
2240      1802, 1816, 1816, 1816, 1597, 1597, 1597, 1820, 1820, 1820,
2241      3085, 1821, 1315, 3105, 1822, 1599, 1599, 1599, 1817, 1600,
2242      3106, 1598, 1601, 1803, 1825, 1825, 1825, 1340, 1340, 1340,
2243      1613, 1613, 1613, 3107, 1614, 3117, 3118, 1615, 1835, 1835,
2244      1835, 1826, 3343, 3343, 3343, 1342, 3343, 3343, 3343, 3343,
2245
2246      3343, 3343, 1356, 1356, 1356, 1836, 1842, 1842, 1842, 3343,
2247      1814, 3023, 3119, 3343, 3120, 3121, 3343, 1625, 1625, 1625,
2248      1358, 1626, 3026, 1843, 1627, 3122, 3126, 1846, 1846, 1846,
2249      1371, 1371, 1371, 1379, 1379, 1379, 1388, 1388, 1388, 1858,
2250      1858, 1858, 1834, 1838, 1847, 1399, 1399, 1399, 1373, 3127,
2251      3128, 1381, 3129, 3130, 1390, 3131, 1859, 1840, 3132, 1408,
2252      1408, 1408, 1837, 1401, 1641, 1641, 1641, 3092, 1642, 1839,
2253      3133, 1643, 1644, 1644, 1644, 3135, 1645, 1410, 3136, 1646,
2254      1650, 1650, 1650, 3137, 1651, 1860, 3093, 1652, 1655, 1655,
2255      1655, 3138, 1656, 1854, 1849, 1657, 1420, 1420, 1420, 1851,
2256
2257      3139, 3095, 1861, 1428, 1428, 1428, 1662, 1662, 1662, 3144,
2258      1663, 3140, 3142, 1664, 1422, 1665, 1665, 1665, 3145, 1666,
2259      3096, 1430, 1667, 3141, 3143, 1863, 1436, 1436, 1436, 1669,
2260      1669, 1669, 3146, 1670, 3147, 3148, 1671, 3149, 1674, 1674,
2261      1674, 3150, 1675, 3151, 1438, 1676, 1446, 1446, 1446, 1679,
2262      1679, 1679, 1876, 1876, 1876, 3152, 1877, 1868, 3153, 1878,
2263      1870, 1455, 1455, 1455, 1448, 3154, 1680, 1884, 1884, 1884,
2264      1461, 1461, 1461, 1871, 1468, 1468, 1468, 3155, 3156, 1457,
2265      1888, 1888, 1888, 3157, 1885, 1476, 1476, 1476, 1463, 1693,
2266      1693, 1693, 1470, 1874, 1162, 1162, 1162, 1889, 1731, 1731,
2267
2268      1731, 3159, 1732, 1478, 3160, 1733, 3161, 1694, 3162, 3163,
2269      1882, 3164, 1164, 1197, 1197, 1197, 1735, 1735, 1735, 1149,
2270      1736, 3165, 3166, 1737, 3167, 3168, 1887, 1207, 1207, 1207,
2271      3169, 1199, 1742, 1742, 1742, 3170, 1743, 1886, 3171, 1744,
2272      1892, 1223, 1223, 1223, 3158, 1209, 1897, 1890, 1746, 1746,
2273      1746, 3172, 1747, 3173, 3174, 1748, 3175, 1893, 3176, 1225,
2274      1752, 1752, 1752, 3177, 1753, 3178, 3180, 1754, 1755, 1755,
2275      1755, 3181, 1943, 1943, 1943, 3182, 1944, 3183, 1929, 1945,
2276      1926, 1230, 1230, 1230, 3184, 1756, 1952, 1952, 1952, 1952,
2277      1952, 1952, 1913, 1913, 1913, 1773, 1773, 1773, 3185, 1232,
2278
2279      1149, 3186, 1933, 1958, 1958, 1958, 3187, 1959, 3188, 3189,
2280      1960, 3190, 1774, 1775, 1775, 1775, 3191, 1776, 3192, 3179,
2281      1777, 1261, 1261, 1261, 1963, 1963, 1963, 1270, 1270, 1270,
2282      3193, 3194, 1946, 1782, 1782, 1782, 3195, 1783, 3196, 1263,
2283      1784, 1964, 1276, 1276, 1276, 1272, 3197, 1787, 1787, 1787,
2284      1953, 1788, 3199, 1914, 1789, 3200, 1953, 1282, 1282, 1282,
2285      1278, 1968, 1968, 1968, 3201, 1794, 1794, 1794, 1961, 1795,
2286      3202, 3203, 1796, 3204, 1965, 1284, 3205, 3206, 1969, 1797,
2287      1797, 1797, 1973, 1973, 1973, 1149, 1974, 3207, 3208, 1975,
2288      1976, 1976, 1976, 1800, 1800, 1800, 1798, 1978, 1978, 1978,
2289
2290      3209, 1979, 3210, 3211, 1980, 3198, 3212, 1977, 1967, 3213,
2291      1801, 1982, 1982, 1982, 3214, 1806, 1806, 1806, 3215, 1807,
2292      3216, 1970, 1808, 1809, 1809, 1809, 1811, 1811, 1811, 1983,
2293      1812, 3218, 3219, 1813, 1313, 1313, 1313, 1816, 1816, 1816,
2294      3220, 1810, 1988, 1988, 1988, 1149, 1989, 3221, 3222, 1990,
2295      3223, 3217, 1315, 3224, 1817, 1991, 1991, 1991, 1820, 1820,
2296      1820, 3225, 1821, 3226, 3227, 1822, 1825, 1825, 1825, 1996,
2297      1996, 1996, 1992, 1997, 3228, 3229, 1998, 1999, 1999, 1999,
2298      1986, 3231, 3232, 1826, 2005, 2005, 2005, 1340, 1340, 1340,
2299      1835, 1835, 1835, 3233, 2000, 2009, 2009, 2009, 3234, 2010,
2300
2301      3235, 2006, 2011, 3236, 3237, 1342, 3238, 1836, 2012, 2012,
2302      2012, 3343, 3343, 3343, 2015, 2015, 2015, 1356, 1356, 1356,
2303      1842, 1842, 1842, 3240, 1149, 2013, 3241, 3242, 3343, 3243,
2304      3244, 2016, 2019, 2019, 2019, 1358, 2020, 1843, 3230, 2021,
2305      2022, 2022, 2022, 1846, 1846, 1846, 3245, 2025, 2025, 2025,
2306      3246, 2026, 3247, 2008, 2027, 3250, 3251, 2023, 3252, 3253,
2307      1847, 2029, 2029, 2029, 1379, 1379, 1379, 3254, 3255, 2014,
2308      1388, 1388, 1388, 1858, 1858, 1858, 1149, 2017, 1149, 2030,
2309      3264, 1149, 1381, 3266, 1149, 2039, 2039, 2039, 1390, 2040,
2310      1859, 1149, 2041, 2043, 2043, 2043, 1408, 1408, 1408, 2048,
2311
2312      2048, 2048, 2050, 2050, 2050, 3343, 3343, 3343, 1420, 1420,
2313      1420, 2044, 3256, 3276, 1410, 2032, 2049, 3257, 2035, 2051,
2314      1149, 1149, 3343, 1436, 1436, 1436, 1422, 1428, 1428, 1428,
2315      1724, 2057, 2057, 2057, 2059, 2059, 2059, 1446, 1446, 1446,
2316      1149, 1438, 1876, 1876, 1876, 1430, 1877, 2046, 2058, 1878,
2317      1149, 2060, 1455, 1455, 1455, 1448, 1149, 1884, 1884, 1884,
2318      2068, 2068, 2068, 3267, 2069, 3262, 1723, 2070, 3258, 2052,
2319      1457, 1149, 3282, 2055, 1885, 2053, 1461, 1461, 1461, 1468,
2320      1468, 1468, 1888, 1888, 1888, 2073, 2073, 2073, 2056, 2074,
2321      1149, 3265, 2075, 3268, 1463, 1149, 1149, 1470, 3259, 1889,
2322
2323      3263, 1149, 2061, 2066, 2076, 2076, 2076, 2082, 2082, 2082,
2324      1162, 1162, 1162, 2099, 2099, 2099, 1913, 1913, 1913, 2100,
2325      2100, 2100, 2077, 1149, 2083, 1916, 1916, 1916, 1164, 2103,
2326      2103, 2103, 3302, 3272, 2072, 2071, 2104, 2104, 2104, 1924,
2327      1924, 1924, 1197, 1197, 1197, 2113, 2113, 2113, 2116, 2116,
2328      2116, 1223, 1223, 1223, 1149, 2120, 2120, 2120, 3277, 1722,
2329      1199, 1149, 1721, 2114, 1149, 2117, 1943, 1943, 1943, 1225,
2330      1944, 2084, 2121, 1945, 1720, 1230, 1230, 1230, 2133, 2133,
2331      2133, 1952, 1952, 1952, 2140, 2140, 2140, 2142, 2142, 2142,
2332      1719, 3269, 2110, 1232, 1149, 2134, 1958, 1958, 1958, 1149,
2333
2334      1959, 3273, 3260, 1960, 2143, 1261, 1261, 1261, 1149, 3261,
2335      2119, 2146, 2146, 2146, 1963, 1963, 1963, 3284, 2149, 2149,
2336      2149, 2132, 2150, 1263, 1149, 2151, 1149, 1149, 2147, 1149,
2337      1717, 1964, 1149, 2144, 1270, 1270, 1270, 2154, 2154, 2154,
2338      1149, 3270, 1968, 1968, 1968, 1149, 2156, 2156, 2156, 3274,
2339      2157, 1149, 1272, 2158, 1149, 2155, 3283, 2148, 2145, 1969,
2340      1282, 1282, 1282, 1973, 1973, 1973, 3280, 1974, 1149, 3281,
2341      1975, 1976, 1976, 1976, 3271, 2162, 2162, 2162, 1284, 2163,
2342      3286, 3275, 2164, 1982, 1982, 1982, 3285, 2152, 1977, 1978,
2343      1978, 1978, 1149, 1979, 3290, 1149, 1980, 1984, 1984, 1984,
2344
2345      3278, 1983, 1313, 1313, 1313, 1716, 1714, 2159, 1988, 1988,
2346      1988, 1149, 1989, 1149, 3279, 1990, 1991, 1991, 1991, 1149,
2347      1315, 2171, 2171, 2171, 1713, 2172, 3298, 3287, 2173, 1149,
2348      1996, 1996, 1996, 1992, 1997, 1149, 1710, 1998, 1999, 1999,
2349      1999, 2177, 2177, 2177, 1149, 2178, 3294, 3288, 2179, 2180,
2350      2180, 2180, 2005, 2005, 2005, 2000, 1149, 2185, 2185, 2185,
2351      2169, 2186, 3291, 3289, 2187, 1149, 2181, 3299, 1149, 2006,
2352      1340, 1340, 1340, 2009, 2009, 2009, 1149, 2010, 1149, 1707,
2353      2011, 2012, 2012, 2012, 1149, 2190, 2190, 2190, 1342, 2191,
2354      3292, 3295, 2192, 2193, 2193, 2193, 1149, 3316, 2013, 2015,
2355
2356      2015, 2015, 2195, 2195, 2195, 1149, 2196, 3303, 1149, 2197,
2357      2194, 1356, 1356, 1356, 3293, 3300, 2016, 3296, 2019, 2019,
2358      2019, 2189, 2020, 1706, 1149, 2021, 2022, 2022, 2022, 1358,
2359      2200, 2200, 2200, 3301, 2201, 1149, 1705, 2202, 2025, 2025,
2360      2025, 3297, 2026, 2023, 1149, 2027, 2029, 2029, 2029, 1379,
2361      1379, 1379, 2208, 2208, 2208, 1388, 1388, 1388, 2212, 2212,
2362      2212, 3306, 2198, 1149, 2030, 1149, 1149, 1381, 1149, 2209,
2363      2039, 2039, 2039, 1390, 2040, 2213, 3322, 2041, 2043, 2043,
2364      2043, 2220, 2220, 2220, 2048, 2048, 2048, 2223, 2223, 2223,
2365      3304, 2224, 1149, 3310, 2225, 3308, 2044, 3309, 1704, 2221,
2366
2367      3307, 2049, 1149, 1149, 2214, 2050, 2050, 2050, 2226, 2226,
2368      2226, 3305, 2227, 2206, 1703, 2228, 2210, 1420, 1420, 1420,
2369      1702, 1149, 2051, 1428, 1428, 1428, 1436, 1436, 1436, 2057,
2370      2057, 2057, 2234, 2234, 2234, 1422, 2235, 3312, 3314, 2236,
2371      1149, 1430, 1149, 1701, 1438, 3317, 2058, 2059, 2059, 2059,
2372      2237, 2237, 2237, 1149, 2238, 3313, 3311, 2239, 1446, 1446,
2373      1446, 1455, 1455, 1455, 2060, 1149, 2068, 2068, 2068, 1699,
2374      2069, 1149, 2232, 2070, 1149, 1149, 1448, 3324, 1149, 1457,
2375      1461, 1461, 1461, 2230, 1468, 1468, 1468, 3318, 2073, 2073,
2376      2073, 2233, 2074, 1149, 1698, 2075, 1697, 1696, 1463, 2076,
2377
2378      2076, 2076, 1470, 2082, 2082, 2082, 2253, 2253, 2253, 1689,
2379      2254, 3320, 1686, 2255, 1162, 1162, 1162, 2077, 3319, 3323,
2380      2083, 3315, 3340, 2240, 1685, 1683, 2245, 2257, 2257, 2257,
2381      3321, 2247, 1164, 2262, 2262, 2262, 1149, 2248, 2263, 2263,
2382      2263, 2092, 2092, 2092, 2265, 2265, 2265, 2269, 2269, 2269,
2383      2099, 2099, 2099, 2100, 2100, 2100, 2270, 2270, 2270, 2103,
2384      2103, 2103, 2104, 2104, 2104, 2273, 2273, 2273, 2274, 2274,
2385      2274, 2275, 2275, 2275, 2276, 2276, 2276, 1149, 2256, 1197,
2386      1197, 1197, 2113, 2113, 2113, 1682, 2116, 2116, 2116, 2282,
2387      2282, 2282, 3332, 2283, 1149, 1681, 2284, 1199, 1678, 1673,
2388
2389      2114, 1149, 2271, 2117, 2286, 2286, 2286, 2120, 2120, 2120,
2390      2288, 2288, 2288, 1672, 2289, 1660, 1658, 2290, 1230, 1230,
2391      1230, 1149, 2287, 3326, 2121, 2133, 2133, 2133, 1149, 3325,
2392      2278, 2302, 2302, 2302, 1149, 2303, 1232, 1654, 2304, 2305,
2393      2305, 2305, 2134, 2140, 2140, 2140, 2310, 2310, 2310, 2142,
2394      2142, 2142, 2312, 2312, 2312, 1149, 2313, 1653, 3328, 2314,
2395      1261, 1261, 1261, 2146, 2146, 2146, 2143, 2301, 2317, 2317,
2396      2317, 3329, 2318, 1149, 3327, 2319, 1149, 3333, 1263, 1649,
2397      2147, 2149, 2149, 2149, 1149, 2150, 1149, 3330, 2151, 1270,
2398      1270, 1270, 2311, 1149, 2154, 2154, 2154, 2156, 2156, 2156,
2399
2400      1149, 2157, 1647, 1639, 2158, 3331, 1149, 1272, 1282, 1282,
2401      1282, 2316, 2155, 2162, 2162, 2162, 3334, 2163, 1638, 3340,
2402      2164, 1313, 1313, 1313, 3336, 3335, 1284, 2171, 2171, 2171,
2403      1149, 2172, 3338, 1637, 2173, 2180, 2180, 2180, 1636, 1315,
2404      2321, 2177, 2177, 2177, 1634, 2178, 1633, 1631, 2179, 2337,
2405      2337, 2337, 2181, 2338, 3337, 1149, 2339, 1629, 2185, 2185,
2406      2185, 2323, 2186, 1628, 1624, 2187, 1340, 1340, 1340, 1623,
2407      2190, 2190, 2190, 1622, 2191, 1621, 2332, 2192, 2193, 2193,
2408      2193, 2345, 2345, 2345, 1342, 2346, 1619, 3339, 2347, 2195,
2409      2195, 2195, 1618, 2196, 1617, 2194, 2197, 1356, 1356, 1356,
2410
2411      2200, 2200, 2200, 1616, 2201, 1611, 1610, 2202, 2353, 2353,
2412      2353, 2208, 2208, 2208, 1609, 1358, 2356, 2356, 2356, 1608,
2413      2357, 1607, 1606, 2358, 1605, 1604, 2354, 1603, 2209, 1602,
2414      2344, 1388, 1388, 1388, 2212, 2212, 2212, 2361, 2361, 2361,
2415      1596, 2362, 1595, 1594, 2363, 1593, 2220, 2220, 2220, 1390,
2416      1586, 2213, 2223, 2223, 2223, 1585, 2224, 1583, 1582, 2225,
2417      1420, 1420, 1420, 2348, 2221, 2226, 2226, 2226, 1581, 2227,
2418      1578, 1577, 2228, 1567, 1428, 1428, 1428, 1566, 1422, 1436,
2419      1436, 1436, 2234, 2234, 2234, 1562, 2235, 1561, 1560, 2236,
2420      1559, 2359, 1430, 1558, 2237, 2237, 2237, 1438, 2238, 1557,
2421
2422      1556, 2239, 1446, 1446, 1446, 1555, 2379, 2379, 2379, 1553,
2423      1552, 2374, 3343, 3343, 3343, 2377, 3343, 3343, 3343, 1550,
2424      1448, 1549, 2378, 2380, 3343, 3343, 3343, 1548, 1545, 3343,
2425      1455, 1455, 1455, 3343, 1461, 1461, 1461, 2387, 2387, 2387,
2426      2376, 3343, 2389, 2389, 2389, 2392, 2392, 2392, 1457, 2253,
2427      2253, 2253, 1463, 2254, 1543, 2388, 2255, 1162, 1162, 1162,
2428      1149, 1540, 1538, 2381, 2257, 2257, 2257, 2394, 2394, 2394,
2429      2395, 2395, 2395, 1535, 1526, 1164, 2262, 2262, 2262, 1524,
2430      2382, 1517, 1515, 2383, 2263, 2263, 2263, 2265, 2265, 2265,
2431      2399, 2399, 2399, 1514, 2386, 2384, 2400, 2400, 2400, 2401,
2432
2433      2401, 2401, 2269, 2269, 2269, 2270, 2270, 2270, 2273, 2273,
2434      2273, 2274, 2274, 2274, 1513, 1512, 2393, 2275, 2275, 2275,
2435      2276, 2276, 2276, 2405, 2405, 2405, 2408, 2408, 2408, 2282,
2436      2282, 2282, 1511, 2283, 1510, 1509, 2284, 3343, 3343, 3343,
2437      1508, 2406, 1507, 2409, 2286, 2286, 2286, 1506, 2288, 2288,
2438      2288, 1503, 2289, 1502, 3343, 2290, 1230, 1230, 1230, 2302,
2439      2302, 2302, 2287, 2303, 2427, 2428, 2304, 2429, 2305, 2305,
2440      2305, 2432, 2432, 2432, 1232, 2430, 2310, 2310, 2310, 2312,
2441      2312, 2312, 2431, 2313, 1501, 1500, 2314, 1261, 1261, 1261,
2442      2317, 2317, 2317, 1499, 2318, 1498, 1497, 2319, 2440, 2440,
2443
2444      2440, 1495, 1494, 2410, 1493, 1263, 2442, 2442, 2442, 1282,
2445      1282, 1282, 2452, 2452, 2452, 1492, 2441, 2421, 1313, 1313,
2446      1313, 1491, 1490, 2443, 2337, 2337, 2337, 1284, 2338, 1489,
2447      1487, 2339, 1486, 2438, 1485, 1484, 1315, 2459, 2459, 2459,
2448      2464, 2464, 2464, 2345, 2345, 2345, 1483, 2346, 1482, 1481,
2449      2347, 2466, 2466, 2466, 2460, 2353, 2353, 2353, 2465, 1149,
2450      2444, 1475, 2472, 2472, 2472, 1388, 1388, 1388, 1460, 2467,
2451      2356, 2356, 2356, 2354, 2357, 1459, 1454, 2358, 2453, 2473,
2452      2475, 2475, 2475, 1390, 2361, 2361, 2361, 1453, 2362, 1452,
2453      1451, 2363, 3343, 3343, 3343, 1450, 1424, 2476, 3343, 3343,
2454
2455      3343, 3343, 3343, 3343, 2486, 2486, 2486, 1412, 1398, 3343,
2456      2488, 2488, 2488, 1397, 1396, 3343, 2474, 1392, 3343, 2490,
2457      2490, 2490, 1428, 1428, 1428, 1387, 2477, 1383, 2489, 1375,
2458      1436, 1436, 1436, 1446, 1446, 1446, 2491, 2379, 2379, 2379,
2459      1430, 1370, 2495, 2495, 2495, 1369, 2496, 2478, 1438, 2497,
2460      1363, 1448, 2484, 1360, 2380, 2498, 2498, 2498, 1339, 2479,
2461      3343, 3343, 3343, 3343, 3343, 3343, 2502, 2502, 2502, 1338,
2462      2494, 1337, 2499, 2504, 2504, 2504, 1336, 3343, 1335, 1334,
2463      3343, 1333, 2492, 1332, 2503, 1461, 1461, 1461, 2387, 2387,
2464      2387, 2493, 2389, 2389, 2389, 2392, 2392, 2392, 2509, 2509,
2465
2466      2509, 1331, 1330, 1463, 1324, 1317, 2388, 2394, 2394, 2394,
2467      1149, 2500, 1306, 1301, 2501, 1300, 2510, 2395, 2395, 2395,
2468      2513, 2513, 2513, 2399, 2399, 2399, 2400, 2400, 2400, 2401,
2469      2401, 2401, 2405, 2405, 2405, 2408, 2408, 2408, 2518, 2518,
2470      2518, 1299, 2519, 1294, 1293, 2520, 1230, 1230, 1230, 1292,
2471      2406, 2505, 2409, 1288, 2506, 2432, 2432, 2432, 2547, 2547,
2472      2547, 1261, 1261, 1261, 1232, 2440, 2440, 2440, 2442, 2442,
2473      2442, 2552, 2552, 2552, 1287, 2553, 1286, 1281, 2554, 1263,
2474      2555, 2555, 2555, 2441, 1280, 2443, 2561, 2561, 2561, 2452,
2475      2452, 2452, 1313, 1313, 1313, 2459, 2459, 2459, 2556, 1275,
2476
2477      2569, 2569, 2569, 2562, 2570, 1274, 2532, 2571, 1269, 1265,
2478      1315, 1260, 2460, 2573, 2573, 2573, 2464, 2464, 2464, 2466,
2479      2466, 2466, 2578, 2578, 2578, 1259, 1255, 2550, 1254, 1253,
2480      2574, 2472, 2472, 2472, 2465, 1252, 1251, 2467, 1250, 2579,
2481      2581, 2581, 2581, 1249, 2582, 1248, 1247, 2583, 2473, 2563,
2482      2584, 2584, 2584, 2475, 2475, 2475, 2586, 2586, 2586, 1246,
2483      2587, 1245, 1244, 2588, 3343, 3343, 3343, 1243, 2585, 1237,
2484      2476, 3343, 3343, 3343, 3343, 3343, 3343, 2594, 2594, 2594,
2485      1229, 3343, 2486, 2486, 2486, 2488, 2488, 2488, 3343, 1228,
2486      1227, 3343, 1222, 1221, 2595, 2490, 2490, 2490, 2598, 2598,
2487
2488      2598, 1220, 2599, 2489, 1217, 2600, 2601, 2601, 2601, 1436,
2489      1436, 1436, 2491, 1446, 1446, 1446, 2589, 1211, 2495, 2495,
2490      2495, 1206, 2496, 1205, 2602, 2497, 1201, 1438, 1196, 2590,
2491      1195, 1448, 2591, 2498, 2498, 2498, 2605, 2605, 2605, 1194,
2492      2606, 1193, 1192, 2607, 2608, 2608, 2608, 2610, 2610, 2610,
2493      2499, 2502, 2502, 2502, 2504, 2504, 2504, 2612, 2612, 2612,
2494      1191, 2609, 1190, 1188, 2611, 2509, 2509, 2509, 1187, 2503,
2495      2513, 2513, 2513, 1186, 1185, 2613, 2603, 2604, 2622, 2622,
2496      2622, 1184, 1183, 2510, 2518, 2518, 2518, 1182, 2519, 1181,
2497      1180, 2520, 1230, 1230, 1230, 2623, 2547, 2547, 2547, 1261,
2498
2499      1261, 1261, 2552, 2552, 2552, 1179, 2553, 1178, 1177, 2554,
2500      1232, 2555, 2555, 2555, 2661, 2661, 2661, 1263, 2561, 2561,
2501      2561, 2663, 2663, 2663, 1176, 2664, 1175, 1174, 2665, 2556,
2502      1173, 2662, 2666, 2666, 2666, 2562, 2671, 2671, 2671, 2569,
2503      2569, 2569, 1172, 2570, 1171, 1170, 2571, 2573, 2573, 2573,
2504      2667, 1169, 2641, 2672, 2675, 2675, 2675, 1168, 2676, 1161,
2505      1160, 2677, 1159, 1158, 2574, 2680, 2680, 2680, 1157, 1156,
2506      2658, 2578, 2578, 2578, 2682, 2682, 2682, 1155, 2683, 1152,
2507      1150, 2684, 2681, 2685, 2685, 2685, 1149, 1147, 2579, 2581,
2508      2581, 2581, 1145, 2582, 1142, 1138, 2583, 2584, 2584, 2584,
2509
2510      2686, 2586, 2586, 2586, 1136, 2587, 1135, 1134, 2588, 3343,
2511      3343, 3343, 3343, 3343, 3343, 2585, 3343, 3343, 3343, 2594,
2512      2594, 2594, 1132, 2690, 2690, 2690, 3343, 2691, 1131, 3343,
2513      2692, 1130, 1129, 3343, 1128, 1127, 2595, 2693, 2693, 2693,
2514      2695, 2695, 2695, 2598, 2598, 2598, 1125, 2599, 1124, 1123,
2515      2600, 2601, 2601, 2601, 2694, 1122, 1120, 2696, 1436, 1436,
2516      1436, 1119, 1118, 2688, 2687, 1446, 1446, 1446, 1114, 2602,
2517      1113, 2689, 1111, 2605, 2605, 2605, 1438, 2606, 1110, 1109,
2518      2607, 1108, 1107, 1448, 2608, 2608, 2608, 2705, 2705, 2705,
2519      1106, 2706, 1104, 1103, 2707, 2610, 2610, 2610, 2708, 2708,
2520
2521      2708, 2609, 2709, 1102, 1101, 2710, 1099, 2612, 2612, 2612,
2522      1098, 1097, 2611, 2715, 2715, 2715, 2622, 2622, 2622, 1230,
2523      1230, 1230, 1094, 1093, 2703, 2613, 2704, 2719, 2719, 2719,
2524      1091, 2720, 1088, 2623, 2721, 1087, 1083, 1232, 2753, 2753,
2525      2753, 2755, 2755, 2755, 1261, 1261, 1261, 2758, 2758, 2758,
2526      2760, 2760, 2760, 1082, 2661, 2661, 2661, 1080, 2756, 2763,
2527      2763, 2763, 1263, 2764, 2759, 1079, 2765, 2761, 1078, 1075,
2528      2739, 2662, 2663, 2663, 2663, 1074, 2664, 1073, 1072, 2665,
2529      2666, 2666, 2666, 2768, 2768, 2768, 2671, 2671, 2671, 1070,
2530      2770, 2770, 2770, 1069, 2771, 1068, 2762, 2772, 2667, 1067,
2531
2532      2769, 1066, 1061, 2672, 1059, 1058, 2757, 2773, 2773, 2773,
2533      2675, 2675, 2675, 1057, 2676, 1056, 1055, 2677, 2680, 2680,
2534      2680, 2778, 2778, 2778, 2774, 2779, 1054, 1053, 2780, 2682,
2535      2682, 2682, 1052, 2683, 1051, 2681, 2684, 2685, 2685, 2685,
2536      2781, 2781, 2781, 1050, 2782, 1049, 1046, 2783, 3343, 3343,
2537      3343, 2785, 2785, 2785, 2686, 3343, 3343, 3343, 1043, 2690,
2538      2690, 2690, 1042, 2691, 1041, 3343, 2692, 1035, 2786, 2693,
2539      2693, 2693, 3343, 2788, 2788, 2788, 1034, 2789, 1032, 1029,
2540      2790, 2695, 2695, 2695, 1027, 1026, 2694, 2791, 2791, 2791,
2541      1025, 2792, 1020, 1019, 2793, 1436, 1436, 1436, 2696, 1446,
2542
2543      1446, 1446, 1017, 1016, 2787, 1015, 2784, 2705, 2705, 2705,
2544      1013, 2706, 1012, 1438, 2707, 1011, 1009, 1448, 2708, 2708,
2545      2708, 1006, 2709, 1005, 1003, 2710, 2808, 2808, 2808, 2715,
2546      2715, 2715, 2811, 2811, 2811, 2719, 2719, 2719, 1002, 2720,
2547       999,  994, 2721, 2809, 1694,  993, 2800, 2822, 2822, 2822,
2548      1230, 1230, 1230, 2753, 2753, 2753, 2846, 2846, 2846, 2755,
2549      2755, 2755,  990,  989, 2823,  988, 2801,  985, 1232,  984,
2550      2847, 2847, 2847,  982, 2848,  979, 2756, 2849, 1261, 1261,
2551      1261, 2758, 2758, 2758, 2851, 2851, 2851,  977, 2852,  976,
2552       975, 2853, 2760, 2760, 2760,  974, 1263,  972, 2759, 2832,
2553
2554      2854, 2854, 2854,  971, 2855,  970,  969, 2856,  968, 2761,
2555      2763, 2763, 2763,  967, 2764,  964,  963, 2765, 2768, 2768,
2556      2768, 2860, 2860, 2860,  962, 2861,  959,  956, 2862, 2850,
2557      2770, 2770, 2770,  955, 2771, 2769,  953, 2772, 2773, 2773,
2558      2773, 2863, 2863, 2863,  952, 2864,  949,  946, 2865, 2778,
2559      2778, 2778,  943, 2779,  942, 2774, 2780, 2781, 2781, 2781,
2560       934, 2782,  933,  932, 2783, 3343, 3343, 3343, 2785, 2785,
2561      2785, 2870, 2870, 2870,  931, 2871,  925,  924, 2872, 3343,
2562      3343, 3343, 3343,  923,  921, 2786, 2788, 2788, 2788,  920,
2563      2789,  919,  918, 2790,  917,  916, 3343, 2791, 2791, 2791,
2564
2565       911, 2792,  908,  910, 2793, 2888, 2888, 2888, 1446, 1446,
2566      1446, 2896, 2896, 2896,  905,  904, 2869, 2808, 2808, 2808,
2567      2898, 2898, 2898, 2889, 2899,  902, 1448, 2900, 2897, 1694,
2568      2901, 2901, 2901,  900, 2809, 1694,  898,  896, 1694, 2811,
2569      2811, 2811, 2902, 2902, 2902, 2903, 2903, 2903,  894,  891,
2570      2873, 2822, 2822, 2822, 2912, 2912, 2912,  890, 2913,  889,
2571       888, 2914, 1230, 1230, 1230, 2930, 2930, 2930, 2823, 2846,
2572      2846, 2846,  887,  885, 2890, 2847, 2847, 2847,  883, 2848,
2573      1232,  882, 2849, 2931, 2931, 2931, 2851, 2851, 2851,  881,
2574      2852,  879,  877, 2853,  876, 2854, 2854, 2854,  874, 2855,
2575
2576       872, 2932, 2856, 2860, 2860, 2860,  871, 2861,  869,  865,
2577      2862, 2863, 2863, 2863,  864, 2864,  862,  857, 2865, 2936,
2578      2936, 2936, 2940, 2940, 2940, 2870, 2870, 2870, 2921, 2871,
2579       855,  851, 2872, 2942, 2942, 2942, 2937,  850,  849, 2941,
2580      2888, 2888, 2888, 1446, 1446, 1446, 2896, 2896, 2896,  847,
2581      2943,  845, 2962, 2962, 2962,  844, 2963,  843, 2889, 2964,
2582       841, 1448,  839, 2897, 1694, 2898, 2898, 2898,  838, 2899,
2583      1694,  836, 2900, 2901, 2901, 2901, 2902, 2902, 2902, 2903,
2584      2903, 2903,  834, 1694, 2912, 2912, 2912,  833, 2913,  832,
2585       831, 2914,  830,  829, 2956, 1692, 1692, 1692, 1692, 1692,
2586
2587      1692, 1692, 1692, 1692,  828,  826, 1692, 2981, 2981, 2981,
2588       824, 1692, 1692, 1692, 1694, 1692, 2930, 2930, 2930, 2931,
2589      2931, 2931, 2936, 2936, 2936, 2982, 2992, 2992, 2992,  823,
2590      2993,  820,  819, 2994, 2940, 2940, 2940, 2932,  818, 2937,
2591      1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692,
2592      1692, 2941,  816, 1692, 2942, 2942, 2942,  814, 1692, 1692,
2593      1692, 1694, 1692, 2997, 2997, 2997,  803, 2998,  802,  799,
2594      2999, 2943, 3000, 3000, 3000,  797, 3001,  795,  794, 3002,
2595      3015, 3015, 3015, 2981, 2981, 2981,  793, 1692, 1692, 2962,
2596      2962, 2962,  791, 2963,  789,  787, 2964,  784, 3016,  781,
2597
2598       780, 2982,  779, 3049, 3049, 3049,  777, 1694, 1692, 1692,
2599      1692, 1692, 1692, 3027, 1692, 1692, 1692,  775,  774, 1692,
2600      3050,  772,  770,  769, 1692, 1692, 1692, 1694, 1692, 2992,
2601      2992, 2992,  767, 2993,  765,  764, 2994, 2997, 2997, 2997,
2602       763, 2998,  761,  759, 2999, 3000, 3000, 3000,  758, 3001,
2603       757,  756, 3002, 1692, 1692, 1692, 1692, 1692, 1692, 1692,
2604      1692, 1692, 1692, 3027,  754, 3343, 1692, 3015, 3015, 3015,
2605       701, 1692, 1692, 1692, 1694, 1692, 3066, 3066, 3066, 3075,
2606      3075, 3075, 3077, 3077, 3077, 3016, 3079, 3079, 3079, 3049,
2607      3049, 3049,  734,  733, 1694, 1695, 3076,  731,  729, 3078,
2608
2609      1692, 1692,  728, 3080,  727,  725, 3050, 3087, 3087, 3087,
2610       721, 3088,  717,  716, 3089, 3090, 3090, 3090, 3100, 3100,
2611      3100, 3066, 3066, 3066, 3075, 3075, 3075, 3108, 3108, 3108,
2612       714, 3109, 3091,  713, 3110,  710, 1149,  709,  708, 1694,
2613       706, 3076, 3077, 3077, 3077, 3111, 3111, 3111,  705, 3112,
2614       704,  702, 3113, 3079, 3079, 3079, 3114, 3114, 3114, 3078,
2615      3115,  697, 3343, 3116, 3087, 3087, 3087,  677, 3088,  675,
2616      3080, 3089, 1892, 3090, 3090, 3090, 3123, 3123, 3123,  673,
2617      3124,  667,  666, 3125, 3100, 3100, 3100, 3108, 3108, 3108,
2618      3091, 3109,  667,  666, 3110,  665, 3111, 3111, 3111,  664,
2619
2620      3112, 3343, 1149, 3113, 3114, 3114, 3114, 3343, 3115, 3343,
2621      3343, 3116, 3123, 3123, 3123, 3343, 3124, 3343, 3343, 3125,
2622      3343, 3134, 3239, 3239, 3239, 3239, 3239, 3239, 3343, 3248,
2623      3343, 3343, 3249, 3341, 3341, 3341, 3341, 3341, 3341, 3343,
2624      1149, 3343, 3343, 1149, 3343, 3343, 3343, 3343, 3343, 3343,
2625      3343, 3342, 3343, 3343, 3342,  260,  260,  260,  260,  260,
2626       260,  260,  260,  260,  261,  261,  261,  261,  261,  261,
2627       261,  261,  261,  266,  266,  266,  266,  266,  266,  266,
2628       266,  266,  269,  269,  269,  269,  269,  269,  269,  269,
2629       269,  272,  272,  272,  272,  272,  272,  272,  272,  272,
2630
2631       275,  275,  275,  275,  275,  275,  275,  275,  275,  282,
2632       282,  282,  282,  282,  282,  282,  282,  282,  290,  290,
2633       290,  290,  290,  290,  290,  290,  290,  294,  294,  294,
2634       294,  294,  294,  294,  294,  294,  306,  306,  306,  306,
2635       306,  306,  306,  306,  306,  310,  310,  310,  310,  310,
2636       310,  310,  310,  310,  317,  317,  317,  317,  317,  317,
2637       317,  317,  317,  328,  328,  328,  328,  328,  328,  328,
2638       328,  328,  336,  336,  336,  336,  336,  336,  336,  336,
2639       336,  342,  342,  342,  342,  342,  342,  342,  342,  342,
2640       348,  348,  348,  348,  348,  348,  348,  348,  348,  354,
2641
2642       354,  354,  354,  354,  354,  354,  354,  354,  359,  359,
2643       359,  359,  359,  359,  359,  359,  359,  378,  378,  378,
2644       378,  378,  378,  378,  378,  378,  385,  385,  385,  385,
2645       385,  385,  385,  385,  385,  392,  392,  392,  392,  392,
2646       392,  392,  392,  392,  398,  398,  398,  398,  398,  398,
2647       398,  398,  398,  405,  405,  405,  405,  405,  405,  405,
2648       405,  405,  410,  410,  410,  410,  410,  410,  410,  410,
2649       410,  416,  416,  416,  416,  416,  416,  416,  416,  416,
2650       421,  421,  421,  421,  421,  421,  421,  421,  421,  427,
2651       427,  427,  427,  427,  427,  427,  427,  427,  435,  435,
2652
2653       435,  435,  435,  435,  435,  435,  435,  443,  443,  443,
2654       443,  443,  443,  443,  443,  443,  447,  447,  447,  447,
2655       447,  447,  447,  447,  447,  453,  453,  453,  453,  453,
2656       453,  453,  453,  453,  459,  459,  459,  459,  459,  459,
2657       459,  459,  459,  477,  477,  477,  477,  477,  477,  477,
2658       477,  477,  484,  484,  484,  484,  484,  484,  484,  484,
2659       484,  493,  493,  493,  493,  493,  493,  493,  493,  493,
2660       499,  499,  499,  499,  499,  499,  499,  499,  499,  509,
2661       509,  509,  509,  509,  509,  509,  509,  509,  515,  515,
2662       515,  515,  515,  515,  515,  515,  515,  520,  520,  520,
2663
2664       520,  520,  520,  520,  520,  520,  526,  526,  526,  526,
2665       526,  526,  526,  526,  526,  532,  532,  532,  532,  532,
2666       532,  532,  532,  532,  538,  538,  538,  538,  538,  538,
2667       538,  538,  538,  545,  545,  545,  545,  545,  545,  545,
2668       545,  545,  552,  552,  552,  552,  552,  552,  552,  552,
2669       552,  557,  557,  557,  557,  557,  557,  557,  557,  557,
2670       565,  565,  565,  565,  565,  565,  565,  565,  565,  571,
2671       571,  571,  571,  571,  571,  571,  571,  571,  578,  578,
2672       578,  578,  578,  578,  578,  578,  578,  583,  583,  583,
2673       583,  583,  583,  583,  583,  583,  589,  589,  589,  589,
2674
2675       589,  589,  589,  589,  589,  594,  594,  594,  594,  594,
2676       594,  594,  594,  594,  601,  601,  601,  601,  601,  601,
2677       601,  601,  601,  607,  607,  607,  607,  607,  607,  607,
2678       607,  607,  614,  614,  614,  614,  614,  614,  614,  614,
2679       614,  622,  622,  622,  622,  622,  622,  622,  622,  622,
2680       630,  630,  630,  630,  630,  630,  630,  630,  630,  634,
2681       634,  634,  634,  634,  634,  634,  634,  634,  640,  640,
2682       640,  640,  640,  640,  640,  640,  640,  644,  644,  644,
2683       644,  644,  644,  644,  644,  644,  651,  651,  651,  651,
2684       651,  651,  651,  651,  651,  656,  656,  656,  656,  656,
2685
2686       656,  656,  656,  656,  676,  676,  676, 3343, 3343, 3343,
2687       676,  703,  703,  703, 3343, 3343, 3343,  703,  707,  707,
2688       707, 3343, 3343, 3343,  707,  715,  715,  715, 3343, 3343,
2689      3343,  715,  726,  726,  726, 3343, 3343, 3343,  726,  732,
2690       732,  732, 3343, 3343, 3343,  732,  755,  755,  755, 3343,
2691      3343, 3343,  755,  762,  762,  762, 3343, 3343, 3343,  762,
2692       768,  768,  768, 3343, 3343, 3343,  768,  773,  773,  773,
2693      3343, 3343, 3343,  773,  778,  778,  778, 3343, 3343, 3343,
2694       778,  788,  788,  788, 3343, 3343, 3343,  788,  792,  792,
2695       792, 3343, 3343, 3343,  792,  798,  798,  798, 3343, 3343,
2696
2697      3343,  798,  817,  817,  817, 3343, 3343, 3343,  817,  827,
2698       827,  827, 3343, 3343, 3343,  827,  837,  837,  837, 3343,
2699      3343, 3343,  837,  842,  842,  842, 3343, 3343, 3343,  842,
2700       848,  848,  848, 3343, 3343, 3343,  848,  856,  856,  856,
2701      3343, 3343, 3343,  856,  863,  863,  863, 3343, 3343, 3343,
2702       863,  870,  870,  870, 3343, 3343, 3343,  870,  875,  875,
2703       875, 3343, 3343, 3343,  875,  880,  880,  880, 3343, 3343,
2704      3343,  880,  886,  886,  886, 3343, 3343, 3343,  886,  895,
2705       895,  895, 3343, 3343, 3343,  895,  899,  899,  899, 3343,
2706      3343, 3343,  899,  903,  903,  903, 3343, 3343, 3343,  903,
2707
2708       907,  907,  907,  907,  907,  907,  907, 3343,  907,  676,
2709       676,  676, 3343, 3343, 3343,  676,  922, 3343, 3343, 3343,
2710       922,  703,  703,  703, 3343, 3343, 3343,  703,  954, 3343,
2711      3343, 3343,  954,  707,  707,  707, 3343, 3343, 3343,  707,
2712       961, 3343, 3343, 3343,  961,  715,  715,  715, 3343, 3343,
2713      3343,  715,  973, 3343, 3343, 3343,  973,  726,  726,  726,
2714      3343, 3343, 3343,  726,  978, 3343, 3343, 3343,  978,  732,
2715       732,  732, 3343, 3343, 3343,  732,  983, 3343, 3343, 3343,
2716       983,  755,  755,  755, 3343, 3343, 3343,  755, 1004, 3343,
2717      3343, 3343, 1004,  762,  762,  762, 3343, 3343, 3343,  762,
2718
2719      1010, 3343, 3343, 3343, 1010,  768,  768,  768, 3343, 3343,
2720      3343,  768, 1014, 3343, 3343, 3343, 1014,  773,  773,  773,
2721      3343, 3343, 3343,  773, 1018, 3343, 3343, 3343, 1018,  778,
2722       778,  778, 3343, 3343, 3343,  778, 1028, 3343, 3343, 3343,
2723      1028,  788,  788,  788, 3343, 3343, 3343,  788, 1033, 3343,
2724      3343, 3343, 1033,  792,  792,  792, 3343, 3343, 3343,  792,
2725      1040, 3343, 3343, 3343, 1040,  798,  798,  798, 3343, 3343,
2726      3343,  798, 1060, 3343, 3343, 3343, 1060,  817,  817,  817,
2727      3343, 3343, 3343,  817, 1071, 3343, 3343, 3343, 1071,  827,
2728       827,  827, 3343, 3343, 3343,  827, 1081, 3343, 3343, 3343,
2729
2730      1081,  837,  837,  837, 3343, 3343, 3343,  837, 1086, 3343,
2731      3343, 3343, 1086,  842,  842,  842, 3343, 3343, 3343,  842,
2732      1092, 3343, 3343, 3343, 1092,  848,  848,  848, 3343, 3343,
2733      3343,  848, 1100, 3343, 3343, 3343, 1100,  856,  856,  856,
2734      3343, 3343, 3343,  856, 1105, 3343, 3343, 3343, 1105,  863,
2735       863,  863, 3343, 3343, 3343,  863, 1112, 3343, 3343, 3343,
2736      1112,  870,  870,  870, 3343, 3343, 3343,  870, 1117, 3343,
2737      3343, 3343, 1117,  875,  875,  875, 3343, 3343, 3343,  875,
2738      1121, 3343, 3343, 3343, 1121,  880,  880,  880, 3343, 3343,
2739      3343,  880, 1126, 3343, 3343, 3343, 1126,  886,  886,  886,
2740
2741      3343, 3343, 3343,  886, 1133, 3343, 3343, 3343, 1133,  895,
2742       895,  895, 3343, 3343, 3343,  895, 1137, 3343, 3343, 3343,
2743      1137,  899,  899,  899, 3343, 3343, 3343,  899, 1141, 3343,
2744      3343, 3343, 1141,  903,  903,  903, 3343, 3343, 3343,  903,
2745      1146, 3343, 3343, 3343, 1146, 1148, 1148, 1148, 1148, 1148,
2746      1148, 1148, 1148, 1148, 1154, 3343, 3343, 3343, 3343, 1154,
2747       676,  676,  676, 3343, 3343, 3343,  676, 1163, 1163, 1163,
2748      1163, 3343, 3343, 1163, 1163,  703,  703,  703, 3343, 3343,
2749      3343,  703, 1198, 1198, 1198, 1198, 3343, 3343, 1198, 1198,
2750       707,  707,  707, 3343, 3343, 3343,  707, 1208, 1208, 1208,
2751
2752      1208, 3343, 3343, 1208, 1208,  715,  715,  715, 3343, 3343,
2753      3343,  715, 1224, 1224, 1224, 1224, 3343, 3343, 1224, 1224,
2754       726,  726,  726, 3343, 3343, 3343,  726, 1231, 1231, 1231,
2755      1231, 3343, 3343, 1231, 1231,  732,  732,  732, 3343, 3343,
2756      3343,  732, 1239, 1239, 1239, 1239, 3343, 3343, 1239, 1239,
2757       755,  755,  755, 3343, 3343, 3343,  755, 1262, 1262, 1262,
2758      1262, 3343, 3343, 1262, 1262,  762,  762,  762, 3343, 3343,
2759      3343,  762, 1271, 1271, 1271, 1271, 3343, 3343, 1271, 1271,
2760       768,  768,  768, 3343, 3343, 3343,  768, 1277, 1277, 1277,
2761      1277, 3343, 3343, 1277, 1277,  773,  773,  773, 3343, 3343,
2762
2763      3343,  773, 1283, 1283, 1283, 1283, 3343, 3343, 1283, 1283,
2764       778,  778,  778, 3343, 3343, 3343,  778, 1296, 1296, 1296,
2765      1296, 3343, 3343, 1296, 1296,  788,  788,  788, 3343, 3343,
2766      3343,  788, 1303, 1303, 1303, 1303, 3343, 3343, 1303, 1303,
2767       792,  792,  792, 3343, 3343, 3343,  792, 1314, 1314, 1314,
2768      1314, 3343, 3343, 1314, 1314,  798,  798,  798, 3343, 3343,
2769      3343,  798, 1341, 1341, 1341, 1341, 3343, 3343, 1341, 1341,
2770       817,  817,  817,  817, 3343,  817, 3343,  817, 1357, 1357,
2771      1357, 1357, 3343, 3343, 1357, 1357,  827,  827,  827, 3343,
2772      3343, 3343,  827, 1372, 1372, 1372, 1372, 3343, 3343, 1372,
2773
2774      1372,  837,  837,  837, 3343, 3343, 3343,  837, 1380, 1380,
2775      1380, 1380, 3343, 3343, 1380, 1380,  842,  842,  842, 3343,
2776      3343, 3343,  842, 1389, 1389, 1389, 1389, 3343, 3343, 1389,
2777      1389,  848,  848,  848, 3343, 3343, 3343,  848, 1400, 1400,
2778      1400, 1400, 3343, 3343, 1400, 1400,  856,  856,  856,  856,
2779      3343,  856, 3343,  856, 1409, 1409, 1409, 1409, 3343, 3343,
2780      1409, 1409,  863,  863,  863,  863, 3343,  863, 3343,  863,
2781      1421, 1421, 1421, 1421, 3343, 3343, 1421, 1421,  870,  870,
2782       870, 3343, 3343, 3343,  870, 1429, 1429, 1429, 1429, 3343,
2783      3343, 1429, 1429,  875,  875,  875,  875, 3343,  875, 3343,
2784
2785       875, 1437, 1437, 1437, 1437, 3343, 3343, 1437, 1437,  880,
2786       880,  880,  880, 3343,  880, 3343,  880, 1447, 1447, 1447,
2787      1447, 3343, 3343, 1447, 1447,  886,  886,  886, 3343, 3343,
2788      3343,  886, 1456, 1456, 1456, 1456, 3343, 3343, 1456, 1456,
2789       895,  895,  895, 3343, 3343, 3343,  895, 1462, 1462, 1462,
2790      1462, 3343, 3343, 1462, 1462, 1469, 1469, 1469, 1469, 3343,
2791      3343, 1469, 1469,  903,  903,  903, 3343, 3343, 3343,  903,
2792      1477, 1477, 1477, 1477, 3343, 3343, 1477, 1477, 1148, 1148,
2793      1148, 1148, 1148, 1148, 1148, 1148, 1148, 1154, 3343, 1154,
2794      3343, 3343, 1154,  676,  676,  676, 3343, 3343, 3343,  676,
2795
2796      1163, 1163, 1163, 1163, 3343, 3343, 1163, 1163,  703,  703,
2797       703,  703, 3343,  703, 3343,  703, 1198, 1198, 1198, 1198,
2798      3343, 3343, 1198, 1198,  707,  707,  707,  707, 3343,  707,
2799      3343,  707, 1208, 1208, 1208, 1208, 3343, 3343, 1208, 1208,
2800       715,  715,  715, 3343, 3343, 3343,  715, 1224, 1224, 1224,
2801      1224, 3343, 3343, 1224, 1224,  726,  726,  726, 3343, 3343,
2802      3343,  726, 1231, 1231, 1231, 1231, 3343, 3343, 1231, 1231,
2803       732,  732,  732, 3343, 3343, 3343,  732, 1239, 1239, 1239,
2804      1239, 3343, 3343, 1239, 1239,  755,  755,  755, 3343, 3343,
2805      3343,  755, 1262, 1262, 1262, 1262, 3343, 3343, 1262, 1262,
2806
2807       762,  762,  762, 3343, 3343, 3343,  762, 1271, 1271, 1271,
2808      1271, 3343, 3343, 1271, 1271,  768,  768,  768,  768, 3343,
2809       768, 3343,  768, 1277, 1277, 1277, 1277, 3343, 3343, 1277,
2810      1277,  773,  773,  773,  773, 3343,  773, 3343,  773, 1283,
2811      1283, 1283, 1283, 3343, 3343, 1283, 1283,  778,  778,  778,
2812      3343, 3343, 3343,  778, 1296, 1296, 1296, 1296, 3343, 3343,
2813      1296, 1296,  788,  788,  788,  788, 3343,  788, 3343,  788,
2814      1303, 1303, 1303, 1303, 3343, 3343, 1303, 1303,  792,  792,
2815       792,  792, 3343,  792, 3343,  792, 1314, 1314, 1314, 1314,
2816      3343, 3343, 1314, 1314,  798,  798,  798, 3343, 3343, 3343,
2817
2818       798, 1341, 1341, 1341, 1341, 3343, 3343, 1341, 1341,  817,
2819       817,  817, 3343, 3343, 3343,  817, 1357, 1357, 1357, 1357,
2820      3343, 3343, 1357, 1357,  827,  827,  827, 3343, 3343, 3343,
2821       827, 1372, 1372, 1372, 1372, 3343, 3343, 1372, 1372,  837,
2822       837,  837, 3343, 3343, 3343,  837, 1380, 1380, 1380, 1380,
2823      3343, 3343, 1380, 1380,  842,  842,  842, 3343, 3343, 3343,
2824       842, 1389, 1389, 1389, 1389, 3343, 3343, 1389, 1389,  848,
2825       848,  848, 3343, 3343, 3343,  848, 1400, 1400, 1400, 1400,
2826      3343, 3343, 1400, 1400,  856,  856,  856, 3343, 3343, 3343,
2827       856, 1409, 1409, 1409, 1409, 3343, 3343, 1409, 1409,  863,
2828
2829       863,  863, 3343, 3343, 3343,  863, 1421, 1421, 1421, 1421,
2830      3343, 3343, 1421, 1421,  870,  870,  870, 3343, 3343, 3343,
2831       870, 1429, 1429, 1429, 1429, 3343, 3343, 1429, 1429, 1437,
2832      1437, 1437, 1437, 3343, 3343, 1437, 1437,  880,  880,  880,
2833      3343, 3343, 3343,  880, 1447, 1447, 1447, 1447, 3343, 3343,
2834      1447, 1447,  886,  886,  886, 3343, 3343, 3343,  886, 1456,
2835      1456, 1456, 1456, 3343, 3343, 1456, 1456,  895,  895,  895,
2836      3343, 3343, 3343,  895, 1462, 1462, 1462, 1462, 3343, 3343,
2837      1462, 1462, 1469, 1469, 1469, 1469, 3343, 3343, 1469, 1469,
2838       903,  903,  903, 3343, 3343, 3343,  903, 1477, 1477, 1477,
2839
2840      1477, 3343, 3343, 1477, 1477, 1148, 1148, 1148, 1148, 1148,
2841      1148, 1148, 1148, 1148, 1692, 1692, 1692, 1692, 1692, 1692,
2842      1692, 1692, 1692,  676,  676,  676, 3343, 3343, 3343,  676,
2843      1163, 1163, 1163, 1163, 3343, 3343, 1163, 1163, 1198, 1198,
2844      1198, 1198, 3343, 3343, 1198, 1198,  707,  707,  707, 3343,
2845      3343, 3343,  707, 1208, 1208, 1208, 1208, 3343, 3343, 1208,
2846      1208,  715,  715,  715, 3343, 3343, 3343,  715, 1224, 1224,
2847      1224, 1224, 3343, 3343, 1224, 1224,  726,  726,  726, 3343,
2848      3343, 3343,  726, 1231, 1231, 1231, 1231, 3343, 3343, 1231,
2849      1231,  732,  732,  732, 3343, 3343, 3343,  732,  755,  755,
2850
2851       755, 3343, 3343, 3343,  755, 1262, 1262, 1262, 1262, 3343,
2852      3343, 1262, 1262,  762,  762,  762, 3343, 3343, 3343,  762,
2853      1271, 1271, 1271, 1271, 3343, 3343, 1271, 1271,  768,  768,
2854       768, 3343, 3343, 3343,  768, 1277, 1277, 1277, 1277, 3343,
2855      3343, 1277, 1277,  773,  773,  773, 3343, 3343, 3343,  773,
2856      1283, 1283, 1283, 1283, 3343, 3343, 1283, 1283,  778,  778,
2857       778, 3343, 3343, 3343,  778, 1296, 1296, 1296, 1296, 3343,
2858      3343, 1296, 1296, 1303, 1303, 1303, 1303, 3343, 3343, 1303,
2859      1303, 1314, 1314, 1314, 1314, 3343, 3343, 1314, 1314,  798,
2860       798,  798, 3343, 3343, 3343,  798, 1341, 1341, 1341, 1341,
2861
2862      3343, 3343, 1341, 1341,  817,  817,  817,  817, 3343,  817,
2863      3343,  817, 1357, 1357, 1357, 1357, 3343, 3343, 1357, 1357,
2864       827,  827,  827, 3343, 3343, 3343,  827, 1372, 1372, 1372,
2865      1372, 3343, 3343, 1372, 1372,  837,  837,  837, 3343, 3343,
2866      3343,  837, 1380, 1380, 1380, 1380, 3343, 3343, 1380, 1380,
2867       842,  842,  842, 3343, 3343, 3343,  842, 1389, 1389, 1389,
2868      1389, 3343, 3343, 1389, 1389,  848,  848,  848, 3343, 3343,
2869      3343,  848, 1400, 1400, 1400, 1400, 3343, 3343, 1400, 1400,
2870       856,  856,  856, 3343, 3343, 3343,  856, 1409, 1409, 1409,
2871      1409, 3343, 3343, 1409, 1409,  863,  863,  863, 3343, 3343,
2872
2873      3343,  863, 1421, 1421, 1421, 1421, 3343, 3343, 1421, 1421,
2874       870,  870,  870, 3343, 3343, 3343,  870, 1429, 1429, 1429,
2875      1429, 3343, 3343, 1429, 1429, 1437, 1437, 1437, 1437, 3343,
2876      3343, 1437, 1437,  880,  880,  880, 3343, 3343, 3343,  880,
2877      1447, 1447, 1447, 1447, 3343, 3343, 1447, 1447,  886,  886,
2878       886, 3343, 3343, 3343,  886, 1456, 1456, 1456, 1456, 3343,
2879      3343, 1456, 1456,  895,  895,  895,  895, 3343,  895, 3343,
2880       895, 1462, 1462, 1462, 1462, 3343, 3343, 1462, 1462, 1469,
2881      1469, 1469, 1469, 3343, 3343, 1469, 1469,  903,  903,  903,
2882       903, 3343,  903, 3343,  903, 1477, 1477, 1477, 1477, 3343,
2883
2884      3343, 1477, 1477, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
2885      1148, 1148, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692,
2886      1692,  676,  676,  676, 3343, 3343, 3343,  676, 1163, 1163,
2887      1163, 1163, 3343, 3343, 1163, 1163, 1198, 1198, 1198, 1198,
2888      3343, 3343, 1198, 1198,  707,  707,  707, 3343, 3343, 3343,
2889       707, 1208, 1208, 1208, 1208, 3343, 3343, 1208, 1208,  715,
2890       715,  715, 3343, 3343, 3343,  715, 1224, 1224, 1224, 1224,
2891      3343, 3343, 1224, 1224,  726,  726,  726, 3343, 3343, 3343,
2892       726, 1231, 1231, 1231, 1231, 3343, 3343, 1231, 1231,  732,
2893       732,  732, 3343, 3343, 3343,  732,  755,  755,  755, 3343,
2894
2895      3343, 3343,  755, 1262, 1262, 1262, 1262, 3343, 3343, 1262,
2896      1262,  762,  762,  762, 3343, 3343, 3343,  762, 1271, 1271,
2897      1271, 1271, 3343, 3343, 1271, 1271,  768,  768,  768, 3343,
2898      3343, 3343,  768, 1277, 1277, 1277, 1277, 3343, 3343, 1277,
2899      1277,  773,  773,  773,  773, 3343,  773, 3343,  773, 1283,
2900      1283, 1283, 1283, 3343, 3343, 1283, 1283,  778,  778,  778,
2901      3343, 3343, 3343,  778, 1296, 1296, 1296, 1296, 3343, 3343,
2902      1296, 1296, 1314, 1314, 1314, 1314, 3343, 3343, 1314, 1314,
2903       798,  798,  798, 3343, 3343, 3343,  798, 1341, 1341, 1341,
2904      1341, 3343, 3343, 1341, 1341,  817,  817,  817,  817, 3343,
2905
2906       817, 3343,  817, 1357, 1357, 1357, 1357, 3343, 3343, 1357,
2907      1357,  827,  827,  827, 3343, 3343, 3343,  827, 1372, 1372,
2908      1372, 1372, 3343, 3343, 1372, 1372,  837,  837,  837, 3343,
2909      3343, 3343,  837, 1380, 1380, 1380, 1380, 3343, 3343, 1380,
2910      1380,  842,  842,  842, 3343, 3343, 3343,  842, 1389, 1389,
2911      1389, 1389, 3343, 3343, 1389, 1389,  848,  848,  848, 3343,
2912      3343, 3343,  848, 1400, 1400, 1400, 1400, 3343, 3343, 1400,
2913      1400,  856,  856,  856, 3343, 3343, 3343,  856, 1409, 1409,
2914      1409, 1409, 3343, 3343, 1409, 1409,  863,  863,  863,  863,
2915      3343,  863, 3343,  863, 1421, 1421, 1421, 1421, 3343, 3343,
2916
2917      1421, 1421,  870,  870,  870, 3343, 3343, 3343,  870, 1429,
2918      1429, 1429, 1429, 3343, 3343, 1429, 1429, 1437, 1437, 1437,
2919      1437, 3343, 3343, 1437, 1437,  880,  880,  880,  880, 3343,
2920       880, 3343,  880, 1447, 1447, 1447, 1447, 3343, 3343, 1447,
2921      1447,  886,  886,  886, 3343, 3343, 3343,  886, 1456, 1456,
2922      1456, 1456, 3343, 3343, 1456, 1456, 1462, 1462, 1462, 1462,
2923      3343, 3343, 1462, 1462, 1469, 1469, 1469, 1469, 3343, 3343,
2924      1469, 1469, 1477, 1477, 1477, 1477, 3343, 3343, 1477, 1477,
2925      1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1692,
2926      1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692,  676,  676,
2927
2928       676,  676, 3343,  676, 3343,  676, 1163, 1163, 1163, 1163,
2929      3343, 3343, 1163, 1163, 1198, 1198, 1198, 1198, 3343, 3343,
2930      1198, 1198,  707,  707,  707, 3343, 3343, 3343,  707, 1208,
2931      1208, 1208, 1208, 3343, 3343, 1208, 1208,  715,  715,  715,
2932      3343, 3343, 3343,  715, 1224, 1224, 1224, 1224, 3343, 3343,
2933      1224, 1224,  726,  726,  726,  726, 3343,  726, 3343,  726,
2934      1231, 1231, 1231, 1231, 3343, 3343, 1231, 1231,  732,  732,
2935       732,  732, 3343,  732, 3343,  732,  755,  755,  755,  755,
2936      3343,  755, 3343,  755, 1262, 1262, 1262, 1262, 3343, 3343,
2937      1262, 1262,  762,  762,  762,  762, 3343,  762, 3343,  762,
2938
2939      1271, 1271, 1271, 1271, 3343, 3343, 1271, 1271,  768,  768,
2940       768, 3343, 3343, 3343,  768, 1277, 1277, 1277, 1277, 3343,
2941      3343, 1277, 1277, 1283, 1283, 1283, 1283, 3343, 3343, 1283,
2942      1283,  778,  778,  778, 3343, 3343, 3343,  778, 1314, 1314,
2943      1314, 1314, 3343, 3343, 1314, 1314,  798,  798,  798, 3343,
2944      3343, 3343,  798, 1341, 1341, 1341, 1341, 3343, 3343, 1341,
2945      1341,  817,  817,  817,  817, 3343,  817, 3343,  817, 1357,
2946      1357, 1357, 1357, 3343, 3343, 1357, 1357,  827,  827,  827,
2947      3343, 3343, 3343,  827,  837,  837,  837, 3343, 3343, 3343,
2948       837, 1380, 1380, 1380, 1380, 3343, 3343, 1380, 1380,  842,
2949
2950       842,  842, 3343, 3343, 3343,  842, 1389, 1389, 1389, 1389,
2951      3343, 3343, 1389, 1389,  848,  848,  848, 3343, 3343, 3343,
2952       848,  856,  856,  856, 3343, 3343, 3343,  856, 1409, 1409,
2953      1409, 1409, 3343, 3343, 1409, 1409,  863,  863,  863, 3343,
2954      3343, 3343,  863, 1421, 1421, 1421, 1421, 3343, 3343, 1421,
2955      1421,  870,  870,  870, 3343, 3343, 3343,  870, 1429, 1429,
2956      1429, 1429, 3343, 3343, 1429, 1429, 1437, 1437, 1437, 1437,
2957      3343, 3343, 1437, 1437, 1447, 1447, 1447, 1447, 3343, 3343,
2958      1447, 1447,  886,  886,  886, 3343, 3343, 3343,  886, 1456,
2959      1456, 1456, 1456, 3343, 3343, 1456, 1456, 1462, 1462, 1462,
2960
2961      1462, 3343, 3343, 1462, 1462, 1469, 1469, 1469, 1469, 3343,
2962      3343, 1469, 1469, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
2963      1148, 1148, 1692, 1692, 1692, 1692, 1692, 1692, 1692, 1692,
2964      1692, 1163, 1163, 1163, 1163, 3343, 3343, 1163, 1163, 1198,
2965      1198, 1198, 1198, 3343, 3343, 1198, 1198,  707,  707,  707,
2966      3343, 3343, 3343,  707,  715,  715,  715, 3343, 3343, 3343,
2967       715, 1224, 1224, 1224, 1224, 3343, 3343, 1224, 1224, 1231,
2968      1231, 1231, 1231, 3343, 3343, 1231, 1231,  755,  755,  755,
2969      3343, 3343, 3343,  755, 1262, 1262, 1262, 1262, 3343, 3343,
2970      1262, 1262,  762,  762,  762, 3343, 3343, 3343,  762, 1271,
2971
2972      1271, 1271, 1271, 3343, 3343, 1271, 1271,  768,  768,  768,
2973      3343, 3343, 3343,  768, 1283, 1283, 1283, 1283, 3343, 3343,
2974      1283, 1283,  778,  778,  778, 3343, 3343, 3343,  778, 1314,
2975      1314, 1314, 1314, 3343, 3343, 1314, 1314,  798,  798,  798,
2976      3343, 3343, 3343,  798, 1341, 1341, 1341, 1341, 3343, 3343,
2977      1341, 1341, 1357, 1357, 1357, 1357, 3343, 3343, 1357, 1357,
2978       827,  827,  827, 3343, 3343, 3343,  827,  837,  837,  837,
2979      3343, 3343, 3343,  837, 1380, 1380, 1380, 1380, 3343, 3343,
2980      1380, 1380,  842,  842,  842, 3343, 3343, 3343,  842, 1389,
2981      1389, 1389, 1389, 3343, 3343, 1389, 1389,  848,  848,  848,
2982
2983      3343, 3343, 3343,  848,  856,  856,  856, 3343, 3343, 3343,
2984       856,  863,  863,  863, 3343, 3343, 3343,  863, 1421, 1421,
2985      1421, 1421, 3343, 3343, 1421, 1421,  870,  870,  870, 3343,
2986      3343, 3343,  870, 1429, 1429, 1429, 1429, 3343, 3343, 1429,
2987      1429, 1437, 1437, 1437, 1437, 3343, 3343, 1437, 1437, 1447,
2988      1447, 1447, 1447, 3343, 3343, 1447, 1447,  886,  886,  886,
2989       886, 3343,  886, 3343,  886, 1456, 1456, 1456, 1456, 3343,
2990      3343, 1456, 1456, 1462, 1462, 1462, 1462, 3343, 3343, 1462,
2991      1462, 1469, 1469, 1469, 1469, 3343, 3343, 1469, 1469, 1148,
2992      1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1692, 1692,
2993
2994      1692, 1692, 1692, 1692, 1692, 1692, 1692, 1163, 1163, 1163,
2995      1163, 3343, 3343, 1163, 1163, 1198, 1198, 1198, 1198, 3343,
2996      3343, 1198, 1198,  707,  707,  707, 3343, 3343, 3343,  707,
2997       715,  715,  715,  715, 3343,  715, 3343,  715, 1231, 1231,
2998      1231, 1231, 3343, 3343, 1231, 1231,  755,  755,  755, 3343,
2999      3343, 3343,  755, 1262, 1262, 1262, 1262, 3343, 3343, 1262,
3000      1262,  762,  762,  762, 3343, 3343, 3343,  762, 1271, 1271,
3001      1271, 1271, 3343, 3343, 1271, 1271,  768,  768,  768,  768,
3002      3343,  768, 3343,  768, 1283, 1283, 1283, 1283, 3343, 3343,
3003      1283, 1283,  778,  778,  778, 3343, 3343, 3343,  778, 1314,
3004
3005      1314, 1314, 1314, 3343, 3343, 1314, 1314,  798,  798,  798,
3006      3343, 3343, 3343,  798, 1341, 1341, 1341, 1341, 3343, 3343,
3007      1341, 1341, 1357, 1357, 1357, 1357, 3343, 3343, 1357, 1357,
3008       827,  827,  827, 3343, 3343, 3343,  827,  837,  837,  837,
3009      3343, 3343, 3343,  837,  842,  842,  842,  842, 3343,  842,
3010      3343,  842, 1389, 1389, 1389, 1389, 3343, 3343, 1389, 1389,
3011       848,  848,  848,  848, 3343,  848, 3343,  848,  856,  856,
3012       856, 3343, 3343, 3343,  856,  863,  863,  863, 3343, 3343,
3013      3343,  863, 1421, 1421, 1421, 1421, 3343, 3343, 1421, 1421,
3014       870,  870,  870,  870, 3343,  870, 3343,  870, 1429, 1429,
3015
3016      1429, 1429, 3343, 3343, 1429, 1429, 1437, 1437, 1437, 1437,
3017      3343, 3343, 1437, 1437, 1447, 1447, 1447, 1447, 3343, 3343,
3018      1447, 1447,  886,  886,  886,  886, 3343,  886, 3343,  886,
3019      1456, 1456, 1456, 1456, 3343, 3343, 1456, 1456, 1462, 1462,
3020      1462, 1462, 3343, 3343, 1462, 1462, 1148, 1148, 1148, 1148,
3021      1148, 1148, 1148, 1148, 1148, 1692, 1692, 1692, 1692, 1692,
3022      1692, 1692, 1692, 1692, 1163, 1163, 1163, 1163, 3343, 3343,
3023      1163, 1163,  707,  707,  707, 3343, 3343, 3343,  707,  715,
3024       715,  715, 3343, 3343, 3343,  715, 1231, 1231, 1231, 1231,
3025      3343, 3343, 1231, 1231,  755,  755,  755, 3343, 3343, 3343,
3026
3027       755, 1262, 1262, 1262, 1262, 3343, 3343, 1262, 1262,  762,
3028       762,  762, 3343, 3343, 3343,  762, 1283, 1283, 1283, 1283,
3029      3343, 3343, 1283, 1283,  778,  778,  778, 3343, 3343, 3343,
3030       778, 1314, 1314, 1314, 1314, 3343, 3343, 1314, 1314,  798,
3031       798,  798, 3343, 3343, 3343,  798,  827,  827,  827, 3343,
3032      3343, 3343,  827,  837,  837,  837, 3343, 3343, 3343,  837,
3033      2965, 2965, 2965, 2965, 2965, 2965, 2965, 2965, 2965, 2966,
3034      2966, 2966, 2966, 2966, 2966, 2966, 2966, 2966, 3022, 3022,
3035      3022, 3022, 3022, 3022, 3022, 3022, 3022, 3025, 3025, 3025,
3036      3025, 3025, 3025, 3025, 3025, 3025, 3063, 3063, 3063, 3063,
3037
3038      3063, 3063, 3063, 3063, 3063, 3065, 3065, 3065, 3065, 3065,
3039      3065, 3065, 3065, 3065,  259, 3343, 3343, 3343, 3343, 3343,
3040      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
3041      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
3042      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
3043      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
3044      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
3045      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
3046      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343
3047     } ;
3048
3049 static yyconst flex_int16_t yy_chk[12390] =
3050     {   0,
3051         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
3052         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
3053         4,   10,    0,    5,    0,    9,    6,    0,   10,    7,
3054         8,    8,    8,  264,   11,   13,   13,   12,   14,   14,
3055        13,   13,  313,   14,   14,  265,    8,   17,   17,  264,
3056        13,   15,   15,   14,   15,  268,   15,   16,   16,  367,
3057        16,  265,   16,   18,   18, 1512,   15,   19,   19,   19,
3058       544,  268,   16,   20,   20,   20,   23,   23,   23,   24,
3059        24,   24,  544,   19,   25,   25,   25,  367, 1513,   20,
3060       374,   17,   23, 1074,  313,   24,  262,  262,  262, 1074,
3061
3062        25,  263,  263,  263,  267,  267,  267,   18,   21,   21,
3063        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
3064        21,   21,   21,  297,   21,   21,   21,   21,   21,   26,
3065        26,   26,   27,   27,   27,   28,   28,   28,  297,   29,
3066        29,   29,   30,   30,   30,   26,  374,  473,   27,  291,
3067       473,   28,  681,   21,   21,   29,  307,  286,   30,   31,
3068        31,   31,  288,  288,  288,  291,  295,  295,  295,  304,
3069       304,  304,  307,  286,  363,   31,  681,   21,   22,   22,
3070        22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
3071        22,   22,   22, 1514,   22,   22,   22,   22,   22,   32,
3072
3073        32,   32,   33,   33,   33,   34,   34,   34,  278,   35,
3074        35,   35,   36,   36,   36,   32,  286,  366,   33,  490,
3075       737,   34,  490,   22,   22,   35,  363,  366,   36,   37,
3076        37,   37,   38,   38,   38,   39,   39,   39,   40,   40,
3077        40,   41,   41,   41,  737,   37,  556,   22,   38,  318,
3078       278,   39,  469,  556,   40,  366,  278,   41,   42,   42,
3079        42,  278,  311,  311,  311,  318,  278,  315,  315,  315,
3080       326,  326,  326,  469,   42,   43,   43,   43,   43,   43,
3081        43,   43,   43,   43,   43,   43,   43,   43,   43,   43,
3082       335,   43,   43,   43,   43,   43,   45,   45,   45,   46,
3083
3084        46,   46,   47,   47,   47,  335,   48,   48,   48,   49,
3085        49,   49,   45,  433,  561,   46, 1516,  433,   47,  333,
3086        43,   43,   48,  333,  387,   49,  299,  333,   43,   44,
3087        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
3088        44,   44,   44,   44,  329,   44,   44,   44,   44,   44,
3089        50,   50,   50,   51,   51,   51,   52,   52,   52,  474,
3090       329,  574,   55,   55,  570,  299,   50,   55,  300,   51,
3091       561,  570,   52,  474,   44,   44,  387,   55,  299,  388,
3092       299, 1517,   44,   53,   53,   53,   53,   53,   53,   53,
3093        53,   53,   53,   53,   53,   53,   53,   53, 1523,   53,
3094
3095        53,   53,   53,   53, 1524,  343,   55,  300,   59,   59,
3096        59,   60,   60,   60,   63,   63,   63,  574,   56,   56,
3097       300,  343,  300,   56,   59,  323,  472,   60,   53,   53,
3098        63,  388,  323,   56,  472,  669,   53,  400,  669,   53,
3099       472,  323,  337,  337,  337, 1526,   53,   54,   54,   54,
3100        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
3101        54,   54,   56,   54,   54,   54,   54,   54,   64,   64,
3102        64,   67,   67,   67,   68,   68,   68, 1535,   69,   69,
3103        69,   70,   70,   70,   64,  355,  373,   67,  338,  400,
3104        68,  560,   54,   54,   69,  338, 1182,   70, 1538,  560,
3105
3106        54,  355,  373,   54,  338,  340,  340,  340,  401, 1182,
3107        54,   57,   57,   57,   57,   57,   57,   57,   57,   57,
3108        57,   57,   57,   57,   57,   57, 1540,   57,   57,   57,
3109        57,   57,   71,   71,   71,   72,   72,   72,   73,   73,
3110        73,  439,   74,   74,   74,   75,   75,   75,   71, 1545,
3111       379,   72,  350,  393,   73, 1548,   57,   57,   74,  350,
3112       401,   75,  349,  349,  349,   57,  379,   57,  350,  393,
3113       437,   57,  352,  352,  352,  479,   57,   57,   58,   58,
3114        58,   58,   58,   58,   58,   58,   58,   58,   58,   58,
3115        58,   58,   58,  439,   58,   58,   58,   58,   58,   76,
3116
3117        76,   76,   77,   77,   77,   78,   78,   78,  625,   79,
3118        79,   79,   80,   80,   80,   76,  365, 1549,   77,  437,
3119       625,   78,  437,   58,   58,   79,  365,  479,   80,  360,
3120       360,  360,   58,  365,   58,  376,  376,  376,   58,  386,
3121       386,  386, 1550,   58,   58,   61,   61,   61,   61,   61,
3122        61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
3123       371,   61,   61,   61,   61,   61,   81,   81,   81,   82,
3124        82,   82,   83,   83,   83,  711,   84,   84,   84,   85,
3125        85,   85,   81, 1555, 1556,   82,  660,  597,   83,  371,
3126        61,   61,   84,  371,  371,   85,  610,   61,  390,  390,
3127
3128       390,  660,  371,   61,  371,  399,  399,  399,  403,  403,
3129       403,  711,   61,   62,   62,   62,   62,   62,   62,   62,
3130        62,   62,   62,   62,   62,   62,   62,   62, 1557,   62,
3131        62,   62,   62,   62,   86,   86,   86,   87,   87,   87,
3132        88,   88,   88,  597,   89,   89,   89,   90,   90,   90,
3133        86,  406,  610,   87, 1558,  746,   88,  412,   62,   62,
3134        89,  417,  428,   90,  412,   62, 1559,  406,  411,  411,
3135       411,   62,  747,  412,  414,  414,  414,  417,  428,  746,
3136        62,   65,   65,   65,   65,   65,   65,   65,   65,   65,
3137        65,   65,   65,   65,   65,   65,  747,   65,   65,   65,
3138
3139        65,   65,   91,   91,   91,   92,   92,   92,   93,   93,
3140        93, 1560,   94,   94,   94,   95,   95,   95,   91,  444,
3141       780,   92,  423,  780,   93,  480,   65,   65,   94,  423,
3142      1561,   95,  422,  422,  422,  444,  438,   65,  423,  425,
3143       425,  425,  436,  436,  436, 1566,   65,   66,   66,   66,
3144        66,   66,   66,   66,   66,   66,   66,   66,   66,   66,
3145        66,   66,  748,   66,   66,   66,   66,   66,   96,   96,
3146        96,   97,   97,   97,   98,   98,   98,  480,   99,   99,
3147        99,  100,  100,  100,   96,  438,  748,   97,  438,  749,
3148        98, 1567,   66,   66,   99,  449, 1571,  100,  101,  101,
3149
3150       101, 1575,  449,   66,  102,  102,  102,  441,  441,  441,
3151       547,  449,   66,  749,  101,  448,  448,  448,  372, 1577,
3152       102,  103,  103,  103,  103,  103,  103,  103,  103,  103,
3153       103,  103,  103,  103,  103,  103,  753,  103,  103,  103,
3154       103,  103,  105,  105,  105,  106,  106,  106,  107,  107,
3155       107,  687,  108,  108,  108,  687,  372,  454,  105,  786,
3156       753,  106,  547,  786,  107,  369,  103,  103,  108,  461,
3157       466,  103,  372,  454,  548,  369,  461,  103,  451,  451,
3158       451,  103,  460,  460,  460,  461,  466,  103,  104,  104,
3159       104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
3160
3161       104,  104,  104,  369,  104,  104,  104,  104,  104,  109,
3162       109,  109,  110,  110,  110,  111,  111,  111,  626,  112,
3163       112,  112,  463,  463,  463,  109,  548,  475,  110, 1578,
3164      1582,  111, 1585,  104,  104,  112,  485,  500,  104,  475,
3165       475,  478,  478,  478,  104,  482,  482,  482,  104,  494,
3166       494,  494,  485,  500,  104,  113,  113,  113,  113,  113,
3167       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
3168       626,  113,  113,  113,  113,  113,  115,  115,  115,  116,
3169       116,  116,  117,  117,  117,  682,  118,  118,  118, 1151,
3170       495, 1586,  115, 1151, 1593,  116,  682,  495,  117,  682,
3171
3172       113,  113,  118,  511,  516,  113,  495,  497,  497,  497,
3173       511,  113,  510,  510,  510,  513,  513,  513, 1480,  511,
3174       516, 1595,  113,  114,  114,  114,  114,  114,  114,  114,
3175       114,  114,  114,  114,  114,  114,  114,  114, 1480,  114,
3176       114,  114,  114,  114,  119,  119,  119,  120,  120,  120,
3177       121,  121,  121,  689,  122,  122,  122,  521,  521,  521,
3178       119,  527,  539,  120,  522, 1596,  121,  689,  114,  114,
3179       122,  522, 1602,  114,  524,  524,  524,  527,  539,  114,
3180       522,  533,  533,  533,  536,  536,  536,  546,  546,  546,
3181       114,  123,  123,  123,  123,  123,  123,  123,  123,  123,
3182
3183       123,  123,  123,  123,  123,  123, 1603,  123,  123,  123,
3184       123,  123,  125,  125,  125,  126,  126,  126,  129,  129,
3185       129,  646,  130,  130,  130,  133,  133,  133,  125,  553,
3186       566,  126,  534, 1605,  129, 1606,  123,  123,  130,  534,
3187       573,  133,  550,  550,  550,  553,  566,  647,  534,  558,
3188       558,  558,  123, 1607,  559, 1608, 1609,  123,  124,  124,
3189       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
3190       124,  124,  124,  646,  124,  124,  124,  124,  124,  134,
3191       134,  134,  135,  135,  135,  136,  136,  136,  573,  137,
3192       137,  137,  138,  138,  138,  134,  573, 1610,  135,  647,
3193
3194      1611,  136,  559,  124,  124,  137,  559,  579,  138,  563,
3195       563,  563,  572,  572,  572,  576,  576,  576, 1621,  124,
3196       584,  584,  584,  579,  124,  127,  127,  127,  127,  127,
3197       127,  127,  127,  127,  127,  127,  127,  127,  127,  127,
3198      1623,  127,  127,  127,  127,  127,  139,  139,  139,  140,
3199       140,  140,  143,  143,  143,  693,  144,  144,  144,  147,
3200       147,  147,  139,  590,  602,  140,  585,  742,  143,  693,
3201       127,  127,  144,  585,  615,  147,  587,  587,  587,  590,
3202       602,  742,  585,  595,  595,  595,  127, 1624, 1629,  596,
3203       615, 1631,  127,  128,  128,  128,  128,  128,  128,  128,
3204
3205       128,  128,  128,  128,  128,  128,  128,  128, 1633,  128,
3206       128,  128,  128,  128,  148,  148,  148,  151,  151,  151,
3207       152,  152,  152, 1634,  153,  153,  153,  154,  154,  154,
3208       148, 1194, 1636,  151, 1637, 1638,  152,  596,  128,  128,
3209       153,  692,  631,  154, 1194,  596,  599,  599,  599,  608,
3210       608,  608,  692, 1647,  128,  692, 1653,  609,  631, 1654,
3211       128,  131,  131,  131,  131,  131,  131,  131,  131,  131,
3212       131,  131,  131,  131,  131,  131, 1658,  131,  131,  131,
3213       131,  131,  155,  155,  155,  156,  156,  156,  157,  157,
3214       157, 1660,  158,  158,  158,  612,  612,  612,  155, 1248,
3215
3216      1672,  156, 1673, 1678,  157,  609,  131,  131,  158,  131,
3217       641,  131, 1248,  609,  623,  623,  623,  131,  628,  628,
3218       628,  635,  635,  635,  131,  624,  641,  131,  132,  132,
3219       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
3220       132,  132,  132, 1681,  132,  132,  132,  132,  132,  161,
3221       161,  161,  162,  162,  162,  165,  165,  165,  695,  166,
3222       166,  166,  624,  636, 1682,  161, 1683,  652,  162,  695,
3223       636,  165,  695,  132,  132,  166,  132,  624,  132,  636,
3224       638,  638,  638,  652,  132,  645,  645,  645,  649,  649,
3225       649,  132, 1685, 1692,  132,  141,  141,  141,  141,  141,
3226
3227       141,  141,  141,  141,  141,  141,  141,  141,  141,  141,
3228      1695,  141,  141,  141,  141,  141,  169,  169,  169,  170,
3229       170,  170,  173,  173,  173,  750,  174,  174,  174,  177,
3230       177,  177,  169, 1698, 1699,  170,  658, 1701,  173,  750,
3231       141,  141,  174,  658, 1702,  177,  657,  657,  657,  659,
3232       659,  659,  658,  668,  668,  668,  141,  142,  142,  142,
3233       142,  142,  142,  142,  142,  142,  142,  142,  142,  142,
3234       142,  142, 1703,  142,  142,  142,  142,  142,  178,  178,
3235       178,  179,  179,  179,  180,  180,  180, 1704,  181,  181,
3236       181,  182,  182,  182,  178,  699, 1705,  179,  688,  751,
3237
3238       180,  697,  142,  142,  181,  688,  699,  182,  697,  699,
3239       751,  688,  668,  751,  697, 1166, 1166, 1166,  142,  145,
3240       145,  145,  145,  145,  145,  145,  145,  145,  145,  145,
3241       145,  145,  145,  145, 1706,  145,  145,  145,  145,  145,
3242       183,  183,  183,  184,  184,  184,  187,  187,  187,  752,
3243       188,  188,  188,  189,  189,  189,  183, 1707, 1691,  184,
3244       700,  701,  187,  752,  145,  145,  188,  700,  701,  189,
3245       145,  741,  744,  700,  701,  145, 1709, 1710,  741,  744,
3246      1174, 1174, 1174, 1691,  741,  744, 1712,  145,  146,  146,
3247       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
3248
3249       146,  146,  146, 1714,  146,  146,  146,  146,  146,  190,
3250       190,  190,  191,  191,  191,  192,  192,  192, 1716,  193,
3251       193,  193,  194,  194,  194,  190,  909, 1717,  191, 1719,
3252      1721,  192, 1723,  146,  146,  193, 1724, 1725,  194,  146,
3253      1726, 1727,  909, 1729,  146,  912,  912,  912, 1738,  912,
3254      1189, 1189, 1189, 1245, 1245, 1245,  146,  149,  149,  149,
3255       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3256       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3257       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3258       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3259
3260       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3261       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3262       149,  149,  149,  149,  149,  149,  149,  149,  149,  149,
3263       149,  159,  159,  159,  159,  159,  159,  159,  159,  159,
3264       159,  159,  159,  159,  159,  159, 1739,  159,  159,  159,
3265       159,  159,  197,  197,  197,  198,  198,  198,  199,  199,
3266       199, 1741,  200,  200,  200,  201,  201,  201,  197, 1043,
3267      1745,  198, 1749, 1751,  199, 1758,  159,  159,  200, 1043,
3268       159,  201,  924,  924,  924, 1759, 1043,  159, 1760, 1761,
3269       159,  946,  946,  946,  159, 1763,  159,  159,  160,  160,
3270
3271       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
3272       160,  160,  160, 1767,  160,  160,  160,  160,  160,  202,
3273       202,  202,  203,  203,  203,  204,  204,  204, 1768,  207,
3274       207,  207,  208,  208,  208,  202, 1769, 1772,  203, 1779,
3275      1785,  204, 1792,  160,  160,  207,  924,  160,  208,  958,
3276       958,  958, 1793,  958,  160,  946,  958,  160, 1496, 1496,
3277      1496,  160, 1802,  160,  160,  163,  163,  163,  163,  163,
3278       163,  163,  163,  163,  163,  163,  163,  163,  163,  163,
3279      1805,  163,  163,  163,  163,  163,  211,  211,  211,  212,
3280       212,  212,  213,  213,  213, 1815,  214,  214,  214,  709,
3281
3282       709,  709,  211, 1819, 1823,  212, 1824, 1828,  213, 1829,
3283       163,  163,  214,  163,  163,  163,  709, 1830,  966,  966,
3284       966,  163,  966, 1831,  163,  966, 1833, 1841,  163, 1845,
3285      1848,  163,  164,  164,  164,  164,  164,  164,  164,  164,
3286       164,  164,  164,  164,  164,  164,  164, 1850,  164,  164,
3287       164,  164,  164,  215,  215,  215,  216,  216,  216,  217,
3288       217,  217, 1852,  218,  218,  218,  717,  717,  717,  215,
3289      1853, 1855,  216, 1856, 1857,  217, 1860,  164,  164,  218,
3290       164,  164,  164,  717, 1862,  981,  981,  981,  164,  981,
3291      1864,  164,  981, 1869, 1875,  164, 1879, 1880,  164,  167,
3292
3293       167,  167,  167,  167,  167,  167,  167,  167,  167,  167,
3294       167,  167,  167,  167, 1881,  167,  167,  167,  167,  167,
3295       221,  221,  221,  222,  222,  222,  223,  223,  223, 1883,
3296       224,  224,  224,  733,  733,  733,  221, 1891, 1893,  222,
3297      1895, 1898,  223, 1899,  167,  167,  224, 1900, 1902,  167,
3298       733, 1497, 1497, 1497, 1891,  167,  168,  168,  168,  168,
3299       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
3300       168, 1893,  168,  168,  168,  168,  168,  225,  225,  225,
3301       226,  226,  226,  227,  227,  227, 1892,  228,  228,  228,
3302       757,  757,  757,  225, 1903, 1901,  226, 1497, 1905,  227,
3303
3304      1906,  168,  168,  228, 1907, 1909,  168,  757, 1499, 1499,
3305      1499, 1901,  168,  171,  171,  171,  171,  171,  171,  171,
3306       171,  171,  171,  171,  171,  171,  171,  171, 1892,  171,
3307       171,  171,  171,  171,  231,  231,  231,  232,  232,  232,
3308       233,  233,  233, 1910,  234,  234,  234,  235,  235,  235,
3309       231, 1911, 1915,  232, 1499, 1917,  233, 1920,  171,  171,
3310       234, 1921,  171,  235,  985,  985,  985, 1922, 1923,  171,
3311      1925, 1927,  171,  172,  172,  172,  172,  172,  172,  172,
3312       172,  172,  172,  172,  172,  172,  172,  172, 1928,  172,
3313       172,  172,  172,  172,  236,  236,  236,  237,  237,  237,
3314
3315       238,  238,  238, 1930,  241,  241,  241,  242,  242,  242,
3316       236, 1932, 1935,  237, 1936, 1938,  238, 1939,  172,  172,
3317       241, 1940,  172,  242,  994,  994,  994, 1942,  985,  172,
3318      1948, 1949,  172,  175,  175,  175,  175,  175,  175,  175,
3319       175,  175,  175,  175,  175,  175,  175,  175, 1951,  175,
3320       175,  175,  175,  175,  245,  245,  245,  246,  246,  246,
3321       247,  247,  247, 1937,  248,  248,  248,  249,  249,  249,
3322       245, 1937, 1954,  246, 1950, 1955,  247, 1966,  175,  175,
3323       248, 1971,  175,  249, 1502, 1502, 1502, 1972,  994,  175,
3324      1950, 1955,  175, 1505, 1505, 1505, 1515, 1515, 1515,  175,
3325
3326       176,  176,  176,  176,  176,  176,  176,  176,  176,  176,
3327       176,  176,  176,  176,  176, 1979,  176,  176,  176,  176,
3328       176,  250,  250,  250,  251,  251,  251,  252,  252,  252,
3329      1980,  255,  255,  255,  256,  256,  256,  250, 1753, 1956,
3330       251, 1981, 1985,  252, 1753,  176,  176,  255, 1753,  176,
3331       256,  298, 1753,  364,  370, 1956,  176, 1941, 1987,  176,
3332      1993,  298, 1994,  364, 1995, 1941,  176,  185,  185,  185,
3333       185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
3334       185,  185,  370,  185,  185,  185,  185,  185, 2002, 2003,
3335       298,  364, 2004,  764,  764,  764,  298, 2007,  370,  781,
3336
3337       781,  781, 2018,  298, 2024,  364, 2028,  298, 2031,  364,
3338       764, 2033,  185,  185, 2036, 2038,  781, 2040,  185, 1001,
3339      1001, 1001, 2041, 1001, 2042, 2045, 1001, 1551, 1551, 1551,
3340      1552, 1552, 1552,  185,  186,  186,  186,  186,  186,  186,
3341       186,  186,  186,  186,  186,  186,  186,  186,  186, 2047,
3342       186,  186,  186,  186,  186,  794,  794,  794,  795,  795,
3343       795,  801,  801,  801,  803,  803,  803,  818,  818,  818,
3344      2052, 2054,  794, 2062, 2063,  795, 1552, 2064,  801,  186,
3345       186,  803, 2065, 2067,  818,  186, 1008, 1008, 1008, 2081,
3346      1008, 2086, 2080, 1008, 1553, 1553, 1553, 1554, 1554, 1554,
3347
3348       186,  195,  195,  195,  195,  195,  195,  195,  195,  195,
3349       195,  195,  195,  195,  195,  195, 2087,  195,  195,  195,
3350       195,  195,  819,  819,  819,  831,  831,  831,  839,  839,
3351       839,  844,  844,  844,  850,  850,  850, 2078, 2080,  819,
3352      1553, 2088,  831, 2078, 2089,  839,  195,  195,  844, 2093,
3353      2095,  850,  195, 2096, 2097,  195, 1024, 1024, 1024, 2102,
3354      1024, 2109, 2111, 1024, 1649, 1649, 1649,  195,  196,  196,
3355       196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
3356       196,  196,  196, 2112,  196,  196,  196,  196,  196,  872,
3357       872,  872,  900,  900,  900,  904,  904,  904,  922,  922,
3358
3359       922, 1754,  923,  923,  923, 2115,  872, 1754, 2118,  900,
3360      1649, 1754,  904,  196,  196, 1754,  922, 2122, 2123,  196,
3361       923, 2124,  196, 1037, 1037, 1037, 2125, 1037, 2079, 2126,
3362      1037, 1708, 1708, 1708,  196,  205,  205,  205,  205,  205,
3363       205,  205,  205,  205,  205,  205,  205,  205,  205,  205,
3364      2127,  205,  205,  205,  205,  205,  954,  954,  954, 2079,
3365       923,  955,  955,  955, 2128,  957,  957,  957, 2129,  961,
3366       961,  961, 2130, 2131,  954, 1711, 1711, 1711, 2136,  955,
3367       205,  205,  957, 1713, 1713, 1713,  205,  961, 1715, 1715,
3368      1715,  205,  206,  206,  206,  206,  206,  206,  206,  206,
3369
3370       206,  206,  206,  206,  206,  206,  206, 2137,  206,  206,
3371       206,  206,  206,  962,  962,  962,  965,  965,  965, 2138,
3372      2139,  955,  967,  967,  967,  969,  969,  969,  973,  973,
3373       973,  962, 2144,  965, 1718, 1718, 1718,  206,  206,  967,
3374      2148, 2153,  969,  206, 2160, 2161,  973, 2167,  206,  209,
3375       209,  209,  209,  209,  209,  209,  209,  209,  209,  209,
3376       209,  209,  209,  209, 2168,  209,  209,  209,  209,  209,
3377       978,  978,  978,  979,  979,  979, 2170,  962, 2174,  980,
3378       980,  980, 2165, 2175,  974,  974,  974, 2176,  978, 2182,
3379      2165,  979, 2183, 2166,  209,  209,  980, 1000, 1000, 1000,
3380
3381       209, 2166,  974, 1039, 1039, 1039, 2184, 1039, 2188, 2199,
3382      1039, 1720, 1720, 1720, 1000,  209,  210,  210,  210,  210,
3383       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
3384       210,  974,  210,  210,  210,  210,  210,  979,  983,  983,
3385       983,  984,  984,  984, 2203, 1004, 1004, 1004, 1005, 1005,
3386      1005, 1007, 1007, 1007, 2204, 2205,  983, 2207, 2211,  984,
3387      2214,  210,  210, 1004, 2215, 2218, 1005,  210, 1007, 1045,
3388      1045, 1045, 2219, 1045, 2222, 1720, 1045, 2229,  984, 1728,
3389      1728, 1728,  210,  219,  219,  219,  219,  219,  219,  219,
3390       219,  219,  219,  219,  219,  219,  219,  219, 2231,  219,
3391
3392       219,  219,  219,  219, 1010, 1010, 1010, 1011, 1011, 1011,
3393      1023, 1023, 1023, 2216, 1005, 1014, 1014, 1014, 1015, 1015,
3394      1015, 2216, 1010, 2246, 2251, 1011, 2260, 1023,  219,  219,
3395      1018, 1018, 1018, 1014,  219, 2217, 1015,  219, 1048, 1048,
3396      1048, 2261, 1048, 2217, 2264, 1048, 2271, 2250, 1018,  219,
3397       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
3398       220,  220,  220,  220,  220, 2272,  220,  220,  220,  220,
3399       220, 2251, 2277, 1011, 1019, 1019, 1019, 2279, 2291, 1015,
3400      1028, 1028, 1028, 2292, 1029, 1029, 1029, 1033, 1033, 1033,
3401      2250, 2293, 1019, 2294, 2295,  220,  220, 2296, 1028, 2297,
3402
3403      2298,  220, 1029, 2299,  220, 1033, 1063, 1063, 1063, 2300,
3404      1063, 2307, 2308, 1063, 2309, 2311,  220,  229,  229,  229,
3405       229,  229,  229,  229,  229,  229,  229,  229,  229,  229,
3406       229,  229, 2315,  229,  229,  229,  229,  229, 2320, 1019,
3407      1036, 1036, 1036, 2324, 2325, 1029, 1034, 1034, 1034, 1038,
3408      1038, 1038, 2326, 1040, 1040, 1040, 2327, 1036, 1041, 1041,
3409      1041, 2328,  229,  229, 1034, 2329, 1038, 1722, 1722, 1722,
3410       229, 1040,  229, 2330, 2333,  229, 1041, 2334, 2335,  229,
3411      1762, 1762, 1762,  229,  230,  230,  230,  230,  230,  230,
3412       230,  230,  230,  230,  230,  230,  230,  230,  230, 2341,
3413
3414       230,  230,  230,  230,  230, 1044, 1044, 1044, 1034, 1047,
3415      1047, 1047, 2342, 1722, 1049, 1049, 1049, 2303, 2303, 1041,
3416      2303, 2343, 1044, 1060, 1060, 1060, 1047, 2349, 2303,  230,
3417       230, 1049, 1062, 1062, 1062, 2303, 2350,  230, 2336,  230,
3418      2351, 1060,  230, 1764, 1764, 1764,  230, 2352, 2336, 1062,
3419       230,  239,  239,  239,  239,  239,  239,  239,  239,  239,
3420       239,  239,  239,  239,  239,  239, 2366,  239,  239,  239,
3421       239,  239, 1064, 1064, 1064, 1065, 1065, 1065, 2367, 1065,
3422      2368, 2369, 1065, 2371, 1061, 1061, 1061, 2373, 2396, 1064,
3423      1066, 1066, 1066, 1067, 1067, 1067,  239,  239, 1068, 1068,
3424
3425      1068, 2397, 1061, 2402, 1077, 1077, 1077, 1066, 1077, 2403,
3426      1067, 1077, 1085, 1085, 1085, 1068, 1085, 2390, 2404, 1085,
3427       239,  240,  240,  240,  240,  240,  240,  240,  240,  240,
3428       240,  240,  240,  240,  240,  240, 2391,  240,  240,  240,
3429       240,  240, 1061, 2407, 1067, 1071, 1071, 1071, 2410, 2390,
3430      1068, 1069, 1069, 1069, 2411, 1076, 1076, 1076, 2412, 2413,
3431      1070, 1070, 1070, 1071, 2414, 2415,  240,  240, 1069, 1072,
3432      1072, 1072, 1076, 2391, 1090, 1090, 1090, 1070, 1090, 2416,
3433      2417, 1090, 1096, 1096, 1096, 2418, 1096, 1072, 2419, 1096,
3434       240,  243,  243,  243,  243,  243,  243,  243,  243,  243,
3435
3436       243,  243,  243,  243,  243,  243, 1069,  243,  243,  243,
3437       243,  243, 1070, 1078, 1078, 1078, 1072, 1081, 1081, 1081,
3438      1082, 1082, 1082, 1084, 1084, 1084, 1086, 1086, 1086, 2420,
3439      1078, 1765, 1765, 1765, 2422, 1081,  243,  243, 1082, 2423,
3440      1084, 1730, 1730, 1730, 1086, 2425, 2426,  243,  244,  244,
3441       244,  244,  244,  244,  244,  244,  244,  244,  244,  244,
3442       244,  244,  244, 2427,  244,  244,  244,  244,  244, 2428,
3443      2430, 1082, 1087, 1087, 1087, 1089, 1089, 1089, 1092, 1092,
3444      1092, 1093, 1093, 1093, 1095, 1095, 1095, 1730, 2424, 2429,
3445      1087, 2431, 1089,  244,  244, 2433, 1092, 2424, 2429, 1093,
3446
3447      2434, 1095, 2436, 2437,  244,  253,  253,  253,  253,  253,
3448       253,  253,  253,  253,  253,  253,  253,  253,  253,  253,
3449      2439,  253,  253,  253,  253,  253, 2445, 2446, 1093, 1100,
3450      1100, 1100, 2447, 1087, 2449, 1101, 1101, 1101, 1102, 1102,
3451      1102, 1103, 1103, 1103, 1105, 1105, 1105, 1100, 2454, 2455,
3452       253,  253, 2456, 1101, 2457, 1102, 2458, 2461, 1103, 2463,
3453      2468,  253, 1105, 1116, 1116, 1116, 2469, 1116, 2471, 2480,
3454      1116, 1804, 1804, 1804,  253,  254,  254,  254,  254,  254,
3455       254,  254,  254,  254,  254,  254,  254,  254,  254,  254,
3456      1101,  254,  254,  254,  254,  254, 1104, 1104, 1104, 1106,
3457
3458      1106, 1106, 1108, 1108, 1108, 2482, 1109, 1109, 1109, 1110,
3459      1110, 1110, 2485, 1104, 1112, 1112, 1112, 1106, 2487, 1108,
3460       254,  254, 2507, 1109, 2511, 2512, 1110, 2508, 1113, 1113,
3461      1113,  254, 1112, 1111, 1111, 1111, 1115, 1115, 1115, 1117,
3462      1117, 1117, 2514, 2506,  254,  296, 1113, 1119, 1119, 1119,
3463      1111, 2515,  296, 1115, 2516, 1104, 1109, 1117, 2521, 2507,
3464      1106,  296,  296, 2522, 1119, 1113, 1118, 1118, 1118, 2523,
3465      2508, 1109, 1904, 1904, 1904, 2524, 1120, 1120, 1120, 2525,
3466      1121, 1121, 1121, 2506, 1118, 1122, 1122, 1122, 2526,  296,
3467       296,  296, 1111, 1120, 2527,  296,  296,  296, 1121, 2528,
3468
3469       296,  296, 2529, 1122,  296, 2530,  296,  296,  296,  361,
3470      1123, 1123, 1123, 1124, 1124, 1124,  361, 1125, 1125, 1125,
3471      2531, 1118, 1126, 1126, 1126,  361,  361, 1123, 2533, 2534,
3472      1124, 1127, 1127, 1127, 1125, 1139, 1139, 1139, 2519, 2535,
3473      1126, 1143, 1143, 1143, 1133, 1133, 1133, 2536, 2519, 1127,
3474      2537, 2519, 1139,  361,  361,  361, 1122, 2538, 1143,  361,
3475       361,  361, 1133, 1124,  361,  361, 2539, 2540,  361, 2541,
3476       361,  361,  361, 1134, 1134, 1134, 2542, 2543, 1124, 1137,
3477      1137, 1137, 1138, 1138, 1138, 1140, 1140, 1140, 2520, 1140,
3478      2544, 1134, 1140, 1141, 1141, 1141, 2545, 1137, 2520, 2546,
3479
3480      1138, 2520, 1127, 1142, 1142, 1142, 1144, 1144, 1144, 2548,
3481      1144, 1141, 2549, 1144, 1146, 1146, 1146, 1147, 1147, 1147,
3482      2551, 1142, 1162, 1162, 1162, 1163, 1163, 1163, 2557, 1165,
3483      1165, 1165, 1146, 2564, 2565, 1147, 2566, 1134, 2568, 2572,
3484      1162, 2575, 2576, 1163, 2617, 2614, 1138, 1165, 1196, 1196,
3485      1196, 1197, 1197, 1197, 1198, 1198, 1198, 1200, 1200, 1200,
3486      1201, 1201, 1201, 2615, 1142, 1196, 1202, 1202, 1202, 1197,
3487      1202, 2619, 1198, 1202, 2614, 1200, 1165, 1201, 1205, 1205,
3488      1205, 1147, 1207, 1207, 1207, 1208, 1208, 1208, 2599, 1210,
3489      1210, 1210, 1212, 1212, 1212, 1205, 1212, 2620, 2599, 1212,
3490
3491      1207, 2621, 2624, 1208, 2599, 2615, 1200, 1210, 1215, 1215,
3492      1215, 1216, 1216, 1216, 2600, 1216, 2625, 2627, 1216, 2616,
3493      1217, 1217, 1217, 2628, 2600, 1215, 1218, 1218, 1218, 2630,
3494      2600, 1219, 1219, 1219, 2631, 1219, 1210, 1217, 1219, 1205,
3495      1221, 1221, 1221, 1218, 1223, 1223, 1223, 1224, 1224, 1224,
3496      1226, 1226, 1226, 1228, 1228, 1228, 2626, 1221, 1230, 1230,
3497      1230, 2616, 1223, 2632, 2633, 1224, 2634, 2636, 1226, 2626,
3498      1228, 1231, 1231, 1231, 2637, 2629, 1230, 1233, 1233, 1233,
3499      1234, 1234, 1234, 2638, 1234, 2639, 2642, 1234, 2629, 1231,
3500      1238, 1238, 1238, 2643, 2644, 1233, 1239, 1239, 1239, 1241,
3501
3502      1241, 1241, 1256, 1256, 1256, 2645, 1256, 2646, 1238, 1256,
3503      1226, 1260, 1260, 1260, 1239, 2647, 2648, 1241, 1261, 1261,
3504      1261, 1262, 1262, 1262, 1233, 1264, 1264, 1264, 1260, 2649,
3505      1266, 1266, 1266, 2650, 1266, 2651, 1261, 1266, 2652, 1262,
3506      1270, 1270, 1270, 1264, 1271, 1271, 1271, 1273, 1273, 1273,
3507      1274, 1274, 1274, 1275, 1275, 1275, 2653, 2654, 1270, 1276,
3508      1276, 1276, 1271, 2656, 2668, 1273, 2669, 1274, 2674, 2678,
3509      1275, 1277, 1277, 1277, 1279, 1279, 1279, 1276, 1280, 1280,
3510      1280, 1281, 1281, 1281, 2679, 2697, 1264, 2698, 2699, 1277,
3511      2700, 2701, 1279, 2702, 2706, 1280, 2714, 2717, 1281, 2718,
3512
3513      1275, 1282, 1282, 1282, 1283, 1283, 1283, 2706, 1273, 1281,
3514      1285, 1285, 1285, 1288, 1288, 1288, 1289, 1289, 1289, 1282,
3515      1289, 2722, 1283, 1289, 1295, 1295, 1295, 2707, 1285, 2723,
3516      1288, 1296, 1296, 1296, 1298, 1298, 1298, 1301, 1301, 1301,
3517      2707, 1279, 1295, 1302, 1302, 1302, 1303, 1303, 1303, 1296,
3518      2724, 2725, 1298, 2726, 1301, 1305, 1305, 1305, 1306, 1306,
3519      1306, 1302, 2712, 2727, 1303, 1307, 1307, 1307, 2711, 1307,
3520      2728, 2729, 1307, 1305, 2731, 1306, 1285, 1310, 1310, 1310,
3521      2732, 1310, 2733, 2734, 1310, 1313, 1313, 1313, 1314, 1314,
3522      1314, 1316, 1316, 1316, 1321, 1321, 1321, 2712, 1321, 1298,
3523
3524      2735, 1321, 2736, 1313, 2737, 2738, 1314, 2740, 2741, 1316,
3525      1324, 1324, 1324, 1325, 1325, 1325, 2711, 1325, 2742, 2743,
3526      1325, 2744, 1305, 1328, 1328, 1328, 2745, 1324, 1329, 1329,
3527      1329, 2746, 1329, 2747, 2748, 1329, 1340, 1340, 1340, 2749,
3528      1328, 1341, 1341, 1341, 1343, 1343, 1343, 2750, 1344, 1344,
3529      1344, 2751, 1344, 2752, 1340, 1344, 1316, 2762, 2766, 1341,
3530      2767, 2775, 1343, 1347, 1347, 1347, 2776, 1347, 2777, 2789,
3531      1347, 1350, 1350, 1350, 1351, 1351, 1351, 2794, 1351, 2789,
3532      2795, 1351, 1356, 1356, 1356, 1357, 1357, 1357, 1350, 1359,
3533      1359, 1359, 1364, 1364, 1364, 2796, 1364, 2797, 2798, 1364,
3534
3535      1356, 2799, 2802, 1357, 1367, 1367, 1367, 1359, 1368, 1368,
3536      1368, 1343, 1368, 2803, 2804, 1368, 1371, 1371, 1371, 2805,
3537      2814, 1367, 1372, 1372, 1372, 1374, 1374, 1374, 1376, 1376,
3538      1376, 2790, 1376, 2806, 1371, 1376, 2815, 1359, 2816, 2817,
3539      1372, 2790, 2818, 1374, 1379, 1379, 1379, 1380, 1380, 1380,
3540      1382, 1382, 1382, 1384, 1384, 1384, 2792, 1384, 2819, 2820,
3541      1384, 2821, 1379, 2824, 2825, 1380, 2792, 2806, 1382, 1388,
3542      1388, 1388, 1389, 1389, 1389, 2827, 1374, 1391, 1391, 1391,
3543      2828, 1393, 1393, 1393, 2793, 1393, 2829, 1388, 1393, 2831,
3544      1389, 1399, 1399, 1399, 2793, 1391, 1400, 1400, 1400, 2833,
3545
3546      1402, 1402, 1402, 1403, 1403, 1403, 1404, 1404, 1404, 1399,
3547      1404, 2834, 2835, 1404, 1400, 2838, 2839, 1382, 1402, 2840,
3548      1403, 1405, 1405, 1405, 2841, 2844, 1391, 1406, 1406, 1406,
3549      2857, 1406, 2858, 2859, 1406, 1408, 1408, 1408, 1405, 1409,
3550      1409, 1409, 2867, 1411, 1411, 1411, 1413, 1413, 1413, 2868,
3551      1417, 1417, 1417, 1408, 1908, 1908, 1908, 1409, 2874, 2875,
3552      1402, 1411, 2876, 1413, 1414, 1414, 1414, 1417, 1414, 2877,
3553      2878, 1414, 1418, 1418, 1418, 2879, 1418, 2880, 2881, 1418,
3554      1420, 1420, 1420, 1421, 1421, 1421, 1423, 1423, 1423, 1425,
3555      1425, 1425, 2882, 1425, 2883, 2885, 1425, 2886, 1420, 2891,
3556
3557      2892, 1421, 2893, 2894, 1423, 1428, 1428, 1428, 2895, 2904,
3558      1411, 1429, 1429, 1429, 1431, 1431, 1431, 1432, 1432, 1432,
3559      1433, 1433, 1433, 1428, 1433, 2905, 2906, 1433, 2907, 1429,
3560      2908, 2909, 1431, 2910, 1432, 1434, 1434, 1434, 1435, 1435,
3561      1435, 2911, 1435, 2915, 2916, 1435, 1436, 1436, 1436, 2917,
3562      1423, 2895, 1434, 1437, 1437, 1437, 2918, 1439, 1439, 1439,
3563      1440, 1440, 1440, 2919, 1436, 1441, 1441, 1441, 2920, 1441,
3564      2922, 1437, 1441, 2923, 1431, 1439, 2925, 1440, 1444, 1444,
3565      1444, 1445, 1445, 1445, 2926, 1445, 2927, 2929, 1445, 1446,
3566      1446, 1446, 1447, 1447, 1447, 1444, 1449, 1449, 1449, 1451,
3567
3568      1451, 1451, 1455, 1455, 1455, 2933, 2934, 1446, 2935, 2938,
3569      1447, 1456, 1456, 1456, 1449, 2939, 1451, 2944, 2945, 1439,
3570      1455, 1458, 1458, 1458, 1461, 1461, 1461, 2946, 2947, 1456,
3571      1462, 1462, 1462, 1464, 1464, 1464, 1465, 1465, 1465, 1458,
3572      1465, 2948, 1461, 1465, 1468, 1468, 1468, 2949, 1462, 2950,
3573      2951, 1464, 1469, 1469, 1469, 1471, 1471, 1471, 1449, 1472,
3574      1472, 1472, 1468, 1472, 2952, 2953, 1472, 1476, 1476, 1476,
3575      1469, 2954, 2955, 1471, 1477, 1477, 1477, 1479, 1479, 1479,
3576      2957, 2958, 1458, 2959, 2960, 1476, 1464, 1481, 1481, 1481,
3577      2967, 2961, 1477, 2963, 2970, 1479, 1488, 1488, 1488, 1518,
3578
3579      1518, 1518, 1520, 1520, 1520, 1481, 1481, 2963, 1521, 1521,
3580      1521, 1546, 1546, 1546, 1488, 1471, 1518, 1519, 1519, 1519,
3581      1520, 1519, 2971, 2974, 1519, 1521, 1522, 1522, 1522, 1546,
3582      1522, 2964, 2976, 1522, 1525, 1525, 1525, 2961, 1479, 1527,
3583      1527, 1527, 2964, 1527, 2977, 2979, 1527, 1530, 1530, 1530,
3584      2980, 2983, 1525, 2984, 1531, 1531, 1531, 2985, 1531, 2986,
3585      1520, 1531, 1488, 2987, 1530, 1532, 1532, 1532, 2988, 1532,
3586      2989, 2990, 1532, 1536, 1536, 1536, 2991, 1537, 1537, 1537,
3587      2996, 1537, 3004, 1525, 1537, 1539, 1539, 1539, 2993, 3006,
3588      1536, 1541, 1541, 1541, 1542, 1542, 1542, 3008, 1542, 3010,
3589
3590      2993, 1542, 3018, 1539, 1543, 1543, 1543, 3020, 1541, 1544,
3591      1544, 1544, 1562, 1562, 1562, 1563, 1563, 1563, 1564, 1564,
3592      1564, 1543, 1564, 3023, 3023, 1564, 3024, 1544, 3021, 1562,
3593      3026, 3028, 1563, 3029, 3022, 1539, 1565, 1565, 1565, 1568,
3594      1568, 1568, 1569, 1569, 1569, 1570, 1570, 1570, 3022, 1570,
3595      3030, 3031, 1570, 3037, 1565, 3046, 3048, 1568, 1544, 1569,
3596      1572, 1572, 1572, 1573, 1573, 1573, 1574, 1574, 1574, 3021,
3597      1574, 3037, 3053, 1574, 1576, 1576, 1576, 2994, 1572, 3055,
3598      1573, 1579, 1579, 1579, 1580, 1580, 1580, 3001, 1580, 2994,
3599      3002, 1580, 1576, 1581, 1581, 1581, 3060, 3061, 1579, 3001,
3600
3601      1565, 3063, 3002, 1568, 1583, 1583, 1583, 1584, 1584, 1584,
3602      1581, 1587, 1587, 1587, 3064, 1588, 1588, 1588, 3065, 1588,
3603      1572, 1583, 1588, 3045, 3040, 1584, 3067, 3068, 1587, 1589,
3604      1589, 1589, 1590, 1590, 1590, 1576, 1591, 1591, 1591, 3040,
3605      1591, 3047, 3045, 1591, 1592, 1592, 1592, 1589, 3069, 1590,
3606      1583, 1594, 1594, 1594, 1597, 1597, 1597, 1598, 1598, 1598,
3607      3047, 1598, 1592, 3070, 1598, 1599, 1599, 1599, 1594, 1599,
3608      3072, 1597, 1599, 1584, 1604, 1604, 1604, 1612, 1612, 1612,
3609      1613, 1613, 1613, 3074, 1613, 3081, 3082, 1613, 1616, 1616,
3610      1616, 1604, 1617, 1617, 1617, 1612, 1618, 1618, 1618, 1619,
3611
3612      1619, 1619, 1620, 1620, 1620, 1616, 1622, 1622, 1622, 1617,
3613      1592, 3025, 3083, 1618, 3084, 3085, 1619, 1625, 1625, 1625,
3614      1620, 1625, 3025, 1622, 1625, 3086, 3092, 1628, 1628, 1628,
3615      1630, 1630, 1630, 1632, 1632, 1632, 1635, 1635, 1635, 1639,
3616      1639, 1639, 1612, 1618, 1628, 1640, 1640, 1640, 1630, 3093,
3617      3094, 1632, 3095, 3096, 1635, 3097, 1639, 1620, 3098, 1648,
3618      1648, 1648, 1617, 1640, 1641, 1641, 1641, 3052, 1641, 1619,
3619      3099, 1641, 1644, 1644, 1644, 3101, 1644, 1648, 3103, 1644,
3620      1650, 1650, 1650, 3105, 1650, 1639, 3052, 1650, 1655, 1655,
3621      1655, 3106, 1655, 1635, 1630, 1655, 1659, 1659, 1659, 1632,
3622
3623      3107, 3054, 1640, 1661, 1661, 1661, 1662, 1662, 1662, 3117,
3624      1662, 3115, 3116, 1662, 1659, 1665, 1665, 1665, 3118, 1665,
3625      3054, 1661, 1665, 3115, 3116, 1648, 1668, 1668, 1668, 1669,
3626      1669, 1669, 3119, 1669, 3120, 3121, 1669, 3122, 1674, 1674,
3627      1674, 3126, 1674, 3127, 1668, 1674, 1677, 1677, 1677, 1679,
3628      1679, 1679, 1680, 1680, 1680, 3128, 1680, 1659, 3129, 1680,
3629      1661, 1684, 1684, 1684, 1677, 3130, 1679, 1686, 1686, 1686,
3630      1687, 1687, 1687, 1668, 1688, 1688, 1688, 3131, 3132, 1684,
3631      1689, 1689, 1689, 3133, 1686, 1690, 1690, 1690, 1687, 1693,
3632      1693, 1693, 1688, 1677, 1700, 1700, 1700, 1689, 1731, 1731,
3633
3634      1731, 3136, 1731, 1690, 3137, 1731, 3138, 1693, 3139, 3140,
3635      1684, 3141, 1700, 1734, 1734, 1734, 1735, 1735, 1735, 3134,
3636      1735, 3142, 3143, 1735, 3144, 3145, 1688, 1740, 1740, 1740,
3637      3146, 1734, 1742, 1742, 1742, 3147, 1742, 1687, 3148, 1742,
3638      1693, 1750, 1750, 1750, 3134, 1740, 1700, 1690, 1746, 1746,
3639      1746, 3149, 1746, 3150, 3151, 1746, 3152, 1693, 3153, 1750,
3640      1752, 1752, 1752, 3154, 1752, 3155, 3161, 1752, 1755, 1755,
3641      1755, 3162, 1756, 1756, 1756, 3163, 1756, 3164, 1740, 1756,
3642      1734, 1757, 1757, 1757, 3165, 1755, 1766, 1766, 1766, 1770,
3643      1770, 1770, 1771, 1771, 1771, 1773, 1773, 1773, 3166, 1757,
3644
3645      3158, 3167, 1750, 1774, 1774, 1774, 3168, 1774, 3169, 3170,
3646      1774, 3171, 1773, 1775, 1775, 1775, 3172, 1775, 3173, 3158,
3647      1775, 1778, 1778, 1778, 1780, 1780, 1780, 1781, 1781, 1781,
3648      3174, 3175, 1757, 1782, 1782, 1782, 3176, 1782, 3177, 1778,
3649      1782, 1780, 1786, 1786, 1786, 1781, 3178, 1787, 1787, 1787,
3650      1766, 1787, 3180, 1770, 1787, 3181, 1771, 1791, 1791, 1791,
3651      1786, 1790, 1790, 1790, 3182, 1794, 1794, 1794, 1778, 1794,
3652      3183, 3184, 1794, 3185, 1781, 1791, 3186, 3187, 1790, 1797,
3653      1797, 1797, 1798, 1798, 1798, 3179, 1798, 3188, 3189, 1798,
3654      1799, 1799, 1799, 1800, 1800, 1800, 1797, 1801, 1801, 1801,
3655
3656      3190, 1801, 3191, 3192, 1801, 3179, 3193, 1799, 1786, 3194,
3657      1800, 1803, 1803, 1803, 3195, 1806, 1806, 1806, 3196, 1806,
3658      3197, 1791, 1806, 1809, 1809, 1809, 1811, 1811, 1811, 1803,
3659      1811, 3201, 3202, 1811, 1814, 1814, 1814, 1816, 1816, 1816,
3660      3203, 1809, 1817, 1817, 1817, 3198, 1817, 3204, 3205, 1817,
3661      3206, 3198, 1814, 3208, 1816, 1818, 1818, 1818, 1820, 1820,
3662      1820, 3209, 1820, 3211, 3212, 1820, 1825, 1825, 1825, 1826,
3663      1826, 1826, 1818, 1826, 3214, 3215, 1826, 1827, 1827, 1827,
3664      1814, 3218, 3219, 1825, 1832, 1832, 1832, 1834, 1834, 1834,
3665      1835, 1835, 1835, 3220, 1827, 1836, 1836, 1836, 3221, 1836,
3666
3667      3223, 1832, 1836, 3225, 3227, 1834, 3229, 1835, 1837, 1837,
3668      1837, 1838, 1838, 1838, 1839, 1839, 1839, 1840, 1840, 1840,
3669      1842, 1842, 1842, 3231, 3217, 1837, 3232, 3233, 1838, 3234,
3670      3235, 1839, 1843, 1843, 1843, 1840, 1843, 1842, 3217, 1843,
3671      1844, 1844, 1844, 1846, 1846, 1846, 3236, 1847, 1847, 1847,
3672      3237, 1847, 3238, 1834, 1847, 3240, 3242, 1844, 3244, 3245,
3673      1846, 1849, 1849, 1849, 1851, 1851, 1851, 3246, 3247, 1838,
3674      1854, 1854, 1854, 1858, 1858, 1858, 3248, 1840, 3274, 1849,
3675      3262, 3249, 1851, 3264, 3262, 1859, 1859, 1859, 1854, 1859,
3676      1858, 3264, 1859, 1861, 1861, 1861, 1863, 1863, 1863, 1865,
3677
3678      1865, 1865, 1866, 1866, 1866, 1867, 1867, 1867, 1868, 1868,
3679      1868, 1861, 3248, 3274, 1863, 1851, 1865, 3249, 1854, 1866,
3680      3256, 3260, 1867, 1871, 1871, 1871, 1868, 1870, 1870, 1870,
3681      1511, 1872, 1872, 1872, 1873, 1873, 1873, 1874, 1874, 1874,
3682      3280, 1871, 1876, 1876, 1876, 1870, 1876, 1863, 1872, 1876,
3683      3257, 1873, 1882, 1882, 1882, 1874, 3261, 1884, 1884, 1884,
3684      1885, 1885, 1885, 3265, 1885, 3260, 1510, 1885, 3256, 1867,
3685      1882, 3265, 3280, 1870, 1884, 1868, 1886, 1886, 1886, 1887,
3686      1887, 1887, 1888, 1888, 1888, 1889, 1889, 1889, 1871, 1889,
3687      3300, 3263, 1889, 3266, 1886, 3263, 3270, 1887, 3257, 1888,
3688
3689      3261, 3266, 1874, 1882, 1890, 1890, 1890, 1896, 1896, 1896,
3690      1897, 1897, 1897, 1912, 1912, 1912, 1913, 1913, 1913, 1914,
3691      1914, 1914, 1890, 3275, 1896, 1916, 1916, 1916, 1897, 1918,
3692      1918, 1918, 3300, 3270, 1887, 1886, 1919, 1919, 1919, 1924,
3693      1924, 1924, 1926, 1926, 1926, 1929, 1929, 1929, 1931, 1931,
3694      1931, 1933, 1933, 1933, 3258, 1934, 1934, 1934, 3275, 1509,
3695      1926, 3259, 1508, 1929, 3271, 1931, 1943, 1943, 1943, 1933,
3696      1943, 1897, 1934, 1943, 1507, 1946, 1946, 1946, 1947, 1947,
3697      1947, 1952, 1952, 1952, 1953, 1953, 1953, 1957, 1957, 1957,
3698      1506, 3267, 1926, 1946, 3268, 1947, 1958, 1958, 1958, 3267,
3699
3700      1958, 3271, 3258, 1958, 1957, 1961, 1961, 1961, 3272, 3259,
3701      1933, 1962, 1962, 1962, 1963, 1963, 1963, 3282, 1964, 1964,
3702      1964, 1946, 1964, 1961, 3281, 1964, 3282, 3269, 1962, 3278,
3703      1504, 1963, 3279, 1957, 1965, 1965, 1965, 1967, 1967, 1967,
3704      3273, 3268, 1968, 1968, 1968, 3284, 1969, 1969, 1969, 3272,
3705      1969, 3288, 1965, 1969, 3276, 1967, 3281, 1962, 1961, 1968,
3706      1970, 1970, 1970, 1973, 1973, 1973, 3278, 1973, 3277, 3279,
3707      1973, 1976, 1976, 1976, 3269, 1977, 1977, 1977, 1970, 1977,
3708      3284, 3273, 1977, 1982, 1982, 1982, 3283, 1965, 1976, 1978,
3709      1978, 1978, 3285, 1978, 3288, 3283, 1978, 1984, 1984, 1984,
3710
3711      3276, 1982, 1986, 1986, 1986, 1503, 1501, 1970, 1988, 1988,
3712      1988, 3292, 1988, 3286, 3277, 1988, 1991, 1991, 1991, 3289,
3713      1986, 1992, 1992, 1992, 1500, 1992, 3296, 3285, 1992, 3287,
3714      1996, 1996, 1996, 1991, 1996, 3296, 1498, 1996, 1999, 1999,
3715      1999, 2000, 2000, 2000, 3290, 2000, 3292, 3286, 2000, 2001,
3716      2001, 2001, 2005, 2005, 2005, 1999, 3293, 2006, 2006, 2006,
3717      1986, 2006, 3289, 3287, 2006, 3301, 2001, 3297, 3291, 2005,
3718      2008, 2008, 2008, 2009, 2009, 2009, 3297, 2009, 3298, 1495,
3719      2009, 2012, 2012, 2012, 3294, 2013, 2013, 2013, 2008, 2013,
3720      3290, 3293, 2013, 2014, 2014, 2014, 3299, 3314, 2012, 2015,
3721
3722      2015, 2015, 2016, 2016, 2016, 3314, 2016, 3301, 3295, 2016,
3723      2014, 2017, 2017, 2017, 3291, 3298, 2015, 3294, 2019, 2019,
3724      2019, 2008, 2019, 1494, 3304, 2019, 2022, 2022, 2022, 2017,
3725      2023, 2023, 2023, 3299, 2023, 3320, 1493, 2023, 2025, 2025,
3726      2025, 3295, 2025, 2022, 3302, 2025, 2029, 2029, 2029, 2032,
3727      2032, 2032, 2034, 2034, 2034, 2035, 2035, 2035, 2037, 2037,
3728      2037, 3304, 2017, 3305, 2029, 3303, 3306, 2032, 3307, 2034,
3729      2039, 2039, 2039, 2035, 2039, 2037, 3320, 2039, 2043, 2043,
3730      2043, 2046, 2046, 2046, 2048, 2048, 2048, 2049, 2049, 2049,
3731      3302, 2049, 3312, 3308, 2049, 3306, 2043, 3307, 1492, 2046,
3732
3733      3305, 2048, 3308, 3310, 2037, 2050, 2050, 2050, 2051, 2051,
3734      2051, 3303, 2051, 2032, 1491, 2051, 2035, 2053, 2053, 2053,
3735      1490, 3311, 2050, 2055, 2055, 2055, 2056, 2056, 2056, 2057,
3736      2057, 2057, 2058, 2058, 2058, 2053, 2058, 3310, 3312, 2058,
3737      3316, 2055, 3322, 1489, 2056, 3315, 2057, 2059, 2059, 2059,
3738      2060, 2060, 2060, 3315, 2060, 3311, 3309, 2060, 2061, 2061,
3739      2061, 2066, 2066, 2066, 2059, 3309, 2068, 2068, 2068, 1487,
3740      2068, 3317, 2055, 2068, 3318, 3313, 2061, 3322, 3321, 2066,
3741      2071, 2071, 2071, 2053, 2072, 2072, 2072, 3316, 2073, 2073,
3742      2073, 2056, 2073, 3319, 1486, 2073, 1485, 1484, 2071, 2076,
3743
3744      2076, 2076, 2072, 2082, 2082, 2082, 2083, 2083, 2083, 1475,
3745      2083, 3318, 1460, 2083, 2084, 2084, 2084, 2076, 3317, 3321,
3746      2082, 3313, 3338, 2061, 1459, 1454, 2066, 2085, 2085, 2085,
3747      3319, 2071, 2084, 2090, 2090, 2090, 3338, 2072, 2091, 2091,
3748      2091, 2092, 2092, 2092, 2094, 2094, 2094, 2098, 2098, 2098,
3749      2099, 2099, 2099, 2100, 2100, 2100, 2101, 2101, 2101, 2103,
3750      2103, 2103, 2104, 2104, 2104, 2105, 2105, 2105, 2106, 2106,
3751      2106, 2107, 2107, 2107, 2108, 2108, 2108, 3324, 2084, 2110,
3752      2110, 2110, 2113, 2113, 2113, 1453, 2116, 2116, 2116, 2117,
3753      2117, 2117, 3330, 2117, 3323, 1452, 2117, 2110, 1450, 1443,
3754
3755      2113, 3330, 2101, 2116, 2119, 2119, 2119, 2120, 2120, 2120,
3756      2121, 2121, 2121, 1442, 2121, 1424, 1419, 2121, 2132, 2132,
3757      2132, 3326, 2119, 3324, 2120, 2133, 2133, 2133, 3325, 3323,
3758      2110, 2134, 2134, 2134, 3327, 2134, 2132, 1416, 2134, 2135,
3759      2135, 2135, 2133, 2140, 2140, 2140, 2141, 2141, 2141, 2142,
3760      2142, 2142, 2143, 2143, 2143, 3328, 2143, 1415, 3326, 2143,
3761      2145, 2145, 2145, 2146, 2146, 2146, 2142, 2132, 2147, 2147,
3762      2147, 3327, 2147, 3329, 3325, 2147, 3334, 3331, 2145, 1412,
3763      2146, 2149, 2149, 2149, 3332, 2149, 3331, 3328, 2149, 2152,
3764      2152, 2152, 2141, 3333, 2154, 2154, 2154, 2156, 2156, 2156,
3765
3766      3336, 2156, 1407, 1398, 2156, 3329, 3335, 2152, 2159, 2159,
3767      2159, 2145, 2154, 2162, 2162, 2162, 3332, 2162, 1397, 3339,
3768      2162, 2169, 2169, 2169, 3334, 3333, 2159, 2171, 2171, 2171,
3769      3339, 2171, 3336, 1396, 2171, 2180, 2180, 2180, 1392, 2169,
3770      2152, 2177, 2177, 2177, 1387, 2177, 1383, 1375, 2177, 2181,
3771      2181, 2181, 2180, 2181, 3335, 3337, 2181, 1370, 2185, 2185,
3772      2185, 2159, 2185, 1369, 1363, 2185, 2189, 2189, 2189, 1362,
3773      2190, 2190, 2190, 1361, 2190, 1360, 2169, 2190, 2193, 2193,
3774      2193, 2194, 2194, 2194, 2189, 2194, 1355, 3337, 2194, 2195,
3775      2195, 2195, 1354, 2195, 1353, 2193, 2195, 2198, 2198, 2198,
3776
3777      2200, 2200, 2200, 1352, 2200, 1339, 1338, 2200, 2206, 2206,
3778      2206, 2208, 2208, 2208, 1337, 2198, 2209, 2209, 2209, 1336,
3779      2209, 1335, 1334, 2209, 1333, 1332, 2206, 1331, 2208, 1330,
3780      2189, 2210, 2210, 2210, 2212, 2212, 2212, 2213, 2213, 2213,
3781      1320, 2213, 1319, 1318, 2213, 1317, 2220, 2220, 2220, 2210,
3782      1300, 2212, 2223, 2223, 2223, 1299, 2223, 1294, 1293, 2223,
3783      2230, 2230, 2230, 2198, 2220, 2226, 2226, 2226, 1292, 2226,
3784      1287, 1286, 2226, 1269, 2232, 2232, 2232, 1265, 2230, 2233,
3785      2233, 2233, 2234, 2234, 2234, 1259, 2234, 1255, 1254, 2234,
3786      1253, 2210, 2232, 1252, 2237, 2237, 2237, 2233, 2237, 1251,
3787
3788      1250, 2237, 2240, 2240, 2240, 1249, 2241, 2241, 2241, 1247,
3789      1246, 2230, 2242, 2242, 2242, 2233, 2243, 2243, 2243, 1244,
3790      2240, 1243, 2240, 2241, 2244, 2244, 2244, 1242, 1237, 2242,
3791      2245, 2245, 2245, 2243, 2247, 2247, 2247, 2248, 2248, 2248,
3792      2232, 2244, 2249, 2249, 2249, 2252, 2252, 2252, 2245, 2253,
3793      2253, 2253, 2247, 2253, 1229, 2248, 2253, 2256, 2256, 2256,
3794      2249, 1227, 1222, 2242, 2257, 2257, 2257, 2258, 2258, 2258,
3795      2259, 2259, 2259, 1220, 1211, 2256, 2262, 2262, 2262, 1206,
3796      2243, 1195, 1193, 2244, 2263, 2263, 2263, 2265, 2265, 2265,
3797      2266, 2266, 2266, 1192, 2247, 2245, 2267, 2267, 2267, 2268,
3798
3799      2268, 2268, 2269, 2269, 2269, 2270, 2270, 2270, 2273, 2273,
3800      2273, 2274, 2274, 2274, 1191, 1190, 2256, 2275, 2275, 2275,
3801      2276, 2276, 2276, 2278, 2278, 2278, 2281, 2281, 2281, 2282,
3802      2282, 2282, 1188, 2282, 1187, 1186, 2282, 2285, 2285, 2285,
3803      1185, 2278, 1184, 2281, 2286, 2286, 2286, 1183, 2288, 2288,
3804      2288, 1181, 2288, 1180, 2285, 2288, 2301, 2301, 2301, 2302,
3805      2302, 2302, 2286, 2302, 2304, 2304, 2302, 2304, 2305, 2305,
3806      2305, 2306, 2306, 2306, 2301, 2304, 2310, 2310, 2310, 2312,
3807      2312, 2312, 2304, 2312, 1179, 1178, 2312, 2316, 2316, 2316,
3808      2317, 2317, 2317, 1177, 2317, 1176, 1175, 2317, 2321, 2321,
3809
3810      2321, 1173, 1172, 2285, 1171, 2316, 2322, 2322, 2322, 2323,
3811      2323, 2323, 2331, 2331, 2331, 1170, 2321, 2301, 2332, 2332,
3812      2332, 1169, 1168, 2322, 2337, 2337, 2337, 2323, 2337, 1167,
3813      1161, 2337, 1160, 2316, 1159, 1156, 2332, 2340, 2340, 2340,
3814      2344, 2344, 2344, 2345, 2345, 2345, 1155, 2345, 1154, 1152,
3815      2345, 2348, 2348, 2348, 2340, 2353, 2353, 2353, 2344, 1148,
3816      2323, 1145, 2355, 2355, 2355, 2359, 2359, 2359, 1136, 2348,
3817      2356, 2356, 2356, 2353, 2356, 1135, 1132, 2356, 2332, 2355,
3818      2360, 2360, 2360, 2359, 2361, 2361, 2361, 1131, 2361, 1130,
3819      1129, 2361, 2364, 2364, 2364, 1128, 1114, 2360, 2365, 2365,
3820
3821      2365, 2370, 2370, 2370, 2372, 2372, 2372, 1107, 1099, 2364,
3822      2374, 2374, 2374, 1098, 1097, 2365, 2359, 1094, 2370, 2375,
3823      2375, 2375, 2376, 2376, 2376, 1091, 2360, 1088, 2374, 1083,
3824      2377, 2377, 2377, 2378, 2378, 2378, 2375, 2379, 2379, 2379,
3825      2376, 1080, 2380, 2380, 2380, 1079, 2380, 2364, 2377, 2380,
3826      1075, 2378, 2370, 1073, 2379, 2381, 2381, 2381, 1059, 2365,
3827      2382, 2382, 2382, 2383, 2383, 2383, 2384, 2384, 2384, 1058,
3828      2378, 1057, 2381, 2385, 2385, 2385, 1056, 2382, 1055, 1054,
3829      2383, 1053, 2376, 1052, 2384, 2386, 2386, 2386, 2387, 2387,
3830      2387, 2377, 2389, 2389, 2389, 2392, 2392, 2392, 2393, 2393,
3831
3832      2393, 1051, 1050, 2386, 1046, 1042, 2387, 2394, 2394, 2394,
3833      2389, 2382, 1035, 1032, 2383, 1031, 2393, 2395, 2395, 2395,
3834      2398, 2398, 2398, 2399, 2399, 2399, 2400, 2400, 2400, 2401,
3835      2401, 2401, 2405, 2405, 2405, 2408, 2408, 2408, 2409, 2409,
3836      2409, 1030, 2409, 1027, 1026, 2409, 2421, 2421, 2421, 1025,
3837      2405, 2386, 2408, 1022, 2389, 2432, 2432, 2432, 2435, 2435,
3838      2435, 2438, 2438, 2438, 2421, 2440, 2440, 2440, 2442, 2442,
3839      2442, 2443, 2443, 2443, 1021, 2443, 1020, 1017, 2443, 2438,
3840      2444, 2444, 2444, 2440, 1016, 2442, 2451, 2451, 2451, 2452,
3841      2452, 2452, 2453, 2453, 2453, 2459, 2459, 2459, 2444, 1013,
3842
3843      2460, 2460, 2460, 2451, 2460, 1012, 2421, 2460, 1009, 1006,
3844      2453, 1003, 2459, 2462, 2462, 2462, 2464, 2464, 2464, 2466,
3845      2466, 2466, 2470, 2470, 2470, 1002,  999, 2438,  998,  997,
3846      2462, 2472, 2472, 2472, 2464,  996,  995, 2466,  993, 2470,
3847      2473, 2473, 2473,  992, 2473,  991,  990, 2473, 2472, 2453,
3848      2474, 2474, 2474, 2475, 2475, 2475, 2476, 2476, 2476,  989,
3849      2476,  988,  987, 2476, 2477, 2477, 2477,  986, 2474,  982,
3850      2475, 2478, 2478, 2478, 2479, 2479, 2479, 2484, 2484, 2484,
3851       977, 2477, 2486, 2486, 2486, 2488, 2488, 2488, 2478,  976,
3852       975, 2479,  972,  971, 2484, 2490, 2490, 2490, 2491, 2491,
3853
3854      2491,  970, 2491, 2488,  968, 2491, 2492, 2492, 2492, 2493,
3855      2493, 2493, 2490, 2494, 2494, 2494, 2477,  964, 2495, 2495,
3856      2495,  960, 2495,  959, 2492, 2495,  956, 2493,  953, 2478,
3857       952, 2494, 2479, 2498, 2498, 2498, 2499, 2499, 2499,  951,
3858      2499,  950,  949, 2499, 2500, 2500, 2500, 2501, 2501, 2501,
3859      2498, 2502, 2502, 2502, 2504, 2504, 2504, 2505, 2505, 2505,
3860       948, 2500,  947,  945, 2501, 2509, 2509, 2509,  944, 2502,
3861      2513, 2513, 2513,  943,  942, 2505, 2493, 2494, 2517, 2517,
3862      2517,  941,  940, 2509, 2518, 2518, 2518,  939, 2518,  938,
3863       937, 2518, 2532, 2532, 2532, 2517, 2547, 2547, 2547, 2550,
3864
3865      2550, 2550, 2552, 2552, 2552,  936, 2552,  935,  934, 2552,
3866      2532, 2555, 2555, 2555, 2558, 2558, 2558, 2550, 2561, 2561,
3867      2561, 2562, 2562, 2562,  933, 2562,  932,  931, 2562, 2555,
3868       930, 2558, 2563, 2563, 2563, 2561, 2567, 2567, 2567, 2569,
3869      2569, 2569,  929, 2569,  928,  927, 2569, 2573, 2573, 2573,
3870      2563,  926, 2532, 2567, 2574, 2574, 2574,  925, 2574,  921,
3871       920, 2574,  918,  917, 2573, 2577, 2577, 2577,  916,  915,
3872      2550, 2578, 2578, 2578, 2579, 2579, 2579,  914, 2579,  910,
3873       908, 2579, 2577, 2580, 2580, 2580,  907,  906, 2578, 2581,
3874      2581, 2581,  905, 2581,  901,  897, 2581, 2584, 2584, 2584,
3875
3876      2580, 2586, 2586, 2586,  896, 2586,  893,  892, 2586, 2589,
3877      2589, 2589, 2590, 2590, 2590, 2584, 2591, 2591, 2591, 2594,
3878      2594, 2594,  891, 2595, 2595, 2595, 2589, 2595,  890, 2590,
3879      2595,  889,  888, 2591,  887,  884, 2594, 2596, 2596, 2596,
3880      2597, 2597, 2597, 2598, 2598, 2598,  883, 2598,  882,  881,
3881      2598, 2601, 2601, 2601, 2596,  878,  877, 2597, 2603, 2603,
3882      2603,  876,  873, 2590, 2589, 2604, 2604, 2604,  871, 2601,
3883       868, 2591,  867, 2605, 2605, 2605, 2603, 2605,  866,  865,
3884      2605,  864,  861, 2604, 2608, 2608, 2608, 2609, 2609, 2609,
3885       860, 2609,  859,  858, 2609, 2610, 2610, 2610, 2611, 2611,
3886
3887      2611, 2608, 2611,  857,  854, 2611,  853, 2612, 2612, 2612,
3888       852,  851, 2610, 2618, 2618, 2618, 2622, 2622, 2622, 2641,
3889      2641, 2641,  849,  846, 2603, 2612, 2604, 2623, 2623, 2623,
3890       845, 2623,  843, 2622, 2623,  840,  838, 2641, 2655, 2655,
3891      2655, 2657, 2657, 2657, 2658, 2658, 2658, 2659, 2659, 2659,
3892      2660, 2660, 2660,  835, 2661, 2661, 2661,  834, 2657, 2662,
3893      2662, 2662, 2658, 2662, 2659,  833, 2662, 2660,  832,  830,
3894      2641, 2661, 2663, 2663, 2663,  829, 2663,  828,  825, 2663,
3895      2666, 2666, 2666, 2670, 2670, 2670, 2671, 2671, 2671,  824,
3896      2672, 2672, 2672,  823, 2672,  822, 2660, 2672, 2666,  821,
3897
3898      2670,  820,  815, 2671,  814,  813, 2658, 2673, 2673, 2673,
3899      2675, 2675, 2675,  812, 2675,  811,  810, 2675, 2680, 2680,
3900      2680, 2681, 2681, 2681, 2673, 2681,  809,  808, 2681, 2682,
3901      2682, 2682,  807, 2682,  806, 2680, 2682, 2685, 2685, 2685,
3902      2686, 2686, 2686,  805, 2686,  804,  802, 2686, 2687, 2687,
3903      2687, 2688, 2688, 2688, 2685, 2689, 2689, 2689,  800, 2690,
3904      2690, 2690,  799, 2690,  796, 2687, 2690,  793, 2688, 2693,
3905      2693, 2693, 2689, 2694, 2694, 2694,  790, 2694,  789,  785,
3906      2694, 2695, 2695, 2695,  784,  783, 2693, 2696, 2696, 2696,
3907       782, 2696,  779,  776, 2696, 2703, 2703, 2703, 2695, 2704,
3908
3909      2704, 2704,  775,  774, 2689,  771, 2687, 2705, 2705, 2705,
3910       770, 2705,  769, 2703, 2705,  766,  765, 2704, 2708, 2708,
3911      2708,  763, 2708,  760,  759, 2708, 2713, 2713, 2713, 2715,
3912      2715, 2715, 2716, 2716, 2716, 2719, 2719, 2719,  758, 2719,
3913       756,  745, 2719, 2713, 2713,  743, 2703, 2730, 2730, 2730,
3914      2739, 2739, 2739, 2753, 2753, 2753, 2754, 2754, 2754, 2755,
3915      2755, 2755,  740,  739, 2730,  738, 2704,  736, 2739,  735,
3916      2756, 2756, 2756,  734, 2756,  730, 2755, 2756, 2757, 2757,
3917      2757, 2758, 2758, 2758, 2759, 2759, 2759,  729, 2759,  728,
3918       727, 2759, 2760, 2760, 2760,  724, 2757,  723, 2758, 2739,
3919
3920      2761, 2761, 2761,  722, 2761,  721,  720, 2761,  719, 2760,
3921      2763, 2763, 2763,  718, 2763,  716,  713, 2763, 2768, 2768,
3922      2768, 2769, 2769, 2769,  712, 2769,  710,  708, 2769, 2757,
3923      2770, 2770, 2770,  705, 2770, 2768,  704, 2770, 2773, 2773,
3924      2773, 2774, 2774, 2774,  698, 2774,  696,  694, 2774, 2778,
3925      2778, 2778,  691, 2778,  690, 2773, 2778, 2781, 2781, 2781,
3926       686, 2781,  685,  684, 2781, 2784, 2784, 2784, 2785, 2785,
3927      2785, 2786, 2786, 2786,  683, 2786,  680,  679, 2786, 2787,
3928      2787, 2787, 2784,  678,  677, 2785, 2788, 2788, 2788,  674,
3929      2788,  673,  672, 2788,  671,  670, 2787, 2791, 2791, 2791,
3930
3931       664, 2791,  663,  661, 2791, 2800, 2800, 2800, 2801, 2801,
3932      2801, 2807, 2807, 2807,  655,  654, 2784, 2808, 2808, 2808,
3933      2809, 2809, 2809, 2800, 2809,  650, 2801, 2809, 2807, 2807,
3934      2810, 2810, 2810,  643, 2808, 2808,  639,  633, 2809, 2811,
3935      2811, 2811, 2812, 2812, 2812, 2813, 2813, 2813,  629,  621,
3936      2787, 2822, 2822, 2822, 2823, 2823, 2823,  620, 2823,  619,
3937       618, 2823, 2832, 2832, 2832, 2845, 2845, 2845, 2822, 2846,
3938      2846, 2846,  617,  613, 2801, 2847, 2847, 2847,  606, 2847,
3939      2832,  605, 2847, 2850, 2850, 2850, 2851, 2851, 2851,  604,
3940      2851,  600,  593, 2851,  592, 2854, 2854, 2854,  588, 2854,
3941
3942       582, 2850, 2854, 2860, 2860, 2860,  581, 2860,  577,  569,
3943      2860, 2863, 2863, 2863,  568, 2863,  564,  555, 2863, 2866,
3944      2866, 2866, 2869, 2869, 2869, 2870, 2870, 2870, 2832, 2870,
3945       551,  543, 2870, 2873, 2873, 2873, 2866,  542,  541, 2869,
3946      2888, 2888, 2888, 2890, 2890, 2890, 2896, 2896, 2896,  537,
3947      2873,  531, 2897, 2897, 2897,  530, 2897,  529, 2888, 2897,
3948       525, 2890,  519, 2896, 2896, 2898, 2898, 2898,  518, 2898,
3949      2897,  514, 2898, 2901, 2901, 2901, 2902, 2902, 2902, 2903,
3950      2903, 2903,  508, 2898, 2912, 2912, 2912,  507, 2912,  506,
3951       505, 2912,  504,  503, 2890, 2899, 2899, 2899, 2899, 2899,
3952
3953      2899, 2899, 2899, 2899,  502,  498, 2899, 2921, 2921, 2921,
3954       492, 2899, 2899, 2899, 2899, 2899, 2930, 2930, 2930, 2931,
3955      2931, 2931, 2936, 2936, 2936, 2921, 2937, 2937, 2937,  491,
3956      2937,  489,  488, 2937, 2940, 2940, 2940, 2931,  487, 2936,
3957      2899, 2899, 2900, 2900, 2900, 2900, 2900, 2900, 2900, 2900,
3958      2900, 2940,  483, 2900, 2942, 2942, 2942,  476, 2900, 2900,
3959      2900, 2900, 2900, 2941, 2941, 2941,  471, 2941,  470,  468,
3960      2941, 2942, 2943, 2943, 2943,  464, 2943,  458,  457, 2943,
3961      2956, 2956, 2956, 2981, 2981, 2981,  456, 2900, 2900, 2962,
3962      2962, 2962,  452, 2962,  446,  442, 2962,  434, 2956,  432,
3963
3964       431, 2981,  430, 2995, 2995, 2995,  426, 2962, 2965, 2965,
3965      2965, 2965, 2965, 2965, 2965, 2965, 2965,  420,  419, 2965,
3966      2995,  415,  409,  408, 2965, 2965, 2965, 2965, 2965, 2992,
3967      2992, 2992,  404, 2992,  397,  396, 2992, 2997, 2997, 2997,
3968       395, 2997,  391,  384, 2997, 3000, 3000, 3000,  383, 3000,
3969       382,  381, 3000, 2965, 2965, 2966, 2966, 2966, 2966, 2966,
3970      2966, 2966, 2966, 2966,  377,  368, 2966, 3015, 3015, 3015,
3971       362, 2966, 2966, 2966, 2966, 2966, 3027, 3027, 3027, 3042,
3972      3042, 3042, 3043, 3043, 3043, 3015, 3044, 3044, 3044, 3049,
3973      3049, 3049,  358,  357, 3027, 3027, 3042,  353,  347, 3043,
3974
3975      2966, 2966,  346, 3044,  345,  341, 3049, 3050, 3050, 3050,
3976       334, 3050,  332,  331, 3050, 3051, 3051, 3051, 3062, 3062,
3977      3062, 3066, 3066, 3066, 3075, 3075, 3075, 3076, 3076, 3076,
3978       327, 3076, 3051,  324, 3076,  322, 3062,  321,  320, 3066,
3979       316, 3075, 3077, 3077, 3077, 3078, 3078, 3078,  312, 3078,
3980       309,  305, 3078, 3079, 3079, 3079, 3080, 3080, 3080, 3077,
3981      3080,  302,  301, 3080, 3087, 3087, 3087,  293, 3087,  289,
3982      3079, 3087, 3066, 3090, 3090, 3090, 3091, 3091, 3091,  285,
3983      3091,  284,  283, 3091, 3100, 3100, 3100, 3108, 3108, 3108,
3984      3090, 3108,  277,  276, 3108,  274, 3111, 3111, 3111,  271,
3985
3986      3111,  259, 3100, 3111, 3114, 3114, 3114,    0, 3114,    0,
3987         0, 3114, 3123, 3123, 3123,    0, 3123,    0,    0, 3123,
3988         0, 3100, 3230, 3230, 3230, 3239, 3239, 3239,    0, 3239,
3989         0,    0, 3239, 3340, 3340, 3340, 3341, 3341, 3341,    0,
3990      3230,    0,    0, 3239,    0,    0,    0,    0,    0,    0,
3991         0, 3340,    0,    0, 3341, 3344, 3344, 3344, 3344, 3344,
3992      3344, 3344, 3344, 3344, 3345, 3345, 3345, 3345, 3345, 3345,
3993      3345, 3345, 3345, 3346, 3346, 3346, 3346, 3346, 3346, 3346,
3994      3346, 3346, 3347, 3347, 3347, 3347, 3347, 3347, 3347, 3347,
3995      3347, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348,
3996
3997      3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3349, 3350,
3998      3350, 3350, 3350, 3350, 3350, 3350, 3350, 3350, 3351, 3351,
3999      3351, 3351, 3351, 3351, 3351, 3351, 3351, 3352, 3352, 3352,
4000      3352, 3352, 3352, 3352, 3352, 3352, 3353, 3353, 3353, 3353,
4001      3353, 3353, 3353, 3353, 3353, 3354, 3354, 3354, 3354, 3354,
4002      3354, 3354, 3354, 3354, 3355, 3355, 3355, 3355, 3355, 3355,
4003      3355, 3355, 3355, 3356, 3356, 3356, 3356, 3356, 3356, 3356,
4004      3356, 3356, 3357, 3357, 3357, 3357, 3357, 3357, 3357, 3357,
4005      3357, 3358, 3358, 3358, 3358, 3358, 3358, 3358, 3358, 3358,
4006      3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3359, 3360,
4007
4008      3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3361, 3361,
4009      3361, 3361, 3361, 3361, 3361, 3361, 3361, 3362, 3362, 3362,
4010      3362, 3362, 3362, 3362, 3362, 3362, 3363, 3363, 3363, 3363,
4011      3363, 3363, 3363, 3363, 3363, 3364, 3364, 3364, 3364, 3364,
4012      3364, 3364, 3364, 3364, 3365, 3365, 3365, 3365, 3365, 3365,
4013      3365, 3365, 3365, 3366, 3366, 3366, 3366, 3366, 3366, 3366,
4014      3366, 3366, 3367, 3367, 3367, 3367, 3367, 3367, 3367, 3367,
4015      3367, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368,
4016      3369, 3369, 3369, 3369, 3369, 3369, 3369, 3369, 3369, 3370,
4017      3370, 3370, 3370, 3370, 3370, 3370, 3370, 3370, 3371, 3371,
4018
4019      3371, 3371, 3371, 3371, 3371, 3371, 3371, 3372, 3372, 3372,
4020      3372, 3372, 3372, 3372, 3372, 3372, 3373, 3373, 3373, 3373,
4021      3373, 3373, 3373, 3373, 3373, 3374, 3374, 3374, 3374, 3374,
4022      3374, 3374, 3374, 3374, 3375, 3375, 3375, 3375, 3375, 3375,
4023      3375, 3375, 3375, 3376, 3376, 3376, 3376, 3376, 3376, 3376,
4024      3376, 3376, 3377, 3377, 3377, 3377, 3377, 3377, 3377, 3377,
4025      3377, 3378, 3378, 3378, 3378, 3378, 3378, 3378, 3378, 3378,
4026      3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3379, 3380,
4027      3380, 3380, 3380, 3380, 3380, 3380, 3380, 3380, 3381, 3381,
4028      3381, 3381, 3381, 3381, 3381, 3381, 3381, 3382, 3382, 3382,
4029
4030      3382, 3382, 3382, 3382, 3382, 3382, 3383, 3383, 3383, 3383,
4031      3383, 3383, 3383, 3383, 3383, 3384, 3384, 3384, 3384, 3384,
4032      3384, 3384, 3384, 3384, 3385, 3385, 3385, 3385, 3385, 3385,
4033      3385, 3385, 3385, 3386, 3386, 3386, 3386, 3386, 3386, 3386,
4034      3386, 3386, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
4035      3387, 3388, 3388, 3388, 3388, 3388, 3388, 3388, 3388, 3388,
4036      3389, 3389, 3389, 3389, 3389, 3389, 3389, 3389, 3389, 3390,
4037      3390, 3390, 3390, 3390, 3390, 3390, 3390, 3390, 3391, 3391,
4038      3391, 3391, 3391, 3391, 3391, 3391, 3391, 3392, 3392, 3392,
4039      3392, 3392, 3392, 3392, 3392, 3392, 3393, 3393, 3393, 3393,
4040
4041      3393, 3393, 3393, 3393, 3393, 3394, 3394, 3394, 3394, 3394,
4042      3394, 3394, 3394, 3394, 3395, 3395, 3395, 3395, 3395, 3395,
4043      3395, 3395, 3395, 3396, 3396, 3396, 3396, 3396, 3396, 3396,
4044      3396, 3396, 3397, 3397, 3397, 3397, 3397, 3397, 3397, 3397,
4045      3397, 3398, 3398, 3398, 3398, 3398, 3398, 3398, 3398, 3398,
4046      3399, 3399, 3399, 3399, 3399, 3399, 3399, 3399, 3399, 3400,
4047      3400, 3400, 3400, 3400, 3400, 3400, 3400, 3400, 3401, 3401,
4048      3401, 3401, 3401, 3401, 3401, 3401, 3401, 3402, 3402, 3402,
4049      3402, 3402, 3402, 3402, 3402, 3402, 3403, 3403, 3403, 3403,
4050      3403, 3403, 3403, 3403, 3403, 3404, 3404, 3404, 3404, 3404,
4051
4052      3404, 3404, 3404, 3404, 3405, 3405, 3405,    0,    0,    0,
4053      3405, 3406, 3406, 3406,    0,    0,    0, 3406, 3407, 3407,
4054      3407,    0,    0,    0, 3407, 3408, 3408, 3408,    0,    0,
4055         0, 3408, 3409, 3409, 3409,    0,    0,    0, 3409, 3410,
4056      3410, 3410,    0,    0,    0, 3410, 3411, 3411, 3411,    0,
4057         0,    0, 3411, 3412, 3412, 3412,    0,    0,    0, 3412,
4058      3413, 3413, 3413,    0,    0,    0, 3413, 3414, 3414, 3414,
4059         0,    0,    0, 3414, 3415, 3415, 3415,    0,    0,    0,
4060      3415, 3416, 3416, 3416,    0,    0,    0, 3416, 3417, 3417,
4061      3417,    0,    0,    0, 3417, 3418, 3418, 3418,    0,    0,
4062
4063         0, 3418, 3419, 3419, 3419,    0,    0,    0, 3419, 3420,
4064      3420, 3420,    0,    0,    0, 3420, 3421, 3421, 3421,    0,
4065         0,    0, 3421, 3422, 3422, 3422,    0,    0,    0, 3422,
4066      3423, 3423, 3423,    0,    0,    0, 3423, 3424, 3424, 3424,
4067         0,    0,    0, 3424, 3425, 3425, 3425,    0,    0,    0,
4068      3425, 3426, 3426, 3426,    0,    0,    0, 3426, 3427, 3427,
4069      3427,    0,    0,    0, 3427, 3428, 3428, 3428,    0,    0,
4070         0, 3428, 3429, 3429, 3429,    0,    0,    0, 3429, 3430,
4071      3430, 3430,    0,    0,    0, 3430, 3431, 3431, 3431,    0,
4072         0,    0, 3431, 3432, 3432, 3432,    0,    0,    0, 3432,
4073
4074      3433, 3433, 3433, 3433, 3433, 3433, 3433,    0, 3433, 3434,
4075      3434, 3434,    0,    0,    0, 3434, 3435,    0,    0,    0,
4076      3435, 3436, 3436, 3436,    0,    0,    0, 3436, 3437,    0,
4077         0,    0, 3437, 3438, 3438, 3438,    0,    0,    0, 3438,
4078      3439,    0,    0,    0, 3439, 3440, 3440, 3440,    0,    0,
4079         0, 3440, 3441,    0,    0,    0, 3441, 3442, 3442, 3442,
4080         0,    0,    0, 3442, 3443,    0,    0,    0, 3443, 3444,
4081      3444, 3444,    0,    0,    0, 3444, 3445,    0,    0,    0,
4082      3445, 3446, 3446, 3446,    0,    0,    0, 3446, 3447,    0,
4083         0,    0, 3447, 3448, 3448, 3448,    0,    0,    0, 3448,
4084
4085      3449,    0,    0,    0, 3449, 3450, 3450, 3450,    0,    0,
4086         0, 3450, 3451,    0,    0,    0, 3451, 3452, 3452, 3452,
4087         0,    0,    0, 3452, 3453,    0,    0,    0, 3453, 3454,
4088      3454, 3454,    0,    0,    0, 3454, 3455,    0,    0,    0,
4089      3455, 3456, 3456, 3456,    0,    0,    0, 3456, 3457,    0,
4090         0,    0, 3457, 3458, 3458, 3458,    0,    0,    0, 3458,
4091      3459,    0,    0,    0, 3459, 3460, 3460, 3460,    0,    0,
4092         0, 3460, 3461,    0,    0,    0, 3461, 3462, 3462, 3462,
4093         0,    0,    0, 3462, 3463,    0,    0,    0, 3463, 3464,
4094      3464, 3464,    0,    0,    0, 3464, 3465,    0,    0,    0,
4095
4096      3465, 3466, 3466, 3466,    0,    0,    0, 3466, 3467,    0,
4097         0,    0, 3467, 3468, 3468, 3468,    0,    0,    0, 3468,
4098      3469,    0,    0,    0, 3469, 3470, 3470, 3470,    0,    0,
4099         0, 3470, 3471,    0,    0,    0, 3471, 3472, 3472, 3472,
4100         0,    0,    0, 3472, 3473,    0,    0,    0, 3473, 3474,
4101      3474, 3474,    0,    0,    0, 3474, 3475,    0,    0,    0,
4102      3475, 3476, 3476, 3476,    0,    0,    0, 3476, 3477,    0,
4103         0,    0, 3477, 3478, 3478, 3478,    0,    0,    0, 3478,
4104      3479,    0,    0,    0, 3479, 3480, 3480, 3480,    0,    0,
4105         0, 3480, 3481,    0,    0,    0, 3481, 3482, 3482, 3482,
4106
4107         0,    0,    0, 3482, 3483,    0,    0,    0, 3483, 3484,
4108      3484, 3484,    0,    0,    0, 3484, 3485,    0,    0,    0,
4109      3485, 3486, 3486, 3486,    0,    0,    0, 3486, 3487,    0,
4110         0,    0, 3487, 3488, 3488, 3488,    0,    0,    0, 3488,
4111      3489,    0,    0,    0, 3489, 3490, 3490, 3490, 3490, 3490,
4112      3490, 3490, 3490, 3490, 3491,    0,    0,    0,    0, 3491,
4113      3492, 3492, 3492,    0,    0,    0, 3492, 3493, 3493, 3493,
4114      3493,    0,    0, 3493, 3493, 3494, 3494, 3494,    0,    0,
4115         0, 3494, 3495, 3495, 3495, 3495,    0,    0, 3495, 3495,
4116      3496, 3496, 3496,    0,    0,    0, 3496, 3497, 3497, 3497,
4117
4118      3497,    0,    0, 3497, 3497, 3498, 3498, 3498,    0,    0,
4119         0, 3498, 3499, 3499, 3499, 3499,    0,    0, 3499, 3499,
4120      3500, 3500, 3500,    0,    0,    0, 3500, 3501, 3501, 3501,
4121      3501,    0,    0, 3501, 3501, 3502, 3502, 3502,    0,    0,
4122         0, 3502, 3503, 3503, 3503, 3503,    0,    0, 3503, 3503,
4123      3504, 3504, 3504,    0,    0,    0, 3504, 3505, 3505, 3505,
4124      3505,    0,    0, 3505, 3505, 3506, 3506, 3506,    0,    0,
4125         0, 3506, 3507, 3507, 3507, 3507,    0,    0, 3507, 3507,
4126      3508, 3508, 3508,    0,    0,    0, 3508, 3509, 3509, 3509,
4127      3509,    0,    0, 3509, 3509, 3510, 3510, 3510,    0,    0,
4128
4129         0, 3510, 3511, 3511, 3511, 3511,    0,    0, 3511, 3511,
4130      3512, 3512, 3512,    0,    0,    0, 3512, 3513, 3513, 3513,
4131      3513,    0,    0, 3513, 3513, 3514, 3514, 3514,    0,    0,
4132         0, 3514, 3515, 3515, 3515, 3515,    0,    0, 3515, 3515,
4133      3516, 3516, 3516,    0,    0,    0, 3516, 3517, 3517, 3517,
4134      3517,    0,    0, 3517, 3517, 3518, 3518, 3518,    0,    0,
4135         0, 3518, 3519, 3519, 3519, 3519,    0,    0, 3519, 3519,
4136      3520, 3520, 3520, 3520,    0, 3520,    0, 3520, 3521, 3521,
4137      3521, 3521,    0,    0, 3521, 3521, 3522, 3522, 3522,    0,
4138         0,    0, 3522, 3523, 3523, 3523, 3523,    0,    0, 3523,
4139
4140      3523, 3524, 3524, 3524,    0,    0,    0, 3524, 3525, 3525,
4141      3525, 3525,    0,    0, 3525, 3525, 3526, 3526, 3526,    0,
4142         0,    0, 3526, 3527, 3527, 3527, 3527,    0,    0, 3527,
4143      3527, 3528, 3528, 3528,    0,    0,    0, 3528, 3529, 3529,
4144      3529, 3529,    0,    0, 3529, 3529, 3530, 3530, 3530, 3530,
4145         0, 3530,    0, 3530, 3531, 3531, 3531, 3531,    0,    0,
4146      3531, 3531, 3532, 3532, 3532, 3532,    0, 3532,    0, 3532,
4147      3533, 3533, 3533, 3533,    0,    0, 3533, 3533, 3534, 3534,
4148      3534,    0,    0,    0, 3534, 3535, 3535, 3535, 3535,    0,
4149         0, 3535, 3535, 3536, 3536, 3536, 3536,    0, 3536,    0,
4150
4151      3536, 3537, 3537, 3537, 3537,    0,    0, 3537, 3537, 3538,
4152      3538, 3538, 3538,    0, 3538,    0, 3538, 3539, 3539, 3539,
4153      3539,    0,    0, 3539, 3539, 3540, 3540, 3540,    0,    0,
4154         0, 3540, 3541, 3541, 3541, 3541,    0,    0, 3541, 3541,
4155      3542, 3542, 3542,    0,    0,    0, 3542, 3543, 3543, 3543,
4156      3543,    0,    0, 3543, 3543, 3544, 3544, 3544, 3544,    0,
4157         0, 3544, 3544, 3545, 3545, 3545,    0,    0,    0, 3545,
4158      3546, 3546, 3546, 3546,    0,    0, 3546, 3546, 3547, 3547,
4159      3547, 3547, 3547, 3547, 3547, 3547, 3547, 3548,    0, 3548,
4160         0,    0, 3548, 3549, 3549, 3549,    0,    0,    0, 3549,
4161
4162      3550, 3550, 3550, 3550,    0,    0, 3550, 3550, 3551, 3551,
4163      3551, 3551,    0, 3551,    0, 3551, 3552, 3552, 3552, 3552,
4164         0,    0, 3552, 3552, 3553, 3553, 3553, 3553,    0, 3553,
4165         0, 3553, 3554, 3554, 3554, 3554,    0,    0, 3554, 3554,
4166      3555, 3555, 3555,    0,    0,    0, 3555, 3556, 3556, 3556,
4167      3556,    0,    0, 3556, 3556, 3557, 3557, 3557,    0,    0,
4168         0, 3557, 3558, 3558, 3558, 3558,    0,    0, 3558, 3558,
4169      3559, 3559, 3559,    0,    0,    0, 3559, 3560, 3560, 3560,
4170      3560,    0,    0, 3560, 3560, 3561, 3561, 3561,    0,    0,
4171         0, 3561, 3562, 3562, 3562, 3562,    0,    0, 3562, 3562,
4172
4173      3563, 3563, 3563,    0,    0,    0, 3563, 3564, 3564, 3564,
4174      3564,    0,    0, 3564, 3564, 3565, 3565, 3565, 3565,    0,
4175      3565,    0, 3565, 3566, 3566, 3566, 3566,    0,    0, 3566,
4176      3566, 3567, 3567, 3567, 3567,    0, 3567,    0, 3567, 3568,
4177      3568, 3568, 3568,    0,    0, 3568, 3568, 3569, 3569, 3569,
4178         0,    0,    0, 3569, 3570, 3570, 3570, 3570,    0,    0,
4179      3570, 3570, 3571, 3571, 3571, 3571,    0, 3571,    0, 3571,
4180      3572, 3572, 3572, 3572,    0,    0, 3572, 3572, 3573, 3573,
4181      3573, 3573,    0, 3573,    0, 3573, 3574, 3574, 3574, 3574,
4182         0,    0, 3574, 3574, 3575, 3575, 3575,    0,    0,    0,
4183
4184      3575, 3576, 3576, 3576, 3576,    0,    0, 3576, 3576, 3577,
4185      3577, 3577,    0,    0,    0, 3577, 3578, 3578, 3578, 3578,
4186         0,    0, 3578, 3578, 3579, 3579, 3579,    0,    0,    0,
4187      3579, 3580, 3580, 3580, 3580,    0,    0, 3580, 3580, 3581,
4188      3581, 3581,    0,    0,    0, 3581, 3582, 3582, 3582, 3582,
4189         0,    0, 3582, 3582, 3583, 3583, 3583,    0,    0,    0,
4190      3583, 3584, 3584, 3584, 3584,    0,    0, 3584, 3584, 3585,
4191      3585, 3585,    0,    0,    0, 3585, 3586, 3586, 3586, 3586,
4192         0,    0, 3586, 3586, 3587, 3587, 3587,    0,    0,    0,
4193      3587, 3588, 3588, 3588, 3588,    0,    0, 3588, 3588, 3589,
4194
4195      3589, 3589,    0,    0,    0, 3589, 3590, 3590, 3590, 3590,
4196         0,    0, 3590, 3590, 3591, 3591, 3591,    0,    0,    0,
4197      3591, 3592, 3592, 3592, 3592,    0,    0, 3592, 3592, 3593,
4198      3593, 3593, 3593,    0,    0, 3593, 3593, 3594, 3594, 3594,
4199         0,    0,    0, 3594, 3595, 3595, 3595, 3595,    0,    0,
4200      3595, 3595, 3596, 3596, 3596,    0,    0,    0, 3596, 3597,
4201      3597, 3597, 3597,    0,    0, 3597, 3597, 3598, 3598, 3598,
4202         0,    0,    0, 3598, 3599, 3599, 3599, 3599,    0,    0,
4203      3599, 3599, 3600, 3600, 3600, 3600,    0,    0, 3600, 3600,
4204      3601, 3601, 3601,    0,    0,    0, 3601, 3602, 3602, 3602,
4205
4206      3602,    0,    0, 3602, 3602, 3603, 3603, 3603, 3603, 3603,
4207      3603, 3603, 3603, 3603, 3604, 3604, 3604, 3604, 3604, 3604,
4208      3604, 3604, 3604, 3605, 3605, 3605,    0,    0,    0, 3605,
4209      3606, 3606, 3606, 3606,    0,    0, 3606, 3606, 3607, 3607,
4210      3607, 3607,    0,    0, 3607, 3607, 3608, 3608, 3608,    0,
4211         0,    0, 3608, 3609, 3609, 3609, 3609,    0,    0, 3609,
4212      3609, 3610, 3610, 3610,    0,    0,    0, 3610, 3611, 3611,
4213      3611, 3611,    0,    0, 3611, 3611, 3612, 3612, 3612,    0,
4214         0,    0, 3612, 3613, 3613, 3613, 3613,    0,    0, 3613,
4215      3613, 3614, 3614, 3614,    0,    0,    0, 3614, 3615, 3615,
4216
4217      3615,    0,    0,    0, 3615, 3616, 3616, 3616, 3616,    0,
4218         0, 3616, 3616, 3617, 3617, 3617,    0,    0,    0, 3617,
4219      3618, 3618, 3618, 3618,    0,    0, 3618, 3618, 3619, 3619,
4220      3619,    0,    0,    0, 3619, 3620, 3620, 3620, 3620,    0,
4221         0, 3620, 3620, 3621, 3621, 3621,    0,    0,    0, 3621,
4222      3622, 3622, 3622, 3622,    0,    0, 3622, 3622, 3623, 3623,
4223      3623,    0,    0,    0, 3623, 3624, 3624, 3624, 3624,    0,
4224         0, 3624, 3624, 3625, 3625, 3625, 3625,    0,    0, 3625,
4225      3625, 3626, 3626, 3626, 3626,    0,    0, 3626, 3626, 3627,
4226      3627, 3627,    0,    0,    0, 3627, 3628, 3628, 3628, 3628,
4227
4228         0,    0, 3628, 3628, 3629, 3629, 3629, 3629,    0, 3629,
4229         0, 3629, 3630, 3630, 3630, 3630,    0,    0, 3630, 3630,
4230      3631, 3631, 3631,    0,    0,    0, 3631, 3632, 3632, 3632,
4231      3632,    0,    0, 3632, 3632, 3633, 3633, 3633,    0,    0,
4232         0, 3633, 3634, 3634, 3634, 3634,    0,    0, 3634, 3634,
4233      3635, 3635, 3635,    0,    0,    0, 3635, 3636, 3636, 3636,
4234      3636,    0,    0, 3636, 3636, 3637, 3637, 3637,    0,    0,
4235         0, 3637, 3638, 3638, 3638, 3638,    0,    0, 3638, 3638,
4236      3639, 3639, 3639,    0,    0,    0, 3639, 3640, 3640, 3640,
4237      3640,    0,    0, 3640, 3640, 3641, 3641, 3641,    0,    0,
4238
4239         0, 3641, 3642, 3642, 3642, 3642,    0,    0, 3642, 3642,
4240      3643, 3643, 3643,    0,    0,    0, 3643, 3644, 3644, 3644,
4241      3644,    0,    0, 3644, 3644, 3645, 3645, 3645, 3645,    0,
4242         0, 3645, 3645, 3646, 3646, 3646,    0,    0,    0, 3646,
4243      3647, 3647, 3647, 3647,    0,    0, 3647, 3647, 3648, 3648,
4244      3648,    0,    0,    0, 3648, 3649, 3649, 3649, 3649,    0,
4245         0, 3649, 3649, 3650, 3650, 3650, 3650,    0, 3650,    0,
4246      3650, 3651, 3651, 3651, 3651,    0,    0, 3651, 3651, 3652,
4247      3652, 3652, 3652,    0,    0, 3652, 3652, 3653, 3653, 3653,
4248      3653,    0, 3653,    0, 3653, 3654, 3654, 3654, 3654,    0,
4249
4250         0, 3654, 3654, 3655, 3655, 3655, 3655, 3655, 3655, 3655,
4251      3655, 3655, 3656, 3656, 3656, 3656, 3656, 3656, 3656, 3656,
4252      3656, 3657, 3657, 3657,    0,    0,    0, 3657, 3658, 3658,
4253      3658, 3658,    0,    0, 3658, 3658, 3659, 3659, 3659, 3659,
4254         0,    0, 3659, 3659, 3660, 3660, 3660,    0,    0,    0,
4255      3660, 3661, 3661, 3661, 3661,    0,    0, 3661, 3661, 3662,
4256      3662, 3662,    0,    0,    0, 3662, 3663, 3663, 3663, 3663,
4257         0,    0, 3663, 3663, 3664, 3664, 3664,    0,    0,    0,
4258      3664, 3665, 3665, 3665, 3665,    0,    0, 3665, 3665, 3666,
4259      3666, 3666,    0,    0,    0, 3666, 3667, 3667, 3667,    0,
4260
4261         0,    0, 3667, 3668, 3668, 3668, 3668,    0,    0, 3668,
4262      3668, 3669, 3669, 3669,    0,    0,    0, 3669, 3670, 3670,
4263      3670, 3670,    0,    0, 3670, 3670, 3671, 3671, 3671,    0,
4264         0,    0, 3671, 3672, 3672, 3672, 3672,    0,    0, 3672,
4265      3672, 3673, 3673, 3673, 3673,    0, 3673,    0, 3673, 3674,
4266      3674, 3674, 3674,    0,    0, 3674, 3674, 3675, 3675, 3675,
4267         0,    0,    0, 3675, 3676, 3676, 3676, 3676,    0,    0,
4268      3676, 3676, 3677, 3677, 3677, 3677,    0,    0, 3677, 3677,
4269      3678, 3678, 3678,    0,    0,    0, 3678, 3679, 3679, 3679,
4270      3679,    0,    0, 3679, 3679, 3680, 3680, 3680, 3680,    0,
4271
4272      3680,    0, 3680, 3681, 3681, 3681, 3681,    0,    0, 3681,
4273      3681, 3682, 3682, 3682,    0,    0,    0, 3682, 3683, 3683,
4274      3683, 3683,    0,    0, 3683, 3683, 3684, 3684, 3684,    0,
4275         0,    0, 3684, 3685, 3685, 3685, 3685,    0,    0, 3685,
4276      3685, 3686, 3686, 3686,    0,    0,    0, 3686, 3687, 3687,
4277      3687, 3687,    0,    0, 3687, 3687, 3688, 3688, 3688,    0,
4278         0,    0, 3688, 3689, 3689, 3689, 3689,    0,    0, 3689,
4279      3689, 3690, 3690, 3690,    0,    0,    0, 3690, 3691, 3691,
4280      3691, 3691,    0,    0, 3691, 3691, 3692, 3692, 3692, 3692,
4281         0, 3692,    0, 3692, 3693, 3693, 3693, 3693,    0,    0,
4282
4283      3693, 3693, 3694, 3694, 3694,    0,    0,    0, 3694, 3695,
4284      3695, 3695, 3695,    0,    0, 3695, 3695, 3696, 3696, 3696,
4285      3696,    0,    0, 3696, 3696, 3697, 3697, 3697, 3697,    0,
4286      3697,    0, 3697, 3698, 3698, 3698, 3698,    0,    0, 3698,
4287      3698, 3699, 3699, 3699,    0,    0,    0, 3699, 3700, 3700,
4288      3700, 3700,    0,    0, 3700, 3700, 3701, 3701, 3701, 3701,
4289         0,    0, 3701, 3701, 3702, 3702, 3702, 3702,    0,    0,
4290      3702, 3702, 3703, 3703, 3703, 3703,    0,    0, 3703, 3703,
4291      3704, 3704, 3704, 3704, 3704, 3704, 3704, 3704, 3704, 3705,
4292      3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3706, 3706,
4293
4294      3706, 3706,    0, 3706,    0, 3706, 3707, 3707, 3707, 3707,
4295         0,    0, 3707, 3707, 3708, 3708, 3708, 3708,    0,    0,
4296      3708, 3708, 3709, 3709, 3709,    0,    0,    0, 3709, 3710,
4297      3710, 3710, 3710,    0,    0, 3710, 3710, 3711, 3711, 3711,
4298         0,    0,    0, 3711, 3712, 3712, 3712, 3712,    0,    0,
4299      3712, 3712, 3713, 3713, 3713, 3713,    0, 3713,    0, 3713,
4300      3714, 3714, 3714, 3714,    0,    0, 3714, 3714, 3715, 3715,
4301      3715, 3715,    0, 3715,    0, 3715, 3716, 3716, 3716, 3716,
4302         0, 3716,    0, 3716, 3717, 3717, 3717, 3717,    0,    0,
4303      3717, 3717, 3718, 3718, 3718, 3718,    0, 3718,    0, 3718,
4304
4305      3719, 3719, 3719, 3719,    0,    0, 3719, 3719, 3720, 3720,
4306      3720,    0,    0,    0, 3720, 3721, 3721, 3721, 3721,    0,
4307         0, 3721, 3721, 3722, 3722, 3722, 3722,    0,    0, 3722,
4308      3722, 3723, 3723, 3723,    0,    0,    0, 3723, 3724, 3724,
4309      3724, 3724,    0,    0, 3724, 3724, 3725, 3725, 3725,    0,
4310         0,    0, 3725, 3726, 3726, 3726, 3726,    0,    0, 3726,
4311      3726, 3727, 3727, 3727, 3727,    0, 3727,    0, 3727, 3728,
4312      3728, 3728, 3728,    0,    0, 3728, 3728, 3729, 3729, 3729,
4313         0,    0,    0, 3729, 3730, 3730, 3730,    0,    0,    0,
4314      3730, 3731, 3731, 3731, 3731,    0,    0, 3731, 3731, 3732,
4315
4316      3732, 3732,    0,    0,    0, 3732, 3733, 3733, 3733, 3733,
4317         0,    0, 3733, 3733, 3734, 3734, 3734,    0,    0,    0,
4318      3734, 3735, 3735, 3735,    0,    0,    0, 3735, 3736, 3736,
4319      3736, 3736,    0,    0, 3736, 3736, 3737, 3737, 3737,    0,
4320         0,    0, 3737, 3738, 3738, 3738, 3738,    0,    0, 3738,
4321      3738, 3739, 3739, 3739,    0,    0,    0, 3739, 3740, 3740,
4322      3740, 3740,    0,    0, 3740, 3740, 3741, 3741, 3741, 3741,
4323         0,    0, 3741, 3741, 3742, 3742, 3742, 3742,    0,    0,
4324      3742, 3742, 3743, 3743, 3743,    0,    0,    0, 3743, 3744,
4325      3744, 3744, 3744,    0,    0, 3744, 3744, 3745, 3745, 3745,
4326
4327      3745,    0,    0, 3745, 3745, 3746, 3746, 3746, 3746,    0,
4328         0, 3746, 3746, 3747, 3747, 3747, 3747, 3747, 3747, 3747,
4329      3747, 3747, 3748, 3748, 3748, 3748, 3748, 3748, 3748, 3748,
4330      3748, 3749, 3749, 3749, 3749,    0,    0, 3749, 3749, 3750,
4331      3750, 3750, 3750,    0,    0, 3750, 3750, 3751, 3751, 3751,
4332         0,    0,    0, 3751, 3752, 3752, 3752,    0,    0,    0,
4333      3752, 3753, 3753, 3753, 3753,    0,    0, 3753, 3753, 3754,
4334      3754, 3754, 3754,    0,    0, 3754, 3754, 3755, 3755, 3755,
4335         0,    0,    0, 3755, 3756, 3756, 3756, 3756,    0,    0,
4336      3756, 3756, 3757, 3757, 3757,    0,    0,    0, 3757, 3758,
4337
4338      3758, 3758, 3758,    0,    0, 3758, 3758, 3759, 3759, 3759,
4339         0,    0,    0, 3759, 3760, 3760, 3760, 3760,    0,    0,
4340      3760, 3760, 3761, 3761, 3761,    0,    0,    0, 3761, 3762,
4341      3762, 3762, 3762,    0,    0, 3762, 3762, 3763, 3763, 3763,
4342         0,    0,    0, 3763, 3764, 3764, 3764, 3764,    0,    0,
4343      3764, 3764, 3765, 3765, 3765, 3765,    0,    0, 3765, 3765,
4344      3766, 3766, 3766,    0,    0,    0, 3766, 3767, 3767, 3767,
4345         0,    0,    0, 3767, 3768, 3768, 3768, 3768,    0,    0,
4346      3768, 3768, 3769, 3769, 3769,    0,    0,    0, 3769, 3770,
4347      3770, 3770, 3770,    0,    0, 3770, 3770, 3771, 3771, 3771,
4348
4349         0,    0,    0, 3771, 3772, 3772, 3772,    0,    0,    0,
4350      3772, 3773, 3773, 3773,    0,    0,    0, 3773, 3774, 3774,
4351      3774, 3774,    0,    0, 3774, 3774, 3775, 3775, 3775,    0,
4352         0,    0, 3775, 3776, 3776, 3776, 3776,    0,    0, 3776,
4353      3776, 3777, 3777, 3777, 3777,    0,    0, 3777, 3777, 3778,
4354      3778, 3778, 3778,    0,    0, 3778, 3778, 3779, 3779, 3779,
4355      3779,    0, 3779,    0, 3779, 3780, 3780, 3780, 3780,    0,
4356         0, 3780, 3780, 3781, 3781, 3781, 3781,    0,    0, 3781,
4357      3781, 3782, 3782, 3782, 3782,    0,    0, 3782, 3782, 3783,
4358      3783, 3783, 3783, 3783, 3783, 3783, 3783, 3783, 3784, 3784,
4359
4360      3784, 3784, 3784, 3784, 3784, 3784, 3784, 3785, 3785, 3785,
4361      3785,    0,    0, 3785, 3785, 3786, 3786, 3786, 3786,    0,
4362         0, 3786, 3786, 3787, 3787, 3787,    0,    0,    0, 3787,
4363      3788, 3788, 3788, 3788,    0, 3788,    0, 3788, 3789, 3789,
4364      3789, 3789,    0,    0, 3789, 3789, 3790, 3790, 3790,    0,
4365         0,    0, 3790, 3791, 3791, 3791, 3791,    0,    0, 3791,
4366      3791, 3792, 3792, 3792,    0,    0,    0, 3792, 3793, 3793,
4367      3793, 3793,    0,    0, 3793, 3793, 3794, 3794, 3794, 3794,
4368         0, 3794,    0, 3794, 3795, 3795, 3795, 3795,    0,    0,
4369      3795, 3795, 3796, 3796, 3796,    0,    0,    0, 3796, 3797,
4370
4371      3797, 3797, 3797,    0,    0, 3797, 3797, 3798, 3798, 3798,
4372         0,    0,    0, 3798, 3799, 3799, 3799, 3799,    0,    0,
4373      3799, 3799, 3800, 3800, 3800, 3800,    0,    0, 3800, 3800,
4374      3801, 3801, 3801,    0,    0,    0, 3801, 3802, 3802, 3802,
4375         0,    0,    0, 3802, 3803, 3803, 3803, 3803,    0, 3803,
4376         0, 3803, 3804, 3804, 3804, 3804,    0,    0, 3804, 3804,
4377      3805, 3805, 3805, 3805,    0, 3805,    0, 3805, 3806, 3806,
4378      3806,    0,    0,    0, 3806, 3807, 3807, 3807,    0,    0,
4379         0, 3807, 3808, 3808, 3808, 3808,    0,    0, 3808, 3808,
4380      3809, 3809, 3809, 3809,    0, 3809,    0, 3809, 3810, 3810,
4381
4382      3810, 3810,    0,    0, 3810, 3810, 3811, 3811, 3811, 3811,
4383         0,    0, 3811, 3811, 3812, 3812, 3812, 3812,    0,    0,
4384      3812, 3812, 3813, 3813, 3813, 3813,    0, 3813,    0, 3813,
4385      3814, 3814, 3814, 3814,    0,    0, 3814, 3814, 3815, 3815,
4386      3815, 3815,    0,    0, 3815, 3815, 3816, 3816, 3816, 3816,
4387      3816, 3816, 3816, 3816, 3816, 3817, 3817, 3817, 3817, 3817,
4388      3817, 3817, 3817, 3817, 3818, 3818, 3818, 3818,    0,    0,
4389      3818, 3818, 3819, 3819, 3819,    0,    0,    0, 3819, 3820,
4390      3820, 3820,    0,    0,    0, 3820, 3821, 3821, 3821, 3821,
4391         0,    0, 3821, 3821, 3822, 3822, 3822,    0,    0,    0,
4392
4393      3822, 3823, 3823, 3823, 3823,    0,    0, 3823, 3823, 3824,
4394      3824, 3824,    0,    0,    0, 3824, 3825, 3825, 3825, 3825,
4395         0,    0, 3825, 3825, 3826, 3826, 3826,    0,    0,    0,
4396      3826, 3827, 3827, 3827, 3827,    0,    0, 3827, 3827, 3828,
4397      3828, 3828,    0,    0,    0, 3828, 3829, 3829, 3829,    0,
4398         0,    0, 3829, 3830, 3830, 3830,    0,    0,    0, 3830,
4399      3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3831, 3832,
4400      3832, 3832, 3832, 3832, 3832, 3832, 3832, 3832, 3833, 3833,
4401      3833, 3833, 3833, 3833, 3833, 3833, 3833, 3834, 3834, 3834,
4402      3834, 3834, 3834, 3834, 3834, 3834, 3835, 3835, 3835, 3835,
4403
4404      3835, 3835, 3835, 3835, 3835, 3836, 3836, 3836, 3836, 3836,
4405      3836, 3836, 3836, 3836, 3343, 3343, 3343, 3343, 3343, 3343,
4406      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
4407      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
4408      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
4409      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
4410      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
4411      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343,
4412      3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343, 3343
4413     } ;
4414
4415 /* Table of booleans, true if rule could match eol. */
4416 static yyconst flex_int32_t yy_rule_can_match_eol[571] =
4417     {   0,
4418 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
4419     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 
4420     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4421     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4422     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4423     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4424     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4425     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4426     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
4427     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4428     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4429     1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4430     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4431     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4432     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
4433     0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 
4434     0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4435     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 
4436     1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 
4437     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
4438     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
4439     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
4440     0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 
4441     1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4442     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
4443     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 
4444     0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 
4445     1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
4446     1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
4447
4448 static yy_state_type yy_last_accepting_state;
4449 static char *yy_last_accepting_cpos;
4450
4451 extern int surf_parse__flex_debug;
4452 int surf_parse__flex_debug = 0;
4453
4454 /* The intent behind this definition is that it'll catch
4455  * any uses of REJECT which flex missed.
4456  */
4457 #define REJECT reject_used_but_not_detected
4458 #define yymore() yymore_used_but_not_detected
4459 #define YY_MORE_ADJ 0
4460 #define YY_RESTORE_YY_MORE_OFFSET
4461 char *surf_parse_text;
4462 /* Validating XML processor for src/surf/simgrid.dtd.
4463  *
4464  * This program was generated with the FleXML XML processor generator.
4465  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
4466  * FleXML is Copyright (C) 2003-2013 Martin Quinson.  All rights reserved.
4467  * (1.9.6).
4468  * 
4469  * There are two, intertwined parts to this program, part A and part B.
4470  *
4471  * Part A
4472  * ------
4473  * 
4474  * Some parts, here collectively called "Part A", are found in the 
4475  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
4476  * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
4477  *
4478  * You can redistribute, use, perform, display and/or modify "Part A"
4479  * provided the following two conditions hold:
4480  *
4481  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
4482  *    FleXML; without even the implied warranty of MERCHANTABILITY or
4483  *    FITNESS FOR A PARTICULAR PURPOSE.
4484  *
4485  * 2. The program distribution conditions do not in any way affect the
4486  *    distribution conditions of the FleXML system used to generate this
4487  *    file or any version of FleXML derived from that system.
4488  *
4489  * Notice that these are explicit rights granted to you for files
4490  * generated by the FleXML system.  For your rights in connection with
4491  * the FleXML system itself please consult the GNU General Public License.
4492  * 
4493  * Part B
4494  * ------
4495  * 
4496  * The other parts, here collectively called "Part B", and which came 
4497  * from the DTD used by FleXML to generate this program, can be 
4498  * distributed (or not, as the case may be) under the terms of whoever
4499  * wrote them, provided these terms respect and obey the two conditions 
4500  * above under the heading "Part A".
4501  *
4502  * The author of and contributors to FleXML specifically disclaim
4503  * any copyright interest in "Part B", unless "Part B" was written 
4504  * by the author of or contributors to FleXML.
4505  * 
4506  */
4507
4508 /* Version strings. */
4509 const char surfxml_flexml_version[] = "1.9.6";
4510
4511 /* ANSI headers. */
4512 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
4513 #include <stdio.h>
4514 #include <string.h>
4515 #include <assert.h>
4516 #include <stdarg.h>
4517 #include <ctype.h>
4518      
4519 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
4520 # ifndef __STRICT_ANSI__
4521 #  include <io.h>
4522 #  include <process.h>
4523 # endif
4524 #else
4525 # include <unistd.h>
4526 #endif
4527      
4528 #ifndef FLEXML_INDEXSTACKSIZE
4529 #define FLEXML_INDEXSTACKSIZE 1000
4530 #endif
4531
4532 /* Generated definitions. */
4533 #define FLEXML_yylineno
4534 #ifndef FLEXML_BUFFERSTACKSIZE
4535 #define FLEXML_BUFFERSTACKSIZE 1000000
4536 #endif
4537 #define FLEXML_NEED_BUFFERLIT
4538
4539 /* XML processor api. */
4540 /* FleXML-provided data. */
4541 int surfxml_pcdata_ix;
4542 extern char *surfxml_bufferstack;
4543 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
4544 AT_surfxml_storage___type_model AX_surfxml_storage___type_model;
4545 #define A_surfxml_storage___type_model (surfxml_bufferstack + AX_surfxml_storage___type_model)
4546 short int surfxml_storage___type_model_isset;
4547 AT_surfxml_host_pstate AX_surfxml_host_pstate;
4548 #define A_surfxml_host_pstate (surfxml_bufferstack + AX_surfxml_host_pstate)
4549 short int surfxml_host_pstate_isset;
4550 AT_surfxml_router_coordinates AX_surfxml_router_coordinates;
4551 #define A_surfxml_router_coordinates (surfxml_bufferstack + AX_surfxml_router_coordinates)
4552 short int surfxml_router_coordinates_isset;
4553 AT_surfxml_storage_content___type AX_surfxml_storage_content___type;
4554 #define A_surfxml_storage_content___type (surfxml_bufferstack + AX_surfxml_storage_content___type)
4555 short int surfxml_storage_content___type_isset;
4556 AT_surfxml_include_file AX_surfxml_include_file;
4557 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
4558 short int surfxml_include_file_isset;
4559 AT_surfxml_peer_bw___in AX_surfxml_peer_bw___in;
4560 #define A_surfxml_peer_bw___in (surfxml_bufferstack + AX_surfxml_peer_bw___in)
4561 short int surfxml_peer_bw___in_isset;
4562 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
4563 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
4564 short int surfxml_link_bandwidth_isset;
4565 AT_surfxml_prop_value AX_surfxml_prop_value;
4566 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
4567 short int surfxml_prop_value_isset;
4568 AT_surfxml_ASroute_gw___src AX_surfxml_ASroute_gw___src;
4569 #define A_surfxml_ASroute_gw___src (surfxml_bufferstack + AX_surfxml_ASroute_gw___src)
4570 short int surfxml_ASroute_gw___src_isset;
4571 AT_surfxml_random_seed AX_surfxml_random_seed;
4572 #define A_surfxml_random_seed (surfxml_bufferstack + AX_surfxml_random_seed)
4573 short int surfxml_random_seed_isset;
4574 AT_surfxml_process_kill___time AX_surfxml_process_kill___time;
4575 #define A_surfxml_process_kill___time (surfxml_bufferstack + AX_surfxml_process_kill___time)
4576 short int surfxml_process_kill___time_isset;
4577 AT_surfxml_gpu_name AX_surfxml_gpu_name;
4578 #define A_surfxml_gpu_name (surfxml_bufferstack + AX_surfxml_gpu_name)
4579 short int surfxml_gpu_name_isset;
4580 AT_surfxml_link_state AX_surfxml_link_state;
4581 #define A_surfxml_link_state AX_surfxml_link_state
4582 short int surfxml_link_state_isset;
4583 AT_surfxml_storage___type_content___type AX_surfxml_storage___type_content___type;
4584 #define A_surfxml_storage___type_content___type (surfxml_bufferstack + AX_surfxml_storage___type_content___type)
4585 short int surfxml_storage___type_content___type_isset;
4586 AT_surfxml_bypassRoute_src AX_surfxml_bypassRoute_src;
4587 #define A_surfxml_bypassRoute_src (surfxml_bufferstack + AX_surfxml_bypassRoute_src)
4588 short int surfxml_bypassRoute_src_isset;
4589 AT_surfxml_trace_id AX_surfxml_trace_id;
4590 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
4591 short int surfxml_trace_id_isset;
4592 AT_surfxml_bypassASroute_gw___src AX_surfxml_bypassASroute_gw___src;
4593 #define A_surfxml_bypassASroute_gw___src (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___src)
4594 short int surfxml_bypassASroute_gw___src_isset;
4595 AT_surfxml_backbone_bandwidth AX_surfxml_backbone_bandwidth;
4596 #define A_surfxml_backbone_bandwidth (surfxml_bufferstack + AX_surfxml_backbone_bandwidth)
4597 short int surfxml_backbone_bandwidth_isset;
4598 AT_surfxml_peer_power AX_surfxml_peer_power;
4599 #define A_surfxml_peer_power (surfxml_bufferstack + AX_surfxml_peer_power)
4600 short int surfxml_peer_power_isset;
4601 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
4602 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
4603 short int surfxml_cluster_radical_isset;
4604 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
4605 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
4606 short int surfxml_cluster_prefix_isset;
4607 AT_surfxml_link_bandwidth___file AX_surfxml_link_bandwidth___file;
4608 #define A_surfxml_link_bandwidth___file (surfxml_bufferstack + AX_surfxml_link_bandwidth___file)
4609 short int surfxml_link_bandwidth___file_isset;
4610 AT_surfxml_bypassASroute_src AX_surfxml_bypassASroute_src;
4611 #define A_surfxml_bypassASroute_src (surfxml_bufferstack + AX_surfxml_bypassASroute_src)
4612 short int surfxml_bypassASroute_src_isset;
4613 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
4614 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
4615 short int surfxml_cluster_bw_isset;
4616 AT_surfxml_storage___type_id AX_surfxml_storage___type_id;
4617 #define A_surfxml_storage___type_id (surfxml_bufferstack + AX_surfxml_storage___type_id)
4618 short int surfxml_storage___type_id_isset;
4619 AT_surfxml_peer_state___file AX_surfxml_peer_state___file;
4620 #define A_surfxml_peer_state___file (surfxml_bufferstack + AX_surfxml_peer_state___file)
4621 short int surfxml_peer_state___file_isset;
4622 AT_surfxml_peer_bw___out AX_surfxml_peer_bw___out;
4623 #define A_surfxml_peer_bw___out (surfxml_bufferstack + AX_surfxml_peer_bw___out)
4624 short int surfxml_peer_bw___out_isset;
4625 AT_surfxml_bypassASroute_dst AX_surfxml_bypassASroute_dst;
4626 #define A_surfxml_bypassASroute_dst (surfxml_bufferstack + AX_surfxml_bypassASroute_dst)
4627 short int surfxml_bypassASroute_dst_isset;
4628 AT_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind;
4629 #define A_surfxml_trace___connect_kind AX_surfxml_trace___connect_kind
4630 short int surfxml_trace___connect_kind_isset;
4631 AT_surfxml_host_state___file AX_surfxml_host_state___file;
4632 #define A_surfxml_host_state___file (surfxml_bufferstack + AX_surfxml_host_state___file)
4633 short int surfxml_host_state___file_isset;
4634 AT_surfxml_peer_availability___file AX_surfxml_peer_availability___file;
4635 #define A_surfxml_peer_availability___file (surfxml_bufferstack + AX_surfxml_peer_availability___file)
4636 short int surfxml_peer_availability___file_isset;
4637 AT_surfxml_backbone_latency AX_surfxml_backbone_latency;
4638 #define A_surfxml_backbone_latency (surfxml_bufferstack + AX_surfxml_backbone_latency)
4639 short int surfxml_backbone_latency_isset;
4640 AT_surfxml_AS_routing AX_surfxml_AS_routing;
4641 #define A_surfxml_AS_routing AX_surfxml_AS_routing
4642 short int surfxml_AS_routing_isset;
4643 AT_surfxml_host_availability___file AX_surfxml_host_availability___file;
4644 #define A_surfxml_host_availability___file (surfxml_bufferstack + AX_surfxml_host_availability___file)
4645 short int surfxml_host_availability___file_isset;
4646 AT_surfxml_trace___connect_trace AX_surfxml_trace___connect_trace;
4647 #define A_surfxml_trace___connect_trace (surfxml_bufferstack + AX_surfxml_trace___connect_trace)
4648 short int surfxml_trace___connect_trace_isset;
4649 AT_surfxml_cabinet_bw AX_surfxml_cabinet_bw;
4650 #define A_surfxml_cabinet_bw (surfxml_bufferstack + AX_surfxml_cabinet_bw)
4651 short int surfxml_cabinet_bw_isset;
4652 AT_surfxml_link___ctn_id AX_surfxml_link___ctn_id;
4653 #define A_surfxml_link___ctn_id (surfxml_bufferstack + AX_surfxml_link___ctn_id)
4654 short int surfxml_link___ctn_id_isset;
4655 AT_surfxml_link_latency___file AX_surfxml_link_latency___file;
4656 #define A_surfxml_link_latency___file (surfxml_bufferstack + AX_surfxml_link_latency___file)
4657 short int surfxml_link_latency___file_isset;
4658 AT_surfxml_cabinet_suffix AX_surfxml_cabinet_suffix;
4659 #define A_surfxml_cabinet_suffix (surfxml_bufferstack + AX_surfxml_cabinet_suffix)
4660 short int surfxml_cabinet_suffix_isset;
4661 AT_surfxml_random_mean AX_surfxml_random_mean;
4662 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
4663 short int surfxml_random_mean_isset;
4664 AT_surfxml_config_id AX_surfxml_config_id;
4665 #define A_surfxml_config_id (surfxml_bufferstack + AX_surfxml_config_id)
4666 short int surfxml_config_id_isset;
4667 AT_surfxml_process_host AX_surfxml_process_host;
4668 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
4669 short int surfxml_process_host_isset;
4670 AT_surfxml_route_symmetrical AX_surfxml_route_symmetrical;
4671 #define A_surfxml_route_symmetrical AX_surfxml_route_symmetrical
4672 short int surfxml_route_symmetrical_isset;
4673 AT_surfxml_peer_id AX_surfxml_peer_id;
4674 #define A_surfxml_peer_id (surfxml_bufferstack + AX_surfxml_peer_id)
4675 short int surfxml_peer_id_isset;
4676 AT_surfxml_trace_file AX_surfxml_trace_file;
4677 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
4678 short int surfxml_trace_file_isset;
4679 AT_surfxml_cluster_router___id AX_surfxml_cluster_router___id;
4680 #define A_surfxml_cluster_router___id (surfxml_bufferstack + AX_surfxml_cluster_router___id)
4681 short int surfxml_cluster_router___id_isset;
4682 AT_surfxml_ASroute_src AX_surfxml_ASroute_src;
4683 #define A_surfxml_ASroute_src (surfxml_bufferstack + AX_surfxml_ASroute_src)
4684 short int surfxml_ASroute_src_isset;
4685 AT_surfxml_host___link_down AX_surfxml_host___link_down;
4686 #define A_surfxml_host___link_down (surfxml_bufferstack + AX_surfxml_host___link_down)
4687 short int surfxml_host___link_down_isset;
4688 AT_surfxml_mount_name AX_surfxml_mount_name;
4689 #define A_surfxml_mount_name (surfxml_bufferstack + AX_surfxml_mount_name)
4690 short int surfxml_mount_name_isset;
4691 AT_surfxml_ASroute_gw___dst AX_surfxml_ASroute_gw___dst;
4692 #define A_surfxml_ASroute_gw___dst (surfxml_bufferstack + AX_surfxml_ASroute_gw___dst)
4693 short int surfxml_ASroute_gw___dst_isset;
4694 AT_surfxml_bypassASroute_gw___dst AX_surfxml_bypassASroute_gw___dst;
4695 #define A_surfxml_bypassASroute_gw___dst (surfxml_bufferstack + AX_surfxml_bypassASroute_gw___dst)
4696 short int surfxml_bypassASroute_gw___dst_isset;
4697 AT_surfxml_storage___type_size AX_surfxml_storage___type_size;
4698 #define A_surfxml_storage___type_size (surfxml_bufferstack + AX_surfxml_storage___type_size)
4699 short int surfxml_storage___type_size_isset;
4700 AT_surfxml_storage___type_content AX_surfxml_storage___type_content;
4701 #define A_surfxml_storage___type_content (surfxml_bufferstack + AX_surfxml_storage___type_content)
4702 short int surfxml_storage___type_content_isset;
4703 AT_surfxml_host_availability AX_surfxml_host_availability;
4704 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
4705 short int surfxml_host_availability_isset;
4706 AT_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy;
4707 #define A_surfxml_cluster_sharing___policy AX_surfxml_cluster_sharing___policy
4708 short int surfxml_cluster_sharing___policy_isset;
4709 AT_surfxml_link_state___file AX_surfxml_link_state___file;
4710 #define A_surfxml_link_state___file (surfxml_bufferstack + AX_surfxml_link_state___file)
4711 short int surfxml_link_state___file_isset;
4712 AT_surfxml_host___link_up AX_surfxml_host___link_up;
4713 #define A_surfxml_host___link_up (surfxml_bufferstack + AX_surfxml_host___link_up)
4714 short int surfxml_host___link_up_isset;
4715 AT_surfxml_route_src AX_surfxml_route_src;
4716 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
4717 short int surfxml_route_src_isset;
4718 AT_surfxml_prop_id AX_surfxml_prop_id;
4719 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
4720 short int surfxml_prop_id_isset;
4721 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
4722 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
4723 short int surfxml_trace_periodicity_isset;
4724 AT_surfxml_cluster_bb___bw AX_surfxml_cluster_bb___bw;
4725 #define A_surfxml_cluster_bb___bw (surfxml_bufferstack + AX_surfxml_cluster_bb___bw)
4726 short int surfxml_cluster_bb___bw_isset;
4727 AT_surfxml_storage_typeId AX_surfxml_storage_typeId;
4728 #define A_surfxml_storage_typeId (surfxml_bufferstack + AX_surfxml_storage_typeId)
4729 short int surfxml_storage_typeId_isset;
4730 AT_surfxml_mstorage_typeId AX_surfxml_mstorage_typeId;
4731 #define A_surfxml_mstorage_typeId (surfxml_bufferstack + AX_surfxml_mstorage_typeId)
4732 short int surfxml_mstorage_typeId_isset;
4733 AT_surfxml_mount_storageId AX_surfxml_mount_storageId;
4734 #define A_surfxml_mount_storageId (surfxml_bufferstack + AX_surfxml_mount_storageId)
4735 short int surfxml_mount_storageId_isset;
4736 AT_surfxml_host_power AX_surfxml_host_power;
4737 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
4738 short int surfxml_host_power_isset;
4739 AT_surfxml_cluster_loopback___lat AX_surfxml_cluster_loopback___lat;
4740 #define A_surfxml_cluster_loopback___lat (surfxml_bufferstack + AX_surfxml_cluster_loopback___lat)
4741 short int surfxml_cluster_loopback___lat_isset;
4742 AT_surfxml_cabinet_power AX_surfxml_cabinet_power;
4743 #define A_surfxml_cabinet_power (surfxml_bufferstack + AX_surfxml_cabinet_power)
4744 short int surfxml_cabinet_power_isset;
4745 AT_surfxml_host___link_id AX_surfxml_host___link_id;
4746 #define A_surfxml_host___link_id (surfxml_bufferstack + AX_surfxml_host___link_id)
4747 short int surfxml_host___link_id_isset;
4748 AT_surfxml_peer_lat AX_surfxml_peer_lat;
4749 #define A_surfxml_peer_lat (surfxml_bufferstack + AX_surfxml_peer_lat)
4750 short int surfxml_peer_lat_isset;
4751 AT_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction;
4752 #define A_surfxml_link___ctn_direction AX_surfxml_link___ctn_direction
4753 short int surfxml_link___ctn_direction_isset;
4754 AT_surfxml_cluster_state___file AX_surfxml_cluster_state___file;
4755 #define A_surfxml_cluster_state___file (surfxml_bufferstack + AX_surfxml_cluster_state___file)
4756 short int surfxml_cluster_state___file_isset;
4757 AT_surfxml_link_id AX_surfxml_link_id;
4758 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
4759 short int surfxml_link_id_isset;
4760 AT_surfxml_argument_value AX_surfxml_argument_value;
4761 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
4762 short int surfxml_argument_value_isset;
4763 AT_surfxml_AS_id AX_surfxml_AS_id;
4764 #define A_surfxml_AS_id (surfxml_bufferstack + AX_surfxml_AS_id)
4765 short int surfxml_AS_id_isset;
4766 AT_surfxml_platform_version AX_surfxml_platform_version;
4767 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
4768 short int surfxml_platform_version_isset;
4769 AT_surfxml_cluster_core AX_surfxml_cluster_core;
4770 #define A_surfxml_cluster_core (surfxml_bufferstack + AX_surfxml_cluster_core)
4771 short int surfxml_cluster_core_isset;
4772 AT_surfxml_backbone_id AX_surfxml_backbone_id;
4773 #define A_surfxml_backbone_id (surfxml_bufferstack + AX_surfxml_backbone_id)
4774 short int surfxml_backbone_id_isset;
4775 AT_surfxml_bypassRoute_dst AX_surfxml_bypassRoute_dst;
4776 #define A_surfxml_bypassRoute_dst (surfxml_bufferstack + AX_surfxml_bypassRoute_dst)
4777 short int surfxml_bypassRoute_dst_isset;
4778 AT_surfxml_random_min AX_surfxml_random_min;
4779 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
4780 short int surfxml_random_min_isset;
4781 AT_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy;
4782 #define A_surfxml_link_sharing___policy AX_surfxml_link_sharing___policy
4783 short int surfxml_link_sharing___policy_isset;
4784 AT_surfxml_process_on___failure AX_surfxml_process_on___failure;
4785 #define A_surfxml_process_on___failure AX_surfxml_process_on___failure
4786 short int surfxml_process_on___failure_isset;
4787 AT_surfxml_process_function AX_surfxml_process_function;
4788 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
4789 short int surfxml_process_function_isset;
4790 AT_surfxml_random_radical AX_surfxml_random_radical;
4791 #define A_surfxml_random_radical (surfxml_bufferstack + AX_surfxml_random_radical)
4792 short int surfxml_random_radical_isset;
4793 AT_surfxml_random_generator AX_surfxml_random_generator;
4794 #define A_surfxml_random_generator AX_surfxml_random_generator
4795 short int surfxml_random_generator_isset;
4796 AT_surfxml_cabinet_prefix AX_surfxml_cabinet_prefix;
4797 #define A_surfxml_cabinet_prefix (surfxml_bufferstack + AX_surfxml_cabinet_prefix)
4798 short int surfxml_cabinet_prefix_isset;
4799 AT_surfxml_cluster_power AX_surfxml_cluster_power;
4800 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
4801 short int surfxml_cluster_power_isset;
4802 AT_surfxml_cabinet_lat AX_surfxml_cabinet_lat;
4803 #define A_surfxml_cabinet_lat (surfxml_bufferstack + AX_surfxml_cabinet_lat)
4804 short int surfxml_cabinet_lat_isset;
4805 AT_surfxml_cluster_torus___dimensions AX_surfxml_cluster_torus___dimensions;
4806 #define A_surfxml_cluster_torus___dimensions (surfxml_bufferstack + AX_surfxml_cluster_torus___dimensions)
4807 short int surfxml_cluster_torus___dimensions_isset;
4808 AT_surfxml_host_state AX_surfxml_host_state;
4809 #define A_surfxml_host_state AX_surfxml_host_state
4810 short int surfxml_host_state_isset;
4811 AT_surfxml_host_coordinates AX_surfxml_host_coordinates;
4812 #define A_surfxml_host_coordinates (surfxml_bufferstack + AX_surfxml_host_coordinates)
4813 short int surfxml_host_coordinates_isset;
4814 AT_surfxml_random_std___deviation AX_surfxml_random_std___deviation;
4815 #define A_surfxml_random_std___deviation (surfxml_bufferstack + AX_surfxml_random_std___deviation)
4816 short int surfxml_random_std___deviation_isset;
4817 AT_surfxml_cluster_limiter___link AX_surfxml_cluster_limiter___link;
4818 #define A_surfxml_cluster_limiter___link (surfxml_bufferstack + AX_surfxml_cluster_limiter___link)
4819 short int surfxml_cluster_limiter___link_isset;
4820 AT_surfxml_cabinet_radical AX_surfxml_cabinet_radical;
4821 #define A_surfxml_cabinet_radical (surfxml_bufferstack + AX_surfxml_cabinet_radical)
4822 short int surfxml_cabinet_radical_isset;
4823 AT_surfxml_random_max AX_surfxml_random_max;
4824 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
4825 short int surfxml_random_max_isset;
4826 AT_surfxml_cluster_availability___file AX_surfxml_cluster_availability___file;
4827 #define A_surfxml_cluster_availability___file (surfxml_bufferstack + AX_surfxml_cluster_availability___file)
4828 short int surfxml_cluster_availability___file_isset;
4829 AT_surfxml_host_core AX_surfxml_host_core;
4830 #define A_surfxml_host_core (surfxml_bufferstack + AX_surfxml_host_core)
4831 short int surfxml_host_core_isset;
4832 AT_surfxml_router_id AX_surfxml_router_id;
4833 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
4834 short int surfxml_router_id_isset;
4835 AT_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical;
4836 #define A_surfxml_ASroute_symmetrical AX_surfxml_ASroute_symmetrical
4837 short int surfxml_ASroute_symmetrical_isset;
4838 AT_surfxml_process_start___time AX_surfxml_process_start___time;
4839 #define A_surfxml_process_start___time (surfxml_bufferstack + AX_surfxml_process_start___time)
4840 short int surfxml_process_start___time_isset;
4841 AT_surfxml_mstorage_name AX_surfxml_mstorage_name;
4842 #define A_surfxml_mstorage_name (surfxml_bufferstack + AX_surfxml_mstorage_name)
4843 short int surfxml_mstorage_name_isset;
4844 AT_surfxml_peer_coordinates AX_surfxml_peer_coordinates;
4845 #define A_surfxml_peer_coordinates (surfxml_bufferstack + AX_surfxml_peer_coordinates)
4846 short int surfxml_peer_coordinates_isset;
4847 AT_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy;
4848 #define A_surfxml_cluster_bb___sharing___policy AX_surfxml_cluster_bb___sharing___policy
4849 short int surfxml_cluster_bb___sharing___policy_isset;
4850 AT_surfxml_storage_id AX_surfxml_storage_id;
4851 #define A_surfxml_storage_id (surfxml_bufferstack + AX_surfxml_storage_id)
4852 short int surfxml_storage_id_isset;
4853 AT_surfxml_cluster_bb___lat AX_surfxml_cluster_bb___lat;
4854 #define A_surfxml_cluster_bb___lat (surfxml_bufferstack + AX_surfxml_cluster_bb___lat)
4855 short int surfxml_cluster_bb___lat_isset;
4856 AT_surfxml_trace___connect_element AX_surfxml_trace___connect_element;
4857 #define A_surfxml_trace___connect_element (surfxml_bufferstack + AX_surfxml_trace___connect_element)
4858 short int surfxml_trace___connect_element_isset;
4859 AT_surfxml_host_id AX_surfxml_host_id;
4860 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
4861 short int surfxml_host_id_isset;
4862 AT_surfxml_link_latency AX_surfxml_link_latency;
4863 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
4864 short int surfxml_link_latency_isset;
4865 AT_surfxml_cabinet_id AX_surfxml_cabinet_id;
4866 #define A_surfxml_cabinet_id (surfxml_bufferstack + AX_surfxml_cabinet_id)
4867 short int surfxml_cabinet_id_isset;
4868 AT_surfxml_cluster_loopback___bw AX_surfxml_cluster_loopback___bw;
4869 #define A_surfxml_cluster_loopback___bw (surfxml_bufferstack + AX_surfxml_cluster_loopback___bw)
4870 short int surfxml_cluster_loopback___bw_isset;
4871 AT_surfxml_cluster_id AX_surfxml_cluster_id;
4872 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
4873 short int surfxml_cluster_id_isset;
4874 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
4875 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
4876 short int surfxml_cluster_suffix_isset;
4877 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
4878 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
4879 short int surfxml_cluster_lat_isset;
4880 AT_surfxml_storage_content AX_surfxml_storage_content;
4881 #define A_surfxml_storage_content (surfxml_bufferstack + AX_surfxml_storage_content)
4882 short int surfxml_storage_content_isset;
4883 AT_surfxml_random_id AX_surfxml_random_id;
4884 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
4885 short int surfxml_random_id_isset;
4886 AT_surfxml_ASroute_dst AX_surfxml_ASroute_dst;
4887 #define A_surfxml_ASroute_dst (surfxml_bufferstack + AX_surfxml_ASroute_dst)
4888 short int surfxml_ASroute_dst_isset;
4889 AT_surfxml_route_dst AX_surfxml_route_dst;
4890 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
4891 short int surfxml_route_dst_isset;
4892
4893 /* XML state. */
4894 #ifdef FLEX_DEBUG
4895 # define ENTER(state)   debug_enter(state,#state)
4896 # define LEAVE          debug_leave()
4897 # define SET(state)     debug_set(state,#state)
4898   static void debug_enter(int, const char*);
4899   static void debug_leave(void);
4900   static void debug_set(int, const char*);
4901 #else
4902 # define ENTER(state)   (yy_push_state(state))
4903 # define LEAVE          (yy_pop_state())
4904 # define SET(state)     BEGIN(state)
4905 #endif
4906
4907 /* Generic actions. */
4908 #define SKIP    /*skip*/
4909 #define SUCCEED        CLEANUP; return 0
4910
4911 #define FAIL    return fail
4912 static int fail(const char*, ...);
4913
4914 enum {flexml_max_err_msg_size = 512};
4915 static char flexml_err_msg[flexml_max_err_msg_size];
4916 const char * surfxml_parse_err_msg()
4917 {
4918     return flexml_err_msg;
4919 }
4920 static void reset_surfxml_parse_err_msg()
4921 {
4922     flexml_err_msg[0] = '\0';
4923 }
4924
4925 /* Cleanup */
4926 static void cleanup(void);
4927 #define CLEANUP  cleanup()
4928
4929 /* Text buffer stack handling. */
4930 char *surfxml_bufferstack = NULL;
4931 static int blimit = FLEXML_BUFFERSTACKSIZE;
4932 static int bnext = 1;
4933
4934 static int *indexstack = NULL;
4935 static int ilimit = FLEXML_INDEXSTACKSIZE;
4936 static int inext = 1;
4937
4938 #define BUFFERSET(P)  (P = bnext)
4939 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
4940 #define BUFFERDONE    (BUFFERPUTC('\0'))
4941
4942 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
4943
4944 /* after this is called, there are at least 2 slots left in the stack */
4945 static int ck_blimit()
4946 {
4947      if (bnext >= blimit) {
4948          blimit += FLEXML_BUFFERSTACKSIZE + 2;
4949          {
4950              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
4951              assert(temp);
4952              surfxml_bufferstack = temp;
4953          }
4954      }
4955      return 0;
4956 }
4957
4958 /* after this is called, there are at least 2 slots left in the stack */
4959 static int ck_ilimit()
4960 {
4961      if (inext >= ilimit) {
4962          ilimit += FLEXML_INDEXSTACKSIZE + 2;
4963          {
4964              int *temp = (int *) realloc(indexstack, ilimit);
4965              assert(temp);
4966              indexstack = temp;
4967          }
4968      }
4969      return 0;
4970 }
4971
4972 #ifdef FLEXML_NEED_BUFFERLIT
4973 static void surfxml_bufferliteral(char c, int* pp, const char* text)
4974 {
4975    BUFFERSET(*pp);
4976    if (c) {
4977       const char *s = strchr(text, c), *e = strrchr(text, c);
4978       assert(s && e && s <= e);
4979       ++s;
4980       while (s < e) {
4981          if (isspace(*s)) {
4982             BUFFERPUTC(' ');
4983             do ++s; while (s < e && isspace(*s));
4984          } else
4985            BUFFERPUTC(*s++);
4986       }
4987    } else {
4988       const char *s = text;
4989       while (*s)
4990         BUFFERPUTC(*s++);
4991    }
4992    BUFFERDONE;
4993 }
4994 #endif
4995
4996 static void pushbuffer(int p)
4997 {
4998     ck_ilimit();
4999     indexstack[inext++] = p;
5000     indexstack[inext++] = bnext;    
5001 }
5002
5003 static int popbuffer(void)
5004 {
5005     assert(inext >= 2);
5006     bnext = indexstack[--inext];
5007     return indexstack[--inext];
5008 }
5009
5010 /* General internal entities are `unput' back onto the input stream... */
5011 #define ENTITYTEXT(T) \
5012   { char *s = (T), *e = s+strlen(s);\
5013     while (--e >= s) { unput(*e); }}
5014
5015 /* Flex standard options. */
5016 #define YY_NO_INPUT 1
5017 /* Flex user-requested options. */
5018 /* XML character classes (currently restricted to ASCII). */
5019 /* "Common syntactic structures." */
5020 /* "Names and Tokens." */
5021 /* Miscellaneous. */
5022 /* Parser states (flex `exclusive start conditions'):
5023  *
5024  * PROLOG       the XML prolog of the document before <?xml...>
5025  * DOCTYPE      the XML prolog of the document after <?xml...>
5026  * EPILOG       after the root element
5027  * INCOMMENT    inside an XML comment <!--....-->
5028  * INPI         inside an XML PI <?...?>
5029  * VALUE1       inside a '...'-delimited literal
5030  * VALUE2       inside a "..."-delimited literal
5031  * CDATA        inside a <![CDATA[...] ]> section.
5032  * ROOT_<tag>   expect root element <tag>
5033  * AL_<tag>     inside the attribute list for <tag>
5034  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
5035  * IMPOSSIBLE   dummy to permit disabling rules; must be last
5036  */
5037
5038 /* State names. */
5039 const char* *surfxml_statenames=NULL;
5040
5041 #define INITIAL 0
5042 #define PROLOG 1
5043 #define DOCTYPE 2
5044 #define EPILOG 3
5045 #define INCOMMENT 4
5046 #define INPI 5
5047 #define VALUE1 6
5048 #define VALUE2 7
5049 #define CDATA 8
5050 #define ROOT_surfxml_platform 9
5051 #define AL_surfxml_platform 10
5052 #define S_surfxml_platform 11
5053 #define S_surfxml_platform_1 12
5054 #define S_surfxml_platform_2 13
5055 #define S_surfxml_platform_3 14
5056 #define S_surfxml_platform_4 15
5057 #define S_surfxml_platform_5 16
5058 #define S_surfxml_platform_6 17
5059 #define S_surfxml_platform_7 18
5060 #define S_surfxml_platform_8 19
5061 #define E_surfxml_platform 20
5062 #define AL_surfxml_include 21
5063 #define S_surfxml_include 22
5064 #define S_surfxml_include_1 23
5065 #define S_surfxml_include_2 24
5066 #define E_surfxml_include 25
5067 #define AL_surfxml_trace 26
5068 #define IN_trace 27
5069 #define AL_surfxml_random 28
5070 #define E_surfxml_random 29
5071 #define AL_surfxml_trace___connect 30
5072 #define E_surfxml_trace___connect 31
5073 #define AL_surfxml_AS 32
5074 #define S_surfxml_AS 33
5075 #define S_surfxml_AS_1 34
5076 #define S_surfxml_AS_2 35
5077 #define S_surfxml_AS_3 36
5078 #define S_surfxml_AS_4 37
5079 #define S_surfxml_AS_5 38
5080 #define S_surfxml_AS_6 39
5081 #define S_surfxml_AS_7 40
5082 #define S_surfxml_AS_8 41
5083 #define S_surfxml_AS_9 42
5084 #define S_surfxml_AS_10 43
5085 #define S_surfxml_AS_11 44
5086 #define S_surfxml_AS_12 45
5087 #define S_surfxml_AS_13 46
5088 #define S_surfxml_AS_14 47
5089 #define S_surfxml_AS_15 48
5090 #define S_surfxml_AS_16 49
5091 #define E_surfxml_AS 50
5092 #define AL_surfxml_storage___type 51
5093 #define S_surfxml_storage___type 52
5094 #define S_surfxml_storage___type_1 53
5095 #define S_surfxml_storage___type_2 54
5096 #define E_surfxml_storage___type 55
5097 #define AL_surfxml_storage 56
5098 #define S_surfxml_storage 57
5099 #define S_surfxml_storage_1 58
5100 #define S_surfxml_storage_2 59
5101 #define E_surfxml_storage 60
5102 #define AL_surfxml_mount 61
5103 #define E_surfxml_mount 62
5104 #define AL_surfxml_mstorage 63
5105 #define E_surfxml_mstorage 64
5106 #define AL_surfxml_host 65
5107 #define S_surfxml_host 66
5108 #define S_surfxml_host_1 67
5109 #define S_surfxml_host_2 68
5110 #define E_surfxml_host 69
5111 #define AL_surfxml_gpu 70
5112 #define E_surfxml_gpu 71
5113 #define AL_surfxml_host___link 72
5114 #define E_surfxml_host___link 73
5115 #define AL_surfxml_cluster 74
5116 #define S_surfxml_cluster 75
5117 #define S_surfxml_cluster_1 76
5118 #define S_surfxml_cluster_2 77
5119 #define E_surfxml_cluster 78
5120 #define AL_surfxml_cabinet 79
5121 #define E_surfxml_cabinet 80
5122 #define AL_surfxml_peer 81
5123 #define E_surfxml_peer 82
5124 #define AL_surfxml_router 83
5125 #define E_surfxml_router 84
5126 #define AL_surfxml_backbone 85
5127 #define E_surfxml_backbone 86
5128 #define AL_surfxml_link 87
5129 #define S_surfxml_link 88
5130 #define S_surfxml_link_1 89
5131 #define S_surfxml_link_2 90
5132 #define E_surfxml_link 91
5133 #define AL_surfxml_route 92
5134 #define S_surfxml_route 93
5135 #define S_surfxml_route_1 94
5136 #define S_surfxml_route_2 95
5137 #define E_surfxml_route 96
5138 #define AL_surfxml_ASroute 97
5139 #define S_surfxml_ASroute 98
5140 #define S_surfxml_ASroute_1 99
5141 #define S_surfxml_ASroute_2 100
5142 #define E_surfxml_ASroute 101
5143 #define AL_surfxml_link___ctn 102
5144 #define E_surfxml_link___ctn 103
5145 #define AL_surfxml_bypassRoute 104
5146 #define S_surfxml_bypassRoute 105
5147 #define S_surfxml_bypassRoute_1 106
5148 #define S_surfxml_bypassRoute_2 107
5149 #define E_surfxml_bypassRoute 108
5150 #define AL_surfxml_bypassASroute 109
5151 #define S_surfxml_bypassASroute 110
5152 #define S_surfxml_bypassASroute_1 111
5153 #define S_surfxml_bypassASroute_2 112
5154 #define E_surfxml_bypassASroute 113
5155 #define AL_surfxml_process 114
5156 #define S_surfxml_process 115
5157 #define S_surfxml_process_1 116
5158 #define S_surfxml_process_2 117
5159 #define E_surfxml_process 118
5160 #define AL_surfxml_argument 119
5161 #define E_surfxml_argument 120
5162 #define AL_surfxml_config 121
5163 #define S_surfxml_config 122
5164 #define S_surfxml_config_1 123
5165 #define S_surfxml_config_2 124
5166 #define E_surfxml_config 125
5167 #define AL_surfxml_prop 126
5168 #define E_surfxml_prop 127
5169 #define IMPOSSIBLE 128
5170
5171 #ifndef YY_NO_UNISTD_H
5172 /* Special case for "unistd.h", since it is non-ANSI. We include it way
5173  * down here because we want the user's section 1 to have been scanned first.
5174  * The user has a chance to override it with an option.
5175  */
5176 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
5177 #  ifndef __STRICT_ANSI__
5178 #    include <io.h>
5179 #    include <process.h>
5180 #  endif
5181 #else
5182 #  include <unistd.h>
5183 #endif
5184 #endif
5185
5186 #ifndef YY_EXTRA_TYPE
5187 #define YY_EXTRA_TYPE void *
5188 #endif
5189
5190 static int yy_init_globals (void );
5191
5192 /* Accessor methods to globals.
5193    These are made visible to non-reentrant scanners for convenience. */
5194
5195 int surf_parse_lex_destroy (void );
5196
5197 int surf_parse_get_debug (void );
5198
5199 void surf_parse_set_debug (int debug_flag  );
5200
5201 YY_EXTRA_TYPE surf_parse_get_extra (void );
5202
5203 void surf_parse_set_extra (YY_EXTRA_TYPE user_defined  );
5204
5205 FILE *surf_parse_get_in (void );
5206
5207 void surf_parse_set_in  (FILE * in_str  );
5208
5209 FILE *surf_parse_get_out (void );
5210
5211 void surf_parse_set_out  (FILE * out_str  );
5212
5213 int surf_parse_get_leng (void );
5214
5215 char *surf_parse_get_text (void );
5216
5217 int surf_parse_get_lineno (void );
5218
5219 void surf_parse_set_lineno (int line_number  );
5220
5221 /* Macros after this point can all be overridden by user definitions in
5222  * section 1.
5223  */
5224
5225 #ifndef YY_SKIP_YYWRAP
5226 #ifdef __cplusplus
5227 extern "C" int surf_parse_wrap (void );
5228 #else
5229 extern int surf_parse_wrap (void );
5230 #endif
5231 #endif
5232
5233 #ifndef yytext_ptr
5234 static void yy_flex_strncpy (char *,yyconst char *,int );
5235 #endif
5236
5237 #ifdef YY_NEED_STRLEN
5238 static int yy_flex_strlen (yyconst char * );
5239 #endif
5240
5241 #ifndef YY_NO_INPUT
5242
5243 #ifdef __cplusplus
5244 static int yyinput (void );
5245 #else
5246 static int input (void );
5247 #endif
5248
5249 #endif
5250
5251         static int yy_start_stack_ptr = 0;
5252         static int yy_start_stack_depth = 0;
5253         static int *yy_start_stack = NULL;
5254     
5255     static void yy_push_state (int new_state );
5256     
5257     static void yy_pop_state (void );
5258     
5259 /* Amount of stuff to slurp up with each read. */
5260 #ifndef YY_READ_BUF_SIZE
5261 #ifdef __ia64__
5262 /* On IA-64, the buffer size is 16k, not 8k */
5263 #define YY_READ_BUF_SIZE 16384
5264 #else
5265 #define YY_READ_BUF_SIZE 8192
5266 #endif /* __ia64__ */
5267 #endif
5268
5269 /* Copy whatever the last rule matched to the standard output. */
5270 #ifndef ECHO
5271 /* This used to be an fputs(), but since the string might contain NUL's,
5272  * we now use fwrite().
5273  */
5274 #define ECHO do { if (fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )) {} } while (0)
5275 #endif
5276
5277 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
5278  * is returned in "result".
5279  */
5280 #ifndef YY_INPUT
5281 #define YY_INPUT(buf,result,max_size) \
5282         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
5283                 { \
5284                 int c = '*'; \
5285                 size_t n; \
5286                 for ( n = 0; n < max_size && \
5287                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
5288                         buf[n] = (char) c; \
5289                 if ( c == '\n' ) \
5290                         buf[n++] = (char) c; \
5291                 if ( c == EOF && ferror( surf_parse_in ) ) \
5292                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
5293                 result = n; \
5294                 } \
5295         else \
5296                 { \
5297                 errno=0; \
5298                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
5299                         { \
5300                         if( errno != EINTR) \
5301                                 { \
5302                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
5303                                 break; \
5304                                 } \
5305                         errno=0; \
5306                         clearerr(surf_parse_in); \
5307                         } \
5308                 }\
5309 \
5310
5311 #endif
5312
5313 /* No semi-colon after return; correct usage is to write "yyterminate();" -
5314  * we don't want an extra ';' after the "return" because that will cause
5315  * some compilers to complain about unreachable statements.
5316  */
5317 #ifndef yyterminate
5318 #define yyterminate() return YY_NULL
5319 #endif
5320
5321 /* Number of entries by which start-condition stack grows. */
5322 #ifndef YY_START_STACK_INCR
5323 #define YY_START_STACK_INCR 25
5324 #endif
5325
5326 /* Report a fatal error. */
5327 #ifndef YY_FATAL_ERROR
5328 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
5329 #endif
5330
5331 /* end tables serialization structures and prototypes */
5332
5333 /* Default declaration of generated scanner - a define so the user can
5334  * easily add parameters.
5335  */
5336 #ifndef YY_DECL
5337 #define YY_DECL_IS_OURS 1
5338
5339 extern int surf_parse_lex (void);
5340
5341 #define YY_DECL int surf_parse_lex (void)
5342 #endif /* !YY_DECL */
5343
5344 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
5345  * have been set up.
5346  */
5347 #ifndef YY_USER_ACTION
5348 #define YY_USER_ACTION
5349 #endif
5350
5351 /* Code executed at the end of each rule. */
5352 #ifndef YY_BREAK
5353 #define YY_BREAK break;
5354 #endif
5355
5356 #define YY_RULE_SETUP \
5357         YY_USER_ACTION
5358
5359 /** The main scanner function which does all the work.
5360  */
5361 YY_DECL
5362 {
5363         register yy_state_type yy_current_state;
5364         register char *yy_cp, *yy_bp;
5365         register int yy_act;
5366     
5367  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
5368  SET(PROLOG);
5369  reset_surfxml_parse_err_msg();
5370  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
5371  assert(surfxml_bufferstack);
5372  #ifdef FLEX_DEBUG
5373  {
5374      int i;
5375      for (i = 0; i < blimit; i++) {
5376          surfxml_bufferstack[i] = '\377';
5377      }
5378  }
5379  #endif
5380  surfxml_bufferstack[0] = '\0';
5381  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
5382  assert(indexstack);
5383  indexstack[0] = 0;
5384
5385   /* FleXML_init */
5386   bnext = inext = 1;
5387   surfxml_bufferliteral('\0', &bnext, "0.0");
5388   surfxml_bufferliteral('\0', &bnext, "2147483647");
5389   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5390   surfxml_bufferliteral('\0', &bnext, "txt_unix");
5391   surfxml_bufferliteral('\0', &bnext, "1");
5392   surfxml_bufferliteral('\0', &bnext, "1.0");
5393   surfxml_bufferliteral('\0', &bnext, "0.0");
5394   surfxml_bufferliteral('\0', &bnext, "1");
5395   surfxml_bufferliteral('\0', &bnext, "0.0");
5396   surfxml_bufferliteral('\0', &bnext, "-1.0");
5397   surfxml_bufferliteral('\0', &bnext, "-1.0");
5398   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
5399   surfxml_statenames[PROLOG] = NULL;
5400   surfxml_statenames[DOCTYPE] = NULL;
5401   surfxml_statenames[EPILOG] = NULL;
5402   surfxml_statenames[INCOMMENT] = NULL;
5403   surfxml_statenames[INPI] = NULL;
5404   surfxml_statenames[VALUE1] = NULL;
5405   surfxml_statenames[VALUE2] = NULL;
5406   surfxml_statenames[CDATA] = NULL;
5407   surfxml_statenames[ROOT_surfxml_platform] = NULL;
5408   surfxml_statenames[AL_surfxml_platform] = NULL;
5409   surfxml_statenames[S_surfxml_platform] = "platform";
5410   surfxml_statenames[S_surfxml_platform_1] = "platform";
5411   surfxml_statenames[S_surfxml_platform_2] = "platform";
5412   surfxml_statenames[S_surfxml_platform_3] = "platform";
5413   surfxml_statenames[S_surfxml_platform_4] = "platform";
5414   surfxml_statenames[S_surfxml_platform_5] = "platform";
5415   surfxml_statenames[S_surfxml_platform_6] = "platform";
5416   surfxml_statenames[S_surfxml_platform_7] = "platform";
5417   surfxml_statenames[S_surfxml_platform_8] = "platform";
5418   surfxml_statenames[E_surfxml_platform] = "platform";
5419   surfxml_statenames[AL_surfxml_include] = NULL;
5420   surfxml_statenames[S_surfxml_include] = "include";
5421   surfxml_statenames[S_surfxml_include_1] = "include";
5422   surfxml_statenames[S_surfxml_include_2] = "include";
5423   surfxml_statenames[E_surfxml_include] = "include";
5424   surfxml_statenames[AL_surfxml_trace] = NULL;
5425   surfxml_statenames[IN_trace] = "trace";
5426   surfxml_statenames[AL_surfxml_random] = NULL;
5427   surfxml_statenames[E_surfxml_random] = "random";
5428   surfxml_statenames[AL_surfxml_trace___connect] = NULL;
5429   surfxml_statenames[E_surfxml_trace___connect] = "trace_connect";
5430   surfxml_statenames[AL_surfxml_AS] = NULL;
5431   surfxml_statenames[S_surfxml_AS] = "AS";
5432   surfxml_statenames[S_surfxml_AS_1] = "AS";
5433   surfxml_statenames[S_surfxml_AS_2] = "AS";
5434   surfxml_statenames[S_surfxml_AS_3] = "AS";
5435   surfxml_statenames[S_surfxml_AS_4] = "AS";
5436   surfxml_statenames[S_surfxml_AS_5] = "AS";
5437   surfxml_statenames[S_surfxml_AS_6] = "AS";
5438   surfxml_statenames[S_surfxml_AS_7] = "AS";
5439   surfxml_statenames[S_surfxml_AS_8] = "AS";
5440   surfxml_statenames[S_surfxml_AS_9] = "AS";
5441   surfxml_statenames[S_surfxml_AS_10] = "AS";
5442   surfxml_statenames[S_surfxml_AS_11] = "AS";
5443   surfxml_statenames[S_surfxml_AS_12] = "AS";
5444   surfxml_statenames[S_surfxml_AS_13] = "AS";
5445   surfxml_statenames[S_surfxml_AS_14] = "AS";
5446   surfxml_statenames[S_surfxml_AS_15] = "AS";
5447   surfxml_statenames[S_surfxml_AS_16] = "AS";
5448   surfxml_statenames[E_surfxml_AS] = "AS";
5449   surfxml_statenames[AL_surfxml_storage___type] = NULL;
5450   surfxml_statenames[S_surfxml_storage___type] = "storage_type";
5451   surfxml_statenames[S_surfxml_storage___type_1] = "storage_type";
5452   surfxml_statenames[S_surfxml_storage___type_2] = "storage_type";
5453   surfxml_statenames[E_surfxml_storage___type] = "storage_type";
5454   surfxml_statenames[AL_surfxml_storage] = NULL;
5455   surfxml_statenames[S_surfxml_storage] = "storage";
5456   surfxml_statenames[S_surfxml_storage_1] = "storage";
5457   surfxml_statenames[S_surfxml_storage_2] = "storage";
5458   surfxml_statenames[E_surfxml_storage] = "storage";
5459   surfxml_statenames[AL_surfxml_mount] = NULL;
5460   surfxml_statenames[E_surfxml_mount] = "mount";
5461   surfxml_statenames[AL_surfxml_mstorage] = NULL;
5462   surfxml_statenames[E_surfxml_mstorage] = "mstorage";
5463   surfxml_statenames[AL_surfxml_host] = NULL;
5464   surfxml_statenames[S_surfxml_host] = "host";
5465   surfxml_statenames[S_surfxml_host_1] = "host";
5466   surfxml_statenames[S_surfxml_host_2] = "host";
5467   surfxml_statenames[E_surfxml_host] = "host";
5468   surfxml_statenames[AL_surfxml_gpu] = NULL;
5469   surfxml_statenames[E_surfxml_gpu] = "gpu";
5470   surfxml_statenames[AL_surfxml_host___link] = NULL;
5471   surfxml_statenames[E_surfxml_host___link] = "host_link";
5472   surfxml_statenames[AL_surfxml_cluster] = NULL;
5473   surfxml_statenames[S_surfxml_cluster] = "cluster";
5474   surfxml_statenames[S_surfxml_cluster_1] = "cluster";
5475   surfxml_statenames[S_surfxml_cluster_2] = "cluster";
5476   surfxml_statenames[E_surfxml_cluster] = "cluster";
5477   surfxml_statenames[AL_surfxml_cabinet] = NULL;
5478   surfxml_statenames[E_surfxml_cabinet] = "cabinet";
5479   surfxml_statenames[AL_surfxml_peer] = NULL;
5480   surfxml_statenames[E_surfxml_peer] = "peer";
5481   surfxml_statenames[AL_surfxml_router] = NULL;
5482   surfxml_statenames[E_surfxml_router] = "router";
5483   surfxml_statenames[AL_surfxml_backbone] = NULL;
5484   surfxml_statenames[E_surfxml_backbone] = "backbone";
5485   surfxml_statenames[AL_surfxml_link] = NULL;
5486   surfxml_statenames[S_surfxml_link] = "link";
5487   surfxml_statenames[S_surfxml_link_1] = "link";
5488   surfxml_statenames[S_surfxml_link_2] = "link";
5489   surfxml_statenames[E_surfxml_link] = "link";
5490   surfxml_statenames[AL_surfxml_route] = NULL;
5491   surfxml_statenames[S_surfxml_route] = "route";
5492   surfxml_statenames[S_surfxml_route_1] = "route";
5493   surfxml_statenames[S_surfxml_route_2] = "route";
5494   surfxml_statenames[E_surfxml_route] = "route";
5495   surfxml_statenames[AL_surfxml_ASroute] = NULL;
5496   surfxml_statenames[S_surfxml_ASroute] = "ASroute";
5497   surfxml_statenames[S_surfxml_ASroute_1] = "ASroute";
5498   surfxml_statenames[S_surfxml_ASroute_2] = "ASroute";
5499   surfxml_statenames[E_surfxml_ASroute] = "ASroute";
5500   surfxml_statenames[AL_surfxml_link___ctn] = NULL;
5501   surfxml_statenames[E_surfxml_link___ctn] = "link_ctn";
5502   surfxml_statenames[AL_surfxml_bypassRoute] = NULL;
5503   surfxml_statenames[S_surfxml_bypassRoute] = "bypassRoute";
5504   surfxml_statenames[S_surfxml_bypassRoute_1] = "bypassRoute";
5505   surfxml_statenames[S_surfxml_bypassRoute_2] = "bypassRoute";
5506   surfxml_statenames[E_surfxml_bypassRoute] = "bypassRoute";
5507   surfxml_statenames[AL_surfxml_bypassASroute] = NULL;
5508   surfxml_statenames[S_surfxml_bypassASroute] = "bypassASroute";
5509   surfxml_statenames[S_surfxml_bypassASroute_1] = "bypassASroute";
5510   surfxml_statenames[S_surfxml_bypassASroute_2] = "bypassASroute";
5511   surfxml_statenames[E_surfxml_bypassASroute] = "bypassASroute";
5512   surfxml_statenames[AL_surfxml_process] = NULL;
5513   surfxml_statenames[S_surfxml_process] = "process";
5514   surfxml_statenames[S_surfxml_process_1] = "process";
5515   surfxml_statenames[S_surfxml_process_2] = "process";
5516   surfxml_statenames[E_surfxml_process] = "process";
5517   surfxml_statenames[AL_surfxml_argument] = NULL;
5518   surfxml_statenames[E_surfxml_argument] = "argument";
5519   surfxml_statenames[AL_surfxml_config] = NULL;
5520   surfxml_statenames[S_surfxml_config] = "config";
5521   surfxml_statenames[S_surfxml_config_1] = "config";
5522   surfxml_statenames[S_surfxml_config_2] = "config";
5523   surfxml_statenames[E_surfxml_config] = "config";
5524   surfxml_statenames[AL_surfxml_prop] = NULL;
5525   surfxml_statenames[E_surfxml_prop] = "prop";
5526   }
5527
5528  /* COMMENTS and PIs: handled uniformly for efficiency. */
5529
5530         if ( !(yy_init) )
5531                 {
5532                 (yy_init) = 1;
5533
5534 #ifdef YY_USER_INIT
5535                 YY_USER_INIT;
5536 #endif
5537
5538                 if ( ! (yy_start) )
5539                         (yy_start) = 1; /* first start state */
5540
5541                 if ( ! surf_parse_in )
5542                         surf_parse_in = stdin;
5543
5544                 if ( ! surf_parse_out )
5545                         surf_parse_out = stdout;
5546
5547                 if ( ! YY_CURRENT_BUFFER ) {
5548                         surf_parse_ensure_buffer_stack ();
5549                         YY_CURRENT_BUFFER_LVALUE =
5550                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
5551                 }
5552
5553                 surf_parse__load_buffer_state( );
5554                 }
5555
5556         while ( 1 )             /* loops until end-of-file is reached */
5557                 {
5558                 yy_cp = (yy_c_buf_p);
5559
5560                 /* Support of surf_parse_text. */
5561                 *yy_cp = (yy_hold_char);
5562
5563                 /* yy_bp points to the position in yy_ch_buf of the start of
5564                  * the current run.
5565                  */
5566                 yy_bp = yy_cp;
5567
5568                 yy_current_state = (yy_start);
5569 yy_match:
5570                 do
5571                         {
5572                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
5573                         if ( yy_accept[yy_current_state] )
5574                                 {
5575                                 (yy_last_accepting_state) = yy_current_state;
5576                                 (yy_last_accepting_cpos) = yy_cp;
5577                                 }
5578                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5579                                 {
5580                                 yy_current_state = (int) yy_def[yy_current_state];
5581                                 if ( yy_current_state >= 3344 )
5582                                         yy_c = yy_meta[(unsigned int) yy_c];
5583                                 }
5584                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5585                         ++yy_cp;
5586                         }
5587                 while ( yy_base[yy_current_state] != 12315 );
5588
5589 yy_find_action:
5590                 yy_act = yy_accept[yy_current_state];
5591                 if ( yy_act == 0 )
5592                         { /* have to back up */
5593                         yy_cp = (yy_last_accepting_cpos);
5594                         yy_current_state = (yy_last_accepting_state);
5595                         yy_act = yy_accept[yy_current_state];
5596                         }
5597
5598                 YY_DO_BEFORE_ACTION;
5599
5600                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
5601                         {
5602                         int yyl;
5603                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
5604                                 if ( surf_parse_text[yyl] == '\n' )
5605                                            
5606     surf_parse_lineno++;
5607 ;
5608                         }
5609
5610 do_action:      /* This label is used only to access EOF actions. */
5611
5612                 switch ( yy_act )
5613         { /* beginning of action switch */
5614                         case 0: /* must back up */
5615                         /* undo the effects of YY_DO_BEFORE_ACTION */
5616                         *yy_cp = (yy_hold_char);
5617                         yy_cp = (yy_last_accepting_cpos);
5618                         yy_current_state = (yy_last_accepting_state);
5619                         goto yy_find_action;
5620
5621 case 1:
5622 YY_RULE_SETUP
5623 ENTER(INCOMMENT);
5624         YY_BREAK
5625 case 2:
5626 YY_RULE_SETUP
5627 ENTER(INPI);
5628         YY_BREAK
5629
5630 case 3:
5631 YY_RULE_SETUP
5632 LEAVE;
5633         YY_BREAK
5634 case 4:
5635 case 5:
5636 case 6:
5637 /* rule 6 can match eol */
5638 YY_RULE_SETUP
5639 SKIP;
5640         YY_BREAK
5641 case YY_STATE_EOF(INCOMMENT):
5642 FAIL("EOF in comment.");
5643         YY_BREAK
5644
5645 case 7:
5646 YY_RULE_SETUP
5647 LEAVE;
5648         YY_BREAK
5649 case 8:
5650 case 9:
5651 /* rule 9 can match eol */
5652 YY_RULE_SETUP
5653 SKIP;
5654         YY_BREAK
5655 case YY_STATE_EOF(INPI):
5656 FAIL("EOF in PI (processing instruction).");
5657         YY_BREAK
5658
5659 /* SPACES: skipped uniformly */
5660 case 10:
5661 /* rule 10 can match eol */
5662 YY_RULE_SETUP
5663 SKIP;
5664         YY_BREAK
5665 /* PROLOG: determine root element and process it. */
5666
5667 case 11:
5668 /* rule 11 can match eol */
5669 YY_RULE_SETUP
5670 SET(DOCTYPE); 
5671         YY_BREAK
5672 case 12:
5673 /* rule 12 can match eol */
5674 YY_RULE_SETUP
5675 FAIL("Bad declaration %s.",surf_parse_text);
5676         YY_BREAK
5677
5678 case 13:
5679 /* rule 13 can match eol */
5680 YY_RULE_SETUP
5681 SET(ROOT_surfxml_platform);
5682         YY_BREAK
5683 case 14:
5684 /* rule 14 can match eol */
5685 YY_RULE_SETUP
5686 FAIL("Bad declaration %s.",surf_parse_text);
5687         YY_BREAK
5688 case 15:
5689 YY_RULE_SETUP
5690 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
5691         YY_BREAK
5692 case YY_STATE_EOF(PROLOG):
5693 case YY_STATE_EOF(DOCTYPE):
5694 FAIL("EOF in prolog.");
5695         YY_BREAK
5696
5697 /* RULES DERIVED FROM DTD. */
5698 /* <!-- Small DTD for SURF based tools. -->  */
5699 case 16:
5700 /* rule 16 can match eol */
5701 YY_RULE_SETUP
5702 FAIL("Starting tag <platform> is not allowed here.");
5703         YY_BREAK
5704 case 17:
5705 /* rule 17 can match eol */
5706 YY_RULE_SETUP
5707 {
5708   AX_surfxml_platform_version = 1;
5709   surfxml_platform_version_isset = 0;
5710   ENTER(AL_surfxml_platform); pushbuffer(0);
5711   }
5712         YY_BREAK
5713
5714 case 18:
5715 /* rule 18 can match eol */
5716 YY_RULE_SETUP
5717 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);
5718         YY_BREAK
5719 case 19:
5720 /* rule 19 can match eol */
5721 YY_RULE_SETUP
5722 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);
5723         YY_BREAK
5724 case 20:
5725 YY_RULE_SETUP
5726 {
5727   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
5728  }
5729         YY_BREAK
5730 case 21:
5731 YY_RULE_SETUP
5732 {
5733   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
5734   switch (YY_START) {
5735    case ROOT_surfxml_platform: SET(EPILOG); break;
5736   }
5737  }
5738         YY_BREAK
5739 case 22:
5740 YY_RULE_SETUP
5741 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
5742         YY_BREAK
5743 case 23:
5744 YY_RULE_SETUP
5745 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
5746         YY_BREAK
5747 case YY_STATE_EOF(AL_surfxml_platform):
5748 FAIL("EOF in attribute list of `platform' element.");
5749         YY_BREAK
5750
5751 case 24:
5752 /* rule 24 can match eol */
5753 YY_RULE_SETUP
5754 {
5755   LEAVE;
5756   ETag_surfxml_platform();
5757   popbuffer(); /* attribute */
5758   switch (YY_START) {
5759    case ROOT_surfxml_platform: SET(EPILOG); break;
5760   }
5761  }
5762         YY_BREAK
5763 case 25:
5764 /* rule 25 can match eol */
5765 YY_RULE_SETUP
5766 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
5767         YY_BREAK
5768 case 26:
5769 YY_RULE_SETUP
5770 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
5771         YY_BREAK
5772 case YY_STATE_EOF(E_surfxml_platform):
5773 case YY_STATE_EOF(S_surfxml_platform_8):
5774 case YY_STATE_EOF(S_surfxml_platform_6):
5775 case YY_STATE_EOF(S_surfxml_platform_1):
5776 case YY_STATE_EOF(S_surfxml_platform_4):
5777 case YY_STATE_EOF(S_surfxml_platform_3):
5778 case YY_STATE_EOF(S_surfxml_platform):
5779 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</platform>' expected.");
5780         YY_BREAK
5781
5782 case 27:
5783 /* rule 27 can match eol */
5784 YY_RULE_SETUP
5785 FAIL("Starting tag <include> is not allowed here.");
5786         YY_BREAK
5787 case 28:
5788 /* rule 28 can match eol */
5789 YY_RULE_SETUP
5790 {
5791   AX_surfxml_include_file = 0;
5792   surfxml_include_file_isset = 0;
5793   ENTER(AL_surfxml_include); pushbuffer(0);
5794   }
5795         YY_BREAK
5796
5797 case 29:
5798 /* rule 29 can match eol */
5799 YY_RULE_SETUP
5800 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);
5801         YY_BREAK
5802 case 30:
5803 /* rule 30 can match eol */
5804 YY_RULE_SETUP
5805 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);
5806         YY_BREAK
5807 case 31:
5808 YY_RULE_SETUP
5809 {
5810   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5811   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(S_surfxml_include);
5812  }
5813         YY_BREAK
5814 case 32:
5815 YY_RULE_SETUP
5816 {
5817   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
5818   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
5819   switch (YY_START) {
5820    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5821    case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5822    case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5823    case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_3: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
5824   }
5825  }
5826         YY_BREAK
5827 case 33:
5828 YY_RULE_SETUP
5829 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
5830         YY_BREAK
5831 case 34:
5832 YY_RULE_SETUP
5833 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
5834         YY_BREAK
5835 case YY_STATE_EOF(AL_surfxml_include):
5836 FAIL("EOF in attribute list of `include' element.");
5837         YY_BREAK
5838
5839 case 35:
5840 /* rule 35 can match eol */
5841 YY_RULE_SETUP
5842 {
5843   LEAVE;
5844   ETag_surfxml_include();
5845   popbuffer(); /* attribute */
5846   switch (YY_START) {
5847    case S_surfxml_include_2: case S_surfxml_include: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
5848    case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5849    case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
5850    case S_surfxml_platform: case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform_3: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
5851   }
5852  }
5853         YY_BREAK
5854 case 36:
5855 /* rule 36 can match eol */
5856 YY_RULE_SETUP
5857 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
5858         YY_BREAK
5859 case 37:
5860 YY_RULE_SETUP
5861 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
5862         YY_BREAK
5863 case YY_STATE_EOF(E_surfxml_include):
5864 case YY_STATE_EOF(S_surfxml_include_2):
5865 case YY_STATE_EOF(S_surfxml_include):
5866 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</include>' expected.");
5867         YY_BREAK
5868
5869 case 38:
5870 /* rule 38 can match eol */
5871 YY_RULE_SETUP
5872 FAIL("Starting tag <trace> is not allowed here.");
5873         YY_BREAK
5874 case 39:
5875 /* rule 39 can match eol */
5876 YY_RULE_SETUP
5877 {
5878   AX_surfxml_trace_id = 0;
5879   surfxml_trace_id_isset = 0;
5880   AX_surfxml_trace_file = 0;
5881   surfxml_trace_file_isset = 0;
5882   AX_surfxml_trace_periodicity = 0;
5883   surfxml_trace_periodicity_isset = 0;
5884   ENTER(AL_surfxml_trace); pushbuffer(0);
5885   }
5886         YY_BREAK
5887
5888 case 40:
5889 /* rule 40 can match eol */
5890 YY_RULE_SETUP
5891 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);
5892         YY_BREAK
5893 case 41:
5894 /* rule 41 can match eol */
5895 YY_RULE_SETUP
5896 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);
5897         YY_BREAK
5898 case 42:
5899 /* rule 42 can match eol */
5900 YY_RULE_SETUP
5901 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);
5902         YY_BREAK
5903 case 43:
5904 /* rule 43 can match eol */
5905 YY_RULE_SETUP
5906 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);
5907         YY_BREAK
5908 case 44:
5909 /* rule 44 can match eol */
5910 YY_RULE_SETUP
5911 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);
5912         YY_BREAK
5913 case 45:
5914 /* rule 45 can match eol */
5915 YY_RULE_SETUP
5916 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);
5917         YY_BREAK
5918 case 46:
5919 YY_RULE_SETUP
5920 {
5921   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5922   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5923   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
5924  }
5925         YY_BREAK
5926 case 47:
5927 YY_RULE_SETUP
5928 {
5929   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
5930   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
5931   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
5932   switch (YY_START) {
5933    case S_surfxml_AS_3: case S_surfxml_AS_10: case S_surfxml_AS_7: case S_surfxml_AS_11: case S_surfxml_AS_6: SET(S_surfxml_AS_11); break;
5934    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5935    case S_surfxml_AS_15: case S_surfxml_AS: case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_1: SET(S_surfxml_AS_16); break;
5936    case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
5937    case S_surfxml_AS_9: case S_surfxml_AS_4: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
5938    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5939    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5940   }
5941  }
5942         YY_BREAK
5943 case 48:
5944 YY_RULE_SETUP
5945 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
5946         YY_BREAK
5947 case 49:
5948 YY_RULE_SETUP
5949 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
5950         YY_BREAK
5951 case YY_STATE_EOF(AL_surfxml_trace):
5952 FAIL("EOF in attribute list of `trace' element.");
5953         YY_BREAK
5954
5955 case 50:
5956 /* rule 50 can match eol */
5957 YY_RULE_SETUP
5958 {
5959   LEAVE;
5960   BUFFERDONE;
5961   ETag_surfxml_trace();
5962   surfxml_pcdata_ix = popbuffer();
5963   popbuffer(); /* attribute */
5964   switch (YY_START) {
5965    case S_surfxml_AS_3: case S_surfxml_AS_10: case S_surfxml_AS_7: case S_surfxml_AS_11: case S_surfxml_AS_6: SET(S_surfxml_AS_11); break;
5966    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: SET(S_surfxml_platform_6); break;
5967    case S_surfxml_AS_15: case S_surfxml_AS: case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_1: SET(S_surfxml_AS_16); break;
5968    case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
5969    case S_surfxml_AS_9: case S_surfxml_AS_4: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
5970    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
5971    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
5972   }
5973  }
5974         YY_BREAK
5975 case 51:
5976 /* rule 51 can match eol */
5977 YY_RULE_SETUP
5978 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
5979         YY_BREAK
5980 case YY_STATE_EOF(IN_trace):
5981 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace>' expected.");
5982         YY_BREAK
5983
5984 case 52:
5985 /* rule 52 can match eol */
5986 YY_RULE_SETUP
5987 FAIL("Starting tag <random> is not allowed here.");
5988         YY_BREAK
5989 case 53:
5990 /* rule 53 can match eol */
5991 YY_RULE_SETUP
5992 {
5993   AX_surfxml_random_id = 0;
5994   surfxml_random_id_isset = 0;
5995   AX_surfxml_random_min = 0;
5996   surfxml_random_min_isset = 0;
5997   AX_surfxml_random_max = 0;
5998   surfxml_random_max_isset = 0;
5999   AX_surfxml_random_mean = 0;
6000   surfxml_random_mean_isset = 0;
6001   AX_surfxml_random_std___deviation = 0;
6002   surfxml_random_std___deviation_isset = 0;
6003   AX_surfxml_random_seed = 5;
6004   surfxml_random_seed_isset = 0;
6005   AX_surfxml_random_radical = 0;
6006   surfxml_random_radical_isset = 0;
6007   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6008   surfxml_random_generator_isset = 0;
6009   ENTER(AL_surfxml_random); pushbuffer(0);
6010   }
6011         YY_BREAK
6012
6013 case 54:
6014 /* rule 54 can match eol */
6015 YY_RULE_SETUP
6016 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);
6017         YY_BREAK
6018 case 55:
6019 /* rule 55 can match eol */
6020 YY_RULE_SETUP
6021 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);
6022         YY_BREAK
6023 case 56:
6024 /* rule 56 can match eol */
6025 YY_RULE_SETUP
6026 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);
6027         YY_BREAK
6028 case 57:
6029 /* rule 57 can match eol */
6030 YY_RULE_SETUP
6031 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);
6032         YY_BREAK
6033 case 58:
6034 /* rule 58 can match eol */
6035 YY_RULE_SETUP
6036 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);
6037         YY_BREAK
6038 case 59:
6039 /* rule 59 can match eol */
6040 YY_RULE_SETUP
6041 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);
6042         YY_BREAK
6043 case 60:
6044 /* rule 60 can match eol */
6045 YY_RULE_SETUP
6046 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);
6047         YY_BREAK
6048 case 61:
6049 /* rule 61 can match eol */
6050 YY_RULE_SETUP
6051 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);
6052         YY_BREAK
6053 case 62:
6054 /* rule 62 can match eol */
6055 YY_RULE_SETUP
6056 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);
6057         YY_BREAK
6058 case 63:
6059 /* rule 63 can match eol */
6060 YY_RULE_SETUP
6061 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);
6062         YY_BREAK
6063 case 64:
6064 /* rule 64 can match eol */
6065 YY_RULE_SETUP
6066 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);
6067         YY_BREAK
6068 case 65:
6069 /* rule 65 can match eol */
6070 YY_RULE_SETUP
6071 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);
6072         YY_BREAK
6073 case 66:
6074 /* rule 66 can match eol */
6075 YY_RULE_SETUP
6076 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);
6077         YY_BREAK
6078 case 67:
6079 /* rule 67 can match eol */
6080 YY_RULE_SETUP
6081 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);
6082         YY_BREAK
6083 case 68:
6084 /* rule 68 can match eol */
6085 case 69:
6086 /* rule 69 can match eol */
6087 YY_RULE_SETUP
6088 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
6089         YY_BREAK
6090 case 70:
6091 /* rule 70 can match eol */
6092 case 71:
6093 /* rule 71 can match eol */
6094 YY_RULE_SETUP
6095 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
6096         YY_BREAK
6097 case 72:
6098 /* rule 72 can match eol */
6099 case 73:
6100 /* rule 73 can match eol */
6101 YY_RULE_SETUP
6102 A_surfxml_random_generator = A_surfxml_random_generator_RNGSTREAM;
6103         YY_BREAK
6104 case 74:
6105 /* rule 74 can match eol */
6106 case 75:
6107 /* rule 75 can match eol */
6108 YY_RULE_SETUP
6109 A_surfxml_random_generator = A_surfxml_random_generator_NONE;
6110         YY_BREAK
6111 case 76:
6112 YY_RULE_SETUP
6113 {
6114   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6115   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6116   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6117   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6118   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6119   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(E_surfxml_random);
6120  }
6121         YY_BREAK
6122 case 77:
6123 YY_RULE_SETUP
6124 {
6125   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
6126   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
6127   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
6128   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
6129   if (!AX_surfxml_random_std___deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
6130   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
6131   switch (YY_START) {
6132    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
6133   }
6134  }
6135         YY_BREAK
6136 case 78:
6137 YY_RULE_SETUP
6138 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
6139         YY_BREAK
6140 case 79:
6141 YY_RULE_SETUP
6142 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
6143         YY_BREAK
6144 case YY_STATE_EOF(AL_surfxml_random):
6145 FAIL("EOF in attribute list of `random' element.");
6146         YY_BREAK
6147
6148 case 80:
6149 /* rule 80 can match eol */
6150 YY_RULE_SETUP
6151 {
6152   LEAVE;
6153   ETag_surfxml_random();
6154   popbuffer(); /* attribute */
6155   switch (YY_START) {
6156    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
6157   }
6158  }
6159         YY_BREAK
6160 case 81:
6161 /* rule 81 can match eol */
6162 YY_RULE_SETUP
6163 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
6164         YY_BREAK
6165 case 82:
6166 YY_RULE_SETUP
6167 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
6168         YY_BREAK
6169 case YY_STATE_EOF(E_surfxml_random):
6170 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</random>' expected.");
6171         YY_BREAK
6172
6173 case 83:
6174 /* rule 83 can match eol */
6175 YY_RULE_SETUP
6176 FAIL("Starting tag <trace_connect> is not allowed here.");
6177         YY_BREAK
6178 case 84:
6179 /* rule 84 can match eol */
6180 YY_RULE_SETUP
6181 {
6182   AX_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6183   surfxml_trace___connect_kind_isset = 0;
6184   AX_surfxml_trace___connect_trace = 0;
6185   surfxml_trace___connect_trace_isset = 0;
6186   AX_surfxml_trace___connect_element = 0;
6187   surfxml_trace___connect_element_isset = 0;
6188   ENTER(AL_surfxml_trace___connect); pushbuffer(0);
6189   }
6190         YY_BREAK
6191
6192 case 85:
6193 /* rule 85 can match eol */
6194 case 86:
6195 /* rule 86 can match eol */
6196 YY_RULE_SETUP
6197 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_HOST___AVAIL;
6198         YY_BREAK
6199 case 87:
6200 /* rule 87 can match eol */
6201 case 88:
6202 /* rule 88 can match eol */
6203 YY_RULE_SETUP
6204 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_POWER;
6205         YY_BREAK
6206 case 89:
6207 /* rule 89 can match eol */
6208 case 90:
6209 /* rule 90 can match eol */
6210 YY_RULE_SETUP
6211 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LINK___AVAIL;
6212         YY_BREAK
6213 case 91:
6214 /* rule 91 can match eol */
6215 case 92:
6216 /* rule 92 can match eol */
6217 YY_RULE_SETUP
6218 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_BANDWIDTH;
6219         YY_BREAK
6220 case 93:
6221 /* rule 93 can match eol */
6222 case 94:
6223 /* rule 94 can match eol */
6224 YY_RULE_SETUP
6225 A_surfxml_trace___connect_kind = A_surfxml_trace___connect_kind_LATENCY;
6226         YY_BREAK
6227 case 95:
6228 /* rule 95 can match eol */
6229 YY_RULE_SETUP
6230 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);
6231         YY_BREAK
6232 case 96:
6233 /* rule 96 can match eol */
6234 YY_RULE_SETUP
6235 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);
6236         YY_BREAK
6237 case 97:
6238 /* rule 97 can match eol */
6239 YY_RULE_SETUP
6240 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);
6241         YY_BREAK
6242 case 98:
6243 /* rule 98 can match eol */
6244 YY_RULE_SETUP
6245 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);
6246         YY_BREAK
6247 case 99:
6248 YY_RULE_SETUP
6249 {
6250   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6251   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6252   LEAVE; STag_surfxml_trace___connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace___connect);
6253  }
6254         YY_BREAK
6255 case 100:
6256 YY_RULE_SETUP
6257 {
6258   if (!AX_surfxml_trace___connect_trace) FAIL("Required attribute `trace' not set for `trace_connect' element.");
6259   if (!AX_surfxml_trace___connect_element) FAIL("Required attribute `element' not set for `trace_connect' element.");
6260   LEAVE; STag_surfxml_trace___connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace___connect(); popbuffer(); /* attribute */
6261   switch (YY_START) {
6262    case S_surfxml_AS_9: case S_surfxml_AS_4: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
6263    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6264    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6265    case S_surfxml_AS_3: case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_11); break;
6266    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
6267    case S_surfxml_AS_15: case S_surfxml_AS: case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_1: SET(S_surfxml_AS_16); break;
6268    case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6269   }
6270  }
6271         YY_BREAK
6272 case 101:
6273 YY_RULE_SETUP
6274 FAIL("Unexpected character `%c' in attribute list of trace_connect element.", surf_parse_text[0]);
6275         YY_BREAK
6276 case 102:
6277 YY_RULE_SETUP
6278 FAIL("Bad attribute `%s' in `trace_connect' element start tag.",surf_parse_text);
6279         YY_BREAK
6280 case YY_STATE_EOF(AL_surfxml_trace___connect):
6281 FAIL("EOF in attribute list of `trace_connect' element.");
6282         YY_BREAK
6283
6284 case 103:
6285 /* rule 103 can match eol */
6286 YY_RULE_SETUP
6287 {
6288   LEAVE;
6289   ETag_surfxml_trace___connect();
6290   popbuffer(); /* attribute */
6291   switch (YY_START) {
6292    case S_surfxml_AS_9: case S_surfxml_AS_4: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
6293    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
6294    case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
6295    case S_surfxml_AS_3: case S_surfxml_AS_10: case S_surfxml_AS_11: case S_surfxml_AS_7: case S_surfxml_AS_6: SET(S_surfxml_AS_11); break;
6296    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform_1: SET(S_surfxml_platform_6); break;
6297    case S_surfxml_AS_15: case S_surfxml_AS: case S_surfxml_AS_16: case S_surfxml_AS_12: case S_surfxml_AS_1: SET(S_surfxml_AS_16); break;
6298    case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
6299   }
6300  }
6301         YY_BREAK
6302 case 104:
6303 /* rule 104 can match eol */
6304 YY_RULE_SETUP
6305 FAIL("Unexpected end-tag `%s': `</trace_connect>' expected.",surf_parse_text);
6306         YY_BREAK
6307 case 105:
6308 YY_RULE_SETUP
6309 FAIL("Unexpected character `%c': `</trace_connect>' expected.",surf_parse_text[0]);
6310         YY_BREAK
6311 case YY_STATE_EOF(E_surfxml_trace___connect):
6312 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</trace_connect>' expected.");
6313         YY_BREAK
6314
6315 case 106:
6316 /* rule 106 can match eol */
6317 YY_RULE_SETUP
6318 FAIL("Starting tag <AS> is not allowed here.");
6319         YY_BREAK
6320 case 107:
6321 /* rule 107 can match eol */
6322 YY_RULE_SETUP
6323 {
6324   AX_surfxml_AS_id = 0;
6325   surfxml_AS_id_isset = 0;
6326   AX_surfxml_AS_routing = A_surfxml_AS_routing_None;
6327   surfxml_AS_routing_isset = 0;
6328   ENTER(AL_surfxml_AS); pushbuffer(0);
6329   }
6330         YY_BREAK
6331
6332 case 108:
6333 /* rule 108 can match eol */
6334 YY_RULE_SETUP
6335 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);
6336         YY_BREAK
6337 case 109:
6338 /* rule 109 can match eol */
6339 YY_RULE_SETUP
6340 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);
6341         YY_BREAK
6342 case 110:
6343 /* rule 110 can match eol */
6344 case 111:
6345 /* rule 111 can match eol */
6346 YY_RULE_SETUP
6347 A_surfxml_AS_routing = A_surfxml_AS_routing_Full;
6348         YY_BREAK
6349 case 112:
6350 /* rule 112 can match eol */
6351 case 113:
6352 /* rule 113 can match eol */
6353 YY_RULE_SETUP
6354 A_surfxml_AS_routing = A_surfxml_AS_routing_Floyd;
6355         YY_BREAK
6356 case 114:
6357 /* rule 114 can match eol */
6358 case 115:
6359 /* rule 115 can match eol */
6360 YY_RULE_SETUP
6361 A_surfxml_AS_routing = A_surfxml_AS_routing_Dijkstra;
6362         YY_BREAK
6363 case 116:
6364 /* rule 116 can match eol */
6365 case 117:
6366 /* rule 117 can match eol */
6367 YY_RULE_SETUP
6368 A_surfxml_AS_routing = A_surfxml_AS_routing_DijkstraCache;
6369         YY_BREAK
6370 case 118:
6371 /* rule 118 can match eol */
6372 case 119:
6373 /* rule 119 can match eol */
6374 YY_RULE_SETUP
6375 A_surfxml_AS_routing = A_surfxml_AS_routing_None;
6376         YY_BREAK
6377 case 120:
6378 /* rule 120 can match eol */
6379 case 121:
6380 /* rule 121 can match eol */
6381 YY_RULE_SETUP
6382 A_surfxml_AS_routing = A_surfxml_AS_routing_Vivaldi;
6383         YY_BREAK
6384 case 122:
6385 /* rule 122 can match eol */
6386 case 123:
6387 /* rule 123 can match eol */
6388 YY_RULE_SETUP
6389 A_surfxml_AS_routing = A_surfxml_AS_routing_Cluster;
6390         YY_BREAK
6391 case 124:
6392 YY_RULE_SETUP
6393 {
6394   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6395   LEAVE; STag_surfxml_AS();surfxml_pcdata_ix = 0; ENTER(S_surfxml_AS);
6396  }
6397         YY_BREAK
6398 case 125:
6399 YY_RULE_SETUP
6400 {
6401   if (!AX_surfxml_AS_id) FAIL("Required attribute `id' not set for `AS' element.");
6402   LEAVE; STag_surfxml_AS(); surfxml_pcdata_ix = 0; ETag_surfxml_AS(); popbuffer(); /* attribute */
6403   switch (YY_START) {
6404    case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6405    case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6406    case S_surfxml_include_2: case S_surfxml_include_1: case S_surfxml_include: SET(S_surfxml_include_2); break;
6407   }
6408  }
6409         YY_BREAK
6410 case 126:
6411 YY_RULE_SETUP
6412 FAIL("Unexpected character `%c' in attribute list of AS element.", surf_parse_text[0]);
6413         YY_BREAK
6414 case 127:
6415 YY_RULE_SETUP
6416 FAIL("Bad attribute `%s' in `AS' element start tag.",surf_parse_text);
6417         YY_BREAK
6418 case YY_STATE_EOF(AL_surfxml_AS):
6419 FAIL("EOF in attribute list of `AS' element.");
6420         YY_BREAK
6421
6422 case 128:
6423 /* rule 128 can match eol */
6424 YY_RULE_SETUP
6425 {
6426   LEAVE;
6427   ETag_surfxml_AS();
6428   popbuffer(); /* attribute */
6429   switch (YY_START) {
6430    case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
6431    case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6432    case S_surfxml_include_2: case S_surfxml_include_1: case S_surfxml_include: SET(S_surfxml_include_2); break;
6433   }
6434  }
6435         YY_BREAK
6436 case 129:
6437 /* rule 129 can match eol */
6438 YY_RULE_SETUP
6439 FAIL("Unexpected end-tag `%s': `</AS>' expected.",surf_parse_text);
6440         YY_BREAK
6441 case 130:
6442 YY_RULE_SETUP
6443 FAIL("Unexpected character `%c': `</AS>' expected.",surf_parse_text[0]);
6444         YY_BREAK
6445 case YY_STATE_EOF(S_surfxml_AS_12):
6446 case YY_STATE_EOF(S_surfxml_AS_16):
6447 case YY_STATE_EOF(S_surfxml_AS_3):
6448 case YY_STATE_EOF(S_surfxml_AS_9):
6449 case YY_STATE_EOF(S_surfxml_AS_11):
6450 case YY_STATE_EOF(S_surfxml_AS_7):
6451 case YY_STATE_EOF(S_surfxml_AS_4):
6452 case YY_STATE_EOF(S_surfxml_AS):
6453 case YY_STATE_EOF(S_surfxml_AS_14):
6454 case YY_STATE_EOF(E_surfxml_AS):
6455 case YY_STATE_EOF(S_surfxml_AS_6):
6456 case YY_STATE_EOF(S_surfxml_AS_1):
6457 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</AS>' expected.");
6458         YY_BREAK
6459
6460 case 131:
6461 /* rule 131 can match eol */
6462 YY_RULE_SETUP
6463 FAIL("Starting tag <storage_type> is not allowed here.");
6464         YY_BREAK
6465 case 132:
6466 /* rule 132 can match eol */
6467 YY_RULE_SETUP
6468 {
6469   AX_surfxml_storage___type_id = 0;
6470   surfxml_storage___type_id_isset = 0;
6471   AX_surfxml_storage___type_model = 0;
6472   surfxml_storage___type_model_isset = 0;
6473   AX_surfxml_storage___type_size = 0;
6474   surfxml_storage___type_size_isset = 0;
6475   AX_surfxml_storage___type_content = 0;
6476   surfxml_storage___type_content_isset = 0;
6477   AX_surfxml_storage___type_content___type = 16;
6478   surfxml_storage___type_content___type_isset = 0;
6479   ENTER(AL_surfxml_storage___type); pushbuffer(0);
6480   }
6481         YY_BREAK
6482
6483 case 133:
6484 /* rule 133 can match eol */
6485 YY_RULE_SETUP
6486 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);
6487         YY_BREAK
6488 case 134:
6489 /* rule 134 can match eol */
6490 YY_RULE_SETUP
6491 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);
6492         YY_BREAK
6493 case 135:
6494 /* rule 135 can match eol */
6495 YY_RULE_SETUP
6496 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);
6497         YY_BREAK
6498 case 136:
6499 /* rule 136 can match eol */
6500 YY_RULE_SETUP
6501 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);
6502         YY_BREAK
6503 case 137:
6504 /* rule 137 can match eol */
6505 YY_RULE_SETUP
6506 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);
6507         YY_BREAK
6508 case 138:
6509 /* rule 138 can match eol */
6510 YY_RULE_SETUP
6511 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);
6512         YY_BREAK
6513 case 139:
6514 /* rule 139 can match eol */
6515 YY_RULE_SETUP
6516 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);
6517         YY_BREAK
6518 case 140:
6519 /* rule 140 can match eol */
6520 YY_RULE_SETUP
6521 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);
6522         YY_BREAK
6523 case 141:
6524 /* rule 141 can match eol */
6525 YY_RULE_SETUP
6526 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);
6527         YY_BREAK
6528 case 142:
6529 /* rule 142 can match eol */
6530 YY_RULE_SETUP
6531 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);
6532         YY_BREAK
6533 case 143:
6534 YY_RULE_SETUP
6535 {
6536   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6537   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6538   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6539   LEAVE; STag_surfxml_storage___type();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage___type);
6540  }
6541         YY_BREAK
6542 case 144:
6543 YY_RULE_SETUP
6544 {
6545   if (!AX_surfxml_storage___type_id) FAIL("Required attribute `id' not set for `storage_type' element.");
6546   if (!AX_surfxml_storage___type_model) FAIL("Required attribute `model' not set for `storage_type' element.");
6547   if (!AX_surfxml_storage___type_size) FAIL("Required attribute `size' not set for `storage_type' element.");
6548   LEAVE; STag_surfxml_storage___type(); surfxml_pcdata_ix = 0; ETag_surfxml_storage___type(); popbuffer(); /* attribute */
6549   switch (YY_START) {
6550    case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6551    case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
6552   }
6553  }
6554         YY_BREAK
6555 case 145:
6556 YY_RULE_SETUP
6557 FAIL("Unexpected character `%c' in attribute list of storage_type element.", surf_parse_text[0]);
6558         YY_BREAK
6559 case 146:
6560 YY_RULE_SETUP
6561 FAIL("Bad attribute `%s' in `storage_type' element start tag.",surf_parse_text);
6562         YY_BREAK
6563 case YY_STATE_EOF(AL_surfxml_storage___type):
6564 FAIL("EOF in attribute list of `storage_type' element.");
6565         YY_BREAK
6566
6567 case 147:
6568 /* rule 147 can match eol */
6569 YY_RULE_SETUP
6570 {
6571   LEAVE;
6572   ETag_surfxml_storage___type();
6573   popbuffer(); /* attribute */
6574   switch (YY_START) {
6575    case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6576    case S_surfxml_AS_14: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
6577   }
6578  }
6579         YY_BREAK
6580 case 148:
6581 /* rule 148 can match eol */
6582 YY_RULE_SETUP
6583 FAIL("Unexpected end-tag `%s': `</storage_type>' expected.",surf_parse_text);
6584         YY_BREAK
6585 case 149:
6586 YY_RULE_SETUP
6587 FAIL("Unexpected character `%c': `</storage_type>' expected.",surf_parse_text[0]);
6588         YY_BREAK
6589 case YY_STATE_EOF(E_surfxml_storage___type):
6590 case YY_STATE_EOF(S_surfxml_storage___type_2):
6591 case YY_STATE_EOF(S_surfxml_storage___type):
6592 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage_type>' expected.");
6593         YY_BREAK
6594
6595 case 150:
6596 /* rule 150 can match eol */
6597 YY_RULE_SETUP
6598 FAIL("Starting tag <storage> is not allowed here.");
6599         YY_BREAK
6600 case 151:
6601 /* rule 151 can match eol */
6602 YY_RULE_SETUP
6603 {
6604   AX_surfxml_storage_id = 0;
6605   surfxml_storage_id_isset = 0;
6606   AX_surfxml_storage_typeId = 0;
6607   surfxml_storage_typeId_isset = 0;
6608   AX_surfxml_storage_content = 0;
6609   surfxml_storage_content_isset = 0;
6610   AX_surfxml_storage_content___type = 25;
6611   surfxml_storage_content___type_isset = 0;
6612   ENTER(AL_surfxml_storage); pushbuffer(0);
6613   }
6614         YY_BREAK
6615
6616 case 152:
6617 /* rule 152 can match eol */
6618 YY_RULE_SETUP
6619 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);
6620         YY_BREAK
6621 case 153:
6622 /* rule 153 can match eol */
6623 YY_RULE_SETUP
6624 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);
6625         YY_BREAK
6626 case 154:
6627 /* rule 154 can match eol */
6628 YY_RULE_SETUP
6629 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);
6630         YY_BREAK
6631 case 155:
6632 /* rule 155 can match eol */
6633 YY_RULE_SETUP
6634 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);
6635         YY_BREAK
6636 case 156:
6637 /* rule 156 can match eol */
6638 YY_RULE_SETUP
6639 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);
6640         YY_BREAK
6641 case 157:
6642 /* rule 157 can match eol */
6643 YY_RULE_SETUP
6644 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);
6645         YY_BREAK
6646 case 158:
6647 /* rule 158 can match eol */
6648 YY_RULE_SETUP
6649 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);
6650         YY_BREAK
6651 case 159:
6652 /* rule 159 can match eol */
6653 YY_RULE_SETUP
6654 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);
6655         YY_BREAK
6656 case 160:
6657 YY_RULE_SETUP
6658 {
6659   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6660   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6661   LEAVE; STag_surfxml_storage();surfxml_pcdata_ix = 0; ENTER(S_surfxml_storage);
6662  }
6663         YY_BREAK
6664 case 161:
6665 YY_RULE_SETUP
6666 {
6667   if (!AX_surfxml_storage_id) FAIL("Required attribute `id' not set for `storage' element.");
6668   if (!AX_surfxml_storage_typeId) FAIL("Required attribute `typeId' not set for `storage' element.");
6669   LEAVE; STag_surfxml_storage(); surfxml_pcdata_ix = 0; ETag_surfxml_storage(); popbuffer(); /* attribute */
6670   switch (YY_START) {
6671    case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6672    case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6673   }
6674  }
6675         YY_BREAK
6676 case 162:
6677 YY_RULE_SETUP
6678 FAIL("Unexpected character `%c' in attribute list of storage element.", surf_parse_text[0]);
6679         YY_BREAK
6680 case 163:
6681 YY_RULE_SETUP
6682 FAIL("Bad attribute `%s' in `storage' element start tag.",surf_parse_text);
6683         YY_BREAK
6684 case YY_STATE_EOF(AL_surfxml_storage):
6685 FAIL("EOF in attribute list of `storage' element.");
6686         YY_BREAK
6687
6688 case 164:
6689 /* rule 164 can match eol */
6690 YY_RULE_SETUP
6691 {
6692   LEAVE;
6693   ETag_surfxml_storage();
6694   popbuffer(); /* attribute */
6695   switch (YY_START) {
6696    case S_surfxml_AS_14: case S_surfxml_AS: case S_surfxml_AS_13: SET(S_surfxml_AS_14); break;
6697    case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
6698   }
6699  }
6700         YY_BREAK
6701 case 165:
6702 /* rule 165 can match eol */
6703 YY_RULE_SETUP
6704 FAIL("Unexpected end-tag `%s': `</storage>' expected.",surf_parse_text);
6705         YY_BREAK
6706 case 166:
6707 YY_RULE_SETUP
6708 FAIL("Unexpected character `%c': `</storage>' expected.",surf_parse_text[0]);
6709         YY_BREAK
6710 case YY_STATE_EOF(E_surfxml_storage):
6711 case YY_STATE_EOF(S_surfxml_storage_2):
6712 case YY_STATE_EOF(S_surfxml_storage):
6713 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</storage>' expected.");
6714         YY_BREAK
6715
6716 case 167:
6717 /* rule 167 can match eol */
6718 YY_RULE_SETUP
6719 FAIL("Starting tag <mount> is not allowed here.");
6720         YY_BREAK
6721 case 168:
6722 /* rule 168 can match eol */
6723 YY_RULE_SETUP
6724 {
6725   AX_surfxml_mount_storageId = 0;
6726   surfxml_mount_storageId_isset = 0;
6727   AX_surfxml_mount_name = 0;
6728   surfxml_mount_name_isset = 0;
6729   ENTER(AL_surfxml_mount); pushbuffer(0);
6730   }
6731         YY_BREAK
6732
6733 case 169:
6734 /* rule 169 can match eol */
6735 YY_RULE_SETUP
6736 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);
6737         YY_BREAK
6738 case 170:
6739 /* rule 170 can match eol */
6740 YY_RULE_SETUP
6741 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);
6742         YY_BREAK
6743 case 171:
6744 /* rule 171 can match eol */
6745 YY_RULE_SETUP
6746 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);
6747         YY_BREAK
6748 case 172:
6749 /* rule 172 can match eol */
6750 YY_RULE_SETUP
6751 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);
6752         YY_BREAK
6753 case 173:
6754 YY_RULE_SETUP
6755 {
6756   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6757   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6758   LEAVE; STag_surfxml_mount();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mount);
6759  }
6760         YY_BREAK
6761 case 174:
6762 YY_RULE_SETUP
6763 {
6764   if (!AX_surfxml_mount_storageId) FAIL("Required attribute `storageId' not set for `mount' element.");
6765   if (!AX_surfxml_mount_name) FAIL("Required attribute `name' not set for `mount' element.");
6766   LEAVE; STag_surfxml_mount(); surfxml_pcdata_ix = 0; ETag_surfxml_mount(); popbuffer(); /* attribute */
6767   switch (YY_START) {
6768    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
6769   }
6770  }
6771         YY_BREAK
6772 case 175:
6773 YY_RULE_SETUP
6774 FAIL("Unexpected character `%c' in attribute list of mount element.", surf_parse_text[0]);
6775         YY_BREAK
6776 case 176:
6777 YY_RULE_SETUP
6778 FAIL("Bad attribute `%s' in `mount' element start tag.",surf_parse_text);
6779         YY_BREAK
6780 case YY_STATE_EOF(AL_surfxml_mount):
6781 FAIL("EOF in attribute list of `mount' element.");
6782         YY_BREAK
6783
6784 case 177:
6785 /* rule 177 can match eol */
6786 YY_RULE_SETUP
6787 {
6788   LEAVE;
6789   ETag_surfxml_mount();
6790   popbuffer(); /* attribute */
6791   switch (YY_START) {
6792    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
6793   }
6794  }
6795         YY_BREAK
6796 case 178:
6797 /* rule 178 can match eol */
6798 YY_RULE_SETUP
6799 FAIL("Unexpected end-tag `%s': `</mount>' expected.",surf_parse_text);
6800         YY_BREAK
6801 case 179:
6802 YY_RULE_SETUP
6803 FAIL("Unexpected character `%c': `</mount>' expected.",surf_parse_text[0]);
6804         YY_BREAK
6805 case YY_STATE_EOF(E_surfxml_mount):
6806 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mount>' expected.");
6807         YY_BREAK
6808
6809 case 180:
6810 /* rule 180 can match eol */
6811 YY_RULE_SETUP
6812 FAIL("Starting tag <mstorage> is not allowed here.");
6813         YY_BREAK
6814 case 181:
6815 /* rule 181 can match eol */
6816 YY_RULE_SETUP
6817 {
6818   AX_surfxml_mstorage_typeId = 0;
6819   surfxml_mstorage_typeId_isset = 0;
6820   AX_surfxml_mstorage_name = 0;
6821   surfxml_mstorage_name_isset = 0;
6822   ENTER(AL_surfxml_mstorage); pushbuffer(0);
6823   }
6824         YY_BREAK
6825
6826 case 182:
6827 /* rule 182 can match eol */
6828 YY_RULE_SETUP
6829 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");} surfxml_mstorage_typeId_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_typeId);
6830         YY_BREAK
6831 case 183:
6832 /* rule 183 can match eol */
6833 YY_RULE_SETUP
6834 if (surfxml_mstorage_typeId_isset != 0) {FAIL("Multiple definition of attribute typeId in <surfxml_mstorage>");}  surfxml_mstorage_typeId_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_typeId);
6835         YY_BREAK
6836 case 184:
6837 /* rule 184 can match eol */
6838 YY_RULE_SETUP
6839 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");} surfxml_mstorage_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_mstorage_name);
6840         YY_BREAK
6841 case 185:
6842 /* rule 185 can match eol */
6843 YY_RULE_SETUP
6844 if (surfxml_mstorage_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_mstorage>");}  surfxml_mstorage_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_mstorage_name);
6845         YY_BREAK
6846 case 186:
6847 YY_RULE_SETUP
6848 {
6849   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6850   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6851   LEAVE; STag_surfxml_mstorage();surfxml_pcdata_ix = 0; ENTER(E_surfxml_mstorage);
6852  }
6853         YY_BREAK
6854 case 187:
6855 YY_RULE_SETUP
6856 {
6857   if (!AX_surfxml_mstorage_typeId) FAIL("Required attribute `typeId' not set for `mstorage' element.");
6858   if (!AX_surfxml_mstorage_name) FAIL("Required attribute `name' not set for `mstorage' element.");
6859   LEAVE; STag_surfxml_mstorage(); surfxml_pcdata_ix = 0; ETag_surfxml_mstorage(); popbuffer(); /* attribute */
6860   switch (YY_START) {
6861    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
6862   }
6863  }
6864         YY_BREAK
6865 case 188:
6866 YY_RULE_SETUP
6867 FAIL("Unexpected character `%c' in attribute list of mstorage element.", surf_parse_text[0]);
6868         YY_BREAK
6869 case 189:
6870 YY_RULE_SETUP
6871 FAIL("Bad attribute `%s' in `mstorage' element start tag.",surf_parse_text);
6872         YY_BREAK
6873 case YY_STATE_EOF(AL_surfxml_mstorage):
6874 FAIL("EOF in attribute list of `mstorage' element.");
6875         YY_BREAK
6876
6877 case 190:
6878 /* rule 190 can match eol */
6879 YY_RULE_SETUP
6880 {
6881   LEAVE;
6882   ETag_surfxml_mstorage();
6883   popbuffer(); /* attribute */
6884   switch (YY_START) {
6885    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
6886   }
6887  }
6888         YY_BREAK
6889 case 191:
6890 /* rule 191 can match eol */
6891 YY_RULE_SETUP
6892 FAIL("Unexpected end-tag `%s': `</mstorage>' expected.",surf_parse_text);
6893         YY_BREAK
6894 case 192:
6895 YY_RULE_SETUP
6896 FAIL("Unexpected character `%c': `</mstorage>' expected.",surf_parse_text[0]);
6897         YY_BREAK
6898 case YY_STATE_EOF(E_surfxml_mstorage):
6899 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</mstorage>' expected.");
6900         YY_BREAK
6901
6902 case 193:
6903 /* rule 193 can match eol */
6904 YY_RULE_SETUP
6905 FAIL("Starting tag <host> is not allowed here.");
6906         YY_BREAK
6907 case 194:
6908 /* rule 194 can match eol */
6909 YY_RULE_SETUP
6910 {
6911   AX_surfxml_host_id = 0;
6912   surfxml_host_id_isset = 0;
6913   AX_surfxml_host_power = 0;
6914   surfxml_host_power_isset = 0;
6915   AX_surfxml_host_core = 34;
6916   surfxml_host_core_isset = 0;
6917   AX_surfxml_host_availability = 36;
6918   surfxml_host_availability_isset = 0;
6919   AX_surfxml_host_availability___file = 0;
6920   surfxml_host_availability___file_isset = 0;
6921   AX_surfxml_host_state = A_surfxml_host_state_ON;
6922   surfxml_host_state_isset = 0;
6923   AX_surfxml_host_state___file = 0;
6924   surfxml_host_state___file_isset = 0;
6925   AX_surfxml_host_coordinates = 0;
6926   surfxml_host_coordinates_isset = 0;
6927   AX_surfxml_host_pstate = 40;
6928   surfxml_host_pstate_isset = 0;
6929   ENTER(AL_surfxml_host); pushbuffer(0);
6930   }
6931         YY_BREAK
6932
6933 case 195:
6934 /* rule 195 can match eol */
6935 YY_RULE_SETUP
6936 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);
6937         YY_BREAK
6938 case 196:
6939 /* rule 196 can match eol */
6940 YY_RULE_SETUP
6941 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);
6942         YY_BREAK
6943 case 197:
6944 /* rule 197 can match eol */
6945 YY_RULE_SETUP
6946 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");} surfxml_host_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
6947         YY_BREAK
6948 case 198:
6949 /* rule 198 can match eol */
6950 YY_RULE_SETUP
6951 if (surfxml_host_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_host>");}  surfxml_host_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
6952         YY_BREAK
6953 case 199:
6954 /* rule 199 can match eol */
6955 YY_RULE_SETUP
6956 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);
6957         YY_BREAK
6958 case 200:
6959 /* rule 200 can match eol */
6960 YY_RULE_SETUP
6961 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);
6962         YY_BREAK
6963 case 201:
6964 /* rule 201 can match eol */
6965 YY_RULE_SETUP
6966 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");} surfxml_host_availability_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
6967         YY_BREAK
6968 case 202:
6969 /* rule 202 can match eol */
6970 YY_RULE_SETUP
6971 if (surfxml_host_availability_isset != 0) {FAIL("Multiple definition of attribute availability in <surfxml_host>");}  surfxml_host_availability_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
6972         YY_BREAK
6973 case 203:
6974 /* rule 203 can match eol */
6975 YY_RULE_SETUP
6976 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);
6977         YY_BREAK
6978 case 204:
6979 /* rule 204 can match eol */
6980 YY_RULE_SETUP
6981 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);
6982         YY_BREAK
6983 case 205:
6984 /* rule 205 can match eol */
6985 case 206:
6986 /* rule 206 can match eol */
6987 YY_RULE_SETUP
6988 A_surfxml_host_state = A_surfxml_host_state_ON;
6989         YY_BREAK
6990 case 207:
6991 /* rule 207 can match eol */
6992 case 208:
6993 /* rule 208 can match eol */
6994 YY_RULE_SETUP
6995 A_surfxml_host_state = A_surfxml_host_state_OFF;
6996         YY_BREAK
6997 case 209:
6998 /* rule 209 can match eol */
6999 YY_RULE_SETUP
7000 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);
7001         YY_BREAK
7002 case 210:
7003 /* rule 210 can match eol */
7004 YY_RULE_SETUP
7005 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);
7006         YY_BREAK
7007 case 211:
7008 /* rule 211 can match eol */
7009 YY_RULE_SETUP
7010 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);
7011         YY_BREAK
7012 case 212:
7013 /* rule 212 can match eol */
7014 YY_RULE_SETUP
7015 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);
7016         YY_BREAK
7017 case 213:
7018 /* rule 213 can match eol */
7019 YY_RULE_SETUP
7020 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);
7021         YY_BREAK
7022 case 214:
7023 /* rule 214 can match eol */
7024 YY_RULE_SETUP
7025 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);
7026         YY_BREAK
7027 case 215:
7028 YY_RULE_SETUP
7029 {
7030   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7031   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7032   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
7033  }
7034         YY_BREAK
7035 case 216:
7036 YY_RULE_SETUP
7037 {
7038   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
7039   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
7040   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
7041   switch (YY_START) {
7042    case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7043   }
7044  }
7045         YY_BREAK
7046 case 217:
7047 YY_RULE_SETUP
7048 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
7049         YY_BREAK
7050 case 218:
7051 YY_RULE_SETUP
7052 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
7053         YY_BREAK
7054 case YY_STATE_EOF(AL_surfxml_host):
7055 FAIL("EOF in attribute list of `host' element.");
7056         YY_BREAK
7057
7058 case 219:
7059 /* rule 219 can match eol */
7060 YY_RULE_SETUP
7061 {
7062   LEAVE;
7063   ETag_surfxml_host();
7064   popbuffer(); /* attribute */
7065   switch (YY_START) {
7066    case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7067   }
7068  }
7069         YY_BREAK
7070 case 220:
7071 /* rule 220 can match eol */
7072 YY_RULE_SETUP
7073 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
7074         YY_BREAK
7075 case 221:
7076 YY_RULE_SETUP
7077 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
7078         YY_BREAK
7079 case YY_STATE_EOF(E_surfxml_host):
7080 case YY_STATE_EOF(S_surfxml_host):
7081 case YY_STATE_EOF(S_surfxml_host_2):
7082 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host>' expected.");
7083         YY_BREAK
7084
7085 case 222:
7086 /* rule 222 can match eol */
7087 YY_RULE_SETUP
7088 FAIL("Starting tag <gpu> is not allowed here.");
7089         YY_BREAK
7090 case 223:
7091 /* rule 223 can match eol */
7092 YY_RULE_SETUP
7093 {
7094   AX_surfxml_gpu_name = 0;
7095   surfxml_gpu_name_isset = 0;
7096   ENTER(AL_surfxml_gpu); pushbuffer(0);
7097   }
7098         YY_BREAK
7099
7100 case 224:
7101 /* rule 224 can match eol */
7102 YY_RULE_SETUP
7103 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");} surfxml_gpu_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_gpu_name);
7104         YY_BREAK
7105 case 225:
7106 /* rule 225 can match eol */
7107 YY_RULE_SETUP
7108 if (surfxml_gpu_name_isset != 0) {FAIL("Multiple definition of attribute name in <surfxml_gpu>");}  surfxml_gpu_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_gpu_name);
7109         YY_BREAK
7110 case 226:
7111 YY_RULE_SETUP
7112 {
7113   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7114   LEAVE; STag_surfxml_gpu();surfxml_pcdata_ix = 0; ENTER(E_surfxml_gpu);
7115  }
7116         YY_BREAK
7117 case 227:
7118 YY_RULE_SETUP
7119 {
7120   if (!AX_surfxml_gpu_name) FAIL("Required attribute `name' not set for `gpu' element.");
7121   LEAVE; STag_surfxml_gpu(); surfxml_pcdata_ix = 0; ETag_surfxml_gpu(); popbuffer(); /* attribute */
7122   switch (YY_START) {
7123    case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7124   }
7125  }
7126         YY_BREAK
7127 case 228:
7128 YY_RULE_SETUP
7129 FAIL("Unexpected character `%c' in attribute list of gpu element.", surf_parse_text[0]);
7130         YY_BREAK
7131 case 229:
7132 YY_RULE_SETUP
7133 FAIL("Bad attribute `%s' in `gpu' element start tag.",surf_parse_text);
7134         YY_BREAK
7135 case YY_STATE_EOF(AL_surfxml_gpu):
7136 FAIL("EOF in attribute list of `gpu' element.");
7137         YY_BREAK
7138
7139 case 230:
7140 /* rule 230 can match eol */
7141 YY_RULE_SETUP
7142 {
7143   LEAVE;
7144   ETag_surfxml_gpu();
7145   popbuffer(); /* attribute */
7146   switch (YY_START) {
7147    case S_surfxml_AS_14: case S_surfxml_AS_1: case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_3: SET(S_surfxml_AS_14); break;
7148   }
7149  }
7150         YY_BREAK
7151 case 231:
7152 /* rule 231 can match eol */
7153 YY_RULE_SETUP
7154 FAIL("Unexpected end-tag `%s': `</gpu>' expected.",surf_parse_text);
7155         YY_BREAK
7156 case 232:
7157 YY_RULE_SETUP
7158 FAIL("Unexpected character `%c': `</gpu>' expected.",surf_parse_text[0]);
7159         YY_BREAK
7160 case YY_STATE_EOF(E_surfxml_gpu):
7161 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</gpu>' expected.");
7162         YY_BREAK
7163
7164 case 233:
7165 /* rule 233 can match eol */
7166 YY_RULE_SETUP
7167 FAIL("Starting tag <host_link> is not allowed here.");
7168         YY_BREAK
7169 case 234:
7170 /* rule 234 can match eol */
7171 YY_RULE_SETUP
7172 {
7173   AX_surfxml_host___link_id = 0;
7174   surfxml_host___link_id_isset = 0;
7175   AX_surfxml_host___link_up = 0;
7176   surfxml_host___link_up_isset = 0;
7177   AX_surfxml_host___link_down = 0;
7178   surfxml_host___link_down_isset = 0;
7179   ENTER(AL_surfxml_host___link); pushbuffer(0);
7180   }
7181         YY_BREAK
7182
7183 case 235:
7184 /* rule 235 can match eol */
7185 YY_RULE_SETUP
7186 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);
7187         YY_BREAK
7188 case 236:
7189 /* rule 236 can match eol */
7190 YY_RULE_SETUP
7191 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);
7192         YY_BREAK
7193 case 237:
7194 /* rule 237 can match eol */
7195 YY_RULE_SETUP
7196 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);
7197         YY_BREAK
7198 case 238:
7199 /* rule 238 can match eol */
7200 YY_RULE_SETUP
7201 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);
7202         YY_BREAK
7203 case 239:
7204 /* rule 239 can match eol */
7205 YY_RULE_SETUP
7206 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);
7207         YY_BREAK
7208 case 240:
7209 /* rule 240 can match eol */
7210 YY_RULE_SETUP
7211 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);
7212         YY_BREAK
7213 case 241:
7214 YY_RULE_SETUP
7215 {
7216   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7217   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7218   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7219   LEAVE; STag_surfxml_host___link();surfxml_pcdata_ix = 0; ENTER(E_surfxml_host___link);
7220  }
7221         YY_BREAK
7222 case 242:
7223 YY_RULE_SETUP
7224 {
7225   if (!AX_surfxml_host___link_id) FAIL("Required attribute `id' not set for `host_link' element.");
7226   if (!AX_surfxml_host___link_up) FAIL("Required attribute `up' not set for `host_link' element.");
7227   if (!AX_surfxml_host___link_down) FAIL("Required attribute `down' not set for `host_link' element.");
7228   LEAVE; STag_surfxml_host___link(); surfxml_pcdata_ix = 0; ETag_surfxml_host___link(); popbuffer(); /* attribute */
7229   switch (YY_START) {
7230    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7231   }
7232  }
7233         YY_BREAK
7234 case 243:
7235 YY_RULE_SETUP
7236 FAIL("Unexpected character `%c' in attribute list of host_link element.", surf_parse_text[0]);
7237         YY_BREAK
7238 case 244:
7239 YY_RULE_SETUP
7240 FAIL("Bad attribute `%s' in `host_link' element start tag.",surf_parse_text);
7241         YY_BREAK
7242 case YY_STATE_EOF(AL_surfxml_host___link):
7243 FAIL("EOF in attribute list of `host_link' element.");
7244         YY_BREAK
7245
7246 case 245:
7247 /* rule 245 can match eol */
7248 YY_RULE_SETUP
7249 {
7250   LEAVE;
7251   ETag_surfxml_host___link();
7252   popbuffer(); /* attribute */
7253   switch (YY_START) {
7254    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7255   }
7256  }
7257         YY_BREAK
7258 case 246:
7259 /* rule 246 can match eol */
7260 YY_RULE_SETUP
7261 FAIL("Unexpected end-tag `%s': `</host_link>' expected.",surf_parse_text);
7262         YY_BREAK
7263 case 247:
7264 YY_RULE_SETUP
7265 FAIL("Unexpected character `%c': `</host_link>' expected.",surf_parse_text[0]);
7266         YY_BREAK
7267 case YY_STATE_EOF(E_surfxml_host___link):
7268 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</host_link>' expected.");
7269         YY_BREAK
7270
7271 case 248:
7272 /* rule 248 can match eol */
7273 YY_RULE_SETUP
7274 FAIL("Starting tag <cluster> is not allowed here.");
7275         YY_BREAK
7276 case 249:
7277 /* rule 249 can match eol */
7278 YY_RULE_SETUP
7279 {
7280   AX_surfxml_cluster_id = 0;
7281   surfxml_cluster_id_isset = 0;
7282   AX_surfxml_cluster_prefix = 0;
7283   surfxml_cluster_prefix_isset = 0;
7284   AX_surfxml_cluster_suffix = 0;
7285   surfxml_cluster_suffix_isset = 0;
7286   AX_surfxml_cluster_radical = 0;
7287   surfxml_cluster_radical_isset = 0;
7288   AX_surfxml_cluster_power = 0;
7289   surfxml_cluster_power_isset = 0;
7290   AX_surfxml_cluster_core = 44;
7291   surfxml_cluster_core_isset = 0;
7292   AX_surfxml_cluster_bw = 0;
7293   surfxml_cluster_bw_isset = 0;
7294   AX_surfxml_cluster_lat = 0;
7295   surfxml_cluster_lat_isset = 0;
7296   AX_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7297   surfxml_cluster_sharing___policy_isset = 0;
7298   AX_surfxml_cluster_torus___dimensions = 0;
7299   surfxml_cluster_torus___dimensions_isset = 0;
7300   AX_surfxml_cluster_bb___bw = 0;
7301   surfxml_cluster_bb___bw_isset = 0;
7302   AX_surfxml_cluster_bb___lat = 0;
7303   surfxml_cluster_bb___lat_isset = 0;
7304   AX_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7305   surfxml_cluster_bb___sharing___policy_isset = 0;
7306   AX_surfxml_cluster_availability___file = 0;
7307   surfxml_cluster_availability___file_isset = 0;
7308   AX_surfxml_cluster_state___file = 0;
7309   surfxml_cluster_state___file_isset = 0;
7310   AX_surfxml_cluster_router___id = 0;
7311   surfxml_cluster_router___id_isset = 0;
7312   AX_surfxml_cluster_limiter___link = 0;
7313   surfxml_cluster_limiter___link_isset = 0;
7314   AX_surfxml_cluster_loopback___bw = 0;
7315   surfxml_cluster_loopback___bw_isset = 0;
7316   AX_surfxml_cluster_loopback___lat = 0;
7317   surfxml_cluster_loopback___lat_isset = 0;
7318   ENTER(AL_surfxml_cluster); pushbuffer(0);
7319   }
7320         YY_BREAK
7321
7322 case 250:
7323 /* rule 250 can match eol */
7324 YY_RULE_SETUP
7325 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);
7326         YY_BREAK
7327 case 251:
7328 /* rule 251 can match eol */
7329 YY_RULE_SETUP
7330 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);
7331         YY_BREAK
7332 case 252:
7333 /* rule 252 can match eol */
7334 YY_RULE_SETUP
7335 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);
7336         YY_BREAK
7337 case 253:
7338 /* rule 253 can match eol */
7339 YY_RULE_SETUP
7340 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);
7341         YY_BREAK
7342 case 254:
7343 /* rule 254 can match eol */
7344 YY_RULE_SETUP
7345 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);
7346         YY_BREAK
7347 case 255:
7348 /* rule 255 can match eol */
7349 YY_RULE_SETUP
7350 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);
7351         YY_BREAK
7352 case 256:
7353 /* rule 256 can match eol */
7354 YY_RULE_SETUP
7355 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);
7356         YY_BREAK
7357 case 257:
7358 /* rule 257 can match eol */
7359 YY_RULE_SETUP
7360 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);
7361         YY_BREAK
7362 case 258:
7363 /* rule 258 can match eol */
7364 YY_RULE_SETUP
7365 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");} surfxml_cluster_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
7366         YY_BREAK
7367 case 259:
7368 /* rule 259 can match eol */
7369 YY_RULE_SETUP
7370 if (surfxml_cluster_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cluster>");}  surfxml_cluster_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
7371         YY_BREAK
7372 case 260:
7373 /* rule 260 can match eol */
7374 YY_RULE_SETUP
7375 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);
7376         YY_BREAK
7377 case 261:
7378 /* rule 261 can match eol */
7379 YY_RULE_SETUP
7380 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);
7381         YY_BREAK
7382 case 262:
7383 /* rule 262 can match eol */
7384 YY_RULE_SETUP
7385 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);
7386         YY_BREAK
7387 case 263:
7388 /* rule 263 can match eol */
7389 YY_RULE_SETUP
7390 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);
7391         YY_BREAK
7392 case 264:
7393 /* rule 264 can match eol */
7394 YY_RULE_SETUP
7395 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);
7396         YY_BREAK
7397 case 265:
7398 /* rule 265 can match eol */
7399 YY_RULE_SETUP
7400 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);
7401         YY_BREAK
7402 case 266:
7403 /* rule 266 can match eol */
7404 case 267:
7405 /* rule 267 can match eol */
7406 YY_RULE_SETUP
7407 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_SHARED;
7408         YY_BREAK
7409 case 268:
7410 /* rule 268 can match eol */
7411 case 269:
7412 /* rule 269 can match eol */
7413 YY_RULE_SETUP
7414 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FULLDUPLEX;
7415         YY_BREAK
7416 case 270:
7417 /* rule 270 can match eol */
7418 case 271:
7419 /* rule 271 can match eol */
7420 YY_RULE_SETUP
7421 A_surfxml_cluster_sharing___policy = A_surfxml_cluster_sharing___policy_FATPIPE;
7422         YY_BREAK
7423 case 272:
7424 /* rule 272 can match eol */
7425 YY_RULE_SETUP
7426 if (surfxml_cluster_torus___dimensions_isset != 0) {FAIL("Multiple definition of attribute torus_dimensions in <surfxml_cluster>");} surfxml_cluster_torus___dimensions_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_torus___dimensions);
7427         YY_BREAK
7428 case 273:
7429 /* rule 273 can match eol */
7430 YY_RULE_SETUP
7431 if (surfxml_cluster_torus___dimensions_isset != 0) {FAIL("Multiple definition of attribute torus_dimensions in <surfxml_cluster>");}  surfxml_cluster_torus___dimensions_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_torus___dimensions);
7432         YY_BREAK
7433 case 274:
7434 /* rule 274 can match eol */
7435 YY_RULE_SETUP
7436 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);
7437         YY_BREAK
7438 case 275:
7439 /* rule 275 can match eol */
7440 YY_RULE_SETUP
7441 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);
7442         YY_BREAK
7443 case 276:
7444 /* rule 276 can match eol */
7445 YY_RULE_SETUP
7446 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);
7447         YY_BREAK
7448 case 277:
7449 /* rule 277 can match eol */
7450 YY_RULE_SETUP
7451 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);
7452         YY_BREAK
7453 case 278:
7454 /* rule 278 can match eol */
7455 case 279:
7456 /* rule 279 can match eol */
7457 YY_RULE_SETUP
7458 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_SHARED;
7459         YY_BREAK
7460 case 280:
7461 /* rule 280 can match eol */
7462 case 281:
7463 /* rule 281 can match eol */
7464 YY_RULE_SETUP
7465 A_surfxml_cluster_bb___sharing___policy = A_surfxml_cluster_bb___sharing___policy_FATPIPE;
7466         YY_BREAK
7467 case 282:
7468 /* rule 282 can match eol */
7469 YY_RULE_SETUP
7470 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");} surfxml_cluster_availability___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_availability___file);
7471         YY_BREAK
7472 case 283:
7473 /* rule 283 can match eol */
7474 YY_RULE_SETUP
7475 if (surfxml_cluster_availability___file_isset != 0) {FAIL("Multiple definition of attribute availability_file in <surfxml_cluster>");}  surfxml_cluster_availability___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_availability___file);
7476         YY_BREAK
7477 case 284:
7478 /* rule 284 can match eol */
7479 YY_RULE_SETUP
7480 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");} surfxml_cluster_state___file_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_state___file);
7481         YY_BREAK
7482 case 285:
7483 /* rule 285 can match eol */
7484 YY_RULE_SETUP
7485 if (surfxml_cluster_state___file_isset != 0) {FAIL("Multiple definition of attribute state_file in <surfxml_cluster>");}  surfxml_cluster_state___file_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_state___file);
7486         YY_BREAK
7487 case 286:
7488 /* rule 286 can match eol */
7489 YY_RULE_SETUP
7490 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);
7491         YY_BREAK
7492 case 287:
7493 /* rule 287 can match eol */
7494 YY_RULE_SETUP
7495 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);
7496         YY_BREAK
7497 case 288:
7498 /* rule 288 can match eol */
7499 YY_RULE_SETUP
7500 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);
7501         YY_BREAK
7502 case 289:
7503 /* rule 289 can match eol */
7504 YY_RULE_SETUP
7505 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);
7506         YY_BREAK
7507 case 290:
7508 /* rule 290 can match eol */
7509 YY_RULE_SETUP
7510 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);
7511         YY_BREAK
7512 case 291:
7513 /* rule 291 can match eol */
7514 YY_RULE_SETUP
7515 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);
7516         YY_BREAK
7517 case 292:
7518 /* rule 292 can match eol */
7519 YY_RULE_SETUP
7520 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);
7521         YY_BREAK
7522 case 293:
7523 /* rule 293 can match eol */
7524 YY_RULE_SETUP
7525 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);
7526         YY_BREAK
7527 case 294:
7528 YY_RULE_SETUP
7529 {
7530   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7531   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7532   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7533   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7534   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7535   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7536   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7537   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(S_surfxml_cluster);
7538  }
7539         YY_BREAK
7540 case 295:
7541 YY_RULE_SETUP
7542 {
7543   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
7544   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
7545   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
7546   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
7547   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
7548   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
7549   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
7550   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
7551   switch (YY_START) {
7552    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
7553    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
7554    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7555   }
7556  }
7557         YY_BREAK
7558 case 296:
7559 YY_RULE_SETUP
7560 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
7561         YY_BREAK
7562 case 297:
7563 YY_RULE_SETUP
7564 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
7565         YY_BREAK
7566 case YY_STATE_EOF(AL_surfxml_cluster):
7567 FAIL("EOF in attribute list of `cluster' element.");
7568         YY_BREAK
7569
7570 case 298:
7571 /* rule 298 can match eol */
7572 YY_RULE_SETUP
7573 {
7574   LEAVE;
7575   ETag_surfxml_cluster();
7576   popbuffer(); /* attribute */
7577   switch (YY_START) {
7578    case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_5: SET(S_surfxml_platform_6); break;
7579    case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
7580    case S_surfxml_include: case S_surfxml_include_1: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7581   }
7582  }
7583         YY_BREAK
7584 case 299:
7585 /* rule 299 can match eol */
7586 YY_RULE_SETUP
7587 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
7588         YY_BREAK
7589 case 300:
7590 YY_RULE_SETUP
7591 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
7592         YY_BREAK
7593 case YY_STATE_EOF(S_surfxml_cluster_2):
7594 case YY_STATE_EOF(E_surfxml_cluster):
7595 case YY_STATE_EOF(S_surfxml_cluster):
7596 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cluster>' expected.");
7597         YY_BREAK
7598
7599 case 301:
7600 /* rule 301 can match eol */
7601 YY_RULE_SETUP
7602 FAIL("Starting tag <cabinet> is not allowed here.");
7603         YY_BREAK
7604 case 302:
7605 /* rule 302 can match eol */
7606 YY_RULE_SETUP
7607 {
7608   AX_surfxml_cabinet_id = 0;
7609   surfxml_cabinet_id_isset = 0;
7610   AX_surfxml_cabinet_prefix = 0;
7611   surfxml_cabinet_prefix_isset = 0;
7612   AX_surfxml_cabinet_suffix = 0;
7613   surfxml_cabinet_suffix_isset = 0;
7614   AX_surfxml_cabinet_radical = 0;
7615   surfxml_cabinet_radical_isset = 0;
7616   AX_surfxml_cabinet_power = 0;
7617   surfxml_cabinet_power_isset = 0;
7618   AX_surfxml_cabinet_bw = 0;
7619   surfxml_cabinet_bw_isset = 0;
7620   AX_surfxml_cabinet_lat = 0;
7621   surfxml_cabinet_lat_isset = 0;
7622   ENTER(AL_surfxml_cabinet); pushbuffer(0);
7623   }
7624         YY_BREAK
7625
7626 case 303:
7627 /* rule 303 can match eol */
7628 YY_RULE_SETUP
7629 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);
7630         YY_BREAK
7631 case 304:
7632 /* rule 304 can match eol */
7633 YY_RULE_SETUP
7634 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);
7635         YY_BREAK
7636 case 305:
7637 /* rule 305 can match eol */
7638 YY_RULE_SETUP
7639 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);
7640         YY_BREAK
7641 case 306:
7642 /* rule 306 can match eol */
7643 YY_RULE_SETUP
7644 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);
7645         YY_BREAK
7646 case 307:
7647 /* rule 307 can match eol */
7648 YY_RULE_SETUP
7649 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);
7650         YY_BREAK
7651 case 308:
7652 /* rule 308 can match eol */
7653 YY_RULE_SETUP
7654 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);
7655         YY_BREAK
7656 case 309:
7657 /* rule 309 can match eol */
7658 YY_RULE_SETUP
7659 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);
7660         YY_BREAK
7661 case 310:
7662 /* rule 310 can match eol */
7663 YY_RULE_SETUP
7664 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);
7665         YY_BREAK
7666 case 311:
7667 /* rule 311 can match eol */
7668 YY_RULE_SETUP
7669 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");} surfxml_cabinet_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_cabinet_power);
7670         YY_BREAK
7671 case 312:
7672 /* rule 312 can match eol */
7673 YY_RULE_SETUP
7674 if (surfxml_cabinet_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_cabinet>");}  surfxml_cabinet_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_cabinet_power);
7675         YY_BREAK
7676 case 313:
7677 /* rule 313 can match eol */
7678 YY_RULE_SETUP
7679 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);
7680         YY_BREAK
7681 case 314:
7682 /* rule 314 can match eol */
7683 YY_RULE_SETUP
7684 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);
7685         YY_BREAK
7686 case 315:
7687 /* rule 315 can match eol */
7688 YY_RULE_SETUP
7689 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);
7690         YY_BREAK
7691 case 316:
7692 /* rule 316 can match eol */
7693 YY_RULE_SETUP
7694 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);
7695         YY_BREAK
7696 case 317:
7697 YY_RULE_SETUP
7698 {
7699   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7700   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7701   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7702   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7703   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7704   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7705   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7706   LEAVE; STag_surfxml_cabinet();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cabinet);
7707  }
7708         YY_BREAK
7709 case 318:
7710 YY_RULE_SETUP
7711 {
7712   if (!AX_surfxml_cabinet_id) FAIL("Required attribute `id' not set for `cabinet' element.");
7713   if (!AX_surfxml_cabinet_prefix) FAIL("Required attribute `prefix' not set for `cabinet' element.");
7714   if (!AX_surfxml_cabinet_suffix) FAIL("Required attribute `suffix' not set for `cabinet' element.");
7715   if (!AX_surfxml_cabinet_radical) FAIL("Required attribute `radical' not set for `cabinet' element.");
7716   if (!AX_surfxml_cabinet_power) FAIL("Required attribute `power' not set for `cabinet' element.");
7717   if (!AX_surfxml_cabinet_bw) FAIL("Required attribute `bw' not set for `cabinet' element.");
7718   if (!AX_surfxml_cabinet_lat) FAIL("Required attribute `lat' not set for `cabinet' element.");
7719   LEAVE; STag_surfxml_cabinet(); surfxml_pcdata_ix = 0; ETag_surfxml_cabinet(); popbuffer(); /* attribute */
7720   switch (YY_START) {
7721    case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
7722    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7723    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7724    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7725   }
7726  }
7727         YY_BREAK
7728 case 319:
7729 YY_RULE_SETUP
7730 FAIL("Unexpected character `%c' in attribute list of cabinet element.", surf_parse_text[0]);
7731         YY_BREAK
7732 case 320:
7733 YY_RULE_SETUP
7734 FAIL("Bad attribute `%s' in `cabinet' element start tag.",surf_parse_text);
7735         YY_BREAK
7736 case YY_STATE_EOF(AL_surfxml_cabinet):
7737 FAIL("EOF in attribute list of `cabinet' element.");
7738         YY_BREAK
7739
7740 case 321:
7741 /* rule 321 can match eol */
7742 YY_RULE_SETUP
7743 {
7744   LEAVE;
7745   ETag_surfxml_cabinet();
7746   popbuffer(); /* attribute */
7747   switch (YY_START) {
7748    case S_surfxml_platform_3: case S_surfxml_platform_1: case S_surfxml_platform_5: case S_surfxml_platform_6: case S_surfxml_platform: SET(S_surfxml_platform_6); break;
7749    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
7750    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_1: case S_surfxml_AS_6: SET(S_surfxml_AS_6); break;
7751    case S_surfxml_include_1: case S_surfxml_include: case S_surfxml_include_2: SET(S_surfxml_include_2); break;
7752   }
7753  }
7754         YY_BREAK
7755 case 322:
7756 /* rule 322 can match eol */
7757 YY_RULE_SETUP
7758 FAIL("Unexpected end-tag `%s': `</cabinet>' expected.",surf_parse_text);
7759         YY_BREAK
7760 case 323:
7761 YY_RULE_SETUP
7762 FAIL("Unexpected character `%c': `</cabinet>' expected.",surf_parse_text[0]);
7763         YY_BREAK
7764 case YY_STATE_EOF(E_surfxml_cabinet):
7765 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</cabinet>' expected.");
7766         YY_BREAK
7767
7768 case 324:
7769 /* rule 324 can match eol */
7770 YY_RULE_SETUP
7771 FAIL("Starting tag <peer> is not allowed here.");
7772         YY_BREAK
7773 case 325:
7774 /* rule 325 can match eol */
7775 YY_RULE_SETUP
7776 {
7777   AX_surfxml_peer_id = 0;
7778   surfxml_peer_id_isset = 0;
7779   AX_surfxml_peer_power = 0;
7780   surfxml_peer_power_isset = 0;
7781   AX_surfxml_peer_bw___in = 0;
7782   surfxml_peer_bw___in_isset = 0;
7783   AX_surfxml_peer_bw___out = 0;
7784   surfxml_peer_bw___out_isset = 0;
7785   AX_surfxml_peer_lat = 0;
7786   surfxml_peer_lat_isset = 0;
7787   AX_surfxml_peer_coordinates = 0;
7788   surfxml_peer_coordinates_isset = 0;
7789   AX_surfxml_peer_availability___file = 0;
7790   surfxml_peer_availability___file_isset = 0;
7791   AX_surfxml_peer_state___file = 0;
7792   surfxml_peer_state___file_isset = 0;
7793   ENTER(AL_surfxml_peer); pushbuffer(0);
7794   }
7795         YY_BREAK
7796
7797 case 326:
7798 /* rule 326 can match eol */
7799 YY_RULE_SETUP
7800 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);
7801         YY_BREAK
7802 case 327:
7803 /* rule 327 can match eol */
7804 YY_RULE_SETUP
7805 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);
7806         YY_BREAK
7807 case 328:
7808 /* rule 328 can match eol */
7809 YY_RULE_SETUP
7810 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");} surfxml_peer_power_isset = 1; ENTER(VALUE1); BUFFERSET(AX_surfxml_peer_power);
7811         YY_BREAK
7812 case 329:
7813 /* rule 329 can match eol */
7814 YY_RULE_SETUP
7815 if (surfxml_peer_power_isset != 0) {FAIL("Multiple definition of attribute power in <surfxml_peer>");}  surfxml_peer_power_isset = 1; ENTER(VALUE2); BUFFERSET(AX_surfxml_peer_power);
7816         YY_BREAK
7817 case 330:
7818 /* rule 330 can match eol */
7819 YY_RULE_SETUP
7820 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);
7821         YY_BREAK
7822 case 331:
7823 /* rule 331 can match eol */
7824 YY_RULE_SETUP
7825 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);
7826         YY_BREAK
7827 case 332:
7828 /* rule 332 can match eol */
7829 YY_RULE_SETUP
7830 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);
7831         YY_BREAK
7832 case 333:
7833 /* rule 333 can match eol */
7834 YY_RULE_SETUP
7835 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);
7836         YY_BREAK
7837 case 334:
7838 /* rule 334 can match eol */
7839 YY_RULE_SETUP
7840 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);
7841         YY_BREAK
7842 case 335:
7843 /* rule 335 can match eol */
7844 YY_RULE_SETUP
7845 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);
7846         YY_BREAK
7847 case 336:
7848 /* rule 336 can match eol */
7849 YY_RULE_SETUP
7850 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);
7851         YY_BREAK
7852 case 337:
7853 /* rule 337 can match eol */
7854 YY_RULE_SETUP
7855 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);
7856         YY_BREAK
7857 case 338:
7858 /* rule 338 can match eol */
7859 YY_RULE_SETUP
7860 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);
7861         YY_BREAK
7862 case 339:
7863 /* rule 339 can match eol */
7864 YY_RULE_SETUP
7865 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);
7866         YY_BREAK
7867 case 340:
7868 /* rule 340 can match eol */
7869 YY_RULE_SETUP
7870 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);
7871         YY_BREAK
7872 case 341:
7873 /* rule 341 can match eol */
7874 YY_RULE_SETUP
7875 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);
7876         YY_BREAK
7877 case 342:
7878 YY_RULE_SETUP
7879 {
7880   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7881   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7882   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7883   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7884   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7885   LEAVE; STag_surfxml_peer();surfxml_pcdata_ix = 0; ENTER(E_surfxml_peer);
7886  }
7887         YY_BREAK
7888 case 343:
7889 YY_RULE_SETUP
7890 {
7891   if (!AX_surfxml_peer_id) FAIL("Required attribute `id' not set for `peer' element.");
7892   if (!AX_surfxml_peer_power) FAIL("Required attribute `power' not set for `peer' element.");
7893   if (!AX_surfxml_peer_bw___in) FAIL("Required attribute `bw_in' not set for `peer' element.");
7894   if (!AX_surfxml_peer_bw___out) FAIL("Required attribute `bw_out' not set for `peer' element.");
7895   if (!AX_surfxml_peer_lat) FAIL("Required attribute `lat' not set for `peer' element.");
7896   LEAVE; STag_surfxml_peer(); surfxml_pcdata_ix = 0; ETag_surfxml_peer(); popbuffer(); /* attribute */
7897   switch (YY_START) {
7898    case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7899    case S_surfxml_include_2: case S_surfxml_include_1: case S_surfxml_include: SET(S_surfxml_include_2); break;
7900    case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7901   }
7902  }
7903         YY_BREAK
7904 case 344:
7905 YY_RULE_SETUP
7906 FAIL("Unexpected character `%c' in attribute list of peer element.", surf_parse_text[0]);
7907         YY_BREAK
7908 case 345:
7909 YY_RULE_SETUP
7910 FAIL("Bad attribute `%s' in `peer' element start tag.",surf_parse_text);
7911         YY_BREAK
7912 case YY_STATE_EOF(AL_surfxml_peer):
7913 FAIL("EOF in attribute list of `peer' element.");
7914         YY_BREAK
7915
7916 case 346:
7917 /* rule 346 can match eol */
7918 YY_RULE_SETUP
7919 {
7920   LEAVE;
7921   ETag_surfxml_peer();
7922   popbuffer(); /* attribute */
7923   switch (YY_START) {
7924    case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: case S_surfxml_AS: case S_surfxml_AS_3: SET(S_surfxml_AS_6); break;
7925    case S_surfxml_include_2: case S_surfxml_include_1: case S_surfxml_include: SET(S_surfxml_include_2); break;
7926    case S_surfxml_platform_1: case S_surfxml_platform_6: case S_surfxml_platform_5: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_6); break;
7927   }
7928  }
7929         YY_BREAK
7930 case 347:
7931 /* rule 347 can match eol */
7932 YY_RULE_SETUP
7933 FAIL("Unexpected end-tag `%s': `</peer>' expected.",surf_parse_text);
7934         YY_BREAK
7935 case 348:
7936 YY_RULE_SETUP
7937 FAIL("Unexpected character `%c': `</peer>' expected.",surf_parse_text[0]);
7938         YY_BREAK
7939 case YY_STATE_EOF(E_surfxml_peer):
7940 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</peer>' expected.");
7941         YY_BREAK
7942
7943 case 349:
7944 /* rule 349 can match eol */
7945 YY_RULE_SETUP
7946 FAIL("Starting tag <router> is not allowed here.");
7947         YY_BREAK
7948 case 350:
7949 /* rule 350 can match eol */
7950 YY_RULE_SETUP
7951 {
7952   AX_surfxml_router_id = 0;
7953   surfxml_router_id_isset = 0;
7954   AX_surfxml_router_coordinates = 0;
7955   surfxml_router_coordinates_isset = 0;
7956   ENTER(AL_surfxml_router); pushbuffer(0);
7957   }
7958         YY_BREAK
7959
7960 case 351:
7961 /* rule 351 can match eol */
7962 YY_RULE_SETUP
7963 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);
7964         YY_BREAK
7965 case 352:
7966 /* rule 352 can match eol */
7967 YY_RULE_SETUP
7968 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);
7969         YY_BREAK
7970 case 353:
7971 /* rule 353 can match eol */
7972 YY_RULE_SETUP
7973 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);
7974         YY_BREAK
7975 case 354:
7976 /* rule 354 can match eol */
7977 YY_RULE_SETUP
7978 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);
7979         YY_BREAK
7980 case 355:
7981 YY_RULE_SETUP
7982 {
7983   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7984   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
7985  }
7986         YY_BREAK
7987 case 356:
7988 YY_RULE_SETUP
7989 {
7990   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
7991   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
7992   switch (YY_START) {
7993    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
7994   }
7995  }
7996         YY_BREAK
7997 case 357:
7998 YY_RULE_SETUP
7999 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
8000         YY_BREAK
8001 case 358:
8002 YY_RULE_SETUP
8003 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
8004         YY_BREAK
8005 case YY_STATE_EOF(AL_surfxml_router):
8006 FAIL("EOF in attribute list of `router' element.");
8007         YY_BREAK
8008
8009 case 359:
8010 /* rule 359 can match eol */
8011 YY_RULE_SETUP
8012 {
8013   LEAVE;
8014   ETag_surfxml_router();
8015   popbuffer(); /* attribute */
8016   switch (YY_START) {
8017    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_3: case S_surfxml_AS_13: case S_surfxml_AS: SET(S_surfxml_AS_14); break;
8018   }
8019  }
8020         YY_BREAK
8021 case 360:
8022 /* rule 360 can match eol */
8023 YY_RULE_SETUP
8024 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
8025         YY_BREAK
8026 case 361:
8027 YY_RULE_SETUP
8028 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
8029         YY_BREAK
8030 case YY_STATE_EOF(E_surfxml_router):
8031 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</router>' expected.");
8032         YY_BREAK
8033
8034 case 362:
8035 /* rule 362 can match eol */
8036 YY_RULE_SETUP
8037 FAIL("Starting tag <backbone> is not allowed here.");
8038         YY_BREAK
8039 case 363:
8040 /* rule 363 can match eol */
8041 YY_RULE_SETUP
8042 {
8043   AX_surfxml_backbone_id = 0;
8044   surfxml_backbone_id_isset = 0;
8045   AX_surfxml_backbone_bandwidth = 0;
8046   surfxml_backbone_bandwidth_isset = 0;
8047   AX_surfxml_backbone_latency = 0;
8048   surfxml_backbone_latency_isset = 0;
8049   ENTER(AL_surfxml_backbone); pushbuffer(0);
8050   }
8051         YY_BREAK
8052
8053 case 364:
8054 /* rule 364 can match eol */
8055 YY_RULE_SETUP
8056 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);
8057         YY_BREAK
8058 case 365:
8059 /* rule 365 can match eol */
8060 YY_RULE_SETUP
8061 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);
8062         YY_BREAK
8063 case 366:
8064 /* rule 366 can match eol */
8065 YY_RULE_SETUP
8066 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);
8067         YY_BREAK
8068 case 367:
8069 /* rule 367 can match eol */
8070 YY_RULE_SETUP
8071 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);
8072         YY_BREAK
8073 case 368:
8074 /* rule 368 can match eol */
8075 YY_RULE_SETUP
8076 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);
8077         YY_BREAK
8078 case 369:
8079 /* rule 369 can match eol */
8080 YY_RULE_SETUP
8081 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);
8082         YY_BREAK
8083 case 370:
8084 YY_RULE_SETUP
8085 {
8086   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8087   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8088   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8089   LEAVE; STag_surfxml_backbone();surfxml_pcdata_ix = 0; ENTER(E_surfxml_backbone);
8090  }
8091         YY_BREAK
8092 case 371:
8093 YY_RULE_SETUP
8094 {
8095   if (!AX_surfxml_backbone_id) FAIL("Required attribute `id' not set for `backbone' element.");
8096   if (!AX_surfxml_backbone_bandwidth) FAIL("Required attribute `bandwidth' not set for `backbone' element.");
8097   if (!AX_surfxml_backbone_latency) FAIL("Required attribute `latency' not set for `backbone' element.");
8098   LEAVE; STag_surfxml_backbone(); surfxml_pcdata_ix = 0; ETag_surfxml_backbone(); popbuffer(); /* attribute */
8099   switch (YY_START) {
8100    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
8101    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8102   }
8103  }
8104         YY_BREAK
8105 case 372:
8106 YY_RULE_SETUP
8107 FAIL("Unexpected character `%c' in attribute list of backbone element.", surf_parse_text[0]);
8108         YY_BREAK
8109 case 373:
8110 YY_RULE_SETUP
8111 FAIL("Bad attribute `%s' in `backbone' element start tag.",surf_parse_text);
8112         YY_BREAK
8113 case YY_STATE_EOF(AL_surfxml_backbone):
8114 FAIL("EOF in attribute list of `backbone' element.");
8115         YY_BREAK
8116
8117 case 374:
8118 /* rule 374 can match eol */
8119 YY_RULE_SETUP
8120 {
8121   LEAVE;
8122   ETag_surfxml_backbone();
8123   popbuffer(); /* attribute */
8124   switch (YY_START) {
8125    case S_surfxml_AS_3: case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_5: SET(S_surfxml_AS_6); break;
8126    case S_surfxml_AS_13: case S_surfxml_AS: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8127   }
8128  }
8129         YY_BREAK
8130 case 375:
8131 /* rule 375 can match eol */
8132 YY_RULE_SETUP
8133 FAIL("Unexpected end-tag `%s': `</backbone>' expected.",surf_parse_text);
8134         YY_BREAK
8135 case 376:
8136 YY_RULE_SETUP
8137 FAIL("Unexpected character `%c': `</backbone>' expected.",surf_parse_text[0]);
8138         YY_BREAK
8139 case YY_STATE_EOF(E_surfxml_backbone):
8140 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</backbone>' expected.");
8141         YY_BREAK
8142
8143 case 377:
8144 /* rule 377 can match eol */
8145 YY_RULE_SETUP
8146 FAIL("Starting tag <link> is not allowed here.");
8147         YY_BREAK
8148 case 378:
8149 /* rule 378 can match eol */
8150 YY_RULE_SETUP
8151 {
8152   AX_surfxml_link_id = 0;
8153   surfxml_link_id_isset = 0;
8154   AX_surfxml_link_bandwidth = 0;
8155   surfxml_link_bandwidth_isset = 0;
8156   AX_surfxml_link_bandwidth___file = 0;
8157   surfxml_link_bandwidth___file_isset = 0;
8158   AX_surfxml_link_latency = 46;
8159   surfxml_link_latency_isset = 0;
8160   AX_surfxml_link_latency___file = 0;
8161   surfxml_link_latency___file_isset = 0;
8162   AX_surfxml_link_state = A_surfxml_link_state_ON;
8163   surfxml_link_state_isset = 0;
8164   AX_surfxml_link_state___file = 0;
8165   surfxml_link_state___file_isset = 0;
8166   AX_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8167   surfxml_link_sharing___policy_isset = 0;
8168   ENTER(AL_surfxml_link); pushbuffer(0);
8169   }
8170         YY_BREAK
8171
8172 case 379:
8173 /* rule 379 can match eol */
8174 YY_RULE_SETUP
8175 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);
8176         YY_BREAK
8177 case 380:
8178 /* rule 380 can match eol */
8179 YY_RULE_SETUP
8180 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);
8181         YY_BREAK
8182 case 381:
8183 /* rule 381 can match eol */
8184 YY_RULE_SETUP
8185 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);
8186         YY_BREAK
8187 case 382:
8188 /* rule 382 can match eol */
8189 YY_RULE_SETUP
8190 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);
8191         YY_BREAK
8192 case 383:
8193 /* rule 383 can match eol */
8194 YY_RULE_SETUP
8195 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);
8196         YY_BREAK
8197 case 384:
8198 /* rule 384 can match eol */
8199 YY_RULE_SETUP
8200 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);
8201         YY_BREAK
8202 case 385:
8203 /* rule 385 can match eol */
8204 YY_RULE_SETUP
8205 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);
8206         YY_BREAK
8207 case 386:
8208 /* rule 386 can match eol */
8209 YY_RULE_SETUP
8210 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);
8211         YY_BREAK
8212 case 387:
8213 /* rule 387 can match eol */
8214 YY_RULE_SETUP
8215 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);
8216         YY_BREAK
8217 case 388:
8218 /* rule 388 can match eol */
8219 YY_RULE_SETUP
8220 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);
8221         YY_BREAK
8222 case 389:
8223 /* rule 389 can match eol */
8224 case 390:
8225 /* rule 390 can match eol */
8226 YY_RULE_SETUP
8227 A_surfxml_link_state = A_surfxml_link_state_ON;
8228         YY_BREAK
8229 case 391:
8230 /* rule 391 can match eol */
8231 case 392:
8232 /* rule 392 can match eol */
8233 YY_RULE_SETUP
8234 A_surfxml_link_state = A_surfxml_link_state_OFF;
8235         YY_BREAK
8236 case 393:
8237 /* rule 393 can match eol */
8238 YY_RULE_SETUP
8239 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);
8240         YY_BREAK
8241 case 394:
8242 /* rule 394 can match eol */
8243 YY_RULE_SETUP
8244 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);
8245         YY_BREAK
8246 case 395:
8247 /* rule 395 can match eol */
8248 case 396:
8249 /* rule 396 can match eol */
8250 YY_RULE_SETUP
8251 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_SHARED;
8252         YY_BREAK
8253 case 397:
8254 /* rule 397 can match eol */
8255 case 398:
8256 /* rule 398 can match eol */
8257 YY_RULE_SETUP
8258 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FATPIPE;
8259         YY_BREAK
8260 case 399:
8261 /* rule 399 can match eol */
8262 case 400:
8263 /* rule 400 can match eol */
8264 YY_RULE_SETUP
8265 A_surfxml_link_sharing___policy = A_surfxml_link_sharing___policy_FULLDUPLEX;
8266         YY_BREAK
8267 case 401:
8268 YY_RULE_SETUP
8269 {
8270   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8271   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8272   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
8273  }
8274         YY_BREAK
8275 case 402:
8276 YY_RULE_SETUP
8277 {
8278   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
8279   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
8280   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
8281   switch (YY_START) {
8282    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8283    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
8284   }
8285  }
8286         YY_BREAK
8287 case 403:
8288 YY_RULE_SETUP
8289 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
8290         YY_BREAK
8291 case 404:
8292 YY_RULE_SETUP
8293 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
8294         YY_BREAK
8295 case YY_STATE_EOF(AL_surfxml_link):
8296 FAIL("EOF in attribute list of `link' element.");
8297         YY_BREAK
8298
8299 case 405:
8300 /* rule 405 can match eol */
8301 YY_RULE_SETUP
8302 {
8303   LEAVE;
8304   ETag_surfxml_link();
8305   popbuffer(); /* attribute */
8306   switch (YY_START) {
8307    case S_surfxml_AS: case S_surfxml_AS_13: case S_surfxml_AS_14: SET(S_surfxml_AS_14); break;
8308    case S_surfxml_AS_3: case S_surfxml_AS_5: case S_surfxml_AS_6: case S_surfxml_AS_1: SET(S_surfxml_AS_6); break;
8309   }
8310  }
8311         YY_BREAK
8312 case 406:
8313 /* rule 406 can match eol */
8314 YY_RULE_SETUP
8315 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
8316         YY_BREAK
8317 case 407:
8318 YY_RULE_SETUP
8319 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
8320         YY_BREAK
8321 case YY_STATE_EOF(S_surfxml_link):
8322 case YY_STATE_EOF(S_surfxml_link_2):
8323 case YY_STATE_EOF(E_surfxml_link):
8324 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link>' expected.");
8325         YY_BREAK
8326
8327 case 408:
8328 /* rule 408 can match eol */
8329 YY_RULE_SETUP
8330 FAIL("Starting tag <route> is not allowed here.");
8331         YY_BREAK
8332 case 409:
8333 /* rule 409 can match eol */
8334 YY_RULE_SETUP
8335 {
8336   AX_surfxml_route_src = 0;
8337   surfxml_route_src_isset = 0;
8338   AX_surfxml_route_dst = 0;
8339   surfxml_route_dst_isset = 0;
8340   AX_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8341   surfxml_route_symmetrical_isset = 0;
8342   ENTER(AL_surfxml_route); pushbuffer(0);
8343   }
8344         YY_BREAK
8345
8346 case 410:
8347 /* rule 410 can match eol */
8348 YY_RULE_SETUP
8349 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);
8350         YY_BREAK
8351 case 411:
8352 /* rule 411 can match eol */
8353 YY_RULE_SETUP
8354 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);
8355         YY_BREAK
8356 case 412:
8357 /* rule 412 can match eol */
8358 YY_RULE_SETUP
8359 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);
8360         YY_BREAK
8361 case 413:
8362 /* rule 413 can match eol */
8363 YY_RULE_SETUP
8364 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);
8365         YY_BREAK
8366 case 414:
8367 /* rule 414 can match eol */
8368 case 415:
8369 /* rule 415 can match eol */
8370 YY_RULE_SETUP
8371 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_YES;
8372         YY_BREAK
8373 case 416:
8374 /* rule 416 can match eol */
8375 case 417:
8376 /* rule 417 can match eol */
8377 YY_RULE_SETUP
8378 A_surfxml_route_symmetrical = A_surfxml_route_symmetrical_NO;
8379         YY_BREAK
8380 case 418:
8381 YY_RULE_SETUP
8382 {
8383   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8384   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8385   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
8386  }
8387         YY_BREAK
8388 case 419:
8389 YY_RULE_SETUP
8390 {
8391   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
8392   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
8393   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
8394   switch (YY_START) {
8395    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
8396   }
8397  }
8398         YY_BREAK
8399 case 420:
8400 YY_RULE_SETUP
8401 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
8402         YY_BREAK
8403 case 421:
8404 YY_RULE_SETUP
8405 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
8406         YY_BREAK
8407 case YY_STATE_EOF(AL_surfxml_route):
8408 FAIL("EOF in attribute list of `route' element.");
8409         YY_BREAK
8410
8411 case 422:
8412 /* rule 422 can match eol */
8413 YY_RULE_SETUP
8414 {
8415   LEAVE;
8416   ETag_surfxml_route();
8417   popbuffer(); /* attribute */
8418   switch (YY_START) {
8419    case S_surfxml_AS_1: case S_surfxml_AS_14: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS: case S_surfxml_AS_3: case S_surfxml_AS_15: SET(S_surfxml_AS_16); break;
8420   }
8421  }
8422         YY_BREAK
8423 case 423:
8424 /* rule 423 can match eol */
8425 YY_RULE_SETUP
8426 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
8427         YY_BREAK
8428 case 424:
8429 YY_RULE_SETUP
8430 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
8431         YY_BREAK
8432 case YY_STATE_EOF(S_surfxml_route_2):
8433 case YY_STATE_EOF(E_surfxml_route):
8434 case YY_STATE_EOF(S_surfxml_route):
8435 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</route>' expected.");
8436         YY_BREAK
8437
8438 case 425:
8439 /* rule 425 can match eol */
8440 YY_RULE_SETUP
8441 FAIL("Starting tag <ASroute> is not allowed here.");
8442         YY_BREAK
8443 case 426:
8444 /* rule 426 can match eol */
8445 YY_RULE_SETUP
8446 {
8447   AX_surfxml_ASroute_src = 0;
8448   surfxml_ASroute_src_isset = 0;
8449   AX_surfxml_ASroute_dst = 0;
8450   surfxml_ASroute_dst_isset = 0;
8451   AX_surfxml_ASroute_gw___src = 0;
8452   surfxml_ASroute_gw___src_isset = 0;
8453   AX_surfxml_ASroute_gw___dst = 0;
8454   surfxml_ASroute_gw___dst_isset = 0;
8455   AX_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8456   surfxml_ASroute_symmetrical_isset = 0;
8457   ENTER(AL_surfxml_ASroute); pushbuffer(0);
8458   }
8459         YY_BREAK
8460
8461 case 427:
8462 /* rule 427 can match eol */
8463 YY_RULE_SETUP
8464 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);
8465         YY_BREAK
8466 case 428:
8467 /* rule 428 can match eol */
8468 YY_RULE_SETUP
8469 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);
8470         YY_BREAK
8471 case 429:
8472 /* rule 429 can match eol */
8473 YY_RULE_SETUP
8474 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);
8475         YY_BREAK
8476 case 430:
8477 /* rule 430 can match eol */
8478 YY_RULE_SETUP
8479 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);
8480         YY_BREAK
8481 case 431:
8482 /* rule 431 can match eol */
8483 YY_RULE_SETUP
8484 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);
8485         YY_BREAK
8486 case 432:
8487 /* rule 432 can match eol */
8488 YY_RULE_SETUP
8489 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);
8490         YY_BREAK
8491 case 433:
8492 /* rule 433 can match eol */
8493 YY_RULE_SETUP
8494 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);
8495         YY_BREAK
8496 case 434:
8497 /* rule 434 can match eol */
8498 YY_RULE_SETUP
8499 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);
8500         YY_BREAK
8501 case 435:
8502 /* rule 435 can match eol */
8503 case 436:
8504 /* rule 436 can match eol */
8505 YY_RULE_SETUP
8506 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_YES;
8507         YY_BREAK
8508 case 437:
8509 /* rule 437 can match eol */
8510 case 438:
8511 /* rule 438 can match eol */
8512 YY_RULE_SETUP
8513 A_surfxml_ASroute_symmetrical = A_surfxml_ASroute_symmetrical_NO;
8514         YY_BREAK
8515 case 439:
8516 YY_RULE_SETUP
8517 {
8518   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8519   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8520   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8521   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8522   LEAVE; STag_surfxml_ASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_ASroute);
8523  }
8524         YY_BREAK
8525 case 440:
8526 YY_RULE_SETUP
8527 {
8528   if (!AX_surfxml_ASroute_src) FAIL("Required attribute `src' not set for `ASroute' element.");
8529   if (!AX_surfxml_ASroute_dst) FAIL("Required attribute `dst' not set for `ASroute' element.");
8530   if (!AX_surfxml_ASroute_gw___src) FAIL("Required attribute `gw_src' not set for `ASroute' element.");
8531   if (!AX_surfxml_ASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `ASroute' element.");
8532   LEAVE; STag_surfxml_ASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_ASroute(); popbuffer(); /* attribute */
8533   switch (YY_START) {
8534    case S_surfxml_AS_4: case S_surfxml_AS: case S_surfxml_AS_9: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
8535   }
8536  }
8537         YY_BREAK
8538 case 441:
8539 YY_RULE_SETUP
8540 FAIL("Unexpected character `%c' in attribute list of ASroute element.", surf_parse_text[0]);
8541         YY_BREAK
8542 case 442:
8543 YY_RULE_SETUP
8544 FAIL("Bad attribute `%s' in `ASroute' element start tag.",surf_parse_text);
8545         YY_BREAK
8546 case YY_STATE_EOF(AL_surfxml_ASroute):
8547 FAIL("EOF in attribute list of `ASroute' element.");
8548         YY_BREAK
8549
8550 case 443:
8551 /* rule 443 can match eol */
8552 YY_RULE_SETUP
8553 {
8554   LEAVE;
8555   ETag_surfxml_ASroute();
8556   popbuffer(); /* attribute */
8557   switch (YY_START) {
8558    case S_surfxml_AS_4: case S_surfxml_AS: case S_surfxml_AS_9: case S_surfxml_AS_3: case S_surfxml_AS_1: case S_surfxml_AS_6: case S_surfxml_AS_8: SET(S_surfxml_AS_9); break;
8559   }
8560  }
8561         YY_BREAK
8562 case 444:
8563 /* rule 444 can match eol */
8564 YY_RULE_SETUP
8565 FAIL("Unexpected end-tag `%s': `</ASroute>' expected.",surf_parse_text);
8566         YY_BREAK
8567 case 445:
8568 YY_RULE_SETUP
8569 FAIL("Unexpected character `%c': `</ASroute>' expected.",surf_parse_text[0]);
8570         YY_BREAK
8571 case YY_STATE_EOF(E_surfxml_ASroute):
8572 case YY_STATE_EOF(S_surfxml_ASroute):
8573 case YY_STATE_EOF(S_surfxml_ASroute_2):
8574 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</ASroute>' expected.");
8575         YY_BREAK
8576
8577 case 446:
8578 /* rule 446 can match eol */
8579 YY_RULE_SETUP
8580 FAIL("Starting tag <link_ctn> is not allowed here.");
8581         YY_BREAK
8582 case 447:
8583 /* rule 447 can match eol */
8584 YY_RULE_SETUP
8585 {
8586   AX_surfxml_link___ctn_id = 0;
8587   surfxml_link___ctn_id_isset = 0;
8588   AX_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8589   surfxml_link___ctn_direction_isset = 0;
8590   ENTER(AL_surfxml_link___ctn); pushbuffer(0);
8591   }
8592         YY_BREAK
8593
8594 case 448:
8595 /* rule 448 can match eol */
8596 YY_RULE_SETUP
8597 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);
8598         YY_BREAK
8599 case 449:
8600 /* rule 449 can match eol */
8601 YY_RULE_SETUP
8602 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);
8603         YY_BREAK
8604 case 450:
8605 /* rule 450 can match eol */
8606 case 451:
8607 /* rule 451 can match eol */
8608 YY_RULE_SETUP
8609 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_UP;
8610         YY_BREAK
8611 case 452:
8612 /* rule 452 can match eol */
8613 case 453:
8614 /* rule 453 can match eol */
8615 YY_RULE_SETUP
8616 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_DOWN;
8617         YY_BREAK
8618 case 454:
8619 /* rule 454 can match eol */
8620 case 455:
8621 /* rule 455 can match eol */
8622 YY_RULE_SETUP
8623 A_surfxml_link___ctn_direction = A_surfxml_link___ctn_direction_NONE;
8624         YY_BREAK
8625 case 456:
8626 YY_RULE_SETUP
8627 {
8628   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8629   LEAVE; STag_surfxml_link___ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link___ctn);
8630  }
8631         YY_BREAK
8632 case 457:
8633 YY_RULE_SETUP
8634 {
8635   if (!AX_surfxml_link___ctn_id) FAIL("Required attribute `id' not set for `link_ctn' element.");
8636   LEAVE; STag_surfxml_link___ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link___ctn(); popbuffer(); /* attribute */
8637   switch (YY_START) {
8638    case S_surfxml_ASroute_2: case S_surfxml_ASroute: case S_surfxml_ASroute_1: SET(S_surfxml_ASroute_2); break;
8639    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8640    case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8641    case S_surfxml_route_1: case S_surfxml_route_2: case S_surfxml_route: SET(S_surfxml_route_2); break;
8642   }
8643  }
8644         YY_BREAK
8645 case 458:
8646 YY_RULE_SETUP
8647 FAIL("Unexpected character `%c' in attribute list of link_ctn element.", surf_parse_text[0]);
8648         YY_BREAK
8649 case 459:
8650 YY_RULE_SETUP
8651 FAIL("Bad attribute `%s' in `link_ctn' element start tag.",surf_parse_text);
8652         YY_BREAK
8653 case YY_STATE_EOF(AL_surfxml_link___ctn):
8654 FAIL("EOF in attribute list of `link_ctn' element.");
8655         YY_BREAK
8656
8657 case 460:
8658 /* rule 460 can match eol */
8659 YY_RULE_SETUP
8660 {
8661   LEAVE;
8662   ETag_surfxml_link___ctn();
8663   popbuffer(); /* attribute */
8664   switch (YY_START) {
8665    case S_surfxml_ASroute_2: case S_surfxml_ASroute: case S_surfxml_ASroute_1: SET(S_surfxml_ASroute_2); break;
8666    case S_surfxml_bypassASroute: case S_surfxml_bypassASroute_1: case S_surfxml_bypassASroute_2: SET(S_surfxml_bypassASroute_2); break;
8667    case S_surfxml_bypassRoute_2: case S_surfxml_bypassRoute: case S_surfxml_bypassRoute_1: SET(S_surfxml_bypassRoute_2); break;
8668    case S_surfxml_route_1: case S_surfxml_route_2: case S_surfxml_route: SET(S_surfxml_route_2); break;
8669   }
8670  }
8671         YY_BREAK
8672 case 461:
8673 /* rule 461 can match eol */
8674 YY_RULE_SETUP
8675 FAIL("Unexpected end-tag `%s': `</link_ctn>' expected.",surf_parse_text);
8676         YY_BREAK
8677 case 462:
8678 YY_RULE_SETUP
8679 FAIL("Unexpected character `%c': `</link_ctn>' expected.",surf_parse_text[0]);
8680         YY_BREAK
8681 case YY_STATE_EOF(E_surfxml_link___ctn):
8682 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</link_ctn>' expected.");
8683         YY_BREAK
8684
8685 case 463:
8686 /* rule 463 can match eol */
8687 YY_RULE_SETUP
8688 FAIL("Starting tag <bypassRoute> is not allowed here.");
8689         YY_BREAK
8690 case 464:
8691 /* rule 464 can match eol */
8692 YY_RULE_SETUP
8693 {
8694   AX_surfxml_bypassRoute_src = 0;
8695   surfxml_bypassRoute_src_isset = 0;
8696   AX_surfxml_bypassRoute_dst = 0;
8697   surfxml_bypassRoute_dst_isset = 0;
8698   ENTER(AL_surfxml_bypassRoute); pushbuffer(0);
8699   }
8700         YY_BREAK
8701
8702 case 465:
8703 /* rule 465 can match eol */
8704 YY_RULE_SETUP
8705 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);
8706         YY_BREAK
8707 case 466:
8708 /* rule 466 can match eol */
8709 YY_RULE_SETUP
8710 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);
8711         YY_BREAK
8712 case 467:
8713 /* rule 467 can match eol */
8714 YY_RULE_SETUP
8715 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);
8716         YY_BREAK
8717 case 468:
8718 /* rule 468 can match eol */
8719 YY_RULE_SETUP
8720 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);
8721         YY_BREAK
8722 case 469:
8723 YY_RULE_SETUP
8724 {
8725   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8726   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8727   LEAVE; STag_surfxml_bypassRoute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassRoute);
8728  }
8729         YY_BREAK
8730 case 470:
8731 YY_RULE_SETUP
8732 {
8733   if (!AX_surfxml_bypassRoute_src) FAIL("Required attribute `src' not set for `bypassRoute' element.");
8734   if (!AX_surfxml_bypassRoute_dst) FAIL("Required attribute `dst' not set for `bypassRoute' element.");
8735   LEAVE; STag_surfxml_bypassRoute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassRoute(); popbuffer(); /* attribute */
8736   switch (YY_START) {
8737    case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_16); break;
8738   }
8739  }
8740         YY_BREAK
8741 case 471:
8742 YY_RULE_SETUP
8743 FAIL("Unexpected character `%c' in attribute list of bypassRoute element.", surf_parse_text[0]);
8744         YY_BREAK
8745 case 472:
8746 YY_RULE_SETUP
8747 FAIL("Bad attribute `%s' in `bypassRoute' element start tag.",surf_parse_text);
8748         YY_BREAK
8749 case YY_STATE_EOF(AL_surfxml_bypassRoute):
8750 FAIL("EOF in attribute list of `bypassRoute' element.");
8751         YY_BREAK
8752
8753 case 473:
8754 /* rule 473 can match eol */
8755 YY_RULE_SETUP
8756 {
8757   LEAVE;
8758   ETag_surfxml_bypassRoute();
8759   popbuffer(); /* attribute */
8760   switch (YY_START) {
8761    case S_surfxml_AS_15: case S_surfxml_AS_3: case S_surfxml_AS: case S_surfxml_AS_12: case S_surfxml_AS_16: case S_surfxml_AS_1: case S_surfxml_AS_14: SET(S_surfxml_AS_16); break;
8762   }
8763  }
8764         YY_BREAK
8765 case 474:
8766 /* rule 474 can match eol */
8767 YY_RULE_SETUP
8768 FAIL("Unexpected end-tag `%s': `</bypassRoute>' expected.",surf_parse_text);
8769         YY_BREAK
8770 case 475:
8771 YY_RULE_SETUP
8772 FAIL("Unexpected character `%c': `</bypassRoute>' expected.",surf_parse_text[0]);
8773         YY_BREAK
8774 case YY_STATE_EOF(S_surfxml_bypassRoute_2):
8775 case YY_STATE_EOF(E_surfxml_bypassRoute):
8776 case YY_STATE_EOF(S_surfxml_bypassRoute):
8777 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassRoute>' expected.");
8778         YY_BREAK
8779
8780 case 476:
8781 /* rule 476 can match eol */
8782 YY_RULE_SETUP
8783 FAIL("Starting tag <bypassASroute> is not allowed here.");
8784         YY_BREAK
8785 case 477:
8786 /* rule 477 can match eol */
8787 YY_RULE_SETUP
8788 {
8789   AX_surfxml_bypassASroute_src = 0;
8790   surfxml_bypassASroute_src_isset = 0;
8791   AX_surfxml_bypassASroute_dst = 0;
8792   surfxml_bypassASroute_dst_isset = 0;
8793   AX_surfxml_bypassASroute_gw___src = 0;
8794   surfxml_bypassASroute_gw___src_isset = 0;
8795   AX_surfxml_bypassASroute_gw___dst = 0;
8796   surfxml_bypassASroute_gw___dst_isset = 0;
8797   ENTER(AL_surfxml_bypassASroute); pushbuffer(0);
8798   }
8799         YY_BREAK
8800
8801 case 478:
8802 /* rule 478 can match eol */
8803 YY_RULE_SETUP
8804 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);
8805         YY_BREAK
8806 case 479:
8807 /* rule 479 can match eol */
8808 YY_RULE_SETUP
8809 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);
8810         YY_BREAK
8811 case 480:
8812 /* rule 480 can match eol */
8813 YY_RULE_SETUP
8814 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);
8815         YY_BREAK
8816 case 481:
8817 /* rule 481 can match eol */
8818 YY_RULE_SETUP
8819 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);
8820         YY_BREAK
8821 case 482:
8822 /* rule 482 can match eol */
8823 YY_RULE_SETUP
8824 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);
8825         YY_BREAK
8826 case 483:
8827 /* rule 483 can match eol */
8828 YY_RULE_SETUP
8829 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);
8830         YY_BREAK
8831 case 484:
8832 /* rule 484 can match eol */
8833 YY_RULE_SETUP
8834 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);
8835         YY_BREAK
8836 case 485:
8837 /* rule 485 can match eol */
8838 YY_RULE_SETUP
8839 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);
8840         YY_BREAK
8841 case 486:
8842 YY_RULE_SETUP
8843 {
8844   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8845   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8846   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8847   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8848   LEAVE; STag_surfxml_bypassASroute();surfxml_pcdata_ix = 0; ENTER(S_surfxml_bypassASroute);
8849  }
8850         YY_BREAK
8851 case 487:
8852 YY_RULE_SETUP
8853 {
8854   if (!AX_surfxml_bypassASroute_src) FAIL("Required attribute `src' not set for `bypassASroute' element.");
8855   if (!AX_surfxml_bypassASroute_dst) FAIL("Required attribute `dst' not set for `bypassASroute' element.");
8856   if (!AX_surfxml_bypassASroute_gw___src) FAIL("Required attribute `gw_src' not set for `bypassASroute' element.");
8857   if (!AX_surfxml_bypassASroute_gw___dst) FAIL("Required attribute `gw_dst' not set for `bypassASroute' element.");
8858   LEAVE; STag_surfxml_bypassASroute(); surfxml_pcdata_ix = 0; ETag_surfxml_bypassASroute(); popbuffer(); /* attribute */
8859   switch (YY_START) {
8860    case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_8: case S_surfxml_AS_3: case S_surfxml_AS_9: case S_surfxml_AS_4: case S_surfxml_AS: SET(S_surfxml_AS_9); break;
8861   }
8862  }
8863         YY_BREAK
8864 case 488:
8865 YY_RULE_SETUP
8866 FAIL("Unexpected character `%c' in attribute list of bypassASroute element.", surf_parse_text[0]);
8867         YY_BREAK
8868 case 489:
8869 YY_RULE_SETUP
8870 FAIL("Bad attribute `%s' in `bypassASroute' element start tag.",surf_parse_text);
8871         YY_BREAK
8872 case YY_STATE_EOF(AL_surfxml_bypassASroute):
8873 FAIL("EOF in attribute list of `bypassASroute' element.");
8874         YY_BREAK
8875
8876 case 490:
8877 /* rule 490 can match eol */
8878 YY_RULE_SETUP
8879 {
8880   LEAVE;
8881   ETag_surfxml_bypassASroute();
8882   popbuffer(); /* attribute */
8883   switch (YY_START) {
8884    case S_surfxml_AS_6: case S_surfxml_AS_1: case S_surfxml_AS_8: case S_surfxml_AS_3: case S_surfxml_AS_9: case S_surfxml_AS_4: case S_surfxml_AS: SET(S_surfxml_AS_9); break;
8885   }
8886  }
8887         YY_BREAK
8888 case 491:
8889 /* rule 491 can match eol */
8890 YY_RULE_SETUP
8891 FAIL("Unexpected end-tag `%s': `</bypassASroute>' expected.",surf_parse_text);
8892         YY_BREAK
8893 case 492:
8894 YY_RULE_SETUP
8895 FAIL("Unexpected character `%c': `</bypassASroute>' expected.",surf_parse_text[0]);
8896         YY_BREAK
8897 case YY_STATE_EOF(S_surfxml_bypassASroute_2):
8898 case YY_STATE_EOF(S_surfxml_bypassASroute):
8899 case YY_STATE_EOF(E_surfxml_bypassASroute):
8900 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</bypassASroute>' expected.");
8901         YY_BREAK
8902
8903 case 493:
8904 /* rule 493 can match eol */
8905 YY_RULE_SETUP
8906 FAIL("Starting tag <process> is not allowed here.");
8907         YY_BREAK
8908 case 494:
8909 /* rule 494 can match eol */
8910 YY_RULE_SETUP
8911 {
8912   AX_surfxml_process_host = 0;
8913   surfxml_process_host_isset = 0;
8914   AX_surfxml_process_function = 0;
8915   surfxml_process_function_isset = 0;
8916   AX_surfxml_process_start___time = 50;
8917   surfxml_process_start___time_isset = 0;
8918   AX_surfxml_process_kill___time = 55;
8919   surfxml_process_kill___time_isset = 0;
8920   AX_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8921   surfxml_process_on___failure_isset = 0;
8922   ENTER(AL_surfxml_process); pushbuffer(0);
8923   }
8924         YY_BREAK
8925
8926 case 495:
8927 /* rule 495 can match eol */
8928 YY_RULE_SETUP
8929 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);
8930         YY_BREAK
8931 case 496:
8932 /* rule 496 can match eol */
8933 YY_RULE_SETUP
8934 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);
8935         YY_BREAK
8936 case 497:
8937 /* rule 497 can match eol */
8938 YY_RULE_SETUP
8939 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);
8940         YY_BREAK
8941 case 498:
8942 /* rule 498 can match eol */
8943 YY_RULE_SETUP
8944 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);
8945         YY_BREAK
8946 case 499:
8947 /* rule 499 can match eol */
8948 YY_RULE_SETUP
8949 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);
8950         YY_BREAK
8951 case 500:
8952 /* rule 500 can match eol */
8953 YY_RULE_SETUP
8954 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);
8955         YY_BREAK
8956 case 501:
8957 /* rule 501 can match eol */
8958 YY_RULE_SETUP
8959 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);
8960         YY_BREAK
8961 case 502:
8962 /* rule 502 can match eol */
8963 YY_RULE_SETUP
8964 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);
8965         YY_BREAK
8966 case 503:
8967 /* rule 503 can match eol */
8968 case 504:
8969 /* rule 504 can match eol */
8970 YY_RULE_SETUP
8971 A_surfxml_process_on___failure = A_surfxml_process_on___failure_DIE;
8972         YY_BREAK
8973 case 505:
8974 /* rule 505 can match eol */
8975 case 506:
8976 /* rule 506 can match eol */
8977 YY_RULE_SETUP
8978 A_surfxml_process_on___failure = A_surfxml_process_on___failure_RESTART;
8979         YY_BREAK
8980 case 507:
8981 YY_RULE_SETUP
8982 {
8983   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8984   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8985   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
8986  }
8987         YY_BREAK
8988 case 508:
8989 YY_RULE_SETUP
8990 {
8991   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
8992   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
8993   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
8994   switch (YY_START) {
8995    case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_7: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
8996   }
8997  }
8998         YY_BREAK
8999 case 509:
9000 YY_RULE_SETUP
9001 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
9002         YY_BREAK
9003 case 510:
9004 YY_RULE_SETUP
9005 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
9006         YY_BREAK
9007 case YY_STATE_EOF(AL_surfxml_process):
9008 FAIL("EOF in attribute list of `process' element.");
9009         YY_BREAK
9010
9011 case 511:
9012 /* rule 511 can match eol */
9013 YY_RULE_SETUP
9014 {
9015   LEAVE;
9016   ETag_surfxml_process();
9017   popbuffer(); /* attribute */
9018   switch (YY_START) {
9019    case S_surfxml_platform_6: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_7: case S_surfxml_platform_3: case S_surfxml_platform_4: case S_surfxml_platform_8: SET(S_surfxml_platform_8); break;
9020   }
9021  }
9022         YY_BREAK
9023 case 512:
9024 /* rule 512 can match eol */
9025 YY_RULE_SETUP
9026 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
9027         YY_BREAK
9028 case 513:
9029 YY_RULE_SETUP
9030 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
9031         YY_BREAK
9032 case YY_STATE_EOF(E_surfxml_process):
9033 case YY_STATE_EOF(S_surfxml_process_2):
9034 case YY_STATE_EOF(S_surfxml_process):
9035 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</process>' expected.");
9036         YY_BREAK
9037
9038 case 514:
9039 /* rule 514 can match eol */
9040 YY_RULE_SETUP
9041 FAIL("Starting tag <argument> is not allowed here.");
9042         YY_BREAK
9043 case 515:
9044 /* rule 515 can match eol */
9045 YY_RULE_SETUP
9046 {
9047   AX_surfxml_argument_value = 0;
9048   surfxml_argument_value_isset = 0;
9049   ENTER(AL_surfxml_argument); pushbuffer(0);
9050   }
9051         YY_BREAK
9052
9053 case 516:
9054 /* rule 516 can match eol */
9055 YY_RULE_SETUP
9056 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);
9057         YY_BREAK
9058 case 517:
9059 /* rule 517 can match eol */
9060 YY_RULE_SETUP
9061 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);
9062         YY_BREAK
9063 case 518:
9064 YY_RULE_SETUP
9065 {
9066   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9067   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
9068  }
9069         YY_BREAK
9070 case 519:
9071 YY_RULE_SETUP
9072 {
9073   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
9074   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
9075   switch (YY_START) {
9076    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9077   }
9078  }
9079         YY_BREAK
9080 case 520:
9081 YY_RULE_SETUP
9082 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
9083         YY_BREAK
9084 case 521:
9085 YY_RULE_SETUP
9086 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
9087         YY_BREAK
9088 case YY_STATE_EOF(AL_surfxml_argument):
9089 FAIL("EOF in attribute list of `argument' element.");
9090         YY_BREAK
9091
9092 case 522:
9093 /* rule 522 can match eol */
9094 YY_RULE_SETUP
9095 {
9096   LEAVE;
9097   ETag_surfxml_argument();
9098   popbuffer(); /* attribute */
9099   switch (YY_START) {
9100    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
9101   }
9102  }
9103         YY_BREAK
9104 case 523:
9105 /* rule 523 can match eol */
9106 YY_RULE_SETUP
9107 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
9108         YY_BREAK
9109 case 524:
9110 YY_RULE_SETUP
9111 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
9112         YY_BREAK
9113 case YY_STATE_EOF(E_surfxml_argument):
9114 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</argument>' expected.");
9115         YY_BREAK
9116
9117 case 525:
9118 /* rule 525 can match eol */
9119 YY_RULE_SETUP
9120 FAIL("Starting tag <config> is not allowed here.");
9121         YY_BREAK
9122 case 526:
9123 /* rule 526 can match eol */
9124 YY_RULE_SETUP
9125 {
9126   AX_surfxml_config_id = 0;
9127   surfxml_config_id_isset = 0;
9128   ENTER(AL_surfxml_config); pushbuffer(0);
9129   }
9130         YY_BREAK
9131
9132 case 527:
9133 /* rule 527 can match eol */
9134 YY_RULE_SETUP
9135 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);
9136         YY_BREAK
9137 case 528:
9138 /* rule 528 can match eol */
9139 YY_RULE_SETUP
9140 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);
9141         YY_BREAK
9142 case 529:
9143 YY_RULE_SETUP
9144 {
9145   LEAVE; STag_surfxml_config();surfxml_pcdata_ix = 0; ENTER(S_surfxml_config);
9146  }
9147         YY_BREAK
9148 case 530:
9149 YY_RULE_SETUP
9150 {
9151   LEAVE; STag_surfxml_config(); surfxml_pcdata_ix = 0; ETag_surfxml_config(); popbuffer(); /* attribute */
9152   switch (YY_START) {
9153    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
9154   }
9155  }
9156         YY_BREAK
9157 case 531:
9158 YY_RULE_SETUP
9159 FAIL("Unexpected character `%c' in attribute list of config element.", surf_parse_text[0]);
9160         YY_BREAK
9161 case 532:
9162 YY_RULE_SETUP
9163 FAIL("Bad attribute `%s' in `config' element start tag.",surf_parse_text);
9164         YY_BREAK
9165 case YY_STATE_EOF(AL_surfxml_config):
9166 FAIL("EOF in attribute list of `config' element.");
9167         YY_BREAK
9168
9169 case 533:
9170 /* rule 533 can match eol */
9171 YY_RULE_SETUP
9172 {
9173   LEAVE;
9174   ETag_surfxml_config();
9175   popbuffer(); /* attribute */
9176   switch (YY_START) {
9177    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
9178   }
9179  }
9180         YY_BREAK
9181 case 534:
9182 /* rule 534 can match eol */
9183 YY_RULE_SETUP
9184 FAIL("Unexpected end-tag `%s': `</config>' expected.",surf_parse_text);
9185         YY_BREAK
9186 case 535:
9187 YY_RULE_SETUP
9188 FAIL("Unexpected character `%c': `</config>' expected.",surf_parse_text[0]);
9189         YY_BREAK
9190 case YY_STATE_EOF(E_surfxml_config):
9191 case YY_STATE_EOF(S_surfxml_config):
9192 case YY_STATE_EOF(S_surfxml_config_2):
9193 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</config>' expected.");
9194         YY_BREAK
9195
9196 /* <!-- <!ATTLIST prop key CDATA #REQUIRED> -->
9197   * <!-- <!ATTLIST prop key CDATA #REQUIRED> -->  */
9198 case 536:
9199 /* rule 536 can match eol */
9200 YY_RULE_SETUP
9201 FAIL("Starting tag <prop> is not allowed here.");
9202         YY_BREAK
9203 case 537:
9204 /* rule 537 can match eol */
9205 YY_RULE_SETUP
9206 {
9207   AX_surfxml_prop_id = 0;
9208   surfxml_prop_id_isset = 0;
9209   AX_surfxml_prop_value = 0;
9210   surfxml_prop_value_isset = 0;
9211   ENTER(AL_surfxml_prop); pushbuffer(0);
9212   }
9213         YY_BREAK
9214
9215 case 538:
9216 /* rule 538 can match eol */
9217 YY_RULE_SETUP
9218 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);
9219         YY_BREAK
9220 case 539:
9221 /* rule 539 can match eol */
9222 YY_RULE_SETUP
9223 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);
9224         YY_BREAK
9225 case 540:
9226 /* rule 540 can match eol */
9227 YY_RULE_SETUP
9228 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);
9229         YY_BREAK
9230 case 541:
9231 /* rule 541 can match eol */
9232 YY_RULE_SETUP
9233 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);
9234         YY_BREAK
9235 case 542:
9236 YY_RULE_SETUP
9237 {
9238   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9239   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9240   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
9241  }
9242         YY_BREAK
9243 case 543:
9244 YY_RULE_SETUP
9245 {
9246   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
9247   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
9248   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
9249   switch (YY_START) {
9250    case S_surfxml_process_2: case S_surfxml_process_1: case S_surfxml_process: SET(S_surfxml_process_2); break;
9251    case S_surfxml_config_2: case S_surfxml_config: case S_surfxml_config_1: SET(S_surfxml_config_2); break;
9252    case S_surfxml_host_2: case S_surfxml_host_1: case S_surfxml_host: SET(S_surfxml_host_2); break;
9253    case S_surfxml_storage: case S_surfxml_storage_2: case S_surfxml_storage_1: SET(S_surfxml_storage_2); break;
9254    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9255    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9256    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9257    case S_surfxml_cluster: case S_surfxml_cluster_2: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9258   }
9259  }
9260         YY_BREAK
9261 case 544:
9262 YY_RULE_SETUP
9263 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
9264         YY_BREAK
9265 case 545:
9266 YY_RULE_SETUP
9267 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
9268         YY_BREAK
9269 case YY_STATE_EOF(AL_surfxml_prop):
9270 FAIL("EOF in attribute list of `prop' element.");
9271         YY_BREAK
9272
9273 case 546:
9274 /* rule 546 can match eol */
9275 YY_RULE_SETUP
9276 {
9277   LEAVE;
9278   ETag_surfxml_prop();
9279   popbuffer(); /* attribute */
9280   switch (YY_START) {
9281    case S_surfxml_process_2: case S_surfxml_process_1: case S_surfxml_process: SET(S_surfxml_process_2); break;
9282    case S_surfxml_config_2: case S_surfxml_config: case S_surfxml_config_1: SET(S_surfxml_config_2); break;
9283    case S_surfxml_host_2: case S_surfxml_host_1: case S_surfxml_host: SET(S_surfxml_host_2); break;
9284    case S_surfxml_storage: case S_surfxml_storage_2: case S_surfxml_storage_1: SET(S_surfxml_storage_2); break;
9285    case S_surfxml_link: case S_surfxml_link_1: case S_surfxml_link_2: SET(S_surfxml_link_2); break;
9286    case S_surfxml_AS: case S_surfxml_AS_2: case S_surfxml_AS_3: SET(S_surfxml_AS_3); break;
9287    case S_surfxml_storage___type_1: case S_surfxml_storage___type: case S_surfxml_storage___type_2: SET(S_surfxml_storage___type_2); break;
9288    case S_surfxml_cluster: case S_surfxml_cluster_2: case S_surfxml_cluster_1: SET(S_surfxml_cluster_2); break;
9289   }
9290  }
9291         YY_BREAK
9292 case 547:
9293 /* rule 547 can match eol */
9294 YY_RULE_SETUP
9295 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
9296         YY_BREAK
9297 case 548:
9298 YY_RULE_SETUP
9299 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
9300         YY_BREAK
9301 case YY_STATE_EOF(E_surfxml_prop):
9302 if(!ETag_surfxml_include_state()) FAIL("Premature EOF: `</prop>' expected.");
9303         YY_BREAK
9304
9305 /* EPILOG: after the root element. */
9306
9307 case 549:
9308 YY_RULE_SETUP
9309 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
9310         YY_BREAK
9311 case YY_STATE_EOF(EPILOG):
9312 SUCCEED;
9313         YY_BREAK
9314
9315 /* CHARACTER DATA. */
9316
9317 /* Non-defined standard entities... */
9318 case 550:
9319 YY_RULE_SETUP
9320 BUFFERPUTC('&');
9321         YY_BREAK
9322 case 551:
9323 YY_RULE_SETUP
9324 BUFFERPUTC('<');
9325         YY_BREAK
9326 case 552:
9327 YY_RULE_SETUP
9328 BUFFERPUTC('>');
9329         YY_BREAK
9330 case 553:
9331 YY_RULE_SETUP
9332 BUFFERPUTC('\'');
9333         YY_BREAK
9334 case 554:
9335 YY_RULE_SETUP
9336 BUFFERPUTC('"');
9337         YY_BREAK
9338 /* Character entities. */
9339 case 555:
9340 YY_RULE_SETUP
9341 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
9342         YY_BREAK
9343 case 556:
9344 YY_RULE_SETUP
9345 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
9346         YY_BREAK
9347
9348 case 557:
9349 /* rule 557 can match eol */
9350 case 558:
9351 /* rule 558 can match eol */
9352 case 559:
9353 /* rule 559 can match eol */
9354 case 560:
9355 /* rule 560 can match eol */
9356 YY_RULE_SETUP
9357 BUFFERPUTC('\n');
9358         YY_BREAK
9359
9360 case 561:
9361 YY_RULE_SETUP
9362 ENTER(CDATA);
9363         YY_BREAK
9364 case 562:
9365 YY_RULE_SETUP
9366 FAIL("Unexpected `]""]>' in character data.");
9367         YY_BREAK
9368
9369 case 563:
9370 YY_RULE_SETUP
9371 BUFFERDONE; LEAVE;
9372         YY_BREAK
9373 case YY_STATE_EOF(VALUE1):
9374 FAIL("EOF in literal (\"'\" expected).");
9375         YY_BREAK
9376
9377 case 564:
9378 YY_RULE_SETUP
9379 BUFFERDONE; LEAVE;
9380         YY_BREAK
9381 case YY_STATE_EOF(VALUE2):
9382 FAIL("EOF in literal (`\"' expected).");
9383         YY_BREAK
9384
9385 case 565:
9386 /* rule 565 can match eol */
9387 YY_RULE_SETUP
9388 BUFFERPUTC(surf_parse_text[0]);
9389         YY_BREAK
9390 case 566:
9391 YY_RULE_SETUP
9392 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
9393         YY_BREAK
9394
9395 case 567:
9396 YY_RULE_SETUP
9397 LEAVE;
9398         YY_BREAK
9399 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
9400 case 568:
9401 YY_RULE_SETUP
9402 BUFFERPUTC(surf_parse_text[0]);
9403         YY_BREAK
9404 case YY_STATE_EOF(CDATA):
9405 FAIL("EOF in CDATA section.");
9406         YY_BREAK
9407
9408 /* Impossible rules to avoid warnings from flex(1). */
9409 /* Ideally, this should be replaced by code in flexml.pl that
9410     generates just the states not covered by other rules. */
9411
9412 case 569:
9413 /* rule 569 can match eol */
9414 YY_RULE_SETUP
9415 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
9416         YY_BREAK
9417
9418 case 570:
9419 YY_RULE_SETUP
9420 ECHO;
9421         YY_BREAK
9422 case YY_STATE_EOF(INITIAL):
9423 case YY_STATE_EOF(ROOT_surfxml_platform):
9424 case YY_STATE_EOF(S_surfxml_platform_2):
9425 case YY_STATE_EOF(S_surfxml_platform_5):
9426 case YY_STATE_EOF(S_surfxml_platform_7):
9427 case YY_STATE_EOF(S_surfxml_include_1):
9428 case YY_STATE_EOF(S_surfxml_AS_2):
9429 case YY_STATE_EOF(S_surfxml_AS_5):
9430 case YY_STATE_EOF(S_surfxml_AS_8):
9431 case YY_STATE_EOF(S_surfxml_AS_10):
9432 case YY_STATE_EOF(S_surfxml_AS_13):
9433 case YY_STATE_EOF(S_surfxml_AS_15):
9434 case YY_STATE_EOF(S_surfxml_storage___type_1):
9435 case YY_STATE_EOF(S_surfxml_storage_1):
9436 case YY_STATE_EOF(S_surfxml_host_1):
9437 case YY_STATE_EOF(S_surfxml_cluster_1):
9438 case YY_STATE_EOF(S_surfxml_link_1):
9439 case YY_STATE_EOF(S_surfxml_route_1):
9440 case YY_STATE_EOF(S_surfxml_ASroute_1):
9441 case YY_STATE_EOF(S_surfxml_bypassRoute_1):
9442 case YY_STATE_EOF(S_surfxml_bypassASroute_1):
9443 case YY_STATE_EOF(S_surfxml_process_1):
9444 case YY_STATE_EOF(S_surfxml_config_1):
9445 case YY_STATE_EOF(IMPOSSIBLE):
9446         yyterminate();
9447
9448         case YY_END_OF_BUFFER:
9449                 {
9450                 /* Amount of text matched not including the EOB char. */
9451                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
9452
9453                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
9454                 *yy_cp = (yy_hold_char);
9455                 YY_RESTORE_YY_MORE_OFFSET
9456
9457                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
9458                         {
9459                         /* We're scanning a new file or input source.  It's
9460                          * possible that this happened because the user
9461                          * just pointed surf_parse_in at a new source and called
9462                          * surf_parse_lex().  If so, then we have to assure
9463                          * consistency between YY_CURRENT_BUFFER and our
9464                          * globals.  Here is the right place to do so, because
9465                          * this is the first action (other than possibly a
9466                          * back-up) that will match for the new input source.
9467                          */
9468                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9469                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
9470                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
9471                         }
9472
9473                 /* Note that here we test for yy_c_buf_p "<=" to the position
9474                  * of the first EOB in the buffer, since yy_c_buf_p will
9475                  * already have been incremented past the NUL character
9476                  * (since all states make transitions on EOB to the
9477                  * end-of-buffer state).  Contrast this with the test
9478                  * in input().
9479                  */
9480                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9481                         { /* This was really a NUL. */
9482                         yy_state_type yy_next_state;
9483
9484                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
9485
9486                         yy_current_state = yy_get_previous_state(  );
9487
9488                         /* Okay, we're now positioned to make the NUL
9489                          * transition.  We couldn't have
9490                          * yy_get_previous_state() go ahead and do it
9491                          * for us because it doesn't know how to deal
9492                          * with the possibility of jamming (and we don't
9493                          * want to build jamming into it because then it
9494                          * will run more slowly).
9495                          */
9496
9497                         yy_next_state = yy_try_NUL_trans( yy_current_state );
9498
9499                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9500
9501                         if ( yy_next_state )
9502                                 {
9503                                 /* Consume the NUL. */
9504                                 yy_cp = ++(yy_c_buf_p);
9505                                 yy_current_state = yy_next_state;
9506                                 goto yy_match;
9507                                 }
9508
9509                         else
9510                                 {
9511                                 yy_cp = (yy_c_buf_p);
9512                                 goto yy_find_action;
9513                                 }
9514                         }
9515
9516                 else switch ( yy_get_next_buffer(  ) )
9517                         {
9518                         case EOB_ACT_END_OF_FILE:
9519                                 {
9520                                 (yy_did_buffer_switch_on_eof) = 0;
9521
9522                                 if ( surf_parse_wrap( ) )
9523                                         {
9524                                         /* Note: because we've taken care in
9525                                          * yy_get_next_buffer() to have set up
9526                                          * surf_parse_text, we can now set up
9527                                          * yy_c_buf_p so that if some total
9528                                          * hoser (like flex itself) wants to
9529                                          * call the scanner after we return the
9530                                          * YY_NULL, it'll still work - another
9531                                          * YY_NULL will get returned.
9532                                          */
9533                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
9534
9535                                         yy_act = YY_STATE_EOF(YY_START);
9536                                         goto do_action;
9537                                         }
9538
9539                                 else
9540                                         {
9541                                         if ( ! (yy_did_buffer_switch_on_eof) )
9542                                                 YY_NEW_FILE;
9543                                         }
9544                                 break;
9545                                 }
9546
9547                         case EOB_ACT_CONTINUE_SCAN:
9548                                 (yy_c_buf_p) =
9549                                         (yytext_ptr) + yy_amount_of_matched_text;
9550
9551                                 yy_current_state = yy_get_previous_state(  );
9552
9553                                 yy_cp = (yy_c_buf_p);
9554                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9555                                 goto yy_match;
9556
9557                         case EOB_ACT_LAST_MATCH:
9558                                 (yy_c_buf_p) =
9559                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
9560
9561                                 yy_current_state = yy_get_previous_state(  );
9562
9563                                 yy_cp = (yy_c_buf_p);
9564                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
9565                                 goto yy_find_action;
9566                         }
9567                 break;
9568                 }
9569
9570         default:
9571                 YY_FATAL_ERROR(
9572                         "fatal flex scanner internal error--no action found" );
9573         } /* end of action switch */
9574                 } /* end of scanning one token */
9575 } /* end of surf_parse_lex */
9576
9577 /* yy_get_next_buffer - try to read in a new buffer
9578  *
9579  * Returns a code representing an action:
9580  *      EOB_ACT_LAST_MATCH -
9581  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
9582  *      EOB_ACT_END_OF_FILE - end of file
9583  */
9584 static int yy_get_next_buffer (void)
9585 {
9586         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
9587         register char *source = (yytext_ptr);
9588         register int number_to_move, i;
9589         int ret_val;
9590
9591         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
9592                 YY_FATAL_ERROR(
9593                 "fatal flex scanner internal error--end of buffer missed" );
9594
9595         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
9596                 { /* Don't try to fill the buffer, so this is an EOF. */
9597                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
9598                         {
9599                         /* We matched a single character, the EOB, so
9600                          * treat this as a final EOF.
9601                          */
9602                         return EOB_ACT_END_OF_FILE;
9603                         }
9604
9605                 else
9606                         {
9607                         /* We matched some text prior to the EOB, first
9608                          * process it.
9609                          */
9610                         return EOB_ACT_LAST_MATCH;
9611                         }
9612                 }
9613
9614         /* Try to read more data. */
9615
9616         /* First move last chars to start of buffer. */
9617         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
9618
9619         for ( i = 0; i < number_to_move; ++i )
9620                 *(dest++) = *(source++);
9621
9622         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
9623                 /* don't do the read, it's not guaranteed to return an EOF,
9624                  * just force an EOF
9625                  */
9626                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
9627
9628         else
9629                 {
9630                         int num_to_read =
9631                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
9632
9633                 while ( num_to_read <= 0 )
9634                         { /* Not enough room in the buffer - grow it. */
9635
9636                         /* just a shorter name for the current buffer */
9637                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
9638
9639                         int yy_c_buf_p_offset =
9640                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
9641
9642                         if ( b->yy_is_our_buffer )
9643                                 {
9644                                 int new_size = b->yy_buf_size * 2;
9645
9646                                 if ( new_size <= 0 )
9647                                         b->yy_buf_size += b->yy_buf_size / 8;
9648                                 else
9649                                         b->yy_buf_size *= 2;
9650
9651                                 b->yy_ch_buf = (char *)
9652                                         /* Include room in for 2 EOB chars. */
9653                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
9654                                 }
9655                         else
9656                                 /* Can't grow it, we don't own it. */
9657                                 b->yy_ch_buf = 0;
9658
9659                         if ( ! b->yy_ch_buf )
9660                                 YY_FATAL_ERROR(
9661                                 "fatal error - scanner input buffer overflow" );
9662
9663                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
9664
9665                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
9666                                                 number_to_move - 1;
9667
9668                         }
9669
9670                 if ( num_to_read > YY_READ_BUF_SIZE )
9671                         num_to_read = YY_READ_BUF_SIZE;
9672
9673                 /* Read in more data. */
9674                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
9675                         (yy_n_chars), (size_t) num_to_read );
9676
9677                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9678                 }
9679
9680         if ( (yy_n_chars) == 0 )
9681                 {
9682                 if ( number_to_move == YY_MORE_ADJ )
9683                         {
9684                         ret_val = EOB_ACT_END_OF_FILE;
9685                         surf_parse_restart(surf_parse_in  );
9686                         }
9687
9688                 else
9689                         {
9690                         ret_val = EOB_ACT_LAST_MATCH;
9691                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
9692                                 YY_BUFFER_EOF_PENDING;
9693                         }
9694                 }
9695
9696         else
9697                 ret_val = EOB_ACT_CONTINUE_SCAN;
9698
9699         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
9700                 /* Extend the array by 50%, plus the number we really need. */
9701                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
9702                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) surf_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
9703                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
9704                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
9705         }
9706
9707         (yy_n_chars) += number_to_move;
9708         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
9709         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
9710
9711         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
9712
9713         return ret_val;
9714 }
9715
9716 /* yy_get_previous_state - get the state just before the EOB char was reached */
9717
9718     static yy_state_type yy_get_previous_state (void)
9719 {
9720         register yy_state_type yy_current_state;
9721         register char *yy_cp;
9722     
9723         yy_current_state = (yy_start);
9724
9725         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
9726                 {
9727                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
9728                 if ( yy_accept[yy_current_state] )
9729                         {
9730                         (yy_last_accepting_state) = yy_current_state;
9731                         (yy_last_accepting_cpos) = yy_cp;
9732                         }
9733                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9734                         {
9735                         yy_current_state = (int) yy_def[yy_current_state];
9736                         if ( yy_current_state >= 3344 )
9737                                 yy_c = yy_meta[(unsigned int) yy_c];
9738                         }
9739                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9740                 }
9741
9742         return yy_current_state;
9743 }
9744
9745 /* yy_try_NUL_trans - try to make a transition on the NUL character
9746  *
9747  * synopsis
9748  *      next_state = yy_try_NUL_trans( current_state );
9749  */
9750     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
9751 {
9752         register int yy_is_jam;
9753         register char *yy_cp = (yy_c_buf_p);
9754
9755         register YY_CHAR yy_c = 1;
9756         if ( yy_accept[yy_current_state] )
9757                 {
9758                 (yy_last_accepting_state) = yy_current_state;
9759                 (yy_last_accepting_cpos) = yy_cp;
9760                 }
9761         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
9762                 {
9763                 yy_current_state = (int) yy_def[yy_current_state];
9764                 if ( yy_current_state >= 3344 )
9765                         yy_c = yy_meta[(unsigned int) yy_c];
9766                 }
9767         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
9768         yy_is_jam = (yy_current_state == 3343);
9769
9770         return yy_is_jam ? 0 : yy_current_state;
9771 }
9772
9773 #ifndef YY_NO_INPUT
9774 #ifdef __cplusplus
9775     static int yyinput (void)
9776 #else
9777     static int input  (void)
9778 #endif
9779
9780 {
9781         int c;
9782     
9783         *(yy_c_buf_p) = (yy_hold_char);
9784
9785         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
9786                 {
9787                 /* yy_c_buf_p now points to the character we want to return.
9788                  * If this occurs *before* the EOB characters, then it's a
9789                  * valid NUL; if not, then we've hit the end of the buffer.
9790                  */
9791                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
9792                         /* This was really a NUL. */
9793                         *(yy_c_buf_p) = '\0';
9794
9795                 else
9796                         { /* need more input */
9797                         int offset = (yy_c_buf_p) - (yytext_ptr);
9798                         ++(yy_c_buf_p);
9799
9800                         switch ( yy_get_next_buffer(  ) )
9801                                 {
9802                                 case EOB_ACT_LAST_MATCH:
9803                                         /* This happens because yy_g_n_b()
9804                                          * sees that we've accumulated a
9805                                          * token and flags that we need to
9806                                          * try matching the token before
9807                                          * proceeding.  But for input(),
9808                                          * there's no matching to consider.
9809                                          * So convert the EOB_ACT_LAST_MATCH
9810                                          * to EOB_ACT_END_OF_FILE.
9811                                          */
9812
9813                                         /* Reset buffer status. */
9814                                         surf_parse_restart(surf_parse_in );
9815
9816                                         /*FALLTHROUGH*/
9817
9818                                 case EOB_ACT_END_OF_FILE:
9819                                         {
9820                                         if ( surf_parse_wrap( ) )
9821                                                 return EOF;
9822
9823                                         if ( ! (yy_did_buffer_switch_on_eof) )
9824                                                 YY_NEW_FILE;
9825 #ifdef __cplusplus
9826                                         return yyinput();
9827 #else
9828                                         return input();
9829 #endif
9830                                         }
9831
9832                                 case EOB_ACT_CONTINUE_SCAN:
9833                                         (yy_c_buf_p) = (yytext_ptr) + offset;
9834                                         break;
9835                                 }
9836                         }
9837                 }
9838
9839         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
9840         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
9841         (yy_hold_char) = *++(yy_c_buf_p);
9842
9843         if ( c == '\n' )
9844                    
9845     surf_parse_lineno++;
9846 ;
9847
9848         return c;
9849 }
9850 #endif  /* ifndef YY_NO_INPUT */
9851
9852 /** Immediately switch to a different input stream.
9853  * @param input_file A readable stream.
9854  * 
9855  * @note This function does not reset the start condition to @c INITIAL .
9856  */
9857     void surf_parse_restart  (FILE * input_file )
9858 {
9859     
9860         if ( ! YY_CURRENT_BUFFER ){
9861         surf_parse_ensure_buffer_stack ();
9862                 YY_CURRENT_BUFFER_LVALUE =
9863             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
9864         }
9865
9866         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
9867         surf_parse__load_buffer_state( );
9868 }
9869
9870 /** Switch to a different input buffer.
9871  * @param new_buffer The new input buffer.
9872  * 
9873  */
9874     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
9875 {
9876     
9877         /* TODO. We should be able to replace this entire function body
9878          * with
9879          *              surf_parse_pop_buffer_state();
9880          *              surf_parse_push_buffer_state(new_buffer);
9881      */
9882         surf_parse_ensure_buffer_stack ();
9883         if ( YY_CURRENT_BUFFER == new_buffer )
9884                 return;
9885
9886         if ( YY_CURRENT_BUFFER )
9887                 {
9888                 /* Flush out information for old buffer. */
9889                 *(yy_c_buf_p) = (yy_hold_char);
9890                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
9891                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
9892                 }
9893
9894         YY_CURRENT_BUFFER_LVALUE = new_buffer;
9895         surf_parse__load_buffer_state( );
9896
9897         /* We don't actually know whether we did this switch during
9898          * EOF (surf_parse_wrap()) processing, but the only time this flag
9899          * is looked at is after surf_parse_wrap() is called, so it's safe
9900          * to go ahead and always set it.
9901          */
9902         (yy_did_buffer_switch_on_eof) = 1;
9903 }
9904
9905 static void surf_parse__load_buffer_state  (void)
9906 {
9907         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
9908         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
9909         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
9910         (yy_hold_char) = *(yy_c_buf_p);
9911 }
9912
9913 /** Allocate and initialize an input buffer state.
9914  * @param file A readable stream.
9915  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
9916  * 
9917  * @return the allocated buffer state.
9918  */
9919     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
9920 {
9921         YY_BUFFER_STATE b;
9922     
9923         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
9924         if ( ! b )
9925                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9926
9927         b->yy_buf_size = size;
9928
9929         /* yy_ch_buf has to be 2 characters longer than the size given because
9930          * we need to put in 2 end-of-buffer characters.
9931          */
9932         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
9933         if ( ! b->yy_ch_buf )
9934                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
9935
9936         b->yy_is_our_buffer = 1;
9937
9938         surf_parse__init_buffer(b,file );
9939
9940         return b;
9941 }
9942
9943 /** Destroy the buffer.
9944  * @param b a buffer created with surf_parse__create_buffer()
9945  * 
9946  */
9947     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
9948 {
9949     
9950         if ( ! b )
9951                 return;
9952
9953         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
9954                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
9955
9956         if ( b->yy_is_our_buffer )
9957                 surf_parse_free((void *) b->yy_ch_buf  );
9958
9959         surf_parse_free((void *) b  );
9960 }
9961
9962 #ifndef __cplusplus
9963 extern int isatty (int );
9964 #endif /* __cplusplus */
9965     
9966 /* Initializes or reinitializes a buffer.
9967  * This function is sometimes called more than once on the same buffer,
9968  * such as during a surf_parse_restart() or at EOF.
9969  */
9970     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
9971
9972 {
9973         int oerrno = errno;
9974     
9975         surf_parse__flush_buffer(b );
9976
9977         b->yy_input_file = file;
9978         b->yy_fill_buffer = 1;
9979
9980     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
9981      * called from surf_parse_restart() or through yy_get_next_buffer.
9982      * In that case, we don't want to reset the lineno or column.
9983      */
9984     if (b != YY_CURRENT_BUFFER){
9985         b->yy_bs_lineno = 1;
9986         b->yy_bs_column = 0;
9987     }
9988
9989         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
9990     
9991         errno = oerrno;
9992 }
9993
9994 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
9995  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
9996  * 
9997  */
9998     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
9999 {
10000         if ( ! b )
10001                 return;
10002
10003         b->yy_n_chars = 0;
10004
10005         /* We always need two end-of-buffer characters.  The first causes
10006          * a transition to the end-of-buffer state.  The second causes
10007          * a jam in that state.
10008          */
10009         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
10010         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
10011
10012         b->yy_buf_pos = &b->yy_ch_buf[0];
10013
10014         b->yy_at_bol = 1;
10015         b->yy_buffer_status = YY_BUFFER_NEW;
10016
10017         if ( b == YY_CURRENT_BUFFER )
10018                 surf_parse__load_buffer_state( );
10019 }
10020
10021 /** Pushes the new state onto the stack. The new state becomes
10022  *  the current state. This function will allocate the stack
10023  *  if necessary.
10024  *  @param new_buffer The new state.
10025  *  
10026  */
10027 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
10028 {
10029         if (new_buffer == NULL)
10030                 return;
10031
10032         surf_parse_ensure_buffer_stack();
10033
10034         /* This block is copied from surf_parse__switch_to_buffer. */
10035         if ( YY_CURRENT_BUFFER )
10036                 {
10037                 /* Flush out information for old buffer. */
10038                 *(yy_c_buf_p) = (yy_hold_char);
10039                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
10040                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
10041                 }
10042
10043         /* Only push if top exists. Otherwise, replace top. */
10044         if (YY_CURRENT_BUFFER)
10045                 (yy_buffer_stack_top)++;
10046         YY_CURRENT_BUFFER_LVALUE = new_buffer;
10047
10048         /* copied from surf_parse__switch_to_buffer. */
10049         surf_parse__load_buffer_state( );
10050         (yy_did_buffer_switch_on_eof) = 1;
10051 }
10052
10053 /** Removes and deletes the top of the stack, if present.
10054  *  The next element becomes the new top.
10055  *  
10056  */
10057 void surf_parse_pop_buffer_state (void)
10058 {
10059         if (!YY_CURRENT_BUFFER)
10060                 return;
10061
10062         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
10063         YY_CURRENT_BUFFER_LVALUE = NULL;
10064         if ((yy_buffer_stack_top) > 0)
10065                 --(yy_buffer_stack_top);
10066
10067         if (YY_CURRENT_BUFFER) {
10068                 surf_parse__load_buffer_state( );
10069                 (yy_did_buffer_switch_on_eof) = 1;
10070         }
10071 }
10072
10073 /* Allocates the stack if it does not exist.
10074  *  Guarantees space for at least one push.
10075  */
10076 static void surf_parse_ensure_buffer_stack (void)
10077 {
10078         int num_to_alloc;
10079     
10080         if (!(yy_buffer_stack)) {
10081
10082                 /* First allocation is just for 2 elements, since we don't know if this
10083                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
10084                  * immediate realloc on the next call.
10085          */
10086                 num_to_alloc = 1;
10087                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
10088                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
10089                                                                 );
10090                 if ( ! (yy_buffer_stack) )
10091                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10092                                                                   
10093                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
10094                                 
10095                 (yy_buffer_stack_max) = num_to_alloc;
10096                 (yy_buffer_stack_top) = 0;
10097                 return;
10098         }
10099
10100         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
10101
10102                 /* Increase the buffer to prepare for a possible push. */
10103                 int grow_size = 8 /* arbitrary grow size */;
10104
10105                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
10106                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
10107                                                                 ((yy_buffer_stack),
10108                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
10109                                                                 );
10110                 if ( ! (yy_buffer_stack) )
10111                         YY_FATAL_ERROR( "out of dynamic memory in surf_parse_ensure_buffer_stack()" );
10112
10113                 /* zero only the new slots.*/
10114                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
10115                 (yy_buffer_stack_max) = num_to_alloc;
10116         }
10117 }
10118
10119 /** Setup the input buffer state to scan directly from a user-specified character buffer.
10120  * @param base the character buffer
10121  * @param size the size in bytes of the character buffer
10122  * 
10123  * @return the newly allocated buffer state object. 
10124  */
10125 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
10126 {
10127         YY_BUFFER_STATE b;
10128     
10129         if ( size < 2 ||
10130              base[size-2] != YY_END_OF_BUFFER_CHAR ||
10131              base[size-1] != YY_END_OF_BUFFER_CHAR )
10132                 /* They forgot to leave room for the EOB's. */
10133                 return 0;
10134
10135         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
10136         if ( ! b )
10137                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
10138
10139         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
10140         b->yy_buf_pos = b->yy_ch_buf = base;
10141         b->yy_is_our_buffer = 0;
10142         b->yy_input_file = 0;
10143         b->yy_n_chars = b->yy_buf_size;
10144         b->yy_is_interactive = 0;
10145         b->yy_at_bol = 1;
10146         b->yy_fill_buffer = 0;
10147         b->yy_buffer_status = YY_BUFFER_NEW;
10148
10149         surf_parse__switch_to_buffer(b  );
10150
10151         return b;
10152 }
10153
10154 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
10155  * scan from a @e copy of @a str.
10156  * @param yystr a NUL-terminated string to scan
10157  * 
10158  * @return the newly allocated buffer state object.
10159  * @note If you want to scan bytes that may contain NUL values, then use
10160  *       surf_parse__scan_bytes() instead.
10161  */
10162 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
10163 {
10164     
10165         return surf_parse__scan_bytes(yystr,strlen(yystr) );
10166 }
10167
10168 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
10169  * scan from a @e copy of @a bytes.
10170  * @param yybytes the byte buffer to scan
10171  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
10172  * 
10173  * @return the newly allocated buffer state object.
10174  */
10175 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
10176 {
10177         YY_BUFFER_STATE b;
10178         char *buf;
10179         yy_size_t n;
10180         int i;
10181     
10182         /* Get memory for full buffer, including space for trailing EOB's. */
10183         n = _yybytes_len + 2;
10184         buf = (char *) surf_parse_alloc(n  );
10185         if ( ! buf )
10186                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
10187
10188         for ( i = 0; i < _yybytes_len; ++i )
10189                 buf[i] = yybytes[i];
10190
10191         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
10192
10193         b = surf_parse__scan_buffer(buf,n );
10194         if ( ! b )
10195                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
10196
10197         /* It's okay to grow etc. this buffer, and we should throw it
10198          * away when we're done.
10199          */
10200         b->yy_is_our_buffer = 1;
10201
10202         return b;
10203 }
10204
10205     static void yy_push_state (int  new_state )
10206 {
10207         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
10208                 {
10209                 yy_size_t new_size;
10210
10211                 (yy_start_stack_depth) += YY_START_STACK_INCR;
10212                 new_size = (yy_start_stack_depth) * sizeof( int );
10213
10214                 if ( ! (yy_start_stack) )
10215                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
10216
10217                 else
10218                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
10219
10220                 if ( ! (yy_start_stack) )
10221                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
10222                 }
10223
10224         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
10225
10226         BEGIN(new_state);
10227 }
10228
10229     static void yy_pop_state  (void)
10230 {
10231         if ( --(yy_start_stack_ptr) < 0 )
10232                 YY_FATAL_ERROR( "start-condition stack underflow" );
10233
10234         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
10235 }
10236
10237 #ifndef YY_EXIT_FAILURE
10238 #define YY_EXIT_FAILURE 2
10239 #endif
10240
10241 static void yy_fatal_error (yyconst char* msg )
10242 {
10243         (void) fprintf( stderr, "%s\n", msg );
10244         exit( YY_EXIT_FAILURE );
10245 }
10246
10247 /* Redefine yyless() so it works in section 3 code. */
10248
10249 #undef yyless
10250 #define yyless(n) \
10251         do \
10252                 { \
10253                 /* Undo effects of setting up surf_parse_text. */ \
10254         int yyless_macro_arg = (n); \
10255         YY_LESS_LINENO(yyless_macro_arg);\
10256                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
10257                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
10258                 (yy_hold_char) = *(yy_c_buf_p); \
10259                 *(yy_c_buf_p) = '\0'; \
10260                 surf_parse_leng = yyless_macro_arg; \
10261                 } \
10262         while ( 0 )
10263
10264 /* Accessor  methods (get/set functions) to struct members. */
10265
10266 /** Get the current line number.
10267  * 
10268  */
10269 int surf_parse_get_lineno  (void)
10270 {
10271         
10272     return surf_parse_lineno;
10273 }
10274
10275 /** Get the input stream.
10276  * 
10277  */
10278 FILE *surf_parse_get_in  (void)
10279 {
10280         return surf_parse_in;
10281 }
10282
10283 /** Get the output stream.
10284  * 
10285  */
10286 FILE *surf_parse_get_out  (void)
10287 {
10288         return surf_parse_out;
10289 }
10290
10291 /** Get the length of the current token.
10292  * 
10293  */
10294 int surf_parse_get_leng  (void)
10295 {
10296         return surf_parse_leng;
10297 }
10298
10299 /** Get the current token.
10300  * 
10301  */
10302
10303 char *surf_parse_get_text  (void)
10304 {
10305         return surf_parse_text;
10306 }
10307
10308 /** Set the current line number.
10309  * @param line_number
10310  * 
10311  */
10312 void surf_parse_set_lineno (int  line_number )
10313 {
10314     
10315     surf_parse_lineno = line_number;
10316 }
10317
10318 /** Set the input stream. This does not discard the current
10319  * input buffer.
10320  * @param in_str A readable stream.
10321  * 
10322  * @see surf_parse__switch_to_buffer
10323  */
10324 void surf_parse_set_in (FILE *  in_str )
10325 {
10326         surf_parse_in = in_str ;
10327 }
10328
10329 void surf_parse_set_out (FILE *  out_str )
10330 {
10331         surf_parse_out = out_str ;
10332 }
10333
10334 int surf_parse_get_debug  (void)
10335 {
10336         return surf_parse__flex_debug;
10337 }
10338
10339 void surf_parse_set_debug (int  bdebug )
10340 {
10341         surf_parse__flex_debug = bdebug ;
10342 }
10343
10344 static int yy_init_globals (void)
10345 {
10346         /* Initialization is the same as for the non-reentrant scanner.
10347      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
10348      */
10349
10350     /* We do not touch surf_parse_lineno unless the option is enabled. */
10351     surf_parse_lineno =  1;
10352     
10353     (yy_buffer_stack) = 0;
10354     (yy_buffer_stack_top) = 0;
10355     (yy_buffer_stack_max) = 0;
10356     (yy_c_buf_p) = (char *) 0;
10357     (yy_init) = 0;
10358     (yy_start) = 0;
10359
10360     (yy_start_stack_ptr) = 0;
10361     (yy_start_stack_depth) = 0;
10362     (yy_start_stack) =  NULL;
10363
10364 /* Defined in main.c */
10365 #ifdef YY_STDINIT
10366     surf_parse_in = stdin;
10367     surf_parse_out = stdout;
10368 #else
10369     surf_parse_in = (FILE *) 0;
10370     surf_parse_out = (FILE *) 0;
10371 #endif
10372
10373     /* For future reference: Set errno on error, since we are called by
10374      * surf_parse_lex_init()
10375      */
10376     return 0;
10377 }
10378
10379 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
10380 int surf_parse_lex_destroy  (void)
10381 {
10382     
10383     /* Pop the buffer stack, destroying each element. */
10384         while(YY_CURRENT_BUFFER){
10385                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
10386                 YY_CURRENT_BUFFER_LVALUE = NULL;
10387                 surf_parse_pop_buffer_state();
10388         }
10389
10390         /* Destroy the stack itself. */
10391         surf_parse_free((yy_buffer_stack) );
10392         (yy_buffer_stack) = NULL;
10393
10394     /* Destroy the start condition stack. */
10395         surf_parse_free((yy_start_stack)  );
10396         (yy_start_stack) = NULL;
10397
10398     /* Reset the globals. This is important in a non-reentrant scanner so the next time
10399      * surf_parse_lex() is called, initialization will occur. */
10400     yy_init_globals( );
10401
10402     return 0;
10403 }
10404
10405 /*
10406  * Internal utility routines.
10407  */
10408
10409 #ifndef yytext_ptr
10410 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
10411 {
10412         register int i;
10413         for ( i = 0; i < n; ++i )
10414                 s1[i] = s2[i];
10415 }
10416 #endif
10417
10418 #ifdef YY_NEED_STRLEN
10419 static int yy_flex_strlen (yyconst char * s )
10420 {
10421         register int n;
10422         for ( n = 0; s[n]; ++n )
10423                 ;
10424
10425         return n;
10426 }
10427 #endif
10428
10429 void *surf_parse_alloc (yy_size_t  size )
10430 {
10431         return (void *) malloc( size );
10432 }
10433
10434 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
10435 {
10436         /* The cast to (char *) in the following accommodates both
10437          * implementations that use char* generic pointers, and those
10438          * that use void* generic pointers.  It works with the latter
10439          * because both ANSI C and C++ allow castless assignment from
10440          * any pointer type to void*, and deal with argument conversions
10441          * as though doing an assignment.
10442          */
10443         return (void *) realloc( (char *) ptr, size );
10444 }
10445
10446 void surf_parse_free (void * ptr )
10447 {
10448         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
10449 }
10450
10451 #define YYTABLES_NAME "yytables"
10452
10453 /* Element context stack lookup. */
10454 int surfxml_element_context(int i)
10455 {
10456   return (0<i && i<yy_start_stack_depth
10457           ? yy_start_stack[yy_start_stack_ptr - i]
10458           : 0);
10459 }
10460
10461 #ifdef FLEX_DEBUG
10462 void print_yy_stack(char* fmt, ...)
10463 {
10464   int i = 0; va_list ap; va_start(ap, fmt);
10465   vfprintf(stderr, fmt, ap);
10466   if (surfxml_statenames) {
10467       for (i=1; i<yy_start_stack_ptr; i++) {
10468           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
10469       }
10470       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
10471   }
10472   va_end(ap);
10473 }
10474
10475 void print_surfxml_bufferstack()
10476 {
10477     int i;
10478     fputs("Buffer: ", stderr);
10479     for (i = 0; i < blimit; i++) {
10480        if ( surfxml_bufferstack[i] == '\377' ) break;
10481          putc(surfxml_bufferstack[i], stderr);
10482     }
10483     putc('\n', stderr);
10484 }
10485
10486 static void debug_enter(int state, const char* statename) {
10487   yy_push_state(state);
10488   if (surf_parse__flex_debug) {
10489        print_yy_stack("--ENTER(%s) : ",statename);
10490        print_surfxml_bufferstack();
10491   }
10492 }
10493
10494 static void debug_leave(void) {
10495     if (surf_parse__flex_debug) {
10496         print_yy_stack("--LEAVE : ");
10497         print_surfxml_bufferstack();
10498     }
10499   yy_pop_state();
10500 }
10501
10502 static void debug_set(int state, const char* statename) {
10503   BEGIN(state);
10504   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
10505 }
10506 #endif
10507
10508 static void cleanup(void)
10509 {
10510     if (surfxml_statenames) {
10511         free(surfxml_statenames);
10512         surfxml_statenames = NULL;
10513     }
10514     free(surfxml_bufferstack);
10515     surfxml_bufferstack = NULL;
10516
10517     free(indexstack);
10518     indexstack = NULL;
10519 }
10520
10521 static int fail(const char* fmt, ...)
10522 {
10523     int chars_left, used;
10524     va_list ap; va_start(ap, fmt);
10525 #ifdef FLEXML_yylineno
10526     used = sprintf(flexml_err_msg,
10527                    "Invalid XML (XML input line %d, state %d): ",
10528                    surf_parse_lineno, YY_START);
10529 #else
10530     used = sprintf(flexml_err_msg,
10531                    "Invalid XML (state %d): ",
10532                    YY_START);
10533 #endif
10534     chars_left = flexml_max_err_msg_size - used - 1;
10535     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
10536     va_end(ap);
10537
10538 #ifndef FLEXML_quiet_parser
10539     /* print directly to sdterr */
10540     fprintf(stderr, "%s\n", flexml_err_msg);
10541     flexml_err_msg[0] = '\0';
10542 #endif
10543
10544     cleanup();
10545
10546     return 1;
10547 }
10548