modules/up/src/rpsl/rpsl/rpsl.l.cc
/* [<][>][^][v][top][bottom][index][help] */
FUNCTIONS
This source file includes following functions.
- YY_PROTO
- YY_PROTO
- YY_SC_TO_UI
- YY_STATE_EOF
- yyless
- unput
- yy_set_interactive
- yy_set_bol
- YY_AT_BOL
- yymore
- YYLESS
- YY_INPUT
- yyterminate
- YY_FATAL_ERROR
- yy_get_next_buffer
- yy_get_previous_state
- yy_try_NUL_trans
- yyunput
- yyinput
- yyrestart
- yy_switch_to_buffer
- yy_load_buffer_state
- yy_create_buffer
- yy_delete_buffer
- yy_init_buffer
- yy_flush_buffer
- yy_scan_buffer
- yy_scan_string
- yy_scan_bytes
- yy_push_state
- yy_pop_state
- yy_top_state
- yy_fatal_error
- yyless
- yy_flex_strncpy
- yy_flex_strlen
- yy_flex_alloc
- yy_flex_realloc
- yy_flex_free
- main
- handle_error
- handle_object_error
- rpslerror
- handle_warning
- yy_scan_object
- changeCurrentAttr
- validIPv6
- validIntForPhone
1 #define yy_create_buffer rpsl_create_buffer
2 #define yy_delete_buffer rpsl_delete_buffer
3 #define yy_scan_buffer rpsl_scan_buffer
4 #define yy_scan_string rpsl_scan_string
5 #define yy_scan_bytes rpsl_scan_bytes
6 #define yy_flex_debug rpsl_flex_debug
7 #define yy_init_buffer rpsl_init_buffer
8 #define yy_flush_buffer rpsl_flush_buffer
9 #define yy_load_buffer_state rpsl_load_buffer_state
10 #define yy_switch_to_buffer rpsl_switch_to_buffer
11 #define yyin rpslin
12 #define yyleng rpslleng
13 #define yylex rpsllex
14 #define yyout rpslout
15 #define yyrestart rpslrestart
16 #define yytext rpsltext
17 #define yywrap rpslwrap
18
19 /* A lexical scanner generated by flex */
20
21 /* Scanner skeleton version:
22 * $Header: /ncc/cvsroot/ncc/RIP/modules/up/src/rpsl/rpsl/rpsl.l.cc,v 1.3 2001/04/03 09:35:10 engin Exp $
23 */
24
25 #define FLEX_SCANNER
26 #define YY_FLEX_MAJOR_VERSION 2
27 #define YY_FLEX_MINOR_VERSION 5
28
29 #include <stdio.h>
30
31
32 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
33 #ifdef c_plusplus
34 #ifndef __cplusplus
35 #define __cplusplus
36 #endif
37 #endif
38
39
40 #ifdef __cplusplus
41
42 #include <stdlib.h>
43 #include <unistd.h>
44
45 /* Use prototypes in function declarations. */
46 #define YY_USE_PROTOS
47
48 /* The "const" storage-class-modifier is valid. */
49 #define YY_USE_CONST
50
51 #else /* ! __cplusplus */
52
53 #if __STDC__
54
55 #define YY_USE_PROTOS
56 #define YY_USE_CONST
57
58 #endif /* __STDC__ */
59 #endif /* ! __cplusplus */
60
61 #ifdef __TURBOC__
62 #pragma warn -rch
63 #pragma warn -use
64 #include <io.h>
65 #include <stdlib.h>
66 #define YY_USE_CONST
67 #define YY_USE_PROTOS
68 #endif
69
70 #ifdef YY_USE_CONST
71 #define yyconst const
72 #else
73 #define yyconst
74 #endif
75
76
77 #ifdef YY_USE_PROTOS
78 #define YY_PROTO(proto) proto
/* [<][>][^][v][top][bottom][index][help] */
79 #else
80 #define YY_PROTO(proto) ()
/* [<][>][^][v][top][bottom][index][help] */
81 #endif
82
83 /* Returned upon end-of-file. */
84 #define YY_NULL 0
85
86 /* Promotes a possibly negative, possibly signed char to an unsigned
87 * integer for use as an array index. If the signed char is negative,
88 * we want to instead treat it as an 8-bit unsigned char, hence the
89 * double cast.
90 */
91 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
/* [<][>][^][v][top][bottom][index][help] */
92
93 /* Enter a start condition. This macro really ought to take a parameter,
94 * but we do it the disgusting crufty way forced on us by the ()-less
95 * definition of BEGIN.
96 */
97 #define BEGIN yy_start = 1 + 2 *
98
99 /* Translate the current start state into a value that can be later handed
100 * to BEGIN to return to the state. The YYSTATE alias is for lex
101 * compatibility.
102 */
103 #define YY_START ((yy_start - 1) / 2)
104 #define YYSTATE YY_START
105
106 /* Action number for EOF rule of a given start state. */
107 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
/* [<][>][^][v][top][bottom][index][help] */
108
109 /* Special action meaning "start processing a new file". */
110 #define YY_NEW_FILE yyrestart( yyin )
111
112 #define YY_END_OF_BUFFER_CHAR 0
113
114 /* Size of default input buffer. */
115 #define YY_BUF_SIZE 16384
116
117 typedef struct yy_buffer_state *YY_BUFFER_STATE;
118
119 extern int yyleng;
120 extern FILE *yyin, *yyout;
121
122 #define EOB_ACT_CONTINUE_SCAN 0
123 #define EOB_ACT_END_OF_FILE 1
124 #define EOB_ACT_LAST_MATCH 2
125
126 /* The funky do-while in the following #define is used to turn the definition
127 * int a single C statement (which needs a semi-colon terminator). This
128 * avoids problems with code like:
129 *
130 * if ( condition_holds )
131 * yyless( 5 );
132 * else
133 * do_something_else();
134 *
135 * Prior to using the do-while the compiler would get upset at the
136 * "else" because it interpreted the "if" statement as being all
137 * done when it reached the ';' after the yyless() call.
138 */
139
140 /* Return all but the first 'n' matched characters back to the input stream. */
141
142 #define yyless(n) \
/* [<][>][^][v][top][bottom][index][help] */
143 do \
144 { \
145 /* Undo effects of setting up yytext. */ \
146 *yy_cp = yy_hold_char; \
147 YY_RESTORE_YY_MORE_OFFSET \
148 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
149 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
150 } \
151 while ( 0 )
152
153 #define unput(c) yyunput( c, yytext_ptr )
/* [<][>][^][v][top][bottom][index][help] */
154
155 /* The following is because we cannot portably get our hands on size_t
156 * (without autoconf's help, which isn't available because we want
157 * flex-generated scanners to compile on their own).
158 */
159 typedef unsigned int yy_size_t;
160
161
162 struct yy_buffer_state
163 {
164 FILE *yy_input_file;
165
166 char *yy_ch_buf; /* input buffer */
167 char *yy_buf_pos; /* current position in input buffer */
168
169 /* Size of input buffer in bytes, not including room for EOB
170 * characters.
171 */
172 yy_size_t yy_buf_size;
173
174 /* Number of characters read into yy_ch_buf, not including EOB
175 * characters.
176 */
177 int yy_n_chars;
178
179 /* Whether we "own" the buffer - i.e., we know we created it,
180 * and can realloc() it to grow it, and should free() it to
181 * delete it.
182 */
183 int yy_is_our_buffer;
184
185 /* Whether this is an "interactive" input source; if so, and
186 * if we're using stdio for input, then we want to use getc()
187 * instead of fread(), to make sure we stop fetching input after
188 * each newline.
189 */
190 int yy_is_interactive;
191
192 /* Whether we're considered to be at the beginning of a line.
193 * If so, '^' rules will be active on the next match, otherwise
194 * not.
195 */
196 int yy_at_bol;
197
198 /* Whether to try to fill the input buffer when we reach the
199 * end of it.
200 */
201 int yy_fill_buffer;
202
203 int yy_buffer_status;
204 #define YY_BUFFER_NEW 0
205 #define YY_BUFFER_NORMAL 1
206 /* When an EOF's been seen but there's still some text to process
207 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
208 * shouldn't try reading from the input source any more. We might
209 * still have a bunch of tokens to match, though, because of
210 * possible backing-up.
211 *
212 * When we actually see the EOF, we change the status to "new"
213 * (via yyrestart()), so that the user can continue scanning by
214 * just pointing yyin at a new input file.
215 */
216 #define YY_BUFFER_EOF_PENDING 2
217 };
218
219 static YY_BUFFER_STATE yy_current_buffer = 0;
220
221 /* We provide macros for accessing buffer states in case in the
222 * future we want to put the buffer states in a more general
223 * "scanner state".
224 */
225 #define YY_CURRENT_BUFFER yy_current_buffer
226
227
228 /* yy_hold_char holds the character lost when yytext is formed. */
229 static char yy_hold_char;
230
231 static int yy_n_chars; /* number of characters read into yy_ch_buf */
232
233
234 int yyleng;
235
236 /* Points to current character in buffer. */
237 static char *yy_c_buf_p = (char *) 0;
238 static int yy_init = 1; /* whether we need to initialize */
239 static int yy_start = 0; /* start state number */
240
241 /* Flag which is used to allow yywrap()'s to do buffer switches
242 * instead of setting up a fresh yyin. A bit of a hack ...
243 */
244 static int yy_did_buffer_switch_on_eof;
245
246 void yyrestart YY_PROTO(( FILE *input_file ));
247
248 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
249 void yy_load_buffer_state YY_PROTO(( void ));
250 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
251 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
252 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
253 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
254 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
255
256 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
257 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
258 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
259
260 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
261 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
262 static void yy_flex_free YY_PROTO(( void * ));
263
264 #define yy_new_buffer yy_create_buffer
265
266 #define yy_set_interactive(is_interactive) \
/* [<][>][^][v][top][bottom][index][help] */
267 { \
268 if ( ! yy_current_buffer ) \
269 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
270 yy_current_buffer->yy_is_interactive = is_interactive; \
271 }
272
273 #define yy_set_bol(at_bol) \
/* [<][>][^][v][top][bottom][index][help] */
274 { \
275 if ( ! yy_current_buffer ) \
276 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
277 yy_current_buffer->yy_at_bol = at_bol; \
278 }
279
280 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
/* [<][>][^][v][top][bottom][index][help] */
281
282
283 #define YY_USES_REJECT
284 typedef unsigned char YY_CHAR;
285 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
286 typedef int yy_state_type;
287 extern char *yytext;
288 #define yytext_ptr yytext
289
290 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
291 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
292 static int yy_get_next_buffer YY_PROTO(( void ));
293 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
294
295 /* Done after the current pattern has been matched and before the
296 * corresponding action - sets up yytext.
297 */
298 #define YY_DO_BEFORE_ACTION \
299 yytext_ptr = yy_bp; \
300 yyleng = (int) (yy_cp - yy_bp); \
301 yy_hold_char = *yy_cp; \
302 *yy_cp = '\0'; \
303 yy_c_buf_p = yy_cp;
304
305 #define YY_NUM_RULES 60
306 #define YY_END_OF_BUFFER 61
307 static yyconst short int yy_acclist[742] =
308 { 0,
309 61, 4, 60, 60, 3, 4, 60, 4, 60, 2,
310 60, 4, 60, 58, 59, 60, 49, 60, 48, 59,
311 60, 59, 60, 47, 60, 11, 47, 60, 10, 60,
312 47, 60, 12, 47, 60, 47, 60, 46, 47, 60,
313 46, 47, 60, 46, 47, 60, 47, 60, 13, 60,
314 11, 13, 60, 12, 13, 60, 14, 60, 11, 60,
315 12, 14, 60, 40, 60, 11, 40, 60, 10, 60,
316 20, 40, 60, 12, 40, 60, 40, 60, 40, 60,
317 40, 60, 40, 60, 40, 60, 17, 40, 60, 40,
318 60, 36, 40, 60, 36, 40, 60, 40, 60, 36,
319
320 40, 60, 36, 40, 60, 36, 40, 60, 36, 40,
321 60, 36, 40, 60, 7, 60, 6, 60, 7, 60,
322 5, 6, 60, 40, 60, 17, 40, 60, 40, 60,
323 3, 2, 1, 58, 57, 50, 51, 57, 51, 57,
324 55, 57, 56, 57, 52, 57, 54, 57, 53, 57,
325 11, 9, 9, 8, 46, 12, 13, 11, 13, 12,
326 13, 14, 12, 14, 9, 8, 12, 12, 12, 17,
327 17, 19, 17, 36, 26, 36, 26, 36, 36, 26,
328 36, 26, 36, 26, 36, 26, 36, 26, 36, 26,
329 36, 26, 36, 26, 36, 26, 36, 26, 36, 7,
330
331 7, 5, 17, 42, 41, 43, 50, 51, 51, 10,
332 12, 12, 12, 12, 19, 38, 19, 38, 19, 19,
333 38, 38, 17, 18, 36, 37, 38, 36, 36, 26,
334 26, 36, 26, 36, 26, 36, 26, 36, 26, 36,
335 26, 36, 26, 26, 27, 36, 26, 36, 26, 36,
336 26, 36, 26, 36, 26, 36, 26, 36, 26, 26,
337 36, 26, 36, 45, 17, 50, 51, 12, 12, 12,
338 12, 38, 19, 19, 19, 38, 38, 38, 17, 18,
339 23, 23, 38, 37, 38, 37, 38, 36, 36, 26,
340 36, 26, 36, 26, 36, 26, 36, 26, 36, 26,
341
342 36, 26, 36, 26, 36, 26, 36, 26, 36, 26,
343 36, 26, 28, 36, 26, 28, 36, 26, 27, 36,
344 26, 36, 26, 36, 26, 36, 26, 36, 26, 36,
345 26, 36, 26, 29, 36, 26, 29, 36, 26, 36,
346 26, 33, 36, 17, 44, 39, 39, 12, 39, 12,
347 39, 19, 38, 19, 38, 19, 19, 19, 38, 38,
348 19, 38, 38, 19, 38, 17, 18, 23, 23, 23,
349 37, 38, 37, 38, 37, 38, 37, 38, 36, 26,
350 36, 26, 36, 26, 36, 26, 36, 26, 27, 36,
351 26, 26, 34, 36, 26, 26, 36, 26, 36, 26,
352
353 26, 17, 12, 19, 19, 38, 38, 19, 38, 38,
354 19, 38, 17, 18, 37, 38, 37, 38, 36, 26,
355 36, 26, 36, 26, 36, 26, 36, 26, 27, 36,
356 26, 36, 26, 32, 36, 26, 32, 36, 26, 36,
357 26, 36, 26, 31, 36, 26, 31, 36, 26, 30,
358 36, 26, 30, 36, 17, 39, 39, 39, 12, 39,
359 19, 19, 21, 38, 38, 38, 19, 38, 38, 19,
360 38, 17, 18, 37, 38, 37, 38, 36, 26, 36,
361 26, 36, 26, 36, 26, 36, 26, 27, 36, 36,
362 26, 17, 12, 19, 19, 21, 38, 38, 38, 19,
363
364 38, 38, 19, 38, 17, 37, 38, 37, 38, 36,
365 26, 36, 26, 36, 26, 36, 26, 36, 28, 26,
366 27, 36, 28, 29, 26, 36, 36, 26, 36, 29,
367 17, 39, 39, 12, 39, 19, 19, 38, 24, 21,
368 38, 38, 19, 38, 38, 19, 38, 17, 37, 38,
369 37, 38, 36, 26, 36, 26, 36, 26, 36, 28,
370 27, 36, 26, 36, 36, 26, 36, 29, 19, 19,
371 38, 24, 21, 38, 38, 19, 38, 38, 19, 38,
372 17, 37, 38, 37, 38, 36, 26, 36, 26, 36,
373 27, 36, 32, 31, 30, 26, 36, 32, 36, 26,
374
375 36, 31, 30, 39, 19, 19, 38, 24, 25, 25,
376 21, 38, 38, 19, 38, 38, 19, 38, 17, 37,
377 38, 37, 38, 36, 26, 36, 28, 27, 36, 36,
378 26, 36, 29, 19, 19, 38, 24, 21, 38, 38,
379 19, 38, 38, 19, 38, 17, 37, 38, 37, 38,
380 36, 26, 36, 27, 36, 36, 26, 36, 16, 16,
381 19, 16, 16, 19, 16, 16, 16, 16, 38, 16,
382 16, 24, 25, 16, 16, 21, 38, 16, 16, 38,
383 16, 16, 19, 38, 16, 38, 16, 19, 38, 16,
384 16, 17, 16, 16, 37, 38, 16, 37, 38, 16,
385
386 16, 36, 16, 26, 36, 16, 27, 36, 32, 32,
387 36, 26, 36, 31, 31, 30, 30, 19, 24, 21,
388 38, 38, 19, 38, 17, 27, 36, 36, 26, 36,
389 35, 36, 26, 35, 36, 22, 22, 22, 22, 22,
390 15
391 } ;
392
393 static yyconst short int yy_accept[832] =
394 { 0,
395 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
396 1, 1, 1, 1, 1, 1, 1, 2, 4, 5,
397 8, 10, 12, 14, 17, 19, 22, 24, 26, 29,
398 31, 33, 36, 38, 41, 44, 47, 49, 51, 54,
399 57, 59, 61, 64, 66, 69, 71, 74, 77, 79,
400 81, 83, 85, 87, 90, 92, 95, 98, 100, 103,
401 106, 109, 112, 115, 117, 119, 121, 124, 126, 129,
402 131, 132, 132, 133, 133, 133, 134, 135, 136, 139,
403 141, 143, 145, 147, 149, 151, 152, 153, 154, 155,
404 156, 157, 157, 157, 158, 160, 162, 163, 165, 165,
405
406 165, 165, 166, 167, 167, 168, 169, 170, 170, 171,
407 171, 171, 172, 172, 173, 173, 173, 173, 174, 174,
408 174, 174, 174, 174, 174, 175, 175, 177, 179, 180,
409 180, 182, 184, 186, 188, 190, 192, 194, 196, 198,
410 200, 201, 202, 203, 203, 204, 205, 206, 207, 209,
411 210, 210, 211, 211, 211, 211, 211, 211, 212, 213,
412 214, 215, 216, 217, 219, 219, 219, 220, 220, 220,
413 220, 220, 222, 223, 223, 224, 224, 224, 225, 225,
414 225, 225, 225, 226, 228, 228, 229, 230, 231, 233,
415 235, 237, 239, 241, 243, 244, 247, 249, 251, 253,
416
417 255, 257, 259, 260, 262, 264, 265, 266, 266, 268,
418 268, 268, 268, 268, 268, 269, 270, 271, 272, 272,
419 273, 273, 273, 274, 274, 274, 274, 275, 275, 275,
420 275, 275, 277, 278, 279, 279, 279, 280, 280, 280,
421 281, 281, 281, 282, 283, 283, 283, 283, 284, 286,
422 288, 288, 289, 290, 292, 294, 296, 298, 300, 302,
423 304, 306, 308, 310, 312, 313, 315, 318, 321, 321,
424 323, 325, 327, 329, 331, 333, 334, 336, 339, 341,
425 344, 345, 346, 347, 348, 348, 348, 350, 352, 352,
426 353, 354, 356, 356, 357, 358, 358, 359, 359, 359,
427
428 359, 360, 361, 361, 363, 364, 364, 366, 366, 367,
429 367, 368, 368, 368, 369, 370, 371, 371, 371, 373,
430 375, 377, 379, 379, 380, 382, 384, 386, 388, 388,
431 388, 391, 391, 391, 391, 391, 392, 395, 396, 398,
432 400, 401, 401, 401, 402, 403, 403, 403, 403, 404,
433 404, 405, 405, 406, 406, 406, 406, 406, 407, 408,
434 408, 408, 410, 411, 413, 413, 414, 414, 414, 415,
435 415, 415, 415, 415, 415, 415, 417, 419, 419, 420,
436 422, 424, 426, 428, 428, 428, 431, 431, 431, 431,
437 431, 431, 431, 433, 434, 436, 439, 441, 443, 444,
438
439 446, 449, 449, 449, 449, 450, 452, 455, 456, 457,
440 458, 459, 461, 461, 462, 462, 463, 463, 463, 463,
441 465, 466, 466, 467, 467, 467, 469, 470, 472, 472,
442 473, 473, 474, 474, 474, 474, 474, 476, 478, 478,
443 479, 481, 483, 485, 487, 487, 487, 490, 490, 490,
444 490, 490, 490, 490, 490, 491, 491, 491, 492, 492,
445 492, 492, 492, 492, 492, 492, 493, 493, 493, 494,
446 494, 495, 495, 496, 496, 496, 496, 496, 496, 498,
447 499, 499, 500, 500, 502, 503, 505, 505, 506, 506,
448 506, 506, 506, 506, 506, 506, 508, 510, 510, 511,
449
450 513, 515, 517, 519, 519, 520, 520, 523, 523, 524,
451 524, 524, 524, 524, 525, 525, 527, 527, 527, 527,
452 528, 530, 530, 530, 531, 531, 531, 531, 531, 531,
453 532, 533, 534, 536, 536, 537, 537, 538, 538, 538,
454 538, 539, 540, 540, 540, 542, 542, 543, 543, 545,
455 546, 548, 548, 548, 549, 549, 549, 549, 549, 549,
456 551, 553, 553, 554, 556, 558, 560, 560, 561, 561,
457 563, 563, 563, 563, 563, 565, 565, 565, 565, 566,
458 568, 568, 568, 568, 568, 568, 569, 569, 569, 569,
459 569, 569, 570, 570, 571, 571, 571, 571, 571, 572,
460
461 573, 573, 573, 575, 575, 576, 576, 578, 579, 581,
462 581, 581, 582, 582, 582, 582, 582, 582, 582, 582,
463 584, 586, 586, 587, 589, 591, 591, 593, 593, 594,
464 594, 594, 595, 595, 596, 598, 599, 599, 599, 600,
465 602, 603, 603, 603, 603, 604, 604, 604, 605, 605,
466 606, 606, 607, 607, 607, 607, 608, 608, 609, 610,
467 611, 611, 613, 613, 614, 614, 616, 617, 619, 619,
468 619, 620, 620, 620, 620, 620, 620, 622, 624, 624,
469 625, 627, 628, 630, 630, 630, 631, 633, 633, 633,
470 634, 634, 634, 634, 635, 635, 636, 636, 636, 636,
471
472 636, 637, 638, 638, 638, 640, 640, 641, 641, 643,
473 644, 646, 646, 646, 647, 647, 647, 647, 647, 647,
474 647, 647, 649, 651, 651, 652, 654, 656, 656, 656,
475 657, 659, 659, 659, 659, 659, 660, 662, 663, 665,
476 666, 667, 668, 670, 671, 673, 674, 675, 678, 679,
477 681, 682, 685, 687, 690, 690, 691, 693, 694, 694,
478 694, 694, 694, 697, 700, 701, 703, 706, 709, 709,
479 710, 711, 712, 714, 715, 715, 716, 717, 717, 718,
480 719, 720, 720, 722, 722, 723, 723, 725, 725, 725,
481 726, 726, 726, 726, 726, 726, 726, 728, 729, 731,
482
483 731, 731, 731, 731, 731, 733, 736, 736, 736, 736,
484 736, 736, 736, 736, 737, 738, 738, 738, 738, 739,
485 740, 741, 741, 741, 741, 741, 741, 741, 741, 742,
486 742
487 } ;
488
489 static yyconst int yy_ec[256] =
490 { 0,
491 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
492 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
493 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
494 1, 2, 5, 6, 7, 1, 1, 1, 1, 8,
495 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
496 19, 19, 19, 19, 19, 20, 21, 22, 12, 23,
497 24, 25, 1, 26, 35, 36, 37, 37, 38, 39,
498 40, 41, 41, 41, 42, 43, 41, 44, 45, 46,
499 41, 47, 48, 49, 50, 41, 41, 41, 51, 41,
500 29, 30, 31, 32, 33, 34, 35, 36, 37, 37,
501
502 38, 39, 40, 41, 41, 41, 42, 43, 41, 44,
503 45, 46, 41, 47, 48, 49, 50, 41, 41, 41,
504 51, 41, 1, 1, 1, 1, 1, 1, 1, 1,
505 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
506 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
507 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
508 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
509 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
510 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
511 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
512
513 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
514 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
515 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
516 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
517 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
518 1, 1, 1, 1, 1
519 } ;
520
521 static yyconst int yy_meta[52] =
522 { 0,
523 1, 2, 3, 4, 1, 5, 1, 6, 6, 1,
524 7, 6, 8, 9, 10, 11, 11, 11, 11, 11,
525 11, 12, 6, 1, 6, 13, 14, 15, 6, 5,
526 6, 1, 16, 1, 14, 14, 14, 17, 14, 15,
527 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
528 15
529 } ;
530
531 static yyconst short int yy_base[996] =
532 { 0,
533 0, 6, 8, 9, 56, 84, 14, 20, 28, 70,
534 113, 0, 1905, 2, 151, 170, 1904,11787,11787, 0,
535 80,11787, 7, 0,11787,11787, 187,11787, 24, 99,
536 1878, 0, 1882, 13, 1864, 51, 1856, 0, 98, 0,
537 0, 171, 172, 64, 175, 207, 0, 235,11787, 253,
538 279, 176, 330, 364, 1863, 415, 451, 234, 130, 61,
539 172, 63, 1836, 0,11787, 196,11787, 331, 463, 480,
540 0, 213,11787, 207, 255,11787, 0,11787, 486, 492,
541 11787,11787,11787,11787,11787, 220, 306,11787,11787,11787,
542 0, 1857, 1825, 0, 223, 0, 0, 226, 79, 1832,
543
544 513, 187, 249, 1847, 563, 593, 624, 660, 0, 562,
545 686, 0, 0, 736, 774, 808, 842, 893, 929, 955,
546 962, 1836, 1001, 1035, 1086, 592, 1137, 1173, 1197, 725,
547 745, 1791, 1794, 1785, 1784, 1773, 1773, 1793, 1756, 1735,
548 0, 355,11787, 1769, 751, 320, 346, 265, 773, 807,
549 391,11787, 347, 1236, 941, 1758, 1742, 1286, 1317, 974,
550 1752, 1367, 1003, 745, 0, 300, 1404, 1441, 1462, 1496,
551 1530, 1564, 1614, 800, 1652, 1690, 1697, 1721, 1185, 1733,
552 1209, 220, 1760, 1794, 1828, 1879, 1915, 1954, 2005, 2056,
553 2092, 0, 0, 2116, 2155, 1285, 1701, 1697, 1684, 1676,
554
555 1680, 1681, 2206, 1672, 1667, 0, 1356, 2247, 1378, 1393,
556 1669, 2268, 2302, 1410, 1418, 1663, 2336, 1430, 2386, 2423,
557 0, 681, 2443, 2480, 799, 1461, 833, 2501, 2535, 2569,
558 2603, 2653, 1497, 2690, 1529, 1027, 2711, 2749, 1642, 2756,
559 1634, 1603, 1620, 1626, 317, 0, 2795, 2846, 2880, 2914,
560 2948, 2999, 3033, 3067, 3118, 1709, 1733, 1760, 1794, 1927,
561 2104, 2128, 2268, 1632, 3169, 3220, 269, 2392, 1343, 3242,
562 243, 1637, 410, 249, 1635, 3264, 3315, 354, 1616, 1614,
563 2375, 3336, 3362, 3396, 1612, 2401, 3430, 2412, 3468, 3481,
564 3507, 0, 0, 2432, 3557, 3594, 1026, 3615, 3649, 3683,
565
566 3717, 2451, 1611, 3767, 3804, 2459, 1487, 1488, 3825, 3863,
567 3870, 2469, 1595,11787, 2500, 1384, 402, 470, 3909, 0,
568 3943, 3977, 4011, 4062, 4096, 2534, 2568, 2642, 4147, 307,
569 2659, 1547, 1546, 497, 133, 4181, 2666, 4232, 2769, 2846,
570 4283, 4322, 704, 4373, 2679, 2882, 0, 2914, 3364, 0,
571 4423, 4460, 1521, 4481, 4515, 4549, 4583, 3546, 3565, 2999,
572 3033, 4633, 4670, 1647, 1556, 4691, 3220, 4729, 3571, 1565,
573 1554, 1537, 500, 521, 0, 4751, 4785, 4819, 4870, 4904,
574 3315, 3583, 3614, 1509, 1517, 3648, 3682, 1502, 1504, 1494,
575 1523, 1480, 4955, 0, 5006, 405, 3756, 3776, 0, 5040,
576
577 424, 1476, 1483, 1464, 0, 5074, 503, 3782, 3793, 1494,
578 1473, 3882, 0, 5107, 5144, 1785, 5165, 5199, 5233, 5267,
579 3910, 231, 5305, 3945, 1469, 5325, 5362, 1819, 1786, 5383,
580 5421, 3977, 1452, 1449, 569, 599, 5443, 5477, 5511, 5562,
581 5596, 4062, 4147, 4320, 4329, 1432, 4412, 462, 4429, 1421,
582 1419, 1416, 557, 1407, 5647, 5698, 649, 5732, 5783, 320,
583 4436, 1403, 1357, 5817, 770, 4449, 4482, 4514, 4550, 0,
584 5850, 5887, 2293, 5908, 5942, 5976, 6010, 4622, 6044, 6095,
585 462, 4641, 4649, 6128, 6165, 2297, 2527, 6186, 6236, 1292,
586 1288, 1277, 693, 694, 0, 6258, 6292, 6326, 6377, 6411,
587
588 0, 4659, 4751, 587, 4785, 1250, 4870, 747, 817, 1283,
589 1256, 1254, 763, 974, 1248, 6436, 1200, 1201, 1185, 6487,
590 6525, 1173, 735, 5096, 1160, 818, 1151, 1160, 1119, 385,
591 5115, 1148, 5006, 0, 6563, 6600, 2526, 6621, 6655, 6689,
592 6723, 6744, 6776, 1117, 6797, 559, 5123, 5040, 6817, 6854,
593 2560, 517, 2595, 6875, 6913, 1123, 1121, 814, 849, 6935,
594 6969, 6977, 7028, 7062, 0, 5074, 889, 1209, 1106, 7113,
595 972, 1091, 1031, 1082, 7138, 5133, 1068, 1073, 7174, 7198,
596 5164, 1060, 1048, 1055, 1133, 1431, 5198, 1050, 1019, 5232,
597 0, 7236, 7273, 2594, 7294, 7328, 7362, 7396, 7430, 5315,
598
599 7454, 5332, 5339, 5351, 5445, 5479, 7479, 7516, 2871, 5562,
600 2872, 7537, 7575, 1035, 1025, 1021, 850, 901, 0, 7597,
601 7631, 7665, 7716, 7750, 0, 984, 7801, 1207, 1471, 1004,
602 1225, 1539, 1232, 1769, 7837, 5839, 971, 966, 7861, 7885,
603 5856, 962, 946, 906, 5863, 877, 870, 891, 0, 7923,
604 7960, 2905, 7981, 8015, 8049, 8083, 8117, 8138, 1365, 8158,
605 869, 8171, 589, 5876, 5698, 8191, 8228, 2939, 877, 2940,
606 8249, 8287, 875, 873, 948, 988, 8309, 8343, 8351, 8402,
607 8436, 851, 8487, 854, 819, 8523, 8547, 813, 807, 773,
608 751, 765, 0, 8585, 8622, 3024, 8643, 8677, 8711, 8745,
609
610 8779, 5907, 5941, 5783, 5976, 6012, 6097, 6117, 8812, 8849,
611 3058, 5817, 3025, 8870, 8908, 726, 695, 689, 1094, 1145,
612 0, 8930, 8964, 8998, 9049, 9083, 9134, 1280, 642, 9170,
613 9194, 634, 1472, 569, 1506,11787, 795, 3357, 6134, 6143,
614 9221, 1366, 9242, 9276, 9298, 6226, 574, 9317, 938, 6154,
615 6258, 9337, 9374, 3387, 6292, 3388, 9395, 9433, 576, 565,
616 1244, 1418, 9455, 9489, 9497, 9533, 9557, 6377, 1540, 1803,
617 546, 9581, 9605, 520, 1648, 2248, 516, 1731, 2302, 1056,
618 0, 442, 0, 1182, 6537, 6449, 0, 422, 6552, 0,
619 418, 399, 348, 1571, 1660, 0, 6569, 9629, 9653, 6576,
620
621 314, 286, 1747, 270, 0, 0, 6589, 237, 6620, 217,
622 1835, 170, 696, 6654, 6688, 151, 53, 3502,11787, 6723,
623 1399, 50, 47, 6750, 6776, 3, 6806, 6823,11787,11787,
624 9692, 9709, 9726, 9743, 9760, 9777, 9794, 9804, 9821, 9838,
625 9855, 9872, 9889, 9906, 9923, 9940, 9957, 9974, 9983,10000,
626 10017,10034,10051,10060,10077,10094,10102,10119,10136,10145,
627 10162,10179,10187,10204,10221,10231,10240,10256,10267,10284,
628 10291,10299,10306,10323,10340,10357,10374,10391,10408,10425,
629 10435,10452,10461,10478,10495,10502,10510,10518,10535,10552,
630 10562,10571,10588,10605,10612,10619,10627,10634,10651,10668,
631
632 10685,10702,10719,10728,10745,10762,10769,10776,10784,10792,
633 10809,10826,10836,10846,10855,10872,10889,10906,10913,10920,
634 10928,10935,10952,10969,10979,10989,10998,11015,11032,11049,
635 11065,11066,11073,11081,11089,11106,11123,11133,11143,11153,
636 11162,11179,11196,11213,11230,11237,11244,11252,11259,11276,
637 11293,11302,11319,11336,11353,11360,11367,11375,11383,11400,
638 11417,11426,11443,11460,11477,11484,11491,11499,11506,11523,
639 11540,11550,11560,11570,11586,11602,11613,11630,11637,11644,
640 11652,11660,11677,11684,11691,11699,11706,11713,11721,11729,
641 11737,11745,11753,11761,11769
642
643 } ;
644
645 static yyconst short int yy_def[996] =
646 { 0,
647 831, 831, 832, 832, 833, 833, 834, 834, 835, 835,
648 830, 11, 836, 836, 11, 11, 830, 830, 830, 837,
649 830, 830, 838, 839, 830, 830, 840, 830, 830, 830,
650 830, 841, 830, 830, 830, 830, 830, 842, 842, 843,
651 844, 830, 845, 846, 830, 846, 847, 848, 830, 846,
652 830, 849, 850, 830, 830, 830, 56, 51, 56, 56,
653 57, 57, 57, 851, 830, 851, 830, 849, 54, 50,
654 837, 830, 830, 838, 838, 830, 839, 830, 830, 830,
655 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
656 841, 830, 830, 842, 842, 843, 844, 845, 846, 852,
657
658 830, 846, 846, 847, 848, 853, 830, 852, 50, 51,
659 830, 51, 854, 854, 855, 856, 830, 830, 830, 118,
660 120, 857, 858, 830, 830, 119, 830, 127, 125, 111,
661 128, 128, 127, 128, 128, 128, 128, 128, 128, 128,
662 859, 859, 830, 854, 118, 846, 846, 70, 830, 830,
663 830, 830, 852, 830, 101, 101, 830, 853, 830, 107,
664 107, 852, 111, 111, 860, 830, 860, 860, 861, 861,
665 862, 830, 172, 172, 830, 175, 176, 830, 178, 173,
666 830, 863, 858, 864, 830, 830, 186, 830, 830, 830,
667 190, 190, 191, 189, 830, 194, 191, 191, 191, 191,
668
669 191, 191, 830, 191, 191, 860, 175, 70, 830, 154,
670 154, 865, 865, 866, 159, 159, 830, 217, 162, 111,
671 867, 868, 867, 867, 868, 830, 224, 869, 869, 870,
672 830, 231, 231, 231, 231, 232, 830, 237, 238, 830,
673 871, 240, 830, 830, 872, 873, 830, 874, 875, 875,
674 830, 876, 876, 830, 830, 255, 255, 255, 255, 255,
675 255, 255, 255, 255, 830, 877, 265, 255, 830, 255,
676 270, 270, 270, 270, 270, 830, 878, 276, 270, 270,
677 237, 879, 880, 880, 881, 881, 830, 287, 882, 882,
678 830, 291, 883, 830, 883, 883, 296, 884, 884, 885,
679
680 830, 301, 301, 301, 301, 301, 305, 304, 830, 309,
681 830, 311, 886, 830, 830, 830, 887, 888, 874, 319,
682 889, 889, 830, 890, 830, 325, 325, 325, 877, 830,
683 325, 830, 830, 830, 830, 830, 325, 830, 325, 325,
684 830, 276, 830, 830, 309, 284, 891, 891, 287, 892,
685 892, 892, 352, 893, 893, 894, 830, 357, 357, 357,
686 357, 357, 357, 363, 362, 830, 830, 366, 830, 830,
687 895, 896, 830, 897, 898, 899, 899, 830, 900, 830,
688 380, 380, 380, 830, 830, 380, 830, 830, 830, 830,
689 830, 830, 830, 338, 901, 338, 380, 380, 341, 902,
690
691 341, 830, 830, 830, 344, 903, 344, 366, 284, 891,
692 348, 287, 904, 904, 904, 415, 905, 905, 906, 830,
693 420, 420, 420, 423, 423, 423, 423, 427, 426, 830,
694 430, 830, 907, 908, 909, 910, 911, 911, 830, 912,
695 830, 441, 441, 441, 830, 830, 441, 913, 830, 830,
696 830, 830, 914, 830, 830, 901, 830, 830, 902, 830,
697 830, 830, 830, 903, 830, 430, 284, 348, 287, 915,
698 915, 915, 472, 916, 916, 917, 918, 475, 830, 918,
699 479, 480, 480, 480, 480, 485, 484, 830, 488, 830,
700 919, 920, 830, 921, 922, 923, 923, 830, 924, 830,
701
702 500, 500, 500, 925, 830, 830, 500, 913, 913, 830,
703 830, 830, 914, 914, 830, 455, 830, 830, 830, 830,
704 458, 830, 830, 830, 830, 926, 830, 830, 830, 488,
705 284, 468, 287, 927, 927, 927, 536, 928, 928, 929,
706 930, 539, 930, 542, 543, 545, 543, 543, 543, 543,
707 550, 931, 549, 830, 554, 932, 933, 934, 935, 936,
708 936, 543, 937, 830, 564, 564, 925, 925, 830, 830,
709 938, 830, 939, 940, 455, 830, 830, 830, 520, 521,
710 830, 830, 830, 830, 926, 926, 830, 830, 830, 468,
711 941, 941, 941, 593, 942, 942, 943, 944, 944, 596,
712
713 945, 596, 599, 599, 599, 599, 599, 599, 608, 830,
714 607, 830, 612, 830, 946, 947, 830, 948, 949, 950,
715 950, 830, 951, 830, 624, 830, 830, 938, 938, 830,
716 939, 939, 940, 940, 579, 830, 830, 830, 579, 580,
717 830, 830, 830, 830, 830, 830, 830, 590, 952, 952,
718 952, 651, 953, 953, 954, 955, 955, 654, 945, 945,
719 658, 657, 662, 657, 657, 657, 657, 667, 830, 666,
720 830, 671, 956, 957, 958, 959, 960, 960, 657, 961,
721 830, 830, 830, 830, 830, 579, 580, 830, 830, 830,
722 830, 830, 962, 962, 962, 695, 963, 963, 964, 965,
723
724 965, 698, 660, 698, 701, 701, 701, 701, 701, 701,
725 710, 830, 709, 830, 714, 830, 966, 967, 830, 968,
726 969, 970, 970, 830, 971, 830, 830, 972, 830, 579,
727 580, 830, 973, 830, 974, 830, 975, 976, 830, 660,
728 660, 977, 978, 978, 660, 660, 745, 744, 748, 744,
729 744, 744, 744, 753, 830, 752, 830, 757, 979, 980,
730 981, 982, 983, 983, 744, 579, 580, 766, 972, 972,
731 830, 766, 580, 830, 973, 973, 830, 974, 974, 975,
732 745, 745, 748, 748, 744, 744, 752, 830, 744, 757,
733 830, 984, 985, 830, 986, 987, 766, 766, 580, 830,
734
735 988, 989, 990, 991, 766, 767, 830, 830, 830, 992,
736 830, 993, 830, 830, 830, 994, 995, 830, 830, 830,
737 830, 830, 830, 830, 830, 830, 830, 830, 830, 0,
738 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
739 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
740 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
741 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
742 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
743 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
744 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
745
746 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
747 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
748 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
749 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
750 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
751 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
752 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
753 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
754 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
755 830, 830, 830, 830, 830
756
757 } ;
758
759 static yyconst short int yy_nxt[11839] =
760 { 0,
761 830, 830, 19, 66, 67, 66, 20, 21, 22, 21,
762 25, 25, 20, 26, 26, 39, 30, 39, 830, 74,
763 40, 39, 30, 39, 827, 86, 40, 86, 76, 42,
764 30, 42, 23, 23, 43, 92, 90, 27, 27, 74,
765 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
766 23, 23, 23, 23, 23, 23, 23, 29, 30, 29,
767 31, 181, 32, 33, 809, 31, 31, 181, 31, 31,
768 31, 42, 30, 42, 90, 93, 43, 100, 34, 35,
769 36, 72, 73, 72, 37, 29, 30, 29, 31, 101,
770 32, 33, 100, 31, 31, 133, 31, 31, 31, 95,
771
772 87, 95, 87, 134, 101, 88, 34, 35, 36, 89,
773 138, 139, 37, 44, 45, 46, 45, 44, 47, 48,
774 49, 49, 44, 50, 49, 51, 52, 53, 54, 54,
775 54, 54, 54, 54, 55, 49, 44, 49, 44, 56,
776 57, 49, 49, 49, 44, 58, 44, 59, 56, 56,
777 56, 60, 57, 57, 57, 57, 57, 57, 61, 62,
778 57, 63, 57, 57, 68, 809, 69, 69, 69, 69,
779 69, 69, 86, 91, 86, 91, 86, 131, 86, 132,
780 391, 392, 70, 68, 181, 69, 69, 69, 69, 69,
781 69, 114, 114, 114, 114, 114, 114, 142, 143, 142,
782
783 100, 70, 79, 79, 79, 79, 80, 80, 87, 135,
784 87, 136, 101, 102, 72, 73, 72, 103, 137, 74,
785 100, 86, 81, 86, 95, 82, 95, 91, 830, 91,
786 83, 809, 101, 84, 181, 85, 91, 99, 91, 74,
787 91, 246, 91, 91, 470, 475, 91, 130, 106, 110,
788 110, 110, 110, 110, 110, 188, 91, 91, 793, 91,
789 107, 188, 100, 91, 91, 91, 108, 74, 109, 109,
790 109, 109, 109, 109, 101, 99, 76, 208, 101, 99,
791 337, 99, 247, 99, 181, 99, 340, 74, 99, 99,
792 330, 110, 111, 99, 112, 112, 112, 112, 112, 112,
793
794 809, 166, 99, 166, 101, 110, 110, 151, 152, 151,
795 99, 110, 99, 110, 110, 110, 110, 110, 110, 110,
796 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
797 99, 181, 99, 100, 99, 793, 99, 222, 246, 99,
798 99, 384, 99, 115, 144, 101, 114, 114, 114, 114,
799 114, 114, 385, 99, 522, 101, 142, 143, 142, 100,
800 100, 99, 99, 99, 99, 523, 99, 247, 99, 122,
801 99, 101, 154, 99, 99, 343, 110, 117, 116, 118,
802 118, 118, 118, 118, 118, 119, 830, 99, 830, 101,
803 120, 121, 151, 152, 151, 99, 110, 99, 120, 120,
804
805 120, 120, 120, 121, 121, 121, 121, 121, 121, 121,
806 121, 121, 121, 121, 121, 99, 181, 99, 247, 99,
807 793, 99, 188, 246, 99, 99, 457, 123, 124, 116,
808 125, 125, 125, 125, 125, 125, 126, 247, 99, 718,
809 101, 127, 128, 800, 339, 460, 99, 123, 99, 127,
810 127, 127, 127, 127, 128, 128, 128, 128, 128, 128,
811 128, 128, 128, 128, 128, 128, 129, 129, 129, 129,
812 129, 129, 830, 153, 508, 534, 538, 128, 145, 145,
813 145, 145, 145, 145, 181, 128, 128, 128, 128, 128,
814 146, 375, 147, 100, 508, 148, 148, 148, 148, 148,
815
816 148, 149, 149, 149, 149, 150, 150, 150, 150, 150,
817 150, 150, 150, 99, 181, 99, 247, 99, 552, 99,
818 552, 246, 99, 99, 465, 155, 100, 99, 156, 156,
819 156, 156, 156, 156, 389, 181, 99, 465, 101, 155,
820 155, 460, 375, 390, 99, 155, 99, 155, 155, 155,
821 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
822 155, 155, 155, 155, 91, 99, 91, 457, 91, 513,
823 91, 91, 591, 596, 91, 130, 106, 110, 110, 110,
824 110, 110, 110, 181, 91, 91, 793, 91, 107, 513,
825 375, 91, 91, 91, 91, 153, 91, 718, 91, 567,
826
827 91, 91, 693, 698, 91, 153, 91, 179, 179, 179,
828 179, 179, 179, 181, 91, 91, 777, 91, 159, 567,
829 495, 91, 91, 91, 105, 91, 99, 91, 105, 91,
830 105, 91, 91, 105, 105, 91, 160, 106, 105, 161,
831 161, 161, 161, 161, 161, 91, 91, 105, 91, 107,
832 160, 160, 91, 91, 91, 105, 160, 105, 160, 160,
833 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
834 160, 160, 160, 160, 160, 162, 162, 162, 162, 162,
835 162, 774, 225, 517, 225, 154, 153, 518, 153, 771,
836 153, 226, 153, 226, 519, 153, 153, 818, 163, 818,
837
838 153, 164, 164, 164, 164, 164, 164, 181, 181, 153,
839 122, 154, 163, 163, 375, 495, 718, 153, 163, 153,
840 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
841 163, 163, 163, 163, 163, 163, 163, 166, 402, 166,
842 163, 163, 163, 163, 163, 163, 166, 616, 166, 403,
843 404, 167, 167, 167, 167, 167, 167, 195, 130, 508,
844 196, 196, 196, 196, 196, 196, 207, 207, 207, 207,
845 207, 207, 582, 168, 153, 513, 153, 735, 153, 508,
846 153, 583, 220, 153, 153, 734, 153, 165, 209, 209,
847 209, 209, 150, 150, 343, 513, 166, 153, 166, 154,
848
849 225, 830, 225, 830, 527, 153, 153, 153, 99, 226,
850 99, 226, 99, 221, 99, 528, 529, 99, 99, 733,
851 99, 170, 150, 150, 150, 150, 150, 150, 181, 508,
852 585, 99, 222, 101, 830, 495, 830, 233, 330, 99,
853 99, 99, 153, 830, 153, 830, 153, 732, 153, 508,
854 585, 153, 153, 729, 163, 165, 169, 172, 172, 172,
855 172, 172, 172, 181, 181, 153, 728, 154, 173, 173,
856 619, 495, 330, 153, 163, 153, 173, 173, 173, 173,
857 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
858 173, 173, 173, 99, 718, 99, 616, 99, 712, 99,
859
860 153, 567, 99, 99, 347, 110, 174, 171, 175, 175,
861 175, 175, 175, 175, 119, 181, 99, 692, 101, 176,
862 177, 567, 619, 691, 99, 110, 99, 176, 176, 176,
863 176, 176, 177, 177, 177, 177, 177, 177, 177, 177,
864 177, 177, 177, 177, 178, 178, 178, 178, 178, 178,
865 122, 830, 153, 690, 212, 179, 155, 155, 155, 155,
866 155, 155, 181, 179, 179, 179, 179, 179, 180, 619,
867 176, 176, 176, 176, 176, 176, 126, 177, 177, 177,
868 177, 177, 177, 830, 628, 689, 513, 217, 177, 160,
869 160, 160, 160, 160, 160, 343, 177, 177, 177, 177,
870
871 177, 99, 181, 99, 628, 99, 513, 99, 688, 721,
872 99, 99, 685, 123, 130, 99, 130, 684, 163, 163,
873 163, 163, 163, 163, 99, 269, 101, 830, 830, 830,
874 830, 682, 99, 123, 99, 153, 830, 153, 830, 153,
875 293, 153, 122, 631, 153, 153, 616, 163, 165, 169,
876 173, 173, 173, 173, 173, 173, 492, 166, 153, 166,
877 154, 184, 184, 631, 302, 647, 153, 163, 153, 184,
878 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
879 184, 184, 184, 184, 184, 184, 99, 646, 99, 644,
880 99, 643, 99, 222, 633, 99, 99, 642, 123, 185,
881
882 171, 186, 186, 186, 186, 186, 186, 126, 181, 99,
883 638, 101, 186, 187, 633, 619, 637, 99, 123, 99,
884 186, 186, 186, 186, 186, 187, 187, 187, 187, 187,
885 187, 187, 187, 187, 187, 187, 187, 99, 630, 99,
886 626, 99, 616, 99, 492, 585, 99, 99, 153, 188,
887 185, 171, 189, 189, 189, 189, 189, 189, 126, 181,
888 99, 590, 101, 190, 191, 585, 721, 589, 99, 188,
889 99, 192, 192, 192, 192, 192, 193, 193, 193, 193,
890 193, 193, 193, 193, 193, 193, 193, 193, 194, 194,
891 194, 194, 194, 194, 830, 830, 153, 588, 587, 191,
892
893 242, 242, 242, 242, 242, 242, 584, 193, 193, 193,
894 193, 193, 187, 187, 187, 187, 187, 187, 830, 628,
895 581, 567, 578, 187, 243, 244, 243, 243, 243, 243,
896 330, 187, 187, 187, 187, 187, 153, 631, 153, 628,
897 153, 567, 153, 577, 633, 153, 153, 576, 210, 100,
898 153, 211, 211, 211, 211, 211, 211, 631, 181, 153,
899 574, 154, 210, 210, 633, 721, 573, 153, 210, 153,
900 210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
901 210, 210, 210, 210, 210, 210, 210, 91, 153, 91,
902 572, 91, 769, 91, 91, 571, 569, 91, 122, 106,
903
904 268, 268, 268, 268, 268, 268, 269, 91, 91, 492,
905 91, 159, 769, 372, 91, 91, 91, 158, 91, 153,
906 91, 158, 91, 158, 91, 91, 158, 158, 91, 215,
907 106, 158, 216, 216, 216, 216, 216, 216, 91, 91,
908 158, 91, 159, 215, 215, 91, 91, 91, 158, 215,
909 158, 215, 215, 215, 215, 215, 215, 215, 215, 215,
910 215, 215, 215, 215, 215, 215, 215, 215, 166, 526,
911 166, 281, 281, 281, 281, 281, 281, 332, 100, 100,
912 100, 333, 162, 162, 162, 162, 162, 162, 334, 335,
913 154, 101, 154, 150, 150, 150, 150, 150, 150, 314,
914
915 314, 314, 314, 314, 219, 166, 212, 166, 210, 210,
916 210, 210, 210, 210, 819, 819, 819, 819, 819, 223,
917 223, 223, 223, 223, 223, 286, 286, 286, 286, 286,
918 286, 217, 181, 215, 215, 215, 215, 215, 215, 796,
919 525, 224, 225, 585, 225, 288, 288, 288, 288, 288,
920 288, 226, 343, 226, 515, 512, 227, 227, 227, 227,
921 227, 227, 153, 585, 153, 511, 153, 510, 153, 506,
922 492, 153, 153, 372, 153, 228, 294, 294, 294, 294,
923 294, 294, 470, 628, 775, 153, 468, 154, 830, 830,
924 830, 830, 457, 153, 153, 153, 153, 153, 153, 163,
925
926 153, 350, 153, 628, 775, 153, 153, 347, 153, 221,
927 306, 463, 302, 302, 302, 302, 302, 302, 778, 153,
928 462, 154, 830, 461, 830, 359, 454, 153, 153, 153,
929 99, 830, 99, 830, 99, 453, 99, 452, 778, 99,
930 99, 451, 99, 228, 302, 302, 302, 302, 302, 302,
931 450, 631, 769, 99, 446, 101, 445, 830, 122, 830,
932 460, 99, 99, 99, 153, 166, 153, 166, 153, 413,
933 153, 631, 769, 153, 153, 372, 163, 231, 229, 232,
934 232, 232, 232, 232, 232, 181, 241, 153, 388, 154,
935 233, 233, 721, 421, 387, 153, 163, 153, 233, 233,
936
937 233, 234, 233, 233, 233, 233, 233, 233, 233, 233,
938 233, 233, 233, 233, 233, 830, 372, 830, 312, 312,
939 312, 312, 312, 312, 350, 347, 188, 235, 344, 233,
940 233, 233, 233, 233, 233, 314, 314, 314, 314, 314,
941 314, 315, 315, 316, 314, 314, 314, 341, 830, 338,
942 830, 233, 99, 830, 99, 122, 99, 153, 99, 163,
943 775, 99, 99, 830, 110, 236, 230, 237, 237, 237,
944 237, 237, 237, 119, 181, 99, 218, 101, 238, 239,
945 775, 796, 213, 99, 110, 99, 238, 238, 238, 238,
946 238, 239, 239, 239, 239, 239, 239, 239, 239, 239,
947
948 239, 239, 239, 235, 280, 238, 238, 238, 238, 238,
949 238, 126, 239, 239, 239, 239, 239, 239, 830, 279,
950 275, 274, 273, 239, 324, 324, 324, 324, 324, 324,
951 272, 239, 239, 239, 239, 239, 240, 240, 240, 240,
952 240, 240, 241, 778, 271, 270, 221, 242, 324, 324,
953 324, 324, 324, 324, 830, 242, 242, 242, 242, 242,
954 99, 181, 99, 778, 99, 218, 99, 214, 796, 99,
955 99, 213, 123, 247, 99, 327, 327, 327, 327, 327,
956 327, 633, 206, 99, 205, 101, 830, 830, 830, 830,
957 465, 99, 123, 99, 153, 830, 153, 830, 153, 470,
958
959 153, 633, 204, 153, 153, 203, 248, 235, 229, 328,
960 328, 328, 328, 328, 328, 769, 202, 153, 201, 154,
961 830, 200, 830, 480, 457, 153, 248, 153, 153, 153,
962 153, 163, 153, 199, 153, 769, 198, 153, 153, 197,
963 163, 221, 229, 233, 233, 233, 233, 233, 233, 181,
964 181, 153, 157, 154, 250, 250, 796, 154, 92, 153,
965 163, 153, 250, 250, 250, 250, 250, 250, 250, 250,
966 250, 250, 250, 250, 250, 250, 250, 250, 250, 99,
967 90, 99, 140, 99, 122, 99, 90, 90, 99, 99,
968 90, 123, 251, 230, 252, 252, 252, 252, 252, 252,
969
970 126, 90, 99, 830, 101, 252, 253, 65, 830, 830,
971 99, 123, 99, 252, 252, 252, 252, 252, 253, 253,
972 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
973 253, 253, 253, 253, 253, 253, 830, 830, 830, 830,
974 830, 253, 328, 328, 328, 328, 328, 328, 830, 253,
975 253, 253, 253, 253, 99, 830, 99, 830, 99, 830,
976 99, 830, 830, 99, 99, 830, 188, 130, 99, 183,
977 183, 183, 183, 183, 183, 830, 830, 99, 830, 101,
978 183, 183, 830, 830, 830, 99, 188, 99, 254, 254,
979 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
980
981 254, 254, 254, 254, 254, 99, 830, 99, 830, 99,
982 830, 99, 830, 830, 99, 99, 830, 188, 251, 230,
983 255, 255, 255, 255, 255, 255, 126, 830, 99, 830,
984 101, 252, 253, 830, 830, 830, 99, 188, 99, 256,
985 256, 256, 256, 256, 257, 257, 257, 257, 257, 257,
986 257, 257, 257, 257, 257, 257, 99, 830, 99, 830,
987 99, 830, 99, 830, 830, 99, 99, 830, 188, 251,
988 230, 258, 258, 258, 258, 258, 258, 126, 830, 99,
989 830, 101, 259, 260, 830, 830, 830, 99, 188, 99,
990 261, 261, 261, 261, 261, 262, 262, 262, 262, 262,
991
992 262, 262, 262, 262, 262, 262, 262, 263, 263, 263,
993 263, 263, 263, 830, 830, 830, 830, 830, 260, 328,
994 328, 328, 328, 328, 328, 830, 262, 262, 262, 262,
995 262, 264, 264, 264, 264, 264, 264, 830, 830, 830,
996 830, 830, 253, 328, 328, 328, 328, 328, 328, 830,
997 257, 257, 257, 257, 257, 99, 830, 99, 830, 99,
998 830, 99, 830, 830, 99, 99, 830, 265, 130, 99,
999 266, 266, 266, 266, 266, 266, 830, 830, 99, 830,
1000 101, 266, 266, 830, 830, 830, 99, 265, 99, 267,
1001 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
1002
1003 267, 267, 267, 267, 267, 267, 99, 830, 99, 830,
1004 99, 830, 99, 830, 830, 99, 99, 830, 276, 130,
1005 99, 277, 277, 277, 277, 277, 277, 830, 830, 99,
1006 830, 101, 277, 277, 830, 830, 830, 99, 276, 99,
1007 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1008 278, 278, 278, 278, 278, 278, 278, 99, 830, 99,
1009 775, 830, 282, 282, 282, 282, 282, 282, 153, 460,
1010 153, 830, 153, 830, 153, 830, 830, 153, 153, 830,
1011 775, 830, 153, 327, 327, 327, 327, 327, 327, 830,
1012 830, 153, 830, 154, 830, 830, 830, 830, 830, 153,
1013
1014 830, 153, 153, 830, 153, 830, 153, 153, 153, 163,
1015 830, 153, 153, 830, 778, 830, 153, 284, 284, 284,
1016 284, 284, 284, 465, 830, 153, 830, 154, 830, 830,
1017 830, 830, 830, 153, 778, 153, 158, 91, 153, 91,
1018 158, 91, 158, 91, 91, 158, 158, 91, 287, 91,
1019 158, 287, 287, 287, 287, 287, 287, 91, 91, 158,
1020 91, 159, 287, 287, 91, 91, 91, 158, 287, 158,
1021 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
1022 287, 287, 287, 287, 287, 287, 287, 225, 830, 225,
1023 345, 345, 345, 345, 345, 345, 289, 830, 289, 830,
1024
1025 830, 290, 290, 290, 290, 290, 290, 331, 331, 331,
1026 331, 331, 331, 269, 348, 830, 286, 286, 286, 286,
1027 286, 286, 830, 153, 225, 349, 225, 288, 288, 288,
1028 288, 288, 288, 289, 830, 291, 130, 830, 292, 292,
1029 292, 292, 292, 292, 166, 830, 166, 294, 294, 294,
1030 294, 294, 294, 830, 830, 830, 830, 830, 295, 295,
1031 295, 295, 295, 295, 360, 830, 359, 359, 359, 359,
1032 359, 359, 350, 830, 359, 359, 359, 359, 359, 359,
1033 296, 225, 830, 225, 370, 370, 370, 370, 370, 370,
1034 226, 830, 226, 830, 830, 297, 297, 297, 297, 297,
1035
1036 297, 153, 830, 153, 830, 153, 830, 153, 830, 830,
1037 153, 153, 830, 153, 293, 314, 314, 314, 314, 314,
1038 314, 830, 830, 830, 153, 830, 154, 830, 830, 830,
1039 830, 830, 153, 153, 153, 153, 830, 153, 830, 153,
1040 534, 153, 830, 830, 153, 153, 830, 153, 299, 379,
1041 379, 379, 379, 379, 379, 830, 830, 830, 153, 830,
1042 154, 830, 830, 830, 541, 830, 153, 153, 153, 99,
1043 153, 99, 163, 99, 830, 99, 830, 830, 99, 99,
1044 830, 99, 299, 382, 382, 382, 382, 382, 382, 830,
1045 830, 830, 99, 830, 101, 830, 830, 830, 830, 830,
1046
1047 99, 99, 99, 153, 830, 153, 830, 153, 591, 153,
1048 830, 830, 153, 153, 830, 163, 293, 298, 301, 301,
1049 301, 301, 301, 301, 830, 830, 153, 830, 154, 302,
1050 302, 830, 599, 830, 153, 163, 153, 302, 302, 302,
1051 302, 302, 302, 302, 302, 302, 302, 302, 302, 302,
1052 302, 302, 302, 302, 166, 830, 166, 383, 383, 383,
1053 383, 383, 383, 830, 830, 830, 303, 830, 304, 304,
1054 304, 304, 304, 304, 386, 386, 386, 386, 386, 386,
1055 269, 379, 379, 379, 379, 379, 379, 830, 830, 830,
1056 305, 225, 830, 225, 408, 408, 408, 408, 408, 408,
1057
1058 289, 830, 291, 306, 830, 307, 307, 307, 307, 307,
1059 307, 99, 830, 99, 830, 99, 830, 99, 830, 830,
1060 99, 99, 830, 110, 308, 300, 309, 309, 309, 309,
1061 309, 309, 119, 830, 99, 830, 101, 310, 310, 830,
1062 830, 830, 99, 110, 99, 310, 310, 310, 310, 310,
1063 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
1064 310, 310, 306, 830, 310, 310, 310, 310, 310, 310,
1065 126, 311, 311, 311, 311, 311, 311, 241, 830, 830,
1066 830, 830, 312, 830, 379, 379, 379, 379, 379, 379,
1067 312, 312, 312, 312, 312, 153, 830, 153, 830, 153,
1068
1069 830, 153, 830, 830, 153, 153, 830, 163, 830, 153,
1070 163, 163, 163, 163, 163, 163, 397, 830, 153, 830,
1071 154, 319, 319, 830, 830, 830, 153, 163, 153, 319,
1072 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
1073 319, 319, 319, 319, 319, 319, 153, 830, 153, 830,
1074 153, 830, 153, 830, 830, 153, 153, 830, 248, 130,
1075 153, 379, 379, 379, 379, 379, 379, 830, 830, 153,
1076 830, 154, 830, 830, 830, 830, 830, 153, 248, 153,
1077 153, 153, 153, 163, 153, 649, 153, 830, 830, 153,
1078 153, 830, 248, 306, 298, 830, 398, 409, 409, 409,
1079
1080 409, 409, 409, 153, 830, 154, 830, 830, 830, 656,
1081 830, 153, 248, 153, 153, 830, 153, 830, 153, 830,
1082 153, 830, 830, 153, 153, 830, 248, 306, 298, 411,
1083 411, 411, 411, 411, 411, 830, 830, 153, 830, 154,
1084 830, 830, 830, 830, 830, 153, 248, 153, 153, 153,
1085 153, 163, 153, 693, 153, 830, 830, 153, 153, 830,
1086 163, 293, 298, 302, 302, 302, 302, 302, 302, 830,
1087 830, 153, 830, 154, 322, 322, 830, 701, 830, 153,
1088 163, 153, 322, 322, 322, 322, 322, 322, 322, 322,
1089 322, 322, 322, 322, 322, 322, 322, 322, 322, 99,
1090
1091 830, 99, 830, 99, 830, 99, 830, 830, 99, 99,
1092 830, 123, 323, 300, 421, 421, 421, 421, 421, 421,
1093 126, 830, 99, 830, 101, 830, 830, 830, 830, 830,
1094 99, 123, 99, 99, 830, 99, 830, 99, 736, 99,
1095 830, 830, 99, 99, 830, 123, 323, 300, 423, 423,
1096 423, 423, 423, 423, 830, 830, 99, 830, 101, 830,
1097 830, 830, 743, 830, 99, 123, 99, 99, 153, 99,
1098 163, 99, 830, 99, 830, 830, 99, 99, 830, 188,
1099 247, 99, 183, 183, 183, 183, 183, 183, 830, 830,
1100 99, 830, 101, 183, 183, 830, 830, 830, 99, 188,
1101
1102 99, 254, 254, 254, 254, 254, 254, 254, 254, 254,
1103 254, 254, 254, 254, 254, 254, 254, 254, 99, 830,
1104 99, 830, 99, 830, 99, 830, 830, 99, 99, 830,
1105 188, 323, 300, 325, 325, 325, 325, 325, 325, 126,
1106 830, 99, 830, 101, 324, 324, 830, 830, 830, 99,
1107 188, 99, 326, 326, 326, 326, 326, 326, 326, 326,
1108 326, 326, 326, 326, 326, 326, 326, 326, 326, 99,
1109 830, 99, 830, 99, 830, 99, 830, 830, 99, 99,
1110 830, 265, 130, 99, 266, 266, 266, 266, 266, 266,
1111 830, 830, 99, 830, 101, 266, 266, 830, 830, 830,
1112
1113 99, 265, 99, 267, 267, 267, 267, 267, 267, 267,
1114 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
1115 99, 830, 99, 830, 99, 830, 99, 830, 830, 99,
1116 99, 830, 329, 247, 99, 432, 432, 432, 432, 432,
1117 432, 330, 830, 99, 830, 101, 830, 830, 830, 830,
1118 830, 99, 329, 99, 336, 830, 830, 328, 328, 328,
1119 328, 328, 328, 830, 99, 830, 99, 830, 99, 830,
1120 99, 830, 830, 99, 99, 830, 276, 130, 99, 277,
1121 277, 277, 277, 277, 277, 830, 830, 99, 830, 101,
1122 277, 277, 830, 830, 830, 99, 276, 99, 278, 278,
1123
1124 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
1125 278, 278, 278, 278, 278, 99, 830, 99, 830, 99,
1126 830, 99, 830, 830, 99, 99, 830, 342, 247, 99,
1127 440, 440, 440, 440, 440, 440, 343, 830, 99, 830,
1128 101, 830, 830, 830, 830, 830, 99, 342, 99, 100,
1129 830, 282, 282, 282, 282, 282, 282, 830, 225, 830,
1130 225, 101, 153, 830, 153, 830, 153, 226, 153, 226,
1131 830, 153, 153, 830, 830, 212, 153, 91, 830, 412,
1132 412, 412, 412, 412, 412, 153, 830, 154, 830, 830,
1133 830, 830, 830, 153, 830, 153, 153, 153, 153, 163,
1134
1135 153, 830, 153, 830, 830, 153, 153, 830, 830, 346,
1136 153, 284, 284, 284, 284, 284, 284, 830, 830, 153,
1137 830, 154, 830, 830, 830, 163, 830, 153, 830, 153,
1138 158, 91, 153, 91, 158, 91, 158, 91, 91, 158,
1139 158, 91, 287, 217, 158, 287, 287, 287, 287, 287,
1140 287, 91, 91, 158, 91, 159, 287, 287, 91, 91,
1141 91, 158, 287, 158, 287, 287, 287, 287, 287, 287,
1142 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
1143 287, 100, 830, 290, 290, 290, 290, 290, 290, 830,
1144 830, 830, 830, 154, 100, 830, 290, 290, 290, 290,
1145
1146 290, 290, 830, 818, 830, 818, 154, 153, 830, 153,
1147 830, 153, 824, 153, 824, 830, 153, 153, 830, 163,
1148 130, 153, 292, 292, 292, 292, 292, 292, 830, 830,
1149 153, 830, 154, 163, 163, 830, 830, 830, 153, 163,
1150 153, 163, 163, 163, 163, 163, 163, 163, 163, 163,
1151 163, 163, 163, 163, 163, 163, 163, 163, 166, 422,
1152 166, 423, 423, 423, 423, 423, 423, 830, 830, 830,
1153 830, 830, 351, 351, 351, 351, 351, 351, 424, 830,
1154 421, 421, 421, 421, 421, 421, 432, 432, 432, 432,
1155 432, 432, 241, 830, 352, 225, 830, 225, 443, 443,
1156
1157 443, 443, 443, 443, 226, 830, 226, 830, 830, 353,
1158 353, 353, 353, 353, 353, 153, 830, 153, 830, 153,
1159 830, 153, 830, 830, 153, 153, 830, 153, 354, 444,
1160 444, 444, 444, 444, 444, 830, 830, 830, 153, 830,
1161 154, 830, 830, 830, 830, 830, 153, 153, 153, 153,
1162 830, 153, 830, 153, 830, 153, 830, 830, 153, 153,
1163 830, 153, 350, 447, 447, 447, 447, 447, 447, 269,
1164 830, 830, 153, 830, 154, 830, 830, 830, 830, 830,
1165 153, 153, 153, 99, 830, 99, 830, 99, 830, 99,
1166 830, 830, 99, 99, 448, 99, 354, 449, 449, 449,
1167
1168 449, 449, 449, 830, 830, 830, 99, 830, 101, 830,
1169 830, 830, 830, 830, 99, 99, 99, 153, 830, 153,
1170 830, 153, 830, 153, 830, 830, 153, 153, 830, 163,
1171 357, 355, 358, 358, 358, 358, 358, 358, 830, 830,
1172 153, 830, 154, 359, 359, 830, 830, 830, 153, 163,
1173 153, 359, 359, 359, 359, 359, 359, 359, 359, 359,
1174 359, 359, 359, 359, 359, 359, 359, 359, 166, 830,
1175 166, 440, 440, 440, 440, 440, 440, 269, 830, 830,
1176 361, 830, 362, 362, 362, 362, 362, 362, 458, 830,
1177 830, 440, 440, 440, 440, 440, 440, 466, 466, 466,
1178
1179 466, 466, 466, 830, 363, 225, 467, 225, 409, 409,
1180 409, 409, 409, 409, 289, 830, 291, 360, 830, 364,
1181 364, 364, 364, 364, 364, 99, 830, 99, 830, 99,
1182 830, 99, 830, 830, 99, 99, 830, 110, 365, 356,
1183 366, 366, 366, 366, 366, 366, 367, 830, 99, 830,
1184 101, 368, 368, 830, 830, 830, 99, 110, 99, 368,
1185 368, 368, 368, 368, 368, 368, 368, 368, 368, 368,
1186 368, 368, 368, 368, 368, 368, 360, 830, 368, 368,
1187 368, 368, 368, 368, 830, 369, 369, 369, 369, 369,
1188 369, 241, 830, 830, 830, 469, 370, 412, 412, 412,
1189
1190 412, 412, 412, 830, 370, 370, 370, 370, 370, 153,
1191 830, 153, 830, 153, 830, 153, 830, 830, 153, 153,
1192 830, 248, 130, 153, 475, 480, 480, 480, 480, 480,
1193 480, 830, 153, 830, 154, 830, 830, 830, 830, 830,
1194 153, 248, 153, 153, 830, 153, 830, 153, 830, 153,
1195 830, 830, 153, 153, 830, 248, 360, 355, 470, 830,
1196 480, 480, 480, 480, 480, 480, 153, 830, 154, 830,
1197 830, 830, 830, 830, 153, 248, 153, 153, 830, 153,
1198 830, 153, 830, 153, 830, 830, 153, 153, 830, 248,
1199 360, 355, 432, 432, 432, 432, 432, 432, 830, 830,
1200
1201 153, 830, 154, 830, 830, 830, 830, 830, 153, 248,
1202 153, 153, 830, 153, 830, 153, 830, 153, 830, 830,
1203 153, 153, 830, 163, 350, 355, 359, 359, 359, 359,
1204 359, 359, 830, 830, 153, 830, 154, 377, 377, 830,
1205 830, 830, 153, 163, 153, 377, 377, 377, 377, 377,
1206 377, 377, 377, 377, 377, 377, 377, 377, 377, 377,
1207 377, 377, 99, 830, 99, 830, 99, 830, 99, 830,
1208 830, 99, 99, 830, 123, 378, 356, 499, 499, 499,
1209 499, 499, 499, 830, 830, 99, 830, 101, 830, 830,
1210 830, 830, 830, 99, 123, 99, 99, 830, 99, 830,
1211
1212 99, 830, 99, 830, 830, 99, 99, 830, 188, 378,
1213 356, 380, 380, 380, 380, 380, 380, 830, 830, 99,
1214 830, 101, 379, 379, 830, 830, 830, 99, 188, 99,
1215 381, 381, 381, 381, 381, 381, 381, 381, 381, 381,
1216 381, 381, 381, 381, 381, 381, 381, 99, 830, 99,
1217 830, 99, 830, 99, 830, 830, 99, 99, 830, 329,
1218 130, 99, 502, 502, 502, 502, 502, 502, 830, 830,
1219 99, 830, 101, 830, 830, 830, 830, 830, 99, 329,
1220 99, 99, 830, 99, 830, 99, 830, 99, 830, 830,
1221 99, 99, 830, 188, 130, 99, 393, 393, 393, 393,
1222
1223 393, 393, 830, 830, 99, 830, 101, 183, 183, 830,
1224 830, 830, 99, 188, 99, 254, 254, 254, 254, 254,
1225 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
1226 254, 254, 99, 830, 99, 830, 99, 830, 99, 830,
1227 830, 99, 99, 830, 394, 130, 99, 395, 395, 395,
1228 395, 395, 395, 830, 830, 99, 830, 101, 395, 395,
1229 830, 830, 830, 99, 394, 99, 396, 396, 396, 396,
1230 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
1231 396, 396, 396, 99, 830, 99, 830, 99, 830, 99,
1232 830, 830, 99, 99, 830, 399, 130, 99, 400, 400,
1233
1234 400, 400, 400, 400, 830, 830, 99, 830, 101, 400,
1235 400, 830, 830, 830, 99, 399, 99, 401, 401, 401,
1236 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
1237 401, 401, 401, 401, 342, 503, 503, 503, 503, 503,
1238 503, 504, 830, 830, 505, 505, 505, 505, 505, 505,
1239 830, 830, 830, 830, 342, 830, 277, 277, 277, 277,
1240 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
1241 277, 277, 277, 99, 830, 99, 830, 99, 830, 99,
1242 830, 830, 99, 99, 830, 405, 130, 99, 406, 406,
1243 406, 406, 406, 406, 830, 830, 99, 830, 101, 406,
1244
1245 406, 830, 830, 830, 99, 405, 99, 407, 407, 407,
1246 407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
1247 407, 407, 407, 407, 166, 830, 166, 507, 507, 507,
1248 507, 507, 507, 269, 830, 830, 830, 830, 414, 414,
1249 414, 414, 414, 414, 449, 449, 449, 449, 449, 449,
1250 269, 524, 524, 524, 524, 524, 524, 830, 830, 830,
1251 415, 225, 830, 225, 530, 530, 530, 530, 530, 530,
1252 226, 830, 226, 830, 830, 416, 416, 416, 416, 416,
1253 416, 153, 830, 153, 830, 153, 830, 153, 830, 830,
1254 153, 153, 830, 153, 413, 830, 830, 531, 531, 531,
1255
1256 531, 531, 531, 830, 153, 830, 154, 830, 830, 830,
1257 830, 830, 153, 153, 153, 153, 830, 153, 830, 153,
1258 830, 153, 830, 830, 153, 153, 830, 153, 418, 532,
1259 532, 532, 532, 532, 532, 830, 830, 830, 153, 830,
1260 154, 830, 830, 830, 830, 830, 153, 153, 153, 99,
1261 830, 99, 830, 99, 830, 99, 830, 830, 99, 99,
1262 830, 99, 418, 91, 830, 533, 533, 533, 533, 533,
1263 533, 830, 99, 830, 101, 830, 830, 830, 830, 830,
1264 99, 99, 99, 153, 830, 153, 830, 153, 830, 153,
1265 830, 830, 153, 153, 830, 163, 413, 417, 420, 420,
1266
1267 420, 420, 420, 420, 830, 830, 153, 830, 154, 421,
1268 421, 830, 830, 830, 153, 163, 153, 421, 421, 421,
1269 421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
1270 421, 421, 421, 421, 166, 830, 166, 542, 542, 542,
1271 542, 542, 542, 830, 830, 830, 425, 830, 426, 426,
1272 426, 426, 426, 426, 546, 830, 547, 547, 547, 547,
1273 547, 547, 534, 830, 547, 547, 547, 547, 547, 547,
1274 427, 225, 830, 225, 565, 565, 565, 565, 565, 565,
1275 289, 830, 291, 424, 830, 428, 428, 428, 428, 428,
1276 428, 99, 830, 99, 830, 99, 830, 99, 830, 830,
1277
1278 99, 99, 830, 110, 429, 419, 430, 430, 430, 430,
1279 430, 430, 367, 830, 99, 830, 101, 431, 431, 830,
1280 830, 830, 99, 110, 99, 431, 431, 431, 431, 431,
1281 431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
1282 431, 431, 424, 830, 431, 431, 431, 431, 431, 431,
1283 830, 153, 830, 153, 830, 153, 830, 153, 830, 830,
1284 153, 153, 830, 248, 424, 417, 566, 566, 566, 566,
1285 566, 566, 830, 830, 153, 830, 154, 830, 830, 830,
1286 830, 830, 153, 248, 153, 153, 830, 153, 830, 153,
1287 830, 153, 830, 830, 153, 153, 830, 248, 424, 417,
1288
1289 505, 505, 505, 505, 505, 505, 330, 830, 153, 830,
1290 154, 830, 830, 830, 830, 830, 153, 248, 153, 153,
1291 830, 153, 830, 153, 830, 153, 830, 830, 153, 153,
1292 830, 163, 413, 417, 421, 421, 421, 421, 421, 421,
1293 830, 830, 153, 830, 154, 438, 438, 830, 830, 830,
1294 153, 163, 153, 438, 438, 438, 438, 438, 438, 438,
1295 438, 438, 438, 438, 438, 438, 438, 438, 438, 438,
1296 99, 830, 99, 830, 99, 830, 99, 830, 830, 99,
1297 99, 830, 123, 439, 419, 570, 570, 570, 570, 570,
1298 570, 269, 830, 99, 830, 101, 830, 830, 830, 830,
1299
1300 830, 99, 123, 99, 99, 830, 99, 830, 99, 830,
1301 99, 830, 830, 99, 99, 830, 188, 439, 419, 441,
1302 441, 441, 441, 441, 441, 830, 830, 99, 830, 101,
1303 440, 440, 830, 830, 830, 99, 188, 99, 442, 442,
1304 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
1305 442, 442, 442, 442, 442, 99, 830, 99, 830, 99,
1306 830, 99, 830, 830, 99, 99, 830, 123, 247, 99,
1307 393, 393, 393, 393, 393, 393, 830, 830, 99, 830,
1308 101, 455, 455, 830, 830, 830, 99, 123, 99, 455,
1309 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
1310
1311 455, 455, 455, 455, 455, 455, 99, 830, 99, 830,
1312 99, 830, 99, 830, 830, 99, 99, 830, 456, 247,
1313 99, 533, 533, 533, 533, 533, 533, 457, 830, 99,
1314 830, 101, 830, 830, 830, 830, 830, 99, 456, 99,
1315 99, 830, 99, 830, 99, 830, 99, 830, 830, 99,
1316 99, 830, 459, 247, 99, 605, 605, 605, 605, 605,
1317 605, 460, 830, 99, 830, 101, 830, 830, 830, 830,
1318 830, 99, 459, 99, 99, 830, 99, 830, 99, 830,
1319 99, 830, 830, 99, 99, 830, 464, 247, 99, 625,
1320 625, 625, 625, 625, 625, 465, 830, 99, 830, 101,
1321
1322 830, 830, 830, 830, 830, 99, 464, 99, 166, 830,
1323 166, 524, 524, 524, 524, 524, 524, 343, 830, 830,
1324 830, 830, 471, 471, 471, 471, 471, 471, 212, 830,
1325 531, 531, 531, 531, 531, 531, 604, 830, 605, 605,
1326 605, 605, 605, 605, 472, 225, 830, 225, 636, 636,
1327 636, 636, 636, 636, 226, 830, 226, 830, 830, 473,
1328 473, 473, 473, 473, 473, 153, 830, 153, 830, 153,
1329 830, 153, 830, 830, 153, 153, 830, 153, 474, 641,
1330 641, 641, 641, 641, 641, 830, 830, 830, 153, 830,
1331 154, 830, 830, 830, 830, 830, 153, 153, 153, 153,
1332
1333 830, 153, 830, 153, 830, 153, 830, 830, 153, 153,
1334 830, 153, 470, 645, 645, 645, 645, 645, 645, 830,
1335 830, 830, 153, 830, 154, 830, 830, 830, 830, 830,
1336 153, 153, 153, 99, 830, 99, 830, 99, 830, 99,
1337 830, 830, 99, 99, 830, 99, 474, 648, 648, 648,
1338 648, 648, 648, 830, 830, 830, 99, 830, 101, 830,
1339 830, 830, 830, 830, 99, 99, 99, 153, 830, 153,
1340 830, 153, 830, 153, 830, 830, 153, 153, 830, 163,
1341 477, 478, 479, 479, 479, 479, 479, 479, 830, 830,
1342 153, 830, 154, 480, 480, 830, 830, 830, 153, 163,
1343
1344 153, 480, 480, 480, 480, 480, 480, 480, 480, 480,
1345 480, 480, 480, 480, 480, 480, 480, 480, 481, 475,
1346 482, 482, 482, 482, 482, 482, 166, 830, 166, 830,
1347 658, 658, 658, 658, 658, 658, 830, 830, 483, 830,
1348 484, 484, 484, 484, 484, 484, 601, 658, 658, 658,
1349 658, 658, 658, 661, 662, 662, 662, 662, 662, 662,
1350 830, 830, 485, 225, 649, 225, 662, 662, 662, 662,
1351 662, 662, 289, 830, 291, 477, 830, 486, 486, 486,
1352 486, 486, 486, 99, 830, 99, 830, 99, 830, 99,
1353 830, 830, 99, 99, 830, 110, 487, 476, 488, 488,
1354
1355 488, 488, 488, 488, 367, 830, 99, 830, 101, 489,
1356 489, 830, 830, 830, 99, 110, 99, 489, 489, 489,
1357 489, 489, 489, 489, 489, 489, 489, 489, 489, 489,
1358 489, 489, 489, 489, 477, 830, 489, 489, 489, 489,
1359 489, 489, 830, 153, 830, 153, 830, 153, 830, 153,
1360 830, 830, 153, 153, 830, 248, 477, 475, 663, 830,
1361 664, 664, 664, 664, 664, 664, 153, 830, 154, 830,
1362 830, 830, 830, 830, 153, 248, 153, 153, 830, 153,
1363 830, 153, 830, 153, 830, 830, 153, 153, 830, 248,
1364 477, 475, 649, 830, 664, 664, 664, 664, 664, 664,
1365
1366 153, 830, 154, 830, 830, 830, 830, 830, 153, 248,
1367 153, 153, 830, 153, 830, 153, 830, 153, 830, 830,
1368 153, 153, 830, 163, 470, 475, 480, 480, 480, 480,
1369 480, 480, 830, 830, 153, 830, 154, 497, 497, 830,
1370 830, 830, 153, 163, 153, 497, 497, 497, 497, 497,
1371 497, 497, 497, 497, 497, 497, 497, 497, 497, 497,
1372 497, 497, 99, 830, 99, 830, 99, 830, 99, 830,
1373 830, 99, 99, 830, 123, 498, 476, 669, 669, 669,
1374 669, 669, 669, 830, 830, 99, 830, 101, 830, 830,
1375 830, 830, 830, 99, 123, 99, 99, 830, 99, 830,
1376
1377 99, 830, 99, 830, 830, 99, 99, 830, 188, 498,
1378 476, 500, 500, 500, 500, 500, 500, 830, 830, 99,
1379 830, 101, 499, 499, 830, 830, 830, 99, 188, 99,
1380 501, 501, 501, 501, 501, 501, 501, 501, 501, 501,
1381 501, 501, 501, 501, 501, 501, 501, 99, 830, 99,
1382 830, 99, 830, 99, 830, 830, 99, 99, 830, 123,
1383 247, 99, 183, 183, 183, 183, 183, 183, 830, 830,
1384 99, 830, 101, 516, 516, 830, 830, 830, 99, 123,
1385 99, 516, 516, 516, 516, 516, 516, 516, 516, 516,
1386 516, 516, 516, 516, 516, 516, 516, 516, 99, 830,
1387
1388 99, 830, 99, 830, 99, 830, 830, 99, 99, 830,
1389 456, 130, 99, 707, 707, 707, 707, 707, 707, 830,
1390 830, 99, 830, 101, 830, 830, 830, 830, 830, 99,
1391 456, 99, 99, 830, 99, 830, 99, 830, 99, 830,
1392 830, 99, 99, 830, 188, 130, 99, 520, 520, 520,
1393 520, 520, 520, 830, 830, 99, 830, 101, 520, 183,
1394 830, 830, 830, 99, 188, 99, 521, 521, 521, 521,
1395 521, 254, 254, 254, 254, 254, 254, 254, 254, 254,
1396 254, 254, 254, 99, 830, 99, 830, 99, 830, 99,
1397 830, 830, 99, 99, 830, 459, 130, 99, 745, 745,
1398
1399 745, 745, 745, 745, 830, 830, 99, 830, 101, 830,
1400 830, 830, 830, 830, 99, 459, 99, 99, 830, 99,
1401 830, 99, 830, 99, 830, 830, 99, 99, 830, 464,
1402 130, 99, 755, 755, 755, 755, 755, 755, 830, 830,
1403 99, 830, 101, 830, 830, 830, 830, 830, 99, 464,
1404 99, 166, 830, 166, 636, 636, 636, 636, 636, 636,
1405 457, 830, 830, 830, 830, 535, 535, 535, 535, 535,
1406 535, 641, 641, 641, 641, 641, 641, 460, 645, 645,
1407 645, 645, 645, 645, 465, 830, 830, 536, 225, 706,
1408 225, 707, 707, 707, 707, 707, 707, 226, 830, 226,
1409
1410 830, 830, 537, 537, 537, 537, 537, 537, 153, 830,
1411 153, 830, 153, 830, 153, 830, 830, 153, 153, 830,
1412 153, 534, 745, 745, 745, 745, 745, 745, 830, 830,
1413 830, 153, 830, 154, 830, 830, 830, 830, 601, 153,
1414 153, 153, 153, 830, 153, 830, 153, 830, 153, 830,
1415 830, 153, 153, 153, 153, 539, 746, 746, 746, 746,
1416 746, 746, 830, 830, 830, 153, 830, 154, 830, 830,
1417 830, 830, 830, 153, 153, 153, 99, 830, 99, 830,
1418 99, 830, 99, 830, 830, 99, 99, 830, 99, 539,
1419 747, 748, 748, 748, 748, 748, 748, 830, 830, 99,
1420
1421 830, 101, 830, 830, 830, 830, 830, 99, 99, 99,
1422 153, 830, 153, 830, 153, 830, 153, 830, 830, 153,
1423 153, 830, 163, 534, 538, 736, 830, 748, 748, 748,
1424 748, 748, 748, 153, 830, 154, 830, 830, 830, 830,
1425 830, 153, 163, 153, 153, 830, 153, 830, 153, 830,
1426 153, 830, 830, 153, 153, 830, 163, 543, 544, 545,
1427 545, 545, 545, 545, 545, 830, 830, 153, 830, 154,
1428 541, 541, 830, 830, 830, 153, 163, 153, 541, 541,
1429 541, 541, 541, 541, 541, 541, 541, 541, 541, 541,
1430 541, 541, 541, 541, 541, 153, 830, 153, 830, 153,
1431
1432 830, 153, 830, 830, 153, 153, 830, 163, 543, 538,
1433 749, 830, 750, 750, 750, 750, 750, 750, 153, 830,
1434 154, 830, 830, 830, 830, 830, 153, 163, 153, 166,
1435 736, 166, 750, 750, 750, 750, 750, 750, 830, 830,
1436 830, 548, 830, 549, 549, 549, 549, 549, 549, 294,
1437 294, 294, 294, 294, 294, 153, 830, 830, 153, 153,
1438 153, 153, 153, 153, 830, 550, 225, 784, 225, 785,
1439 785, 785, 785, 785, 785, 289, 830, 291, 830, 830,
1440 551, 551, 551, 551, 551, 551, 99, 552, 99, 552,
1441 99, 830, 99, 830, 830, 99, 99, 830, 110, 553,
1442
1443 540, 554, 554, 554, 554, 554, 554, 367, 830, 99,
1444 830, 101, 555, 555, 830, 830, 830, 99, 110, 99,
1445 555, 555, 555, 555, 555, 555, 555, 555, 555, 555,
1446 555, 555, 555, 555, 555, 555, 555, 830, 153, 830,
1447 830, 746, 746, 746, 746, 746, 746, 830, 830, 543,
1448 830, 555, 555, 555, 555, 555, 555, 830, 153, 830,
1449 153, 830, 153, 830, 153, 830, 830, 153, 153, 830,
1450 248, 543, 538, 785, 785, 785, 785, 785, 785, 830,
1451 830, 153, 830, 154, 830, 830, 830, 830, 830, 153,
1452 248, 153, 153, 830, 153, 830, 153, 830, 153, 830,
1453
1454 830, 153, 153, 830, 248, 543, 538, 788, 788, 788,
1455 788, 788, 788, 830, 830, 153, 830, 154, 830, 830,
1456 830, 830, 830, 153, 248, 153, 153, 830, 153, 830,
1457 153, 830, 153, 830, 830, 153, 153, 830, 163, 534,
1458 538, 541, 541, 541, 541, 541, 541, 830, 830, 153,
1459 830, 154, 561, 561, 830, 830, 830, 153, 163, 153,
1460 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
1461 561, 561, 561, 561, 561, 561, 561, 99, 830, 99,
1462 830, 99, 830, 99, 830, 830, 99, 99, 830, 123,
1463 562, 540, 797, 797, 797, 797, 797, 797, 269, 830,
1464
1465 99, 830, 101, 830, 830, 830, 830, 830, 99, 123,
1466 99, 99, 830, 99, 830, 99, 830, 99, 830, 830,
1467 99, 99, 830, 188, 562, 540, 563, 563, 563, 563,
1468 563, 563, 830, 830, 99, 830, 101, 563, 563, 830,
1469 830, 830, 99, 188, 99, 564, 564, 564, 564, 564,
1470 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
1471 564, 564, 575, 575, 785, 785, 785, 785, 785, 785,
1472 575, 575, 575, 575, 575, 575, 575, 575, 575, 575,
1473 575, 575, 575, 575, 575, 575, 575, 99, 830, 99,
1474 830, 99, 830, 99, 830, 830, 99, 99, 830, 123,
1475
1476 247, 99, 579, 579, 579, 579, 579, 579, 830, 830,
1477 99, 830, 101, 579, 183, 830, 830, 830, 99, 123,
1478 99, 579, 579, 579, 579, 579, 183, 183, 183, 183,
1479 183, 183, 183, 183, 183, 183, 183, 183, 247, 830,
1480 579, 579, 579, 579, 579, 579, 830, 830, 830, 830,
1481 784, 579, 785, 785, 785, 785, 785, 785, 830, 580,
1482 580, 580, 580, 580, 166, 830, 166, 787, 787, 787,
1483 787, 787, 787, 830, 830, 830, 830, 830, 592, 592,
1484 592, 592, 592, 592, 797, 797, 797, 797, 797, 797,
1485 269, 807, 807, 807, 807, 807, 807, 830, 830, 830,
1486
1487 593, 225, 830, 225, 813, 813, 813, 813, 813, 813,
1488 226, 830, 226, 830, 830, 594, 594, 594, 594, 594,
1489 594, 153, 830, 153, 830, 153, 830, 153, 830, 830,
1490 153, 153, 830, 153, 595, 814, 815, 814, 814, 814,
1491 814, 830, 830, 830, 153, 830, 154, 830, 830, 830,
1492 830, 830, 153, 153, 153, 153, 830, 153, 830, 153,
1493 830, 153, 830, 830, 153, 153, 830, 153, 591, 819,
1494 819, 819, 819, 819, 819, 830, 830, 830, 153, 830,
1495 154, 830, 830, 830, 830, 830, 153, 153, 153, 99,
1496 830, 99, 830, 99, 830, 99, 830, 830, 99, 99,
1497
1498 830, 99, 595, 820, 820, 821, 819, 819, 819, 830,
1499 830, 830, 99, 830, 101, 830, 830, 830, 830, 830,
1500 99, 99, 99, 153, 830, 153, 830, 153, 830, 153,
1501 830, 830, 153, 153, 830, 163, 598, 596, 819, 819,
1502 819, 819, 819, 819, 830, 830, 153, 830, 154, 830,
1503 830, 830, 830, 830, 153, 163, 153, 595, 830, 600,
1504 600, 600, 600, 600, 600, 825, 825, 825, 825, 825,
1505 825, 830, 830, 830, 830, 601, 153, 830, 153, 830,
1506 153, 830, 153, 830, 830, 153, 153, 830, 163, 591,
1507 596, 826, 826, 826, 826, 826, 826, 830, 830, 153,
1508
1509 830, 154, 830, 830, 830, 830, 830, 153, 163, 153,
1510 598, 602, 603, 603, 603, 603, 603, 603, 166, 830,
1511 166, 828, 828, 828, 828, 828, 828, 830, 830, 830,
1512 606, 830, 607, 607, 607, 607, 607, 607, 829, 829,
1513 829, 829, 829, 829, 830, 830, 830, 830, 830, 830,
1514 830, 830, 830, 830, 608, 225, 830, 225, 830, 830,
1515 830, 830, 830, 830, 289, 830, 291, 598, 830, 609,
1516 609, 609, 609, 609, 609, 99, 830, 99, 830, 99,
1517 830, 99, 830, 830, 99, 99, 830, 110, 611, 597,
1518 612, 612, 612, 612, 612, 612, 367, 830, 99, 830,
1519
1520 101, 613, 613, 830, 830, 830, 99, 110, 99, 613,
1521 613, 613, 613, 613, 613, 613, 613, 613, 613, 613,
1522 613, 613, 613, 613, 613, 613, 598, 830, 613, 613,
1523 613, 613, 613, 613, 830, 153, 830, 153, 830, 153,
1524 830, 153, 830, 830, 153, 153, 830, 248, 598, 596,
1525 830, 830, 830, 830, 830, 830, 830, 830, 153, 830,
1526 154, 830, 830, 830, 830, 830, 153, 248, 153, 153,
1527 830, 153, 830, 153, 830, 153, 830, 830, 153, 153,
1528 830, 248, 598, 596, 830, 830, 830, 830, 830, 830,
1529 830, 830, 153, 830, 154, 830, 830, 830, 830, 830,
1530
1531 153, 248, 153, 621, 621, 830, 830, 830, 830, 830,
1532 830, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1533 621, 621, 621, 621, 621, 621, 621, 621, 99, 830,
1534 99, 830, 99, 830, 99, 830, 830, 99, 99, 830,
1535 123, 622, 597, 830, 830, 830, 830, 830, 830, 830,
1536 830, 99, 830, 101, 830, 830, 830, 830, 830, 99,
1537 123, 99, 99, 830, 99, 830, 99, 830, 99, 830,
1538 830, 99, 99, 830, 188, 622, 597, 623, 623, 623,
1539 623, 623, 623, 830, 830, 99, 830, 101, 623, 623,
1540 830, 830, 830, 99, 188, 99, 624, 624, 624, 624,
1541
1542 624, 624, 624, 624, 624, 624, 624, 624, 624, 624,
1543 624, 624, 624, 99, 830, 99, 830, 99, 830, 99,
1544 830, 830, 99, 99, 830, 123, 622, 597, 627, 627,
1545 627, 627, 627, 627, 269, 830, 99, 830, 101, 623,
1546 623, 830, 830, 830, 99, 123, 99, 623, 623, 623,
1547 623, 623, 623, 623, 623, 623, 623, 623, 623, 623,
1548 623, 623, 623, 623, 635, 635, 830, 830, 830, 830,
1549 830, 830, 635, 635, 635, 635, 635, 635, 635, 635,
1550 635, 635, 635, 635, 635, 635, 635, 635, 635, 639,
1551 639, 639, 639, 639, 639, 830, 830, 830, 830, 830,
1552
1553 639, 830, 830, 830, 830, 830, 830, 830, 639, 639,
1554 639, 639, 639, 639, 639, 639, 639, 639, 639, 830,
1555 830, 830, 830, 830, 639, 830, 830, 830, 830, 830,
1556 830, 830, 640, 640, 640, 640, 640, 166, 830, 166,
1557 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
1558 830, 650, 650, 650, 650, 650, 650, 830, 830, 830,
1559 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
1560 830, 830, 830, 651, 225, 830, 225, 830, 830, 830,
1561 830, 830, 830, 226, 830, 226, 830, 830, 652, 652,
1562 652, 652, 652, 652, 153, 830, 153, 830, 153, 830,
1563
1564 153, 830, 830, 153, 153, 830, 153, 649, 830, 830,
1565 830, 830, 830, 830, 830, 830, 830, 153, 830, 154,
1566 830, 830, 830, 830, 830, 153, 153, 153, 153, 830,
1567 153, 830, 153, 830, 153, 830, 830, 153, 153, 830,
1568 153, 654, 830, 830, 830, 830, 830, 830, 830, 830,
1569 830, 153, 830, 154, 830, 830, 830, 830, 830, 153,
1570 153, 153, 99, 830, 99, 830, 99, 830, 99, 830,
1571 830, 99, 99, 830, 99, 654, 830, 830, 830, 830,
1572 830, 830, 830, 830, 830, 99, 830, 101, 830, 830,
1573 830, 830, 830, 99, 99, 99, 153, 830, 153, 830,
1574
1575 153, 830, 153, 830, 830, 153, 153, 830, 163, 649,
1576 653, 830, 830, 830, 830, 830, 830, 830, 830, 153,
1577 830, 154, 830, 830, 830, 830, 830, 153, 163, 153,
1578 153, 830, 153, 830, 153, 830, 153, 830, 830, 153,
1579 153, 830, 163, 657, 653, 830, 830, 830, 830, 830,
1580 830, 830, 830, 153, 830, 154, 830, 830, 830, 830,
1581 830, 153, 163, 153, 659, 830, 659, 100, 830, 660,
1582 660, 660, 660, 660, 660, 830, 830, 830, 830, 154,
1583 166, 830, 166, 830, 830, 830, 830, 830, 830, 830,
1584 830, 830, 665, 830, 666, 666, 666, 666, 666, 666,
1585
1586 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
1587 830, 830, 830, 830, 830, 830, 667, 225, 830, 225,
1588 830, 830, 830, 830, 830, 830, 289, 830, 291, 830,
1589 830, 668, 668, 668, 668, 668, 668, 99, 830, 99,
1590 830, 99, 830, 99, 830, 830, 99, 99, 830, 110,
1591 670, 655, 671, 671, 671, 671, 671, 671, 367, 830,
1592 99, 830, 101, 672, 672, 830, 830, 830, 99, 110,
1593 99, 672, 672, 672, 672, 672, 672, 672, 672, 672,
1594 672, 672, 672, 672, 672, 672, 672, 672, 657, 830,
1595 672, 672, 672, 672, 672, 672, 830, 153, 830, 153,
1596
1597 830, 153, 830, 153, 830, 830, 153, 153, 830, 248,
1598 657, 653, 830, 830, 830, 830, 830, 830, 830, 830,
1599 153, 830, 154, 830, 830, 830, 830, 830, 153, 248,
1600 153, 153, 830, 153, 830, 153, 830, 153, 830, 830,
1601 153, 153, 830, 248, 657, 653, 830, 830, 830, 830,
1602 830, 830, 830, 830, 153, 830, 154, 830, 830, 830,
1603 830, 830, 153, 248, 153, 153, 830, 153, 830, 153,
1604 830, 153, 830, 830, 153, 153, 830, 163, 649, 653,
1605 656, 656, 656, 656, 656, 656, 830, 830, 153, 830,
1606 154, 678, 678, 830, 830, 830, 153, 163, 153, 678,
1607
1608 678, 678, 678, 678, 678, 678, 678, 678, 678, 678,
1609 678, 678, 678, 678, 678, 678, 99, 830, 99, 830,
1610 99, 830, 99, 830, 830, 99, 99, 830, 123, 679,
1611 655, 830, 830, 830, 830, 830, 830, 830, 830, 99,
1612 830, 101, 830, 830, 830, 830, 830, 99, 123, 99,
1613 99, 830, 99, 830, 99, 830, 99, 830, 830, 99,
1614 99, 830, 188, 679, 655, 680, 680, 680, 680, 680,
1615 680, 830, 830, 99, 830, 101, 680, 680, 830, 830,
1616 830, 99, 188, 99, 681, 681, 681, 681, 681, 681,
1617 681, 681, 681, 681, 681, 681, 681, 681, 681, 681,
1618
1619 681, 99, 830, 99, 830, 99, 830, 99, 830, 830,
1620 99, 99, 830, 123, 679, 655, 683, 683, 683, 683,
1621 683, 683, 269, 830, 99, 830, 101, 680, 680, 830,
1622 830, 830, 99, 123, 99, 680, 680, 680, 680, 680,
1623 680, 680, 680, 680, 680, 680, 680, 680, 680, 680,
1624 680, 680, 183, 183, 183, 183, 183, 183, 830, 830,
1625 830, 830, 830, 183, 830, 830, 830, 830, 830, 830,
1626 830, 183, 183, 183, 183, 183, 686, 686, 686, 686,
1627 686, 686, 830, 830, 830, 830, 830, 686, 830, 830,
1628 830, 830, 830, 830, 830, 686, 686, 686, 686, 686,
1629
1630 686, 686, 686, 686, 686, 686, 830, 830, 830, 830,
1631 830, 686, 830, 830, 830, 830, 830, 830, 830, 687,
1632 687, 687, 687, 687, 166, 830, 166, 830, 830, 830,
1633 830, 830, 830, 830, 830, 830, 830, 830, 694, 694,
1634 694, 694, 694, 694, 830, 830, 830, 830, 830, 830,
1635 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
1636 695, 225, 830, 225, 830, 830, 830, 830, 830, 830,
1637 226, 830, 226, 830, 830, 696, 696, 696, 696, 696,
1638 696, 153, 830, 153, 830, 153, 830, 153, 830, 830,
1639 153, 153, 830, 153, 697, 830, 830, 830, 830, 830,
1640
1641 830, 830, 830, 830, 153, 830, 154, 830, 830, 830,
1642 830, 830, 153, 153, 153, 153, 830, 153, 830, 153,
1643 830, 153, 830, 830, 153, 153, 830, 153, 693, 830,
1644 830, 830, 830, 830, 830, 830, 830, 830, 153, 830,
1645 154, 830, 830, 830, 830, 830, 153, 153, 153, 99,
1646 830, 99, 830, 99, 830, 99, 830, 830, 99, 99,
1647 830, 99, 697, 830, 830, 830, 830, 830, 830, 830,
1648 830, 830, 99, 830, 101, 830, 830, 830, 830, 830,
1649 99, 99, 99, 153, 830, 153, 830, 153, 830, 153,
1650 830, 830, 153, 153, 830, 163, 700, 698, 830, 830,
1651
1652 830, 830, 830, 830, 830, 830, 153, 830, 154, 830,
1653 830, 830, 830, 830, 153, 163, 153, 153, 830, 153,
1654 830, 153, 830, 153, 830, 830, 153, 153, 830, 163,
1655 693, 698, 830, 830, 830, 830, 830, 830, 830, 830,
1656 153, 830, 154, 830, 830, 830, 830, 830, 153, 163,
1657 153, 697, 830, 702, 702, 702, 702, 702, 702, 830,
1658 830, 830, 830, 830, 830, 830, 830, 830, 830, 601,
1659 703, 100, 830, 660, 660, 660, 660, 660, 660, 830,
1660 830, 830, 830, 154, 700, 704, 705, 705, 705, 705,
1661 705, 705, 166, 830, 166, 830, 830, 830, 830, 830,
1662
1663 830, 830, 830, 830, 708, 830, 709, 709, 709, 709,
1664 709, 709, 830, 830, 830, 830, 830, 830, 830, 830,
1665 830, 830, 830, 830, 830, 830, 830, 830, 710, 225,
1666 830, 225, 830, 830, 830, 830, 830, 830, 289, 830,
1667 291, 700, 830, 711, 711, 711, 711, 711, 711, 99,
1668 830, 99, 830, 99, 830, 99, 830, 830, 99, 99,
1669 830, 110, 713, 699, 714, 714, 714, 714, 714, 714,
1670 367, 830, 99, 830, 101, 715, 715, 830, 830, 830,
1671 99, 110, 99, 715, 715, 715, 715, 715, 715, 715,
1672 715, 715, 715, 715, 715, 715, 715, 715, 715, 715,
1673
1674 700, 830, 715, 715, 715, 715, 715, 715, 830, 153,
1675 830, 153, 830, 153, 830, 153, 830, 830, 153, 153,
1676 830, 248, 700, 698, 830, 830, 830, 830, 830, 830,
1677 830, 830, 153, 830, 154, 830, 830, 830, 830, 830,
1678 153, 248, 153, 153, 830, 153, 830, 153, 830, 153,
1679 830, 830, 153, 153, 830, 248, 700, 698, 830, 830,
1680 830, 830, 830, 830, 830, 830, 153, 830, 154, 830,
1681 830, 830, 830, 830, 153, 248, 153, 723, 723, 830,
1682 830, 830, 830, 830, 830, 723, 723, 723, 723, 723,
1683 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
1684
1685 723, 723, 99, 830, 99, 830, 99, 830, 99, 830,
1686 830, 99, 99, 830, 123, 724, 699, 830, 830, 830,
1687 830, 830, 830, 830, 830, 99, 830, 101, 830, 830,
1688 830, 830, 830, 99, 123, 99, 99, 830, 99, 830,
1689 99, 830, 99, 830, 830, 99, 99, 830, 188, 724,
1690 699, 725, 725, 725, 725, 725, 725, 830, 830, 99,
1691 830, 101, 725, 725, 830, 830, 830, 99, 188, 99,
1692 726, 726, 726, 726, 726, 726, 726, 726, 726, 726,
1693 726, 726, 726, 726, 726, 726, 726, 99, 830, 99,
1694 830, 99, 830, 99, 830, 830, 99, 99, 830, 123,
1695
1696 724, 699, 727, 727, 727, 727, 727, 727, 269, 830,
1697 99, 830, 101, 725, 725, 830, 830, 830, 99, 123,
1698 99, 725, 725, 725, 725, 725, 725, 725, 725, 725,
1699 725, 725, 725, 725, 725, 725, 725, 725, 730, 730,
1700 730, 730, 730, 730, 830, 830, 830, 830, 830, 730,
1701 830, 830, 830, 830, 830, 830, 830, 730, 730, 730,
1702 730, 730, 730, 730, 730, 730, 730, 730, 830, 830,
1703 830, 830, 830, 730, 830, 830, 830, 830, 830, 830,
1704 830, 731, 731, 731, 731, 731, 166, 830, 166, 830,
1705 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
1706
1707 737, 737, 737, 737, 737, 737, 830, 830, 830, 830,
1708 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
1709 830, 830, 738, 225, 830, 225, 830, 830, 830, 830,
1710 830, 830, 226, 830, 226, 830, 830, 739, 739, 739,
1711 739, 739, 739, 153, 830, 153, 830, 153, 830, 153,
1712 830, 830, 153, 153, 830, 153, 736, 830, 830, 830,
1713 830, 830, 830, 830, 830, 830, 153, 830, 154, 830,
1714 830, 830, 830, 830, 153, 153, 153, 153, 830, 153,
1715 830, 153, 830, 153, 830, 830, 153, 153, 830, 153,
1716 741, 830, 830, 830, 830, 830, 830, 830, 830, 830,
1717
1718 153, 830, 154, 830, 830, 830, 830, 830, 153, 153,
1719 153, 99, 830, 99, 830, 99, 830, 99, 830, 830,
1720 99, 99, 830, 99, 741, 830, 830, 830, 830, 830,
1721 830, 830, 830, 830, 99, 830, 101, 830, 830, 830,
1722 830, 830, 99, 99, 99, 153, 830, 153, 830, 153,
1723 830, 153, 830, 830, 153, 153, 830, 163, 736, 740,
1724 830, 830, 830, 830, 830, 830, 830, 830, 153, 830,
1725 154, 830, 830, 830, 830, 830, 153, 163, 153, 153,
1726 830, 153, 830, 153, 830, 153, 830, 830, 153, 153,
1727 830, 163, 744, 740, 830, 830, 830, 830, 830, 830,
1728
1729 830, 830, 153, 830, 154, 830, 830, 830, 830, 830,
1730 153, 163, 153, 166, 830, 166, 830, 830, 830, 830,
1731 830, 830, 830, 830, 830, 751, 830, 752, 752, 752,
1732 752, 752, 752, 830, 830, 830, 830, 830, 830, 830,
1733 830, 830, 830, 830, 830, 830, 830, 830, 830, 753,
1734 225, 830, 225, 830, 830, 830, 830, 830, 830, 289,
1735 830, 291, 830, 830, 754, 754, 754, 754, 754, 754,
1736 99, 830, 99, 830, 99, 830, 99, 830, 830, 99,
1737 99, 830, 110, 756, 742, 757, 757, 757, 757, 757,
1738 757, 367, 830, 99, 830, 101, 758, 758, 830, 830,
1739
1740 830, 99, 110, 99, 758, 758, 758, 758, 758, 758,
1741 758, 758, 758, 758, 758, 758, 758, 758, 758, 758,
1742 758, 744, 830, 758, 758, 758, 758, 758, 758, 830,
1743 153, 830, 153, 830, 153, 830, 153, 830, 830, 153,
1744 153, 830, 248, 744, 740, 830, 830, 830, 830, 830,
1745 830, 830, 830, 153, 830, 154, 830, 830, 830, 830,
1746 830, 153, 248, 153, 153, 830, 153, 830, 153, 830,
1747 153, 830, 830, 153, 153, 830, 248, 744, 740, 830,
1748 830, 830, 830, 830, 830, 830, 830, 153, 830, 154,
1749 830, 830, 830, 830, 830, 153, 248, 153, 153, 830,
1750
1751 153, 830, 153, 830, 153, 830, 830, 153, 153, 830,
1752 163, 736, 740, 743, 743, 743, 743, 743, 743, 830,
1753 830, 153, 830, 154, 764, 764, 830, 830, 830, 153,
1754 163, 153, 764, 764, 764, 764, 764, 764, 764, 764,
1755 764, 764, 764, 764, 764, 764, 764, 764, 764, 99,
1756 830, 99, 830, 99, 830, 99, 830, 830, 99, 99,
1757 830, 123, 765, 742, 830, 830, 830, 830, 830, 830,
1758 830, 830, 99, 830, 101, 830, 830, 830, 830, 830,
1759 99, 123, 99, 99, 830, 99, 830, 99, 830, 99,
1760 830, 830, 99, 99, 830, 188, 765, 742, 766, 766,
1761
1762 766, 766, 766, 766, 830, 830, 99, 830, 101, 766,
1763 766, 830, 830, 830, 99, 188, 99, 767, 767, 767,
1764 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
1765 767, 767, 767, 767, 99, 830, 99, 830, 99, 830,
1766 99, 830, 830, 99, 99, 830, 123, 765, 742, 768,
1767 768, 768, 768, 768, 768, 269, 830, 99, 830, 101,
1768 766, 766, 830, 830, 830, 99, 123, 99, 766, 766,
1769 766, 766, 766, 766, 766, 766, 766, 766, 766, 766,
1770 766, 766, 766, 766, 766, 772, 772, 772, 772, 772,
1771 772, 830, 830, 830, 830, 830, 772, 830, 830, 830,
1772
1773 830, 830, 830, 830, 772, 772, 772, 772, 772, 772,
1774 772, 772, 772, 772, 772, 830, 830, 830, 830, 830,
1775 772, 830, 830, 830, 830, 830, 830, 830, 773, 773,
1776 773, 773, 773, 153, 830, 830, 153, 153, 153, 153,
1777 153, 153, 153, 830, 153, 830, 153, 830, 153, 830,
1778 830, 153, 153, 830, 830, 130, 153, 830, 830, 830,
1779 830, 830, 830, 830, 830, 153, 830, 154, 830, 830,
1780 830, 830, 830, 153, 830, 153, 153, 830, 153, 830,
1781 153, 830, 153, 830, 830, 153, 153, 830, 830, 830,
1782 153, 830, 830, 830, 830, 830, 830, 830, 830, 153,
1783
1784 830, 154, 830, 830, 830, 830, 830, 153, 830, 153,
1785 153, 830, 830, 781, 781, 781, 781, 781, 781, 830,
1786 830, 830, 830, 830, 830, 830, 830, 830, 830, 601,
1787 130, 782, 783, 783, 783, 783, 783, 783, 166, 830,
1788 166, 830, 830, 830, 830, 830, 830, 830, 830, 830,
1789 786, 830, 787, 787, 787, 787, 787, 787, 830, 830,
1790 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
1791 830, 830, 830, 830, 220, 225, 830, 225, 830, 830,
1792 830, 830, 830, 830, 289, 830, 291, 130, 830, 292,
1793 292, 292, 292, 292, 292, 99, 830, 99, 830, 99,
1794
1795 830, 99, 830, 830, 99, 99, 830, 110, 789, 99,
1796 790, 790, 790, 790, 790, 790, 367, 830, 99, 830,
1797 101, 110, 110, 830, 830, 830, 99, 110, 99, 110,
1798 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
1799 110, 110, 110, 110, 110, 110, 130, 830, 110, 110,
1800 110, 110, 110, 110, 830, 153, 830, 153, 830, 153,
1801 830, 153, 830, 830, 153, 153, 830, 248, 130, 153,
1802 830, 830, 830, 830, 830, 830, 830, 830, 153, 830,
1803 154, 830, 830, 830, 830, 830, 153, 248, 153, 153,
1804 830, 153, 830, 153, 830, 153, 830, 830, 153, 153,
1805
1806 830, 248, 130, 153, 830, 830, 830, 830, 830, 830,
1807 830, 830, 153, 830, 154, 830, 830, 830, 830, 830,
1808 153, 248, 153, 319, 319, 830, 830, 830, 830, 830,
1809 830, 319, 319, 319, 319, 319, 319, 319, 319, 319,
1810 319, 319, 319, 319, 319, 319, 319, 319, 183, 183,
1811 183, 183, 183, 183, 830, 830, 830, 830, 830, 183,
1812 830, 830, 830, 830, 830, 830, 830, 183, 183, 183,
1813 183, 183, 183, 183, 183, 183, 183, 183, 830, 830,
1814 830, 830, 830, 183, 830, 830, 830, 830, 830, 830,
1815 830, 254, 254, 254, 254, 254, 798, 798, 798, 798,
1816
1817 798, 798, 830, 830, 830, 830, 830, 798, 830, 830,
1818 830, 830, 830, 830, 830, 798, 798, 798, 798, 798,
1819 798, 798, 798, 798, 798, 798, 830, 830, 830, 830,
1820 830, 798, 830, 830, 830, 830, 830, 830, 830, 799,
1821 799, 799, 799, 799, 805, 805, 805, 805, 805, 805,
1822 830, 830, 830, 830, 830, 805, 830, 830, 830, 830,
1823 830, 830, 830, 805, 805, 805, 805, 805, 805, 805,
1824 805, 805, 805, 805, 830, 830, 830, 830, 830, 805,
1825 830, 830, 830, 830, 830, 830, 830, 806, 806, 806,
1826 806, 806, 18, 18, 18, 18, 18, 18, 18, 18,
1827
1828 18, 18, 18, 18, 18, 18, 18, 18, 18, 24,
1829 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
1830 24, 24, 24, 24, 24, 24, 28, 28, 28, 28,
1831 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1832 28, 28, 28, 38, 38, 38, 38, 38, 38, 38,
1833 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
1834 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
1835 41, 41, 41, 41, 41, 41, 41, 64, 64, 64,
1836 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
1837 64, 64, 64, 64, 71, 71, 830, 71, 71, 71,
1838
1839 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
1840 71, 75, 830, 830, 75, 75, 830, 75, 75, 75,
1841 75, 77, 77, 830, 77, 830, 77, 77, 77, 77,
1842 77, 77, 77, 77, 77, 77, 77, 77, 78, 78,
1843 78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
1844 78, 78, 78, 78, 78, 91, 91, 830, 91, 91,
1845 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
1846 91, 91, 94, 94, 830, 94, 94, 94, 94, 94,
1847 94, 94, 94, 94, 94, 94, 94, 94, 94, 96,
1848 96, 830, 96, 96, 96, 96, 96, 96, 96, 96,
1849
1850 96, 96, 96, 96, 96, 96, 97, 830, 830, 830,
1851 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
1852 97, 97, 97, 98, 98, 830, 98, 98, 98, 98,
1853 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
1854 99, 830, 99, 830, 830, 830, 99, 99, 99, 99,
1855 99, 830, 99, 99, 99, 99, 99, 104, 104, 830,
1856 830, 830, 104, 104, 104, 104, 104, 104, 104, 830,
1857 104, 104, 104, 104, 105, 105, 105, 105, 105, 105,
1858 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
1859 105, 113, 113, 113, 830, 830, 113, 113, 830, 113,
1860
1861 116, 830, 116, 830, 830, 830, 116, 116, 116, 116,
1862 116, 830, 116, 116, 116, 116, 116, 141, 141, 830,
1863 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
1864 141, 141, 141, 141, 153, 830, 153, 830, 830, 830,
1865 153, 153, 830, 153, 153, 830, 153, 153, 153, 153,
1866 153, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1867 158, 158, 158, 158, 158, 158, 158, 158, 165, 165,
1868 165, 830, 830, 165, 165, 830, 165, 169, 830, 169,
1869 830, 830, 830, 169, 169, 169, 169, 169, 830, 169,
1870 169, 169, 169, 169, 171, 830, 171, 830, 830, 830,
1871
1872 171, 171, 171, 171, 171, 830, 171, 171, 171, 171,
1873 171, 182, 182, 830, 830, 182, 830, 830, 182, 183,
1874 830, 183, 830, 830, 830, 183, 183, 183, 183, 183,
1875 830, 183, 183, 183, 183, 183, 141, 141, 830, 141,
1876 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
1877 141, 141, 141, 221, 221, 221, 830, 830, 221, 221,
1878 830, 221, 229, 830, 229, 830, 830, 830, 229, 229,
1879 229, 229, 229, 830, 229, 229, 229, 229, 229, 230,
1880 830, 230, 830, 830, 830, 230, 230, 230, 230, 230,
1881 830, 230, 230, 230, 230, 230, 245, 245, 245, 830,
1882
1883 245, 830, 830, 245, 249, 830, 249, 830, 830, 830,
1884 249, 249, 249, 249, 249, 830, 249, 249, 249, 249,
1885 249, 283, 830, 283, 830, 830, 830, 283, 283, 830,
1886 283, 283, 830, 283, 283, 283, 283, 283, 285, 830,
1887 830, 285, 830, 830, 285, 285, 285, 285, 293, 293,
1888 293, 830, 830, 293, 293, 830, 293, 294, 830, 294,
1889 830, 830, 294, 294, 830, 830, 294, 298, 830, 298,
1890 830, 830, 830, 298, 298, 298, 298, 298, 830, 298,
1891 298, 298, 298, 298, 300, 830, 300, 830, 830, 830,
1892 300, 300, 300, 300, 300, 830, 300, 300, 300, 300,
1893
1894 300, 313, 313, 830, 313, 830, 830, 313, 317, 317,
1895 317, 830, 317, 830, 830, 317, 318, 830, 830, 318,
1896 830, 830, 318, 320, 830, 320, 830, 830, 830, 320,
1897 320, 320, 320, 320, 830, 320, 320, 320, 320, 320,
1898 321, 830, 321, 830, 830, 830, 321, 321, 321, 321,
1899 321, 830, 321, 321, 321, 321, 321, 324, 830, 324,
1900 830, 830, 830, 324, 324, 324, 324, 324, 324, 324,
1901 324, 324, 324, 324, 266, 830, 266, 830, 830, 830,
1902 266, 266, 266, 266, 266, 266, 266, 266, 266, 266,
1903 266, 277, 830, 277, 830, 830, 830, 277, 277, 277,
1904
1905 277, 277, 277, 277, 277, 277, 277, 277, 99, 830,
1906 99, 830, 830, 830, 99, 99, 99, 99, 99, 830,
1907 99, 99, 99, 99, 99, 283, 830, 283, 830, 830,
1908 830, 283, 283, 283, 283, 283, 830, 283, 283, 283,
1909 283, 283, 285, 285, 830, 285, 830, 830, 285, 285,
1910 285, 285, 153, 830, 153, 830, 830, 830, 153, 153,
1911 153, 153, 153, 830, 153, 153, 153, 153, 153, 350,
1912 350, 350, 830, 830, 350, 350, 830, 350, 355, 830,
1913 355, 830, 830, 830, 355, 355, 355, 355, 355, 830,
1914 355, 355, 355, 355, 355, 356, 830, 356, 830, 830,
1915
1916 830, 356, 356, 356, 356, 356, 830, 356, 356, 356,
1917 356, 356, 371, 371, 830, 371, 830, 830, 371, 373,
1918 373, 373, 830, 373, 830, 830, 373, 374, 374, 374,
1919 830, 374, 830, 830, 374, 376, 830, 376, 830, 830,
1920 830, 376, 376, 376, 376, 376, 830, 376, 376, 376,
1921 376, 376, 379, 830, 379, 830, 830, 830, 379, 379,
1922 379, 379, 379, 830, 379, 379, 379, 379, 379, 410,
1923 830, 830, 410, 830, 830, 410, 410, 410, 410, 413,
1924 413, 413, 830, 830, 413, 413, 830, 413, 417, 830,
1925 417, 830, 830, 830, 417, 417, 417, 417, 417, 830,
1926
1927 417, 417, 417, 417, 417, 419, 830, 419, 830, 830,
1928 830, 419, 419, 419, 419, 419, 830, 419, 419, 419,
1929 419, 419, 433, 433, 830, 433, 830, 830, 433, 434,
1930 434, 830, 434, 830, 830, 434, 435, 435, 435, 830,
1931 435, 830, 830, 435, 436, 830, 830, 436, 830, 830,
1932 436, 437, 830, 437, 830, 830, 830, 437, 437, 437,
1933 437, 437, 830, 437, 437, 437, 437, 437, 440, 830,
1934 440, 830, 830, 830, 440, 440, 440, 440, 440, 830,
1935 440, 440, 440, 440, 440, 395, 830, 395, 830, 830,
1936 830, 395, 395, 395, 395, 395, 395, 395, 395, 395,
1937
1938 395, 395, 400, 830, 400, 830, 830, 830, 400, 400,
1939 400, 400, 400, 400, 400, 400, 400, 400, 400, 406,
1940 830, 406, 830, 830, 830, 406, 406, 406, 406, 406,
1941 406, 406, 406, 406, 406, 406, 470, 470, 470, 830,
1942 830, 470, 470, 830, 470, 475, 830, 475, 830, 830,
1943 830, 475, 475, 475, 475, 475, 830, 475, 475, 475,
1944 475, 475, 476, 830, 476, 830, 830, 830, 476, 476,
1945 476, 476, 476, 830, 476, 476, 476, 476, 476, 490,
1946 490, 830, 490, 830, 830, 490, 491, 491, 830, 491,
1947 830, 830, 491, 493, 493, 493, 830, 493, 830, 830,
1948
1949 493, 494, 494, 494, 830, 494, 830, 830, 494, 496,
1950 830, 496, 830, 830, 830, 496, 496, 496, 496, 496,
1951 830, 496, 496, 496, 496, 496, 499, 830, 499, 830,
1952 830, 830, 499, 499, 499, 499, 499, 830, 499, 499,
1953 499, 499, 499, 509, 830, 830, 509, 830, 830, 509,
1954 509, 509, 509, 514, 830, 830, 514, 830, 830, 514,
1955 514, 514, 514, 534, 534, 534, 830, 830, 534, 534,
1956 830, 534, 538, 830, 538, 830, 830, 830, 538, 538,
1957 538, 538, 538, 830, 538, 538, 538, 538, 538, 540,
1958 830, 540, 830, 830, 830, 540, 540, 540, 540, 540,
1959
1960 830, 540, 540, 540, 540, 540, 541, 830, 541, 830,
1961 830, 830, 541, 541, 541, 541, 541, 830, 541, 541,
1962 541, 541, 541, 556, 556, 830, 556, 830, 830, 556,
1963 557, 557, 830, 557, 830, 830, 557, 558, 558, 558,
1964 830, 558, 830, 830, 558, 559, 830, 830, 559, 830,
1965 830, 559, 560, 830, 560, 830, 830, 830, 560, 560,
1966 560, 560, 560, 830, 560, 560, 560, 560, 560, 563,
1967 830, 563, 830, 830, 830, 563, 563, 563, 563, 563,
1968 830, 563, 563, 563, 563, 563, 568, 830, 830, 568,
1969 830, 830, 568, 568, 568, 568, 586, 830, 830, 586,
1970
1971 830, 830, 586, 586, 586, 586, 591, 591, 591, 830,
1972 830, 591, 591, 830, 591, 596, 830, 596, 830, 830,
1973 830, 596, 596, 596, 596, 596, 830, 596, 596, 596,
1974 596, 596, 597, 830, 597, 830, 830, 830, 597, 597,
1975 597, 597, 597, 830, 597, 597, 597, 597, 597, 599,
1976 830, 599, 830, 830, 830, 599, 599, 599, 599, 599,
1977 830, 599, 599, 599, 599, 599, 610, 830, 610, 830,
1978 830, 830, 830, 830, 830, 610, 614, 614, 830, 614,
1979 830, 830, 614, 615, 615, 830, 615, 830, 830, 615,
1980 617, 617, 617, 830, 617, 830, 830, 617, 618, 618,
1981
1982 618, 830, 618, 830, 830, 618, 620, 830, 620, 830,
1983 830, 830, 620, 620, 620, 620, 620, 830, 620, 620,
1984 620, 620, 620, 623, 830, 623, 830, 830, 830, 623,
1985 623, 623, 623, 623, 830, 623, 623, 623, 623, 623,
1986 629, 830, 830, 629, 830, 830, 629, 629, 629, 629,
1987 632, 830, 830, 632, 830, 830, 632, 632, 632, 632,
1988 634, 830, 830, 634, 830, 830, 634, 634, 634, 634,
1989 649, 649, 649, 830, 830, 649, 649, 830, 649, 653,
1990 830, 653, 830, 830, 830, 653, 653, 653, 653, 653,
1991 830, 653, 653, 653, 653, 653, 655, 830, 655, 830,
1992
1993 830, 830, 655, 655, 655, 655, 655, 830, 655, 655,
1994 655, 655, 655, 656, 830, 656, 830, 830, 830, 656,
1995 656, 656, 656, 656, 830, 656, 656, 656, 656, 656,
1996 153, 830, 153, 830, 830, 830, 153, 153, 153, 153,
1997 153, 830, 153, 153, 153, 153, 153, 673, 673, 830,
1998 673, 830, 830, 673, 674, 674, 830, 674, 830, 830,
1999 674, 675, 675, 675, 830, 675, 830, 830, 675, 676,
2000 830, 830, 676, 830, 830, 676, 677, 830, 677, 830,
2001 830, 830, 677, 677, 677, 677, 677, 830, 677, 677,
2002 677, 677, 677, 680, 830, 680, 830, 830, 830, 680,
2003
2004 680, 680, 680, 680, 830, 680, 680, 680, 680, 680,
2005 693, 693, 693, 830, 830, 693, 693, 830, 693, 698,
2006 830, 698, 830, 830, 830, 698, 698, 698, 698, 698,
2007 830, 698, 698, 698, 698, 698, 699, 830, 699, 830,
2008 830, 830, 699, 699, 699, 699, 699, 830, 699, 699,
2009 699, 699, 699, 701, 830, 701, 830, 830, 830, 701,
2010 701, 701, 701, 701, 830, 701, 701, 701, 701, 701,
2011 716, 716, 830, 716, 830, 830, 716, 717, 717, 830,
2012 717, 830, 830, 717, 719, 719, 719, 830, 719, 830,
2013 830, 719, 720, 720, 720, 830, 720, 830, 830, 720,
2014
2015 722, 830, 722, 830, 830, 830, 722, 722, 722, 722,
2016 722, 830, 722, 722, 722, 722, 722, 725, 830, 725,
2017 830, 830, 830, 725, 725, 725, 725, 725, 830, 725,
2018 725, 725, 725, 725, 736, 736, 736, 830, 830, 736,
2019 736, 830, 736, 740, 830, 740, 830, 830, 830, 740,
2020 740, 740, 740, 740, 830, 740, 740, 740, 740, 740,
2021 742, 830, 742, 830, 830, 830, 742, 742, 742, 742,
2022 742, 830, 742, 742, 742, 742, 742, 743, 830, 743,
2023 830, 830, 830, 743, 743, 743, 743, 743, 830, 743,
2024 743, 743, 743, 743, 759, 759, 830, 759, 830, 830,
2025
2026 759, 760, 760, 830, 760, 830, 830, 760, 761, 761,
2027 761, 830, 761, 830, 830, 761, 762, 830, 830, 762,
2028 830, 830, 762, 763, 830, 763, 830, 830, 830, 763,
2029 763, 763, 763, 763, 830, 763, 763, 763, 763, 763,
2030 766, 830, 766, 830, 830, 830, 766, 766, 766, 766,
2031 766, 830, 766, 766, 766, 766, 766, 770, 830, 830,
2032 770, 830, 830, 770, 770, 770, 770, 776, 830, 830,
2033 776, 830, 830, 776, 776, 776, 776, 779, 830, 830,
2034 779, 830, 830, 779, 779, 779, 779, 780, 830, 780,
2035 830, 830, 830, 830, 830, 830, 780, 830, 830, 830,
2036
2037 830, 830, 780, 294, 830, 294, 830, 830, 294, 294,
2038 830, 830, 294, 99, 830, 99, 830, 830, 830, 99,
2039 99, 99, 99, 99, 830, 99, 99, 99, 99, 99,
2040 163, 830, 163, 830, 830, 830, 163, 163, 163, 163,
2041 163, 830, 163, 163, 163, 163, 163, 791, 791, 830,
2042 791, 830, 830, 791, 792, 792, 830, 792, 830, 830,
2043 792, 794, 794, 794, 830, 794, 830, 830, 794, 795,
2044 795, 795, 830, 795, 830, 830, 795, 320, 830, 320,
2045 830, 830, 830, 320, 320, 320, 320, 320, 830, 320,
2046 320, 320, 320, 320, 801, 801, 830, 801, 830, 830,
2047
2048 801, 802, 802, 830, 802, 830, 830, 802, 803, 803,
2049 803, 830, 803, 830, 830, 803, 804, 830, 830, 804,
2050 830, 830, 804, 808, 808, 830, 808, 830, 830, 808,
2051 810, 810, 830, 830, 810, 830, 830, 810, 811, 811,
2052 811, 830, 811, 830, 830, 811, 812, 812, 830, 830,
2053 812, 830, 830, 812, 816, 816, 830, 830, 816, 830,
2054 830, 816, 817, 817, 830, 830, 817, 830, 830, 817,
2055 822, 822, 830, 830, 822, 830, 830, 822, 823, 823,
2056 830, 830, 823, 830, 830, 823, 17, 830, 830, 830,
2057 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
2058
2059 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
2060 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
2061 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
2062 830, 830, 830, 830, 830, 830, 830, 830
2063 } ;
2064
2065 static yyconst short int yy_chk[11839] =
2066 { 0,
2067 0, 0, 1, 14, 14, 14, 1, 2, 2, 2,
2068 3, 4, 2, 3, 4, 7, 7, 7, 0, 23,
2069 7, 8, 8, 8, 826, 29, 8, 29, 23, 9,
2070 9, 9, 2, 2, 9, 34, 34, 3, 4, 23,
2071 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2072 2, 2, 2, 2, 2, 2, 2, 5, 5, 5,
2073 5, 823, 5, 5, 822, 5, 5, 817, 5, 5,
2074 5, 10, 10, 10, 36, 36, 10, 44, 5, 5,
2075 5, 21, 21, 21, 5, 6, 6, 6, 6, 44,
2076 6, 6, 99, 6, 6, 60, 6, 6, 6, 39,
2077
2078 30, 39, 30, 60, 99, 30, 6, 6, 6, 30,
2079 62, 62, 6, 11, 11, 11, 11, 11, 11, 11,
2080 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2081 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2082 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2083 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
2084 11, 11, 11, 11, 15, 816, 15, 15, 15, 15,
2085 15, 15, 42, 43, 42, 43, 45, 59, 45, 59,
2086 335, 335, 15, 16, 812, 16, 16, 16, 16, 16,
2087 16, 52, 52, 52, 52, 52, 52, 66, 66, 66,
2088
2089 102, 16, 27, 27, 27, 27, 27, 27, 46, 61,
2090 46, 61, 102, 46, 72, 72, 72, 46, 61, 74,
2091 46, 86, 27, 86, 95, 27, 95, 98, 74, 98,
2092 27, 810, 46, 27, 182, 27, 48, 48, 48, 74,
2093 48, 182, 48, 48, 422, 422, 48, 58, 48, 58,
2094 58, 58, 58, 58, 58, 271, 48, 48, 808, 48,
2095 48, 274, 103, 48, 48, 48, 50, 75, 50, 50,
2096 50, 50, 50, 50, 103, 148, 75, 148, 50, 51,
2097 271, 51, 267, 51, 804, 51, 274, 75, 51, 51,
2098 267, 51, 51, 51, 51, 51, 51, 51, 51, 51,
2099
2100 802, 166, 51, 166, 51, 51, 51, 87, 87, 87,
2101 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
2102 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
2103 53, 245, 53, 146, 53, 801, 53, 166, 245, 53,
2104 53, 330, 53, 53, 68, 146, 68, 68, 68, 68,
2105 68, 68, 330, 53, 460, 53, 142, 142, 142, 147,
2106 153, 53, 53, 53, 54, 460, 54, 278, 54, 793,
2107 54, 147, 153, 54, 54, 278, 54, 54, 54, 54,
2108 54, 54, 54, 54, 54, 54, 530, 54, 530, 54,
2109 54, 54, 151, 151, 151, 54, 54, 54, 54, 54,
2110
2111 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
2112 54, 54, 54, 54, 54, 56, 317, 56, 396, 56,
2113 792, 56, 273, 317, 56, 56, 396, 56, 56, 56,
2114 56, 56, 56, 56, 56, 56, 56, 401, 56, 791,
2115 56, 56, 56, 788, 273, 401, 56, 56, 56, 56,
2116 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
2117 56, 56, 56, 56, 56, 56, 57, 57, 57, 57,
2118 57, 57, 57, 782, 448, 481, 481, 57, 69, 69,
2119 69, 69, 69, 69, 318, 57, 57, 57, 57, 57,
2120 70, 318, 70, 70, 448, 70, 70, 70, 70, 70,
2121
2122 70, 79, 79, 79, 79, 79, 79, 80, 80, 80,
2123 80, 80, 80, 101, 373, 101, 407, 101, 552, 101,
2124 552, 373, 101, 101, 407, 101, 101, 101, 101, 101,
2125 101, 101, 101, 101, 334, 374, 101, 777, 101, 101,
2126 101, 774, 374, 334, 101, 101, 101, 101, 101, 101,
2127 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
2128 101, 101, 101, 101, 105, 105, 105, 771, 105, 453,
2129 105, 105, 546, 546, 105, 110, 105, 110, 110, 110,
2130 110, 110, 110, 435, 105, 105, 760, 105, 105, 453,
2131 435, 105, 105, 105, 106, 106, 106, 759, 106, 504,
2132
2133 106, 106, 663, 663, 106, 747, 106, 126, 126, 126,
2134 126, 126, 126, 436, 106, 106, 734, 106, 106, 504,
2135 436, 106, 106, 106, 107, 107, 107, 107, 107, 107,
2136 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
2137 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
2138 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
2139 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
2140 107, 107, 107, 107, 107, 108, 108, 108, 108, 108,
2141 108, 732, 222, 457, 222, 108, 111, 457, 111, 729,
2142 111, 222, 111, 222, 457, 111, 111, 813, 111, 813,
2143
2144 111, 111, 111, 111, 111, 111, 111, 493, 494, 111,
2145 718, 111, 111, 111, 493, 494, 717, 111, 111, 111,
2146 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
2147 111, 111, 111, 111, 111, 111, 111, 114, 343, 114,
2148 130, 130, 130, 130, 130, 130, 164, 716, 164, 343,
2149 343, 114, 114, 114, 114, 114, 114, 131, 164, 508,
2150 131, 131, 131, 131, 131, 131, 145, 145, 145, 145,
2151 145, 145, 523, 114, 115, 513, 115, 692, 115, 508,
2152 115, 523, 164, 115, 115, 691, 115, 115, 149, 149,
2153 149, 149, 149, 149, 690, 513, 737, 115, 737, 115,
2154
2155 225, 174, 225, 174, 465, 115, 115, 115, 116, 225,
2156 116, 225, 116, 174, 116, 465, 465, 116, 116, 689,
2157 116, 116, 150, 150, 150, 150, 150, 150, 558, 509,
2158 526, 116, 737, 116, 227, 558, 227, 174, 509, 116,
2159 116, 116, 117, 227, 117, 227, 117, 688, 117, 509,
2160 526, 117, 117, 685, 117, 117, 117, 117, 117, 117,
2161 117, 117, 117, 559, 617, 117, 684, 117, 117, 117,
2162 559, 617, 682, 117, 117, 117, 117, 117, 117, 117,
2163 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
2164 117, 117, 117, 118, 674, 118, 673, 118, 669, 118,
2165
2166 661, 567, 118, 118, 648, 118, 118, 118, 118, 118,
2167 118, 118, 118, 118, 118, 618, 118, 647, 118, 118,
2168 118, 567, 618, 646, 118, 118, 118, 118, 118, 118,
2169 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
2170 118, 118, 118, 118, 119, 119, 119, 119, 119, 119,
2171 119, 749, 749, 644, 155, 119, 155, 155, 155, 155,
2172 155, 155, 675, 119, 119, 119, 119, 119, 120, 675,
2173 120, 120, 120, 120, 120, 120, 120, 121, 121, 121,
2174 121, 121, 121, 121, 571, 643, 514, 160, 121, 160,
2175 160, 160, 160, 160, 160, 514, 121, 121, 121, 121,
2176
2177 121, 123, 676, 123, 571, 123, 514, 123, 642, 676,
2178 123, 123, 638, 123, 123, 123, 163, 637, 163, 163,
2179 163, 163, 163, 163, 123, 630, 123, 297, 236, 297,
2180 236, 626, 123, 123, 123, 124, 297, 124, 297, 124,
2181 236, 124, 616, 573, 124, 124, 615, 124, 124, 124,
2182 124, 124, 124, 124, 124, 124, 614, 780, 124, 780,
2183 124, 124, 124, 573, 236, 589, 124, 124, 124, 124,
2184 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
2185 124, 124, 124, 124, 124, 124, 125, 588, 125, 584,
2186 125, 583, 125, 780, 574, 125, 125, 582, 125, 125,
2187
2188 125, 125, 125, 125, 125, 125, 125, 125, 719, 125,
2189 578, 125, 125, 125, 574, 719, 577, 125, 125, 125,
2190 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
2191 125, 125, 125, 125, 125, 125, 125, 127, 572, 127,
2192 569, 127, 557, 127, 556, 585, 127, 127, 544, 127,
2193 127, 127, 127, 127, 127, 127, 127, 127, 127, 720,
2194 127, 532, 127, 127, 127, 585, 720, 529, 127, 127,
2195 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
2196 127, 127, 127, 127, 127, 127, 127, 127, 128, 128,
2197 128, 128, 128, 128, 128, 784, 784, 528, 527, 128,
2198
2199 179, 179, 179, 179, 179, 179, 525, 128, 128, 128,
2200 128, 128, 129, 129, 129, 129, 129, 129, 129, 628,
2201 522, 568, 519, 129, 181, 181, 181, 181, 181, 181,
2202 568, 129, 129, 129, 129, 129, 154, 631, 154, 628,
2203 154, 568, 154, 518, 633, 154, 154, 517, 154, 154,
2204 154, 154, 154, 154, 154, 154, 154, 631, 761, 154,
2205 515, 154, 154, 154, 633, 761, 512, 154, 154, 154,
2206 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
2207 154, 154, 154, 154, 154, 154, 154, 158, 158, 158,
2208 511, 158, 728, 158, 158, 510, 506, 158, 492, 158,
2209
2210 196, 196, 196, 196, 196, 196, 196, 158, 158, 491,
2211 158, 158, 728, 490, 158, 158, 158, 159, 159, 159,
2212 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
2213 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
2214 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
2215 159, 159, 159, 159, 159, 159, 159, 159, 159, 159,
2216 159, 159, 159, 159, 159, 159, 159, 159, 162, 463,
2217 162, 207, 207, 207, 207, 207, 207, 269, 659, 742,
2218 162, 269, 162, 162, 162, 162, 162, 162, 269, 269,
2219 659, 742, 162, 209, 209, 209, 209, 209, 209, 316,
2220
2221 316, 316, 316, 316, 162, 167, 210, 167, 210, 210,
2222 210, 210, 210, 210, 821, 821, 821, 821, 821, 167,
2223 167, 167, 167, 167, 167, 214, 214, 214, 214, 214,
2224 214, 215, 762, 215, 215, 215, 215, 215, 215, 762,
2225 462, 167, 168, 586, 168, 218, 218, 218, 218, 218,
2226 218, 168, 586, 168, 454, 452, 168, 168, 168, 168,
2227 168, 168, 169, 586, 169, 451, 169, 450, 169, 446,
2228 434, 169, 169, 433, 169, 169, 226, 226, 226, 226,
2229 226, 226, 425, 629, 733, 169, 411, 169, 307, 308,
2230 307, 308, 629, 169, 169, 169, 170, 307, 170, 307,
2231
2232 170, 308, 170, 629, 733, 170, 170, 410, 170, 170,
2233 233, 404, 233, 233, 233, 233, 233, 233, 735, 170,
2234 403, 170, 353, 402, 353, 308, 392, 170, 170, 170,
2235 171, 353, 171, 353, 171, 391, 171, 390, 735, 171,
2236 171, 389, 171, 171, 235, 235, 235, 235, 235, 235,
2237 388, 632, 769, 171, 385, 171, 384, 365, 372, 365,
2238 632, 171, 171, 171, 172, 172, 172, 172, 172, 365,
2239 172, 632, 769, 172, 172, 371, 172, 172, 172, 172,
2240 172, 172, 172, 172, 172, 794, 370, 172, 333, 172,
2241 172, 172, 794, 365, 332, 172, 172, 172, 172, 172,
2242
2243 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
2244 172, 172, 172, 172, 172, 173, 313, 173, 242, 242,
2245 242, 242, 242, 242, 303, 285, 280, 173, 279, 173,
2246 173, 173, 173, 173, 173, 243, 243, 243, 243, 243,
2247 243, 244, 244, 244, 244, 244, 244, 275, 364, 272,
2248 364, 173, 175, 264, 175, 241, 175, 364, 175, 364,
2249 775, 175, 175, 239, 175, 175, 175, 175, 175, 175,
2250 175, 175, 175, 175, 795, 175, 216, 175, 175, 175,
2251 775, 795, 211, 175, 175, 175, 175, 175, 175, 175,
2252 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
2253
2254 175, 175, 175, 176, 205, 176, 176, 176, 176, 176,
2255 176, 176, 177, 177, 177, 177, 177, 177, 177, 204,
2256 202, 201, 200, 177, 256, 256, 256, 256, 256, 256,
2257 199, 177, 177, 177, 177, 177, 178, 178, 178, 178,
2258 178, 178, 178, 778, 198, 197, 180, 178, 257, 257,
2259 257, 257, 257, 257, 257, 178, 178, 178, 178, 178,
2260 183, 803, 183, 778, 183, 161, 183, 157, 803, 183,
2261 183, 156, 183, 183, 183, 258, 258, 258, 258, 258,
2262 258, 634, 144, 183, 140, 183, 416, 429, 416, 429,
2263 634, 183, 183, 183, 184, 416, 184, 416, 184, 429,
2264
2265 184, 634, 139, 184, 184, 138, 184, 184, 184, 259,
2266 259, 259, 259, 259, 259, 770, 137, 184, 136, 184,
2267 428, 135, 428, 429, 770, 184, 184, 184, 185, 428,
2268 185, 428, 185, 134, 185, 770, 133, 185, 185, 132,
2269 185, 185, 185, 185, 185, 185, 185, 185, 185, 811,
2270 122, 185, 104, 185, 185, 185, 811, 100, 93, 185,
2271 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
2272 185, 185, 185, 185, 185, 185, 185, 185, 185, 186,
2273 92, 186, 63, 186, 55, 186, 37, 35, 186, 186,
2274 33, 186, 186, 186, 186, 186, 186, 186, 186, 186,
2275
2276 186, 31, 186, 17, 186, 186, 186, 13, 0, 0,
2277 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
2278 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
2279 187, 187, 187, 187, 187, 187, 187, 0, 0, 0,
2280 0, 187, 260, 260, 260, 260, 260, 260, 260, 187,
2281 187, 187, 187, 187, 188, 0, 188, 0, 188, 0,
2282 188, 0, 0, 188, 188, 0, 188, 188, 188, 188,
2283 188, 188, 188, 188, 188, 0, 0, 188, 0, 188,
2284 188, 188, 0, 0, 0, 188, 188, 188, 188, 188,
2285 188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
2286
2287 188, 188, 188, 188, 188, 189, 0, 189, 0, 189,
2288 0, 189, 0, 0, 189, 189, 0, 189, 189, 189,
2289 189, 189, 189, 189, 189, 189, 189, 0, 189, 0,
2290 189, 189, 189, 0, 0, 0, 189, 189, 189, 189,
2291 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
2292 189, 189, 189, 189, 189, 189, 190, 0, 190, 0,
2293 190, 0, 190, 0, 0, 190, 190, 0, 190, 190,
2294 190, 190, 190, 190, 190, 190, 190, 190, 0, 190,
2295 0, 190, 190, 190, 0, 0, 0, 190, 190, 190,
2296 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
2297
2298 190, 190, 190, 190, 190, 190, 190, 191, 191, 191,
2299 191, 191, 191, 191, 0, 0, 0, 0, 191, 261,
2300 261, 261, 261, 261, 261, 0, 191, 191, 191, 191,
2301 191, 194, 194, 194, 194, 194, 194, 194, 0, 0,
2302 0, 0, 194, 262, 262, 262, 262, 262, 262, 262,
2303 194, 194, 194, 194, 194, 195, 0, 195, 0, 195,
2304 0, 195, 0, 0, 195, 195, 0, 195, 195, 195,
2305 195, 195, 195, 195, 195, 195, 0, 0, 195, 0,
2306 195, 195, 195, 0, 0, 0, 195, 195, 195, 195,
2307 195, 195, 195, 195, 195, 195, 195, 195, 195, 195,
2308
2309 195, 195, 195, 195, 195, 195, 203, 0, 203, 0,
2310 203, 0, 203, 0, 0, 203, 203, 0, 203, 203,
2311 203, 203, 203, 203, 203, 203, 203, 0, 0, 203,
2312 0, 203, 203, 203, 0, 0, 0, 203, 203, 203,
2313 203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
2314 203, 203, 203, 203, 203, 203, 203, 208, 0, 208,
2315 776, 0, 208, 208, 208, 208, 208, 208, 212, 776,
2316 212, 0, 212, 0, 212, 0, 0, 212, 212, 0,
2317 776, 0, 212, 263, 263, 263, 263, 263, 263, 263,
2318 0, 212, 0, 212, 473, 0, 473, 0, 486, 212,
2319
2320 486, 212, 213, 473, 213, 473, 213, 486, 213, 486,
2321 0, 213, 213, 0, 779, 0, 213, 213, 213, 213,
2322 213, 213, 213, 779, 0, 213, 0, 213, 0, 0,
2323 0, 0, 0, 213, 779, 213, 217, 217, 217, 217,
2324 217, 217, 217, 217, 217, 217, 217, 217, 217, 217,
2325 217, 217, 217, 217, 217, 217, 217, 217, 217, 217,
2326 217, 217, 217, 217, 217, 217, 217, 217, 217, 217,
2327 217, 217, 217, 217, 217, 217, 217, 217, 217, 217,
2328 217, 217, 217, 217, 217, 217, 217, 219, 0, 219,
2329 281, 281, 281, 281, 281, 281, 219, 0, 219, 0,
2330
2331 0, 219, 219, 219, 219, 219, 219, 268, 268, 268,
2332 268, 268, 268, 268, 286, 0, 286, 286, 286, 286,
2333 286, 286, 0, 219, 220, 288, 220, 288, 288, 288,
2334 288, 288, 288, 220, 0, 220, 220, 0, 220, 220,
2335 220, 220, 220, 220, 223, 0, 223, 294, 294, 294,
2336 294, 294, 294, 0, 0, 0, 0, 0, 223, 223,
2337 223, 223, 223, 223, 302, 0, 302, 302, 302, 302,
2338 302, 302, 306, 0, 306, 306, 306, 306, 306, 306,
2339 223, 224, 0, 224, 312, 312, 312, 312, 312, 312,
2340 224, 0, 224, 0, 0, 224, 224, 224, 224, 224,
2341
2342 224, 228, 0, 228, 0, 228, 0, 228, 0, 0,
2343 228, 228, 0, 228, 228, 315, 315, 315, 315, 315,
2344 315, 0, 0, 0, 228, 0, 228, 537, 487, 537,
2345 487, 0, 228, 228, 228, 229, 537, 229, 537, 229,
2346 487, 229, 0, 0, 229, 229, 0, 229, 229, 326,
2347 326, 326, 326, 326, 326, 0, 0, 0, 229, 0,
2348 229, 551, 0, 551, 487, 0, 229, 229, 229, 230,
2349 551, 230, 551, 230, 0, 230, 0, 0, 230, 230,
2350 0, 230, 230, 327, 327, 327, 327, 327, 327, 0,
2351 0, 0, 230, 0, 230, 594, 553, 594, 553, 0,
2352
2353 230, 230, 230, 231, 594, 231, 594, 231, 553, 231,
2354 0, 0, 231, 231, 0, 231, 231, 231, 231, 231,
2355 231, 231, 231, 231, 0, 0, 231, 0, 231, 231,
2356 231, 0, 553, 0, 231, 231, 231, 231, 231, 231,
2357 231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
2358 231, 231, 231, 231, 232, 0, 232, 328, 328, 328,
2359 328, 328, 328, 0, 0, 0, 232, 0, 232, 232,
2360 232, 232, 232, 232, 331, 331, 331, 331, 331, 331,
2361 331, 337, 337, 337, 337, 337, 337, 0, 0, 0,
2362 232, 234, 0, 234, 345, 345, 345, 345, 345, 345,
2363
2364 234, 0, 234, 234, 0, 234, 234, 234, 234, 234,
2365 234, 237, 0, 237, 0, 237, 0, 237, 0, 0,
2366 237, 237, 0, 237, 237, 237, 237, 237, 237, 237,
2367 237, 237, 237, 0, 237, 0, 237, 237, 237, 0,
2368 0, 0, 237, 237, 237, 237, 237, 237, 237, 237,
2369 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
2370 237, 237, 238, 0, 238, 238, 238, 238, 238, 238,
2371 238, 240, 240, 240, 240, 240, 240, 240, 0, 0,
2372 0, 0, 240, 0, 339, 339, 339, 339, 339, 339,
2373 240, 240, 240, 240, 240, 247, 0, 247, 0, 247,
2374
2375 0, 247, 0, 0, 247, 247, 0, 247, 0, 247,
2376 247, 247, 247, 247, 247, 247, 339, 0, 247, 0,
2377 247, 247, 247, 0, 0, 0, 247, 247, 247, 247,
2378 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
2379 247, 247, 247, 247, 247, 247, 248, 0, 248, 0,
2380 248, 0, 248, 0, 0, 248, 248, 0, 248, 248,
2381 248, 340, 340, 340, 340, 340, 340, 0, 0, 248,
2382 0, 248, 609, 611, 609, 611, 0, 248, 248, 248,
2383 249, 609, 249, 609, 249, 611, 249, 0, 0, 249,
2384 249, 0, 249, 249, 249, 346, 340, 346, 346, 346,
2385
2386 346, 346, 346, 249, 0, 249, 652, 0, 652, 611,
2387 0, 249, 249, 249, 250, 652, 250, 652, 250, 0,
2388 250, 0, 0, 250, 250, 0, 250, 250, 250, 348,
2389 348, 348, 348, 348, 348, 0, 0, 250, 0, 250,
2390 668, 670, 668, 670, 0, 250, 250, 250, 251, 668,
2391 251, 668, 251, 670, 251, 0, 0, 251, 251, 0,
2392 251, 251, 251, 251, 251, 251, 251, 251, 251, 0,
2393 0, 251, 0, 251, 251, 251, 0, 670, 0, 251,
2394 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
2395 251, 251, 251, 251, 251, 251, 251, 251, 251, 252,
2396
2397 0, 252, 0, 252, 0, 252, 0, 0, 252, 252,
2398 0, 252, 252, 252, 360, 360, 360, 360, 360, 360,
2399 252, 0, 252, 0, 252, 696, 713, 696, 713, 0,
2400 252, 252, 252, 253, 696, 253, 696, 253, 713, 253,
2401 0, 0, 253, 253, 0, 253, 253, 253, 361, 361,
2402 361, 361, 361, 361, 253, 0, 253, 0, 253, 711,
2403 0, 711, 713, 0, 253, 253, 253, 254, 711, 254,
2404 711, 254, 0, 254, 0, 0, 254, 254, 0, 254,
2405 254, 254, 254, 254, 254, 254, 254, 254, 0, 0,
2406 254, 0, 254, 254, 254, 0, 0, 0, 254, 254,
2407
2408 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
2409 254, 254, 254, 254, 254, 254, 254, 254, 255, 0,
2410 255, 0, 255, 0, 255, 0, 0, 255, 255, 0,
2411 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
2412 0, 255, 0, 255, 255, 255, 0, 0, 0, 255,
2413 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
2414 255, 255, 255, 255, 255, 255, 255, 255, 255, 265,
2415 0, 265, 0, 265, 0, 265, 0, 0, 265, 265,
2416 0, 265, 265, 265, 265, 265, 265, 265, 265, 265,
2417 0, 0, 265, 0, 265, 265, 265, 0, 0, 0,
2418
2419 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
2420 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
2421 266, 0, 266, 0, 266, 0, 266, 0, 0, 266,
2422 266, 0, 266, 266, 266, 367, 367, 367, 367, 367,
2423 367, 266, 0, 266, 0, 266, 0, 0, 0, 0,
2424 0, 266, 266, 266, 270, 0, 0, 270, 270, 270,
2425 270, 270, 270, 270, 276, 0, 276, 0, 276, 0,
2426 276, 0, 0, 276, 276, 0, 276, 276, 276, 276,
2427 276, 276, 276, 276, 276, 0, 0, 276, 0, 276,
2428 276, 276, 0, 0, 0, 276, 276, 276, 276, 276,
2429
2430 276, 276, 276, 276, 276, 276, 276, 276, 276, 276,
2431 276, 276, 276, 276, 276, 277, 0, 277, 0, 277,
2432 0, 277, 0, 0, 277, 277, 0, 277, 277, 277,
2433 381, 381, 381, 381, 381, 381, 277, 0, 277, 0,
2434 277, 0, 0, 0, 0, 0, 277, 277, 277, 282,
2435 0, 282, 282, 282, 282, 282, 282, 0, 738, 0,
2436 738, 282, 283, 0, 283, 0, 283, 738, 283, 738,
2437 0, 283, 283, 0, 0, 283, 283, 349, 0, 349,
2438 349, 349, 349, 349, 349, 283, 0, 283, 754, 756,
2439 754, 756, 0, 283, 0, 283, 284, 754, 284, 754,
2440
2441 284, 756, 284, 0, 0, 284, 284, 0, 0, 284,
2442 284, 284, 284, 284, 284, 284, 284, 0, 0, 284,
2443 0, 284, 0, 0, 0, 756, 0, 284, 0, 284,
2444 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
2445 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
2446 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
2447 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
2448 287, 287, 287, 287, 287, 287, 287, 287, 287, 287,
2449 287, 289, 0, 289, 289, 289, 289, 289, 289, 0,
2450 0, 0, 0, 289, 290, 0, 290, 290, 290, 290,
2451
2452 290, 290, 0, 818, 0, 818, 290, 291, 0, 291,
2453 0, 291, 818, 291, 818, 0, 291, 291, 0, 291,
2454 291, 291, 291, 291, 291, 291, 291, 291, 0, 0,
2455 291, 0, 291, 291, 291, 0, 0, 0, 291, 291,
2456 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
2457 291, 291, 291, 291, 291, 291, 291, 291, 295, 358,
2458 295, 358, 358, 358, 358, 358, 358, 0, 0, 0,
2459 0, 0, 295, 295, 295, 295, 295, 295, 359, 0,
2460 359, 359, 359, 359, 359, 359, 369, 369, 369, 369,
2461 369, 369, 369, 0, 295, 296, 0, 296, 382, 382,
2462
2463 382, 382, 382, 382, 296, 0, 296, 0, 0, 296,
2464 296, 296, 296, 296, 296, 298, 0, 298, 0, 298,
2465 0, 298, 0, 0, 298, 298, 0, 298, 298, 383,
2466 383, 383, 383, 383, 383, 0, 0, 0, 298, 0,
2467 298, 0, 0, 0, 0, 0, 298, 298, 298, 299,
2468 0, 299, 0, 299, 0, 299, 0, 0, 299, 299,
2469 0, 299, 299, 386, 386, 386, 386, 386, 386, 386,
2470 0, 0, 299, 0, 299, 0, 0, 0, 0, 0,
2471 299, 299, 299, 300, 0, 300, 0, 300, 0, 300,
2472 0, 0, 300, 300, 387, 300, 300, 387, 387, 387,
2473
2474 387, 387, 387, 0, 0, 0, 300, 0, 300, 0,
2475 0, 0, 0, 0, 300, 300, 300, 301, 0, 301,
2476 0, 301, 0, 301, 0, 0, 301, 301, 0, 301,
2477 301, 301, 301, 301, 301, 301, 301, 301, 0, 0,
2478 301, 0, 301, 301, 301, 0, 0, 0, 301, 301,
2479 301, 301, 301, 301, 301, 301, 301, 301, 301, 301,
2480 301, 301, 301, 301, 301, 301, 301, 301, 304, 0,
2481 304, 397, 397, 397, 397, 397, 397, 397, 0, 0,
2482 304, 0, 304, 304, 304, 304, 304, 304, 398, 0,
2483 0, 398, 398, 398, 398, 398, 398, 408, 408, 408,
2484
2485 408, 408, 408, 0, 304, 305, 409, 305, 409, 409,
2486 409, 409, 409, 409, 305, 0, 305, 305, 0, 305,
2487 305, 305, 305, 305, 305, 309, 0, 309, 0, 309,
2488 0, 309, 0, 0, 309, 309, 0, 309, 309, 309,
2489 309, 309, 309, 309, 309, 309, 309, 0, 309, 0,
2490 309, 309, 309, 0, 0, 0, 309, 309, 309, 309,
2491 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
2492 309, 309, 309, 309, 309, 309, 310, 0, 310, 310,
2493 310, 310, 310, 310, 310, 311, 311, 311, 311, 311,
2494 311, 311, 0, 0, 0, 412, 311, 412, 412, 412,
2495
2496 412, 412, 412, 0, 311, 311, 311, 311, 311, 319,
2497 0, 319, 0, 319, 0, 319, 0, 0, 319, 319,
2498 0, 319, 319, 319, 421, 421, 421, 421, 421, 421,
2499 421, 0, 319, 0, 319, 0, 0, 0, 0, 0,
2500 319, 319, 319, 321, 0, 321, 0, 321, 0, 321,
2501 0, 0, 321, 321, 0, 321, 321, 321, 424, 0,
2502 424, 424, 424, 424, 424, 424, 321, 0, 321, 0,
2503 0, 0, 0, 0, 321, 321, 321, 322, 0, 322,
2504 0, 322, 0, 322, 0, 0, 322, 322, 0, 322,
2505 322, 322, 432, 432, 432, 432, 432, 432, 0, 0,
2506
2507 322, 0, 322, 0, 0, 0, 0, 0, 322, 322,
2508 322, 323, 0, 323, 0, 323, 0, 323, 0, 0,
2509 323, 323, 0, 323, 323, 323, 323, 323, 323, 323,
2510 323, 323, 0, 0, 323, 0, 323, 323, 323, 0,
2511 0, 0, 323, 323, 323, 323, 323, 323, 323, 323,
2512 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
2513 323, 323, 324, 0, 324, 0, 324, 0, 324, 0,
2514 0, 324, 324, 0, 324, 324, 324, 442, 442, 442,
2515 442, 442, 442, 0, 0, 324, 0, 324, 0, 0,
2516 0, 0, 0, 324, 324, 324, 325, 0, 325, 0,
2517
2518 325, 0, 325, 0, 0, 325, 325, 0, 325, 325,
2519 325, 325, 325, 325, 325, 325, 325, 0, 0, 325,
2520 0, 325, 325, 325, 0, 0, 0, 325, 325, 325,
2521 325, 325, 325, 325, 325, 325, 325, 325, 325, 325,
2522 325, 325, 325, 325, 325, 325, 325, 329, 0, 329,
2523 0, 329, 0, 329, 0, 0, 329, 329, 0, 329,
2524 329, 329, 443, 443, 443, 443, 443, 443, 329, 0,
2525 329, 0, 329, 0, 0, 0, 0, 0, 329, 329,
2526 329, 336, 0, 336, 0, 336, 0, 336, 0, 0,
2527 336, 336, 0, 336, 336, 336, 336, 336, 336, 336,
2528
2529 336, 336, 0, 0, 336, 0, 336, 336, 336, 0,
2530 0, 0, 336, 336, 336, 336, 336, 336, 336, 336,
2531 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
2532 336, 336, 338, 0, 338, 0, 338, 0, 338, 0,
2533 0, 338, 338, 0, 338, 338, 338, 338, 338, 338,
2534 338, 338, 338, 0, 0, 338, 0, 338, 338, 338,
2535 0, 0, 0, 338, 338, 338, 338, 338, 338, 338,
2536 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
2537 338, 338, 338, 341, 0, 341, 0, 341, 0, 341,
2538 0, 0, 341, 341, 0, 341, 341, 341, 341, 341,
2539
2540 341, 341, 341, 341, 0, 0, 341, 0, 341, 341,
2541 341, 0, 0, 0, 341, 341, 341, 341, 341, 341,
2542 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
2543 341, 341, 341, 341, 342, 444, 444, 444, 444, 444,
2544 444, 445, 0, 0, 445, 445, 445, 445, 445, 445,
2545 0, 0, 0, 0, 342, 0, 342, 342, 342, 342,
2546 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
2547 342, 342, 342, 344, 0, 344, 0, 344, 0, 344,
2548 0, 0, 344, 344, 0, 344, 344, 344, 344, 344,
2549 344, 344, 344, 344, 0, 0, 344, 0, 344, 344,
2550
2551 344, 0, 0, 0, 344, 344, 344, 344, 344, 344,
2552 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
2553 344, 344, 344, 344, 351, 0, 351, 447, 447, 447,
2554 447, 447, 447, 447, 0, 0, 0, 0, 351, 351,
2555 351, 351, 351, 351, 449, 449, 449, 449, 449, 449,
2556 449, 461, 461, 461, 461, 461, 461, 0, 0, 0,
2557 351, 352, 0, 352, 466, 466, 466, 466, 466, 466,
2558 352, 0, 352, 0, 0, 352, 352, 352, 352, 352,
2559 352, 354, 0, 354, 0, 354, 0, 354, 0, 0,
2560 354, 354, 0, 354, 354, 467, 0, 467, 467, 467,
2561
2562 467, 467, 467, 0, 354, 0, 354, 0, 0, 0,
2563 0, 0, 354, 354, 354, 355, 0, 355, 0, 355,
2564 0, 355, 0, 0, 355, 355, 0, 355, 355, 468,
2565 468, 468, 468, 468, 468, 0, 0, 0, 355, 0,
2566 355, 0, 0, 0, 0, 0, 355, 355, 355, 356,
2567 0, 356, 0, 356, 0, 356, 0, 0, 356, 356,
2568 0, 356, 356, 469, 0, 469, 469, 469, 469, 469,
2569 469, 0, 356, 0, 356, 0, 0, 0, 0, 0,
2570 356, 356, 356, 357, 0, 357, 0, 357, 0, 357,
2571 0, 0, 357, 357, 0, 357, 357, 357, 357, 357,
2572
2573 357, 357, 357, 357, 0, 0, 357, 0, 357, 357,
2574 357, 0, 0, 0, 357, 357, 357, 357, 357, 357,
2575 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
2576 357, 357, 357, 357, 362, 0, 362, 478, 478, 478,
2577 478, 478, 478, 0, 0, 0, 362, 0, 362, 362,
2578 362, 362, 362, 362, 482, 0, 482, 482, 482, 482,
2579 482, 482, 483, 0, 483, 483, 483, 483, 483, 483,
2580 362, 363, 0, 363, 502, 502, 502, 502, 502, 502,
2581 363, 0, 363, 363, 0, 363, 363, 363, 363, 363,
2582 363, 366, 0, 366, 0, 366, 0, 366, 0, 0,
2583
2584 366, 366, 0, 366, 366, 366, 366, 366, 366, 366,
2585 366, 366, 366, 0, 366, 0, 366, 366, 366, 0,
2586 0, 0, 366, 366, 366, 366, 366, 366, 366, 366,
2587 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
2588 366, 366, 368, 0, 368, 368, 368, 368, 368, 368,
2589 368, 376, 0, 376, 0, 376, 0, 376, 0, 0,
2590 376, 376, 0, 376, 376, 376, 503, 503, 503, 503,
2591 503, 503, 0, 0, 376, 0, 376, 0, 0, 0,
2592 0, 0, 376, 376, 376, 377, 0, 377, 0, 377,
2593 0, 377, 0, 0, 377, 377, 0, 377, 377, 377,
2594
2595 505, 505, 505, 505, 505, 505, 505, 0, 377, 0,
2596 377, 0, 0, 0, 0, 0, 377, 377, 377, 378,
2597 0, 378, 0, 378, 0, 378, 0, 0, 378, 378,
2598 0, 378, 378, 378, 378, 378, 378, 378, 378, 378,
2599 0, 0, 378, 0, 378, 378, 378, 0, 0, 0,
2600 378, 378, 378, 378, 378, 378, 378, 378, 378, 378,
2601 378, 378, 378, 378, 378, 378, 378, 378, 378, 378,
2602 379, 0, 379, 0, 379, 0, 379, 0, 0, 379,
2603 379, 0, 379, 379, 379, 507, 507, 507, 507, 507,
2604 507, 507, 0, 379, 0, 379, 0, 0, 0, 0,
2605
2606 0, 379, 379, 379, 380, 0, 380, 0, 380, 0,
2607 380, 0, 0, 380, 380, 0, 380, 380, 380, 380,
2608 380, 380, 380, 380, 380, 0, 0, 380, 0, 380,
2609 380, 380, 0, 0, 0, 380, 380, 380, 380, 380,
2610 380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
2611 380, 380, 380, 380, 380, 393, 0, 393, 0, 393,
2612 0, 393, 0, 0, 393, 393, 0, 393, 393, 393,
2613 393, 393, 393, 393, 393, 393, 0, 0, 393, 0,
2614 393, 393, 393, 0, 0, 0, 393, 393, 393, 393,
2615 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
2616
2617 393, 393, 393, 393, 393, 393, 395, 0, 395, 0,
2618 395, 0, 395, 0, 0, 395, 395, 0, 395, 395,
2619 395, 533, 533, 533, 533, 533, 533, 395, 0, 395,
2620 0, 395, 0, 0, 0, 0, 0, 395, 395, 395,
2621 400, 0, 400, 0, 400, 0, 400, 0, 0, 400,
2622 400, 0, 400, 400, 400, 548, 548, 548, 548, 548,
2623 548, 400, 0, 400, 0, 400, 0, 0, 0, 0,
2624 0, 400, 400, 400, 406, 0, 406, 0, 406, 0,
2625 406, 0, 0, 406, 406, 0, 406, 406, 406, 566,
2626 566, 566, 566, 566, 566, 406, 0, 406, 0, 406,
2627
2628 0, 0, 0, 0, 0, 406, 406, 406, 414, 0,
2629 414, 524, 524, 524, 524, 524, 524, 524, 0, 0,
2630 0, 0, 414, 414, 414, 414, 414, 414, 531, 0,
2631 531, 531, 531, 531, 531, 531, 547, 0, 547, 547,
2632 547, 547, 547, 547, 414, 415, 0, 415, 576, 576,
2633 576, 576, 576, 576, 415, 0, 415, 0, 0, 415,
2634 415, 415, 415, 415, 415, 417, 0, 417, 0, 417,
2635 0, 417, 0, 0, 417, 417, 0, 417, 417, 581,
2636 581, 581, 581, 581, 581, 0, 0, 0, 417, 0,
2637 417, 0, 0, 0, 0, 0, 417, 417, 417, 418,
2638
2639 0, 418, 0, 418, 0, 418, 0, 0, 418, 418,
2640 0, 418, 418, 587, 587, 587, 587, 587, 587, 0,
2641 0, 0, 418, 0, 418, 0, 0, 0, 0, 0,
2642 418, 418, 418, 419, 0, 419, 0, 419, 0, 419,
2643 0, 0, 419, 419, 0, 419, 419, 590, 590, 590,
2644 590, 590, 590, 0, 0, 0, 419, 0, 419, 0,
2645 0, 0, 0, 0, 419, 419, 419, 420, 0, 420,
2646 0, 420, 0, 420, 0, 0, 420, 420, 0, 420,
2647 420, 420, 420, 420, 420, 420, 420, 420, 0, 0,
2648 420, 0, 420, 420, 420, 0, 0, 0, 420, 420,
2649
2650 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
2651 420, 420, 420, 420, 420, 420, 420, 420, 423, 423,
2652 423, 423, 423, 423, 423, 423, 426, 0, 426, 0,
2653 600, 600, 600, 600, 600, 600, 0, 0, 426, 0,
2654 426, 426, 426, 426, 426, 426, 600, 602, 602, 602,
2655 602, 602, 602, 603, 603, 603, 603, 603, 603, 603,
2656 0, 0, 426, 427, 604, 427, 604, 604, 604, 604,
2657 604, 604, 427, 0, 427, 427, 0, 427, 427, 427,
2658 427, 427, 427, 430, 0, 430, 0, 430, 0, 430,
2659 0, 0, 430, 430, 0, 430, 430, 430, 430, 430,
2660
2661 430, 430, 430, 430, 430, 0, 430, 0, 430, 430,
2662 430, 0, 0, 0, 430, 430, 430, 430, 430, 430,
2663 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
2664 430, 430, 430, 430, 431, 0, 431, 431, 431, 431,
2665 431, 431, 431, 437, 0, 437, 0, 437, 0, 437,
2666 0, 0, 437, 437, 0, 437, 437, 437, 605, 0,
2667 605, 605, 605, 605, 605, 605, 437, 0, 437, 0,
2668 0, 0, 0, 0, 437, 437, 437, 438, 0, 438,
2669 0, 438, 0, 438, 0, 0, 438, 438, 0, 438,
2670 438, 438, 606, 0, 606, 606, 606, 606, 606, 606,
2671
2672 438, 0, 438, 0, 0, 0, 0, 0, 438, 438,
2673 438, 439, 0, 439, 0, 439, 0, 439, 0, 0,
2674 439, 439, 0, 439, 439, 439, 439, 439, 439, 439,
2675 439, 439, 0, 0, 439, 0, 439, 439, 439, 0,
2676 0, 0, 439, 439, 439, 439, 439, 439, 439, 439,
2677 439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
2678 439, 439, 440, 0, 440, 0, 440, 0, 440, 0,
2679 0, 440, 440, 0, 440, 440, 440, 610, 610, 610,
2680 610, 610, 610, 0, 0, 440, 0, 440, 0, 0,
2681 0, 0, 0, 440, 440, 440, 441, 0, 441, 0,
2682
2683 441, 0, 441, 0, 0, 441, 441, 0, 441, 441,
2684 441, 441, 441, 441, 441, 441, 441, 0, 0, 441,
2685 0, 441, 441, 441, 0, 0, 0, 441, 441, 441,
2686 441, 441, 441, 441, 441, 441, 441, 441, 441, 441,
2687 441, 441, 441, 441, 441, 441, 441, 455, 0, 455,
2688 0, 455, 0, 455, 0, 0, 455, 455, 0, 455,
2689 455, 455, 455, 455, 455, 455, 455, 455, 0, 0,
2690 455, 0, 455, 455, 455, 0, 0, 0, 455, 455,
2691 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
2692 455, 455, 455, 455, 455, 455, 455, 455, 456, 0,
2693
2694 456, 0, 456, 0, 456, 0, 0, 456, 456, 0,
2695 456, 456, 456, 665, 665, 665, 665, 665, 665, 456,
2696 0, 456, 0, 456, 0, 0, 0, 0, 0, 456,
2697 456, 456, 458, 0, 458, 0, 458, 0, 458, 0,
2698 0, 458, 458, 0, 458, 458, 458, 458, 458, 458,
2699 458, 458, 458, 0, 0, 458, 0, 458, 458, 458,
2700 0, 0, 0, 458, 458, 458, 458, 458, 458, 458,
2701 458, 458, 458, 458, 458, 458, 458, 458, 458, 458,
2702 458, 458, 458, 459, 0, 459, 0, 459, 0, 459,
2703 0, 0, 459, 459, 0, 459, 459, 459, 704, 704,
2704
2705 704, 704, 704, 704, 459, 0, 459, 0, 459, 0,
2706 0, 0, 0, 0, 459, 459, 459, 464, 0, 464,
2707 0, 464, 0, 464, 0, 0, 464, 464, 0, 464,
2708 464, 464, 712, 712, 712, 712, 712, 712, 464, 0,
2709 464, 0, 464, 0, 0, 0, 0, 0, 464, 464,
2710 464, 471, 0, 471, 636, 636, 636, 636, 636, 636,
2711 636, 0, 0, 0, 0, 471, 471, 471, 471, 471,
2712 471, 641, 641, 641, 641, 641, 641, 641, 645, 645,
2713 645, 645, 645, 645, 645, 0, 0, 471, 472, 664,
2714 472, 664, 664, 664, 664, 664, 664, 472, 0, 472,
2715
2716 0, 0, 472, 472, 472, 472, 472, 472, 474, 0,
2717 474, 0, 474, 0, 474, 0, 0, 474, 474, 0,
2718 474, 474, 702, 702, 702, 702, 702, 702, 0, 0,
2719 0, 474, 0, 474, 0, 0, 0, 0, 702, 474,
2720 474, 474, 475, 0, 475, 0, 475, 0, 475, 0,
2721 0, 475, 475, 703, 475, 475, 703, 703, 703, 703,
2722 703, 703, 0, 0, 0, 475, 0, 475, 0, 0,
2723 0, 0, 0, 475, 475, 475, 476, 0, 476, 0,
2724 476, 0, 476, 0, 0, 476, 476, 0, 476, 476,
2725 705, 705, 705, 705, 705, 705, 705, 0, 0, 476,
2726
2727 0, 476, 0, 0, 0, 0, 0, 476, 476, 476,
2728 477, 0, 477, 0, 477, 0, 477, 0, 0, 477,
2729 477, 0, 477, 477, 477, 706, 0, 706, 706, 706,
2730 706, 706, 706, 477, 0, 477, 0, 0, 0, 0,
2731 0, 477, 477, 477, 479, 0, 479, 0, 479, 0,
2732 479, 0, 0, 479, 479, 0, 479, 479, 479, 479,
2733 479, 479, 479, 479, 479, 0, 0, 479, 0, 479,
2734 479, 479, 0, 0, 0, 479, 479, 479, 479, 479,
2735 479, 479, 479, 479, 479, 479, 479, 479, 479, 479,
2736 479, 479, 479, 479, 479, 480, 0, 480, 0, 480,
2737
2738 0, 480, 0, 0, 480, 480, 0, 480, 480, 480,
2739 707, 0, 707, 707, 707, 707, 707, 707, 480, 0,
2740 480, 0, 0, 0, 0, 0, 480, 480, 480, 484,
2741 708, 484, 708, 708, 708, 708, 708, 708, 0, 0,
2742 0, 484, 0, 484, 484, 484, 484, 484, 484, 739,
2743 739, 739, 739, 739, 739, 740, 0, 0, 740, 740,
2744 740, 740, 740, 740, 0, 484, 485, 750, 485, 750,
2745 750, 750, 750, 750, 750, 485, 0, 485, 0, 0,
2746 485, 485, 485, 485, 485, 485, 488, 488, 488, 488,
2747 488, 0, 488, 0, 0, 488, 488, 0, 488, 488,
2748
2749 488, 488, 488, 488, 488, 488, 488, 488, 0, 488,
2750 0, 488, 488, 488, 0, 0, 0, 488, 488, 488,
2751 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
2752 488, 488, 488, 488, 488, 488, 488, 489, 746, 489,
2753 0, 746, 746, 746, 746, 746, 746, 0, 0, 489,
2754 0, 489, 489, 489, 489, 489, 489, 489, 496, 0,
2755 496, 0, 496, 0, 496, 0, 0, 496, 496, 0,
2756 496, 496, 496, 751, 751, 751, 751, 751, 751, 0,
2757 0, 496, 0, 496, 0, 0, 0, 0, 0, 496,
2758 496, 496, 497, 0, 497, 0, 497, 0, 497, 0,
2759
2760 0, 497, 497, 0, 497, 497, 497, 755, 755, 755,
2761 755, 755, 755, 0, 0, 497, 0, 497, 0, 0,
2762 0, 0, 0, 497, 497, 497, 498, 0, 498, 0,
2763 498, 0, 498, 0, 0, 498, 498, 0, 498, 498,
2764 498, 498, 498, 498, 498, 498, 498, 0, 0, 498,
2765 0, 498, 498, 498, 0, 0, 0, 498, 498, 498,
2766 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
2767 498, 498, 498, 498, 498, 498, 498, 499, 0, 499,
2768 0, 499, 0, 499, 0, 0, 499, 499, 0, 499,
2769 499, 499, 768, 768, 768, 768, 768, 768, 768, 0,
2770
2771 499, 0, 499, 0, 0, 0, 0, 0, 499, 499,
2772 499, 500, 0, 500, 0, 500, 0, 500, 0, 0,
2773 500, 500, 0, 500, 500, 500, 500, 500, 500, 500,
2774 500, 500, 0, 0, 500, 0, 500, 500, 500, 0,
2775 0, 0, 500, 500, 500, 500, 500, 500, 500, 500,
2776 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
2777 500, 500, 516, 516, 786, 786, 786, 786, 786, 786,
2778 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
2779 516, 516, 516, 516, 516, 516, 516, 520, 0, 520,
2780 0, 520, 0, 520, 0, 0, 520, 520, 0, 520,
2781
2782 520, 520, 520, 520, 520, 520, 520, 520, 0, 0,
2783 520, 0, 520, 520, 520, 0, 0, 0, 520, 520,
2784 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
2785 520, 520, 520, 520, 520, 520, 520, 520, 521, 0,
2786 521, 521, 521, 521, 521, 521, 0, 0, 0, 0,
2787 785, 521, 785, 785, 785, 785, 785, 785, 0, 521,
2788 521, 521, 521, 521, 535, 0, 535, 789, 789, 789,
2789 789, 789, 789, 0, 0, 0, 0, 0, 535, 535,
2790 535, 535, 535, 535, 797, 797, 797, 797, 797, 797,
2791 797, 800, 800, 800, 800, 800, 800, 0, 0, 0,
2792
2793 535, 536, 0, 536, 807, 807, 807, 807, 807, 807,
2794 536, 0, 536, 0, 0, 536, 536, 536, 536, 536,
2795 536, 538, 0, 538, 0, 538, 0, 538, 0, 0,
2796 538, 538, 0, 538, 538, 809, 809, 809, 809, 809,
2797 809, 0, 0, 0, 538, 0, 538, 0, 0, 0,
2798 0, 0, 538, 538, 538, 539, 0, 539, 0, 539,
2799 0, 539, 0, 0, 539, 539, 0, 539, 539, 814,
2800 814, 814, 814, 814, 814, 0, 0, 0, 539, 0,
2801 539, 0, 0, 0, 0, 0, 539, 539, 539, 540,
2802 0, 540, 0, 540, 0, 540, 0, 0, 540, 540,
2803
2804 0, 540, 540, 815, 815, 815, 815, 815, 815, 0,
2805 0, 0, 540, 0, 540, 0, 0, 0, 0, 0,
2806 540, 540, 540, 541, 0, 541, 0, 541, 0, 541,
2807 0, 0, 541, 541, 0, 541, 541, 541, 820, 820,
2808 820, 820, 820, 820, 0, 0, 541, 0, 541, 0,
2809 0, 0, 0, 0, 541, 541, 541, 542, 0, 542,
2810 542, 542, 542, 542, 542, 824, 824, 824, 824, 824,
2811 824, 0, 0, 0, 0, 542, 543, 0, 543, 0,
2812 543, 0, 543, 0, 0, 543, 543, 0, 543, 543,
2813 543, 825, 825, 825, 825, 825, 825, 0, 0, 543,
2814
2815 0, 543, 0, 0, 0, 0, 0, 543, 543, 543,
2816 545, 545, 545, 545, 545, 545, 545, 545, 549, 0,
2817 549, 827, 827, 827, 827, 827, 827, 0, 0, 0,
2818 549, 0, 549, 549, 549, 549, 549, 549, 828, 828,
2819 828, 828, 828, 828, 0, 0, 0, 0, 0, 0,
2820 0, 0, 0, 0, 549, 550, 0, 550, 0, 0,
2821 0, 0, 0, 0, 550, 0, 550, 550, 0, 550,
2822 550, 550, 550, 550, 550, 554, 0, 554, 0, 554,
2823 0, 554, 0, 0, 554, 554, 0, 554, 554, 554,
2824 554, 554, 554, 554, 554, 554, 554, 0, 554, 0,
2825
2826 554, 554, 554, 0, 0, 0, 554, 554, 554, 554,
2827 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
2828 554, 554, 554, 554, 554, 554, 555, 0, 555, 555,
2829 555, 555, 555, 555, 555, 560, 0, 560, 0, 560,
2830 0, 560, 0, 0, 560, 560, 0, 560, 560, 560,
2831 0, 0, 0, 0, 0, 0, 0, 0, 560, 0,
2832 560, 0, 0, 0, 0, 0, 560, 560, 560, 561,
2833 0, 561, 0, 561, 0, 561, 0, 0, 561, 561,
2834 0, 561, 561, 561, 0, 0, 0, 0, 0, 0,
2835 0, 0, 561, 0, 561, 0, 0, 0, 0, 0,
2836
2837 561, 561, 561, 562, 562, 0, 0, 0, 0, 0,
2838 0, 562, 562, 562, 562, 562, 562, 562, 562, 562,
2839 562, 562, 562, 562, 562, 562, 562, 562, 563, 0,
2840 563, 0, 563, 0, 563, 0, 0, 563, 563, 0,
2841 563, 563, 563, 0, 0, 0, 0, 0, 0, 0,
2842 0, 563, 0, 563, 0, 0, 0, 0, 0, 563,
2843 563, 563, 564, 0, 564, 0, 564, 0, 564, 0,
2844 0, 564, 564, 0, 564, 564, 564, 564, 564, 564,
2845 564, 564, 564, 0, 0, 564, 0, 564, 564, 564,
2846 0, 0, 0, 564, 564, 564, 564, 564, 564, 564,
2847
2848 564, 564, 564, 564, 564, 564, 564, 564, 564, 564,
2849 564, 564, 564, 570, 0, 570, 0, 570, 0, 570,
2850 0, 0, 570, 570, 0, 570, 570, 570, 570, 570,
2851 570, 570, 570, 570, 570, 0, 570, 0, 570, 570,
2852 570, 0, 0, 0, 570, 570, 570, 570, 570, 570,
2853 570, 570, 570, 570, 570, 570, 570, 570, 570, 570,
2854 570, 570, 570, 570, 575, 575, 0, 0, 0, 0,
2855 0, 0, 575, 575, 575, 575, 575, 575, 575, 575,
2856 575, 575, 575, 575, 575, 575, 575, 575, 575, 579,
2857 579, 579, 579, 579, 579, 0, 0, 0, 0, 0,
2858
2859 579, 0, 0, 0, 0, 0, 0, 0, 579, 579,
2860 579, 579, 579, 580, 580, 580, 580, 580, 580, 0,
2861 0, 0, 0, 0, 580, 0, 0, 0, 0, 0,
2862 0, 0, 580, 580, 580, 580, 580, 592, 0, 592,
2863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2864 0, 592, 592, 592, 592, 592, 592, 0, 0, 0,
2865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2866 0, 0, 0, 592, 593, 0, 593, 0, 0, 0,
2867 0, 0, 0, 593, 0, 593, 0, 0, 593, 593,
2868 593, 593, 593, 593, 595, 0, 595, 0, 595, 0,
2869
2870 595, 0, 0, 595, 595, 0, 595, 595, 0, 0,
2871 0, 0, 0, 0, 0, 0, 0, 595, 0, 595,
2872 0, 0, 0, 0, 0, 595, 595, 595, 596, 0,
2873 596, 0, 596, 0, 596, 0, 0, 596, 596, 0,
2874 596, 596, 0, 0, 0, 0, 0, 0, 0, 0,
2875 0, 596, 0, 596, 0, 0, 0, 0, 0, 596,
2876 596, 596, 597, 0, 597, 0, 597, 0, 597, 0,
2877 0, 597, 597, 0, 597, 597, 0, 0, 0, 0,
2878 0, 0, 0, 0, 0, 597, 0, 597, 0, 0,
2879 0, 0, 0, 597, 597, 597, 598, 0, 598, 0,
2880
2881 598, 0, 598, 0, 0, 598, 598, 0, 598, 598,
2882 598, 0, 0, 0, 0, 0, 0, 0, 0, 598,
2883 0, 598, 0, 0, 0, 0, 0, 598, 598, 598,
2884 599, 0, 599, 0, 599, 0, 599, 0, 0, 599,
2885 599, 0, 599, 599, 599, 0, 0, 0, 0, 0,
2886 0, 0, 0, 599, 0, 599, 0, 0, 0, 0,
2887 0, 599, 599, 599, 601, 0, 601, 601, 0, 601,
2888 601, 601, 601, 601, 601, 0, 0, 0, 0, 601,
2889 607, 0, 607, 0, 0, 0, 0, 0, 0, 0,
2890 0, 0, 607, 0, 607, 607, 607, 607, 607, 607,
2891
2892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2893 0, 0, 0, 0, 0, 0, 607, 608, 0, 608,
2894 0, 0, 0, 0, 0, 0, 608, 0, 608, 0,
2895 0, 608, 608, 608, 608, 608, 608, 612, 0, 612,
2896 0, 612, 0, 612, 0, 0, 612, 612, 0, 612,
2897 612, 612, 612, 612, 612, 612, 612, 612, 612, 0,
2898 612, 0, 612, 612, 612, 0, 0, 0, 612, 612,
2899 612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
2900 612, 612, 612, 612, 612, 612, 612, 612, 613, 0,
2901 613, 613, 613, 613, 613, 613, 613, 620, 0, 620,
2902
2903 0, 620, 0, 620, 0, 0, 620, 620, 0, 620,
2904 620, 620, 0, 0, 0, 0, 0, 0, 0, 0,
2905 620, 0, 620, 0, 0, 0, 0, 0, 620, 620,
2906 620, 621, 0, 621, 0, 621, 0, 621, 0, 0,
2907 621, 621, 0, 621, 621, 621, 0, 0, 0, 0,
2908 0, 0, 0, 0, 621, 0, 621, 0, 0, 0,
2909 0, 0, 621, 621, 621, 622, 0, 622, 0, 622,
2910 0, 622, 0, 0, 622, 622, 0, 622, 622, 622,
2911 622, 622, 622, 622, 622, 622, 0, 0, 622, 0,
2912 622, 622, 622, 0, 0, 0, 622, 622, 622, 622,
2913
2914 622, 622, 622, 622, 622, 622, 622, 622, 622, 622,
2915 622, 622, 622, 622, 622, 622, 623, 0, 623, 0,
2916 623, 0, 623, 0, 0, 623, 623, 0, 623, 623,
2917 623, 0, 0, 0, 0, 0, 0, 0, 0, 623,
2918 0, 623, 0, 0, 0, 0, 0, 623, 623, 623,
2919 624, 0, 624, 0, 624, 0, 624, 0, 0, 624,
2920 624, 0, 624, 624, 624, 624, 624, 624, 624, 624,
2921 624, 0, 0, 624, 0, 624, 624, 624, 0, 0,
2922 0, 624, 624, 624, 624, 624, 624, 624, 624, 624,
2923 624, 624, 624, 624, 624, 624, 624, 624, 624, 624,
2924
2925 624, 627, 0, 627, 0, 627, 0, 627, 0, 0,
2926 627, 627, 0, 627, 627, 627, 627, 627, 627, 627,
2927 627, 627, 627, 0, 627, 0, 627, 627, 627, 0,
2928 0, 0, 627, 627, 627, 627, 627, 627, 627, 627,
2929 627, 627, 627, 627, 627, 627, 627, 627, 627, 627,
2930 627, 627, 635, 635, 635, 635, 635, 635, 0, 0,
2931 0, 0, 0, 635, 0, 0, 0, 0, 0, 0,
2932 0, 635, 635, 635, 635, 635, 639, 639, 639, 639,
2933 639, 639, 0, 0, 0, 0, 0, 639, 0, 0,
2934 0, 0, 0, 0, 0, 639, 639, 639, 639, 639,
2935
2936 640, 640, 640, 640, 640, 640, 0, 0, 0, 0,
2937 0, 640, 0, 0, 0, 0, 0, 0, 0, 640,
2938 640, 640, 640, 640, 650, 0, 650, 0, 0, 0,
2939 0, 0, 0, 0, 0, 0, 0, 0, 650, 650,
2940 650, 650, 650, 650, 0, 0, 0, 0, 0, 0,
2941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2942 650, 651, 0, 651, 0, 0, 0, 0, 0, 0,
2943 651, 0, 651, 0, 0, 651, 651, 651, 651, 651,
2944 651, 653, 0, 653, 0, 653, 0, 653, 0, 0,
2945 653, 653, 0, 653, 653, 0, 0, 0, 0, 0,
2946
2947 0, 0, 0, 0, 653, 0, 653, 0, 0, 0,
2948 0, 0, 653, 653, 653, 654, 0, 654, 0, 654,
2949 0, 654, 0, 0, 654, 654, 0, 654, 654, 0,
2950 0, 0, 0, 0, 0, 0, 0, 0, 654, 0,
2951 654, 0, 0, 0, 0, 0, 654, 654, 654, 655,
2952 0, 655, 0, 655, 0, 655, 0, 0, 655, 655,
2953 0, 655, 655, 0, 0, 0, 0, 0, 0, 0,
2954 0, 0, 655, 0, 655, 0, 0, 0, 0, 0,
2955 655, 655, 655, 656, 0, 656, 0, 656, 0, 656,
2956 0, 0, 656, 656, 0, 656, 656, 656, 0, 0,
2957
2958 0, 0, 0, 0, 0, 0, 656, 0, 656, 0,
2959 0, 0, 0, 0, 656, 656, 656, 657, 0, 657,
2960 0, 657, 0, 657, 0, 0, 657, 657, 0, 657,
2961 657, 657, 0, 0, 0, 0, 0, 0, 0, 0,
2962 657, 0, 657, 0, 0, 0, 0, 0, 657, 657,
2963 657, 658, 0, 658, 658, 658, 658, 658, 658, 0,
2964 0, 0, 0, 0, 0, 0, 0, 0, 0, 658,
2965 660, 660, 0, 660, 660, 660, 660, 660, 660, 0,
2966 0, 0, 0, 660, 662, 662, 662, 662, 662, 662,
2967 662, 662, 666, 0, 666, 0, 0, 0, 0, 0,
2968
2969 0, 0, 0, 0, 666, 0, 666, 666, 666, 666,
2970 666, 666, 0, 0, 0, 0, 0, 0, 0, 0,
2971 0, 0, 0, 0, 0, 0, 0, 0, 666, 667,
2972 0, 667, 0, 0, 0, 0, 0, 0, 667, 0,
2973 667, 667, 0, 667, 667, 667, 667, 667, 667, 671,
2974 0, 671, 0, 671, 0, 671, 0, 0, 671, 671,
2975 0, 671, 671, 671, 671, 671, 671, 671, 671, 671,
2976 671, 0, 671, 0, 671, 671, 671, 0, 0, 0,
2977 671, 671, 671, 671, 671, 671, 671, 671, 671, 671,
2978 671, 671, 671, 671, 671, 671, 671, 671, 671, 671,
2979
2980 672, 0, 672, 672, 672, 672, 672, 672, 672, 677,
2981 0, 677, 0, 677, 0, 677, 0, 0, 677, 677,
2982 0, 677, 677, 677, 0, 0, 0, 0, 0, 0,
2983 0, 0, 677, 0, 677, 0, 0, 0, 0, 0,
2984 677, 677, 677, 678, 0, 678, 0, 678, 0, 678,
2985 0, 0, 678, 678, 0, 678, 678, 678, 0, 0,
2986 0, 0, 0, 0, 0, 0, 678, 0, 678, 0,
2987 0, 0, 0, 0, 678, 678, 678, 679, 679, 0,
2988 0, 0, 0, 0, 0, 679, 679, 679, 679, 679,
2989 679, 679, 679, 679, 679, 679, 679, 679, 679, 679,
2990
2991 679, 679, 680, 0, 680, 0, 680, 0, 680, 0,
2992 0, 680, 680, 0, 680, 680, 680, 0, 0, 0,
2993 0, 0, 0, 0, 0, 680, 0, 680, 0, 0,
2994 0, 0, 0, 680, 680, 680, 681, 0, 681, 0,
2995 681, 0, 681, 0, 0, 681, 681, 0, 681, 681,
2996 681, 681, 681, 681, 681, 681, 681, 0, 0, 681,
2997 0, 681, 681, 681, 0, 0, 0, 681, 681, 681,
2998 681, 681, 681, 681, 681, 681, 681, 681, 681, 681,
2999 681, 681, 681, 681, 681, 681, 681, 683, 0, 683,
3000 0, 683, 0, 683, 0, 0, 683, 683, 0, 683,
3001
3002 683, 683, 683, 683, 683, 683, 683, 683, 683, 0,
3003 683, 0, 683, 683, 683, 0, 0, 0, 683, 683,
3004 683, 683, 683, 683, 683, 683, 683, 683, 683, 683,
3005 683, 683, 683, 683, 683, 683, 683, 683, 686, 686,
3006 686, 686, 686, 686, 0, 0, 0, 0, 0, 686,
3007 0, 0, 0, 0, 0, 0, 0, 686, 686, 686,
3008 686, 686, 687, 687, 687, 687, 687, 687, 0, 0,
3009 0, 0, 0, 687, 0, 0, 0, 0, 0, 0,
3010 0, 687, 687, 687, 687, 687, 694, 0, 694, 0,
3011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3012
3013 694, 694, 694, 694, 694, 694, 0, 0, 0, 0,
3014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3015 0, 0, 694, 695, 0, 695, 0, 0, 0, 0,
3016 0, 0, 695, 0, 695, 0, 0, 695, 695, 695,
3017 695, 695, 695, 697, 0, 697, 0, 697, 0, 697,
3018 0, 0, 697, 697, 0, 697, 697, 0, 0, 0,
3019 0, 0, 0, 0, 0, 0, 697, 0, 697, 0,
3020 0, 0, 0, 0, 697, 697, 697, 698, 0, 698,
3021 0, 698, 0, 698, 0, 0, 698, 698, 0, 698,
3022 698, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3023
3024 698, 0, 698, 0, 0, 0, 0, 0, 698, 698,
3025 698, 699, 0, 699, 0, 699, 0, 699, 0, 0,
3026 699, 699, 0, 699, 699, 0, 0, 0, 0, 0,
3027 0, 0, 0, 0, 699, 0, 699, 0, 0, 0,
3028 0, 0, 699, 699, 699, 700, 0, 700, 0, 700,
3029 0, 700, 0, 0, 700, 700, 0, 700, 700, 700,
3030 0, 0, 0, 0, 0, 0, 0, 0, 700, 0,
3031 700, 0, 0, 0, 0, 0, 700, 700, 700, 701,
3032 0, 701, 0, 701, 0, 701, 0, 0, 701, 701,
3033 0, 701, 701, 701, 0, 0, 0, 0, 0, 0,
3034
3035 0, 0, 701, 0, 701, 0, 0, 0, 0, 0,
3036 701, 701, 701, 709, 0, 709, 0, 0, 0, 0,
3037 0, 0, 0, 0, 0, 709, 0, 709, 709, 709,
3038 709, 709, 709, 0, 0, 0, 0, 0, 0, 0,
3039 0, 0, 0, 0, 0, 0, 0, 0, 0, 709,
3040 710, 0, 710, 0, 0, 0, 0, 0, 0, 710,
3041 0, 710, 0, 0, 710, 710, 710, 710, 710, 710,
3042 714, 0, 714, 0, 714, 0, 714, 0, 0, 714,
3043 714, 0, 714, 714, 714, 714, 714, 714, 714, 714,
3044 714, 714, 0, 714, 0, 714, 714, 714, 0, 0,
3045
3046 0, 714, 714, 714, 714, 714, 714, 714, 714, 714,
3047 714, 714, 714, 714, 714, 714, 714, 714, 714, 714,
3048 714, 715, 0, 715, 715, 715, 715, 715, 715, 715,
3049 722, 0, 722, 0, 722, 0, 722, 0, 0, 722,
3050 722, 0, 722, 722, 722, 0, 0, 0, 0, 0,
3051 0, 0, 0, 722, 0, 722, 0, 0, 0, 0,
3052 0, 722, 722, 722, 723, 0, 723, 0, 723, 0,
3053 723, 0, 0, 723, 723, 0, 723, 723, 723, 0,
3054 0, 0, 0, 0, 0, 0, 0, 723, 0, 723,
3055 0, 0, 0, 0, 0, 723, 723, 723, 724, 0,
3056
3057 724, 0, 724, 0, 724, 0, 0, 724, 724, 0,
3058 724, 724, 724, 724, 724, 724, 724, 724, 724, 0,
3059 0, 724, 0, 724, 724, 724, 0, 0, 0, 724,
3060 724, 724, 724, 724, 724, 724, 724, 724, 724, 724,
3061 724, 724, 724, 724, 724, 724, 724, 724, 724, 725,
3062 0, 725, 0, 725, 0, 725, 0, 0, 725, 725,
3063 0, 725, 725, 725, 0, 0, 0, 0, 0, 0,
3064 0, 0, 725, 0, 725, 0, 0, 0, 0, 0,
3065 725, 725, 725, 726, 0, 726, 0, 726, 0, 726,
3066 0, 0, 726, 726, 0, 726, 726, 726, 726, 726,
3067
3068 726, 726, 726, 726, 0, 0, 726, 0, 726, 726,
3069 726, 0, 0, 0, 726, 726, 726, 726, 726, 726,
3070 726, 726, 726, 726, 726, 726, 726, 726, 726, 726,
3071 726, 726, 726, 726, 727, 0, 727, 0, 727, 0,
3072 727, 0, 0, 727, 727, 0, 727, 727, 727, 727,
3073 727, 727, 727, 727, 727, 727, 0, 727, 0, 727,
3074 727, 727, 0, 0, 0, 727, 727, 727, 727, 727,
3075 727, 727, 727, 727, 727, 727, 727, 727, 727, 727,
3076 727, 727, 727, 727, 727, 730, 730, 730, 730, 730,
3077 730, 0, 0, 0, 0, 0, 730, 0, 0, 0,
3078
3079 0, 0, 0, 0, 730, 730, 730, 730, 730, 731,
3080 731, 731, 731, 731, 731, 0, 0, 0, 0, 0,
3081 731, 0, 0, 0, 0, 0, 0, 0, 731, 731,
3082 731, 731, 731, 741, 741, 0, 741, 741, 741, 741,
3083 741, 741, 743, 0, 743, 0, 743, 0, 743, 0,
3084 0, 743, 743, 0, 0, 743, 743, 0, 0, 0,
3085 0, 0, 0, 0, 0, 743, 0, 743, 0, 0,
3086 0, 0, 0, 743, 0, 743, 744, 0, 744, 0,
3087 744, 0, 744, 0, 0, 744, 744, 0, 0, 744,
3088 744, 0, 0, 0, 0, 0, 0, 0, 0, 744,
3089
3090 0, 744, 0, 0, 0, 0, 0, 744, 0, 744,
3091 745, 0, 0, 745, 745, 745, 745, 745, 745, 0,
3092 0, 0, 0, 0, 0, 0, 0, 0, 0, 745,
3093 748, 748, 748, 748, 748, 748, 748, 748, 752, 0,
3094 752, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3095 752, 0, 752, 752, 752, 752, 752, 752, 0, 0,
3096 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3097 0, 0, 0, 0, 752, 753, 0, 753, 0, 0,
3098 0, 0, 0, 0, 753, 0, 753, 753, 0, 753,
3099 753, 753, 753, 753, 753, 757, 0, 757, 0, 757,
3100
3101 0, 757, 0, 0, 757, 757, 0, 757, 757, 757,
3102 757, 757, 757, 757, 757, 757, 757, 0, 757, 0,
3103 757, 757, 757, 0, 0, 0, 757, 757, 757, 757,
3104 757, 757, 757, 757, 757, 757, 757, 757, 757, 757,
3105 757, 757, 757, 757, 757, 757, 758, 0, 758, 758,
3106 758, 758, 758, 758, 758, 763, 0, 763, 0, 763,
3107 0, 763, 0, 0, 763, 763, 0, 763, 763, 763,
3108 0, 0, 0, 0, 0, 0, 0, 0, 763, 0,
3109 763, 0, 0, 0, 0, 0, 763, 763, 763, 764,
3110 0, 764, 0, 764, 0, 764, 0, 0, 764, 764,
3111
3112 0, 764, 764, 764, 0, 0, 0, 0, 0, 0,
3113 0, 0, 764, 0, 764, 0, 0, 0, 0, 0,
3114 764, 764, 764, 765, 765, 0, 0, 0, 0, 0,
3115 0, 765, 765, 765, 765, 765, 765, 765, 765, 765,
3116 765, 765, 765, 765, 765, 765, 765, 765, 766, 766,
3117 766, 766, 766, 766, 0, 0, 0, 0, 0, 766,
3118 0, 0, 0, 0, 0, 0, 0, 766, 766, 766,
3119 766, 766, 767, 767, 767, 767, 767, 767, 0, 0,
3120 0, 0, 0, 767, 0, 0, 0, 0, 0, 0,
3121 0, 767, 767, 767, 767, 767, 772, 772, 772, 772,
3122
3123 772, 772, 0, 0, 0, 0, 0, 772, 0, 0,
3124 0, 0, 0, 0, 0, 772, 772, 772, 772, 772,
3125 773, 773, 773, 773, 773, 773, 0, 0, 0, 0,
3126 0, 773, 0, 0, 0, 0, 0, 0, 0, 773,
3127 773, 773, 773, 773, 798, 798, 798, 798, 798, 798,
3128 0, 0, 0, 0, 0, 798, 0, 0, 0, 0,
3129 0, 0, 0, 798, 798, 798, 798, 798, 799, 799,
3130 799, 799, 799, 799, 0, 0, 0, 0, 0, 799,
3131 0, 0, 0, 0, 0, 0, 0, 799, 799, 799,
3132 799, 799, 831, 831, 831, 831, 831, 831, 831, 831,
3133
3134 831, 831, 831, 831, 831, 831, 831, 831, 831, 832,
3135 832, 832, 832, 832, 832, 832, 832, 832, 832, 832,
3136 832, 832, 832, 832, 832, 832, 833, 833, 833, 833,
3137 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
3138 833, 833, 833, 834, 834, 834, 834, 834, 834, 834,
3139 834, 834, 834, 834, 834, 834, 834, 834, 834, 834,
3140 835, 835, 835, 835, 835, 835, 835, 835, 835, 835,
3141 835, 835, 835, 835, 835, 835, 835, 836, 836, 836,
3142 836, 836, 836, 836, 836, 836, 836, 836, 836, 836,
3143 836, 836, 836, 836, 837, 837, 0, 837, 837, 837,
3144
3145 837, 837, 837, 837, 837, 837, 837, 837, 837, 837,
3146 837, 838, 0, 0, 838, 838, 0, 838, 838, 838,
3147 838, 839, 839, 0, 839, 0, 839, 839, 839, 839,
3148 839, 839, 839, 839, 839, 839, 839, 839, 840, 840,
3149 840, 840, 840, 840, 840, 840, 840, 840, 840, 840,
3150 840, 840, 840, 840, 840, 841, 841, 0, 841, 841,
3151 841, 841, 841, 841, 841, 841, 841, 841, 841, 841,
3152 841, 841, 842, 842, 0, 842, 842, 842, 842, 842,
3153 842, 842, 842, 842, 842, 842, 842, 842, 842, 843,
3154 843, 0, 843, 843, 843, 843, 843, 843, 843, 843,
3155
3156 843, 843, 843, 843, 843, 843, 844, 0, 0, 0,
3157 844, 844, 844, 844, 844, 844, 844, 844, 844, 844,
3158 844, 844, 844, 845, 845, 0, 845, 845, 845, 845,
3159 845, 845, 845, 845, 845, 845, 845, 845, 845, 845,
3160 846, 0, 846, 0, 0, 0, 846, 846, 846, 846,
3161 846, 0, 846, 846, 846, 846, 846, 847, 847, 0,
3162 0, 0, 847, 847, 847, 847, 847, 847, 847, 0,
3163 847, 847, 847, 847, 848, 848, 848, 848, 848, 848,
3164 848, 848, 848, 848, 848, 848, 848, 848, 848, 848,
3165 848, 849, 849, 849, 0, 0, 849, 849, 0, 849,
3166
3167 850, 0, 850, 0, 0, 0, 850, 850, 850, 850,
3168 850, 0, 850, 850, 850, 850, 850, 851, 851, 0,
3169 851, 851, 851, 851, 851, 851, 851, 851, 851, 851,
3170 851, 851, 851, 851, 852, 0, 852, 0, 0, 0,
3171 852, 852, 0, 852, 852, 0, 852, 852, 852, 852,
3172 852, 853, 853, 853, 853, 853, 853, 853, 853, 853,
3173 853, 853, 853, 853, 853, 853, 853, 853, 854, 854,
3174 854, 0, 0, 854, 854, 0, 854, 855, 0, 855,
3175 0, 0, 0, 855, 855, 855, 855, 855, 0, 855,
3176 855, 855, 855, 855, 856, 0, 856, 0, 0, 0,
3177
3178 856, 856, 856, 856, 856, 0, 856, 856, 856, 856,
3179 856, 857, 857, 0, 0, 857, 0, 0, 857, 858,
3180 0, 858, 0, 0, 0, 858, 858, 858, 858, 858,
3181 0, 858, 858, 858, 858, 858, 859, 859, 0, 859,
3182 859, 859, 859, 859, 859, 859, 859, 859, 859, 859,
3183 859, 859, 859, 860, 860, 860, 0, 0, 860, 860,
3184 0, 860, 861, 0, 861, 0, 0, 0, 861, 861,
3185 861, 861, 861, 0, 861, 861, 861, 861, 861, 862,
3186 0, 862, 0, 0, 0, 862, 862, 862, 862, 862,
3187 0, 862, 862, 862, 862, 862, 863, 863, 863, 0,
3188
3189 863, 0, 0, 863, 864, 0, 864, 0, 0, 0,
3190 864, 864, 864, 864, 864, 0, 864, 864, 864, 864,
3191 864, 865, 0, 865, 0, 0, 0, 865, 865, 0,
3192 865, 865, 0, 865, 865, 865, 865, 865, 866, 0,
3193 0, 866, 0, 0, 866, 866, 866, 866, 867, 867,
3194 867, 0, 0, 867, 867, 0, 867, 868, 0, 868,
3195 0, 0, 868, 868, 0, 0, 868, 869, 0, 869,
3196 0, 0, 0, 869, 869, 869, 869, 869, 0, 869,
3197 869, 869, 869, 869, 870, 0, 870, 0, 0, 0,
3198 870, 870, 870, 870, 870, 0, 870, 870, 870, 870,
3199
3200 870, 871, 871, 0, 871, 0, 0, 871, 872, 872,
3201 872, 0, 872, 0, 0, 872, 873, 0, 0, 873,
3202 0, 0, 873, 874, 0, 874, 0, 0, 0, 874,
3203 874, 874, 874, 874, 0, 874, 874, 874, 874, 874,
3204 875, 0, 875, 0, 0, 0, 875, 875, 875, 875,
3205 875, 0, 875, 875, 875, 875, 875, 876, 0, 876,
3206 0, 0, 0, 876, 876, 876, 876, 876, 876, 876,
3207 876, 876, 876, 876, 877, 0, 877, 0, 0, 0,
3208 877, 877, 877, 877, 877, 877, 877, 877, 877, 877,
3209 877, 878, 0, 878, 0, 0, 0, 878, 878, 878,
3210
3211 878, 878, 878, 878, 878, 878, 878, 878, 879, 0,
3212 879, 0, 0, 0, 879, 879, 879, 879, 879, 0,
3213 879, 879, 879, 879, 879, 880, 0, 880, 0, 0,
3214 0, 880, 880, 880, 880, 880, 0, 880, 880, 880,
3215 880, 880, 881, 881, 0, 881, 0, 0, 881, 881,
3216 881, 881, 882, 0, 882, 0, 0, 0, 882, 882,
3217 882, 882, 882, 0, 882, 882, 882, 882, 882, 883,
3218 883, 883, 0, 0, 883, 883, 0, 883, 884, 0,
3219 884, 0, 0, 0, 884, 884, 884, 884, 884, 0,
3220 884, 884, 884, 884, 884, 885, 0, 885, 0, 0,
3221
3222 0, 885, 885, 885, 885, 885, 0, 885, 885, 885,
3223 885, 885, 886, 886, 0, 886, 0, 0, 886, 887,
3224 887, 887, 0, 887, 0, 0, 887, 888, 888, 888,
3225 0, 888, 0, 0, 888, 889, 0, 889, 0, 0,
3226 0, 889, 889, 889, 889, 889, 0, 889, 889, 889,
3227 889, 889, 890, 0, 890, 0, 0, 0, 890, 890,
3228 890, 890, 890, 0, 890, 890, 890, 890, 890, 891,
3229 0, 0, 891, 0, 0, 891, 891, 891, 891, 892,
3230 892, 892, 0, 0, 892, 892, 0, 892, 893, 0,
3231 893, 0, 0, 0, 893, 893, 893, 893, 893, 0,
3232
3233 893, 893, 893, 893, 893, 894, 0, 894, 0, 0,
3234 0, 894, 894, 894, 894, 894, 0, 894, 894, 894,
3235 894, 894, 895, 895, 0, 895, 0, 0, 895, 896,
3236 896, 0, 896, 0, 0, 896, 897, 897, 897, 0,
3237 897, 0, 0, 897, 898, 0, 0, 898, 0, 0,
3238 898, 899, 0, 899, 0, 0, 0, 899, 899, 899,
3239 899, 899, 0, 899, 899, 899, 899, 899, 900, 0,
3240 900, 0, 0, 0, 900, 900, 900, 900, 900, 0,
3241 900, 900, 900, 900, 900, 901, 0, 901, 0, 0,
3242 0, 901, 901, 901, 901, 901, 901, 901, 901, 901,
3243
3244 901, 901, 902, 0, 902, 0, 0, 0, 902, 902,
3245 902, 902, 902, 902, 902, 902, 902, 902, 902, 903,
3246 0, 903, 0, 0, 0, 903, 903, 903, 903, 903,
3247 903, 903, 903, 903, 903, 903, 904, 904, 904, 0,
3248 0, 904, 904, 0, 904, 905, 0, 905, 0, 0,
3249 0, 905, 905, 905, 905, 905, 0, 905, 905, 905,
3250 905, 905, 906, 0, 906, 0, 0, 0, 906, 906,
3251 906, 906, 906, 0, 906, 906, 906, 906, 906, 907,
3252 907, 0, 907, 0, 0, 907, 908, 908, 0, 908,
3253 0, 0, 908, 909, 909, 909, 0, 909, 0, 0,
3254
3255 909, 910, 910, 910, 0, 910, 0, 0, 910, 911,
3256 0, 911, 0, 0, 0, 911, 911, 911, 911, 911,
3257 0, 911, 911, 911, 911, 911, 912, 0, 912, 0,
3258 0, 0, 912, 912, 912, 912, 912, 0, 912, 912,
3259 912, 912, 912, 913, 0, 0, 913, 0, 0, 913,
3260 913, 913, 913, 914, 0, 0, 914, 0, 0, 914,
3261 914, 914, 914, 915, 915, 915, 0, 0, 915, 915,
3262 0, 915, 916, 0, 916, 0, 0, 0, 916, 916,
3263 916, 916, 916, 0, 916, 916, 916, 916, 916, 917,
3264 0, 917, 0, 0, 0, 917, 917, 917, 917, 917,
3265
3266 0, 917, 917, 917, 917, 917, 918, 0, 918, 0,
3267 0, 0, 918, 918, 918, 918, 918, 0, 918, 918,
3268 918, 918, 918, 919, 919, 0, 919, 0, 0, 919,
3269 920, 920, 0, 920, 0, 0, 920, 921, 921, 921,
3270 0, 921, 0, 0, 921, 922, 0, 0, 922, 0,
3271 0, 922, 923, 0, 923, 0, 0, 0, 923, 923,
3272 923, 923, 923, 0, 923, 923, 923, 923, 923, 924,
3273 0, 924, 0, 0, 0, 924, 924, 924, 924, 924,
3274 0, 924, 924, 924, 924, 924, 925, 0, 0, 925,
3275 0, 0, 925, 925, 925, 925, 926, 0, 0, 926,
3276
3277 0, 0, 926, 926, 926, 926, 927, 927, 927, 0,
3278 0, 927, 927, 0, 927, 928, 0, 928, 0, 0,
3279 0, 928, 928, 928, 928, 928, 0, 928, 928, 928,
3280 928, 928, 929, 0, 929, 0, 0, 0, 929, 929,
3281 929, 929, 929, 0, 929, 929, 929, 929, 929, 930,
3282 0, 930, 0, 0, 0, 930, 930, 930, 930, 930,
3283 0, 930, 930, 930, 930, 930, 931, 0, 931, 0,
3284 0, 0, 0, 0, 0, 931, 932, 932, 0, 932,
3285 0, 0, 932, 933, 933, 0, 933, 0, 0, 933,
3286 934, 934, 934, 0, 934, 0, 0, 934, 935, 935,
3287
3288 935, 0, 935, 0, 0, 935, 936, 0, 936, 0,
3289 0, 0, 936, 936, 936, 936, 936, 0, 936, 936,
3290 936, 936, 936, 937, 0, 937, 0, 0, 0, 937,
3291 937, 937, 937, 937, 0, 937, 937, 937, 937, 937,
3292 938, 0, 0, 938, 0, 0, 938, 938, 938, 938,
3293 939, 0, 0, 939, 0, 0, 939, 939, 939, 939,
3294 940, 0, 0, 940, 0, 0, 940, 940, 940, 940,
3295 941, 941, 941, 0, 0, 941, 941, 0, 941, 942,
3296 0, 942, 0, 0, 0, 942, 942, 942, 942, 942,
3297 0, 942, 942, 942, 942, 942, 943, 0, 943, 0,
3298
3299 0, 0, 943, 943, 943, 943, 943, 0, 943, 943,
3300 943, 943, 943, 944, 0, 944, 0, 0, 0, 944,
3301 944, 944, 944, 944, 0, 944, 944, 944, 944, 944,
3302 945, 0, 945, 0, 0, 0, 945, 945, 945, 945,
3303 945, 0, 945, 945, 945, 945, 945, 946, 946, 0,
3304 946, 0, 0, 946, 947, 947, 0, 947, 0, 0,
3305 947, 948, 948, 948, 0, 948, 0, 0, 948, 949,
3306 0, 0, 949, 0, 0, 949, 950, 0, 950, 0,
3307 0, 0, 950, 950, 950, 950, 950, 0, 950, 950,
3308 950, 950, 950, 951, 0, 951, 0, 0, 0, 951,
3309
3310 951, 951, 951, 951, 0, 951, 951, 951, 951, 951,
3311 952, 952, 952, 0, 0, 952, 952, 0, 952, 953,
3312 0, 953, 0, 0, 0, 953, 953, 953, 953, 953,
3313 0, 953, 953, 953, 953, 953, 954, 0, 954, 0,
3314 0, 0, 954, 954, 954, 954, 954, 0, 954, 954,
3315 954, 954, 954, 955, 0, 955, 0, 0, 0, 955,
3316 955, 955, 955, 955, 0, 955, 955, 955, 955, 955,
3317 956, 956, 0, 956, 0, 0, 956, 957, 957, 0,
3318 957, 0, 0, 957, 958, 958, 958, 0, 958, 0,
3319 0, 958, 959, 959, 959, 0, 959, 0, 0, 959,
3320
3321 960, 0, 960, 0, 0, 0, 960, 960, 960, 960,
3322 960, 0, 960, 960, 960, 960, 960, 961, 0, 961,
3323 0, 0, 0, 961, 961, 961, 961, 961, 0, 961,
3324 961, 961, 961, 961, 962, 962, 962, 0, 0, 962,
3325 962, 0, 962, 963, 0, 963, 0, 0, 0, 963,
3326 963, 963, 963, 963, 0, 963, 963, 963, 963, 963,
3327 964, 0, 964, 0, 0, 0, 964, 964, 964, 964,
3328 964, 0, 964, 964, 964, 964, 964, 965, 0, 965,
3329 0, 0, 0, 965, 965, 965, 965, 965, 0, 965,
3330 965, 965, 965, 965, 966, 966, 0, 966, 0, 0,
3331
3332 966, 967, 967, 0, 967, 0, 0, 967, 968, 968,
3333 968, 0, 968, 0, 0, 968, 969, 0, 0, 969,
3334 0, 0, 969, 970, 0, 970, 0, 0, 0, 970,
3335 970, 970, 970, 970, 0, 970, 970, 970, 970, 970,
3336 971, 0, 971, 0, 0, 0, 971, 971, 971, 971,
3337 971, 0, 971, 971, 971, 971, 971, 972, 0, 0,
3338 972, 0, 0, 972, 972, 972, 972, 973, 0, 0,
3339 973, 0, 0, 973, 973, 973, 973, 974, 0, 0,
3340 974, 0, 0, 974, 974, 974, 974, 975, 0, 975,
3341 0, 0, 0, 0, 0, 0, 975, 0, 0, 0,
3342
3343 0, 0, 975, 976, 0, 976, 0, 0, 976, 976,
3344 0, 0, 976, 977, 0, 977, 0, 0, 0, 977,
3345 977, 977, 977, 977, 0, 977, 977, 977, 977, 977,
3346 978, 0, 978, 0, 0, 0, 978, 978, 978, 978,
3347 978, 0, 978, 978, 978, 978, 978, 979, 979, 0,
3348 979, 0, 0, 979, 980, 980, 0, 980, 0, 0,
3349 980, 981, 981, 981, 0, 981, 0, 0, 981, 982,
3350 982, 982, 0, 982, 0, 0, 982, 983, 0, 983,
3351 0, 0, 0, 983, 983, 983, 983, 983, 0, 983,
3352 983, 983, 983, 983, 984, 984, 0, 984, 0, 0,
3353
3354 984, 985, 985, 0, 985, 0, 0, 985, 986, 986,
3355 986, 0, 986, 0, 0, 986, 987, 0, 0, 987,
3356 0, 0, 987, 988, 988, 0, 988, 0, 0, 988,
3357 989, 989, 0, 0, 989, 0, 0, 989, 990, 990,
3358 990, 0, 990, 0, 0, 990, 991, 991, 0, 0,
3359 991, 0, 0, 991, 992, 992, 0, 0, 992, 0,
3360 0, 992, 993, 993, 0, 0, 993, 0, 0, 993,
3361 994, 994, 0, 0, 994, 0, 0, 994, 995, 995,
3362 0, 0, 995, 0, 0, 995, 830, 830, 830, 830,
3363 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
3364
3365 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
3366 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
3367 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
3368 830, 830, 830, 830, 830, 830, 830, 830
3369 } ;
3370
3371 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
3372 static char *yy_full_match;
3373 static int yy_lp;
3374 #define REJECT \
3375 { \
3376 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
3377 yy_cp = yy_full_match; /* restore poss. backed-over text */ \
3378 ++yy_lp; \
3379 goto find_rule; \
3380 }
3381 #define yymore() yymore_used_but_not_detected
/* [<][>][^][v][top][bottom][index][help] */
3382 #define YY_MORE_ADJ 0
3383 #define YY_RESTORE_YY_MORE_OFFSET
3384 char *yytext;
3385 #line 1 "rpsl.l"
3386 #define INITIAL 0
3387 /*
3388 // $Id: rpsl.l.cc,v 1.3 2001/04/03 09:35:10 engin Exp $
3389 //
3390 // Copyright (c) 1994 by the University of Southern California
3391 // All rights reserved.
3392 //
3393 // Permission to use, copy, modify, and distribute this software and its
3394 // documentation in source and binary forms for lawful non-commercial
3395 // purposes and without fee is hereby granted, provided that the above
3396 // copyright notice appear in all copies and that both the copyright
3397 // notice and this permission notice appear in supporting documentation,
3398 // and that any documentation, advertising materials, and other materials
3399 // related to such distribution and use acknowledge that the software was
3400 // developed by the University of Southern California, Information
3401 // Sciences Institute. The name of the USC may not be used to endorse or
3402 // promote products derived from this software without specific prior
3403 // written permission.
3404 //
3405 // THE UNIVERSITY OF SOUTHERN CALIFORNIA DOES NOT MAKE ANY
3406 // REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR ANY
3407 // PURPOSE. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
3408 // IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
3409 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
3410 // TITLE, AND NON-INFRINGEMENT.
3411 //
3412 // IN NO EVENT SHALL USC, OR ANY OTHER CONTRIBUTOR BE LIABLE FOR ANY
3413 // SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, WHETHER IN CONTRACT, TORT,
3414 // OR OTHER FORM OF ACTION, ARISING OUT OF OR IN CONNECTION WITH, THE USE
3415 // OR PERFORMANCE OF THIS SOFTWARE.
3416 //
3417 // Questions concerning this software should be directed to
3418 // ratoolset@isi.edu.
3419 //
3420 // Author(s): Cengiz Alaettinoglu <cengiz@ISI.EDU>
3421 */
3422 /* definitions */
3423 #define STRING 1
3424
3425 #define EXPECT_OPERATOR 2
3426
3427 #define FREETEXT 3
3428
3429 #define BLOBMODE 4
3430
3431 #define GENERICMODE 5
3432
3433 #define SKIP_OBJECT 6
3434
3435 #define POLICYMODE 7
3436
3437 /*%option nodefault /* */
3438 /*%option debug /* */
3439 #line 83 "rpsl.l"
3440 #include "config.h"
3441 #include <cstring>
3442 #include <cstdarg>
3443 #include <cstdio>
3444 #include <time.h>
3445
3446 #include "object.hh"
3447 #include "rpsl.y.hh"
3448 #include "schema.hh"
3449
3450 static int errorLine = 0;
3451 static int errorColon = 0;
3452 #define errorNewLine { errorLine++; errorColon = 0; }
3453
3454 static int scan_position = 0;
3455 static bool start_of_object = true;
3456 static bool genericMode = true;
3457 static int oldStart = 0;
3458
3459 Object *current_object;
3460 Attr *current_attribute;
3461 YY_BUFFER_STATE rpsl_buffer = (YY_BUFFER_STATE) NULL;
3462
3463 #define MAX_STR_CONST 1024
3464 #define LEXER_RETURN return
3465 #define YY_USER_ACTION { scan_position += yyleng; errorColon += yyleng; }
3466 #define YYLESS(n) {scan_position -= yyleng - n; errorColon -= yyleng - n; yyless(n); }
/* [<][>][^][v][top][bottom][index][help] */
3467 #define yylval rpsllval
3468 #define yy_scan_object rpsl_scan_object
3469 #define yyschema schema
3470
3471 extern void handle_error(char *, ...);
3472 extern void handle_warning(char *, ...);
3473 extern int validIPv6(const char *);
3474 extern int validIntForPhone(const char *);
3475
3476 extern "C" {
3477 extern void atollRA(...);
3478 }
3479 #line 3480 "lex.rpsl.c"
3480
3481 /* Macros after this point can all be overridden by user definitions in
3482 * section 1.
3483 */
3484
3485 #ifndef YY_SKIP_YYWRAP
3486 #ifdef __cplusplus
3487 extern "C" int yywrap YY_PROTO(( void ));
3488 #else
3489 extern int yywrap YY_PROTO(( void ));
3490 #endif
3491 #endif
3492
3493 #ifndef YY_NO_UNPUT
3494 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
3495 #endif
3496
3497 #ifndef yytext_ptr
3498 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
3499 #endif
3500
3501 #ifdef YY_NEED_STRLEN
3502 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
3503 #endif
3504
3505 #ifndef YY_NO_INPUT
3506 #ifdef __cplusplus
3507 static int yyinput YY_PROTO(( void ));
3508 #else
3509 static int input YY_PROTO(( void ));
3510 #endif
3511 #endif
3512
3513 #if YY_STACK_USED
3514 static int yy_start_stack_ptr = 0;
3515 static int yy_start_stack_depth = 0;
3516 static int *yy_start_stack = 0;
3517 #ifndef YY_NO_PUSH_STATE
3518 static void yy_push_state YY_PROTO(( int new_state ));
3519 #endif
3520 #ifndef YY_NO_POP_STATE
3521 static void yy_pop_state YY_PROTO(( void ));
3522 #endif
3523 #ifndef YY_NO_TOP_STATE
3524 static int yy_top_state YY_PROTO(( void ));
3525 #endif
3526
3527 #else
3528 #define YY_NO_PUSH_STATE 1
3529 #define YY_NO_POP_STATE 1
3530 #define YY_NO_TOP_STATE 1
3531 #endif
3532
3533 #ifdef YY_MALLOC_DECL
3534 YY_MALLOC_DECL
3535 #else
3536 #if __STDC__
3537 #ifndef __cplusplus
3538 #include <stdlib.h>
3539 #endif
3540 #else
3541 /* Just try to get by without declaring the routines. This will fail
3542 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
3543 * or sizeof(void*) != sizeof(int).
3544 */
3545 #endif
3546 #endif
3547
3548 /* Amount of stuff to slurp up with each read. */
3549 #ifndef YY_READ_BUF_SIZE
3550 #define YY_READ_BUF_SIZE 8192
3551 #endif
3552
3553 /* Copy whatever the last rule matched to the standard output. */
3554
3555 #ifndef ECHO
3556 /* This used to be an fputs(), but since the string might contain NUL's,
3557 * we now use fwrite().
3558 */
3559 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
3560 #endif
3561
3562 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
3563 * is returned in "result".
3564 */
3565 #ifndef YY_INPUT
3566 #define YY_INPUT(buf,result,max_size) \
/* [<][>][^][v][top][bottom][index][help] */
3567 if ( yy_current_buffer->yy_is_interactive ) \
3568 { \
3569 int c = '*', n; \
3570 for ( n = 0; n < max_size && \
3571 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
3572 buf[n] = (char) c; \
3573 if ( c == '\n' ) \
3574 buf[n++] = (char) c; \
3575 if ( c == EOF && ferror( yyin ) ) \
3576 YY_FATAL_ERROR( "input in flex scanner failed" ); \
3577 result = n; \
3578 } \
3579 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
3580 && ferror( yyin ) ) \
3581 YY_FATAL_ERROR( "input in flex scanner failed" );
3582 #endif
3583
3584 /* No semi-colon after return; correct usage is to write "yyterminate();" -
3585 * we don't want an extra ';' after the "return" because that will cause
3586 * some compilers to complain about unreachable statements.
3587 */
3588 #ifndef yyterminate
3589 #define yyterminate() return YY_NULL
/* [<][>][^][v][top][bottom][index][help] */
3590 #endif
3591
3592 /* Number of entries by which start-condition stack grows. */
3593 #ifndef YY_START_STACK_INCR
3594 #define YY_START_STACK_INCR 25
3595 #endif
3596
3597 /* Report a fatal error. */
3598 #ifndef YY_FATAL_ERROR
3599 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
/* [<][>][^][v][top][bottom][index][help] */
3600 #endif
3601
3602 /* Default declaration of generated scanner - a define so the user can
3603 * easily add parameters.
3604 */
3605 #ifndef YY_DECL
3606 #define YY_DECL int yylex YY_PROTO(( void ))
3607 #endif
3608
3609 /* Code executed at the beginning of each rule, after yytext and yyleng
3610 * have been set up.
3611 */
3612 #ifndef YY_USER_ACTION
3613 #define YY_USER_ACTION
3614 #endif
3615
3616 /* Code executed at the end of each rule. */
3617 #ifndef YY_BREAK
3618 #define YY_BREAK break;
3619 #endif
3620
3621 #define YY_RULE_SETUP \
3622 if ( yyleng > 0 ) \
3623 yy_current_buffer->yy_at_bol = \
3624 (yytext[yyleng - 1] == '\n'); \
3625 YY_USER_ACTION
3626
3627 YY_DECL
3628 {
3629 register yy_state_type yy_current_state;
3630 register char *yy_cp, *yy_bp;
3631 register int yy_act;
3632
3633 #line 124 "rpsl.l"
3634
3635
3636 /* this code is copied to beginning of yylex */
3637 static char string_buf[MAX_STR_CONST];
3638 char *string_buf_ptr;
3639
3640
3641 #line 3642 "lex.rpsl.c"
3642
3643 if ( yy_init )
3644 {
3645 yy_init = 0;
3646
3647 #ifdef YY_USER_INIT
3648 YY_USER_INIT;
3649 #endif
3650
3651 if ( ! yy_start )
3652 yy_start = 1; /* first start state */
3653
3654 if ( ! yyin )
3655 yyin = stdin;
3656
3657 if ( ! yyout )
3658 yyout = stdout;
3659
3660 if ( ! yy_current_buffer )
3661 yy_current_buffer =
3662 yy_create_buffer( yyin, YY_BUF_SIZE );
3663
3664 yy_load_buffer_state();
3665 }
3666
3667 while ( 1 ) /* loops until end-of-file is reached */
3668 {
3669 yy_cp = yy_c_buf_p;
3670
3671 /* Support of yytext. */
3672 *yy_cp = yy_hold_char;
3673
3674 /* yy_bp points to the position in yy_ch_buf of the start of
3675 * the current run.
3676 */
3677 yy_bp = yy_cp;
3678
3679 yy_current_state = yy_start;
3680 yy_current_state += YY_AT_BOL();
3681 yy_state_ptr = yy_state_buf;
3682 *yy_state_ptr++ = yy_current_state;
3683 yy_match:
3684 do
3685 {
3686 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
3687 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3688 {
3689 yy_current_state = (int) yy_def[yy_current_state];
3690 if ( yy_current_state >= 831 )
3691 yy_c = yy_meta[(unsigned int) yy_c];
3692 }
3693 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3694 *yy_state_ptr++ = yy_current_state;
3695 ++yy_cp;
3696 }
3697 while ( yy_base[yy_current_state] != 11787 );
3698
3699 yy_find_action:
3700 yy_current_state = *--yy_state_ptr;
3701 yy_lp = yy_accept[yy_current_state];
3702 find_rule: /* we branch to this label when backing up */
3703 for ( ; ; ) /* until we find what rule we matched */
3704 {
3705 if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
3706 {
3707 yy_act = yy_acclist[yy_lp];
3708 {
3709 yy_full_match = yy_cp;
3710 break;
3711 }
3712 }
3713 --yy_cp;
3714 yy_current_state = *--yy_state_ptr;
3715 yy_lp = yy_accept[yy_current_state];
3716 }
3717
3718 YY_DO_BEFORE_ACTION;
3719
3720
3721 do_action: /* This label is used only to access EOF actions. */
3722
3723
3724 switch ( yy_act )
3725 { /* beginning of action switch */
3726 case 1:
3727 YY_RULE_SETUP
3728 #line 131 "rpsl.l"
3729 { //
3730 errorLine = 0;
3731 errorColon = yyleng;
3732
3733 *(yytext + yyleng - 1) = 0; // remove ':'
3734
3735 yylval.attr = new Attr;
3736 yylval.attr->offset = scan_position - yyleng;
3737 current_attribute = yylval.attr;
3738
3739 if (start_of_object) {
3740 start_of_object = false;
3741 current_object->type = yyschema.searchClass(yytext);
3742 if (!current_object->type) {
3743 handle_error("Error: unknown class \"%s\"\n", yytext);
3744 yylval.attr->type = NULL;
3745 //(*current_object) += yylval.attr;
3746 BEGIN(SKIP_OBJECT);
3747 LEXER_RETURN(TKN_UNKNOWN_CLASS);
3748 }
3749 }
3750
3751 yylval.attr->type = current_object->type->searchAttr(yytext);
3752 yylval.attr->object = current_object;
3753
3754 // (*current_object) += yylval.attr;
3755
3756 if (! yylval.attr->type) {
3757 if (! schema.isForgiving())
3758 handle_error("Error: unknown attribute %s of class %s\n",
3759 yytext, current_object->type->name);
3760 BEGIN(FREETEXT);
3761 LEXER_RETURN(ATTR_FREETEXT);
3762 }
3763
3764 if (yylval.attr->type->isObsolete())
3765 handle_warning("Warning: attribute %s of class %s is now obsolete\n",
3766 yytext, current_object->type->name);
3767
3768 if (!yylval.attr->type->shouldParse()) { // may be free text?
3769 BEGIN(FREETEXT);
3770 LEXER_RETURN(ATTR_FREETEXT);
3771 } else {
3772 if (yylval.attr->type->syntax() == ATTR_GENERIC) {
3773 genericMode = true;
3774 BEGIN(GENERICMODE);
3775 } else if (yylval.attr->type->syntax() == ATTR_BLOBS) {
3776 genericMode = true;
3777 BEGIN(BLOBMODE);
3778 } else {
3779 genericMode = false;
3780 BEGIN(POLICYMODE);
3781 }
3782 LEXER_RETURN(yylval.attr->type->syntax());
3783 }
3784 }
3785 YY_BREAK
3786 case 2:
3787 YY_RULE_SETUP
3788 #line 188 "rpsl.l"
3789 {
3790 if (current_attribute)
3791 current_attribute->len = scan_position - current_attribute->offset;
3792 LEXER_RETURN(TKN_EOO);
3793 }
3794 YY_BREAK
3795 case YY_STATE_EOF(INITIAL):
3796 case YY_STATE_EOF(STRING):
3797 case YY_STATE_EOF(EXPECT_OPERATOR):
3798 case YY_STATE_EOF(FREETEXT):
3799 case YY_STATE_EOF(BLOBMODE):
3800 case YY_STATE_EOF(GENERICMODE):
3801 case YY_STATE_EOF(SKIP_OBJECT):
3802 case YY_STATE_EOF(POLICYMODE):
3803 #line 194 "rpsl.l"
3804 {
3805 yy_delete_buffer(rpsl_buffer);
3806 rpsl_buffer = (YY_BUFFER_STATE) NULL;
3807 if (current_attribute)
3808 current_attribute->len = scan_position - current_attribute->offset;
3809 BEGIN(INITIAL);
3810 yyterminate();
3811 }
3812 YY_BREAK
3813 case 3:
3814 YY_RULE_SETUP
3815 #line 203 "rpsl.l"
3816
3817 YY_BREAK
3818 case 4:
3819 YY_RULE_SETUP
3820 #line 205 "rpsl.l"
3821 { // not a valid line
3822 current_attribute = NULL;
3823 handle_error("Error: valid lines start with attribute names, spaces or #\n");
3824 BEGIN(FREETEXT);
3825 LEXER_RETURN(TKN_ERROR);
3826 }
3827 YY_BREAK
3828
3829 case 5:
3830 YY_RULE_SETUP
3831 #line 213 "rpsl.l"
3832 {
3833 BEGIN(INITIAL);
3834 if (current_attribute)
3835 current_attribute->len = scan_position - current_attribute->offset;
3836 LEXER_RETURN(TKN_EOO);
3837 }
3838 YY_BREAK
3839 case 6:
3840 YY_RULE_SETUP
3841 #line 219 "rpsl.l"
3842 errorNewLine;
3843 YY_BREAK
3844 case 7:
3845 YY_RULE_SETUP
3846 #line 220 "rpsl.l"
3847 ;
3848 YY_BREAK
3849
3850
3851 case 8:
3852 YY_RULE_SETUP
3853 #line 224 "rpsl.l"
3854 errorNewLine; errorColon++; // line continuation with +
3855 YY_BREAK
3856 case 9:
3857 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
3858 yy_c_buf_p = yy_cp = yy_bp + 1;
3859 YY_DO_BEFORE_ACTION; /* set up yytext again */
3860 YY_RULE_SETUP
3861 #line 225 "rpsl.l"
3862 errorNewLine; // line continuation with space or comment
3863 YY_BREAK
3864 case 10:
3865 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
3866 yy_c_buf_p = yy_cp = yy_bp + 1;
3867 YY_DO_BEFORE_ACTION; /* set up yytext again */
3868 YY_RULE_SETUP
3869 #line 226 "rpsl.l"
3870 { // end of attribute and may be end of object too
3871 BEGIN(INITIAL);
3872 if (current_attribute)
3873 current_attribute->len = scan_position - current_attribute->offset;
3874 LEXER_RETURN(TKN_EOA);
3875 }
3876 YY_BREAK
3877 case 11:
3878 YY_RULE_SETUP
3879 #line 232 "rpsl.l"
3880 ; // skip white space
3881 YY_BREAK
3882 case 12:
3883 YY_RULE_SETUP
3884 #line 233 "rpsl.l"
3885 ; // skip comment
3886 YY_BREAK
3887
3888 // dont parse anything, keep going till EOA
3889 case 13:
3890 YY_RULE_SETUP
3891 #line 237 "rpsl.l"
3892 ; // this rule needs to be after \n rules
3893 YY_BREAK
3894
3895
3896 case 14:
3897 YY_RULE_SETUP
3898 #line 241 "rpsl.l"
3899 {
3900 yylval.string = strdup(yytext);
3901 LEXER_RETURN(TKN_BLOB);
3902 }
3903 YY_BREAK
3904
3905
3906 case 15:
3907 YY_RULE_SETUP
3908 #line 248 "rpsl.l"
3909 {
3910 tm ts;
3911 bzero((char *) &ts, sizeof(ts));
3912
3913 int date, zone_hours, zone_mins;
3914 sscanf(yytext, "%d %d:%d:%d %d:%d",
3915 &date,
3916 &ts.tm_hour, &ts.tm_min, &ts.tm_sec,
3917 &zone_hours, &zone_mins);
3918
3919 ts.tm_mday = date % 100; date /= 100;
3920 ts.tm_mon = date % 100 - 1; date /= 100;
3921 ts.tm_year = date - 1900;
3922
3923 if (ts.tm_mday > 31) {
3924 handle_error("Error: Invalid day %d\n", ts.tm_mday);
3925 LEXER_RETURN(TKN_ERROR);
3926 }
3927 if (ts.tm_mon > 11) {
3928 handle_error("Error: Invalid month %d\n", ts.tm_mon);
3929 LEXER_RETURN(TKN_ERROR);
3930 }
3931 if (ts.tm_year < 70) {
3932 handle_error("Error: Invalid year %d\n", ts.tm_year);
3933 LEXER_RETURN(TKN_ERROR);
3934 }
3935 if (ts.tm_sec > 59) {
3936 handle_error("Error: Invalid sec %d\n", ts.tm_sec);
3937 LEXER_RETURN(TKN_ERROR);
3938 }
3939 if (ts.tm_min > 59) {
3940 handle_error("Error: Invalid min %d\n", ts.tm_min);
3941 LEXER_RETURN(TKN_ERROR);
3942 }
3943 if (ts.tm_hour > 23) {
3944 handle_error("Error: Invalid hour %d\n", ts.tm_hour);
3945 LEXER_RETURN(TKN_ERROR);
3946 }
3947 if (zone_mins > 59) {
3948 handle_error("Error: Invalid zone min %d\n", zone_mins);
3949 LEXER_RETURN(TKN_ERROR);
3950 }
3951 if (zone_hours > 23) {
3952 handle_error("Error: Invalid zone hour %d\n", zone_hours);
3953 LEXER_RETURN(TKN_ERROR);
3954 }
3955
3956 // this fiddling with TZ is necessary for mktime to use utc as timezone
3957 // it sucks, there's got to be a better way
3958 time_t result = (time_t) mktime(&ts);
3959 result -= (time_t) timezone;
3960 /*
3961 char *TZ=getenv("TZ");
3962 if (TZ)
3963 TZ = strdup(TZ);
3964 setenv("TZ", "", 1);
3965 time_t result = mktime(&ts);
3966 if (TZ) {
3967 setenv("TZ", TZ, 1);
3968 free(TZ);
3969 } else
3970 unsetenv("TZ");
3971 */
3972 if (zone_hours < 0)
3973 zone_mins *= -1;
3974
3975 result += zone_mins * 60 + zone_hours * 60 * 60;
3976
3977 yylval.time = result;
3978 LEXER_RETURN(TKN_TIMESTAMP);
3979 }
3980 YY_BREAK
3981
3982
3983 case 16:
3984 YY_RULE_SETUP
3985 #line 323 "rpsl.l"
3986 {
3987 if(current_attribute->type->syntax() == ATTR_AUTH){
3988 yylval.string = strdup(yytext);
3989 LEXER_RETURN(TKN_CRYPTEDPW);
3990 }else{
3991 scan_position -= yyleng; errorColon -= yyleng;
3992 REJECT;
3993 }
3994 }
3995 YY_BREAK
3996 case 17:
3997 YY_RULE_SETUP
3998 #line 333 "rpsl.l"
3999 {
4000 // The following code causes problem on Solaris since long long int
4001 // is not standardized yet
4002 // sscanf(yytext, "%Ld", &(yylval.i));
4003 if(current_attribute->type->syntax() == ATTR_PHONE){
4004 if(validIntForPhone(yytext)){
4005 atollRA(yytext, &yylval.i);
4006 LEXER_RETURN(TKN_INT);
4007 }else{
4008 scan_position -= yyleng; errorColon -= yyleng;
4009 REJECT;
4010 }
4011 }else{
4012 atollRA(yytext, &yylval.i);
4013 LEXER_RETURN(TKN_INT);
4014 }
4015 /* atollRA(yytext, &yylval.i);
4016 LEXER_RETURN(TKN_INT);*/
4017 }
4018 YY_BREAK
4019 case 18:
4020 YY_RULE_SETUP
4021 #line 353 "rpsl.l"
4022 {
4023 unsigned int ms, ls;
4024 char *colon = strchr(yytext, ':');
4025 *colon = 0;
4026 ms = atoi(yytext);
4027 ls = atoi(colon+1);
4028 if (ms > 65535 || ls > 65535)
4029 LEXER_RETURN(TKN_ERROR);
4030
4031 yylval.i = (ms << 16) + ls;
4032 LEXER_RETURN(TKN_INT);
4033 }
4034 YY_BREAK
4035 case 19:
4036 YY_RULE_SETUP
4037 #line 366 "rpsl.l"
4038 {
4039 yylval.real = atof(yytext);
4040 LEXER_RETURN(TKN_REAL);
4041 }
4042 YY_BREAK
4043 case 20:
4044 YY_RULE_SETUP
4045 #line 371 "rpsl.l"
4046 {
4047 string_buf_ptr = string_buf;
4048 oldStart = YY_START;
4049 BEGIN(STRING);
4050 }
4051 YY_BREAK
4052 case 21:
4053 YY_RULE_SETUP
4054 #line 377 "rpsl.l"
4055 {
4056 yylval.ip = new IPAddr(yytext);
4057 LEXER_RETURN(TKN_IPV4);
4058 }
4059 YY_BREAK
4060 case 22:
4061 YY_RULE_SETUP
4062 #line 382 "rpsl.l"
4063 {
4064 yylval.string = strdup(yytext);
4065 LEXER_RETURN(TKN_PRFXV6);
4066 }
4067 YY_BREAK
4068 case 23:
4069 YY_RULE_SETUP
4070 #line 387 "rpsl.l"
4071 {
4072 yylval.string = strdup(yytext);
4073 if(validIPv6(yylval.string)){
4074 LEXER_RETURN(TKN_PRFXV6);
4075 }else{
4076 handle_error("Error: Invalid IPv6 prefix\n");
4077 BEGIN(FREETEXT);
4078 LEXER_RETURN(TKN_ERROR);
4079 }
4080 }
4081 YY_BREAK
4082 case 24:
4083 YY_RULE_SETUP
4084 #line 398 "rpsl.l"
4085 {
4086 yylval.prfx = new Prefix(yytext);
4087 LEXER_RETURN(TKN_PRFXV4);
4088 }
4089 YY_BREAK
4090 case 25:
4091 YY_RULE_SETUP
4092 #line 403 "rpsl.l"
4093 {
4094 yylval.prfxrng = new PrefixRange(yytext);
4095 LEXER_RETURN(TKN_PRFXV4RNG);
4096 }
4097 YY_BREAK
4098 case 26:
4099 YY_RULE_SETUP
4100 #line 408 "rpsl.l"
4101 {
4102 /*printf("DEBUG: lexer: matched a nichdl candidate (%s)\n",yytext);*/
4103 if(current_attribute->type->syntax() != ATTR_NICHDL){
4104 /*printf("DEBUG: lexer: This is not a nichdl attribute, rejecting\n");*/
4105 scan_position -= yyleng; errorColon -= yyleng;
4106 REJECT;
4107 }else{
4108 yylval.string = strdup(yytext);
4109 LEXER_RETURN(TKN_NICHDL);
4110 }
4111 }
4112 YY_BREAK
4113 /* The order of these rules are important */
4114 case 27:
4115 YY_RULE_SETUP
4116 #line 422 "rpsl.l"
4117 {
4118 yylval.i = atoi(yytext+2);
4119 LEXER_RETURN(TKN_ASNO);
4120 }
4121 YY_BREAK
4122 case 28:
4123 YY_RULE_SETUP
4124 #line 427 "rpsl.l"
4125 {
4126 yylval.sid = symbols.symID(yytext);
4127 LEXER_RETURN(TKN_ASNAME);
4128 }
4129 YY_BREAK
4130 case 29:
4131 YY_RULE_SETUP
4132 #line 432 "rpsl.l"
4133 {
4134 yylval.sid = symbols.symID(yytext);
4135 LEXER_RETURN(TKN_RSNAME);
4136 }
4137 YY_BREAK
4138 case 30:
4139 YY_RULE_SETUP
4140 #line 437 "rpsl.l"
4141 {
4142 yylval.sid = symbols.symID(yytext);
4143 LEXER_RETURN(TKN_RTRSNAME);
4144 }
4145 YY_BREAK
4146 case 31:
4147 YY_RULE_SETUP
4148 #line 442 "rpsl.l"
4149 {
4150 yylval.sid = symbols.symID(yytext);
4151 LEXER_RETURN(TKN_PRNGNAME);
4152 }
4153 YY_BREAK
4154 case 32:
4155 YY_RULE_SETUP
4156 #line 447 "rpsl.l"
4157 {
4158 yylval.sid = symbols.symID(yytext);
4159 LEXER_RETURN(TKN_FLTRNAME);
4160 }
4161 YY_BREAK
4162 case 33:
4163 YY_RULE_SETUP
4164 #line 452 "rpsl.l"
4165 {
4166 yylval.i = 1;
4167 LEXER_RETURN(TKN_BOOLEAN);
4168 }
4169 YY_BREAK
4170 case 34:
4171 YY_RULE_SETUP
4172 #line 457 "rpsl.l"
4173 {
4174 yylval.i = 0;
4175 LEXER_RETURN(TKN_BOOLEAN);
4176 }
4177 YY_BREAK
4178 case 35:
4179 YY_RULE_SETUP
4180 #line 462 "rpsl.l"
4181 { /* keycert name */
4182 yylval.string = strdup(yytext);
4183 LEXER_RETURN(TKN_KEYCRTNAME);
4184 }
4185 YY_BREAK
4186 case 36:
4187 YY_RULE_SETUP
4188 #line 468 "rpsl.l"
4189 { /* reserved word or rp-attribute, or arbitrary name */
4190 if (!genericMode) {
4191 oldStart = YY_START;
4192
4193 int index;
4194 if ((index = yyschema.searchKeyword(yytext)) >= 0) {
4195 if (index == KEYW_OPERATOR)
4196 BEGIN(EXPECT_OPERATOR);
4197 LEXER_RETURN(index);
4198 }
4199
4200 if ((yylval.rp_attr = yyschema.searchRPAttr(yytext)) != NULL) {
4201 BEGIN(EXPECT_OPERATOR);
4202 LEXER_RETURN(TKN_RP_ATTR);
4203 }
4204 }
4205
4206 yylval.string = strdup(yytext);
4207 LEXER_RETURN(TKN_WORD);
4208 }
4209 YY_BREAK
4210 case 37:
4211 YY_RULE_SETUP
4212 #line 489 "rpsl.l"
4213 { /* rp-attribute.method or DNS name */
4214 if (!genericMode) {
4215 char *p = strchr(yytext, '.');
4216 *p = 0;
4217
4218 if ((yylval.rp_attr = yyschema.searchRPAttr(yytext)) != NULL) {
4219 *p = '.';
4220 YYLESS((p - yytext));
4221 LEXER_RETURN(TKN_RP_ATTR);
4222 }
4223
4224 *p = '.';
4225 }
4226
4227 yylval.sid = symbols.symID(yytext);
4228 LEXER_RETURN(TKN_DNS);
4229 }
4230 YY_BREAK
4231 case 38:
4232 YY_RULE_SETUP
4233 #line 507 "rpsl.l"
4234 { /* DNS name */
4235 yylval.sid = symbols.symID(yytext);
4236 LEXER_RETURN(TKN_DNS);
4237 }
4238 YY_BREAK
4239 case 39:
4240 YY_RULE_SETUP
4241 #line 512 "rpsl.l"
4242 { /* email */
4243 yylval.string = strdup(yytext);
4244 LEXER_RETURN(TKN_EMAIL);
4245 }
4246 YY_BREAK
4247 case 40:
4248 YY_RULE_SETUP
4249 #line 519 "rpsl.l"
4250 {
4251 if (*yytext <= 0) {
4252 handle_error("Error: Non-ASCII character encountered\n");
4253 LEXER_RETURN(TKN_ERROR);
4254 } else
4255 LEXER_RETURN(*yytext);
4256 }
4257 YY_BREAK
4258
4259
4260 case 41:
4261 YY_RULE_SETUP
4262 #line 529 "rpsl.l"
4263 {
4264 yylval.moreSpecOp = new FilterMS(0);
4265 LEXER_RETURN(OP_MS);
4266 }
4267 YY_BREAK
4268 case 42:
4269 YY_RULE_SETUP
4270 #line 534 "rpsl.l"
4271 {
4272 yylval.moreSpecOp = new FilterMS(1);
4273 LEXER_RETURN(OP_MS);
4274 }
4275 YY_BREAK
4276 case 43:
4277 YY_RULE_SETUP
4278 #line 539 "rpsl.l"
4279 {
4280 int i;
4281 sscanf(yytext, "^%d", &i);
4282 yylval.moreSpecOp = new FilterMS(2, i, i);
4283 LEXER_RETURN(OP_MS);
4284 }
4285 YY_BREAK
4286 case 44:
4287 YY_RULE_SETUP
4288 #line 546 "rpsl.l"
4289 {
4290 int i, j;
4291 sscanf(yytext, "^%d-%d", &i, &j);
4292 yylval.moreSpecOp = new FilterMS(2, i, j);
4293 LEXER_RETURN(OP_MS);
4294 }
4295 YY_BREAK
4296 case 45:
4297 YY_RULE_SETUP
4298 #line 553 "rpsl.l"
4299 LEXER_RETURN(TKN_3DOTS);
4300 YY_BREAK
4301
4302
4303 case 46:
4304 YY_RULE_SETUP
4305 #line 557 "rpsl.l"
4306 {
4307 yylval.string = strdup(yytext);
4308 BEGIN(oldStart);
4309 LEXER_RETURN(TKN_OPERATOR);
4310 }
4311 YY_BREAK
4312 case 47:
4313 YY_RULE_SETUP
4314 #line 563 "rpsl.l"
4315 {
4316 YYLESS(0);
4317 BEGIN(oldStart);
4318 }
4319 YY_BREAK
4320
4321
4322 case 48:
4323 YY_RULE_SETUP
4324 #line 570 "rpsl.l"
4325 { /* saw closing quote - all done */
4326 BEGIN(oldStart);
4327 *string_buf_ptr = '\0';
4328 yylval.string = strdup(string_buf);
4329 LEXER_RETURN(TKN_STRING);
4330 }
4331 YY_BREAK
4332 case 49:
4333 YY_RULE_SETUP
4334 #line 577 "rpsl.l"
4335 {
4336 errorNewLine;
4337 handle_error("Error: unterminated string encountered\n");
4338 BEGIN(oldStart);
4339 if (current_attribute)
4340 current_attribute->len = scan_position - current_attribute->offset;
4341 LEXER_RETURN(TKN_EOA);
4342 }
4343 YY_BREAK
4344 case 50:
4345 YY_RULE_SETUP
4346 #line 586 "rpsl.l"
4347 {
4348 /* octal escape sequence */
4349 int result;
4350
4351 (void) sscanf( yytext + 1, "%o", &result );
4352
4353 if ( result > 0xff ) {
4354 handle_error("Error: octal escape sequence is out of bounds\n");
4355 BEGIN(oldStart);
4356 LEXER_RETURN(TKN_ERROR);
4357 }
4358
4359 *string_buf_ptr++ = result;
4360 }
4361 YY_BREAK
4362 case 51:
4363 YY_RULE_SETUP
4364 #line 601 "rpsl.l"
4365 { /* like '\48' or '\0777777' */
4366 handle_error("Error: bad octal escape sequence\n");
4367 BEGIN(oldStart);
4368 LEXER_RETURN(TKN_ERROR);
4369 }
4370 YY_BREAK
4371 case 52:
4372 YY_RULE_SETUP
4373 #line 607 "rpsl.l"
4374 *string_buf_ptr++ = '\n';
4375 YY_BREAK
4376 case 53:
4377 YY_RULE_SETUP
4378 #line 608 "rpsl.l"
4379 *string_buf_ptr++ = '\t';
4380 YY_BREAK
4381 case 54:
4382 YY_RULE_SETUP
4383 #line 609 "rpsl.l"
4384 *string_buf_ptr++ = '\r';
4385 YY_BREAK
4386 case 55:
4387 YY_RULE_SETUP
4388 #line 610 "rpsl.l"
4389 *string_buf_ptr++ = '\b';
4390 YY_BREAK
4391 case 56:
4392 YY_RULE_SETUP
4393 #line 611 "rpsl.l"
4394 *string_buf_ptr++ = '\f';
4395 YY_BREAK
4396 case 57:
4397 YY_RULE_SETUP
4398 #line 613 "rpsl.l"
4399 *string_buf_ptr++ = yytext[1];
4400 YY_BREAK
4401 case 58:
4402 YY_RULE_SETUP
4403 #line 615 "rpsl.l"
4404 {
4405 char *yptr = yytext;
4406 while ( *yptr )
4407 *string_buf_ptr++ = *yptr++;
4408 }
4409 YY_BREAK
4410 case 59:
4411 YY_RULE_SETUP
4412 #line 621 "rpsl.l"
4413 *string_buf_ptr++ = yytext[0];
4414 YY_BREAK
4415
4416 case 60:
4417 YY_RULE_SETUP
4418 #line 624 "rpsl.l"
4419 ECHO;
4420 YY_BREAK
4421 #line 4422 "lex.rpsl.c"
4422
4423 case YY_END_OF_BUFFER:
4424 {
4425 /* Amount of text matched not including the EOB char. */
4426 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
4427
4428 /* Undo the effects of YY_DO_BEFORE_ACTION. */
4429 *yy_cp = yy_hold_char;
4430 YY_RESTORE_YY_MORE_OFFSET
4431
4432 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
4433 {
4434 /* We're scanning a new file or input source. It's
4435 * possible that this happened because the user
4436 * just pointed yyin at a new source and called
4437 * yylex(). If so, then we have to assure
4438 * consistency between yy_current_buffer and our
4439 * globals. Here is the right place to do so, because
4440 * this is the first action (other than possibly a
4441 * back-up) that will match for the new input source.
4442 */
4443 yy_n_chars = yy_current_buffer->yy_n_chars;
4444 yy_current_buffer->yy_input_file = yyin;
4445 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
4446 }
4447
4448 /* Note that here we test for yy_c_buf_p "<=" to the position
4449 * of the first EOB in the buffer, since yy_c_buf_p will
4450 * already have been incremented past the NUL character
4451 * (since all states make transitions on EOB to the
4452 * end-of-buffer state). Contrast this with the test
4453 * in input().
4454 */
4455 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
4456 { /* This was really a NUL. */
4457 yy_state_type yy_next_state;
4458
4459 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
4460
4461 yy_current_state = yy_get_previous_state();
4462
4463 /* Okay, we're now positioned to make the NUL
4464 * transition. We couldn't have
4465 * yy_get_previous_state() go ahead and do it
4466 * for us because it doesn't know how to deal
4467 * with the possibility of jamming (and we don't
4468 * want to build jamming into it because then it
4469 * will run more slowly).
4470 */
4471
4472 yy_next_state = yy_try_NUL_trans( yy_current_state );
4473
4474 yy_bp = yytext_ptr + YY_MORE_ADJ;
4475
4476 if ( yy_next_state )
4477 {
4478 /* Consume the NUL. */
4479 yy_cp = ++yy_c_buf_p;
4480 yy_current_state = yy_next_state;
4481 goto yy_match;
4482 }
4483
4484 else
4485 {
4486 yy_cp = yy_c_buf_p;
4487 goto yy_find_action;
4488 }
4489 }
4490
4491 else switch ( yy_get_next_buffer() )
4492 {
4493 case EOB_ACT_END_OF_FILE:
4494 {
4495 yy_did_buffer_switch_on_eof = 0;
4496
4497 if ( yywrap() )
4498 {
4499 /* Note: because we've taken care in
4500 * yy_get_next_buffer() to have set up
4501 * yytext, we can now set up
4502 * yy_c_buf_p so that if some total
4503 * hoser (like flex itself) wants to
4504 * call the scanner after we return the
4505 * YY_NULL, it'll still work - another
4506 * YY_NULL will get returned.
4507 */
4508 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
4509
4510 yy_act = YY_STATE_EOF(YY_START);
4511 goto do_action;
4512 }
4513
4514 else
4515 {
4516 if ( ! yy_did_buffer_switch_on_eof )
4517 YY_NEW_FILE;
4518 }
4519 break;
4520 }
4521
4522 case EOB_ACT_CONTINUE_SCAN:
4523 yy_c_buf_p =
4524 yytext_ptr + yy_amount_of_matched_text;
4525
4526 yy_current_state = yy_get_previous_state();
4527
4528 yy_cp = yy_c_buf_p;
4529 yy_bp = yytext_ptr + YY_MORE_ADJ;
4530 goto yy_match;
4531
4532 case EOB_ACT_LAST_MATCH:
4533 yy_c_buf_p =
4534 &yy_current_buffer->yy_ch_buf[yy_n_chars];
4535
4536 yy_current_state = yy_get_previous_state();
4537
4538 yy_cp = yy_c_buf_p;
4539 yy_bp = yytext_ptr + YY_MORE_ADJ;
4540 goto yy_find_action;
4541 }
4542 break;
4543 }
4544
4545 default:
4546 YY_FATAL_ERROR(
4547 "fatal flex scanner internal error--no action found" );
4548 } /* end of action switch */
4549 } /* end of scanning one token */
4550 } /* end of yylex */
4551
4552
4553 /* yy_get_next_buffer - try to read in a new buffer
4554 *
4555 * Returns a code representing an action:
4556 * EOB_ACT_LAST_MATCH -
4557 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4558 * EOB_ACT_END_OF_FILE - end of file
4559 */
4560
4561 static int yy_get_next_buffer()
/* [<][>][^][v][top][bottom][index][help] */
4562 {
4563 register char *dest = yy_current_buffer->yy_ch_buf;
4564 register char *source = yytext_ptr;
4565 register int number_to_move, i;
4566 int ret_val;
4567
4568 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
4569 YY_FATAL_ERROR(
4570 "fatal flex scanner internal error--end of buffer missed" );
4571
4572 if ( yy_current_buffer->yy_fill_buffer == 0 )
4573 { /* Don't try to fill the buffer, so this is an EOF. */
4574 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
4575 {
4576 /* We matched a single character, the EOB, so
4577 * treat this as a final EOF.
4578 */
4579 return EOB_ACT_END_OF_FILE;
4580 }
4581
4582 else
4583 {
4584 /* We matched some text prior to the EOB, first
4585 * process it.
4586 */
4587 return EOB_ACT_LAST_MATCH;
4588 }
4589 }
4590
4591 /* Try to read more data. */
4592
4593 /* First move last chars to start of buffer. */
4594 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
4595
4596 for ( i = 0; i < number_to_move; ++i )
4597 *(dest++) = *(source++);
4598
4599 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4600 /* don't do the read, it's not guaranteed to return an EOF,
4601 * just force an EOF
4602 */
4603 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
4604
4605 else
4606 {
4607 int num_to_read =
4608 yy_current_buffer->yy_buf_size - number_to_move - 1;
4609
4610 while ( num_to_read <= 0 )
4611 { /* Not enough room in the buffer - grow it. */
4612 #ifdef YY_USES_REJECT
4613 YY_FATAL_ERROR(
4614 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
4615 #else
4616
4617 /* just a shorter name for the current buffer */
4618 YY_BUFFER_STATE b = yy_current_buffer;
4619
4620 int yy_c_buf_p_offset =
4621 (int) (yy_c_buf_p - b->yy_ch_buf);
4622
4623 if ( b->yy_is_our_buffer )
4624 {
4625 int new_size = b->yy_buf_size * 2;
4626
4627 if ( new_size <= 0 )
4628 b->yy_buf_size += b->yy_buf_size / 8;
4629 else
4630 b->yy_buf_size *= 2;
4631
4632 b->yy_ch_buf = (char *)
4633 /* Include room in for 2 EOB chars. */
4634 yy_flex_realloc( (void *) b->yy_ch_buf,
4635 b->yy_buf_size + 2 );
4636 }
4637 else
4638 /* Can't grow it, we don't own it. */
4639 b->yy_ch_buf = 0;
4640
4641 if ( ! b->yy_ch_buf )
4642 YY_FATAL_ERROR(
4643 "fatal error - scanner input buffer overflow" );
4644
4645 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
4646
4647 num_to_read = yy_current_buffer->yy_buf_size -
4648 number_to_move - 1;
4649 #endif
4650 }
4651
4652 if ( num_to_read > YY_READ_BUF_SIZE )
4653 num_to_read = YY_READ_BUF_SIZE;
4654
4655 /* Read in more data. */
4656 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
4657 yy_n_chars, num_to_read );
4658
4659 yy_current_buffer->yy_n_chars = yy_n_chars;
4660 }
4661
4662 if ( yy_n_chars == 0 )
4663 {
4664 if ( number_to_move == YY_MORE_ADJ )
4665 {
4666 ret_val = EOB_ACT_END_OF_FILE;
4667 yyrestart( yyin );
4668 }
4669
4670 else
4671 {
4672 ret_val = EOB_ACT_LAST_MATCH;
4673 yy_current_buffer->yy_buffer_status =
4674 YY_BUFFER_EOF_PENDING;
4675 }
4676 }
4677
4678 else
4679 ret_val = EOB_ACT_CONTINUE_SCAN;
4680
4681 yy_n_chars += number_to_move;
4682 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
4683 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
4684
4685 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
4686
4687 return ret_val;
4688 }
4689
4690
4691 /* yy_get_previous_state - get the state just before the EOB char was reached */
4692
4693 static yy_state_type yy_get_previous_state()
/* [<][>][^][v][top][bottom][index][help] */
4694 {
4695 register yy_state_type yy_current_state;
4696 register char *yy_cp;
4697
4698 yy_current_state = yy_start;
4699 yy_current_state += YY_AT_BOL();
4700 yy_state_ptr = yy_state_buf;
4701 *yy_state_ptr++ = yy_current_state;
4702
4703 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
4704 {
4705 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4706 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4707 {
4708 yy_current_state = (int) yy_def[yy_current_state];
4709 if ( yy_current_state >= 831 )
4710 yy_c = yy_meta[(unsigned int) yy_c];
4711 }
4712 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4713 *yy_state_ptr++ = yy_current_state;
4714 }
4715
4716 return yy_current_state;
4717 }
4718
4719
4720 /* yy_try_NUL_trans - try to make a transition on the NUL character
4721 *
4722 * synopsis
4723 * next_state = yy_try_NUL_trans( current_state );
4724 */
4725
4726 #ifdef YY_USE_PROTOS
4727 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
/* [<][>][^][v][top][bottom][index][help] */
4728 #else
4729 static yy_state_type yy_try_NUL_trans( yy_current_state )
4730 yy_state_type yy_current_state;
4731 #endif
4732 {
4733 register int yy_is_jam;
4734
4735 register YY_CHAR yy_c = 1;
4736 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4737 {
4738 yy_current_state = (int) yy_def[yy_current_state];
4739 if ( yy_current_state >= 831 )
4740 yy_c = yy_meta[(unsigned int) yy_c];
4741 }
4742 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4743 yy_is_jam = (yy_current_state == 830);
4744 if ( ! yy_is_jam )
4745 *yy_state_ptr++ = yy_current_state;
4746
4747 return yy_is_jam ? 0 : yy_current_state;
4748 }
4749
4750
4751 #ifndef YY_NO_UNPUT
4752 #ifdef YY_USE_PROTOS
4753 static void yyunput( int c, register char *yy_bp )
/* [<][>][^][v][top][bottom][index][help] */
4754 #else
4755 static void yyunput( c, yy_bp )
4756 int c;
4757 register char *yy_bp;
4758 #endif
4759 {
4760 register char *yy_cp = yy_c_buf_p;
4761
4762 /* undo effects of setting up yytext */
4763 *yy_cp = yy_hold_char;
4764
4765 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
4766 { /* need to shift things up to make room */
4767 /* +2 for EOB chars. */
4768 register int number_to_move = yy_n_chars + 2;
4769 register char *dest = &yy_current_buffer->yy_ch_buf[
4770 yy_current_buffer->yy_buf_size + 2];
4771 register char *source =
4772 &yy_current_buffer->yy_ch_buf[number_to_move];
4773
4774 while ( source > yy_current_buffer->yy_ch_buf )
4775 *--dest = *--source;
4776
4777 yy_cp += (int) (dest - source);
4778 yy_bp += (int) (dest - source);
4779 yy_current_buffer->yy_n_chars =
4780 yy_n_chars = yy_current_buffer->yy_buf_size;
4781
4782 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
4783 YY_FATAL_ERROR( "flex scanner push-back overflow" );
4784 }
4785
4786 *--yy_cp = (char) c;
4787
4788
4789 yytext_ptr = yy_bp;
4790 yy_hold_char = *yy_cp;
4791 yy_c_buf_p = yy_cp;
4792 }
4793 #endif /* ifndef YY_NO_UNPUT */
4794
4795
4796 #ifdef __cplusplus
4797 static int yyinput()
/* [<][>][^][v][top][bottom][index][help] */
4798 #else
4799 static int input()
4800 #endif
4801 {
4802 int c;
4803
4804 *yy_c_buf_p = yy_hold_char;
4805
4806 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
4807 {
4808 /* yy_c_buf_p now points to the character we want to return.
4809 * If this occurs *before* the EOB characters, then it's a
4810 * valid NUL; if not, then we've hit the end of the buffer.
4811 */
4812 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
4813 /* This was really a NUL. */
4814 *yy_c_buf_p = '\0';
4815
4816 else
4817 { /* need more input */
4818 int offset = yy_c_buf_p - yytext_ptr;
4819 ++yy_c_buf_p;
4820
4821 switch ( yy_get_next_buffer() )
4822 {
4823 case EOB_ACT_LAST_MATCH:
4824 /* This happens because yy_g_n_b()
4825 * sees that we've accumulated a
4826 * token and flags that we need to
4827 * try matching the token before
4828 * proceeding. But for input(),
4829 * there's no matching to consider.
4830 * So convert the EOB_ACT_LAST_MATCH
4831 * to EOB_ACT_END_OF_FILE.
4832 */
4833
4834 /* Reset buffer status. */
4835 yyrestart( yyin );
4836
4837 /* fall through */
4838
4839 case EOB_ACT_END_OF_FILE:
4840 {
4841 if ( yywrap() )
4842 return EOF;
4843
4844 if ( ! yy_did_buffer_switch_on_eof )
4845 YY_NEW_FILE;
4846 #ifdef __cplusplus
4847 return yyinput();
4848 #else
4849 return input();
4850 #endif
4851 }
4852
4853 case EOB_ACT_CONTINUE_SCAN:
4854 yy_c_buf_p = yytext_ptr + offset;
4855 break;
4856 }
4857 }
4858 }
4859
4860 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
4861 *yy_c_buf_p = '\0'; /* preserve yytext */
4862 yy_hold_char = *++yy_c_buf_p;
4863
4864 yy_current_buffer->yy_at_bol = (c == '\n');
4865
4866 return c;
4867 }
4868
4869
4870 #ifdef YY_USE_PROTOS
4871 void yyrestart( FILE *input_file )
/* [<][>][^][v][top][bottom][index][help] */
4872 #else
4873 void yyrestart( input_file )
4874 FILE *input_file;
4875 #endif
4876 {
4877 if ( ! yy_current_buffer )
4878 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
4879
4880 yy_init_buffer( yy_current_buffer, input_file );
4881 yy_load_buffer_state();
4882 }
4883
4884
4885 #ifdef YY_USE_PROTOS
4886 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
/* [<][>][^][v][top][bottom][index][help] */
4887 #else
4888 void yy_switch_to_buffer( new_buffer )
4889 YY_BUFFER_STATE new_buffer;
4890 #endif
4891 {
4892 if ( yy_current_buffer == new_buffer )
4893 return;
4894
4895 if ( yy_current_buffer )
4896 {
4897 /* Flush out information for old buffer. */
4898 *yy_c_buf_p = yy_hold_char;
4899 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
4900 yy_current_buffer->yy_n_chars = yy_n_chars;
4901 }
4902
4903 yy_current_buffer = new_buffer;
4904 yy_load_buffer_state();
4905
4906 /* We don't actually know whether we did this switch during
4907 * EOF (yywrap()) processing, but the only time this flag
4908 * is looked at is after yywrap() is called, so it's safe
4909 * to go ahead and always set it.
4910 */
4911 yy_did_buffer_switch_on_eof = 1;
4912 }
4913
4914
4915 #ifdef YY_USE_PROTOS
4916 void yy_load_buffer_state( void )
/* [<][>][^][v][top][bottom][index][help] */
4917 #else
4918 void yy_load_buffer_state()
4919 #endif
4920 {
4921 yy_n_chars = yy_current_buffer->yy_n_chars;
4922 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
4923 yyin = yy_current_buffer->yy_input_file;
4924 yy_hold_char = *yy_c_buf_p;
4925 }
4926
4927
4928 #ifdef YY_USE_PROTOS
4929 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
/* [<][>][^][v][top][bottom][index][help] */
4930 #else
4931 YY_BUFFER_STATE yy_create_buffer( file, size )
4932 FILE *file;
4933 int size;
4934 #endif
4935 {
4936 YY_BUFFER_STATE b;
4937
4938 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
4939 if ( ! b )
4940 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4941
4942 b->yy_buf_size = size;
4943
4944 /* yy_ch_buf has to be 2 characters longer than the size given because
4945 * we need to put in 2 end-of-buffer characters.
4946 */
4947 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
4948 if ( ! b->yy_ch_buf )
4949 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4950
4951 b->yy_is_our_buffer = 1;
4952
4953 yy_init_buffer( b, file );
4954
4955 return b;
4956 }
4957
4958
4959 #ifdef YY_USE_PROTOS
4960 void yy_delete_buffer( YY_BUFFER_STATE b )
/* [<][>][^][v][top][bottom][index][help] */
4961 #else
4962 void yy_delete_buffer( b )
4963 YY_BUFFER_STATE b;
4964 #endif
4965 {
4966 if ( ! b )
4967 return;
4968
4969 if ( b == yy_current_buffer )
4970 yy_current_buffer = (YY_BUFFER_STATE) 0;
4971
4972 if ( b->yy_is_our_buffer )
4973 yy_flex_free( (void *) b->yy_ch_buf );
4974
4975 yy_flex_free( (void *) b );
4976 }
4977
4978
4979 #ifndef YY_ALWAYS_INTERACTIVE
4980 #ifndef YY_NEVER_INTERACTIVE
4981 extern int isatty YY_PROTO(( int ));
4982 #endif
4983 #endif
4984
4985 #ifdef YY_USE_PROTOS
4986 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
/* [<][>][^][v][top][bottom][index][help] */
4987 #else
4988 void yy_init_buffer( b, file )
4989 YY_BUFFER_STATE b;
4990 FILE *file;
4991 #endif
4992
4993
4994 {
4995 yy_flush_buffer( b );
4996
4997 b->yy_input_file = file;
4998 b->yy_fill_buffer = 1;
4999
5000 #if YY_ALWAYS_INTERACTIVE
5001 b->yy_is_interactive = 1;
5002 #else
5003 #if YY_NEVER_INTERACTIVE
5004 b->yy_is_interactive = 0;
5005 #else
5006 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
5007 #endif
5008 #endif
5009 }
5010
5011
5012 #ifdef YY_USE_PROTOS
5013 void yy_flush_buffer( YY_BUFFER_STATE b )
/* [<][>][^][v][top][bottom][index][help] */
5014 #else
5015 void yy_flush_buffer( b )
5016 YY_BUFFER_STATE b;
5017 #endif
5018
5019 {
5020 if ( ! b )
5021 return;
5022
5023 b->yy_n_chars = 0;
5024
5025 /* We always need two end-of-buffer characters. The first causes
5026 * a transition to the end-of-buffer state. The second causes
5027 * a jam in that state.
5028 */
5029 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
5030 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
5031
5032 b->yy_buf_pos = &b->yy_ch_buf[0];
5033
5034 b->yy_at_bol = 1;
5035 b->yy_buffer_status = YY_BUFFER_NEW;
5036
5037 if ( b == yy_current_buffer )
5038 yy_load_buffer_state();
5039 }
5040
5041
5042 #ifndef YY_NO_SCAN_BUFFER
5043 #ifdef YY_USE_PROTOS
5044 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
/* [<][>][^][v][top][bottom][index][help] */
5045 #else
5046 YY_BUFFER_STATE yy_scan_buffer( base, size )
5047 char *base;
5048 yy_size_t size;
5049 #endif
5050 {
5051 YY_BUFFER_STATE b;
5052
5053 if ( size < 2 ||
5054 base[size-2] != YY_END_OF_BUFFER_CHAR ||
5055 base[size-1] != YY_END_OF_BUFFER_CHAR )
5056 /* They forgot to leave room for the EOB's. */
5057 return 0;
5058
5059 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
5060 if ( ! b )
5061 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
5062
5063 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
5064 b->yy_buf_pos = b->yy_ch_buf = base;
5065 b->yy_is_our_buffer = 0;
5066 b->yy_input_file = 0;
5067 b->yy_n_chars = b->yy_buf_size;
5068 b->yy_is_interactive = 0;
5069 b->yy_at_bol = 1;
5070 b->yy_fill_buffer = 0;
5071 b->yy_buffer_status = YY_BUFFER_NEW;
5072
5073 yy_switch_to_buffer( b );
5074
5075 return b;
5076 }
5077 #endif
5078
5079
5080 #ifndef YY_NO_SCAN_STRING
5081 #ifdef YY_USE_PROTOS
5082 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
/* [<][>][^][v][top][bottom][index][help] */
5083 #else
5084 YY_BUFFER_STATE yy_scan_string( yy_str )
5085 yyconst char *yy_str;
5086 #endif
5087 {
5088 int len;
5089 for ( len = 0; yy_str[len]; ++len )
5090 ;
5091
5092 return yy_scan_bytes( yy_str, len );
5093 }
5094 #endif
5095
5096
5097 #ifndef YY_NO_SCAN_BYTES
5098 #ifdef YY_USE_PROTOS
5099 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
/* [<][>][^][v][top][bottom][index][help] */
5100 #else
5101 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
5102 yyconst char *bytes;
5103 int len;
5104 #endif
5105 {
5106 YY_BUFFER_STATE b;
5107 char *buf;
5108 yy_size_t n;
5109 int i;
5110
5111 /* Get memory for full buffer, including space for trailing EOB's. */
5112 n = len + 2;
5113 buf = (char *) yy_flex_alloc( n );
5114 if ( ! buf )
5115 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
5116
5117 for ( i = 0; i < len; ++i )
5118 buf[i] = bytes[i];
5119
5120 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
5121
5122 b = yy_scan_buffer( buf, n );
5123 if ( ! b )
5124 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
5125
5126 /* It's okay to grow etc. this buffer, and we should throw it
5127 * away when we're done.
5128 */
5129 b->yy_is_our_buffer = 1;
5130
5131 return b;
5132 }
5133 #endif
5134
5135
5136 #ifndef YY_NO_PUSH_STATE
5137 #ifdef YY_USE_PROTOS
5138 static void yy_push_state( int new_state )
/* [<][>][^][v][top][bottom][index][help] */
5139 #else
5140 static void yy_push_state( new_state )
5141 int new_state;
5142 #endif
5143 {
5144 if ( yy_start_stack_ptr >= yy_start_stack_depth )
5145 {
5146 yy_size_t new_size;
5147
5148 yy_start_stack_depth += YY_START_STACK_INCR;
5149 new_size = yy_start_stack_depth * sizeof( int );
5150
5151 if ( ! yy_start_stack )
5152 yy_start_stack = (int *) yy_flex_alloc( new_size );
5153
5154 else
5155 yy_start_stack = (int *) yy_flex_realloc(
5156 (void *) yy_start_stack, new_size );
5157
5158 if ( ! yy_start_stack )
5159 YY_FATAL_ERROR(
5160 "out of memory expanding start-condition stack" );
5161 }
5162
5163 yy_start_stack[yy_start_stack_ptr++] = YY_START;
5164
5165 BEGIN(new_state);
5166 }
5167 #endif
5168
5169
5170 #ifndef YY_NO_POP_STATE
5171 static void yy_pop_state()
/* [<][>][^][v][top][bottom][index][help] */
5172 {
5173 if ( --yy_start_stack_ptr < 0 )
5174 YY_FATAL_ERROR( "start-condition stack underflow" );
5175
5176 BEGIN(yy_start_stack[yy_start_stack_ptr]);
5177 }
5178 #endif
5179
5180
5181 #ifndef YY_NO_TOP_STATE
5182 static int yy_top_state()
/* [<][>][^][v][top][bottom][index][help] */
5183 {
5184 return yy_start_stack[yy_start_stack_ptr - 1];
5185 }
5186 #endif
5187
5188 #ifndef YY_EXIT_FAILURE
5189 #define YY_EXIT_FAILURE 2
5190 #endif
5191
5192 #ifdef YY_USE_PROTOS
5193 static void yy_fatal_error( yyconst char msg[] )
/* [<][>][^][v][top][bottom][index][help] */
5194 #else
5195 static void yy_fatal_error( msg )
5196 char msg[];
5197 #endif
5198 {
5199 (void) fprintf( stderr, "%s\n", msg );
5200 exit( YY_EXIT_FAILURE );
5201 }
5202
5203
5204
5205 /* Redefine yyless() so it works in section 3 code. */
5206
5207 #undef yyless
5208 #define yyless(n) \
/* [<][>][^][v][top][bottom][index][help] */
5209 do \
5210 { \
5211 /* Undo effects of setting up yytext. */ \
5212 yytext[yyleng] = yy_hold_char; \
5213 yy_c_buf_p = yytext + n; \
5214 yy_hold_char = *yy_c_buf_p; \
5215 *yy_c_buf_p = '\0'; \
5216 yyleng = n; \
5217 } \
5218 while ( 0 )
5219
5220
5221 /* Internal utility routines. */
5222
5223 #ifndef yytext_ptr
5224 #ifdef YY_USE_PROTOS
5225 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
/* [<][>][^][v][top][bottom][index][help] */
5226 #else
5227 static void yy_flex_strncpy( s1, s2, n )
5228 char *s1;
5229 yyconst char *s2;
5230 int n;
5231 #endif
5232 {
5233 register int i;
5234 for ( i = 0; i < n; ++i )
5235 s1[i] = s2[i];
5236 }
5237 #endif
5238
5239 #ifdef YY_NEED_STRLEN
5240 #ifdef YY_USE_PROTOS
5241 static int yy_flex_strlen( yyconst char *s )
/* [<][>][^][v][top][bottom][index][help] */
5242 #else
5243 static int yy_flex_strlen( s )
5244 yyconst char *s;
5245 #endif
5246 {
5247 register int n;
5248 for ( n = 0; s[n]; ++n )
5249 ;
5250
5251 return n;
5252 }
5253 #endif
5254
5255
5256 #ifdef YY_USE_PROTOS
5257 static void *yy_flex_alloc( yy_size_t size )
/* [<][>][^][v][top][bottom][index][help] */
5258 #else
5259 static void *yy_flex_alloc( size )
5260 yy_size_t size;
5261 #endif
5262 {
5263 return (void *) malloc( size );
5264 }
5265
5266 #ifdef YY_USE_PROTOS
5267 static void *yy_flex_realloc( void *ptr, yy_size_t size )
/* [<][>][^][v][top][bottom][index][help] */
5268 #else
5269 static void *yy_flex_realloc( ptr, size )
5270 void *ptr;
5271 yy_size_t size;
5272 #endif
5273 {
5274 /* The cast to (char *) in the following accommodates both
5275 * implementations that use char* generic pointers, and those
5276 * that use void* generic pointers. It works with the latter
5277 * because both ANSI C and C++ allow castless assignment from
5278 * any pointer type to void*, and deal with argument conversions
5279 * as though doing an assignment.
5280 */
5281 return (void *) realloc( (char *) ptr, size );
5282 }
5283
5284 #ifdef YY_USE_PROTOS
5285 static void yy_flex_free( void *ptr )
/* [<][>][^][v][top][bottom][index][help] */
5286 #else
5287 static void yy_flex_free( ptr )
5288 void *ptr;
5289 #endif
5290 {
5291 free( ptr );
5292 }
5293
5294 #if YY_MAIN
5295 int main()
/* [<][>][^][v][top][bottom][index][help] */
5296 {
5297 yylex();
5298 return 0;
5299 }
5300 #endif
5301 #line 624 "rpsl.l"
5302
5303 extern "C" {
5304 int yywrap () {
5305 return 1;
5306 }
5307 }
5308
5309 void handle_error(char *s, ...) {
/* [<][>][^][v][top][bottom][index][help] */
5310 current_object->has_error = true;
5311
5312 char buffer[1024] = "***";
5313 va_list ap;
5314 va_start(ap, s);
5315 vsprintf(buffer+3, s, ap);
5316 va_end(ap);
5317
5318 if (current_attribute)
5319 current_attribute->errors += buffer;
5320 else
5321 current_object->errors += buffer;
5322 }
5323
5324 void handle_object_error(char *s, ...) {
/* [<][>][^][v][top][bottom][index][help] */
5325 current_object->has_error = true;
5326
5327 char buffer[1024] = "***";
5328 va_list ap;
5329 va_start(ap, s);
5330 vsprintf(buffer+3, s, ap);
5331 va_end(ap);
5332
5333 current_object->errors += buffer;
5334 }
5335
5336 void rpslerror(char *, ...) {
/* [<][>][^][v][top][bottom][index][help] */
5337 if (current_attribute) {
5338 current_attribute->errorLine = errorLine;
5339 current_attribute->errorColon = errorColon - yyleng;
5340 current_attribute->errorLeng = yyleng;
5341 }
5342 }
5343
5344 void handle_warning(char *s, ...) {
/* [<][>][^][v][top][bottom][index][help] */
5345 current_object->has_warning = true;
5346
5347 char buffer[1024];
5348 va_list ap;
5349 va_start(ap, s);
5350 vsprintf(buffer, s, ap);
5351 va_end(ap);
5352
5353 if (current_attribute)
5354 current_attribute->errors += buffer;
5355 else
5356 current_object->errors += buffer;
5357 }
5358
5359 void yy_scan_object(Object *o) {
/* [<][>][^][v][top][bottom][index][help] */
5360 errorLine = 0;
5361 errorColon = 0;
5362 current_object = o;
5363 current_attribute = NULL;
5364 start_of_object = true;
5365 scan_position = 0;
5366 genericMode = true;
5367
5368 if (rpsl_buffer)
5369 yy_delete_buffer(rpsl_buffer);
5370 rpsl_buffer = yy_scan_bytes(o->contents, o->size);
5371 BEGIN(INITIAL);
5372 }
5373
5374 Attr *changeCurrentAttr(Attr *b) {
/* [<][>][^][v][top][bottom][index][help] */
5375 if (current_attribute) {
5376 b->object = current_attribute->object;
5377 b->type = current_attribute->type;
5378 b->offset = current_attribute->offset;;
5379 b->len = current_attribute->len;
5380 b->errors = current_attribute->errors;
5381 b->errorLine = current_attribute->errorLine;
5382 b->errorColon = current_attribute->errorColon;
5383 b->errorLeng = current_attribute->errorLeng;
5384 delete current_attribute;
5385 }
5386 current_attribute = b;
5387 return b;
5388 }
5389
5390 int validIPv6(const char *s){
/* [<][>][^][v][top][bottom][index][help] */
5391 char *string, *sleft, *sright, *pos;
5392 int countleft = 0, countright = 0;
5393 string = strdup(s);
5394 pos = strstr(string,"/");
5395 pos[0] = '\0';
5396 sleft = strdup(string);
5397 pos = strstr(sleft,"::");
5398 pos[0] = '\0';
5399 sright = pos + 2;
5400 // count the ':'s on the left
5401 for(int i=0;i<strlen(sleft);i++){
5402 if(sleft[i] == ':'){ countleft++;}
5403 }
5404 // count the ':'s on the right
5405 for(int i=0;i<strlen(sright);i++){
5406 if(sright[i] == ':'){ countright++;}
5407 }
5408
5409 // now, if the total # of quads is > 8, than there
5410 // is a problem with the syntax of the ipv6 address.
5411 if((countleft + 1 + countright + 1) <= 8 ){
5412 return 1;
5413 }else{
5414 return 0;
5415 }
5416 }
5417
5418 int validIntForPhone(const char * arg){
/* [<][>][^][v][top][bottom][index][help] */
5419 /* Checks if the integer is valid as a phone no (should not contain '+' or '-')*/
5420 if((strchr(arg,'+') == NULL) && (strchr(arg,'-') == NULL)){
5421 return 1;
5422 }
5423 return 0;
5424 }
5425