Logo AND Algorithmique Numérique Distribuée

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