1#define yy_create_buffer zconf_create_buffer
2#define yy_delete_buffer zconf_delete_buffer
3#define yy_scan_buffer zconf_scan_buffer
4#define yy_scan_string zconf_scan_string
5#define yy_scan_bytes zconf_scan_bytes
6#define yy_flex_debug zconf_flex_debug
7#define yy_init_buffer zconf_init_buffer
8#define yy_flush_buffer zconf_flush_buffer
9#define yy_load_buffer_state zconf_load_buffer_state
10#define yy_switch_to_buffer zconf_switch_to_buffer
11#define yyin zconfin
12#define yyleng zconfleng
13#define yylex zconflex
14#define yyout zconfout
15#define yyrestart zconfrestart
16#define yytext zconftext
17
18/* A lexical scanner generated by flex */
19
20/* Scanner skeleton version:
21 * $Header: /ramdisk/repositories/20_cvs_clean_up/2011-02-11_sj/src/router/config/lex.zconf.c_shipped,v 1.2 2003-05-29 23:14:52 mhuang Exp $
22 */
23
24#define FLEX_SCANNER
25#define YY_FLEX_MAJOR_VERSION 2
26#define YY_FLEX_MINOR_VERSION 5
27
28#include <stdio.h>
29#include <errno.h>
30
31/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
32#ifdef c_plusplus
33#ifndef __cplusplus
34#define __cplusplus
35#endif
36#endif
37
38
39#ifdef __cplusplus
40
41#include <stdlib.h>
42#ifndef _WIN32
43#include <unistd.h>
44#endif
45
46/* Use prototypes in function declarations. */
47#define YY_USE_PROTOS
48
49/* The "const" storage-class-modifier is valid. */
50#define YY_USE_CONST
51
52#else	/* ! __cplusplus */
53
54#if __STDC__
55
56#define YY_USE_PROTOS
57#define YY_USE_CONST
58
59#endif	/* __STDC__ */
60#endif	/* ! __cplusplus */
61
62#ifdef __TURBOC__
63 #pragma warn -rch
64 #pragma warn -use
65#include <io.h>
66#include <stdlib.h>
67#define YY_USE_CONST
68#define YY_USE_PROTOS
69#endif
70
71#ifdef YY_USE_CONST
72#define yyconst const
73#else
74#define yyconst
75#endif
76
77
78#ifdef YY_USE_PROTOS
79#define YY_PROTO(proto) proto
80#else
81#define YY_PROTO(proto) ()
82#endif
83
84/* Returned upon end-of-file. */
85#define YY_NULL 0
86
87/* Promotes a possibly negative, possibly signed char to an unsigned
88 * integer for use as an array index.  If the signed char is negative,
89 * we want to instead treat it as an 8-bit unsigned char, hence the
90 * double cast.
91 */
92#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
93
94/* Enter a start condition.  This macro really ought to take a parameter,
95 * but we do it the disgusting crufty way forced on us by the ()-less
96 * definition of BEGIN.
97 */
98#define BEGIN yy_start = 1 + 2 *
99
100/* Translate the current start state into a value that can be later handed
101 * to BEGIN to return to the state.  The YYSTATE alias is for lex
102 * compatibility.
103 */
104#define YY_START ((yy_start - 1) / 2)
105#define YYSTATE YY_START
106
107/* Action number for EOF rule of a given start state. */
108#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
109
110/* Special action meaning "start processing a new file". */
111#define YY_NEW_FILE yyrestart( yyin )
112
113#define YY_END_OF_BUFFER_CHAR 0
114
115/* Size of default input buffer. */
116#define YY_BUF_SIZE 16384
117
118typedef struct yy_buffer_state *YY_BUFFER_STATE;
119
120extern int yyleng;
121extern FILE *yyin, *yyout;
122
123#define EOB_ACT_CONTINUE_SCAN 0
124#define EOB_ACT_END_OF_FILE 1
125#define EOB_ACT_LAST_MATCH 2
126
127/* The funky do-while in the following #define is used to turn the definition
128 * int a single C statement (which needs a semi-colon terminator).  This
129 * avoids problems with code like:
130 *
131 * 	if ( condition_holds )
132 *		yyless( 5 );
133 *	else
134 *		do_something_else();
135 *
136 * Prior to using the do-while the compiler would get upset at the
137 * "else" because it interpreted the "if" statement as being all
138 * done when it reached the ';' after the yyless() call.
139 */
140
141/* Return all but the first 'n' matched characters back to the input stream. */
142
143#define yyless(n) \
144	do \
145		{ \
146		/* Undo effects of setting up yytext. */ \
147		*yy_cp = yy_hold_char; \
148		YY_RESTORE_YY_MORE_OFFSET \
149		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
150		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
151		} \
152	while ( 0 )
153
154#define unput(c) yyunput( c, yytext_ptr )
155
156/* The following is because we cannot portably get our hands on size_t
157 * (without autoconf's help, which isn't available because we want
158 * flex-generated scanners to compile on their own).
159 */
160typedef unsigned int yy_size_t;
161
162
163struct yy_buffer_state
164	{
165	FILE *yy_input_file;
166
167	char *yy_ch_buf;		/* input buffer */
168	char *yy_buf_pos;		/* current position in input buffer */
169
170	/* Size of input buffer in bytes, not including room for EOB
171	 * characters.
172	 */
173	yy_size_t yy_buf_size;
174
175	/* Number of characters read into yy_ch_buf, not including EOB
176	 * characters.
177	 */
178	int yy_n_chars;
179
180	/* Whether we "own" the buffer - i.e., we know we created it,
181	 * and can realloc() it to grow it, and should free() it to
182	 * delete it.
183	 */
184	int yy_is_our_buffer;
185
186	/* Whether this is an "interactive" input source; if so, and
187	 * if we're using stdio for input, then we want to use getc()
188	 * instead of fread(), to make sure we stop fetching input after
189	 * each newline.
190	 */
191	int yy_is_interactive;
192
193	/* Whether we're considered to be at the beginning of a line.
194	 * If so, '^' rules will be active on the next match, otherwise
195	 * not.
196	 */
197	int yy_at_bol;
198
199	/* Whether to try to fill the input buffer when we reach the
200	 * end of it.
201	 */
202	int yy_fill_buffer;
203
204	int yy_buffer_status;
205#define YY_BUFFER_NEW 0
206#define YY_BUFFER_NORMAL 1
207	/* When an EOF's been seen but there's still some text to process
208	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
209	 * shouldn't try reading from the input source any more.  We might
210	 * still have a bunch of tokens to match, though, because of
211	 * possible backing-up.
212	 *
213	 * When we actually see the EOF, we change the status to "new"
214	 * (via yyrestart()), so that the user can continue scanning by
215	 * just pointing yyin at a new input file.
216	 */
217#define YY_BUFFER_EOF_PENDING 2
218	};
219
220static YY_BUFFER_STATE yy_current_buffer = 0;
221
222/* We provide macros for accessing buffer states in case in the
223 * future we want to put the buffer states in a more general
224 * "scanner state".
225 */
226#define YY_CURRENT_BUFFER yy_current_buffer
227
228
229/* yy_hold_char holds the character lost when yytext is formed. */
230static char yy_hold_char;
231
232static int yy_n_chars;		/* number of characters read into yy_ch_buf */
233
234
235int yyleng;
236
237/* Points to current character in buffer. */
238static char *yy_c_buf_p = (char *) 0;
239static int yy_init = 1;		/* whether we need to initialize */
240static int yy_start = 0;	/* start state number */
241
242/* Flag which is used to allow yywrap()'s to do buffer switches
243 * instead of setting up a fresh yyin.  A bit of a hack ...
244 */
245static int yy_did_buffer_switch_on_eof;
246
247void yyrestart YY_PROTO(( FILE *input_file ));
248
249void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
250void yy_load_buffer_state YY_PROTO(( void ));
251YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
252void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
253void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
254void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
255#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
256
257YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
258YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
259YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
260
261static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
262static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
263static void yy_flex_free YY_PROTO(( void * ));
264
265#define yy_new_buffer yy_create_buffer
266
267#define yy_set_interactive(is_interactive) \
268	{ \
269	if ( ! yy_current_buffer ) \
270		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
271	yy_current_buffer->yy_is_interactive = is_interactive; \
272	}
273
274#define yy_set_bol(at_bol) \
275	{ \
276	if ( ! yy_current_buffer ) \
277		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
278	yy_current_buffer->yy_at_bol = at_bol; \
279	}
280
281#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
282
283
284#define yywrap() 1
285#define YY_SKIP_YYWRAP
286typedef unsigned char YY_CHAR;
287FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
288typedef int yy_state_type;
289extern char *yytext;
290#define yytext_ptr yytext
291static yyconst short yy_nxt[][37] =
292    {
293    {
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
298    },
299
300    {
301       11,   12,   13,   14,   12,   12,   15,   12,   12,   12,
302       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
303       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
304       12,   12,   12,   12,   12,   12,   12
305    },
306
307    {
308       11,   12,   13,   14,   12,   12,   15,   12,   12,   12,
309       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
310
311       12,   12,   12,   12,   12,   12,   12,   12,   12,   12,
312       12,   12,   12,   12,   12,   12,   12
313    },
314
315    {
316       11,   16,   16,   17,   16,   16,   16,   16,   16,   16,
317       16,   16,   16,   18,   16,   16,   18,   19,   20,   21,
318       22,   18,   18,   23,   24,   18,   25,   18,   26,   27,
319       18,   28,   29,   30,   18,   18,   16
320    },
321
322    {
323       11,   16,   16,   17,   16,   16,   16,   16,   16,   16,
324       16,   16,   16,   18,   16,   16,   18,   19,   20,   21,
325       22,   18,   18,   23,   24,   18,   25,   18,   26,   27,
326       18,   28,   29,   30,   18,   18,   16
327
328    },
329
330    {
331       11,   31,   32,   33,   31,   31,   31,   31,   31,   31,
332       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
333       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
334       31,   31,   31,   31,   31,   31,   31
335    },
336
337    {
338       11,   31,   32,   33,   31,   31,   31,   31,   31,   31,
339       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
340       31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
341       31,   31,   31,   31,   31,   31,   31
342    },
343
344    {
345       11,   34,   34,   35,   34,   36,   34,   34,   36,   34,
346       34,   34,   34,   34,   34,   37,   34,   34,   34,   34,
347
348       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
349       34,   34,   34,   34,   34,   34,   34
350    },
351
352    {
353       11,   34,   34,   35,   34,   36,   34,   34,   36,   34,
354       34,   34,   34,   34,   34,   37,   34,   34,   34,   34,
355       34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
356       34,   34,   34,   34,   34,   34,   34
357    },
358
359    {
360       11,   38,   38,   39,   40,   41,   38,   42,   41,   43,
361       44,   45,   46,   46,   47,   38,   46,   46,   46,   46,
362       46,   46,   46,   46,   48,   46,   46,   46,   49,   46,
363       46,   46,   46,   46,   46,   46,   50
364
365    },
366
367    {
368       11,   38,   38,   39,   40,   41,   38,   42,   41,   43,
369       44,   45,   46,   46,   47,   38,   46,   46,   46,   46,
370       46,   46,   46,   46,   48,   46,   46,   46,   49,   46,
371       46,   46,   46,   46,   46,   46,   50
372    },
373
374    {
375      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
376      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
377      -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,  -11,
378      -11,  -11,  -11,  -11,  -11,  -11,  -11
379    },
380
381    {
382       11,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
383      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
384
385      -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,  -12,
386      -12,  -12,  -12,  -12,  -12,  -12,  -12
387    },
388
389    {
390       11,  -13,   51,   52,  -13,  -13,   53,  -13,  -13,  -13,
391      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
392      -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,  -13,
393      -13,  -13,  -13,  -13,  -13,  -13,  -13
394    },
395
396    {
397       11,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
398      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
399      -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,  -14,
400      -14,  -14,  -14,  -14,  -14,  -14,  -14
401
402    },
403
404    {
405       11,   54,   54,   55,   54,   54,   54,   54,   54,   54,
406       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
407       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
408       54,   54,   54,   54,   54,   54,   54
409    },
410
411    {
412       11,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
413      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
414      -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,  -16,
415      -16,  -16,  -16,  -16,  -16,  -16,  -16
416    },
417
418    {
419       11,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
420      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
421
422      -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,  -17,
423      -17,  -17,  -17,  -17,  -17,  -17,  -17
424    },
425
426    {
427       11,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,  -18,
428      -18,  -18,  -18,   56,  -18,  -18,   56,   56,   56,   56,
429       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
430       56,   56,   56,   56,   56,   56,  -18
431    },
432
433    {
434       11,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,  -19,
435      -19,  -19,  -19,   56,  -19,  -19,   56,   56,   56,   56,
436       56,   56,   56,   56,   56,   56,   56,   56,   57,   56,
437       56,   56,   56,   56,   56,   56,  -19
438
439    },
440
441    {
442       11,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,  -20,
443      -20,  -20,  -20,   56,  -20,  -20,   56,   56,   56,   56,
444       56,   56,   56,   58,   56,   56,   56,   56,   59,   56,
445       56,   56,   56,   56,   56,   56,  -20
446    },
447
448    {
449       11,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,  -21,
450      -21,  -21,  -21,   56,  -21,  -21,   56,   56,   56,   56,
451       60,   56,   56,   56,   56,   56,   56,   56,   56,   56,
452       56,   56,   56,   56,   56,   56,  -21
453    },
454
455    {
456       11,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,  -22,
457      -22,  -22,  -22,   56,  -22,  -22,   56,   56,   56,   56,
458
459       56,   56,   56,   56,   56,   56,   56,   61,   56,   56,
460       56,   56,   56,   56,   56,   56,  -22
461    },
462
463    {
464       11,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,  -23,
465      -23,  -23,  -23,   56,  -23,  -23,   56,   56,   56,   56,
466       62,   56,   56,   56,   56,   56,   56,   56,   56,   56,
467       56,   56,   56,   56,   56,   56,  -23
468    },
469
470    {
471       11,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,  -24,
472      -24,  -24,  -24,   56,  -24,  -24,   56,   56,   56,   56,
473       56,   63,   56,   56,   56,   56,   56,   64,   56,   56,
474       56,   56,   56,   56,   56,   56,  -24
475
476    },
477
478    {
479       11,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,  -25,
480      -25,  -25,  -25,   56,  -25,  -25,   65,   56,   56,   56,
481       66,   56,   56,   56,   56,   56,   56,   56,   56,   56,
482       56,   56,   56,   56,   56,   56,  -25
483    },
484
485    {
486       11,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,  -26,
487      -26,  -26,  -26,   56,  -26,  -26,   56,   56,   56,   56,
488       56,   56,   56,   56,   56,   56,   56,   56,   56,   67,
489       56,   56,   56,   56,   56,   56,  -26
490    },
491
492    {
493       11,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,  -27,
494      -27,  -27,  -27,   56,  -27,  -27,   56,   56,   56,   56,
495
496       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
497       56,   68,   56,   56,   56,   56,  -27
498    },
499
500    {
501       11,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,  -28,
502      -28,  -28,  -28,   56,  -28,  -28,   56,   56,   56,   56,
503       69,   56,   56,   56,   56,   56,   56,   56,   56,   56,
504       56,   56,   56,   56,   56,   56,  -28
505    },
506
507    {
508       11,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,  -29,
509      -29,  -29,  -29,   56,  -29,  -29,   56,   56,   56,   56,
510       56,   56,   56,   56,   56,   56,   56,   56,   70,   56,
511       56,   56,   56,   71,   56,   56,  -29
512
513    },
514
515    {
516       11,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,  -30,
517      -30,  -30,  -30,   56,  -30,  -30,   56,   56,   56,   56,
518       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
519       56,   72,   56,   56,   56,   56,  -30
520    },
521
522    {
523       11,   73,   73,  -31,   73,   73,   73,   73,   73,   73,
524       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
525       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
526       73,   73,   73,   73,   73,   73,   73
527    },
528
529    {
530       11,  -32,   74,   75,  -32,  -32,  -32,  -32,  -32,  -32,
531      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
532
533      -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,  -32,
534      -32,  -32,  -32,  -32,  -32,  -32,  -32
535    },
536
537    {
538       11,   76,  -33,  -33,   76,   76,   76,   76,   76,   76,
539       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
540       76,   76,   76,   76,   76,   76,   76,   76,   76,   76,
541       76,   76,   76,   76,   76,   76,   76
542    },
543
544    {
545       11,   77,   77,   78,   77,  -34,   77,   77,  -34,   77,
546       77,   77,   77,   77,   77,  -34,   77,   77,   77,   77,
547       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
548       77,   77,   77,   77,   77,   77,   77
549
550    },
551
552    {
553       11,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
554      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
555      -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,  -35,
556      -35,  -35,  -35,  -35,  -35,  -35,  -35
557    },
558
559    {
560       11,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
561      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
562      -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,  -36,
563      -36,  -36,  -36,  -36,  -36,  -36,  -36
564    },
565
566    {
567       11,   79,   79,   80,   79,   79,   79,   79,   79,   79,
568       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
569
570       79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
571       79,   79,   79,   79,   79,   79,   79
572    },
573
574    {
575       11,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
576      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
577      -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,  -38,
578      -38,  -38,  -38,  -38,  -38,  -38,  -38
579    },
580
581    {
582       11,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
583      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
584      -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,  -39,
585      -39,  -39,  -39,  -39,  -39,  -39,  -39
586
587    },
588
589    {
590       11,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
591      -40,  -40,  -40,  -40,   81,  -40,  -40,  -40,  -40,  -40,
592      -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,  -40,
593      -40,  -40,  -40,  -40,  -40,  -40,  -40
594    },
595
596    {
597       11,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
598      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
599      -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,  -41,
600      -41,  -41,  -41,  -41,  -41,  -41,  -41
601    },
602
603    {
604       11,  -42,  -42,  -42,  -42,  -42,  -42,   82,  -42,  -42,
605      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
606
607      -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,  -42,
608      -42,  -42,  -42,  -42,  -42,  -42,  -42
609    },
610
611    {
612       11,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
613      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
614      -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,  -43,
615      -43,  -43,  -43,  -43,  -43,  -43,  -43
616    },
617
618    {
619       11,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
620      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
621      -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,  -44,
622      -44,  -44,  -44,  -44,  -44,  -44,  -44
623
624    },
625
626    {
627       11,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,  -45,
628      -45,   83,   84,   84,  -45,  -45,   84,   84,   84,   84,
629       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
630       84,   84,   84,   84,   84,   84,  -45
631    },
632
633    {
634       11,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,  -46,
635      -46,   84,   84,   84,  -46,  -46,   84,   84,   84,   84,
636       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
637       84,   84,   84,   84,   84,   84,  -46
638    },
639
640    {
641       11,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
642      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
643
644      -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,  -47,
645      -47,  -47,  -47,  -47,  -47,  -47,  -47
646    },
647
648    {
649       11,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,  -48,
650      -48,   84,   84,   84,  -48,  -48,   84,   84,   84,   84,
651       84,   85,   84,   84,   84,   84,   84,   84,   84,   84,
652       84,   84,   84,   84,   84,   84,  -48
653    },
654
655    {
656       11,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,  -49,
657      -49,   84,   84,   84,  -49,  -49,   84,   84,   84,   84,
658       84,   84,   84,   84,   84,   84,   84,   86,   84,   84,
659       84,   84,   84,   84,   84,   84,  -49
660
661    },
662
663    {
664       11,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
665      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
666      -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,  -50,
667      -50,  -50,  -50,  -50,  -50,  -50,   87
668    },
669
670    {
671       11,  -51,   51,   52,  -51,  -51,   53,  -51,  -51,  -51,
672      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
673      -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,  -51,
674      -51,  -51,  -51,  -51,  -51,  -51,  -51
675    },
676
677    {
678       11,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
679      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
680
681      -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,  -52,
682      -52,  -52,  -52,  -52,  -52,  -52,  -52
683    },
684
685    {
686       11,   54,   54,   55,   54,   54,   54,   54,   54,   54,
687       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
688       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
689       54,   54,   54,   54,   54,   54,   54
690    },
691
692    {
693       11,   54,   54,   55,   54,   54,   54,   54,   54,   54,
694       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
695       54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
696       54,   54,   54,   54,   54,   54,   54
697
698    },
699
700    {
701       11,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
702      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
703      -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,  -55,
704      -55,  -55,  -55,  -55,  -55,  -55,  -55
705    },
706
707    {
708       11,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,  -56,
709      -56,  -56,  -56,   56,  -56,  -56,   56,   56,   56,   56,
710       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
711       56,   56,   56,   56,   56,   56,  -56
712    },
713
714    {
715       11,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,  -57,
716      -57,  -57,  -57,   56,  -57,  -57,   56,   56,   56,   56,
717
718       56,   56,   56,   56,   56,   56,   56,   56,   88,   56,
719       56,   56,   56,   56,   56,   56,  -57
720    },
721
722    {
723       11,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,  -58,
724      -58,  -58,  -58,   56,  -58,  -58,   56,   56,   56,   56,
725       56,   56,   56,   56,   56,   56,   56,   56,   89,   56,
726       56,   56,   56,   56,   56,   56,  -58
727    },
728
729    {
730       11,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,  -59,
731      -59,  -59,  -59,   56,  -59,  -59,   56,   56,   56,   56,
732       56,   56,   56,   56,   56,   56,   90,   91,   56,   56,
733       56,   56,   56,   56,   56,   56,  -59
734
735    },
736
737    {
738       11,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,  -60,
739      -60,  -60,  -60,   56,  -60,  -60,   56,   56,   56,   56,
740       56,   92,   56,   56,   56,   56,   56,   56,   56,   93,
741       56,   56,   56,   56,   56,   56,  -60
742    },
743
744    {
745       11,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,  -61,
746      -61,  -61,  -61,   56,  -61,  -61,   56,   56,   56,   94,
747       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
748       56,   56,   56,   56,   56,   56,  -61
749    },
750
751    {
752       11,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,  -62,
753      -62,  -62,  -62,   56,  -62,  -62,   56,   56,   56,   56,
754
755       56,   56,   56,   56,   56,   95,   56,   56,   56,   56,
756       56,   56,   56,   56,   56,   96,  -62
757    },
758
759    {
760       11,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,  -63,
761      -63,  -63,  -63,   56,  -63,  -63,   56,   56,   56,   56,
762       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
763       56,   56,   56,   56,   56,   56,  -63
764    },
765
766    {
767       11,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,  -64,
768      -64,  -64,  -64,   56,  -64,  -64,   56,   56,   56,   56,
769       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
770       56,   56,   56,   97,   56,   56,  -64
771
772    },
773
774    {
775       11,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,  -65,
776      -65,  -65,  -65,   56,  -65,  -65,   56,   56,   56,   56,
777       56,   56,   56,   56,   98,   56,   56,   56,   56,   56,
778       56,   56,   56,   56,   56,   56,  -65
779    },
780
781    {
782       11,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,  -66,
783      -66,  -66,  -66,   56,  -66,  -66,   56,   56,   56,   56,
784       56,   56,   56,   56,   56,   56,   56,   99,   56,   56,
785       56,   56,   56,   56,   56,   56,  -66
786    },
787
788    {
789       11,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,  -67,
790      -67,  -67,  -67,   56,  -67,  -67,   56,   56,   56,   56,
791
792       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
793       56,   56,   56,  100,   56,   56,  -67
794    },
795
796    {
797       11,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,  -68,
798      -68,  -68,  -68,   56,  -68,  -68,   56,   56,   56,   56,
799       56,   56,   56,   56,   56,   56,   56,   56,  101,   56,
800       56,   56,   56,   56,   56,   56,  -68
801    },
802
803    {
804       11,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,  -69,
805      -69,  -69,  -69,   56,  -69,  -69,   56,   56,   56,   56,
806       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
807      102,   56,   56,   56,   56,   56,  -69
808
809    },
810
811    {
812       11,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,  -70,
813      -70,  -70,  -70,   56,  -70,  -70,   56,   56,   56,   56,
814       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
815       56,   56,   56,   56,  103,   56,  -70
816    },
817
818    {
819       11,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,  -71,
820      -71,  -71,  -71,   56,  -71,  -71,   56,   56,   56,   56,
821       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
822       56,  104,   56,   56,   56,   56,  -71
823    },
824
825    {
826       11,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,  -72,
827      -72,  -72,  -72,   56,  -72,  -72,   56,   56,   56,   56,
828
829       56,   56,   56,   56,  105,   56,   56,   56,   56,   56,
830       56,   56,   56,   56,   56,   56,  -72
831    },
832
833    {
834       11,   73,   73,  -73,   73,   73,   73,   73,   73,   73,
835       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
836       73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
837       73,   73,   73,   73,   73,   73,   73
838    },
839
840    {
841       11,  -74,   74,   75,  -74,  -74,  -74,  -74,  -74,  -74,
842      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
843      -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
844      -74,  -74,  -74,  -74,  -74,  -74,  -74
845
846    },
847
848    {
849       11,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
850      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
851      -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,  -75,
852      -75,  -75,  -75,  -75,  -75,  -75,  -75
853    },
854
855    {
856       11,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
857      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
858      -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,  -76,
859      -76,  -76,  -76,  -76,  -76,  -76,  -76
860    },
861
862    {
863       11,   77,   77,   78,   77,  -77,   77,   77,  -77,   77,
864       77,   77,   77,   77,   77,  -77,   77,   77,   77,   77,
865
866       77,   77,   77,   77,   77,   77,   77,   77,   77,   77,
867       77,   77,   77,   77,   77,   77,   77
868    },
869
870    {
871       11,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
872      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
873      -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,  -78,
874      -78,  -78,  -78,  -78,  -78,  -78,  -78
875    },
876
877    {
878       11,  -79,  -79,   80,  -79,  -79,  -79,  -79,  -79,  -79,
879      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
880      -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,  -79,
881      -79,  -79,  -79,  -79,  -79,  -79,  -79
882
883    },
884
885    {
886       11,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
887      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
888      -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,  -80,
889      -80,  -80,  -80,  -80,  -80,  -80,  -80
890    },
891
892    {
893       11,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
894      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
895      -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,  -81,
896      -81,  -81,  -81,  -81,  -81,  -81,  -81
897    },
898
899    {
900       11,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
901      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
902
903      -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,  -82,
904      -82,  -82,  -82,  -82,  -82,  -82,  -82
905    },
906
907    {
908       11,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,  -83,
909      -83,  106,   84,   84,  -83,  -83,   84,   84,   84,   84,
910       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
911       84,   84,   84,   84,   84,   84,  -83
912    },
913
914    {
915       11,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,  -84,
916      -84,   84,   84,   84,  -84,  -84,   84,   84,   84,   84,
917       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
918       84,   84,   84,   84,   84,   84,  -84
919
920    },
921
922    {
923       11,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,  -85,
924      -85,   84,   84,   84,  -85,  -85,   84,   84,   84,   84,
925       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
926       84,   84,   84,   84,   84,   84,  -85
927    },
928
929    {
930       11,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,  -86,
931      -86,   84,   84,   84,  -86,  -86,   84,   84,   84,   84,
932       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
933       84,   84,   84,   84,   84,   84,  -86
934    },
935
936    {
937       11,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
938      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
939
940      -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,  -87,
941      -87,  -87,  -87,  -87,  -87,  -87,  -87
942    },
943
944    {
945       11,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,  -88,
946      -88,  -88,  -88,   56,  -88,  -88,   56,   56,   56,   56,
947       56,   56,   56,   56,   56,  107,   56,   56,   56,   56,
948       56,   56,   56,   56,   56,   56,  -88
949    },
950
951    {
952       11,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,  -89,
953      -89,  -89,  -89,   56,  -89,  -89,   56,   56,   56,   56,
954       56,   56,   56,   56,  108,   56,   56,   56,   56,   56,
955       56,   56,   56,   56,   56,   56,  -89
956
957    },
958
959    {
960       11,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,  -90,
961      -90,  -90,  -90,   56,  -90,  -90,   56,   56,   56,   56,
962       56,   56,   56,   56,   56,   56,  109,   56,   56,   56,
963       56,   56,   56,   56,   56,   56,  -90
964    },
965
966    {
967       11,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,  -91,
968      -91,  -91,  -91,   56,  -91,  -91,   56,   56,   56,   56,
969       56,  110,   56,   56,   56,   56,   56,   56,   56,   56,
970       56,   56,   56,   56,   56,   56,  -91
971    },
972
973    {
974       11,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,  -92,
975      -92,  -92,  -92,   56,  -92,  -92,  111,   56,   56,   56,
976
977       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
978       56,   56,   56,   56,   56,   56,  -92
979    },
980
981    {
982       11,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,  -93,
983      -93,  -93,  -93,   56,  -93,  -93,   56,   56,   56,   56,
984      112,   56,   56,   56,   56,   56,   56,   56,   56,   56,
985       56,   56,   56,   56,   56,   56,  -93
986    },
987
988    {
989       11,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,  -94,
990      -94,  -94,  -94,   56,  -94,  -94,   56,   56,  113,   56,
991       56,   56,   56,   56,  114,   56,  115,   56,   56,   56,
992       56,   56,   56,   56,   56,   56,  -94
993
994    },
995
996    {
997       11,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,  -95,
998      -95,  -95,  -95,   56,  -95,  -95,   56,   56,   56,   56,
999       56,   56,   56,   56,   56,   56,   56,   56,   56,  116,
1000       56,   56,   56,   56,   56,   56,  -95
1001    },
1002
1003    {
1004       11,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,  -96,
1005      -96,  -96,  -96,   56,  -96,  -96,   56,   56,   56,   56,
1006       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1007       56,   56,   56,   56,   56,   56,  -96
1008    },
1009
1010    {
1011       11,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,  -97,
1012      -97,  -97,  -97,   56,  -97,  -97,   56,   56,   56,   56,
1013
1014       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1015       56,   56,   56,   56,   56,   56,  -97
1016    },
1017
1018    {
1019       11,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,  -98,
1020      -98,  -98,  -98,   56,  -98,  -98,   56,   56,   56,   56,
1021       56,   56,   56,   56,   56,   56,   56,  117,   56,   56,
1022       56,   56,   56,   56,   56,   56,  -98
1023    },
1024
1025    {
1026       11,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,  -99,
1027      -99,  -99,  -99,   56,  -99,  -99,   56,   56,   56,   56,
1028       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1029       56,   56,   56,   56,  118,   56,  -99
1030
1031    },
1032
1033    {
1034       11, -100, -100, -100, -100, -100, -100, -100, -100, -100,
1035     -100, -100, -100,   56, -100, -100,   56,   56,   56,   56,
1036       56,   56,   56,   56,  119,   56,   56,   56,   56,   56,
1037       56,   56,   56,   56,   56,   56, -100
1038    },
1039
1040    {
1041       11, -101, -101, -101, -101, -101, -101, -101, -101, -101,
1042     -101, -101, -101,   56, -101, -101,   56,   56,   56,   56,
1043       56,   56,   56,   56,   56,   56,  120,   56,   56,   56,
1044       56,   56,   56,   56,   56,   56, -101
1045    },
1046
1047    {
1048       11, -102, -102, -102, -102, -102, -102, -102, -102, -102,
1049     -102, -102, -102,   56, -102, -102,   56,   56,   56,   56,
1050
1051       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1052       56,   56,   56,   56,  121,   56, -102
1053    },
1054
1055    {
1056       11, -103, -103, -103, -103, -103, -103, -103, -103, -103,
1057     -103, -103, -103,   56, -103, -103,   56,   56,   56,   56,
1058       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1059       56,  122,   56,   56,   56,   56, -103
1060    },
1061
1062    {
1063       11, -104, -104, -104, -104, -104, -104, -104, -104, -104,
1064     -104, -104, -104,   56, -104, -104,   56,   56,   56,   56,
1065       56,   56,   56,   56,  123,   56,   56,   56,   56,   56,
1066       56,   56,   56,   56,   56,   56, -104
1067
1068    },
1069
1070    {
1071       11, -105, -105, -105, -105, -105, -105, -105, -105, -105,
1072     -105, -105, -105,   56, -105, -105,   56,   56,   56,   56,
1073       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1074       56,   56,  124,   56,   56,   56, -105
1075    },
1076
1077    {
1078       11, -106, -106, -106, -106, -106, -106, -106, -106, -106,
1079     -106,   84,   84,   84, -106, -106,   84,   84,   84,   84,
1080       84,   84,   84,   84,   84,   84,   84,   84,   84,   84,
1081       84,   84,   84,   84,   84,   84, -106
1082    },
1083
1084    {
1085       11, -107, -107, -107, -107, -107, -107, -107, -107, -107,
1086     -107, -107, -107,   56, -107, -107,   56,   56,   56,   56,
1087
1088      125,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1089       56,   56,   56,   56,   56,   56, -107
1090    },
1091
1092    {
1093       11, -108, -108, -108, -108, -108, -108, -108, -108, -108,
1094     -108, -108, -108,   56, -108, -108,   56,   56,  126,   56,
1095       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1096       56,   56,   56,   56,   56,   56, -108
1097    },
1098
1099    {
1100       11, -109, -109, -109, -109, -109, -109, -109, -109, -109,
1101     -109, -109, -109,   56, -109, -109,   56,   56,   56,   56,
1102      127,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1103       56,   56,   56,   56,   56,   56, -109
1104
1105    },
1106
1107    {
1108       11, -110, -110, -110, -110, -110, -110, -110, -110, -110,
1109     -110, -110, -110,   56, -110, -110,   56,   56,   56,   56,
1110       56,   56,   56,   56,  128,   56,   56,   56,   56,   56,
1111       56,   56,   56,   56,   56,   56, -110
1112    },
1113
1114    {
1115       11, -111, -111, -111, -111, -111, -111, -111, -111, -111,
1116     -111, -111, -111,   56, -111, -111,   56,   56,   56,   56,
1117       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1118       56,   56,   56,   56,  129,   56, -111
1119    },
1120
1121    {
1122       11, -112, -112, -112, -112, -112, -112, -112, -112, -112,
1123     -112, -112, -112,   56, -112, -112,   56,   56,   56,   56,
1124
1125       56,   56,   56,   56,   56,   56,   56,  130,   56,   56,
1126       56,   56,   56,   56,   56,   56, -112
1127    },
1128
1129    {
1130       11, -113, -113, -113, -113, -113, -113, -113, -113, -113,
1131     -113, -113, -113,   56, -113, -113,   56,   56,   56,   56,
1132       56,   56,   56,  131,   56,   56,   56,   56,   56,   56,
1133       56,   56,   56,   56,   56,   56, -113
1134    },
1135
1136    {
1137       11, -114, -114, -114, -114, -114, -114, -114, -114, -114,
1138     -114, -114, -114,   56, -114, -114,   56,   56,   56,   56,
1139       56,  132,   56,   56,   56,   56,   56,   56,   56,   56,
1140       56,   56,   56,   56,   56,   56, -114
1141
1142    },
1143
1144    {
1145       11, -115, -115, -115, -115, -115, -115, -115, -115, -115,
1146     -115, -115, -115,   56, -115, -115,   56,   56,   56,   56,
1147      133,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1148       56,   56,   56,   56,   56,   56, -115
1149    },
1150
1151    {
1152       11, -116, -116, -116, -116, -116, -116, -116, -116, -116,
1153     -116, -116, -116,   56, -116, -116,   56,   56,   56,   56,
1154       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1155       56,   56,   56,   56,   56,   56, -116
1156    },
1157
1158    {
1159       11, -117, -117, -117, -117, -117, -117, -117, -117, -117,
1160     -117, -117, -117,   56, -117, -117,   56,   56,   56,   56,
1161
1162       56,   56,   56,   56,   56,   56,  134,   56,   56,   56,
1163       56,   56,   56,   56,   56,   56, -117
1164    },
1165
1166    {
1167       11, -118, -118, -118, -118, -118, -118, -118, -118, -118,
1168     -118, -118, -118,   56, -118, -118,   56,   56,   56,   56,
1169       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1170       56,   56,   56,   56,   56,   56, -118
1171    },
1172
1173    {
1174       11, -119, -119, -119, -119, -119, -119, -119, -119, -119,
1175     -119, -119, -119,   56, -119, -119,   56,   56,   56,   56,
1176       56,   56,   56,   56,   56,   56,   56,   56,  135,   56,
1177       56,   56,   56,   56,   56,   56, -119
1178
1179    },
1180
1181    {
1182       11, -120, -120, -120, -120, -120, -120, -120, -120, -120,
1183     -120, -120, -120,   56, -120, -120,   56,   56,   56,   56,
1184       56,   56,   56,   56,   56,   56,   56,   56,   56,  136,
1185       56,   56,   56,   56,   56,   56, -120
1186    },
1187
1188    {
1189       11, -121, -121, -121, -121, -121, -121, -121, -121, -121,
1190     -121, -121, -121,   56, -121, -121,   56,   56,   56,   56,
1191       56,   56,   56,   56,  137,   56,   56,   56,   56,   56,
1192       56,   56,   56,   56,   56,   56, -121
1193    },
1194
1195    {
1196       11, -122, -122, -122, -122, -122, -122, -122, -122, -122,
1197     -122, -122, -122,   56, -122, -122,   56,   56,  138,   56,
1198
1199       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1200       56,   56,   56,   56,   56,   56, -122
1201    },
1202
1203    {
1204       11, -123, -123, -123, -123, -123, -123, -123, -123, -123,
1205     -123, -123, -123,   56, -123, -123,   56,   56,   56,   56,
1206       56,   56,   56,   56,   56,   56,   56,  139,   56,   56,
1207       56,   56,   56,   56,   56,   56, -123
1208    },
1209
1210    {
1211       11, -124, -124, -124, -124, -124, -124, -124, -124, -124,
1212     -124, -124, -124,   56, -124, -124,   56,   56,   56,   56,
1213       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1214       56,   56,   56,  140,   56,   56, -124
1215
1216    },
1217
1218    {
1219       11, -125, -125, -125, -125, -125, -125, -125, -125, -125,
1220     -125, -125, -125,   56, -125, -125,  141,   56,   56,   56,
1221       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1222       56,   56,   56,   56,   56,   56, -125
1223    },
1224
1225    {
1226       11, -126, -126, -126, -126, -126, -126, -126, -126, -126,
1227     -126, -126, -126,   56, -126, -126,   56,   56,   56,   56,
1228      142,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1229       56,   56,   56,   56,   56,   56, -126
1230    },
1231
1232    {
1233       11, -127, -127, -127, -127, -127, -127, -127, -127, -127,
1234     -127, -127, -127,   56, -127, -127,   56,   56,   56,   56,
1235
1236       56,   56,   56,   56,   56,   56,   56,  143,   56,   56,
1237       56,   56,   56,   56,   56,   56, -127
1238    },
1239
1240    {
1241       11, -128, -128, -128, -128, -128, -128, -128, -128, -128,
1242     -128, -128, -128,   56, -128, -128,   56,   56,   56,   56,
1243       56,   56,  144,   56,   56,   56,   56,   56,   56,   56,
1244       56,   56,   56,   56,   56,   56, -128
1245    },
1246
1247    {
1248       11, -129, -129, -129, -129, -129, -129, -129, -129, -129,
1249     -129, -129, -129,   56, -129, -129,   56,   56,   56,   56,
1250       56,   56,   56,   56,   56,  145,   56,   56,   56,   56,
1251       56,   56,   56,   56,   56,   56, -129
1252
1253    },
1254
1255    {
1256       11, -130, -130, -130, -130, -130, -130, -130, -130, -130,
1257     -130, -130, -130,   56, -130, -130,   56,   56,   56,  146,
1258       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1259       56,   56,   56,   56,   56,   56, -130
1260    },
1261
1262    {
1263       11, -131, -131, -131, -131, -131, -131, -131, -131, -131,
1264     -131, -131, -131,   56, -131, -131,   56,   56,   56,   56,
1265       56,   56,   56,   56,   56,   56,   56,   56,  147,   56,
1266       56,   56,   56,   56,   56,   56, -131
1267    },
1268
1269    {
1270       11, -132, -132, -132, -132, -132, -132, -132, -132, -132,
1271     -132, -132, -132,   56, -132, -132,   56,   56,   56,   56,
1272
1273       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1274       56,   56,   56,   56,   56,   56, -132
1275    },
1276
1277    {
1278       11, -133, -133, -133, -133, -133, -133, -133, -133, -133,
1279     -133, -133, -133,   56, -133, -133,   56,   56,   56,   56,
1280       56,   56,   56,   56,   56,   56,   56,  148,   56,   56,
1281       56,   56,   56,   56,   56,   56, -133
1282    },
1283
1284    {
1285       11, -134, -134, -134, -134, -134, -134, -134, -134, -134,
1286     -134, -134, -134,   56, -134, -134,   56,   56,   56,   56,
1287      149,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1288       56,   56,   56,   56,   56,   56, -134
1289
1290    },
1291
1292    {
1293       11, -135, -135, -135, -135, -135, -135, -135, -135, -135,
1294     -135, -135, -135,   56, -135, -135,   56,   56,   56,   56,
1295       56,   56,   56,   56,   56,   56,   56,  150,   56,   56,
1296       56,   56,   56,   56,   56,   56, -135
1297    },
1298
1299    {
1300       11, -136, -136, -136, -136, -136, -136, -136, -136, -136,
1301     -136, -136, -136,   56, -136, -136,   56,   56,   56,   56,
1302       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1303       56,   56,   56,  151,   56,   56, -136
1304    },
1305
1306    {
1307       11, -137, -137, -137, -137, -137, -137, -137, -137, -137,
1308     -137, -137, -137,   56, -137, -137,   56,   56,   56,   56,
1309
1310       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1311       56,  152,   56,   56,   56,   56, -137
1312    },
1313
1314    {
1315       11, -138, -138, -138, -138, -138, -138, -138, -138, -138,
1316     -138, -138, -138,   56, -138, -138,   56,   56,   56,   56,
1317      153,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1318       56,   56,   56,   56,   56,   56, -138
1319    },
1320
1321    {
1322       11, -139, -139, -139, -139, -139, -139, -139, -139, -139,
1323     -139, -139, -139,   56, -139, -139,   56,   56,   56,   56,
1324       56,   56,  154,   56,   56,   56,   56,   56,   56,   56,
1325       56,   56,   56,   56,   56,   56, -139
1326
1327    },
1328
1329    {
1330       11, -140, -140, -140, -140, -140, -140, -140, -140, -140,
1331     -140, -140, -140,   56, -140, -140,  155,   56,   56,   56,
1332       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1333       56,   56,   56,   56,   56,   56, -140
1334    },
1335
1336    {
1337       11, -141, -141, -141, -141, -141, -141, -141, -141, -141,
1338     -141, -141, -141,   56, -141, -141,   56,   56,   56,   56,
1339       56,   56,   56,   56,   56,   56,   56,  156,   56,   56,
1340       56,   56,   56,   56,   56,   56, -141
1341    },
1342
1343    {
1344       11, -142, -142, -142, -142, -142, -142, -142, -142, -142,
1345     -142, -142, -142,   56, -142, -142,   56,   56,   56,   56,
1346
1347       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1348       56,   56,   56,   56,   56,   56, -142
1349    },
1350
1351    {
1352       11, -143, -143, -143, -143, -143, -143, -143, -143, -143,
1353     -143, -143, -143,   56, -143, -143,   56,   56,   56,   56,
1354       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1355       56,   56,   56,  157,   56,   56, -143
1356    },
1357
1358    {
1359       11, -144, -144, -144, -144, -144, -144, -144, -144, -144,
1360     -144, -144, -144,   56, -144, -144,   56,   56,   56,   56,
1361       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1362       56,   56,   56,   56,   56,   56, -144
1363
1364    },
1365
1366    {
1367       11, -145, -145, -145, -145, -145, -145, -145, -145, -145,
1368     -145, -145, -145,   56, -145, -145,   56,   56,   56,   56,
1369       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1370       56,   56,   56,  158,   56,   56, -145
1371    },
1372
1373    {
1374       11, -146, -146, -146, -146, -146, -146, -146, -146, -146,
1375     -146, -146, -146,   56, -146, -146,   56,   56,   56,   56,
1376       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1377       56,   56,  159,   56,   56,   56, -146
1378    },
1379
1380    {
1381       11, -147, -147, -147, -147, -147, -147, -147, -147, -147,
1382     -147, -147, -147,   56, -147, -147,   56,   56,   56,   56,
1383
1384       56,   56,   56,   56,  160,   56,   56,   56,   56,   56,
1385       56,   56,   56,   56,   56,   56, -147
1386    },
1387
1388    {
1389       11, -148, -148, -148, -148, -148, -148, -148, -148, -148,
1390     -148, -148, -148,   56, -148, -148,   56,   56,   56,   56,
1391       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1392       56,   56,   56,   56,  161,   56, -148
1393    },
1394
1395    {
1396       11, -149, -149, -149, -149, -149, -149, -149, -149, -149,
1397     -149, -149, -149,   56, -149, -149,   56,   56,   56,   56,
1398       56,   56,   56,   56,   56,   56,   56,  162,   56,   56,
1399       56,   56,   56,   56,   56,   56, -149
1400
1401    },
1402
1403    {
1404       11, -150, -150, -150, -150, -150, -150, -150, -150, -150,
1405     -150, -150, -150,   56, -150, -150,  163,   56,   56,   56,
1406       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1407       56,   56,   56,   56,   56,   56, -150
1408    },
1409
1410    {
1411       11, -151, -151, -151, -151, -151, -151, -151, -151, -151,
1412     -151, -151, -151,   56, -151, -151,   56,   56,   56,   56,
1413       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1414       56,   56,   56,   56,   56,   56, -151
1415    },
1416
1417    {
1418       11, -152, -152, -152, -152, -152, -152, -152, -152, -152,
1419     -152, -152, -152,   56, -152, -152,   56,   56,   56,   56,
1420
1421      164,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1422       56,   56,   56,   56,   56,   56, -152
1423    },
1424
1425    {
1426       11, -153, -153, -153, -153, -153, -153, -153, -153, -153,
1427     -153, -153, -153,   56, -153, -153,   56,   56,   56,   56,
1428       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1429       56,   56,   56,   56,   56,   56, -153
1430    },
1431
1432    {
1433       11, -154, -154, -154, -154, -154, -154, -154, -154, -154,
1434     -154, -154, -154,   56, -154, -154,   56,   56,   56,   56,
1435       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1436       56,   56,   56,   56,   56,   56, -154
1437
1438    },
1439
1440    {
1441       11, -155, -155, -155, -155, -155, -155, -155, -155, -155,
1442     -155, -155, -155,   56, -155, -155,   56,   56,   56,   56,
1443       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1444       56,   56,   56,  165,   56,   56, -155
1445    },
1446
1447    {
1448       11, -156, -156, -156, -156, -156, -156, -156, -156, -156,
1449     -156, -156, -156,   56, -156, -156,   56,   56,   56,   56,
1450       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1451       56,   56,   56,   56,   56,   56, -156
1452    },
1453
1454    {
1455       11, -157, -157, -157, -157, -157, -157, -157, -157, -157,
1456     -157, -157, -157,   56, -157, -157,   56,   56,   56,   56,
1457
1458       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1459       56,   56,   56,   56,   56,   56, -157
1460    },
1461
1462    {
1463       11, -158, -158, -158, -158, -158, -158, -158, -158, -158,
1464     -158, -158, -158,   56, -158, -158,   56,   56,   56,   56,
1465       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1466       56,   56,   56,   56,   56,   56, -158
1467    },
1468
1469    {
1470       11, -159, -159, -159, -159, -159, -159, -159, -159, -159,
1471     -159, -159, -159,   56, -159, -159,   56,   56,   56,   56,
1472       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1473       56,   56,   56,   56,   56,   56, -159
1474
1475    },
1476
1477    {
1478       11, -160, -160, -160, -160, -160, -160, -160, -160, -160,
1479     -160, -160, -160,   56, -160, -160,   56,   56,  166,   56,
1480       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1481       56,   56,   56,   56,   56,   56, -160
1482    },
1483
1484    {
1485       11, -161, -161, -161, -161, -161, -161, -161, -161, -161,
1486     -161, -161, -161,   56, -161, -161,   56,   56,   56,   56,
1487       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1488       56,   56,   56,   56,   56,   56, -161
1489    },
1490
1491    {
1492       11, -162, -162, -162, -162, -162, -162, -162, -162, -162,
1493     -162, -162, -162,   56, -162, -162,   56,   56,   56,   56,
1494
1495       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1496       56,   56,   56,   56,  167,   56, -162
1497    },
1498
1499    {
1500       11, -163, -163, -163, -163, -163, -163, -163, -163, -163,
1501     -163, -163, -163,   56, -163, -163,   56,   56,   56,   56,
1502       56,   56,   56,   56,   56,  168,   56,   56,   56,   56,
1503       56,   56,   56,   56,   56,   56, -163
1504    },
1505
1506    {
1507       11, -164, -164, -164, -164, -164, -164, -164, -164, -164,
1508     -164, -164, -164,   56, -164, -164,   56,   56,   56,   56,
1509       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1510       56,   56,  169,   56,   56,   56, -164
1511
1512    },
1513
1514    {
1515       11, -165, -165, -165, -165, -165, -165, -165, -165, -165,
1516     -165, -165, -165,   56, -165, -165,   56,   56,   56,   56,
1517      170,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1518       56,   56,   56,   56,   56,   56, -165
1519    },
1520
1521    {
1522       11, -166, -166, -166, -166, -166, -166, -166, -166, -166,
1523     -166, -166, -166,   56, -166, -166,   56,   56,   56,   56,
1524      171,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1525       56,   56,   56,   56,   56,   56, -166
1526    },
1527
1528    {
1529       11, -167, -167, -167, -167, -167, -167, -167, -167, -167,
1530     -167, -167, -167,   56, -167, -167,   56,   56,   56,   56,
1531
1532       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1533       56,   56,   56,   56,   56,   56, -167
1534    },
1535
1536    {
1537       11, -168, -168, -168, -168, -168, -168, -168, -168, -168,
1538     -168, -168, -168,   56, -168, -168,   56,   56,   56,   56,
1539       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1540       56,   56,   56,   56,   56,   56, -168
1541    },
1542
1543    {
1544       11, -169, -169, -169, -169, -169, -169, -169, -169, -169,
1545     -169, -169, -169,   56, -169, -169,   56,   56,   56,   56,
1546       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1547       56,   56,   56,   56,   56,   56, -169
1548
1549    },
1550
1551    {
1552       11, -170, -170, -170, -170, -170, -170, -170, -170, -170,
1553     -170, -170, -170,   56, -170, -170,   56,   56,   56,   56,
1554       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1555       56,   56,   56,   56,   56,   56, -170
1556    },
1557
1558    {
1559       11, -171, -171, -171, -171, -171, -171, -171, -171, -171,
1560     -171, -171, -171,   56, -171, -171,   56,   56,   56,   56,
1561       56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1562       56,   56,   56,   56,   56,   56, -171
1563    },
1564
1565    } ;
1566
1567
1568static yy_state_type yy_get_previous_state YY_PROTO(( void ));
1569static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
1570static int yy_get_next_buffer YY_PROTO(( void ));
1571static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
1572
1573/* Done after the current pattern has been matched and before the
1574 * corresponding action - sets up yytext.
1575 */
1576#define YY_DO_BEFORE_ACTION \
1577	yytext_ptr = yy_bp; \
1578	yyleng = (int) (yy_cp - yy_bp); \
1579	yy_hold_char = *yy_cp; \
1580	*yy_cp = '\0'; \
1581	yy_c_buf_p = yy_cp;
1582
1583#define YY_NUM_RULES 55
1584#define YY_END_OF_BUFFER 56
1585static yyconst short int yy_accept[172] =
1586    {   0,
1587        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1588       56,    5,    4,    3,    2,   29,   30,   28,   28,   28,
1589       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
1590       54,   51,   53,   46,   50,   49,   48,   44,   41,   35,
1591       40,   44,   33,   34,   43,   43,   36,   43,   43,   44,
1592        4,    3,    2,    2,    1,   28,   28,   28,   28,   28,
1593       28,   28,   15,   28,   28,   28,   28,   28,   28,   28,
1594       28,   28,   54,   51,   53,   52,   46,   45,   48,   47,
1595       37,   31,   43,   43,   38,   39,   32,   28,   28,   28,
1596       28,   28,   28,   28,   28,   26,   25,   28,   28,   28,
1597
1598       28,   28,   28,   28,   28,   42,   23,   28,   28,   28,
1599       28,   28,   28,   28,   28,   14,   28,    7,   28,   28,
1600       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
1601       28,   16,   28,   28,   28,   28,   28,   28,   28,   28,
1602       28,   10,   28,   13,   28,   28,   28,   28,   28,   28,
1603       21,   28,    9,   27,   28,   24,   12,   20,   17,   28,
1604        8,   28,   28,   28,   28,   28,    6,   19,   18,   22,
1605       11
1606    } ;
1607
1608static yyconst int yy_ec[256] =
1609    {   0,
1610        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
1611        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1612        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1613        1,    2,    4,    5,    6,    1,    1,    7,    8,    9,
1614       10,    1,    1,    1,   11,   12,   12,   13,   13,   13,
1615       13,   13,   13,   13,   13,   13,   13,    1,    1,    1,
1616       14,    1,    1,    1,   13,   13,   13,   13,   13,   13,
1617       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1618       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1619        1,   15,    1,    1,   13,    1,   16,   17,   18,   19,
1620
1621       20,   21,   22,   23,   24,   13,   13,   25,   26,   27,
1622       28,   29,   30,   31,   32,   33,   34,   13,   13,   35,
1623       13,   13,    1,   36,    1,    1,    1,    1,    1,    1,
1624        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1625        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1626        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1627        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1628        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1629        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1630        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1631
1632        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1633        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1634        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1635        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1636        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1637        1,    1,    1,    1,    1
1638    } ;
1639
1640/* The intent behind this definition is that it'll catch
1641 * any uses of REJECT which flex missed.
1642 */
1643#define REJECT reject_used_but_not_detected
1644#define yymore() yymore_used_but_not_detected
1645#define YY_MORE_ADJ 0
1646#define YY_RESTORE_YY_MORE_OFFSET
1647char *yytext;
1648#line 1 "zconf.l"
1649#define INITIAL 0
1650#define YY_NEVER_INTERACTIVE 1
1651#define COMMAND 1
1652#define HELP 2
1653#define STRING 3
1654#define PARAM 4
1655
1656#line 5 "zconf.l"
1657/*
1658 * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
1659 * Released under the terms of the GNU GPL v2.0.
1660 */
1661
1662#include <stdio.h>
1663#include <stdlib.h>
1664#include <string.h>
1665#include <unistd.h>
1666
1667#define LKC_DIRECT_LINK
1668#include "lkc.h"
1669#include "zconf.tab.h"
1670
1671#define START_STRSIZE	16
1672
1673char *text;
1674static char *text_ptr;
1675static int text_size, text_asize;
1676
1677struct buffer {
1678        struct buffer *parent;
1679        YY_BUFFER_STATE state;
1680};
1681
1682struct buffer *current_buf;
1683
1684static int last_ts, first_ts;
1685
1686static void zconf_endhelp(void);
1687static struct buffer *zconf_endfile(void);
1688
1689void new_string(void)
1690{
1691	text = malloc(START_STRSIZE);
1692	text_asize = START_STRSIZE;
1693	text_ptr = text;
1694	text_size = 0;
1695	*text_ptr = 0;
1696}
1697
1698void append_string(const char *str, int size)
1699{
1700	int new_size = text_size + size + 1;
1701	if (new_size > text_asize) {
1702		text = realloc(text, new_size);
1703		text_asize = new_size;
1704		text_ptr = text + text_size;
1705	}
1706	memcpy(text_ptr, str, size);
1707	text_ptr += size;
1708	text_size += size;
1709	*text_ptr = 0;
1710}
1711
1712void alloc_string(const char *str, int size)
1713{
1714	text = malloc(size + 1);
1715	memcpy(text, str, size);
1716	text[size] = 0;
1717}
1718#line 1719 "lex.zconf.c"
1719
1720/* Macros after this point can all be overridden by user definitions in
1721 * section 1.
1722 */
1723
1724#ifndef YY_SKIP_YYWRAP
1725#ifdef __cplusplus
1726extern "C" int yywrap YY_PROTO(( void ));
1727#else
1728extern int yywrap YY_PROTO(( void ));
1729#endif
1730#endif
1731
1732#ifndef YY_NO_UNPUT
1733static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1734#endif
1735
1736#ifndef yytext_ptr
1737static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1738#endif
1739
1740#ifdef YY_NEED_STRLEN
1741static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1742#endif
1743
1744#ifndef YY_NO_INPUT
1745#ifdef __cplusplus
1746static int yyinput YY_PROTO(( void ));
1747#else
1748static int input YY_PROTO(( void ));
1749#endif
1750#endif
1751
1752#if YY_STACK_USED
1753static int yy_start_stack_ptr = 0;
1754static int yy_start_stack_depth = 0;
1755static int *yy_start_stack = 0;
1756#ifndef YY_NO_PUSH_STATE
1757static void yy_push_state YY_PROTO(( int new_state ));
1758#endif
1759#ifndef YY_NO_POP_STATE
1760static void yy_pop_state YY_PROTO(( void ));
1761#endif
1762#ifndef YY_NO_TOP_STATE
1763static int yy_top_state YY_PROTO(( void ));
1764#endif
1765
1766#else
1767#define YY_NO_PUSH_STATE 1
1768#define YY_NO_POP_STATE 1
1769#define YY_NO_TOP_STATE 1
1770#endif
1771
1772#ifdef YY_MALLOC_DECL
1773YY_MALLOC_DECL
1774#else
1775#if __STDC__
1776#ifndef __cplusplus
1777#include <stdlib.h>
1778#endif
1779#else
1780/* Just try to get by without declaring the routines.  This will fail
1781 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1782 * or sizeof(void*) != sizeof(int).
1783 */
1784#endif
1785#endif
1786
1787/* Amount of stuff to slurp up with each read. */
1788#ifndef YY_READ_BUF_SIZE
1789#define YY_READ_BUF_SIZE 8192
1790#endif
1791
1792/* Copy whatever the last rule matched to the standard output. */
1793
1794#ifndef ECHO
1795/* This used to be an fputs(), but since the string might contain NUL's,
1796 * we now use fwrite().
1797 */
1798#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1799#endif
1800
1801/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1802 * is returned in "result".
1803 */
1804#ifndef YY_INPUT
1805#define YY_INPUT(buf,result,max_size) \
1806	errno=0; \
1807	while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
1808	{ \
1809		if( errno != EINTR) \
1810		{ \
1811			YY_FATAL_ERROR( "input in flex scanner failed" ); \
1812			break; \
1813		} \
1814		errno=0; \
1815		clearerr(yyin); \
1816	}
1817#endif
1818
1819/* No semi-colon after return; correct usage is to write "yyterminate();" -
1820 * we don't want an extra ';' after the "return" because that will cause
1821 * some compilers to complain about unreachable statements.
1822 */
1823#ifndef yyterminate
1824#define yyterminate() return YY_NULL
1825#endif
1826
1827/* Number of entries by which start-condition stack grows. */
1828#ifndef YY_START_STACK_INCR
1829#define YY_START_STACK_INCR 25
1830#endif
1831
1832/* Report a fatal error. */
1833#ifndef YY_FATAL_ERROR
1834#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1835#endif
1836
1837/* Default declaration of generated scanner - a define so the user can
1838 * easily add parameters.
1839 */
1840#ifndef YY_DECL
1841#define YY_DECL int yylex YY_PROTO(( void ))
1842#endif
1843
1844/* Code executed at the beginning of each rule, after yytext and yyleng
1845 * have been set up.
1846 */
1847#ifndef YY_USER_ACTION
1848#define YY_USER_ACTION
1849#endif
1850
1851/* Code executed at the end of each rule. */
1852#ifndef YY_BREAK
1853#define YY_BREAK break;
1854#endif
1855
1856#define YY_RULE_SETUP \
1857	YY_USER_ACTION
1858
1859YY_DECL
1860	{
1861	register yy_state_type yy_current_state;
1862	register char *yy_cp, *yy_bp;
1863	register int yy_act;
1864
1865#line 71 "zconf.l"
1866
1867	int str = 0;
1868	int ts, i;
1869
1870#line 1871 "lex.zconf.c"
1871
1872	if ( yy_init )
1873		{
1874		yy_init = 0;
1875
1876#ifdef YY_USER_INIT
1877		YY_USER_INIT;
1878#endif
1879
1880		if ( ! yy_start )
1881			yy_start = 1;	/* first start state */
1882
1883		if ( ! yyin )
1884			yyin = stdin;
1885
1886		if ( ! yyout )
1887			yyout = stdout;
1888
1889		if ( ! yy_current_buffer )
1890			yy_current_buffer =
1891				yy_create_buffer( yyin, YY_BUF_SIZE );
1892
1893		yy_load_buffer_state();
1894		}
1895
1896	while ( 1 )		/* loops until end-of-file is reached */
1897		{
1898		yy_cp = yy_c_buf_p;
1899
1900		/* Support of yytext. */
1901		*yy_cp = yy_hold_char;
1902
1903		/* yy_bp points to the position in yy_ch_buf of the start of
1904		 * the current run.
1905		 */
1906		yy_bp = yy_cp;
1907
1908		yy_current_state = yy_start;
1909yy_match:
1910		while ( (yy_current_state = yy_nxt[yy_current_state][yy_ec[YY_SC_TO_UI(*yy_cp)]]) > 0 )
1911			++yy_cp;
1912
1913		yy_current_state = -yy_current_state;
1914
1915yy_find_action:
1916		yy_act = yy_accept[yy_current_state];
1917
1918		YY_DO_BEFORE_ACTION;
1919
1920
1921do_action:	/* This label is used only to access EOF actions. */
1922
1923
1924		switch ( yy_act )
1925	{ /* beginning of action switch */
1926case 1:
1927YY_RULE_SETUP
1928#line 75 "zconf.l"
1929current_file->lineno++;
1930	YY_BREAK
1931case 2:
1932YY_RULE_SETUP
1933#line 76 "zconf.l"
1934
1935	YY_BREAK
1936case 3:
1937YY_RULE_SETUP
1938#line 78 "zconf.l"
1939current_file->lineno++; return T_EOL;
1940	YY_BREAK
1941case 4:
1942YY_RULE_SETUP
1943#line 80 "zconf.l"
1944{
1945	BEGIN(COMMAND);
1946}
1947	YY_BREAK
1948case 5:
1949YY_RULE_SETUP
1950#line 84 "zconf.l"
1951{
1952	unput(yytext[0]);
1953	BEGIN(COMMAND);
1954}
1955	YY_BREAK
1956
1957case 6:
1958YY_RULE_SETUP
1959#line 91 "zconf.l"
1960BEGIN(PARAM); return T_MAINMENU;
1961	YY_BREAK
1962case 7:
1963YY_RULE_SETUP
1964#line 92 "zconf.l"
1965BEGIN(PARAM); return T_MENU;
1966	YY_BREAK
1967case 8:
1968YY_RULE_SETUP
1969#line 93 "zconf.l"
1970BEGIN(PARAM); return T_ENDMENU;
1971	YY_BREAK
1972case 9:
1973YY_RULE_SETUP
1974#line 94 "zconf.l"
1975BEGIN(PARAM); return T_SOURCE;
1976	YY_BREAK
1977case 10:
1978YY_RULE_SETUP
1979#line 95 "zconf.l"
1980BEGIN(PARAM); return T_CHOICE;
1981	YY_BREAK
1982case 11:
1983YY_RULE_SETUP
1984#line 96 "zconf.l"
1985BEGIN(PARAM); return T_ENDCHOICE;
1986	YY_BREAK
1987case 12:
1988YY_RULE_SETUP
1989#line 97 "zconf.l"
1990BEGIN(PARAM); return T_COMMENT;
1991	YY_BREAK
1992case 13:
1993YY_RULE_SETUP
1994#line 98 "zconf.l"
1995BEGIN(PARAM); return T_CONFIG;
1996	YY_BREAK
1997case 14:
1998YY_RULE_SETUP
1999#line 99 "zconf.l"
2000BEGIN(PARAM); return T_HELP;
2001	YY_BREAK
2002case 15:
2003YY_RULE_SETUP
2004#line 100 "zconf.l"
2005BEGIN(PARAM); return T_IF;
2006	YY_BREAK
2007case 16:
2008YY_RULE_SETUP
2009#line 101 "zconf.l"
2010BEGIN(PARAM); return T_ENDIF;
2011	YY_BREAK
2012case 17:
2013YY_RULE_SETUP
2014#line 102 "zconf.l"
2015BEGIN(PARAM); return T_DEPENDS;
2016	YY_BREAK
2017case 18:
2018YY_RULE_SETUP
2019#line 103 "zconf.l"
2020BEGIN(PARAM); return T_REQUIRES;
2021	YY_BREAK
2022case 19:
2023YY_RULE_SETUP
2024#line 104 "zconf.l"
2025BEGIN(PARAM); return T_OPTIONAL;
2026	YY_BREAK
2027case 20:
2028YY_RULE_SETUP
2029#line 105 "zconf.l"
2030BEGIN(PARAM); return T_DEFAULT;
2031	YY_BREAK
2032case 21:
2033YY_RULE_SETUP
2034#line 106 "zconf.l"
2035BEGIN(PARAM); return T_PROMPT;
2036	YY_BREAK
2037case 22:
2038YY_RULE_SETUP
2039#line 107 "zconf.l"
2040BEGIN(PARAM); return T_TRISTATE;
2041	YY_BREAK
2042case 23:
2043YY_RULE_SETUP
2044#line 108 "zconf.l"
2045BEGIN(PARAM); return T_BOOLEAN;
2046	YY_BREAK
2047case 24:
2048YY_RULE_SETUP
2049#line 109 "zconf.l"
2050BEGIN(PARAM); return T_BOOLEAN;
2051	YY_BREAK
2052case 25:
2053YY_RULE_SETUP
2054#line 110 "zconf.l"
2055BEGIN(PARAM); return T_INT;
2056	YY_BREAK
2057case 26:
2058YY_RULE_SETUP
2059#line 111 "zconf.l"
2060BEGIN(PARAM); return T_HEX;
2061	YY_BREAK
2062case 27:
2063YY_RULE_SETUP
2064#line 112 "zconf.l"
2065BEGIN(PARAM); return T_STRING;
2066	YY_BREAK
2067case 28:
2068YY_RULE_SETUP
2069#line 113 "zconf.l"
2070{
2071		alloc_string(yytext, yyleng);
2072		zconflval.string = text;
2073		return T_WORD;
2074	}
2075	YY_BREAK
2076case 29:
2077YY_RULE_SETUP
2078#line 118 "zconf.l"
2079
2080	YY_BREAK
2081case 30:
2082YY_RULE_SETUP
2083#line 119 "zconf.l"
2084current_file->lineno++; BEGIN(INITIAL);
2085	YY_BREAK
2086
2087
2088case 31:
2089YY_RULE_SETUP
2090#line 123 "zconf.l"
2091return T_AND;
2092	YY_BREAK
2093case 32:
2094YY_RULE_SETUP
2095#line 124 "zconf.l"
2096return T_OR;
2097	YY_BREAK
2098case 33:
2099YY_RULE_SETUP
2100#line 125 "zconf.l"
2101return T_OPEN_PAREN;
2102	YY_BREAK
2103case 34:
2104YY_RULE_SETUP
2105#line 126 "zconf.l"
2106return T_CLOSE_PAREN;
2107	YY_BREAK
2108case 35:
2109YY_RULE_SETUP
2110#line 127 "zconf.l"
2111return T_NOT;
2112	YY_BREAK
2113case 36:
2114YY_RULE_SETUP
2115#line 128 "zconf.l"
2116return T_EQUAL;
2117	YY_BREAK
2118case 37:
2119YY_RULE_SETUP
2120#line 129 "zconf.l"
2121return T_UNEQUAL;
2122	YY_BREAK
2123case 38:
2124YY_RULE_SETUP
2125#line 130 "zconf.l"
2126return T_IF;
2127	YY_BREAK
2128case 39:
2129YY_RULE_SETUP
2130#line 131 "zconf.l"
2131return T_ON;
2132	YY_BREAK
2133case 40:
2134YY_RULE_SETUP
2135#line 132 "zconf.l"
2136{
2137		str = yytext[0];
2138		new_string();
2139		BEGIN(STRING);
2140	}
2141	YY_BREAK
2142case 41:
2143YY_RULE_SETUP
2144#line 137 "zconf.l"
2145BEGIN(INITIAL); current_file->lineno++; return T_EOL;
2146	YY_BREAK
2147case 42:
2148YY_RULE_SETUP
2149#line 138 "zconf.l"
2150/* ignore */
2151	YY_BREAK
2152case 43:
2153YY_RULE_SETUP
2154#line 139 "zconf.l"
2155{
2156		alloc_string(yytext, yyleng);
2157		zconflval.string = text;
2158		return T_WORD;
2159	}
2160	YY_BREAK
2161case 44:
2162YY_RULE_SETUP
2163#line 144 "zconf.l"
2164
2165	YY_BREAK
2166case YY_STATE_EOF(PARAM):
2167#line 145 "zconf.l"
2168{
2169		BEGIN(INITIAL);
2170	}
2171	YY_BREAK
2172
2173
2174case 45:
2175*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2176yy_c_buf_p = yy_cp -= 1;
2177YY_DO_BEFORE_ACTION; /* set up yytext again */
2178YY_RULE_SETUP
2179#line 151 "zconf.l"
2180{
2181		append_string(yytext, yyleng);
2182		zconflval.string = text;
2183		return T_STRING;
2184	}
2185	YY_BREAK
2186case 46:
2187YY_RULE_SETUP
2188#line 156 "zconf.l"
2189{
2190		append_string(yytext, yyleng);
2191	}
2192	YY_BREAK
2193case 47:
2194*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2195yy_c_buf_p = yy_cp -= 1;
2196YY_DO_BEFORE_ACTION; /* set up yytext again */
2197YY_RULE_SETUP
2198#line 159 "zconf.l"
2199{
2200		append_string(yytext+1, yyleng);
2201		zconflval.string = text;
2202		return T_STRING;
2203	}
2204	YY_BREAK
2205case 48:
2206YY_RULE_SETUP
2207#line 164 "zconf.l"
2208{
2209		append_string(yytext+1, yyleng);
2210	}
2211	YY_BREAK
2212case 49:
2213YY_RULE_SETUP
2214#line 167 "zconf.l"
2215{
2216		if (str == yytext[0]) {
2217			BEGIN(PARAM);
2218			zconflval.string = text;
2219			return T_STRING;
2220		} else
2221			append_string(yytext, 1);
2222	}
2223	YY_BREAK
2224case 50:
2225YY_RULE_SETUP
2226#line 175 "zconf.l"
2227{
2228		printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
2229		BEGIN(INITIAL);
2230		return T_EOL;
2231	}
2232	YY_BREAK
2233case YY_STATE_EOF(STRING):
2234#line 180 "zconf.l"
2235{
2236		BEGIN(INITIAL);
2237	}
2238	YY_BREAK
2239
2240
2241case 51:
2242YY_RULE_SETUP
2243#line 186 "zconf.l"
2244{
2245		ts = 0;
2246		for (i = 0; i < yyleng; i++) {
2247			if (yytext[i] == '\t')
2248				ts = (ts & ~7) + 8;
2249			else
2250				ts++;
2251		}
2252		last_ts = ts;
2253		if (first_ts) {
2254			if (ts < first_ts) {
2255				zconf_endhelp();
2256				return T_HELPTEXT;
2257			}
2258			ts -= first_ts;
2259			while (ts > 8) {
2260				append_string("        ", 8);
2261				ts -= 8;
2262			}
2263			append_string("        ", ts);
2264		}
2265		
2266	}
2267	YY_BREAK
2268case 52:
2269*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2270yy_c_buf_p = yy_cp = yy_bp + 1;
2271YY_DO_BEFORE_ACTION; /* set up yytext again */
2272YY_RULE_SETUP
2273#line 209 "zconf.l"
2274{
2275		current_file->lineno++;
2276		zconf_endhelp();
2277		return T_HELPTEXT;
2278	}
2279	YY_BREAK
2280case 53:
2281YY_RULE_SETUP
2282#line 214 "zconf.l"
2283{
2284		current_file->lineno++;
2285		append_string("\n", 1);
2286	}
2287	YY_BREAK
2288case 54:
2289YY_RULE_SETUP
2290#line 218 "zconf.l"
2291{
2292		append_string(yytext, yyleng);
2293		if (!first_ts)
2294			first_ts = last_ts;
2295	}
2296	YY_BREAK
2297case YY_STATE_EOF(HELP):
2298#line 223 "zconf.l"
2299{
2300		zconf_endhelp();
2301		return T_HELPTEXT;
2302	}
2303	YY_BREAK
2304
2305case YY_STATE_EOF(INITIAL):
2306case YY_STATE_EOF(COMMAND):
2307#line 229 "zconf.l"
2308{
2309	if (current_buf) {
2310		zconf_endfile();
2311		return T_EOF;
2312	}
2313	fclose(yyin);
2314	yyterminate();
2315}
2316	YY_BREAK
2317case 55:
2318YY_RULE_SETUP
2319#line 238 "zconf.l"
2320YY_FATAL_ERROR( "flex scanner jammed" );
2321	YY_BREAK
2322#line 2323 "lex.zconf.c"
2323
2324	case YY_END_OF_BUFFER:
2325		{
2326		/* Amount of text matched not including the EOB char. */
2327		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2328
2329		/* Undo the effects of YY_DO_BEFORE_ACTION. */
2330		*yy_cp = yy_hold_char;
2331		YY_RESTORE_YY_MORE_OFFSET
2332
2333		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2334			{
2335			/* We're scanning a new file or input source.  It's
2336			 * possible that this happened because the user
2337			 * just pointed yyin at a new source and called
2338			 * yylex().  If so, then we have to assure
2339			 * consistency between yy_current_buffer and our
2340			 * globals.  Here is the right place to do so, because
2341			 * this is the first action (other than possibly a
2342			 * back-up) that will match for the new input source.
2343			 */
2344			yy_n_chars = yy_current_buffer->yy_n_chars;
2345			yy_current_buffer->yy_input_file = yyin;
2346			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2347			}
2348
2349		/* Note that here we test for yy_c_buf_p "<=" to the position
2350		 * of the first EOB in the buffer, since yy_c_buf_p will
2351		 * already have been incremented past the NUL character
2352		 * (since all states make transitions on EOB to the
2353		 * end-of-buffer state).  Contrast this with the test
2354		 * in input().
2355		 */
2356		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2357			{ /* This was really a NUL. */
2358			yy_state_type yy_next_state;
2359
2360			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2361
2362			yy_current_state = yy_get_previous_state();
2363
2364			/* Okay, we're now positioned to make the NUL
2365			 * transition.  We couldn't have
2366			 * yy_get_previous_state() go ahead and do it
2367			 * for us because it doesn't know how to deal
2368			 * with the possibility of jamming (and we don't
2369			 * want to build jamming into it because then it
2370			 * will run more slowly).
2371			 */
2372
2373			yy_next_state = yy_try_NUL_trans( yy_current_state );
2374
2375			yy_bp = yytext_ptr + YY_MORE_ADJ;
2376
2377			if ( yy_next_state )
2378				{
2379				/* Consume the NUL. */
2380				yy_cp = ++yy_c_buf_p;
2381				yy_current_state = yy_next_state;
2382				goto yy_match;
2383				}
2384
2385			else
2386				{
2387				yy_cp = yy_c_buf_p;
2388				goto yy_find_action;
2389				}
2390			}
2391
2392		else switch ( yy_get_next_buffer() )
2393			{
2394			case EOB_ACT_END_OF_FILE:
2395				{
2396				yy_did_buffer_switch_on_eof = 0;
2397
2398				if ( yywrap() )
2399					{
2400					/* Note: because we've taken care in
2401					 * yy_get_next_buffer() to have set up
2402					 * yytext, we can now set up
2403					 * yy_c_buf_p so that if some total
2404					 * hoser (like flex itself) wants to
2405					 * call the scanner after we return the
2406					 * YY_NULL, it'll still work - another
2407					 * YY_NULL will get returned.
2408					 */
2409					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2410
2411					yy_act = YY_STATE_EOF(YY_START);
2412					goto do_action;
2413					}
2414
2415				else
2416					{
2417					if ( ! yy_did_buffer_switch_on_eof )
2418						YY_NEW_FILE;
2419					}
2420				break;
2421				}
2422
2423			case EOB_ACT_CONTINUE_SCAN:
2424				yy_c_buf_p =
2425					yytext_ptr + yy_amount_of_matched_text;
2426
2427				yy_current_state = yy_get_previous_state();
2428
2429				yy_cp = yy_c_buf_p;
2430				yy_bp = yytext_ptr + YY_MORE_ADJ;
2431				goto yy_match;
2432
2433			case EOB_ACT_LAST_MATCH:
2434				yy_c_buf_p =
2435				&yy_current_buffer->yy_ch_buf[yy_n_chars];
2436
2437				yy_current_state = yy_get_previous_state();
2438
2439				yy_cp = yy_c_buf_p;
2440				yy_bp = yytext_ptr + YY_MORE_ADJ;
2441				goto yy_find_action;
2442			}
2443		break;
2444		}
2445
2446	default:
2447		YY_FATAL_ERROR(
2448			"fatal flex scanner internal error--no action found" );
2449	} /* end of action switch */
2450		} /* end of scanning one token */
2451	} /* end of yylex */
2452
2453
2454/* yy_get_next_buffer - try to read in a new buffer
2455 *
2456 * Returns a code representing an action:
2457 *	EOB_ACT_LAST_MATCH -
2458 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2459 *	EOB_ACT_END_OF_FILE - end of file
2460 */
2461
2462static int yy_get_next_buffer()
2463	{
2464	register char *dest = yy_current_buffer->yy_ch_buf;
2465	register char *source = yytext_ptr;
2466	register int number_to_move, i;
2467	int ret_val;
2468
2469	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2470		YY_FATAL_ERROR(
2471		"fatal flex scanner internal error--end of buffer missed" );
2472
2473	if ( yy_current_buffer->yy_fill_buffer == 0 )
2474		{ /* Don't try to fill the buffer, so this is an EOF. */
2475		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2476			{
2477			/* We matched a single character, the EOB, so
2478			 * treat this as a final EOF.
2479			 */
2480			return EOB_ACT_END_OF_FILE;
2481			}
2482
2483		else
2484			{
2485			/* We matched some text prior to the EOB, first
2486			 * process it.
2487			 */
2488			return EOB_ACT_LAST_MATCH;
2489			}
2490		}
2491
2492	/* Try to read more data. */
2493
2494	/* First move last chars to start of buffer. */
2495	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2496
2497	for ( i = 0; i < number_to_move; ++i )
2498		*(dest++) = *(source++);
2499
2500	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2501		/* don't do the read, it's not guaranteed to return an EOF,
2502		 * just force an EOF
2503		 */
2504		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2505
2506	else
2507		{
2508		int num_to_read =
2509			yy_current_buffer->yy_buf_size - number_to_move - 1;
2510
2511		while ( num_to_read <= 0 )
2512			{ /* Not enough room in the buffer - grow it. */
2513#ifdef YY_USES_REJECT
2514			YY_FATAL_ERROR(
2515"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2516#else
2517
2518			/* just a shorter name for the current buffer */
2519			YY_BUFFER_STATE b = yy_current_buffer;
2520
2521			int yy_c_buf_p_offset =
2522				(int) (yy_c_buf_p - b->yy_ch_buf);
2523
2524			if ( b->yy_is_our_buffer )
2525				{
2526				int new_size = b->yy_buf_size * 2;
2527
2528				if ( new_size <= 0 )
2529					b->yy_buf_size += b->yy_buf_size / 8;
2530				else
2531					b->yy_buf_size *= 2;
2532
2533				b->yy_ch_buf = (char *)
2534					/* Include room in for 2 EOB chars. */
2535					yy_flex_realloc( (void *) b->yy_ch_buf,
2536							 b->yy_buf_size + 2 );
2537				}
2538			else
2539				/* Can't grow it, we don't own it. */
2540				b->yy_ch_buf = 0;
2541
2542			if ( ! b->yy_ch_buf )
2543				YY_FATAL_ERROR(
2544				"fatal error - scanner input buffer overflow" );
2545
2546			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2547
2548			num_to_read = yy_current_buffer->yy_buf_size -
2549						number_to_move - 1;
2550#endif
2551			}
2552
2553		if ( num_to_read > YY_READ_BUF_SIZE )
2554			num_to_read = YY_READ_BUF_SIZE;
2555
2556		/* Read in more data. */
2557		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2558			yy_n_chars, num_to_read );
2559
2560		yy_current_buffer->yy_n_chars = yy_n_chars;
2561		}
2562
2563	if ( yy_n_chars == 0 )
2564		{
2565		if ( number_to_move == YY_MORE_ADJ )
2566			{
2567			ret_val = EOB_ACT_END_OF_FILE;
2568			yyrestart( yyin );
2569			}
2570
2571		else
2572			{
2573			ret_val = EOB_ACT_LAST_MATCH;
2574			yy_current_buffer->yy_buffer_status =
2575				YY_BUFFER_EOF_PENDING;
2576			}
2577		}
2578
2579	else
2580		ret_val = EOB_ACT_CONTINUE_SCAN;
2581
2582	yy_n_chars += number_to_move;
2583	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2584	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2585
2586	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2587
2588	return ret_val;
2589	}
2590
2591
2592/* yy_get_previous_state - get the state just before the EOB char was reached */
2593
2594static yy_state_type yy_get_previous_state()
2595	{
2596	register yy_state_type yy_current_state;
2597	register char *yy_cp;
2598
2599	yy_current_state = yy_start;
2600
2601	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2602		{
2603		yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
2604		}
2605
2606	return yy_current_state;
2607	}
2608
2609
2610/* yy_try_NUL_trans - try to make a transition on the NUL character
2611 *
2612 * synopsis
2613 *	next_state = yy_try_NUL_trans( current_state );
2614 */
2615
2616#ifdef YY_USE_PROTOS
2617static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2618#else
2619static yy_state_type yy_try_NUL_trans( yy_current_state )
2620yy_state_type yy_current_state;
2621#endif
2622	{
2623	register int yy_is_jam;
2624
2625	yy_current_state = yy_nxt[yy_current_state][1];
2626	yy_is_jam = (yy_current_state <= 0);
2627
2628	return yy_is_jam ? 0 : yy_current_state;
2629	}
2630
2631
2632#ifndef YY_NO_UNPUT
2633#ifdef YY_USE_PROTOS
2634static void yyunput( int c, register char *yy_bp )
2635#else
2636static void yyunput( c, yy_bp )
2637int c;
2638register char *yy_bp;
2639#endif
2640	{
2641	register char *yy_cp = yy_c_buf_p;
2642
2643	/* undo effects of setting up yytext */
2644	*yy_cp = yy_hold_char;
2645
2646	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2647		{ /* need to shift things up to make room */
2648		/* +2 for EOB chars. */
2649		register int number_to_move = yy_n_chars + 2;
2650		register char *dest = &yy_current_buffer->yy_ch_buf[
2651					yy_current_buffer->yy_buf_size + 2];
2652		register char *source =
2653				&yy_current_buffer->yy_ch_buf[number_to_move];
2654
2655		while ( source > yy_current_buffer->yy_ch_buf )
2656			*--dest = *--source;
2657
2658		yy_cp += (int) (dest - source);
2659		yy_bp += (int) (dest - source);
2660		yy_current_buffer->yy_n_chars =
2661			yy_n_chars = yy_current_buffer->yy_buf_size;
2662
2663		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2664			YY_FATAL_ERROR( "flex scanner push-back overflow" );
2665		}
2666
2667	*--yy_cp = (char) c;
2668
2669
2670	yytext_ptr = yy_bp;
2671	yy_hold_char = *yy_cp;
2672	yy_c_buf_p = yy_cp;
2673	}
2674#endif	/* ifndef YY_NO_UNPUT */
2675
2676
2677#ifdef __cplusplus
2678static int yyinput()
2679#else
2680static int input()
2681#endif
2682	{
2683	int c;
2684
2685	*yy_c_buf_p = yy_hold_char;
2686
2687	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2688		{
2689		/* yy_c_buf_p now points to the character we want to return.
2690		 * If this occurs *before* the EOB characters, then it's a
2691		 * valid NUL; if not, then we've hit the end of the buffer.
2692		 */
2693		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2694			/* This was really a NUL. */
2695			*yy_c_buf_p = '\0';
2696
2697		else
2698			{ /* need more input */
2699			int offset = yy_c_buf_p - yytext_ptr;
2700			++yy_c_buf_p;
2701
2702			switch ( yy_get_next_buffer() )
2703				{
2704				case EOB_ACT_LAST_MATCH:
2705					/* This happens because yy_g_n_b()
2706					 * sees that we've accumulated a
2707					 * token and flags that we need to
2708					 * try matching the token before
2709					 * proceeding.  But for input(),
2710					 * there's no matching to consider.
2711					 * So convert the EOB_ACT_LAST_MATCH
2712					 * to EOB_ACT_END_OF_FILE.
2713					 */
2714
2715					/* Reset buffer status. */
2716					yyrestart( yyin );
2717
2718					/* fall through */
2719
2720				case EOB_ACT_END_OF_FILE:
2721					{
2722					if ( yywrap() )
2723						return EOF;
2724
2725					if ( ! yy_did_buffer_switch_on_eof )
2726						YY_NEW_FILE;
2727#ifdef __cplusplus
2728					return yyinput();
2729#else
2730					return input();
2731#endif
2732					}
2733
2734				case EOB_ACT_CONTINUE_SCAN:
2735					yy_c_buf_p = yytext_ptr + offset;
2736					break;
2737				}
2738			}
2739		}
2740
2741	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
2742	*yy_c_buf_p = '\0';	/* preserve yytext */
2743	yy_hold_char = *++yy_c_buf_p;
2744
2745
2746	return c;
2747	}
2748
2749
2750#ifdef YY_USE_PROTOS
2751void yyrestart( FILE *input_file )
2752#else
2753void yyrestart( input_file )
2754FILE *input_file;
2755#endif
2756	{
2757	if ( ! yy_current_buffer )
2758		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2759
2760	yy_init_buffer( yy_current_buffer, input_file );
2761	yy_load_buffer_state();
2762	}
2763
2764
2765#ifdef YY_USE_PROTOS
2766void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2767#else
2768void yy_switch_to_buffer( new_buffer )
2769YY_BUFFER_STATE new_buffer;
2770#endif
2771	{
2772	if ( yy_current_buffer == new_buffer )
2773		return;
2774
2775	if ( yy_current_buffer )
2776		{
2777		/* Flush out information for old buffer. */
2778		*yy_c_buf_p = yy_hold_char;
2779		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2780		yy_current_buffer->yy_n_chars = yy_n_chars;
2781		}
2782
2783	yy_current_buffer = new_buffer;
2784	yy_load_buffer_state();
2785
2786	/* We don't actually know whether we did this switch during
2787	 * EOF (yywrap()) processing, but the only time this flag
2788	 * is looked at is after yywrap() is called, so it's safe
2789	 * to go ahead and always set it.
2790	 */
2791	yy_did_buffer_switch_on_eof = 1;
2792	}
2793
2794
2795#ifdef YY_USE_PROTOS
2796void yy_load_buffer_state( void )
2797#else
2798void yy_load_buffer_state()
2799#endif
2800	{
2801	yy_n_chars = yy_current_buffer->yy_n_chars;
2802	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2803	yyin = yy_current_buffer->yy_input_file;
2804	yy_hold_char = *yy_c_buf_p;
2805	}
2806
2807
2808#ifdef YY_USE_PROTOS
2809YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2810#else
2811YY_BUFFER_STATE yy_create_buffer( file, size )
2812FILE *file;
2813int size;
2814#endif
2815	{
2816	YY_BUFFER_STATE b;
2817
2818	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2819	if ( ! b )
2820		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2821
2822	b->yy_buf_size = size;
2823
2824	/* yy_ch_buf has to be 2 characters longer than the size given because
2825	 * we need to put in 2 end-of-buffer characters.
2826	 */
2827	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2828	if ( ! b->yy_ch_buf )
2829		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2830
2831	b->yy_is_our_buffer = 1;
2832
2833	yy_init_buffer( b, file );
2834
2835	return b;
2836	}
2837
2838
2839#ifdef YY_USE_PROTOS
2840void yy_delete_buffer( YY_BUFFER_STATE b )
2841#else
2842void yy_delete_buffer( b )
2843YY_BUFFER_STATE b;
2844#endif
2845	{
2846	if ( ! b )
2847		return;
2848
2849	if ( b == yy_current_buffer )
2850		yy_current_buffer = (YY_BUFFER_STATE) 0;
2851
2852	if ( b->yy_is_our_buffer )
2853		yy_flex_free( (void *) b->yy_ch_buf );
2854
2855	yy_flex_free( (void *) b );
2856	}
2857
2858
2859#ifndef _WIN32
2860#include <unistd.h>
2861#else
2862#ifndef YY_ALWAYS_INTERACTIVE
2863#ifndef YY_NEVER_INTERACTIVE
2864extern int isatty YY_PROTO(( int ));
2865#endif
2866#endif
2867#endif
2868
2869#ifdef YY_USE_PROTOS
2870void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2871#else
2872void yy_init_buffer( b, file )
2873YY_BUFFER_STATE b;
2874FILE *file;
2875#endif
2876
2877
2878	{
2879	yy_flush_buffer( b );
2880
2881	b->yy_input_file = file;
2882	b->yy_fill_buffer = 1;
2883
2884#if YY_ALWAYS_INTERACTIVE
2885	b->yy_is_interactive = 1;
2886#else
2887#if YY_NEVER_INTERACTIVE
2888	b->yy_is_interactive = 0;
2889#else
2890	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2891#endif
2892#endif
2893	}
2894
2895
2896#ifdef YY_USE_PROTOS
2897void yy_flush_buffer( YY_BUFFER_STATE b )
2898#else
2899void yy_flush_buffer( b )
2900YY_BUFFER_STATE b;
2901#endif
2902
2903	{
2904	if ( ! b )
2905		return;
2906
2907	b->yy_n_chars = 0;
2908
2909	/* We always need two end-of-buffer characters.  The first causes
2910	 * a transition to the end-of-buffer state.  The second causes
2911	 * a jam in that state.
2912	 */
2913	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2914	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2915
2916	b->yy_buf_pos = &b->yy_ch_buf[0];
2917
2918	b->yy_at_bol = 1;
2919	b->yy_buffer_status = YY_BUFFER_NEW;
2920
2921	if ( b == yy_current_buffer )
2922		yy_load_buffer_state();
2923	}
2924
2925
2926#ifndef YY_NO_SCAN_BUFFER
2927#ifdef YY_USE_PROTOS
2928YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2929#else
2930YY_BUFFER_STATE yy_scan_buffer( base, size )
2931char *base;
2932yy_size_t size;
2933#endif
2934	{
2935	YY_BUFFER_STATE b;
2936
2937	if ( size < 2 ||
2938	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
2939	     base[size-1] != YY_END_OF_BUFFER_CHAR )
2940		/* They forgot to leave room for the EOB's. */
2941		return 0;
2942
2943	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2944	if ( ! b )
2945		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2946
2947	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
2948	b->yy_buf_pos = b->yy_ch_buf = base;
2949	b->yy_is_our_buffer = 0;
2950	b->yy_input_file = 0;
2951	b->yy_n_chars = b->yy_buf_size;
2952	b->yy_is_interactive = 0;
2953	b->yy_at_bol = 1;
2954	b->yy_fill_buffer = 0;
2955	b->yy_buffer_status = YY_BUFFER_NEW;
2956
2957	yy_switch_to_buffer( b );
2958
2959	return b;
2960	}
2961#endif
2962
2963
2964#ifndef YY_NO_SCAN_STRING
2965#ifdef YY_USE_PROTOS
2966YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2967#else
2968YY_BUFFER_STATE yy_scan_string( yy_str )
2969yyconst char *yy_str;
2970#endif
2971	{
2972	int len;
2973	for ( len = 0; yy_str[len]; ++len )
2974		;
2975
2976	return yy_scan_bytes( yy_str, len );
2977	}
2978#endif
2979
2980
2981#ifndef YY_NO_SCAN_BYTES
2982#ifdef YY_USE_PROTOS
2983YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2984#else
2985YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2986yyconst char *bytes;
2987int len;
2988#endif
2989	{
2990	YY_BUFFER_STATE b;
2991	char *buf;
2992	yy_size_t n;
2993	int i;
2994
2995	/* Get memory for full buffer, including space for trailing EOB's. */
2996	n = len + 2;
2997	buf = (char *) yy_flex_alloc( n );
2998	if ( ! buf )
2999		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3000
3001	for ( i = 0; i < len; ++i )
3002		buf[i] = bytes[i];
3003
3004	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3005
3006	b = yy_scan_buffer( buf, n );
3007	if ( ! b )
3008		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3009
3010	/* It's okay to grow etc. this buffer, and we should throw it
3011	 * away when we're done.
3012	 */
3013	b->yy_is_our_buffer = 1;
3014
3015	return b;
3016	}
3017#endif
3018
3019
3020#ifndef YY_NO_PUSH_STATE
3021#ifdef YY_USE_PROTOS
3022static void yy_push_state( int new_state )
3023#else
3024static void yy_push_state( new_state )
3025int new_state;
3026#endif
3027	{
3028	if ( yy_start_stack_ptr >= yy_start_stack_depth )
3029		{
3030		yy_size_t new_size;
3031
3032		yy_start_stack_depth += YY_START_STACK_INCR;
3033		new_size = yy_start_stack_depth * sizeof( int );
3034
3035		if ( ! yy_start_stack )
3036			yy_start_stack = (int *) yy_flex_alloc( new_size );
3037
3038		else
3039			yy_start_stack = (int *) yy_flex_realloc(
3040					(void *) yy_start_stack, new_size );
3041
3042		if ( ! yy_start_stack )
3043			YY_FATAL_ERROR(
3044			"out of memory expanding start-condition stack" );
3045		}
3046
3047	yy_start_stack[yy_start_stack_ptr++] = YY_START;
3048
3049	BEGIN(new_state);
3050	}
3051#endif
3052
3053
3054#ifndef YY_NO_POP_STATE
3055static void yy_pop_state()
3056	{
3057	if ( --yy_start_stack_ptr < 0 )
3058		YY_FATAL_ERROR( "start-condition stack underflow" );
3059
3060	BEGIN(yy_start_stack[yy_start_stack_ptr]);
3061	}
3062#endif
3063
3064
3065#ifndef YY_NO_TOP_STATE
3066static int yy_top_state()
3067	{
3068	return yy_start_stack[yy_start_stack_ptr - 1];
3069	}
3070#endif
3071
3072#ifndef YY_EXIT_FAILURE
3073#define YY_EXIT_FAILURE 2
3074#endif
3075
3076#ifdef YY_USE_PROTOS
3077static void yy_fatal_error( yyconst char msg[] )
3078#else
3079static void yy_fatal_error( msg )
3080char msg[];
3081#endif
3082	{
3083	(void) fprintf( stderr, "%s\n", msg );
3084	exit( YY_EXIT_FAILURE );
3085	}
3086
3087
3088
3089/* Redefine yyless() so it works in section 3 code. */
3090
3091#undef yyless
3092#define yyless(n) \
3093	do \
3094		{ \
3095		/* Undo effects of setting up yytext. */ \
3096		yytext[yyleng] = yy_hold_char; \
3097		yy_c_buf_p = yytext + n; \
3098		yy_hold_char = *yy_c_buf_p; \
3099		*yy_c_buf_p = '\0'; \
3100		yyleng = n; \
3101		} \
3102	while ( 0 )
3103
3104
3105/* Internal utility routines. */
3106
3107#ifndef yytext_ptr
3108#ifdef YY_USE_PROTOS
3109static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3110#else
3111static void yy_flex_strncpy( s1, s2, n )
3112char *s1;
3113yyconst char *s2;
3114int n;
3115#endif
3116	{
3117	register int i;
3118	for ( i = 0; i < n; ++i )
3119		s1[i] = s2[i];
3120	}
3121#endif
3122
3123#ifdef YY_NEED_STRLEN
3124#ifdef YY_USE_PROTOS
3125static int yy_flex_strlen( yyconst char *s )
3126#else
3127static int yy_flex_strlen( s )
3128yyconst char *s;
3129#endif
3130	{
3131	register int n;
3132	for ( n = 0; s[n]; ++n )
3133		;
3134
3135	return n;
3136	}
3137#endif
3138
3139
3140#ifdef YY_USE_PROTOS
3141static void *yy_flex_alloc( yy_size_t size )
3142#else
3143static void *yy_flex_alloc( size )
3144yy_size_t size;
3145#endif
3146	{
3147	return (void *) malloc( size );
3148	}
3149
3150#ifdef YY_USE_PROTOS
3151static void *yy_flex_realloc( void *ptr, yy_size_t size )
3152#else
3153static void *yy_flex_realloc( ptr, size )
3154void *ptr;
3155yy_size_t size;
3156#endif
3157	{
3158	/* The cast to (char *) in the following accommodates both
3159	 * implementations that use char* generic pointers, and those
3160	 * that use void* generic pointers.  It works with the latter
3161	 * because both ANSI C and C++ allow castless assignment from
3162	 * any pointer type to void*, and deal with argument conversions
3163	 * as though doing an assignment.
3164	 */
3165	return (void *) realloc( (char *) ptr, size );
3166	}
3167
3168#ifdef YY_USE_PROTOS
3169static void yy_flex_free( void *ptr )
3170#else
3171static void yy_flex_free( ptr )
3172void *ptr;
3173#endif
3174	{
3175	free( ptr );
3176	}
3177
3178#if YY_MAIN
3179int main()
3180	{
3181	yylex();
3182	return 0;
3183	}
3184#endif
3185#line 238 "zconf.l"
3186
3187void zconf_starthelp(void)
3188{
3189	new_string();
3190	last_ts = first_ts = 0;
3191	BEGIN(HELP);
3192}
3193
3194static void zconf_endhelp(void)
3195{
3196	zconflval.string = text;
3197	BEGIN(INITIAL); 
3198}
3199
3200void zconf_initscan(const char *name)
3201{
3202	yyin = fopen(name, "r");
3203	if (!yyin) {
3204		printf("can't find file %s\n", name);
3205		exit(1);
3206	}
3207
3208	current_buf = malloc(sizeof(*current_buf));
3209	memset(current_buf, 0, sizeof(*current_buf));
3210
3211	current_file = file_lookup(name);
3212	current_file->lineno = 1;
3213	current_file->flags = FILE_BUSY;
3214}
3215
3216void zconf_nextfile(const char *name)
3217{
3218	struct file *file = file_lookup(name);
3219	struct buffer *buf = malloc(sizeof(*buf));
3220	memset(buf, 0, sizeof(*buf));
3221
3222	current_buf->state = YY_CURRENT_BUFFER;
3223	yyin = fopen(name, "r");
3224	if (!yyin) {
3225		printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), name);
3226		exit(1);
3227	}
3228	yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
3229	buf->parent = current_buf;
3230	current_buf = buf;
3231
3232	if (file->flags & FILE_BUSY) {
3233		printf("recursive scan (%s)?\n", name);
3234		exit(1);
3235	}
3236	if (file->flags & FILE_SCANNED) {
3237		printf("file %s already scanned?\n", name);
3238		exit(1);
3239	}
3240	file->flags |= FILE_BUSY;
3241	file->lineno = 1;
3242	file->parent = current_file;
3243	current_file = file;
3244}
3245
3246static struct buffer *zconf_endfile(void)
3247{
3248	struct buffer *parent;
3249
3250	current_file->flags |= FILE_SCANNED;
3251	current_file->flags &= ~FILE_BUSY;
3252	current_file = current_file->parent;
3253
3254	parent = current_buf->parent;
3255	if (parent) {
3256		fclose(yyin);
3257		yy_delete_buffer(YY_CURRENT_BUFFER);
3258		yy_switch_to_buffer(parent->state);
3259	}
3260	free(current_buf);
3261	current_buf = parent;
3262
3263	return parent;
3264}
3265
3266int zconf_lineno(void)
3267{
3268	if (current_buf)
3269		return current_file->lineno;
3270	else
3271		return 0;
3272}
3273
3274char *zconf_curname(void)
3275{
3276	if (current_buf)
3277		return current_file->name;
3278	else
3279		return "<none>";
3280}
3281