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