Logo AND Algorithmique Numérique Distribuée

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