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