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