Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Regenerate with flexml 1.7
[simgrid.git] / src / surf / surfxml.c
1
2 #line 3 "surf/surfxml.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11 #define YY_FLEX_SUBMINOR_VERSION 33
12 #if YY_FLEX_SUBMINOR_VERSION > 0
13 #define FLEX_BETA
14 #endif
15
16 /* First, we deal with  platform-specific or compiler-specific issues. */
17
18 /* begin standard C headers. */
19 #include <stdio.h>
20 #include <string.h>
21 #include <errno.h>
22 #include <stdlib.h>
23
24 /* end standard C headers. */
25
26 /* flex integer type definitions */
27
28 #ifndef FLEXINT_H
29 #define FLEXINT_H
30
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33 #if __STDC_VERSION__ >= 199901L
34
35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36  * if you want the limit (max/min) macros for int types. 
37  */
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS 1
40 #endif
41
42 #include <inttypes.h>
43 typedef int8_t flex_int8_t;
44 typedef uint8_t flex_uint8_t;
45 typedef int16_t flex_int16_t;
46 typedef uint16_t flex_uint16_t;
47 typedef int32_t flex_int32_t;
48 typedef uint32_t flex_uint32_t;
49 #else
50 typedef signed char flex_int8_t;
51 typedef short int flex_int16_t;
52 typedef int flex_int32_t;
53 typedef unsigned char flex_uint8_t; 
54 typedef unsigned short int flex_uint16_t;
55 typedef unsigned int flex_uint32_t;
56 #endif /* ! C99 */
57
58 /* Limits of integral types. */
59 #ifndef INT8_MIN
60 #define INT8_MIN               (-128)
61 #endif
62 #ifndef INT16_MIN
63 #define INT16_MIN              (-32767-1)
64 #endif
65 #ifndef INT32_MIN
66 #define INT32_MIN              (-2147483647-1)
67 #endif
68 #ifndef INT8_MAX
69 #define INT8_MAX               (127)
70 #endif
71 #ifndef INT16_MAX
72 #define INT16_MAX              (32767)
73 #endif
74 #ifndef INT32_MAX
75 #define INT32_MAX              (2147483647)
76 #endif
77 #ifndef UINT8_MAX
78 #define UINT8_MAX              (255U)
79 #endif
80 #ifndef UINT16_MAX
81 #define UINT16_MAX             (65535U)
82 #endif
83 #ifndef UINT32_MAX
84 #define UINT32_MAX             (4294967295U)
85 #endif
86
87 #endif /* ! FLEXINT_H */
88
89 #ifdef __cplusplus
90
91 /* The "const" storage-class-modifier is valid. */
92 #define YY_USE_CONST
93
94 #else   /* ! __cplusplus */
95
96 #if __STDC__
97
98 #define YY_USE_CONST
99
100 #endif  /* __STDC__ */
101 #endif  /* ! __cplusplus */
102
103 #ifdef YY_USE_CONST
104 #define yyconst const
105 #else
106 #define yyconst
107 #endif
108
109 /* Returned upon end-of-file. */
110 #define YY_NULL 0
111
112 /* Promotes a possibly negative, possibly signed char to an unsigned
113  * integer for use as an array index.  If the signed char is negative,
114  * we want to instead treat it as an 8-bit unsigned char, hence the
115  * double cast.
116  */
117 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
118
119 /* Enter a start condition.  This macro really ought to take a parameter,
120  * but we do it the disgusting crufty way forced on us by the ()-less
121  * definition of BEGIN.
122  */
123 #define BEGIN (yy_start) = 1 + 2 *
124
125 /* Translate the current start state into a value that can be later handed
126  * to BEGIN to return to the state.  The YYSTATE alias is for lex
127  * compatibility.
128  */
129 #define YY_START (((yy_start) - 1) / 2)
130 #define YYSTATE YY_START
131
132 /* Action number for EOF rule of a given start state. */
133 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
134
135 /* Special action meaning "start processing a new file". */
136 #define YY_NEW_FILE surf_parse_restart(surf_parse_in  )
137
138 #define YY_END_OF_BUFFER_CHAR 0
139
140 /* Size of default input buffer. */
141 #ifndef YY_BUF_SIZE
142 #define YY_BUF_SIZE 16384
143 #endif
144
145 /* The state buf must be large enough to hold one state per character in the main buffer.
146  */
147 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
148
149 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
150 #define YY_TYPEDEF_YY_BUFFER_STATE
151 typedef struct yy_buffer_state *YY_BUFFER_STATE;
152 #endif
153
154 extern int surf_parse_leng;
155
156 extern FILE *surf_parse_in, *surf_parse_out;
157
158 #define EOB_ACT_CONTINUE_SCAN 0
159 #define EOB_ACT_END_OF_FILE 1
160 #define EOB_ACT_LAST_MATCH 2
161
162     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
163      *       access to the local variable yy_act. Since yyless() is a macro, it would break
164      *       existing scanners that call yyless() from OUTSIDE surf_parse_lex. 
165      *       One obvious solution it to make yy_act a global. I tried that, and saw
166      *       a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
167      *       normally declared as a register variable-- so it is not worth it.
168      */
169     #define  YY_LESS_LINENO(n) \
170             do { \
171                 int yyl;\
172                 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
173                     if ( surf_parse_text[yyl] == '\n' )\
174                         --surf_parse_lineno;\
175             }while(0)
176     
177 /* Return all but the first "n" matched characters back to the input stream. */
178 #define yyless(n) \
179         do \
180                 { \
181                 /* Undo effects of setting up surf_parse_text. */ \
182         int yyless_macro_arg = (n); \
183         YY_LESS_LINENO(yyless_macro_arg);\
184                 *yy_cp = (yy_hold_char); \
185                 YY_RESTORE_YY_MORE_OFFSET \
186                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
187                 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
188                 } \
189         while ( 0 )
190
191 #define unput(c) yyunput( c, (yytext_ptr)  )
192
193 /* The following is because we cannot portably get our hands on size_t
194  * (without autoconf's help, which isn't available because we want
195  * flex-generated scanners to compile on their own).
196  */
197
198 #ifndef YY_TYPEDEF_YY_SIZE_T
199 #define YY_TYPEDEF_YY_SIZE_T
200 typedef unsigned int yy_size_t;
201 #endif
202
203 #ifndef YY_STRUCT_YY_BUFFER_STATE
204 #define YY_STRUCT_YY_BUFFER_STATE
205 struct yy_buffer_state
206         {
207         FILE *yy_input_file;
208
209         char *yy_ch_buf;                /* input buffer */
210         char *yy_buf_pos;               /* current position in input buffer */
211
212         /* Size of input buffer in bytes, not including room for EOB
213          * characters.
214          */
215         yy_size_t yy_buf_size;
216
217         /* Number of characters read into yy_ch_buf, not including EOB
218          * characters.
219          */
220         int yy_n_chars;
221
222         /* Whether we "own" the buffer - i.e., we know we created it,
223          * and can realloc() it to grow it, and should free() it to
224          * delete it.
225          */
226         int yy_is_our_buffer;
227
228         /* Whether this is an "interactive" input source; if so, and
229          * if we're using stdio for input, then we want to use getc()
230          * instead of fread(), to make sure we stop fetching input after
231          * each newline.
232          */
233         int yy_is_interactive;
234
235         /* Whether we're considered to be at the beginning of a line.
236          * If so, '^' rules will be active on the next match, otherwise
237          * not.
238          */
239         int yy_at_bol;
240
241     int yy_bs_lineno; /**< The line count. */
242     int yy_bs_column; /**< The column count. */
243     
244         /* Whether to try to fill the input buffer when we reach the
245          * end of it.
246          */
247         int yy_fill_buffer;
248
249         int yy_buffer_status;
250
251 #define YY_BUFFER_NEW 0
252 #define YY_BUFFER_NORMAL 1
253         /* When an EOF's been seen but there's still some text to process
254          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
255          * shouldn't try reading from the input source any more.  We might
256          * still have a bunch of tokens to match, though, because of
257          * possible backing-up.
258          *
259          * When we actually see the EOF, we change the status to "new"
260          * (via surf_parse_restart()), so that the user can continue scanning by
261          * just pointing surf_parse_in at a new input file.
262          */
263 #define YY_BUFFER_EOF_PENDING 2
264
265         };
266 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
267
268 /* Stack of input buffers. */
269 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
270 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
271 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
272
273 /* We provide macros for accessing buffer states in case in the
274  * future we want to put the buffer states in a more general
275  * "scanner state".
276  *
277  * Returns the top of the stack, or NULL.
278  */
279 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
280                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
281                           : NULL)
282
283 /* Same as previous macro, but useful when we know that the buffer stack is not
284  * NULL or when we need an lvalue. For internal use only.
285  */
286 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
287
288 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
289 static char yy_hold_char;
290 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
291 int surf_parse_leng;
292
293 /* Points to current character in buffer. */
294 static char *yy_c_buf_p = (char *) 0;
295 static int yy_init = 0;         /* whether we need to initialize */
296 static int yy_start = 0;        /* start state number */
297
298 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
299  * instead of setting up a fresh surf_parse_in.  A bit of a hack ...
300  */
301 static int yy_did_buffer_switch_on_eof;
302
303 void surf_parse_restart (FILE *input_file  );
304 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
305 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size  );
306 void surf_parse__delete_buffer (YY_BUFFER_STATE b  );
307 void surf_parse__flush_buffer (YY_BUFFER_STATE b  );
308 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
309 void surf_parse_pop_buffer_state (void );
310
311 static void surf_parse_ensure_buffer_stack (void );
312 static void surf_parse__load_buffer_state (void );
313 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
314
315 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
316
317 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size  );
318 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str  );
319 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len  );
320
321 void *surf_parse_alloc (yy_size_t  );
322 void *surf_parse_realloc (void *,yy_size_t  );
323 void surf_parse_free (void *  );
324
325 #define yy_new_buffer surf_parse__create_buffer
326
327 #define yy_set_interactive(is_interactive) \
328         { \
329         if ( ! YY_CURRENT_BUFFER ){ \
330         surf_parse_ensure_buffer_stack (); \
331                 YY_CURRENT_BUFFER_LVALUE =    \
332             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
333         } \
334         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
335         }
336
337 #define yy_set_bol(at_bol) \
338         { \
339         if ( ! YY_CURRENT_BUFFER ){\
340         surf_parse_ensure_buffer_stack (); \
341                 YY_CURRENT_BUFFER_LVALUE =    \
342             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
343         } \
344         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
345         }
346
347 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
348
349 /* Begin user sect3 */
350
351 #define surf_parse_wrap() 1
352 #define YY_SKIP_YYWRAP
353
354 typedef unsigned char YY_CHAR;
355
356 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
357
358 typedef int yy_state_type;
359
360 extern int surf_parse_lineno;
361
362 int surf_parse_lineno = 1;
363
364 extern char *surf_parse_text;
365 #define yytext_ptr surf_parse_text
366
367 static yy_state_type yy_get_previous_state (void );
368 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
369 static int yy_get_next_buffer (void );
370 static void yy_fatal_error (yyconst char msg[]  );
371
372 /* Done after the current pattern has been matched and before the
373  * corresponding action - sets up surf_parse_text.
374  */
375 #define YY_DO_BEFORE_ACTION \
376         (yytext_ptr) = yy_bp; \
377         surf_parse_leng = (size_t) (yy_cp - yy_bp); \
378         (yy_hold_char) = *yy_cp; \
379         *yy_cp = '\0'; \
380         (yy_c_buf_p) = yy_cp;
381
382 #define YY_NUM_RULES 336
383 #define YY_END_OF_BUFFER 337
384 /* This struct is not used in this scanner,
385    but its presence is necessary. */
386 struct yy_trans_info
387         {
388         flex_int32_t yy_verify;
389         flex_int32_t yy_nxt;
390         };
391 static yyconst flex_int16_t yy_accept[1941] =
392     {   0,
393         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
394         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
395         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
396         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
397         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
398         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
399         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
400         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
401         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
402         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
403
404         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
405         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
406         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
407         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
408         0,    0,  337,  335,   15,   10,   10,   15,   15,  315,
409        10,  315,    5,    6,    5,    8,    9,    8,  331,  323,
410       324,  332,  329,  332,  330,  334,  323,  324,  334,  335,
411        25,   10,   25,   25,   25,   23,   25,   25,   29,   10,
412        29,   29,  335,  335,   29,   35,   10,   35,   35,   35,
413        33,   35,   39,   10,   39,   49,   10,   49,   49,   49,
414
415        47,   49,   49,   49,  332,  331,   70,   10,   70,   70,
416        70,   68,   70,   70,   70,   70,   74,   10,   74,  335,
417        74,   94,   10,   94,   94,   94,   92,   94,   94,   94,
418        94,   98,   10,   98,  110,   10,  110,  110,  110,  108,
419       110,  110,  110,  110,  114,   10,  114,  120,   10,  120,
420       120,  120,  118,  120,  335,  335,  124,   10,  124,  150,
421        10,  150,  150,  150,  148,  150,  150,  150,  150,  150,
422       154,   10,  154,  154,  162,   10,  162,  162,  162,  160,
423       162,  162,  166,   10,  166,  188,   10,  188,  188,  188,
424       186,  188,  188,  188,  188,  188,  188,  192,   10,  192,
425
426       198,   10,  198,  198,  198,  196,  198,  202,   10,  202,
427       226,   10,  226,  226,  226,  224,  226,  226,  226,  226,
428       230,   10,  230,  230,  248,   10,  248,  248,  248,  246,
429       248,  248,  248,  335,  252,   10,  252,  252,  274,   10,
430       274,  274,  274,  272,  274,  274,  274,  274,  278,   10,
431       278,  278,  284,   10,  284,  284,  284,  282,  284,  288,
432        10,  288,  300,   10,  300,  300,  300,  298,  300,  300,
433       300,  300,  304,   10,  304,  335,  304,  310,   10,  310,
434       310,  310,  308,  310,  314,   10,  314,   10,    0,    2,
435         2,    0,    4,    7,  326,  325,    0,    0,    0,    0,
436
437         0,    0,    0,   24,   26,   26,   26,    0,    0,    0,
438         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
439        34,   36,   36,    0,   48,   50,   50,   50,   50,    0,
440         0,    0,   69,   71,   71,   71,   71,   71,   71,   71,
441         0,    0,   93,   95,   95,   95,   95,   95,    0,  109,
442       111,  111,  111,  111,  111,    0,  119,  121,  121,    0,
443       149,  151,  151,  151,  151,  151,  151,  151,    0,  161,
444       163,  163,  163,    0,  187,  189,  189,  189,  189,  189,
445       189,  189,  189,  189,    0,  197,  199,  199,    0,  225,
446       227,  227,  227,  227,  227,  227,    0,  247,  249,  249,
447
448       249,  249,  249,    0,    0,  273,  275,  275,  275,  275,
449       275,    0,  283,  285,  285,    0,  299,  301,  301,  301,
450       301,  301,    0,    0,  309,  311,  311,    0,    0,    0,
451         0,    0,    3,    0,    0,    0,    0,    0,    0,    0,
452       333,    0,   26,   26,    0,    0,    0,    0,    0,    0,
453         0,    0,    0,    0,    0,    0,    0,    0,    0,   36,
454         0,    0,   50,    0,    0,   50,    0,    0,    0,  328,
455        71,    0,    0,   71,   71,   71,   71,    0,    0,    0,
456        95,   95,   95,   95,    0,    0,    0,    0,  111,  111,
457       111,    0,    0,  121,    0,    0,  151,    0,    0,  151,
458
459       151,  151,  151,    0,    0,    0,    0,  163,    0,    0,
460       189,    0,    0,    0,    0,  189,  189,  189,  189,  189,
461         0,    0,    0,    0,    0,    0,  227,    0,    0,  227,
462       227,  227,    0,    0,  249,  249,  249,  249,    0,    0,
463         0,  275,  275,  275,  275,    0,    0,    0,    0,    0,
464         0,  301,  301,  301,  301,    0,    0,    0,  311,    0,
465         0,    0,   14,    1,    0,    0,  321,    0,    0,    0,
466       318,  317,    0,    0,   26,   26,    0,    0,   28,    0,
467         0,    0,    0,    0,    0,    0,    0,    0,   99,    0,
468         0,    0,    0,   36,    0,    0,   38,    0,   50,    0,
469
470        42,   41,   50,    0,    0,    0,   52,    0,   71,    0,
471        55,   54,    0,    0,   71,    0,    0,   71,    0,    0,
472        73,    0,    0,   95,   95,   95,   95,    0,    0,   97,
473         0,    0,  101,  100,  111,  111,  111,    0,    0,  113,
474         0,  121,    0,    0,  123,    0,  151,    0,  127,  126,
475       151,  151,  151,  151,    0,    0,  153,    0,    0,  157,
476       156,  163,    0,    0,  165,    0,  189,  189,    0,  179,
477       178,    0,  169,  168,    0,    0,  189,  189,  189,  189,
478         0,    0,  191,    0,    0,  195,  194,    0,    0,  201,
479         0,  227,    0,  205,  204,  227,  227,  227,    0,    0,
480
481       229,    0,  249,    0,    0,    0,    0,  249,    0,    0,
482         0,  251,    0,  275,    0,    0,  275,    0,    0,    0,
483         0,  277,    0,    0,  281,  280,    0,    0,  287,    0,
484       301,  301,  301,  301,    0,    0,  303,    0,    0,  311,
485         0,    0,  313,    0,    0,    0,  322,  316,    0,    0,
486         0,   26,   26,    0,    0,    0,  125,    0,  203,    0,
487         0,    0,   99,    0,    0,    0,    0,    0,    0,    0,
488         0,    0,   50,    0,    0,   71,    0,   59,   58,    0,
489         0,    0,   57,   56,   71,    0,  155,   95,   95,    0,
490         0,   95,    0,  111,  111,  111,    0,  121,    0,  151,
491
492       151,  151,  151,  151,    0,  163,    0,  189,  189,    0,
493       181,  180,  189,  189,  189,  189,    0,    0,  227,  227,
494       227,  227,    0,  249,    0,  235,  234,    0,  233,  232,
495       249,    0,    0,  275,    0,  257,  256,  275,    0,  255,
496       254,    0,    0,  301,    0,    0,  301,  301,    0,    0,
497       311,    0,    0,    0,    0,   12,    0,  319,  320,    0,
498        26,   26,    0,    0,    0,  125,    0,  203,    0,    0,
499       253,   40,  253,    0,    0,    0,   32,   31,    0,    0,
500        44,   43,   50,    0,    0,   71,    0,   61,   60,   71,
501         0,  155,   95,   95,    0,    0,    0,   95,    0,  111,
502
503       111,  111,    0,  112,  121,    0,  151,  151,  151,    0,
504         0,    0,    0,  151,    0,    0,    0,    0,    0,    0,
505       189,    0,    0,  189,  189,  189,    0,    0,  227,  227,
506       227,    0,    0,  227,    0,  249,  249,    0,    0,  275,
507       275,    0,    0,  301,    0,  291,  290,  301,  301,    0,
508         0,    0,    0,    0,    0,    0,    0,   11,    0,   26,
509        26,   26,    0,    0,    0,    0,    0,   53,  253,    0,
510       193,   40,    0,    0,   50,    0,    0,   71,   71,    0,
511        95,   95,    0,    0,    0,    0,    0,    0,    0,    0,
512        95,    0,    0,    0,  111,    0,    0,    0,    0,    0,
513
514       151,  151,  151,    0,  129,  128,    0,    0,    0,  151,
515         0,  152,    0,  159,  158,    0,  164,    0,  183,  182,
516         0,    0,    0,  177,  176,    0,    0,  189,    0,    0,
517         0,    0,  227,  227,  227,    0,    0,    0,  227,    0,
518       228,    0,    0,  249,    0,    0,    0,    0,  275,    0,
519         0,  301,  301,  301,    0,    0,    0,  307,  306,    0,
520         0,    0,    0,    0,    0,    0,   26,   26,    0,  167,
521       115,   30,  289,   53,    0,  193,    0,    0,   50,    0,
522         0,   51,   71,   71,    0,   95,    0,    0,    0,    0,
523         0,    0,    0,    0,    0,    0,   95,    0,    0,  103,
524
525       102,    0,    0,    0,  105,  104,    0,  117,  116,    0,
526       151,  151,  151,    0,    0,  151,    0,  185,  184,    0,
527       171,  170,    0,    0,    0,  173,  172,    0,    0,  227,
528         0,    0,  227,  227,    0,    0,  227,    0,    0,    0,
529       249,    0,    0,    0,    0,    0,  275,    0,  276,    0,
530       301,  301,  301,    0,    0,    0,    0,    0,    0,   16,
531         0,   18,   17,   26,   26,    0,  167,  115,   30,  289,
532         0,    0,    0,   50,  327,   71,   71,    0,   72,   95,
533         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
534         0,    0,    0,    0,    0,  107,  106,    0,  151,  151,
535
536       151,    0,    0,    0,    0,  151,    0,  175,  174,    0,
537         0,  200,  227,    0,  211,  210,  227,  227,    0,    0,
538         0,    0,  227,    0,    0,    0,    0,  249,  279,    0,
539         0,    0,    0,    0,  275,    0,    0,    0,  301,  301,
540         0,  305,    0,    0,    0,    0,   16,   26,   26,    0,
541         0,    0,    0,   37,   50,    0,    0,   71,   95,    0,
542         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
543         0,    0,   85,   84,    0,    0,  122,  151,  151,  151,
544         0,  135,    0,  134,  151,    0,  190,    0,    0,  227,
545       227,  227,    0,  215,    0,  214,  227,    0,    0,    0,
546
547         0,    0,    0,    0,    0,  279,    0,    0,    0,    0,
548         0,    0,    0,  275,    0,    0,  293,  292,    0,    0,
549       301,    0,  302,  305,    0,    0,    0,    0,    0,    0,
550        26,    0,   27,    0,    0,   50,    0,    0,    0,   71,
551        95,    0,    0,    0,    0,    0,    0,    0,    0,    0,
552         0,    0,    0,    0,  151,  151,  151,  137,  136,    0,
553         0,    0,  207,  206,  227,  227,  227,  217,  216,    0,
554         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
555         0,    0,    0,    0,    0,    0,    0,  275,  275,    0,
556       286,    0,  297,  296,    0,    0,    0,  312,    0,    0,
557
558         0,    0,   20,   19,    0,    0,  231,    0,    0,    0,
559         0,    0,    0,    0,   71,   95,    0,    0,    0,    0,
560         0,    0,    0,   83,    0,    0,    0,   82,    0,  151,
561       151,  151,    0,  139,  138,  227,  227,  227,    0,  219,
562       218,    0,    0,    0,    0,    0,    0,    0,    0,    0,
563         0,    0,    0,    0,    0,    0,    0,    0,  275,  275,
564         0,  295,  294,    0,    0,    0,    0,   22,   21,  231,
565         0,    0,   46,   45,    0,    0,    0,    0,   71,    0,
566         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
567         0,    0,    0,    0,  151,  151,  151,  227,    0,    0,
568
569       227,    0,    0,    0,    0,    0,    0,    0,    0,    0,
570         0,    0,    0,    0,    0,    0,    0,    0,  275,  275,
571         0,    0,    0,    0,   75,    0,    0,    0,    0,    0,
572         0,    0,   91,   90,   87,   89,   86,   88,    0,    0,
573        81,    0,    0,   80,    0,    0,  131,  130,  151,  151,
574       151,  151,  227,    0,  213,  212,  227,    0,    0,    0,
575         0,    0,    0,  245,    0,  244,    0,    0,  250,    0,
576         0,    0,    0,    0,    0,    0,    0,  275,    0,    0,
577       275,    0,    0,    0,    0,    0,    0,   75,    0,    0,
578         0,    0,    0,   63,   62,    0,    0,    0,    0,    0,
579
580       151,  151,  151,  151,    0,    0,    0,    0,    0,    0,
581         0,    0,    0,    0,  243,  242,    0,    0,    0,    0,
582         0,    0,    0,  261,  260,  275,    0,  259,  258,  275,
583         0,    0,    0,    0,    0,    0,    0,   67,    0,   66,
584         0,   79,    0,   78,    0,   96,  151,  151,  151,  151,
585         0,  209,  208,    0,    0,    0,    0,    0,  239,    0,
586         0,  238,    0,    0,  269,    0,    0,  268,  275,  275,
587         0,    0,    0,   12,    0,   12,    0,    0,    0,    0,
588         0,  151,  151,  151,  151,    0,    0,    0,    0,  241,
589       237,  240,  236,  271,  267,  270,  266,  275,  275,    0,
590
591         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
592         0,    0,    0,    0,  151,    0,    0,    0,    0,    0,
593         0,  275,  275,    0,    0,   65,   64,   77,   76,    0,
594       133,  132,    0,  143,  142,    0,  141,  140,  151,    0,
595       147,  146,    0,    0,    0,    0,  275,  275,    0,   11,
596       151,    0,    0,    0,    0,  275,  275,    0,  151,    0,
597         0,    0,    0,  275,  275,    0,  151,    0,    0,    0,
598         0,  275,  275,    0,    0,    0,    0,  221,    0,  220,
599       275,  275,    0,    0,  145,  144,  223,  222,  275,  275,
600         0,  275,  275,    0,  275,  275,    0,    0,  275,  275,
601
602         0,    0,  275,  275,    0,    0,  275,  275,    0,    0,
603         0,    0,    0,    0,    0,    0,    0,  265,  264,    0,
604       263,  262,    0,    0,    0,    0,    0,    0,    0,    0,
605         0,    0,    0,    0,    0,    0,    0,    0,   13,    0
606     } ;
607
608 static yyconst flex_int32_t yy_ec[256] =
609     {   0,
610         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
611         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
612         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
613         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
614         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
615        13,   14,   13,   13,   13,   15,   13,   16,   17,   18,
616        19,   20,   21,    1,   22,   23,   24,   25,   26,   27,
617        28,   29,   30,   28,   31,   32,   33,   34,   35,   36,
618        28,   37,   38,   39,   28,   40,   41,   28,   42,   28,
619        43,    1,   44,    1,   45,    1,   46,   47,   48,   49,
620
621        50,   51,   52,   53,   54,   28,   55,   56,   57,   58,
622        59,   60,   61,   62,   63,   64,   65,   66,   67,   68,
623        69,   28,    1,    1,    1,    1,    1,    1,    1,    1,
624         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
625         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
626         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
627         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
628         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
629         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
630         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
631
632         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
633         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
634         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
635         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
636         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
637         1,    1,    1,    1,    1
638     } ;
639
640 static yyconst flex_int32_t yy_meta[70] =
641     {   0,
642         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
643         3,    1,    4,    4,    4,    5,    6,    1,    7,    8,
644         1,    9,    9,    9,    9,    9,    9,    5,    5,    5,
645         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
646         5,    5,    1,    1,    5,    9,    9,    9,    9,    9,
647         9,    5,    5,    5,    5,    5,    5,    5,    5,    5,
648         5,    5,    5,    5,    5,    5,    5,    5,    5
649     } ;
650
651 static yyconst flex_int16_t yy_base[2172] =
652     {   0,
653         0,    0,    0,    3,    6,    9,   12,   29,   16,   19,
654        14,   17,   33,   36,   49,   55,   45,   61,   66,   72,
655       105,  173,   75,   78,   83,  125,  128,  132,  135,  138,
656       193,  196,  200,  203,  206,  224,  242,  293,  262,  265,
657       344,  404,  271,  273,  464,  527,  269,  316,  320,  323,
658       364,  367,  371,  374,  590,  654,  424,  427,  718,  781,
659       431,  434,  844,  907,  484,  487,  491,  494,  497,  547,
660       970, 1033,  550,  554,  557,  560,  610,  613,  617,  621,
661      1096, 1162,  674,  677, 1228,    0,  681,  685, 1297, 1351,
662       738,  741, 1405, 1468,  745,  748,  751,  801,  804,  808,
663
664       811,  814, 1531, 1594,  864,  867,  871,  874,  877,  927,
665       930,  934, 1657, 1720,  937,  940,  990,  993,  997, 1000,
666      1003, 1053, 1783, 1837, 1056, 1060, 1891, 1954, 1063, 1066,
667      1116, 1119, 1123, 1126, 1129, 1182, 2017, 2083, 1185, 1189,
668         0,    0, 4565, 7099, 7099,   95,  100,   29,   41, 7099,
669       155,   51, 7099, 7099, 4554, 7099, 7099, 4542, 7099, 4557,
670      4556,  580, 7099, 7099, 7099, 7099, 4550, 4550, 4497,  210,
671      7099,  158, 4520,    0,  142, 7099, 4485, 4477, 7099,  162,
672      2145, 1321, 1326, 1379,  208, 7099,  165, 4512,    0,  149,
673      7099, 4469, 7099,  230,  378, 7099,  233, 4502,    0,  217,
674
675      7099, 4466, 4470, 4467,  379, 4465, 7099,  326, 4482,    0,
676       311, 7099, 4451, 4450,  238, 4419, 7099,  377,  381,  562,
677       438, 7099,  458, 4459,    0,  435, 7099, 4418, 4420, 4420,
678      4404, 7099,  520,  498, 7099,  640, 4445,    0,  499, 7099,
679      4409, 4394, 4409, 4387, 7099,  644,  561, 7099,  647, 4417,
680         0,  564, 7099, 4386, 1381,  753, 7099,  703,  689, 7099,
681       709, 4414,    0,  632, 7099, 4360,   34, 4379, 4364, 4358,
682      7099,  712, 1130,  752, 7099,  773, 4399,    0,  665, 7099,
683      4368, 4367, 7099,  834,  818, 7099,  894, 4381,    0,  878,
684      7099,   24, 4351, 4352,   93, 4340, 4317, 7099,  898,  941,
685
686      7099,  901, 4360,    0,  885, 7099, 4326, 7099,  957,  942,
687      7099,  962, 4354,    0, 1004, 7099, 4323, 4319, 4320,   80,
688      7099,  965, 1316, 1005, 7099, 1150, 4341,    0, 1007, 7099,
689      4308, 4292,   26, 1068, 7099, 1153, 1317, 1070, 7099, 1156,
690      4333,    0, 1067, 7099, 4300, 4279, 4278, 4272, 7099, 1192,
691      1322, 1192, 7099, 1206, 4298,    0, 1140, 7099, 4267, 7099,
692      1215, 1318, 7099, 1218, 4291,    0, 1193, 7099, 4245, 4249,
693      4246, 4235, 7099, 1221, 1445, 1382, 1424, 7099, 1342, 4273,
694         0, 1194, 7099, 4245, 7099, 1346, 1426, 1389,   18, 4221,
695      7099, 4278, 4266, 7099, 7099, 7099, 1383,  282, 4214, 4207,
696
697      4205, 4248, 4198, 7099,    0, 4191, 4195, 4190, 4192, 4183,
698      4182, 4178, 4181, 4171,  166, 4182, 4167, 4169, 4155,  398,
699      7099,    0, 4157, 4157, 7099,    0, 4154, 1490, 4146,  410,
700      4135, 4177, 7099,    0, 4137, 1494, 4126, 4146, 4120, 4127,
701      4113, 4107, 7099,    0, 4110, 4116, 4097, 4102, 4083, 7099,
702         0, 1497, 4095, 4094, 4091, 4077, 7099,    0, 4068, 4067,
703      7099,    0, 4068, 1500, 4048, 4042, 4042, 4061, 4052, 7099,
704         0, 1504, 4048, 4028, 7099,    0, 4037, 1551, 1554, 4017,
705      4012, 4028, 4027, 4024, 4018, 7099,    0, 1557, 4003, 7099,
706         0, 3993, 1560, 3984, 3996, 3994, 3971, 7099,    0, 3948,
707
708      3947, 3961, 3951, 3951, 3942, 7099,    0, 3938, 3923, 3926,
709      3932, 3913, 7099,    0, 1563, 3918, 7099,    0, 3914, 3901,
710      3907, 3915, 3900, 3896, 7099,    0, 3896, 3900, 3924, 3931,
711       419, 3882, 7099, 1441,    0, 3865, 3865, 3898, 3893, 3849,
712      7099, 3861, 3842, 3846, 1614, 1624, 3831, 3833, 3824, 3836,
713      3820, 3809, 3804, 3792, 3792, 3793, 3773, 3790, 3760, 3774,
714      1619, 1627, 3772, 1679, 1581, 3763, 3791, 1684, 1687, 7099,
715      3764, 1690, 1646, 1693, 3754, 1740, 3765, 1748, 1753, 3750,
716      3734, 3733, 3736, 3736, 1758, 1803, 1806, 1773, 3731, 3719,
717      3720, 1809, 1812, 3721, 1815, 1857, 3711, 1864, 1867, 3709,
718
719      3709, 3703, 3687, 1911, 1917, 1920, 1923, 3681, 1975, 1979,
720       284, 1982, 1985, 2040, 2043, 2051, 3695, 3692, 3684, 3686,
721      2054, 2060, 2063, 2069, 2103, 2108, 3680, 2111, 2115, 3676,
722      3662, 3644, 2131, 2134, 3652, 2137, 2140, 3648, 3641, 2143,
723      2158, 3641, 2166, 3613, 2170, 2177, 2180, 2173, 2209, 2200,
724      2220, 3609, 3592, 3594, 3582, 2223, 2226, 3591, 3576, 2229,
725      2232, 3609, 7099, 7099,  199, 3571, 7099, 3608, 3607, 3559,
726      7099, 7099, 3545, 3544, 3538, 3528, 2251, 2255, 7099, 2258,
727      3518, 3529, 3510, 3517, 3516, 3512, 3509, 3493, 1460, 3507,
728      3489, 3504, 3486, 2261, 2264, 2279, 7099, 2283, 2287, 2305,
729
730      7099, 7099, 2293, 3511, 2298, 2313, 7099, 2317, 3473, 2320,
731      7099, 7099, 2332, 2336, 2345, 2351, 2356, 3484, 2364, 2369,
732      7099, 2372, 3472, 3480, 3479, 2375, 3477, 2378, 2383, 7099,
733      2393, 2398, 7099, 7099, 3461, 3466, 3458, 2406, 2412, 7099,
734      2415, 3450, 2418, 2421, 7099, 2425, 3447, 2440, 7099, 7099,
735      3439, 3437, 3433, 3443, 2448, 2451, 7099, 2454, 2457, 7099,
736      7099, 3442, 2473, 2478, 7099, 2481, 3423, 3439, 2486, 7099,
737      7099, 2500, 7099, 7099, 2508, 2512, 3422, 3424, 3429, 3417,
738      2521, 2526, 7099, 2529, 2533, 7099, 7099, 2541, 2548, 7099,
739      2551, 3399, 2554, 7099, 7099, 3407, 3409, 3404, 2562, 2570,
740
741      7099, 2573, 3393, 2576, 2582, 2594, 2597, 3398, 3391, 2605,
742      2608, 7099, 2615, 3386, 2618, 2630, 3387, 2638, 2641, 2649,
743      2652, 7099, 2656, 2659, 7099, 7099, 2671, 2675, 7099, 2679,
744      3370, 2682, 3387, 3360, 2685, 2690, 7099, 2694, 3358, 3371,
745      2700, 2704, 7099, 2709,  270, 2713, 7099, 7099, 3402, 3400,
746      3365, 3355, 3390, 2723, 3337, 3352, 1523, 3326, 1526, 3339,
747      3325, 3333, 1589, 3327, 3323, 3307, 3306, 2728, 2736, 2746,
748      2752, 2756, 3305, 3331, 2765, 3305, 2770, 7099, 7099, 2778,
749      2786, 2797, 7099, 7099, 3300, 2805, 1711, 3300, 3283, 2808,
750      2812, 3284, 2820, 3259, 3279, 3255, 2826, 3273, 2829, 3274,
751
752      3257, 3241, 2832, 2839, 2835, 2857, 2860, 2863, 2867, 2885,
753      7099, 7099, 2871, 2893, 2898, 2902, 2905, 2912, 3249, 3254,
754      3241, 2920, 2925, 3239, 2931, 7099, 7099, 2944, 7099, 7099,
755      3226, 3273, 2939, 3223, 2954, 7099, 7099, 3216, 2969, 7099,
756      7099, 2979, 2982, 3224, 2985, 2988, 3212, 3230, 3003, 3215,
757      3006, 3009,  301, 3251, 3012, 7099, 3249, 7099, 7099, 3208,
758      3208,    4, 3015, 3201, 3202, 1714, 3196, 1743, 3179, 3176,
759      3018, 1818, 2000, 3216, 3168, 3024, 7099, 7099, 3036, 3043,
760      7099, 7099, 3175, 3185, 3055, 3159, 3061, 7099, 7099, 3146,
761      3051, 1768, 3147, 3141, 3079, 1610, 1852, 3149, 3087, 3090,
762
763      3093, 3096, 3100, 7099, 3114, 3119, 3152, 3144, 3129, 3122,
764      3125, 3140, 3144, 3136, 3152, 3158, 3164, 3172, 3176, 3179,
765      3187, 3194, 3198, 3206, 3212, 3215, 3218, 3224, 3137, 3115,
766      3119, 3233, 3237, 3118, 3245, 3251, 3254, 3116, 3257, 3260,
767      3281, 3284, 3289, 3104, 3292, 7099, 7099, 3104, 3093, 3308,
768      3102, 3311, 3315, 3329, 1191,  131,  493, 7099, 3089, 3333,
769      3336, 3340, 3343, 3083, 3087, 3088, 3073, 1883, 1945, 3078,
770      1948, 2008, 3084, 3358, 3082, 3097, 3362, 3055, 3059, 3365,
771      3052, 3368, 3068, 3084, 3065, 3051, 3044, 3057, 3055, 3041,
772      3024, 3372, 3377, 3391, 3401, 3406, 3409, 3424, 3427, 3435,
773
774      3018, 3007, 3016, 3438, 7099, 7099, 3447, 3026, 3025, 2996,
775      3455, 7099, 3458, 7099, 7099, 3466, 7099, 3470, 7099, 7099,
776      3478, 3485, 3496, 7099, 7099, 3504, 3507, 3515, 3518, 3522,
777      3536, 3539, 2984, 3542, 2999, 3545, 3007, 3006, 2982, 3560,
778      7099, 3563, 3566, 3574, 2967, 3586, 3581, 3601, 3592, 3595,
779      3610, 2966, 2944, 2946, 3614, 2940, 3617, 7099, 7099, 3629,
780        74,  210,  220, 2939, 3633, 3636, 3644, 3651, 3658, 2011,
781      3662, 3665, 3669, 3672, 2930, 3678, 2934, 3681, 2925, 2934,
782      3684, 7099, 2912, 2923, 3687, 2905, 3690, 3694, 2944, 2930,
783      2923, 2914, 2932, 2918, 2912, 2908, 3708, 3715, 3719, 7099,
784
785      7099, 3711, 3730, 3738, 7099, 7099, 3746, 7099, 7099, 3754,
786      2882, 2886, 2871,  367,  369, 2870, 3758, 7099, 7099, 3766,
787      7099, 7099, 3774, 3777, 3785, 7099, 7099, 3793, 3796, 2866,
788      3799, 3802, 2867, 2853,  666,  733, 2855, 3817,  490,  541,
789      3825, 2852, 3828, 3831,  553,  594, 3839, 3843, 7099, 3847,
790      3850, 2853, 2841, 3857, 2829, 3868, 3862,  313,  443, 3872,
791      3877, 7099, 7099, 3887, 3890, 3896, 3899, 3910, 3915, 3919,
792      2836, 2827, 3925, 2819, 7099, 3928, 2817, 3931, 7099, 2833,
793      3934,  482,  736, 2847, 2847, 2831, 2830, 2823, 2827, 2824,
794      2822, 3946, 3953, 3964, 3967, 7099, 7099, 3975, 2793, 2787,
795
796      2790, 2799, 2814, 2792, 2808, 2755, 3979, 7099, 7099, 3987,
797      3990, 7099, 3994, 3997, 7099, 7099, 2750, 2739, 2769, 2788,
798      2766, 2782, 2736, 2744,  796, 2743,  805, 4012, 4015, 4018,
799      2738,  849, 2737,  856, 4022, 4026, 4030, 4041, 4033, 2725,
800      4051, 4054, 4057, 4060,  152,  426, 4066, 4070, 4083, 4088,
801      2706, 2706, 4091, 7099, 2694, 4094, 4097, 2703, 2698, 2716,
802      2716, 2709, 2711, 2704, 2694, 2694, 2686, 2690, 2678, 2684,
803      2672, 4113, 7099, 7099, 4121, 4124, 7099, 2636, 2642, 2613,
804      2664, 7099, 2658, 7099, 4127, 4132, 7099, 4135, 4147, 2615,
805      2608, 2593, 2642, 7099, 2637, 7099, 4155, 2612, 2592, 2603,
806
807      2601, 2588, 2598, 4158, 4161, 4169, 4178, 2597, 2577, 2588,
808      2579, 2566, 2576, 4181, 4184, 4187, 7099, 7099, 4199, 4203,
809      4212, 4217, 7099, 4220, 4223,  714,  598,  801, 4236, 4243,
810      4254, 4257, 7099, 2538, 2539, 4260, 4263,  549,  671, 2528,
811      2534, 2531, 2528, 2521, 2513, 2486, 2461, 2369,   17,    3,
812        91,  121,  269, 4272,  266,  310,  345, 7099, 7099, 4278,
813      4281, 4292, 7099, 7099,  378,  401,  438, 7099, 7099, 4300,
814      4303,  480,  516,  544,  569,  588,  646, 4311,  737,  786,
815      4319,  653,  652,  681,  709,  758,  791, 4322, 4325, 4329,
816      7099, 4334, 7099, 7099, 4343, 4348, 4356, 7099,  903,  814,
817
818      1003, 4361, 7099, 7099, 4369, 4375, 4387,  846, 4390, 4393,
819       898,  934,  920,  964,  940, 4401,  980,  989,  983,  998,
820      1008, 1007, 1007, 7099, 1057, 1058, 1043, 7099, 4404, 4408,
821      1041, 1047, 4412, 7099, 7099, 1038, 4426, 1047, 4429, 7099,
822      7099, 1075, 1100, 1112, 1106, 1110, 1122, 1114, 1152, 1166,
823      1176, 4437, 1175, 1190, 1287, 1282, 1284, 1298, 4440, 4444,
824      4458, 7099, 7099, 1401, 1315, 4466, 4469, 7099, 7099, 4447,
825      1261, 4478, 7099, 7099, 1310, 1302, 1377, 1367, 4486, 4491,
826      4494, 1398, 1421, 1421, 1423, 1405, 1401, 1438, 1416, 1414,
827      1451, 4504, 4509, 4512, 1416, 1455, 1422, 1440, 4523, 4527,
828
829      1426, 1480, 1488, 1486, 1491, 1521, 1534, 1563, 1533, 1563,
830      1540, 4535, 1551, 1560, 1554, 1559, 1584, 1585, 4541, 4544,
831      1600, 4547, 4554, 4573, 4566, 1590, 1600, 1601, 1611, 4581,
832      4588, 4599, 7099, 7099, 7099, 7099, 7099, 7099, 1609, 1616,
833      7099, 1621, 1625, 7099, 4607, 4610, 7099, 7099, 1602, 1623,
834      1629, 1638, 4618, 4622, 7099, 7099, 4630, 1674, 1668, 1680,
835      1683, 1676, 1694, 7099, 1730, 7099, 1739, 4636, 7099, 1728,
836      1720, 1733, 1740, 1733, 1755, 4639, 4642, 4650, 4657, 4661,
837      4670, 1804, 4675, 4678, 4698, 4737, 4781, 4688, 1756, 1822,
838      1805, 1822, 4706, 7099, 7099, 1803, 1830, 1823, 1855, 4727,
839
840      1816, 1830, 1821, 1818, 4717, 4757, 4731, 4765, 1863, 1865,
841      1901, 1891, 1893, 1919, 7099, 7099, 1904, 1908, 1930, 1912,
842      1915, 1932, 4801, 7099, 7099, 4773, 4809, 7099, 7099, 4817,
843      1986, 4826, 2102, 2030, 4871, 4915, 1929, 7099, 1931, 7099,
844      1914, 7099, 1931, 7099, 4835, 7099, 1930, 1924, 1943, 1943,
845      4838, 7099, 7099, 4847, 2013, 2041, 1990, 1994, 7099, 1999,
846      2024, 7099, 2063, 2070, 7099, 2068, 2072, 7099, 4862, 4865,
847      2133, 2231, 2111, 2093, 2100, 2116, 4883, 2114, 2133, 2110,
848      2113, 4891, 4894, 4935, 4938, 2136, 2135, 2143, 2142, 7099,
849      7099, 7099, 7099, 7099, 7099, 7099, 7099, 4941, 4944, 4905,
850
851      2180, 2166, 2182, 4948, 2188, 2186, 2200, 2201, 4962, 4967,
852      4980, 4983, 4998, 5001, 2152, 5009, 5012, 2177, 2197, 2182,
853      2216, 5020, 5023, 5028, 2221, 7099, 7099, 7099, 7099, 5031,
854      7099, 7099, 5041, 7099, 7099, 5049, 7099, 7099, 2192, 5058,
855      7099, 7099, 2208, 2208, 2211, 2211, 5067, 5070, 2230, 7099,
856      2208, 2239, 2244, 2243, 2250, 5073, 5076, 2272, 2211, 2243,
857      2268, 2262, 2280, 5079, 5097, 2293, 5100, 2299, 2321, 2302,
858      2321, 5103, 5106, 2324, 5109, 5132, 2335, 7099, 2334, 7099,
859      5140, 5143, 2336, 5161, 7099, 7099, 7099, 7099, 5169, 5172,
860      4975, 5175, 5178, 5181, 5196, 5204, 2368, 2370, 5207, 5216,
861
862      2326, 2341, 5225, 5228, 2337, 2385, 5239, 5247, 2414, 2416,
863      5253, 5267, 5258, 5276, 2428, 2452, 5284, 7099, 7099, 5293,
864      7099, 7099, 2442, 2450, 2417, 2444, 2458, 2502, 2363, 2391,
865      2474, 2506, 2485, 2499, 2561, 2477, 5301, 5304, 7099, 7099,
866      5324, 5333, 5342, 5351, 5360, 5369, 5378, 5387, 5396, 5405,
867      5414, 5423, 5432, 5441, 5450, 5459, 5468, 5477, 5486, 5495,
868      5504, 5513, 5522, 5531, 5540, 5549, 5558, 5567, 5576, 5585,
869      5594, 5603, 5612, 5621, 5630, 5639, 5648, 5657, 5666, 5673,
870      5680, 5687, 5694, 5701, 5708, 5715, 5722, 5729, 5736, 5743,
871      5750, 5757, 5764, 5771, 5778, 5785, 5794, 5799, 5804, 5809,
872
873      5814, 5819, 5824, 5829, 5834, 5839, 5844, 5849, 5856, 5861,
874      5868, 5873, 5880, 5885, 5892, 5897, 5904, 5909, 5916, 5921,
875      5930, 5936, 5943, 5951, 5958, 5966, 5973, 5981, 5988, 5996,
876      6003, 6011, 6018, 6026, 6033, 6041, 6048, 6056, 6063, 6071,
877      6078, 6086, 6094, 6101, 6109, 6116, 6124, 6131, 6139, 6147,
878      6154, 6162, 6169, 6177, 6186, 6192, 6199, 6207, 6215, 6223,
879      6231, 6239, 6246, 6254, 6261, 6269, 6276, 6284, 6291, 6299,
880      6306, 6314, 6321, 6329, 6336, 6344, 6352, 6359, 6367, 6374,
881      6382, 6389, 6397, 6405, 6412, 6420, 6427, 6435, 6444, 6453,
882      6460, 6468, 6476, 6483, 6491, 6498, 6506, 6513, 6521, 6528,
883
884      6536, 6543, 6551, 6558, 6566, 6574, 6582, 6590, 6598, 6606,
885      6613, 6621, 6628, 6636, 6643, 6651, 6659, 6666, 6674, 6682,
886      6690, 6699, 6708, 6715, 6723, 6731, 6738, 6746, 6753, 6761,
887      6768, 6776, 6784, 6792, 6800, 6807, 6815, 6823, 6831, 6839,
888      6847, 6854, 6862, 6870, 6878, 6886, 6894, 6902, 6909, 6917,
889      6925, 6934, 6943, 6951, 6959, 6967, 6974, 6982, 6989, 6997,
890      7004, 7012, 7020, 7028, 7035, 7044, 7053, 7062, 7071, 7080,
891      7089
892     } ;
893
894 static yyconst flex_int16_t yy_def[2172] =
895     {   0,
896      1941, 1941, 1942, 1942, 1942, 1942, 1943, 1943, 1944, 1944,
897      1945, 1945, 1946, 1946, 1946, 1946, 1947, 1947, 1941, 1941,
898      1948, 1948, 1949, 1949, 1949, 1949, 1941, 1941, 1949, 1949,
899      1941, 1941, 1949, 1949, 1949, 1949, 1950, 1950, 1951, 1951,
900      1952, 1952, 1946, 1946, 1953, 1953, 1954, 1954, 1941, 1941,
901      1954, 1954, 1954, 1954, 1955, 1955, 1956, 1956, 1957, 1957,
902      1958, 1958, 1959, 1959, 1941, 1941, 1941, 1941, 1960, 1960,
903      1961, 1961, 1962, 1962, 1941, 1941, 1962, 1962, 1962, 1962,
904      1963, 1963, 1964, 1964, 1940,   85, 1965, 1965, 1966, 1966,
905      1967, 1967, 1968, 1968, 1969, 1969, 1941, 1941, 1969, 1969,
906
907      1969, 1969, 1970, 1970, 1941, 1941, 1941, 1941, 1971, 1971,
908      1971, 1971, 1972, 1972, 1973, 1973, 1941, 1941, 1973, 1973,
909      1973, 1973, 1974, 1974, 1975, 1975, 1976, 1976, 1977, 1977,
910      1941, 1941, 1977, 1977, 1977, 1977, 1978, 1978, 1979, 1979,
911      1941, 1941, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
912      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
913      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
914      1940, 1940, 1940, 1980, 1940, 1940, 1980, 1980, 1940, 1940,
915      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1981, 1940,
916      1940, 1981, 1940, 1940, 1940, 1940, 1940, 1940, 1982, 1940,
917
918      1940, 1982, 1982, 1982, 1940, 1940, 1940, 1940, 1940, 1983,
919      1940, 1940, 1983, 1983, 1983, 1983, 1940, 1940, 1940, 1940,
920      1940, 1940, 1940, 1940, 1984, 1940, 1940, 1984, 1984, 1984,
921      1984, 1940, 1940, 1940, 1940, 1940, 1940, 1985, 1940, 1940,
922      1985, 1985, 1985, 1985, 1940, 1940, 1940, 1940, 1940, 1940,
923      1986, 1940, 1940, 1986, 1940, 1940, 1940, 1940, 1940, 1940,
924      1940, 1940, 1987, 1940, 1940, 1987, 1987, 1987, 1987, 1987,
925      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1988, 1940, 1940,
926      1988, 1988, 1940, 1940, 1940, 1940, 1940, 1940, 1989, 1940,
927      1940, 1989, 1989, 1989, 1989, 1989, 1989, 1940, 1940, 1940,
928
929      1940, 1940, 1940, 1990, 1940, 1940, 1990, 1940, 1940, 1940,
930      1940, 1940, 1940, 1991, 1940, 1940, 1991, 1991, 1991, 1991,
931      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1992, 1940, 1940,
932      1992, 1992, 1992, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
933      1940, 1993, 1940, 1940, 1993, 1993, 1993, 1993, 1940, 1940,
934      1940, 1940, 1940, 1940, 1940, 1994, 1940, 1940, 1994, 1940,
935      1940, 1940, 1940, 1940, 1940, 1995, 1940, 1940, 1995, 1995,
936      1995, 1995, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
937      1996, 1940, 1940, 1996, 1940, 1940, 1940, 1940, 1997, 1940,
938      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
939
940      1940, 1940, 1940, 1940, 1980, 1980, 1980, 1998, 1940, 1940,
941      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
942      1940, 1981, 1981, 1999, 1940, 1982, 1982, 1982, 1982, 1940,
943      2000, 1940, 1940, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
944      2001, 1940, 1940, 1984, 1984, 1984, 1984, 1984, 2002, 1940,
945      1985, 1985, 1985, 1985, 1985, 2003, 1940, 1986, 1986, 2004,
946      1940, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 2005, 1940,
947      1988, 1988, 1988, 2006, 1940, 1989, 1989, 1989, 1989, 1989,
948      1989, 1989, 1989, 1989, 2007, 1940, 1990, 1990, 2008, 1940,
949      2009, 2009, 2009, 2009, 2009, 2009, 2010, 1940, 2011, 2011,
950
951      2011, 2011, 2011, 1940, 2012, 1940, 2013, 2013, 2013, 2013,
952      2013, 2014, 1940, 2015, 2015, 2016, 1940, 2017, 2017, 2017,
953      2017, 2017, 2018, 1940, 1940, 2019, 2019, 2020, 2021, 1940,
954      2021, 1940, 1940, 1940, 2022, 1940, 1940, 1940, 1940, 1940,
955      1940, 1940, 2023, 2023, 2024, 2024, 1940, 1940, 1940, 1940,
956      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 2025,
957      2026, 2026, 2027, 1940, 1940, 2027, 1940, 2028, 2028, 1940,
958      2029, 1940, 1940, 2029, 2029, 2029, 2029, 2030, 2030, 1940,
959      2031, 2031, 2031, 2031, 2032, 2032, 1940, 1940, 2033, 2033,
960      2033, 2034, 2034, 2035, 2036, 2036, 2037, 1940, 1940, 2037,
961
962      2037, 2037, 2037, 2038, 2038, 1940, 1940, 2039, 2040, 2040,
963      2041, 1940, 1940, 1940, 1940, 2041, 2041, 2041, 2041, 2041,
964      2042, 2042, 1940, 1940, 2043, 2043, 2044, 1940, 1940, 2044,
965      2044, 2044, 2045, 2045, 2046, 2046, 2046, 2046, 1940, 2047,
966      2047, 2048, 2048, 2048, 2048, 2049, 2049, 1940, 1940, 2050,
967      2050, 2051, 2051, 2051, 2051, 2052, 2052, 1940, 2053, 2054,
968      2054, 2055, 1940, 1940, 2055, 1940, 1940, 2056, 1940, 1940,
969      1940, 1940, 1940, 1940, 2057, 2057, 1940, 2058, 1940, 2058,
970      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
971      1940, 1940, 1940, 2059, 1940, 2060, 1940, 2060, 2061, 1940,
972
973      1940, 1940, 2061, 1940, 1940, 2062, 1940, 2062, 2063, 1940,
974      1940, 1940, 1940, 1940, 2063, 1940, 1940, 2063, 1940, 2064,
975      1940, 2064, 1940, 2065, 2065, 2065, 2065, 1940, 2066, 1940,
976      2066, 1940, 1940, 1940, 2067, 2067, 2067, 1940, 2068, 1940,
977      2068, 2069, 1940, 2070, 1940, 2070, 2071, 1940, 1940, 1940,
978      2071, 2071, 2071, 2071, 1940, 2072, 1940, 2072, 1940, 1940,
979      1940, 2073, 1940, 2074, 1940, 2074, 2075, 2075, 1940, 1940,
980      1940, 1940, 1940, 1940, 1940, 1940, 2075, 2075, 2075, 2075,
981      1940, 2076, 1940, 2076, 1940, 1940, 1940, 1940, 2077, 1940,
982      2077, 2078, 1940, 1940, 1940, 2078, 2078, 2078, 1940, 2079,
983
984      1940, 2079, 2080, 1940, 1940, 1940, 1940, 2080, 1940, 1940,
985      2081, 1940, 2081, 2082, 1940, 1940, 2082, 1940, 1940, 1940,
986      2083, 1940, 2083, 1940, 1940, 1940, 1940, 2084, 1940, 2084,
987      2085, 2085, 2085, 2085, 1940, 2086, 1940, 2086, 1940, 2087,
988      1940, 2088, 1940, 2088, 2089, 2090, 1940, 1940, 1940, 1940,
989      1940, 2091, 2091, 2092, 1940, 1940, 1940, 1940, 1940, 1940,
990      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 2093,
991      1940, 1940, 2094, 1940, 2095, 2096, 1940, 1940, 1940, 1940,
992      1940, 1940, 1940, 1940, 2096, 2097, 1940, 2098, 2098, 1940,
993      1940, 2098, 2099, 2100, 2100, 2100, 2101, 2102, 2103, 2104,
994
995      2104, 2104, 2104, 2104, 2105, 2106, 2107, 2108, 2108, 1940,
996      1940, 1940, 2108, 2108, 2108, 2108, 2109, 2110, 2111, 2111,
997      2111, 2111, 2112, 2113, 1940, 1940, 1940, 1940, 1940, 1940,
998      2113, 1940, 2114, 2115, 1940, 1940, 1940, 2115, 1940, 1940,
999      1940, 2116, 2117, 2118, 1940, 1940, 2118, 2118, 2119, 1940,
1000      2120, 2121, 2122, 2123, 2123, 1940, 2123, 1940, 1940, 1940,
1001      2124, 2124, 2125, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1002      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 2126, 1940,
1003      1940, 1940, 2127, 1940, 2128, 2129, 1940, 1940, 1940, 2129,
1004      2130, 1940, 2131, 2131, 1940, 1940, 1940, 2131, 2132, 2133,
1005
1006      2133, 2133, 1940, 1940, 2134, 2135, 2136, 2136, 2136, 1940,
1007      1940, 1940, 1940, 2136, 2137, 1940, 1940, 2138, 1940, 1940,
1008      2139, 1940, 1940, 2139, 2139, 2139, 2140, 2141, 2142, 2142,
1009      2142, 1940, 1940, 2142, 2143, 2144, 2144, 1940, 2145, 2146,
1010      2146, 2147, 2148, 2149, 1940, 1940, 1940, 2149, 2149, 2150,
1011      1940, 1940, 1940, 2151, 2152, 2153, 2153, 1940, 1940, 2154,
1012      2154, 2154, 2155, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1013      1940, 1940, 1940, 2156, 2157, 1940, 2158, 2159, 2159, 2160,
1014      2161, 2161, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1015      2161, 2162, 1940, 1940, 2163, 1940, 1940, 1940, 1940, 2164,
1016
1017      2165, 2165, 2165, 1940, 1940, 1940, 1940, 1940, 1940, 2165,
1018      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1019      1940, 1940, 1940, 1940, 1940, 1940, 1940, 2139, 1940, 1940,
1020      2140, 2141, 2142, 2142, 2142, 1940, 1940, 1940, 2142, 1940,
1021      1940, 1940, 1940, 2144, 1940, 2145, 1940, 1940, 2146, 2147,
1022      2148, 2149, 2149, 2149, 2150, 1940, 1940, 1940, 1940, 2151,
1023      2152, 2153, 2153, 1940, 1940, 1940, 2154, 2154, 2155, 1940,
1024      1940, 1940, 1940, 1940, 1940, 1940, 1940, 2156, 2157, 1940,
1025      1940, 1940, 2159, 2159, 2160, 2161, 1940, 1940, 1940, 1940,
1026      1940, 1940, 1940, 1940, 1940, 1940, 2161, 2162, 1940, 1940,
1027
1028      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 2164,
1029      2165, 2165, 2165, 1940, 1940, 2165, 1940, 1940, 1940, 1940,
1030      1940, 1940, 1940, 1940, 1940, 1940, 1940, 2140, 2141, 2142,
1031      1940, 1940, 2142, 2142, 1940, 1940, 2142, 1940, 1940, 1940,
1032      2144, 1940, 2145, 1940, 1940, 1940, 2146, 1940, 1940, 2148,
1033      2149, 2149, 2149, 2150, 1940, 2151, 2152, 2153, 2153, 1940,
1034      1940, 1940, 1940, 2154, 2154, 2155, 1940, 1940, 1940, 1940,
1035      1940, 1940, 2156, 2157, 1940, 2159, 2159, 1940, 1940, 2161,
1036      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1037      1940, 1940, 1940, 2162, 1940, 1940, 1940, 2164, 2165, 2165,
1038
1039      2165, 1940, 1940, 1940, 1940, 2165, 1940, 1940, 1940, 2140,
1040      1940, 1940, 2142, 1940, 1940, 1940, 2142, 2142, 1940, 1940,
1041      1940, 1940, 2142, 1940, 1940, 1940, 1940, 2144, 1940, 2145,
1042      1940, 1940, 1940, 1940, 2146, 2148, 1940, 1940, 2149, 2149,
1043      2150, 1940, 2151, 2152, 2153, 2153, 1940, 2154, 2154, 2155,
1044      1940, 1940, 1940, 1940, 2157, 1940, 1940, 2159, 2161, 1940,
1045      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1046      1940, 1940, 1940, 1940, 2162, 1940, 1940, 2165, 2165, 2165,
1047      1940, 1940, 1940, 1940, 2165, 1940, 1940, 1940, 1940, 2142,
1048      2142, 2142, 1940, 1940, 1940, 1940, 2142, 1940, 1940, 1940,
1049
1050      1940, 1940, 1940, 1940, 1940, 1940, 2145, 1940, 1940, 1940,
1051      1940, 1940, 1940, 2146, 2148, 1940, 1940, 1940, 1940, 1940,
1052      2149, 1940, 1940, 1940, 2151, 2152, 2153, 2153, 1940, 1940,
1053      2154, 1940, 1940, 1940, 1940, 2157, 1940, 1940, 1940, 2159,
1054      2161, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1055      1940, 1940, 1940, 2162, 2165, 2165, 2165, 1940, 1940, 1940,
1056      1940, 1940, 1940, 1940, 2142, 2142, 2142, 1940, 1940, 1940,
1057      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1058      2145, 1940, 1940, 1940, 1940, 1940, 1940, 2146, 2146, 1940,
1059      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 2152, 2153,
1060
1061      2153, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1062      1940, 1940, 1940, 1940, 2159, 2161, 1940, 1940, 1940, 1940,
1063      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 2162, 2165,
1064      2165, 2165, 1940, 1940, 1940, 2142, 2142, 2142, 1940, 1940,
1065      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1066      1940, 2145, 1940, 1940, 1940, 1940, 1940, 1940, 2146, 2146,
1067      1940, 1940, 1940, 2152, 2153, 2153, 1940, 1940, 1940, 1940,
1068      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 2159, 1940,
1069      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1070      1940, 2162, 1940, 1940, 2165, 2165, 2165, 2142, 1940, 1940,
1071
1072      2142, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1073      1940, 2145, 1940, 1940, 1940, 1940, 1940, 1940, 2146, 2146,
1074      2152, 2153, 2153, 2153, 1940, 1940, 1940, 1940, 1940, 1940,
1075      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1076      1940, 1940, 1940, 1940, 2162, 1940, 1940, 1940, 2165, 2165,
1077      2165, 2165, 2142, 1940, 1940, 1940, 2142, 1940, 1940, 1940,
1078      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1079      1940, 1940, 1940, 1940, 1940, 1940, 1940, 2146, 1940, 1940,
1080      2146, 2152, 2153, 2153, 2153, 2166, 2167, 1940, 1940, 1940,
1081      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 2162,
1082
1083      2165, 2165, 2165, 2165, 1940, 1940, 1940, 1940, 1940, 1940,
1084      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1085      1940, 1940, 1940, 1940, 1940, 2146, 1940, 1940, 1940, 2146,
1086      2152, 2153, 2168, 2169, 2166, 2167, 1940, 1940, 1940, 1940,
1087      1940, 1940, 1940, 1940, 1940, 1940, 2165, 2165, 2165, 2165,
1088      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1089      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 2146, 2146,
1090      2152, 2168, 2153, 2170, 2169, 2171, 2153, 1940, 1940, 1940,
1091      1940, 2165, 2165, 2165, 2165, 1940, 1940, 1940, 1940, 1940,
1092      1940, 1940, 1940, 1940, 1940, 1940, 1940, 2146, 2146, 2152,
1093
1094      2170, 1940, 2171, 2153, 1940, 1940, 1940, 1940, 1940, 1940,
1095      1940, 1940, 1940, 1940, 2165, 1940, 1940, 1940, 1940, 1940,
1096      1940, 2146, 2146, 2152, 1940, 1940, 1940, 1940, 1940, 1940,
1097      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 2165, 1940,
1098      1940, 1940, 1940, 1940, 1940, 1940, 2146, 2146, 2152, 1940,
1099      2165, 1940, 1940, 1940, 1940, 2146, 2146, 2152, 2165, 1940,
1100      1940, 1940, 1940, 2146, 2146, 2152, 2165, 1940, 1940, 1940,
1101      1940, 2146, 2146, 2152, 1940, 1940, 1940, 1940, 1940, 1940,
1102      2146, 2146, 2152, 1940, 1940, 1940, 1940, 1940, 2146, 2146,
1103      2152, 2146, 2146, 2152, 2146, 2146, 2152, 2152, 2146, 2146,
1104
1105      2152, 2152, 2146, 2146, 2152, 2152, 2146, 2146, 2152, 2152,
1106      1940, 1940, 1940, 1940, 2152, 2152, 1940, 1940, 1940, 1940,
1107      1940, 1940, 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
1108      2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152, 1940,    0,
1109      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1110      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1111      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1112      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1113      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1114      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1115
1116      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1117      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1118      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1119      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1120      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1121      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1122      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1123      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1124      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1125      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1126
1127      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1128      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1129      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1130      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1131      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1132      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1133      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1134      1940
1135     } ;
1136
1137 static yyconst flex_int16_t yy_nxt[7169] =
1138     {   0,
1139      1940,  146,  147,  146,  146,  147,  146,  146,  147,  146,
1140       146,  147,  146,  151,  147,  151,  157,  148,  154,  157,
1141       148,  154, 1524,  149, 1525,  155,  149,  530,  155,  152,
1142       151,  147,  151,  389,  158,  160,  161,  158,  160,  161,
1143       162,  163,  531,  162,  163,  389,  152,  167,  168,  390,
1144       164,  160,  161,  164,  165,  392,  162,  160,  161, 1061,
1145       165,  391,  162,  167,  168, 1062,  164,  147,  147,  147,
1146       477,  391,  164,  147,  147,  147,  180,  147,  180,  180,
1147       147,  180,  464,  170,  180,  147,  180,  502,  169,  170,
1148       478,  465,  181,  663,  503,  181,  388,  388,  388, 1257,
1149
1150       182,  388,  388,  388,  169,  171,  172,  147,  172,  171,
1151       171,  171,  171,  171,  171,  171,  173,  171,  171,  171,
1152      1526,  171,  175,  171,  176,  171,  180,  147,  180,  147,
1153       147,  147,  495,  147,  147,  147,  180,  147,  180,  180,
1154       147,  180,  182,  496, 1527,  183,  392,  171,  171,  183,
1155       956,  481,  181,  392,  482,  181,  388,  388,  388,  388,
1156       388,  388,  391,  388,  388,  388,  388,  388,  388,  391,
1157       177,  956,  178,  171,  172,  147,  172,  171,  171,  171,
1158       171,  171,  171,  171,  173,  171,  171,  171, 1162,  171,
1159       175,  171,  176,  171,  147,  147,  147,  147,  147,  147,
1160
1161      1427,  180,  147,  180,  180,  147,  180,  180,  147,  180,
1162       184,  553,  392,  184,  392,  171,  171,  182,  663,  408,
1163       182,  392,  845,  185,  554,  180,  147,  180,  391,  956,
1164       391,  388,  388,  388,  388,  388,  388,  391,  177,  956,
1165       178,  185,  186,  187,  147,  187,  186,  186,  186,  186,
1166       186,  186,  186,  188,  186,  186,  186, 1258,  186,  190,
1167       186,  191,  186,  194,  147,  194,  194,  147,  194,  403,
1168       218,  147,  218,  160,  161,  160,  161, 1528,  162,  195,
1169       162, 1259,  195,  437,  186,  186,  219,  438,  205,  663,
1170       205,  439,  192,  186,  187,  147,  187,  186,  186,  186,
1171
1172       186,  186,  186,  186,  188,  186,  186,  186,  953,  186,
1173       190,  186,  191,  186,  206,  392,  206,  218,  147,  218,
1174       663,  147,  147,  147,  147,  147,  147,  388,  388,  388,
1175       767,  391,  956,  219, 1530,  186,  186,  220,  536,  768,
1176       220,  537, 1055,  192,  196,  197,  147,  197,  196,  196,
1177       196,  196,  196,  196,  196,  198,  196,  196,  196, 1531,
1178       196,  200,  196,  201,  196,  218,  147,  218,  218,  147,
1179       218, 1345,  218,  147,  218,  218,  147,  218,  388,  388,
1180       388,  219,  392,  430,  219,  392,  196,  196,  221,  424,
1181       431,  221,  441, 1302,  202, 1304, 1532,  203,  391,  391,
1182
1183      1303,  391, 1305,  204,  196,  197,  147,  197,  196,  196,
1184       196,  196,  196,  196,  196,  198,  196,  196,  196,  530,
1185       196,  200,  196,  201,  196,  233,  147,  233,  233,  147,
1186       233, 1536,  246,  147,  246,  246,  147,  246,  663,  392,
1187       442,  234,  392,  553,  234,  956,  196,  196,  247,  441,
1188      1537,  247,  567,  665,  202,  391,  559,  203,  391,  388,
1189       388,  388,  956,  204,  207,  208,  147,  208,  207,  207,
1190       207,  207,  207,  207,  207,  209,  207,  207,  207, 1428,
1191       207,  211,  207,  212,  207,  147,  147,  147,  147,  147,
1192       147, 1538,  147,  147,  147,  147,  147,  147,  258,  147,
1193
1194       258,  255,  392,  392,  255, 1346,  207,  207,  256,  449,
1195      1360,  256,  956, 1361,  259,  213, 1542,  214,  391,  391,
1196       215,  388,  388,  388, 1324, 1325,  216,  207,  208,  147,
1197       208,  207,  207,  207,  207,  207,  207,  207,  209,  207,
1198       207,  207, 1163,  207,  211,  207,  212,  207,  258,  147,
1199       258,  272,  147,  272, 1543,  272,  147,  272,  147,  147,
1200       147,  147,  147,  147,  259,  392,  392,  273,  392,  207,
1201       207,  273,  456, 1511,  220, 1326, 1327,  220,  213, 1544,
1202       214,  391,  391,  215,  391, 1512,  397, 1331, 1332,  216,
1203       222,  223,  147,  223,  222,  222,  222,  222,  222,  222,
1204
1205       222,  224,  222,  222,  222, 1545,  222,  226,  222,  227,
1206       222,  272,  147,  272,  272,  147,  272,  956,  272,  147,
1207       272,  442,  272,  147,  272,  398, 1546,  273, 1333, 1334,
1208       273,  399,  222,  222,  274,  400,  392,  228,  274,  229,
1209       401,  388,  388,  388,  230,  388,  388,  388,  388,  388,
1210       388, 1500,  391,  231,  222,  223,  147,  223,  222,  222,
1211       222,  222,  222,  222,  222,  224,  222,  222,  222,  392,
1212       222,  226,  222,  227,  222,  284,  147,  284,  284,  147,
1213       284, 1547,  299,  147,  299,  391,  299,  147,  299, 1553,
1214      1554,  285, 1319,  392,  285, 1513,  222,  222,  300, 1320,
1215
1216       460,  228,  300,  229,  388,  388,  388, 1514,  230,  391,
1217       388,  388,  388,  388,  388,  388, 1555,  231,  235,  236,
1218       147,  236,  235,  235,  235,  235,  235,  235,  235,  237,
1219       235,  235,  235,  663,  235,  239,  235,  240,  235,  309,
1220       147,  309,  309,  147,  309, 1556,  322,  147,  322,  322,
1221       147,  322,  147,  147,  147,  310,  392,  392,  310, 1321,
1222       235,  235,  323,  469, 1362,  323, 1322, 1363,  220, 1499,
1223      1548,  241,  391,  391,  388,  388,  388,  242, 1549,  243,
1224       244,  235,  236,  147,  236,  235,  235,  235,  235,  235,
1225       235,  235,  237,  235,  235,  235, 1557,  235,  239,  235,
1226
1227       240,  235,  147,  147,  147,  322,  147,  322,  413,  322,
1228       147,  322,  322,  147,  322,  322,  147,  322,  220, 1550,
1229       956,  323,  392,  235,  235,  323, 1558, 1551,  324,  474,
1230      1399,  324, 1400,  956,  241,  388,  388,  388,  391, 1402,
1231       242, 1403,  243,  244,  248,  249,  147,  249,  248,  248,
1232       248,  248,  248,  248,  248,  250,  248,  248,  248, 1501,
1233       248,  252,  248,  253,  248,  147,  147,  147,  147,  147,
1234       147, 1565,  147,  147,  147,  147,  147,  147,  336,  147,
1235       336,  334,  392, 1409,  334, 1410,  248,  248,  334,  392,
1236      1412,  334, 1413, 1571,  337,  388,  388,  388,  391,  388,
1237
1238       388,  388,  388,  388,  388,  391,  254,  248,  249,  147,
1239       249,  248,  248,  248,  248,  248,  248,  248,  250,  248,
1240       248,  248,  663,  248,  252,  248,  253,  248,  336,  147,
1241       336,  336,  147,  336, 1575,  336,  147,  336,  350,  147,
1242       350,  350,  147,  350,  337,  392,  392,  338, 1564,  248,
1243       248,  338,  485,  489,  351, 1576, 1577,  351,  388,  388,
1244       388,  391,  391,  388,  388,  388,  388,  388,  388,  254,
1245       260,  261,  147,  261,  260,  260,  260,  260,  260,  260,
1246       260,  262,  260,  260,  260, 1578,  260,  264,  260,  265,
1247       260,  147,  147,  147,  147,  147,  147, 1579,  350,  147,
1248
1249       350,  350,  147,  350,  350,  147,  350,  334,  392,  392,
1250       334,  392,  260,  260,  351,  266,  497,  351, 1582, 1583,
1251       352, 1584,  956,  267,  391,  391,  268,  391, 1585,  269,
1252      1586, 1587,  270,  260,  261,  147,  261,  260,  260,  260,
1253       260,  260,  260,  260,  262,  260,  260,  260, 1588,  260,
1254       264,  260,  265,  260,  350,  147,  350,  361,  147,  361,
1255      1566,  361,  147,  361,  374,  147,  374,  374,  147,  374,
1256       352,  392,  392,  362,  392,  260,  260,  362,  266, 1589,
1257       375,  505, 1590,  375, 1591, 1596,  267,  391,  391,  268,
1258       391, 1597,  269, 1598, 1601,  270,  275,  276,  147,  276,
1259
1260       275,  275,  275,  275,  275,  275,  275,  277,  275,  275,
1261       275, 1602,  275,  279,  275,  280,  275,  147,  147,  147,
1262       147,  147,  147,  504,  374,  147,  374,  374,  147,  374,
1263       374,  147,  374,  376,  392, 1603,  376, 1604,  275,  275,
1264       375,  469, 1605,  375,  392, 1606,  377, 1607, 1608,  281,
1265       391,  388,  388,  388,  388,  388,  388,  388,  388,  388,
1266       391,  282,  275,  276,  147,  276,  275,  275,  275,  275,
1267       275,  275,  275,  277,  275,  275,  275, 1609,  275,  279,
1268       275,  280,  275,  374,  147,  374,  386,  147,  386,  442,
1269       386,  147,  386,  388,  388,  388,  392,  392,  392,  377,
1270
1271      1610, 1611,  387,  512,  275,  275,  387,  388,  388,  388,
1272       663, 1613,  391,  391,  391,  281,  388,  388,  388,  388,
1273       388,  388,  388,  388,  388, 1614, 1161,  282,  286,  287,
1274       147,  287,  286,  286,  286,  286,  286,  286,  286,  288,
1275       286,  286,  286,  289,  286,  290,  286,  291,  286,  289,
1276       289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
1277       289,  289,  289,  289,  289,  289,  289,  289,  289,  289,
1278       286,  286,  289,  289,  292,  289,  289,  289,  289,  289,
1279       289,  293,  289,  294,  289,  289,  289,  295,  289,  296,
1280       297,  289,  289,  289,  289,  289,  289,  301,  302,  147,
1281
1282       302,  301,  301,  301,  301,  301,  301,  301,  303,  301,
1283       301,  301, 1615,  301,  305,  301,  306,  301, 1616, 1617,
1284       392,  392,  392, 1618, 1625,  392,  392,  497,  505,  516,
1285       392, 1626,  408,  512,  956, 1627,  391,  391,  391,  301,
1286       301,  391,  391,  388,  388,  388,  391,  388,  388,  388,
1287       307,  301,  302,  147,  302,  301,  301,  301,  301,  301,
1288       301,  301,  303,  301,  301,  301, 1622,  301,  305,  301,
1289       306,  301,  504,  409,  412,  442,  410,  504,  411,  412,
1290       414,  413,  418,  392,  419,  392,  392,  420,  416,  417,
1291       388,  388,  388,  301,  301,  534,  534,  534, 1628,  391,
1292
1293      1629,  391,  391, 1635,  307,  311,  312,  147,  312,  311,
1294       311,  311,  311,  311,  311,  311,  313,  311,  311,  311,
1295       663,  311,  315,  311,  316,  311, 1636,  524,  392, 1637,
1296       392, 1638,  412,  411, 1639,  523,  413,  528,  414, 1640,
1297       418,  442,  419, 1641,  391, 1642,  391,  311,  311,  392,
1298       535,  317, 1643,  534,  534,  534,  523,  667,  318, 1644,
1299       319,  863,  863,  863, 1621,  391, 1649,  320,  311,  312,
1300       147,  312,  311,  311,  311,  311,  311,  311,  311,  313,
1301       311,  311,  311, 1652,  311,  315,  311,  316,  311, 1653,
1302       524,  564,  564,  564, 1657,  572,  572,  572,  587,  587,
1303
1304       587,  598,  598,  598,  442,  606,  606,  606,  565, 1658,
1305       311,  311,  573, 1659,  317,  588, 1650, 1651,  599, 1660,
1306      1661,  318,  607,  319,  966,  966,  966,  968,  968,  968,
1307       320,  325,  326,  147,  326,  325,  325,  325,  325,  325,
1308       325,  325,  327,  325,  325,  325, 1662,  325,  329,  325,
1309       330,  325,  612,  612,  612,  614,  614,  614,  623,  623,
1310       623,  628,  628,  628,  648,  648,  648, 1663, 1664,  613,
1311      1665, 1666,  615,  325,  325,  624,  331, 1667,  629,  332,
1312      1670,  649,  700,  700,  700, 1671,  701, 1672, 1673,  702,
1313       863,  863,  863,  333,  325,  326,  147,  326,  325,  325,
1314
1315       325,  325,  325,  325,  325,  327,  325,  325,  325, 1674,
1316       325,  329,  325,  330,  325,  677,  677,  677, 1675,  663,
1317       695,  695,  695, 1689, 1690,  677,  677,  677,  695,  695,
1318       695, 1083, 1084,  679, 1691, 1692,  325,  325,  697,  331,
1319      1696, 1085,  332,  679, 1697, 1086,  697,  710,  710,  710,
1320      1682,  711, 1698, 1699,  712, 1701,  333,  339,  340,  147,
1321       340,  339,  339,  339,  339,  339,  339,  339,  341,  339,
1322       339,  339, 1702,  339,  343,  339,  344,  339, 1703,  680,
1323       564,  564,  564, 1704,  698,  705,  705,  705,  705,  705,
1324       705,  572,  572,  572,  713,  713,  713,  565, 1709,  339,
1325
1326       339, 1710,  345,  707, 1711,  346,  707, 1712,  573, 1713,
1327       347,  714,  992,  992,  992,  966,  966,  966, 1714,  348,
1328       339,  340,  147,  340,  339,  339,  339,  339,  339,  339,
1329       339,  341,  339,  339,  339, 1715,  339,  343,  339,  344,
1330       339,  716,  716,  716,  968,  968,  968, 1716,  708,  719,
1331       719,  719, 1717, 1718,  719,  719,  719, 1719,  717,  728,
1332       728,  728,  339,  339, 1720,  345, 1721,  721,  346,  992,
1333       992,  992,  721,  347,  732,  732,  732,  730,  733, 1722,
1334      1737,  734,  348,  353,  354,  147,  354,  353,  353,  353,
1335       353,  353,  353,  353,  355,  353,  353,  353,  722,  353,
1336
1337       357,  353,  358,  353,  728,  728,  728,  587,  587,  587,
1338       738,  738,  738,  738,  738,  738,  743,  743,  743, 1072,
1339      1072, 1072,  730,  663,  588,  353,  353, 1738,  740, 1739,
1340      1740,  740, 1741, 1073,  745, 1742,  359,  353,  354,  147,
1341       354,  353,  353,  353,  353,  353,  353,  353,  355,  353,
1342       353,  353, 1743,  353,  357,  353,  358,  353,  743,  743,
1343       743,  741, 1731, 1744,  731,  598,  598,  598,  748,  748,
1344       748, 1747,  749, 1087, 1088,  750,  745, 1748, 1749,  353,
1345       353, 1750,  599, 1089, 1174, 1174, 1174, 1090, 1757, 1758,
1346       359,  363,  364,  147,  364,  363,  363,  363,  363,  363,
1347
1348       363,  363,  365,  363,  363,  363, 1759,  363,  367,  363,
1349       368,  363,  755,  755,  755,  746, 1760, 1761,  755,  755,
1350       755,  606,  606,  606,  759,  759,  759, 1762,  760, 1763,
1351       757,  761, 1764,  363,  363, 1765,  757, 1766,  607, 1767,
1352      1768,  369, 1778,  370, 1779,  371, 1069, 1069, 1069, 1176,
1353      1176, 1176, 1780,  372,  363,  364,  147,  364,  363,  363,
1354       363,  363,  363,  363,  363,  365,  363,  363,  363, 1781,
1355       363,  367,  363,  368,  363,  758,  763,  763,  763, 1782,
1356       763,  763,  763,  612,  612,  612,  769,  769,  769, 1783,
1357       770, 1784, 1785,  771,  765, 1790,  363,  363,  765, 1791,
1358
1359       613, 1069, 1069, 1069,  369,  663,  370, 1792,  371, 1072,
1360      1072, 1072, 1267, 1267, 1267, 1070,  372,  378,  379,  147,
1361       379,  378,  378,  378,  378,  378,  378,  378,  380,  378,
1362       378,  378, 1793,  378,  382,  378,  383,  378, 1773, 1786,
1363       766,  614,  614,  614,  772,  772,  772, 1771,  773, 1776,
1364      1787,  774,  775,  775,  775,  781,  781,  781,  615,  378,
1365       378,  781,  781,  781,  623,  623,  623, 1788, 1794,  776,
1366       785,  785,  785,  783,  786, 1795, 1796,  787, 1789,  783,
1367      1797,  624,  384,  378,  379,  147,  379,  378,  378,  378,
1368       378,  378,  378,  378,  380,  378,  378,  378, 1802,  378,
1369
1370       382,  378,  383,  378,  788,  788,  788, 1773, 1773,  788,
1371       788,  788,  628,  628,  628,  784,  793,  793,  793, 1776,
1372       794, 1774,  790,  795, 1802,  378,  378,  790, 1805,  629,
1373       956,  957,  799,  799,  799,  799,  799,  799,  804,  804,
1374       804,  806,  806,  806,  810,  810,  810, 1806,  384,  392,
1375       801, 1807,  663,  801, 1808,  805,  408, 1818,  807,  810,
1376       810,  810,  812, 1819, 1820,  391,  791,  815,  815,  815,
1377      1821,  818,  818,  818,  648,  648,  648,  812,  820,  820,
1378       820,  820,  820,  820,  816, 1802, 1825,  802,  819, 1800,
1379      1802,  649,  409, 1826, 1827,  410,  822,  411,  412,  822,
1380
1381       413,  827,  827,  827,  414, 1828,  415,  416,  417, 1829,
1382       824,  824,  824, 1839,  825, 1843,  813,  826, 1844,  829,
1383      1845,  827,  827,  827,  835,  835,  835,  835,  835,  835,
1384       841,  841,  841,  841,  841,  841, 1773, 1846,  823,  829,
1385      1850, 1851,  837, 1852, 1853,  837, 1854, 1855,  843,  663,
1386      1774,  843,  677,  677,  677, 1859,  677,  677,  677,  677,
1387       677,  677,  868,  868,  868,  695,  695,  695, 1860, 1861,
1388       679, 1858, 1862,  830,  679, 1863, 1867,  679, 1868,  869,
1389       695,  695,  695,  697,  695,  695,  695,  838,  871,  871,
1390       871,  663, 1869,  844, 1940, 1940, 1940, 1870,  697,  705,
1391
1392       705,  705,  697,  854, 1871,  872,  700,  700,  700, 1866,
1393       701, 1940,  663,  702,  705,  705,  705,  707,  705,  705,
1394       705,  710,  710,  710, 1877,  711, 1878, 1879,  712, 1880,
1395       870, 1874,  707,  713,  713,  713,  707,  877,  877,  877,
1396      1887,  878, 1888,  663,  879,  663,  880,  880,  880, 1883,
1397       714,  873,  716,  716,  716,  663,  663,  882,  882,  882,
1398       663,  883,  875,  881,  884,  719,  719,  719, 1891,  717,
1399       719,  719,  719,  719,  719,  719,  890,  890,  890,  728,
1400       728,  728,  663,  721,  728,  728,  728,  663,  721,  663,
1401      1905,  721, 1523,  891,  728,  728,  728,  730, 1909,  732,
1402
1403       732,  732,  730,  733,  663, 1906,  734,  738,  738,  738,
1404       663, 1931,  730,  738,  738,  738,  738,  738,  738,  743,
1405       743,  743,  743,  743,  743,  740,  743,  743,  743,  886,
1406      1901,  740, 1902,  663,  740,  663,  663,  745,  893, 1932,
1407       745,  748,  748,  748,  745,  749, 1910,  663,  750,  755,
1408       755,  755,  755,  755,  755,  755,  755,  755,  759,  759,
1409       759,  663,  760,  663, 1915,  761, 1916,  757, 1929,  663,
1410       757,  663, 1927,  757,  763,  763,  763,  663,  897,  763,
1411       763,  763,  763,  763,  763, 1937,  899,  769,  769,  769,
1412      1522,  770,  765,  663,  771, 1923,  663,  765, 1925, 1928,
1413
1414       765,  772,  772,  772,  663,  773, 1926, 1521,  774,  775,
1415       775,  775, 1930,  910,  910,  910,  905,  911,  663, 1924,
1416       912,  663,  781,  781,  781,  663,  776,  781,  781,  781,
1417       781,  781,  781, 1935,  785,  785,  785, 1933,  786,  907,
1418       783,  787,  788,  788,  788,  783, 1520, 1936,  783,  788,
1419       788,  788,  788,  788,  788,  793,  793,  793, 1519,  794,
1420       790, 1518,  795,  799,  799,  799, 1937,  790, 1517, 1934,
1421       790,  799,  799,  799,  799,  799,  799,  804,  804,  804,
1422       663,  801, 1516,  925,  925,  925, 1515,  926, 1508,  801,
1423       927, 1507,  801,  917,  805,  806,  806,  806,  928,  928,
1424
1425       928, 1487,  929, 1486, 1485,  930,  810,  810,  810,  810,
1426       810,  810,  807, 1484, 1483,  918,  810,  810,  810,  815,
1427       815,  815, 1482, 1477,  812, 1476, 1475,  812, 1474, 1473,
1428       923,  935,  935,  935,  812,  936,  816, 1472,  937,  818,
1429       818,  818,  939,  939,  939, 1469,  940, 1468, 1467,  941,
1430       820,  820,  820,  820,  820,  820,  819,  820,  820,  820,
1431       824,  824,  824, 1466,  825, 1465, 1459,  826,  822, 1458,
1432      1457,  822,  827,  827,  827,  822,  827,  827,  827,  933,
1433       827,  827,  827,  945,  945,  945,  835,  835,  835, 1456,
1434       829,  835,  835,  835,  829,  835,  835,  835,  829, 1455,
1435
1436       946,  841,  841,  841,  837,  841,  841,  841, 1453,  837,
1437       841,  841,  841,  837,  955,  955,  955, 1452, 1451,  843,
1438       942, 1450, 1449,  843,  677,  677,  677, 1448,  843,  868,
1439       868,  868,  956,  957, 1447, 1446,  943,  976,  976,  976,
1440      1445,  977,  679, 1444,  978, 1443,  869,  695,  695,  695,
1441      1442, 1441,  949,  871,  871,  871, 1440,  980,  980,  980,
1442       952,  981, 1436, 1435,  982,  697,  705,  705,  705, 1434,
1443       872,  877,  877,  877, 1421,  878, 1411, 1408,  879,  880,
1444       880,  880, 1401, 1398,  707, 1397,  963,  987,  987,  987,
1445      1396,  988, 1395, 1394,  989, 1393,  881, 1392,  882,  882,
1446
1447       882,  979,  883, 1391, 1385,  884,  719,  719,  719,  890,
1448       890,  890,  985,  995,  995,  995, 1384,  996, 1383, 1382,
1449       997,  728,  728,  728,  721, 1381,  891, 1003, 1003, 1003,
1450       743,  743,  743, 1010, 1010, 1010,  755,  755,  755,  730,
1451      1012, 1012, 1012, 1380, 1379, 1004, 1378, 1371,  745, 1370,
1452      1011, 1369, 1368,  991,  757, 1367, 1366, 1013, 1016, 1016,
1453      1016,  763,  763,  763, 1019, 1019, 1019,  999, 1940, 1940,
1454      1940, 1365, 1022, 1022, 1022, 1017, 1364, 1359, 1006,  765,
1455      1358, 1020, 1355, 1014, 1352, 1940,  910,  910,  910, 1023,
1456       911, 1351, 1342,  912, 1940, 1940, 1940, 1340, 1015, 1940,
1457
1458      1940, 1940, 1339, 1940, 1940, 1940,  781,  781,  781, 1329,
1459      1323, 1940, 1318,  788,  788,  788, 1940, 1317, 1313, 1018,
1460      1940, 1032, 1032, 1032,  783, 1306,  799,  799,  799, 1301,
1461      1021,  790,  925,  925,  925, 1300,  926, 1299, 1033,  927,
1462       810,  810,  810, 1025,  801,  928,  928,  928, 1291,  929,
1463      1290, 1289,  930, 1288, 1287,  935,  935,  935,  812,  936,
1464      1024, 1286,  937, 1285, 1034, 1284, 1280, 1027, 1277, 1026,
1465       939,  939,  939, 1276,  940, 1028, 1275,  941, 1274, 1035,
1466       820,  820,  820,  827,  827,  827,  945,  945,  945, 1045,
1467      1045, 1045, 1272, 1046, 1271, 1260, 1047, 1255,  822, 1253,
1468
1469      1252,  829, 1039,  946,  835,  835,  835, 1052, 1052, 1052,
1470       841,  841,  841,  955,  955,  955,  677,  677,  677, 1069,
1471      1069, 1069,  837, 1251, 1053,  976,  976,  976,  843,  977,
1472      1242,  956,  978, 1070,  679, 1237, 1043,  695,  695,  695,
1473      1236, 1235, 1042, 1234,  980,  980,  980, 1230,  981, 1216,
1474      1050,  982,  719,  719,  719,  697,  705,  705,  705, 1215,
1475      1214, 1056,  987,  987,  987, 1063,  988, 1213, 1212,  989,
1476       721, 1211, 1197, 1054,  707, 1196, 1195, 1057, 1194, 1071,
1477       995,  995,  995, 1193,  996, 1192, 1191,  997,  728,  728,
1478       728, 1093, 1093, 1093, 1940, 1940, 1940, 1096, 1096, 1096,
1479
1480      1074, 1003, 1003, 1003, 1077, 1190,  730, 1189, 1094, 1080,
1481      1186, 1940, 1184, 1183, 1097, 1098, 1098, 1098, 1180, 1004,
1482       743,  743,  743, 1010, 1010, 1010, 1104, 1104, 1104, 1179,
1483      1105, 1177, 1099, 1106, 1175, 1173, 1092, 1172,  745, 1171,
1484      1011, 1012, 1012, 1012, 1170, 1107, 1107, 1107, 1095, 1108,
1485      1164, 1156, 1109, 1111, 1111, 1111, 1154, 1153, 1013, 1016,
1486      1016, 1016, 1152, 1145, 1100, 1113, 1113, 1113, 1139, 1114,
1487      1135, 1112, 1115, 1116, 1116, 1116, 1017, 1019, 1019, 1019,
1488      1118, 1118, 1118, 1134, 1119, 1133, 1110, 1120, 1121, 1121,
1489      1121, 1117, 1103, 1102, 1020, 1022, 1022, 1022, 1101, 1123,
1490
1491      1123, 1123, 1091, 1124, 1082, 1122, 1125, 1126, 1126, 1126,
1492      1081, 1079, 1023, 1940, 1940, 1940, 1129, 1129, 1129,  781,
1493       781,  781, 1078, 1076, 1127,  788,  788,  788, 1075, 1071,
1494      1940, 1073, 1068, 1130, 1032, 1032, 1032,  783, 1136, 1136,
1495      1136, 1067, 1137,  790, 1066, 1138, 1140, 1140, 1140, 1065,
1496      1064, 1033, 1142, 1142, 1142, 1940, 1940, 1940,  810,  810,
1497       810, 1147, 1147, 1147, 1141, 1060, 1059, 1128, 1058, 1143,
1498       956, 1051, 1940, 1132, 1049, 1048,  812, 1044, 1148, 1041,
1499      1040, 1131, 1940, 1940, 1940,  820,  820,  820, 1038, 1037,
1500       827,  827,  827, 1045, 1045, 1045, 1036, 1046, 1031, 1940,
1501
1502      1047, 1030, 1029,  822, 1151, 1009, 1146, 1008,  829,  835,
1503       835,  835, 1052, 1052, 1052, 1144, 1157, 1157, 1157, 1007,
1504      1158, 1005, 1002, 1159, 1001, 1149, 1000,  837,  998, 1053,
1505       841,  841,  841, 1150, 1165, 1165, 1165, 1940, 1940, 1940,
1506       994, 1940, 1940, 1940,  677,  677,  677,  993,  843,  990,
1507       986, 1166,  984,  983, 1940,  975,  974, 1155, 1940,  695,
1508       695,  695,  679, 1181, 1181, 1181,  719,  719,  719, 1187,
1509      1187, 1187,  973,  728,  728,  728,  972,  697, 1093, 1093,
1510      1093, 1182,  971,  970,  721, 1160, 1188, 1198,  969, 1167,
1511       967,  730, 1199, 1199, 1199, 1094, 1200,  965, 1168, 1201,
1512
1513       964, 1169, 1202, 1202, 1202,  962, 1178, 1096, 1096, 1096,
1514      1204, 1204, 1204,  961, 1205,  960,  959, 1206,  958, 1203,
1515       951, 1185,  950,  948, 1097, 1098, 1098, 1098, 1207, 1207,
1516      1207,  947, 1208,  944,  938, 1209,  743,  743,  743, 1104,
1517      1104, 1104, 1099, 1105,  934,  932, 1106,  931, 1107, 1107,
1518      1107,  924, 1108,  922,  745, 1109, 1111, 1111, 1111, 1113,
1519      1113, 1113,  921, 1114,  920,  919, 1115, 1116, 1116, 1116,
1520       916, 1118, 1118, 1118, 1112, 1119,  915,  914, 1120, 1121,
1521      1121, 1121, 1210,  913,  909, 1117, 1217, 1217, 1217,  908,
1522      1218,  906,  904, 1219,  903,  902, 1122, 1123, 1123, 1123,
1523
1524       901, 1124,  900,  898, 1125, 1126, 1126, 1126, 1220, 1220,
1525      1220,  896, 1221,  895,  894, 1222, 1223, 1223, 1223, 1129,
1526      1129, 1129, 1127, 1225, 1225, 1225,  892, 1226,  889,  888,
1527      1227,  887,  885, 1224,  876,  874, 1130,  781,  781,  781,
1528       788,  788,  788, 1231, 1231, 1231, 1136, 1136, 1136,  867,
1529      1137,  866,  865, 1138,  864,  783,  862,  861,  790,  860,
1530      1232, 1140, 1140, 1140, 1142, 1142, 1142, 1238, 1238, 1238,
1531       859, 1239,  858,  857, 1240, 1940, 1940, 1940,  856, 1141,
1532       855, 1143, 1147, 1147, 1147, 1228, 1233,  810,  810,  810,
1533       853,  852, 1940, 1940, 1940, 1940, 1248, 1248, 1248, 1148,
1534
1535      1229, 1243, 1244, 1244, 1244,  812, 1245,  851,  850, 1246,
1536      1940,  827,  827,  827, 1249,  835,  835,  835, 1157, 1157,
1537      1157,  849, 1158,  848,  847, 1159,  846, 1241,  663,  829,
1538       841,  841,  841,  837, 1165, 1165, 1165, 1261, 1261, 1261,
1539       840, 1262,  839,  834, 1263, 1940, 1940, 1940,  843,  833,
1540      1247, 1166, 1940, 1940, 1940,  832,  831, 1250,  817,  677,
1541       677,  677, 1940, 1268, 1268, 1268, 1269, 1269, 1269, 1940,
1542      1270, 1270, 1270, 1174, 1174, 1174, 1254,  679, 1256, 1176,
1543      1176, 1176,  695,  695,  695, 1181, 1181, 1181, 1278, 1278,
1544      1278, 1187, 1187, 1187,  814, 1281, 1281, 1281,  809, 1282,
1545
1546       697, 1264, 1283, 1182,  808,  803, 1279,  798, 1188, 1292,
1547      1292, 1292, 1202, 1202, 1202, 1265,  728,  728,  728, 1266,
1548      1199, 1199, 1199,  797, 1200,  796, 1293, 1201,  792, 1203,
1549      1273, 1295, 1295, 1295,  730, 1296,  780,  779, 1297, 1204,
1550      1204, 1204,  778, 1205,  777,  762, 1206, 1207, 1207, 1207,
1551       754, 1208,  753,  752, 1209,  743,  743,  743,  751, 1217,
1552      1217, 1217, 1294, 1218,  747,  742, 1219, 1220, 1220, 1220,
1553       737, 1221,  736,  745, 1222, 1223, 1223, 1223, 1307, 1307,
1554      1307,  735, 1308,  727,  726, 1309, 1225, 1225, 1225,  725,
1555      1226,  724, 1224, 1227,  781,  781,  781, 1311, 1311, 1311,
1556
1557      1231, 1231, 1231, 1314, 1314, 1314, 1298, 1315,  723,  718,
1558      1316,  715,  783,  709,  704, 1312,  703, 1232, 1238, 1238,
1559      1238,  699, 1239,  694,  693, 1240, 1940, 1940, 1940,  810,
1560       810,  810, 1244, 1244, 1244,  692, 1245,  691,  690, 1246,
1561      1940, 1940, 1940, 1940, 1248, 1248, 1248,  812,  827,  827,
1562       827, 1337, 1337, 1337, 1310,  689,  688, 1940,  835,  835,
1563       835,  687, 1249, 1344, 1344, 1344,  829,  686, 1338,  841,
1564       841,  841, 1328, 1347, 1347, 1347,  837,  685, 1261, 1261,
1565      1261,  663, 1262,  684, 1330, 1263,  683,  843, 1940, 1940,
1566      1940, 1940, 1940, 1940,  682,  681, 1335,  677,  677,  677,
1567
1568      1267, 1267, 1267,  676,  675, 1940,  674,  673, 1940,  672,
1569      1336, 1268, 1268, 1268,  671,  679, 1269, 1269, 1269, 1341,
1570      1270, 1270, 1270,  670,  669, 1343, 1353, 1353, 1353, 1356,
1571      1356, 1356, 1278, 1278, 1278, 1281, 1281, 1281,  666, 1282,
1572       664, 1348, 1283,  663, 1354,  661, 1357, 1292, 1292, 1292,
1573      1279,  659, 1350, 1349, 1372, 1372, 1372,  658, 1373,  657,
1574       655, 1374,  654,  653, 1293,  728,  728,  728, 1295, 1295,
1575      1295,  652, 1296,  651,  647, 1297, 1376, 1376, 1376,  645,
1576      1307, 1307, 1307,  730, 1308,  644,  643, 1309, 1386, 1386,
1577      1386, 1311, 1311, 1311, 1377, 1388, 1388, 1388, 1314, 1314,
1578
1579      1314,  642, 1315,  641,  639, 1316, 1387,  638,  637, 1312,
1580       636,  635, 1389, 1404, 1404, 1404, 1406, 1406, 1406,  810,
1581       810,  810, 1375, 1940, 1940, 1940,  634,  827,  827,  827,
1582      1405, 1337, 1337, 1337, 1419, 1419, 1419,  812, 1390,  632,
1583      1940,  631, 1416, 1416, 1416,  829, 1417,  630, 1338, 1418,
1584       627, 1420, 1422, 1422, 1422, 1424, 1424, 1424,  841,  841,
1585       841, 1344, 1344, 1344,  626,  622, 1414, 1347, 1347, 1347,
1586      1423, 1429, 1429, 1429,  620,  619,  843,  618,  617,  663,
1587       616,  611, 1407, 1415, 1940, 1940, 1940,  610, 1430, 1432,
1588      1432, 1432, 1353, 1353, 1353, 1356, 1356, 1356, 1437, 1437,
1589
1590      1437, 1940, 1438,  608,  605, 1439,  603, 1433,  602,  601,
1591      1354,  600, 1357,  597, 1372, 1372, 1372,  596, 1373, 1426,
1592      1425, 1374,  728,  728,  728, 1376, 1376, 1376, 1460, 1460,
1593      1460,  594, 1431, 1386, 1386, 1386, 1388, 1388, 1388,  593,
1594       730,  591,  590, 1377,  589, 1461,  586,  584, 1462, 1462,
1595      1462, 1387, 1463, 1389,  583, 1464, 1470, 1470, 1470, 1404,
1596      1404, 1404, 1478, 1478, 1478,  582, 1479,  581,  580, 1480,
1597      1406, 1406, 1406, 1471,  579,  577, 1405,  576, 1454,  810,
1598       810,  810, 1940, 1940, 1940, 1490, 1490, 1490, 1416, 1416,
1599      1416,  575, 1417,  574,  571, 1418,  570,  812,  569, 1940,
1600
1601      1419, 1419, 1419, 1491, 1492, 1492, 1492,  566, 1493,  563,
1602       562, 1494,  560, 1495, 1495, 1495,  558, 1420, 1422, 1422,
1603      1422, 1424, 1424, 1424, 1497, 1497, 1497,  557,  556, 1488,
1604      1496,  555,  552, 1481,  551,  550, 1423, 1429, 1429, 1429,
1605       549,  548, 1498, 1489, 1502, 1502, 1502,  547, 1503,  546,
1606       544, 1504,  543,  542, 1430, 1505, 1505, 1505, 1432, 1432,
1607      1432, 1509, 1509, 1509, 1437, 1437, 1437,  541, 1438,  540,
1608       539, 1439, 1506,  728,  728,  728, 1433,  538, 1510, 1460,
1609      1460, 1460, 1533, 1533, 1533,  533, 1534,  530,  532, 1535,
1610       527,  730,  525, 1462, 1462, 1462, 1461, 1463,  522,  521,
1611
1612      1464, 1470, 1470, 1470, 1539, 1539, 1539,  520, 1540,  519,
1613       517, 1541, 1478, 1478, 1478,  515, 1479,  513, 1471, 1480,
1614       810,  810,  810, 1940, 1940, 1940, 1940, 1940, 1940, 1529,
1615      1490, 1490, 1490,  511,  510, 1492, 1492, 1492,  812, 1493,
1616      1940,  509, 1494, 1940, 1495, 1495, 1495,  508, 1491, 1561,
1617      1561, 1561,  506, 1562,  501,  500, 1563, 1497, 1497, 1497,
1618       498, 1496, 1502, 1502, 1502,  494, 1503,  493,  492, 1504,
1619      1505, 1505, 1505,  490,  488, 1498, 1567, 1567, 1567,  486,
1620      1568,  484, 1552, 1569, 1559,  483, 1560, 1506, 1570, 1570,
1621      1570, 1509, 1509, 1509, 1572, 1572, 1572,  480, 1573,  479,
1622
1623       475, 1574, 1580, 1580, 1580,  728,  728,  728, 1510, 1593,
1624      1593, 1593,  473, 1533, 1533, 1533,  472, 1534,  470, 1581,
1625      1535,  468,  467,  730,  466,  463, 1594, 1599, 1599, 1599,
1626      1539, 1539, 1539,  461, 1540,  459,  457, 1541,  810,  810,
1627       810, 1940, 1940, 1940, 1600, 1940, 1940, 1940, 1570, 1570,
1628      1570,  455, 1595, 1592,  454,  453,  812,  452, 1940, 1561,
1629      1561, 1561, 1940, 1562,  450,  448, 1563, 1623, 1623, 1623,
1630      1567, 1567, 1567,  447, 1568,  446,  445, 1569,  443, 1572,
1631      1572, 1572,  440, 1573, 1624,  956, 1574, 1630, 1630, 1630,
1632      1612, 1620, 1580, 1580, 1580, 1632, 1632, 1632,  436, 1633,
1633
1634       435,  433, 1634, 1619, 1631,  728,  728,  728,  432, 1581,
1635      1593, 1593, 1593, 1646, 1646, 1646,  429, 1647,  428,  427,
1636      1648,  425,  423,  730, 1599, 1599, 1599, 1594, 1654, 1654,
1637      1654,  421, 1655,  407,  406, 1656, 1668, 1668, 1668,  404,
1638       402, 1600, 1676, 1676, 1676, 1679, 1679, 1679, 1683, 1683,
1639      1683, 1645,  396,  395, 1669, 1623, 1623, 1623,  396, 1677,
1640       395,  394, 1680,  393, 1940, 1684,  956, 1688, 1688, 1688,
1641      1940, 1940, 1624,  956, 1685, 1685, 1685, 1940, 1686, 1940,
1642      1940, 1687, 1630, 1630, 1630, 1678, 1940, 1940, 1681, 1693,
1643      1693, 1693,  956, 1694, 1940, 1940, 1695, 1940, 1940, 1631,
1644
1645      1632, 1632, 1632, 1940, 1633, 1940, 1940, 1634,  728,  728,
1646       728, 1646, 1646, 1646, 1940, 1647, 1940, 1940, 1648, 1705,
1647      1705, 1705, 1940, 1654, 1654, 1654,  730, 1655, 1940, 1940,
1648      1656, 1707, 1707, 1707, 1940, 1940, 1706, 1668, 1668, 1668,
1649      1676, 1676, 1676, 1723, 1723, 1723, 1940, 1724, 1708, 1940,
1650      1725, 1940, 1940, 1940, 1940, 1669, 1940, 1677, 1679, 1679,
1651      1679, 1940, 1727, 1727, 1727, 1940, 1728, 1940, 1940, 1729,
1652      1700, 1940, 1940, 1940, 1940, 1680, 1683, 1683, 1683, 1732,
1653      1732, 1732, 1940, 1733, 1940, 1940, 1734, 1940, 1940, 1688,
1654      1688, 1688, 1940, 1684,  956, 1940, 1940,  956, 1940, 1685,
1655
1656      1685, 1685, 1940, 1686, 1940, 1940, 1687, 1693, 1693, 1693,
1657      1940, 1694, 1940, 1940, 1695, 1940, 1726,  956, 1705, 1705,
1658      1705, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1745, 1745,
1659      1745, 1940, 1707, 1707, 1707, 1706, 1730,  954,  954,  954,
1660       954,  954,  954,  954,  954,  954, 1746, 1940,  954, 1708,
1661      1940, 1940, 1940,  954,  954,  954,  956,  954, 1751, 1751,
1662      1751, 1940, 1752, 1940, 1940, 1753, 1754, 1754, 1754, 1940,
1663      1755, 1940, 1940, 1756, 1940, 1940, 1940, 1940, 1940,  954,
1664       954,  954,  954,  954,  954,  954,  954,  954,  954,  954,
1665      1940, 1940,  954, 1940, 1940, 1940, 1940,  954,  954,  954,
1666
1667       956,  954, 1723, 1723, 1723, 1940, 1724, 1940, 1940, 1725,
1668      1727, 1727, 1727, 1940, 1728, 1940, 1940, 1729, 1940, 1940,
1669      1940, 1940, 1940,  954,  954, 1940, 1769, 1732, 1732, 1732,
1670      1940, 1733, 1940, 1940, 1734, 1940, 1745, 1745, 1745, 1751,
1671      1751, 1751, 1940, 1752, 1940,  956, 1753, 1940, 1754, 1754,
1672      1754, 1940, 1755, 1940, 1746, 1756, 1940, 1940, 1940, 1940,
1673      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1674      1770,  954,  954,  954,  954,  954, 1777,  954,  954,  954,
1675      1940, 1940,  954, 1940, 1804, 1804, 1804,  954,  954,  954,
1676       956,  954, 1809, 1809, 1809, 1811, 1811, 1811, 1940, 1940,
1677
1678      1940, 1940,  956,  957, 1940, 1940, 1824, 1824, 1824, 1810,
1679      1940, 1940, 1812,  954,  954,  954,  954,  954,  954,  954,
1680       954,  954,  954, 1777,  663, 1798,  954, 1940, 1799, 1940,
1681      1940,  954,  954,  954,  956,  954, 1813, 1813, 1813, 1816,
1682      1816, 1816, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1804,
1683      1804, 1804, 1940, 1814, 1940, 1940, 1817,  954,  954, 1940,
1684      1940, 1940, 1940, 1809, 1809, 1809, 1940,  956, 1830, 1830,
1685      1830, 1940, 1831, 1940, 1940, 1832, 1894, 1894, 1894, 1815,
1686      1810, 1811, 1811, 1811, 1833, 1833, 1833, 1940, 1834, 1940,
1687      1940, 1835, 1940, 1822,  663, 1940, 1823, 1056, 1812, 1813,
1688
1689      1813, 1813, 1836, 1836, 1836, 1940, 1837, 1940, 1940, 1838,
1690      1816, 1816, 1816, 1840, 1840, 1840, 1814, 1841, 1940, 1940,
1691      1842, 1940, 1940, 1940, 1940, 1940, 1940, 1817, 1940, 1824,
1692      1824, 1824, 1830, 1830, 1830, 1940, 1831, 1940, 1940, 1832,
1693      1940, 1940, 1833, 1833, 1833, 1940, 1834,  663, 1940, 1835,
1694      1836, 1836, 1836, 1940, 1837, 1940, 1940, 1838, 1940, 1840,
1695      1840, 1840, 1940, 1841, 1847, 1849, 1842, 1848, 1940, 1940,
1696      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1697      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1698      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1699
1700      1940, 1875, 1875, 1875, 1940, 1940, 1940, 1940, 1940, 1940,
1701      1875, 1875, 1875, 1940, 1940, 1940, 1940, 1940, 1876, 1940,
1702      1940, 1940, 1940, 1940, 1940, 1856, 1940, 1876, 1857, 1940,
1703      1940, 1872, 1940, 1884, 1884, 1884, 1864, 1885, 1940, 1865,
1704      1886, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1873,
1705      1940, 1940, 1881, 1940, 1940, 1882, 1940, 1940, 1940, 1940,
1706      1940, 1940, 1884, 1884, 1884, 1940, 1885, 1940, 1940, 1886,
1707      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1708      1940, 1940, 1894, 1894, 1894, 1940, 1897, 1940, 1940, 1898,
1709      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1710
1711       663, 1889, 1940, 1940, 1890, 1940, 1940, 1940, 1940, 1940,
1712      1940, 1940, 1940, 1892, 1940, 1940, 1893, 1940, 1940, 1940,
1713      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1714      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1895, 1940, 1896,
1715      1911, 1911, 1911, 1940, 1940, 1899, 1940, 1940, 1913, 1913,
1716      1913, 1940, 1940, 1900, 1911, 1911, 1911, 1912, 1940, 1913,
1717      1913, 1913, 1940, 1904, 1903, 1914, 1940, 1940, 1917, 1917,
1718      1917, 1912, 1918, 1907, 1940, 1919, 1914, 1920, 1920, 1920,
1719      1940, 1921, 1940, 1940, 1922, 1917, 1917, 1917, 1940, 1918,
1720      1940, 1940, 1919, 1908, 1920, 1920, 1920, 1940, 1921, 1940,
1721
1722      1940, 1922, 1938, 1938, 1938, 1938, 1938, 1938, 1940, 1940,
1723      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1724      1939, 1940, 1940, 1939,  144,  144,  144,  144,  144,  144,
1725       144,  144,  144,  145,  145,  145,  145,  145,  145,  145,
1726       145,  145,  150,  150,  150,  150,  150,  150,  150,  150,
1727       150,  153,  153,  153,  153,  153,  153,  153,  153,  153,
1728       156,  156,  156,  156,  156,  156,  156,  156,  156,  159,
1729       159,  159,  159,  159,  159,  159,  159,  159,  166,  166,
1730       166,  166,  166,  166,  166,  166,  166,  174,  174,  174,
1731       174,  174,  174,  174,  174,  174,  179,  179,  179,  179,
1732
1733       179,  179,  179,  179,  179,  189,  189,  189,  189,  189,
1734       189,  189,  189,  189,  193,  193,  193,  193,  193,  193,
1735       193,  193,  193,  199,  199,  199,  199,  199,  199,  199,
1736       199,  199,  210,  210,  210,  210,  210,  210,  210,  210,
1737       210,  217,  217,  217,  217,  217,  217,  217,  217,  217,
1738       225,  225,  225,  225,  225,  225,  225,  225,  225,  232,
1739       232,  232,  232,  232,  232,  232,  232,  232,  238,  238,
1740       238,  238,  238,  238,  238,  238,  238,  245,  245,  245,
1741       245,  245,  245,  245,  245,  245,  251,  251,  251,  251,
1742       251,  251,  251,  251,  251,  257,  257,  257,  257,  257,
1743
1744       257,  257,  257,  257,  263,  263,  263,  263,  263,  263,
1745       263,  263,  263,  271,  271,  271,  271,  271,  271,  271,
1746       271,  271,  278,  278,  278,  278,  278,  278,  278,  278,
1747       278,  283,  283,  283,  283,  283,  283,  283,  283,  283,
1748       298,  298,  298,  298,  298,  298,  298,  298,  298,  304,
1749       304,  304,  304,  304,  304,  304,  304,  304,  308,  308,
1750       308,  308,  308,  308,  308,  308,  308,  314,  314,  314,
1751       314,  314,  314,  314,  314,  314,  321,  321,  321,  321,
1752       321,  321,  321,  321,  321,  328,  328,  328,  328,  328,
1753       328,  328,  328,  328,  335,  335,  335,  335,  335,  335,
1754
1755       335,  335,  335,  342,  342,  342,  342,  342,  342,  342,
1756       342,  342,  349,  349,  349,  349,  349,  349,  349,  349,
1757       349,  356,  356,  356,  356,  356,  356,  356,  356,  356,
1758       360,  360,  360,  360,  360,  360,  360,  360,  360,  366,
1759       366,  366,  366,  366,  366,  366,  366,  366,  373,  373,
1760       373,  373,  373,  373,  373,  373,  373,  381,  381,  381,
1761       381,  381,  381,  381,  381,  381,  385,  385,  385,  385,
1762       385,  385,  385,  385,  385,  405,  405,  405, 1940, 1940,
1763      1940,  405,  422,  422,  422, 1940, 1940, 1940,  422,  426,
1764       426,  426, 1940, 1940, 1940,  426,  434,  434,  434, 1940,
1765
1766      1940, 1940,  434,  444,  444,  444, 1940, 1940, 1940,  444,
1767       451,  451,  451, 1940, 1940, 1940,  451,  458,  458,  458,
1768      1940, 1940, 1940,  458,  462,  462,  462, 1940, 1940, 1940,
1769       462,  471,  471,  471, 1940, 1940, 1940,  471,  476,  476,
1770       476, 1940, 1940, 1940,  476,  487,  487,  487, 1940, 1940,
1771      1940,  487,  491,  491,  491, 1940, 1940, 1940,  491,  499,
1772       499,  499, 1940, 1940, 1940,  499,  507,  507,  507, 1940,
1773      1940, 1940,  507,  514,  514,  514, 1940, 1940, 1940,  514,
1774       518,  518,  518, 1940, 1940, 1940,  518,  526,  526,  526,
1775      1940, 1940, 1940,  526,  529,  529,  529,  529,  529,  529,
1776
1777       529, 1940,  529,  545, 1940, 1940, 1940,  545,  561, 1940,
1778      1940, 1940,  561,  568, 1940, 1940, 1940,  568,  578, 1940,
1779      1940, 1940,  578,  585, 1940, 1940, 1940,  585,  592, 1940,
1780      1940, 1940,  592,  595, 1940, 1940, 1940,  595,  604, 1940,
1781      1940, 1940,  604,  609, 1940, 1940, 1940,  609,  621, 1940,
1782      1940, 1940,  621,  625, 1940, 1940, 1940,  625,  491,  491,
1783       491, 1940, 1940, 1940,  491,  633, 1940, 1940, 1940,  633,
1784       499,  499,  499, 1940, 1940, 1940,  499,  640, 1940, 1940,
1785      1940,  640,  507,  507,  507, 1940, 1940, 1940,  507,  646,
1786      1940, 1940, 1940,  646,  514,  514,  514, 1940, 1940, 1940,
1787
1788       514,  650, 1940, 1940, 1940,  650,  518,  518,  518, 1940,
1789      1940, 1940,  518,  656, 1940, 1940, 1940,  656,  526,  526,
1790       526, 1940, 1940, 1940,  526,  660, 1940, 1940, 1940,  660,
1791       662,  662,  662,  662,  662,  662,  662,  662,  662,  668,
1792      1940, 1940, 1940, 1940,  668,  405,  405,  405, 1940, 1940,
1793      1940,  405,  678,  678,  678,  678, 1940, 1940,  678,  678,
1794       422,  422,  422, 1940, 1940, 1940,  422,  696,  696,  696,
1795       696, 1940, 1940,  696,  696,  426,  426,  426, 1940, 1940,
1796      1940,  426,  706,  706,  706,  706, 1940, 1940,  706,  706,
1797       434,  434,  434, 1940, 1940, 1940,  434,  720,  720,  720,
1798
1799       720, 1940, 1940,  720,  720,  444,  444,  444, 1940, 1940,
1800      1940,  444,  729,  729,  729,  729, 1940, 1940,  729,  729,
1801       451,  451,  451, 1940, 1940, 1940,  451,  739,  739,  739,
1802       739, 1940, 1940,  739,  739,  458,  458,  458, 1940, 1940,
1803      1940,  458,  744,  744,  744,  744, 1940, 1940,  744,  744,
1804       462,  462,  462, 1940, 1940, 1940,  462,  756,  756,  756,
1805       756, 1940, 1940,  756,  756,  471,  471,  471, 1940, 1940,
1806      1940,  471,  764,  764,  764,  764, 1940, 1940,  764,  764,
1807       476,  476,  476, 1940, 1940, 1940,  476,  782,  782,  782,
1808       782, 1940, 1940,  782,  782,  789,  789,  789,  789, 1940,
1809
1810      1940,  789,  789,  491,  491,  491, 1940, 1940, 1940,  491,
1811       800,  800,  800,  800, 1940, 1940,  800,  800,  499,  499,
1812       499, 1940, 1940, 1940,  499,  811,  811,  811,  811, 1940,
1813      1940,  811,  811,  507,  507,  507, 1940, 1940, 1940,  507,
1814       821,  821,  821,  821, 1940, 1940,  821,  821,  828,  828,
1815       828,  828, 1940, 1940,  828,  828,  518,  518,  518, 1940,
1816      1940, 1940,  518,  836,  836,  836,  836, 1940, 1940,  836,
1817       836,  526,  526,  526, 1940, 1940, 1940,  526,  842,  842,
1818       842,  842, 1940, 1940,  842,  842,  662,  662,  662,  662,
1819       662,  662,  662,  662,  662,  668, 1940,  668, 1940, 1940,
1820
1821       668,  405,  405,  405, 1940, 1940, 1940,  405,  678,  678,
1822       678,  678, 1940, 1940,  678,  678,  422,  422,  422,  422,
1823      1940,  422, 1940,  422,  696,  696,  696,  696, 1940, 1940,
1824       696,  696,  426,  426,  426,  426, 1940,  426, 1940,  426,
1825       706,  706,  706,  706, 1940, 1940,  706,  706,  434,  434,
1826       434, 1940, 1940, 1940,  434,  720,  720,  720,  720, 1940,
1827      1940,  720,  720,  444,  444,  444, 1940, 1940, 1940,  444,
1828       729,  729,  729,  729, 1940, 1940,  729,  729,  451,  451,
1829       451, 1940, 1940, 1940,  451,  739,  739,  739,  739, 1940,
1830      1940,  739,  739,  458,  458,  458, 1940, 1940, 1940,  458,
1831
1832       744,  744,  744,  744, 1940, 1940,  744,  744,  462,  462,
1833       462, 1940, 1940, 1940,  462,  756,  756,  756,  756, 1940,
1834      1940,  756,  756,  471,  471,  471, 1940, 1940, 1940,  471,
1835       764,  764,  764,  764, 1940, 1940,  764,  764,  476,  476,
1836       476, 1940, 1940, 1940,  476,  782,  782,  782,  782, 1940,
1837      1940,  782,  782,  789,  789,  789,  789, 1940, 1940,  789,
1838       789,  491,  491,  491, 1940, 1940, 1940,  491,  800,  800,
1839       800,  800, 1940, 1940,  800,  800,  499,  499,  499, 1940,
1840      1940, 1940,  499,  811,  811,  811,  811, 1940, 1940,  811,
1841       811,  507,  507,  507, 1940, 1940, 1940,  507,  821,  821,
1842
1843       821,  821, 1940, 1940,  821,  821,  828,  828,  828,  828,
1844      1940, 1940,  828,  828,  518,  518,  518, 1940, 1940, 1940,
1845       518,  836,  836,  836,  836, 1940, 1940,  836,  836,  526,
1846       526,  526, 1940, 1940, 1940,  526,  842,  842,  842,  842,
1847      1940, 1940,  842,  842,  662,  662,  662,  662,  662,  662,
1848       662,  662,  662,  954,  954,  954,  954,  954,  954,  954,
1849       954,  954,  405,  405,  405, 1940, 1940, 1940,  405,  678,
1850       678,  678,  678, 1940, 1940,  678,  678,  696,  696,  696,
1851       696, 1940, 1940,  696,  696,  426,  426,  426, 1940, 1940,
1852      1940,  426,  706,  706,  706,  706, 1940, 1940,  706,  706,
1853
1854       434,  434,  434, 1940, 1940, 1940,  434,  720,  720,  720,
1855       720, 1940, 1940,  720,  720,  444,  444,  444, 1940, 1940,
1856      1940,  444,  729,  729,  729,  729, 1940, 1940,  729,  729,
1857       451,  451,  451, 1940, 1940, 1940,  451,  739,  739,  739,
1858       739, 1940, 1940,  739,  739,  458,  458,  458, 1940, 1940,
1859      1940,  458,  744,  744,  744,  744, 1940, 1940,  744,  744,
1860       462,  462,  462, 1940, 1940, 1940,  462,  756,  756,  756,
1861       756, 1940, 1940,  756,  756,  471,  471,  471,  471, 1940,
1862       471, 1940,  471,  764,  764,  764,  764, 1940, 1940,  764,
1863       764,  476,  476,  476,  476, 1940,  476, 1940,  476,  782,
1864
1865       782,  782,  782, 1940, 1940,  782,  782,  789,  789,  789,
1866       789, 1940, 1940,  789,  789,  491,  491,  491, 1940, 1940,
1867      1940,  491,  800,  800,  800,  800, 1940, 1940,  800,  800,
1868       499,  499,  499, 1940, 1940, 1940,  499,  811,  811,  811,
1869       811, 1940, 1940,  811,  811,  507,  507,  507, 1940, 1940,
1870      1940,  507,  821,  821,  821,  821, 1940, 1940,  821,  821,
1871       828,  828,  828,  828, 1940, 1940,  828,  828,  518,  518,
1872       518, 1940, 1940, 1940,  518,  836,  836,  836,  836, 1940,
1873      1940,  836,  836,  526,  526,  526,  526, 1940,  526, 1940,
1874       526,  842,  842,  842,  842, 1940, 1940,  842,  842,  662,
1875
1876       662,  662,  662,  662,  662,  662,  662,  662,  954,  954,
1877       954,  954,  954,  954,  954,  954,  954,  405,  405,  405,
1878      1940, 1940, 1940,  405,  678,  678,  678,  678, 1940, 1940,
1879       678,  678,  696,  696,  696,  696, 1940, 1940,  696,  696,
1880       426,  426,  426, 1940, 1940, 1940,  426,  706,  706,  706,
1881       706, 1940, 1940,  706,  706,  434,  434,  434, 1940, 1940,
1882      1940,  434,  720,  720,  720,  720, 1940, 1940,  720,  720,
1883       444,  444,  444, 1940, 1940, 1940,  444,  729,  729,  729,
1884       729, 1940, 1940,  729,  729,  451,  451,  451,  451, 1940,
1885       451, 1940,  451,  458,  458,  458,  458, 1940,  458, 1940,
1886
1887       458,  744,  744,  744,  744, 1940, 1940,  744,  744,  462,
1888       462,  462, 1940, 1940, 1940,  462,  756,  756,  756,  756,
1889      1940, 1940,  756,  756,  764,  764,  764,  764, 1940, 1940,
1890       764,  764,  476,  476,  476,  476, 1940,  476, 1940,  476,
1891       782,  782,  782,  782, 1940, 1940,  782,  782,  789,  789,
1892       789,  789, 1940, 1940,  789,  789,  491,  491,  491, 1940,
1893      1940, 1940,  491,  800,  800,  800,  800, 1940, 1940,  800,
1894       800,  499,  499,  499,  499, 1940,  499, 1940,  499,  811,
1895       811,  811,  811, 1940, 1940,  811,  811,  507,  507,  507,
1896       507, 1940,  507, 1940,  507,  821,  821,  821,  821, 1940,
1897
1898      1940,  821,  821,  828,  828,  828,  828, 1940, 1940,  828,
1899       828,  518,  518,  518, 1940, 1940, 1940,  518,  836,  836,
1900       836,  836, 1940, 1940,  836,  836,  842,  842,  842,  842,
1901      1940, 1940,  842,  842,  662,  662,  662,  662,  662,  662,
1902       662,  662,  662,  954,  954,  954,  954,  954,  954,  954,
1903       954,  954,  405,  405,  405,  405, 1940,  405, 1940,  405,
1904       678,  678,  678,  678, 1940, 1940,  678,  678,  696,  696,
1905       696,  696, 1940, 1940,  696,  696,  426,  426,  426, 1940,
1906      1940, 1940,  426,  706,  706,  706,  706, 1940, 1940,  706,
1907       706,  434,  434,  434, 1940, 1940, 1940,  434,  720,  720,
1908
1909       720,  720, 1940, 1940,  720,  720,  444,  444,  444, 1940,
1910      1940, 1940,  444,  729,  729,  729,  729, 1940, 1940,  729,
1911       729,  451,  451,  451,  451, 1940,  451, 1940,  451,  744,
1912       744,  744,  744, 1940, 1940,  744,  744,  462,  462,  462,
1913      1940, 1940, 1940,  462, 1735, 1735, 1735, 1735, 1735, 1735,
1914      1735, 1735, 1735, 1736, 1736, 1736, 1736, 1736, 1736, 1736,
1915      1736, 1736, 1772, 1772, 1772, 1772, 1772, 1772, 1772, 1772,
1916      1772, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775, 1775,
1917      1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1801, 1803,
1918      1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803,  143, 1940,
1919
1920      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1921      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1922      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1923      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1924      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1925      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
1926      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940
1927     } ;
1928
1929 static yyconst flex_int16_t yy_chk[7169] =
1930     {   0,
1931         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
1932         6,    6,    6,    7,    7,    7,   11,    3,    9,   12,
1933         4,   10, 1449,    5, 1450,    9,    6,  389,   10,    7,
1934         8,    8,    8,  148,   11,   13,   13,   12,   14,   14,
1935        13,   13,  389,   14,   14,  149,    8,   17,   17,  148,
1936        13,   15,   15,   14,   15,  152,   15,   16,   16,  962,
1937        16,  149,   16,   18,   18,  962,   15,   19,   19,   19,
1938       292,  152,   16,   20,   20,   20,   23,   23,   23,   24,
1939        24,   24,  267,   19,   25,   25,   25,  333,   17,   20,
1940       292,  267,   23, 1161,  333,   24,  146,  146,  146, 1161,
1941
1942        25,  147,  147,  147,   18,   21,   21,   21,   21,   21,
1943        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1944      1451,   21,   21,   21,   21,   21,   26,   26,   26,   27,
1945        27,   27,  320,   28,   28,   28,   29,   29,   29,   30,
1946        30,   30,   26,  320, 1452,   27,  175,   21,   21,   28,
1947      1056,  295,   29,  190,  295,   30,  151,  151,  151,  172,
1948       172,  172,  175,  180,  180,  180,  187,  187,  187,  190,
1949        21, 1345,   21,   22,   22,   22,   22,   22,   22,   22,
1950        22,   22,   22,   22,   22,   22,   22,   22, 1056,   22,
1951        22,   22,   22,   22,   31,   31,   31,   32,   32,   32,
1952
1953      1345,   33,   33,   33,   34,   34,   34,   35,   35,   35,
1954        31,  415,  185,   32,  170,   22,   22,   33,  665,  185,
1955        34,  200,  665,   35,  415,   36,   36,   36,  185, 1162,
1956       170,  194,  194,  194,  197,  197,  197,  200,   22, 1163,
1957        22,   36,   37,   37,   37,   37,   37,   37,   37,   37,
1958        37,   37,   37,   37,   37,   37,   37, 1162,   37,   37,
1959        37,   37,   37,   39,   39,   39,   40,   40,   40,  170,
1960        47,   47,   47,   43,   43,   44,   44, 1453,   43,   39,
1961        44, 1163,   40,  215,   37,   37,   47,  215,   43,  845,
1962        44,  215,   37,   38,   38,   38,   38,   38,   38,   38,
1963
1964        38,   38,   38,   38,   38,   38,   38,   38,  845,   38,
1965        38,   38,   38,   38,   43,  211,   44,   48,   48,   48,
1966       953,   49,   49,   49,   50,   50,   50,  208,  208,  208,
1967       611,  211, 1258,   48, 1455,   38,   38,   49,  398,  611,
1968        50,  398,  953,   38,   41,   41,   41,   41,   41,   41,
1969        41,   41,   41,   41,   41,   41,   41,   41,   41, 1456,
1970        41,   41,   41,   41,   41,   51,   51,   51,   52,   52,
1971        52, 1258,   53,   53,   53,   54,   54,   54,  218,  218,
1972       218,   51,  195,  205,   52,  219,   41,   41,   53,  195,
1973       205,   54,  219, 1214,   41, 1215, 1457,   41,  195,  205,
1974
1975      1214,  219, 1215,   41,   42,   42,   42,   42,   42,   42,
1976        42,   42,   42,   42,   42,   42,   42,   42,   42,  430,
1977        42,   42,   42,   42,   42,   57,   57,   57,   58,   58,
1978        58, 1465,   61,   61,   61,   62,   62,   62,  531,  226,
1979       219,   57,  221,  420,   58, 1346,   42,   42,   61,  221,
1980      1466,   62,  430,  531,   42,  226,  420,   42,  221,  223,
1981       223,  223, 1259,   42,   45,   45,   45,   45,   45,   45,
1982        45,   45,   45,   45,   45,   45,   45,   45,   45, 1346,
1983        45,   45,   45,   45,   45,   65,   65,   65,   66,   66,
1984        66, 1467,   67,   67,   67,   68,   68,   68,   69,   69,
1985
1986        69,   65,  234,  239,   66, 1259,   45,   45,   67,  234,
1987      1282,   68, 1057, 1282,   69,   45, 1472,   45,  234,  239,
1988        45,  233,  233,  233, 1239, 1239,   45,   46,   46,   46,
1989        46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
1990        46,   46, 1057,   46,   46,   46,   46,   46,   70,   70,
1991        70,   73,   73,   73, 1473,   74,   74,   74,   75,   75,
1992        75,   76,   76,   76,   70,  247,  220,   73,  252,   46,
1993        46,   74,  247, 1438,   75, 1240, 1240,   76,   46, 1474,
1994        46,  247,  220,   46,  252, 1438,  162, 1245, 1245,   46,
1995        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
1996
1997        55,   55,   55,   55,   55, 1475,   55,   55,   55,   55,
1998        55,   77,   77,   77,   78,   78,   78, 1427,   79,   79,
1999        79,  220,   80,   80,   80,  162, 1476,   77, 1246, 1246,
2000        78,  162,   55,   55,   79,  162,  264,   55,   80,   55,
2001       162,  236,  236,  236,   55,  246,  246,  246,  249,  249,
2002       249, 1427,  264,   55,   56,   56,   56,   56,   56,   56,
2003        56,   56,   56,   56,   56,   56,   56,   56,   56,  279,
2004        56,   56,   56,   56,   56,   83,   83,   83,   84,   84,
2005        84, 1477,   87,   87,   87,  279,   88,   88,   88, 1482,
2006      1483,   83, 1235,  259,   84, 1439,   56,   56,   87, 1235,
2007
2008       259,   56,   88,   56,  258,  258,  258, 1439,   56,  259,
2009       261,  261,  261,  272,  272,  272, 1484,   56,   59,   59,
2010        59,   59,   59,   59,   59,   59,   59,   59,   59,   59,
2011        59,   59,   59, 1426,   59,   59,   59,   59,   59,   91,
2012        91,   91,   92,   92,   92, 1485,   95,   95,   95,   96,
2013        96,   96,   97,   97,   97,   91,  274,  256,   92, 1236,
2014        59,   59,   95,  274, 1283,   96, 1236, 1283,   97, 1426,
2015      1479,   59,  274,  256,  276,  276,  276,   59, 1479,   59,
2016        59,   60,   60,   60,   60,   60,   60,   60,   60,   60,
2017        60,   60,   60,   60,   60,   60, 1486,   60,   60,   60,
2018
2019        60,   60,   98,   98,   98,   99,   99,   99,  256,  100,
2020       100,  100,  101,  101,  101,  102,  102,  102,   98, 1480,
2021      1428,   99,  285,   60,   60,  100, 1487, 1480,  101,  285,
2022      1325,  102, 1325, 1500,   60,  284,  284,  284,  285, 1327,
2023        60, 1327,   60,   60,   63,   63,   63,   63,   63,   63,
2024        63,   63,   63,   63,   63,   63,   63,   63,   63, 1428,
2025        63,   63,   63,   63,   63,  105,  105,  105,  106,  106,
2026       106, 1500,  107,  107,  107,  108,  108,  108,  109,  109,
2027       109,  105,  290, 1332,  106, 1332,   63,   63,  107,  305,
2028      1334,  108, 1334, 1508,  109,  287,  287,  287,  290,  299,
2029
2030       299,  299,  302,  302,  302,  305,   63,   64,   64,   64,
2031        64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
2032        64,   64, 1499,   64,   64,   64,   64,   64,  110,  110,
2033       110,  111,  111,  111, 1511,  112,  112,  112,  115,  115,
2034       115,  116,  116,  116,  110,  300,  310,  111, 1499,   64,
2035        64,  112,  300,  310,  115, 1512, 1513,  116,  309,  309,
2036       309,  300,  310,  312,  312,  312,  322,  322,  322,   64,
2037        71,   71,   71,   71,   71,   71,   71,   71,   71,   71,
2038        71,   71,   71,   71,   71, 1514,   71,   71,   71,   71,
2039        71,  117,  117,  117,  118,  118,  118, 1515,  119,  119,
2040
2041       119,  120,  120,  120,  121,  121,  121,  117,  315,  324,
2042       118,  329,   71,   71,  119,   71,  324,  120, 1517, 1518,
2043       121, 1519, 1501,   71,  315,  324,   71,  329, 1520,   71,
2044      1521, 1522,   71,   72,   72,   72,   72,   72,   72,   72,
2045        72,   72,   72,   72,   72,   72,   72,   72, 1523,   72,
2046        72,   72,   72,   72,  122,  122,  122,  125,  125,  125,
2047      1501,  126,  126,  126,  129,  129,  129,  130,  130,  130,
2048       122,  343,  334,  125,  338,   72,   72,  126,   72, 1525,
2049       129,  338, 1526,  130, 1527, 1531,   72,  343,  334,   72,
2050       338, 1532,   72, 1536, 1538,   72,   81,   81,   81,   81,
2051
2052        81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
2053        81, 1542,   81,   81,   81,   81,   81,  131,  131,  131,
2054       132,  132,  132,  334,  133,  133,  133,  134,  134,  134,
2055       135,  135,  135,  131,  273, 1543,  132, 1544,   81,   81,
2056       133,  273, 1545,  134,  357, 1546,  135, 1547, 1548,   81,
2057       273,  326,  326,  326,  336,  336,  336,  340,  340,  340,
2058       357,   81,   82,   82,   82,   82,   82,   82,   82,   82,
2059        82,   82,   82,   82,   82,   82,   82, 1549,   82,   82,
2060        82,   82,   82,  136,  136,  136,  139,  139,  139,  273,
2061       140,  140,  140,  350,  350,  350,  352,  367,  382,  136,
2062
2063      1550, 1551,  139,  352,   82,   82,  140,  354,  354,  354,
2064      1055, 1553,  352,  367,  382,   82,  361,  361,  361,  364,
2065       364,  364,  374,  374,  374, 1554, 1055,   82,   85,   85,
2066        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2067        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2068        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2069        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2070        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2071        85,   85,   85,   85,   85,   85,   85,   85,   85,   85,
2072        85,   85,   85,   85,   85,   85,   85,   89,   89,   89,
2073
2074        89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
2075        89,   89, 1555,   89,   89,   89,   89,   89, 1556, 1557,
2076       323,  337,  362, 1558, 1571,  182,  351,  323,  337,  362,
2077       183, 1575,  182,  351, 1565, 1576,  323,  337,  362,   89,
2078        89,  182,  351,  379,  379,  379,  183,  386,  386,  386,
2079        89,   90,   90,   90,   90,   90,   90,   90,   90,   90,
2080        90,   90,   90,   90,   90,   90, 1565,   90,   90,   90,
2081        90,   90,  337,  183,  182,  323,  183,  351,  183,  183,
2082       182,  183,  182,  184,  182,  255,  376,  183,  183,  183,
2083       388,  388,  388,   90,   90,  397,  397,  397, 1577,  184,
2084
2085      1578,  255,  376, 1582,   90,   93,   93,   93,   93,   93,
2086        93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
2087      1564,   93,   93,   93,   93,   93, 1583,  376,  377, 1584,
2088       387, 1585,  184,  255, 1586,  377,  255,  387,  184, 1587,
2089       184,  376,  184, 1588,  377, 1589,  387,   93,   93,  375,
2090       397,   93, 1590,  534,  534,  534,  375,  534,   93, 1591,
2091        93,  689,  689,  689, 1564,  375, 1595,   93,   94,   94,
2092        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
2093        94,   94,   94, 1597,   94,   94,   94,   94,   94, 1598,
2094       375,  428,  428,  428, 1601,  436,  436,  436,  452,  452,
2095
2096       452,  464,  464,  464,  375,  472,  472,  472,  428, 1602,
2097        94,   94,  436, 1603,   94,  452, 1596, 1596,  464, 1604,
2098      1605,   94,  472,   94,  857,  857,  857,  859,  859,  859,
2099        94,  103,  103,  103,  103,  103,  103,  103,  103,  103,
2100       103,  103,  103,  103,  103,  103, 1606,  103,  103,  103,
2101       103,  103,  478,  478,  478,  479,  479,  479,  488,  488,
2102       488,  493,  493,  493,  515,  515,  515, 1607, 1608,  478,
2103      1609, 1610,  479,  103,  103,  488,  103, 1611,  493,  103,
2104      1613,  515,  565,  565,  565, 1614,  565, 1615, 1616,  565,
2105       863,  863,  863,  103,  104,  104,  104,  104,  104,  104,
2106
2107       104,  104,  104,  104,  104,  104,  104,  104,  104, 1617,
2108       104,  104,  104,  104,  104,  545,  545,  545, 1618, 1621,
2109       561,  561,  561, 1626, 1627,  546,  546,  546,  562,  562,
2110       562,  996,  996,  545, 1628, 1629,  104,  104,  561,  104,
2111      1639,  996,  104,  546, 1640,  996,  562,  573,  573,  573,
2112      1621,  573, 1642, 1643,  573, 1649,  104,  113,  113,  113,
2113       113,  113,  113,  113,  113,  113,  113,  113,  113,  113,
2114       113,  113, 1650,  113,  113,  113,  113,  113, 1651,  546,
2115       564,  564,  564, 1652,  562,  568,  568,  568,  569,  569,
2116       569,  572,  572,  572,  574,  574,  574,  564, 1658,  113,
2117
2118       113, 1659,  113,  568, 1660,  113,  569, 1661,  572, 1662,
2119       113,  574,  887,  887,  887,  966,  966,  966, 1663,  113,
2120       114,  114,  114,  114,  114,  114,  114,  114,  114,  114,
2121       114,  114,  114,  114,  114, 1665,  114,  114,  114,  114,
2122       114,  576,  576,  576,  968,  968,  968, 1667,  569,  578,
2123       578,  578, 1670, 1671,  579,  579,  579, 1672,  576,  585,
2124       585,  585,  114,  114, 1673,  114, 1674,  578,  114,  992,
2125       992,  992,  579,  114,  588,  588,  588,  585,  588, 1675,
2126      1689,  588,  114,  123,  123,  123,  123,  123,  123,  123,
2127       123,  123,  123,  123,  123,  123,  123,  123,  579,  123,
2128
2129       123,  123,  123,  123,  586,  586,  586,  587,  587,  587,
2130       592,  592,  592,  593,  593,  593,  595,  595,  595,  972,
2131       972,  972,  586, 1682,  587,  123,  123, 1690,  592, 1691,
2132      1692,  593, 1696,  972,  595, 1697,  123,  124,  124,  124,
2133       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
2134       124,  124, 1698,  124,  124,  124,  124,  124,  596,  596,
2135       596,  593, 1682, 1699,  586,  598,  598,  598,  599,  599,
2136       599, 1701,  599,  997,  997,  599,  596, 1702, 1703,  124,
2137       124, 1704,  598,  997, 1068, 1068, 1068,  997, 1709, 1710,
2138       124,  127,  127,  127,  127,  127,  127,  127,  127,  127,
2139
2140       127,  127,  127,  127,  127,  127, 1711,  127,  127,  127,
2141       127,  127,  604,  604,  604,  596, 1712, 1713,  605,  605,
2142       605,  606,  606,  606,  607,  607,  607, 1714,  607, 1717,
2143       604,  607, 1718,  127,  127, 1719,  605, 1720,  606, 1721,
2144      1722,  127, 1737,  127, 1739,  127, 1069, 1069, 1069, 1071,
2145      1071, 1071, 1741,  127,  128,  128,  128,  128,  128,  128,
2146       128,  128,  128,  128,  128,  128,  128,  128,  128, 1743,
2147       128,  128,  128,  128,  128,  605,  609,  609,  609, 1747,
2148       610,  610,  610,  612,  612,  612,  613,  613,  613, 1748,
2149       613, 1749, 1750,  613,  609, 1757,  128,  128,  610, 1758,
2150
2151       612,  973,  973,  973,  128, 1731,  128, 1760,  128, 1072,
2152      1072, 1072, 1170, 1170, 1170,  973,  128,  137,  137,  137,
2153       137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
2154       137,  137, 1761,  137,  137,  137,  137,  137, 1734, 1755,
2155       610,  614,  614,  614,  615,  615,  615, 1731,  615, 1734,
2156      1755,  615,  616,  616,  616,  621,  621,  621,  614,  137,
2157       137,  622,  622,  622,  623,  623,  623, 1756, 1763,  616,
2158       624,  624,  624,  621,  624, 1764, 1766,  624, 1756,  622,
2159      1767,  623,  137,  138,  138,  138,  138,  138,  138,  138,
2160       138,  138,  138,  138,  138,  138,  138,  138, 1774,  138,
2161
2162       138,  138,  138,  138,  625,  625,  625, 1733, 1775,  626,
2163       626,  626,  628,  628,  628,  622,  629,  629,  629, 1775,
2164       629, 1733,  625,  629, 1776,  138,  138,  626, 1778,  628,
2165      1773, 1773,  633,  633,  633,  634,  634,  634,  636,  636,
2166       636,  637,  637,  637,  640,  640,  640, 1779,  138,  181,
2167       633, 1780, 1771,  634, 1781,  636,  181, 1786,  637,  641,
2168       641,  641,  640, 1787, 1788,  181,  626,  643,  643,  643,
2169      1789,  645,  645,  645,  648,  648,  648,  641,  646,  646,
2170       646,  647,  647,  647,  643, 1801, 1802,  634,  645, 1771,
2171      1803,  648,  181, 1805, 1806,  181,  646,  181,  181,  647,
2172
2173       181,  650,  650,  650,  181, 1807,  181,  181,  181, 1808,
2174       649,  649,  649, 1815,  649, 1818,  641,  649, 1819,  650,
2175      1820,  651,  651,  651,  656,  656,  656,  657,  657,  657,
2176       660,  660,  660,  661,  661,  661, 1772, 1821,  647,  651,
2177      1825, 1839,  656, 1843, 1844,  657, 1845, 1846,  660, 1849,
2178      1772,  661,  677,  677,  677, 1851,  678,  678,  678,  680,
2179       680,  680,  694,  694,  694,  695,  695,  695, 1852, 1853,
2180       677, 1849, 1854,  651,  678, 1855, 1859,  680, 1860,  694,
2181       696,  696,  696,  695,  698,  698,  698,  657,  699,  699,
2182       699, 1858, 1861,  661,  703,  703,  703, 1862,  696,  705,
2183
2184       705,  705,  698,  680, 1863,  699,  700,  700,  700, 1858,
2185       700,  703, 1866,  700,  706,  706,  706,  705,  708,  708,
2186       708,  710,  710,  710, 1868,  710, 1869, 1870,  710, 1871,
2187       698, 1866,  706,  713,  713,  713,  708,  714,  714,  714,
2188      1877,  714, 1879, 1874,  714, 1901,  715,  715,  715, 1874,
2189       713,  703,  716,  716,  716, 1883, 1905,  717,  717,  717,
2190      1902,  717,  708,  715,  717,  719,  719,  719, 1883,  716,
2191       720,  720,  720,  722,  722,  722,  726,  726,  726,  728,
2192       728,  728, 1929,  719,  729,  729,  729, 1897,  720, 1898,
2193      1901,  722, 1448,  726,  731,  731,  731,  728, 1905,  732,
2194
2195       732,  732,  729,  732, 1906, 1902,  732,  738,  738,  738,
2196      1930, 1929,  731,  739,  739,  739,  741,  741,  741,  743,
2197       743,  743,  744,  744,  744,  738,  746,  746,  746,  722,
2198      1897,  739, 1898, 1909,  741, 1910, 1925,  743,  731, 1930,
2199       744,  748,  748,  748,  746,  748, 1906, 1915,  748,  755,
2200       755,  755,  756,  756,  756,  758,  758,  758,  759,  759,
2201       759, 1923,  759, 1926, 1909,  759, 1910,  755, 1927, 1924,
2202       756, 1916, 1925,  758,  763,  763,  763, 1927,  741,  764,
2203       764,  764,  766,  766,  766, 1936,  746,  769,  769,  769,
2204      1447,  769,  763, 1931,  769, 1915, 1936,  764, 1923, 1926,
2205
2206       766,  772,  772,  772, 1933,  772, 1924, 1446,  772,  775,
2207       775,  775, 1928,  776,  776,  776,  758,  776, 1934, 1916,
2208       776, 1928,  781,  781,  781, 1932,  775,  782,  782,  782,
2209       784,  784,  784, 1933,  785,  785,  785, 1931,  785,  766,
2210       781,  785,  788,  788,  788,  782, 1445, 1934,  784,  789,
2211       789,  789,  791,  791,  791,  793,  793,  793, 1444,  793,
2212       788, 1443,  793,  799,  799,  799, 1935,  789, 1442, 1932,
2213       791,  800,  800,  800,  802,  802,  802,  804,  804,  804,
2214      1935,  799, 1441,  805,  805,  805, 1440,  805, 1435,  800,
2215       805, 1434,  802,  784,  804,  806,  806,  806,  807,  807,
2216
2217       807, 1413,  807, 1412, 1411,  807,  810,  810,  810,  811,
2218       811,  811,  806, 1410, 1409,  791,  813,  813,  813,  815,
2219       815,  815, 1408, 1403,  810, 1402, 1401,  811, 1400, 1399,
2220       802,  816,  816,  816,  813,  816,  815, 1398,  816,  818,
2221       818,  818,  819,  819,  819, 1395,  819, 1393, 1392,  819,
2222       820,  820,  820,  821,  821,  821,  818,  823,  823,  823,
2223       824,  824,  824, 1391,  824, 1390, 1383,  824,  820, 1381,
2224      1380,  821,  827,  827,  827,  823,  828,  828,  828,  813,
2225       830,  830,  830,  832,  832,  832,  835,  835,  835, 1379,
2226       827,  836,  836,  836,  828,  838,  838,  838,  830, 1378,
2227
2228       832,  841,  841,  841,  835,  842,  842,  842, 1371,  836,
2229       844,  844,  844,  838,  846,  846,  846, 1370, 1369,  841,
2230       823, 1368, 1367,  842,  854,  854,  854, 1366,  844,  868,
2231       868,  868,  846,  846, 1365, 1364,  830,  869,  869,  869,
2232      1363,  869,  854, 1362,  869, 1361,  868,  870,  870,  870,
2233      1360, 1359,  838,  871,  871,  871, 1358,  872,  872,  872,
2234       844,  872, 1355, 1352,  872,  870,  875,  875,  875, 1351,
2235       871,  877,  877,  877, 1340,  877, 1333, 1331,  877,  880,
2236       880,  880, 1326, 1324,  875, 1323,  854,  881,  881,  881,
2237      1322,  881, 1321, 1320,  881, 1319,  880, 1318,  882,  882,
2238
2239       882,  870,  882, 1317, 1306,  882,  886,  886,  886,  890,
2240       890,  890,  875,  891,  891,  891, 1305,  891, 1304, 1303,
2241       891,  893,  893,  893,  886, 1302,  890,  897,  897,  897,
2242       899,  899,  899,  903,  903,  903,  905,  905,  905,  893,
2243       904,  904,  904, 1301, 1300,  897, 1299, 1291,  899, 1290,
2244       903, 1289, 1288,  886,  905, 1287, 1286,  904,  906,  906,
2245       906,  907,  907,  907,  908,  908,  908,  893,  909,  909,
2246       909, 1285,  913,  913,  913,  906, 1284, 1280,  899,  907,
2247      1277,  908, 1274,  904, 1272,  909,  910,  910,  910,  913,
2248       910, 1271, 1255,  910,  914,  914,  914, 1253,  905,  915,
2249
2250       915,  915, 1252,  916,  916,  916,  917,  917,  917, 1242,
2251      1237,  914, 1234,  918,  918,  918,  915, 1233, 1230,  907,
2252       916,  922,  922,  922,  917, 1216,  923,  923,  923, 1213,
2253       909,  918,  925,  925,  925, 1212,  925, 1211,  922,  925,
2254       933,  933,  933,  915,  923,  928,  928,  928, 1196,  928,
2255      1195, 1194,  928, 1193, 1192,  935,  935,  935,  933,  935,
2256       914, 1191,  935, 1190,  922, 1189, 1186,  917, 1184,  916,
2257       939,  939,  939, 1183,  939,  918, 1180,  939, 1179,  923,
2258       942,  942,  942,  943,  943,  943,  945,  945,  945,  946,
2259       946,  946, 1177,  946, 1175, 1164,  946, 1156,  942, 1154,
2260
2261      1153,  943,  933,  945,  949,  949,  949,  951,  951,  951,
2262       952,  952,  952,  955,  955,  955,  963,  963,  963,  971,
2263       971,  971,  949, 1152,  951,  976,  976,  976,  952,  976,
2264      1145,  955,  976,  971,  963, 1139,  943,  979,  979,  979,
2265      1138, 1137,  942, 1135,  980,  980,  980, 1133,  980, 1110,
2266       949,  980,  991,  991,  991,  979,  985,  985,  985, 1109,
2267      1108,  955,  987,  987,  987,  963,  987, 1103, 1102,  987,
2268       991, 1101, 1091,  952,  985, 1090, 1089,  955, 1088,  971,
2269       995,  995,  995, 1087,  995, 1086, 1085,  995,  999,  999,
2270       999, 1000, 1000, 1000, 1001, 1001, 1001, 1002, 1002, 1002,
2271
2272       979, 1003, 1003, 1003,  985, 1084,  999, 1083, 1000,  991,
2273      1081, 1001, 1079, 1078, 1002, 1005, 1005, 1005, 1076, 1003,
2274      1006, 1006, 1006, 1010, 1010, 1010, 1011, 1011, 1011, 1075,
2275      1011, 1073, 1005, 1011, 1070, 1067,  999, 1066, 1006, 1065,
2276      1010, 1012, 1012, 1012, 1064, 1013, 1013, 1013, 1001, 1013,
2277      1059, 1051, 1013, 1015, 1015, 1015, 1049, 1048, 1012, 1016,
2278      1016, 1016, 1044, 1038, 1006, 1017, 1017, 1017, 1034, 1017,
2279      1031, 1015, 1017, 1018, 1018, 1018, 1016, 1019, 1019, 1019,
2280      1020, 1020, 1020, 1030, 1020, 1029, 1014, 1020, 1021, 1021,
2281      1021, 1018, 1009, 1008, 1019, 1022, 1022, 1022, 1007, 1023,
2282
2283      1023, 1023,  998, 1023,  994, 1021, 1023, 1024, 1024, 1024,
2284       993,  990, 1022, 1025, 1025, 1025, 1026, 1026, 1026, 1027,
2285      1027, 1027,  986,  984, 1024, 1028, 1028, 1028,  983,  975,
2286      1025,  974,  970, 1026, 1032, 1032, 1032, 1027, 1033, 1033,
2287      1033,  969, 1033, 1028,  967, 1033, 1035, 1035, 1035,  965,
2288       964, 1032, 1036, 1036, 1036, 1037, 1037, 1037, 1039, 1039,
2289      1039, 1040, 1040, 1040, 1035,  961,  960, 1025,  957, 1036,
2290       954,  950, 1037, 1028,  948,  947, 1039,  944, 1040,  938,
2291       934, 1027, 1041, 1041, 1041, 1042, 1042, 1042,  932,  931,
2292      1043, 1043, 1043, 1045, 1045, 1045,  924, 1045,  921, 1041,
2293
2294      1045,  920,  919, 1042, 1043,  902, 1039,  901, 1043, 1050,
2295      1050, 1050, 1052, 1052, 1052, 1037, 1053, 1053, 1053,  900,
2296      1053,  898,  896, 1053,  895, 1041,  894, 1050,  892, 1052,
2297      1054, 1054, 1054, 1042, 1060, 1060, 1060, 1061, 1061, 1061,
2298       889, 1062, 1062, 1062, 1063, 1063, 1063,  888, 1054,  885,
2299       876, 1060,  874,  873, 1061,  867,  866, 1050, 1062, 1074,
2300      1074, 1074, 1063, 1077, 1077, 1077, 1080, 1080, 1080, 1082,
2301      1082, 1082,  865, 1092, 1092, 1092,  864, 1074, 1093, 1093,
2302      1093, 1077,  862,  861, 1080, 1054, 1082, 1092,  860, 1061,
2303       858, 1092, 1094, 1094, 1094, 1093, 1094,  856, 1062, 1094,
2304
2305       855, 1063, 1095, 1095, 1095,  853, 1074, 1096, 1096, 1096,
2306      1097, 1097, 1097,  852, 1097,  851,  850, 1097,  849, 1095,
2307       840, 1080,  839,  834, 1096, 1098, 1098, 1098, 1099, 1099,
2308      1099,  833, 1099,  831,  817, 1099, 1100, 1100, 1100, 1104,
2309      1104, 1104, 1098, 1104,  814,  809, 1104,  808, 1107, 1107,
2310      1107,  803, 1107,  798, 1100, 1107, 1111, 1111, 1111, 1113,
2311      1113, 1113,  797, 1113,  796,  792, 1113, 1116, 1116, 1116,
2312       780, 1118, 1118, 1118, 1111, 1118,  779,  778, 1118, 1121,
2313      1121, 1121, 1100,  777,  768, 1116, 1122, 1122, 1122,  767,
2314      1122,  762,  754, 1122,  753,  752, 1121, 1123, 1123, 1123,
2315
2316       751, 1123,  747,  742, 1123, 1126, 1126, 1126, 1127, 1127,
2317      1127,  737, 1127,  736,  735, 1127, 1128, 1128, 1128, 1129,
2318      1129, 1129, 1126, 1130, 1130, 1130,  727, 1130,  725,  724,
2319      1130,  723,  718, 1128,  709,  704, 1129, 1131, 1131, 1131,
2320      1132, 1132, 1132, 1134, 1134, 1134, 1136, 1136, 1136,  693,
2321      1136,  692,  691, 1136,  690, 1131,  688,  687, 1132,  686,
2322      1134, 1140, 1140, 1140, 1142, 1142, 1142, 1143, 1143, 1143,
2323       685, 1143,  684,  683, 1143, 1144, 1144, 1144,  682, 1140,
2324       681, 1142, 1147, 1147, 1147, 1131, 1134, 1146, 1146, 1146,
2325       676,  675, 1144, 1149, 1149, 1149, 1150, 1150, 1150, 1147,
2326
2327      1132, 1146, 1148, 1148, 1148, 1146, 1148,  674,  673, 1148,
2328      1149, 1151, 1151, 1151, 1150, 1155, 1155, 1155, 1157, 1157,
2329      1157,  670, 1157,  669,  668, 1157,  666, 1144,  662, 1151,
2330      1160, 1160, 1160, 1155, 1165, 1165, 1165, 1166, 1166, 1166,
2331       659, 1166,  658,  655, 1166, 1167, 1167, 1167, 1160,  654,
2332      1149, 1165, 1168, 1168, 1168,  653,  652, 1151,  644, 1169,
2333      1169, 1169, 1167, 1171, 1171, 1171, 1172, 1172, 1172, 1168,
2334      1173, 1173, 1173, 1174, 1174, 1174, 1155, 1169, 1160, 1176,
2335      1176, 1176, 1178, 1178, 1178, 1181, 1181, 1181, 1185, 1185,
2336      1185, 1187, 1187, 1187,  642, 1188, 1188, 1188,  639, 1188,
2337
2338      1178, 1167, 1188, 1181,  638,  635, 1185,  632, 1187, 1197,
2339      1197, 1197, 1202, 1202, 1202, 1168, 1198, 1198, 1198, 1169,
2340      1199, 1199, 1199,  631, 1199,  630, 1197, 1199,  627, 1202,
2341      1178, 1203, 1203, 1203, 1198, 1203,  620,  619, 1203, 1204,
2342      1204, 1204,  618, 1204,  617,  608, 1204, 1207, 1207, 1207,
2343       603, 1207,  602,  601, 1207, 1210, 1210, 1210,  600, 1217,
2344      1217, 1217, 1198, 1217,  597,  594, 1217, 1220, 1220, 1220,
2345       591, 1220,  590, 1210, 1220, 1223, 1223, 1223, 1224, 1224,
2346      1224,  589, 1224,  584,  583, 1224, 1225, 1225, 1225,  582,
2347      1225,  581, 1223, 1225, 1228, 1228, 1228, 1229, 1229, 1229,
2348
2349      1231, 1231, 1231, 1232, 1232, 1232, 1210, 1232,  580,  577,
2350      1232,  575, 1228,  571,  567, 1229,  566, 1231, 1238, 1238,
2351      1238,  563, 1238,  560,  559, 1238, 1241, 1241, 1241, 1243,
2352      1243, 1243, 1244, 1244, 1244,  558, 1244,  557,  556, 1244,
2353      1247, 1247, 1247, 1241, 1248, 1248, 1248, 1243, 1250, 1250,
2354      1250, 1251, 1251, 1251, 1228,  555,  554, 1247, 1254, 1254,
2355      1254,  553, 1248, 1257, 1257, 1257, 1250,  552, 1251, 1256,
2356      1256, 1256, 1241, 1260, 1260, 1260, 1254,  551, 1261, 1261,
2357      1261, 1257, 1261,  550, 1243, 1261,  549, 1256, 1264, 1264,
2358      1264, 1265, 1265, 1265,  548,  547, 1247, 1266, 1266, 1266,
2359
2360      1267, 1267, 1267,  544,  543, 1264,  542,  540, 1265,  539,
2361      1250, 1268, 1268, 1268,  538, 1266, 1269, 1269, 1269, 1254,
2362      1270, 1270, 1270,  537,  536, 1256, 1273, 1273, 1273, 1276,
2363      1276, 1276, 1278, 1278, 1278, 1281, 1281, 1281,  532, 1281,
2364       530, 1264, 1281,  529, 1273,  528, 1276, 1292, 1292, 1292,
2365      1278,  527, 1266, 1265, 1293, 1293, 1293,  524, 1293,  523,
2366       522, 1293,  521,  520, 1292, 1294, 1294, 1294, 1295, 1295,
2367      1295,  519, 1295,  516,  512, 1295, 1298, 1298, 1298,  511,
2368      1307, 1307, 1307, 1294, 1307,  510,  509, 1307, 1310, 1310,
2369      1310, 1311, 1311, 1311, 1298, 1313, 1313, 1313, 1314, 1314,
2370
2371      1314,  508, 1314,  505,  504, 1314, 1310,  503,  502, 1311,
2372       501,  500, 1313, 1328, 1328, 1328, 1329, 1329, 1329, 1330,
2373      1330, 1330, 1294, 1335, 1335, 1335,  497, 1336, 1336, 1336,
2374      1328, 1337, 1337, 1337, 1339, 1339, 1339, 1330, 1313,  496,
2375      1335,  495, 1338, 1338, 1338, 1336, 1338,  494, 1337, 1338,
2376       492, 1339, 1341, 1341, 1341, 1342, 1342, 1342, 1343, 1343,
2377      1343, 1344, 1344, 1344,  489,  485, 1335, 1347, 1347, 1347,
2378      1341, 1348, 1348, 1348,  484,  483, 1343,  482,  481, 1344,
2379       480,  477, 1330, 1336, 1349, 1349, 1349,  474, 1348, 1350,
2380      1350, 1350, 1353, 1353, 1353, 1356, 1356, 1356, 1357, 1357,
2381
2382      1357, 1349, 1357,  473,  469, 1357,  468, 1350,  467,  466,
2383      1353,  465, 1356,  463, 1372, 1372, 1372,  460, 1372, 1344,
2384      1343, 1372, 1375, 1375, 1375, 1376, 1376, 1376, 1385, 1385,
2385      1385,  459, 1349, 1386, 1386, 1386, 1388, 1388, 1388,  456,
2386      1375,  455,  454, 1376,  453, 1385,  449,  448, 1389, 1389,
2387      1389, 1386, 1389, 1388,  447, 1389, 1397, 1397, 1397, 1404,
2388      1404, 1404, 1405, 1405, 1405,  446, 1405,  445,  442, 1405,
2389      1406, 1406, 1406, 1397,  441,  440, 1404,  439, 1375, 1407,
2390      1407, 1407, 1414, 1414, 1414, 1415, 1415, 1415, 1416, 1416,
2391      1416,  438, 1416,  437,  435, 1416,  432, 1407,  431, 1414,
2392
2393      1419, 1419, 1419, 1415, 1420, 1420, 1420,  429, 1420,  427,
2394       424, 1420,  423, 1421, 1421, 1421,  419, 1419, 1422, 1422,
2395      1422, 1424, 1424, 1424, 1425, 1425, 1425,  418,  417, 1414,
2396      1421,  416,  414, 1407,  413,  412, 1422, 1429, 1429, 1429,
2397       411,  410, 1425, 1414, 1430, 1430, 1430,  409, 1430,  408,
2398       407, 1430,  406,  403, 1429, 1431, 1431, 1431, 1432, 1432,
2399      1432, 1436, 1436, 1436, 1437, 1437, 1437,  402, 1437,  401,
2400       400, 1437, 1431, 1454, 1454, 1454, 1432,  399, 1436, 1460,
2401      1460, 1460, 1461, 1461, 1461,  393, 1461,  392,  390, 1461,
2402       384, 1454,  380, 1462, 1462, 1462, 1460, 1462,  372,  371,
2403
2404      1462, 1470, 1470, 1470, 1471, 1471, 1471,  370, 1471,  369,
2405       365, 1471, 1478, 1478, 1478,  359, 1478,  355, 1470, 1478,
2406      1481, 1481, 1481, 1488, 1488, 1488, 1489, 1489, 1489, 1454,
2407      1490, 1490, 1490,  348,  347, 1492, 1492, 1492, 1481, 1492,
2408      1488,  346, 1492, 1489, 1495, 1495, 1495,  345, 1490, 1496,
2409      1496, 1496,  341, 1496,  332,  331, 1496, 1497, 1497, 1497,
2410       327, 1495, 1502, 1502, 1502,  319, 1502,  318,  317, 1502,
2411      1505, 1505, 1505,  313,  307, 1497, 1506, 1506, 1506,  303,
2412      1506,  297, 1481, 1506, 1488,  296, 1489, 1505, 1507, 1507,
2413      1507, 1509, 1509, 1509, 1510, 1510, 1510,  294, 1510,  293,
2414
2415       288, 1510, 1516, 1516, 1516, 1529, 1529, 1529, 1509, 1530,
2416      1530, 1530,  282, 1533, 1533, 1533,  281, 1533,  277, 1516,
2417      1533,  270,  269, 1529,  268,  266, 1530, 1537, 1537, 1537,
2418      1539, 1539, 1539,  262, 1539,  254,  250, 1539, 1552, 1552,
2419      1552, 1559, 1559, 1559, 1537, 1560, 1560, 1560, 1570, 1570,
2420      1570,  244, 1530, 1529,  243,  242, 1552,  241, 1559, 1561,
2421      1561, 1561, 1560, 1561,  237,  231, 1561, 1566, 1566, 1566,
2422      1567, 1567, 1567,  230, 1567,  229,  228, 1567,  224, 1572,
2423      1572, 1572,  216, 1572, 1566, 1566, 1572, 1579, 1579, 1579,
2424      1552, 1560, 1580, 1580, 1580, 1581, 1581, 1581,  214, 1581,
2425
2426       213,  209, 1581, 1559, 1579, 1592, 1592, 1592,  206, 1580,
2427      1593, 1593, 1593, 1594, 1594, 1594,  204, 1594,  203,  202,
2428      1594,  198,  192, 1592, 1599, 1599, 1599, 1593, 1600, 1600,
2429      1600,  188, 1600,  178,  177, 1600, 1612, 1612, 1612,  173,
2430       169, 1599, 1619, 1619, 1619, 1620, 1620, 1620, 1622, 1622,
2431      1622, 1592,  168,  167, 1612, 1623, 1623, 1623,  161, 1619,
2432       160,  158, 1620,  155,  143, 1622, 1622, 1625, 1625, 1625,
2433         0,    0, 1623, 1623, 1624, 1624, 1624,    0, 1624,    0,
2434         0, 1624, 1630, 1630, 1630, 1619,    0,    0, 1620, 1631,
2435      1631, 1631, 1624, 1631,    0,    0, 1631,    0,    0, 1630,
2436
2437      1632, 1632, 1632,    0, 1632,    0,    0, 1632, 1645, 1645,
2438      1645, 1646, 1646, 1646,    0, 1646,    0,    0, 1646, 1653,
2439      1653, 1653,    0, 1654, 1654, 1654, 1645, 1654,    0,    0,
2440      1654, 1657, 1657, 1657,    0,    0, 1653, 1668, 1668, 1668,
2441      1676, 1676, 1676, 1677, 1677, 1677,    0, 1677, 1657,    0,
2442      1677, 1678, 1678, 1678,    0, 1668,    0, 1676, 1679, 1679,
2443      1679,    0, 1680, 1680, 1680,    0, 1680,    0, 1678, 1680,
2444      1645, 1681, 1681, 1681,    0, 1679, 1683, 1683, 1683, 1684,
2445      1684, 1684,    0, 1684,    0,    0, 1684,    0, 1681, 1688,
2446      1688, 1688,    0, 1683, 1683,    0,    0, 1684,    0, 1685,
2447
2448      1685, 1685,    0, 1685,    0,    0, 1685, 1693, 1693, 1693,
2449         0, 1693,    0,    0, 1693,    0, 1678, 1685, 1705, 1705,
2450      1705,    0,    0,    0,    0,    0,    0,    0, 1700, 1700,
2451      1700,    0, 1707, 1707, 1707, 1705, 1681, 1686, 1686, 1686,
2452      1686, 1686, 1686, 1686, 1686, 1686, 1700,    0, 1686, 1707,
2453         0,    0,    0, 1686, 1686, 1686, 1686, 1686, 1706, 1706,
2454      1706,    0, 1706,    0,    0, 1706, 1708, 1708, 1708,    0,
2455      1708,    0,    0, 1708, 1726, 1726, 1726,    0,    0, 1686,
2456      1686, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687,
2457         0, 1726, 1687,    0,    0,    0,    0, 1687, 1687, 1687,
2458
2459      1687, 1687, 1723, 1723, 1723,    0, 1723,    0,    0, 1723,
2460      1727, 1727, 1727,    0, 1727,    0,    0, 1727, 1730, 1730,
2461      1730,    0,    0, 1687, 1687,    0, 1726, 1732, 1732, 1732,
2462         0, 1732,    0,    0, 1732, 1730, 1745, 1745, 1745, 1751,
2463      1751, 1751,    0, 1751,    0, 1732, 1751,    0, 1754, 1754,
2464      1754,    0, 1754,    0, 1745, 1754,    0,    0,    0,    0,
2465         0,    0,    0, 1769, 1769, 1769, 1770, 1770, 1770,    0,
2466      1730, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735,
2467      1769,    0, 1735, 1770, 1777, 1777, 1777, 1735, 1735, 1735,
2468      1735, 1735, 1782, 1782, 1782, 1783, 1783, 1783,    0,    0,
2469
2470         0,    0, 1777, 1777,    0,    0, 1800, 1800, 1800, 1782,
2471         0,    0, 1783, 1735, 1735, 1736, 1736, 1736, 1736, 1736,
2472      1736, 1736, 1736, 1736, 1800, 1769, 1736,    0, 1770,    0,
2473         0, 1736, 1736, 1736, 1736, 1736, 1784, 1784, 1784, 1785,
2474      1785, 1785, 1798, 1798, 1798, 1799, 1799, 1799,    0, 1804,
2475      1804, 1804,    0, 1784,    0,    0, 1785, 1736, 1736, 1798,
2476         0,    0, 1799, 1809, 1809, 1809,    0, 1804, 1810, 1810,
2477      1810,    0, 1810,    0,    0, 1810, 1891, 1891, 1891, 1784,
2478      1809, 1811, 1811, 1811, 1812, 1812, 1812,    0, 1812,    0,
2479         0, 1812,    0, 1798, 1891,    0, 1799, 1804, 1811, 1813,
2480
2481      1813, 1813, 1814, 1814, 1814,    0, 1814,    0,    0, 1814,
2482      1816, 1816, 1816, 1817, 1817, 1817, 1813, 1817,    0,    0,
2483      1817, 1822, 1822, 1822, 1823, 1823, 1823, 1816,    0, 1824,
2484      1824, 1824, 1830, 1830, 1830,    0, 1830,    0, 1822, 1830,
2485         0, 1823, 1833, 1833, 1833,    0, 1833, 1824,    0, 1833,
2486      1836, 1836, 1836,    0, 1836,    0,    0, 1836,    0, 1840,
2487      1840, 1840,    0, 1840, 1822, 1824, 1840, 1823, 1847, 1847,
2488      1847, 1848, 1848, 1848, 1856, 1856, 1856, 1857, 1857, 1857,
2489      1864, 1864, 1864,    0,    0, 1847,    0,    0, 1848,    0,
2490         0, 1856,    0,    0, 1857,    0,    0, 1864, 1865, 1865,
2491
2492      1865, 1867, 1867, 1867, 1872, 1872, 1872, 1873, 1873, 1873,
2493      1875, 1875, 1875,    0,    0, 1865,    0,    0, 1867,    0,
2494         0, 1872,    0,    0, 1873, 1847,    0, 1875, 1848,    0,
2495         0, 1864,    0, 1876, 1876, 1876, 1856, 1876,    0, 1857,
2496      1876, 1881, 1881, 1881, 1882, 1882, 1882,    0,    0, 1865,
2497         0,    0, 1872,    0,    0, 1873,    0,    0, 1881,    0,
2498         0, 1882, 1884, 1884, 1884,    0, 1884,    0,    0, 1884,
2499      1889, 1889, 1889, 1890, 1890, 1890, 1892, 1892, 1892, 1893,
2500      1893, 1893, 1894, 1894, 1894,    0, 1894, 1889,    0, 1894,
2501      1890,    0,    0, 1892,    0,    0, 1893, 1895, 1895, 1895,
2502
2503      1894, 1881,    0,    0, 1882, 1896, 1896, 1896, 1899, 1899,
2504      1899,    0,    0, 1889, 1895,    0, 1890, 1900, 1900, 1900,
2505         0,    0, 1896,    0,    0, 1899, 1903, 1903, 1903, 1904,
2506      1904, 1904,    0,    0, 1900,    0,    0, 1892,    0, 1893,
2507      1907, 1907, 1907, 1903,    0, 1895, 1904,    0, 1908, 1908,
2508      1908,    0,    0, 1896, 1911, 1911, 1911, 1907,    0, 1913,
2509      1913, 1913,    0, 1900, 1899, 1908,    0,    0, 1912, 1912,
2510      1912, 1911, 1912, 1903,    0, 1912, 1913, 1914, 1914, 1914,
2511         0, 1914,    0,    0, 1914, 1917, 1917, 1917,    0, 1917,
2512         0,    0, 1917, 1904, 1920, 1920, 1920,    0, 1920,    0,
2513
2514         0, 1920, 1937, 1937, 1937, 1938, 1938, 1938,    0,    0,
2515         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
2516      1937,    0,    0, 1938, 1941, 1941, 1941, 1941, 1941, 1941,
2517      1941, 1941, 1941, 1942, 1942, 1942, 1942, 1942, 1942, 1942,
2518      1942, 1942, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
2519      1943, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944,
2520      1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1946,
2521      1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1947, 1947,
2522      1947, 1947, 1947, 1947, 1947, 1947, 1947, 1948, 1948, 1948,
2523      1948, 1948, 1948, 1948, 1948, 1948, 1949, 1949, 1949, 1949,
2524
2525      1949, 1949, 1949, 1949, 1949, 1950, 1950, 1950, 1950, 1950,
2526      1950, 1950, 1950, 1950, 1951, 1951, 1951, 1951, 1951, 1951,
2527      1951, 1951, 1951, 1952, 1952, 1952, 1952, 1952, 1952, 1952,
2528      1952, 1952, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953,
2529      1953, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954,
2530      1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1956,
2531      1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1957, 1957,
2532      1957, 1957, 1957, 1957, 1957, 1957, 1957, 1958, 1958, 1958,
2533      1958, 1958, 1958, 1958, 1958, 1958, 1959, 1959, 1959, 1959,
2534      1959, 1959, 1959, 1959, 1959, 1960, 1960, 1960, 1960, 1960,
2535
2536      1960, 1960, 1960, 1960, 1961, 1961, 1961, 1961, 1961, 1961,
2537      1961, 1961, 1961, 1962, 1962, 1962, 1962, 1962, 1962, 1962,
2538      1962, 1962, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963,
2539      1963, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964,
2540      1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1966,
2541      1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1967, 1967,
2542      1967, 1967, 1967, 1967, 1967, 1967, 1967, 1968, 1968, 1968,
2543      1968, 1968, 1968, 1968, 1968, 1968, 1969, 1969, 1969, 1969,
2544      1969, 1969, 1969, 1969, 1969, 1970, 1970, 1970, 1970, 1970,
2545      1970, 1970, 1970, 1970, 1971, 1971, 1971, 1971, 1971, 1971,
2546
2547      1971, 1971, 1971, 1972, 1972, 1972, 1972, 1972, 1972, 1972,
2548      1972, 1972, 1973, 1973, 1973, 1973, 1973, 1973, 1973, 1973,
2549      1973, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974,
2550      1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1975, 1976,
2551      1976, 1976, 1976, 1976, 1976, 1976, 1976, 1976, 1977, 1977,
2552      1977, 1977, 1977, 1977, 1977, 1977, 1977, 1978, 1978, 1978,
2553      1978, 1978, 1978, 1978, 1978, 1978, 1979, 1979, 1979, 1979,
2554      1979, 1979, 1979, 1979, 1979, 1980, 1980, 1980,    0,    0,
2555         0, 1980, 1981, 1981, 1981,    0,    0,    0, 1981, 1982,
2556      1982, 1982,    0,    0,    0, 1982, 1983, 1983, 1983,    0,
2557
2558         0,    0, 1983, 1984, 1984, 1984,    0,    0,    0, 1984,
2559      1985, 1985, 1985,    0,    0,    0, 1985, 1986, 1986, 1986,
2560         0,    0,    0, 1986, 1987, 1987, 1987,    0,    0,    0,
2561      1987, 1988, 1988, 1988,    0,    0,    0, 1988, 1989, 1989,
2562      1989,    0,    0,    0, 1989, 1990, 1990, 1990,    0,    0,
2563         0, 1990, 1991, 1991, 1991,    0,    0,    0, 1991, 1992,
2564      1992, 1992,    0,    0,    0, 1992, 1993, 1993, 1993,    0,
2565         0,    0, 1993, 1994, 1994, 1994,    0,    0,    0, 1994,
2566      1995, 1995, 1995,    0,    0,    0, 1995, 1996, 1996, 1996,
2567         0,    0,    0, 1996, 1997, 1997, 1997, 1997, 1997, 1997,
2568
2569      1997,    0, 1997, 1998,    0,    0,    0, 1998, 1999,    0,
2570         0,    0, 1999, 2000,    0,    0,    0, 2000, 2001,    0,
2571         0,    0, 2001, 2002,    0,    0,    0, 2002, 2003,    0,
2572         0,    0, 2003, 2004,    0,    0,    0, 2004, 2005,    0,
2573         0,    0, 2005, 2006,    0,    0,    0, 2006, 2007,    0,
2574         0,    0, 2007, 2008,    0,    0,    0, 2008, 2009, 2009,
2575      2009,    0,    0,    0, 2009, 2010,    0,    0,    0, 2010,
2576      2011, 2011, 2011,    0,    0,    0, 2011, 2012,    0,    0,
2577         0, 2012, 2013, 2013, 2013,    0,    0,    0, 2013, 2014,
2578         0,    0,    0, 2014, 2015, 2015, 2015,    0,    0,    0,
2579
2580      2015, 2016,    0,    0,    0, 2016, 2017, 2017, 2017,    0,
2581         0,    0, 2017, 2018,    0,    0,    0, 2018, 2019, 2019,
2582      2019,    0,    0,    0, 2019, 2020,    0,    0,    0, 2020,
2583      2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2021, 2022,
2584         0,    0,    0,    0, 2022, 2023, 2023, 2023,    0,    0,
2585         0, 2023, 2024, 2024, 2024, 2024,    0,    0, 2024, 2024,
2586      2025, 2025, 2025,    0,    0,    0, 2025, 2026, 2026, 2026,
2587      2026,    0,    0, 2026, 2026, 2027, 2027, 2027,    0,    0,
2588         0, 2027, 2028, 2028, 2028, 2028,    0,    0, 2028, 2028,
2589      2029, 2029, 2029,    0,    0,    0, 2029, 2030, 2030, 2030,
2590
2591      2030,    0,    0, 2030, 2030, 2031, 2031, 2031,    0,    0,
2592         0, 2031, 2032, 2032, 2032, 2032,    0,    0, 2032, 2032,
2593      2033, 2033, 2033,    0,    0,    0, 2033, 2034, 2034, 2034,
2594      2034,    0,    0, 2034, 2034, 2035, 2035, 2035,    0,    0,
2595         0, 2035, 2036, 2036, 2036, 2036,    0,    0, 2036, 2036,
2596      2037, 2037, 2037,    0,    0,    0, 2037, 2038, 2038, 2038,
2597      2038,    0,    0, 2038, 2038, 2039, 2039, 2039,    0,    0,
2598         0, 2039, 2040, 2040, 2040, 2040,    0,    0, 2040, 2040,
2599      2041, 2041, 2041,    0,    0,    0, 2041, 2042, 2042, 2042,
2600      2042,    0,    0, 2042, 2042, 2043, 2043, 2043, 2043,    0,
2601
2602         0, 2043, 2043, 2044, 2044, 2044,    0,    0,    0, 2044,
2603      2045, 2045, 2045, 2045,    0,    0, 2045, 2045, 2046, 2046,
2604      2046,    0,    0,    0, 2046, 2047, 2047, 2047, 2047,    0,
2605         0, 2047, 2047, 2048, 2048, 2048,    0,    0,    0, 2048,
2606      2049, 2049, 2049, 2049,    0,    0, 2049, 2049, 2050, 2050,
2607      2050, 2050,    0,    0, 2050, 2050, 2051, 2051, 2051,    0,
2608         0,    0, 2051, 2052, 2052, 2052, 2052,    0,    0, 2052,
2609      2052, 2053, 2053, 2053,    0,    0,    0, 2053, 2054, 2054,
2610      2054, 2054,    0,    0, 2054, 2054, 2055, 2055, 2055, 2055,
2611      2055, 2055, 2055, 2055, 2055, 2056,    0, 2056,    0,    0,
2612
2613      2056, 2057, 2057, 2057,    0,    0,    0, 2057, 2058, 2058,
2614      2058, 2058,    0,    0, 2058, 2058, 2059, 2059, 2059, 2059,
2615         0, 2059,    0, 2059, 2060, 2060, 2060, 2060,    0,    0,
2616      2060, 2060, 2061, 2061, 2061, 2061,    0, 2061,    0, 2061,
2617      2062, 2062, 2062, 2062,    0,    0, 2062, 2062, 2063, 2063,
2618      2063,    0,    0,    0, 2063, 2064, 2064, 2064, 2064,    0,
2619         0, 2064, 2064, 2065, 2065, 2065,    0,    0,    0, 2065,
2620      2066, 2066, 2066, 2066,    0,    0, 2066, 2066, 2067, 2067,
2621      2067,    0,    0,    0, 2067, 2068, 2068, 2068, 2068,    0,
2622         0, 2068, 2068, 2069, 2069, 2069,    0,    0,    0, 2069,
2623
2624      2070, 2070, 2070, 2070,    0,    0, 2070, 2070, 2071, 2071,
2625      2071,    0,    0,    0, 2071, 2072, 2072, 2072, 2072,    0,
2626         0, 2072, 2072, 2073, 2073, 2073,    0,    0,    0, 2073,
2627      2074, 2074, 2074, 2074,    0,    0, 2074, 2074, 2075, 2075,
2628      2075,    0,    0,    0, 2075, 2076, 2076, 2076, 2076,    0,
2629         0, 2076, 2076, 2077, 2077, 2077, 2077,    0,    0, 2077,
2630      2077, 2078, 2078, 2078,    0,    0,    0, 2078, 2079, 2079,
2631      2079, 2079,    0,    0, 2079, 2079, 2080, 2080, 2080,    0,
2632         0,    0, 2080, 2081, 2081, 2081, 2081,    0,    0, 2081,
2633      2081, 2082, 2082, 2082,    0,    0,    0, 2082, 2083, 2083,
2634
2635      2083, 2083,    0,    0, 2083, 2083, 2084, 2084, 2084, 2084,
2636         0,    0, 2084, 2084, 2085, 2085, 2085,    0,    0,    0,
2637      2085, 2086, 2086, 2086, 2086,    0,    0, 2086, 2086, 2087,
2638      2087, 2087,    0,    0,    0, 2087, 2088, 2088, 2088, 2088,
2639         0,    0, 2088, 2088, 2089, 2089, 2089, 2089, 2089, 2089,
2640      2089, 2089, 2089, 2090, 2090, 2090, 2090, 2090, 2090, 2090,
2641      2090, 2090, 2091, 2091, 2091,    0,    0,    0, 2091, 2092,
2642      2092, 2092, 2092,    0,    0, 2092, 2092, 2093, 2093, 2093,
2643      2093,    0,    0, 2093, 2093, 2094, 2094, 2094,    0,    0,
2644         0, 2094, 2095, 2095, 2095, 2095,    0,    0, 2095, 2095,
2645
2646      2096, 2096, 2096,    0,    0,    0, 2096, 2097, 2097, 2097,
2647      2097,    0,    0, 2097, 2097, 2098, 2098, 2098,    0,    0,
2648         0, 2098, 2099, 2099, 2099, 2099,    0,    0, 2099, 2099,
2649      2100, 2100, 2100,    0,    0,    0, 2100, 2101, 2101, 2101,
2650      2101,    0,    0, 2101, 2101, 2102, 2102, 2102,    0,    0,
2651         0, 2102, 2103, 2103, 2103, 2103,    0,    0, 2103, 2103,
2652      2104, 2104, 2104,    0,    0,    0, 2104, 2105, 2105, 2105,
2653      2105,    0,    0, 2105, 2105, 2106, 2106, 2106, 2106,    0,
2654      2106,    0, 2106, 2107, 2107, 2107, 2107,    0,    0, 2107,
2655      2107, 2108, 2108, 2108, 2108,    0, 2108,    0, 2108, 2109,
2656
2657      2109, 2109, 2109,    0,    0, 2109, 2109, 2110, 2110, 2110,
2658      2110,    0,    0, 2110, 2110, 2111, 2111, 2111,    0,    0,
2659         0, 2111, 2112, 2112, 2112, 2112,    0,    0, 2112, 2112,
2660      2113, 2113, 2113,    0,    0,    0, 2113, 2114, 2114, 2114,
2661      2114,    0,    0, 2114, 2114, 2115, 2115, 2115,    0,    0,
2662         0, 2115, 2116, 2116, 2116, 2116,    0,    0, 2116, 2116,
2663      2117, 2117, 2117, 2117,    0,    0, 2117, 2117, 2118, 2118,
2664      2118,    0,    0,    0, 2118, 2119, 2119, 2119, 2119,    0,
2665         0, 2119, 2119, 2120, 2120, 2120, 2120,    0, 2120,    0,
2666      2120, 2121, 2121, 2121, 2121,    0,    0, 2121, 2121, 2122,
2667
2668      2122, 2122, 2122, 2122, 2122, 2122, 2122, 2122, 2123, 2123,
2669      2123, 2123, 2123, 2123, 2123, 2123, 2123, 2124, 2124, 2124,
2670         0,    0,    0, 2124, 2125, 2125, 2125, 2125,    0,    0,
2671      2125, 2125, 2126, 2126, 2126, 2126,    0,    0, 2126, 2126,
2672      2127, 2127, 2127,    0,    0,    0, 2127, 2128, 2128, 2128,
2673      2128,    0,    0, 2128, 2128, 2129, 2129, 2129,    0,    0,
2674         0, 2129, 2130, 2130, 2130, 2130,    0,    0, 2130, 2130,
2675      2131, 2131, 2131,    0,    0,    0, 2131, 2132, 2132, 2132,
2676      2132,    0,    0, 2132, 2132, 2133, 2133, 2133, 2133,    0,
2677      2133,    0, 2133, 2134, 2134, 2134, 2134,    0, 2134,    0,
2678
2679      2134, 2135, 2135, 2135, 2135,    0,    0, 2135, 2135, 2136,
2680      2136, 2136,    0,    0,    0, 2136, 2137, 2137, 2137, 2137,
2681         0,    0, 2137, 2137, 2138, 2138, 2138, 2138,    0,    0,
2682      2138, 2138, 2139, 2139, 2139, 2139,    0, 2139,    0, 2139,
2683      2140, 2140, 2140, 2140,    0,    0, 2140, 2140, 2141, 2141,
2684      2141, 2141,    0,    0, 2141, 2141, 2142, 2142, 2142,    0,
2685         0,    0, 2142, 2143, 2143, 2143, 2143,    0,    0, 2143,
2686      2143, 2144, 2144, 2144, 2144,    0, 2144,    0, 2144, 2145,
2687      2145, 2145, 2145,    0,    0, 2145, 2145, 2146, 2146, 2146,
2688      2146,    0, 2146,    0, 2146, 2147, 2147, 2147, 2147,    0,
2689
2690         0, 2147, 2147, 2148, 2148, 2148, 2148,    0,    0, 2148,
2691      2148, 2149, 2149, 2149,    0,    0,    0, 2149, 2150, 2150,
2692      2150, 2150,    0,    0, 2150, 2150, 2151, 2151, 2151, 2151,
2693         0,    0, 2151, 2151, 2152, 2152, 2152, 2152, 2152, 2152,
2694      2152, 2152, 2152, 2153, 2153, 2153, 2153, 2153, 2153, 2153,
2695      2153, 2153, 2154, 2154, 2154, 2154,    0, 2154,    0, 2154,
2696      2155, 2155, 2155, 2155,    0,    0, 2155, 2155, 2156, 2156,
2697      2156, 2156,    0,    0, 2156, 2156, 2157, 2157, 2157,    0,
2698         0,    0, 2157, 2158, 2158, 2158, 2158,    0,    0, 2158,
2699      2158, 2159, 2159, 2159,    0,    0,    0, 2159, 2160, 2160,
2700
2701      2160, 2160,    0,    0, 2160, 2160, 2161, 2161, 2161,    0,
2702         0,    0, 2161, 2162, 2162, 2162, 2162,    0,    0, 2162,
2703      2162, 2163, 2163, 2163, 2163,    0, 2163,    0, 2163, 2164,
2704      2164, 2164, 2164,    0,    0, 2164, 2164, 2165, 2165, 2165,
2705         0,    0,    0, 2165, 2166, 2166, 2166, 2166, 2166, 2166,
2706      2166, 2166, 2166, 2167, 2167, 2167, 2167, 2167, 2167, 2167,
2707      2167, 2167, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
2708      2168, 2169, 2169, 2169, 2169, 2169, 2169, 2169, 2169, 2169,
2709      2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2170, 2171,
2710      2171, 2171, 2171, 2171, 2171, 2171, 2171, 2171, 1940, 1940,
2711
2712      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
2713      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
2714      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
2715      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
2716      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
2717      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940,
2718      1940, 1940, 1940, 1940, 1940, 1940, 1940, 1940
2719     } ;
2720
2721 /* Table of booleans, true if rule could match eol. */
2722 static yyconst flex_int32_t yy_rule_can_match_eol[337] =
2723     {   0,
2724 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 
2725     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 
2726     1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2727     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
2728     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2729     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 
2730     0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2731     1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 
2732     0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2733     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 
2734     1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2735     1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
2736     1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
2737     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
2738     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 
2739     0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 
2740     0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,     };
2741
2742 static yy_state_type yy_last_accepting_state;
2743 static char *yy_last_accepting_cpos;
2744
2745 extern int surf_parse__flex_debug;
2746 int surf_parse__flex_debug = 0;
2747
2748 /* The intent behind this definition is that it'll catch
2749  * any uses of REJECT which flex missed.
2750  */
2751 #define REJECT reject_used_but_not_detected
2752 #define yymore() yymore_used_but_not_detected
2753 #define YY_MORE_ADJ 0
2754 #define YY_RESTORE_YY_MORE_OFFSET
2755 char *surf_parse_text;
2756 /* Validating XML processor for surf/surfxml.dtd.
2757  * Generated 2007/11/29 14:32:38.
2758  *
2759  * This program was generated with the FleXML XML processor generator.
2760  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
2761  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
2762  * (Id: flexml.pl,v 1.61 2006/09/13 16:34:33 wdowling Exp).
2763  * 
2764  * There are two, intertwined parts to this program, part A and part B.
2765  *
2766  * Part A
2767  * ------
2768  * 
2769  * Some parts, here collectively called "Part A", are found in the 
2770  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
2771  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
2772  *
2773  * You can redistribute, use, perform, display and/or modify "Part A"
2774  * provided the following two conditions hold:
2775  *
2776  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
2777  *    FleXML; without even the implied warranty of MERCHANTABILITY or
2778  *    FITNESS FOR A PARTICULAR PURPOSE.
2779  *
2780  * 2. The program distribution conditions do not in any way affect the
2781  *    distribution conditions of the FleXML system used to generate this
2782  *    file or any version of FleXML derived from that system.
2783  *
2784  * Notice that these are explicit rights granted to you for files
2785  * generated by the FleXML system.  For your rights in connection with
2786  * the FleXML system itself please consult the GNU General Public License.
2787  * 
2788  * Part B
2789  * ------
2790  * 
2791  * The other parts, here collectively called "Part B", and which came 
2792  * from the DTD used by FleXML to generate this program, can be 
2793  * distributed (or not, as the case may be) under the terms of whoever
2794  * wrote them, provided these terms respect and obey the two conditions 
2795  * above under the heading "Part A".
2796  *
2797  * The author of and contributors to FleXML specifically disclaim
2798  * any copyright interest in "Part B", unless "Part B" was written 
2799  * by the author of or contributors to FleXML.
2800  * 
2801  */
2802
2803 /* Version strings. */
2804 const char rcs_surfxml_flexml_skeleton[] =
2805  "$" "Id: skel,v 1.38 2006/09/12 18:05:45 wdowling Exp $";
2806 const char rcs_surfxml_flexml[] =
2807  "$" "Id: flexml.pl,v 1.61 2006/09/13 16:34:33 wdowling Exp $";
2808
2809 /* ANSI headers. */
2810 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2811 #  ifndef __STRICT_ANSI__
2812 #    include <io.h>
2813 #    include <process.h>
2814 #  endif
2815 #else
2816 #  include <unistd.h>
2817 #endif
2818 #include <stdio.h>
2819 #include <string.h>
2820 #include <assert.h>
2821 #include <stdarg.h>
2822 #include <ctype.h>
2823
2824 #ifndef FLEXML_INDEXSTACKSIZE
2825 #define FLEXML_INDEXSTACKSIZE 1000
2826 #endif
2827
2828 /* Generated definitions. */
2829 #define FLEXML_yylineno
2830 #ifndef FLEXML_BUFFERSTACKSIZE
2831 #define FLEXML_BUFFERSTACKSIZE 1000000
2832 #endif
2833 #define FLEXML_NEED_BUFFERLIT
2834
2835 /* XML processor api. */
2836 /* FleXML-provided data. */
2837 int surfxml_pcdata_ix;
2838 extern char *surfxml_bufferstack;
2839 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2840 AT_surfxml_random_generator AX_surfxml_random_generator;
2841 #define A_surfxml_random_generator AX_surfxml_random_generator
2842 AT_surfxml_prop_id AX_surfxml_prop_id;
2843 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2844 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
2845 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
2846 AT_surfxml_host_id AX_surfxml_host_id;
2847 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2848 AT_surfxml_set_id AX_surfxml_set_id;
2849 #define A_surfxml_set_id (surfxml_bufferstack + AX_surfxml_set_id)
2850 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2851 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2852 AT_surfxml_host_state AX_surfxml_host_state;
2853 #define A_surfxml_host_state AX_surfxml_host_state
2854 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
2855 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
2856 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
2857 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
2858 AT_surfxml_set_suffix AX_surfxml_set_suffix;
2859 #define A_surfxml_set_suffix (surfxml_bufferstack + AX_surfxml_set_suffix)
2860 AT_surfxml_route_impact_on_dst AX_surfxml_route_impact_on_dst;
2861 #define A_surfxml_route_impact_on_dst (surfxml_bufferstack + AX_surfxml_route_impact_on_dst)
2862 AT_surfxml_host_power AX_surfxml_host_power;
2863 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2864 AT_surfxml_router_id AX_surfxml_router_id;
2865 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2866 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2867 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2868 AT_surfxml_cluster_suffix AX_surfxml_cluster_suffix;
2869 #define A_surfxml_cluster_suffix (surfxml_bufferstack + AX_surfxml_cluster_suffix)
2870 AT_surfxml_platform_xmlns_c_route AX_surfxml_platform_xmlns_c_route;
2871 #define A_surfxml_platform_xmlns_c_route (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_route)
2872 AT_surfxml_cluster_prefix AX_surfxml_cluster_prefix;
2873 #define A_surfxml_cluster_prefix (surfxml_bufferstack + AX_surfxml_cluster_prefix)
2874 AT_surfxml_trace_file AX_surfxml_trace_file;
2875 #define A_surfxml_trace_file (surfxml_bufferstack + AX_surfxml_trace_file)
2876 AT_surfxml_route_action AX_surfxml_route_action;
2877 #define A_surfxml_route_action AX_surfxml_route_action
2878 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2879 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2880 AT_surfxml_random_min AX_surfxml_random_min;
2881 #define A_surfxml_random_min (surfxml_bufferstack + AX_surfxml_random_min)
2882 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2883 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2884 AT_surfxml_cluster_bb_bw AX_surfxml_cluster_bb_bw;
2885 #define A_surfxml_cluster_bb_bw (surfxml_bufferstack + AX_surfxml_cluster_bb_bw)
2886 AT_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element;
2887 #define A_surfxml_trace_c_connect_element AX_surfxml_trace_c_connect_element
2888 AT_surfxml_argument_value AX_surfxml_argument_value;
2889 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2890 AT_surfxml_link_state AX_surfxml_link_state;
2891 #define A_surfxml_link_state AX_surfxml_link_state
2892 AT_surfxml_route_impact_on_src AX_surfxml_route_impact_on_src;
2893 #define A_surfxml_route_impact_on_src (surfxml_bufferstack + AX_surfxml_route_impact_on_src)
2894 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2895 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2896 AT_surfxml_cluster_id AX_surfxml_cluster_id;
2897 #define A_surfxml_cluster_id (surfxml_bufferstack + AX_surfxml_cluster_id)
2898 AT_surfxml_random_mean AX_surfxml_random_mean;
2899 #define A_surfxml_random_mean (surfxml_bufferstack + AX_surfxml_random_mean)
2900 AT_surfxml_cluster_bb_lat AX_surfxml_cluster_bb_lat;
2901 #define A_surfxml_cluster_bb_lat (surfxml_bufferstack + AX_surfxml_cluster_bb_lat)
2902 AT_surfxml_link_latency AX_surfxml_link_latency;
2903 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2904 AT_surfxml_trace_c_connect_trace_id AX_surfxml_trace_c_connect_trace_id;
2905 #define A_surfxml_trace_c_connect_trace_id (surfxml_bufferstack + AX_surfxml_trace_c_connect_trace_id)
2906 AT_surfxml_platform_xmlns_c_link AX_surfxml_platform_xmlns_c_link;
2907 #define A_surfxml_platform_xmlns_c_link (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_link)
2908 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2909 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2910 AT_surfxml_random_id AX_surfxml_random_id;
2911 #define A_surfxml_random_id (surfxml_bufferstack + AX_surfxml_random_id)
2912 AT_surfxml_set_radical AX_surfxml_set_radical;
2913 #define A_surfxml_set_radical (surfxml_bufferstack + AX_surfxml_set_radical)
2914 AT_surfxml_random_max AX_surfxml_random_max;
2915 #define A_surfxml_random_max (surfxml_bufferstack + AX_surfxml_random_max)
2916 AT_surfxml_link_id AX_surfxml_link_id;
2917 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2918 AT_surfxml_process_host AX_surfxml_process_host;
2919 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2920 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2921 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2922 AT_surfxml_cluster_lat AX_surfxml_cluster_lat;
2923 #define A_surfxml_cluster_lat (surfxml_bufferstack + AX_surfxml_cluster_lat)
2924 AT_surfxml_trace_periodicity AX_surfxml_trace_periodicity;
2925 #define A_surfxml_trace_periodicity (surfxml_bufferstack + AX_surfxml_trace_periodicity)
2926 AT_surfxml_foreach_set_id AX_surfxml_foreach_set_id;
2927 #define A_surfxml_foreach_set_id (surfxml_bufferstack + AX_surfxml_foreach_set_id)
2928 AT_surfxml_route_impact_on_dst_with_other_send AX_surfxml_route_impact_on_dst_with_other_send;
2929 #define A_surfxml_route_impact_on_dst_with_other_send (surfxml_bufferstack + AX_surfxml_route_impact_on_dst_with_other_send)
2930 AT_surfxml_prop_value AX_surfxml_prop_value;
2931 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2932 AT_surfxml_route_impact_on_src_with_other_recv AX_surfxml_route_impact_on_src_with_other_recv;
2933 #define A_surfxml_route_impact_on_src_with_other_recv (surfxml_bufferstack + AX_surfxml_route_impact_on_src_with_other_recv)
2934 AT_surfxml_link_state_file AX_surfxml_link_state_file;
2935 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
2936 AT_surfxml_set_prefix AX_surfxml_set_prefix;
2937 #define A_surfxml_set_prefix (surfxml_bufferstack + AX_surfxml_set_prefix)
2938 AT_surfxml_cluster_power AX_surfxml_cluster_power;
2939 #define A_surfxml_cluster_power (surfxml_bufferstack + AX_surfxml_cluster_power)
2940 AT_surfxml_process_function AX_surfxml_process_function;
2941 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
2942 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
2943 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
2944 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
2945 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
2946 AT_surfxml_host_availability AX_surfxml_host_availability;
2947 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
2948 AT_surfxml_route_src AX_surfxml_route_src;
2949 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
2950 AT_surfxml_route_c_multi_src AX_surfxml_route_c_multi_src;
2951 #define A_surfxml_route_c_multi_src (surfxml_bufferstack + AX_surfxml_route_c_multi_src)
2952 AT_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action;
2953 #define A_surfxml_route_c_multi_action AX_surfxml_route_c_multi_action
2954 AT_surfxml_trace_id AX_surfxml_trace_id;
2955 #define A_surfxml_trace_id (surfxml_bufferstack + AX_surfxml_trace_id)
2956 AT_surfxml_cluster_radical AX_surfxml_cluster_radical;
2957 #define A_surfxml_cluster_radical (surfxml_bufferstack + AX_surfxml_cluster_radical)
2958 AT_surfxml_include_file AX_surfxml_include_file;
2959 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
2960 AT_surfxml_random_std_deviation AX_surfxml_random_std_deviation;
2961 #define A_surfxml_random_std_deviation (surfxml_bufferstack + AX_surfxml_random_std_deviation)
2962 AT_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind;
2963 #define A_surfxml_trace_c_connect_kind AX_surfxml_trace_c_connect_kind
2964 AT_surfxml_trace_c_connect_connector_id AX_surfxml_trace_c_connect_connector_id;
2965 #define A_surfxml_trace_c_connect_connector_id (surfxml_bufferstack + AX_surfxml_trace_c_connect_connector_id)
2966 AT_surfxml_route_c_multi_dst AX_surfxml_route_c_multi_dst;
2967 #define A_surfxml_route_c_multi_dst (surfxml_bufferstack + AX_surfxml_route_c_multi_dst)
2968 AT_surfxml_host_state_file AX_surfxml_host_state_file;
2969 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
2970 AT_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric;
2971 #define A_surfxml_route_c_multi_symmetric AX_surfxml_route_c_multi_symmetric
2972 AT_surfxml_route_dst AX_surfxml_route_dst;
2973 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
2974 AT_surfxml_cluster_bw AX_surfxml_cluster_bw;
2975 #define A_surfxml_cluster_bw (surfxml_bufferstack + AX_surfxml_cluster_bw)
2976 AT_surfxml_platform_version AX_surfxml_platform_version;
2977 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
2978
2979 /* XML state. */
2980 #ifdef FLEX_DEBUG
2981 # define ENTER(state)   debug_enter(state,#state)
2982 # define LEAVE          debug_leave()
2983 # define SET(state)     debug_set(state,#state)
2984   static void debug_enter(int, const char*);
2985   static void debug_leave(void);
2986   static void debug_set(int, const char*);
2987 #else
2988 # define ENTER(state)   (yy_push_state(state))
2989 # define LEAVE          (yy_pop_state())
2990 # define SET(state)     BEGIN(state)
2991 #endif
2992
2993 /* Generic actions. */
2994 #define SKIP    /*skip*/
2995 #define SUCCEED        CLEANUP; return 0
2996
2997 #define FAIL    return fail
2998 static int fail(const char*, ...);
2999
3000 enum {flexml_max_err_msg_size = 512};
3001 static char flexml_err_msg[flexml_max_err_msg_size];
3002 const char * surfxml_parse_err_msg()
3003 {
3004     return flexml_err_msg;
3005 }
3006 static void reset_surfxml_parse_err_msg()
3007 {
3008     flexml_err_msg[0] = '\0';
3009 }
3010
3011 /* Cleanup */
3012 static void cleanup(void);
3013 #define CLEANUP  cleanup()
3014
3015 /* Text buffer stack handling. */
3016 char *surfxml_bufferstack = NULL;
3017 static int blimit = FLEXML_BUFFERSTACKSIZE;
3018 static int bnext = 1;
3019
3020 static int *indexstack = NULL;
3021 static int ilimit = FLEXML_INDEXSTACKSIZE;
3022 static int inext = 1;
3023
3024 #define BUFFERSET(P)  (P = bnext)
3025 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
3026 #define BUFFERDONE    (BUFFERPUTC('\0'))
3027
3028 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
3029
3030 /* after this is called, there are at least 2 slots left in the stack */
3031 static int ck_blimit()
3032 {
3033      if (bnext >= blimit) {
3034          blimit += FLEXML_BUFFERSTACKSIZE + 2;
3035          {
3036              char *temp = (char *) realloc(surfxml_bufferstack, blimit);
3037              assert(temp);
3038              surfxml_bufferstack = temp;
3039          }
3040      }
3041      return 0;
3042 }
3043
3044 /* after this is called, there are at least 2 slots left in the stack */
3045 static int ck_ilimit()
3046 {
3047      if (inext >= ilimit) {
3048          ilimit += FLEXML_INDEXSTACKSIZE + 2;
3049          {
3050              int *temp = (int *) realloc(indexstack, ilimit);
3051              assert(temp);
3052              indexstack = temp;
3053          }
3054      }
3055      return 0;
3056 }
3057
3058 #ifdef FLEXML_NEED_BUFFERLIT
3059 static void surfxml_bufferliteral(char c, int* pp, const char* text)
3060 {
3061   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
3062   assert(s <= e); BUFFERSET(*pp);
3063   while (++s<e) {
3064     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
3065     else BUFFERPUTC(*s);
3066   }
3067   BUFFERDONE;
3068 }
3069 #endif
3070
3071 static void pushbuffer(int p)
3072 {
3073     ck_ilimit();
3074     indexstack[inext++] = p;
3075     indexstack[inext++] = bnext;    
3076 }
3077
3078 static int popbuffer(void)
3079 {
3080     assert(inext >= 2);
3081     bnext = indexstack[--inext];
3082     return indexstack[--inext];
3083 }
3084
3085 /* General internal entities are `unput' back onto the input stream... */
3086 #define ENTITYTEXT(T) \
3087   { char *s = (T), *e = s+strlen(s);\
3088     while (--e >= s) { unput(*e); }}
3089
3090 /* Flex standard options. */
3091 #define YY_NO_INPUT 1
3092 /* Flex user-requested options. */
3093 /* XML character classes (currently restricted to ASCII). */
3094 /* "Common syntactic structures." */
3095 /* "Names and Tokens." */
3096 /* Miscellaneous. */
3097 /* Parser states (flex `exclusive start conditions'):
3098  *
3099  * PROLOG       the XML prolog of the document before <?xml...>
3100  * DOCTYPE      the XML prolog of the document after <?xml...>
3101  * EPILOG       after the root element
3102  * INCOMMENT    inside an XML comment <!--....-->
3103  * INPI         inside an XML PI <?...?>
3104  * VALUE1       inside a '...'-delimited literal
3105  * VALUE2       inside a "..."-delimited literal
3106  * CDATA        inside a <![CDATA[...] ]> section.
3107  * ROOT_<tag>   expect root element <tag>
3108  * AL_<tag>     inside the attribute list for <tag>
3109  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
3110  * IMPOSSIBLE   dummy to permit disabling rules; must be last
3111  */
3112
3113 /* State names. */
3114 const char* *surfxml_statenames=NULL;
3115
3116 #define INITIAL 0
3117 #define PROLOG 1
3118 #define DOCTYPE 2
3119 #define EPILOG 3
3120 #define INCOMMENT 4
3121 #define INPI 5
3122 #define VALUE1 6
3123 #define VALUE2 7
3124 #define CDATA 8
3125 #define ROOT_surfxml_platform 9
3126 #define AL_surfxml_platform 10
3127 #define S_surfxml_platform 11
3128 #define S_surfxml_platform_1 12
3129 #define S_surfxml_platform_2 13
3130 #define S_surfxml_platform_3 14
3131 #define S_surfxml_platform_4 15
3132 #define S_surfxml_platform_5 16
3133 #define E_surfxml_platform 17
3134 #define AL_surfxml_include 18
3135 #define E_surfxml_include 19
3136 #define AL_surfxml_trace 20
3137 #define IN_trace 21
3138 #define AL_surfxml_random 22
3139 #define S_surfxml_random 23
3140 #define S_surfxml_random_1 24
3141 #define S_surfxml_random_2 25
3142 #define E_surfxml_random 26
3143 #define AL_surfxml_trace_c_connect 27
3144 #define E_surfxml_trace_c_connect 28
3145 #define AL_surfxml_set 29
3146 #define E_surfxml_set 30
3147 #define AL_surfxml_foreach 31
3148 #define S_surfxml_foreach 32
3149 #define S_surfxml_foreach_1 33
3150 #define E_surfxml_foreach 34
3151 #define AL_surfxml_host 35
3152 #define S_surfxml_host 36
3153 #define S_surfxml_host_1 37
3154 #define S_surfxml_host_2 38
3155 #define E_surfxml_host 39
3156 #define AL_surfxml_prop 40
3157 #define E_surfxml_prop 41
3158 #define AL_surfxml_cluster 42
3159 #define E_surfxml_cluster 43
3160 #define AL_surfxml_router 44
3161 #define E_surfxml_router 45
3162 #define AL_surfxml_link 46
3163 #define S_surfxml_link 47
3164 #define S_surfxml_link_1 48
3165 #define S_surfxml_link_2 49
3166 #define E_surfxml_link 50
3167 #define AL_surfxml_route_c_multi 51
3168 #define S_surfxml_route_c_multi 52
3169 #define S_surfxml_route_c_multi_1 53
3170 #define S_surfxml_route_c_multi_2 54
3171 #define E_surfxml_route_c_multi 55
3172 #define AL_surfxml_route 56
3173 #define S_surfxml_route 57
3174 #define S_surfxml_route_1 58
3175 #define S_surfxml_route_2 59
3176 #define E_surfxml_route 60
3177 #define AL_surfxml_link_c_ctn 61
3178 #define E_surfxml_link_c_ctn 62
3179 #define AL_surfxml_process 63
3180 #define S_surfxml_process 64
3181 #define S_surfxml_process_1 65
3182 #define S_surfxml_process_2 66
3183 #define E_surfxml_process 67
3184 #define AL_surfxml_argument 68
3185 #define E_surfxml_argument 69
3186 #define IMPOSSIBLE 70
3187
3188 #ifndef YY_NO_UNISTD_H
3189 /* Special case for "unistd.h", since it is non-ANSI. We include it way
3190  * down here because we want the user's section 1 to have been scanned first.
3191  * The user has a chance to override it with an option.
3192  */
3193 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
3194 #  ifndef __STRICT_ANSI__
3195 #    include <io.h>
3196 #    include <process.h>
3197 #  endif
3198 #else
3199 #  include <unistd.h>
3200 #endif
3201 #endif
3202
3203 #ifndef YY_EXTRA_TYPE
3204 #define YY_EXTRA_TYPE void *
3205 #endif
3206
3207 static int yy_init_globals (void );
3208
3209 /* Macros after this point can all be overridden by user definitions in
3210  * section 1.
3211  */
3212
3213 #ifndef YY_SKIP_YYWRAP
3214 #ifdef __cplusplus
3215 extern "C" int surf_parse_wrap (void );
3216 #else
3217 extern int surf_parse_wrap (void );
3218 #endif
3219 #endif
3220
3221 #ifndef yytext_ptr
3222 static void yy_flex_strncpy (char *,yyconst char *,int );
3223 #endif
3224
3225 #ifdef YY_NEED_STRLEN
3226 static int yy_flex_strlen (yyconst char * );
3227 #endif
3228
3229 #ifndef YY_NO_INPUT
3230
3231 #ifdef __cplusplus
3232 static int yyinput (void );
3233 #else
3234 static int input (void );
3235 #endif
3236
3237 #endif
3238
3239         static int yy_start_stack_ptr = 0;
3240         static int yy_start_stack_depth = 0;
3241         static int *yy_start_stack = NULL;
3242     
3243     static void yy_push_state (int new_state );
3244     
3245     static void yy_pop_state (void );
3246     
3247 /* Amount of stuff to slurp up with each read. */
3248 #ifndef YY_READ_BUF_SIZE
3249 #define YY_READ_BUF_SIZE 8192
3250 #endif
3251
3252 /* Copy whatever the last rule matched to the standard output. */
3253 #ifndef ECHO
3254 /* This used to be an fputs(), but since the string might contain NUL's,
3255  * we now use fwrite().
3256  */
3257 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
3258 #endif
3259
3260 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
3261  * is returned in "result".
3262  */
3263 #ifndef YY_INPUT
3264 #define YY_INPUT(buf,result,max_size) \
3265         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
3266                 { \
3267                 int c = '*'; \
3268                 size_t n; \
3269                 for ( n = 0; n < max_size && \
3270                              (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
3271                         buf[n] = (char) c; \
3272                 if ( c == '\n' ) \
3273                         buf[n++] = (char) c; \
3274                 if ( c == EOF && ferror( surf_parse_in ) ) \
3275                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
3276                 result = n; \
3277                 } \
3278         else \
3279                 { \
3280                 errno=0; \
3281                 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
3282                         { \
3283                         if( errno != EINTR) \
3284                                 { \
3285                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3286                                 break; \
3287                                 } \
3288                         errno=0; \
3289                         clearerr(surf_parse_in); \
3290                         } \
3291                 }\
3292 \
3293
3294 #endif
3295
3296 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3297  * we don't want an extra ';' after the "return" because that will cause
3298  * some compilers to complain about unreachable statements.
3299  */
3300 #ifndef yyterminate
3301 #define yyterminate() return YY_NULL
3302 #endif
3303
3304 /* Number of entries by which start-condition stack grows. */
3305 #ifndef YY_START_STACK_INCR
3306 #define YY_START_STACK_INCR 25
3307 #endif
3308
3309 /* Report a fatal error. */
3310 #ifndef YY_FATAL_ERROR
3311 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
3312 #endif
3313
3314 /* end tables serialization structures and prototypes */
3315
3316 /* Default declaration of generated scanner - a define so the user can
3317  * easily add parameters.
3318  */
3319 #ifndef YY_DECL
3320 #define YY_DECL_IS_OURS 1
3321
3322 extern int surf_parse_lex (void);
3323
3324 #define YY_DECL int surf_parse_lex (void)
3325 #endif /* !YY_DECL */
3326
3327 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
3328  * have been set up.
3329  */
3330 #ifndef YY_USER_ACTION
3331 #define YY_USER_ACTION
3332 #endif
3333
3334 /* Code executed at the end of each rule. */
3335 #ifndef YY_BREAK
3336 #define YY_BREAK break;
3337 #endif
3338
3339 #define YY_RULE_SETUP \
3340         YY_USER_ACTION
3341
3342 /** The main scanner function which does all the work.
3343  */
3344 YY_DECL
3345 {
3346         register yy_state_type yy_current_state;
3347         register char *yy_cp, *yy_bp;
3348         register int yy_act;
3349     
3350  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
3351  SET(PROLOG);
3352  reset_surfxml_parse_err_msg();
3353  surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
3354  assert(surfxml_bufferstack);
3355  #ifdef FLEX_DEBUG
3356  {
3357      int i;
3358      for (i = 0; i < blimit; i++) {
3359          surfxml_bufferstack[i] = '\377';
3360      }
3361  }
3362  #endif
3363  surfxml_bufferstack[0] = '\0';
3364  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
3365  assert(indexstack);
3366  indexstack[0] = 0;
3367
3368   /* FleXML_init */
3369   bnext = inext = 1;
3370   surfxml_bufferliteral('\0', &bnext, "0.0");
3371   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3372   surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
3373   surfxml_bufferliteral('\0', &bnext, "1.0");
3374   surfxml_bufferliteral('\0', &bnext, "1.0");
3375   surfxml_bufferliteral('\0', &bnext, "1.0");
3376   surfxml_bufferliteral('\0', &bnext, "1.0");
3377   surfxml_bufferliteral('\0', &bnext, "-1.0");
3378   surfxml_bufferliteral('\0', &bnext, "0.0");
3379   surfxml_bufferliteral('\0', &bnext, "0.0");
3380   surfxml_bufferliteral('\0', &bnext, "0.0");
3381   surfxml_bufferliteral('\0', &bnext, "0.0");
3382   surfxml_bufferliteral('\0', &bnext, "0.0");
3383   surfxml_bufferliteral('\0', &bnext, "-1.0");
3384   surfxml_bufferliteral('\0', &bnext, "-1.0");
3385   if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
3386   surfxml_statenames[PROLOG] = NULL;
3387   surfxml_statenames[DOCTYPE] = NULL;
3388   surfxml_statenames[EPILOG] = NULL;
3389   surfxml_statenames[INCOMMENT] = NULL;
3390   surfxml_statenames[INPI] = NULL;
3391   surfxml_statenames[VALUE1] = NULL;
3392   surfxml_statenames[VALUE2] = NULL;
3393   surfxml_statenames[CDATA] = NULL;
3394   surfxml_statenames[ROOT_surfxml_platform] = NULL;
3395   surfxml_statenames[AL_surfxml_platform] = NULL;
3396   surfxml_statenames[S_surfxml_platform] = "platform";
3397   surfxml_statenames[S_surfxml_platform_1] = "platform";
3398   surfxml_statenames[S_surfxml_platform_2] = "platform";
3399   surfxml_statenames[S_surfxml_platform_3] = "platform";
3400   surfxml_statenames[S_surfxml_platform_4] = "platform";
3401   surfxml_statenames[S_surfxml_platform_5] = "platform";
3402   surfxml_statenames[E_surfxml_platform] = "platform";
3403   surfxml_statenames[AL_surfxml_include] = NULL;
3404   surfxml_statenames[E_surfxml_include] = "include";
3405   surfxml_statenames[AL_surfxml_trace] = NULL;
3406   surfxml_statenames[IN_trace] = "trace";
3407   surfxml_statenames[AL_surfxml_random] = NULL;
3408   surfxml_statenames[S_surfxml_random] = "random";
3409   surfxml_statenames[S_surfxml_random_1] = "random";
3410   surfxml_statenames[S_surfxml_random_2] = "random";
3411   surfxml_statenames[E_surfxml_random] = "random";
3412   surfxml_statenames[AL_surfxml_trace_c_connect] = NULL;
3413   surfxml_statenames[E_surfxml_trace_c_connect] = "trace:connect";
3414   surfxml_statenames[AL_surfxml_set] = NULL;
3415   surfxml_statenames[E_surfxml_set] = "set";
3416   surfxml_statenames[AL_surfxml_foreach] = NULL;
3417   surfxml_statenames[S_surfxml_foreach] = "foreach";
3418   surfxml_statenames[S_surfxml_foreach_1] = "foreach";
3419   surfxml_statenames[E_surfxml_foreach] = "foreach";
3420   surfxml_statenames[AL_surfxml_host] = NULL;
3421   surfxml_statenames[S_surfxml_host] = "host";
3422   surfxml_statenames[S_surfxml_host_1] = "host";
3423   surfxml_statenames[S_surfxml_host_2] = "host";
3424   surfxml_statenames[E_surfxml_host] = "host";
3425   surfxml_statenames[AL_surfxml_prop] = NULL;
3426   surfxml_statenames[E_surfxml_prop] = "prop";
3427   surfxml_statenames[AL_surfxml_cluster] = NULL;
3428   surfxml_statenames[E_surfxml_cluster] = "cluster";
3429   surfxml_statenames[AL_surfxml_router] = NULL;
3430   surfxml_statenames[E_surfxml_router] = "router";
3431   surfxml_statenames[AL_surfxml_link] = NULL;
3432   surfxml_statenames[S_surfxml_link] = "link";
3433   surfxml_statenames[S_surfxml_link_1] = "link";
3434   surfxml_statenames[S_surfxml_link_2] = "link";
3435   surfxml_statenames[E_surfxml_link] = "link";
3436   surfxml_statenames[AL_surfxml_route_c_multi] = NULL;
3437   surfxml_statenames[S_surfxml_route_c_multi] = "route:multi";
3438   surfxml_statenames[S_surfxml_route_c_multi_1] = "route:multi";
3439   surfxml_statenames[S_surfxml_route_c_multi_2] = "route:multi";
3440   surfxml_statenames[E_surfxml_route_c_multi] = "route:multi";
3441   surfxml_statenames[AL_surfxml_route] = NULL;
3442   surfxml_statenames[S_surfxml_route] = "route";
3443   surfxml_statenames[S_surfxml_route_1] = "route";
3444   surfxml_statenames[S_surfxml_route_2] = "route";
3445   surfxml_statenames[E_surfxml_route] = "route";
3446   surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
3447   surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
3448   surfxml_statenames[AL_surfxml_process] = NULL;
3449   surfxml_statenames[S_surfxml_process] = "process";
3450   surfxml_statenames[S_surfxml_process_1] = "process";
3451   surfxml_statenames[S_surfxml_process_2] = "process";
3452   surfxml_statenames[E_surfxml_process] = "process";
3453   surfxml_statenames[AL_surfxml_argument] = NULL;
3454   surfxml_statenames[E_surfxml_argument] = "argument";
3455   }
3456
3457  /* COMMENTS and PIs: handled uniformly for efficiency. */
3458
3459         if ( !(yy_init) )
3460                 {
3461                 (yy_init) = 1;
3462
3463 #ifdef YY_USER_INIT
3464                 YY_USER_INIT;
3465 #endif
3466
3467                 if ( ! (yy_start) )
3468                         (yy_start) = 1; /* first start state */
3469
3470                 if ( ! surf_parse_in )
3471                         surf_parse_in = stdin;
3472
3473                 if ( ! surf_parse_out )
3474                         surf_parse_out = stdout;
3475
3476                 if ( ! YY_CURRENT_BUFFER ) {
3477                         surf_parse_ensure_buffer_stack ();
3478                         YY_CURRENT_BUFFER_LVALUE =
3479                                 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3480                 }
3481
3482                 surf_parse__load_buffer_state( );
3483                 }
3484
3485         while ( 1 )             /* loops until end-of-file is reached */
3486                 {
3487                 yy_cp = (yy_c_buf_p);
3488
3489                 /* Support of surf_parse_text. */
3490                 *yy_cp = (yy_hold_char);
3491
3492                 /* yy_bp points to the position in yy_ch_buf of the start of
3493                  * the current run.
3494                  */
3495                 yy_bp = yy_cp;
3496
3497                 yy_current_state = (yy_start);
3498 yy_match:
3499                 do
3500                         {
3501                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3502                         if ( yy_accept[yy_current_state] )
3503                                 {
3504                                 (yy_last_accepting_state) = yy_current_state;
3505                                 (yy_last_accepting_cpos) = yy_cp;
3506                                 }
3507                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3508                                 {
3509                                 yy_current_state = (int) yy_def[yy_current_state];
3510                                 if ( yy_current_state >= 1941 )
3511                                         yy_c = yy_meta[(unsigned int) yy_c];
3512                                 }
3513                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3514                         ++yy_cp;
3515                         }
3516                 while ( yy_base[yy_current_state] != 7099 );
3517
3518 yy_find_action:
3519                 yy_act = yy_accept[yy_current_state];
3520                 if ( yy_act == 0 )
3521                         { /* have to back up */
3522                         yy_cp = (yy_last_accepting_cpos);
3523                         yy_current_state = (yy_last_accepting_state);
3524                         yy_act = yy_accept[yy_current_state];
3525                         }
3526
3527                 YY_DO_BEFORE_ACTION;
3528
3529                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
3530                         {
3531                         int yyl;
3532                         for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
3533                                 if ( surf_parse_text[yyl] == '\n' )
3534                                            
3535     surf_parse_lineno++;
3536 ;
3537                         }
3538
3539 do_action:      /* This label is used only to access EOF actions. */
3540
3541                 switch ( yy_act )
3542         { /* beginning of action switch */
3543                         case 0: /* must back up */
3544                         /* undo the effects of YY_DO_BEFORE_ACTION */
3545                         *yy_cp = (yy_hold_char);
3546                         yy_cp = (yy_last_accepting_cpos);
3547                         yy_current_state = (yy_last_accepting_state);
3548                         goto yy_find_action;
3549
3550 case 1:
3551 YY_RULE_SETUP
3552 ENTER(INCOMMENT);
3553         YY_BREAK
3554 case 2:
3555 YY_RULE_SETUP
3556 ENTER(INPI);
3557         YY_BREAK
3558
3559 case 3:
3560 YY_RULE_SETUP
3561 LEAVE;
3562         YY_BREAK
3563 case 4:
3564 case 5:
3565 case 6:
3566 /* rule 6 can match eol */
3567 YY_RULE_SETUP
3568 SKIP;
3569         YY_BREAK
3570 case YY_STATE_EOF(INCOMMENT):
3571 FAIL("EOF in comment.");
3572         YY_BREAK
3573
3574 case 7:
3575 YY_RULE_SETUP
3576 LEAVE;
3577         YY_BREAK
3578 case 8:
3579 case 9:
3580 /* rule 9 can match eol */
3581 YY_RULE_SETUP
3582 SKIP;
3583         YY_BREAK
3584 case YY_STATE_EOF(INPI):
3585 FAIL("EOF in PI (processing instruction).");
3586         YY_BREAK
3587
3588 /* SPACES: skipped uniformly */
3589 case 10:
3590 /* rule 10 can match eol */
3591 YY_RULE_SETUP
3592 SKIP;
3593         YY_BREAK
3594 /* PROLOG: determine root element and process it. */
3595
3596 case 11:
3597 /* rule 11 can match eol */
3598 YY_RULE_SETUP
3599 SET(DOCTYPE); 
3600         YY_BREAK
3601 case 12:
3602 /* rule 12 can match eol */
3603 YY_RULE_SETUP
3604 FAIL("Bad declaration %s.",surf_parse_text);
3605         YY_BREAK
3606
3607 case 13:
3608 /* rule 13 can match eol */
3609 YY_RULE_SETUP
3610 SET(ROOT_surfxml_platform);
3611         YY_BREAK
3612 case 14:
3613 /* rule 14 can match eol */
3614 YY_RULE_SETUP
3615 FAIL("Bad declaration %s.",surf_parse_text);
3616         YY_BREAK
3617 case 15:
3618 YY_RULE_SETUP
3619 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
3620         YY_BREAK
3621 case YY_STATE_EOF(PROLOG):
3622 case YY_STATE_EOF(DOCTYPE):
3623 FAIL("EOF in prolog.");
3624         YY_BREAK
3625
3626 /* RULES DERIVED FROM DTD. */
3627 /* <!-- Small DTD for SURF based tools. -->  */
3628 case 16:
3629 /* rule 16 can match eol */
3630 YY_RULE_SETUP
3631 {
3632   AX_surfxml_platform_version = 1;
3633   AX_surfxml_platform_xmlns_c_link = 5;
3634   AX_surfxml_platform_xmlns_c_route = 37;
3635   ENTER(AL_surfxml_platform); pushbuffer(0);
3636   }
3637         YY_BREAK
3638
3639 case 17:
3640 /* rule 17 can match eol */
3641 YY_RULE_SETUP
3642 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
3643         YY_BREAK
3644 case 18:
3645 /* rule 18 can match eol */
3646 YY_RULE_SETUP
3647 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
3648         YY_BREAK
3649 case 19:
3650 /* rule 19 can match eol */
3651 YY_RULE_SETUP
3652 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
3653         YY_BREAK
3654 case 20:
3655 /* rule 20 can match eol */
3656 YY_RULE_SETUP
3657 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
3658         YY_BREAK
3659 case 21:
3660 /* rule 21 can match eol */
3661 YY_RULE_SETUP
3662 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
3663         YY_BREAK
3664 case 22:
3665 /* rule 22 can match eol */
3666 YY_RULE_SETUP
3667 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
3668         YY_BREAK
3669 case 23:
3670 YY_RULE_SETUP
3671 {
3672   LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
3673  }
3674         YY_BREAK
3675 case 24:
3676 YY_RULE_SETUP
3677 {
3678   LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
3679   switch (YY_START) {
3680    case ROOT_surfxml_platform: SET(EPILOG); break;
3681   }
3682  }
3683         YY_BREAK
3684 case 25:
3685 YY_RULE_SETUP
3686 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
3687         YY_BREAK
3688 case 26:
3689 YY_RULE_SETUP
3690 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
3691         YY_BREAK
3692 case YY_STATE_EOF(AL_surfxml_platform):
3693 FAIL("EOF in attribute list of `platform' element.");
3694         YY_BREAK
3695
3696 case 27:
3697 /* rule 27 can match eol */
3698 YY_RULE_SETUP
3699 {
3700   LEAVE;
3701   ETag_surfxml_platform();
3702   popbuffer(); /* attribute */
3703   switch (YY_START) {
3704    case ROOT_surfxml_platform: SET(EPILOG); break;
3705   }
3706  }
3707         YY_BREAK
3708 case 28:
3709 /* rule 28 can match eol */
3710 YY_RULE_SETUP
3711 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
3712         YY_BREAK
3713 case 29:
3714 YY_RULE_SETUP
3715 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
3716         YY_BREAK
3717 case YY_STATE_EOF(S_surfxml_platform_5):
3718 case YY_STATE_EOF(S_surfxml_platform_1):
3719 case YY_STATE_EOF(S_surfxml_platform_3):
3720 case YY_STATE_EOF(S_surfxml_platform):
3721 case YY_STATE_EOF(E_surfxml_platform):
3722 FAIL("Premature EOF: `</platform>' expected.");
3723         YY_BREAK
3724
3725 case 30:
3726 /* rule 30 can match eol */
3727 YY_RULE_SETUP
3728 {
3729   AX_surfxml_include_file = 0;
3730   ENTER(AL_surfxml_include); pushbuffer(0);
3731   }
3732         YY_BREAK
3733
3734 case 31:
3735 /* rule 31 can match eol */
3736 YY_RULE_SETUP
3737 ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
3738         YY_BREAK
3739 case 32:
3740 /* rule 32 can match eol */
3741 YY_RULE_SETUP
3742 ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
3743         YY_BREAK
3744 case 33:
3745 YY_RULE_SETUP
3746 {
3747   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
3748   LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(E_surfxml_include);
3749  }
3750         YY_BREAK
3751 case 34:
3752 YY_RULE_SETUP
3753 {
3754   if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
3755   LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
3756   switch (YY_START) {
3757    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
3758    case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3759   }
3760  }
3761         YY_BREAK
3762 case 35:
3763 YY_RULE_SETUP
3764 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
3765         YY_BREAK
3766 case 36:
3767 YY_RULE_SETUP
3768 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
3769         YY_BREAK
3770 case YY_STATE_EOF(AL_surfxml_include):
3771 FAIL("EOF in attribute list of `include' element.");
3772         YY_BREAK
3773
3774 case 37:
3775 /* rule 37 can match eol */
3776 YY_RULE_SETUP
3777 {
3778   LEAVE;
3779   ETag_surfxml_include();
3780   popbuffer(); /* attribute */
3781   switch (YY_START) {
3782    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
3783    case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
3784   }
3785  }
3786         YY_BREAK
3787 case 38:
3788 /* rule 38 can match eol */
3789 YY_RULE_SETUP
3790 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
3791         YY_BREAK
3792 case 39:
3793 YY_RULE_SETUP
3794 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
3795         YY_BREAK
3796 case YY_STATE_EOF(E_surfxml_include):
3797 FAIL("Premature EOF: `</include>' expected.");
3798         YY_BREAK
3799
3800 case 40:
3801 /* rule 40 can match eol */
3802 YY_RULE_SETUP
3803 {
3804   AX_surfxml_trace_id = 0;
3805   AX_surfxml_trace_file = 0;
3806   AX_surfxml_trace_periodicity = 0;
3807   ENTER(AL_surfxml_trace); pushbuffer(0);
3808   }
3809         YY_BREAK
3810
3811 case 41:
3812 /* rule 41 can match eol */
3813 YY_RULE_SETUP
3814 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_id);
3815         YY_BREAK
3816 case 42:
3817 /* rule 42 can match eol */
3818 YY_RULE_SETUP
3819 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_id);
3820         YY_BREAK
3821 case 43:
3822 /* rule 43 can match eol */
3823 YY_RULE_SETUP
3824 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_file);
3825         YY_BREAK
3826 case 44:
3827 /* rule 44 can match eol */
3828 YY_RULE_SETUP
3829 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_file);
3830         YY_BREAK
3831 case 45:
3832 /* rule 45 can match eol */
3833 YY_RULE_SETUP
3834 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_periodicity);
3835         YY_BREAK
3836 case 46:
3837 /* rule 46 can match eol */
3838 YY_RULE_SETUP
3839 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_periodicity);
3840         YY_BREAK
3841 case 47:
3842 YY_RULE_SETUP
3843 {
3844   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
3845   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
3846   LEAVE; STag_surfxml_trace();pushbuffer(surfxml_pcdata_ix); BUFFERSET(surfxml_pcdata_ix);; ENTER(IN_trace);
3847  }
3848         YY_BREAK
3849 case 48:
3850 YY_RULE_SETUP
3851 {
3852   if (!AX_surfxml_trace_id) FAIL("Required attribute `id' not set for `trace' element.");
3853   if (!AX_surfxml_trace_periodicity) FAIL("Required attribute `periodicity' not set for `trace' element.");
3854   LEAVE; STag_surfxml_trace(); surfxml_pcdata_ix = 0; ETag_surfxml_trace(); popbuffer(); /* attribute */
3855   switch (YY_START) {
3856    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
3857   }
3858  }
3859         YY_BREAK
3860 case 49:
3861 YY_RULE_SETUP
3862 FAIL("Unexpected character `%c' in attribute list of trace element.", surf_parse_text[0]);
3863         YY_BREAK
3864 case 50:
3865 YY_RULE_SETUP
3866 FAIL("Bad attribute `%s' in `trace' element start tag.",surf_parse_text);
3867         YY_BREAK
3868 case YY_STATE_EOF(AL_surfxml_trace):
3869 FAIL("EOF in attribute list of `trace' element.");
3870         YY_BREAK
3871
3872 case 51:
3873 /* rule 51 can match eol */
3874 YY_RULE_SETUP
3875 {
3876   LEAVE;
3877   BUFFERDONE;
3878   ETag_surfxml_trace();
3879   surfxml_pcdata_ix = popbuffer();
3880   popbuffer(); /* attribute */
3881   switch (YY_START) {
3882    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
3883   }
3884  }
3885         YY_BREAK
3886 case 52:
3887 /* rule 52 can match eol */
3888 YY_RULE_SETUP
3889 FAIL("Unexpected end-tag `%s': `</trace>' expected.",surf_parse_text);
3890         YY_BREAK
3891 case YY_STATE_EOF(IN_trace):
3892 FAIL("Premature EOF: `</trace>' expected.");
3893         YY_BREAK
3894
3895 case 53:
3896 /* rule 53 can match eol */
3897 YY_RULE_SETUP
3898 {
3899   AX_surfxml_random_id = 0;
3900   AX_surfxml_random_min = 0;
3901   AX_surfxml_random_max = 0;
3902   AX_surfxml_random_mean = 0;
3903   AX_surfxml_random_std_deviation = 0;
3904   AX_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
3905   ENTER(AL_surfxml_random); pushbuffer(0);
3906   }
3907         YY_BREAK
3908
3909 case 54:
3910 /* rule 54 can match eol */
3911 YY_RULE_SETUP
3912 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_id);
3913         YY_BREAK
3914 case 55:
3915 /* rule 55 can match eol */
3916 YY_RULE_SETUP
3917 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_id);
3918         YY_BREAK
3919 case 56:
3920 /* rule 56 can match eol */
3921 YY_RULE_SETUP
3922 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_min);
3923         YY_BREAK
3924 case 57:
3925 /* rule 57 can match eol */
3926 YY_RULE_SETUP
3927 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_min);
3928         YY_BREAK
3929 case 58:
3930 /* rule 58 can match eol */
3931 YY_RULE_SETUP
3932 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_max);
3933         YY_BREAK
3934 case 59:
3935 /* rule 59 can match eol */
3936 YY_RULE_SETUP
3937 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_max);
3938         YY_BREAK
3939 case 60:
3940 /* rule 60 can match eol */
3941 YY_RULE_SETUP
3942 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_mean);
3943         YY_BREAK
3944 case 61:
3945 /* rule 61 can match eol */
3946 YY_RULE_SETUP
3947 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_mean);
3948         YY_BREAK
3949 case 62:
3950 /* rule 62 can match eol */
3951 YY_RULE_SETUP
3952 ENTER(VALUE1); BUFFERSET(AX_surfxml_random_std_deviation);
3953         YY_BREAK
3954 case 63:
3955 /* rule 63 can match eol */
3956 YY_RULE_SETUP
3957 ENTER(VALUE2); BUFFERSET(AX_surfxml_random_std_deviation);
3958         YY_BREAK
3959 case 64:
3960 /* rule 64 can match eol */
3961 case 65:
3962 /* rule 65 can match eol */
3963 YY_RULE_SETUP
3964 A_surfxml_random_generator = A_surfxml_random_generator_DRAND48;
3965         YY_BREAK
3966 case 66:
3967 /* rule 66 can match eol */
3968 case 67:
3969 /* rule 67 can match eol */
3970 YY_RULE_SETUP
3971 A_surfxml_random_generator = A_surfxml_random_generator_RAND;
3972         YY_BREAK
3973 case 68:
3974 YY_RULE_SETUP
3975 {
3976   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
3977   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
3978   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
3979   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
3980   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
3981   LEAVE; STag_surfxml_random();surfxml_pcdata_ix = 0; ENTER(S_surfxml_random);
3982  }
3983         YY_BREAK
3984 case 69:
3985 YY_RULE_SETUP
3986 {
3987   if (!AX_surfxml_random_id) FAIL("Required attribute `id' not set for `random' element.");
3988   if (!AX_surfxml_random_min) FAIL("Required attribute `min' not set for `random' element.");
3989   if (!AX_surfxml_random_max) FAIL("Required attribute `max' not set for `random' element.");
3990   if (!AX_surfxml_random_mean) FAIL("Required attribute `mean' not set for `random' element.");
3991   if (!AX_surfxml_random_std_deviation) FAIL("Required attribute `std_deviation' not set for `random' element.");
3992   LEAVE; STag_surfxml_random(); surfxml_pcdata_ix = 0; ETag_surfxml_random(); popbuffer(); /* attribute */
3993   switch (YY_START) {
3994    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
3995   }
3996  }
3997         YY_BREAK
3998 case 70:
3999 YY_RULE_SETUP
4000 FAIL("Unexpected character `%c' in attribute list of random element.", surf_parse_text[0]);
4001         YY_BREAK
4002 case 71:
4003 YY_RULE_SETUP
4004 FAIL("Bad attribute `%s' in `random' element start tag.",surf_parse_text);
4005         YY_BREAK
4006 case YY_STATE_EOF(AL_surfxml_random):
4007 FAIL("EOF in attribute list of `random' element.");
4008         YY_BREAK
4009
4010 case 72:
4011 /* rule 72 can match eol */
4012 YY_RULE_SETUP
4013 {
4014   LEAVE;
4015   ETag_surfxml_random();
4016   popbuffer(); /* attribute */
4017   switch (YY_START) {
4018    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4019   }
4020  }
4021         YY_BREAK
4022 case 73:
4023 /* rule 73 can match eol */
4024 YY_RULE_SETUP
4025 FAIL("Unexpected end-tag `%s': `</random>' expected.",surf_parse_text);
4026         YY_BREAK
4027 case 74:
4028 YY_RULE_SETUP
4029 FAIL("Unexpected character `%c': `</random>' expected.",surf_parse_text[0]);
4030         YY_BREAK
4031 case YY_STATE_EOF(S_surfxml_random_2):
4032 case YY_STATE_EOF(S_surfxml_random):
4033 case YY_STATE_EOF(E_surfxml_random):
4034 FAIL("Premature EOF: `</random>' expected.");
4035         YY_BREAK
4036
4037 case 75:
4038 /* rule 75 can match eol */
4039 YY_RULE_SETUP
4040 {
4041   AX_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_AVAILABILITY;
4042   AX_surfxml_trace_c_connect_trace_id = 0;
4043   AX_surfxml_trace_c_connect_element = A_surfxml_trace_c_connect_element_HOST;
4044   AX_surfxml_trace_c_connect_connector_id = 0;
4045   ENTER(AL_surfxml_trace_c_connect); pushbuffer(0);
4046   }
4047         YY_BREAK
4048
4049 case 76:
4050 /* rule 76 can match eol */
4051 case 77:
4052 /* rule 77 can match eol */
4053 YY_RULE_SETUP
4054 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_AVAILABILITY;
4055         YY_BREAK
4056 case 78:
4057 /* rule 78 can match eol */
4058 case 79:
4059 /* rule 79 can match eol */
4060 YY_RULE_SETUP
4061 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_BANDWIDTH;
4062         YY_BREAK
4063 case 80:
4064 /* rule 80 can match eol */
4065 case 81:
4066 /* rule 81 can match eol */
4067 YY_RULE_SETUP
4068 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_LATENCY;
4069         YY_BREAK
4070 case 82:
4071 /* rule 82 can match eol */
4072 case 83:
4073 /* rule 83 can match eol */
4074 YY_RULE_SETUP
4075 A_surfxml_trace_c_connect_kind = A_surfxml_trace_c_connect_kind_POWER;
4076         YY_BREAK
4077 case 84:
4078 /* rule 84 can match eol */
4079 YY_RULE_SETUP
4080 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_c_connect_trace_id);
4081         YY_BREAK
4082 case 85:
4083 /* rule 85 can match eol */
4084 YY_RULE_SETUP
4085 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_c_connect_trace_id);
4086         YY_BREAK
4087 case 86:
4088 /* rule 86 can match eol */
4089 case 87:
4090 /* rule 87 can match eol */
4091 YY_RULE_SETUP
4092 A_surfxml_trace_c_connect_element = A_surfxml_trace_c_connect_element_HOST;
4093         YY_BREAK
4094 case 88:
4095 /* rule 88 can match eol */
4096 case 89:
4097 /* rule 89 can match eol */
4098 YY_RULE_SETUP
4099 A_surfxml_trace_c_connect_element = A_surfxml_trace_c_connect_element_LINK;
4100         YY_BREAK
4101 case 90:
4102 /* rule 90 can match eol */
4103 YY_RULE_SETUP
4104 ENTER(VALUE1); BUFFERSET(AX_surfxml_trace_c_connect_connector_id);
4105         YY_BREAK
4106 case 91:
4107 /* rule 91 can match eol */
4108 YY_RULE_SETUP
4109 ENTER(VALUE2); BUFFERSET(AX_surfxml_trace_c_connect_connector_id);
4110         YY_BREAK
4111 case 92:
4112 YY_RULE_SETUP
4113 {
4114   if (!AX_surfxml_trace_c_connect_trace_id) FAIL("Required attribute `trace_id' not set for `trace:connect' element.");
4115   if (!AX_surfxml_trace_c_connect_connector_id) FAIL("Required attribute `connector_id' not set for `trace:connect' element.");
4116   LEAVE; STag_surfxml_trace_c_connect();surfxml_pcdata_ix = 0; ENTER(E_surfxml_trace_c_connect);
4117  }
4118         YY_BREAK
4119 case 93:
4120 YY_RULE_SETUP
4121 {
4122   if (!AX_surfxml_trace_c_connect_trace_id) FAIL("Required attribute `trace_id' not set for `trace:connect' element.");
4123   if (!AX_surfxml_trace_c_connect_connector_id) FAIL("Required attribute `connector_id' not set for `trace:connect' element.");
4124   LEAVE; STag_surfxml_trace_c_connect(); surfxml_pcdata_ix = 0; ETag_surfxml_trace_c_connect(); popbuffer(); /* attribute */
4125   switch (YY_START) {
4126    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
4127    case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
4128   }
4129  }
4130         YY_BREAK
4131 case 94:
4132 YY_RULE_SETUP
4133 FAIL("Unexpected character `%c' in attribute list of trace:connect element.", surf_parse_text[0]);
4134         YY_BREAK
4135 case 95:
4136 YY_RULE_SETUP
4137 FAIL("Bad attribute `%s' in `trace:connect' element start tag.",surf_parse_text);
4138         YY_BREAK
4139 case YY_STATE_EOF(AL_surfxml_trace_c_connect):
4140 FAIL("EOF in attribute list of `trace:connect' element.");
4141         YY_BREAK
4142
4143 case 96:
4144 /* rule 96 can match eol */
4145 YY_RULE_SETUP
4146 {
4147   LEAVE;
4148   ETag_surfxml_trace_c_connect();
4149   popbuffer(); /* attribute */
4150   switch (YY_START) {
4151    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
4152    case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
4153   }
4154  }
4155         YY_BREAK
4156 case 97:
4157 /* rule 97 can match eol */
4158 YY_RULE_SETUP
4159 FAIL("Unexpected end-tag `%s': `</trace:connect>' expected.",surf_parse_text);
4160         YY_BREAK
4161 case 98:
4162 YY_RULE_SETUP
4163 FAIL("Unexpected character `%c': `</trace:connect>' expected.",surf_parse_text[0]);
4164         YY_BREAK
4165 case YY_STATE_EOF(E_surfxml_trace_c_connect):
4166 FAIL("Premature EOF: `</trace:connect>' expected.");
4167         YY_BREAK
4168
4169 case 99:
4170 /* rule 99 can match eol */
4171 YY_RULE_SETUP
4172 {
4173   AX_surfxml_set_id = 0;
4174   AX_surfxml_set_prefix = 0;
4175   AX_surfxml_set_suffix = 0;
4176   AX_surfxml_set_radical = 0;
4177   ENTER(AL_surfxml_set); pushbuffer(0);
4178   }
4179         YY_BREAK
4180
4181 case 100:
4182 /* rule 100 can match eol */
4183 YY_RULE_SETUP
4184 ENTER(VALUE1); BUFFERSET(AX_surfxml_set_id);
4185         YY_BREAK
4186 case 101:
4187 /* rule 101 can match eol */
4188 YY_RULE_SETUP
4189 ENTER(VALUE2); BUFFERSET(AX_surfxml_set_id);
4190         YY_BREAK
4191 case 102:
4192 /* rule 102 can match eol */
4193 YY_RULE_SETUP
4194 ENTER(VALUE1); BUFFERSET(AX_surfxml_set_prefix);
4195         YY_BREAK
4196 case 103:
4197 /* rule 103 can match eol */
4198 YY_RULE_SETUP
4199 ENTER(VALUE2); BUFFERSET(AX_surfxml_set_prefix);
4200         YY_BREAK
4201 case 104:
4202 /* rule 104 can match eol */
4203 YY_RULE_SETUP
4204 ENTER(VALUE1); BUFFERSET(AX_surfxml_set_suffix);
4205         YY_BREAK
4206 case 105:
4207 /* rule 105 can match eol */
4208 YY_RULE_SETUP
4209 ENTER(VALUE2); BUFFERSET(AX_surfxml_set_suffix);
4210         YY_BREAK
4211 case 106:
4212 /* rule 106 can match eol */
4213 YY_RULE_SETUP
4214 ENTER(VALUE1); BUFFERSET(AX_surfxml_set_radical);
4215         YY_BREAK
4216 case 107:
4217 /* rule 107 can match eol */
4218 YY_RULE_SETUP
4219 ENTER(VALUE2); BUFFERSET(AX_surfxml_set_radical);
4220         YY_BREAK
4221 case 108:
4222 YY_RULE_SETUP
4223 {
4224   if (!AX_surfxml_set_id) FAIL("Required attribute `id' not set for `set' element.");
4225   if (!AX_surfxml_set_prefix) FAIL("Required attribute `prefix' not set for `set' element.");
4226   if (!AX_surfxml_set_suffix) FAIL("Required attribute `suffix' not set for `set' element.");
4227   if (!AX_surfxml_set_radical) FAIL("Required attribute `radical' not set for `set' element.");
4228   LEAVE; STag_surfxml_set();surfxml_pcdata_ix = 0; ENTER(E_surfxml_set);
4229  }
4230         YY_BREAK
4231 case 109:
4232 YY_RULE_SETUP
4233 {
4234   if (!AX_surfxml_set_id) FAIL("Required attribute `id' not set for `set' element.");
4235   if (!AX_surfxml_set_prefix) FAIL("Required attribute `prefix' not set for `set' element.");
4236   if (!AX_surfxml_set_suffix) FAIL("Required attribute `suffix' not set for `set' element.");
4237   if (!AX_surfxml_set_radical) FAIL("Required attribute `radical' not set for `set' element.");
4238   LEAVE; STag_surfxml_set(); surfxml_pcdata_ix = 0; ETag_surfxml_set(); popbuffer(); /* attribute */
4239   switch (YY_START) {
4240    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4241   }
4242  }
4243         YY_BREAK
4244 case 110:
4245 YY_RULE_SETUP
4246 FAIL("Unexpected character `%c' in attribute list of set element.", surf_parse_text[0]);
4247         YY_BREAK
4248 case 111:
4249 YY_RULE_SETUP
4250 FAIL("Bad attribute `%s' in `set' element start tag.",surf_parse_text);
4251         YY_BREAK
4252 case YY_STATE_EOF(AL_surfxml_set):
4253 FAIL("EOF in attribute list of `set' element.");
4254         YY_BREAK
4255
4256 case 112:
4257 /* rule 112 can match eol */
4258 YY_RULE_SETUP
4259 {
4260   LEAVE;
4261   ETag_surfxml_set();
4262   popbuffer(); /* attribute */
4263   switch (YY_START) {
4264    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4265   }
4266  }
4267         YY_BREAK
4268 case 113:
4269 /* rule 113 can match eol */
4270 YY_RULE_SETUP
4271 FAIL("Unexpected end-tag `%s': `</set>' expected.",surf_parse_text);
4272         YY_BREAK
4273 case 114:
4274 YY_RULE_SETUP
4275 FAIL("Unexpected character `%c': `</set>' expected.",surf_parse_text[0]);
4276         YY_BREAK
4277 case YY_STATE_EOF(E_surfxml_set):
4278 FAIL("Premature EOF: `</set>' expected.");
4279         YY_BREAK
4280
4281 case 115:
4282 /* rule 115 can match eol */
4283 YY_RULE_SETUP
4284 {
4285   AX_surfxml_foreach_set_id = 0;
4286   ENTER(AL_surfxml_foreach); pushbuffer(0);
4287   }
4288         YY_BREAK
4289
4290 case 116:
4291 /* rule 116 can match eol */
4292 YY_RULE_SETUP
4293 ENTER(VALUE1); BUFFERSET(AX_surfxml_foreach_set_id);
4294         YY_BREAK
4295 case 117:
4296 /* rule 117 can match eol */
4297 YY_RULE_SETUP
4298 ENTER(VALUE2); BUFFERSET(AX_surfxml_foreach_set_id);
4299         YY_BREAK
4300 case 118:
4301 YY_RULE_SETUP
4302 {
4303   if (!AX_surfxml_foreach_set_id) FAIL("Required attribute `set_id' not set for `foreach' element.");
4304   LEAVE; STag_surfxml_foreach();surfxml_pcdata_ix = 0; ENTER(S_surfxml_foreach);
4305  }
4306         YY_BREAK
4307 case 119:
4308 YY_RULE_SETUP
4309 FAIL("`foreach' element cannot be empty.");
4310         YY_BREAK
4311 case 120:
4312 YY_RULE_SETUP
4313 FAIL("Unexpected character `%c' in attribute list of foreach element.", surf_parse_text[0]);
4314         YY_BREAK
4315 case 121:
4316 YY_RULE_SETUP
4317 FAIL("Bad attribute `%s' in `foreach' element start tag.",surf_parse_text);
4318         YY_BREAK
4319 case YY_STATE_EOF(AL_surfxml_foreach):
4320 FAIL("EOF in attribute list of `foreach' element.");
4321         YY_BREAK
4322
4323 case 122:
4324 /* rule 122 can match eol */
4325 YY_RULE_SETUP
4326 {
4327   LEAVE;
4328   ETag_surfxml_foreach();
4329   popbuffer(); /* attribute */
4330   switch (YY_START) {
4331    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4332   }
4333  }
4334         YY_BREAK
4335 case 123:
4336 /* rule 123 can match eol */
4337 YY_RULE_SETUP
4338 FAIL("Unexpected end-tag `%s': `</foreach>' expected.",surf_parse_text);
4339         YY_BREAK
4340 case 124:
4341 YY_RULE_SETUP
4342 FAIL("Unexpected character `%c': `</foreach>' expected.",surf_parse_text[0]);
4343         YY_BREAK
4344 case YY_STATE_EOF(E_surfxml_foreach):
4345 FAIL("Premature EOF: `</foreach>' expected.");
4346         YY_BREAK
4347
4348 case 125:
4349 /* rule 125 can match eol */
4350 YY_RULE_SETUP
4351 {
4352   AX_surfxml_host_id = 0;
4353   AX_surfxml_host_power = 0;
4354   AX_surfxml_host_availability = 69;
4355   AX_surfxml_host_availability_file = 0;
4356   AX_surfxml_host_state = A_surfxml_host_state_ON;
4357   AX_surfxml_host_state_file = 0;
4358   AX_surfxml_host_interference_send = 73;
4359   AX_surfxml_host_interference_recv = 77;
4360   AX_surfxml_host_interference_send_recv = 81;
4361   AX_surfxml_host_max_outgoing_rate = 85;
4362   ENTER(AL_surfxml_host); pushbuffer(0);
4363   }
4364         YY_BREAK
4365
4366 case 126:
4367 /* rule 126 can match eol */
4368 YY_RULE_SETUP
4369 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
4370         YY_BREAK
4371 case 127:
4372 /* rule 127 can match eol */
4373 YY_RULE_SETUP
4374 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
4375         YY_BREAK
4376 case 128:
4377 /* rule 128 can match eol */
4378 YY_RULE_SETUP
4379 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
4380         YY_BREAK
4381 case 129:
4382 /* rule 129 can match eol */
4383 YY_RULE_SETUP
4384 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
4385         YY_BREAK
4386 case 130:
4387 /* rule 130 can match eol */
4388 YY_RULE_SETUP
4389 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
4390         YY_BREAK
4391 case 131:
4392 /* rule 131 can match eol */
4393 YY_RULE_SETUP
4394 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
4395         YY_BREAK
4396 case 132:
4397 /* rule 132 can match eol */
4398 YY_RULE_SETUP
4399 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
4400         YY_BREAK
4401 case 133:
4402 /* rule 133 can match eol */
4403 YY_RULE_SETUP
4404 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
4405         YY_BREAK
4406 case 134:
4407 /* rule 134 can match eol */
4408 case 135:
4409 /* rule 135 can match eol */
4410 YY_RULE_SETUP
4411 A_surfxml_host_state = A_surfxml_host_state_ON;
4412         YY_BREAK
4413 case 136:
4414 /* rule 136 can match eol */
4415 case 137:
4416 /* rule 137 can match eol */
4417 YY_RULE_SETUP
4418 A_surfxml_host_state = A_surfxml_host_state_OFF;
4419         YY_BREAK
4420 case 138:
4421 /* rule 138 can match eol */
4422 YY_RULE_SETUP
4423 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
4424         YY_BREAK
4425 case 139:
4426 /* rule 139 can match eol */
4427 YY_RULE_SETUP
4428 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
4429         YY_BREAK
4430 case 140:
4431 /* rule 140 can match eol */
4432 YY_RULE_SETUP
4433 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send);
4434         YY_BREAK
4435 case 141:
4436 /* rule 141 can match eol */
4437 YY_RULE_SETUP
4438 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send);
4439         YY_BREAK
4440 case 142:
4441 /* rule 142 can match eol */
4442 YY_RULE_SETUP
4443 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_recv);
4444         YY_BREAK
4445 case 143:
4446 /* rule 143 can match eol */
4447 YY_RULE_SETUP
4448 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_recv);
4449         YY_BREAK
4450 case 144:
4451 /* rule 144 can match eol */
4452 YY_RULE_SETUP
4453 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send_recv);
4454         YY_BREAK
4455 case 145:
4456 /* rule 145 can match eol */
4457 YY_RULE_SETUP
4458 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send_recv);
4459         YY_BREAK
4460 case 146:
4461 /* rule 146 can match eol */
4462 YY_RULE_SETUP
4463 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
4464         YY_BREAK
4465 case 147:
4466 /* rule 147 can match eol */
4467 YY_RULE_SETUP
4468 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
4469         YY_BREAK
4470 case 148:
4471 YY_RULE_SETUP
4472 {
4473   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
4474   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
4475   LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
4476  }
4477         YY_BREAK
4478 case 149:
4479 YY_RULE_SETUP
4480 {
4481   if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
4482   if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
4483   LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
4484   switch (YY_START) {
4485    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4486    case S_surfxml_foreach: SET(S_surfxml_foreach_1); break;
4487   }
4488  }
4489         YY_BREAK
4490 case 150:
4491 YY_RULE_SETUP
4492 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
4493         YY_BREAK
4494 case 151:
4495 YY_RULE_SETUP
4496 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
4497         YY_BREAK
4498 case YY_STATE_EOF(AL_surfxml_host):
4499 FAIL("EOF in attribute list of `host' element.");
4500         YY_BREAK
4501
4502 case 152:
4503 /* rule 152 can match eol */
4504 YY_RULE_SETUP
4505 {
4506   LEAVE;
4507   ETag_surfxml_host();
4508   popbuffer(); /* attribute */
4509   switch (YY_START) {
4510    case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
4511    case S_surfxml_foreach: SET(S_surfxml_foreach_1); break;
4512   }
4513  }
4514         YY_BREAK
4515 case 153:
4516 /* rule 153 can match eol */
4517 YY_RULE_SETUP
4518 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
4519         YY_BREAK
4520 case 154:
4521 YY_RULE_SETUP
4522 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
4523         YY_BREAK
4524 case YY_STATE_EOF(S_surfxml_host):
4525 case YY_STATE_EOF(E_surfxml_host):
4526 case YY_STATE_EOF(S_surfxml_host_2):
4527 FAIL("Premature EOF: `</host>' expected.");
4528         YY_BREAK
4529
4530 case 155:
4531 /* rule 155 can match eol */
4532 YY_RULE_SETUP
4533 {
4534   AX_surfxml_prop_id = 0;
4535   AX_surfxml_prop_value = 0;
4536   ENTER(AL_surfxml_prop); pushbuffer(0);
4537   }
4538         YY_BREAK
4539
4540 case 156:
4541 /* rule 156 can match eol */
4542 YY_RULE_SETUP
4543 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
4544         YY_BREAK
4545 case 157:
4546 /* rule 157 can match eol */
4547 YY_RULE_SETUP
4548 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
4549         YY_BREAK
4550 case 158:
4551 /* rule 158 can match eol */
4552 YY_RULE_SETUP
4553 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
4554         YY_BREAK
4555 case 159:
4556 /* rule 159 can match eol */
4557 YY_RULE_SETUP
4558 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
4559         YY_BREAK
4560 case 160:
4561 YY_RULE_SETUP
4562 {
4563   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
4564   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
4565   LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
4566  }
4567         YY_BREAK
4568 case 161:
4569 YY_RULE_SETUP
4570 {
4571   if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
4572   if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
4573   LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
4574   switch (YY_START) {
4575    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
4576    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
4577    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
4578    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
4579   }
4580  }
4581         YY_BREAK
4582 case 162:
4583 YY_RULE_SETUP
4584 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
4585         YY_BREAK
4586 case 163:
4587 YY_RULE_SETUP
4588 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
4589         YY_BREAK
4590 case YY_STATE_EOF(AL_surfxml_prop):
4591 FAIL("EOF in attribute list of `prop' element.");
4592         YY_BREAK
4593
4594 case 164:
4595 /* rule 164 can match eol */
4596 YY_RULE_SETUP
4597 {
4598   LEAVE;
4599   ETag_surfxml_prop();
4600   popbuffer(); /* attribute */
4601   switch (YY_START) {
4602    case S_surfxml_random: case S_surfxml_random_2: case S_surfxml_random_1: SET(S_surfxml_random_2); break;
4603    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
4604    case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
4605    case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
4606   }
4607  }
4608         YY_BREAK
4609 case 165:
4610 /* rule 165 can match eol */
4611 YY_RULE_SETUP
4612 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
4613         YY_BREAK
4614 case 166:
4615 YY_RULE_SETUP
4616 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
4617         YY_BREAK
4618 case YY_STATE_EOF(E_surfxml_prop):
4619 FAIL("Premature EOF: `</prop>' expected.");
4620         YY_BREAK
4621
4622 case 167:
4623 /* rule 167 can match eol */
4624 YY_RULE_SETUP
4625 {
4626   AX_surfxml_cluster_id = 0;
4627   AX_surfxml_cluster_prefix = 0;
4628   AX_surfxml_cluster_suffix = 0;
4629   AX_surfxml_cluster_radical = 0;
4630   AX_surfxml_cluster_power = 0;
4631   AX_surfxml_cluster_bw = 0;
4632   AX_surfxml_cluster_lat = 0;
4633   AX_surfxml_cluster_bb_bw = 0;
4634   AX_surfxml_cluster_bb_lat = 0;
4635   ENTER(AL_surfxml_cluster); pushbuffer(0);
4636   }
4637         YY_BREAK
4638
4639 case 168:
4640 /* rule 168 can match eol */
4641 YY_RULE_SETUP
4642 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_id);
4643         YY_BREAK
4644 case 169:
4645 /* rule 169 can match eol */
4646 YY_RULE_SETUP
4647 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_id);
4648         YY_BREAK
4649 case 170:
4650 /* rule 170 can match eol */
4651 YY_RULE_SETUP
4652 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_prefix);
4653         YY_BREAK
4654 case 171:
4655 /* rule 171 can match eol */
4656 YY_RULE_SETUP
4657 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_prefix);
4658         YY_BREAK
4659 case 172:
4660 /* rule 172 can match eol */
4661 YY_RULE_SETUP
4662 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_suffix);
4663         YY_BREAK
4664 case 173:
4665 /* rule 173 can match eol */
4666 YY_RULE_SETUP
4667 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_suffix);
4668         YY_BREAK
4669 case 174:
4670 /* rule 174 can match eol */
4671 YY_RULE_SETUP
4672 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_radical);
4673         YY_BREAK
4674 case 175:
4675 /* rule 175 can match eol */
4676 YY_RULE_SETUP
4677 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_radical);
4678         YY_BREAK
4679 case 176:
4680 /* rule 176 can match eol */
4681 YY_RULE_SETUP
4682 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_power);
4683         YY_BREAK
4684 case 177:
4685 /* rule 177 can match eol */
4686 YY_RULE_SETUP
4687 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_power);
4688         YY_BREAK
4689 case 178:
4690 /* rule 178 can match eol */
4691 YY_RULE_SETUP
4692 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bw);
4693         YY_BREAK
4694 case 179:
4695 /* rule 179 can match eol */
4696 YY_RULE_SETUP
4697 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bw);
4698         YY_BREAK
4699 case 180:
4700 /* rule 180 can match eol */
4701 YY_RULE_SETUP
4702 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_lat);
4703         YY_BREAK
4704 case 181:
4705 /* rule 181 can match eol */
4706 YY_RULE_SETUP
4707 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_lat);
4708         YY_BREAK
4709 case 182:
4710 /* rule 182 can match eol */
4711 YY_RULE_SETUP
4712 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_bw);
4713         YY_BREAK
4714 case 183:
4715 /* rule 183 can match eol */
4716 YY_RULE_SETUP
4717 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_bw);
4718         YY_BREAK
4719 case 184:
4720 /* rule 184 can match eol */
4721 YY_RULE_SETUP
4722 ENTER(VALUE1); BUFFERSET(AX_surfxml_cluster_bb_lat);
4723         YY_BREAK
4724 case 185:
4725 /* rule 185 can match eol */
4726 YY_RULE_SETUP
4727 ENTER(VALUE2); BUFFERSET(AX_surfxml_cluster_bb_lat);
4728         YY_BREAK
4729 case 186:
4730 YY_RULE_SETUP
4731 {
4732   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
4733   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
4734   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
4735   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
4736   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
4737   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
4738   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
4739   if (!AX_surfxml_cluster_bb_bw) FAIL("Required attribute `bb_bw' not set for `cluster' element.");
4740   if (!AX_surfxml_cluster_bb_lat) FAIL("Required attribute `bb_lat' not set for `cluster' element.");
4741   LEAVE; STag_surfxml_cluster();surfxml_pcdata_ix = 0; ENTER(E_surfxml_cluster);
4742  }
4743         YY_BREAK
4744 case 187:
4745 YY_RULE_SETUP
4746 {
4747   if (!AX_surfxml_cluster_id) FAIL("Required attribute `id' not set for `cluster' element.");
4748   if (!AX_surfxml_cluster_prefix) FAIL("Required attribute `prefix' not set for `cluster' element.");
4749   if (!AX_surfxml_cluster_suffix) FAIL("Required attribute `suffix' not set for `cluster' element.");
4750   if (!AX_surfxml_cluster_radical) FAIL("Required attribute `radical' not set for `cluster' element.");
4751   if (!AX_surfxml_cluster_power) FAIL("Required attribute `power' not set for `cluster' element.");
4752   if (!AX_surfxml_cluster_bw) FAIL("Required attribute `bw' not set for `cluster' element.");
4753   if (!AX_surfxml_cluster_lat) FAIL("Required attribute `lat' not set for `cluster' element.");
4754   if (!AX_surfxml_cluster_bb_bw) FAIL("Required attribute `bb_bw' not set for `cluster' element.");
4755   if (!AX_surfxml_cluster_bb_lat) FAIL("Required attribute `bb_lat' not set for `cluster' element.");
4756   LEAVE; STag_surfxml_cluster(); surfxml_pcdata_ix = 0; ETag_surfxml_cluster(); popbuffer(); /* attribute */
4757   switch (YY_START) {
4758    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4759   }
4760  }
4761         YY_BREAK
4762 case 188:
4763 YY_RULE_SETUP
4764 FAIL("Unexpected character `%c' in attribute list of cluster element.", surf_parse_text[0]);
4765         YY_BREAK
4766 case 189:
4767 YY_RULE_SETUP
4768 FAIL("Bad attribute `%s' in `cluster' element start tag.",surf_parse_text);
4769         YY_BREAK
4770 case YY_STATE_EOF(AL_surfxml_cluster):
4771 FAIL("EOF in attribute list of `cluster' element.");
4772         YY_BREAK
4773
4774 case 190:
4775 /* rule 190 can match eol */
4776 YY_RULE_SETUP
4777 {
4778   LEAVE;
4779   ETag_surfxml_cluster();
4780   popbuffer(); /* attribute */
4781   switch (YY_START) {
4782    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4783   }
4784  }
4785         YY_BREAK
4786 case 191:
4787 /* rule 191 can match eol */
4788 YY_RULE_SETUP
4789 FAIL("Unexpected end-tag `%s': `</cluster>' expected.",surf_parse_text);
4790         YY_BREAK
4791 case 192:
4792 YY_RULE_SETUP
4793 FAIL("Unexpected character `%c': `</cluster>' expected.",surf_parse_text[0]);
4794         YY_BREAK
4795 case YY_STATE_EOF(E_surfxml_cluster):
4796 FAIL("Premature EOF: `</cluster>' expected.");
4797         YY_BREAK
4798
4799 case 193:
4800 /* rule 193 can match eol */
4801 YY_RULE_SETUP
4802 {
4803   AX_surfxml_router_id = 0;
4804   ENTER(AL_surfxml_router); pushbuffer(0);
4805   }
4806         YY_BREAK
4807
4808 case 194:
4809 /* rule 194 can match eol */
4810 YY_RULE_SETUP
4811 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
4812         YY_BREAK
4813 case 195:
4814 /* rule 195 can match eol */
4815 YY_RULE_SETUP
4816 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
4817         YY_BREAK
4818 case 196:
4819 YY_RULE_SETUP
4820 {
4821   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
4822   LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
4823  }
4824         YY_BREAK
4825 case 197:
4826 YY_RULE_SETUP
4827 {
4828   if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
4829   LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
4830   switch (YY_START) {
4831    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4832   }
4833  }
4834         YY_BREAK
4835 case 198:
4836 YY_RULE_SETUP
4837 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
4838         YY_BREAK
4839 case 199:
4840 YY_RULE_SETUP
4841 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
4842         YY_BREAK
4843 case YY_STATE_EOF(AL_surfxml_router):
4844 FAIL("EOF in attribute list of `router' element.");
4845         YY_BREAK
4846
4847 case 200:
4848 /* rule 200 can match eol */
4849 YY_RULE_SETUP
4850 {
4851   LEAVE;
4852   ETag_surfxml_router();
4853   popbuffer(); /* attribute */
4854   switch (YY_START) {
4855    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4856   }
4857  }
4858         YY_BREAK
4859 case 201:
4860 /* rule 201 can match eol */
4861 YY_RULE_SETUP
4862 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
4863         YY_BREAK
4864 case 202:
4865 YY_RULE_SETUP
4866 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
4867         YY_BREAK
4868 case YY_STATE_EOF(E_surfxml_router):
4869 FAIL("Premature EOF: `</router>' expected.");
4870         YY_BREAK
4871
4872 case 203:
4873 /* rule 203 can match eol */
4874 YY_RULE_SETUP
4875 {
4876   AX_surfxml_link_id = 0;
4877   AX_surfxml_link_bandwidth = 0;
4878   AX_surfxml_link_bandwidth_file = 0;
4879   AX_surfxml_link_latency = 90;
4880   AX_surfxml_link_latency_file = 0;
4881   AX_surfxml_link_state = A_surfxml_link_state_ON;
4882   AX_surfxml_link_state_file = 0;
4883   AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
4884   ENTER(AL_surfxml_link); pushbuffer(0);
4885   }
4886         YY_BREAK
4887
4888 case 204:
4889 /* rule 204 can match eol */
4890 YY_RULE_SETUP
4891 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
4892         YY_BREAK
4893 case 205:
4894 /* rule 205 can match eol */
4895 YY_RULE_SETUP
4896 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
4897         YY_BREAK
4898 case 206:
4899 /* rule 206 can match eol */
4900 YY_RULE_SETUP
4901 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
4902         YY_BREAK
4903 case 207:
4904 /* rule 207 can match eol */
4905 YY_RULE_SETUP
4906 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
4907         YY_BREAK
4908 case 208:
4909 /* rule 208 can match eol */
4910 YY_RULE_SETUP
4911 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
4912         YY_BREAK
4913 case 209:
4914 /* rule 209 can match eol */
4915 YY_RULE_SETUP
4916 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
4917         YY_BREAK
4918 case 210:
4919 /* rule 210 can match eol */
4920 YY_RULE_SETUP
4921 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
4922         YY_BREAK
4923 case 211:
4924 /* rule 211 can match eol */
4925 YY_RULE_SETUP
4926 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
4927         YY_BREAK
4928 case 212:
4929 /* rule 212 can match eol */
4930 YY_RULE_SETUP
4931 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
4932         YY_BREAK
4933 case 213:
4934 /* rule 213 can match eol */
4935 YY_RULE_SETUP
4936 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
4937         YY_BREAK
4938 case 214:
4939 /* rule 214 can match eol */
4940 case 215:
4941 /* rule 215 can match eol */
4942 YY_RULE_SETUP
4943 A_surfxml_link_state = A_surfxml_link_state_ON;
4944         YY_BREAK
4945 case 216:
4946 /* rule 216 can match eol */
4947 case 217:
4948 /* rule 217 can match eol */
4949 YY_RULE_SETUP
4950 A_surfxml_link_state = A_surfxml_link_state_OFF;
4951         YY_BREAK
4952 case 218:
4953 /* rule 218 can match eol */
4954 YY_RULE_SETUP
4955 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
4956         YY_BREAK
4957 case 219:
4958 /* rule 219 can match eol */
4959 YY_RULE_SETUP
4960 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
4961         YY_BREAK
4962 case 220:
4963 /* rule 220 can match eol */
4964 case 221:
4965 /* rule 221 can match eol */
4966 YY_RULE_SETUP
4967 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
4968         YY_BREAK
4969 case 222:
4970 /* rule 222 can match eol */
4971 case 223:
4972 /* rule 223 can match eol */
4973 YY_RULE_SETUP
4974 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
4975         YY_BREAK
4976 case 224:
4977 YY_RULE_SETUP
4978 {
4979   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
4980   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
4981   LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
4982  }
4983         YY_BREAK
4984 case 225:
4985 YY_RULE_SETUP
4986 {
4987   if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
4988   if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
4989   LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
4990   switch (YY_START) {
4991    case S_surfxml_foreach: case S_surfxml_foreach_1: SET(E_surfxml_foreach); break;
4992    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
4993   }
4994  }
4995         YY_BREAK
4996 case 226:
4997 YY_RULE_SETUP
4998 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
4999         YY_BREAK
5000 case 227:
5001 YY_RULE_SETUP
5002 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
5003         YY_BREAK
5004 case YY_STATE_EOF(AL_surfxml_link):
5005 FAIL("EOF in attribute list of `link' element.");
5006         YY_BREAK
5007
5008 case 228:
5009 /* rule 228 can match eol */
5010 YY_RULE_SETUP
5011 {
5012   LEAVE;
5013   ETag_surfxml_link();
5014   popbuffer(); /* attribute */
5015   switch (YY_START) {
5016    case S_surfxml_foreach: case S_surfxml_foreach_1: SET(E_surfxml_foreach); break;
5017    case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
5018   }
5019  }
5020         YY_BREAK
5021 case 229:
5022 /* rule 229 can match eol */
5023 YY_RULE_SETUP
5024 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
5025         YY_BREAK
5026 case 230:
5027 YY_RULE_SETUP
5028 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
5029         YY_BREAK
5030 case YY_STATE_EOF(S_surfxml_link_2):
5031 case YY_STATE_EOF(E_surfxml_link):
5032 case YY_STATE_EOF(S_surfxml_link):
5033 FAIL("Premature EOF: `</link>' expected.");
5034         YY_BREAK
5035
5036 case 231:
5037 /* rule 231 can match eol */
5038 YY_RULE_SETUP
5039 {
5040   AX_surfxml_route_c_multi_src = 0;
5041   AX_surfxml_route_c_multi_dst = 0;
5042   AX_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_POSTPEND;
5043   AX_surfxml_route_c_multi_symmetric = A_surfxml_route_c_multi_symmetric_YES;
5044   ENTER(AL_surfxml_route_c_multi); pushbuffer(0);
5045   }
5046         YY_BREAK
5047
5048 case 232:
5049 /* rule 232 can match eol */
5050 YY_RULE_SETUP
5051 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_c_multi_src);
5052         YY_BREAK
5053 case 233:
5054 /* rule 233 can match eol */
5055 YY_RULE_SETUP
5056 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_c_multi_src);
5057         YY_BREAK
5058 case 234:
5059 /* rule 234 can match eol */
5060 YY_RULE_SETUP
5061 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_c_multi_dst);
5062         YY_BREAK
5063 case 235:
5064 /* rule 235 can match eol */
5065 YY_RULE_SETUP
5066 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_c_multi_dst);
5067         YY_BREAK
5068 case 236:
5069 /* rule 236 can match eol */
5070 case 237:
5071 /* rule 237 can match eol */
5072 YY_RULE_SETUP
5073 A_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_POSTPEND;
5074         YY_BREAK
5075 case 238:
5076 /* rule 238 can match eol */
5077 case 239:
5078 /* rule 239 can match eol */
5079 YY_RULE_SETUP
5080 A_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_PREPEND;
5081         YY_BREAK
5082 case 240:
5083 /* rule 240 can match eol */
5084 case 241:
5085 /* rule 241 can match eol */
5086 YY_RULE_SETUP
5087 A_surfxml_route_c_multi_action = A_surfxml_route_c_multi_action_OVERRIDE;
5088         YY_BREAK
5089 case 242:
5090 /* rule 242 can match eol */
5091 case 243:
5092 /* rule 243 can match eol */
5093 YY_RULE_SETUP
5094 A_surfxml_route_c_multi_symmetric = A_surfxml_route_c_multi_symmetric_YES;
5095         YY_BREAK
5096 case 244:
5097 /* rule 244 can match eol */
5098 case 245:
5099 /* rule 245 can match eol */
5100 YY_RULE_SETUP
5101 A_surfxml_route_c_multi_symmetric = A_surfxml_route_c_multi_symmetric_NO;
5102         YY_BREAK
5103 case 246:
5104 YY_RULE_SETUP
5105 {
5106   if (!AX_surfxml_route_c_multi_src) FAIL("Required attribute `src' not set for `route:multi' element.");
5107   if (!AX_surfxml_route_c_multi_dst) FAIL("Required attribute `dst' not set for `route:multi' element.");
5108   LEAVE; STag_surfxml_route_c_multi();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route_c_multi);
5109  }
5110         YY_BREAK
5111 case 247:
5112 YY_RULE_SETUP
5113 FAIL("`route:multi' element cannot be empty.");
5114         YY_BREAK
5115 case 248:
5116 YY_RULE_SETUP
5117 FAIL("Unexpected character `%c' in attribute list of route:multi element.", surf_parse_text[0]);
5118         YY_BREAK
5119 case 249:
5120 YY_RULE_SETUP
5121 FAIL("Bad attribute `%s' in `route:multi' element start tag.",surf_parse_text);
5122         YY_BREAK
5123 case YY_STATE_EOF(AL_surfxml_route_c_multi):
5124 FAIL("EOF in attribute list of `route:multi' element.");
5125         YY_BREAK
5126
5127 case 250:
5128 /* rule 250 can match eol */
5129 YY_RULE_SETUP
5130 {
5131   LEAVE;
5132   ETag_surfxml_route_c_multi();
5133   popbuffer(); /* attribute */
5134   switch (YY_START) {
5135    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5136   }
5137  }
5138         YY_BREAK
5139 case 251:
5140 /* rule 251 can match eol */
5141 YY_RULE_SETUP
5142 FAIL("Unexpected end-tag `%s': `</route:multi>' expected.",surf_parse_text);
5143         YY_BREAK
5144 case 252:
5145 YY_RULE_SETUP
5146 FAIL("Unexpected character `%c': `</route:multi>' expected.",surf_parse_text[0]);
5147         YY_BREAK
5148 case YY_STATE_EOF(S_surfxml_route_c_multi_2):
5149 case YY_STATE_EOF(E_surfxml_route_c_multi):
5150 FAIL("Premature EOF: `</route:multi>' expected.");
5151         YY_BREAK
5152
5153 case 253:
5154 /* rule 253 can match eol */
5155 YY_RULE_SETUP
5156 {
5157   AX_surfxml_route_src = 0;
5158   AX_surfxml_route_dst = 0;
5159   AX_surfxml_route_impact_on_src = 94;
5160   AX_surfxml_route_impact_on_dst = 98;
5161   AX_surfxml_route_impact_on_src_with_other_recv = 102;
5162   AX_surfxml_route_impact_on_dst_with_other_send = 106;
5163   AX_surfxml_route_action = A_surfxml_route_action_POSTPEND;
5164   ENTER(AL_surfxml_route); pushbuffer(0);
5165   }
5166         YY_BREAK
5167
5168 case 254:
5169 /* rule 254 can match eol */
5170 YY_RULE_SETUP
5171 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
5172         YY_BREAK
5173 case 255:
5174 /* rule 255 can match eol */
5175 YY_RULE_SETUP
5176 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
5177         YY_BREAK
5178 case 256:
5179 /* rule 256 can match eol */
5180 YY_RULE_SETUP
5181 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
5182         YY_BREAK
5183 case 257:
5184 /* rule 257 can match eol */
5185 YY_RULE_SETUP
5186 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
5187         YY_BREAK
5188 case 258:
5189 /* rule 258 can match eol */
5190 YY_RULE_SETUP
5191 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src);
5192         YY_BREAK
5193 case 259:
5194 /* rule 259 can match eol */
5195 YY_RULE_SETUP
5196 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src);
5197         YY_BREAK
5198 case 260:
5199 /* rule 260 can match eol */
5200 YY_RULE_SETUP
5201 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst);
5202         YY_BREAK
5203 case 261:
5204 /* rule 261 can match eol */
5205 YY_RULE_SETUP
5206 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst);
5207         YY_BREAK
5208 case 262:
5209 /* rule 262 can match eol */
5210 YY_RULE_SETUP
5211 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
5212         YY_BREAK
5213 case 263:
5214 /* rule 263 can match eol */
5215 YY_RULE_SETUP
5216 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
5217         YY_BREAK
5218 case 264:
5219 /* rule 264 can match eol */
5220 YY_RULE_SETUP
5221 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
5222         YY_BREAK
5223 case 265:
5224 /* rule 265 can match eol */
5225 YY_RULE_SETUP
5226 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
5227         YY_BREAK
5228 case 266:
5229 /* rule 266 can match eol */
5230 case 267:
5231 /* rule 267 can match eol */
5232 YY_RULE_SETUP
5233 A_surfxml_route_action = A_surfxml_route_action_POSTPEND;
5234         YY_BREAK
5235 case 268:
5236 /* rule 268 can match eol */
5237 case 269:
5238 /* rule 269 can match eol */
5239 YY_RULE_SETUP
5240 A_surfxml_route_action = A_surfxml_route_action_PREPEND;
5241         YY_BREAK
5242 case 270:
5243 /* rule 270 can match eol */
5244 case 271:
5245 /* rule 271 can match eol */
5246 YY_RULE_SETUP
5247 A_surfxml_route_action = A_surfxml_route_action_OVERRIDE;
5248         YY_BREAK
5249 case 272:
5250 YY_RULE_SETUP
5251 {
5252   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
5253   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
5254   LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
5255  }
5256         YY_BREAK
5257 case 273:
5258 YY_RULE_SETUP
5259 {
5260   if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
5261   if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
5262   LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
5263   switch (YY_START) {
5264    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5265   }
5266  }
5267         YY_BREAK
5268 case 274:
5269 YY_RULE_SETUP
5270 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
5271         YY_BREAK
5272 case 275:
5273 YY_RULE_SETUP
5274 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
5275         YY_BREAK
5276 case YY_STATE_EOF(AL_surfxml_route):
5277 FAIL("EOF in attribute list of `route' element.");
5278         YY_BREAK
5279
5280 case 276:
5281 /* rule 276 can match eol */
5282 YY_RULE_SETUP
5283 {
5284   LEAVE;
5285   ETag_surfxml_route();
5286   popbuffer(); /* attribute */
5287   switch (YY_START) {
5288    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5289   }
5290  }
5291         YY_BREAK
5292 case 277:
5293 /* rule 277 can match eol */
5294 YY_RULE_SETUP
5295 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
5296         YY_BREAK
5297 case 278:
5298 YY_RULE_SETUP
5299 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
5300         YY_BREAK
5301 case YY_STATE_EOF(S_surfxml_route):
5302 case YY_STATE_EOF(S_surfxml_route_2):
5303 case YY_STATE_EOF(E_surfxml_route):
5304 FAIL("Premature EOF: `</route>' expected.");
5305         YY_BREAK
5306
5307 case 279:
5308 /* rule 279 can match eol */
5309 YY_RULE_SETUP
5310 {
5311   AX_surfxml_link_c_ctn_id = 0;
5312   ENTER(AL_surfxml_link_c_ctn); pushbuffer(0);
5313   }
5314         YY_BREAK
5315
5316 case 280:
5317 /* rule 280 can match eol */
5318 YY_RULE_SETUP
5319 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_c_ctn_id);
5320         YY_BREAK
5321 case 281:
5322 /* rule 281 can match eol */
5323 YY_RULE_SETUP
5324 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_c_ctn_id);
5325         YY_BREAK
5326 case 282:
5327 YY_RULE_SETUP
5328 {
5329   if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
5330   LEAVE; STag_surfxml_link_c_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_c_ctn);
5331  }
5332         YY_BREAK
5333 case 283:
5334 YY_RULE_SETUP
5335 {
5336   if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
5337   LEAVE; STag_surfxml_link_c_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_c_ctn(); popbuffer(); /* attribute */
5338   switch (YY_START) {
5339    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
5340    case S_surfxml_route_c_multi_2: case S_surfxml_route_c_multi_1: case S_surfxml_route_c_multi: SET(S_surfxml_route_c_multi_2); break;
5341   }
5342  }
5343         YY_BREAK
5344 case 284:
5345 YY_RULE_SETUP
5346 FAIL("Unexpected character `%c' in attribute list of link:ctn element.", surf_parse_text[0]);
5347         YY_BREAK
5348 case 285:
5349 YY_RULE_SETUP
5350 FAIL("Bad attribute `%s' in `link:ctn' element start tag.",surf_parse_text);
5351         YY_BREAK
5352 case YY_STATE_EOF(AL_surfxml_link_c_ctn):
5353 FAIL("EOF in attribute list of `link:ctn' element.");
5354         YY_BREAK
5355
5356 case 286:
5357 /* rule 286 can match eol */
5358 YY_RULE_SETUP
5359 {
5360   LEAVE;
5361   ETag_surfxml_link_c_ctn();
5362   popbuffer(); /* attribute */
5363   switch (YY_START) {
5364    case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
5365    case S_surfxml_route_c_multi_2: case S_surfxml_route_c_multi_1: case S_surfxml_route_c_multi: SET(S_surfxml_route_c_multi_2); break;
5366   }
5367  }
5368         YY_BREAK
5369 case 287:
5370 /* rule 287 can match eol */
5371 YY_RULE_SETUP
5372 FAIL("Unexpected end-tag `%s': `</link:ctn>' expected.",surf_parse_text);
5373         YY_BREAK
5374 case 288:
5375 YY_RULE_SETUP
5376 FAIL("Unexpected character `%c': `</link:ctn>' expected.",surf_parse_text[0]);
5377         YY_BREAK
5378 case YY_STATE_EOF(E_surfxml_link_c_ctn):
5379 FAIL("Premature EOF: `</link:ctn>' expected.");
5380         YY_BREAK
5381
5382 case 289:
5383 /* rule 289 can match eol */
5384 YY_RULE_SETUP
5385 {
5386   AX_surfxml_process_host = 0;
5387   AX_surfxml_process_function = 0;
5388   AX_surfxml_process_start_time = 110;
5389   AX_surfxml_process_kill_time = 115;
5390   ENTER(AL_surfxml_process); pushbuffer(0);
5391   }
5392         YY_BREAK
5393
5394 case 290:
5395 /* rule 290 can match eol */
5396 YY_RULE_SETUP
5397 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
5398         YY_BREAK
5399 case 291:
5400 /* rule 291 can match eol */
5401 YY_RULE_SETUP
5402 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
5403         YY_BREAK
5404 case 292:
5405 /* rule 292 can match eol */
5406 YY_RULE_SETUP
5407 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
5408         YY_BREAK
5409 case 293:
5410 /* rule 293 can match eol */
5411 YY_RULE_SETUP
5412 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
5413         YY_BREAK
5414 case 294:
5415 /* rule 294 can match eol */
5416 YY_RULE_SETUP
5417 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
5418         YY_BREAK
5419 case 295:
5420 /* rule 295 can match eol */
5421 YY_RULE_SETUP
5422 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
5423         YY_BREAK
5424 case 296:
5425 /* rule 296 can match eol */
5426 YY_RULE_SETUP
5427 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
5428         YY_BREAK
5429 case 297:
5430 /* rule 297 can match eol */
5431 YY_RULE_SETUP
5432 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
5433         YY_BREAK
5434 case 298:
5435 YY_RULE_SETUP
5436 {
5437   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
5438   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
5439   LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
5440  }
5441         YY_BREAK
5442 case 299:
5443 YY_RULE_SETUP
5444 {
5445   if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
5446   if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
5447   LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
5448   switch (YY_START) {
5449    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5450   }
5451  }
5452         YY_BREAK
5453 case 300:
5454 YY_RULE_SETUP
5455 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
5456         YY_BREAK
5457 case 301:
5458 YY_RULE_SETUP
5459 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
5460         YY_BREAK
5461 case YY_STATE_EOF(AL_surfxml_process):
5462 FAIL("EOF in attribute list of `process' element.");
5463         YY_BREAK
5464
5465 case 302:
5466 /* rule 302 can match eol */
5467 YY_RULE_SETUP
5468 {
5469   LEAVE;
5470   ETag_surfxml_process();
5471   popbuffer(); /* attribute */
5472   switch (YY_START) {
5473    case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
5474   }
5475  }
5476         YY_BREAK
5477 case 303:
5478 /* rule 303 can match eol */
5479 YY_RULE_SETUP
5480 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
5481         YY_BREAK
5482 case 304:
5483 YY_RULE_SETUP
5484 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
5485         YY_BREAK
5486 case YY_STATE_EOF(S_surfxml_process):
5487 case YY_STATE_EOF(E_surfxml_process):
5488 case YY_STATE_EOF(S_surfxml_process_2):
5489 FAIL("Premature EOF: `</process>' expected.");
5490         YY_BREAK
5491
5492 case 305:
5493 /* rule 305 can match eol */
5494 YY_RULE_SETUP
5495 {
5496   AX_surfxml_argument_value = 0;
5497   ENTER(AL_surfxml_argument); pushbuffer(0);
5498   }
5499         YY_BREAK
5500
5501 case 306:
5502 /* rule 306 can match eol */
5503 YY_RULE_SETUP
5504 ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
5505         YY_BREAK
5506 case 307:
5507 /* rule 307 can match eol */
5508 YY_RULE_SETUP
5509 ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
5510         YY_BREAK
5511 case 308:
5512 YY_RULE_SETUP
5513 {
5514   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
5515   LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
5516  }
5517         YY_BREAK
5518 case 309:
5519 YY_RULE_SETUP
5520 {
5521   if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
5522   LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
5523   switch (YY_START) {
5524    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
5525   }
5526  }
5527         YY_BREAK
5528 case 310:
5529 YY_RULE_SETUP
5530 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
5531         YY_BREAK
5532 case 311:
5533 YY_RULE_SETUP
5534 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
5535         YY_BREAK
5536 case YY_STATE_EOF(AL_surfxml_argument):
5537 FAIL("EOF in attribute list of `argument' element.");
5538         YY_BREAK
5539
5540 case 312:
5541 /* rule 312 can match eol */
5542 YY_RULE_SETUP
5543 {
5544   LEAVE;
5545   ETag_surfxml_argument();
5546   popbuffer(); /* attribute */
5547   switch (YY_START) {
5548    case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
5549   }
5550  }
5551         YY_BREAK
5552 case 313:
5553 /* rule 313 can match eol */
5554 YY_RULE_SETUP
5555 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
5556         YY_BREAK
5557 case 314:
5558 YY_RULE_SETUP
5559 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
5560         YY_BREAK
5561 case YY_STATE_EOF(E_surfxml_argument):
5562 FAIL("Premature EOF: `</argument>' expected.");
5563         YY_BREAK
5564
5565 /* EPILOG: after the root element. */
5566
5567 case 315:
5568 YY_RULE_SETUP
5569 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
5570         YY_BREAK
5571 case YY_STATE_EOF(EPILOG):
5572 SUCCEED;
5573         YY_BREAK
5574
5575 /* CHARACTER DATA. */
5576
5577 /* Non-defined standard entities... */
5578 case 316:
5579 YY_RULE_SETUP
5580 BUFFERPUTC('&');
5581         YY_BREAK
5582 case 317:
5583 YY_RULE_SETUP
5584 BUFFERPUTC('<');
5585         YY_BREAK
5586 case 318:
5587 YY_RULE_SETUP
5588 BUFFERPUTC('>');
5589         YY_BREAK
5590 case 319:
5591 YY_RULE_SETUP
5592 BUFFERPUTC('\'');
5593         YY_BREAK
5594 case 320:
5595 YY_RULE_SETUP
5596 BUFFERPUTC('"');
5597         YY_BREAK
5598 /* Character entities. */
5599 case 321:
5600 YY_RULE_SETUP
5601 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
5602         YY_BREAK
5603 case 322:
5604 YY_RULE_SETUP
5605 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
5606         YY_BREAK
5607
5608 case 323:
5609 /* rule 323 can match eol */
5610 case 324:
5611 /* rule 324 can match eol */
5612 case 325:
5613 /* rule 325 can match eol */
5614 case 326:
5615 /* rule 326 can match eol */
5616 YY_RULE_SETUP
5617 BUFFERPUTC('\n');
5618         YY_BREAK
5619
5620 case 327:
5621 YY_RULE_SETUP
5622 ENTER(CDATA);
5623         YY_BREAK
5624 case 328:
5625 YY_RULE_SETUP
5626 FAIL("Unexpected `]""]>' in character data.");
5627         YY_BREAK
5628
5629 case 329:
5630 YY_RULE_SETUP
5631 BUFFERDONE; LEAVE;
5632         YY_BREAK
5633 case YY_STATE_EOF(VALUE1):
5634 FAIL("EOF in literal (\"'\" expected).");
5635         YY_BREAK
5636
5637 case 330:
5638 YY_RULE_SETUP
5639 BUFFERDONE; LEAVE;
5640         YY_BREAK
5641 case YY_STATE_EOF(VALUE2):
5642 FAIL("EOF in literal (`\"' expected).");
5643         YY_BREAK
5644
5645 case 331:
5646 /* rule 331 can match eol */
5647 YY_RULE_SETUP
5648 BUFFERPUTC(surf_parse_text[0]);
5649         YY_BREAK
5650 case 332:
5651 YY_RULE_SETUP
5652 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
5653         YY_BREAK
5654
5655 case 333:
5656 YY_RULE_SETUP
5657 LEAVE;
5658         YY_BREAK
5659 /* "]""]"               BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
5660 case 334:
5661 YY_RULE_SETUP
5662 BUFFERPUTC(surf_parse_text[0]);
5663         YY_BREAK
5664 case YY_STATE_EOF(CDATA):
5665 FAIL("EOF in CDATA section.");
5666         YY_BREAK
5667
5668 /* Impossible rules to avoid warnings from flex(1). */
5669 /* Ideally, this should be replaced by code in flexml.pl that
5670     generates just the states not covered by other rules. */
5671
5672 case 335:
5673 /* rule 335 can match eol */
5674 YY_RULE_SETUP
5675 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
5676         YY_BREAK
5677
5678 case 336:
5679 YY_RULE_SETUP
5680 ECHO;
5681         YY_BREAK
5682 case YY_STATE_EOF(INITIAL):
5683 case YY_STATE_EOF(ROOT_surfxml_platform):
5684 case YY_STATE_EOF(S_surfxml_platform_2):
5685 case YY_STATE_EOF(S_surfxml_platform_4):
5686 case YY_STATE_EOF(S_surfxml_random_1):
5687 case YY_STATE_EOF(S_surfxml_foreach):
5688 case YY_STATE_EOF(S_surfxml_foreach_1):
5689 case YY_STATE_EOF(S_surfxml_host_1):
5690 case YY_STATE_EOF(S_surfxml_link_1):
5691 case YY_STATE_EOF(S_surfxml_route_c_multi):
5692 case YY_STATE_EOF(S_surfxml_route_c_multi_1):
5693 case YY_STATE_EOF(S_surfxml_route_1):
5694 case YY_STATE_EOF(S_surfxml_process_1):
5695 case YY_STATE_EOF(IMPOSSIBLE):
5696         yyterminate();
5697
5698         case YY_END_OF_BUFFER:
5699                 {
5700                 /* Amount of text matched not including the EOB char. */
5701                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5702
5703                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
5704                 *yy_cp = (yy_hold_char);
5705                 YY_RESTORE_YY_MORE_OFFSET
5706
5707                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5708                         {
5709                         /* We're scanning a new file or input source.  It's
5710                          * possible that this happened because the user
5711                          * just pointed surf_parse_in at a new source and called
5712                          * surf_parse_lex().  If so, then we have to assure
5713                          * consistency between YY_CURRENT_BUFFER and our
5714                          * globals.  Here is the right place to do so, because
5715                          * this is the first action (other than possibly a
5716                          * back-up) that will match for the new input source.
5717                          */
5718                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5719                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
5720                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5721                         }
5722
5723                 /* Note that here we test for yy_c_buf_p "<=" to the position
5724                  * of the first EOB in the buffer, since yy_c_buf_p will
5725                  * already have been incremented past the NUL character
5726                  * (since all states make transitions on EOB to the
5727                  * end-of-buffer state).  Contrast this with the test
5728                  * in input().
5729                  */
5730                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5731                         { /* This was really a NUL. */
5732                         yy_state_type yy_next_state;
5733
5734                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5735
5736                         yy_current_state = yy_get_previous_state(  );
5737
5738                         /* Okay, we're now positioned to make the NUL
5739                          * transition.  We couldn't have
5740                          * yy_get_previous_state() go ahead and do it
5741                          * for us because it doesn't know how to deal
5742                          * with the possibility of jamming (and we don't
5743                          * want to build jamming into it because then it
5744                          * will run more slowly).
5745                          */
5746
5747                         yy_next_state = yy_try_NUL_trans( yy_current_state );
5748
5749                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5750
5751                         if ( yy_next_state )
5752                                 {
5753                                 /* Consume the NUL. */
5754                                 yy_cp = ++(yy_c_buf_p);
5755                                 yy_current_state = yy_next_state;
5756                                 goto yy_match;
5757                                 }
5758
5759                         else
5760                                 {
5761                                 yy_cp = (yy_c_buf_p);
5762                                 goto yy_find_action;
5763                                 }
5764                         }
5765
5766                 else switch ( yy_get_next_buffer(  ) )
5767                         {
5768                         case EOB_ACT_END_OF_FILE:
5769                                 {
5770                                 (yy_did_buffer_switch_on_eof) = 0;
5771
5772                                 if ( surf_parse_wrap( ) )
5773                                         {
5774                                         /* Note: because we've taken care in
5775                                          * yy_get_next_buffer() to have set up
5776                                          * surf_parse_text, we can now set up
5777                                          * yy_c_buf_p so that if some total
5778                                          * hoser (like flex itself) wants to
5779                                          * call the scanner after we return the
5780                                          * YY_NULL, it'll still work - another
5781                                          * YY_NULL will get returned.
5782                                          */
5783                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5784
5785                                         yy_act = YY_STATE_EOF(YY_START);
5786                                         goto do_action;
5787                                         }
5788
5789                                 else
5790                                         {
5791                                         if ( ! (yy_did_buffer_switch_on_eof) )
5792                                                 YY_NEW_FILE;
5793                                         }
5794                                 break;
5795                                 }
5796
5797                         case EOB_ACT_CONTINUE_SCAN:
5798                                 (yy_c_buf_p) =
5799                                         (yytext_ptr) + yy_amount_of_matched_text;
5800
5801                                 yy_current_state = yy_get_previous_state(  );
5802
5803                                 yy_cp = (yy_c_buf_p);
5804                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5805                                 goto yy_match;
5806
5807                         case EOB_ACT_LAST_MATCH:
5808                                 (yy_c_buf_p) =
5809                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5810
5811                                 yy_current_state = yy_get_previous_state(  );
5812
5813                                 yy_cp = (yy_c_buf_p);
5814                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5815                                 goto yy_find_action;
5816                         }
5817                 break;
5818                 }
5819
5820         default:
5821                 YY_FATAL_ERROR(
5822                         "fatal flex scanner internal error--no action found" );
5823         } /* end of action switch */
5824                 } /* end of scanning one token */
5825 } /* end of surf_parse_lex */
5826
5827 /* yy_get_next_buffer - try to read in a new buffer
5828  *
5829  * Returns a code representing an action:
5830  *      EOB_ACT_LAST_MATCH -
5831  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5832  *      EOB_ACT_END_OF_FILE - end of file
5833  */
5834 static int yy_get_next_buffer (void)
5835 {
5836         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5837         register char *source = (yytext_ptr);
5838         register int number_to_move, i;
5839         int ret_val;
5840
5841         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5842                 YY_FATAL_ERROR(
5843                 "fatal flex scanner internal error--end of buffer missed" );
5844
5845         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5846                 { /* Don't try to fill the buffer, so this is an EOF. */
5847                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5848                         {
5849                         /* We matched a single character, the EOB, so
5850                          * treat this as a final EOF.
5851                          */
5852                         return EOB_ACT_END_OF_FILE;
5853                         }
5854
5855                 else
5856                         {
5857                         /* We matched some text prior to the EOB, first
5858                          * process it.
5859                          */
5860                         return EOB_ACT_LAST_MATCH;
5861                         }
5862                 }
5863
5864         /* Try to read more data. */
5865
5866         /* First move last chars to start of buffer. */
5867         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
5868
5869         for ( i = 0; i < number_to_move; ++i )
5870                 *(dest++) = *(source++);
5871
5872         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5873                 /* don't do the read, it's not guaranteed to return an EOF,
5874                  * just force an EOF
5875                  */
5876                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5877
5878         else
5879                 {
5880                         int num_to_read =
5881                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5882
5883                 while ( num_to_read <= 0 )
5884                         { /* Not enough room in the buffer - grow it. */
5885
5886                         /* just a shorter name for the current buffer */
5887                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
5888
5889                         int yy_c_buf_p_offset =
5890                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
5891
5892                         if ( b->yy_is_our_buffer )
5893                                 {
5894                                 int new_size = b->yy_buf_size * 2;
5895
5896                                 if ( new_size <= 0 )
5897                                         b->yy_buf_size += b->yy_buf_size / 8;
5898                                 else
5899                                         b->yy_buf_size *= 2;
5900
5901                                 b->yy_ch_buf = (char *)
5902                                         /* Include room in for 2 EOB chars. */
5903                                         surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
5904                                 }
5905                         else
5906                                 /* Can't grow it, we don't own it. */
5907                                 b->yy_ch_buf = 0;
5908
5909                         if ( ! b->yy_ch_buf )
5910                                 YY_FATAL_ERROR(
5911                                 "fatal error - scanner input buffer overflow" );
5912
5913                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5914
5915                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5916                                                 number_to_move - 1;
5917
5918                         }
5919
5920                 if ( num_to_read > YY_READ_BUF_SIZE )
5921                         num_to_read = YY_READ_BUF_SIZE;
5922
5923                 /* Read in more data. */
5924                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5925                         (yy_n_chars), (size_t) num_to_read );
5926
5927                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5928                 }
5929
5930         if ( (yy_n_chars) == 0 )
5931                 {
5932                 if ( number_to_move == YY_MORE_ADJ )
5933                         {
5934                         ret_val = EOB_ACT_END_OF_FILE;
5935                         surf_parse_restart(surf_parse_in  );
5936                         }
5937
5938                 else
5939                         {
5940                         ret_val = EOB_ACT_LAST_MATCH;
5941                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
5942                                 YY_BUFFER_EOF_PENDING;
5943                         }
5944                 }
5945
5946         else
5947                 ret_val = EOB_ACT_CONTINUE_SCAN;
5948
5949         (yy_n_chars) += number_to_move;
5950         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
5951         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
5952
5953         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
5954
5955         return ret_val;
5956 }
5957
5958 /* yy_get_previous_state - get the state just before the EOB char was reached */
5959
5960     static yy_state_type yy_get_previous_state (void)
5961 {
5962         register yy_state_type yy_current_state;
5963         register char *yy_cp;
5964     
5965         yy_current_state = (yy_start);
5966
5967         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
5968                 {
5969                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5970                 if ( yy_accept[yy_current_state] )
5971                         {
5972                         (yy_last_accepting_state) = yy_current_state;
5973                         (yy_last_accepting_cpos) = yy_cp;
5974                         }
5975                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5976                         {
5977                         yy_current_state = (int) yy_def[yy_current_state];
5978                         if ( yy_current_state >= 1941 )
5979                                 yy_c = yy_meta[(unsigned int) yy_c];
5980                         }
5981                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
5982                 }
5983
5984         return yy_current_state;
5985 }
5986
5987 /* yy_try_NUL_trans - try to make a transition on the NUL character
5988  *
5989  * synopsis
5990  *      next_state = yy_try_NUL_trans( current_state );
5991  */
5992     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
5993 {
5994         register int yy_is_jam;
5995         register char *yy_cp = (yy_c_buf_p);
5996
5997         register YY_CHAR yy_c = 1;
5998         if ( yy_accept[yy_current_state] )
5999                 {
6000                 (yy_last_accepting_state) = yy_current_state;
6001                 (yy_last_accepting_cpos) = yy_cp;
6002                 }
6003         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6004                 {
6005                 yy_current_state = (int) yy_def[yy_current_state];
6006                 if ( yy_current_state >= 1941 )
6007                         yy_c = yy_meta[(unsigned int) yy_c];
6008                 }
6009         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
6010         yy_is_jam = (yy_current_state == 1940);
6011
6012         return yy_is_jam ? 0 : yy_current_state;
6013 }
6014
6015 #ifndef YY_NO_INPUT
6016 #ifdef __cplusplus
6017     static int yyinput (void)
6018 #else
6019     static int input  (void)
6020 #endif
6021
6022 {
6023         int c;
6024     
6025         *(yy_c_buf_p) = (yy_hold_char);
6026
6027         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6028                 {
6029                 /* yy_c_buf_p now points to the character we want to return.
6030                  * If this occurs *before* the EOB characters, then it's a
6031                  * valid NUL; if not, then we've hit the end of the buffer.
6032                  */
6033                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6034                         /* This was really a NUL. */
6035                         *(yy_c_buf_p) = '\0';
6036
6037                 else
6038                         { /* need more input */
6039                         int offset = (yy_c_buf_p) - (yytext_ptr);
6040                         ++(yy_c_buf_p);
6041
6042                         switch ( yy_get_next_buffer(  ) )
6043                                 {
6044                                 case EOB_ACT_LAST_MATCH:
6045                                         /* This happens because yy_g_n_b()
6046                                          * sees that we've accumulated a
6047                                          * token and flags that we need to
6048                                          * try matching the token before
6049                                          * proceeding.  But for input(),
6050                                          * there's no matching to consider.
6051                                          * So convert the EOB_ACT_LAST_MATCH
6052                                          * to EOB_ACT_END_OF_FILE.
6053                                          */
6054
6055                                         /* Reset buffer status. */
6056                                         surf_parse_restart(surf_parse_in );
6057
6058                                         /*FALLTHROUGH*/
6059
6060                                 case EOB_ACT_END_OF_FILE:
6061                                         {
6062                                         if ( surf_parse_wrap( ) )
6063                                                 return EOF;
6064
6065                                         if ( ! (yy_did_buffer_switch_on_eof) )
6066                                                 YY_NEW_FILE;
6067 #ifdef __cplusplus
6068                                         return yyinput();
6069 #else
6070                                         return input();
6071 #endif
6072                                         }
6073
6074                                 case EOB_ACT_CONTINUE_SCAN:
6075                                         (yy_c_buf_p) = (yytext_ptr) + offset;
6076                                         break;
6077                                 }
6078                         }
6079                 }
6080
6081         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
6082         *(yy_c_buf_p) = '\0';   /* preserve surf_parse_text */
6083         (yy_hold_char) = *++(yy_c_buf_p);
6084
6085         if ( c == '\n' )
6086                    
6087     surf_parse_lineno++;
6088 ;
6089
6090         return c;
6091 }
6092 #endif  /* ifndef YY_NO_INPUT */
6093
6094 /** Immediately switch to a different input stream.
6095  * @param input_file A readable stream.
6096  * 
6097  * @note This function does not reset the start condition to @c INITIAL .
6098  */
6099     void surf_parse_restart  (FILE * input_file )
6100 {
6101     
6102         if ( ! YY_CURRENT_BUFFER ){
6103         surf_parse_ensure_buffer_stack ();
6104                 YY_CURRENT_BUFFER_LVALUE =
6105             surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
6106         }
6107
6108         surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
6109         surf_parse__load_buffer_state( );
6110 }
6111
6112 /** Switch to a different input buffer.
6113  * @param new_buffer The new input buffer.
6114  * 
6115  */
6116     void surf_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
6117 {
6118     
6119         /* TODO. We should be able to replace this entire function body
6120          * with
6121          *              surf_parse_pop_buffer_state();
6122          *              surf_parse_push_buffer_state(new_buffer);
6123      */
6124         surf_parse_ensure_buffer_stack ();
6125         if ( YY_CURRENT_BUFFER == new_buffer )
6126                 return;
6127
6128         if ( YY_CURRENT_BUFFER )
6129                 {
6130                 /* Flush out information for old buffer. */
6131                 *(yy_c_buf_p) = (yy_hold_char);
6132                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6133                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6134                 }
6135
6136         YY_CURRENT_BUFFER_LVALUE = new_buffer;
6137         surf_parse__load_buffer_state( );
6138
6139         /* We don't actually know whether we did this switch during
6140          * EOF (surf_parse_wrap()) processing, but the only time this flag
6141          * is looked at is after surf_parse_wrap() is called, so it's safe
6142          * to go ahead and always set it.
6143          */
6144         (yy_did_buffer_switch_on_eof) = 1;
6145 }
6146
6147 static void surf_parse__load_buffer_state  (void)
6148 {
6149         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6150         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6151         surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6152         (yy_hold_char) = *(yy_c_buf_p);
6153 }
6154
6155 /** Allocate and initialize an input buffer state.
6156  * @param file A readable stream.
6157  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
6158  * 
6159  * @return the allocated buffer state.
6160  */
6161     YY_BUFFER_STATE surf_parse__create_buffer  (FILE * file, int  size )
6162 {
6163         YY_BUFFER_STATE b;
6164     
6165         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
6166         if ( ! b )
6167                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
6168
6169         b->yy_buf_size = size;
6170
6171         /* yy_ch_buf has to be 2 characters longer than the size given because
6172          * we need to put in 2 end-of-buffer characters.
6173          */
6174         b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2  );
6175         if ( ! b->yy_ch_buf )
6176                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
6177
6178         b->yy_is_our_buffer = 1;
6179
6180         surf_parse__init_buffer(b,file );
6181
6182         return b;
6183 }
6184
6185 /** Destroy the buffer.
6186  * @param b a buffer created with surf_parse__create_buffer()
6187  * 
6188  */
6189     void surf_parse__delete_buffer (YY_BUFFER_STATE  b )
6190 {
6191     
6192         if ( ! b )
6193                 return;
6194
6195         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6196                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
6197
6198         if ( b->yy_is_our_buffer )
6199                 surf_parse_free((void *) b->yy_ch_buf  );
6200
6201         surf_parse_free((void *) b  );
6202 }
6203
6204 #ifndef __cplusplus
6205 extern int isatty (int );
6206 #endif /* __cplusplus */
6207     
6208 /* Initializes or reinitializes a buffer.
6209  * This function is sometimes called more than once on the same buffer,
6210  * such as during a surf_parse_restart() or at EOF.
6211  */
6212     static void surf_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
6213
6214 {
6215         int oerrno = errno;
6216     
6217         surf_parse__flush_buffer(b );
6218
6219         b->yy_input_file = file;
6220         b->yy_fill_buffer = 1;
6221
6222     /* If b is the current buffer, then surf_parse__init_buffer was _probably_
6223      * called from surf_parse_restart() or through yy_get_next_buffer.
6224      * In that case, we don't want to reset the lineno or column.
6225      */
6226     if (b != YY_CURRENT_BUFFER){
6227         b->yy_bs_lineno = 1;
6228         b->yy_bs_column = 0;
6229     }
6230
6231         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6232     
6233         errno = oerrno;
6234 }
6235
6236 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
6237  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
6238  * 
6239  */
6240     void surf_parse__flush_buffer (YY_BUFFER_STATE  b )
6241 {
6242         if ( ! b )
6243                 return;
6244
6245         b->yy_n_chars = 0;
6246
6247         /* We always need two end-of-buffer characters.  The first causes
6248          * a transition to the end-of-buffer state.  The second causes
6249          * a jam in that state.
6250          */
6251         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
6252         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
6253
6254         b->yy_buf_pos = &b->yy_ch_buf[0];
6255
6256         b->yy_at_bol = 1;
6257         b->yy_buffer_status = YY_BUFFER_NEW;
6258
6259         if ( b == YY_CURRENT_BUFFER )
6260                 surf_parse__load_buffer_state( );
6261 }
6262
6263 /** Pushes the new state onto the stack. The new state becomes
6264  *  the current state. This function will allocate the stack
6265  *  if necessary.
6266  *  @param new_buffer The new state.
6267  *  
6268  */
6269 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
6270 {
6271         if (new_buffer == NULL)
6272                 return;
6273
6274         surf_parse_ensure_buffer_stack();
6275
6276         /* This block is copied from surf_parse__switch_to_buffer. */
6277         if ( YY_CURRENT_BUFFER )
6278                 {
6279                 /* Flush out information for old buffer. */
6280                 *(yy_c_buf_p) = (yy_hold_char);
6281                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6282                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6283                 }
6284
6285         /* Only push if top exists. Otherwise, replace top. */
6286         if (YY_CURRENT_BUFFER)
6287                 (yy_buffer_stack_top)++;
6288         YY_CURRENT_BUFFER_LVALUE = new_buffer;
6289
6290         /* copied from surf_parse__switch_to_buffer. */
6291         surf_parse__load_buffer_state( );
6292         (yy_did_buffer_switch_on_eof) = 1;
6293 }
6294
6295 /** Removes and deletes the top of the stack, if present.
6296  *  The next element becomes the new top.
6297  *  
6298  */
6299 void surf_parse_pop_buffer_state (void)
6300 {
6301         if (!YY_CURRENT_BUFFER)
6302                 return;
6303
6304         surf_parse__delete_buffer(YY_CURRENT_BUFFER );
6305         YY_CURRENT_BUFFER_LVALUE = NULL;
6306         if ((yy_buffer_stack_top) > 0)
6307                 --(yy_buffer_stack_top);
6308
6309         if (YY_CURRENT_BUFFER) {
6310                 surf_parse__load_buffer_state( );
6311                 (yy_did_buffer_switch_on_eof) = 1;
6312         }
6313 }
6314
6315 /* Allocates the stack if it does not exist.
6316  *  Guarantees space for at least one push.
6317  */
6318 static void surf_parse_ensure_buffer_stack (void)
6319 {
6320         int num_to_alloc;
6321     
6322         if (!(yy_buffer_stack)) {
6323
6324                 /* First allocation is just for 2 elements, since we don't know if this
6325                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
6326                  * immediate realloc on the next call.
6327          */
6328                 num_to_alloc = 1;
6329                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
6330                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
6331                                                                 );
6332                 
6333                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6334                                 
6335                 (yy_buffer_stack_max) = num_to_alloc;
6336                 (yy_buffer_stack_top) = 0;
6337                 return;
6338         }
6339
6340         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6341
6342                 /* Increase the buffer to prepare for a possible push. */
6343                 int grow_size = 8 /* arbitrary grow size */;
6344
6345                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6346                 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
6347                                                                 ((yy_buffer_stack),
6348                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
6349                                                                 );
6350
6351                 /* zero only the new slots.*/
6352                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6353                 (yy_buffer_stack_max) = num_to_alloc;
6354         }
6355 }
6356
6357 /** Setup the input buffer state to scan directly from a user-specified character buffer.
6358  * @param base the character buffer
6359  * @param size the size in bytes of the character buffer
6360  * 
6361  * @return the newly allocated buffer state object. 
6362  */
6363 YY_BUFFER_STATE surf_parse__scan_buffer  (char * base, yy_size_t  size )
6364 {
6365         YY_BUFFER_STATE b;
6366     
6367         if ( size < 2 ||
6368              base[size-2] != YY_END_OF_BUFFER_CHAR ||
6369              base[size-1] != YY_END_OF_BUFFER_CHAR )
6370                 /* They forgot to leave room for the EOB's. */
6371                 return 0;
6372
6373         b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state )  );
6374         if ( ! b )
6375                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
6376
6377         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
6378         b->yy_buf_pos = b->yy_ch_buf = base;
6379         b->yy_is_our_buffer = 0;
6380         b->yy_input_file = 0;
6381         b->yy_n_chars = b->yy_buf_size;
6382         b->yy_is_interactive = 0;
6383         b->yy_at_bol = 1;
6384         b->yy_fill_buffer = 0;
6385         b->yy_buffer_status = YY_BUFFER_NEW;
6386
6387         surf_parse__switch_to_buffer(b  );
6388
6389         return b;
6390 }
6391
6392 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
6393  * scan from a @e copy of @a str.
6394  * @param yystr a NUL-terminated string to scan
6395  * 
6396  * @return the newly allocated buffer state object.
6397  * @note If you want to scan bytes that may contain NUL values, then use
6398  *       surf_parse__scan_bytes() instead.
6399  */
6400 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
6401 {
6402     
6403         return surf_parse__scan_bytes(yystr,strlen(yystr) );
6404 }
6405
6406 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
6407  * scan from a @e copy of @a bytes.
6408  * @param bytes the byte buffer to scan
6409  * @param len the number of bytes in the buffer pointed to by @a bytes.
6410  * 
6411  * @return the newly allocated buffer state object.
6412  */
6413 YY_BUFFER_STATE surf_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
6414 {
6415         YY_BUFFER_STATE b;
6416         char *buf;
6417         yy_size_t n;
6418         int i;
6419     
6420         /* Get memory for full buffer, including space for trailing EOB's. */
6421         n = _yybytes_len + 2;
6422         buf = (char *) surf_parse_alloc(n  );
6423         if ( ! buf )
6424                 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
6425
6426         for ( i = 0; i < _yybytes_len; ++i )
6427                 buf[i] = yybytes[i];
6428
6429         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6430
6431         b = surf_parse__scan_buffer(buf,n );
6432         if ( ! b )
6433                 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
6434
6435         /* It's okay to grow etc. this buffer, and we should throw it
6436          * away when we're done.
6437          */
6438         b->yy_is_our_buffer = 1;
6439
6440         return b;
6441 }
6442
6443     static void yy_push_state (int  new_state )
6444 {
6445         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
6446                 {
6447                 yy_size_t new_size;
6448
6449                 (yy_start_stack_depth) += YY_START_STACK_INCR;
6450                 new_size = (yy_start_stack_depth) * sizeof( int );
6451
6452                 if ( ! (yy_start_stack) )
6453                         (yy_start_stack) = (int *) surf_parse_alloc(new_size  );
6454
6455                 else
6456                         (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size  );
6457
6458                 if ( ! (yy_start_stack) )
6459                         YY_FATAL_ERROR(
6460                         "out of memory expanding start-condition stack" );
6461                 }
6462
6463         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
6464
6465         BEGIN(new_state);
6466 }
6467
6468     static void yy_pop_state  (void)
6469 {
6470         if ( --(yy_start_stack_ptr) < 0 )
6471                 YY_FATAL_ERROR( "start-condition stack underflow" );
6472
6473         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
6474 }
6475
6476 #ifndef YY_EXIT_FAILURE
6477 #define YY_EXIT_FAILURE 2
6478 #endif
6479
6480 static void yy_fatal_error (yyconst char* msg )
6481 {
6482         (void) fprintf( stderr, "%s\n", msg );
6483         exit( YY_EXIT_FAILURE );
6484 }
6485
6486 /* Redefine yyless() so it works in section 3 code. */
6487
6488 #undef yyless
6489 #define yyless(n) \
6490         do \
6491                 { \
6492                 /* Undo effects of setting up surf_parse_text. */ \
6493         int yyless_macro_arg = (n); \
6494         YY_LESS_LINENO(yyless_macro_arg);\
6495                 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
6496                 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
6497                 (yy_hold_char) = *(yy_c_buf_p); \
6498                 *(yy_c_buf_p) = '\0'; \
6499                 surf_parse_leng = yyless_macro_arg; \
6500                 } \
6501         while ( 0 )
6502
6503 /* Accessor  methods (get/set functions) to struct members. */
6504
6505 /** Get the current line number.
6506  * 
6507  */
6508 int surf_parse_get_lineno  (void)
6509 {
6510         
6511     return surf_parse_lineno;
6512 }
6513
6514 /** Get the input stream.
6515  * 
6516  */
6517 FILE *surf_parse_get_in  (void)
6518 {
6519         return surf_parse_in;
6520 }
6521
6522 /** Get the output stream.
6523  * 
6524  */
6525 FILE *surf_parse_get_out  (void)
6526 {
6527         return surf_parse_out;
6528 }
6529
6530 /** Get the length of the current token.
6531  * 
6532  */
6533 int surf_parse_get_leng  (void)
6534 {
6535         return surf_parse_leng;
6536 }
6537
6538 /** Get the current token.
6539  * 
6540  */
6541
6542 char *surf_parse_get_text  (void)
6543 {
6544         return surf_parse_text;
6545 }
6546
6547 /** Set the current line number.
6548  * @param line_number
6549  * 
6550  */
6551 void surf_parse_set_lineno (int  line_number )
6552 {
6553     
6554     surf_parse_lineno = line_number;
6555 }
6556
6557 /** Set the input stream. This does not discard the current
6558  * input buffer.
6559  * @param in_str A readable stream.
6560  * 
6561  * @see surf_parse__switch_to_buffer
6562  */
6563 void surf_parse_set_in (FILE *  in_str )
6564 {
6565         surf_parse_in = in_str ;
6566 }
6567
6568 void surf_parse_set_out (FILE *  out_str )
6569 {
6570         surf_parse_out = out_str ;
6571 }
6572
6573 int surf_parse_get_debug  (void)
6574 {
6575         return surf_parse__flex_debug;
6576 }
6577
6578 void surf_parse_set_debug (int  bdebug )
6579 {
6580         surf_parse__flex_debug = bdebug ;
6581 }
6582
6583 static int yy_init_globals (void)
6584 {
6585         /* Initialization is the same as for the non-reentrant scanner.
6586      * This function is called from surf_parse_lex_destroy(), so don't allocate here.
6587      */
6588
6589     /* We do not touch surf_parse_lineno unless the option is enabled. */
6590     surf_parse_lineno =  1;
6591     
6592     (yy_buffer_stack) = 0;
6593     (yy_buffer_stack_top) = 0;
6594     (yy_buffer_stack_max) = 0;
6595     (yy_c_buf_p) = (char *) 0;
6596     (yy_init) = 0;
6597     (yy_start) = 0;
6598
6599     (yy_start_stack_ptr) = 0;
6600     (yy_start_stack_depth) = 0;
6601     (yy_start_stack) =  NULL;
6602
6603 /* Defined in main.c */
6604 #ifdef YY_STDINIT
6605     surf_parse_in = stdin;
6606     surf_parse_out = stdout;
6607 #else
6608     surf_parse_in = (FILE *) 0;
6609     surf_parse_out = (FILE *) 0;
6610 #endif
6611
6612     /* For future reference: Set errno on error, since we are called by
6613      * surf_parse_lex_init()
6614      */
6615     return 0;
6616 }
6617
6618 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
6619 int surf_parse_lex_destroy  (void)
6620 {
6621     
6622     /* Pop the buffer stack, destroying each element. */
6623         while(YY_CURRENT_BUFFER){
6624                 surf_parse__delete_buffer(YY_CURRENT_BUFFER  );
6625                 YY_CURRENT_BUFFER_LVALUE = NULL;
6626                 surf_parse_pop_buffer_state();
6627         }
6628
6629         /* Destroy the stack itself. */
6630         surf_parse_free((yy_buffer_stack) );
6631         (yy_buffer_stack) = NULL;
6632
6633     /* Destroy the start condition stack. */
6634         surf_parse_free((yy_start_stack)  );
6635         (yy_start_stack) = NULL;
6636
6637     /* Reset the globals. This is important in a non-reentrant scanner so the next time
6638      * surf_parse_lex() is called, initialization will occur. */
6639     yy_init_globals( );
6640
6641     return 0;
6642 }
6643
6644 /*
6645  * Internal utility routines.
6646  */
6647
6648 #ifndef yytext_ptr
6649 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
6650 {
6651         register int i;
6652         for ( i = 0; i < n; ++i )
6653                 s1[i] = s2[i];
6654 }
6655 #endif
6656
6657 #ifdef YY_NEED_STRLEN
6658 static int yy_flex_strlen (yyconst char * s )
6659 {
6660         register int n;
6661         for ( n = 0; s[n]; ++n )
6662                 ;
6663
6664         return n;
6665 }
6666 #endif
6667
6668 void *surf_parse_alloc (yy_size_t  size )
6669 {
6670         return (void *) malloc( size );
6671 }
6672
6673 void *surf_parse_realloc  (void * ptr, yy_size_t  size )
6674 {
6675         /* The cast to (char *) in the following accommodates both
6676          * implementations that use char* generic pointers, and those
6677          * that use void* generic pointers.  It works with the latter
6678          * because both ANSI C and C++ allow castless assignment from
6679          * any pointer type to void*, and deal with argument conversions
6680          * as though doing an assignment.
6681          */
6682         return (void *) realloc( (char *) ptr, size );
6683 }
6684
6685 void surf_parse_free (void * ptr )
6686 {
6687         free( (char *) ptr );   /* see surf_parse_realloc() for (char *) cast */
6688 }
6689
6690 #define YYTABLES_NAME "yytables"
6691
6692 /* Element context stack lookup. */
6693 int surfxml_element_context(int i)
6694 {
6695   return (0<i && i<yy_start_stack_depth
6696           ? yy_start_stack[yy_start_stack_ptr - i]
6697           : 0);
6698 }
6699
6700 #ifdef FLEX_DEBUG
6701 void print_yy_stack(char* fmt, ...)
6702 {
6703   int i = 0; va_list ap; va_start(ap, fmt);
6704   vfprintf(stderr, fmt, ap);
6705   if (surfxml_statenames) {
6706       for (i=1; i<yy_start_stack_ptr; i++) {
6707           fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
6708       }
6709       fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
6710   }
6711   va_end(ap);
6712 }
6713
6714 void print_surfxml_bufferstack()
6715 {
6716     int i;
6717     fputs("Buffer: ", stderr);
6718     for (i = 0; i < blimit; i++) {
6719        if ( surfxml_bufferstack[i] == '\377' ) break;
6720          putc(surfxml_bufferstack[i], stderr);
6721     }
6722     putc('\n', stderr);
6723 }
6724
6725 static void debug_enter(int state, const char* statename) {
6726   yy_push_state(state);
6727   if (surf_parse__flex_debug) {
6728        print_yy_stack("--ENTER(%s) : ",statename);
6729        print_surfxml_bufferstack();
6730   }
6731 }
6732
6733 static void debug_leave(void) {
6734     if (surf_parse__flex_debug) {
6735         print_yy_stack("--LEAVE : ");
6736         print_surfxml_bufferstack();
6737     }
6738   yy_pop_state();
6739 }
6740
6741 static void debug_set(int state, const char* statename) {
6742   BEGIN(state);
6743   if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
6744 }
6745 #endif
6746
6747 static void cleanup(void)
6748 {
6749     if (surfxml_statenames) {
6750         free(surfxml_statenames);
6751         surfxml_statenames = NULL;
6752     }
6753     free(surfxml_bufferstack);
6754     surfxml_bufferstack = NULL;
6755
6756     free(indexstack);
6757     indexstack = NULL;
6758 }
6759
6760 static int fail(const char* fmt, ...)
6761 {
6762     int chars_left, used;
6763     va_list ap; va_start(ap, fmt);
6764 #ifdef FLEXML_yylineno
6765     used = sprintf(flexml_err_msg,
6766                    "Invalid XML (XML input line %d, state %d): ",
6767                    surf_parse_lineno, YY_START);
6768 #else
6769     used = sprintf(flexml_err_msg,
6770                    "Invalid XML (state %d): ",
6771                    YY_START);
6772 #endif
6773     chars_left = flexml_max_err_msg_size - used - 1;
6774     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
6775     va_end(ap);
6776
6777 #ifndef FLEXML_quiet_parser
6778     /* print directly to sdterr */
6779     fprintf(stderr, "%s\n", flexml_err_msg);
6780     flexml_err_msg[0] = '\0';
6781 #endif
6782
6783     cleanup();
6784
6785     return 1;
6786 }
6787