00001 00002 #line 3 "<stdout>" 00003 00004 #define YY_INT_ALIGNED short int 00005 00006 /* A lexical scanner generated by flex */ 00007 00008 #define FLEX_SCANNER 00009 #define YY_FLEX_MAJOR_VERSION 2 00010 #define YY_FLEX_MINOR_VERSION 5 00011 #define YY_FLEX_SUBMINOR_VERSION 33 00012 #if YY_FLEX_SUBMINOR_VERSION > 0 00013 #define FLEX_BETA 00014 #endif 00015 00016 /* First, we deal with platform-specific or compiler-specific issues. */ 00017 00018 /* begin standard C headers. */ 00019 #include <stdio.h> 00020 #include <string.h> 00021 #include <errno.h> 00022 #include <stdlib.h> 00023 00024 /* end standard C headers. */ 00025 00026 /* flex integer type definitions */ 00027 00028 #ifndef FLEXINT_H 00029 #define FLEXINT_H 00030 00031 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ 00032 00033 #if __STDC_VERSION__ >= 199901L 00034 00035 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, 00036 * if you want the limit (max/min) macros for int types. 00037 */ 00038 #ifndef __STDC_LIMIT_MACROS 00039 #define __STDC_LIMIT_MACROS 1 00040 #endif 00041 00042 #include <inttypes.h> 00043 typedef int8_t flex_int8_t; 00044 typedef uint8_t flex_uint8_t; 00045 typedef int16_t flex_int16_t; 00046 typedef uint16_t flex_uint16_t; 00047 typedef int32_t flex_int32_t; 00048 typedef uint32_t flex_uint32_t; 00049 #else 00050 typedef signed char flex_int8_t; 00051 typedef short int flex_int16_t; 00052 typedef int flex_int32_t; 00053 typedef unsigned char flex_uint8_t; 00054 typedef unsigned short int flex_uint16_t; 00055 typedef unsigned int flex_uint32_t; 00056 #endif /* ! C99 */ 00057 00058 /* Limits of integral types. */ 00059 #ifndef INT8_MIN 00060 #define INT8_MIN (-128) 00061 #endif 00062 #ifndef INT16_MIN 00063 #define INT16_MIN (-32767-1) 00064 #endif 00065 #ifndef INT32_MIN 00066 #define INT32_MIN (-2147483647-1) 00067 #endif 00068 #ifndef INT8_MAX 00069 #define INT8_MAX (127) 00070 #endif 00071 #ifndef INT16_MAX 00072 #define INT16_MAX (32767) 00073 #endif 00074 #ifndef INT32_MAX 00075 #define INT32_MAX (2147483647) 00076 #endif 00077 #ifndef UINT8_MAX 00078 #define UINT8_MAX (255U) 00079 #endif 00080 #ifndef UINT16_MAX 00081 #define UINT16_MAX (65535U) 00082 #endif 00083 #ifndef UINT32_MAX 00084 #define UINT32_MAX (4294967295U) 00085 #endif 00086 00087 #endif /* ! FLEXINT_H */ 00088 00089 #ifdef __cplusplus 00090 00091 /* The "const" storage-class-modifier is valid. */ 00092 #define YY_USE_CONST 00093 00094 #else /* ! __cplusplus */ 00095 00096 #if __STDC__ 00097 00098 #define YY_USE_CONST 00099 00100 #endif /* __STDC__ */ 00101 #endif /* ! __cplusplus */ 00102 00103 #ifdef YY_USE_CONST 00104 #define yyconst const 00105 #else 00106 #define yyconst 00107 #endif 00108 00109 /* Returned upon end-of-file. */ 00110 #define YY_NULL 0 00111 00112 /* Promotes a possibly negative, possibly signed char to an unsigned 00113 * integer for use as an array index. If the signed char is negative, 00114 * we want to instead treat it as an 8-bit unsigned char, hence the 00115 * double cast. 00116 */ 00117 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) 00118 00119 /* Enter a start condition. This macro really ought to take a parameter, 00120 * but we do it the disgusting crufty way forced on us by the ()-less 00121 * definition of BEGIN. 00122 */ 00123 #define BEGIN (yy_start) = 1 + 2 * 00124 00125 /* Translate the current start state into a value that can be later handed 00126 * to BEGIN to return to the state. The YYSTATE alias is for lex 00127 * compatibility. 00128 */ 00129 #define YY_START (((yy_start) - 1) / 2) 00130 #define YYSTATE YY_START 00131 00132 /* Action number for EOF rule of a given start state. */ 00133 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 00134 00135 /* Special action meaning "start processing a new file". */ 00136 #define YY_NEW_FILE scanYYrestart(scanYYin ) 00137 00138 #define YY_END_OF_BUFFER_CHAR 0 00139 00140 /* Size of default input buffer. */ 00141 #ifndef YY_BUF_SIZE 00142 #define YY_BUF_SIZE 262144 00143 #endif 00144 00145 /* The state buf must be large enough to hold one state per character in the main buffer. 00146 */ 00147 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) 00148 00149 #ifndef YY_TYPEDEF_YY_BUFFER_STATE 00150 #define YY_TYPEDEF_YY_BUFFER_STATE 00151 typedef struct yy_buffer_state *YY_BUFFER_STATE; 00152 #endif 00153 00154 extern int scanYYleng; 00155 00156 extern FILE *scanYYin, *scanYYout; 00157 00158 #define EOB_ACT_CONTINUE_SCAN 0 00159 #define EOB_ACT_END_OF_FILE 1 00160 #define EOB_ACT_LAST_MATCH 2 00161 00162 #define YY_LESS_LINENO(n) 00163 00164 /* Return all but the first "n" matched characters back to the input stream. */ 00165 #define yyless(n) \ 00166 do \ 00167 { \ 00168 /* Undo effects of setting up scanYYtext. */ \ 00169 int yyless_macro_arg = (n); \ 00170 YY_LESS_LINENO(yyless_macro_arg);\ 00171 *yy_cp = (yy_hold_char); \ 00172 YY_RESTORE_YY_MORE_OFFSET \ 00173 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ 00174 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ \ 00175 } \ 00176 while ( 0 ) 00177 00178 #define unput(c) yyunput( c, (yytext_ptr) ) 00179 00180 /* The following is because we cannot portably get our hands on size_t 00181 * (without autoconf's help, which isn't available because we want 00182 * flex-generated scanners to compile on their own). 00183 */ 00184 00185 #ifndef YY_TYPEDEF_YY_SIZE_T 00186 #define YY_TYPEDEF_YY_SIZE_T 00187 typedef unsigned int yy_size_t; 00188 #endif 00189 00190 #ifndef YY_STRUCT_YY_BUFFER_STATE 00191 #define YY_STRUCT_YY_BUFFER_STATE 00192 struct yy_buffer_state 00193 { 00194 FILE *yy_input_file; 00195 00196 char *yy_ch_buf; /* input buffer */ 00197 char *yy_buf_pos; /* current position in input buffer */ 00198 00199 /* Size of input buffer in bytes, not including room for EOB 00200 * characters. 00201 */ 00202 yy_size_t yy_buf_size; 00203 00204 /* Number of characters read into yy_ch_buf, not including EOB 00205 * characters. 00206 */ 00207 int yy_n_chars; 00208 00209 /* Whether we "own" the buffer - i.e., we know we created it, 00210 * and can realloc() it to grow it, and should free() it to 00211 * delete it. 00212 */ 00213 int yy_is_our_buffer; 00214 00215 /* Whether this is an "interactive" input source; if so, and 00216 * if we're using stdio for input, then we want to use getc() 00217 * instead of fread(), to make sure we stop fetching input after 00218 * each newline. 00219 */ 00220 int yy_is_interactive; 00221 00222 /* Whether we're considered to be at the beginning of a line. 00223 * If so, '^' rules will be active on the next match, otherwise 00224 * not. 00225 */ 00226 int yy_at_bol; 00227 00228 int yy_bs_lineno; 00229 int yy_bs_column; 00231 /* Whether to try to fill the input buffer when we reach the 00232 * end of it. 00233 */ 00234 int yy_fill_buffer; 00235 00236 int yy_buffer_status; 00237 00238 #define YY_BUFFER_NEW 0 00239 #define YY_BUFFER_NORMAL 1 00240 /* When an EOF's been seen but there's still some text to process 00241 * then we mark the buffer as YY_EOF_PENDING, to indicate that we 00242 * shouldn't try reading from the input source any more. We might 00243 * still have a bunch of tokens to match, though, because of 00244 * possible backing-up. 00245 * 00246 * When we actually see the EOF, we change the status to "new" 00247 * (via scanYYrestart()), so that the user can continue scanning by 00248 * just pointing scanYYin at a new input file. 00249 */ 00250 #define YY_BUFFER_EOF_PENDING 2 00251 00252 }; 00253 #endif /* !YY_STRUCT_YY_BUFFER_STATE */ 00254 00255 /* Stack of input buffers. */ 00256 static size_t yy_buffer_stack_top = 0; 00257 static size_t yy_buffer_stack_max = 0; 00258 static YY_BUFFER_STATE * yy_buffer_stack = 0; 00260 /* We provide macros for accessing buffer states in case in the 00261 * future we want to put the buffer states in a more general 00262 * "scanner state". 00263 * 00264 * Returns the top of the stack, or NULL. 00265 */ 00266 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ 00267 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ 00268 : NULL) 00269 00270 /* Same as previous macro, but useful when we know that the buffer stack is not 00271 * NULL or when we need an lvalue. For internal use only. 00272 */ 00273 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] 00274 00275 /* yy_hold_char holds the character lost when scanYYtext is formed. */ 00276 static char yy_hold_char; 00277 static int yy_n_chars; /* number of characters read into yy_ch_buf */ 00278 int scanYYleng; 00279 00280 /* Points to current character in buffer. */ 00281 static char *yy_c_buf_p = (char *) 0; 00282 static int yy_init = 0; /* whether we need to initialize */ 00283 static int yy_start = 0; /* start state number */ 00284 00285 /* Flag which is used to allow scanYYwrap()'s to do buffer switches 00286 * instead of setting up a fresh scanYYin. A bit of a hack ... 00287 */ 00288 static int yy_did_buffer_switch_on_eof; 00289 00290 void scanYYrestart (FILE *input_file ); 00291 void scanYY_switch_to_buffer (YY_BUFFER_STATE new_buffer ); 00292 YY_BUFFER_STATE scanYY_create_buffer (FILE *file,int size ); 00293 void scanYY_delete_buffer (YY_BUFFER_STATE b ); 00294 void scanYY_flush_buffer (YY_BUFFER_STATE b ); 00295 void scanYYpush_buffer_state (YY_BUFFER_STATE new_buffer ); 00296 void scanYYpop_buffer_state (void ); 00297 00298 static void scanYYensure_buffer_stack (void ); 00299 static void scanYY_load_buffer_state (void ); 00300 static void scanYY_init_buffer (YY_BUFFER_STATE b,FILE *file ); 00301 00302 #define YY_FLUSH_BUFFER scanYY_flush_buffer(YY_CURRENT_BUFFER ) 00303 00304 YY_BUFFER_STATE scanYY_scan_buffer (char *base,yy_size_t size ); 00305 YY_BUFFER_STATE scanYY_scan_string (yyconst char *yy_str ); 00306 YY_BUFFER_STATE scanYY_scan_bytes (yyconst char *bytes,int len ); 00307 00308 void *scanYYalloc (yy_size_t ); 00309 void *scanYYrealloc (void *,yy_size_t ); 00310 void scanYYfree (void * ); 00311 00312 #define yy_new_buffer scanYY_create_buffer 00313 00314 #define yy_set_interactive(is_interactive) \ 00315 { \ 00316 if ( ! YY_CURRENT_BUFFER ){ \ 00317 scanYYensure_buffer_stack (); \ 00318 YY_CURRENT_BUFFER_LVALUE = \ 00319 scanYY_create_buffer(scanYYin,YY_BUF_SIZE ); \ 00320 } \ 00321 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ 00322 } 00323 00324 #define yy_set_bol(at_bol) \ 00325 { \ 00326 if ( ! YY_CURRENT_BUFFER ){\ 00327 scanYYensure_buffer_stack (); \ 00328 YY_CURRENT_BUFFER_LVALUE = \ 00329 scanYY_create_buffer(scanYYin,YY_BUF_SIZE ); \ 00330 } \ 00331 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ 00332 } 00333 00334 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) 00335 00336 /* Begin user sect3 */ 00337 00338 #define scanYYwrap(n) 1 00339 #define YY_SKIP_YYWRAP 00340 00341 typedef unsigned char YY_CHAR; 00342 00343 FILE *scanYYin = (FILE *) 0, *scanYYout = (FILE *) 0; 00344 00345 typedef int yy_state_type; 00346 00347 extern int scanYYlineno; 00348 00349 int scanYYlineno = 1; 00350 00351 extern char *scanYYtext; 00352 #define yytext_ptr scanYYtext 00353 00354 static yy_state_type yy_get_previous_state (void ); 00355 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); 00356 static int yy_get_next_buffer (void ); 00357 static void yy_fatal_error (yyconst char msg[] ); 00358 00359 /* Done after the current pattern has been matched and before the 00360 * corresponding action - sets up scanYYtext. 00361 */ 00362 #define YY_DO_BEFORE_ACTION \ 00363 (yytext_ptr) = yy_bp; \ 00364 scanYYleng = (size_t) (yy_cp - yy_bp); \ 00365 (yy_hold_char) = *yy_cp; \ 00366 *yy_cp = '\0'; \ 00367 (yy_c_buf_p) = yy_cp; 00368 00369 #define YY_NUM_RULES 605 00370 #define YY_END_OF_BUFFER 606 00371 /* This struct is not used in this scanner, 00372 but its presence is necessary. */ 00373 struct yy_trans_info 00374 { 00375 flex_int32_t yy_verify; 00376 flex_int32_t yy_nxt; 00377 }; 00378 static yyconst flex_int16_t yy_acclist[4195] = 00379 { 0, 00380 36, 36, 304, 304, 304, 304, 304, 304, 301, 301, 00381 46, 46, 52, 52, 359, 359, 359, 359, 606, 600, 00382 605, 595, 605, 596, 599, 600, 605, 597, 600, 605, 00383 598, 600, 605, 600, 605, 600, 605, 183, 600, 605, 00384 189, 600, 605, 189, 600, 605, 184, 595, 605, 188, 00385 189, 596, 599, 600, 605, 189, 597, 600, 605, 189, 00386 598, 600, 605, 189, 600, 605, 189, 600, 605, 600, 00387 605, 595, 605, 600, 605, 600, 605, 600, 605, 600, 00388 605, 600, 605, 464, 600, 605, 472, 473, 600, 605, 00389 497, 600, 605, 600, 605, 600, 605, 506, 595, 605, 00390 00391 600, 605, 600, 605, 600, 605, 491, 600, 605, 478, 00392 600, 605, 600, 605, 475, 600, 605, 600, 605, 490, 00393 600, 605, 508, 600, 605, 600, 605, 477, 600, 605, 00394 477, 600, 605, 477, 600, 605, 487, 600, 605, 486, 00395 595, 605, 487, 596, 599, 600, 605, 480, 487, 597, 00396 600, 605, 487, 600, 605, 487, 598, 600, 605, 487, 00397 600, 605, 482, 487, 600, 605, 483, 487, 600, 605, 00398 487, 600, 605, 485, 487, 600, 605, 485, 487, 600, 00399 605, 481, 487, 600, 605, 600, 605, 489, 600, 605, 00400 488, 600, 605, 469, 600, 605, 469, 596, 599, 600, 00401 00402 605, 469, 597, 600, 605, 469, 598, 600, 605, 469, 00403 600, 605, 468, 469, 600, 605, 467, 469, 600, 605, 00404 37, 600, 605, 36, 37, 600, 605, 35, 595, 605, 00405 37, 596, 599, 600, 605, 37, 597, 600, 605, 37, 00406 600, 605, 37, 598, 600, 605, 37, 600, 605, 34, 00407 37, 600, 605, 31, 37, 600, 605, 37, 600, 605, 00408 33, 37, 600, 605, 409, 600, 605, 408, 595, 605, 00409 409, 596, 599, 600, 605, 409, 597, 600, 605, 409, 00410 600, 605, 409, 598, 600, 605, 409, 600, 605, 406, 00411 409, 600, 605, 407, 409, 600, 605, 600, 605, 506, 00412 00413 595, 605, 600, 605, 600, 605, 523, 600, 605, 600, 00414 605, 509, 600, 605, 504, 505, 600, 605, 524, 600, 00415 605, 503, 600, 605, 502, 503, 600, 605, 502, 595, 00416 605, 503, 596, 599, 600, 605, 503, 597, 600, 605, 00417 503, 598, 600, 605, 503, 600, 605, 503, 600, 605, 00418 503, 600, 605, 9, 596, 599, 600, 605, 7, 598, 00419 600, 605, 2, 600, 605, 10, 600, 605, 10, 600, 00420 605, 1, 600, 605, 268, 600, 605, 268, 596, 599, 00421 600, 605, 268, 597, 600, 605, 268, 598, 600, 605, 00422 11, 268, 600, 605, 268, 600, 605, 11, 268, 600, 00423 00424 605, 56, 600, 605, 56, 595, 605, 56, 600, 605, 00425 600, 605, 173, 597, 600, 605, 600, 605, 191, 600, 00426 605, 192, 600, 605, 355, 600, 605, 42, 600, 605, 00427 269, 600, 605, 160, 600, 605, 600, 605, 600, 605, 00428 267, 600, 605, 269, 600, 605, 291, 600, 605, 198, 00429 600, 605, 600, 605, 600, 605, 158, 600, 605, 158, 00430 600, 605, 270, 600, 605, 158, 600, 605, 158, 600, 00431 605, 158, 600, 605, 158, 600, 605, 158, 600, 605, 00432 158, 600, 605, 158, 600, 605, 158, 600, 605, 158, 00433 600, 605, 158, 600, 605, 158, 600, 605, 158, 600, 00434 00435 605, 158, 600, 605, 158, 600, 605, 158, 600, 605, 00436 158, 600, 605, 158, 600, 605, 158, 600, 605, 542, 00437 600, 605, 14, 16, 600, 605, 15, 595, 605, 14, 00438 16, 596, 599, 600, 605, 14, 16, 597, 600, 605, 00439 14, 16, 598, 600, 605, 14, 16, 600, 605, 16, 00440 600, 605, 600, 605, 595, 605, 600, 605, 600, 605, 00441 600, 605, 158, 600, 605, 600, 605, 595, 605, 600, 00442 605, 297, 600, 605, 302, 600, 605, 600, 605, 299, 00443 600, 605, 298, 600, 605, 296, 600, 605, 303, 600, 00444 605, 600, 605, 404, 597, 600, 605, 434, 600, 605, 00445 00446 436, 600, 605, 435, 600, 605, 436, 600, 605, 422, 00447 600, 605, 403, 422, 600, 605, 403, 595, 605, 422, 00448 596, 599, 600, 605, 404, 422, 597, 600, 605, 422, 00449 598, 600, 605, 392, 422, 600, 605, 393, 422, 600, 00450 605, 402, 422, 600, 605, 422, 600, 605, 429, 600, 00451 605, 429, 596, 599, 600, 605, 429, 597, 600, 605, 00452 429, 598, 600, 605, 427, 429, 600, 605, 428, 429, 00453 600, 605, 429, 600, 605, 433, 600, 605, 432, 595, 00454 605, 433, 596, 599, 600, 605, 433, 597, 600, 605, 00455 433, 598, 600, 605, 433, 600, 605, 431, 433, 600, 00456 00457 605, 430, 433, 600, 605, 403, 422, 600, 605, 403, 00458 595, 605, 422, 600, 605, 394, 422, 600, 605, 422, 00459 600, 605, 405, 422, 600, 605, 417, 422, 600, 605, 00460 417, 422, 600, 605, 417, 422, 600, 605, 417, 422, 00461 600, 605, 417, 422, 600, 605, 417, 422, 600, 605, 00462 417, 422, 600, 605, 417, 422, 600, 605, 417, 422, 00463 600, 605, 115, 600, 605, 115, 595, 605, 115, 596, 00464 599, 600, 605, 115, 597, 600, 605, 115, 598, 600, 00465 605, 117, 600, 605, 115, 600, 605, 114, 115, 600, 00466 605, 115, 600, 605, 286, 600, 605, 286, 596, 599, 00467 00468 600, 605, 286, 597, 600, 605, 286, 598, 600, 605, 00469 286, 600, 605, 285, 286, 600, 605, 283, 286, 600, 00470 605, 304, 327, 600, 605, 304, 325, 327, 600, 605, 00471 325, 595, 605, 325, 327, 600, 605, 308, 327, 596, 00472 599, 600, 605, 306, 327, 597, 600, 605, 311, 327, 00473 598, 600, 605, 327, 600, 605, 327, 600, 605, 313, 00474 327, 600, 605, 315, 327, 600, 605, 315, 327, 600, 00475 605, 327, 600, 605, 314, 327, 600, 605, 600, 605, 00476 129, 600, 605, 127, 600, 605, 127, 600, 605, 600, 00477 605, 595, 605, 600, 605, 600, 605, 600, 605, 128, 00478 00479 600, 605, 446, 457, 600, 605, 446, 457, 600, 605, 00480 445, 595, 605, 443, 457, 596, 599, 600, 605, 453, 00481 457, 597, 600, 605, 456, 457, 598, 600, 605, 457, 00482 600, 605, 457, 600, 605, 457, 600, 605, 438, 457, 00483 600, 605, 439, 457, 600, 605, 446, 457, 600, 605, 00484 444, 453, 457, 597, 600, 605, 447, 595, 605, 457, 00485 596, 599, 600, 605, 457, 600, 605, 457, 600, 605, 00486 442, 600, 605, 463, 600, 605, 462, 595, 605, 459, 00487 463, 596, 599, 600, 605, 463, 597, 600, 605, 463, 00488 598, 600, 605, 463, 600, 605, 463, 600, 605, 463, 00489 00490 600, 605, 463, 596, 599, 600, 605, 460, 463, 598, 00491 600, 605, 451, 457, 596, 599, 600, 605, 453, 457, 00492 597, 600, 605, 457, 600, 605, 452, 457, 600, 605, 00493 437, 457, 600, 605, 179, 600, 605, 181, 595, 605, 00494 179, 600, 605, 179, 596, 599, 600, 605, 179, 597, 00495 600, 605, 179, 598, 600, 605, 179, 600, 605, 179, 00496 600, 605, 594, 600, 605, 594, 600, 605, 594, 596, 00497 599, 600, 605, 594, 597, 600, 605, 594, 598, 600, 00498 605, 600, 605, 594, 600, 605, 600, 605, 593, 595, 00499 605, 596, 599, 600, 605, 597, 600, 605, 598, 600, 00500 00501 605, 600, 605, 5, 600, 605, 6, 600, 605, 3, 00502 600, 605, 4, 600, 605, 295, 600, 605, 294, 295, 00503 600, 605, 294, 595, 605, 295, 596, 599, 600, 605, 00504 295, 597, 600, 605, 295, 598, 600, 605, 295, 600, 00505 605, 293, 295, 600, 605, 292, 295, 600, 605, 519, 00506 600, 605, 520, 600, 605, 521, 600, 605, 522, 600, 00507 605, 290, 600, 605, 289, 596, 599, 600, 605, 290, 00508 597, 600, 605, 290, 598, 600, 605, 290, 600, 605, 00509 287, 600, 605, 288, 600, 605, 301, 600, 605, 300, 00510 595, 605, 301, 596, 599, 600, 605, 301, 597, 600, 00511 00512 605, 301, 598, 600, 605, 301, 600, 605, 600, 605, 00513 319, 600, 605, 318, 600, 605, 318, 600, 605, 318, 00514 600, 605, 169, 600, 605, 167, 595, 605, 169, 596, 00515 599, 600, 605, 169, 597, 600, 605, 169, 598, 600, 00516 605, 169, 600, 605, 168, 169, 600, 605, 171, 600, 00517 605, 171, 596, 599, 600, 605, 171, 597, 600, 605, 00518 171, 598, 600, 605, 171, 600, 605, 171, 600, 605, 00519 534, 536, 600, 605, 529, 536, 600, 605, 529, 595, 00520 605, 534, 536, 596, 599, 600, 605, 534, 536, 597, 00521 600, 605, 534, 536, 598, 600, 605, 536, 600, 605, 00522 00523 536, 600, 605, 536, 600, 605, 534, 536, 600, 605, 00524 600, 605, 70, 600, 605, 69, 600, 605, 600, 605, 00525 600, 605, 550, 600, 605, 551, 595, 605, 550, 596, 00526 599, 600, 605, 550, 597, 600, 605, 550, 598, 600, 00527 605, 550, 600, 605, 550, 600, 605, 550, 600, 605, 00528 550, 600, 605, 550, 600, 605, 543, 550, 600, 605, 00529 544, 550, 600, 605, 177, 600, 605, 178, 595, 605, 00530 177, 596, 599, 600, 605, 177, 597, 600, 605, 177, 00531 598, 600, 605, 177, 600, 605, 600, 605, 600, 605, 00532 186, 600, 605, 186, 596, 599, 600, 605, 186, 597, 00533 00534 600, 605, 186, 598, 600, 605, 186, 600, 605, 185, 00535 186, 600, 605, 421, 600, 605, 421, 600, 605, 421, 00536 596, 599, 600, 605, 421, 597, 600, 605, 421, 600, 00537 605, 421, 598, 600, 605, 418, 421, 600, 605, 421, 00538 600, 605, 418, 421, 600, 605, 419, 421, 600, 605, 00539 420, 421, 600, 605, 212, 216, 600, 605, 215, 595, 00540 605, 214, 216, 596, 599, 600, 605, 212, 216, 597, 00541 600, 605, 212, 216, 598, 600, 605, 212, 216, 600, 00542 605, 600, 605, 43, 600, 605, 45, 600, 605, 54, 00543 600, 605, 44, 600, 605, 55, 600, 605, 46, 600, 00544 00545 605, 46, 595, 605, 46, 596, 599, 600, 605, 46, 00546 597, 600, 605, 46, 598, 600, 605, 47, 600, 605, 00547 46, 600, 605, 600, 605, 51, 600, 605, 600, 605, 00548 48, 600, 605, 49, 600, 605, 52, 600, 605, 52, 00549 595, 605, 52, 596, 599, 600, 605, 52, 597, 600, 00550 605, 52, 598, 600, 605, 53, 600, 605, 52, 600, 00551 605, 466, 600, 605, 66, 600, 605, 600, 605, 600, 00552 605, 600, 605, 600, 605, 600, 605, 600, 605, 68, 00553 600, 605, 147, 600, 605, 600, 605, 144, 600, 605, 00554 148, 600, 605, 148, 600, 605, 148, 600, 605, 600, 00555 00556 605, 149, 600, 605, 145, 600, 605, 600, 605, 600, 00557 605, 600, 605, 600, 605, 600, 605, 155, 600, 605, 00558 600, 605, 156, 600, 605, 218, 600, 605, 218, 600, 00559 605, 210, 595, 605, 202, 218, 596, 599, 600, 605, 00560 218, 597, 600, 605, 208, 218, 598, 600, 605, 199, 00561 206, 218, 600, 605, 207, 218, 600, 605, 201, 218, 00562 600, 605, 218, 600, 605, 218, 600, 605, 201, 218, 00563 600, 605, 206, 218, 600, 605, 207, 218, 600, 605, 00564 218, 600, 605, 218, 600, 605, 206, 218, 600, 605, 00565 200, 206, 218, 600, 605, 600, 605, 595, 605, 600, 00566 00567 605, 600, 605, 600, 605, 172, 600, 605, 600, 605, 00568 595, 605, 600, 605, 600, 605, 321, 600, 605, 600, 00569 605, 321, 600, 605, 322, 600, 605, 320, 600, 605, 00570 323, 600, 605, 324, 600, 605, 140, 600, 605, 140, 00571 596, 599, 600, 605, 140, 597, 600, 605, 140, 598, 00572 600, 605, 140, 600, 605, 134, 140, 600, 605, 136, 00573 140, 600, 605,16522, 331, 600, 605, 331, 600, 605, 00574 595, 605, 331, 600, 605, 331, 596, 599, 600, 605, 00575 331, 597, 600, 605, 331, 600, 605, 331, 598, 600, 00576 605, 331, 600, 605, 331, 600, 605, 330, 331, 600, 00577 00578 605, 335, 600, 605, 333, 595, 605, 335, 596, 599, 00579 600, 605, 335, 597, 600, 605, 335, 598, 600, 605, 00580 334, 335, 600, 605, 335, 600, 605, 339, 600, 605, 00581 341, 600, 605, 600, 605, 356, 391, 600, 605, 359, 00582 391, 600, 605, 359, 390, 595, 605, 360, 391, 596, 00583 599, 600, 605, 391, 597, 600, 605, 389, 391, 598, 00584 600, 605, 361, 391, 600, 605, 362, 391, 600, 605, 00585 391, 600, 605, 391, 600, 605, 379, 391, 600, 605, 00586 380, 391, 600, 605, 166, 600, 605, 165, 595, 605, 00587 166, 596, 599, 600, 605, 166, 597, 600, 605, 166, 00588 00589 598, 600, 605, 166, 600, 605, 164, 166, 600, 605, 00590 600, 605, 120, 600, 605, 600, 605, 122, 600, 605, 00591 121, 600, 605, 224, 600, 605, 223, 595, 605, 220, 00592 224, 596, 599, 600, 605, 224, 597, 600, 605, 224, 00593 598, 600, 605, 224, 600, 605, 224, 600, 605, 224, 00594 600, 605, 224, 596, 599, 600, 605, 221, 224, 598, 00595 600, 605, 230, 600, 605, 229, 595, 605, 226, 230, 00596 596, 599, 600, 605, 230, 597, 600, 605, 230, 598, 00597 600, 605, 230, 600, 605, 230, 600, 605, 230, 600, 00598 605, 230, 596, 599, 600, 605, 227, 230, 598, 600, 00599 00600 605, 237, 238, 600, 605, 234, 595, 605, 231, 238, 00601 596, 599, 600, 605, 237, 238, 597, 600, 605, 235, 00602 238, 598, 600, 605, 232, 238, 600, 605, 233, 238, 00603 600, 605, 237, 238, 600, 605, 252, 255, 600, 605, 00604 254, 595, 605, 247, 255, 596, 599, 600, 605, 252, 00605 255, 597, 600, 605, 248, 255, 598, 600, 605, 253, 00606 255, 600, 605, 249, 255, 600, 605, 250, 255, 600, 00607 605, 245, 246, 600, 605, 242, 595, 605, 239, 246, 00608 596, 599, 600, 605, 245, 246, 597, 600, 605, 243, 00609 246, 598, 600, 605, 240, 246, 600, 605, 241, 246, 00610 00611 600, 605, 245, 246, 600, 605, 263, 266, 600, 605, 00612 265, 595, 605, 258, 266, 596, 599, 600, 605, 263, 00613 266, 597, 600, 605, 259, 266, 598, 600, 605, 264, 00614 266, 600, 605, 260, 266, 600, 605, 261, 266, 600, 00615 605, 263, 266, 597, 600, 605, 528, 600, 605, 528, 00616 600, 605, 527, 595, 605, 528, 596, 599, 600, 605, 00617 528, 597, 600, 605, 528, 598, 600, 605, 525, 528, 00618 600, 605, 526, 528, 600, 605, 528, 600, 605, 518, 00619 600, 605, 512, 518, 600, 605, 512, 595, 605, 518, 00620 596, 599, 600, 605, 518, 597, 600, 605, 518, 598, 00621 00622 600, 605, 516, 518, 600, 605, 517, 518, 600, 605, 00623 518, 600, 605, 510, 518, 600, 605, 511, 518, 600, 00624 605, 518, 600, 605, 415, 600, 605, 416, 595, 605, 00625 411, 415, 596, 599, 600, 605, 415, 597, 600, 605, 00626 415, 600, 605, 412, 415, 598, 600, 605, 415, 600, 00627 605, 410, 415, 600, 605, 414, 415, 600, 605, 342, 00628 422, 600, 605, 343, 422, 600, 605, 347, 600, 605, 00629 347, 596, 599, 600, 605, 347, 597, 600, 605, 347, 00630 598, 600, 605, 347, 600, 605, 347, 600, 605, 352, 00631 600, 605, 351, 352, 600, 605, 351, 595, 605, 352, 00632 00633 596, 599, 600, 605, 352, 597, 600, 605, 352, 598, 00634 600, 605, 348, 352, 600, 605, 349, 352, 600, 605, 00635 350, 352, 600, 605, 352, 600, 605, 284, 286, 600, 00636 605, 357, 391, 600, 605, 390, 595, 605, 386, 391, 00637 596, 599, 600, 605, 357, 391, 597, 600, 605, 391, 00638 598, 600, 605, 357, 391, 600, 605, 391, 600, 605, 00639 391, 596, 599, 600, 605, 387, 391, 598, 600, 605, 00640 358, 391, 600, 605, 358, 391, 597, 600, 605, 381, 00641 391, 600, 605, 382, 391, 600, 605, 391, 600, 605, 00642 383, 391, 600, 605, 384, 391, 600, 605, 368, 377, 00643 00644 600, 605, 376, 595, 605, 368, 377, 596, 599, 600, 00645 605, 368, 377, 597, 600, 605, 368, 377, 598, 600, 00646 605, 377, 600, 605, 368, 377, 600, 605, 377, 600, 00647 605, 368, 377, 600, 605, 377, 600, 605,16751, 374, 00648 375, 600, 605, 370, 595, 605, 374, 375, 596, 599, 00649 600, 605, 374, 375, 597, 600, 605, 374, 375, 598, 00650 600, 605, 374, 375, 600, 605, 375, 600, 605, 377, 00651 600, 605, 377, 596, 599, 600, 605, 377, 597, 600, 00652 605, 377, 598, 600, 605, 377, 600, 605, 377, 600, 00653 605, 274, 600, 605, 274, 596, 599, 600, 605, 274, 00654 00655 597, 600, 605, 274, 598, 600, 605, 274, 600, 605, 00656 271, 274, 600, 605, 274, 600, 605, 282, 600, 605, 00657 282, 600, 605, 595, 605, 282, 596, 599, 600, 605, 00658 282, 597, 600, 605, 282, 600, 605, 282, 598, 600, 00659 605, 282, 600, 605, 281, 282, 600, 605, 278, 282, 00660 600, 605, 282, 600, 605, 600, 605, 595, 605, 600, 00661 605, 275, 600, 605, 591, 600, 605, 591, 596, 599, 00662 600, 605, 591, 597, 600, 605, 591, 598, 600, 605, 00663 577, 591, 600, 605, 591, 600, 605, 591, 600, 605, 00664 582, 600, 605, 582, 600, 605, 595, 605, 582, 600, 00665 00666 605, 582, 596, 599, 600, 605, 582, 597, 600, 605, 00667 582, 600, 605, 582, 598, 600, 605, 580, 582, 600, 00668 605, 581, 582, 600, 605, 582, 600, 605, 582, 600, 00669 605, 579, 582, 600, 605, 590, 600, 605, 590, 600, 00670 605, 590, 596, 599, 600, 605, 590, 597, 600, 605, 00671 590, 598, 600, 605, 590, 600, 605, 590, 600, 605, 00672 590, 600, 605, 590, 600, 605, 590, 600, 605, 583, 00673 590, 600, 605, 589, 600, 605, 589, 596, 599, 600, 00674 605, 589, 597, 600, 605, 589, 598, 600, 605, 588, 00675 589, 600, 605, 589, 600, 605, 592, 600, 605, 592, 00676 00677 596, 599, 600, 605, 592, 597, 600, 605, 592, 598, 00678 600, 605, 592, 600, 605, 600, 605, 553, 595, 605, 00679 596, 599, 600, 605, 597, 600, 605, 598, 600, 605, 00680 600, 605, 564, 566, 600, 605, 564, 566, 600, 605, 00681 565, 595, 605, 564, 566, 596, 599, 600, 605, 564, 00682 566, 597, 600, 605, 564, 566, 598, 600, 605, 566, 00683 600, 605, 566, 600, 605, 564, 566, 600, 605, 566, 00684 600, 605, 566, 600, 605, 564, 566, 600, 605, 566, 00685 600, 605, 566, 600, 605, 572, 575, 600, 605, 574, 00686 595, 605, 572, 575, 596, 599, 600, 605, 572, 575, 00687 00688 597, 600, 605, 575, 600, 605, 572, 575, 598, 600, 00689 605, 575, 600, 605, 575, 600, 605, 575, 600, 605, 00690 575, 600, 605, 572, 575, 600, 605, 575, 600, 605, 00691 16955, 602, 604, 183, 182, 183, 602, 604, 187, 497, 00692 472, 472, 473, 473, 471, 472, 473, 470, 465, 497, 00693 472, 473, 506, 477, 496, 602, 604, 474, 477, 477, 00694 477, 483, 602, 604, 483, 485, 485, 485, 488, 488, 00695 36, 31, 31, 406, 406, 504, 505, 504, 505, 524, 00696 506, 504, 505, 524, 56, 56, 173, 158, 158, 192, 00697 329, 42, 602, 604, 159, 161, 17, 67, 67, 67, 00698 00699 67, 67, 67, 158, 131, 158, 158, 158, 158, 158, 00700 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00701 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00702 158, 158, 158, 158, 158, 158, 158, 14, 14, 602, 00703 14, 604, 13, 158, 158, 158, 132, 296, 602, 604, 00704 296, 403, 402, 402, 403, 417, 602, 604, 401, 417, 00705 417, 417, 417, 417, 417, 417, 417, 417, 417, 116, 00706 304, 304, 325, 325, 306, 306, 309, 602, 305, 604, 00707 307, 127, 127, 127, 127, 128, 128, 128, 446, 446, 00708 449, 602, 450, 604, 454, 446, 444, 449, 602, 450, 00709 00710 604, 448, 461, 461, 602, 461, 604, 458, 450, 604, 00711 181, 181, 180, 594, 594, 603, 601, 602, 594, 601, 00712 604, 593, 602, 604, 294, 290, 290, 602, 290, 604, 00713 301, 301, 602, 301, 604, 318, 318, 318, 318, 534, 00714 529, 535, 530, 602, 531, 604, 534, 534, 534, 69, 00715 69, 176, 419, 602, 604, 419, 212, 213, 212, 602, 00716 212, 604, 44, 45, 44, 46, 46, 602, 46, 604, 00717 49, 49, 49, 48, 52, 53, 52, 602, 52, 604, 00718 147, 148, 148, 148, 148, 149, 149, 155, 155, 156, 00719 156, 203, 602, 604, 204, 205, 217, 211, 354, 162, 00720 00721 320, 320, 320, 133,16522, 137, 135, 330, 330, 330, 00722 337, 336, 338, 340, 356, 359, 364, 602, 365, 604, 00723 163, 120, 120, 121, 121, 222, 222, 602, 222, 604, 00724 219, 228, 228, 602, 228, 604, 225, 237, 237, 602, 00725 237, 604, 252, 245, 245, 602, 245, 604, 263, 263, 00726 525, 512, 513, 514, 414, 414, 344, 345, 346, 351, 00727 350, 350, 357, 357, 602, 357, 604, 385, 358, 368, 00728 369, 368, 604, 368,16751, 8559, 374, 374, 602, 374, 00729 604, 278, 280, 279, 278, 277, 275, 275, 275, 276, 00730 275, 578, 579, 579, 579, 586, 553, 602, 604, 564, 00731 00732 564, 564, 554, 558, 602, 557, 604, 564, 564, 564, 00733 555, 555, 556, 557, 604, 572, 573, 573, 602, 573, 00734 604, 572,16955, 8763, 472, 472, 473, 473, 472, 473, 00735 494, 537, 495, 539, 477, 477, 479, 485, 485, 32, 00736 504, 505, 504, 505, 8, 56, 56, 158, 329, 537, 00737 539, 159, 57, 67, 67, 67, 67, 67, 67, 67, 00738 67, 130, 158, 158, 158, 158, 158, 158, 158, 158, 00739 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00740 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00741 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00742 00743 158, 158, 158, 158, 158, 158, 537, 539, 537, 539, 00744 401, 417, 417, 398, 417, 417, 417, 417, 417, 417, 00745 417, 113, 306, 312, 309, 310, 305, 127, 127, 128, 00746 455, 448, 180, 318, 318, 534, 534, 534, 69, 123, 00747 124, 547, 546, 545, 190, 537, 539, 55, 148, 148, 00748 148, 209, 320, 8330, 139, 330, 332, 388, 363, 236, 00749 251, 244, 262, 263, 413, 372, 280, 277, 275, 275, 00750 579, 586, 564, 564, 560, 555, 556, 556, 569, 195, 00751 472, 473, 493, 538, 492, 540, 492, 540, 507, 477, 00752 477, 479, 485, 485, 467, 504, 505, 504, 505, 8, 00753 00754 56, 56, 328, 538, 538, 538, 196, 540, 540, 540, 00755 540, 197, 67, 67, 67, 67, 67, 67, 67, 67, 00756 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00757 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00758 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00759 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00760 158, 158, 158, 195, 538, 195, 540, 398, 417, 417, 00761 398, 417, 417, 417, 417, 423, 417, 306, 312, 127, 00762 127, 455, 318, 318, 534, 534, 534, 69, 124, 190, 00763 50, 64, 148, 148, 150, 209, 8330, 388, 363, 236, 00764 00765 251, 244, 262, 263, 413, 373, 552, 564, 564, 559, 00766 477, 477, 484, 485, 467, 467, 504, 505, 194, 193, 00767 56, 56, 175, 353, 197, 12, 67, 67, 67, 67, 00768 67, 67, 67, 67, 158, 158, 158, 158, 158, 158, 00769 158, 158, 158, 158, 18, 18, 18, 18, 131, 111, 00770 110, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00771 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00772 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00773 158, 158, 158, 13, 417, 399, 417, 417, 417, 417, 00774 417, 417, 112, 175, 306, 326, 127, 440, 441, 318, 00775 00776 318, 170, 532, 534, 534, 534, 534, 549, 146, 148, 00777 148, 151, 366, 371, 584, 561, 564, 564, 562, 477, 00778 477,16860, 467, 504, 505, 56, 56, 111, 197, 67, 00779 90, 67, 67, 67, 67, 67, 67, 67, 67, 158, 00780 158, 158, 158, 158, 92, 91, 158, 158, 158, 29, 00781 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00782 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 00783 158, 158, 158, 158,16485, 158, 158, 158, 109, 108, 00784 125, 158, 158, 158, 399, 417, 399, 417, 417, 397, 00785 417, 424, 417, 417, 127, 317, 318, 534, 534, 534, 00786 00787 548, 62, 63, 148, 584, 587, 563, 564, 567, 477, 00788 8668, 8668, 504, 505, 499, 56, 56, 92, 29,16485, 00789 109, 174, 67, 67, 67, 67, 67, 67, 67, 67, 00790 158, 158, 158, 158, 158, 158, 158, 158, 158, 73, 00791 158, 158, 158, 76, 158, 158, 20, 158, 158, 83, 00792 158, 158, 158, 158, 158, 25, 158, 158, 158, 158, 00793 72, 8293, 100, 158, 158, 158, 158, 158, 158, 397, 00794 417, 417, 425, 397, 426, 417, 127, 318, 534, 534, 00795 534, 148, 152, 378, 273, 272, 568, 504, 505, 501, 00796 498, 56, 56, 73, 76, 20, 83, 25, 72, 8293, 00797 00798 67, 67, 67, 67, 67, 67, 41, 67, 142, 158, 00799 158, 158, 158, 158, 99, 141, 158, 158, 158, 8310, 00800 131,16502, 158, 158, 158, 158, 20, 84, 77, 158, 00801 28, 158, 158, 158, 158, 158, 25, 158, 158, 158, 00802 21, 158, 158, 74, 395, 417, 396, 417, 400, 417, 00803 127, 533, 534, 534, 534, 58, 65, 60, 59, 152, 00804 585, 570, 504, 505, 56, 56, 41, 99, 84, 77, 00805 28, 21, 74, 67, 67, 67, 39, 67, 67, 67, 00806 158, 158, 75, 158, 158, 78, 541, 8310, 130, 158, 00807 71, 158, 26, 158, 28, 158, 158, 158, 30, 38, 00808 00809 158, 158, 158, 158, 21, 81, 158, 395, 396, 400, 00810 395, 396, 400, 127, 534, 58, 61, 59, 256, 257, 00811 515, 585, 504, 505, 500, 56, 56, 39, 75, 78, 00812 71, 26, 30, 38, 81, 67, 67, 80, 67, 88, 00813 79, 143, 158, 158, 158, 89, 541, 541, 158, 85, 00814 85, 26, 82, 82,16503, 82, 82, 131, 158, 158, 00815 158, 27, 158, 158, 158, 158, 96, 95, 158, 316, 00816 126, 127, 534, 256, 256, 257, 257, 576, 504, 505, 00817 523, 56, 56, 80, 88, 79, 89, 85, 85, 82, 00818 27, 67, 87, 40, 158, 111, 158, 82, 158, 158, 00819 00820 19, 27, 158, 158, 158, 158, 105, 104, 158, 534, 00821 523, 56, 56, 87, 40, 19, 67, 158, 8311, 158, 00822 158, 19, 158, 158, 158, 22, 94, 93, 154, 153, 00823 56, 56, 22, 67, 157, 158, 24, 158, 158, 22, 00824 103, 102, 154, 153, 56, 56, 24, 67, 24, 158, 00825 158, 56, 56, 67, 158, 23, 56, 56, 23, 86, 00826 98, 97, 23, 56, 56, 86, 107, 106, 56, 56, 00827 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00828 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00829 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00830 00831 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00832 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00833 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00834 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00835 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00836 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00837 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00838 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00839 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00840 56, 56, 56, 56 00841 00842 } ; 00843 00844 static yyconst flex_int16_t yy_accept[3551] = 00845 { 0, 00846 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00847 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 00848 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 00849 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 00850 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 00851 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 00852 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 00853 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 00854 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 00855 9, 9, 9, 9, 9, 9, 9, 10, 11, 11, 00856 00857 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 00858 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 00859 11, 11, 11, 11, 11, 12, 13, 13, 13, 14, 00860 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 00861 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 00862 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 00863 15, 15, 15, 15, 15, 15, 15, 16, 17, 18, 00864 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 00865 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 00866 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 00867 00868 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 00869 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 00870 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 00871 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 00872 19, 19, 19, 20, 22, 24, 28, 31, 34, 36, 00873 38, 41, 44, 47, 50, 56, 60, 64, 67, 70, 00874 72, 74, 76, 78, 80, 82, 84, 87, 91, 94, 00875 96, 98, 101, 103, 105, 107, 110, 113, 115, 118, 00876 120, 123, 126, 128, 131, 134, 137, 140, 143, 148, 00877 153, 156, 160, 163, 167, 171, 174, 178, 182, 186, 00878 00879 188, 191, 194, 197, 202, 206, 210, 213, 217, 221, 00880 224, 228, 231, 236, 240, 243, 247, 250, 254, 258, 00881 261, 265, 268, 271, 276, 280, 283, 287, 290, 294, 00882 298, 300, 303, 305, 307, 310, 312, 315, 319, 322, 00883 325, 329, 332, 337, 341, 345, 348, 351, 354, 359, 00884 363, 366, 369, 372, 375, 378, 383, 387, 391, 395, 00885 398, 402, 405, 408, 411, 413, 417, 419, 422, 425, 00886 428, 431, 434, 437, 439, 441, 444, 447, 450, 453, 00887 455, 457, 460, 463, 466, 469, 472, 475, 478, 481, 00888 484, 487, 490, 493, 496, 499, 502, 505, 508, 511, 00889 00890 514, 517, 520, 523, 527, 530, 536, 541, 546, 550, 00891 553, 555, 557, 559, 561, 563, 566, 568, 570, 572, 00892 575, 578, 580, 583, 586, 589, 592, 594, 598, 601, 00893 604, 607, 610, 613, 617, 620, 625, 630, 634, 638, 00894 642, 646, 649, 652, 657, 661, 665, 669, 673, 676, 00895 679, 682, 687, 691, 695, 698, 702, 706, 710, 713, 00896 716, 720, 723, 727, 731, 735, 739, 743, 747, 751, 00897 755, 759, 763, 766, 769, 774, 778, 782, 785, 788, 00898 792, 795, 798, 803, 807, 811, 814, 818, 822, 826, 00899 831, 834, 838, 844, 849, 854, 857, 860, 864, 868, 00900 00901 872, 875, 879, 881, 884, 887, 890, 892, 894, 896, 00902 898, 900, 903, 907, 911, 914, 920, 925, 930, 933, 00903 936, 939, 943, 947, 951, 957, 960, 965, 968, 971, 00904 974, 977, 980, 986, 990, 994, 997, 1000, 1003, 1008, 00905 1013, 1019, 1024, 1027, 1031, 1035, 1038, 1041, 1044, 1049, 00906 1053, 1057, 1060, 1063, 1066, 1069, 1074, 1078, 1082, 1084, 00907 1087, 1089, 1092, 1096, 1099, 1102, 1104, 1107, 1110, 1113, 00908 1116, 1119, 1123, 1126, 1131, 1135, 1139, 1142, 1146, 1150, 00909 1153, 1156, 1159, 1162, 1165, 1170, 1174, 1178, 1181, 1184, 00910 1187, 1190, 1193, 1198, 1202, 1206, 1209, 1211, 1214, 1217, 00911 00912 1220, 1223, 1226, 1229, 1234, 1238, 1242, 1245, 1249, 1252, 00913 1257, 1261, 1265, 1268, 1271, 1275, 1279, 1282, 1288, 1293, 00914 1298, 1301, 1304, 1307, 1311, 1313, 1316, 1319, 1321, 1323, 00915 1326, 1329, 1334, 1338, 1342, 1345, 1348, 1351, 1354, 1357, 00916 1361, 1365, 1368, 1371, 1376, 1380, 1384, 1387, 1389, 1391, 00917 1394, 1399, 1403, 1407, 1410, 1414, 1417, 1420, 1425, 1429, 00918 1432, 1436, 1440, 1443, 1447, 1451, 1455, 1459, 1462, 1468, 00919 1473, 1478, 1482, 1484, 1487, 1490, 1493, 1496, 1499, 1502, 00920 1505, 1510, 1514, 1518, 1521, 1524, 1526, 1529, 1531, 1534, 00921 1537, 1540, 1543, 1548, 1552, 1556, 1559, 1562, 1565, 1568, 00922 00923 1570, 1572, 1574, 1576, 1578, 1580, 1583, 1586, 1588, 1591, 00924 1594, 1597, 1600, 1602, 1605, 1608, 1610, 1612, 1614, 1616, 00925 1618, 1621, 1623, 1626, 1629, 1632, 1635, 1641, 1645, 1650, 00926 1655, 1659, 1663, 1666, 1669, 1673, 1677, 1681, 1684, 1687, 00927 1691, 1696, 1698, 1700, 1702, 1704, 1706, 1709, 1711, 1713, 00928 1715, 1717, 1720, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 00929 1745, 1749, 1753, 1756, 1760, 1765, 1768, 1771, 1773, 1776, 00930 1781, 1785, 1788, 1792, 1795, 1798, 1802, 1805, 1808, 1813, 00931 1817, 1821, 1825, 1828, 1831, 1834, 1836, 1840, 1844, 1848, 00932 1854, 1858, 1863, 1867, 1871, 1874, 1877, 1881, 1885, 1888, 00933 00934 1891, 1896, 1900, 1904, 1907, 1911, 1913, 1916, 1918, 1921, 00935 1924, 1927, 1930, 1936, 1940, 1944, 1947, 1950, 1953, 1958, 00936 1963, 1966, 1969, 1975, 1979, 1983, 1986, 1989, 1992, 1997, 00937 2002, 2006, 2009, 2015, 2020, 2025, 2029, 2033, 2037, 2041, 00938 2044, 2050, 2055, 2060, 2064, 2068, 2072, 2076, 2079, 2085, 00939 2090, 2095, 2099, 2103, 2107, 2111, 2114, 2120, 2125, 2130, 00940 2134, 2138, 2142, 2147, 2150, 2153, 2156, 2161, 2165, 2169, 00941 2173, 2177, 2180, 2183, 2187, 2190, 2195, 2199, 2203, 2207, 00942 2211, 2214, 2218, 2222, 2225, 2228, 2231, 2237, 2241, 2244, 00943 2249, 2252, 2256, 2260, 2264, 2268, 2271, 2276, 2280, 2284, 00944 00945 2287, 2290, 2293, 2297, 2300, 2305, 2309, 2313, 2317, 2321, 00946 2325, 2328, 2332, 2336, 2339, 2345, 2350, 2354, 2358, 2361, 00947 2366, 2371, 2375, 2380, 2384, 2388, 2391, 2395, 2399, 2403, 00948 2406, 2412, 2417, 2422, 2425, 2429, 2432, 2436, 2440, 2444, 00949 2447, 2453, 2458, 2463, 2467, 2470, 2473, 2478, 2482, 2486, 00950 2489, 2492, 2495, 2500, 2504, 2508, 2511, 2515, 2518, 2521, 00951 2524, 2526, 2531, 2535, 2538, 2542, 2545, 2549, 2553, 2556, 00952 2558, 2560, 2562, 2565, 2568, 2573, 2577, 2581, 2585, 2588, 00953 2591, 2594, 2597, 2599, 2602, 2607, 2611, 2614, 2618, 2622, 00954 2626, 2629, 2632, 2636, 2639, 2642, 2647, 2651, 2655, 2658, 00955 00956 2661, 2664, 2667, 2670, 2674, 2677, 2682, 2686, 2690, 2694, 00957 2697, 2700, 2705, 2709, 2713, 2716, 2718, 2721, 2725, 2728, 00958 2731, 2733, 2737, 2741, 2744, 2750, 2755, 2760, 2763, 2766, 00959 2770, 2773, 2776, 2780, 2783, 2786, 2790, 2793, 2799, 2804, 00960 2807, 2812, 2815, 2818, 2821, 2824, 2828, 2832, 2833, 2834, 00961 2835, 2835, 2836, 2837, 2837, 2837, 2838, 2839, 2840, 2840, 00962 2840, 2840, 2840, 2840, 2841, 2841, 2841, 2842, 2842, 2842, 00963 2842, 2844, 2844, 2844, 2845, 2845, 2845, 2845, 2846, 2848, 00964 2849, 2850, 2851, 2851, 2851, 2853, 2853, 2853, 2853, 2854, 00965 2854, 2854, 2854, 2854, 2854, 2855, 2856, 2857, 2858, 2858, 00966 00967 2858, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 00968 2867, 2867, 2867, 2868, 2868, 2869, 2870, 2871, 2871, 2871, 00969 2872, 2873, 2874, 2874, 2874, 2875, 2876, 2876, 2876, 2876, 00970 2878, 2880, 2881, 2882, 2882, 2882, 2882, 2884, 2884, 2885, 00971 2885, 2885, 2885, 2885, 2885, 2885, 2885, 2885, 2885, 2886, 00972 2887, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 00973 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 00974 2888, 2888, 2888, 2888, 2889, 2889, 2889, 2889, 2889, 2889, 00975 2890, 2891, 2891, 2891, 2892, 2892, 2893, 2894, 2895, 2895, 00976 2896, 2897, 2897, 2898, 2898, 2899, 2900, 2901, 2902, 2903, 00977 00978 2904, 2904, 2905, 2906, 2907, 2907, 2907, 2908, 2909, 2910, 00979 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 00980 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 00981 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2941, 00982 2943, 2944, 2944, 2944, 2944, 2944, 2945, 2945, 2945, 2946, 00983 2946, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 00984 2955, 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2956, 00985 2956, 2957, 2958, 2959, 2959, 2960, 2961, 2962, 2963, 2964, 00986 2965, 2966, 2967, 2968, 2969, 2970, 2970, 2970, 2971, 2972, 00987 2974, 2975, 2975, 2976, 2977, 2977, 2977, 2979, 2981, 2982, 00988 00989 2982, 2982, 2983, 2984, 2984, 2985, 2985, 2986, 2986, 2986, 00990 2986, 2986, 2987, 2987, 2987, 2988, 2988, 2989, 2990, 2991, 00991 2991, 2991, 2991, 2993, 2995, 2996, 2996, 2996, 2997, 2998, 00992 3000, 3002, 3003, 3003, 3003, 3003, 3004, 3006, 3008, 3009, 00993 3011, 3012, 3013, 3013, 3014, 3014, 3015, 3016, 3016, 3017, 00994 3019, 3022, 3022, 3023, 3024, 3025, 3026, 3027, 3029, 3031, 00995 3032, 3034, 3036, 3037, 3038, 3039, 3040, 3040, 3041, 3042, 00996 3043, 3045, 3047, 3048, 3049, 3050, 3051, 3051, 3052, 3052, 00997 3052, 3052, 3052, 3052, 3052, 3052, 3052, 3052, 3052, 3053, 00998 3053, 3053, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3061, 00999 01000 3063, 3064, 3065, 3065, 3066, 3067, 3069, 3071, 3072, 3072, 01001 3072, 3073, 3074, 3075, 3076, 3077, 3079, 3081, 3081, 3081, 01002 3081, 3081, 3081, 3081, 3082, 3083, 3084, 3084, 3084, 3085, 01003 3086, 3087, 3088, 3088, 3088, 3088, 3088, 3089, 3090, 3091, 01004 3092, 3092, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 01005 3099, 3099, 3099, 3099, 3100, 3100, 3100, 3101, 3101, 3101, 01006 3101, 3102, 3103, 3104, 3104, 3105, 3106, 3107, 3107, 3108, 01007 3108, 3108, 3108, 3108, 3109, 3109, 3109, 3110, 3110, 3111, 01008 3111, 3111, 3111, 3112, 3113, 3114, 3114, 3115, 3116, 3117, 01009 3117, 3117, 3117, 3117, 3119, 3121, 3122, 3123, 3124, 3125, 01010 01011 3126, 3126, 3127, 3129, 3131, 3132, 3133, 3135, 3137, 3138, 01012 3139, 3139, 3139, 3141, 3143, 3144, 3144, 3144, 3145, 3145, 01013 3145, 3147, 3149, 3150, 3150, 3150, 3151, 3151, 3152, 3153, 01014 3154, 3155, 3155, 3156, 3156, 3156, 3157, 3157, 3158, 3159, 01015 3160, 3161, 3162, 3163, 3164, 3166, 3168, 3169, 3170, 3171, 01016 3172, 3174, 3174, 3174, 3175, 3176, 3177, 3178, 3180, 3182, 01017 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 01018 3182, 3182, 3182, 3182, 3182, 3183, 3183, 3184, 3185, 3186, 01019 3186, 3187, 3187, 3187, 3188, 3189, 3190, 3191, 3192, 3192, 01020 3192, 3193, 3193, 3193, 3193, 3193, 3193, 3193, 3194, 3194, 01021 01022 3194, 3195, 3195, 3196, 3196, 3196, 3196, 3196, 3196, 3197, 01023 3197, 3197, 3197, 3197, 3198, 3198, 3198, 3199, 3200, 3201, 01024 3202, 3203, 3203, 3204, 3206, 3208, 3209, 3210, 3210, 3210, 01025 3210, 3210, 3210, 3210, 3210, 3210, 3210, 3211, 3211, 3211, 01026 3212, 3213, 3216, 3217, 3218, 3220, 3222, 3222, 3222, 3222, 01027 3223, 3224, 3225, 3225, 3225, 3225, 3225, 3226, 3227, 3227, 01028 3228, 3228, 3228, 3229, 3229, 3231, 3231, 3231, 3231, 3233, 01029 3233, 3233, 3235, 3235, 3235, 3235, 3236, 3237, 3238, 3239, 01030 3239, 3239, 3239, 3240, 3240, 3240, 3241, 3243, 3243, 3243, 01031 3244, 3244, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3246, 01032 01033 3246, 3246, 3246, 3246, 3246, 3246, 3247, 3248, 3248, 3248, 01034 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 01035 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 01036 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 3248, 01037 3249, 3249, 3249, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 01038 3250, 3250, 3251, 3251, 3251, 3251, 3252, 3252, 3252, 3253, 01039 3253, 3253, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 01040 3261, 3262, 3263, 3264, 3265, 3266, 3266, 3266, 3267, 3268, 01041 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 01042 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3288, 01043 01044 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 01045 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3306, 3306, 01046 3307, 3307, 3308, 3308, 3309, 3309, 3309, 3309, 3309, 3309, 01047 3309, 3309, 3309, 3309, 3309, 3310, 3310, 3310, 3311, 3311, 01048 3312, 3313, 3314, 3316, 3317, 3318, 3319, 3320, 3321, 3322, 01049 3322, 3323, 3323, 3324, 3324, 3325, 3325, 3325, 3326, 3327, 01050 3327, 3328, 3328, 3328, 3328, 3328, 3329, 3330, 3331, 3331, 01051 3331, 3332, 3332, 3332, 3332, 3332, 3333, 3333, 3333, 3333, 01052 3334, 3335, 3336, 3336, 3337, 3338, 3339, 3339, 3340, 3340, 01053 3340, 3341, 3342, 3343, 3344, 3344, 3344, 3345, 3345, 3346, 01054 01055 3347, 3347, 3348, 3348, 3349, 3349, 3349, 3349, 3349, 3349, 01056 3349, 3349, 3349, 3349, 3349, 3350, 3351, 3352, 3352, 3352, 01057 3352, 3352, 3352, 3352, 3353, 3353, 3353, 3353, 3353, 3353, 01058 3353, 3353, 3353, 3353, 3354, 3354, 3354, 3355, 3355, 3356, 01059 3357, 3357, 3357, 3358, 3358, 3359, 3359, 3359, 3359, 3359, 01060 3360, 3360, 3360, 3361, 3361, 3361, 3361, 3362, 3362, 3362, 01061 3362, 3363, 3363, 3363, 3363, 3364, 3364, 3364, 3365, 3365, 01062 3365, 3366, 3366, 3366, 3366, 3366, 3366, 3366, 3367, 3367, 01063 3367, 3367, 3367, 3367, 3367, 3367, 3367, 3367, 3368, 3369, 01064 3370, 3371, 3371, 3371, 3371, 3372, 3372, 3373, 3373, 3373, 01065 01066 3373, 3373, 3374, 3375, 3375, 3375, 3375, 3375, 3376, 3376, 01067 3376, 3376, 3376, 3376, 3377, 3378, 3379, 3379, 3379, 3379, 01068 3380, 3381, 3381, 3382, 3383, 3383, 3385, 3385, 3387, 3389, 01069 3390, 3391, 3392, 3393, 3393, 3394, 3395, 3395, 3395, 3395, 01070 3395, 3396, 3398, 3399, 3400, 3400, 3400, 3400, 3400, 3400, 01071 3400, 3401, 3401, 3401, 3401, 3402, 3403, 3403, 3403, 3403, 01072 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 01073 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 01074 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 01075 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 01076 01077 3403, 3403, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 3404, 01078 3405, 3406, 3407, 3408, 3408, 3408, 3409, 3410, 3411, 3412, 01079 3413, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 01080 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431, 01081 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 01082 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 01083 3452, 3453, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 01084 3461, 3462, 3463, 3464, 3464, 3466, 3468, 3468, 3468, 3469, 01085 3469, 3469, 3469, 3469, 3469, 3469, 3470, 3471, 3472, 3473, 01086 3474, 3475, 3476, 3477, 3478, 3478, 3478, 3479, 3479, 3480, 01087 01088 3480, 3480, 3480, 3480, 3481, 3482, 3482, 3483, 3483, 3483, 01089 3483, 3483, 3484, 3485, 3485, 3486, 3487, 3488, 3489, 3490, 01090 3490, 3490, 3491, 3492, 3492, 3493, 3493, 3493, 3493, 3493, 01091 3493, 3493, 3494, 3495, 3495, 3496, 3496, 3496, 3496, 3496, 01092 3497, 3497, 3498, 3498, 3498, 3498, 3498, 3499, 3499, 3499, 01093 3500, 3500, 3500, 3501, 3501, 3501, 3502, 3502, 3502, 3503, 01094 3503, 3503, 3504, 3504, 3505, 3505, 3505, 3506, 3506, 3506, 01095 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3506, 3507, 01096 3507, 3507, 3507, 3507, 3507, 3507, 3508, 3509, 3510, 3511, 01097 3511, 3511, 3511, 3511, 3511, 3511, 3511, 3511, 3511, 3511, 01098 01099 3511, 3511, 3512, 3513, 3515, 3515, 3515, 3516, 3516, 3516, 01100 3516, 3517, 3519, 3519, 3519, 3519, 3519, 3519, 3519, 3520, 01101 3521, 3522, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 01102 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 01103 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 01104 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 01105 3523, 3523, 3523, 3523, 3524, 3524, 3524, 3524, 3524, 3524, 01106 3525, 3525, 3525, 3525, 3525, 3525, 3525, 3525, 3526, 3527, 01107 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 01108 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 01109 01110 3548, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3558, 01111 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3568, 01112 3569, 3570, 3571, 3572, 3572, 3572, 3573, 3574, 3575, 3576, 01113 3577, 3578, 3579, 3580, 3581, 3582, 3583, 3584, 3585, 3585, 01114 3585, 3585, 3585, 3585, 3585, 3585, 3586, 3588, 3589, 3590, 01115 3591, 3592, 3593, 3593, 3594, 3596, 3596, 3596, 3596, 3597, 01116 3598, 3598, 3598, 3599, 3600, 3601, 3602, 3603, 3605, 3606, 01117 3607, 3608, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 01118 3609, 3611, 3612, 3612, 3612, 3612, 3613, 3613, 3613, 3613, 01119 3613, 3613, 3614, 3614, 3614, 3614, 3614, 3614, 3614, 3614, 01120 01121 3614, 3614, 3614, 3614, 3614, 3614, 3614, 3615, 3615, 3615, 01122 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 01123 3615, 3615, 3616, 3616, 3616, 3618, 3619, 3620, 3620, 3620, 01124 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 3620, 01125 3620, 3621, 3623, 3624, 3624, 3626, 3626, 3626, 3626, 3626, 01126 3627, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 3628, 01127 3628, 3628, 3628, 3628, 3628, 3628, 3629, 3629, 3629, 3629, 01128 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 01129 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 01130 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3629, 3630, 3632, 01131 01132 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 01133 3643, 3644, 3645, 3646, 3647, 3648, 3648, 3649, 3650, 3650, 01134 3650, 3651, 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659, 01135 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668, 3669, 01136 3670, 3671, 3671, 3671, 3672, 3673, 3674, 3676, 3677, 3678, 01137 3679, 3680, 3681, 3682, 3682, 3683, 3684, 3685, 3685, 3686, 01138 3686, 3686, 3686, 3686, 3686, 3687, 3688, 3689, 3690, 3692, 01139 3692, 3693, 3694, 3695, 3695, 3696, 3697, 3698, 3699, 3700, 01140 3701, 3702, 3703, 3703, 3703, 3703, 3703, 3704, 3704, 3705, 01141 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 01142 01143 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 3705, 01144 3706, 3706, 3707, 3707, 3709, 3709, 3709, 3709, 3709, 3709, 01145 3709, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3711, 3711, 01146 3712, 3713, 3715, 3715, 3715, 3716, 3716, 3717, 3718, 3718, 01147 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 01148 3719, 3719, 3719, 3719, 3720, 3720, 3720, 3720, 3720, 3720, 01149 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 01150 3720, 3720, 3720, 3720, 3721, 3721, 3721, 3722, 3722, 3722, 01151 3722, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730, 01152 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3737, 3737, 3737, 01153 01154 3737, 3738, 3738, 3738, 3739, 3740, 3741, 3741, 3741, 3742, 01155 3743, 3744, 3745, 3746, 3747, 3747, 3748, 3749, 3750, 3751, 01156 3752, 3753, 3754, 3755, 3756, 3756, 3757, 3758, 3759, 3759, 01157 3759, 3760, 3761, 3762, 3763, 3764, 3765, 3766, 3767, 3767, 01158 3767, 3768, 3769, 3770, 3770, 3770, 3770, 3771, 3771, 3771, 01159 3772, 3773, 3773, 3774, 3775, 3776, 3777, 3777, 3778, 3779, 01160 3780, 3781, 3782, 3782, 3782, 3782, 3782, 3782, 3783, 3783, 01161 3783, 3784, 3784, 3784, 3784, 3785, 3785, 3785, 3785, 3785, 01162 3785, 3785, 3785, 3785, 3785, 3785, 3786, 3787, 3787, 3787, 01163 3787, 3787, 3787, 3787, 3787, 3788, 3788, 3788, 3788, 3788, 01164 01165 3788, 3788, 3790, 3791, 3791, 3792, 3793, 3794, 3794, 3794, 01166 3794, 3794, 3794, 3794, 3794, 3794, 3794, 3794, 3794, 3794, 01167 3794, 3794, 3794, 3795, 3795, 3796, 3796, 3796, 3796, 3797, 01168 3797, 3797, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3799, 01169 3799, 3799, 3799, 3800, 3801, 3801, 3801, 3801, 3801, 3801, 01170 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3811, 3812, 01171 3813, 3814, 3815, 3816, 3816, 3816, 3817, 3818, 3818, 3818, 01172 3819, 3820, 3820, 3820, 3820, 3820, 3820, 3823, 3824, 3825, 01173 3826, 3827, 3828, 3829, 3829, 3830, 3831, 3831, 3832, 3833, 01174 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3840, 3840, 3841, 01175 01176 3841, 3842, 3842, 3843, 3843, 3843, 3844, 3845, 3845, 3845, 01177 3845, 3847, 3849, 3851, 3851, 3852, 3854, 3855, 3856, 3856, 01178 3857, 3858, 3859, 3859, 3859, 3860, 3860, 3861, 3861, 3861, 01179 3861, 3861, 3861, 3861, 3861, 3861, 3861, 3861, 3861, 3862, 01180 3862, 3862, 3862, 3863, 3863, 3863, 3863, 3863, 3865, 3865, 01181 3866, 3867, 3867, 3867, 3867, 3867, 3867, 3867, 3868, 3868, 01182 3868, 3868, 3868, 3869, 3869, 3869, 3869, 3869, 3869, 3869, 01183 3870, 3870, 3871, 3871, 3871, 3872, 3872, 3872, 3872, 3872, 01184 3872, 3872, 3872, 3872, 3873, 3873, 3873, 3873, 3874, 3875, 01185 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 01186 01187 3885, 3885, 3886, 3887, 3888, 3888, 3888, 3888, 3888, 3890, 01188 3891, 3892, 3893, 3893, 3894, 3895, 3896, 3897, 3898, 3899, 01189 3901, 3902, 3903, 3904, 3904, 3904, 3905, 3906, 3906, 3906, 01190 3907, 3907, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 01191 3914, 3915, 3916, 3917, 3918, 3919, 3919, 3919, 3920, 3921, 01192 3922, 3922, 3922, 3922, 3922, 3922, 3922, 3922, 3923, 3923, 01193 3923, 3923, 3923, 3923, 3925, 3926, 3927, 3928, 3928, 3928, 01194 3928, 3929, 3929, 3929, 3929, 3929, 3930, 3930, 3930, 3931, 01195 3932, 3932, 3932, 3933, 3933, 3933, 3933, 3933, 3935, 3935, 01196 3935, 3935, 3936, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 01197 01198 3944, 3945, 3946, 3946, 3946, 3947, 3948, 3949, 3949, 3949, 01199 3949, 3949, 3950, 3951, 3952, 3953, 3954, 3956, 3957, 3959, 01200 3960, 3961, 3962, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 01201 3969, 3969, 3970, 3970, 3970, 3970, 3971, 3973, 3974, 3974, 01202 3974, 3975, 3976, 3977, 3978, 3978, 3978, 3978, 3978, 3978, 01203 3979, 3979, 3979, 3979, 3979, 3982, 3983, 3984, 3984, 3984, 01204 3985, 3985, 3986, 3987, 3987, 3987, 3988, 3989, 3990, 3991, 01205 3991, 3991, 3991, 3991, 3992, 3992, 3992, 3992, 3992, 3993, 01206 3994, 3995, 3996, 3997, 3997, 3997, 3997, 3998, 3998, 3998, 01207 3999, 3999, 4000, 4001, 4001, 4002, 4003, 4004, 4005, 4006, 01208 01209 4007, 4008, 4009, 4010, 4010, 4010, 4011, 4011, 4011, 4011, 01210 4011, 4011, 4011, 4011, 4011, 4012, 4013, 4014, 4014, 4015, 01211 4016, 4016, 4016, 4016, 4016, 4017, 4017, 4017, 4017, 4017, 01212 4018, 4019, 4019, 4019, 4019, 4019, 4019, 4019, 4020, 4021, 01213 4022, 4023, 4024, 4025, 4026, 4026, 4027, 4028, 4029, 4029, 01214 4029, 4030, 4030, 4031, 4031, 4031, 4032, 4033, 4033, 4033, 01215 4033, 4033, 4033, 4033, 4033, 4033, 4034, 4035, 4036, 4036, 01216 4036, 4037, 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044, 01217 4045, 4046, 4047, 4047, 4047, 4047, 4048, 4048, 4048, 4049, 01218 4049, 4049, 4050, 4051, 4052, 4053, 4054, 4054, 4054, 4054, 01219 01220 4055, 4055, 4055, 4056, 4056, 4057, 4058, 4059, 4059, 4059, 01221 4059, 4060, 4061, 4062, 4063, 4063, 4064, 4065, 4066, 4067, 01222 4068, 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076, 4077, 01223 4078, 4079, 4080, 4081, 4082, 4083, 4084, 4085, 4086, 4087, 01224 4088, 4089, 4090, 4091, 4092, 4093, 4094, 4095, 4096, 4097, 01225 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 01226 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 01227 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 01228 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 01229 4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 01230 01231 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 01232 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 01233 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4177, 01234 4178, 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186, 4187, 01235 4188, 4189, 4190, 4191, 4192, 4193, 4194, 4195, 4195, 4195 01236 } ; 01237 01238 static yyconst flex_int32_t yy_ec[256] = 01239 { 0, 01240 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 01241 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 01242 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01243 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 01244 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 01245 24, 24, 24, 24, 24, 25, 25, 26, 27, 28, 01246 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 01247 39, 38, 40, 41, 38, 42, 38, 43, 44, 45, 01248 46, 47, 48, 49, 38, 38, 50, 38, 51, 38, 01249 52, 53, 54, 10, 55, 1, 56, 57, 58, 59, 01250 01251 60, 61, 62, 63, 64, 38, 65, 66, 67, 68, 01252 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 01253 79, 38, 80, 1, 81, 82, 1, 1, 1, 1, 01254 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01255 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01256 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01257 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01258 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01259 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01260 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01261 01262 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01263 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01264 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01265 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01266 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 01267 1, 1, 1, 1, 1 01268 } ; 01269 01270 static yyconst flex_int32_t yy_meta[83] = 01271 { 0, 01272 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 01273 10, 11, 12, 13, 14, 1, 15, 1, 16, 17, 01274 18, 18, 18, 18, 18, 19, 20, 21, 22, 23, 01275 1, 24, 25, 25, 25, 25, 25, 25, 25, 25, 01276 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 01277 25, 26, 27, 28, 25, 25, 25, 25, 25, 25, 01278 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 01279 25, 25, 25, 25, 25, 25, 25, 25, 25, 29, 01280 30, 31 01281 } ; 01282 01283 static yyconst flex_int16_t yy_base[4053] = 01284 { 0, 01285 0, 2, 22, 0, 103, 114, 167, 0, 249, 0, 01286 331, 0, 413, 0, 495, 0, 117, 124, 577, 0, 01287 659, 0, 741, 0, 822, 833, 843, 854, 870, 888, 01288 934, 0, 899, 1014, 1042, 0, 1124, 0, 881, 1205, 01289 1211, 1227, 1253, 1272, 1016, 1290, 1293, 1309, 1389, 0, 01290 1311, 1334, 1469, 1472, 1483, 1497, 1528, 1539, 1550, 1581, 01291 1662, 0, 1744, 0, 1825, 1836, 1847, 1878, 1275, 1857, 01292 1584, 1595, 1884, 1900, 1922, 1936, 1957, 1967, 143, 909, 01293 1362, 1609, 1337, 1368, 1973, 1983, 1620, 1638, 2010, 2021, 01294 2040, 2054, 2073, 2087, 2101, 2107, 1635, 1906, 2161, 0, 01295 01296 1989, 2241, 2243, 2257, 2271, 2290, 2343, 0, 2425, 0, 01297 2505, 2507, 2024, 2117, 2588, 0, 2123, 2305, 2670, 0, 01298 2137, 2311, 2752, 0, 2521, 2531, 2834, 0, 2545, 2914, 01299 2917, 2924, 2935, 2953, 2950, 2956, 3026, 0, 3108, 0, 01300 3188, 3198, 3248, 0, 3330, 0, 3411, 3491, 3572, 0, 01301 2563, 2972, 2992, 3208, 3654, 0, 3437, 3459, 3521, 3524, 01302 3736, 0, 3414, 3448, 3816, 3819, 3470, 3838, 3852, 3871, 01303 3494, 3527, 3901, 0, 3983, 0, 4063, 4065, 4079, 4081, 01304 4095, 4097, 4116, 4118, 4132, 4146, 4160, 4167, 4170, 4185, 01305 4188, 4199, 4210, 4224, 4279, 4352, 4426, 0, 4247, 4298, 01306 01307 3878, 4313, 4327, 4371, 3841, 4316, 4213, 4506, 4508, 4522, 01308 4386, 4389, 4524, 4538, 4557, 4571, 4585, 4587, 4601, 4615, 01309 4608, 4622, 4692, 0, 4774, 0, 4854, 4856, 4925, 0, 01310 5006, 5017, 4404, 4629, 4250, 4643, 4645, 4663, 5037, 5051, 01311 5091, 5144, 9931,25449,25449,25449,25449,25449, 1, 0, 01312 128,25449, 1323, 1330,25449,25449,25449, 94, 14, 4269, 01313 1508, 1571, 155, 5111, 5122, 9904,25449, 4868, 133, 1563, 01314 1871, 1246, 1919, 2002, 5164,25449,25449, 928,25449, 128, 01315 9902,25449, 9866, 2254, 5158, 5175,25449,25449,25449,25449, 01316 0,25449, 146,25449, 0, 0, 820, 1208,25449, 0, 01317 01318 25449, 0,25449,25449,25449,25449, 829,25449, 2518,25449, 01319 137,25449,25449,25449, 0,25449, 832,25449, 0, 9916, 01320 25449,25449,25449,25449,25449, 0,25449, 839, 0,25449, 01321 5130, 5203, 5214, 5029,25449, 9897,25449, 4880, 160,25449, 01322 25449,25449,25449,25449,25449, 849, 756, 9857,25449, 9867, 01323 25449, 2985, 3227,25449,25449,25449,25449,25449, 4519, 860, 01324 4887, 5293, 4656, 4875, 2324, 863, 5222,25449, 0, 3553, 01325 1035, 4900,25449, 879, 9896, 9878, 5234, 9872,25449, 9866, 01326 2033, 5238, 5247, 9840, 5253, 5258, 5307, 5318, 5381, 5386, 01327 5390, 5288, 5396, 5400, 5427, 5439, 5443, 5471, 5458, 5475, 01328 01329 5488, 5502,25449, 0,25449, 0, 0, 0, 898, 9859, 01330 5324, 5338, 2332, 5534, 9863, 5521, 5267, 5432, 0,25449, 01331 5507, 905,25449,25449, 0,25449, 1005,25449,25449,25449, 01332 25449, 5548,25449, 4273, 4907,25449,25449,25449,25449,25449, 01333 1381, 1012,25449,25449,25449,25449,25449,25449, 1196,25449, 01334 25449,25449,25449,25449, 1200,25449,25449, 5615, 0, 0, 01335 25449, 1226, 5560, 0, 9831, 9817, 9825, 9808, 9821, 9815, 01336 77, 9794,25449,25449,25449,25449,25449, 5570, 1244,25449, 01337 9831,25449,25449,25449,25449, 1248,25449,25449, 0, 3014, 01338 3237, 4417,25449, 874, 9805, 1279, 9850,25449, 4682,25449, 01339 01340 1255,25449, 0,25449, 5574, 5583, 5587, 5601, 4912, 5619, 01341 9830, 5627, 0, 1224,25449,25449, 1240, 9797, 1291, 9839, 01342 25449,25449, 5592, 1350, 1346,25449,25449, 1348, 109, 5631, 01343 25449,25449,25449,25449,25449, 9824, 1458, 0,25449,25449, 01344 25449,25449, 1478,25449,25449,25449, 9830, 1305,25449,25449, 01345 25449, 1499, 1356, 0, 1492, 0, 0, 0, 9812, 1505, 01346 9827,25449, 9826, 9816, 9812, 1831,25449,25449,25449,25449, 01347 25449, 4686, 5638,25449,25449,25449, 1530,25449,25449,25449, 01348 25449,25449,25449, 0,25449, 0, 0, 1541,25449,25449, 01349 0,25449, 0, 0, 0, 1580, 0,25449, 0, 9744, 01350 01351 9742,25449,25449,25449,25449,25449, 1624,25449,25449,25449, 01352 25449,25449, 1634, 9749, 0, 5644, 5652, 0, 0, 0, 01353 9783,25449, 1816, 1782, 0,25449, 9782, 0, 5656,25449, 01354 25449,25449,25449,25449, 1846, 9741, 9739, 854, 9733,25449, 01355 25449,25449,25449, 9785,25449,25449, 1873, 0, 1928,25449, 01356 25449,25449,25449, 1921,25449,25449, 5660,25449,25449, 0, 01357 25449, 5665, 1932, 5674, 0,25449, 0,25449, 9779, 0, 01358 0, 1935, 0,25449, 1376, 5693, 0,25449, 0, 0, 01359 0, 0, 0,25449, 1942, 0,25449, 5700,25449, 5704, 01360 0, 0, 0, 0, 0, 1620, 1952,25449,25449, 9712, 01361 01362 9715, 9718, 9707, 9712, 9711,25449, 1651, 0,25449, 898, 01363 1480, 1511, 0, 0,25449, 9732, 9730, 9730, 9717, 0, 01364 0, 0, 0,25449, 5708, 5712,25449,25449, 9709,25449, 01365 25449, 5718, 9730, 1958, 5722, 9730, 9727, 9718, 9733,25449, 01366 25449, 5731, 5741, 5749, 5757, 2032,25449, 5762, 5776, 5790, 01367 5804, 5818, 1968, 5822,25449, 5826,25449,25449,25449,25449, 01368 25449,25449, 1969, 9711, 5830,25449, 5842, 5846, 5850,25449, 01369 25449, 5860,25449, 1979, 9707, 5871,25449,25449,25449,25449, 01370 25449, 5877, 2030,25449, 5885, 9677, 0, 5890, 5897,25449, 01371 25449, 9677,25449, 5901, 2052,25449,25449,25449,25449,25449, 01372 01373 25449,25449,25449, 2058, 9702, 0, 0, 0,25449, 9700, 01374 25449,25449,25449,25449,25449, 9704, 2068, 0,25449,25449, 01375 25449,25449,25449,25449,25449, 9702, 2091, 0,25449,25449, 01376 0,25449,25449, 0, 9668,25449,25449, 2097, 0,25449, 01377 25449, 0, 9662, 2103,25449,25449, 0,25449,25449, 0, 01378 9660,25449,25449, 2113, 0,25449,25449, 0, 9659, 2119, 01379 25449,25449, 1655,25449, 2283,25449,25449,25449,25449,25449, 01380 25449, 2121,25449, 5905, 5911,25449,25449,25449,25449,25449, 01381 2127, 9675, 9667, 9616,25449,25449,25449,25449, 0, 9641, 01382 2131,25449, 0,25449,25449,25449,25449,25449,25449, 5920, 01383 01384 2232,25449, 5915, 5924,25449,25449,25449,25449,25449, 5941, 01385 2251,25449, 0,25449,25449, 0,25449, 2267, 0,25449, 01386 25449, 0, 0,25449,25449, 2269,25449,25449, 0,25449, 01387 0, 0, 0, 9668, 2284, 1465, 2535, 5946, 0,25449, 01388 0, 0, 0, 2291, 5897,25449,25449,25449,25449, 2496, 01389 1422,25449,25449,25449,25449, 2511,25449, 9614,25449, 5965, 01390 5974,25449,25449, 0,25449, 2527,25449, 5982, 9631, 5986, 01391 5999, 0, 6007,25449,25449,25449,25449, 2553, 2534, 9614, 01392 25449, 6011, 6019, 6025,25449,25449, 6037,25449,25449,25449, 01393 2903, 9656, 6045,25449, 4538,25449,25449,25449, 2915, 2054, 01394 01395 9611, 9616, 9601,25449,25449,25449,25449,25449,25449, 2926, 01396 25449,25449,25449,25449, 2951, 9664, 2949, 9658, 9648, 9618, 01397 3189, 0, 2996,25449, 0, 0, 0, 2966, 3178, 1536, 01398 5999, 6015, 4343, 3179, 3199, 0,25449, 0, 0,25449, 01399 0, 9599, 3206, 9597, 1575, 3008, 6049,25449,25449, 3445, 01400 3535,25449, 3864, 6081, 3415, 1237, 852,25449, 9612, 6085, 01401 6094, 6103, 9586, 2053, 6112, 6121, 6129, 6133, 6141, 0, 01402 6149, 6169, 6177, 6187, 6195, 6205, 6213,25449, 6217,25449, 01403 25449, 2087, 6224, 6244, 6252, 6258, 6264, 9576, 6268, 6272, 01404 6293, 6301, 6306, 0, 6314, 6318, 1275, 4551, 6326, 9531, 01405 01406 6340,25449, 6344, 6356, 6360, 0, 1847, 1864, 0, 2920, 01407 9584, 9580, 3497, 9578, 4101, 0, 0, 6372, 9559, 2337, 01408 0, 0, 0, 9530, 0, 0, 6376, 6385, 6397, 6407, 01409 6415, 2579, 6419, 6433, 6441, 9573, 6449, 9547, 3431, 3368, 01410 9514, 9497, 9555, 6436, 6459, 3433, 6467, 3465, 6498, 6486, 01411 3510, 9535, 4998, 9500, 9485, 9482, 9479, 3494, 9469, 2080, 01412 9464, 9471, 9460, 3490, 9466, 3495, 9460, 967, 9437, 9445, 01413 4087, 6505, 6513, 6491, 6518, 9449, 6523, 6529, 0, 6576, 01414 2257, 6580, 6594, 6608, 6612, 6543, 5090, 5227, 0, 0, 01415 6626, 9416,25449, 0, 6640, 6644, 6656, 6660, 6672, 6676, 01416 01417 6688, 6692, 9455, 6701, 9420, 6696, 6729, 6735, 6748, 6762, 01418 6766, 6775, 6779, 6793, 6807, 6811, 6847, 6851, 6856, 6884, 01419 6889, 6895, 6899, 6903, 6931, 6935, 6945, 6950, 6962, 6977, 01420 6981, 6989, 7024, 7032, 7036, 7040, 7051, 0, 0, 0, 01421 9403, 6820, 9436, 6861, 7067, 7078, 7082, 0, 7090, 7095, 01422 7105, 7120,25449, 0, 5181, 5784, 0, 7124, 7132, 7140, 01423 7176, 7147, 9404, 9391, 9398, 9381, 9382, 9376, 1800, 9361, 01424 0, 1896, 5010, 7151, 7155, 0, 9356, 9360, 9347, 9361, 01425 9356, 9362, 9345, 9336, 9346, 7159, 7180,25449, 0, 7184, 01426 7192, 3832, 0, 7196, 9399, 7188, 7211, 0,25449, 7220, 01427 01428 9341, 7234, 7238, 7224, 7263, 9381, 7267, 7271, 9380, 7275, 01429 7296, 0, 7304, 0, 7312, 7316, 7324, 0, 3892, 7330, 01430 9393, 7322, 2239, 5082,25449, 7354, 3546, 4237, 3833,25449, 01431 25449, 9396, 1891, 7358, 3805,25449,25449,25449,25449, 4184, 01432 9394, 9391, 1929, 9390, 2569, 0, 4241, 9371,25449,25449, 01433 0, 9387,25449, 9379, 9370, 7362, 0, 0, 0, 0, 01434 0, 0, 0, 0, 9299, 9299, 9289, 0, 7366,25449, 01435 25449,25449, 9293, 9293, 9294, 9330, 9335, 9323, 7377, 7381, 01436 7386, 7400, 9282, 9266, 9274, 9269, 9261, 9327,25449, 3855, 01437 7404, 4062, 0, 2301, 5283, 0, 0,25449, 0, 0, 01438 01439 0, 4074, 7408, 0, 0, 0, 0, 7412, 7420, 9308, 01440 7424, 7428,25449, 0, 4090, 0, 0, 9252, 9253, 9244, 01441 9230, 1773, 9223, 4106, 1007, 1490, 9270, 9264, 2070, 4324, 01442 0, 0, 9245, 1339, 9239, 9245, 0, 0, 0, 0, 01443 9272, 7413,25449, 7438, 6232,25449,25449,25449,25449, 7443, 01444 7453, 7461, 7469,25449, 7475, 4403,25449, 7490, 7504, 7518, 01445 7532, 7536, 7540, 9227,25449, 7544, 7549, 9254,25449, 7557, 01446 9247, 7563, 7571, 0, 7591, 0, 7599, 7603, 7611, 7616, 01447 7629, 7636,25449,25449,25449, 9218,25449, 0, 7641, 9259, 01448 7629, 7652, 4107, 2503, 2015,25449, 0, 0, 9243, 9242, 01449 01450 9241,25449,25449,25449,25449,25449,25449,25449,25449, 0, 01451 9163, 7637, 0, 0, 0, 9150, 7643, 0, 9148, 7647, 01452 0, 0, 0, 9147, 7652, 7675, 4412,25449, 7679,25449, 01453 25449, 9081, 0, 9138, 7668, 0, 7699,25449,25449,25449, 01454 7703, 7711, 7719, 0, 0, 0,25449, 0, 0,25449, 01455 0, 9077, 9072, 4533, 7725, 7729, 0, 0, 0, 9053, 01456 9052, 3437, 9044, 9061, 9060, 9042, 9034, 9021, 4288, 9019, 01457 7733, 7741, 7750, 9002, 7754, 7758, 7778,25449, 7784, 9001, 01458 7792, 7800, 7808, 7816, 7820, 7824,25449, 7836, 4662, 0, 01459 5180, 9026, 8990, 7840, 9008, 7848, 7856, 0, 7865, 0, 01460 01461 7873, 7877, 7885, 5072, 4160, 8964, 8962, 4341, 4312, 8961, 01462 8945, 8950, 9004, 4580, 4582, 8981, 8992, 8991, 0, 5045, 01463 8935, 4122,25449,25449,25449, 81, 8916, 8973, 8912, 8910, 01464 4546, 8904, 8921, 8915, 8910, 8902, 7889, 8949, 8943,25449, 01465 4194, 5046, 0,25449,25449,25449, 4830, 8891, 5027, 5187, 01466 7893, 7910, 3881, 2059, 8917, 7916, 7920, 7924, 7936, 7958, 01467 7962, 7970, 0, 7978, 7986, 7990, 8003, 8007,25449, 0, 01468 5116,25449, 8929, 8019, 8883, 8033, 8027, 8908,25449, 0, 01469 0, 8904, 5368, 8045, 8874,25449, 8039, 8059, 8070, 8078, 01470 0, 8908, 8082, 8841, 8841, 8848, 8839, 8899,25449, 8895, 01471 01472 8076, 4075, 2526, 4091, 2554, 8126, 8109, 8113, 3176, 8834, 01473 4597, 8842, 8852, 8828, 8824, 8826, 1511, 8808, 8805, 8814, 01474 3468, 1934, 8814, 8815, 8785, 8799, 8778, 8771, 4225, 8774, 01475 8768, 8765, 1910, 8756, 8760, 8757, 8749, 8751, 8121, 8138, 01476 8146, 8753, 8142, 8201, 8215, 8160, 8219, 8232, 8786, 8773, 01477 6281, 6588, 6634, 3389, 6842, 7014, 8237, 3407, 0, 8259, 01478 8738, 8246,25449, 8268, 8273, 8289, 8293, 8305, 8309, 8323, 01479 8329,25449, 8335, 8342, 8346, 8172, 8731, 8379, 8388, 8392, 01480 8406, 8419, 8399, 8433, 8438, 8447, 8453, 8465, 8480, 8484, 01481 8492, 8496, 8525, 8529, 8533, 8538, 8566, 8573, 8578, 8582, 01482 01483 8609, 8614, 8618, 8623, 8650, 8656, 8664, 8683, 8696, 8700, 01484 8710, 8716, 8727, 8743, 8755, 8759, 8763, 8735, 8251, 8545, 01485 8351, 8772, 8788, 8790, 8800, 8721, 8720, 8709, 8724, 8718, 01486 8723, 8706, 8694, 8688,25449, 0, 5418,25449, 8735, 8426, 01487 8669, 8668, 8627, 8668, 8664, 8669, 8665, 8668, 8677, 8832, 01488 25449, 8697, 8842, 8713,25449, 8711, 8785, 8846,25449, 8852, 01489 0, 8638, 8651, 8866, 8874, 8882, 8886, 0, 8890, 8696, 01490 25449, 8695, 8897, 4149, 2976, 8702, 4170, 3197, 8681, 8691, 01491 8618, 8633, 8625, 8622, 8621, 8607, 0, 8658, 8920, 8928, 01492 25449, 8936,25449,25449, 8602, 8595,25449, 8945, 8949, 8635, 01493 01494 8634, 8628, 1338,25449, 8631, 8584, 8568, 8569, 8583, 8579, 01495 8580, 8560, 8624, 8585, 8583, 5084, 2946, 8567, 8569, 8565, 01496 8560, 8547, 8583,25449, 8581, 8944, 7198, 8955, 8509, 7900, 01497 8956, 8508, 8534, 8527, 8971, 8987, 8995, 9001,25449, 0, 01498 9009, 9017,25449, 8560,25449, 8553, 9016, 4188, 3207, 8535, 01499 8551, 8542,25449, 8533, 9020, 8527,25449, 8514, 9024, 8503, 01500 25449, 8501, 9037, 8499,25449, 8497, 9041, 9049, 8445, 8492, 01501 25449, 8490, 9045, 8426, 8411, 8419, 8403,25449, 8409, 8400, 01502 8403, 8374, 8373, 8367, 0, 8347, 9073, 9021, 9077, 9081, 01503 9090, 8372, 8362, 8315, 0, 9094, 4917, 8312, 8307, 8319, 01504 01505 3217, 3810, 8307, 0, 9176, 8303, 8278,25449, 8276, 8261, 01506 8262, 8252, 8255, 8305, 5332, 5406, 2002, 3816, 8256,25449, 01507 25449, 9102, 9106, 0, 9110,25449, 8290,25449, 4195,25449, 01508 9257, 9261,25449, 8274, 8290, 5453, 9273, 9122, 9286, 8275, 01509 9135, 9298, 9139, 8281, 9143, 8243, 8228, 8223, 8209, 8271, 01510 25449, 9145, 8238, 8229, 9367, 9302, 8174, 8166, 8157, 4244, 01511 8170, 8155, 8185, 8136, 8135, 8124, 8123, 8115, 8113, 8112, 01512 8093, 8100, 8093, 8096, 8076, 8074, 8077, 8078, 8060, 8058, 01513 8045, 8054, 8048, 8029, 4252, 8028, 8073, 7998, 7983, 7981, 01514 7995, 7983, 7964, 7944, 7961, 5370, 7951, 9311, 9328, 9348, 01515 01516 9151,25449, 9375, 9383, 7989, 9149, 9399, 7971, 9442,25449, 01517 7944, 4154,25449, 7985, 8101,25449, 8808, 4371, 4257, 0, 01518 7928, 9343, 9446, 9306, 9450, 9462, 9467, 9474, 9479, 9355, 01519 9491, 9495, 9499, 9503, 9540, 9544, 9548, 9555, 9560, 9624, 01520 9588, 9575, 9592, 9643, 9655, 9661, 9670, 9688, 9697, 9706, 01521 9715, 9733, 9742, 9747, 9751, 9778, 9786, 9792, 9805, 9819, 01522 9823, 9834, 9838, 9850, 9865, 9869, 9896, 9906, 9910, 9914, 01523 9941, 9945, 9949, 7926,25449,25449, 7912, 7897, 9486, 7897, 01524 7895, 7892, 7888, 9602, 7900, 7882, 7871, 9606, 7862, 7871, 01525 7870, 7839, 9878, 7832, 7871, 9953, 5408, 7881,25449, 9958, 01526 01527 7814, 0, 9981, 9985, 9989, 7861,25449,10004, 7844, 7808, 01528 4389, 7761, 7760, 7769, 7771, 1843, 7773, 7797, 9993, 7732, 01529 7715,10027,25449, 7728,25449, 7718, 7700, 1253, 7709, 7705, 01530 0, 5015, 5194, 7710,25449, 7698, 7694, 7682, 7697,25449, 01531 10012,10035,10039,10043, 7669, 7681,25449,10037, 7650,25449, 01532 0, 7650,25449,10051, 7636,25449,10055, 7635,25449,10059, 01533 7624,25449,10072, 5539, 7558, 7612,25449,10076, 7563, 7550, 01534 7539, 0, 7521, 7521, 7486, 7493, 7463, 9452,25449, 1556, 01535 6710, 7475, 7456, 7449, 7424,25449, 7457, 7423,25449,10100, 01536 7399, 0, 7385, 7390, 7372, 7363, 7349, 4474, 4510,10125, 01537 01538 5070,10191,10195, 5470,10207,10220, 0,10229, 0,10233, 01539 10241,10246, 758, 785, 846, 872, 1006, 1210,25449,25449, 01540 10314,10258, 1167, 1209, 1224, 1303, 1400, 1430, 1453, 1566, 01541 1602, 1763, 1798, 1826, 1872, 1955,10271, 2003, 2046, 2058, 01542 2060, 2083, 2086, 2088, 2193, 2214, 2212, 2234, 2263, 2257, 01543 2282, 2280, 2470, 2472, 4835, 2500, 2518, 2861, 5070, 2872, 01544 2890, 2903, 2920,25449, 2946,10266,10275, 2994, 3167,25449, 01545 10272,10311, 0,10285,10324, 3192, 4497, 0,25449,10339, 01546 10351,10389,10393,10411,10405,10417,10423,10429,10443,10447, 01547 10474,10480,10489,10493,10507,10520,10524,25449,10539, 3199, 01548 01549 3203,10551,25449,10555,10559,10568,10586,10597,10601,10613, 01550 10617,10632,10645,10665,10672,10677,10692,10684,10712,10719, 01551 10723,10727,10755, 3354, 3378,10760,10764,10768,10772,10799, 01552 10803,10812,10807,10816,10845,10849,10854,25449, 3387, 3407, 01553 3428, 3447, 3453, 3469, 3747, 3833,10049, 4003, 4040, 4082, 01554 10881, 4083,10886,25449, 0, 4145, 4216, 4203,25449,10305, 01555 4253, 4273,25449,25449,10087,10435,25449, 0, 4227, 4238, 01556 4248,25449, 4291, 4293, 4295, 4314, 4319, 4341, 4347, 4351, 01557 4523, 5310, 4476, 5153, 4488,25449, 4550, 4551,10893, 4568, 01558 4569,25449, 4589, 4594, 4600, 4619, 4627, 4632, 4633, 4644, 01559 01560 0, 4618, 4667, 4668, 4620, 4784,25449, 4791, 4808, 4829, 01561 4842, 4845, 4849, 4941, 4943, 4965, 4963, 4960, 4968, 4980, 01562 4986, 5198, 5798, 5008, 0, 5048,25449, 5038, 5050, 5072, 01563 5086, 5082, 5184, 5124, 5096, 5105, 5101, 5125, 5139, 5142, 01564 10907,10911, 0,10923,10936, 5151, 5140,10439, 5164,10659, 01565 10940, 5185, 5181, 5196, 5218, 5302, 5212, 5213, 5239, 5233, 01566 5244,10948, 5232,10862, 5238,10954,10965, 5233, 5255, 5249, 01567 5250, 5264, 5487, 5260, 5259, 5273, 5294, 5289, 5300, 5305, 01568 5308, 5339, 5348, 5351, 5361, 5351, 5367, 5377,10969, 5483, 01569 5398, 5392, 5408,10973, 5440,10990,10994, 5467,11021,11027, 01570 01571 11034,11039,11051,11055,11068,11072,11084,11088,11096,11101, 01572 11115,11133,11142,25449,11146,11150,11160,11178, 5419, 5420, 01573 11190,11194,11209,11225,11236,11240,11244,11252,11279,11283, 01574 11287,11291,11297,11324,11328,11332,11342,11359,11375,11379, 01575 11386, 5444, 5436,11413,11418,11422,11426,11453,11458,11462, 01576 11466,25449,11472,11500,11505,11509,11513, 5461,11106, 5455, 01577 5447, 5462,11519, 5465, 5475,11272, 5475,11391,11369,11432, 01578 25449,11406, 5476, 5486,11540,25449,11544, 5500, 5495, 5495, 01579 25449,25449, 5541, 5516, 5516, 5519,25449, 5569, 5624, 5566, 01580 5605, 5568, 5601, 5544, 5812, 5547, 5557, 5571, 5564, 5600, 01581 01582 5613, 5600, 5614, 5608, 5614, 5626, 5619, 5625, 5631, 5834, 01583 5952,25449, 5652, 0, 5661, 5662, 5671, 5665, 5675, 5717, 01584 25449, 5689, 5675, 5688, 5682, 5685, 5697,11548,11552, 5742, 01585 25449,11567,11578, 5709,11585,11595,11599,11603, 5703, 5713, 01586 5707, 5702, 5724, 5725, 5726, 5716, 5763, 5733, 5740,11609, 01587 5729,11613, 5736,11621, 5748, 5754,11631, 5774,11635, 5785, 01588 5801,11640, 5779, 5788,11644, 5807, 5814, 5811, 5803, 5809, 01589 11648, 5811,11652,11656, 5824, 5829,11665, 5880, 5832, 5864, 01590 5865,25449,11674,11679,11693,11697,11709,11713,11725,11737, 01591 11741,11749,11758,11776,11789,11803, 5868, 5861,11807,11820, 01592 01593 11834, 5880, 5867,11838,11842,11848, 5905,11854,11882,11929, 01594 11887,11893,11898,11948,11960,11769,11965,11975,11992,12002, 01595 12019,12029,12033,12038,12046,12065,12077,12081, 5879, 5884, 01596 5907,12085,12112,12118,25449,12122,12126,12131, 5905, 5906, 01597 12158,12162,12166, 5923, 5923,12091,12170,12174, 5926, 5919, 01598 5934,12193,25449,12197,12205, 5937, 5938,12210,12214, 5945, 01599 5949, 5943, 6009, 5961, 5946, 5958, 6024, 6010, 6001, 6158, 01600 0, 6010, 6054, 5995, 6090, 5995, 5999, 5993, 6015, 6001, 01601 6034, 6034, 6042, 6046, 6040,25449,25449, 6038, 6058, 6061, 01602 6060, 6050, 6075, 6061,25449, 6081, 0, 6081, 6088, 6092, 01603 01604 6086,12218,12228, 6099,12236,12243,12247, 6101, 6108, 6110, 01605 6109, 6096, 6114,12251, 6124, 6145, 6120, 6120,12255, 6135, 01606 6132, 6128,12259, 6124,12267, 6147, 6146,12273,12277,12285, 01607 12289,12293,12298, 6155,12302, 6171, 6163,12306,12314, 6169, 01608 6159,12318,12322,12331,12335, 6182, 6188,12351, 6218,12355, 01609 12359,12378,12382,12394,12398,12411,12416,12423,12429,12433, 01610 12437,12443,12480, 6210,12484,25449,12490, 6215, 6214,12499, 01611 12507, 6284, 6226, 6219, 6231,12517, 6271,12526,12535,12544, 01612 12553,12571,12580,12584,12588,12594,12598,12625,12629,12633, 01613 12637,12644,12664,12671,12676,12683, 6234, 6254,12691,12703, 01614 01615 12710,12723,12730, 6268, 6253,12735,12739, 6252, 6273, 6276, 01616 12743,12766,12774, 6276,12782, 0, 6283, 6274, 6341, 0, 01617 25449,25449, 6291, 6345, 0, 6313, 0, 6314, 6391,12786, 01618 6288, 6302, 6304, 6303, 6305, 6328, 6323, 6390, 6402, 6318, 01619 6339, 6348,25449, 6356, 6349, 6374, 6363,12800,12807,12811, 01620 12818, 6364, 6381, 6381,12825, 6388, 6384,12829, 6396, 6418, 01621 6410,12833,12843, 6402, 6408,12847,12851, 6418,12855,12859, 01622 12863,12867, 6420,12873,12880, 6426, 6418, 6425,12888, 6427, 01623 6444, 6428,12892,12898,12902,12906, 6438,12910,12918,12922, 01624 12934,12938,12953,12966,12981,12985,12993,12997,13001, 6431, 01625 01626 6447,13005,13012,13039, 6495, 6457, 6449, 6465,25449,13043, 01627 13047,13052,13056,13061,13119,13086,13138,13090,13150,13165, 01628 13178,13185,13192,13094, 6461,13205,13098, 6486, 6467,13212, 01629 6464, 6476,13232,13102,13110,13158,13239,13243,13250,13259, 01630 13265, 6485, 0,25449, 0, 6523, 6524, 6665, 6681,13272, 01631 6488, 6501, 6506, 6502, 6520, 6620, 6824, 6632, 6508, 6520, 01632 6523, 6520, 6534,13276,13283,13294,13301, 6527, 6546,13305, 01633 13309, 6548,13313,13317, 6548,13321, 6557,13326,13330,13334, 01634 13338,13342,13348,13352, 6576, 6581, 6578,13356,13360, 6612, 01635 6581,13367,13371,13375,13379,13391,13395,13407,13411,13423, 01636 01637 13432,13436,13440, 6582,13450,13463,25449, 6664, 6599, 6607, 01638 6619,13467,13477,13481,13485,25449,13554, 6676, 6677,13495, 01639 13635,13508,13639,13512,13524,13644,13648,13652,13528,25449, 01640 13679,13685, 6641, 6638, 6655,13542,13695, 6653, 6757, 6770, 01641 6784,25449, 6829,25449, 6656, 6658, 6664, 6656, 7008,25449, 01642 6675, 6674, 6679, 6669,13700,13573,13691, 6698,13725,13729, 01643 13733,13737,13742, 6699, 6704,13746,13750,13758,13762, 6731, 01644 6711,13766,13771,13775, 6736, 6727, 6756, 6729,13780,13785, 01645 13797,13801,13809, 6733, 6759, 6750,13817, 6762, 6762, 0, 01646 13821,13830,13834,13844,13861,13876,13880,13886,13890,13894, 01647 01648 13898,25449,13921,13927, 6766, 6774, 7165, 7197, 6764, 6779, 01649 6790, 6792, 6806, 6809,13931,13938,13948, 6804,13956,13960, 01650 6822, 6839, 6817,13964,13968, 6848, 6840, 6864,13973,13980, 01651 13992,13984, 6842, 6862, 6852,13998,14006,25449,14010,14019, 01652 14026,14037,14046,14052,14064,14079,14083,25449,14091, 7253, 01653 0, 7254, 0, 6847, 6849,14099,14104, 6868, 6881, 6893, 01654 14108, 6902, 6871, 6903,14112,14119,14123,14137, 6883, 6885, 01655 14141,14146,14150,14154,14158,14191,14197,25449, 0, 0, 01656 14201,14206, 6893, 6920,14210,14214, 6926, 6899,14220, 6901, 01657 6917,14224,14235,14239,14243,14247, 6919, 6940,14251,14255, 01658 01659 14267, 6921,14276,14287,14291,14295,14303,14307, 6948,14316, 01660 14323,14328,14332,25449,14341,14346,14350,14354,14358,14362, 01661 25449,14366,14370,14374,14379,14383,14387,14395,14399,14404, 01662 14412,14424,14428,14432,14437,14441,14445,14453,14457,14462, 01663 14470,14474,14482,14486,14490,14495,14499,14507,14515,14519, 01664 14524,14528,14532,14540,14544,14549,14557,14561,14569,14573, 01665 14577,14582,14586,14594,14602,14606,14611,14615,14619,14627, 01666 14631,14636,14644,14648,14656,14660,14664,14669,14673,14681, 01667 14689,14693,14698,14702,14706,14714,14718,14723,14731,14735, 01668 14743,14747,14751,14756,14760,14768,14776,14780,14785,14789, 01669 01670 14793,14801,14805,14810,14818,14822,14830,14834,14838,14843, 01671 14847,14855,14863,14867,14872,14876,14880,14888,14892,14897, 01672 14905,14909,14917,14921,14925,14930,14934,14942,14950,14954, 01673 14959,14963,14967,14975,14979,14984,14992,14996,15004,15008, 01674 15012,15017,15021,15029,15037,15041,15046,15050,25449,15072, 01675 15103,15134,15165,15196,15227,15258,15289,15320,15351,15382, 01676 15413,15444,15475,15506,15537,15568,15599,15630,15661,15692, 01677 15723,15754,15785,15816,15847,15878,15909,15940,15971,16002, 01678 16033,16064,16095,16126,16157,16188,16219,16250,16281,16312, 01679 16343,16374,16405,16436,16467,16498,16529,16560,16591,16622, 01680 01681 16653,16684,16715,16746,16777,16808,16839,16870,16901,16932, 01682 6972,16962,16986,17010,17040,17070,17094,17118,17142,17172, 01683 6975, 6983, 6981,17186, 6987, 7000, 6989, 7005, 7022, 6995, 01684 7095,17210,17238,17263,17293,17317,17347, 7048, 7065,17371, 01685 17396,17427,17457,17481,17511, 7007, 7114, 7026, 7122,17536, 01686 17567,17598, 7036,17628,17652,17676,17706,17731,17762,17793, 01687 17824,17855,17886,17917, 7038, 7151,17948, 7040, 7265, 7050, 01688 17978,18003, 7053, 7285, 7064, 7229,18034, 7078, 7270,18065, 01689 7080,18095,18120, 7086, 7312, 7089, 7286, 7090, 7322, 7094, 01690 7323,18151,18181,18205,18229,18253,18278,18302,18332,18357, 01691 01692 18388,18419, 7105, 7369, 7113, 7374,18450,18481,18512,18543, 01693 18574,18605,18636,18667,18698,18729, 7140,18760, 7424,18791, 01694 18822,18853,18884,18915,18945, 7141,18970,18995,19025, 7146, 01695 19049,19073,19097,19121,19151,19176,19207,19238,19269,19299, 01696 19323,19353,19377, 7150,19401,19425,19449,19473,19497,19521, 01697 19545, 7165,19569, 7442,19583, 7182, 7314, 7443, 7457, 7179, 01698 7486, 7471,19607,19635,19659, 7460,19684,19715,19746,19776, 01699 19800, 7206,19824,19848,19872, 7210, 7485, 7221,19896,19921, 01700 19951,19975, 7236,19999, 7499, 7500,20024,20055,20086,20117, 01701 20148,20178,20202,20226, 7538, 7260,20250,20275,20306,20337, 01702 01703 20368,20399,20430,20461, 7553,20492, 7561, 7472,20522,20546, 01704 20571, 7759, 7564,20602, 7572,20633,20663,20688, 8071,20710, 01705 7573, 7592, 7610,20735,20766,20796,20820,20844,20868,20894, 01706 20924,20948, 7661, 7262,20972,20997,21028,21059,21090, 7669, 01707 7692,21121,21152,21183,21214,21245,21276,21307,21338,21369, 01708 21400,21431,21462, 7700,21493,21524,21555,21586,21617,21648, 01709 21678,21703,21728,21758,21782,21806,21830, 7266, 7781,21854, 01710 7723, 7277,21878,21903,21934, 7477,21965,21996,22026,22050, 01711 22074,22098, 7751,22122,22152,22176,22200,22225,22256,22286, 01712 22316, 7287, 7299, 8190,22330,22354, 7882,22384,22408,22432, 01713 01714 7311, 7830,22457,22487,22517,22541,22565,22589,22613,22638, 01715 22669, 7789,22699,22723,22747,22771, 7790,22802,22833,22864, 01716 22895,22925,22949,22973, 7829,22997,23028, 7838,23059, 7324, 01717 7846,23089,23113, 7491,23129, 8298,23154,23185,23215,23239, 01718 7867,23263,23294, 7503,23325,23356,23387,23418,23449,23480, 01719 23511,23541,23565, 7917, 7960,23589,23620, 7347,23651,23681, 01720 8001,23705,23729, 8220,23743,23767,23797,23821,23845,23869, 01721 8051,23893,23918,23948,23972,23996, 8435,24020,24044,24069, 01722 24100,24130,24154, 8009,24179,24210,24241,24272,24302,24326, 01723 24351, 8052,24382, 8264,24412, 7348, 8394,24437,24467,24492, 01724 01725 7350,24523,24554,24585,24616,24647,24678,24709,24739,24764, 01726 24795,24825,24839,24863, 8077, 7351,24887,24911,24935,24959, 01727 8549, 7352,24983,25008,25039,25069,25093, 8162,25118,25148, 01728 25172,25197, 8498,25227,25252,25283,25313,25337, 8747, 7560, 01729 7602, 8189,25362, 8249, 8340,25393, 7372,25423, 8837, 8901, 01730 8346, 8381 01731 } ; 01732 01733 static yyconst flex_int16_t yy_def[4053] = 01734 { 0, 01735 3550, 3550, 3549, 3, 3551, 3551, 3549, 7, 3549, 9, 01736 3549, 11, 3549, 13, 3549, 15, 3552, 3552, 3549, 19, 01737 3549, 21, 3549, 23, 3553, 3553, 3550, 3550, 3554, 3554, 01738 3549, 31, 3555, 3555, 3549, 35, 3549, 37, 3550, 3550, 01739 3550, 3550, 3556, 3556, 3557, 3557, 3558, 3558, 3549, 49, 01740 3559, 3559, 3560, 3560, 3561, 3561, 3561, 3561, 3561, 3561, 01741 3549, 61, 3549, 63, 3562, 3562, 3562, 3562, 3550, 3550, 01742 3563, 3563, 3563, 3563, 3564, 3564, 3565, 3565, 3550, 3550, 01743 3566, 3566, 3567, 3567, 3550, 3550, 3550, 3550, 3568, 3568, 01744 3550, 3550, 3550, 3550, 3569, 3569, 3570, 3570, 3549, 99, 01745 01746 3571, 3571, 3572, 3572, 3573, 3573, 3549, 107, 3549, 109, 01747 3574, 3574, 3575, 3575, 3549, 115, 3576, 3576, 3549, 119, 01748 3577, 3577, 3549, 123, 3578, 3578, 3549, 127, 3579, 3579, 01749 3550, 3550, 3550, 3550, 3550, 3550, 3549, 137, 3549, 139, 01750 3550, 3550, 3549, 143, 3549, 145, 3580, 3580, 3549, 149, 01751 3550, 3550, 3550, 3550, 3549, 155, 3550, 3550, 3581, 3581, 01752 3549, 161, 3582, 3582, 3550, 3550, 3583, 3583, 3584, 3584, 01753 3585, 3585, 3549, 173, 3549, 175, 3586, 3586, 3586, 3586, 01754 3587, 3587, 3587, 3587, 3588, 3588, 3589, 3589, 3590, 3590, 01755 3591, 3591, 3592, 3592, 3593, 3593, 3549, 197, 3594, 3594, 01756 01757 3595, 3595, 3596, 3596, 3597, 3597, 3598, 3598, 3598, 3598, 01758 3599, 3599, 3584, 3584, 3600, 3600, 3601, 3601, 3602, 3602, 01759 3603, 3603, 3549, 223, 3549, 225, 3604, 3604, 3549, 229, 01760 3605, 3605, 3606, 3606, 3607, 3607, 3608, 3608, 3609, 3609, 01761 3610, 3610, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3611, 01762 3612, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01763 3549, 3549, 3613, 3614, 3615, 3549, 3549, 3616, 3549, 3617, 01764 3549, 3549, 3549, 3618, 3619, 3549, 3549, 3549, 3549, 3549, 01765 3549, 3549, 3549, 3620, 3620, 3620, 3549, 3549, 3549, 3549, 01766 3621, 3549, 3549, 3549, 3622, 3623, 3624, 3624, 3549, 3625, 01767 01768 3549, 3626, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01769 3549, 3549, 3549, 3549, 3627, 3549, 3549, 3549, 3628, 3629, 01770 3549, 3549, 3549, 3549, 3549, 3630, 3549, 3549, 3631, 3549, 01771 3632, 3632, 3632, 3632, 3549, 3549, 3549, 3633, 3549, 3549, 01772 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3634, 01773 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01774 3549, 3549, 3549, 3549, 3635, 3549, 3636, 3549, 3549, 3637, 01775 3549, 3549, 3549, 3549, 3638, 3549, 3549, 3549, 3549, 3549, 01776 3639, 3640, 3640, 3641, 3640, 3640, 3640, 3640, 3640, 3640, 01777 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 01778 01779 3640, 3640, 3549, 3642, 3549, 3642, 3642, 3642, 3642, 3549, 01780 3549, 3549, 3643, 3644, 3549, 3645, 3549, 3549, 3646, 3549, 01781 3549, 3549, 3549, 3549, 3647, 3549, 3549, 3549, 3549, 3549, 01782 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01783 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01784 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 458, 3648, 01785 3549, 3549, 3549, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 01786 3649, 3649, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01787 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3650, 3650, 01788 3549, 3549, 3549, 3651, 3652, 3549, 3549, 3549, 3549, 3549, 01789 01790 3549, 3549, 3653, 3549, 3654, 3654, 3549, 3549, 3655, 3656, 01791 3549, 3657, 3658, 3658, 3549, 3549, 3549, 3659, 3549, 3549, 01792 3549, 3549, 3549, 3658, 3549, 3549, 3549, 3549, 3549, 3549, 01793 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3660, 3549, 3549, 01794 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01795 3549, 3549, 3549, 3661, 3661, 3661, 3661, 3661, 3549, 3661, 01796 3662, 3549, 3662, 3662, 3662, 3662, 3549, 3549, 3549, 3549, 01797 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01798 3549, 3549, 3549, 3663, 3549, 3663, 3663, 3663, 3549, 3549, 01799 3664, 3549, 3664, 3664, 3664, 3664, 3665, 3549, 3666, 3666, 01800 01801 3666, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01802 3549, 3549, 3549, 3549, 3667, 3549, 3549, 3667, 3667, 3667, 01803 3549, 3549, 3549, 3667, 3668, 3549, 3669, 3670, 3671, 3549, 01804 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01805 3549, 3549, 3549, 3672, 3549, 3549, 3549, 3673, 3674, 3549, 01806 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3675, 01807 3549, 3549, 3549, 3549, 3676, 3549, 3677, 3549, 3549, 3677, 01808 3677, 3677, 3678, 3549, 3549, 3549, 3679, 3549, 3680, 3680, 01809 3680, 3680, 3680, 3549, 3680, 3681, 3549, 3549, 3549, 3682, 01810 3683, 3683, 3683, 3683, 3683, 3549, 3683, 3549, 3549, 3549, 01811 01812 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3684, 3549, 3685, 01813 3685, 3685, 3686, 3687, 3549, 3549, 3549, 3549, 3549, 3688, 01814 3689, 3690, 3691, 3549, 3549, 3549, 3549, 3549, 3692, 3549, 01815 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01816 3549, 3693, 3693, 3693, 3694, 3549, 3549, 3695, 3695, 3695, 01817 3695, 3549, 3549, 3549, 3549, 3696, 3549, 3549, 3549, 3549, 01818 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3697, 3549, 01819 3549, 3698, 3549, 3549, 3549, 3699, 3549, 3549, 3549, 3549, 01820 3549, 3549, 3549, 3549, 3549, 3700, 3701, 3549, 3549, 3549, 01821 3549, 3702, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01822 01823 3549, 3549, 3549, 3549, 3549, 3703, 3704, 3705, 3549, 3706, 01824 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3707, 3549, 3549, 01825 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3708, 3549, 3549, 01826 3709, 3549, 3549, 3709, 3710, 3549, 3549, 3709, 3711, 3549, 01827 3549, 3711, 3712, 3549, 3549, 3549, 3713, 3549, 3549, 3713, 01828 3714, 3549, 3549, 3713, 3715, 3549, 3549, 3715, 3716, 3549, 01829 3549, 3549, 3715, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01830 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01831 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3717, 3718, 01832 3549, 3549, 3719, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01833 01834 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01835 3549, 3549, 3720, 3549, 3549, 3720, 3549, 3720, 3721, 3549, 01836 3549, 3722, 3722, 3549, 3549, 3549, 3549, 3549, 3723, 3549, 01837 3723, 3723, 3723, 3549, 3723, 3549, 3723, 3549, 3724, 3549, 01838 3724, 3724, 3724, 3724, 3549, 3549, 3549, 3549, 3549, 3549, 01839 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3725, 01840 3725, 3549, 3549, 3726, 3549, 3549, 3549, 3727, 3728, 3729, 01841 3729, 3730, 3731, 3549, 3549, 3549, 3549, 3732, 3549, 3549, 01842 3549, 3549, 3549, 3733, 3549, 3549, 3734, 3549, 3549, 3549, 01843 3549, 3549, 3735, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01844 01845 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01846 3549, 3549, 3549, 3549, 3549, 3736, 3549, 3736, 3736, 3736, 01847 3736, 3737, 3737, 3549, 3737, 3737, 3737, 3549, 3549, 3737, 01848 3549, 3549, 3737, 3738, 3549, 3739, 3549, 3739, 3739, 3549, 01849 3739, 3549, 3549, 3549, 3549, 3739, 3549, 3549, 3549, 3740, 01850 3549, 3549, 3740, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01851 3549, 3741, 3549, 3549, 3742, 3742, 3743, 3549, 3742, 3744, 01852 3745, 3741, 3741, 3746, 3747, 3744, 3549, 3549, 3745, 3549, 01853 3549, 3549, 3748, 3748, 3749, 3549, 3549, 3549, 3549, 3750, 01854 3750, 3751, 3750, 3752, 3753, 3549, 3549, 3549, 3752, 3549, 01855 01856 3549, 3549, 3753, 3753, 3753, 3754, 3549, 3549, 3754, 3755, 01857 3549, 3756, 3755, 3757, 3755, 3758, 3758, 3549, 3549, 3549, 01858 3759, 3759, 3760, 3761, 3762, 3762, 3763, 3763, 3763, 3764, 01859 3764, 3549, 3763, 3765, 3549, 3766, 3764, 3549, 3549, 3549, 01860 3549, 3549, 3767, 3768, 3549, 3549, 3549, 3549, 3549, 3549, 01861 3549, 3549, 3549, 3549, 3769, 3549, 3549, 3549, 3549, 3549, 01862 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01863 3549, 3770, 3770, 3771, 3549, 3549, 3549, 3770, 3772, 3773, 01864 3549, 3774, 3774, 3549, 3775, 3549, 3549, 3549, 3776, 3777, 01865 3772, 3549, 3549, 3778, 3779, 3779, 3779, 3779, 3779, 3779, 01866 01867 3549, 3773, 3549, 3773, 3769, 3549, 3773, 3773, 3773, 3773, 01868 3773, 3773, 3773, 3773, 3773, 3773, 3773, 3773, 3773, 3773, 01869 3773, 3773, 3773, 3773, 3773, 3773, 3773, 3773, 3773, 3773, 01870 3773, 3773, 3773, 3773, 3773, 3773, 3773, 3780, 3780, 3780, 01871 3549, 3549, 3549, 3781, 3781, 3782, 3781, 3783, 3784, 3783, 01872 3549, 3784, 3549, 3785, 3549, 3549, 3785, 3549, 3549, 3549, 01873 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01874 3786, 3549, 3549, 3549, 3549, 3786, 3786, 3786, 3786, 3786, 01875 3786, 3786, 3786, 3786, 3786, 3549, 3549, 3549, 3787, 3787, 01876 3549, 3549, 3788, 3788, 3789, 3790, 3549, 3791, 3549, 3549, 01877 01878 3549, 3792, 3549, 3793, 3792, 3549, 3792, 3549, 3549, 3794, 01879 3794, 3795, 3794, 3796, 3797, 3796, 3797, 3798, 3798, 3549, 01880 3799, 3800, 3549, 3549, 3549, 3549, 3549, 3798, 3549, 3549, 01881 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01882 3549, 3549, 3549, 3549, 3549, 3801, 3801, 3549, 3549, 3549, 01883 3801, 3802, 3549, 3802, 3802, 3549, 3803, 3803, 3803, 3804, 01884 3804, 3804, 3805, 3805, 3805, 3805, 3549, 3806, 3549, 3549, 01885 3549, 3549, 3806, 3806, 3806, 3807, 3808, 3807, 3809, 3549, 01886 3810, 3809, 3549, 3549, 3549, 3549, 3549, 3811, 3549, 3812, 01887 3549, 3812, 3813, 3549, 3549, 3813, 3814, 3549, 3814, 3814, 01888 01889 3815, 3549, 3549, 3815, 3816, 3816, 3816, 3817, 3549, 3549, 01890 3549, 3817, 3549, 3818, 3549, 3818, 3818, 3549, 3549, 3549, 01891 3549, 3549, 3549, 3549, 3819, 3819, 3549, 3820, 3819, 3819, 01892 3821, 3821, 3549, 3549, 3549, 3549, 3822, 3822, 3823, 3823, 01893 3824, 3825, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3826, 01894 3826, 3827, 3549, 3549, 3827, 3549, 3549, 3828, 3828, 3828, 01895 3829, 3549, 3829, 3830, 3549, 3549, 3831, 3549, 3549, 3549, 01896 3549, 3832, 3832, 3833, 3832, 3834, 3835, 3834, 3835, 3549, 01897 3549, 3549, 3549, 3549, 3549, 3836, 3549, 3837, 3549, 3838, 01898 3839, 3549, 3549, 3549, 3549, 3549, 3840, 3840, 3841, 3841, 01899 01900 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3842, 01901 3843, 3844, 3842, 3842, 3845, 3846, 3847, 3848, 3849, 3850, 01902 3848, 3848, 3851, 3852, 3853, 3851, 3549, 3549, 3549, 3549, 01903 3549, 3549, 3854, 3855, 3856, 3854, 3549, 3549, 3549, 3549, 01904 3549, 3549, 3549, 3857, 3857, 3857, 3549, 3858, 3859, 3549, 01905 3859, 3549, 3549, 3859, 3549, 3549, 3860, 3860, 3860, 3549, 01906 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01907 3861, 3861, 3862, 3863, 3864, 3549, 3549, 3549, 3864, 3863, 01908 3549, 3865, 3865, 3866, 3867, 3549, 3549, 3867, 3549, 3868, 01909 3549, 3869, 3549, 3549, 3549, 3870, 3870, 3871, 3870, 3872, 01910 01911 3873, 3872, 3873, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01912 3549, 3549, 3874, 3549, 3549, 3549, 3874, 3874, 3875, 3875, 01913 3875, 3549, 3549, 3549, 3549, 3875, 3875, 3876, 3549, 3549, 01914 3549, 3549, 3549, 3549, 3549, 3549, 3875, 3877, 3549, 3549, 01915 3877, 3549, 3878, 3549, 3549, 3549, 3549, 3549, 3549, 3878, 01916 3549, 3549, 3549, 3549, 3549, 3549, 3879, 3880, 3549, 3881, 01917 3882, 3882, 3883, 3884, 3885, 3549, 3886, 3887, 3549, 3888, 01918 3549, 3549, 3889, 3890, 3549, 3891, 3891, 3549, 3549, 3892, 01919 3893, 3894, 3895, 3896, 3897, 3549, 3898, 3899, 3899, 3900, 01920 3901, 3902, 3899, 3549, 3549, 3549, 3549, 3903, 3549, 3549, 01921 01922 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3904, 3549, 3549, 01923 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01924 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01925 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3905, 01926 3549, 3549, 3549, 3906, 3549, 3549, 3907, 3908, 3549, 3909, 01927 3549, 3549, 3910, 3549, 3549, 3549, 3911, 3549, 3912, 3904, 01928 3549, 3549, 3549, 3913, 3913, 3913, 3913, 3913, 3913, 3913, 01929 3913, 3549, 3914, 3914, 3914, 3549, 3549, 3914, 3914, 3914, 01930 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 01931 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 01932 01933 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 01934 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3549, 3549, 3915, 01935 3916, 3549, 3910, 3549, 3911, 3549, 3549, 3549, 3549, 3549, 01936 3549, 3549, 3549, 3549, 3549, 3910, 3549, 3549, 3911, 3549, 01937 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3917, 3549, 01938 3549, 3918, 3919, 3920, 3549, 3549, 3549, 3549, 3549, 3549, 01939 3921, 3549, 3549, 3922, 3922, 3923, 3924, 3925, 3926, 3927, 01940 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01941 3928, 3928, 3549, 3929, 3929, 3929, 3930, 3931, 3932, 3932, 01942 3549, 3933, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01943 01944 3910, 3549, 3911, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01945 3549, 3549, 3934, 3935, 3549, 3936, 3936, 3549, 3549, 3549, 01946 3549, 3549, 3937, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01947 3549, 3549, 3938, 3549, 3939, 3939, 3549, 3940, 3549, 3941, 01948 3942, 3549, 3549, 3943, 3549, 3549, 3549, 3549, 3549, 3549, 01949 3944, 3945, 3549, 3549, 3549, 3946, 3549, 3549, 3549, 3947, 01950 3549, 3549, 3549, 3948, 3549, 3549, 3549, 3949, 3549, 3950, 01951 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01952 3549, 3549, 3549, 3549, 3951, 3549, 3952, 3549, 3549, 3549, 01953 3953, 3954, 3549, 3549, 3955, 3956, 3549, 3549, 3549, 3549, 01954 01955 3549, 3957, 3957, 3958, 3549, 3549, 3549, 3549, 3549, 3549, 01956 3549, 3549, 3549, 3959, 3549, 3549, 3549, 3549, 3549, 3549, 01957 3549, 3549, 3960, 3961, 3962, 3549, 3549, 3549, 3549, 3549, 01958 3963, 3963, 3549, 3964, 3549, 3965, 3966, 3967, 3966, 3549, 01959 3968, 3969, 3970, 3971, 3972, 3549, 3549, 3549, 3549, 3973, 01960 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01961 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01962 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01963 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01964 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3974, 3974, 3975, 01965 01966 3549, 3549, 3976, 3976, 3549, 3977, 3978, 3979, 3549, 3549, 01967 3549, 3549, 3549, 3980, 3549, 3549, 3549, 3549, 3549, 3981, 01968 3549, 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3982, 3983, 01969 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983, 01970 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983, 01971 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983, 01972 3983, 3549, 3983, 3983, 3983, 3983, 3983, 3983, 3983, 3983, 01973 3983, 3983, 3983, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01974 3549, 3549, 3549, 3549, 3549, 3984, 3984, 3549, 3984, 3984, 01975 3984, 3984, 3549, 3984, 3985, 3549, 3986, 3987, 3549, 3549, 01976 01977 3549, 3988, 3549, 3989, 3990, 3991, 3549, 3549, 3549, 3549, 01978 3549, 3992, 3992, 3549, 3993, 3993, 3993, 3994, 3995, 3549, 01979 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01980 3996, 3997, 3997, 3549, 3549, 3549, 3549, 3549, 3998, 3549, 01981 3549, 3549, 3549, 3999, 3549, 4000, 3549, 3549, 3549, 3549, 01982 4001, 4002, 3549, 3549, 4003, 3549, 3549, 4004, 3549, 3549, 01983 4005, 3549, 3549, 4006, 3549, 4007, 3549, 3549, 3549, 3549, 01984 3549, 4008, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01985 4009, 3549, 3549, 3549, 3549, 3549, 4010, 4010, 3549, 3549, 01986 3549, 4011, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01987 01988 3549, 4012, 4012, 4013, 4014, 4014, 4015, 3549, 4016, 4016, 01989 4017, 4018, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01990 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01991 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01992 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01993 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 01994 3549, 3549, 3549, 3549, 3549, 3549, 4019, 3549, 4020, 3549, 01995 4021, 4021, 4022, 4023, 3549, 4024, 4024, 4025, 3549, 4026, 01996 4026, 4026, 4026, 4026, 4026, 4026, 4026, 4027, 4027, 4027, 01997 4027, 4027, 4027, 4027, 4027, 4027, 4027, 3549, 3549, 3549, 01998 01999 3549, 3549, 3549, 4027, 4027, 4027, 4027, 4027, 4027, 4027, 02000 4027, 4027, 4027, 4027, 4027, 4027, 4027, 4027, 4027, 4027, 02001 4027, 4027, 4027, 3549, 3549, 4027, 4027, 4027, 4027, 4027, 02002 4027, 4027, 4027, 4027, 4027, 4027, 4027, 3549, 3549, 3549, 02003 3549, 3549, 3549, 3549, 3549, 4028, 4028, 4028, 4028, 4028, 02004 4028, 4028, 3549, 3549, 4029, 3549, 3549, 3549, 3549, 4030, 02005 3549, 3549, 3549, 3549, 4031, 4031, 3549, 4032, 4032, 4032, 02006 4032, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02007 4033, 4033, 3549, 3549, 3549, 3549, 3549, 3549, 4034, 3549, 02008 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02009 02010 4035, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02011 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02012 3549, 3549, 3549, 3549, 4036, 4036, 3549, 3549, 3549, 3549, 02013 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02014 4037, 4037, 4015, 4016, 4018, 3549, 3549, 3549, 3549, 2321, 02015 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02016 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02017 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02018 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02019 3549, 3549, 3549, 4038, 4020, 3549, 4023, 4024, 4026, 4026, 02020 02021 4026, 4026, 4026, 4026, 4026, 4026, 4026, 4027, 4027, 4027, 02022 4027, 4027, 3549, 3549, 4027, 3549, 4027, 4027, 3549, 3549, 02023 3549, 4027, 4027, 4027, 4027, 4027, 4027, 4027, 4027, 4027, 02024 4027, 4027, 4027, 4027, 4027, 4027, 4027, 4027, 4027, 4027, 02025 4027, 3549, 3549, 4027, 4027, 4027, 4027, 4027, 4027, 4027, 02026 3549, 3549, 3549, 3549, 4027, 4027, 4027, 3549, 3549, 3549, 02027 3549, 3549, 3549, 3549, 4028, 3549, 4028, 4028, 4028, 3549, 02028 3549, 4028, 4028, 3549, 4030, 3549, 4031, 4032, 4032, 4032, 02029 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 4033, 3549, 02030 4039, 3549, 4035, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02031 02032 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02033 3549, 3549, 3549, 4036, 3549, 3549, 3549, 3549, 3549, 3549, 02034 3549, 3549, 3549, 3549, 3549, 3549, 3549, 4037, 3549, 3549, 02035 3549, 4018, 3549, 3549, 3549, 3549, 2321, 3549, 3549, 3549, 02036 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02037 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02038 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02039 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02040 3549, 3549, 4026, 4026, 4026, 4026, 4026, 4026, 4026, 4026, 02041 4027, 4027, 4027, 4027, 4027, 4027, 3549, 3549, 3549, 3549, 02042 02043 4027, 3549, 3549, 4027, 4027, 3549, 3549, 3549, 4027, 4027, 02044 4027, 3549, 4027, 4027, 3549, 3549, 4027, 4027, 3549, 4027, 02045 4027, 4027, 4027, 4027, 3549, 3549, 4027, 4027, 3549, 3549, 02046 2810, 4027, 3549, 3549, 3549, 4027, 4027, 4027, 3549, 3549, 02047 4027, 4027, 4027, 3549, 3549, 3549, 3549, 3549, 3549, 4028, 02048 4028, 3549, 3549, 3549, 3549, 4028, 3549, 4030, 4031, 4032, 02049 4032, 4032, 4040, 3549, 3549, 3549, 4041, 4033, 3549, 4039, 02050 4042, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02051 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02052 3549, 3549, 3549, 3549, 3549, 3549, 4043, 3549, 3549, 3549, 02053 02054 3549, 4018, 3549, 3549, 3549, 2321, 3549, 3549, 3549, 3549, 02055 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02056 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02057 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02058 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 4026, 02059 4026, 4026, 4026, 4026, 4026, 3549, 4026, 4027, 4027, 4027, 02060 4027, 4027, 3549, 3549, 3549, 3549, 4027, 3549, 3549, 4027, 02061 4027, 3549, 3549, 3549, 3549, 3549, 3549, 4027, 4027, 4027, 02062 4027, 3549, 3549, 3549, 3549, 4027, 3549, 3549, 4027, 4027, 02063 4027, 4027, 4027, 3549, 4027, 4027, 3549, 3549, 4027, 3549, 02064 02065 3549, 3549, 4027, 3549, 3549, 4027, 3549, 3549, 3549, 3549, 02066 4028, 4028, 4028, 3549, 4030, 4032, 4032, 4032, 4040, 4044, 02067 3549, 3549, 3549, 4041, 4045, 3549, 4042, 3549, 3549, 3549, 02068 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02069 3549, 3549, 3549, 3549, 3549, 3549, 3549, 4018, 3549, 2321, 02070 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02071 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02072 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02073 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 4026, 4026, 02074 4026, 3549, 4026, 4026, 4026, 4027, 4027, 3549, 4027, 3549, 02075 02076 3549, 4027, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 4027, 02077 3549, 4027, 3549, 3549, 4027, 3549, 4027, 4027, 4027, 3549, 02078 4027, 4027, 4027, 3549, 3549, 4027, 3549, 3549, 3549, 3549, 02079 3549, 3549, 4027, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02080 4030, 4032, 4044, 3549, 4045, 3549, 3549, 3549, 3549, 3549, 02081 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02082 3549, 3549, 3549, 4018, 3549, 2321, 3549, 3549, 3549, 3549, 02083 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02084 3549, 3549, 3549, 4046, 3549, 3549, 3549, 3549, 3549, 3549, 02085 3549, 3549, 3549, 4026, 4026, 3549, 4026, 3549, 3549, 4027, 02086 02087 4027, 4027, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02088 3549, 4027, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 4027, 02089 4027, 4027, 3549, 3549, 4027, 4027, 4027, 4027, 3549, 3549, 02090 3549, 4027, 3549, 3549, 3549, 3549, 3549, 4032, 3549, 3549, 02091 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02092 3549, 3549, 3549, 3549, 4018, 2321, 3549, 3549, 3549, 3549, 02093 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 4046, 3549, 02094 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 4026, 3549, 02095 3549, 4027, 3549, 3549, 3549, 3549, 4027, 3549, 3549, 4047, 02096 4048, 4027, 4027, 3549, 3549, 3549, 4027, 4027, 4027, 4027, 02097 02098 3549, 3549, 4027, 3549, 3549, 4032, 4049, 4050, 3549, 3549, 02099 3549, 3549, 3549, 3549, 3549, 2321, 3549, 3549, 3549, 3549, 02100 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 4026, 02101 4027, 3549, 3549, 3549, 3549, 3549, 4048, 3549, 4027, 4027, 02102 3549, 4027, 4027, 4027, 3549, 3549, 3549, 3549, 3549, 4049, 02103 4051, 4050, 4052, 3549, 3549, 2321, 3549, 3549, 3549, 3549, 02104 3549, 3549, 3549, 3549, 3549, 3549, 4026, 3549, 3549, 3549, 02105 4027, 3549, 3549, 4027, 4027, 3549, 3549, 3549, 4051, 4052, 02106 2321, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 4026, 3549, 02107 3549, 3549, 4027, 4027, 2321, 3549, 3549, 3549, 3549, 4026, 02108 02109 3549, 3549, 4027, 3549, 3549, 2321, 3549, 3549, 3549, 3549, 02110 3549, 3549, 3549, 3549, 3549, 3549, 2321, 3549, 3549, 3549, 02111 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 02112 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 02113 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 02114 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 02115 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 02116 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 02117 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 02118 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 02119 02120 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 02121 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 02122 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 02123 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 02124 3549, 2321, 3549, 2321, 3549, 2321, 3549, 2321, 0, 3549, 02125 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02126 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02127 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02128 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02129 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02130 02131 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02132 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02133 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02134 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02135 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02136 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02137 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02138 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02139 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02140 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02141 02142 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02143 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02144 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02145 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02146 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02147 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02148 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02149 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02150 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02151 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02152 02153 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02154 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02155 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02156 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02157 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02158 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02159 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02160 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02161 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02162 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02163 02164 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02165 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02166 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02167 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02168 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02169 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02170 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02171 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02172 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02173 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02174 02175 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02176 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02177 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02178 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02179 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 02180 3549, 3549 02181 } ; 02182 02183 static yyconst flex_int16_t yy_nxt[25532] = 02184 { 0, 02185 3549, 3549, 245, 3549, 245, 3549, 246, 247, 246, 247, 02186 1181, 248, 3549, 248, 1181, 1048, 1058, 1059, 3549, 249, 02187 1049, 249, 244, 244, 245, 244, 244, 244, 246, 247, 02188 250, 244, 244, 248, 244, 244, 244, 244, 244, 244, 02189 244, 249, 244, 244, 244, 244, 244, 244, 244, 244, 02190 244, 244, 244, 244, 251, 251, 251, 251, 251, 251, 02191 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 02192 251, 251, 251, 244, 244, 244, 251, 251, 251, 251, 02193 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 02194 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 02195 02196 251, 244, 244, 244, 253, 254, 253, 253, 1056, 255, 02197 256, 1332, 1333, 1057, 257, 253, 254, 253, 253, 245, 02198 255, 256, 258, 304, 305, 257, 245, 2002, 306, 1051, 02199 304, 305, 1051, 258, 1082, 306, 307, 1082, 1120, 1283, 02200 1052, 1120, 1097, 307, 308, 245, 309, 1098, 1284, 246, 02201 247, 308, 2002, 309, 248, 259, 1065, 1065, 1065, 1065, 02202 1107, 1139, 249, 1066, 1139, 1108, 259, 244, 260, 261, 02203 262, 260, 263, 246, 247, 264, 244, 244, 248, 244, 02204 244, 244, 244, 244, 244, 265, 249, 244, 244, 244, 02205 244, 244, 266, 267, 244, 244, 244, 244, 244, 268, 02206 02207 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 02208 268, 268, 268, 268, 268, 268, 268, 268, 244, 244, 02209 244, 268, 268, 268, 268, 268, 268, 268, 268, 268, 02210 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 02211 268, 268, 268, 268, 268, 268, 269, 244, 270, 244, 02212 271, 272, 273, 271, 274, 246, 247, 275, 244, 276, 02213 248, 277, 244, 276, 278, 279, 278, 244, 280, 244, 02214 244, 244, 244, 244, 281, 276, 282, 276, 244, 244, 02215 283, 284, 284, 284, 284, 284, 284, 284, 284, 284, 02216 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 02217 02218 277, 244, 244, 284, 285, 284, 284, 284, 284, 284, 02219 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 02220 284, 286, 284, 284, 284, 284, 284, 284, 269, 244, 02221 274, 287, 287, 288, 287, 287, 287, 289, 290, 291, 02222 287, 287, 292, 287, 287, 287, 287, 287, 287, 287, 02223 293, 287, 287, 287, 287, 287, 294, 287, 287, 287, 02224 287, 287, 287, 295, 295, 295, 295, 295, 295, 295, 02225 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 02226 295, 295, 287, 287, 287, 295, 295, 295, 295, 295, 02227 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 02228 02229 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 02230 287, 287, 287, 287, 287, 288, 287, 287, 287, 289, 02231 290, 296, 287, 287, 292, 287, 287, 287, 287, 287, 02232 287, 287, 293, 287, 287, 287, 287, 287, 287, 287, 02233 287, 287, 287, 287, 287, 297, 297, 297, 297, 297, 02234 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 02235 297, 297, 297, 297, 287, 287, 287, 297, 297, 297, 02236 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 02237 297, 297, 297, 297, 297, 297, 297, 297, 297, 298, 02238 297, 297, 299, 287, 287, 244, 244, 245, 244, 244, 02239 02240 244, 246, 247, 300, 244, 244, 248, 244, 301, 244, 02241 244, 244, 244, 244, 249, 244, 244, 244, 244, 244, 02242 244, 244, 244, 244, 244, 244, 244, 302, 302, 302, 02243 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 02244 302, 302, 302, 302, 302, 302, 244, 244, 244, 302, 02245 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 02246 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 02247 302, 302, 302, 302, 244, 244, 244, 310, 311, 312, 02248 310, 311, 310, 313, 314, 315, 310, 310, 316, 310, 02249 310, 310, 310, 310, 310, 310, 317, 310, 310, 310, 02250 02251 310, 310, 310, 318, 310, 310, 310, 310, 310, 319, 02252 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 02253 319, 319, 319, 319, 319, 319, 319, 319, 320, 310, 02254 310, 319, 319, 319, 319, 319, 319, 319, 319, 319, 02255 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 02256 319, 319, 319, 319, 319, 319, 321, 310, 310, 322, 02257 322, 323, 322, 322, 322, 324, 325, 326, 322, 322, 02258 327, 322, 322, 322, 322, 322, 322, 322, 328, 322, 02259 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 02260 322, 329, 329, 329, 329, 329, 329, 329, 329, 329, 02261 02262 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 02263 322, 322, 322, 329, 329, 329, 329, 329, 329, 329, 02264 329, 329, 329, 329, 329, 329, 329, 329, 329, 329, 02265 329, 329, 329, 329, 329, 329, 329, 329, 330, 322, 02266 322, 244, 331, 332, 333, 331, 244, 246, 247, 334, 02267 244, 244, 248, 244, 244, 244, 278, 335, 278, 244, 02268 280, 244, 244, 244, 244, 244, 336, 267, 337, 244, 02269 335, 244, 283, 338, 338, 338, 338, 338, 338, 338, 02270 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 02271 338, 338, 244, 244, 244, 338, 338, 338, 338, 338, 02272 02273 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 02274 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 02275 339, 244, 244, 341, 342, 341, 341, 1140, 343, 344, 02276 1141, 2546, 1111, 345, 341, 342, 341, 341, 1112, 343, 02277 344, 346, 2547, 1048, 345, 245, 1048, 1114, 1049, 349, 02278 247, 1049, 346, 1048, 350, 351, 245, 1655, 1049, 352, 02279 349, 247, 249, 1048, 1175, 350, 351, 1175, 1049, 353, 02280 352, 1655, 245, 249, 1048, 1294, 356, 357, 1294, 1049, 02281 353, 358, 417, 418, 417, 417, 359, 246, 247, 360, 02282 245, 347, 248, 1187, 356, 357, 361, 348, 1188, 358, 02283 02284 427, 405, 347, 2548, 359, 406, 407, 360, 348, 1385, 02285 408, 245, 1239, 1386, 361, 246, 247, 1240, 409, 1255, 02286 248, 1176, 354, 1427, 1256, 1428, 410, 2549, 249, 1096, 02287 1096, 1096, 1096, 354, 244, 362, 363, 364, 362, 365, 02288 246, 366, 367, 368, 369, 248, 370, 244, 369, 371, 02289 372, 371, 373, 374, 375, 375, 375, 375, 375, 376, 02290 377, 378, 379, 244, 380, 381, 382, 382, 382, 382, 02291 382, 382, 382, 382, 382, 382, 382, 382, 382, 383, 02292 382, 382, 382, 382, 382, 384, 244, 244, 385, 386, 02293 382, 387, 388, 389, 390, 391, 382, 392, 393, 394, 02294 02295 395, 396, 382, 397, 382, 398, 399, 400, 401, 402, 02296 382, 382, 382, 403, 244, 365, 405, 1699, 245, 1056, 02297 406, 407, 444, 445, 1057, 408, 1048, 446, 447, 448, 02298 1732, 1049, 1427, 409, 1428, 449, 1186, 1186, 1186, 1186, 02299 1733, 410, 244, 411, 412, 411, 411, 413, 246, 247, 02300 414, 244, 244, 248, 244, 244, 244, 244, 244, 244, 02301 244, 249, 244, 244, 244, 244, 244, 415, 244, 244, 02302 244, 244, 244, 244, 416, 416, 416, 416, 416, 416, 02303 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 02304 416, 416, 416, 244, 244, 244, 416, 416, 416, 416, 02305 02306 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 02307 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 02308 416, 244, 244, 413, 244, 417, 418, 417, 417, 244, 02309 246, 247, 419, 244, 244, 248, 420, 244, 244, 244, 02310 421, 244, 244, 422, 244, 244, 244, 244, 244, 244, 02311 423, 244, 424, 244, 244, 244, 425, 425, 425, 425, 02312 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 02313 425, 425, 425, 425, 425, 426, 244, 244, 425, 425, 02314 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 02315 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 02316 02317 425, 425, 425, 244, 244, 244, 417, 418, 417, 417, 02318 1048, 246, 247, 245, 1048, 1049, 248, 246, 428, 1049, 02319 1111, 1699, 248, 429, 427, 1319, 1112, 430, 1319, 245, 02320 249, 1292, 2552, 246, 428, 1114, 431, 432, 248, 429, 02321 1272, 1320, 1655, 430, 1320, 1273, 249, 1089, 1089, 1089, 02322 1089, 1655, 431, 432, 434, 435, 434, 434, 1272, 436, 02323 437, 1299, 1048, 1273, 438, 439, 440, 1049, 2553, 441, 02324 1115, 1088, 442, 434, 435, 434, 434, 245, 436, 437, 02325 1669, 246, 247, 438, 439, 440, 248, 2554, 441, 1670, 02326 430, 442, 245, 1297, 249, 451, 444, 445, 1298, 452, 02327 02328 453, 446, 447, 448, 454, 1323, 430, 1342, 1343, 449, 02329 1324, 451, 455, 474, 1301, 452, 453, 475, 476, 456, 02330 454, 2477, 477, 478, 1054, 1054, 1054, 1054, 455, 2478, 02331 479, 1054, 1054, 1054, 1054, 456, 474, 480, 481, 562, 02332 475, 476, 1055, 563, 564, 477, 478, 1320, 565, 1055, 02333 1320, 1328, 2118, 479, 1328, 530, 566, 1329, 1344, 1345, 02334 480, 481, 1330, 555, 245, 2176, 555, 1331, 556, 557, 02335 562, 1919, 457, 558, 563, 564, 559, 1402, 2555, 565, 02336 1402, 560, 1260, 1260, 1260, 1260, 1920, 566, 457, 433, 02337 458, 459, 458, 458, 433, 436, 437, 460, 433, 433, 02338 02339 438, 433, 433, 433, 433, 461, 433, 433, 462, 433, 02340 433, 433, 433, 433, 461, 461, 433, 463, 433, 433, 02341 433, 464, 464, 464, 464, 464, 464, 464, 464, 464, 02342 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 02343 433, 433, 433, 464, 465, 464, 466, 464, 464, 464, 02344 464, 464, 464, 464, 464, 464, 467, 468, 464, 464, 02345 469, 470, 471, 464, 472, 464, 464, 464, 461, 433, 02346 433, 245, 1337, 2556, 245, 483, 484, 1338, 483, 484, 02347 485, 1568, 1569, 485, 490, 491, 492, 490, 486, 493, 02348 494, 486, 1323, 1347, 495, 2557, 1347, 1340, 490, 491, 02349 02350 492, 490, 496, 493, 494, 1427, 1348, 1428, 495, 1061, 02351 1061, 1061, 1061, 1048, 497, 1427, 496, 1428, 1049, 1350, 02352 487, 1552, 488, 487, 1351, 488, 1062, 2558, 497, 490, 02353 491, 492, 490, 1063, 493, 494, 1427, 1553, 1428, 495, 02354 490, 491, 492, 490, 1048, 493, 494, 496, 1429, 1049, 02355 495, 490, 491, 492, 490, 1358, 493, 494, 496, 497, 02356 1359, 495, 498, 499, 1083, 1083, 1083, 1083, 2067, 496, 02357 497, 1084, 1061, 1061, 1061, 1061, 498, 499, 2068, 1430, 02358 1626, 501, 490, 491, 492, 490, 532, 493, 494, 1062, 02359 533, 534, 495, 1627, 1361, 535, 1063, 532, 536, 1362, 02360 02361 496, 533, 534, 537, 2559, 1626, 535, 498, 500, 536, 02362 555, 245, 501, 555, 537, 556, 557, 2519, 498, 500, 02363 558, 1415, 245, 559, 1415, 2520, 246, 247, 560, 498, 02364 502, 248, 569, 570, 1648, 1649, 538, 592, 1048, 249, 02365 245, 593, 594, 1049, 246, 247, 595, 538, 1048, 248, 02366 569, 570, 1424, 1049, 596, 1424, 1526, 249, 2560, 1526, 02367 498, 502, 244, 244, 245, 244, 244, 244, 246, 247, 02368 503, 244, 244, 248, 244, 244, 244, 244, 244, 244, 02369 244, 249, 244, 244, 244, 244, 244, 244, 504, 244, 02370 244, 244, 244, 244, 505, 505, 505, 505, 505, 505, 02371 02372 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 02373 505, 505, 505, 244, 244, 244, 505, 505, 505, 505, 02374 505, 505, 505, 505, 505, 505, 505, 505, 505, 506, 02375 505, 505, 505, 505, 505, 505, 505, 505, 505, 505, 02376 505, 244, 244, 244, 244, 507, 508, 507, 507, 509, 02377 246, 247, 510, 244, 244, 248, 244, 244, 244, 244, 02378 244, 244, 244, 249, 244, 244, 244, 244, 244, 511, 02379 244, 244, 244, 244, 244, 244, 512, 512, 512, 512, 02380 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 02381 512, 512, 512, 512, 512, 244, 244, 244, 512, 512, 02382 02383 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 02384 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 02385 512, 512, 512, 244, 244, 509, 514, 515, 1910, 514, 02386 1371, 516, 517, 1353, 2561, 1372, 518, 524, 515, 1373, 02387 524, 1374, 516, 525, 519, 1354, 1911, 518, 514, 526, 02388 1355, 514, 1678, 527, 517, 519, 520, 1375, 518, 245, 02389 1048, 1678, 1832, 246, 247, 1049, 528, 520, 248, 1678, 02390 2562, 1833, 1086, 1087, 1087, 1086, 249, 521, 520, 514, 02391 526, 2563, 514, 1678, 527, 517, 532, 1048, 521, 518, 02392 539, 534, 1049, 1332, 1333, 540, 1088, 528, 536, 529, 02393 02394 2469, 1835, 532, 537, 522, 523, 539, 534, 592, 520, 02395 1836, 540, 593, 594, 536, 522, 523, 595, 2470, 537, 02396 1087, 1087, 1087, 1087, 515, 596, 521, 521, 541, 542, 02397 529, 1342, 1343, 518, 1391, 1048, 538, 530, 515, 1391, 02398 1049, 543, 541, 542, 1088, 2564, 1394, 518, 544, 1399, 02399 1064, 1395, 538, 520, 1400, 543, 1406, 521, 521, 547, 02400 548, 1407, 544, 549, 550, 2089, 1416, 520, 551, 547, 02401 548, 1417, 1444, 549, 550, 245, 552, 1445, 551, 246, 02402 247, 2090, 1272, 1048, 248, 245, 552, 1273, 1049, 246, 02403 247, 603, 249, 1048, 248, 604, 605, 2075, 1049, 2076, 02404 02405 606, 545, 249, 1090, 1090, 1090, 1090, 2077, 607, 553, 02406 1091, 572, 573, 572, 572, 545, 574, 575, 2565, 553, 02407 1950, 576, 572, 573, 572, 572, 643, 574, 575, 577, 02408 644, 645, 576, 1456, 1950, 646, 1456, 578, 1457, 579, 02409 577, 1194, 245, 647, 1048, 2298, 246, 247, 578, 1049, 02410 579, 248, 567, 568, 1082, 1608, 245, 1082, 1608, 249, 02411 246, 247, 567, 568, 1655, 248, 1494, 580, 608, 581, 02412 2298, 1495, 1048, 249, 1609, 245, 2567, 1049, 1655, 246, 02413 247, 580, 1503, 581, 248, 582, 583, 1504, 1082, 245, 02414 1196, 1082, 249, 246, 247, 1427, 1197, 1428, 248, 582, 02415 02416 583, 1198, 1199, 245, 1200, 1507, 249, 585, 586, 245, 02417 1508, 1513, 587, 585, 586, 2568, 1514, 1048, 587, 643, 02418 588, 2569, 1049, 644, 645, 245, 588, 1521, 646, 651, 02419 652, 2570, 1522, 1048, 653, 1048, 647, 1916, 1049, 668, 02420 1049, 1048, 654, 669, 670, 1048, 1049, 1719, 671, 655, 02421 1049, 2571, 589, 2572, 590, 1720, 672, 1721, 589, 2573, 02422 590, 244, 244, 245, 244, 244, 244, 246, 247, 597, 02423 244, 244, 248, 244, 244, 244, 244, 244, 244, 244, 02424 249, 244, 244, 244, 244, 244, 244, 598, 244, 244, 02425 244, 244, 244, 599, 599, 599, 599, 599, 599, 599, 02426 02427 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 02428 599, 599, 244, 244, 244, 599, 599, 599, 600, 599, 02429 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, 02430 599, 599, 599, 599, 599, 599, 601, 599, 599, 599, 02431 244, 244, 244, 603, 1835, 245, 1048, 604, 605, 610, 02432 611, 1049, 606, 1836, 612, 1101, 1101, 1101, 1101, 245, 02433 607, 2574, 613, 610, 611, 1048, 1102, 1181, 612, 2575, 02434 1049, 1181, 616, 617, 616, 616, 613, 618, 619, 1088, 02435 2576, 1545, 620, 1048, 1527, 621, 1546, 1527, 1049, 622, 02436 623, 616, 617, 616, 616, 1528, 618, 619, 1048, 2577, 02437 02438 614, 620, 624, 1551, 621, 1558, 1900, 245, 622, 623, 02439 1559, 651, 652, 668, 614, 1901, 653, 669, 670, 2578, 02440 608, 624, 671, 624, 654, 1172, 1172, 1172, 1172, 2579, 02441 672, 655, 1173, 1244, 1244, 1244, 1244, 2580, 1120, 2581, 02442 1245, 1120, 624, 244, 244, 245, 244, 244, 244, 246, 02443 247, 625, 244, 244, 248, 244, 244, 244, 244, 244, 02444 244, 244, 249, 244, 244, 244, 244, 244, 244, 626, 02445 244, 244, 244, 244, 244, 627, 627, 627, 627, 627, 02446 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 02447 627, 627, 627, 627, 244, 244, 244, 627, 627, 627, 02448 02449 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 02450 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, 02451 627, 627, 244, 244, 244, 244, 244, 245, 244, 244, 02452 244, 246, 247, 628, 244, 244, 248, 244, 244, 244, 02453 244, 244, 244, 244, 249, 244, 244, 244, 244, 244, 02454 244, 244, 244, 244, 244, 244, 244, 629, 629, 629, 02455 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 02456 629, 629, 629, 629, 629, 629, 244, 244, 244, 629, 02457 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 02458 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 02459 02460 629, 629, 629, 629, 244, 244, 244, 631, 1950, 631, 02461 1048, 632, 633, 632, 633, 1049, 634, 1950, 634, 1118, 02462 1118, 1118, 1118, 680, 635, 1048, 635, 681, 682, 2582, 02463 1049, 2053, 683, 680, 684, 2583, 1554, 681, 682, 1554, 02464 685, 1048, 683, 1119, 684, 2053, 1049, 692, 1048, 1555, 02465 685, 693, 694, 1049, 1589, 2584, 695, 1589, 696, 2054, 02466 636, 1590, 636, 1591, 697, 245, 637, 1591, 637, 246, 02467 247, 1344, 1345, 2054, 248, 746, 638, 639, 638, 639, 02468 1139, 2585, 249, 1139, 640, 641, 640, 641, 244, 244, 02469 245, 244, 244, 244, 246, 247, 648, 244, 244, 248, 02470 02471 244, 244, 244, 244, 244, 244, 244, 249, 244, 244, 02472 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 02473 649, 649, 649, 649, 649, 649, 649, 649, 649, 649, 02474 649, 649, 649, 649, 649, 649, 649, 649, 649, 244, 02475 244, 244, 649, 649, 649, 649, 649, 649, 649, 649, 02476 649, 649, 649, 649, 649, 649, 649, 649, 649, 649, 02477 649, 649, 649, 649, 649, 649, 649, 244, 244, 244, 02478 656, 657, 418, 657, 657, 656, 658, 659, 660, 656, 02479 656, 661, 656, 656, 656, 656, 662, 656, 656, 663, 02480 656, 656, 656, 656, 656, 656, 664, 656, 656, 656, 02481 02482 656, 656, 665, 665, 665, 665, 665, 665, 665, 665, 02483 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 02484 665, 656, 656, 656, 665, 665, 665, 665, 665, 665, 02485 665, 665, 665, 665, 665, 665, 665, 665, 665, 665, 02486 665, 665, 665, 665, 665, 665, 665, 665, 665, 666, 02487 656, 656, 244, 244, 245, 244, 244, 244, 246, 247, 02488 673, 244, 244, 248, 674, 244, 244, 244, 244, 244, 02489 244, 249, 244, 244, 244, 244, 244, 675, 676, 244, 02490 244, 244, 244, 244, 677, 677, 677, 677, 677, 677, 02491 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 02492 02493 677, 677, 677, 244, 244, 244, 677, 677, 677, 677, 02494 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 02495 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 02496 677, 678, 244, 244, 244, 244, 245, 244, 244, 244, 02497 246, 247, 686, 244, 244, 248, 687, 244, 244, 244, 02498 688, 244, 244, 249, 244, 244, 244, 244, 244, 689, 02499 676, 244, 244, 244, 244, 244, 690, 690, 690, 690, 02500 690, 690, 690, 690, 690, 690, 690, 690, 690, 690, 02501 690, 690, 690, 690, 690, 244, 244, 244, 690, 690, 02502 690, 690, 690, 690, 690, 690, 690, 690, 690, 690, 02503 02504 690, 690, 690, 690, 690, 690, 690, 690, 690, 690, 02505 690, 690, 690, 678, 244, 244, 692, 1048, 2586, 245, 02506 693, 694, 1049, 246, 247, 695, 245, 696, 248, 1048, 02507 246, 247, 1111, 697, 1049, 248, 249, 245, 1112, 2589, 02508 1048, 246, 247, 249, 698, 1049, 248, 1114, 699, 2590, 02509 1615, 698, 245, 1615, 249, 245, 246, 247, 245, 246, 02510 247, 248, 246, 247, 248, 1048, 699, 248, 1616, 249, 02511 1049, 1427, 249, 1428, 245, 249, 706, 2591, 246, 247, 02512 1622, 2209, 706, 248, 746, 1623, 1145, 1145, 1145, 1145, 02513 700, 249, 701, 2592, 245, 2209, 702, 1620, 246, 247, 02514 02515 1620, 2233, 703, 248, 1146, 747, 704, 705, 700, 1650, 02516 701, 249, 1650, 2593, 702, 1290, 1291, 1291, 1290, 2594, 02517 703, 1292, 1651, 1621, 704, 705, 244, 707, 245, 244, 02518 707, 244, 246, 247, 708, 244, 244, 248, 709, 244, 02519 244, 244, 244, 244, 244, 249, 244, 244, 244, 244, 02520 244, 244, 244, 244, 244, 244, 244, 244, 710, 710, 02521 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 02522 710, 710, 710, 710, 710, 710, 710, 244, 244, 244, 02523 710, 710, 710, 711, 710, 710, 710, 710, 710, 710, 02524 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 02525 02526 710, 712, 710, 710, 710, 244, 244, 244, 244, 244, 02527 245, 244, 244, 244, 246, 247, 713, 244, 244, 248, 02528 244, 244, 244, 244, 244, 244, 244, 249, 244, 244, 02529 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 02530 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 02531 714, 714, 714, 714, 714, 714, 714, 714, 714, 244, 02532 244, 244, 714, 714, 714, 714, 714, 714, 714, 714, 02533 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 02534 714, 714, 714, 714, 714, 714, 714, 244, 244, 244, 02535 245, 1614, 1624, 1641, 246, 247, 2596, 1625, 1623, 248, 02536 02537 245, 715, 2210, 1617, 246, 247, 2377, 249, 1618, 248, 02538 245, 715, 2249, 1624, 246, 247, 2210, 249, 1642, 248, 02539 1645, 747, 2286, 716, 1708, 1646, 2249, 249, 1147, 1147, 02540 1147, 1147, 1772, 716, 717, 718, 2286, 719, 1291, 1291, 02541 1291, 1291, 2057, 2058, 717, 718, 1148, 719, 244, 244, 02542 245, 244, 244, 244, 246, 247, 720, 244, 244, 248, 02543 244, 244, 244, 244, 244, 244, 244, 249, 244, 244, 02544 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 02545 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 02546 721, 721, 721, 721, 721, 721, 721, 721, 721, 244, 02547 02548 244, 244, 721, 721, 721, 721, 721, 721, 721, 721, 02549 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 02550 721, 721, 721, 721, 721, 721, 721, 244, 244, 244, 02551 244, 244, 245, 244, 244, 244, 246, 247, 722, 244, 02552 244, 248, 244, 244, 244, 244, 244, 244, 244, 249, 02553 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 02554 244, 244, 723, 723, 723, 723, 723, 723, 723, 723, 02555 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 02556 723, 244, 244, 244, 723, 723, 723, 723, 723, 723, 02557 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 02558 02559 723, 723, 723, 723, 723, 723, 723, 723, 723, 244, 02560 244, 244, 725, 726, 725, 725, 778, 727, 728, 2642, 02561 779, 780, 729, 730, 731, 781, 782, 732, 733, 1653, 02562 734, 1694, 1139, 783, 1654, 1139, 1695, 735, 736, 245, 02563 737, 738, 739, 246, 247, 1978, 1051, 1702, 248, 1051, 02564 778, 2643, 1703, 757, 779, 780, 249, 1052, 2658, 781, 02565 782, 245, 740, 758, 731, 246, 247, 783, 2113, 2114, 02566 248, 788, 789, 788, 788, 757, 790, 791, 249, 1704, 02567 2659, 792, 793, 794, 1705, 758, 2113, 2120, 1978, 795, 02568 741, 731, 725, 726, 725, 725, 800, 727, 728, 2660, 02569 02570 801, 802, 729, 730, 731, 803, 2661, 732, 733, 1111, 02571 734, 1175, 2662, 804, 1175, 1112, 1978, 735, 736, 805, 02572 737, 738, 739, 245, 1114, 2072, 245, 760, 761, 800, 02573 760, 761, 762, 801, 802, 762, 1051, 2073, 803, 1051, 02574 763, 2074, 740, 763, 731, 2663, 804, 1052, 764, 1725, 02575 765, 764, 805, 765, 1182, 1182, 1182, 1182, 1726, 1716, 02576 1874, 1183, 1717, 1184, 1727, 1875, 1729, 1184, 1176, 1730, 02577 741, 731, 244, 742, 743, 742, 742, 244, 246, 247, 02578 744, 244, 244, 248, 244, 244, 244, 244, 244, 244, 02579 244, 249, 244, 244, 244, 244, 244, 244, 244, 244, 02580 02581 244, 244, 244, 244, 745, 745, 745, 745, 745, 745, 02582 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 02583 745, 745, 745, 244, 244, 244, 745, 745, 745, 745, 02584 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 02585 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 02586 745, 244, 244, 244, 244, 748, 749, 748, 748, 244, 02587 246, 247, 750, 244, 751, 248, 244, 244, 751, 244, 02588 752, 244, 244, 753, 244, 244, 244, 244, 244, 244, 02589 754, 244, 755, 244, 244, 244, 756, 756, 756, 756, 02590 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, 02591 02592 756, 756, 756, 756, 756, 244, 244, 244, 756, 756, 02593 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, 02594 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, 02595 756, 756, 756, 244, 244, 244, 766, 767, 768, 767, 02596 767, 769, 770, 771, 772, 766, 766, 773, 766, 766, 02597 766, 766, 766, 766, 766, 774, 766, 766, 766, 766, 02598 766, 775, 766, 766, 766, 766, 766, 766, 776, 776, 02599 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 02600 776, 776, 776, 776, 776, 776, 776, 766, 766, 766, 02601 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 02602 02603 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 02604 776, 776, 776, 776, 776, 766, 766, 769, 245, 1877, 02605 2664, 245, 246, 247, 1878, 246, 247, 248, 784, 785, 02606 248, 784, 785, 1320, 1320, 249, 1320, 1320, 249, 788, 02607 789, 788, 788, 245, 790, 791, 2287, 483, 484, 792, 02608 793, 794, 485, 788, 789, 788, 788, 795, 790, 791, 02609 486, 1391, 2299, 792, 793, 1051, 1391, 786, 1051, 2287, 02610 786, 795, 788, 789, 788, 788, 1052, 790, 791, 797, 02611 245, 798, 792, 793, 897, 898, 1655, 2299, 2665, 899, 02612 795, 900, 487, 1319, 912, 1655, 1319, 901, 797, 1292, 02613 02614 798, 244, 244, 245, 244, 244, 244, 246, 247, 806, 02615 244, 244, 248, 244, 244, 244, 244, 244, 244, 244, 02616 249, 244, 244, 244, 244, 244, 244, 244, 244, 244, 02617 244, 244, 244, 807, 807, 807, 807, 807, 807, 807, 02618 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 02619 807, 807, 244, 244, 244, 807, 807, 807, 807, 807, 02620 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 02621 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 02622 244, 244, 244, 244, 244, 245, 244, 244, 244, 246, 02623 247, 808, 244, 244, 248, 244, 244, 244, 244, 244, 02624 02625 244, 244, 249, 244, 244, 244, 244, 244, 244, 809, 02626 244, 244, 244, 244, 244, 810, 810, 810, 810, 810, 02627 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 02628 810, 810, 810, 810, 244, 244, 244, 810, 810, 810, 02629 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 02630 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 02631 810, 810, 244, 244, 244, 812, 2667, 812, 1391, 813, 02632 814, 813, 814, 1391, 815, 1402, 815, 816, 1402, 816, 02633 2053, 812, 817, 812, 817, 819, 814, 819, 814, 2053, 02634 820, 1415, 820, 816, 1415, 816, 2054, 822, 817, 822, 02635 02636 817, 823, 824, 823, 824, 2054, 825, 1424, 825, 826, 02637 1424, 826, 2668, 1111, 827, 818, 827, 818, 822, 1112, 02638 822, 1948, 829, 824, 829, 824, 1949, 830, 1114, 830, 02639 826, 818, 826, 818, 832, 827, 1622, 827, 833, 834, 02640 2669, 1623, 1736, 835, 836, 837, 2673, 828, 832, 828, 02641 1737, 838, 833, 834, 2209, 1738, 1855, 835, 836, 837, 02642 1683, 1608, 840, 2209, 1608, 838, 841, 842, 828, 840, 02643 828, 843, 848, 841, 842, 2210, 849, 850, 843, 844, 02644 1609, 851, 852, 853, 2210, 1837, 844, 848, 1837, 854, 02645 856, 849, 850, 2249, 857, 858, 851, 852, 853, 859, 02646 02647 1669, 856, 2249, 1879, 854, 857, 863, 860, 1641, 1670, 02648 859, 865, 866, 1623, 865, 914, 867, 868, 860, 915, 02649 916, 869, 870, 871, 917, 865, 866, 1855, 865, 872, 02650 867, 868, 918, 2113, 2114, 869, 870, 871, 1328, 845, 02651 846, 1328, 1347, 872, 1329, 1347, 845, 846, 434, 435, 02652 434, 434, 245, 436, 437, 1348, 1012, 1013, 438, 894, 02653 895, 1014, 2674, 441, 1871, 919, 442, 861, 862, 1015, 02654 1060, 1061, 1061, 1060, 1258, 1258, 1258, 1258, 861, 862, 02655 874, 875, 874, 874, 1871, 876, 877, 1062, 2084, 1259, 02656 878, 879, 880, 2085, 1063, 2678, 1985, 2679, 881, 434, 02657 02658 435, 434, 434, 2680, 436, 437, 882, 2326, 883, 438, 02659 894, 895, 2327, 1997, 441, 245, 1997, 442, 245, 897, 02660 898, 2352, 483, 484, 899, 2353, 900, 485, 903, 904, 02661 903, 903, 901, 905, 906, 486, 2113, 2120, 907, 908, 02662 909, 1985, 1608, 910, 1637, 1608, 911, 1637, 1064, 1427, 02663 2681, 1428, 884, 874, 875, 874, 874, 1638, 876, 877, 02664 2682, 1609, 1639, 878, 879, 880, 2683, 487, 1985, 912, 02665 1621, 881, 903, 904, 903, 903, 1835, 905, 906, 882, 02666 2684, 883, 907, 908, 909, 1836, 2685, 910, 914, 1917, 02667 911, 914, 790, 923, 1835, 790, 923, 792, 924, 925, 02668 02669 792, 924, 925, 1836, 1456, 926, 245, 1456, 926, 1457, 02670 1006, 1007, 2686, 1527, 2687, 1008, 1527, 1009, 1291, 1291, 02671 1291, 1291, 2688, 1010, 1528, 884, 885, 885, 886, 885, 02672 885, 885, 887, 888, 889, 885, 885, 890, 885, 885, 02673 885, 885, 885, 885, 885, 891, 885, 885, 885, 885, 02674 885, 885, 892, 885, 885, 885, 885, 885, 893, 893, 02675 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, 02676 893, 893, 893, 893, 893, 893, 893, 885, 885, 885, 02677 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, 02678 893, 893, 893, 893, 893, 893, 893, 893, 893, 893, 02679 02680 893, 893, 893, 893, 893, 892, 885, 885, 914, 2533, 02681 914, 2377, 915, 916, 920, 916, 2598, 917, 2690, 921, 02682 1145, 1145, 1145, 1145, 914, 918, 914, 918, 920, 916, 02683 790, 791, 2533, 921, 1554, 792, 2692, 1554, 1146, 1604, 02684 914, 918, 1604, 926, 790, 791, 2534, 1555, 1427, 792, 02685 1428, 927, 1671, 928, 2008, 1671, 1672, 926, 919, 930, 02686 919, 1924, 1924, 931, 932, 927, 1605, 928, 933, 2534, 02687 1673, 934, 937, 930, 919, 937, 935, 931, 932, 1945, 02688 1945, 1615, 933, 1615, 1615, 938, 1615, 940, 936, 940, 02689 935, 941, 942, 941, 942, 1606, 943, 2008, 943, 1616, 02690 02691 1953, 1616, 936, 930, 944, 1953, 944, 947, 948, 936, 02692 245, 1957, 949, 1607, 953, 954, 945, 930, 945, 955, 02693 950, 947, 948, 936, 245, 2008, 949, 956, 953, 954, 02694 1957, 245, 951, 955, 950, 1006, 1007, 945, 1961, 945, 02695 1008, 956, 1009, 1961, 1965, 245, 951, 1017, 1010, 1012, 02696 1013, 1018, 1019, 951, 1014, 1965, 1020, 1150, 1150, 1150, 02697 1150, 957, 1015, 1589, 1021, 1017, 1589, 951, 2060, 1018, 02698 1019, 2061, 1591, 2694, 1020, 957, 1591, 958, 1971, 1971, 02699 2695, 1152, 1021, 1300, 1300, 1300, 1300, 1356, 1356, 1356, 02700 1356, 958, 959, 960, 961, 960, 960, 959, 962, 963, 02701 02702 964, 959, 959, 965, 959, 959, 959, 959, 959, 959, 02703 959, 966, 959, 959, 959, 959, 959, 959, 967, 959, 02704 959, 959, 959, 959, 968, 968, 968, 968, 968, 968, 02705 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 02706 968, 968, 968, 969, 959, 959, 968, 968, 968, 968, 02707 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 02708 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 02709 968, 959, 959, 959, 244, 970, 971, 970, 970, 244, 02710 246, 247, 972, 244, 244, 248, 244, 244, 244, 244, 02711 244, 244, 244, 249, 244, 244, 244, 244, 244, 244, 02712 02713 244, 244, 244, 244, 244, 244, 973, 973, 973, 973, 02714 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 02715 973, 973, 973, 973, 973, 244, 244, 244, 973, 973, 02716 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 02717 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, 02718 973, 973, 973, 244, 244, 244, 245, 2695, 245, 2696, 02719 975, 976, 975, 976, 2017, 977, 978, 977, 978, 1077, 02720 1077, 1077, 1077, 979, 2018, 979, 1150, 1150, 1150, 1150, 02721 1078, 1135, 1135, 1135, 1135, 2697, 1062, 2017, 1147, 1147, 02722 1147, 1147, 2424, 1063, 1080, 1081, 2698, 2699, 1136, 2018, 02723 02724 1152, 1145, 1145, 1145, 1145, 1138, 1148, 2425, 1258, 1258, 02725 1258, 1258, 2700, 1310, 1310, 1310, 1310, 2701, 1997, 1146, 02726 1311, 1997, 980, 1259, 980, 981, 982, 983, 982, 982, 02727 984, 985, 986, 987, 981, 981, 988, 989, 990, 981, 02728 981, 981, 981, 981, 991, 981, 981, 981, 981, 981, 02729 992, 981, 981, 981, 981, 981, 981, 993, 993, 993, 02730 993, 993, 993, 993, 993, 993, 993, 993, 993, 993, 02731 993, 993, 993, 993, 993, 993, 981, 981, 981, 993, 02732 993, 993, 993, 993, 993, 993, 993, 993, 993, 993, 02733 993, 993, 993, 993, 993, 993, 993, 993, 993, 993, 02734 02735 993, 993, 993, 993, 981, 981, 984, 995, 245, 2702, 02736 995, 1837, 996, 997, 1837, 1838, 2703, 998, 995, 245, 02737 2704, 995, 2705, 996, 997, 999, 2706, 2707, 998, 1839, 02738 3549, 3549, 3549, 3549, 1000, 2020, 999, 3549, 1023, 1024, 02739 1427, 1023, 1428, 1025, 1026, 1000, 1620, 2016, 1027, 1620, 02740 2016, 1028, 1033, 1024, 2708, 1033, 1029, 1025, 1026, 2709, 02741 1638, 1709, 1027, 1001, 1030, 1034, 1710, 1711, 1031, 1712, 02742 1035, 2713, 1621, 1604, 1001, 1669, 1604, 2714, 1030, 1002, 02743 2020, 1003, 1031, 1837, 1670, 1004, 1837, 1838, 2481, 1032, 02744 1002, 1751, 1003, 1037, 1751, 1752, 1004, 1038, 1039, 1040, 02745 02746 1605, 1839, 1041, 1032, 1753, 1042, 2715, 2020, 3549, 1427, 02747 1043, 1428, 1068, 1068, 1068, 1068, 1069, 1671, 1044, 1070, 02748 1671, 1754, 1045, 1072, 1072, 1072, 1072, 2716, 2587, 1606, 02749 1073, 1127, 1128, 1128, 1127, 2027, 1063, 2588, 1129, 2717, 02750 1062, 2718, 1754, 1045, 1040, 1046, 1037, 1607, 1046, 2719, 02751 1038, 1039, 1040, 2721, 2691, 1041, 2232, 2691, 1047, 1101, 02752 1101, 1101, 1101, 1043, 2722, 1087, 1087, 1087, 1087, 1093, 02753 1102, 1044, 1094, 2723, 2724, 1045, 1101, 1101, 1101, 1101, 02754 2725, 1589, 1751, 1088, 1589, 1751, 1822, 1102, 1650, 1088, 02755 1591, 1650, 1069, 1131, 1591, 1823, 1045, 1040, 2726, 2710, 02756 02757 1088, 1651, 2710, 1075, 1133, 1133, 1133, 1133, 2727, 1132, 02758 2733, 1129, 1754, 2734, 1104, 1128, 1128, 1128, 1128, 1427, 02759 2720, 1428, 1129, 1177, 1177, 1177, 1177, 1178, 1755, 2736, 02760 1179, 1755, 1756, 1754, 1105, 1147, 1147, 1147, 1147, 1201, 02761 1201, 1201, 1201, 2720, 2739, 1093, 1757, 1152, 1201, 1201, 02762 1201, 1201, 2740, 1148, 1201, 1201, 1201, 1201, 1758, 1201, 02763 1201, 1201, 1201, 1152, 2741, 1203, 1131, 2482, 1054, 1054, 02764 1054, 1054, 1152, 2742, 1203, 2745, 2746, 1131, 1152, 1758, 02765 1203, 2747, 3549, 1152, 1837, 1203, 1055, 1837, 1902, 1201, 02766 1201, 1201, 1201, 3549, 1149, 1150, 1150, 1149, 2748, 2749, 02767 02768 1151, 1204, 1903, 1178, 2751, 2753, 2755, 1207, 1201, 1201, 02769 1201, 1201, 2756, 1152, 1208, 1203, 2757, 2758, 1152, 1201, 02770 1201, 1201, 1201, 2759, 1153, 1242, 1242, 1242, 1242, 2762, 02771 2763, 2764, 1152, 2016, 1203, 1427, 2016, 1428, 1154, 1242, 02772 1242, 1242, 1242, 1152, 1155, 1203, 1638, 1156, 1157, 1243, 02773 1158, 1159, 1160, 2765, 2766, 1219, 1161, 1162, 1163, 1164, 02774 1165, 2743, 1166, 1243, 1167, 1168, 1169, 1170, 1171, 2767, 02775 2744, 2096, 1209, 2689, 2096, 1210, 2364, 1211, 2768, 2769, 02776 1111, 1212, 1201, 1201, 1201, 1201, 1112, 1201, 1201, 1201, 02777 1201, 1201, 1201, 1201, 1201, 1114, 2770, 1201, 1201, 1201, 02778 02779 1201, 1201, 1201, 1201, 1201, 2771, 1152, 2016, 1203, 2197, 02780 2016, 1152, 2197, 1203, 2455, 1152, 2772, 1203, 2773, 1837, 02781 1638, 1152, 1837, 1203, 2774, 1152, 2775, 1203, 1201, 1201, 02782 1201, 1201, 2776, 1054, 1054, 1054, 1054, 1879, 1213, 2036, 02783 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1214, 1218, 02784 1220, 1055, 1152, 2780, 1203, 2781, 1215, 1217, 1216, 1201, 02785 1201, 1201, 1201, 1221, 1152, 1111, 1203, 2782, 1152, 2596, 02786 1203, 1112, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 02787 1114, 2377, 1111, 1152, 2802, 1203, 1222, 2778, 1112, 1201, 02788 1201, 1201, 1201, 2803, 1225, 1223, 1152, 1114, 1203, 2829, 02789 02790 1152, 1224, 1203, 1201, 1201, 1201, 1201, 2830, 1145, 1145, 02791 1145, 1145, 2304, 1152, 1226, 1203, 2844, 1227, 2845, 2846, 02792 2847, 1229, 1251, 1251, 1251, 1251, 1146, 1152, 2849, 1203, 02793 1228, 1230, 2850, 2851, 1231, 1242, 1242, 1242, 1242, 1247, 02794 2264, 2856, 1248, 2264, 2857, 2501, 1243, 2760, 1253, 1147, 02795 1147, 1147, 1147, 1232, 2761, 1233, 2779, 1235, 2860, 1243, 02796 1234, 1274, 1274, 1274, 1274, 1236, 2861, 1148, 2862, 2863, 02797 1237, 1286, 1286, 1286, 1286, 1303, 1303, 1303, 1303, 2864, 02798 1275, 2865, 2866, 1287, 1303, 1303, 1303, 1303, 1308, 1308, 02799 1308, 1308, 1304, 1326, 1326, 1326, 1326, 2867, 2869, 1306, 02800 02801 2872, 1304, 1308, 1308, 1308, 1308, 2691, 2873, 1306, 2691, 02802 2874, 1327, 1309, 2870, 2876, 1247, 1261, 1261, 1261, 1261, 02803 1308, 1308, 1308, 1308, 1313, 2877, 1309, 1314, 1308, 1308, 02804 1308, 1308, 1334, 1334, 1334, 1334, 2878, 2879, 1307, 1356, 02805 1356, 1356, 1356, 1262, 1309, 1369, 1369, 1369, 1369, 1427, 02806 1335, 1428, 1309, 1369, 1369, 1369, 1369, 1380, 1380, 1380, 02807 1380, 1054, 1054, 1054, 1054, 2880, 1145, 1145, 1145, 1145, 02808 1263, 2881, 1264, 1985, 1381, 1147, 1147, 1147, 1147, 1055, 02809 2882, 2883, 1265, 1266, 1146, 2884, 1267, 1268, 1269, 2868, 02810 1270, 2885, 2886, 1148, 1403, 1403, 1403, 1403, 2887, 2888, 02811 02812 1313, 1409, 1409, 1409, 1409, 1411, 1411, 1411, 1411, 1054, 02813 1054, 1054, 1054, 1054, 1054, 1054, 1054, 2889, 1410, 1145, 02814 1145, 1145, 1145, 1147, 1147, 1147, 1147, 1055, 2890, 1413, 02815 2891, 1055, 1450, 1450, 1450, 1450, 2892, 1146, 2893, 1451, 02816 2894, 1148, 1450, 1450, 1450, 1450, 2895, 2896, 2897, 1451, 02817 3549, 3549, 3549, 3549, 2898, 2899, 2900, 3549, 1453, 1453, 02818 1453, 1453, 2901, 1458, 1458, 1458, 1458, 1099, 2904, 2908, 02819 1459, 1454, 1460, 2909, 2910, 2911, 1460, 1458, 1458, 1458, 02820 1458, 2912, 2913, 2914, 1459, 1755, 1460, 2915, 1755, 1824, 02821 1460, 3549, 3549, 3549, 3549, 2916, 2917, 2918, 3549, 2711, 02822 02823 3549, 2919, 2711, 1825, 3549, 1458, 1458, 1458, 1458, 2920, 02824 2712, 2921, 1459, 2875, 1460, 1758, 2875, 2922, 1460, 1145, 02825 1145, 1145, 1145, 1147, 1147, 1147, 1147, 1462, 1462, 1462, 02826 1462, 1466, 1466, 1466, 1466, 2710, 1758, 1146, 2710, 2924, 02827 2926, 1148, 1467, 1470, 1470, 1470, 1470, 1470, 1470, 1470, 02828 1470, 1472, 1472, 1472, 1472, 1468, 2927, 2930, 1473, 1469, 02829 2931, 1470, 1470, 1470, 1470, 1475, 2933, 1471, 1476, 2934, 02830 2935, 1471, 1470, 1470, 1470, 1470, 2936, 1464, 1480, 1480, 02831 1480, 1480, 2937, 2942, 2945, 1471, 1482, 1482, 1482, 1482, 02832 1481, 1489, 1489, 1489, 1489, 2946, 1471, 1483, 1489, 1489, 02833 02834 1489, 1489, 1492, 1492, 1492, 1492, 1529, 1529, 1529, 1529, 02835 2947, 1484, 1529, 1529, 1529, 1529, 1541, 1541, 1541, 1541, 02836 1493, 1537, 1537, 1537, 1537, 1541, 1541, 1541, 1541, 2948, 02837 2949, 1542, 1538, 1716, 2964, 2968, 1485, 2839, 2969, 2972, 02838 1542, 1475, 1543, 1543, 1543, 1543, 1539, 1556, 1556, 1556, 02839 1556, 2997, 2840, 2711, 1560, 1561, 2711, 1562, 2998, 1563, 02840 1555, 2999, 1564, 1565, 2712, 1550, 1571, 1571, 1571, 1571, 02841 3004, 1540, 1566, 1572, 1567, 1571, 1571, 1571, 1571, 3005, 02842 3008, 3009, 1572, 1576, 1576, 1576, 1576, 1582, 1582, 1582, 02843 1582, 3010, 3011, 3012, 1583, 1577, 3013, 3014, 1578, 1539, 02844 02845 1582, 1582, 1582, 1582, 3016, 3017, 3018, 1583, 1586, 1586, 02846 1586, 1586, 1594, 1594, 1594, 1594, 1574, 3019, 3021, 1587, 02847 1594, 1594, 1594, 1594, 3022, 1574, 1596, 1596, 1596, 1596, 02848 1628, 3023, 3024, 1597, 3026, 1427, 1595, 1428, 1594, 1594, 02849 1594, 1594, 1599, 3028, 1595, 1600, 1594, 1594, 1594, 1594, 02850 1652, 1652, 1652, 1652, 3030, 3029, 1629, 1630, 3029, 1631, 02851 3031, 1632, 1595, 1651, 1633, 1634, 3032, 1628, 1644, 2481, 02852 1595, 2272, 1629, 1630, 1635, 1631, 1636, 1632, 3033, 2272, 02853 1633, 1634, 1054, 1054, 1054, 1054, 1060, 1061, 1061, 1060, 02854 1635, 2875, 1636, 1985, 2875, 1061, 1061, 1061, 1061, 3034, 02855 02856 1055, 3035, 3036, 1062, 1072, 1072, 1072, 1072, 3037, 3038, 02857 1063, 1073, 1062, 1065, 1065, 1065, 1065, 3039, 1599, 1063, 02858 1066, 1062, 3549, 3549, 3549, 3549, 3040, 3041, 2292, 3549, 02859 1656, 1656, 1656, 1656, 1068, 1068, 1068, 1068, 3042, 2292, 02860 2897, 1078, 1065, 1065, 1065, 1065, 3044, 3045, 3046, 1066, 02861 1077, 1077, 1077, 1077, 3047, 1080, 1081, 3049, 1063, 3549, 02862 3052, 1078, 3549, 3053, 1064, 3054, 3549, 1062, 3055, 3056, 02863 1072, 1072, 1072, 1072, 1063, 1080, 1081, 1073, 3549, 3549, 02864 3549, 3549, 3057, 3059, 1075, 3549, 3060, 1062, 1659, 1659, 02865 1659, 1659, 3061, 3062, 3064, 3549, 1661, 1661, 1661, 1661, 02866 02867 3065, 3066, 3067, 1662, 3068, 1062, 1664, 1664, 1664, 1664, 02868 1069, 3069, 3073, 1070, 1077, 1077, 1077, 1077, 1077, 1077, 02869 1077, 1077, 3080, 3081, 3082, 1083, 1083, 1083, 1083, 1078, 02870 1063, 1062, 1084, 1930, 3078, 1062, 1930, 1931, 1063, 1080, 02871 1081, 3086, 1063, 1080, 1081, 3549, 3549, 3549, 3549, 3079, 02872 1075, 1931, 3549, 1656, 1656, 1656, 1656, 3087, 3549, 1086, 02873 1087, 1087, 1086, 1932, 1078, 1087, 1087, 1087, 1087, 1089, 02874 1089, 1089, 1089, 1090, 1090, 1090, 1090, 2564, 1080, 1081, 02875 1091, 2090, 1751, 1088, 1932, 1751, 1069, 3100, 3101, 1088, 02876 3104, 3106, 3107, 1088, 3549, 3549, 3549, 3549, 3108, 3105, 02877 02878 3109, 3549, 1666, 1666, 1666, 1666, 3124, 1090, 1090, 1090, 02879 1090, 3125, 1754, 1102, 1091, 1101, 1101, 1101, 1101, 1096, 02880 1096, 1096, 1096, 3131, 3132, 3134, 1102, 1674, 1674, 1674, 02881 1674, 1093, 3135, 1754, 1094, 3136, 3140, 1064, 3142, 1088, 02882 2468, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 3549, 02883 3144, 1088, 1102, 3549, 3146, 3147, 1102, 1101, 1101, 1101, 02884 1101, 1101, 1101, 1101, 1101, 1088, 2272, 3151, 1102, 1088, 02885 2272, 3152, 1102, 1118, 1118, 1118, 1118, 1127, 1128, 1128, 02886 1127, 1088, 3153, 3154, 1129, 1088, 1128, 1128, 1128, 1128, 02887 3155, 3156, 3029, 1129, 3156, 3029, 2292, 1119, 3549, 3549, 02888 02889 3549, 3549, 3157, 3158, 3159, 3549, 3158, 1093, 1135, 1135, 02890 1135, 1135, 3148, 3149, 2292, 1677, 1135, 1135, 1135, 1135, 02891 1133, 1133, 1133, 1133, 3160, 1136, 3161, 1129, 1676, 3162, 02892 3163, 3168, 1138, 1136, 1688, 1688, 1688, 1688, 3169, 1131, 02893 1138, 1689, 1135, 1135, 1135, 1135, 3170, 3172, 1131, 3173, 02894 1135, 1135, 1135, 1135, 3174, 1132, 1701, 1701, 1701, 1701, 02895 1145, 1145, 1145, 1145, 3549, 2942, 1138, 1136, 1147, 1147, 02896 1147, 1147, 3175, 3177, 1138, 3178, 3549, 3181, 1146, 3184, 02897 3185, 1687, 1131, 3186, 3187, 3189, 1148, 1707, 1707, 1707, 02898 1707, 3190, 1739, 1739, 1739, 1739, 3191, 3193, 3549, 1706, 02899 02900 1707, 1707, 1706, 3203, 3204, 1151, 1172, 1172, 1172, 1172, 02901 3208, 1152, 3209, 1173, 3549, 3549, 3549, 3549, 1203, 1175, 02902 3210, 3549, 1175, 1152, 1177, 1177, 1177, 1177, 3211, 1153, 02903 1172, 1172, 1172, 1172, 3231, 1738, 3234, 1173, 1741, 1741, 02904 1741, 1741, 1741, 1154, 1186, 1186, 1186, 1186, 1152, 1155, 02905 3235, 1716, 1156, 1157, 3233, 1158, 1159, 1160, 3238, 3239, 02906 3240, 1161, 1162, 1163, 1164, 1165, 2272, 1166, 3245, 1167, 02907 1168, 1169, 1170, 1171, 3246, 3247, 1176, 1201, 1201, 1201, 02908 1201, 1182, 1182, 1182, 1182, 3248, 2292, 3251, 1183, 1751, 02909 1184, 3252, 1751, 3253, 1184, 3549, 3549, 3549, 3549, 3254, 02910 02911 3258, 1152, 3549, 1203, 3549, 3259, 3261, 3264, 3549, 1743, 02912 1743, 1743, 1743, 1745, 1745, 1745, 1745, 3265, 1184, 1754, 02913 1744, 3156, 1184, 3270, 3156, 1746, 1747, 1760, 1760, 1760, 02914 1760, 1178, 3157, 3158, 1179, 2111, 3158, 1749, 2111, 1750, 02915 1754, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 3271, 02916 3272, 1152, 1763, 3277, 3278, 3203, 1763, 1762, 1762, 1762, 02917 1762, 1762, 1762, 1762, 1762, 2112, 3241, 3242, 1763, 3241, 02918 3104, 3284, 1763, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 02919 1762, 3285, 3243, 3244, 1763, 3243, 2112, 3286, 1763, 1201, 02920 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1776, 1776, 1776, 02921 02922 1776, 1708, 1201, 1201, 1201, 1201, 1772, 1178, 2068, 1765, 02923 3304, 1589, 3305, 1152, 1589, 1203, 3306, 1152, 1590, 1203, 02924 1591, 3309, 1766, 1767, 1591, 3310, 1152, 3311, 1203, 1768, 02925 1201, 1201, 1201, 1201, 1985, 1771, 1201, 1201, 1201, 1201, 02926 3312, 3313, 3314, 1769, 1773, 1774, 1770, 2897, 1775, 1201, 02927 1201, 1201, 1201, 3318, 1152, 1777, 1203, 2931, 3307, 3321, 02928 1152, 3307, 1203, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 02929 1201, 3308, 3322, 1152, 3308, 1203, 1201, 1201, 1201, 1201, 02930 1201, 1201, 1201, 1201, 3323, 3241, 3242, 1152, 3241, 1203, 02931 3326, 1152, 3327, 1203, 1201, 1201, 1201, 1201, 1778, 3328, 02932 02933 1152, 3329, 1203, 1780, 1152, 3332, 1203, 1779, 1201, 1201, 02934 1201, 1201, 1201, 1201, 1201, 1201, 3333, 3332, 1152, 1781, 02935 1203, 1242, 1242, 1242, 1242, 3249, 1783, 3334, 3249, 1782, 02936 3243, 3244, 1152, 3243, 1203, 3335, 1152, 3250, 1203, 3349, 02937 3016, 1785, 1985, 1755, 3354, 1243, 1755, 1784, 1201, 1201, 02938 1201, 1201, 1201, 1201, 1201, 1201, 1985, 1201, 1201, 1201, 02939 1201, 1879, 1244, 1244, 1244, 1244, 1787, 1786, 1788, 1245, 02940 2897, 3355, 1152, 1758, 1203, 2897, 1152, 3358, 1203, 3359, 02941 1789, 1152, 3360, 1203, 1790, 1201, 1201, 1201, 1201, 3361, 02942 1201, 1201, 1201, 1201, 1758, 3362, 1201, 1201, 1201, 1201, 02943 02944 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3363, 1152, 02945 1791, 1203, 3364, 1793, 1152, 3332, 1203, 3369, 1792, 1794, 02946 1152, 1795, 1203, 3370, 1152, 1985, 1203, 2897, 1152, 1796, 02947 1203, 3383, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 02948 3193, 3384, 1797, 3387, 3388, 1798, 1201, 1201, 1201, 1201, 02949 3329, 1201, 1201, 1201, 1201, 3390, 1152, 1800, 1203, 3391, 02950 1152, 3397, 1203, 1201, 1201, 1201, 1201, 3361, 1799, 3398, 02951 1152, 3399, 1203, 3401, 3402, 1152, 1801, 1203, 1201, 1201, 02952 1201, 1201, 1201, 1201, 1201, 1201, 3408, 1152, 3409, 1203, 02953 1201, 1201, 1201, 1201, 3415, 3399, 1050, 1802, 1803, 1106, 02954 02955 1109, 1805, 1152, 1804, 1203, 1110, 1152, 1109, 1203, 3249, 02956 1806, 1116, 3249, 1121, 1152, 2115, 1203, 1117, 2115, 1125, 02957 1807, 3250, 1122, 1808, 1117, 1201, 1201, 1201, 1201, 1122, 02958 1124, 1254, 1809, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 02959 1201, 1201, 1201, 1201, 1201, 1758, 1124, 1811, 1810, 1152, 02960 1271, 1203, 1201, 1201, 1201, 1201, 1190, 1152, 1812, 1203, 02961 1302, 1152, 1363, 1203, 1376, 1152, 1758, 1203, 3549, 3549, 02962 3549, 3549, 1190, 1195, 1379, 3549, 1152, 1390, 1203, 1819, 02963 1819, 1819, 1819, 1244, 1244, 1244, 1244, 1813, 1393, 1195, 02964 1245, 1251, 1251, 1251, 1251, 1814, 1821, 1821, 1821, 1821, 02965 02966 1247, 1815, 1401, 1248, 1408, 1253, 1251, 1251, 1251, 1251, 02967 1425, 1816, 1126, 1431, 1437, 1243, 1817, 1253, 1439, 1126, 02968 1243, 1251, 1251, 1251, 1251, 1258, 1258, 1258, 1258, 1497, 02969 1243, 1257, 1253, 1260, 1260, 1260, 1260, 1499, 1257, 1276, 02970 1259, 1260, 1260, 1260, 1260, 1243, 1276, 1253, 1274, 1274, 02971 1274, 1274, 1274, 1274, 1274, 1274, 1840, 1840, 1840, 1840, 02972 1286, 1286, 1286, 1286, 1533, 1575, 3307, 1275, 1364, 3307, 02973 1585, 1275, 1287, 3350, 1658, 1364, 1247, 1261, 1261, 1261, 02974 1261, 1850, 1850, 1850, 1850, 1290, 1291, 1291, 1290, 1668, 02975 1110, 1292, 1851, 1291, 1291, 1291, 1291, 1294, 3308, 1927, 02976 02977 1294, 3308, 1927, 1124, 1262, 3352, 1110, 1852, 1857, 1857, 02978 1857, 1857, 1858, 1859, 1860, 1858, 1853, 1853, 1853, 1853, 02979 1853, 1300, 1300, 1300, 1300, 1864, 1864, 1864, 1864, 1929, 02980 1180, 1263, 1865, 1264, 1190, 1303, 1303, 1303, 1303, 1303, 02981 1303, 1303, 1303, 1265, 1266, 1195, 1396, 1267, 1268, 1269, 02982 1929, 1270, 1304, 1396, 3549, 3549, 1304, 3549, 3549, 1306, 02983 1249, 3549, 3549, 1306, 1303, 1303, 1303, 1303, 1303, 1303, 02984 1303, 1303, 1308, 1308, 1308, 1308, 1310, 1310, 1310, 1310, 02985 1378, 1304, 1378, 1311, 1315, 1304, 1477, 1404, 1306, 1378, 02986 1592, 1392, 1306, 1862, 1404, 1392, 1309, 3549, 3549, 3549, 02987 02988 3549, 1601, 1392, 1432, 3549, 1310, 1310, 1310, 1310, 1392, 02989 1432, 1110, 1311, 1308, 1308, 1308, 1308, 1869, 1869, 1869, 02990 1869, 1313, 1682, 1682, 1314, 1308, 1308, 1308, 1308, 1426, 02991 1426, 1320, 1426, 1867, 1320, 1692, 1426, 1309, 1682, 1438, 02992 1440, 1309, 1873, 1873, 1873, 1873, 1438, 1440, 1888, 1309, 02993 1741, 1741, 1741, 1741, 1741, 1326, 1326, 1326, 1326, 1334, 02994 1334, 1334, 1334, 1356, 1356, 1356, 1356, 1369, 1369, 1369, 02995 1369, 2005, 1425, 1327, 1499, 2041, 2374, 1335, 1380, 1380, 02996 1380, 1380, 1380, 1380, 1380, 1380, 1498, 1889, 1889, 1889, 02997 1889, 1500, 1500, 1498, 1890, 1381, 3291, 1313, 1500, 1381, 02998 02999 1891, 1380, 1380, 1380, 1380, 1898, 1898, 1898, 1898, 1403, 03000 1403, 1403, 1403, 1411, 1411, 1411, 1411, 2532, 1381, 2531, 03001 1899, 1409, 1409, 1409, 1409, 1411, 1411, 1411, 1411, 1411, 03002 1411, 1411, 1411, 1926, 1926, 1926, 1926, 1413, 1410, 1927, 03003 2530, 1536, 1927, 1928, 1450, 1450, 1450, 1450, 1536, 2529, 03004 2528, 1451, 1928, 1413, 3549, 3549, 3549, 3549, 2292, 1109, 03005 1117, 3549, 1453, 1453, 1453, 1453, 1109, 1117, 1692, 1929, 03006 1453, 1453, 1453, 1453, 1122, 1454, 1453, 1453, 1453, 1453, 03007 1888, 1122, 2526, 1454, 1692, 2005, 2525, 1904, 1126, 1454, 03008 1929, 1458, 1458, 1458, 1458, 1126, 1888, 2524, 1459, 1425, 03009 03010 1460, 2005, 1759, 1685, 1460, 3549, 3549, 3549, 3549, 1759, 03011 1685, 1499, 3549, 1685, 3549, 1425, 1257, 1276, 3549, 1458, 03012 1458, 1458, 1458, 1257, 1276, 2523, 1459, 1499, 1460, 2522, 03013 2521, 2512, 1460, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 03014 1462, 1462, 1462, 1462, 1462, 1466, 1466, 1466, 1466, 2511, 03015 1935, 1935, 1935, 1935, 2510, 1868, 1467, 1936, 1470, 1470, 03016 1470, 1470, 1868, 1937, 1472, 1472, 1472, 1472, 3020, 1468, 03017 1364, 1473, 3549, 3549, 3549, 3549, 1378, 1364, 1378, 3549, 03018 2509, 1396, 1471, 1464, 3020, 1378, 2508, 1464, 1396, 1404, 03019 1432, 1464, 1472, 1472, 1472, 1472, 1404, 1432, 2272, 1473, 03020 03021 1470, 1470, 1470, 1470, 1941, 1941, 1941, 1941, 1475, 1438, 03022 3025, 1476, 1470, 1470, 1470, 1470, 1438, 1480, 1480, 1480, 03023 1480, 2506, 2505, 1971, 1471, 2502, 3025, 1440, 1471, 1481, 03024 1942, 1942, 1942, 1942, 1440, 1965, 1471, 1482, 1482, 1482, 03025 1482, 1943, 1489, 1489, 1489, 1489, 1961, 1957, 1483, 1947, 03026 1947, 1947, 1947, 1492, 1492, 1492, 1492, 1955, 1955, 1955, 03027 1955, 1953, 1484, 1959, 1959, 1959, 1959, 1963, 1963, 1963, 03028 1963, 1493, 1967, 1967, 1967, 1967, 1526, 2492, 1940, 1526, 03029 1529, 1529, 1529, 1529, 1475, 1940, 1498, 1485, 1973, 1973, 03030 1973, 1973, 1945, 1498, 2489, 1968, 1968, 1968, 1968, 1968, 03031 03032 1537, 1537, 1537, 1537, 1541, 1541, 1541, 1541, 1924, 1500, 03033 1500, 1538, 1543, 1543, 1543, 1543, 1500, 1536, 2486, 1542, 03034 1543, 1543, 1543, 1543, 1536, 1539, 1556, 1556, 1556, 1556, 03035 1556, 1556, 1556, 1556, 1571, 1571, 1571, 1571, 2485, 1555, 03036 1995, 1572, 3549, 3549, 3549, 3549, 2484, 1995, 2483, 3549, 03037 1540, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 1576, 03038 1576, 1576, 1576, 1577, 2480, 1392, 1578, 1577, 2024, 1392, 03039 1578, 1577, 2479, 2476, 1578, 2024, 1392, 2475, 1539, 1988, 03040 1988, 1988, 1988, 1392, 1574, 1576, 1576, 1576, 1576, 2474, 03041 2473, 2472, 3549, 1989, 1989, 1989, 1989, 1577, 1992, 1992, 03042 03043 1578, 1582, 1582, 1582, 1582, 1992, 1759, 1276, 1583, 3549, 03044 3549, 3549, 3549, 1759, 1276, 1377, 3549, 1990, 1990, 1990, 03045 1990, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 1586, 2471, 03046 2468, 2467, 1587, 2466, 2465, 2464, 1587, 1586, 1586, 1586, 03047 1586, 1594, 1594, 1594, 1594, 2044, 1868, 2044, 1587, 1596, 03048 1596, 1596, 1596, 1868, 2044, 1364, 1597, 3549, 3549, 3549, 03049 3549, 2218, 1364, 2218, 3549, 1595, 1596, 1596, 1596, 1596, 03050 2218, 2463, 1871, 1597, 1594, 1594, 1594, 1594, 1996, 1996, 03051 1996, 1996, 1599, 2458, 1940, 1600, 1594, 1594, 1594, 1594, 03052 1637, 1940, 1855, 1637, 1652, 1652, 1652, 1652, 1595, 1685, 03053 03054 2196, 1930, 1595, 1638, 1930, 2452, 1685, 1651, 1639, 1685, 03055 1595, 1652, 1652, 1652, 1652, 2451, 1621, 1656, 1656, 1656, 03056 1656, 1656, 1656, 1656, 1656, 2022, 2022, 2022, 2022, 2450, 03057 2449, 1932, 1078, 2448, 1992, 1992, 1078, 1659, 1659, 1659, 03058 1659, 1992, 1080, 1081, 2447, 1751, 1080, 1081, 1751, 1063, 03059 1080, 1081, 1932, 2446, 1062, 2445, 2444, 2443, 1599, 1659, 03060 1659, 1659, 1659, 1661, 1661, 1661, 1661, 2442, 2441, 2440, 03061 1662, 3549, 3549, 3549, 3549, 1754, 1062, 1995, 3549, 1664, 03062 1664, 1664, 1664, 1069, 1995, 2439, 1070, 1656, 1656, 1656, 03063 1656, 1666, 1666, 1666, 1666, 2438, 1754, 2379, 1078, 2377, 03064 03065 2109, 2370, 1102, 1063, 1666, 1666, 1666, 1666, 1101, 1101, 03066 1101, 1101, 1080, 1081, 2365, 1102, 2363, 2362, 2024, 1102, 03067 1674, 1674, 1674, 1674, 1093, 2024, 1276, 1094, 1101, 1101, 03068 1101, 1101, 1088, 1276, 1101, 1101, 1101, 1101, 2361, 1102, 03069 1135, 1135, 1135, 1135, 1088, 1102, 2037, 2037, 2037, 2037, 03070 2038, 2360, 1088, 2039, 2359, 2358, 2357, 1136, 1088, 1069, 03071 1688, 1688, 1688, 1688, 1138, 2356, 2044, 1689, 2044, 1364, 03072 2040, 3549, 3549, 3549, 3549, 2044, 1364, 2355, 3549, 1135, 03073 1135, 1135, 1135, 2045, 2045, 2045, 2045, 2051, 1426, 1426, 03074 1689, 1426, 2032, 2354, 2543, 1426, 2052, 2052, 2052, 2052, 03075 03076 1093, 2543, 2115, 1138, 2351, 2115, 2031, 2350, 2042, 2349, 03077 2056, 2056, 2056, 2056, 1760, 1760, 1760, 1760, 1178, 2348, 03078 2347, 1179, 1739, 1739, 1739, 1739, 2038, 2055, 2056, 2056, 03079 2055, 2346, 1758, 1151, 1152, 2345, 2344, 2343, 1152, 1739, 03080 1739, 1739, 1739, 1743, 1743, 1743, 1743, 2096, 1203, 2342, 03081 2096, 1152, 1184, 1758, 1744, 2341, 1184, 1153, 2340, 2339, 03082 2338, 2101, 2101, 2101, 2101, 1203, 1741, 1741, 1741, 1741, 03083 1741, 1154, 2102, 1776, 1776, 1776, 1776, 1155, 2337, 1276, 03084 1156, 1157, 2336, 1158, 1159, 1160, 1276, 2335, 2334, 1161, 03085 1162, 1163, 1164, 1165, 1178, 1166, 2333, 1167, 1168, 1169, 03086 03087 1170, 1171, 2098, 2098, 2098, 2098, 3027, 2034, 2332, 2099, 03088 2331, 1184, 2034, 3027, 2034, 1184, 1745, 1745, 1745, 1745, 03089 2103, 2103, 2103, 2103, 2330, 2329, 2328, 2104, 1746, 1747, 03090 2325, 1777, 2105, 1745, 1745, 1745, 1745, 2034, 2117, 2324, 03091 1749, 2117, 2034, 2323, 2034, 1746, 1747, 1762, 1762, 1762, 03092 1762, 2118, 1819, 1819, 1819, 1819, 2320, 1749, 1763, 1750, 03093 1760, 1760, 1760, 1760, 1178, 2319, 3143, 1179, 2119, 1762, 03094 1762, 1762, 1762, 3143, 1762, 1762, 1762, 1762, 1253, 2218, 03095 1763, 2218, 1699, 2316, 1152, 1763, 2315, 2314, 2218, 2119, 03096 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 2313, 1136, 03097 03098 2310, 1763, 1111, 2035, 2301, 1763, 1762, 1762, 1762, 1762, 03099 1762, 1762, 1762, 1762, 2300, 1426, 1426, 1763, 1426, 2014, 03100 2297, 1763, 1426, 2296, 1762, 1762, 1762, 1762, 2122, 2295, 03101 1762, 1762, 1762, 1762, 2294, 1763, 1201, 1201, 1201, 1201, 03102 1178, 1763, 2293, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 03103 1201, 2292, 1821, 1821, 1821, 1821, 1247, 3145, 2123, 1248, 03104 1152, 2291, 1203, 3379, 3145, 2288, 2124, 1152, 2130, 1203, 03105 3379, 1152, 2126, 1203, 2285, 2284, 1243, 2127, 2125, 2128, 03106 1201, 1201, 1201, 1201, 2283, 2132, 2282, 2281, 2131, 1201, 03107 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1993, 3380, 2129, 03108 03109 1201, 1201, 1201, 1201, 1152, 3380, 1203, 1201, 1201, 1201, 03110 1201, 1426, 1426, 1152, 1426, 1203, 2280, 1152, 1426, 1203, 03111 1201, 1201, 1201, 1201, 1152, 2278, 1203, 1840, 1840, 1840, 03112 1840, 1152, 1247, 1203, 1201, 1201, 1201, 1201, 2277, 1201, 03113 1201, 1201, 1201, 2372, 1152, 2276, 1203, 2372, 1201, 1201, 03114 1201, 1201, 2372, 2133, 1201, 1201, 1201, 1201, 1152, 2372, 03115 1203, 2134, 2138, 1152, 2135, 1203, 1201, 1201, 1201, 1201, 03116 2275, 2136, 1152, 2274, 1203, 2273, 2272, 2271, 1152, 2270, 03117 1203, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 2269, 03118 1152, 2137, 1203, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 03119 03120 1201, 1971, 2139, 1971, 2265, 1152, 2140, 1203, 1965, 1152, 03121 1965, 1203, 1961, 2141, 1961, 1426, 1426, 1152, 1426, 1203, 03122 2142, 1152, 1426, 1203, 2143, 1957, 1201, 1201, 1201, 1201, 03123 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1957, 1201, 03124 1201, 1201, 1201, 2145, 1953, 2144, 1819, 1819, 1819, 1819, 03125 1152, 2146, 1203, 1953, 1152, 2147, 1203, 2372, 1152, 2251, 03126 1203, 2372, 2250, 1152, 1945, 1203, 2372, 1201, 1201, 1201, 03127 1201, 1945, 1253, 2372, 1201, 1201, 1201, 1201, 1464, 1201, 03128 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1934, 2120, 2114, 03129 2148, 1152, 1924, 1203, 1924, 2238, 2150, 2151, 1152, 2237, 03130 03131 1203, 2236, 2149, 1152, 2235, 1203, 2234, 1152, 1427, 1203, 03132 1201, 1201, 1201, 1201, 1915, 1201, 1201, 1201, 1201, 1201, 03133 1201, 1201, 1201, 2152, 1201, 1201, 1201, 1201, 2188, 2188, 03134 2188, 2188, 2231, 2230, 1152, 2229, 1203, 2228, 2227, 1152, 03135 2154, 1203, 2226, 1152, 2153, 1203, 2225, 2224, 1152, 2223, 03136 1203, 1201, 1201, 1201, 1201, 2021, 2155, 1201, 1201, 1201, 03137 2162, 2175, 2021, 2221, 2156, 1201, 1201, 1201, 1201, 2193, 03138 2193, 2193, 2193, 2157, 2220, 1152, 1377, 1203, 2217, 2216, 03139 2215, 1152, 2214, 1203, 1201, 1201, 1201, 1201, 2213, 1152, 03140 2212, 1203, 2159, 2158, 1880, 2211, 2160, 1201, 1201, 1201, 03141 03142 1201, 1201, 1201, 1201, 1201, 1876, 1871, 1871, 1152, 2202, 03143 1203, 1201, 1201, 1201, 1201, 2161, 2201, 1201, 1201, 1201, 03144 1201, 1152, 1855, 1203, 1855, 1152, 2196, 1203, 1201, 1201, 03145 1201, 1201, 2194, 2192, 2191, 1152, 2190, 1203, 2163, 2189, 03146 2187, 1152, 2186, 1203, 1201, 1201, 1201, 1201, 2871, 2118, 03147 2164, 2871, 1152, 2185, 1203, 2871, 1201, 1201, 1201, 1201, 03148 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1152, 2165, 03149 1203, 2871, 2184, 1751, 2166, 2168, 1751, 2183, 2182, 2167, 03150 1152, 2181, 1203, 2180, 1152, 2179, 1203, 2178, 1152, 2111, 03151 1203, 2115, 2111, 2177, 2115, 2169, 2199, 2174, 1719, 2021, 03152 03153 2121, 2117, 2109, 1754, 2117, 2200, 2200, 2200, 2200, 2115, 03154 2170, 2107, 2115, 2097, 2118, 2175, 2095, 2021, 2173, 2112, 03155 2094, 1758, 2093, 2092, 1754, 2091, 2088, 2176, 2087, 2171, 03156 2086, 2119, 2172, 1850, 1850, 1850, 1850, 2083, 3351, 1758, 03157 2112, 3351, 1758, 2197, 1851, 3351, 2197, 1858, 1859, 1860, 03158 1858, 2082, 2119, 1860, 1859, 1860, 1860, 2081, 2080, 1852, 03159 1758, 3351, 1853, 1853, 1853, 1853, 1853, 1864, 1864, 1864, 03160 1864, 2079, 2078, 2071, 1865, 3549, 3549, 3549, 3549, 2070, 03161 2069, 2066, 3549, 2203, 2203, 2203, 2203, 1303, 1303, 1303, 03162 1303, 1869, 1869, 1869, 1869, 1313, 2065, 2064, 1314, 2063, 03163 03164 1304, 2062, 3353, 2059, 1304, 3353, 1699, 1306, 2207, 3353, 03165 1699, 1306, 2049, 2048, 2047, 1309, 2046, 2208, 2208, 2208, 03166 2208, 1889, 1889, 1889, 1889, 3353, 1136, 1686, 1890, 3549, 03167 3549, 3549, 3549, 2035, 1891, 2033, 3549, 1380, 1380, 1380, 03168 1380, 2030, 3549, 2029, 2021, 2205, 1898, 1898, 1898, 1898, 03169 2222, 2222, 2222, 2222, 1381, 2240, 1927, 1930, 2019, 1927, 03170 1930, 1899, 2015, 2014, 2241, 2241, 2241, 2241, 2013, 2012, 03171 2011, 1313, 1935, 1935, 1935, 1935, 2010, 2009, 2007, 1936, 03172 2006, 2004, 2021, 2021, 2003, 1937, 1929, 1932, 3549, 3549, 03173 3549, 3549, 1627, 1614, 1614, 3549, 2242, 2242, 2242, 2242, 03174 03175 2001, 3549, 2243, 2243, 2243, 2243, 1614, 1929, 1932, 1937, 03176 1941, 1941, 1941, 1941, 1475, 2000, 1999, 1476, 1942, 1942, 03177 1942, 1942, 1988, 1988, 1988, 1988, 2245, 2247, 1998, 1943, 03178 1612, 2253, 1610, 1602, 1471, 2256, 2248, 2248, 2248, 2248, 03179 2254, 2254, 2254, 2254, 2257, 2257, 2257, 2257, 2259, 1994, 03180 2264, 1993, 2262, 2264, 1581, 1581, 2267, 2260, 2260, 2260, 03181 2260, 2263, 2263, 2263, 2263, 2268, 2268, 2268, 2268, 1968, 03182 1968, 1968, 1968, 1968, 1576, 1576, 1576, 1576, 1989, 1989, 03183 1989, 1989, 1990, 1990, 1990, 1990, 1577, 1986, 1984, 1578, 03184 1475, 1990, 1990, 1990, 1990, 1996, 1996, 1996, 1996, 1599, 03185 03186 1983, 1982, 1600, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 03187 2022, 1101, 1101, 1101, 1101, 1981, 1980, 1979, 1078, 1595, 03188 1977, 1976, 1102, 2305, 2305, 2305, 2305, 1063, 1080, 1081, 03189 2306, 1063, 1080, 1081, 1975, 1088, 2308, 2308, 2308, 2308, 03190 1135, 1135, 1135, 1135, 2045, 2045, 2045, 2045, 1974, 1971, 03191 1969, 1689, 2101, 2101, 2101, 2101, 1699, 2104, 1965, 1961, 03192 2040, 1957, 2105, 2102, 1138, 2318, 2318, 2318, 2318, 2371, 03193 2371, 2371, 2371, 2371, 1953, 1599, 2289, 2289, 2289, 2289, 03194 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 03195 2289, 2289, 2289, 2289, 2289, 2289, 2290, 2290, 2290, 2290, 03196 03197 2290, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2290, 2290, 03198 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 03199 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2289, 2289, 2289, 03200 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 03201 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 03202 2290, 2290, 2290, 2290, 2290, 2289, 2289, 2289, 1101, 1101, 03203 1101, 1101, 1101, 1101, 1101, 1101, 1951, 1501, 1501, 1102, 03204 1945, 1487, 1478, 1102, 2037, 2037, 2037, 2037, 2038, 1939, 03205 1934, 2039, 1088, 1924, 1922, 1921, 1088, 2308, 2308, 2308, 03206 2308, 2038, 1918, 1915, 2309, 1913, 1912, 1909, 2040, 1135, 03207 03208 1135, 1135, 1135, 2322, 2322, 2322, 2322, 1762, 1762, 1762, 03209 1762, 2040, 2098, 2098, 2098, 2098, 1136, 1908, 1763, 2099, 03210 2303, 1184, 1907, 1138, 1906, 1184, 1905, 1152, 2302, 3549, 03211 3549, 3549, 3549, 1389, 1897, 1896, 3549, 1895, 3549, 1894, 03212 1893, 1377, 3549, 1887, 1762, 1762, 1762, 1762, 1377, 2366, 03213 2366, 2366, 2366, 1886, 2038, 1763, 1201, 1201, 1201, 1201, 03214 1885, 1884, 1883, 2312, 1882, 2382, 1881, 2038, 2321, 2322, 03215 2322, 2321, 1353, 2368, 1151, 2369, 2103, 2103, 2103, 2103, 03216 1152, 1353, 1203, 2104, 3549, 3549, 3549, 3549, 2105, 1353, 03217 1349, 3549, 1152, 1880, 1341, 2388, 3549, 1341, 1153, 1876, 03218 03219 2098, 2098, 2098, 2098, 1871, 1316, 1304, 2373, 1863, 1184, 03220 1855, 1849, 1154, 1184, 1848, 2380, 1847, 1846, 1155, 1845, 03221 1844, 1156, 1157, 1843, 1158, 1159, 1160, 1842, 1841, 1834, 03222 1161, 1162, 1163, 1164, 1165, 1831, 1166, 1830, 1167, 1168, 03223 1169, 1170, 1171, 2375, 2375, 2375, 2375, 1762, 1762, 1762, 03224 1762, 1762, 1762, 1762, 1762, 1746, 1829, 1828, 1763, 1827, 03225 1826, 1250, 1763, 1762, 1762, 1762, 1762, 1749, 1762, 1762, 03226 1762, 1762, 1818, 1206, 1763, 1762, 1762, 1762, 1762, 1763, 03227 1762, 1762, 1762, 1762, 1772, 1761, 1763, 2188, 2188, 2188, 03228 2188, 1763, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 03229 03230 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1742, 2513, 03231 2514, 2381, 1735, 2383, 2515, 1734, 1152, 2516, 1203, 1731, 03232 1152, 1728, 1203, 1724, 1152, 1723, 1203, 2517, 1152, 2518, 03233 1203, 1722, 1718, 2390, 2389, 1715, 1714, 2384, 1206, 2386, 03234 2385, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 03235 1201, 1201, 1201, 2387, 1713, 2391, 1201, 1201, 1201, 1201, 03236 1708, 1201, 1201, 1201, 1201, 1152, 1699, 1203, 1697, 1152, 03237 1696, 1203, 1693, 1152, 2392, 1203, 1201, 1201, 1201, 1201, 03238 1152, 1691, 1203, 1686, 1684, 1152, 1681, 1203, 1680, 2402, 03239 2402, 2402, 2402, 1201, 1201, 1201, 1201, 1679, 1675, 2394, 03240 03241 1152, 1099, 1203, 2193, 2193, 2193, 2193, 2188, 2188, 2188, 03242 2188, 1076, 2393, 1152, 1058, 1203, 1647, 1152, 1644, 1203, 03243 1614, 2395, 2396, 2397, 2398, 2399, 2399, 2399, 2399, 2398, 03244 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 03245 2398, 2398, 2398, 2398, 1201, 1201, 1201, 1201, 2404, 2400, 03246 1614, 2401, 2398, 2398, 2398, 2398, 1201, 1201, 1201, 1201, 03247 1614, 2405, 1201, 1201, 1201, 1201, 1614, 2403, 1152, 1612, 03248 1203, 1201, 1201, 1201, 1201, 2398, 2398, 2398, 1611, 1610, 03249 1152, 1602, 1203, 1593, 1581, 1570, 1152, 1550, 1203, 1201, 03250 1201, 1201, 1201, 1535, 1532, 1152, 1531, 1203, 1201, 1201, 03251 03252 1201, 1201, 1530, 2398, 2398, 2398, 2406, 1201, 1201, 1201, 03253 1201, 1525, 1520, 1152, 1517, 1203, 1201, 1201, 1201, 1201, 03254 1512, 1506, 1152, 1502, 1203, 1501, 2407, 1496, 2408, 1491, 03255 1487, 1152, 1478, 1203, 1201, 1201, 1201, 1201, 1465, 1449, 03256 1152, 2409, 1203, 1201, 1201, 1201, 1201, 1448, 1201, 1201, 03257 1201, 1201, 1201, 1201, 1201, 1201, 1447, 1446, 1152, 1443, 03258 1203, 1442, 2410, 1436, 1435, 2411, 1434, 1152, 1433, 1203, 03259 1423, 1422, 1152, 2412, 1203, 1421, 1152, 1420, 1203, 1201, 03260 1201, 1201, 1201, 1419, 1418, 1398, 2413, 1201, 1201, 1201, 03261 1201, 1389, 1387, 1201, 1201, 1201, 1201, 2415, 1384, 1383, 03262 03263 1377, 2414, 1370, 1152, 1367, 1203, 1201, 1201, 1201, 1201, 03264 1366, 1152, 1365, 1203, 1353, 2416, 2417, 1152, 1353, 1203, 03265 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1353, 1353, 03266 1152, 1349, 1203, 1341, 2418, 1201, 1201, 1201, 1201, 1201, 03267 1201, 1201, 1201, 1336, 1152, 1325, 1203, 2420, 1152, 1322, 03268 1203, 1201, 1201, 1201, 1201, 1316, 1299, 1296, 2419, 1152, 03269 1288, 1203, 1285, 1152, 2421, 1203, 1201, 1201, 1201, 1201, 03270 1201, 1201, 1201, 1201, 1282, 1152, 1281, 1203, 2422, 2193, 03271 2193, 2193, 2193, 1280, 1279, 1278, 2423, 1277, 1250, 1241, 03272 1152, 2424, 1203, 1206, 1152, 1193, 1203, 1201, 1201, 1201, 03273 03274 1201, 2426, 1192, 1191, 1189, 2427, 2425, 1201, 1201, 1201, 03275 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1144, 03276 1142, 1152, 1134, 1203, 1123, 1100, 2429, 1099, 2428, 1076, 03277 3549, 1152, 3549, 1203, 3549, 1152, 3549, 1203, 3549, 1152, 03278 3549, 1203, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 03279 1201, 1201, 1201, 1201, 2453, 2453, 2453, 2453, 3549, 3549, 03280 3549, 2430, 3549, 3549, 2431, 2454, 1152, 3549, 1203, 1855, 03281 1152, 3549, 1203, 2432, 1152, 2434, 1203, 2433, 2457, 2457, 03282 2457, 2457, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 03283 1303, 1303, 1303, 1303, 1380, 1380, 1380, 1380, 3549, 1304, 03284 03285 2435, 3549, 3549, 1304, 3549, 3549, 1306, 1304, 3549, 3549, 03286 1306, 1381, 3549, 3549, 1306, 1871, 3549, 3549, 3549, 2436, 03287 3549, 3549, 2437, 1924, 2462, 2462, 2462, 2462, 2222, 2222, 03288 2222, 2222, 2488, 2488, 2488, 2488, 2242, 2242, 2242, 2242, 03289 2243, 2243, 2243, 2243, 2243, 2243, 2243, 2243, 1945, 1937, 03290 2666, 2666, 2666, 2666, 3549, 3549, 3549, 2491, 2491, 2491, 03291 2491, 2460, 1953, 3549, 2245, 3549, 1957, 3549, 2245, 3549, 03292 1961, 2494, 2494, 2494, 2494, 2496, 2496, 2496, 2496, 2498, 03293 2498, 2498, 2498, 1965, 3549, 3549, 3549, 1971, 2676, 2676, 03294 2676, 2676, 2500, 2500, 2500, 2500, 2504, 2504, 2504, 2504, 03295 03296 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 03297 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 03298 2290, 2290, 2290, 2290, 2290, 2289, 2289, 2289, 2289, 2289, 03299 2289, 2289, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 03300 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 03301 2290, 2289, 2289, 2289, 2290, 2290, 2290, 2290, 2290, 2290, 03302 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 03303 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2289, 03304 2289, 2289, 2535, 2536, 3549, 3549, 3549, 2537, 3549, 3549, 03305 2538, 3549, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 03306 03307 2539, 3549, 2540, 1102, 3549, 3549, 3549, 1102, 2305, 2305, 03308 2305, 2305, 3549, 3549, 3549, 2306, 1088, 3549, 3549, 3549, 03309 1088, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 03310 2308, 2308, 2308, 2308, 2544, 2544, 2544, 2544, 2038, 3549, 03311 3549, 2309, 2308, 2308, 2308, 2308, 2541, 1135, 1135, 1135, 03312 1135, 3549, 3549, 2542, 2040, 3549, 3549, 3549, 2040, 2551, 03313 2551, 2551, 2551, 3549, 1136, 3549, 2040, 2366, 2366, 2366, 03314 2366, 1138, 2566, 2566, 2566, 2566, 2366, 2366, 2366, 2366, 03315 2104, 3549, 3549, 1152, 3549, 2105, 2375, 2375, 2375, 2375, 03316 3549, 2368, 2371, 2371, 2371, 2371, 2371, 3549, 1746, 3549, 03317 03318 2368, 3549, 2369, 3549, 3549, 2545, 1303, 1303, 1303, 1303, 03319 1749, 3549, 1750, 3549, 2038, 2550, 2551, 2551, 2550, 2104, 03320 3549, 1151, 3549, 1304, 2105, 2375, 2375, 2375, 2375, 3549, 03321 1306, 2371, 2371, 2371, 2371, 2371, 3549, 1746, 3549, 1152, 03322 1762, 1762, 1762, 1762, 3549, 1153, 3549, 3549, 3549, 1749, 03323 2403, 1763, 1762, 1762, 1762, 1762, 3549, 3549, 3549, 1154, 03324 3549, 3549, 3549, 1763, 3549, 1155, 3549, 3549, 1156, 1157, 03325 3549, 1158, 1159, 1160, 2675, 3549, 3549, 1161, 1162, 1163, 03326 1164, 1165, 3549, 1166, 3549, 1167, 1168, 1169, 1170, 1171, 03327 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 3549, 3549, 03328 03329 3549, 1763, 3549, 3549, 3549, 1763, 1762, 1762, 1762, 1762, 03330 2600, 2599, 1762, 1762, 1762, 1762, 3549, 1763, 1762, 1762, 03331 1762, 1762, 3549, 1763, 1762, 1762, 1762, 1762, 3549, 1763, 03332 1201, 1201, 1201, 1201, 3549, 1763, 3549, 3549, 3549, 3549, 03333 2735, 2735, 2735, 2735, 1201, 1201, 1201, 1201, 1201, 1201, 03334 1201, 1201, 3549, 3549, 1152, 3549, 1203, 3549, 3549, 3549, 03335 2601, 2602, 3549, 3549, 2604, 2608, 2603, 3549, 1152, 3549, 03336 1203, 3549, 1152, 2605, 1203, 1201, 1201, 1201, 1201, 3549, 03337 2606, 1201, 1201, 1201, 1201, 3549, 2607, 2609, 3549, 2610, 03338 2613, 2613, 2613, 2613, 1201, 1201, 1201, 1201, 2677, 1152, 03339 03340 3549, 1203, 3549, 3549, 3549, 1152, 3549, 1203, 2616, 2616, 03341 2616, 2616, 3549, 3549, 1152, 3549, 1203, 3549, 1152, 3549, 03342 1203, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3549, 03343 3549, 3549, 1152, 3549, 1203, 2612, 3549, 3549, 3549, 2611, 03344 1201, 1201, 1201, 1201, 3549, 1152, 3549, 1203, 3549, 1152, 03345 3549, 1203, 2402, 2402, 2402, 2402, 2621, 2621, 2621, 2621, 03346 1201, 1201, 1201, 1201, 1152, 2615, 1203, 3549, 2614, 1201, 03347 1201, 1201, 1201, 3549, 3549, 3549, 1152, 3549, 1203, 2617, 03348 1152, 3549, 1203, 3549, 1152, 3549, 1203, 1201, 1201, 1201, 03349 1201, 2618, 3549, 1152, 3549, 1203, 3549, 3549, 1201, 1201, 03350 03351 1201, 1201, 1201, 1201, 1201, 1201, 3549, 3549, 2619, 3549, 03352 3549, 1152, 3549, 1203, 1201, 1201, 1201, 1201, 1201, 1201, 03353 1201, 1201, 1152, 2620, 1203, 2623, 1152, 3549, 1203, 3549, 03354 3549, 3549, 2622, 1201, 1201, 1201, 1201, 3549, 1152, 3549, 03355 1203, 3549, 1152, 3549, 1203, 3549, 1201, 1201, 1201, 1201, 03356 3549, 3549, 3549, 2624, 3549, 2625, 3549, 1152, 3549, 1203, 03357 2737, 2738, 2738, 2737, 2626, 3549, 1201, 1201, 1201, 1201, 03358 1152, 2627, 1203, 1201, 1201, 1201, 1201, 3549, 1201, 1201, 03359 1201, 1201, 3549, 3549, 2628, 1201, 1201, 1201, 1201, 3549, 03360 1152, 2629, 1203, 1201, 1201, 1201, 1201, 1152, 3549, 1203, 03361 03362 3549, 3549, 1152, 3549, 1203, 2630, 3549, 3549, 3549, 1152, 03363 3549, 1203, 2631, 1201, 1201, 1201, 1201, 1152, 3549, 1203, 03364 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 03365 1201, 1201, 3549, 3549, 2632, 2634, 3549, 1152, 3549, 1203, 03366 3549, 3549, 3549, 2633, 1152, 3549, 1203, 3549, 1152, 2636, 03367 1203, 2635, 1152, 3549, 1203, 3549, 1201, 1201, 1201, 1201, 03368 3549, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 03369 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3549, 3549, 3549, 03370 1152, 2637, 1203, 3549, 2640, 1152, 3549, 1203, 3549, 1152, 03371 3549, 1203, 2638, 1152, 2639, 1203, 3549, 1152, 3549, 1203, 03372 03373 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 2651, 2651, 03374 2651, 2651, 2641, 1201, 1201, 1201, 1201, 2653, 2653, 2653, 03375 2653, 3549, 3549, 3549, 1152, 2646, 1203, 3549, 1152, 2645, 03376 1203, 2644, 1152, 3549, 1203, 3549, 3549, 1152, 3549, 1203, 03377 3549, 1152, 3549, 1203, 3549, 2647, 1201, 1201, 1201, 2654, 03378 1201, 1201, 1201, 1201, 2648, 1201, 1201, 1201, 1201, 3549, 03379 3549, 3549, 2649, 2752, 2752, 2752, 2752, 2650, 3549, 3549, 03380 1152, 3549, 1203, 3549, 1152, 3549, 1203, 3549, 3549, 1152, 03381 3549, 1203, 2670, 2670, 2670, 2670, 2652, 2453, 2453, 2453, 03382 2453, 3549, 3549, 2671, 1935, 1935, 1935, 1935, 2454, 3549, 03383 03384 3549, 1936, 3549, 3549, 2656, 3549, 3549, 1937, 1101, 1101, 03385 1101, 1101, 2729, 2729, 2729, 2729, 3549, 2657, 2655, 1102, 03386 3549, 3549, 3549, 1102, 2544, 2544, 2544, 2544, 2038, 3549, 03387 3549, 2309, 1088, 3549, 3549, 3549, 2730, 1135, 1135, 1135, 03388 1135, 2738, 2738, 2738, 2738, 3549, 3549, 3549, 2040, 2750, 03389 2750, 2750, 2750, 2672, 1136, 2566, 2566, 2566, 2566, 3549, 03390 3549, 1138, 3549, 3549, 2728, 1152, 2754, 2754, 2754, 2754, 03391 2777, 2777, 2777, 2777, 2098, 2098, 2098, 2098, 3549, 3549, 03392 3549, 2099, 3549, 1184, 3549, 3549, 3549, 1184, 3549, 3549, 03393 2731, 2366, 2366, 2366, 2366, 2375, 2375, 2375, 2375, 3549, 03394 03395 3549, 3549, 2732, 3549, 2038, 3549, 3549, 1746, 3549, 3549, 03396 3549, 2619, 3549, 3549, 3549, 2368, 3549, 3549, 3549, 1749, 03397 3549, 1750, 1762, 1762, 1762, 1762, 2620, 2614, 1762, 1762, 03398 1762, 1762, 3549, 1763, 3549, 1762, 1762, 1762, 1762, 1763, 03399 1762, 1762, 1762, 1762, 3549, 3549, 1763, 3549, 2652, 3549, 03400 3549, 1763, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 03401 3549, 3549, 3549, 1763, 3549, 3549, 3549, 1763, 3549, 1762, 03402 1762, 1762, 1762, 1762, 1762, 1762, 1762, 3549, 3549, 3549, 03403 1763, 3549, 3549, 3549, 1763, 1762, 1762, 1762, 1762, 1201, 03404 1201, 1201, 1201, 2783, 2784, 3549, 1763, 1201, 1201, 1201, 03405 03406 1201, 3549, 1201, 1201, 1201, 1201, 2785, 2666, 2666, 2666, 03407 2666, 3549, 2787, 1152, 3549, 1203, 1201, 1201, 1201, 1201, 03408 3549, 1152, 2791, 1203, 2786, 2788, 1152, 3549, 1203, 2789, 03409 3549, 3549, 2792, 2793, 1201, 1201, 1201, 1201, 3549, 3549, 03410 1152, 3549, 1203, 2613, 2613, 2613, 2613, 1201, 1201, 1201, 03411 1201, 2616, 2616, 2616, 2616, 2790, 3549, 3549, 1152, 3549, 03412 1203, 2799, 2799, 2799, 2799, 3549, 3549, 1152, 3549, 1203, 03413 3549, 1152, 2800, 1203, 3549, 1152, 3549, 1203, 2794, 1201, 03414 1201, 1201, 1201, 3549, 3549, 1152, 3549, 1203, 3549, 3549, 03415 2795, 2621, 2621, 2621, 2621, 1201, 1201, 1201, 1201, 3549, 03416 03417 3549, 1155, 3549, 1152, 3549, 1203, 3549, 2797, 3549, 1777, 03418 1201, 1201, 1201, 1201, 3549, 1152, 3549, 1203, 2796, 1152, 03419 3549, 1203, 2798, 3549, 1170, 3549, 2806, 2806, 2806, 2806, 03420 3549, 2807, 3549, 3549, 1152, 3549, 1203, 2808, 2808, 2808, 03421 2808, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3549, 03422 1152, 2801, 1203, 1201, 1201, 1201, 1201, 2804, 3549, 3549, 03423 3549, 1152, 3549, 1203, 3549, 1152, 3549, 1203, 3549, 1152, 03424 3549, 1203, 2805, 2666, 2666, 2666, 2666, 1152, 3549, 1203, 03425 2812, 2812, 2812, 2812, 1201, 1201, 1201, 1201, 1201, 1201, 03426 1201, 1201, 2815, 2815, 2815, 2815, 3549, 2809, 1201, 1201, 03427 03428 1201, 1201, 3549, 2810, 1152, 3549, 1203, 3549, 1152, 3549, 03429 1203, 3549, 1152, 3549, 1203, 3549, 2816, 2811, 1203, 3549, 03430 3549, 3549, 1152, 3549, 1203, 1201, 1201, 1201, 1201, 2819, 03431 2819, 2819, 2819, 1201, 1201, 1201, 1201, 3549, 2813, 3549, 03432 3549, 3549, 2814, 1201, 1201, 1201, 1201, 3549, 3549, 1152, 03433 3549, 1203, 3549, 1152, 3549, 1203, 3549, 1152, 3549, 1203, 03434 1201, 1201, 1201, 1201, 3549, 3549, 3549, 1152, 3549, 1203, 03435 2854, 2854, 2854, 2854, 3549, 2817, 1201, 1201, 1201, 1201, 03436 1201, 1201, 1201, 1201, 1152, 3549, 1203, 2825, 2825, 2825, 03437 2825, 2820, 2852, 2852, 2852, 2852, 2818, 2821, 3549, 3549, 03438 03439 1152, 3549, 1203, 2853, 1152, 3549, 1203, 2855, 2855, 2855, 03440 2855, 2826, 3549, 1203, 1201, 1201, 1201, 1201, 2822, 1201, 03441 1201, 1201, 1201, 2833, 2833, 2833, 2833, 2834, 2834, 2834, 03442 2834, 2827, 3549, 2670, 2670, 2670, 2670, 3549, 1152, 3549, 03443 1203, 3549, 3549, 1152, 2671, 1203, 3549, 1152, 2823, 1203, 03444 3549, 1152, 2824, 1203, 1201, 1201, 1201, 1201, 2828, 1201, 03445 1201, 1201, 1201, 1201, 1201, 1201, 1201, 2651, 2651, 2651, 03446 2651, 3549, 2831, 2653, 2653, 2653, 2653, 3549, 1152, 3549, 03447 1203, 3549, 3549, 1152, 3549, 1203, 3549, 1152, 3549, 1203, 03448 2832, 1152, 3549, 1203, 3549, 3549, 3549, 1152, 3549, 1203, 03449 03450 3549, 1201, 1201, 1201, 1201, 2835, 1201, 1201, 1201, 1201, 03451 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 2837, 3549, 03452 2670, 2670, 2670, 2670, 3549, 1152, 2836, 1203, 2838, 3549, 03453 1152, 2671, 1203, 3549, 1152, 3549, 1203, 3549, 1152, 3549, 03454 1203, 1303, 1303, 1303, 1303, 3549, 3549, 3549, 3549, 1101, 03455 1101, 1101, 1101, 2729, 2729, 2729, 2729, 2839, 1304, 3549, 03456 1102, 3549, 3549, 3549, 1102, 1306, 3549, 3549, 1135, 1135, 03457 1135, 1135, 2840, 1088, 2842, 3549, 3549, 2730, 2843, 2903, 03458 2903, 2903, 2903, 2841, 3549, 1136, 2735, 2735, 2735, 2735, 03459 3549, 2848, 1138, 3549, 3549, 2858, 2905, 2905, 2905, 2905, 03460 03461 2906, 2907, 2907, 2906, 2907, 2907, 2907, 2907, 3549, 2859, 03462 2750, 2750, 2750, 2750, 2752, 2752, 2752, 2752, 3549, 3549, 03463 3549, 2542, 2754, 2754, 2754, 2754, 2902, 3549, 1152, 3549, 03464 3549, 2731, 2923, 2923, 2923, 2923, 2925, 2925, 2925, 2925, 03465 3549, 2928, 2928, 2928, 2928, 2932, 2932, 2932, 2932, 2938, 03466 2938, 2938, 2938, 2943, 2943, 2943, 2943, 2944, 2944, 2944, 03467 2944, 3549, 3549, 3549, 1155, 2929, 2777, 2777, 2777, 2777, 03468 2797, 3549, 1777, 2939, 3549, 1762, 1762, 1762, 1762, 3549, 03469 1762, 1762, 1762, 1762, 3549, 2798, 1763, 1170, 3549, 3549, 03470 3549, 1763, 3549, 2940, 1762, 1762, 1762, 1762, 1762, 1762, 03471 03472 1762, 1762, 3549, 3549, 3549, 1763, 3549, 3549, 3549, 1763, 03473 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 3549, 3549, 03474 2941, 1763, 3549, 3549, 3549, 1763, 2956, 2956, 2956, 2956, 03475 3549, 3549, 3549, 2950, 2951, 2835, 3549, 1763, 1762, 1762, 03476 1762, 1762, 1201, 1201, 1201, 1201, 3549, 3549, 2952, 1763, 03477 1201, 1201, 1201, 1201, 3549, 3549, 2953, 3549, 3549, 1201, 03478 1201, 1201, 1201, 3549, 3549, 3549, 1152, 3549, 1203, 3549, 03479 2982, 2982, 2982, 2982, 1152, 3549, 1203, 1201, 1201, 1201, 03480 1201, 2955, 2954, 1152, 3549, 1203, 3549, 3549, 3549, 2958, 03481 1201, 1201, 1201, 1201, 1708, 2959, 2957, 3549, 3549, 2960, 03482 03483 3549, 1152, 3549, 1203, 2963, 2963, 2963, 2963, 2799, 2799, 03484 2799, 2799, 3549, 3549, 1152, 3549, 1203, 3549, 3549, 2800, 03485 3549, 2965, 2965, 2965, 2965, 3549, 2966, 3549, 1152, 3549, 03486 1203, 2966, 1152, 3549, 1203, 1201, 1201, 1201, 1201, 1201, 03487 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3549, 2961, 2806, 03488 2806, 2806, 2806, 3549, 2807, 2808, 2808, 2808, 2808, 1152, 03489 3549, 1203, 2962, 1152, 3549, 1203, 3549, 1152, 3549, 1203, 03490 3549, 3549, 3549, 1152, 3549, 1203, 3549, 3549, 3549, 1152, 03491 3549, 1203, 3549, 2976, 2976, 2976, 2976, 3549, 1201, 1201, 03492 1201, 1201, 3549, 2967, 2812, 2812, 2812, 2812, 3549, 1201, 03493 03494 1201, 1201, 1201, 3549, 3549, 3549, 2970, 1152, 3549, 2977, 03495 3549, 2973, 1152, 3549, 1203, 2971, 3549, 3549, 1152, 3549, 03496 1203, 3549, 3549, 1152, 3549, 1203, 2974, 3549, 2975, 2398, 03497 2399, 2399, 2399, 2399, 2398, 2398, 2398, 2398, 2398, 2398, 03498 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 1201, 03499 1201, 1201, 1201, 3549, 2400, 2980, 2401, 2398, 2398, 2398, 03500 2398, 2815, 2815, 2815, 2815, 2979, 2983, 2983, 2983, 2983, 03501 3549, 3549, 3549, 1152, 3549, 1203, 2984, 2984, 2984, 2984, 03502 2398, 2398, 2398, 2978, 3549, 2816, 3549, 1203, 3549, 3549, 03503 1152, 3549, 1203, 2819, 2819, 2819, 2819, 3549, 3549, 3549, 03504 03505 2826, 3549, 1203, 2985, 2985, 2985, 2985, 3549, 2398, 2398, 03506 2398, 3549, 3549, 2981, 3549, 3549, 3549, 1152, 3549, 1203, 03507 1201, 1201, 1201, 1201, 3549, 3549, 3549, 1152, 3549, 1203, 03508 2987, 2987, 2987, 2987, 1201, 1201, 1201, 1201, 3549, 1201, 03509 1201, 1201, 1201, 3549, 1152, 3549, 1203, 2825, 2825, 2825, 03510 2825, 3549, 3549, 3549, 2988, 3549, 1203, 3549, 1152, 3549, 03511 1203, 3549, 3549, 1152, 3549, 1203, 2994, 2994, 2994, 2994, 03512 3549, 2826, 3549, 1203, 2989, 3549, 2986, 3549, 1201, 1201, 03513 1201, 1201, 1201, 1201, 1201, 1201, 3000, 3000, 3000, 3000, 03514 1708, 2940, 2852, 2852, 2852, 2852, 2991, 2993, 3549, 3549, 03515 03516 3549, 2990, 1152, 2853, 1203, 3549, 1152, 3549, 1203, 3549, 03517 3001, 2992, 1203, 2833, 2833, 2833, 2833, 3549, 2941, 2834, 03518 2834, 2834, 2834, 1201, 1201, 1201, 1201, 3002, 3002, 3002, 03519 3002, 2995, 1201, 1201, 1201, 1201, 3549, 1152, 3549, 1203, 03520 3549, 3549, 3549, 1152, 3549, 1203, 2996, 1152, 3549, 1203, 03521 3549, 1152, 3549, 1203, 3549, 3549, 1152, 3549, 1203, 1201, 03522 1201, 1201, 1201, 3007, 3007, 3007, 3007, 1201, 1201, 1201, 03523 1201, 2854, 2854, 2854, 2854, 2855, 2855, 2855, 2855, 3549, 03524 3549, 2809, 3549, 1152, 3549, 1203, 3549, 1152, 3549, 1203, 03525 3003, 1152, 3549, 1203, 2852, 2852, 2852, 2852, 2854, 2854, 03526 03527 2854, 2854, 3549, 3549, 3549, 2853, 2855, 2855, 2855, 2855, 03528 3549, 1303, 1303, 1303, 1303, 3549, 3549, 3549, 3549, 1135, 03529 1135, 1135, 1135, 3549, 3549, 2395, 3549, 3006, 1304, 2903, 03530 2903, 2903, 2903, 3549, 3549, 1306, 1136, 2905, 2905, 2905, 03531 2905, 3549, 3549, 1138, 3050, 3051, 3051, 3050, 3051, 3051, 03532 3051, 3051, 3058, 3058, 3058, 3058, 3063, 3063, 3063, 3063, 03533 2923, 2923, 2923, 2923, 3549, 3549, 3549, 3015, 2925, 2925, 03534 2925, 2925, 1152, 2465, 2928, 2928, 2928, 2928, 2982, 2982, 03535 2982, 2982, 3549, 3549, 3549, 3048, 3070, 3070, 3070, 3070, 03536 3071, 3071, 3071, 3071, 2932, 2932, 2932, 2932, 2929, 3072, 03537 03538 3072, 3072, 3072, 3074, 3074, 3074, 3074, 2938, 2938, 2938, 03539 2938, 3549, 3549, 3549, 2939, 2994, 2994, 2994, 2994, 3083, 03540 3083, 3083, 3083, 2943, 2943, 2943, 2943, 3075, 3549, 3549, 03541 3549, 2939, 2944, 2944, 2944, 2944, 3085, 3085, 3085, 3085, 03542 3549, 3549, 3549, 3084, 3549, 3549, 3549, 3076, 3549, 3549, 03543 3549, 2940, 3088, 3088, 3088, 3088, 1762, 1762, 1762, 1762, 03544 1762, 1762, 1762, 1762, 3549, 3549, 3549, 1763, 3549, 3549, 03545 3549, 1763, 3549, 3549, 3077, 3549, 3549, 3549, 2941, 1762, 03546 1762, 1762, 1762, 3092, 3092, 3092, 3092, 3549, 3549, 3549, 03547 1763, 3549, 3549, 3549, 1763, 1762, 1762, 1762, 1762, 1762, 03548 03549 1762, 1762, 1762, 3549, 3549, 3549, 1763, 3549, 3549, 3549, 03550 1763, 3549, 2956, 2956, 2956, 2956, 3090, 1762, 1762, 1762, 03551 1762, 3549, 3089, 1763, 1201, 1201, 1201, 1201, 1763, 3549, 03552 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 03553 1201, 1201, 3549, 3091, 3098, 3098, 3098, 3098, 1152, 3549, 03554 1203, 3549, 3549, 3093, 1152, 3549, 1203, 3549, 1152, 3549, 03555 1203, 3549, 1152, 3094, 1203, 3549, 3549, 3549, 1152, 3549, 03556 1203, 3549, 3549, 3549, 3095, 3549, 3549, 3096, 3549, 3549, 03557 2832, 2963, 2963, 2963, 2963, 2965, 2965, 2965, 2965, 3549, 03558 2966, 1201, 1201, 1201, 1201, 2966, 3549, 3549, 3549, 3097, 03559 03560 1201, 1201, 1201, 1201, 3549, 1152, 3549, 1203, 3103, 3103, 03561 3103, 3103, 3549, 3549, 3549, 1152, 3549, 1203, 2976, 2976, 03562 2976, 2976, 3549, 3549, 1152, 3549, 1203, 1201, 1201, 1201, 03563 1201, 3549, 1152, 3549, 1203, 3549, 3111, 3111, 3111, 3111, 03564 3549, 3549, 1152, 3549, 2977, 1201, 1201, 1201, 1201, 3549, 03565 3549, 1152, 3549, 1203, 3113, 3113, 3113, 3113, 3549, 3549, 03566 1152, 3099, 1203, 3549, 3549, 3549, 3102, 3549, 3549, 1152, 03567 3549, 1203, 2982, 2982, 2982, 2982, 3549, 3549, 3114, 3549, 03568 1203, 2983, 2983, 2983, 2983, 2984, 2984, 2984, 2984, 2985, 03569 2985, 2985, 2985, 3549, 3110, 1201, 1201, 1201, 1201, 2987, 03570 03571 2987, 2987, 2987, 3112, 3549, 1152, 3549, 1203, 3549, 2826, 03572 3549, 1203, 3549, 1152, 3549, 1203, 3549, 3549, 3549, 1152, 03573 3549, 1203, 3549, 2988, 3549, 1203, 3116, 3116, 3116, 3116, 03574 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 03575 1201, 1201, 3549, 3076, 3549, 3120, 3120, 3120, 3120, 3549, 03576 1708, 3549, 3549, 3115, 1152, 3549, 1203, 3549, 1152, 3549, 03577 1203, 3549, 1152, 3549, 1203, 1201, 1201, 1201, 1201, 1152, 03578 3077, 1203, 2994, 2994, 2994, 2994, 3549, 1201, 1201, 1201, 03579 1201, 3549, 3549, 3117, 1201, 1201, 1201, 1201, 3549, 1152, 03580 3549, 1203, 1201, 1201, 1201, 1201, 3119, 3549, 3118, 3549, 03581 03582 3549, 1152, 3549, 1203, 3000, 3000, 3000, 3000, 1152, 3549, 03583 1203, 3127, 3127, 3127, 3127, 3549, 1152, 3549, 1203, 3549, 03584 3549, 3549, 3121, 3122, 3002, 3002, 3002, 3002, 3001, 3549, 03585 1203, 3130, 3130, 3130, 3130, 1708, 1201, 1201, 1201, 1201, 03586 3007, 3007, 3007, 3007, 3137, 3137, 3137, 3137, 1152, 3549, 03587 1203, 3123, 3549, 3549, 3549, 1152, 3549, 1203, 3549, 3126, 03588 1152, 3549, 1203, 3549, 1152, 3549, 1203, 3138, 3138, 3138, 03589 3138, 3549, 3549, 3549, 1155, 3139, 3139, 3139, 3139, 3549, 03590 3128, 3549, 1777, 1303, 1303, 1303, 1303, 3150, 3150, 3150, 03591 3150, 3549, 3549, 3549, 3133, 2798, 3549, 1170, 3129, 3549, 03592 03593 1304, 1135, 1135, 1135, 1135, 3549, 3549, 1306, 3165, 3165, 03594 3165, 3165, 3166, 3167, 3167, 3166, 3549, 3549, 1136, 3167, 03595 3167, 3167, 3167, 3549, 3549, 1138, 3171, 3171, 3171, 3171, 03596 3058, 3058, 3058, 3058, 3176, 3176, 3176, 3176, 3549, 3549, 03597 3549, 3141, 3549, 1152, 3063, 3063, 3063, 3063, 3179, 3179, 03598 3179, 3179, 3180, 3180, 3180, 3180, 3182, 3182, 3182, 3182, 03599 3070, 3070, 3070, 3070, 3071, 3071, 3071, 3071, 3072, 3072, 03600 3072, 3072, 3549, 3164, 3074, 3074, 3074, 3074, 3549, 3549, 03601 3183, 3116, 3116, 3116, 3116, 3549, 3549, 3549, 2939, 3188, 03602 3188, 3188, 3188, 3083, 3083, 3083, 3083, 3549, 3075, 3127, 03603 03604 3127, 3127, 3127, 3085, 3085, 3085, 3085, 3192, 3192, 3192, 03605 3192, 3088, 3088, 3088, 3088, 3549, 3549, 3084, 3076, 1762, 03606 1762, 1762, 1762, 1762, 1762, 1762, 1762, 3549, 3549, 3549, 03607 1763, 3549, 3549, 3549, 1763, 3196, 3196, 3196, 3196, 3092, 03608 3092, 3092, 3092, 3549, 3549, 3077, 1763, 3549, 3549, 3549, 03609 1763, 3549, 3549, 1155, 1762, 1762, 1762, 1762, 3549, 3128, 03610 3549, 1777, 3549, 3549, 3549, 1763, 3549, 3198, 3198, 3198, 03611 3198, 3549, 3549, 3549, 2798, 3549, 1170, 3129, 1763, 3549, 03612 3549, 3195, 3199, 3199, 3199, 3199, 1201, 1201, 1201, 1201, 03613 3549, 3194, 3549, 1763, 1201, 1201, 1201, 1201, 3098, 3098, 03614 03615 3098, 3098, 1201, 1201, 1201, 1201, 3205, 3205, 3205, 3205, 03616 1152, 3197, 1203, 3103, 3103, 3103, 3103, 3549, 1152, 3549, 03617 1203, 3549, 1152, 3549, 1203, 3549, 1152, 3549, 1203, 3549, 03618 1152, 3549, 1203, 3549, 3549, 3200, 3549, 1152, 3549, 1203, 03619 3206, 3206, 3206, 3206, 1201, 1201, 1201, 1201, 3111, 3111, 03620 3111, 3111, 3201, 3213, 3213, 3213, 3214, 3113, 3113, 3113, 03621 3113, 3202, 3215, 3215, 3215, 3215, 3549, 3549, 1152, 3549, 03622 1203, 3549, 1152, 3549, 1203, 3549, 3549, 1152, 3549, 1203, 03623 3549, 3114, 3549, 1203, 3549, 3549, 1708, 3116, 3116, 3116, 03624 3116, 1201, 1201, 1201, 1201, 3229, 3229, 3229, 3229, 3127, 03625 03626 3127, 3127, 3127, 3137, 3137, 3137, 3137, 3549, 3549, 3549, 03627 3212, 3138, 3138, 3138, 3138, 1152, 3549, 1203, 3207, 3216, 03628 3217, 3217, 3217, 3217, 3216, 3216, 3216, 3216, 3216, 3216, 03629 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 1201, 03630 1201, 1201, 1201, 3549, 3218, 3216, 3219, 3216, 3216, 3216, 03631 3216, 1201, 1201, 1201, 1201, 3549, 3549, 3549, 3221, 3139, 03632 3139, 3139, 3139, 1152, 3549, 1203, 3120, 3120, 3120, 3120, 03633 3216, 3216, 3216, 3230, 3549, 1152, 3549, 1203, 3549, 3223, 03634 3223, 3223, 3223, 3549, 3549, 3220, 1201, 1201, 1201, 1201, 03635 1152, 3549, 1203, 1201, 1201, 1201, 1201, 3549, 3216, 3216, 03636 03637 3216, 3549, 3549, 3224, 3549, 1203, 1201, 1201, 1201, 1201, 03638 1152, 3549, 1203, 3130, 3130, 3130, 3130, 1152, 3549, 1203, 03639 3549, 3549, 3222, 3225, 3549, 3549, 3227, 3549, 3549, 3549, 03640 1152, 3549, 1203, 3213, 3213, 3213, 3213, 1152, 3549, 1203, 03641 3137, 3137, 3137, 3137, 3138, 3138, 3138, 3138, 3549, 3549, 03642 3226, 3139, 3139, 3139, 3139, 3549, 3549, 1152, 3549, 1203, 03643 3236, 3236, 3236, 3236, 3549, 3228, 3237, 3237, 3237, 3237, 03644 3549, 3549, 3232, 3150, 3150, 3150, 3150, 1135, 1135, 1135, 03645 1135, 3549, 3549, 1304, 3165, 3165, 3165, 3165, 3549, 3549, 03646 1306, 3549, 3549, 3549, 1136, 3256, 3257, 3257, 3256, 3549, 03647 03648 3549, 1138, 3257, 3257, 3257, 3257, 3260, 3260, 3260, 3260, 03649 3171, 3171, 3171, 3171, 3262, 3262, 3262, 3262, 3263, 3263, 03650 3263, 3263, 3176, 3176, 3176, 3176, 1152, 3266, 3266, 3266, 03651 3266, 3179, 3179, 3179, 3179, 3180, 3180, 3180, 3180, 3267, 03652 3267, 3267, 3268, 3182, 3182, 3182, 3182, 3549, 3255, 3215, 03653 3215, 3215, 3215, 3269, 3269, 3269, 3269, 3188, 3188, 3188, 03654 3188, 3273, 3273, 3273, 3273, 3549, 3549, 3183, 3192, 3192, 03655 3192, 3192, 3267, 3267, 3267, 3267, 1762, 1762, 1762, 1762, 03656 3280, 3280, 3280, 3280, 3549, 3274, 3549, 1763, 3549, 3549, 03657 3549, 1763, 3196, 3196, 3196, 3196, 3281, 3281, 3281, 3281, 03658 03659 3549, 3549, 3549, 1763, 3549, 3275, 3549, 1763, 3198, 3198, 03660 3198, 3198, 3199, 3199, 3199, 3199, 3549, 3549, 3549, 1763, 03661 3549, 3549, 3549, 1763, 1201, 1201, 1201, 1201, 3549, 3549, 03662 3279, 3549, 3276, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 03663 1201, 3283, 3283, 3283, 3283, 3549, 3549, 3549, 1152, 3549, 03664 1203, 3205, 3205, 3205, 3205, 3549, 3549, 1152, 3549, 1203, 03665 3549, 1152, 3549, 1203, 3206, 3206, 3206, 3206, 1201, 1201, 03666 1201, 1201, 3549, 3549, 3549, 1152, 3549, 1203, 3213, 3213, 03667 3213, 3213, 3213, 3213, 3213, 3213, 3215, 3215, 3215, 3215, 03668 2818, 3282, 1152, 3549, 1203, 3549, 1201, 1201, 1201, 1201, 03669 03670 3549, 3549, 1152, 3549, 1203, 3549, 1152, 3549, 1203, 3294, 03671 3294, 3294, 3294, 3296, 3296, 3296, 3296, 3549, 3549, 2403, 03672 1152, 3549, 1203, 3549, 3287, 1201, 1201, 1201, 1201, 3229, 03673 3229, 3229, 3229, 3295, 3549, 1203, 3292, 1708, 3288, 3549, 03674 3549, 3549, 3207, 3236, 3236, 3236, 3236, 3549, 3549, 1152, 03675 3549, 1203, 3549, 3289, 3216, 3217, 3217, 3217, 3217, 3216, 03676 3216, 3216, 3290, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 03677 3216, 3216, 3216, 3216, 3316, 3317, 3317, 3316, 3297, 3218, 03678 3216, 3219, 3216, 3216, 3216, 3216, 3291, 3291, 3291, 3291, 03679 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 03680 03681 3291, 3291, 3291, 3291, 3291, 3216, 3216, 3216, 3291, 3291, 03682 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 03683 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 03684 3291, 3291, 3291, 3216, 3216, 3216, 1201, 1201, 1201, 1201, 03685 3223, 3223, 3223, 3223, 3549, 1201, 1201, 1201, 1201, 1201, 03686 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3549, 3549, 3549, 03687 1152, 3549, 1203, 3549, 3224, 3549, 1203, 3549, 3549, 1152, 03688 3549, 1203, 3549, 1152, 3549, 1203, 3549, 1152, 3549, 1203, 03689 3301, 3301, 3301, 3301, 3275, 3549, 1201, 1201, 1201, 1201, 03690 3549, 3299, 3317, 3317, 3317, 3317, 3237, 3237, 3237, 3237, 03691 03692 3549, 3315, 3315, 3315, 3315, 3549, 3549, 3549, 3293, 3298, 03693 1152, 3276, 1203, 1304, 3549, 3549, 1152, 3549, 1136, 3549, 03694 1306, 3549, 3549, 3549, 3300, 1138, 3319, 3319, 3319, 3319, 03695 3260, 3260, 3260, 3260, 3320, 3320, 3320, 3320, 3262, 3262, 03696 3262, 3262, 3303, 3263, 3263, 3263, 3263, 3266, 3266, 3266, 03697 3266, 3267, 3267, 3267, 3267, 3549, 3549, 3549, 3302, 3267, 03698 3267, 3267, 3267, 3269, 3269, 3269, 3269, 3324, 3324, 3324, 03699 3324, 3549, 3273, 3273, 3273, 3273, 3296, 3296, 3296, 3296, 03700 3549, 1762, 1762, 1762, 1762, 3549, 3280, 3280, 3280, 3280, 03701 3549, 3325, 1763, 3549, 3549, 3549, 3274, 1763, 3281, 3281, 03702 03703 3281, 3281, 1201, 1201, 1201, 1201, 3549, 3549, 3549, 1763, 03704 3283, 3283, 3283, 3283, 3549, 3288, 3275, 3549, 1201, 1201, 03705 1201, 1201, 3336, 3336, 3336, 3336, 1152, 3549, 1203, 3549, 03706 3289, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 3549, 03707 3549, 3549, 1152, 3276, 1203, 3294, 3294, 3294, 3294, 3338, 03708 3549, 3549, 3549, 3330, 3549, 1152, 3549, 1203, 3331, 1152, 03709 3549, 1203, 3341, 3341, 3341, 3341, 3549, 3549, 3549, 3295, 03710 3549, 1203, 3549, 3339, 3549, 3549, 2140, 3296, 3296, 3296, 03711 3296, 1201, 1201, 1201, 1201, 3549, 1708, 1201, 1201, 1201, 03712 1201, 1201, 1201, 1201, 1201, 3345, 3345, 3345, 3345, 3301, 03713 03714 3301, 3301, 3301, 3549, 3549, 1152, 3340, 1203, 3549, 3549, 03715 3549, 1152, 3549, 1203, 3549, 1152, 3549, 1203, 3549, 3346, 03716 3549, 1203, 1201, 1201, 1201, 1201, 3549, 3342, 3347, 3347, 03717 3347, 3347, 3315, 3315, 3315, 3315, 3549, 3549, 3344, 3356, 03718 3357, 3357, 3356, 3549, 3549, 3549, 1152, 3549, 1203, 3357, 03719 3357, 3357, 3357, 3549, 3343, 3549, 1138, 3319, 3319, 3319, 03720 3319, 3320, 3320, 3320, 3320, 3324, 3324, 3324, 3324, 3341, 03721 3341, 3341, 3341, 1152, 3365, 3365, 3365, 3365, 3549, 3549, 03722 2140, 1762, 1762, 1762, 1762, 3368, 3368, 3368, 3368, 3325, 03723 3549, 3549, 1763, 1201, 1201, 1201, 1201, 3549, 3366, 3336, 03724 03725 3336, 3336, 3336, 3549, 3549, 3549, 3348, 3336, 3336, 3336, 03726 3336, 1201, 1201, 1201, 1201, 3549, 3549, 1152, 3549, 1203, 03727 3372, 3372, 3372, 3372, 3549, 3549, 3338, 3341, 3341, 3341, 03728 3341, 3549, 3549, 3549, 3338, 1152, 3549, 1203, 1201, 1201, 03729 1201, 1201, 3549, 3367, 3373, 3549, 1203, 1201, 1201, 1201, 03730 1201, 3133, 3549, 1201, 1201, 1201, 1201, 3549, 3371, 3549, 03731 3549, 3549, 1152, 3549, 1203, 3345, 3345, 3345, 3345, 3549, 03732 3549, 1152, 3549, 1203, 3549, 3549, 3549, 1152, 3374, 1203, 03733 3376, 3376, 3376, 3376, 3347, 3347, 3347, 3347, 3549, 3346, 03734 3549, 1203, 3377, 3377, 3377, 3377, 3549, 3549, 3549, 3300, 03735 03736 3381, 3382, 3382, 3381, 1708, 3382, 3382, 3382, 3382, 3385, 03737 3385, 3385, 3385, 3365, 3365, 3365, 3365, 3549, 3549, 3375, 03738 3376, 3376, 3376, 3376, 1762, 1762, 1762, 1762, 3549, 1152, 03739 3549, 3549, 3549, 3386, 3549, 1763, 3549, 3366, 3368, 3368, 03740 3368, 3368, 1201, 1201, 1201, 1201, 3549, 3372, 3372, 3372, 03741 3372, 3392, 3392, 3392, 3392, 1201, 1201, 1201, 1201, 1201, 03742 1201, 1201, 1201, 3549, 3549, 3549, 1152, 3549, 1203, 3549, 03743 3378, 3373, 3549, 1203, 3549, 1708, 3549, 3549, 3549, 1152, 03744 3549, 1203, 3549, 1152, 3549, 1203, 3549, 3549, 3340, 3549, 03745 3549, 3389, 3376, 3376, 3376, 3376, 3549, 3393, 3377, 3377, 03746 03747 3377, 3377, 3395, 3396, 3396, 3395, 3549, 3396, 3396, 3396, 03748 3396, 3385, 3385, 3385, 3385, 3392, 3392, 3392, 3392, 3549, 03749 3549, 1762, 1762, 1762, 1762, 3392, 3392, 3392, 3392, 3549, 03750 3394, 1152, 1763, 3549, 3549, 3386, 1201, 1201, 1201, 1201, 03751 3404, 3404, 3404, 3404, 3406, 3407, 3407, 3406, 3407, 3407, 03752 3407, 3407, 3410, 3410, 3410, 3410, 3412, 3412, 3412, 3412, 03753 1152, 3549, 1203, 3549, 3405, 3549, 1203, 1763, 3413, 3413, 03754 3413, 3413, 1152, 3549, 3549, 3549, 3411, 1201, 1201, 1201, 03755 1201, 3549, 3549, 3403, 3549, 3549, 3549, 3400, 3404, 3404, 03756 3404, 3404, 3416, 3416, 3416, 3416, 3417, 3418, 3418, 3417, 03757 03758 3549, 1152, 3549, 1203, 3418, 3418, 3418, 3418, 3419, 3419, 03759 3419, 3419, 3405, 3549, 1203, 3549, 1708, 3410, 3410, 3410, 03760 3410, 3549, 3549, 3394, 3416, 3416, 3416, 3416, 1152, 3412, 03761 3412, 3412, 3412, 3413, 3413, 3413, 3413, 3549, 3549, 3549, 03762 1763, 3411, 3420, 3420, 3420, 3420, 3414, 3416, 3416, 3416, 03763 3416, 3422, 3423, 3423, 3422, 3423, 3423, 3423, 3423, 3419, 03764 3419, 3419, 3419, 3420, 3420, 3420, 3420, 3424, 3425, 3425, 03765 3424, 3425, 3425, 3425, 3425, 3426, 3427, 3427, 3426, 1152, 03766 3427, 3427, 3427, 3427, 3428, 3429, 3429, 3428, 3429, 3429, 03767 3429, 3429, 3549, 3549, 3549, 1152, 3430, 3431, 3431, 3430, 03768 03769 3431, 3431, 3431, 3431, 1152, 3432, 3433, 3433, 3432, 3549, 03770 3549, 3549, 1152, 3433, 3433, 3433, 3433, 3549, 3549, 3549, 03771 3421, 3549, 3549, 3549, 1152, 3434, 3435, 3435, 3434, 3435, 03772 3435, 3435, 3435, 3436, 3437, 3437, 3436, 1152, 3437, 3437, 03773 3437, 3437, 3438, 3439, 3439, 3438, 3439, 3439, 3439, 3439, 03774 3549, 3549, 3549, 1152, 3440, 3441, 3441, 3440, 3441, 3441, 03775 3441, 3441, 1152, 3442, 3443, 3443, 3442, 3549, 3549, 3549, 03776 1152, 3443, 3443, 3443, 3443, 3444, 3445, 3445, 3444, 3549, 03777 3549, 3549, 1152, 3445, 3445, 3445, 3445, 3446, 3447, 3447, 03778 3446, 3447, 3447, 3447, 3447, 1152, 3448, 3449, 3449, 3448, 03779 03780 3449, 3449, 3449, 3449, 3549, 3549, 3549, 1152, 3450, 3451, 03781 3451, 3450, 3549, 3549, 3549, 1152, 3451, 3451, 3451, 3451, 03782 3452, 3453, 3453, 3452, 1152, 3453, 3453, 3453, 3453, 3454, 03783 3455, 3455, 3454, 3455, 3455, 3455, 3455, 3549, 3549, 3549, 03784 1152, 3456, 3457, 3457, 3456, 3457, 3457, 3457, 3457, 1152, 03785 3458, 3459, 3459, 3458, 3549, 3549, 3549, 1152, 3459, 3459, 03786 3459, 3459, 3460, 3461, 3461, 3460, 3549, 3549, 3549, 1152, 03787 3461, 3461, 3461, 3461, 3462, 3463, 3463, 3462, 3463, 3463, 03788 3463, 3463, 1152, 3464, 3465, 3465, 3464, 3465, 3465, 3465, 03789 3465, 3549, 3549, 3549, 1152, 3466, 3467, 3467, 3466, 3549, 03790 03791 3549, 3549, 1152, 3467, 3467, 3467, 3467, 3468, 3469, 3469, 03792 3468, 1152, 3469, 3469, 3469, 3469, 3470, 3471, 3471, 3470, 03793 3471, 3471, 3471, 3471, 3549, 3549, 3549, 1152, 3472, 3473, 03794 3473, 3472, 3473, 3473, 3473, 3473, 1152, 3474, 3475, 3475, 03795 3474, 3549, 3549, 3549, 1152, 3475, 3475, 3475, 3475, 3476, 03796 3477, 3477, 3476, 3549, 3549, 3549, 1152, 3477, 3477, 3477, 03797 3477, 3478, 3479, 3479, 3478, 3479, 3479, 3479, 3479, 1152, 03798 3480, 3481, 3481, 3480, 3481, 3481, 3481, 3481, 3549, 3549, 03799 3549, 1152, 3482, 3483, 3483, 3482, 3549, 3549, 3549, 1152, 03800 3483, 3483, 3483, 3483, 3484, 3485, 3485, 3484, 1152, 3485, 03801 03802 3485, 3485, 3485, 3486, 3487, 3487, 3486, 3487, 3487, 3487, 03803 3487, 3549, 3549, 3549, 1152, 3488, 3489, 3489, 3488, 3489, 03804 3489, 3489, 3489, 1152, 3490, 3491, 3491, 3490, 3549, 3549, 03805 3549, 1152, 3491, 3491, 3491, 3491, 3492, 3493, 3493, 3492, 03806 3549, 3549, 3549, 1152, 3493, 3493, 3493, 3493, 3494, 3495, 03807 3495, 3494, 3495, 3495, 3495, 3495, 1152, 3496, 3497, 3497, 03808 3496, 3497, 3497, 3497, 3497, 3549, 3549, 3549, 1152, 3498, 03809 3499, 3499, 3498, 3549, 3549, 3549, 1152, 3499, 3499, 3499, 03810 3499, 3500, 3501, 3501, 3500, 1152, 3501, 3501, 3501, 3501, 03811 3502, 3503, 3503, 3502, 3503, 3503, 3503, 3503, 3549, 3549, 03812 03813 3549, 1152, 3504, 3505, 3505, 3504, 3505, 3505, 3505, 3505, 03814 1152, 3506, 3507, 3507, 3506, 3549, 3549, 3549, 1152, 3507, 03815 3507, 3507, 3507, 3508, 3509, 3509, 3508, 3549, 3549, 3549, 03816 1152, 3509, 3509, 3509, 3509, 3510, 3511, 3511, 3510, 3511, 03817 3511, 3511, 3511, 1152, 3512, 3513, 3513, 3512, 3513, 3513, 03818 3513, 3513, 3549, 3549, 3549, 1152, 3514, 3515, 3515, 3514, 03819 3549, 3549, 3549, 1152, 3515, 3515, 3515, 3515, 3516, 3517, 03820 3517, 3516, 1152, 3517, 3517, 3517, 3517, 3518, 3519, 3519, 03821 3518, 3519, 3519, 3519, 3519, 3549, 3549, 3549, 1152, 3520, 03822 3521, 3521, 3520, 3521, 3521, 3521, 3521, 1152, 3522, 3523, 03823 03824 3523, 3522, 3549, 3549, 3549, 1152, 3523, 3523, 3523, 3523, 03825 3524, 3525, 3525, 3524, 3549, 3549, 3549, 1152, 3525, 3525, 03826 3525, 3525, 3526, 3527, 3527, 3526, 3527, 3527, 3527, 3527, 03827 1152, 3528, 3529, 3529, 3528, 3529, 3529, 3529, 3529, 3549, 03828 3549, 3549, 1152, 3530, 3531, 3531, 3530, 3549, 3549, 3549, 03829 1152, 3531, 3531, 3531, 3531, 3532, 3533, 3533, 3532, 1152, 03830 3533, 3533, 3533, 3533, 3534, 3535, 3535, 3534, 3535, 3535, 03831 3535, 3535, 3549, 3549, 3549, 1152, 3536, 3537, 3537, 3536, 03832 3537, 3537, 3537, 3537, 1152, 3538, 3539, 3539, 3538, 3549, 03833 3549, 3549, 1152, 3539, 3539, 3539, 3539, 3540, 3541, 3541, 03834 03835 3540, 3549, 3549, 3549, 1152, 3541, 3541, 3541, 3541, 3542, 03836 3543, 3543, 3542, 3543, 3543, 3543, 3543, 1152, 3544, 3545, 03837 3545, 3544, 3545, 3545, 3545, 3545, 3549, 3549, 3549, 1152, 03838 3546, 3547, 3547, 3546, 3549, 3549, 3549, 1152, 3547, 3547, 03839 3547, 3547, 3548, 1177, 1177, 3548, 1152, 1177, 1177, 1177, 03840 1177, 3548, 1177, 1177, 3548, 3549, 3549, 3549, 3549, 3549, 03841 3549, 3549, 1152, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 03842 3549, 1152, 244, 244, 244, 244, 244, 244, 244, 244, 03843 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 03844 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 03845 03846 244, 244, 244, 252, 252, 252, 252, 252, 252, 252, 03847 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 03848 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 03849 252, 252, 252, 252, 303, 303, 303, 303, 303, 303, 03850 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 03851 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 03852 303, 303, 303, 303, 303, 340, 340, 340, 340, 340, 03853 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 03854 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 03855 340, 340, 340, 340, 340, 340, 355, 355, 355, 355, 03856 03857 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 03858 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, 03859 355, 355, 355, 355, 355, 355, 355, 404, 404, 404, 03860 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 03861 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, 03862 404, 404, 404, 404, 404, 404, 404, 404, 433, 433, 03863 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 03864 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 03865 433, 433, 433, 433, 433, 433, 433, 433, 433, 443, 03866 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 03867 03868 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 03869 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 03870 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 03871 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 03872 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 03873 450, 473, 473, 473, 473, 473, 473, 473, 473, 473, 03874 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 03875 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 03876 473, 473, 482, 482, 482, 482, 482, 482, 482, 482, 03877 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 03878 03879 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 03880 482, 482, 482, 489, 489, 489, 489, 489, 489, 489, 03881 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 03882 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 03883 489, 489, 489, 489, 513, 513, 513, 513, 513, 513, 03884 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 03885 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 03886 513, 513, 513, 513, 513, 531, 531, 531, 531, 531, 03887 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 03888 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 03889 03890 531, 531, 531, 531, 531, 531, 521, 521, 521, 521, 03891 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 03892 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 03893 521, 521, 521, 521, 521, 521, 521, 546, 546, 546, 03894 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 03895 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 03896 546, 546, 546, 546, 546, 546, 546, 546, 554, 554, 03897 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 03898 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 03899 554, 554, 554, 554, 554, 554, 554, 554, 554, 561, 03900 03901 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 03902 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 03903 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 03904 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 03905 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 03906 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 03907 571, 584, 584, 584, 584, 584, 584, 584, 584, 584, 03908 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 03909 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 03910 584, 584, 591, 591, 591, 591, 591, 591, 591, 591, 03911 03912 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 03913 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 03914 591, 591, 591, 602, 602, 602, 602, 602, 602, 602, 03915 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 03916 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, 03917 602, 602, 602, 602, 609, 609, 609, 609, 609, 609, 03918 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 03919 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 03920 609, 609, 609, 609, 609, 615, 615, 615, 615, 615, 03921 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 03922 03923 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 03924 615, 615, 615, 615, 615, 615, 630, 630, 630, 630, 03925 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 03926 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 03927 630, 630, 630, 630, 630, 630, 630, 642, 642, 642, 03928 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 03929 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, 03930 642, 642, 642, 642, 642, 642, 642, 642, 650, 650, 03931 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 03932 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 03933 03934 650, 650, 650, 650, 650, 650, 650, 650, 650, 667, 03935 667, 667, 667, 667, 667, 667, 667, 667, 667, 667, 03936 667, 667, 667, 667, 667, 667, 667, 667, 667, 667, 03937 667, 667, 667, 667, 667, 667, 667, 667, 667, 667, 03938 679, 679, 679, 679, 679, 679, 679, 679, 679, 679, 03939 679, 679, 679, 679, 679, 679, 679, 679, 679, 679, 03940 679, 679, 679, 679, 679, 679, 679, 679, 679, 679, 03941 679, 691, 691, 691, 691, 691, 691, 691, 691, 691, 03942 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, 03943 691, 691, 691, 691, 691, 691, 691, 691, 691, 691, 03944 03945 691, 691, 724, 724, 724, 724, 724, 724, 724, 724, 03946 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, 03947 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, 03948 724, 724, 724, 759, 759, 759, 759, 759, 759, 759, 03949 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 03950 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 03951 759, 759, 759, 759, 777, 777, 777, 777, 777, 777, 03952 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, 03953 777, 777, 777, 777, 777, 777, 777, 777, 777, 777, 03954 777, 777, 777, 777, 777, 787, 787, 787, 787, 787, 03955 03956 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 03957 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 03958 787, 787, 787, 787, 787, 787, 796, 796, 796, 796, 03959 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 03960 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 03961 796, 796, 796, 796, 796, 796, 796, 799, 799, 799, 03962 799, 799, 799, 799, 799, 799, 799, 799, 799, 799, 03963 799, 799, 799, 799, 799, 799, 799, 799, 799, 799, 03964 799, 799, 799, 799, 799, 799, 799, 799, 811, 811, 03965 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 03966 03967 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 03968 811, 811, 811, 811, 811, 811, 811, 811, 811, 821, 03969 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 03970 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 03971 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, 03972 831, 831, 831, 831, 831, 831, 831, 831, 831, 831, 03973 831, 831, 831, 831, 831, 831, 831, 831, 831, 831, 03974 831, 831, 831, 831, 831, 831, 831, 831, 831, 831, 03975 831, 839, 839, 839, 839, 839, 839, 839, 839, 839, 03976 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 03977 03978 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 03979 839, 839, 847, 847, 847, 847, 847, 847, 847, 847, 03980 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 03981 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 03982 847, 847, 847, 855, 855, 855, 855, 855, 855, 855, 03983 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 03984 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 03985 855, 855, 855, 855, 864, 864, 864, 864, 864, 864, 03986 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 03987 864, 864, 864, 864, 864, 864, 864, 864, 864, 864, 03988 03989 864, 864, 864, 864, 864, 873, 873, 873, 873, 873, 03990 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 03991 873, 873, 873, 873, 873, 873, 873, 873, 873, 873, 03992 873, 873, 873, 873, 873, 873, 433, 433, 433, 433, 03993 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 03994 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, 03995 433, 433, 433, 433, 433, 433, 433, 896, 896, 896, 03996 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 03997 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 03998 896, 896, 896, 896, 896, 896, 896, 896, 902, 902, 03999 04000 902, 902, 902, 902, 902, 902, 902, 902, 902, 902, 04001 902, 902, 902, 902, 902, 902, 902, 902, 902, 902, 04002 902, 902, 902, 902, 902, 902, 902, 902, 902, 482, 04003 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 04004 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 04005 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 04006 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 04007 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 04008 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 04009 913, 922, 922, 922, 922, 922, 922, 922, 922, 922, 04010 04011 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 04012 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 04013 922, 922, 929, 929, 929, 929, 929, 929, 929, 929, 04014 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 04015 929, 929, 929, 929, 929, 929, 929, 929, 929, 929, 04016 929, 929, 929, 939, 939, 939, 939, 939, 939, 939, 04017 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 04018 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, 04019 939, 939, 939, 939, 946, 946, 946, 946, 946, 946, 04020 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 04021 04022 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 04023 946, 946, 946, 946, 946, 952, 952, 952, 952, 952, 04024 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 04025 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 04026 952, 952, 952, 952, 952, 952, 974, 974, 974, 974, 04027 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 04028 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 04029 974, 974, 974, 974, 974, 974, 974, 994, 994, 994, 04030 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 04031 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 04032 04033 994, 994, 994, 994, 994, 994, 994, 994, 1005, 1005, 04034 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 04035 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 04036 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1011, 04037 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 04038 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 04039 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 04040 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 04041 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 04042 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 04043 04044 1016, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 04045 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 04046 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 04047 1022, 1022, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 04048 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 04049 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 04050 1036, 1036, 1036, 1053, 3549, 3549, 1053, 3549, 3549, 3549, 04051 3549, 3549, 3549, 1053, 3549, 3549, 3549, 3549, 3549, 1053, 04052 3549, 3549, 3549, 3549, 3549, 3549, 1053, 1067, 1067, 1067, 04053 1067, 3549, 3549, 3549, 1067, 3549, 3549, 3549, 3549, 3549, 04054 04055 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04056 1067, 1071, 1071, 1071, 1071, 1071, 3549, 3549, 1071, 3549, 04057 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1071, 3549, 04058 3549, 3549, 3549, 3549, 1071, 3549, 3549, 3549, 3549, 3549, 04059 1071, 1074, 1074, 1074, 1074, 3549, 3549, 3549, 1074, 3549, 04060 3549, 3549, 3549, 3549, 3549, 1074, 3549, 3549, 3549, 3549, 04061 3549, 3549, 3549, 3549, 1074, 3549, 3549, 3549, 3549, 3549, 04062 1074, 1079, 1079, 1079, 1079, 3549, 3549, 3549, 3549, 3549, 04063 3549, 1079, 3549, 3549, 3549, 1079, 3549, 1079, 1079, 1079, 04064 1079, 3549, 3549, 3549, 1079, 1085, 1085, 1085, 1085, 3549, 04065 04066 3549, 3549, 1085, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04067 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1085, 1092, 04068 1092, 1092, 1092, 3549, 3549, 3549, 1092, 3549, 3549, 3549, 04069 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04070 3549, 3549, 1092, 1095, 1095, 1095, 1095, 1095, 3549, 3549, 04071 1095, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04072 1095, 3549, 3549, 3549, 3549, 3549, 1095, 3549, 3549, 3549, 04073 3549, 3549, 1095, 1103, 1103, 1103, 1103, 3549, 3549, 3549, 04074 3549, 3549, 3549, 1103, 3549, 3549, 3549, 3549, 3549, 1103, 04075 1103, 3549, 3549, 3549, 3549, 3549, 1103, 1113, 3549, 3549, 04076 04077 3549, 1113, 3549, 1113, 3549, 3549, 1113, 3549, 3549, 3549, 04078 1113, 1130, 1130, 1130, 1130, 3549, 3549, 3549, 1130, 3549, 04079 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04080 3549, 3549, 3549, 3549, 1130, 3549, 3549, 3549, 1130, 1137, 04081 1137, 1137, 1137, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04082 3549, 3549, 3549, 1137, 3549, 1137, 1137, 3549, 3549, 3549, 04083 3549, 3549, 1137, 1143, 1143, 3549, 1143, 3549, 1143, 1143, 04084 1143, 1143, 1143, 3549, 1143, 1143, 1143, 1143, 1143, 1143, 04085 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 04086 1143, 1143, 1143, 1143, 1174, 1174, 1174, 1174, 3549, 3549, 04087 04088 3549, 1174, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04089 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1174, 1180, 1180, 04090 1180, 1180, 1180, 3549, 3549, 1180, 3549, 3549, 3549, 3549, 04091 3549, 3549, 3549, 3549, 3549, 1180, 3549, 3549, 3549, 3549, 04092 3549, 1180, 3549, 3549, 3549, 3549, 3549, 1180, 1185, 1185, 04093 1185, 1185, 3549, 3549, 3549, 1185, 1185, 3549, 3549, 3549, 04094 1185, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04095 3549, 1185, 1202, 1202, 1202, 1202, 3549, 3549, 3549, 3549, 04096 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1202, 1202, 04097 3549, 1202, 3549, 3549, 3549, 1202, 1205, 1205, 1205, 1205, 04098 04099 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 04100 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 04101 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1238, 1238, 3549, 04102 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 04103 1238, 1238, 1238, 1238, 1238, 1238, 1238, 3549, 1238, 1238, 04104 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1246, 1246, 04105 1246, 1246, 3549, 3549, 3549, 1246, 3549, 3549, 3549, 3549, 04106 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04107 3549, 1246, 1249, 1249, 1249, 1249, 1249, 3549, 3549, 1249, 04108 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1249, 04109 04110 3549, 3549, 3549, 3549, 3549, 1249, 3549, 3549, 3549, 3549, 04111 3549, 1249, 1252, 1252, 1252, 1252, 3549, 3549, 3549, 3549, 04112 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1252, 1252, 04113 3549, 1252, 3549, 3549, 3549, 1252, 1289, 1289, 3549, 3549, 04114 1289, 1289, 3549, 3549, 1289, 1289, 3549, 1289, 1289, 1289, 04115 1289, 1289, 3549, 1289, 1289, 1289, 1289, 1289, 1289, 3549, 04116 1289, 1289, 1289, 1289, 3549, 3549, 1289, 1293, 1293, 3549, 04117 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 04118 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 04119 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1295, 1295, 04120 04121 3549, 1295, 3549, 1295, 1295, 1295, 1295, 1295, 3549, 1295, 04122 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 04123 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1305, 04124 1305, 1305, 1305, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04125 3549, 3549, 3549, 1305, 3549, 1305, 1305, 3549, 3549, 3549, 04126 3549, 3549, 1305, 1312, 1312, 1312, 1312, 3549, 3549, 3549, 04127 1312, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04128 3549, 3549, 3549, 3549, 3549, 3549, 1312, 1315, 1315, 1315, 04129 1315, 1315, 3549, 3549, 1315, 3549, 3549, 3549, 3549, 3549, 04130 3549, 3549, 3549, 3549, 1315, 3549, 3549, 3549, 3549, 3549, 04131 04132 1315, 3549, 3549, 3549, 3549, 3549, 1315, 1317, 1317, 1317, 04133 1317, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04134 3549, 3549, 3549, 1317, 1317, 3549, 3549, 3549, 3549, 3549, 04135 1317, 1318, 1318, 3549, 1318, 1318, 1318, 3549, 3549, 1318, 04136 1318, 3549, 1318, 1318, 1318, 1318, 1318, 3549, 1318, 1318, 04137 1318, 1318, 1318, 1318, 3549, 1318, 1318, 3549, 1318, 3549, 04138 3549, 1318, 1321, 1321, 3549, 1321, 3549, 1321, 1321, 1321, 04139 1321, 1321, 3549, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 04140 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 04141 1321, 1321, 1321, 1339, 1339, 3549, 1339, 1339, 1339, 1339, 04142 04143 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 04144 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 04145 1339, 1339, 1339, 1339, 1346, 1346, 3549, 1346, 1346, 1346, 04146 1346, 1346, 1346, 1346, 1346, 1346, 1346, 3549, 1346, 1346, 04147 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 04148 1346, 1346, 1346, 1346, 1346, 1352, 1352, 1352, 1352, 1352, 04149 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 04150 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 04151 1352, 1352, 1352, 1352, 1352, 1352, 1357, 1357, 3549, 1357, 04152 1357, 1357, 3549, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 04153 04154 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 04155 1357, 3549, 1357, 3549, 1357, 1357, 1357, 1360, 1360, 3549, 04156 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 04157 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 04158 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1368, 3549, 04159 3549, 3549, 3549, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 04160 1368, 3549, 1368, 3549, 3549, 1368, 1368, 1368, 1368, 1368, 04161 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1382, 04162 1382, 1382, 1382, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04163 3549, 3549, 3549, 1382, 3549, 1382, 3549, 3549, 3549, 3549, 04164 04165 3549, 3549, 1382, 1388, 1388, 3549, 1388, 1388, 1388, 1388, 04166 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 04167 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 04168 1388, 1388, 1388, 1388, 1397, 1397, 3549, 1397, 1397, 1397, 04169 3549, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 04170 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 04171 1397, 1397, 1397, 1397, 1397, 1405, 1405, 1405, 1405, 1405, 04172 1405, 1405, 1405, 1405, 1405, 1405, 1405, 3549, 1405, 1405, 04173 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 04174 1405, 1405, 1405, 1405, 1405, 1405, 1412, 1412, 1412, 1412, 04175 04176 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04177 3549, 3549, 1412, 1412, 3549, 3549, 3549, 3549, 3549, 1412, 04178 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 04179 1414, 1414, 3549, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 04180 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 04181 1414, 1441, 1441, 3549, 1441, 3549, 1441, 1441, 1441, 1441, 04182 1441, 3549, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 04183 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 04184 1441, 1441, 1452, 1452, 1452, 1452, 3549, 3549, 3549, 1452, 04185 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04186 04187 3549, 3549, 3549, 3549, 3549, 1452, 1455, 1455, 1455, 1455, 04188 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1455, 3549, 04189 3549, 3549, 1455, 3549, 3549, 3549, 3549, 3549, 3549, 1455, 04190 1461, 1461, 1461, 1461, 3549, 3549, 3549, 1461, 1461, 3549, 04191 3549, 3549, 1461, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04192 3549, 3549, 3549, 1461, 1463, 1463, 1463, 1463, 3549, 3549, 04193 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04194 1463, 3549, 3549, 3549, 3549, 3549, 3549, 1463, 1463, 1474, 04195 1474, 1474, 1474, 3549, 3549, 3549, 1474, 3549, 3549, 3549, 04196 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04197 04198 3549, 3549, 1474, 1477, 1477, 1477, 1477, 1477, 3549, 3549, 04199 1477, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04200 1477, 3549, 3549, 3549, 3549, 3549, 1477, 3549, 3549, 3549, 04201 3549, 3549, 1477, 1479, 1479, 1479, 1479, 3549, 3549, 3549, 04202 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1479, 04203 1479, 3549, 3549, 3549, 3549, 3549, 1479, 1486, 1486, 3549, 04204 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 04205 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 04206 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1488, 3549, 04207 3549, 3549, 3549, 1488, 3549, 3549, 1488, 1488, 3549, 3549, 04208 04209 3549, 1488, 1488, 1488, 3549, 1488, 1488, 1488, 1488, 1488, 04210 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1490, 04211 1490, 3549, 1490, 3549, 1490, 1490, 1490, 1490, 1490, 3549, 04212 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 04213 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 04214 1505, 1505, 3549, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 04215 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 04216 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505, 04217 1505, 1509, 1509, 3549, 1509, 1509, 1509, 1509, 1509, 1509, 04218 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 04219 04220 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509, 04221 1509, 1509, 1510, 1510, 3549, 1510, 1510, 1510, 3549, 1510, 04222 1510, 1510, 3549, 3549, 3549, 1510, 1510, 1510, 1510, 1510, 04223 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 04224 1510, 1510, 1510, 1511, 1511, 3549, 1511, 3549, 1511, 1511, 04225 1511, 1511, 1511, 3549, 1511, 1511, 1511, 1511, 1511, 1511, 04226 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 04227 1511, 1511, 1511, 1511, 1515, 1515, 3549, 1515, 1515, 1515, 04228 3549, 1515, 1515, 1515, 3549, 1515, 1515, 1515, 1515, 1515, 04229 3549, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 04230 04231 1515, 1515, 3549, 3549, 1515, 1516, 1516, 3549, 1516, 3549, 04232 1516, 1516, 1516, 1516, 1516, 3549, 1516, 1516, 1516, 1516, 04233 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 1516, 04234 1516, 1516, 1516, 1516, 1516, 1516, 1518, 1518, 3549, 1518, 04235 1518, 1518, 3549, 1518, 1518, 1518, 3549, 3549, 3549, 1518, 04236 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 04237 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1519, 1519, 3549, 04238 1519, 3549, 1519, 1519, 1519, 1519, 1519, 3549, 1519, 1519, 04239 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 04240 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1519, 1523, 1523, 04241 04242 3549, 1523, 1523, 1523, 3549, 1523, 1523, 1523, 3549, 1523, 04243 1523, 1523, 1523, 1523, 3549, 1523, 1523, 1523, 1523, 1523, 04244 1523, 1523, 1523, 1523, 1523, 1523, 3549, 3549, 1523, 1524, 04245 1524, 3549, 1524, 3549, 1524, 1524, 1524, 1524, 1524, 3549, 04246 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 04247 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 1524, 04248 1534, 1534, 3549, 1534, 3549, 1534, 1534, 1534, 1534, 1534, 04249 3549, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 04250 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 1534, 04251 1534, 1544, 1544, 3549, 1544, 1544, 1544, 3549, 1544, 1544, 04252 04253 1544, 3549, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 04254 1544, 1544, 1544, 1544, 1544, 1544, 1544, 3549, 1544, 1544, 04255 1544, 1544, 1547, 1547, 3549, 1547, 1547, 1547, 1547, 1547, 04256 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 04257 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 04258 1547, 1547, 1547, 1548, 1548, 3549, 1548, 1548, 1548, 3549, 04259 1548, 1548, 1548, 3549, 3549, 3549, 1548, 1548, 1548, 3549, 04260 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 04261 1548, 1548, 1548, 1548, 1549, 1549, 3549, 1549, 1549, 1549, 04262 1549, 1549, 1549, 1549, 1549, 1549, 1549, 3549, 1549, 1549, 04263 04264 1549, 1549, 1549, 1549, 1549, 1549, 1549, 3549, 1549, 1549, 04265 3549, 1549, 1549, 1549, 1549, 1557, 1557, 3549, 1557, 1557, 04266 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 04267 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 3549, 1557, 04268 1557, 3549, 1557, 1557, 1557, 1557, 1573, 1573, 1573, 1573, 04269 3549, 3549, 3549, 1573, 3549, 3549, 3549, 3549, 3549, 3549, 04270 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1573, 04271 1573, 1579, 1579, 1579, 1579, 3549, 3549, 3549, 3549, 3549, 04272 3549, 3549, 1579, 3549, 1579, 3549, 3549, 1579, 3549, 3549, 04273 3549, 3549, 3549, 3549, 1579, 1580, 1580, 1580, 1580, 1580, 04274 04275 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 04276 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 04277 1580, 1580, 1580, 1580, 1580, 1580, 1584, 1584, 1584, 1584, 04278 3549, 3549, 3549, 1584, 3549, 3549, 3549, 3549, 3549, 3549, 04279 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1584, 04280 1588, 1588, 1588, 1588, 3549, 3549, 3549, 3549, 3549, 3549, 04281 1588, 3549, 3549, 3549, 3549, 3549, 1588, 3549, 3549, 3549, 04282 3549, 3549, 3549, 1588, 1592, 3549, 3549, 1592, 3549, 3549, 04283 3549, 1592, 1592, 3549, 3549, 3549, 1592, 3549, 3549, 3549, 04284 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1592, 1598, 1598, 04285 04286 1598, 1598, 3549, 3549, 3549, 1598, 3549, 3549, 3549, 3549, 04287 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04288 3549, 1598, 1601, 1601, 1601, 1601, 1601, 3549, 3549, 1601, 04289 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1601, 04290 3549, 3549, 3549, 3549, 3549, 1601, 3549, 3549, 3549, 3549, 04291 3549, 1601, 1603, 1603, 1603, 1603, 3549, 3549, 3549, 3549, 04292 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1603, 1603, 04293 3549, 3549, 3549, 3549, 3549, 1603, 1613, 1613, 1613, 1613, 04294 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 04295 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 04296 04297 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1619, 1619, 3549, 04298 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 04299 3549, 1619, 1619, 3549, 1619, 1619, 1619, 1619, 1619, 1619, 04300 3549, 1619, 1619, 3549, 1619, 1619, 1619, 1619, 1640, 1640, 04301 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 04302 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 04303 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1643, 04304 1643, 3549, 1643, 1643, 1643, 1643, 1643, 3549, 1643, 1643, 04305 1643, 1643, 3549, 1643, 1643, 3549, 1643, 1643, 1643, 3549, 04306 1643, 1643, 3549, 1643, 1643, 3549, 3549, 1643, 1643, 1643, 04307 04308 1053, 3549, 3549, 1053, 3549, 3549, 3549, 3549, 3549, 3549, 04309 1053, 3549, 3549, 3549, 3549, 3549, 1053, 3549, 3549, 3549, 04310 3549, 3549, 3549, 1053, 1074, 1074, 1074, 1074, 3549, 3549, 04311 3549, 1074, 3549, 3549, 3549, 3549, 3549, 3549, 1074, 3549, 04312 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1074, 3549, 3549, 04313 3549, 3549, 3549, 1074, 1067, 1067, 1067, 1067, 3549, 3549, 04314 3549, 1067, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04315 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1067, 1657, 1657, 04316 1657, 1657, 3549, 3549, 3549, 3549, 3549, 3549, 1657, 3549, 04317 3549, 3549, 3549, 3549, 1657, 3549, 1657, 1657, 3549, 3549, 04318 04319 3549, 1657, 1079, 1079, 1079, 1079, 3549, 3549, 3549, 3549, 04320 3549, 3549, 1079, 3549, 3549, 3549, 1079, 3549, 1079, 1079, 04321 1079, 1079, 3549, 3549, 3549, 1079, 1660, 1660, 1660, 1660, 04322 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04323 1660, 3549, 1660, 3549, 3549, 3549, 3549, 3549, 3549, 1660, 04324 1663, 1663, 1663, 1663, 3549, 3549, 3549, 1663, 3549, 3549, 04325 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04326 3549, 3549, 3549, 1663, 1085, 1085, 1085, 1085, 3549, 3549, 04327 3549, 1085, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04328 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1085, 1665, 1665, 04329 04330 1665, 1665, 3549, 3549, 3549, 3549, 3549, 3549, 1665, 3549, 04331 3549, 3549, 3549, 3549, 1665, 3549, 1665, 1665, 3549, 3549, 04332 3549, 1665, 1092, 1092, 1092, 1092, 3549, 3549, 3549, 1092, 04333 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04334 3549, 3549, 3549, 3549, 3549, 1092, 1667, 1667, 1667, 1667, 04335 3549, 3549, 3549, 3549, 3549, 3549, 1667, 3549, 3549, 3549, 04336 3549, 3549, 1667, 3549, 3549, 3549, 3549, 3549, 3549, 1667, 04337 1103, 1103, 1103, 1103, 3549, 3549, 3549, 3549, 3549, 3549, 04338 1103, 3549, 3549, 3549, 3549, 3549, 1103, 1103, 3549, 3549, 04339 3549, 3549, 3549, 1103, 1113, 3549, 3549, 3549, 1113, 3549, 04340 04341 1113, 3549, 3549, 1113, 3549, 3549, 3549, 1113, 1130, 1130, 04342 1130, 1130, 3549, 3549, 3549, 1130, 3549, 3549, 3549, 3549, 04343 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04344 3549, 1130, 3549, 3549, 3549, 1130, 1137, 1137, 1137, 1137, 04345 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04346 1137, 3549, 1137, 1137, 3549, 3549, 3549, 3549, 3549, 1137, 04347 1690, 1690, 1690, 1690, 3549, 3549, 3549, 1690, 3549, 3549, 04348 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04349 3549, 3549, 3549, 1690, 1698, 1698, 3549, 1698, 3549, 1698, 04350 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 04351 04352 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 04353 3549, 1698, 1698, 1698, 1698, 1700, 1700, 3549, 1700, 1700, 04354 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 04355 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 04356 1700, 1700, 1700, 1700, 1700, 1700, 1205, 1205, 1205, 1205, 04357 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 04358 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 04359 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1174, 1174, 1174, 04360 1174, 3549, 3549, 3549, 1174, 3549, 3549, 3549, 3549, 3549, 04361 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04362 04363 1174, 1740, 1740, 1740, 1740, 3549, 3549, 3549, 3549, 3549, 04364 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1740, 3549, 3549, 04365 1740, 3549, 3549, 3549, 1740, 1202, 1202, 1202, 1202, 3549, 04366 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04367 3549, 1202, 1202, 3549, 1202, 3549, 3549, 3549, 1202, 1185, 04368 1185, 1185, 1185, 3549, 3549, 3549, 1185, 1185, 3549, 3549, 04369 3549, 1185, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04370 3549, 3549, 1185, 1748, 1748, 1748, 1748, 3549, 3549, 3549, 04371 3549, 3549, 3549, 3549, 1748, 1748, 3549, 3549, 3549, 1748, 04372 1748, 3549, 1748, 3549, 3549, 3549, 1748, 1764, 1764, 1764, 04373 04374 1764, 3549, 3549, 3549, 3549, 3549, 3549, 1764, 3549, 3549, 04375 3549, 3549, 3549, 1764, 3549, 3549, 3549, 3549, 3549, 3549, 04376 1764, 1238, 1238, 3549, 1238, 1238, 1238, 1238, 1238, 1238, 04377 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 04378 1238, 3549, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 04379 1238, 1238, 1246, 1246, 1246, 1246, 3549, 3549, 3549, 1246, 04380 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04381 3549, 3549, 3549, 3549, 3549, 1246, 1820, 1820, 1820, 1820, 04382 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04383 3549, 3549, 1820, 3549, 3549, 1820, 3549, 3549, 3549, 1820, 04384 04385 1252, 1252, 1252, 1252, 3549, 3549, 3549, 3549, 3549, 3549, 04386 3549, 3549, 3549, 3549, 3549, 3549, 1252, 1252, 3549, 1252, 04387 3549, 3549, 3549, 1252, 1289, 1289, 3549, 3549, 1289, 1289, 04388 3549, 3549, 1289, 1289, 3549, 1289, 1289, 1289, 1289, 1289, 04389 3549, 1289, 1289, 1289, 1289, 1289, 1289, 3549, 1289, 1289, 04390 1289, 1289, 3549, 3549, 1289, 1293, 1293, 3549, 1293, 1293, 04391 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 04392 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 04393 1293, 1293, 1293, 1293, 1293, 1293, 1854, 1854, 3549, 1854, 04394 3549, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 04395 04396 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 1854, 04397 1854, 1854, 3549, 1854, 1854, 1854, 1854, 1856, 1856, 3549, 04398 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 04399 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 04400 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1856, 1861, 1861, 04401 3549, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 04402 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 04403 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1305, 04404 1305, 1305, 1305, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04405 3549, 3549, 3549, 1305, 3549, 1305, 1305, 3549, 3549, 3549, 04406 04407 3549, 3549, 1305, 1866, 1866, 1866, 1866, 3549, 3549, 3549, 04408 1866, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04409 3549, 3549, 3549, 3549, 3549, 3549, 1866, 1312, 1312, 1312, 04410 1312, 3549, 3549, 3549, 1312, 3549, 3549, 3549, 3549, 3549, 04411 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04412 1312, 1317, 1317, 1317, 1317, 3549, 3549, 3549, 3549, 3549, 04413 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1317, 1317, 3549, 04414 3549, 3549, 3549, 3549, 1317, 1318, 1318, 3549, 1318, 1318, 04415 1318, 3549, 3549, 1318, 1318, 3549, 1318, 1318, 1318, 1318, 04416 1318, 3549, 1318, 1318, 1318, 1318, 1318, 1318, 3549, 1318, 04417 04418 1318, 3549, 1318, 3549, 3549, 1318, 1870, 1870, 3549, 1870, 04419 3549, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 04420 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 1870, 04421 1870, 1870, 3549, 1870, 1870, 1870, 1870, 1872, 1872, 3549, 04422 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 04423 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 04424 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1872, 1346, 1346, 04425 3549, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 04426 1346, 3549, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 04427 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1352, 04428 04429 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 04430 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 04431 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 04432 1357, 1357, 3549, 1357, 1357, 1357, 3549, 1357, 1357, 1357, 04433 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 04434 1357, 1357, 1357, 1357, 1357, 3549, 1357, 3549, 1357, 1357, 04435 1357, 1360, 1360, 3549, 1360, 1360, 1360, 1360, 1360, 1360, 04436 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 04437 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 04438 1360, 1360, 1368, 3549, 3549, 3549, 3549, 1368, 1368, 1368, 04439 04440 1368, 1368, 1368, 1368, 1368, 3549, 1368, 3549, 3549, 1368, 04441 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 04442 1368, 1368, 1368, 1382, 1382, 1382, 1382, 3549, 3549, 3549, 04443 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1382, 3549, 1382, 04444 3549, 3549, 3549, 3549, 3549, 3549, 1382, 1892, 1892, 1892, 04445 1892, 3549, 3549, 3549, 1892, 3549, 3549, 3549, 3549, 1892, 04446 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04447 1892, 1388, 1388, 3549, 1388, 1388, 1388, 1388, 1388, 1388, 04448 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 04449 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 04450 04451 1388, 1388, 1397, 1397, 3549, 1397, 1397, 1397, 3549, 1397, 04452 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 04453 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1397, 04454 1397, 1397, 1397, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 04455 1405, 1405, 1405, 1405, 1405, 3549, 1405, 1405, 1405, 1405, 04456 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1405, 04457 1405, 1405, 1405, 1405, 1412, 1412, 1412, 1412, 3549, 3549, 04458 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04459 1412, 1412, 3549, 3549, 3549, 3549, 3549, 1412, 1414, 1414, 04460 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 04461 04462 3549, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 04463 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1914, 04464 3549, 3549, 3549, 1914, 1914, 3549, 3549, 1914, 3549, 3549, 04465 3549, 3549, 1914, 3549, 1914, 1923, 1923, 3549, 1923, 3549, 04466 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, 04467 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, 1923, 04468 1923, 3549, 1923, 1923, 1923, 1923, 1925, 1925, 3549, 1925, 04469 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 04470 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 04471 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1452, 1452, 1452, 04472 04473 1452, 3549, 3549, 3549, 1452, 3549, 3549, 3549, 3549, 3549, 04474 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04475 1452, 1455, 1455, 1455, 1455, 3549, 3549, 3549, 3549, 3549, 04476 3549, 3549, 3549, 1455, 3549, 3549, 3549, 1455, 3549, 3549, 04477 3549, 3549, 3549, 3549, 1455, 1461, 1461, 1461, 1461, 3549, 04478 3549, 3549, 1461, 1461, 3549, 3549, 3549, 1461, 3549, 3549, 04479 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1461, 1463, 04480 1463, 1463, 1463, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04481 3549, 3549, 3549, 3549, 3549, 1463, 3549, 3549, 3549, 3549, 04482 3549, 3549, 1463, 1463, 1933, 1933, 3549, 1933, 1933, 1933, 04483 04484 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 04485 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 04486 1933, 1933, 1933, 1933, 1933, 1938, 1938, 1938, 1938, 3549, 04487 3549, 3549, 1938, 3549, 3549, 3549, 3549, 1938, 3549, 3549, 04488 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1938, 1474, 04489 1474, 1474, 1474, 3549, 3549, 3549, 1474, 3549, 3549, 3549, 04490 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04491 3549, 3549, 1474, 1479, 1479, 1479, 1479, 3549, 3549, 3549, 04492 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1479, 04493 1479, 3549, 3549, 3549, 3549, 3549, 1479, 1486, 1486, 3549, 04494 04495 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 04496 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 04497 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1486, 1488, 3549, 04498 3549, 3549, 3549, 1488, 3549, 3549, 1488, 1488, 3549, 3549, 04499 3549, 1488, 1488, 1488, 3549, 1488, 1488, 1488, 1488, 1488, 04500 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1944, 04501 1944, 3549, 1944, 3549, 1944, 1944, 1944, 1944, 1944, 1944, 04502 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 04503 1944, 1944, 1944, 1944, 1944, 3549, 1944, 1944, 1944, 1944, 04504 1946, 1946, 3549, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 04505 04506 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 04507 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 04508 1946, 1510, 1510, 3549, 1510, 1510, 1510, 3549, 1510, 1510, 04509 1510, 3549, 3549, 3549, 1510, 1510, 1510, 1510, 1510, 1510, 04510 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 04511 1510, 1510, 1952, 1952, 3549, 1952, 3549, 1952, 1952, 1952, 04512 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 04513 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 3549, 1952, 04514 1952, 1952, 1952, 1954, 1954, 3549, 1954, 1954, 1954, 1954, 04515 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 04516 04517 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 1954, 04518 1954, 1954, 1954, 1954, 1515, 1515, 3549, 1515, 1515, 1515, 04519 3549, 1515, 1515, 1515, 3549, 1515, 1515, 1515, 1515, 1515, 04520 3549, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515, 04521 1515, 1515, 3549, 3549, 1515, 1956, 1956, 3549, 1956, 3549, 04522 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 04523 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 04524 1956, 3549, 1956, 1956, 1956, 1956, 1958, 1958, 3549, 1958, 04525 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 04526 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1958, 04527 04528 1958, 1958, 1958, 1958, 1958, 1958, 1958, 1518, 1518, 3549, 04529 1518, 1518, 1518, 3549, 1518, 1518, 1518, 3549, 3549, 3549, 04530 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 04531 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1960, 1960, 04532 3549, 1960, 3549, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 04533 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 04534 1960, 1960, 1960, 1960, 3549, 1960, 1960, 1960, 1960, 1962, 04535 1962, 3549, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 04536 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 04537 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 1962, 04538 04539 1523, 1523, 3549, 1523, 1523, 1523, 3549, 1523, 1523, 1523, 04540 3549, 1523, 1523, 1523, 1523, 1523, 3549, 1523, 1523, 1523, 04541 1523, 1523, 1523, 1523, 1523, 1523, 1523, 1523, 3549, 3549, 04542 1523, 1964, 1964, 3549, 1964, 3549, 1964, 1964, 1964, 1964, 04543 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 1964, 04544 1964, 1964, 1964, 1964, 1964, 1964, 1964, 3549, 1964, 1964, 04545 1964, 1964, 1966, 1966, 3549, 1966, 1966, 1966, 1966, 1966, 04546 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 04547 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 04548 1966, 1966, 1966, 1970, 1970, 3549, 1970, 3549, 1970, 1970, 04549 04550 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 04551 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 3549, 04552 1970, 1970, 1970, 1970, 1972, 1972, 3549, 1972, 1972, 1972, 04553 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 04554 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 04555 1972, 1972, 1972, 1972, 1972, 1544, 1544, 3549, 1544, 1544, 04556 1544, 3549, 1544, 1544, 1544, 3549, 1544, 1544, 1544, 1544, 04557 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 1544, 04558 1544, 3549, 1544, 1544, 1544, 1544, 1548, 1548, 3549, 1548, 04559 1548, 1548, 3549, 1548, 1548, 1548, 3549, 3549, 3549, 1548, 04560 04561 1548, 1548, 3549, 1548, 1548, 1548, 1548, 1548, 1548, 1548, 04562 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1549, 1549, 3549, 04563 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 04564 3549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549, 04565 3549, 1549, 1549, 3549, 1549, 1549, 1549, 1549, 1557, 1557, 04566 3549, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 04567 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557, 04568 1557, 3549, 1557, 1557, 3549, 1557, 1557, 1557, 1557, 1573, 04569 1573, 1573, 1573, 3549, 3549, 3549, 1573, 3549, 3549, 3549, 04570 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04571 04572 3549, 3549, 1573, 1573, 1987, 1987, 1987, 1987, 3549, 3549, 04573 3549, 3549, 3549, 3549, 3549, 1987, 3549, 1987, 3549, 3549, 04574 1987, 3549, 3549, 3549, 3549, 3549, 3549, 1987, 1580, 1580, 04575 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 04576 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 04577 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1579, 04578 1579, 1579, 1579, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04579 1579, 3549, 1579, 3549, 3549, 1579, 3549, 3549, 3549, 3549, 04580 3549, 3549, 1579, 1584, 1584, 1584, 1584, 3549, 3549, 3549, 04581 1584, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04582 04583 3549, 3549, 3549, 3549, 3549, 3549, 1584, 1991, 1991, 1991, 04584 1991, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04585 3549, 3549, 3549, 1991, 3549, 3549, 3549, 3549, 3549, 3549, 04586 1991, 1588, 1588, 1588, 1588, 3549, 3549, 3549, 3549, 3549, 04587 3549, 1588, 3549, 3549, 3549, 3549, 3549, 1588, 3549, 3549, 04588 3549, 3549, 3549, 3549, 1588, 1598, 1598, 1598, 1598, 3549, 04589 3549, 3549, 1598, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04590 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1598, 1603, 04591 1603, 1603, 1603, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04592 3549, 3549, 3549, 3549, 3549, 1603, 1603, 3549, 3549, 3549, 04593 04594 3549, 3549, 1603, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 04595 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 04596 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 04597 1613, 1613, 1613, 1613, 1619, 1619, 3549, 1619, 1619, 1619, 04598 1619, 1619, 1619, 1619, 1619, 1619, 1619, 3549, 1619, 1619, 04599 3549, 1619, 1619, 1619, 1619, 1619, 1619, 3549, 1619, 1619, 04600 3549, 1619, 1619, 1619, 1619, 1640, 1640, 1640, 1640, 1640, 04601 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 04602 1640, 3549, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 04603 1640, 1640, 1640, 1640, 1640, 1640, 1643, 1643, 3549, 1643, 04604 04605 1643, 1643, 1643, 1643, 3549, 1643, 1643, 1643, 1643, 3549, 04606 1643, 1643, 3549, 1643, 1643, 1643, 3549, 1643, 1643, 3549, 04607 1643, 1643, 3549, 3549, 1643, 1643, 1643, 1657, 1657, 1657, 04608 1657, 3549, 3549, 3549, 3549, 3549, 3549, 1657, 3549, 3549, 04609 3549, 3549, 3549, 1657, 3549, 1657, 1657, 3549, 3549, 3549, 04610 1657, 2023, 2023, 2023, 2023, 3549, 3549, 3549, 3549, 3549, 04611 3549, 2023, 3549, 3549, 3549, 3549, 3549, 2023, 2023, 2023, 04612 2023, 3549, 3549, 3549, 2023, 1660, 1660, 1660, 1660, 3549, 04613 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1660, 04614 3549, 1660, 3549, 3549, 3549, 3549, 3549, 3549, 1660, 1663, 04615 04616 1663, 1663, 1663, 3549, 3549, 3549, 1663, 3549, 3549, 3549, 04617 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04618 3549, 3549, 1663, 1658, 1658, 1658, 1658, 1658, 3549, 3549, 04619 1658, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04620 1658, 3549, 3549, 3549, 3549, 3549, 1658, 3549, 3549, 3549, 04621 3549, 3549, 1658, 1665, 1665, 1665, 1665, 3549, 3549, 3549, 04622 3549, 3549, 3549, 1665, 3549, 3549, 3549, 3549, 3549, 1665, 04623 3549, 1665, 1665, 3549, 3549, 3549, 1665, 1667, 1667, 1667, 04624 1667, 3549, 3549, 3549, 3549, 3549, 3549, 1667, 3549, 3549, 04625 3549, 3549, 3549, 1667, 3549, 3549, 3549, 3549, 3549, 3549, 04626 04627 1667, 2025, 2025, 2025, 2025, 3549, 3549, 3549, 3549, 3549, 04628 3549, 2025, 3549, 3549, 3549, 3549, 3549, 2025, 2025, 3549, 04629 3549, 3549, 3549, 3549, 2025, 2026, 2026, 2026, 2026, 2026, 04630 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 3549, 2026, 04631 2026, 3549, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 04632 2026, 2026, 2026, 2026, 2026, 2026, 2028, 2028, 2028, 2028, 04633 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 04634 2028, 2028, 3549, 2028, 2028, 2028, 2028, 2028, 2028, 2028, 04635 2028, 2028, 2028, 2028, 2028, 2028, 2028, 1668, 1668, 1668, 04636 1668, 1668, 3549, 3549, 1668, 3549, 3549, 3549, 3549, 3549, 04637 04638 3549, 3549, 3549, 3549, 1668, 3549, 3549, 3549, 3549, 3549, 04639 1668, 3549, 3549, 3549, 3549, 3549, 1668, 1103, 1103, 1103, 04640 1103, 3549, 3549, 3549, 3549, 3549, 3549, 1103, 3549, 3549, 04641 3549, 3549, 3549, 1103, 1103, 3549, 3549, 3549, 3549, 3549, 04642 1103, 1113, 3549, 3549, 3549, 1113, 3549, 1113, 3549, 3549, 04643 1113, 3549, 3549, 3549, 1113, 2041, 2041, 2041, 2041, 2041, 04644 3549, 3549, 2041, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04645 3549, 3549, 2041, 3549, 3549, 3549, 3549, 3549, 2041, 3549, 04646 3549, 3549, 3549, 3549, 2041, 1137, 1137, 1137, 1137, 3549, 04647 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1137, 04648 04649 3549, 1137, 1137, 3549, 3549, 3549, 3549, 3549, 1137, 1690, 04650 1690, 1690, 1690, 3549, 3549, 3549, 1690, 3549, 3549, 3549, 04651 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04652 3549, 3549, 1690, 2043, 2043, 2043, 2043, 3549, 3549, 3549, 04653 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 2043, 04654 2043, 3549, 3549, 3549, 3549, 3549, 2043, 2050, 2050, 3549, 04655 2050, 3549, 2050, 2050, 2050, 2050, 2050, 2050, 2050, 2050, 04656 2050, 2050, 2050, 2050, 2050, 2050, 2050, 2050, 2050, 2050, 04657 2050, 2050, 2050, 3549, 2050, 2050, 2050, 2050, 1180, 1180, 04658 1180, 1180, 1180, 3549, 3549, 1180, 3549, 3549, 3549, 3549, 04659 04660 3549, 3549, 3549, 3549, 3549, 1180, 3549, 3549, 3549, 3549, 04661 3549, 1180, 3549, 3549, 3549, 3549, 3549, 1180, 1740, 1740, 04662 1740, 1740, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04663 3549, 3549, 3549, 3549, 1740, 3549, 3549, 1740, 3549, 3549, 04664 3549, 1740, 2100, 2100, 2100, 2100, 3549, 3549, 3549, 2100, 04665 2100, 3549, 3549, 3549, 2100, 3549, 3549, 3549, 3549, 3549, 04666 3549, 3549, 3549, 3549, 3549, 2100, 2106, 2106, 2106, 2106, 04667 3549, 3549, 3549, 2106, 3549, 3549, 3549, 2106, 3549, 3549, 04668 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 2106, 04669 1748, 1748, 1748, 1748, 3549, 3549, 3549, 3549, 3549, 3549, 04670 04671 3549, 1748, 1748, 3549, 3549, 3549, 1748, 1748, 3549, 1748, 04672 3549, 3549, 3549, 1748, 2108, 3549, 3549, 2108, 3549, 3549, 04673 3549, 3549, 2108, 3549, 3549, 3549, 2108, 2108, 3549, 3549, 04674 2108, 3549, 3549, 3549, 3549, 2108, 3549, 2108, 2110, 2110, 04675 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 04676 2110, 3549, 2110, 2110, 3549, 2110, 2110, 2110, 2110, 2110, 04677 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2116, 04678 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 04679 2116, 2116, 2116, 2116, 2116, 3549, 2116, 2116, 2116, 2116, 04680 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 04681 04682 1764, 1764, 1764, 1764, 3549, 3549, 3549, 3549, 3549, 3549, 04683 1764, 3549, 3549, 3549, 3549, 3549, 1764, 3549, 3549, 3549, 04684 3549, 3549, 3549, 1764, 1202, 1202, 1202, 1202, 3549, 3549, 04685 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04686 1202, 1202, 3549, 1202, 3549, 3549, 3549, 1202, 1820, 1820, 04687 1820, 1820, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04688 3549, 3549, 3549, 3549, 1820, 3549, 3549, 1820, 3549, 3549, 04689 3549, 1820, 1249, 1249, 1249, 1249, 1249, 3549, 3549, 1249, 04690 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1249, 04691 3549, 3549, 3549, 3549, 3549, 1249, 3549, 3549, 3549, 3549, 04692 04693 3549, 1249, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 04694 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 04695 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 04696 2195, 2195, 2195, 1293, 1293, 3549, 1293, 1293, 1293, 1293, 04697 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 04698 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 04699 1293, 1293, 1293, 1293, 2198, 2198, 3549, 2198, 3549, 2198, 04700 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2198, 04701 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2198, 04702 3549, 2198, 2198, 2198, 2198, 1861, 1861, 3549, 1861, 1861, 04703 04704 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 04705 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 04706 1861, 1861, 1861, 1861, 1861, 1861, 1866, 1866, 1866, 1866, 04707 3549, 3549, 3549, 1866, 3549, 3549, 3549, 3549, 3549, 3549, 04708 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1866, 04709 2204, 2204, 2204, 2204, 3549, 3549, 3549, 3549, 3549, 3549, 04710 3549, 3549, 3549, 3549, 2204, 3549, 2204, 2204, 3549, 3549, 04711 3549, 3549, 3549, 2204, 1305, 1305, 1305, 1305, 3549, 3549, 04712 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1305, 3549, 04713 1305, 1305, 3549, 3549, 3549, 3549, 3549, 1305, 1315, 1315, 04714 04715 1315, 1315, 1315, 3549, 3549, 1315, 3549, 3549, 3549, 3549, 04716 3549, 3549, 3549, 3549, 3549, 1315, 3549, 3549, 3549, 3549, 04717 3549, 1315, 3549, 3549, 3549, 3549, 3549, 1315, 2206, 2206, 04718 3549, 2206, 3549, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 04719 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 04720 2206, 2206, 2206, 2206, 3549, 2206, 2206, 2206, 2206, 1368, 04721 3549, 3549, 3549, 3549, 1368, 1368, 1368, 1368, 1368, 1368, 04722 1368, 1368, 3549, 1368, 3549, 3549, 1368, 1368, 1368, 1368, 04723 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 04724 1892, 1892, 1892, 1892, 3549, 3549, 3549, 1892, 3549, 3549, 04725 04726 3549, 3549, 1892, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04727 3549, 3549, 3549, 1892, 2219, 2219, 2219, 2219, 3549, 3549, 04728 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 2219, 3549, 04729 2219, 3549, 3549, 3549, 3549, 3549, 3549, 2219, 1914, 3549, 04730 3549, 3549, 1914, 1914, 3549, 3549, 1914, 3549, 3549, 3549, 04731 3549, 1914, 3549, 1914, 2239, 2239, 3549, 2239, 3549, 2239, 04732 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 04733 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 04734 3549, 2239, 2239, 2239, 2239, 1933, 1933, 3549, 1933, 1933, 04735 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 04736 04737 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 1933, 04738 1933, 1933, 1933, 1933, 1933, 1933, 1938, 1938, 1938, 1938, 04739 3549, 3549, 3549, 1938, 3549, 3549, 3549, 3549, 1938, 3549, 04740 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1938, 04741 2244, 2244, 2244, 2244, 3549, 3549, 3549, 3549, 3549, 3549, 04742 3549, 3549, 3549, 3549, 3549, 3549, 2244, 2244, 3549, 3549, 04743 3549, 3549, 3549, 2244, 1477, 1477, 1477, 1477, 1477, 3549, 04744 3549, 1477, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04745 3549, 1477, 3549, 3549, 3549, 3549, 3549, 1477, 3549, 3549, 04746 3549, 3549, 3549, 1477, 2246, 2246, 3549, 2246, 3549, 2246, 04747 04748 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 04749 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 2246, 04750 3549, 2246, 2246, 2246, 2246, 2252, 2252, 3549, 2252, 3549, 04751 2252, 2252, 2252, 2252, 2252, 2252, 2252, 2252, 2252, 2252, 04752 2252, 2252, 2252, 2252, 2252, 2252, 2252, 2252, 2252, 2252, 04753 2252, 3549, 2252, 2252, 2252, 2252, 2255, 2255, 3549, 2255, 04754 3549, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 04755 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 04756 2255, 2255, 3549, 2255, 2255, 2255, 2255, 2258, 2258, 3549, 04757 2258, 3549, 2258, 2258, 2258, 2258, 2258, 2258, 2258, 2258, 04758 04759 2258, 2258, 2258, 2258, 2258, 2258, 2258, 2258, 2258, 2258, 04760 2258, 2258, 2258, 3549, 2258, 2258, 2258, 2258, 2261, 2261, 04761 3549, 2261, 3549, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 04762 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 2261, 04763 2261, 2261, 2261, 2261, 3549, 2261, 2261, 2261, 2261, 1523, 04764 1523, 3549, 1523, 1523, 1523, 3549, 1523, 1523, 1523, 3549, 04765 1523, 1523, 1523, 1523, 1523, 3549, 1523, 1523, 1523, 1523, 04766 1523, 1523, 1523, 1523, 1523, 1523, 1523, 3549, 3549, 1523, 04767 2266, 2266, 3549, 2266, 3549, 2266, 2266, 2266, 2266, 2266, 04768 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 2266, 04769 04770 2266, 2266, 2266, 2266, 2266, 2266, 3549, 2266, 2266, 2266, 04771 2266, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 04772 2279, 2279, 2279, 2279, 2279, 2279, 2279, 2279, 3549, 2279, 04773 2279, 2279, 2279, 2279, 2279, 3549, 2279, 2279, 2279, 2279, 04774 2279, 2279, 1987, 1987, 1987, 1987, 3549, 3549, 3549, 3549, 04775 3549, 3549, 3549, 1987, 3549, 1987, 3549, 3549, 1987, 3549, 04776 3549, 3549, 3549, 3549, 3549, 1987, 1991, 1991, 1991, 1991, 04777 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04778 3549, 3549, 1991, 3549, 3549, 3549, 3549, 3549, 3549, 1991, 04779 1601, 1601, 1601, 1601, 1601, 3549, 3549, 1601, 3549, 3549, 04780 04781 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1601, 3549, 3549, 04782 3549, 3549, 3549, 1601, 3549, 3549, 3549, 3549, 3549, 1601, 04783 1619, 1619, 3549, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 04784 1619, 1619, 1619, 3549, 1619, 1619, 3549, 1619, 1619, 1619, 04785 1619, 1619, 1619, 3549, 1619, 1619, 3549, 1619, 1619, 1619, 04786 1619, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 04787 1640, 1640, 1640, 1640, 1640, 1640, 1640, 3549, 1640, 1640, 04788 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 1640, 04789 1640, 1640, 2023, 2023, 2023, 2023, 3549, 3549, 3549, 3549, 04790 3549, 3549, 2023, 3549, 3549, 3549, 3549, 3549, 2023, 2023, 04791 04792 2023, 2023, 3549, 3549, 3549, 2023, 2025, 2025, 2025, 2025, 04793 3549, 3549, 3549, 3549, 3549, 3549, 2025, 3549, 3549, 3549, 04794 3549, 3549, 2025, 2025, 3549, 3549, 3549, 3549, 3549, 2025, 04795 1103, 1103, 1103, 1103, 3549, 3549, 3549, 3549, 3549, 3549, 04796 1103, 3549, 3549, 3549, 3549, 3549, 1103, 1103, 3549, 3549, 04797 3549, 3549, 3549, 1103, 1113, 3549, 3549, 3549, 1113, 3549, 04798 1113, 3549, 3549, 1113, 3549, 3549, 3549, 1113, 2041, 2041, 04799 2041, 2041, 2041, 3549, 3549, 2041, 3549, 3549, 3549, 3549, 04800 3549, 3549, 3549, 3549, 3549, 2041, 3549, 3549, 3549, 3549, 04801 3549, 2041, 3549, 3549, 3549, 3549, 3549, 2041, 2307, 2307, 04802 04803 2307, 2307, 3549, 3549, 3549, 2307, 3549, 3549, 3549, 3549, 04804 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04805 3549, 2307, 2311, 2311, 2311, 2311, 3549, 3549, 3549, 3549, 04806 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 2311, 2311, 04807 3549, 3549, 3549, 3549, 3549, 2311, 1137, 1137, 1137, 1137, 04808 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04809 1137, 3549, 1137, 1137, 3549, 3549, 3549, 3549, 3549, 1137, 04810 2043, 2043, 2043, 2043, 3549, 3549, 3549, 3549, 3549, 3549, 04811 3549, 3549, 3549, 3549, 3549, 3549, 2043, 2043, 3549, 3549, 04812 3549, 3549, 3549, 2043, 1690, 1690, 1690, 1690, 3549, 3549, 04813 04814 3549, 1690, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04815 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1690, 2317, 2317, 04816 3549, 2317, 3549, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 04817 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 04818 2317, 2317, 2317, 2317, 3549, 2317, 2317, 2317, 2317, 2100, 04819 2100, 2100, 2100, 3549, 3549, 3549, 2100, 2100, 3549, 3549, 04820 3549, 2100, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04821 3549, 3549, 2100, 2367, 2367, 2367, 2367, 3549, 3549, 3549, 04822 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 2367, 04823 2367, 3549, 2367, 3549, 3549, 3549, 2367, 2106, 2106, 2106, 04824 04825 2106, 3549, 3549, 3549, 2106, 3549, 3549, 3549, 2106, 3549, 04826 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04827 2106, 2374, 2374, 2374, 2374, 3549, 3549, 3549, 2374, 2374, 04828 3549, 3549, 3549, 2374, 3549, 3549, 3549, 3549, 3549, 3549, 04829 3549, 3549, 3549, 3549, 2374, 2108, 3549, 3549, 2108, 3549, 04830 3549, 3549, 3549, 2108, 3549, 3549, 3549, 2108, 2108, 3549, 04831 3549, 2108, 3549, 3549, 3549, 3549, 2108, 3549, 2108, 2376, 04832 2376, 3549, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 04833 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 04834 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 04835 04836 2378, 2378, 3549, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 04837 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 04838 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 04839 2378, 1764, 1764, 1764, 1764, 3549, 3549, 3549, 3549, 3549, 04840 3549, 1764, 3549, 3549, 3549, 3549, 3549, 1764, 3549, 3549, 04841 3549, 3549, 3549, 3549, 1764, 1202, 1202, 1202, 1202, 3549, 04842 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04843 3549, 1202, 1202, 3549, 1202, 3549, 3549, 3549, 1202, 2195, 04844 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 04845 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 04846 04847 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 2195, 04848 1293, 1293, 3549, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 04849 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 04850 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 04851 1293, 2456, 2456, 3549, 2456, 3549, 2456, 2456, 2456, 2456, 04852 2456, 2456, 2456, 2456, 2456, 2456, 2456, 2456, 2456, 2456, 04853 2456, 2456, 2456, 2456, 2456, 2456, 2456, 3549, 2456, 2456, 04854 2456, 2456, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 04855 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 3549, 04856 2459, 2459, 2459, 2459, 2459, 2459, 3549, 2459, 2459, 2459, 04857 04858 2459, 2459, 2459, 2204, 2204, 2204, 2204, 3549, 3549, 3549, 04859 3549, 3549, 3549, 3549, 3549, 3549, 3549, 2204, 3549, 2204, 04860 2204, 3549, 3549, 3549, 3549, 3549, 2204, 1305, 1305, 1305, 04861 1305, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04862 3549, 1305, 3549, 1305, 1305, 3549, 3549, 3549, 3549, 3549, 04863 1305, 2461, 2461, 3549, 2461, 3549, 2461, 2461, 2461, 2461, 04864 2461, 2461, 2461, 2461, 2461, 2461, 2461, 2461, 2461, 2461, 04865 2461, 2461, 2461, 2461, 2461, 2461, 2461, 3549, 2461, 2461, 04866 2461, 2461, 1368, 3549, 3549, 3549, 3549, 1368, 1368, 1368, 04867 1368, 1368, 1368, 1368, 1368, 3549, 1368, 3549, 3549, 1368, 04868 04869 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 04870 1368, 1368, 1368, 2219, 2219, 2219, 2219, 3549, 3549, 3549, 04871 3549, 3549, 3549, 3549, 3549, 3549, 3549, 2219, 3549, 2219, 04872 3549, 3549, 3549, 3549, 3549, 3549, 2219, 2487, 2487, 3549, 04873 2487, 3549, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 04874 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 04875 2487, 2487, 2487, 3549, 2487, 2487, 2487, 2487, 2244, 2244, 04876 2244, 2244, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04877 3549, 3549, 3549, 3549, 2244, 2244, 3549, 3549, 3549, 3549, 04878 3549, 2244, 2490, 2490, 3549, 2490, 3549, 2490, 2490, 2490, 04879 04880 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 04881 2490, 2490, 2490, 2490, 2490, 2490, 2490, 2490, 3549, 2490, 04882 2490, 2490, 2490, 2493, 2493, 3549, 2493, 3549, 2493, 2493, 04883 2493, 2493, 2493, 2493, 2493, 2493, 2493, 2493, 2493, 2493, 04884 2493, 2493, 2493, 2493, 2493, 2493, 2493, 2493, 2493, 3549, 04885 2493, 2493, 2493, 2493, 2495, 2495, 3549, 2495, 3549, 2495, 04886 2495, 2495, 2495, 2495, 2495, 2495, 2495, 2495, 2495, 2495, 04887 2495, 2495, 2495, 2495, 2495, 2495, 2495, 2495, 2495, 2495, 04888 3549, 2495, 2495, 2495, 2495, 2497, 2497, 3549, 2497, 3549, 04889 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 04890 04891 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 04892 2497, 3549, 2497, 2497, 2497, 2497, 2499, 2499, 3549, 2499, 04893 3549, 2499, 2499, 2499, 2499, 2499, 2499, 2499, 2499, 2499, 04894 2499, 2499, 2499, 2499, 2499, 2499, 2499, 2499, 2499, 2499, 04895 2499, 2499, 3549, 2499, 2499, 2499, 2499, 1523, 1523, 3549, 04896 1523, 1523, 1523, 1523, 1523, 1523, 1523, 3549, 1523, 1523, 04897 1523, 1523, 1523, 3549, 1523, 1523, 1523, 1523, 1523, 1523, 04898 1523, 1523, 1523, 1523, 1523, 3549, 3549, 1523, 2503, 2503, 04899 3549, 2503, 3549, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 04900 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 04901 04902 2503, 2503, 2503, 2503, 3549, 2503, 2503, 2503, 2503, 2507, 04903 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 2507, 04904 2507, 2507, 2507, 2507, 2507, 2507, 3549, 2507, 2507, 2507, 04905 2507, 2507, 2507, 3549, 2507, 2507, 2507, 2507, 2507, 2507, 04906 1592, 3549, 3549, 1592, 3549, 3549, 3549, 1592, 1592, 3549, 04907 3549, 3549, 1592, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04908 3549, 3549, 3549, 1592, 1619, 1619, 3549, 1619, 1619, 1619, 04909 1619, 1619, 1619, 1619, 1619, 1619, 1619, 3549, 1619, 1619, 04910 3549, 1619, 1619, 1619, 1619, 1619, 1619, 3549, 1619, 1619, 04911 3549, 1619, 1619, 1619, 1619, 2527, 2527, 2527, 2527, 2527, 04912 04913 2527, 2527, 2527, 2527, 2527, 2527, 2527, 2527, 2527, 2527, 04914 2527, 2527, 3549, 2527, 2527, 2527, 2527, 2527, 2527, 3549, 04915 2527, 2527, 2527, 2527, 2527, 2527, 1103, 1103, 1103, 1103, 04916 3549, 3549, 3549, 3549, 3549, 3549, 1103, 3549, 3549, 3549, 04917 3549, 3549, 1103, 1103, 3549, 3549, 3549, 3549, 3549, 1103, 04918 1113, 3549, 3549, 3549, 1113, 3549, 1113, 3549, 3549, 1113, 04919 3549, 3549, 3549, 1113, 2307, 2307, 2307, 2307, 3549, 3549, 04920 3549, 2307, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04921 3549, 3549, 3549, 3549, 3549, 3549, 3549, 2307, 2311, 2311, 04922 2311, 2311, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04923 04924 3549, 3549, 3549, 3549, 2311, 2311, 3549, 3549, 3549, 3549, 04925 3549, 2311, 1137, 1137, 1137, 1137, 3549, 3549, 3549, 3549, 04926 3549, 3549, 3549, 3549, 3549, 3549, 1137, 3549, 1137, 1137, 04927 3549, 3549, 3549, 3549, 3549, 1137, 2367, 2367, 2367, 2367, 04928 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04929 3549, 3549, 2367, 2367, 3549, 2367, 3549, 3549, 3549, 2367, 04930 2595, 3549, 3549, 2595, 3549, 3549, 3549, 3549, 2595, 3549, 04931 3549, 3549, 2595, 2595, 3549, 3549, 2595, 3549, 3549, 3549, 04932 3549, 2595, 3549, 2595, 2597, 2597, 2597, 2597, 3549, 3549, 04933 3549, 3549, 3549, 3549, 3549, 2597, 3549, 3549, 3549, 3549, 04934 04935 2597, 2597, 3549, 2597, 3549, 3549, 3549, 2597, 2376, 2376, 04936 3549, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 04937 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 04938 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2376, 2378, 04939 2378, 3549, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 04940 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 04941 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 2378, 04942 1764, 1764, 1764, 1764, 3549, 3549, 3549, 3549, 3549, 3549, 04943 1764, 3549, 3549, 3549, 3549, 3549, 1764, 3549, 3549, 3549, 04944 3549, 3549, 3549, 1764, 1202, 1202, 1202, 1202, 3549, 3549, 04945 04946 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04947 1202, 1202, 3549, 1202, 3549, 3549, 3549, 1202, 1293, 1293, 04948 3549, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 04949 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 04950 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1305, 04951 1305, 1305, 1305, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04952 3549, 3549, 3549, 1305, 3549, 1305, 1305, 3549, 3549, 3549, 04953 3549, 3549, 1305, 1364, 1364, 1364, 1364, 3549, 3549, 3549, 04954 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 1364, 04955 3549, 3549, 3549, 3549, 3549, 3549, 1364, 1368, 3549, 3549, 04956 04957 3549, 3549, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 04958 3549, 1368, 3549, 3549, 1368, 1368, 1368, 1368, 1368, 1368, 04959 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1938, 1938, 04960 1938, 1938, 3549, 3549, 3549, 1938, 3549, 3549, 3549, 3549, 04961 1938, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04962 3549, 1938, 2693, 2693, 3549, 2693, 2693, 2693, 3549, 2693, 04963 2693, 2693, 2693, 2693, 2693, 2693, 2693, 2693, 2693, 2693, 04964 2693, 2693, 2693, 2693, 2693, 2693, 2693, 2693, 2693, 2693, 04965 2693, 2693, 2693, 1619, 1619, 3549, 1619, 1619, 1619, 1619, 04966 1619, 1619, 1619, 1619, 1619, 1619, 3549, 1619, 1619, 3549, 04967 04968 1619, 1619, 1619, 1619, 1619, 1619, 3549, 1619, 1619, 3549, 04969 1619, 1619, 1619, 1619, 1103, 1103, 1103, 1103, 3549, 3549, 04970 3549, 3549, 3549, 3549, 1103, 3549, 3549, 3549, 3549, 3549, 04971 1103, 1103, 3549, 3549, 3549, 3549, 3549, 1103, 2100, 2100, 04972 2100, 2100, 3549, 3549, 3549, 2100, 2100, 3549, 3549, 3549, 04973 2100, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04974 3549, 2100, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 04975 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3549, 04976 3043, 3043, 3043, 3043, 3043, 3043, 3549, 3043, 3043, 3043, 04977 3043, 3043, 3043, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 04978 04979 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 3216, 04980 3549, 3216, 3216, 3216, 3216, 3216, 3216, 3549, 3216, 3216, 04981 3216, 3216, 3216, 3216, 3337, 3337, 3337, 3337, 3549, 3549, 04982 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04983 3337, 3549, 3549, 3549, 3337, 3549, 3549, 3337, 243, 3549, 04984 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04985 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04986 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04987 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04988 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04989 04990 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04991 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04992 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 04993 3549 04994 } ; 04995 04996 static yyconst flex_int16_t yy_chk[25532] = 04997 { 0, 04998 0, 0, 1, 0, 2, 0, 1, 1, 2, 2, 04999 369, 1, 0, 2, 369, 249, 259, 259, 0, 1, 05000 249, 2, 3, 3, 3, 3, 3, 3, 3, 3, 05001 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 05002 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 05003 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 05004 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 05005 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 05006 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 05007 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 05008 05009 3, 3, 3, 3, 5, 5, 5, 5, 258, 5, 05010 5, 529, 529, 258, 5, 6, 6, 6, 6, 17, 05011 6, 6, 5, 17, 17, 6, 18, 1626, 17, 251, 05012 18, 18, 251, 6, 269, 18, 17, 269, 311, 471, 05013 251, 311, 280, 18, 17, 79, 17, 280, 471, 79, 05014 79, 18, 1626, 18, 79, 5, 263, 263, 263, 263, 05015 293, 339, 79, 263, 339, 293, 6, 7, 7, 7, 05016 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 05017 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 05018 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 05019 05020 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 05021 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 05022 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 05023 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 05024 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 05025 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 05026 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 05027 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 05028 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 05029 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 05030 05031 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 05032 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 05033 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 05034 9, 11, 11, 11, 11, 11, 11, 11, 11, 11, 05035 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 05036 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 05037 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 05038 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 05039 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 05040 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 05041 05042 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 05043 11, 11, 11, 13, 13, 13, 13, 13, 13, 13, 05044 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 05045 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 05046 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 05047 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 05048 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 05049 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 05050 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 05051 13, 13, 13, 13, 13, 15, 15, 15, 15, 15, 05052 05053 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 05054 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 05055 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 05056 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 05057 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 05058 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 05059 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 05060 15, 15, 15, 15, 15, 15, 15, 19, 19, 19, 05061 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05062 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05063 05064 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05065 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05066 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05067 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05068 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 05069 19, 19, 19, 19, 19, 19, 19, 19, 19, 21, 05070 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05071 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05072 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05073 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05074 05075 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05076 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05077 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05078 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 05079 21, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05080 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05081 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05082 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05083 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05084 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05085 05086 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05087 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 05088 23, 23, 23, 25, 25, 25, 25, 347, 25, 25, 05089 347, 2313, 297, 25, 26, 26, 26, 26, 297, 26, 05090 26, 25, 2314, 307, 26, 27, 317, 297, 307, 27, 05091 27, 317, 26, 328, 27, 27, 28, 1057, 328, 27, 05092 28, 28, 27, 346, 366, 28, 28, 366, 346, 27, 05093 28, 1057, 29, 28, 360, 494, 29, 29, 494, 360, 05094 28, 29, 39, 39, 39, 39, 29, 39, 39, 29, 05095 30, 25, 39, 374, 30, 30, 29, 25, 374, 30, 05096 05097 39, 33, 26, 2315, 30, 33, 33, 30, 26, 638, 05098 33, 80, 409, 638, 30, 80, 80, 409, 33, 422, 05099 80, 366, 27, 710, 422, 710, 33, 2316, 80, 278, 05100 278, 278, 278, 28, 31, 31, 31, 31, 31, 31, 05101 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05102 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05103 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05104 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05105 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05106 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05107 05108 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 05109 31, 31, 31, 31, 31, 31, 34, 2317, 45, 427, 05110 34, 34, 45, 45, 427, 34, 442, 45, 45, 45, 05111 1168, 442, 1425, 34, 1425, 45, 371, 371, 371, 371, 05112 1168, 34, 35, 35, 35, 35, 35, 35, 35, 35, 05113 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 05114 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 05115 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 05116 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 05117 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 05118 05119 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 05120 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 05121 35, 35, 35, 35, 37, 37, 37, 37, 37, 37, 05122 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05123 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05124 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05125 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05126 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05127 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05128 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 05129 05130 37, 37, 37, 37, 37, 37, 40, 40, 40, 40, 05131 449, 40, 40, 41, 455, 449, 40, 41, 41, 455, 05132 298, 2318, 41, 41, 40, 514, 298, 41, 514, 42, 05133 41, 514, 2323, 42, 42, 298, 41, 41, 42, 42, 05134 462, 517, 1056, 42, 517, 462, 42, 272, 272, 272, 05135 272, 1056, 42, 42, 43, 43, 43, 43, 479, 43, 05136 43, 501, 486, 479, 43, 43, 43, 486, 2324, 43, 05137 298, 272, 43, 44, 44, 44, 44, 69, 44, 44, 05138 1097, 69, 69, 44, 44, 44, 69, 2325, 44, 1097, 05139 41, 44, 46, 496, 69, 47, 46, 46, 496, 47, 05140 05141 47, 46, 46, 46, 47, 519, 42, 548, 548, 46, 05142 519, 48, 47, 51, 501, 48, 48, 51, 51, 47, 05143 48, 2228, 51, 51, 253, 253, 253, 253, 48, 2228, 05144 51, 254, 254, 254, 254, 48, 52, 51, 51, 83, 05145 52, 52, 253, 83, 83, 52, 52, 525, 83, 254, 05146 525, 524, 1903, 52, 524, 69, 83, 524, 553, 553, 05147 52, 52, 528, 81, 81, 1903, 81, 528, 81, 81, 05148 84, 1434, 47, 81, 84, 84, 81, 675, 2326, 84, 05149 675, 81, 441, 441, 441, 441, 1434, 84, 48, 49, 05150 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05151 05152 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05153 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05154 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05155 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05156 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05157 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05158 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 05159 49, 53, 537, 2327, 54, 53, 53, 537, 54, 54, 05160 53, 951, 951, 54, 55, 55, 55, 55, 53, 55, 05161 55, 54, 543, 555, 55, 2328, 555, 543, 56, 56, 05162 05163 56, 56, 55, 56, 56, 711, 555, 711, 56, 261, 05164 261, 261, 261, 552, 55, 1426, 56, 1426, 552, 560, 05165 53, 936, 53, 54, 560, 54, 261, 2329, 56, 57, 05166 57, 57, 57, 261, 57, 57, 712, 936, 712, 57, 05167 58, 58, 58, 58, 577, 58, 58, 57, 711, 577, 05168 58, 59, 59, 59, 59, 588, 59, 59, 58, 57, 05169 588, 59, 55, 55, 270, 270, 270, 270, 1717, 59, 05170 58, 270, 262, 262, 262, 262, 56, 56, 1717, 712, 05171 1030, 59, 60, 60, 60, 60, 71, 60, 60, 262, 05172 71, 71, 60, 1030, 596, 71, 262, 72, 71, 596, 05173 05174 60, 72, 72, 71, 2330, 1030, 72, 57, 57, 72, 05175 82, 82, 60, 82, 72, 82, 82, 2280, 58, 58, 05176 82, 696, 87, 82, 696, 2280, 87, 87, 82, 59, 05177 59, 87, 87, 87, 1045, 1045, 71, 97, 607, 87, 05178 88, 97, 97, 607, 88, 88, 97, 72, 613, 88, 05179 88, 88, 707, 613, 97, 707, 863, 88, 2331, 863, 05180 60, 60, 61, 61, 61, 61, 61, 61, 61, 61, 05181 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05182 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05183 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05184 05185 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05186 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05187 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05188 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 05189 61, 61, 61, 61, 63, 63, 63, 63, 63, 63, 05190 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05191 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05192 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05193 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05194 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05195 05196 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05197 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 05198 63, 63, 63, 63, 63, 63, 65, 65, 1422, 65, 05199 623, 65, 65, 566, 2332, 623, 65, 66, 66, 624, 05200 66, 624, 66, 66, 65, 566, 1422, 66, 67, 67, 05201 566, 67, 1107, 67, 67, 66, 65, 624, 67, 70, 05202 635, 1107, 1269, 70, 70, 635, 67, 66, 70, 1108, 05203 2333, 1269, 271, 271, 271, 271, 70, 65, 67, 68, 05204 68, 2334, 68, 1108, 68, 68, 73, 647, 66, 68, 05205 73, 73, 647, 1333, 1333, 73, 271, 68, 73, 67, 05206 05207 2216, 1272, 74, 73, 65, 65, 74, 74, 98, 68, 05208 1272, 74, 98, 98, 74, 66, 66, 98, 2216, 74, 05209 273, 273, 273, 273, 75, 98, 67, 67, 75, 75, 05210 68, 1343, 1343, 75, 649, 654, 73, 70, 76, 649, 05211 654, 75, 76, 76, 273, 2335, 663, 76, 75, 672, 05212 271, 663, 74, 75, 672, 76, 685, 68, 68, 77, 05213 77, 685, 76, 77, 77, 1733, 697, 76, 77, 78, 05214 78, 697, 734, 78, 78, 85, 77, 734, 78, 85, 05215 85, 1733, 753, 763, 85, 86, 78, 753, 763, 86, 05216 86, 101, 85, 774, 86, 101, 101, 1722, 774, 1722, 05217 05218 101, 75, 86, 274, 274, 274, 274, 1722, 101, 77, 05219 274, 89, 89, 89, 89, 76, 89, 89, 2336, 78, 05220 1495, 89, 90, 90, 90, 90, 113, 90, 90, 89, 05221 113, 113, 90, 746, 1495, 113, 746, 89, 746, 89, 05222 90, 381, 91, 113, 783, 2017, 91, 91, 90, 783, 05223 90, 91, 85, 85, 1064, 1000, 92, 1064, 1000, 91, 05224 92, 92, 86, 86, 1654, 92, 795, 91, 101, 91, 05225 2017, 795, 804, 92, 1000, 93, 2338, 804, 1654, 93, 05226 93, 92, 817, 92, 93, 93, 93, 817, 1082, 94, 05227 381, 1082, 93, 94, 94, 1429, 381, 1429, 94, 94, 05228 05229 94, 381, 381, 95, 381, 827, 94, 95, 95, 96, 05230 827, 838, 95, 96, 96, 2339, 838, 844, 96, 114, 05231 95, 2340, 844, 114, 114, 117, 96, 854, 114, 117, 05232 117, 2341, 854, 860, 117, 872, 114, 1429, 860, 121, 05233 872, 881, 117, 121, 121, 891, 881, 1160, 121, 117, 05234 891, 2342, 95, 2343, 95, 1160, 121, 1160, 96, 2344, 05235 96, 99, 99, 99, 99, 99, 99, 99, 99, 99, 05236 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 05237 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 05238 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 05239 05240 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 05241 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 05242 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 05243 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 05244 99, 99, 99, 102, 1323, 103, 901, 102, 102, 103, 05245 103, 901, 102, 1323, 103, 284, 284, 284, 284, 104, 05246 102, 2345, 103, 104, 104, 911, 284, 1181, 104, 2346, 05247 911, 1181, 105, 105, 105, 105, 104, 105, 105, 284, 05248 2347, 918, 105, 926, 865, 105, 918, 865, 926, 105, 05249 105, 106, 106, 106, 106, 865, 106, 106, 935, 2348, 05250 05251 103, 106, 105, 935, 106, 944, 1394, 118, 106, 106, 05252 944, 118, 118, 122, 104, 1394, 118, 122, 122, 2349, 05253 102, 106, 122, 105, 118, 365, 365, 365, 365, 2350, 05254 122, 118, 365, 413, 413, 413, 413, 2351, 1120, 2352, 05255 413, 1120, 106, 107, 107, 107, 107, 107, 107, 107, 05256 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 05257 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 05258 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 05259 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 05260 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 05261 05262 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 05263 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 05264 107, 107, 107, 107, 107, 109, 109, 109, 109, 109, 05265 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 05266 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 05267 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 05268 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 05269 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 05270 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 05271 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 05272 05273 109, 109, 109, 109, 109, 109, 109, 111, 1494, 112, 05274 950, 111, 111, 112, 112, 950, 111, 1494, 112, 309, 05275 309, 309, 309, 125, 111, 956, 112, 125, 125, 2353, 05276 956, 1703, 125, 126, 125, 2354, 937, 126, 126, 937, 05277 125, 966, 126, 309, 126, 1703, 966, 129, 979, 937, 05278 126, 129, 129, 979, 978, 2356, 129, 978, 129, 1705, 05279 111, 978, 112, 978, 129, 151, 111, 978, 112, 151, 05280 151, 1345, 1345, 1705, 151, 151, 111, 111, 112, 112, 05281 1132, 2357, 151, 1132, 111, 111, 112, 112, 115, 115, 05282 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 05283 05284 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 05285 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 05286 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 05287 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 05288 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 05289 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 05290 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 05291 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 05292 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 05293 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 05294 05295 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 05296 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 05297 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 05298 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 05299 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 05300 119, 119, 123, 123, 123, 123, 123, 123, 123, 123, 05301 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 05302 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 05303 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 05304 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 05305 05306 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 05307 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 05308 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 05309 123, 123, 123, 123, 127, 127, 127, 127, 127, 127, 05310 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 05311 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 05312 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 05313 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 05314 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 05315 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 05316 05317 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 05318 127, 127, 127, 127, 127, 127, 130, 991, 2358, 131, 05319 130, 130, 991, 131, 131, 130, 132, 130, 131, 999, 05320 132, 132, 1110, 130, 999, 132, 131, 133, 1110, 2360, 05321 1010, 133, 133, 132, 131, 1010, 133, 1110, 133, 2361, 05322 1017, 132, 135, 1017, 133, 134, 135, 135, 136, 134, 05323 134, 135, 136, 136, 134, 1015, 134, 136, 1017, 135, 05324 1015, 1917, 134, 1917, 152, 136, 135, 2362, 152, 152, 05325 1028, 1875, 136, 152, 152, 1028, 352, 352, 352, 352, 05326 133, 152, 133, 2363, 153, 1875, 133, 1023, 153, 153, 05327 05328 1023, 1917, 133, 153, 352, 153, 133, 133, 134, 1046, 05329 134, 153, 1046, 2365, 134, 490, 490, 490, 490, 2368, 05330 134, 490, 1046, 1023, 134, 134, 137, 137, 137, 137, 05331 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 05332 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 05333 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 05334 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 05335 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 05336 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 05337 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 05338 05339 137, 137, 137, 137, 137, 137, 137, 137, 139, 139, 05340 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 05341 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 05342 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 05343 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 05344 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 05345 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 05346 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 05347 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 05348 141, 1021, 1029, 1034, 141, 141, 2369, 1029, 1034, 141, 05349 05350 142, 141, 1878, 1021, 142, 142, 2376, 141, 1021, 142, 05351 154, 142, 1949, 1035, 154, 154, 1878, 142, 1035, 154, 05352 1043, 154, 2001, 141, 2400, 1043, 1949, 154, 353, 353, 05353 353, 353, 2401, 142, 141, 141, 2001, 141, 491, 491, 05354 491, 491, 1709, 1709, 142, 142, 353, 142, 143, 143, 05355 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 05356 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 05357 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 05358 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 05359 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 05360 05361 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 05362 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 05363 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 05364 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 05365 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 05366 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 05367 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 05368 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 05369 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 05370 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 05371 05372 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 05373 145, 145, 147, 147, 147, 147, 163, 147, 147, 2424, 05374 163, 163, 147, 147, 147, 163, 163, 147, 147, 1055, 05375 147, 1140, 1139, 163, 1055, 1139, 1140, 147, 147, 157, 05376 147, 147, 147, 157, 157, 1562, 1050, 1146, 157, 1050, 05377 164, 2425, 1146, 157, 164, 164, 157, 1050, 2439, 164, 05378 164, 158, 147, 157, 147, 158, 158, 164, 1754, 1754, 05379 158, 167, 167, 167, 167, 158, 167, 167, 158, 1148, 05380 2440, 167, 167, 167, 1148, 158, 1758, 1758, 1562, 167, 05381 147, 147, 148, 148, 148, 148, 171, 148, 148, 2441, 05382 05383 171, 171, 148, 148, 148, 171, 2442, 148, 148, 1113, 05384 148, 1151, 2443, 171, 1151, 1113, 1562, 148, 148, 171, 05385 148, 148, 148, 159, 1113, 1721, 160, 159, 159, 172, 05386 160, 160, 159, 172, 172, 160, 1051, 1721, 172, 1051, 05387 159, 1721, 148, 160, 148, 2444, 172, 1051, 159, 1164, 05388 159, 160, 172, 160, 370, 370, 370, 370, 1164, 1158, 05389 1327, 370, 1158, 370, 1164, 1327, 1166, 370, 1151, 1166, 05390 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 05391 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 05392 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 05393 05394 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 05395 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 05396 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 05397 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 05398 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 05399 149, 149, 149, 149, 155, 155, 155, 155, 155, 155, 05400 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 05401 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 05402 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 05403 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 05404 05405 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 05406 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 05407 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, 05408 155, 155, 155, 155, 155, 155, 161, 161, 161, 161, 05409 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 05410 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 05411 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 05412 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 05413 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 05414 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 05415 05416 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 05417 161, 161, 161, 161, 161, 161, 161, 161, 165, 1335, 05418 2445, 166, 165, 165, 1335, 166, 166, 165, 165, 165, 05419 166, 166, 166, 1292, 1329, 165, 1292, 1329, 166, 168, 05420 168, 168, 168, 205, 168, 168, 2002, 205, 205, 168, 05421 168, 168, 205, 169, 169, 169, 169, 168, 169, 169, 05422 205, 1390, 2018, 169, 169, 1053, 1390, 165, 1053, 2002, 05423 166, 169, 170, 170, 170, 170, 1053, 170, 170, 169, 05424 201, 169, 170, 170, 201, 201, 1653, 2018, 2446, 201, 05425 170, 201, 205, 1319, 205, 1653, 1319, 201, 170, 1319, 05426 05427 170, 173, 173, 173, 173, 173, 173, 173, 173, 173, 05428 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 05429 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 05430 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 05431 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 05432 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 05433 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 05434 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 05435 173, 173, 173, 175, 175, 175, 175, 175, 175, 175, 05436 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 05437 05438 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 05439 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 05440 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 05441 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 05442 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 05443 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 05444 175, 175, 175, 175, 175, 177, 2448, 178, 1392, 177, 05445 177, 178, 178, 1392, 177, 1402, 178, 177, 1402, 178, 05446 1702, 179, 177, 180, 178, 179, 179, 180, 180, 1702, 05447 179, 1415, 180, 179, 1415, 180, 1704, 181, 179, 182, 05448 05449 180, 181, 181, 182, 182, 1704, 181, 1424, 182, 181, 05450 1424, 182, 2449, 1115, 181, 177, 182, 178, 183, 1115, 05451 184, 1493, 183, 183, 184, 184, 1493, 183, 1115, 184, 05452 183, 179, 184, 180, 185, 183, 1622, 184, 185, 185, 05453 2450, 1622, 1171, 185, 185, 185, 2452, 181, 186, 182, 05454 1171, 185, 186, 186, 1874, 1171, 2456, 186, 186, 186, 05455 1115, 1605, 187, 1874, 1605, 186, 187, 187, 183, 188, 05456 184, 187, 189, 188, 188, 1877, 189, 189, 188, 187, 05457 1605, 189, 189, 189, 1877, 1340, 188, 190, 1340, 189, 05458 191, 190, 190, 1948, 191, 191, 190, 190, 190, 191, 05459 05460 2029, 192, 1948, 1340, 190, 192, 192, 191, 1641, 2029, 05461 192, 193, 193, 1641, 193, 207, 193, 193, 192, 207, 05462 207, 193, 193, 193, 207, 194, 194, 2457, 194, 193, 05463 194, 194, 207, 2112, 2112, 194, 194, 194, 1328, 187, 05464 187, 1328, 1347, 194, 1328, 1347, 188, 188, 199, 199, 05465 199, 199, 235, 199, 199, 1347, 235, 235, 199, 199, 05466 199, 235, 2458, 199, 2461, 207, 199, 191, 191, 235, 05467 260, 260, 260, 260, 434, 434, 434, 434, 192, 192, 05468 195, 195, 195, 195, 2462, 195, 195, 260, 1729, 434, 05469 195, 195, 195, 1729, 260, 2469, 1569, 2470, 195, 200, 05470 05471 200, 200, 200, 2471, 200, 200, 195, 2060, 195, 200, 05472 200, 200, 2060, 1609, 200, 202, 1609, 200, 206, 202, 05473 202, 2085, 206, 206, 202, 2085, 202, 206, 203, 203, 05474 203, 203, 202, 203, 203, 206, 2119, 2119, 203, 203, 05475 203, 1569, 1608, 203, 1033, 1608, 203, 1033, 260, 1430, 05476 2473, 1430, 195, 196, 196, 196, 196, 1033, 196, 196, 05477 2474, 1608, 1033, 196, 196, 196, 2475, 206, 1569, 206, 05478 1033, 196, 204, 204, 204, 204, 2118, 204, 204, 196, 05479 2476, 196, 204, 204, 204, 2118, 2477, 204, 211, 1430, 05480 204, 212, 211, 211, 2211, 212, 212, 211, 211, 211, 05481 05482 212, 212, 212, 2211, 1456, 211, 233, 1456, 212, 1456, 05483 233, 233, 2478, 1527, 2479, 233, 1527, 233, 492, 492, 05484 492, 492, 2480, 233, 1527, 196, 197, 197, 197, 197, 05485 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 05486 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 05487 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 05488 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 05489 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 05490 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 05491 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 05492 05493 197, 197, 197, 197, 197, 197, 197, 197, 208, 2298, 05494 209, 2377, 208, 208, 209, 209, 2377, 208, 2483, 209, 05495 359, 359, 359, 359, 210, 208, 213, 209, 210, 210, 05496 213, 213, 2298, 210, 1554, 213, 2485, 1554, 359, 995, 05497 214, 210, 995, 213, 214, 214, 2299, 1554, 2481, 214, 05498 2481, 213, 1098, 213, 1631, 1098, 1098, 214, 208, 215, 05499 209, 2487, 2488, 215, 215, 214, 995, 214, 215, 2299, 05500 1098, 215, 216, 216, 210, 216, 215, 216, 216, 2490, 05501 2491, 1614, 216, 1615, 1614, 216, 1615, 217, 215, 218, 05502 216, 217, 217, 218, 218, 995, 217, 1631, 218, 1614, 05503 05504 2493, 1615, 216, 219, 217, 2494, 218, 219, 219, 215, 05505 221, 2495, 219, 995, 221, 221, 217, 220, 218, 221, 05506 219, 220, 220, 216, 222, 1631, 220, 221, 222, 222, 05507 2496, 234, 219, 222, 220, 234, 234, 217, 2497, 218, 05508 234, 222, 234, 2498, 2499, 236, 220, 237, 234, 236, 05509 236, 237, 237, 219, 236, 2500, 237, 363, 363, 363, 05510 363, 221, 236, 1589, 237, 238, 1589, 220, 1711, 238, 05511 238, 1711, 1589, 2502, 238, 222, 1589, 221, 2503, 2504, 05512 2505, 363, 238, 499, 499, 499, 499, 572, 572, 572, 05513 572, 222, 223, 223, 223, 223, 223, 223, 223, 223, 05514 05515 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 05516 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 05517 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 05518 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 05519 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 05520 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 05521 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 05522 223, 223, 223, 223, 225, 225, 225, 225, 225, 225, 05523 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 05524 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 05525 05526 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 05527 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 05528 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 05529 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 05530 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 05531 225, 225, 225, 225, 225, 225, 227, 2506, 228, 2508, 05532 227, 227, 228, 228, 1647, 227, 227, 228, 228, 268, 05533 268, 268, 268, 227, 1647, 228, 364, 364, 364, 364, 05534 268, 338, 338, 338, 338, 2509, 268, 1647, 361, 361, 05535 361, 361, 2355, 268, 268, 268, 2510, 2511, 338, 1647, 05536 05537 364, 372, 372, 372, 372, 338, 361, 2355, 435, 435, 05538 435, 435, 2512, 509, 509, 509, 509, 2513, 1997, 372, 05539 509, 1997, 227, 435, 228, 229, 229, 229, 229, 229, 05540 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 05541 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 05542 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 05543 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 05544 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 05545 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 05546 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 05547 05548 229, 229, 229, 229, 229, 229, 229, 231, 231, 2514, 05549 231, 1273, 231, 231, 1273, 1273, 2515, 231, 232, 232, 05550 2516, 232, 2517, 232, 232, 231, 2518, 2519, 232, 1273, 05551 334, 334, 334, 334, 231, 1649, 232, 334, 239, 239, 05552 2232, 239, 2232, 239, 239, 232, 1620, 1642, 239, 1620, 05553 1642, 239, 240, 240, 2520, 240, 239, 240, 240, 2521, 05554 1642, 1153, 240, 231, 239, 240, 1153, 1153, 239, 1153, 05555 240, 2524, 1620, 1604, 232, 2301, 1604, 2526, 240, 231, 05556 1649, 231, 240, 1324, 2301, 231, 1324, 1324, 2232, 239, 05557 232, 1187, 232, 241, 1187, 1187, 232, 241, 241, 241, 05558 05559 1604, 1324, 241, 240, 1187, 241, 2528, 1649, 334, 1916, 05560 241, 1916, 264, 264, 264, 264, 264, 1671, 241, 264, 05561 1671, 1187, 241, 265, 265, 265, 265, 2529, 2359, 1604, 05562 265, 331, 331, 331, 331, 1671, 264, 2359, 331, 2530, 05563 265, 2531, 1187, 241, 241, 242, 242, 1604, 242, 2532, 05564 242, 242, 242, 2534, 2484, 242, 1916, 2484, 242, 285, 05565 285, 285, 285, 242, 2535, 275, 275, 275, 275, 275, 05566 285, 242, 275, 2536, 2537, 242, 286, 286, 286, 286, 05567 2538, 1591, 1255, 285, 1591, 1255, 1255, 286, 1650, 275, 05568 1591, 1650, 264, 331, 1591, 1255, 242, 242, 2539, 2522, 05569 05570 286, 1650, 2522, 265, 332, 332, 332, 332, 2540, 331, 05571 2546, 332, 1255, 2547, 285, 333, 333, 333, 333, 2233, 05572 2533, 2233, 333, 367, 367, 367, 367, 367, 1188, 2549, 05573 367, 1188, 1188, 1255, 286, 377, 377, 377, 377, 382, 05574 382, 382, 382, 2533, 2552, 275, 1188, 367, 383, 383, 05575 383, 383, 2553, 377, 385, 385, 385, 385, 1188, 386, 05576 386, 386, 386, 382, 2554, 382, 332, 2233, 417, 417, 05577 417, 417, 383, 2555, 383, 2557, 2558, 333, 385, 1188, 05578 385, 2559, 332, 386, 1395, 386, 417, 1395, 1395, 392, 05579 392, 392, 392, 333, 362, 362, 362, 362, 2560, 2561, 05580 05581 362, 383, 1395, 367, 2563, 2565, 2568, 385, 387, 387, 05582 387, 387, 2569, 392, 386, 392, 2570, 2571, 362, 388, 05583 388, 388, 388, 2572, 362, 411, 411, 411, 411, 2574, 05584 2575, 2576, 387, 2015, 387, 2482, 2015, 2482, 362, 412, 05585 412, 412, 412, 388, 362, 388, 2015, 362, 362, 411, 05586 362, 362, 362, 2577, 2578, 392, 362, 362, 362, 362, 05587 362, 2556, 362, 412, 362, 362, 362, 362, 362, 2579, 05588 2556, 2096, 387, 2482, 2096, 387, 2096, 388, 2580, 2581, 05589 1683, 388, 389, 389, 389, 389, 1683, 390, 390, 390, 05590 390, 391, 391, 391, 391, 1683, 2582, 393, 393, 393, 05591 05592 393, 394, 394, 394, 394, 2583, 389, 2016, 389, 2197, 05593 2016, 390, 2197, 390, 2197, 391, 2584, 391, 2585, 1837, 05594 2016, 393, 1837, 393, 2586, 394, 2587, 394, 395, 395, 05595 395, 395, 2588, 418, 418, 418, 418, 1837, 389, 1683, 05596 396, 396, 396, 396, 397, 397, 397, 397, 389, 391, 05597 393, 418, 395, 2591, 395, 2592, 389, 390, 389, 399, 05598 399, 399, 399, 394, 396, 2036, 396, 2593, 397, 2595, 05599 397, 2036, 398, 398, 398, 398, 400, 400, 400, 400, 05600 2036, 2598, 2304, 399, 2619, 399, 395, 2590, 2304, 401, 05601 401, 401, 401, 2620, 396, 395, 398, 2304, 398, 2642, 05602 05603 400, 395, 400, 402, 402, 402, 402, 2643, 421, 421, 05604 421, 421, 2036, 401, 397, 401, 2658, 397, 2660, 2661, 05605 2662, 399, 416, 416, 416, 416, 421, 402, 2664, 402, 05606 398, 399, 2665, 2667, 400, 414, 414, 414, 414, 414, 05607 2264, 2673, 414, 2264, 2674, 2264, 416, 2573, 416, 432, 05608 432, 432, 432, 400, 2573, 401, 2590, 402, 2678, 414, 05609 401, 463, 463, 463, 463, 402, 2679, 432, 2680, 2683, 05610 402, 478, 478, 478, 478, 505, 505, 505, 505, 2684, 05611 463, 2685, 2686, 478, 506, 506, 506, 506, 507, 507, 05612 507, 507, 505, 523, 523, 523, 523, 2688, 2690, 505, 05613 05614 2692, 506, 508, 508, 508, 508, 2691, 2693, 506, 2691, 05615 2694, 523, 507, 2691, 2696, 414, 458, 458, 458, 458, 05616 510, 510, 510, 510, 510, 2697, 508, 510, 512, 512, 05617 512, 512, 530, 530, 530, 530, 2698, 2699, 506, 573, 05618 573, 573, 573, 458, 510, 616, 616, 616, 616, 2689, 05619 530, 2689, 512, 617, 617, 617, 617, 629, 629, 629, 05620 629, 657, 657, 657, 657, 2700, 662, 662, 662, 662, 05621 458, 2701, 458, 2702, 629, 664, 664, 664, 664, 657, 05622 2703, 2704, 458, 458, 662, 2705, 458, 458, 458, 2689, 05623 458, 2706, 2707, 664, 676, 676, 676, 676, 2708, 2709, 05624 05625 510, 688, 688, 688, 688, 690, 690, 690, 690, 725, 05626 725, 725, 725, 726, 726, 726, 726, 2713, 688, 732, 05627 732, 732, 732, 735, 735, 735, 735, 725, 2715, 690, 05628 2716, 726, 742, 742, 742, 742, 2717, 732, 2718, 742, 05629 2719, 735, 743, 743, 743, 743, 2720, 2722, 2723, 743, 05630 744, 744, 744, 744, 2724, 2725, 2726, 744, 745, 745, 05631 745, 745, 2727, 748, 748, 748, 748, 2730, 2734, 2739, 05632 748, 745, 748, 2740, 2741, 2742, 748, 749, 749, 749, 05633 749, 2743, 2744, 2745, 749, 1256, 749, 2746, 1256, 1256, 05634 749, 750, 750, 750, 750, 2747, 2748, 2749, 750, 2523, 05635 05636 750, 2751, 2523, 1256, 750, 751, 751, 751, 751, 2753, 05637 2523, 2755, 751, 2695, 751, 1256, 2695, 2756, 751, 752, 05638 752, 752, 752, 754, 754, 754, 754, 756, 756, 756, 05639 756, 765, 765, 765, 765, 2710, 1256, 752, 2710, 2758, 05640 2760, 754, 765, 767, 767, 767, 767, 768, 768, 768, 05641 768, 769, 769, 769, 769, 765, 2761, 2763, 769, 765, 05642 2764, 772, 772, 772, 772, 772, 2766, 767, 772, 2767, 05643 2768, 768, 776, 776, 776, 776, 2769, 756, 782, 782, 05644 782, 782, 2770, 2772, 2775, 772, 785, 785, 785, 785, 05645 782, 788, 788, 788, 788, 2776, 776, 785, 789, 789, 05646 05647 789, 789, 794, 794, 794, 794, 874, 874, 874, 874, 05648 2779, 785, 875, 875, 875, 875, 903, 903, 903, 903, 05649 794, 900, 900, 900, 900, 904, 904, 904, 904, 2780, 05650 2781, 903, 900, 2797, 2798, 2802, 785, 2778, 2803, 2807, 05651 904, 772, 910, 910, 910, 910, 900, 938, 938, 938, 05652 938, 2829, 2778, 2711, 945, 945, 2711, 945, 2830, 945, 05653 938, 2831, 945, 945, 2711, 938, 960, 960, 960, 960, 05654 2839, 900, 945, 960, 945, 961, 961, 961, 961, 2840, 05655 2844, 2845, 961, 968, 968, 968, 968, 970, 970, 970, 05656 970, 2849, 2850, 2851, 970, 968, 2856, 2857, 968, 900, 05657 05658 971, 971, 971, 971, 2860, 2861, 2862, 971, 973, 973, 05659 973, 973, 982, 982, 982, 982, 960, 2863, 2864, 973, 05660 983, 983, 983, 983, 2865, 961, 984, 984, 984, 984, 05661 1031, 2866, 2867, 984, 2869, 2868, 982, 2868, 987, 987, 05662 987, 987, 987, 2872, 983, 987, 993, 993, 993, 993, 05663 1047, 1047, 1047, 1047, 2874, 2873, 1031, 1031, 2873, 1031, 05664 2876, 1031, 987, 1047, 1031, 1031, 2877, 1032, 1047, 2868, 05665 993, 2878, 1032, 1032, 1031, 1032, 1031, 1032, 2879, 2880, 05666 1032, 1032, 1054, 1054, 1054, 1054, 1060, 1060, 1060, 1060, 05667 1032, 2875, 1032, 2881, 2875, 1061, 1061, 1061, 1061, 2882, 05668 05669 1054, 2883, 2884, 1060, 1062, 1062, 1062, 1062, 2885, 2888, 05670 1060, 1062, 1061, 1065, 1065, 1065, 1065, 2889, 987, 1061, 05671 1065, 1062, 1066, 1066, 1066, 1066, 2890, 2891, 2892, 1066, 05672 1067, 1067, 1067, 1067, 1068, 1068, 1068, 1068, 2893, 2894, 05673 2896, 1067, 1069, 1069, 1069, 1069, 2898, 2899, 2900, 1069, 05674 1071, 1071, 1071, 1071, 2901, 1067, 1067, 2904, 1068, 2870, 05675 2908, 1071, 2870, 2909, 1060, 2910, 2870, 1071, 2911, 2912, 05676 1072, 1072, 1072, 1072, 1071, 1071, 1071, 1072, 1073, 1073, 05677 1073, 1073, 2913, 2915, 1062, 1073, 2916, 1072, 1074, 1074, 05678 1074, 1074, 2917, 2918, 2920, 1073, 1075, 1075, 1075, 1075, 05679 05680 2921, 2922, 2924, 1075, 2926, 1074, 1076, 1076, 1076, 1076, 05681 1076, 2927, 2934, 1076, 1077, 1077, 1077, 1077, 1079, 1079, 05682 1079, 1079, 2937, 2940, 2941, 1083, 1083, 1083, 1083, 1079, 05683 1076, 1077, 1083, 1445, 2936, 1079, 1445, 1445, 1077, 1077, 05684 1077, 2946, 1079, 1079, 1079, 1084, 1084, 1084, 1084, 2936, 05685 1072, 1445, 1084, 1085, 1085, 1085, 1085, 2947, 1073, 1086, 05686 1086, 1086, 1086, 1445, 1085, 1087, 1087, 1087, 1087, 1089, 05687 1089, 1089, 1089, 1090, 1090, 1090, 1090, 2949, 1085, 1085, 05688 1090, 2964, 1751, 1086, 1445, 1751, 1076, 2968, 2969, 1087, 05689 2972, 2973, 2974, 1089, 1091, 1091, 1091, 1091, 2975, 2972, 05690 05691 2977, 1091, 1092, 1092, 1092, 1092, 2997, 1093, 1093, 1093, 05692 1093, 2998, 1751, 1092, 1093, 1095, 1095, 1095, 1095, 1096, 05693 1096, 1096, 1096, 3004, 3005, 3008, 1095, 1099, 1099, 1099, 05694 1099, 1099, 3009, 1751, 1099, 3010, 3014, 1086, 3017, 1095, 05695 3018, 1101, 1101, 1101, 1101, 1103, 1103, 1103, 1103, 3019, 05696 3023, 1099, 1101, 3024, 3026, 3028, 1103, 1104, 1104, 1104, 05697 1104, 1105, 1105, 1105, 1105, 1101, 3031, 3032, 1104, 1103, 05698 3033, 3034, 1105, 1118, 1118, 1118, 1118, 1127, 1127, 1127, 05699 1127, 1104, 3035, 3036, 1127, 1105, 1128, 1128, 1128, 1128, 05700 3037, 3038, 3029, 1128, 3038, 3029, 3040, 1118, 1129, 1129, 05701 05702 1129, 1129, 3038, 3039, 3041, 1129, 3039, 1099, 1130, 1130, 05703 1130, 1130, 3029, 3029, 3042, 1105, 1131, 1131, 1131, 1131, 05704 1133, 1133, 1133, 1133, 3044, 1130, 3045, 1133, 1104, 3046, 05705 3047, 3052, 1130, 1131, 1134, 1134, 1134, 1134, 3053, 1127, 05706 1131, 1134, 1135, 1135, 1135, 1135, 3054, 3056, 1128, 3057, 05707 1137, 1137, 1137, 1137, 3059, 1127, 1144, 1144, 1144, 1144, 05708 1145, 1145, 1145, 1145, 1128, 3060, 1135, 1137, 1147, 1147, 05709 1147, 1147, 3061, 3064, 1137, 3065, 1129, 3068, 1145, 3073, 05710 3076, 1131, 1133, 3077, 3078, 3080, 1147, 1150, 1150, 1150, 05711 1150, 3081, 1174, 1174, 1174, 1174, 3082, 3087, 1133, 1149, 05712 05713 1149, 1149, 1149, 3100, 3101, 1149, 1172, 1172, 1172, 1172, 05714 3105, 1150, 3106, 1172, 1173, 1173, 1173, 1173, 1174, 1175, 05715 3107, 1173, 1175, 1149, 1177, 1177, 1177, 1177, 3108, 1149, 05716 1178, 1178, 1178, 1178, 3125, 3129, 3131, 1178, 1175, 1175, 05717 1175, 1175, 1175, 1149, 1186, 1186, 1186, 1186, 1177, 1149, 05718 3132, 3128, 1149, 1149, 3128, 1149, 1149, 1149, 3142, 3146, 05719 3147, 1149, 1149, 1149, 1149, 1149, 3151, 1149, 3152, 1149, 05720 1149, 1149, 1149, 1149, 3153, 3154, 1175, 1180, 1180, 1180, 05721 1180, 1182, 1182, 1182, 1182, 3155, 3159, 3160, 1182, 1752, 05722 1182, 3161, 1752, 3162, 1182, 1183, 1183, 1183, 1183, 3163, 05723 05724 3168, 1180, 1183, 1180, 1183, 3169, 3172, 3175, 1183, 1184, 05725 1184, 1184, 1184, 1185, 1185, 1185, 1185, 3177, 1184, 1752, 05726 1184, 3156, 1184, 3185, 3156, 1185, 1185, 1191, 1191, 1191, 05727 1191, 1191, 3156, 3158, 1191, 1753, 3158, 1185, 1753, 1185, 05728 1752, 1195, 1195, 1195, 1195, 1196, 1196, 1196, 1196, 3186, 05729 3187, 1191, 1195, 3190, 3191, 3204, 1196, 1197, 1197, 1197, 05730 1197, 1198, 1198, 1198, 1198, 1753, 3148, 3148, 1197, 3148, 05731 3208, 3209, 1198, 1199, 1199, 1199, 1199, 1200, 1200, 1200, 05732 1200, 3210, 3149, 3149, 1199, 3149, 1753, 3211, 1200, 1201, 05733 1201, 1201, 1201, 1202, 1202, 1202, 1202, 1206, 1206, 1206, 05734 05735 1206, 3218, 1204, 1204, 1204, 1204, 3219, 1191, 3233, 1196, 05736 3234, 2281, 3235, 1201, 2281, 1201, 3238, 1202, 2281, 1202, 05737 2281, 3245, 1197, 1197, 2281, 3246, 1204, 3247, 1204, 1198, 05738 1207, 1207, 1207, 1207, 3248, 1200, 1208, 1208, 1208, 1208, 05739 3251, 3252, 3253, 1199, 1204, 1204, 1199, 3254, 1204, 1209, 05740 1209, 1209, 1209, 3258, 1207, 1206, 1207, 3264, 3239, 3265, 05741 1208, 3239, 1208, 1210, 1210, 1210, 1210, 1211, 1211, 1211, 05742 1211, 3240, 3270, 1209, 3240, 1209, 1212, 1212, 1212, 1212, 05743 1213, 1213, 1213, 1213, 3271, 3241, 3241, 1210, 3241, 1210, 05744 3275, 1211, 3276, 1211, 1214, 1214, 1214, 1214, 1207, 3277, 05745 05746 1212, 3278, 1212, 1209, 1213, 3284, 1213, 1208, 1215, 1215, 05747 1215, 1215, 1216, 1216, 1216, 1216, 3285, 3286, 1214, 1210, 05748 1214, 1242, 1242, 1242, 1242, 3157, 1211, 3288, 3157, 1210, 05749 3243, 3243, 1215, 3243, 1215, 3289, 1216, 3157, 1216, 3305, 05750 3306, 1213, 3309, 1755, 3310, 1242, 1755, 1212, 1217, 1217, 05751 1217, 1217, 1218, 1218, 1218, 1218, 3311, 1219, 1219, 1219, 05752 1219, 1755, 1244, 1244, 1244, 1244, 1215, 1214, 1216, 1244, 05753 3312, 3313, 1217, 1755, 1217, 3314, 1218, 3318, 1218, 3321, 05754 1216, 1219, 3322, 1219, 1216, 1220, 1220, 1220, 1220, 3323, 05755 1221, 1221, 1221, 1221, 1755, 3326, 1222, 1222, 1222, 1222, 05756 05757 1223, 1223, 1223, 1223, 1224, 1224, 1224, 1224, 3327, 1220, 05758 1217, 1220, 3328, 1219, 1221, 3333, 1221, 3334, 1218, 1219, 05759 1222, 1219, 1222, 3335, 1223, 3354, 1223, 3355, 1224, 1219, 05760 1224, 3358, 1225, 1225, 1225, 1225, 1226, 1226, 1226, 1226, 05761 3359, 3360, 1220, 3362, 3363, 1221, 1227, 1227, 1227, 1227, 05762 3364, 1228, 1228, 1228, 1228, 3369, 1225, 1223, 1225, 3370, 05763 1226, 3383, 1226, 1229, 1229, 1229, 1229, 3384, 1222, 3387, 05764 1227, 3388, 1227, 3390, 3391, 1228, 1224, 1228, 1230, 1230, 05765 1230, 1230, 1231, 1231, 1231, 1231, 3397, 1229, 3398, 1229, 05766 1232, 1232, 1232, 1232, 3402, 3409, 3611, 1225, 1226, 3621, 05767 05768 3622, 1227, 1230, 1226, 1230, 3623, 1231, 3622, 1231, 3249, 05769 1228, 3625, 3249, 3627, 1232, 1756, 1232, 3626, 1756, 3630, 05770 1228, 3249, 3628, 1229, 3626, 1233, 1233, 1233, 1233, 3628, 05771 3629, 3646, 1230, 1234, 1234, 1234, 1234, 1235, 1235, 1235, 05772 1235, 1236, 1236, 1236, 1236, 1756, 3629, 1231, 1230, 1233, 05773 3648, 1233, 1237, 1237, 1237, 1237, 3638, 1234, 1232, 1234, 05774 3653, 1235, 3665, 1235, 3668, 1236, 1756, 1236, 1245, 1245, 05775 1245, 1245, 3638, 3639, 3670, 1245, 1237, 3673, 1237, 1246, 05776 1246, 1246, 1246, 1247, 1247, 1247, 1247, 1233, 3675, 3639, 05777 1247, 1249, 1249, 1249, 1249, 1234, 1250, 1250, 1250, 1250, 05778 05779 1250, 1235, 3678, 1250, 3681, 1246, 1251, 1251, 1251, 1251, 05780 3684, 1236, 3631, 3686, 3688, 1249, 1237, 1249, 3690, 3631, 05781 1250, 1252, 1252, 1252, 1252, 1258, 1258, 1258, 1258, 3703, 05782 1251, 3647, 1251, 1259, 1259, 1259, 1259, 3705, 3647, 3649, 05783 1258, 1260, 1260, 1260, 1260, 1252, 3649, 1252, 1262, 1262, 05784 1262, 1262, 1274, 1274, 1274, 1274, 1275, 1275, 1275, 1275, 05785 1286, 1286, 1286, 1286, 3717, 3726, 3307, 1262, 3666, 3307, 05786 3730, 1274, 1286, 3307, 3744, 3666, 1250, 1261, 1261, 1261, 05787 1261, 1287, 1287, 1287, 1287, 1290, 1290, 1290, 1290, 3752, 05788 3756, 1290, 1287, 1291, 1291, 1291, 1291, 1294, 3308, 1927, 05789 05790 1294, 3308, 1927, 3760, 1261, 3308, 3756, 1287, 1296, 1296, 05791 1296, 1296, 1297, 1297, 1297, 1297, 1294, 1294, 1294, 1294, 05792 1294, 1300, 1300, 1300, 1300, 1304, 1304, 1304, 1304, 1927, 05793 3772, 1261, 1304, 1261, 3776, 1302, 1302, 1302, 1302, 1303, 05794 1303, 1303, 1303, 1261, 1261, 3778, 3676, 1261, 1261, 1261, 05795 1927, 1261, 1302, 3676, 3350, 3352, 1303, 3350, 3352, 1302, 05796 3783, 3350, 3352, 1303, 1305, 1305, 1305, 1305, 1307, 1307, 05797 1307, 1307, 1308, 1308, 1308, 1308, 1310, 1310, 1310, 1310, 05798 3669, 1305, 3669, 1310, 3796, 1307, 3834, 3679, 1305, 3669, 05799 3868, 3674, 1307, 1300, 3679, 3674, 1308, 1311, 1311, 1311, 05800 05801 1311, 3872, 3674, 3687, 1311, 1313, 1313, 1313, 1313, 3674, 05802 3687, 3892, 1313, 1315, 1315, 1315, 1315, 1316, 1316, 1316, 05803 1316, 1316, 3757, 3893, 1316, 1317, 1317, 1317, 1317, 3685, 05804 3685, 1320, 3685, 1307, 1320, 3901, 3685, 1315, 3757, 3689, 05805 3691, 1316, 1322, 1322, 1322, 1322, 3689, 3691, 3930, 1317, 05806 1320, 1320, 1320, 1320, 1320, 1326, 1326, 1326, 1326, 1334, 05807 1334, 1334, 1334, 1356, 1356, 1356, 1356, 1369, 1369, 1369, 05808 1369, 3958, 3996, 1326, 4001, 4016, 4022, 1334, 1379, 1379, 05809 1379, 1379, 1380, 1380, 1380, 1380, 3704, 1381, 1381, 1381, 05810 1381, 3706, 3706, 3704, 1381, 1379, 4047, 1316, 3706, 1380, 05811 05812 1381, 1382, 1382, 1382, 1382, 1391, 1391, 1391, 1391, 1403, 05813 1403, 1403, 1403, 1408, 1408, 1408, 1408, 2297, 1382, 2296, 05814 1391, 1409, 1409, 1409, 1409, 1411, 1411, 1411, 1411, 1412, 05815 1412, 1412, 1412, 1442, 1442, 1442, 1442, 1408, 1409, 1444, 05816 2295, 3719, 1444, 1444, 1450, 1450, 1450, 1450, 3719, 2294, 05817 2293, 1450, 1444, 1412, 1451, 1451, 1451, 1451, 2291, 3754, 05818 3758, 1451, 1452, 1452, 1452, 1452, 3754, 3758, 3766, 1444, 05819 1453, 1453, 1453, 1453, 3759, 1452, 1455, 1455, 1455, 1455, 05820 3808, 3759, 2288, 1453, 3766, 3876, 2287, 1403, 3762, 1455, 05821 1444, 1458, 1458, 1458, 1458, 3762, 3808, 2285, 1458, 3934, 05822 05823 1458, 3876, 3777, 3761, 1458, 1459, 1459, 1459, 1459, 3777, 05824 3761, 3944, 1459, 3761, 1459, 3934, 3785, 3786, 1459, 1460, 05825 1460, 1460, 1460, 3785, 3786, 2284, 1460, 3944, 1460, 2283, 05826 2282, 2277, 1460, 1461, 1461, 1461, 1461, 1462, 1462, 1462, 05827 1462, 1463, 1463, 1463, 1463, 1466, 1466, 1466, 1466, 2276, 05828 1467, 1467, 1467, 1467, 2275, 3795, 1466, 1467, 1470, 1470, 05829 1470, 1470, 3795, 1467, 1472, 1472, 1472, 1472, 4040, 1466, 05830 3805, 1472, 1473, 1473, 1473, 1473, 3807, 3805, 3807, 1473, 05831 2274, 3813, 1470, 1461, 4040, 3807, 2273, 1462, 3813, 3815, 05832 3821, 1463, 1475, 1475, 1475, 1475, 3815, 3821, 2271, 1475, 05833 05834 1477, 1477, 1477, 1477, 1478, 1478, 1478, 1478, 1478, 3822, 05835 4041, 1478, 1479, 1479, 1479, 1479, 3822, 1480, 1480, 1480, 05836 1480, 2270, 2269, 2266, 1477, 2265, 4041, 3823, 1478, 1480, 05837 1481, 1481, 1481, 1481, 3823, 2261, 1479, 1482, 1482, 1482, 05838 1482, 1481, 1489, 1489, 1489, 1489, 2258, 2255, 1482, 1491, 05839 1491, 1491, 1491, 1492, 1492, 1492, 1492, 1512, 1512, 1512, 05840 1512, 2252, 1482, 1517, 1517, 1517, 1517, 1520, 1520, 1520, 05841 1520, 1492, 1525, 1525, 1525, 1525, 1526, 2249, 3833, 1526, 05842 1529, 1529, 1529, 1529, 1478, 3833, 3840, 1482, 1535, 1535, 05843 1535, 1535, 2246, 3840, 2245, 1526, 1526, 1526, 1526, 1526, 05844 05845 1537, 1537, 1537, 1537, 1541, 1541, 1541, 1541, 2239, 3841, 05846 3841, 1537, 1542, 1542, 1542, 1542, 3841, 3854, 2238, 1541, 05847 1543, 1543, 1543, 1543, 3854, 1537, 1555, 1555, 1555, 1555, 05848 1556, 1556, 1556, 1556, 1571, 1571, 1571, 1571, 2237, 1555, 05849 3871, 1571, 1572, 1572, 1572, 1572, 2236, 3871, 2234, 1572, 05850 1537, 1573, 1573, 1573, 1573, 1575, 1575, 1575, 1575, 1576, 05851 1576, 1576, 1576, 1573, 2230, 3812, 1573, 1575, 3883, 3812, 05852 1575, 1576, 2229, 2227, 1576, 3883, 3812, 2226, 1537, 1577, 05853 1577, 1577, 1577, 3812, 1571, 1579, 1579, 1579, 1579, 2224, 05854 2221, 2220, 1572, 1581, 1581, 1581, 1581, 1579, 3869, 3869, 05855 05856 1579, 1582, 1582, 1582, 1582, 3869, 3912, 3917, 1582, 1583, 05857 1583, 1583, 1583, 3912, 3917, 2218, 1583, 1584, 1584, 1584, 05858 1584, 1585, 1585, 1585, 1585, 1586, 1586, 1586, 1586, 2217, 05859 2215, 2214, 1585, 2213, 2212, 2210, 1586, 1588, 1588, 1588, 05860 1588, 1594, 1594, 1594, 1594, 3902, 3925, 3902, 1588, 1596, 05861 1596, 1596, 1596, 3925, 3902, 3928, 1596, 1597, 1597, 1597, 05862 1597, 3931, 3928, 3931, 1597, 1594, 1599, 1599, 1599, 1599, 05863 3931, 2209, 2206, 1599, 1601, 1601, 1601, 1601, 1602, 1602, 05864 1602, 1602, 1602, 2201, 3941, 1602, 1603, 1603, 1603, 1603, 05865 1637, 3941, 2198, 1637, 1651, 1651, 1651, 1651, 1601, 3897, 05866 05867 2195, 1930, 1602, 1637, 1930, 2194, 3897, 1651, 1637, 3897, 05868 1603, 1652, 1652, 1652, 1652, 2192, 1637, 1656, 1656, 1656, 05869 1656, 1657, 1657, 1657, 1657, 1658, 1658, 1658, 1658, 2191, 05870 2190, 1930, 1657, 2189, 3954, 3954, 1658, 1659, 1659, 1659, 05871 1659, 3954, 1656, 1656, 2187, 2111, 1657, 1657, 2111, 1658, 05872 1658, 1658, 1930, 2186, 1659, 2185, 2183, 2182, 1602, 1660, 05873 1660, 1660, 1660, 1661, 1661, 1661, 1661, 2181, 2180, 2178, 05874 1661, 1662, 1662, 1662, 1662, 2111, 1660, 3955, 1662, 1664, 05875 1664, 1664, 1664, 1664, 3955, 2177, 1664, 1665, 1665, 1665, 05876 1665, 1666, 1666, 1666, 1666, 2174, 2111, 2121, 1665, 2114, 05877 05878 2108, 2105, 1666, 1664, 1667, 1667, 1667, 1667, 1668, 1668, 05879 1668, 1668, 1665, 1665, 2097, 1667, 2095, 2094, 3961, 1668, 05880 1674, 1674, 1674, 1674, 1674, 3961, 3984, 1674, 1677, 1677, 05881 1677, 1677, 1668, 3984, 1676, 1676, 1676, 1676, 2093, 1677, 05882 1687, 1687, 1687, 1687, 1674, 1676, 1684, 1684, 1684, 1684, 05883 1684, 2092, 1677, 1684, 2091, 2090, 2089, 1687, 1676, 1664, 05884 1688, 1688, 1688, 1688, 1687, 2088, 3971, 1688, 3971, 3992, 05885 1684, 1689, 1689, 1689, 1689, 3971, 3992, 2087, 1689, 1690, 05886 1690, 1690, 1690, 1693, 1693, 1693, 1693, 1701, 3819, 3819, 05887 1693, 3819, 1677, 2086, 4015, 3819, 1701, 1701, 1701, 1701, 05888 05889 1674, 4015, 2115, 1690, 2084, 2115, 1676, 2083, 1687, 2082, 05890 1707, 1707, 1707, 1707, 1708, 1708, 1708, 1708, 1708, 2081, 05891 2080, 1708, 1739, 1739, 1739, 1739, 1684, 1706, 1706, 1706, 05892 1706, 2079, 2115, 1706, 1707, 2078, 2077, 2076, 1708, 1740, 05893 1740, 1740, 1740, 1743, 1743, 1743, 1743, 1741, 1739, 2075, 05894 1741, 1706, 1743, 2115, 1743, 2074, 1743, 1706, 2073, 2072, 05895 2071, 1746, 1746, 1746, 1746, 1740, 1741, 1741, 1741, 1741, 05896 1741, 1706, 1746, 1776, 1776, 1776, 1776, 1706, 2070, 4028, 05897 1706, 1706, 2069, 1706, 1706, 1706, 4028, 2068, 2067, 1706, 05898 1706, 1706, 1706, 1706, 1708, 1706, 2066, 1706, 1706, 1706, 05899 05900 1706, 1706, 1744, 1744, 1744, 1744, 4042, 3894, 2065, 1744, 05901 2064, 1744, 3894, 4042, 3894, 1744, 1745, 1745, 1745, 1745, 05902 1747, 1747, 1747, 1747, 2063, 2062, 2061, 1747, 1745, 1745, 05903 2059, 1776, 1747, 1748, 1748, 1748, 1748, 3964, 1757, 2058, 05904 1745, 1757, 3964, 2057, 3964, 1748, 1748, 1762, 1762, 1762, 05905 1762, 1757, 1819, 1819, 1819, 1819, 2054, 1748, 1762, 1748, 05906 1760, 1760, 1760, 1760, 1760, 2053, 4044, 1760, 1757, 1764, 05907 1764, 1764, 1764, 4044, 1765, 1765, 1765, 1765, 1819, 3994, 05908 1764, 3994, 2050, 2049, 1760, 1765, 2048, 2047, 3994, 1757, 05909 1766, 1766, 1766, 1766, 1767, 1767, 1767, 1767, 2046, 2044, 05910 05911 2040, 1766, 2035, 2034, 2027, 1767, 1768, 1768, 1768, 1768, 05912 1769, 1769, 1769, 1769, 2019, 3936, 3936, 1768, 3936, 2014, 05913 2013, 1769, 3936, 2012, 1770, 1770, 1770, 1770, 1765, 2011, 05914 1771, 1771, 1771, 1771, 2010, 1770, 1773, 1773, 1773, 1773, 05915 1760, 1771, 2009, 1774, 1774, 1774, 1774, 1775, 1775, 1775, 05916 1775, 2007, 1821, 1821, 1821, 1821, 1821, 4045, 1766, 1821, 05917 1773, 2006, 1773, 4051, 4045, 2003, 1767, 1774, 1773, 1774, 05918 4051, 1775, 1769, 1775, 2000, 1999, 1821, 1769, 1768, 1770, 05919 1778, 1778, 1778, 1778, 1998, 1775, 1994, 1993, 1774, 1779, 05920 1779, 1779, 1779, 1780, 1780, 1780, 1780, 1992, 4052, 1771, 05921 05922 1783, 1783, 1783, 1783, 1778, 4052, 1778, 1781, 1781, 1781, 05923 1781, 3997, 3997, 1779, 3997, 1779, 1986, 1780, 3997, 1780, 05924 1782, 1782, 1782, 1782, 1783, 1984, 1783, 1840, 1840, 1840, 05925 1840, 1781, 1821, 1781, 1784, 1784, 1784, 1784, 1983, 1785, 05926 1785, 1785, 1785, 3977, 1782, 1982, 1782, 3977, 1786, 1786, 05927 1786, 1786, 3977, 1778, 1787, 1787, 1787, 1787, 1784, 3977, 05928 1784, 1779, 1783, 1785, 1780, 1785, 1788, 1788, 1788, 1788, 05929 1981, 1781, 1786, 1980, 1786, 1979, 1977, 1976, 1787, 1975, 05930 1787, 1789, 1789, 1789, 1789, 1790, 1790, 1790, 1790, 1974, 05931 1788, 1782, 1788, 1791, 1791, 1791, 1791, 1792, 1792, 1792, 05932 05933 1792, 1972, 1784, 1970, 1969, 1789, 1785, 1789, 1966, 1790, 05934 1964, 1790, 1962, 1786, 1960, 4033, 4033, 1791, 4033, 1791, 05935 1787, 1792, 4033, 1792, 1788, 1958, 1793, 1793, 1793, 1793, 05936 1794, 1794, 1794, 1794, 1795, 1795, 1795, 1795, 1956, 1796, 05937 1796, 1796, 1796, 1790, 1954, 1789, 1820, 1820, 1820, 1820, 05938 1793, 1791, 1793, 1952, 1794, 1792, 1794, 4021, 1795, 1951, 05939 1795, 4021, 1950, 1796, 1946, 1796, 4021, 1797, 1797, 1797, 05940 1797, 1944, 1820, 4021, 1798, 1798, 1798, 1798, 1934, 1799, 05941 1799, 1799, 1799, 1800, 1800, 1800, 1800, 1933, 1932, 1929, 05942 1793, 1797, 1925, 1797, 1923, 1922, 1795, 1796, 1798, 1921, 05943 05944 1798, 1920, 1794, 1799, 1919, 1799, 1918, 1800, 1915, 1800, 05945 1801, 1801, 1801, 1801, 1914, 1802, 1802, 1802, 1802, 1803, 05946 1803, 1803, 1803, 1797, 1804, 1804, 1804, 1804, 1843, 1843, 05947 1843, 1843, 1913, 1912, 1801, 1911, 1801, 1910, 1909, 1802, 05948 1799, 1802, 1908, 1803, 1798, 1803, 1907, 1906, 1804, 1905, 05949 1804, 1805, 1805, 1805, 1805, 1902, 1800, 1806, 1806, 1806, 05950 1806, 1901, 1900, 1896, 1801, 1807, 1807, 1807, 1807, 1848, 05951 1848, 1848, 1848, 1802, 1895, 1805, 1888, 1805, 1886, 1885, 05952 1884, 1806, 1883, 1806, 1808, 1808, 1808, 1808, 1882, 1807, 05953 1881, 1807, 1804, 1803, 1880, 1879, 1804, 1809, 1809, 1809, 05954 05955 1809, 1810, 1810, 1810, 1810, 1876, 1872, 1870, 1808, 1863, 05956 1808, 1811, 1811, 1811, 1811, 1805, 1862, 1812, 1812, 1812, 05957 1812, 1809, 1856, 1809, 1854, 1810, 1852, 1810, 1813, 1813, 05958 1813, 1813, 1849, 1847, 1846, 1811, 1845, 1811, 1807, 1844, 05959 1842, 1812, 1841, 1812, 1814, 1814, 1814, 1814, 4039, 1839, 05960 1808, 4039, 1813, 1834, 1813, 4039, 1815, 1815, 1815, 1815, 05961 1816, 1816, 1816, 1816, 1817, 1817, 1817, 1817, 1814, 1809, 05962 1814, 4039, 1833, 1822, 1810, 1812, 1822, 1832, 1831, 1811, 05963 1815, 1830, 1815, 1829, 1816, 1828, 1816, 1827, 1817, 1823, 05964 1817, 1824, 1823, 1826, 1824, 1813, 1857, 1818, 1777, 1822, 05965 05966 1761, 1825, 1750, 1822, 1825, 1857, 1857, 1857, 1857, 2117, 05967 1814, 1749, 2117, 1742, 1825, 1823, 1738, 1824, 1817, 1823, 05968 1737, 1824, 1736, 1735, 1822, 1734, 1732, 1825, 1731, 1815, 05969 1730, 1825, 1816, 1850, 1850, 1850, 1850, 1728, 4049, 2117, 05970 1823, 4049, 1824, 1853, 1850, 4049, 1853, 1858, 1858, 1858, 05971 1858, 1727, 1825, 1860, 1860, 1860, 1860, 1726, 1725, 1850, 05972 2117, 4049, 1853, 1853, 1853, 1853, 1853, 1864, 1864, 1864, 05973 1864, 1724, 1723, 1720, 1864, 1865, 1865, 1865, 1865, 1719, 05974 1718, 1716, 1865, 1866, 1866, 1866, 1866, 1867, 1867, 1867, 05975 1867, 1869, 1869, 1869, 1869, 1869, 1715, 1714, 1869, 1713, 05976 05977 1866, 1712, 4050, 1710, 1867, 4050, 1700, 1866, 1873, 4050, 05978 1698, 1867, 1697, 1696, 1695, 1869, 1694, 1873, 1873, 1873, 05979 1873, 1889, 1889, 1889, 1889, 4050, 1692, 1685, 1889, 1890, 05980 1890, 1890, 1890, 1682, 1889, 1678, 1890, 1892, 1892, 1892, 05981 1892, 1675, 1890, 1673, 1655, 1867, 1898, 1898, 1898, 1898, 05982 1899, 1899, 1899, 1899, 1892, 1926, 1928, 1931, 1648, 1928, 05983 1931, 1898, 1639, 1638, 1926, 1926, 1926, 1926, 1636, 1635, 05984 1634, 1869, 1935, 1935, 1935, 1935, 1633, 1632, 1630, 1935, 05985 1629, 1628, 1928, 1931, 1627, 1935, 1928, 1931, 1936, 1936, 05986 1936, 1936, 1621, 1618, 1617, 1936, 1937, 1937, 1937, 1937, 05987 05988 1616, 1936, 1938, 1938, 1938, 1938, 1613, 1928, 1931, 1937, 05989 1941, 1941, 1941, 1941, 1941, 1612, 1611, 1941, 1942, 1942, 05990 1942, 1942, 1988, 1988, 1988, 1988, 1938, 1947, 1610, 1942, 05991 1607, 1955, 1606, 1595, 1941, 1959, 1947, 1947, 1947, 1947, 05992 1955, 1955, 1955, 1955, 1959, 1959, 1959, 1959, 1963, 1593, 05993 1968, 1592, 1967, 1968, 1580, 1574, 1973, 1963, 1963, 1963, 05994 1963, 1967, 1967, 1967, 1967, 1973, 1973, 1973, 1973, 1968, 05995 1968, 1968, 1968, 1968, 1987, 1987, 1987, 1987, 1989, 1989, 05996 1989, 1989, 1990, 1990, 1990, 1990, 1987, 1570, 1568, 1987, 05997 1941, 1991, 1991, 1991, 1991, 1996, 1996, 1996, 1996, 1996, 05998 05999 1567, 1566, 1996, 2022, 2022, 2022, 2022, 2023, 2023, 2023, 06000 2023, 2025, 2025, 2025, 2025, 1565, 1564, 1563, 2023, 1996, 06001 1561, 1560, 2025, 2038, 2038, 2038, 2038, 2022, 2022, 2022, 06002 2038, 2023, 2023, 2023, 1553, 2025, 2041, 2041, 2041, 2041, 06003 2043, 2043, 2043, 2043, 2045, 2045, 2045, 2045, 1552, 1534, 06004 1532, 2045, 2101, 2101, 2101, 2101, 2052, 2106, 1524, 1519, 06005 2041, 1516, 2106, 2101, 2043, 2052, 2052, 2052, 2052, 2106, 06006 2106, 2106, 2106, 2106, 1511, 1996, 2005, 2005, 2005, 2005, 06007 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 06008 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 06009 06010 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 06011 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 06012 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 06013 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 06014 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 06015 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2005, 2031, 2031, 06016 2031, 2031, 2032, 2032, 2032, 2032, 1501, 1500, 1499, 2031, 06017 1490, 1486, 1471, 2032, 2037, 2037, 2037, 2037, 2037, 1468, 06018 1464, 2037, 2031, 1441, 1436, 1435, 2032, 2039, 2039, 2039, 06019 2039, 2039, 1433, 1428, 2039, 1427, 1423, 1421, 2037, 2042, 06020 06021 2042, 2042, 2042, 2056, 2056, 2056, 2056, 2124, 2124, 2124, 06022 2124, 2039, 2098, 2098, 2098, 2098, 2042, 1420, 2124, 2098, 06023 2032, 2098, 1419, 2042, 1418, 2098, 1410, 2056, 2031, 2099, 06024 2099, 2099, 2099, 1388, 1387, 1386, 2099, 1385, 2099, 1384, 06025 1383, 1378, 2099, 1377, 2122, 2122, 2122, 2122, 1376, 2100, 06026 2100, 2100, 2100, 1375, 2037, 2122, 2130, 2130, 2130, 2130, 06027 1374, 1373, 1367, 2042, 1366, 2124, 1365, 2039, 2055, 2055, 06028 2055, 2055, 1355, 2100, 2055, 2100, 2103, 2103, 2103, 2103, 06029 2130, 1354, 2130, 2103, 2104, 2104, 2104, 2104, 2103, 1352, 06030 1348, 2104, 2055, 1344, 1342, 2130, 2104, 1341, 2055, 1332, 06031 06032 2107, 2107, 2107, 2107, 1321, 1309, 1306, 2107, 1301, 2107, 06033 1295, 1285, 2055, 2107, 1284, 2122, 1283, 1282, 2055, 1281, 06034 1280, 2055, 2055, 1279, 2055, 2055, 2055, 1278, 1277, 1270, 06035 2055, 2055, 2055, 2055, 2055, 1268, 2055, 1267, 2055, 2055, 06036 2055, 2055, 2055, 2109, 2109, 2109, 2109, 2123, 2123, 2123, 06037 2123, 2125, 2125, 2125, 2125, 2109, 1266, 1265, 2123, 1264, 06038 1263, 1243, 2125, 2126, 2126, 2126, 2126, 2109, 2127, 2127, 06039 2127, 2127, 1241, 1205, 2126, 2128, 2128, 2128, 2128, 2127, 06040 2129, 2129, 2129, 2129, 1203, 1192, 2128, 2179, 2179, 2179, 06041 2179, 2129, 2131, 2131, 2131, 2131, 2132, 2132, 2132, 2132, 06042 06043 2133, 2133, 2133, 2133, 2134, 2134, 2134, 2134, 1176, 2278, 06044 2278, 2123, 1170, 2125, 2278, 1169, 2131, 2278, 2131, 1167, 06045 2132, 1165, 2132, 1163, 2133, 1162, 2133, 2278, 2134, 2278, 06046 2134, 1161, 1159, 2132, 2131, 1157, 1156, 2126, 1155, 2128, 06047 2127, 2135, 2135, 2135, 2135, 2136, 2136, 2136, 2136, 2137, 06048 2137, 2137, 2137, 2129, 1154, 2133, 2138, 2138, 2138, 2138, 06049 1152, 2139, 2139, 2139, 2139, 2135, 1143, 2135, 1142, 2136, 06050 1141, 2136, 1138, 2137, 2134, 2137, 2142, 2142, 2142, 2142, 06051 2138, 1136, 2138, 1124, 1119, 2139, 1114, 2139, 1112, 2141, 06052 2141, 2141, 2141, 2143, 2143, 2143, 2143, 1111, 1100, 2136, 06053 06054 2142, 1088, 2142, 2184, 2184, 2184, 2184, 2188, 2188, 2188, 06055 2188, 1063, 2135, 2141, 1059, 2141, 1044, 2143, 1042, 2143, 06056 1020, 2137, 2138, 2139, 2140, 2140, 2140, 2140, 2140, 2140, 06057 2140, 2140, 2140, 2140, 2140, 2140, 2140, 2140, 2140, 2140, 06058 2140, 2140, 2140, 2140, 2144, 2144, 2144, 2144, 2142, 2140, 06059 1019, 2140, 2140, 2140, 2140, 2140, 2145, 2145, 2145, 2145, 06060 1018, 2143, 2146, 2146, 2146, 2146, 1016, 2141, 2144, 1003, 06061 2144, 2147, 2147, 2147, 2147, 2140, 2140, 2140, 1002, 1001, 06062 2145, 992, 2145, 980, 969, 958, 2146, 934, 2146, 2148, 06063 2148, 2148, 2148, 890, 884, 2147, 883, 2147, 2149, 2149, 06064 06065 2149, 2149, 882, 2140, 2140, 2140, 2144, 2150, 2150, 2150, 06066 2150, 859, 851, 2148, 843, 2148, 2151, 2151, 2151, 2151, 06067 835, 826, 2149, 816, 2149, 810, 2145, 805, 2146, 792, 06068 786, 2150, 775, 2150, 2152, 2152, 2152, 2152, 764, 739, 06069 2151, 2147, 2151, 2153, 2153, 2153, 2153, 738, 2154, 2154, 06070 2154, 2154, 2155, 2155, 2155, 2155, 737, 736, 2152, 733, 06071 2152, 729, 2148, 719, 718, 2149, 717, 2153, 716, 2153, 06072 705, 704, 2154, 2150, 2154, 703, 2155, 702, 2155, 2156, 06073 2156, 2156, 2156, 701, 700, 669, 2151, 2157, 2157, 2157, 06074 2157, 644, 639, 2158, 2158, 2158, 2158, 2153, 637, 636, 06075 06076 627, 2152, 621, 2156, 614, 2156, 2159, 2159, 2159, 2159, 06077 601, 2157, 600, 2157, 565, 2154, 2155, 2158, 564, 2158, 06078 2160, 2160, 2160, 2160, 2161, 2161, 2161, 2161, 563, 561, 06079 2159, 559, 2159, 547, 2156, 2162, 2162, 2162, 2162, 2163, 06080 2163, 2163, 2163, 536, 2160, 520, 2160, 2158, 2161, 518, 06081 2161, 2164, 2164, 2164, 2164, 511, 497, 495, 2157, 2162, 06082 481, 2162, 472, 2163, 2159, 2163, 2165, 2165, 2165, 2165, 06083 2166, 2166, 2166, 2166, 470, 2164, 469, 2164, 2160, 2193, 06084 2193, 2193, 2193, 468, 467, 466, 2161, 465, 415, 410, 06085 2165, 2162, 2165, 384, 2166, 380, 2166, 2167, 2167, 2167, 06086 06087 2167, 2163, 378, 376, 375, 2164, 2162, 2168, 2168, 2168, 06088 2168, 2169, 2169, 2169, 2169, 2170, 2170, 2170, 2170, 350, 06089 348, 2167, 336, 2167, 320, 283, 2166, 281, 2165, 266, 06090 243, 2168, 0, 2168, 0, 2169, 0, 2169, 0, 2170, 06091 0, 2170, 2171, 2171, 2171, 2171, 2172, 2172, 2172, 2172, 06092 2173, 2173, 2173, 2173, 2196, 2196, 2196, 2196, 0, 0, 06093 0, 2167, 0, 0, 2168, 2196, 2171, 0, 2171, 2200, 06094 2172, 0, 2172, 2168, 2173, 2170, 2173, 2169, 2200, 2200, 06095 2200, 2200, 2203, 2203, 2203, 2203, 2204, 2204, 2204, 2204, 06096 2205, 2205, 2205, 2205, 2219, 2219, 2219, 2219, 0, 2203, 06097 06098 2171, 0, 0, 2204, 0, 0, 2203, 2205, 0, 0, 06099 2204, 2219, 0, 0, 2205, 2208, 0, 0, 0, 2172, 06100 0, 0, 2173, 2241, 2208, 2208, 2208, 2208, 2222, 2222, 06101 2222, 2222, 2241, 2241, 2241, 2241, 2242, 2242, 2242, 2242, 06102 2243, 2243, 2243, 2243, 2244, 2244, 2244, 2244, 2248, 2242, 06103 2447, 2447, 2447, 2447, 0, 0, 0, 2248, 2248, 2248, 06104 2248, 2205, 2254, 0, 2243, 0, 2257, 0, 2244, 0, 06105 2260, 2254, 2254, 2254, 2254, 2257, 2257, 2257, 2257, 2260, 06106 2260, 2260, 2260, 2263, 0, 0, 0, 2268, 2465, 2465, 06107 2465, 2465, 2263, 2263, 2263, 2263, 2268, 2268, 2268, 2268, 06108 06109 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 06110 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 06111 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 06112 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 06113 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 06114 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 06115 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 06116 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 2290, 06117 2290, 2290, 2300, 2300, 0, 0, 0, 2300, 0, 0, 06118 2300, 0, 2302, 2302, 2302, 2302, 2303, 2303, 2303, 2303, 06119 06120 2300, 0, 2300, 2302, 0, 0, 0, 2303, 2305, 2305, 06121 2305, 2305, 0, 0, 0, 2305, 2302, 0, 0, 0, 06122 2303, 2306, 2306, 2306, 2306, 0, 0, 0, 2306, 0, 06123 2308, 2308, 2308, 2308, 2310, 2310, 2310, 2310, 2310, 0, 06124 0, 2310, 2311, 2311, 2311, 2311, 2302, 2312, 2312, 2312, 06125 2312, 0, 0, 2303, 2308, 0, 0, 0, 2310, 2322, 06126 2322, 2322, 2322, 0, 2312, 0, 2311, 2366, 2366, 2366, 06127 2366, 2312, 2337, 2337, 2337, 2337, 2367, 2367, 2367, 2367, 06128 2371, 0, 0, 2322, 0, 2371, 2374, 2374, 2374, 2374, 06129 0, 2366, 2371, 2371, 2371, 2371, 2371, 0, 2374, 0, 06130 06131 2367, 0, 2367, 0, 0, 2312, 2460, 2460, 2460, 2460, 06132 2374, 0, 2374, 0, 2310, 2321, 2321, 2321, 2321, 2372, 06133 0, 2321, 0, 2460, 2372, 2375, 2375, 2375, 2375, 0, 06134 2460, 2372, 2372, 2372, 2372, 2372, 0, 2375, 0, 2321, 06135 2380, 2380, 2380, 2380, 0, 2321, 0, 0, 0, 2375, 06136 2337, 2380, 2381, 2381, 2381, 2381, 0, 0, 0, 2321, 06137 0, 0, 0, 2381, 0, 2321, 0, 0, 2321, 2321, 06138 0, 2321, 2321, 2321, 2460, 0, 0, 2321, 2321, 2321, 06139 2321, 2321, 0, 2321, 0, 2321, 2321, 2321, 2321, 2321, 06140 2382, 2382, 2382, 2382, 2383, 2383, 2383, 2383, 0, 0, 06141 06142 0, 2382, 0, 0, 0, 2383, 2385, 2385, 2385, 2385, 06143 2381, 2380, 2384, 2384, 2384, 2384, 0, 2385, 2386, 2386, 06144 2386, 2386, 0, 2384, 2387, 2387, 2387, 2387, 0, 2386, 06145 2388, 2388, 2388, 2388, 0, 2387, 2466, 2466, 2466, 2466, 06146 2548, 2548, 2548, 2548, 2389, 2389, 2389, 2389, 2390, 2390, 06147 2390, 2390, 0, 0, 2388, 0, 2388, 0, 0, 0, 06148 2382, 2383, 0, 0, 2385, 2388, 2384, 0, 2389, 0, 06149 2389, 0, 2390, 2385, 2390, 2391, 2391, 2391, 2391, 0, 06150 2386, 2392, 2392, 2392, 2392, 0, 2387, 2389, 0, 2390, 06151 2393, 2393, 2393, 2393, 2394, 2394, 2394, 2394, 2466, 2391, 06152 06153 0, 2391, 0, 0, 0, 2392, 0, 2392, 2395, 2395, 06154 2395, 2395, 0, 0, 2393, 0, 2393, 0, 2394, 0, 06155 2394, 2396, 2396, 2396, 2396, 2397, 2397, 2397, 2397, 0, 06156 0, 0, 2395, 0, 2395, 2392, 0, 0, 0, 2391, 06157 2399, 2399, 2399, 2399, 0, 2396, 0, 2396, 0, 2397, 06158 0, 2397, 2402, 2402, 2402, 2402, 2404, 2404, 2404, 2404, 06159 2405, 2405, 2405, 2405, 2399, 2394, 2399, 0, 2393, 2406, 06160 2406, 2406, 2406, 0, 0, 0, 2402, 0, 2402, 2396, 06161 2404, 0, 2404, 0, 2405, 0, 2405, 2407, 2407, 2407, 06162 2407, 2397, 0, 2406, 0, 2406, 0, 0, 2408, 2408, 06163 06164 2408, 2408, 2409, 2409, 2409, 2409, 0, 0, 2402, 0, 06165 0, 2407, 0, 2407, 2410, 2410, 2410, 2410, 2411, 2411, 06166 2411, 2411, 2408, 2402, 2408, 2406, 2409, 0, 2409, 0, 06167 0, 0, 2405, 2412, 2412, 2412, 2412, 0, 2410, 0, 06168 2410, 0, 2411, 0, 2411, 0, 2413, 2413, 2413, 2413, 06169 0, 0, 0, 2407, 0, 2408, 0, 2412, 0, 2412, 06170 2550, 2550, 2550, 2550, 2409, 0, 2414, 2414, 2414, 2414, 06171 2413, 2410, 2413, 2415, 2415, 2415, 2415, 0, 2416, 2416, 06172 2416, 2416, 0, 0, 2411, 2418, 2418, 2418, 2418, 0, 06173 2414, 2412, 2414, 2417, 2417, 2417, 2417, 2415, 0, 2415, 06174 06175 0, 0, 2416, 0, 2416, 2413, 0, 0, 0, 2418, 06176 0, 2418, 2413, 2419, 2419, 2419, 2419, 2417, 0, 2417, 06177 2420, 2420, 2420, 2420, 2421, 2421, 2421, 2421, 2422, 2422, 06178 2422, 2422, 0, 0, 2414, 2416, 0, 2419, 0, 2419, 06179 0, 0, 0, 2415, 2420, 0, 2420, 0, 2421, 2418, 06180 2421, 2417, 2422, 0, 2422, 0, 2423, 2423, 2423, 2423, 06181 0, 2426, 2426, 2426, 2426, 2427, 2427, 2427, 2427, 2428, 06182 2428, 2428, 2428, 2429, 2429, 2429, 2429, 0, 0, 0, 06183 2423, 2419, 2423, 0, 2422, 2426, 0, 2426, 0, 2427, 06184 0, 2427, 2420, 2428, 2421, 2428, 0, 2429, 0, 2429, 06185 06186 2430, 2430, 2430, 2430, 2431, 2431, 2431, 2431, 2433, 2433, 06187 2433, 2433, 2423, 2432, 2432, 2432, 2432, 2434, 2434, 2434, 06188 2434, 0, 0, 0, 2430, 2428, 2430, 0, 2431, 2427, 06189 2431, 2426, 2433, 0, 2433, 0, 0, 2432, 0, 2432, 06190 0, 2434, 0, 2434, 0, 2429, 2435, 2435, 2435, 2435, 06191 2436, 2436, 2436, 2436, 2430, 2437, 2437, 2437, 2437, 0, 06192 0, 0, 2431, 2564, 2564, 2564, 2564, 2432, 0, 0, 06193 2435, 0, 2435, 0, 2436, 0, 2436, 0, 0, 2437, 06194 0, 2437, 2451, 2451, 2451, 2451, 2433, 2453, 2453, 2453, 06195 2453, 0, 0, 2451, 2489, 2489, 2489, 2489, 2453, 0, 06196 06197 0, 2489, 0, 0, 2436, 0, 0, 2489, 2541, 2541, 06198 2541, 2541, 2542, 2542, 2542, 2542, 0, 2437, 2435, 2541, 06199 0, 0, 0, 2542, 2544, 2544, 2544, 2544, 2544, 0, 06200 0, 2544, 2541, 0, 0, 0, 2542, 2545, 2545, 2545, 06201 2545, 2551, 2551, 2551, 2551, 0, 0, 0, 2544, 2562, 06202 2562, 2562, 2562, 2451, 2545, 2566, 2566, 2566, 2566, 0, 06203 0, 2545, 0, 0, 2541, 2551, 2567, 2567, 2567, 2567, 06204 2589, 2589, 2589, 2589, 2594, 2594, 2594, 2594, 0, 0, 06205 0, 2594, 0, 2594, 0, 0, 0, 2594, 0, 0, 06206 2542, 2596, 2596, 2596, 2596, 2597, 2597, 2597, 2597, 0, 06207 06208 0, 0, 2545, 0, 2544, 0, 0, 2597, 0, 0, 06209 0, 2566, 0, 0, 0, 2596, 0, 0, 0, 2597, 06210 0, 2597, 2599, 2599, 2599, 2599, 2566, 2562, 2600, 2600, 06211 2600, 2600, 0, 2599, 0, 2601, 2601, 2601, 2601, 2600, 06212 2602, 2602, 2602, 2602, 0, 0, 2601, 0, 2589, 0, 06213 0, 2602, 2603, 2603, 2603, 2603, 2604, 2604, 2604, 2604, 06214 0, 0, 0, 2603, 0, 0, 0, 2604, 0, 2605, 06215 2605, 2605, 2605, 2606, 2606, 2606, 2606, 0, 0, 0, 06216 2605, 0, 0, 0, 2606, 2607, 2607, 2607, 2607, 2608, 06217 2608, 2608, 2608, 2600, 2601, 0, 2607, 2609, 2609, 2609, 06218 06219 2609, 0, 2610, 2610, 2610, 2610, 2602, 2659, 2659, 2659, 06220 2659, 0, 2604, 2608, 0, 2608, 2611, 2611, 2611, 2611, 06221 0, 2609, 2608, 2609, 2603, 2605, 2610, 0, 2610, 2606, 06222 0, 0, 2609, 2610, 2612, 2612, 2612, 2612, 0, 0, 06223 2611, 0, 2611, 2613, 2613, 2613, 2613, 2615, 2615, 2615, 06224 2615, 2616, 2616, 2616, 2616, 2607, 0, 0, 2612, 0, 06225 2612, 2617, 2617, 2617, 2617, 0, 0, 2613, 0, 2613, 06226 0, 2615, 2617, 2615, 0, 2616, 0, 2616, 2611, 2618, 06227 2618, 2618, 2618, 0, 0, 2617, 0, 2617, 0, 0, 06228 2612, 2621, 2621, 2621, 2621, 2622, 2622, 2622, 2622, 0, 06229 06230 0, 2616, 0, 2618, 0, 2618, 0, 2616, 0, 2616, 06231 2623, 2623, 2623, 2623, 0, 2621, 0, 2621, 2615, 2622, 06232 0, 2622, 2616, 0, 2616, 0, 2624, 2624, 2624, 2624, 06233 0, 2624, 0, 0, 2623, 0, 2623, 2625, 2625, 2625, 06234 2625, 2626, 2626, 2626, 2626, 2627, 2627, 2627, 2627, 0, 06235 2624, 2618, 2624, 2628, 2628, 2628, 2628, 2622, 0, 0, 06236 0, 2625, 0, 2625, 0, 2626, 0, 2626, 0, 2627, 06237 0, 2627, 2623, 2666, 2666, 2666, 2666, 2628, 0, 2628, 06238 2629, 2629, 2629, 2629, 2630, 2630, 2630, 2630, 2631, 2631, 06239 2631, 2631, 2632, 2632, 2632, 2632, 0, 2626, 2633, 2633, 06240 06241 2633, 2633, 0, 2627, 2629, 0, 2629, 0, 2630, 0, 06242 2630, 0, 2631, 0, 2631, 0, 2632, 2628, 2632, 0, 06243 0, 0, 2633, 0, 2633, 2634, 2634, 2634, 2634, 2635, 06244 2635, 2635, 2635, 2636, 2636, 2636, 2636, 0, 2630, 0, 06245 0, 0, 2631, 2637, 2637, 2637, 2637, 0, 0, 2634, 06246 0, 2634, 0, 2635, 0, 2635, 0, 2636, 0, 2636, 06247 2638, 2638, 2638, 2638, 0, 0, 0, 2637, 0, 2637, 06248 2669, 2669, 2669, 2669, 0, 2633, 2639, 2639, 2639, 2639, 06249 2640, 2640, 2640, 2640, 2638, 0, 2638, 2641, 2641, 2641, 06250 2641, 2636, 2668, 2668, 2668, 2668, 2634, 2637, 0, 0, 06251 06252 2639, 0, 2639, 2668, 2640, 0, 2640, 2672, 2672, 2672, 06253 2672, 2641, 0, 2641, 2644, 2644, 2644, 2644, 2638, 2645, 06254 2645, 2645, 2645, 2646, 2646, 2646, 2646, 2647, 2647, 2647, 06255 2647, 2641, 0, 2670, 2670, 2670, 2670, 0, 2644, 0, 06256 2644, 0, 0, 2645, 2670, 2645, 0, 2646, 2639, 2646, 06257 0, 2647, 2640, 2647, 2648, 2648, 2648, 2648, 2641, 2649, 06258 2649, 2649, 2649, 2650, 2650, 2650, 2650, 2651, 2651, 2651, 06259 2651, 0, 2644, 2653, 2653, 2653, 2653, 0, 2648, 0, 06260 2648, 0, 0, 2649, 0, 2649, 0, 2650, 0, 2650, 06261 2645, 2651, 0, 2651, 0, 0, 0, 2653, 0, 2653, 06262 06263 0, 2654, 2654, 2654, 2654, 2647, 2655, 2655, 2655, 2655, 06264 2656, 2656, 2656, 2656, 2657, 2657, 2657, 2657, 2649, 0, 06265 2663, 2663, 2663, 2663, 0, 2654, 2648, 2654, 2650, 0, 06266 2655, 2663, 2655, 0, 2656, 0, 2656, 0, 2657, 0, 06267 2657, 2675, 2675, 2675, 2675, 2677, 2677, 2677, 2677, 2728, 06268 2728, 2728, 2728, 2729, 2729, 2729, 2729, 2654, 2675, 0, 06269 2728, 0, 0, 0, 2729, 2675, 0, 0, 2732, 2732, 06270 2732, 2732, 2654, 2728, 2656, 0, 0, 2729, 2657, 2733, 06271 2733, 2733, 2733, 2655, 0, 2732, 2735, 2735, 2735, 2735, 06272 0, 2663, 2732, 0, 0, 2675, 2736, 2736, 2736, 2736, 06273 06274 2737, 2737, 2737, 2737, 2738, 2738, 2738, 2738, 0, 2677, 06275 2750, 2750, 2750, 2750, 2752, 2752, 2752, 2752, 0, 0, 06276 0, 2728, 2754, 2754, 2754, 2754, 2732, 0, 2738, 0, 06277 0, 2729, 2757, 2757, 2757, 2757, 2759, 2759, 2759, 2759, 06278 0, 2762, 2762, 2762, 2762, 2765, 2765, 2765, 2765, 2771, 06279 2771, 2771, 2771, 2773, 2773, 2773, 2773, 2774, 2774, 2774, 06280 2774, 0, 0, 0, 2752, 2762, 2777, 2777, 2777, 2777, 06281 2752, 0, 2752, 2771, 0, 2783, 2783, 2783, 2783, 0, 06282 2784, 2784, 2784, 2784, 0, 2752, 2783, 2752, 0, 0, 06283 0, 2784, 0, 2771, 2785, 2785, 2785, 2785, 2786, 2786, 06284 06285 2786, 2786, 0, 0, 0, 2785, 0, 0, 0, 2786, 06286 2787, 2787, 2787, 2787, 2788, 2788, 2788, 2788, 0, 0, 06287 2771, 2787, 0, 0, 0, 2788, 2789, 2789, 2789, 2789, 06288 0, 0, 0, 2783, 2784, 2774, 0, 2789, 2790, 2790, 06289 2790, 2790, 2791, 2791, 2791, 2791, 0, 0, 2785, 2790, 06290 2792, 2792, 2792, 2792, 0, 0, 2786, 0, 0, 2793, 06291 2793, 2793, 2793, 0, 0, 0, 2791, 0, 2791, 0, 06292 2816, 2816, 2816, 2816, 2792, 0, 2792, 2794, 2794, 2794, 06293 2794, 2788, 2787, 2793, 0, 2793, 0, 0, 0, 2791, 06294 2795, 2795, 2795, 2795, 2816, 2792, 2790, 0, 0, 2793, 06295 06296 0, 2794, 0, 2794, 2796, 2796, 2796, 2796, 2799, 2799, 06297 2799, 2799, 0, 0, 2795, 0, 2795, 0, 0, 2799, 06298 0, 2800, 2800, 2800, 2800, 0, 2800, 0, 2796, 0, 06299 2796, 2800, 2799, 0, 2799, 2801, 2801, 2801, 2801, 2804, 06300 2804, 2804, 2804, 2805, 2805, 2805, 2805, 0, 2794, 2806, 06301 2806, 2806, 2806, 0, 2806, 2808, 2808, 2808, 2808, 2801, 06302 0, 2801, 2795, 2804, 0, 2804, 0, 2805, 0, 2805, 06303 0, 0, 0, 2806, 0, 2806, 0, 0, 0, 2808, 06304 0, 2808, 0, 2809, 2809, 2809, 2809, 0, 2811, 2811, 06305 2811, 2811, 0, 2801, 2812, 2812, 2812, 2812, 0, 2813, 06306 06307 2813, 2813, 2813, 0, 0, 0, 2804, 2809, 0, 2809, 06308 0, 2808, 2811, 0, 2811, 2805, 0, 0, 2812, 0, 06309 2812, 0, 0, 2813, 0, 2813, 2808, 0, 2808, 2810, 06310 2810, 2810, 2810, 2810, 2810, 2810, 2810, 2810, 2810, 2810, 06311 2810, 2810, 2810, 2810, 2810, 2810, 2810, 2810, 2810, 2814, 06312 2814, 2814, 2814, 0, 2810, 2813, 2810, 2810, 2810, 2810, 06313 2810, 2815, 2815, 2815, 2815, 2811, 2817, 2817, 2817, 2817, 06314 0, 0, 0, 2814, 0, 2814, 2818, 2818, 2818, 2818, 06315 2810, 2810, 2810, 2810, 0, 2815, 0, 2815, 0, 0, 06316 2817, 0, 2817, 2819, 2819, 2819, 2819, 0, 0, 0, 06317 06318 2818, 0, 2818, 2820, 2820, 2820, 2820, 0, 2810, 2810, 06319 2810, 0, 0, 2814, 0, 0, 0, 2819, 0, 2819, 06320 2821, 2821, 2821, 2821, 0, 0, 0, 2820, 0, 2820, 06321 2822, 2822, 2822, 2822, 2823, 2823, 2823, 2823, 0, 2824, 06322 2824, 2824, 2824, 0, 2821, 0, 2821, 2825, 2825, 2825, 06323 2825, 0, 0, 0, 2822, 0, 2822, 0, 2823, 0, 06324 2823, 0, 0, 2824, 0, 2824, 2826, 2826, 2826, 2826, 06325 0, 2825, 0, 2825, 2822, 0, 2821, 0, 2827, 2827, 06326 2827, 2827, 2828, 2828, 2828, 2828, 2832, 2832, 2832, 2832, 06327 2826, 2825, 2846, 2846, 2846, 2846, 2823, 2824, 0, 0, 06328 06329 0, 2822, 2827, 2846, 2827, 0, 2828, 0, 2828, 0, 06330 2832, 2823, 2832, 2833, 2833, 2833, 2833, 0, 2825, 2834, 06331 2834, 2834, 2834, 2836, 2836, 2836, 2836, 2837, 2837, 2837, 06332 2837, 2827, 2838, 2838, 2838, 2838, 0, 2833, 0, 2833, 06333 0, 0, 0, 2834, 0, 2834, 2828, 2836, 0, 2836, 06334 0, 2837, 0, 2837, 0, 0, 2838, 0, 2838, 2841, 06335 2841, 2841, 2841, 2842, 2842, 2842, 2842, 2843, 2843, 2843, 06336 2843, 2847, 2847, 2847, 2847, 2848, 2848, 2848, 2848, 0, 06337 0, 2836, 0, 2841, 0, 2841, 0, 2842, 0, 2842, 06338 2838, 2843, 0, 2843, 2852, 2852, 2852, 2852, 2854, 2854, 06339 06340 2854, 2854, 0, 0, 0, 2852, 2855, 2855, 2855, 2855, 06341 0, 2858, 2858, 2858, 2858, 2859, 2859, 2859, 2859, 2902, 06342 2902, 2902, 2902, 0, 0, 2843, 0, 2841, 2858, 2903, 06343 2903, 2903, 2903, 0, 0, 2858, 2902, 2905, 2905, 2905, 06344 2905, 0, 0, 2902, 2906, 2906, 2906, 2906, 2907, 2907, 06345 2907, 2907, 2914, 2914, 2914, 2914, 2919, 2919, 2919, 2919, 06346 2923, 2923, 2923, 2923, 0, 0, 0, 2858, 2925, 2925, 06347 2925, 2925, 2907, 2859, 2928, 2928, 2928, 2928, 2929, 2929, 06348 2929, 2929, 0, 0, 0, 2902, 2930, 2930, 2930, 2930, 06349 2931, 2931, 2931, 2931, 2932, 2932, 2932, 2932, 2928, 2933, 06350 06351 2933, 2933, 2933, 2935, 2935, 2935, 2935, 2938, 2938, 2938, 06352 2938, 0, 0, 0, 2931, 2939, 2939, 2939, 2939, 2942, 06353 2942, 2942, 2942, 2943, 2943, 2943, 2943, 2935, 0, 0, 06354 0, 2938, 2944, 2944, 2944, 2944, 2945, 2945, 2945, 2945, 06355 0, 0, 0, 2942, 0, 0, 0, 2935, 0, 0, 06356 0, 2938, 2948, 2948, 2948, 2948, 2950, 2950, 2950, 2950, 06357 2951, 2951, 2951, 2951, 0, 0, 0, 2950, 0, 0, 06358 0, 2951, 0, 0, 2935, 0, 0, 0, 2938, 2952, 06359 2952, 2952, 2952, 2953, 2953, 2953, 2953, 0, 0, 0, 06360 2952, 0, 0, 0, 2953, 2954, 2954, 2954, 2954, 2955, 06361 06362 2955, 2955, 2955, 0, 0, 0, 2954, 0, 0, 0, 06363 2955, 0, 2956, 2956, 2956, 2956, 2951, 2957, 2957, 2957, 06364 2957, 0, 2950, 2956, 2958, 2958, 2958, 2958, 2957, 0, 06365 2959, 2959, 2959, 2959, 2960, 2960, 2960, 2960, 2961, 2961, 06366 2961, 2961, 0, 2952, 2962, 2962, 2962, 2962, 2958, 0, 06367 2958, 0, 0, 2954, 2959, 0, 2959, 0, 2960, 0, 06368 2960, 0, 2961, 2955, 2961, 0, 0, 0, 2962, 0, 06369 2962, 0, 0, 0, 2957, 0, 0, 2959, 0, 0, 06370 2960, 2963, 2963, 2963, 2963, 2965, 2965, 2965, 2965, 0, 06371 2965, 2967, 2967, 2967, 2967, 2965, 0, 0, 0, 2961, 06372 06373 2970, 2970, 2970, 2970, 0, 2963, 0, 2963, 2971, 2971, 06374 2971, 2971, 0, 0, 0, 2967, 0, 2967, 2976, 2976, 06375 2976, 2976, 0, 0, 2970, 0, 2970, 2978, 2978, 2978, 06376 2978, 0, 2971, 0, 2971, 0, 2979, 2979, 2979, 2979, 06377 0, 0, 2976, 0, 2976, 2980, 2980, 2980, 2980, 0, 06378 0, 2978, 0, 2978, 2981, 2981, 2981, 2981, 0, 0, 06379 2979, 2967, 2979, 0, 0, 0, 2970, 0, 0, 2980, 06380 0, 2980, 2982, 2982, 2982, 2982, 0, 0, 2981, 0, 06381 2981, 2983, 2983, 2983, 2983, 2984, 2984, 2984, 2984, 2985, 06382 2985, 2985, 2985, 0, 2978, 2986, 2986, 2986, 2986, 2987, 06383 06384 2987, 2987, 2987, 2980, 0, 2983, 0, 2983, 0, 2984, 06385 0, 2984, 0, 2985, 0, 2985, 0, 0, 0, 2986, 06386 0, 2986, 0, 2987, 0, 2987, 2988, 2988, 2988, 2988, 06387 2989, 2989, 2989, 2989, 2990, 2990, 2990, 2990, 2991, 2991, 06388 2991, 2991, 0, 2987, 0, 2992, 2992, 2992, 2992, 0, 06389 2988, 0, 0, 2986, 2989, 0, 2989, 0, 2990, 0, 06390 2990, 0, 2991, 0, 2991, 2993, 2993, 2993, 2993, 2992, 06391 2987, 2992, 2994, 2994, 2994, 2994, 0, 2995, 2995, 2995, 06392 2995, 0, 0, 2989, 2996, 2996, 2996, 2996, 0, 2993, 06393 0, 2993, 2999, 2999, 2999, 2999, 2991, 0, 2990, 0, 06394 06395 0, 2995, 0, 2995, 3000, 3000, 3000, 3000, 2996, 0, 06396 2996, 3001, 3001, 3001, 3001, 0, 2999, 0, 2999, 0, 06397 0, 0, 2993, 2995, 3002, 3002, 3002, 3002, 3000, 0, 06398 3000, 3003, 3003, 3003, 3003, 3001, 3006, 3006, 3006, 3006, 06399 3007, 3007, 3007, 3007, 3011, 3011, 3011, 3011, 3002, 0, 06400 3002, 2996, 0, 0, 0, 3003, 0, 3003, 0, 2999, 06401 3006, 0, 3006, 0, 3007, 0, 3007, 3012, 3012, 3012, 06402 3012, 0, 0, 0, 3002, 3013, 3013, 3013, 3013, 0, 06403 3002, 0, 3002, 3015, 3015, 3015, 3015, 3030, 3030, 3030, 06404 3030, 0, 0, 0, 3006, 3002, 0, 3002, 3002, 0, 06405 06406 3015, 3048, 3048, 3048, 3048, 0, 0, 3015, 3049, 3049, 06407 3049, 3049, 3050, 3050, 3050, 3050, 0, 0, 3048, 3051, 06408 3051, 3051, 3051, 0, 0, 3048, 3055, 3055, 3055, 3055, 06409 3058, 3058, 3058, 3058, 3062, 3062, 3062, 3062, 0, 0, 06410 0, 3015, 0, 3051, 3063, 3063, 3063, 3063, 3066, 3066, 06411 3066, 3066, 3067, 3067, 3067, 3067, 3069, 3069, 3069, 3069, 06412 3070, 3070, 3070, 3070, 3071, 3071, 3071, 3071, 3072, 3072, 06413 3072, 3072, 0, 3048, 3074, 3074, 3074, 3074, 0, 0, 06414 3069, 3075, 3075, 3075, 3075, 0, 0, 0, 3071, 3079, 06415 3079, 3079, 3079, 3083, 3083, 3083, 3083, 0, 3074, 3084, 06416 06417 3084, 3084, 3084, 3085, 3085, 3085, 3085, 3086, 3086, 3086, 06418 3086, 3088, 3088, 3088, 3088, 0, 0, 3083, 3074, 3089, 06419 3089, 3089, 3089, 3090, 3090, 3090, 3090, 0, 0, 0, 06420 3089, 0, 0, 0, 3090, 3091, 3091, 3091, 3091, 3092, 06421 3092, 3092, 3092, 0, 0, 3074, 3091, 0, 0, 0, 06422 3092, 0, 0, 3085, 3093, 3093, 3093, 3093, 0, 3085, 06423 0, 3085, 0, 0, 0, 3093, 0, 3094, 3094, 3094, 06424 3094, 0, 0, 0, 3085, 0, 3085, 3085, 3094, 0, 06425 0, 3090, 3095, 3095, 3095, 3095, 3096, 3096, 3096, 3096, 06426 0, 3089, 0, 3095, 3097, 3097, 3097, 3097, 3098, 3098, 06427 06428 3098, 3098, 3099, 3099, 3099, 3099, 3102, 3102, 3102, 3102, 06429 3096, 3093, 3096, 3103, 3103, 3103, 3103, 0, 3097, 0, 06430 3097, 0, 3098, 0, 3098, 0, 3099, 0, 3099, 0, 06431 3102, 0, 3102, 0, 0, 3096, 0, 3103, 0, 3103, 06432 3104, 3104, 3104, 3104, 3110, 3110, 3110, 3110, 3111, 3111, 06433 3111, 3111, 3097, 3112, 3112, 3112, 3112, 3113, 3113, 3113, 06434 3113, 3099, 3114, 3114, 3114, 3114, 0, 0, 3110, 0, 06435 3110, 0, 3111, 0, 3111, 0, 0, 3112, 0, 3112, 06436 0, 3113, 0, 3113, 0, 0, 3114, 3116, 3116, 3116, 06437 3116, 3118, 3118, 3118, 3118, 3124, 3124, 3124, 3124, 3127, 06438 06439 3127, 3127, 3127, 3134, 3134, 3134, 3134, 0, 0, 0, 06440 3110, 3135, 3135, 3135, 3135, 3118, 0, 3118, 3104, 3115, 06441 3115, 3115, 3115, 3115, 3115, 3115, 3115, 3115, 3115, 3115, 06442 3115, 3115, 3115, 3115, 3115, 3115, 3115, 3115, 3115, 3117, 06443 3117, 3117, 3117, 0, 3115, 3115, 3115, 3115, 3115, 3115, 06444 3115, 3119, 3119, 3119, 3119, 0, 0, 0, 3118, 3136, 06445 3136, 3136, 3136, 3117, 0, 3117, 3120, 3120, 3120, 3120, 06446 3115, 3115, 3115, 3124, 0, 3119, 0, 3119, 0, 3121, 06447 3121, 3121, 3121, 0, 0, 3117, 3122, 3122, 3122, 3122, 06448 3120, 0, 3120, 3123, 3123, 3123, 3123, 0, 3115, 3115, 06449 06450 3115, 0, 0, 3121, 0, 3121, 3126, 3126, 3126, 3126, 06451 3122, 0, 3122, 3130, 3130, 3130, 3130, 3123, 0, 3123, 06452 0, 0, 3119, 3121, 0, 0, 3122, 0, 0, 0, 06453 3126, 0, 3126, 3133, 3133, 3133, 3133, 3130, 0, 3130, 06454 3137, 3137, 3137, 3137, 3138, 3138, 3138, 3138, 0, 0, 06455 3121, 3139, 3139, 3139, 3139, 0, 0, 3133, 0, 3133, 06456 3140, 3140, 3140, 3140, 0, 3123, 3141, 3141, 3141, 3141, 06457 0, 0, 3126, 3150, 3150, 3150, 3150, 3164, 3164, 3164, 06458 3164, 0, 0, 3141, 3165, 3165, 3165, 3165, 0, 0, 06459 3141, 0, 0, 0, 3164, 3166, 3166, 3166, 3166, 0, 06460 06461 0, 3164, 3167, 3167, 3167, 3167, 3170, 3170, 3170, 3170, 06462 3171, 3171, 3171, 3171, 3173, 3173, 3173, 3173, 3174, 3174, 06463 3174, 3174, 3176, 3176, 3176, 3176, 3167, 3178, 3178, 3178, 06464 3178, 3179, 3179, 3179, 3179, 3180, 3180, 3180, 3180, 3181, 06465 3181, 3181, 3181, 3182, 3182, 3182, 3182, 0, 3164, 3183, 06466 3183, 3183, 3183, 3184, 3184, 3184, 3184, 3188, 3188, 3188, 06467 3188, 3189, 3189, 3189, 3189, 0, 0, 3182, 3192, 3192, 06468 3192, 3192, 3193, 3193, 3193, 3193, 3194, 3194, 3194, 3194, 06469 3195, 3195, 3195, 3195, 0, 3189, 0, 3194, 0, 0, 06470 0, 3195, 3196, 3196, 3196, 3196, 3197, 3197, 3197, 3197, 06471 06472 0, 0, 0, 3196, 0, 3189, 0, 3197, 3198, 3198, 06473 3198, 3198, 3199, 3199, 3199, 3199, 0, 0, 0, 3198, 06474 0, 0, 0, 3199, 3200, 3200, 3200, 3200, 0, 0, 06475 3194, 0, 3189, 3201, 3201, 3201, 3201, 3202, 3202, 3202, 06476 3202, 3203, 3203, 3203, 3203, 0, 0, 0, 3200, 0, 06477 3200, 3205, 3205, 3205, 3205, 0, 0, 3201, 0, 3201, 06478 0, 3202, 0, 3202, 3206, 3206, 3206, 3206, 3212, 3212, 06479 3212, 3212, 0, 0, 0, 3205, 0, 3205, 3213, 3213, 06480 3213, 3213, 3214, 3214, 3214, 3214, 3215, 3215, 3215, 3215, 06481 3201, 3202, 3212, 0, 3212, 0, 3220, 3220, 3220, 3220, 06482 06483 0, 0, 3213, 0, 3213, 0, 3214, 0, 3214, 3222, 06484 3222, 3222, 3222, 3224, 3224, 3224, 3224, 0, 0, 3203, 06485 3220, 0, 3220, 0, 3212, 3225, 3225, 3225, 3225, 3229, 06486 3229, 3229, 3229, 3222, 0, 3222, 3220, 3224, 3214, 0, 06487 0, 0, 3206, 3236, 3236, 3236, 3236, 0, 0, 3225, 06488 0, 3225, 0, 3214, 3217, 3217, 3217, 3217, 3217, 3217, 06489 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 06490 3217, 3217, 3217, 3217, 3256, 3256, 3256, 3256, 3225, 3217, 06491 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 06492 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 06493 06494 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 06495 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 06496 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 3217, 06497 3217, 3217, 3217, 3217, 3217, 3217, 3221, 3221, 3221, 3221, 06498 3223, 3223, 3223, 3223, 0, 3226, 3226, 3226, 3226, 3227, 06499 3227, 3227, 3227, 3228, 3228, 3228, 3228, 0, 0, 0, 06500 3221, 0, 3221, 0, 3223, 0, 3223, 0, 0, 3226, 06501 0, 3226, 0, 3227, 0, 3227, 0, 3228, 0, 3228, 06502 3231, 3231, 3231, 3231, 3223, 0, 3232, 3232, 3232, 3232, 06503 0, 3227, 3257, 3257, 3257, 3257, 3237, 3237, 3237, 3237, 06504 06505 0, 3255, 3255, 3255, 3255, 0, 0, 0, 3221, 3226, 06506 3232, 3223, 3232, 3237, 0, 0, 3257, 0, 3255, 0, 06507 3237, 0, 0, 0, 3228, 3255, 3259, 3259, 3259, 3259, 06508 3260, 3260, 3260, 3260, 3261, 3261, 3261, 3261, 3262, 3262, 06509 3262, 3262, 3232, 3263, 3263, 3263, 3263, 3266, 3266, 3266, 06510 3266, 3267, 3267, 3267, 3267, 0, 0, 0, 3231, 3268, 06511 3268, 3268, 3268, 3269, 3269, 3269, 3269, 3272, 3272, 3272, 06512 3272, 0, 3273, 3273, 3273, 3273, 3274, 3274, 3274, 3274, 06513 0, 3279, 3279, 3279, 3279, 0, 3280, 3280, 3280, 3280, 06514 0, 3272, 3279, 0, 0, 0, 3273, 3280, 3281, 3281, 06515 06516 3281, 3281, 3282, 3282, 3282, 3282, 0, 0, 0, 3281, 06517 3283, 3283, 3283, 3283, 0, 3268, 3273, 0, 3287, 3287, 06518 3287, 3287, 3291, 3291, 3291, 3291, 3282, 0, 3282, 0, 06519 3268, 3292, 3292, 3292, 3292, 3293, 3293, 3293, 3293, 0, 06520 0, 0, 3287, 3273, 3287, 3294, 3294, 3294, 3294, 3291, 06521 0, 0, 0, 3279, 0, 3292, 0, 3292, 3282, 3293, 06522 0, 3293, 3295, 3295, 3295, 3295, 0, 0, 0, 3294, 06523 0, 3294, 0, 3292, 0, 0, 3287, 3296, 3296, 3296, 06524 3296, 3297, 3297, 3297, 3297, 0, 3295, 3298, 3298, 3298, 06525 3298, 3299, 3299, 3299, 3299, 3300, 3300, 3300, 3300, 3301, 06526 06527 3301, 3301, 3301, 0, 0, 3297, 3293, 3297, 0, 0, 06528 0, 3298, 0, 3298, 0, 3299, 0, 3299, 0, 3300, 06529 0, 3300, 3303, 3303, 3303, 3303, 0, 3297, 3304, 3304, 06530 3304, 3304, 3315, 3315, 3315, 3315, 0, 0, 3299, 3316, 06531 3316, 3316, 3316, 0, 0, 0, 3303, 0, 3303, 3317, 06532 3317, 3317, 3317, 0, 3298, 0, 3315, 3319, 3319, 3319, 06533 3319, 3320, 3320, 3320, 3320, 3324, 3324, 3324, 3324, 3325, 06534 3325, 3325, 3325, 3317, 3329, 3329, 3329, 3329, 0, 0, 06535 3303, 3330, 3330, 3330, 3330, 3332, 3332, 3332, 3332, 3324, 06536 0, 0, 3330, 3331, 3331, 3331, 3331, 0, 3329, 3336, 06537 06538 3336, 3336, 3336, 0, 0, 0, 3304, 3337, 3337, 3337, 06539 3337, 3339, 3339, 3339, 3339, 0, 0, 3331, 0, 3331, 06540 3340, 3340, 3340, 3340, 0, 0, 3336, 3341, 3341, 3341, 06541 3341, 0, 0, 0, 3337, 3339, 0, 3339, 3342, 3342, 06542 3342, 3342, 0, 3330, 3340, 0, 3340, 3343, 3343, 3343, 06543 3343, 3331, 0, 3344, 3344, 3344, 3344, 0, 3339, 0, 06544 0, 0, 3342, 0, 3342, 3345, 3345, 3345, 3345, 0, 06545 0, 3343, 0, 3343, 0, 0, 0, 3344, 3342, 3344, 06546 3346, 3346, 3346, 3346, 3347, 3347, 3347, 3347, 0, 3345, 06547 0, 3345, 3349, 3349, 3349, 3349, 0, 0, 0, 3344, 06548 06549 3356, 3356, 3356, 3356, 3346, 3357, 3357, 3357, 3357, 3361, 06550 3361, 3361, 3361, 3365, 3365, 3365, 3365, 0, 0, 3343, 06551 3366, 3366, 3366, 3366, 3367, 3367, 3367, 3367, 0, 3357, 06552 0, 0, 0, 3361, 0, 3367, 0, 3365, 3368, 3368, 06553 3368, 3368, 3371, 3371, 3371, 3371, 0, 3372, 3372, 3372, 06554 3372, 3373, 3373, 3373, 3373, 3374, 3374, 3374, 3374, 3375, 06555 3375, 3375, 3375, 0, 0, 0, 3371, 0, 3371, 0, 06556 3349, 3372, 0, 3372, 0, 3373, 0, 0, 0, 3374, 06557 0, 3374, 0, 3375, 0, 3375, 0, 0, 3371, 0, 06558 0, 3367, 3376, 3376, 3376, 3376, 0, 3374, 3377, 3377, 06559 06560 3377, 3377, 3381, 3381, 3381, 3381, 0, 3382, 3382, 3382, 06561 3382, 3385, 3385, 3385, 3385, 3386, 3386, 3386, 3386, 0, 06562 0, 3389, 3389, 3389, 3389, 3392, 3392, 3392, 3392, 0, 06563 3375, 3382, 3389, 0, 0, 3385, 3393, 3393, 3393, 3393, 06564 3394, 3394, 3394, 3394, 3395, 3395, 3395, 3395, 3396, 3396, 06565 3396, 3396, 3399, 3399, 3399, 3399, 3400, 3400, 3400, 3400, 06566 3393, 0, 3393, 0, 3394, 0, 3394, 3400, 3401, 3401, 06567 3401, 3401, 3396, 0, 0, 0, 3399, 3403, 3403, 3403, 06568 3403, 0, 0, 3393, 0, 0, 0, 3389, 3404, 3404, 06569 3404, 3404, 3405, 3405, 3405, 3405, 3406, 3406, 3406, 3406, 06570 06571 0, 3403, 0, 3403, 3407, 3407, 3407, 3407, 3408, 3408, 06572 3408, 3408, 3404, 0, 3404, 0, 3405, 3410, 3410, 3410, 06573 3410, 0, 0, 3403, 3411, 3411, 3411, 3411, 3407, 3412, 06574 3412, 3412, 3412, 3413, 3413, 3413, 3413, 0, 0, 0, 06575 3412, 3410, 3415, 3415, 3415, 3415, 3401, 3416, 3416, 3416, 06576 3416, 3417, 3417, 3417, 3417, 3418, 3418, 3418, 3418, 3419, 06577 3419, 3419, 3419, 3420, 3420, 3420, 3420, 3422, 3422, 3422, 06578 3422, 3423, 3423, 3423, 3423, 3424, 3424, 3424, 3424, 3418, 06579 3425, 3425, 3425, 3425, 3426, 3426, 3426, 3426, 3427, 3427, 06580 3427, 3427, 0, 0, 0, 3423, 3428, 3428, 3428, 3428, 06581 06582 3429, 3429, 3429, 3429, 3425, 3430, 3430, 3430, 3430, 0, 06583 0, 0, 3427, 3431, 3431, 3431, 3431, 0, 0, 0, 06584 3415, 0, 0, 0, 3429, 3432, 3432, 3432, 3432, 3433, 06585 3433, 3433, 3433, 3434, 3434, 3434, 3434, 3431, 3435, 3435, 06586 3435, 3435, 3436, 3436, 3436, 3436, 3437, 3437, 3437, 3437, 06587 0, 0, 0, 3433, 3438, 3438, 3438, 3438, 3439, 3439, 06588 3439, 3439, 3435, 3440, 3440, 3440, 3440, 0, 0, 0, 06589 3437, 3441, 3441, 3441, 3441, 3442, 3442, 3442, 3442, 0, 06590 0, 0, 3439, 3443, 3443, 3443, 3443, 3444, 3444, 3444, 06591 3444, 3445, 3445, 3445, 3445, 3441, 3446, 3446, 3446, 3446, 06592 06593 3447, 3447, 3447, 3447, 0, 0, 0, 3443, 3448, 3448, 06594 3448, 3448, 0, 0, 0, 3445, 3449, 3449, 3449, 3449, 06595 3450, 3450, 3450, 3450, 3447, 3451, 3451, 3451, 3451, 3452, 06596 3452, 3452, 3452, 3453, 3453, 3453, 3453, 0, 0, 0, 06597 3449, 3454, 3454, 3454, 3454, 3455, 3455, 3455, 3455, 3451, 06598 3456, 3456, 3456, 3456, 0, 0, 0, 3453, 3457, 3457, 06599 3457, 3457, 3458, 3458, 3458, 3458, 0, 0, 0, 3455, 06600 3459, 3459, 3459, 3459, 3460, 3460, 3460, 3460, 3461, 3461, 06601 3461, 3461, 3457, 3462, 3462, 3462, 3462, 3463, 3463, 3463, 06602 3463, 0, 0, 0, 3459, 3464, 3464, 3464, 3464, 0, 06603 06604 0, 0, 3461, 3465, 3465, 3465, 3465, 3466, 3466, 3466, 06605 3466, 3463, 3467, 3467, 3467, 3467, 3468, 3468, 3468, 3468, 06606 3469, 3469, 3469, 3469, 0, 0, 0, 3465, 3470, 3470, 06607 3470, 3470, 3471, 3471, 3471, 3471, 3467, 3472, 3472, 3472, 06608 3472, 0, 0, 0, 3469, 3473, 3473, 3473, 3473, 3474, 06609 3474, 3474, 3474, 0, 0, 0, 3471, 3475, 3475, 3475, 06610 3475, 3476, 3476, 3476, 3476, 3477, 3477, 3477, 3477, 3473, 06611 3478, 3478, 3478, 3478, 3479, 3479, 3479, 3479, 0, 0, 06612 0, 3475, 3480, 3480, 3480, 3480, 0, 0, 0, 3477, 06613 3481, 3481, 3481, 3481, 3482, 3482, 3482, 3482, 3479, 3483, 06614 06615 3483, 3483, 3483, 3484, 3484, 3484, 3484, 3485, 3485, 3485, 06616 3485, 0, 0, 0, 3481, 3486, 3486, 3486, 3486, 3487, 06617 3487, 3487, 3487, 3483, 3488, 3488, 3488, 3488, 0, 0, 06618 0, 3485, 3489, 3489, 3489, 3489, 3490, 3490, 3490, 3490, 06619 0, 0, 0, 3487, 3491, 3491, 3491, 3491, 3492, 3492, 06620 3492, 3492, 3493, 3493, 3493, 3493, 3489, 3494, 3494, 3494, 06621 3494, 3495, 3495, 3495, 3495, 0, 0, 0, 3491, 3496, 06622 3496, 3496, 3496, 0, 0, 0, 3493, 3497, 3497, 3497, 06623 3497, 3498, 3498, 3498, 3498, 3495, 3499, 3499, 3499, 3499, 06624 3500, 3500, 3500, 3500, 3501, 3501, 3501, 3501, 0, 0, 06625 06626 0, 3497, 3502, 3502, 3502, 3502, 3503, 3503, 3503, 3503, 06627 3499, 3504, 3504, 3504, 3504, 0, 0, 0, 3501, 3505, 06628 3505, 3505, 3505, 3506, 3506, 3506, 3506, 0, 0, 0, 06629 3503, 3507, 3507, 3507, 3507, 3508, 3508, 3508, 3508, 3509, 06630 3509, 3509, 3509, 3505, 3510, 3510, 3510, 3510, 3511, 3511, 06631 3511, 3511, 0, 0, 0, 3507, 3512, 3512, 3512, 3512, 06632 0, 0, 0, 3509, 3513, 3513, 3513, 3513, 3514, 3514, 06633 3514, 3514, 3511, 3515, 3515, 3515, 3515, 3516, 3516, 3516, 06634 3516, 3517, 3517, 3517, 3517, 0, 0, 0, 3513, 3518, 06635 3518, 3518, 3518, 3519, 3519, 3519, 3519, 3515, 3520, 3520, 06636 06637 3520, 3520, 0, 0, 0, 3517, 3521, 3521, 3521, 3521, 06638 3522, 3522, 3522, 3522, 0, 0, 0, 3519, 3523, 3523, 06639 3523, 3523, 3524, 3524, 3524, 3524, 3525, 3525, 3525, 3525, 06640 3521, 3526, 3526, 3526, 3526, 3527, 3527, 3527, 3527, 0, 06641 0, 0, 3523, 3528, 3528, 3528, 3528, 0, 0, 0, 06642 3525, 3529, 3529, 3529, 3529, 3530, 3530, 3530, 3530, 3527, 06643 3531, 3531, 3531, 3531, 3532, 3532, 3532, 3532, 3533, 3533, 06644 3533, 3533, 0, 0, 0, 3529, 3534, 3534, 3534, 3534, 06645 3535, 3535, 3535, 3535, 3531, 3536, 3536, 3536, 3536, 0, 06646 0, 0, 3533, 3537, 3537, 3537, 3537, 3538, 3538, 3538, 06647 06648 3538, 0, 0, 0, 3535, 3539, 3539, 3539, 3539, 3540, 06649 3540, 3540, 3540, 3541, 3541, 3541, 3541, 3537, 3542, 3542, 06650 3542, 3542, 3543, 3543, 3543, 3543, 0, 0, 0, 3539, 06651 3544, 3544, 3544, 3544, 0, 0, 0, 3541, 3545, 3545, 06652 3545, 3545, 3546, 3546, 3546, 3546, 3543, 3547, 3547, 3547, 06653 3547, 3548, 3548, 3548, 3548, 0, 0, 0, 0, 0, 06654 0, 0, 3545, 0, 0, 0, 0, 0, 0, 0, 06655 0, 3547, 3550, 3550, 3550, 3550, 3550, 3550, 3550, 3550, 06656 3550, 3550, 3550, 3550, 3550, 3550, 3550, 3550, 3550, 3550, 06657 3550, 3550, 3550, 3550, 3550, 3550, 3550, 3550, 3550, 3550, 06658 06659 3550, 3550, 3550, 3551, 3551, 3551, 3551, 3551, 3551, 3551, 06660 3551, 3551, 3551, 3551, 3551, 3551, 3551, 3551, 3551, 3551, 06661 3551, 3551, 3551, 3551, 3551, 3551, 3551, 3551, 3551, 3551, 06662 3551, 3551, 3551, 3551, 3552, 3552, 3552, 3552, 3552, 3552, 06663 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 06664 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 3552, 06665 3552, 3552, 3552, 3552, 3552, 3553, 3553, 3553, 3553, 3553, 06666 3553, 3553, 3553, 3553, 3553, 3553, 3553, 3553, 3553, 3553, 06667 3553, 3553, 3553, 3553, 3553, 3553, 3553, 3553, 3553, 3553, 06668 3553, 3553, 3553, 3553, 3553, 3553, 3554, 3554, 3554, 3554, 06669 06670 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 06671 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 06672 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3555, 3555, 3555, 06673 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 06674 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 06675 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3555, 3556, 3556, 06676 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 06677 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 06678 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3556, 3557, 06679 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 06680 06681 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 06682 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 3557, 06683 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 06684 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 06685 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 06686 3558, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 06687 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 06688 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 3559, 06689 3559, 3559, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 06690 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 06691 06692 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 06693 3560, 3560, 3560, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 06694 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 06695 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 06696 3561, 3561, 3561, 3561, 3562, 3562, 3562, 3562, 3562, 3562, 06697 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 06698 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 3562, 06699 3562, 3562, 3562, 3562, 3562, 3563, 3563, 3563, 3563, 3563, 06700 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 06701 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 06702 06703 3563, 3563, 3563, 3563, 3563, 3563, 3564, 3564, 3564, 3564, 06704 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 06705 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 06706 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3565, 3565, 3565, 06707 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 06708 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 06709 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3566, 3566, 06710 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 06711 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 06712 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3566, 3567, 06713 06714 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 06715 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 06716 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 3567, 06717 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 06718 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 06719 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 3568, 06720 3568, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 06721 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 06722 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 06723 3569, 3569, 3570, 3570, 3570, 3570, 3570, 3570, 3570, 3570, 06724 06725 3570, 3570, 3570, 3570, 3570, 3570, 3570, 3570, 3570, 3570, 06726 3570, 3570, 3570, 3570, 3570, 3570, 3570, 3570, 3570, 3570, 06727 3570, 3570, 3570, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 06728 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 06729 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 06730 3571, 3571, 3571, 3571, 3572, 3572, 3572, 3572, 3572, 3572, 06731 3572, 3572, 3572, 3572, 3572, 3572, 3572, 3572, 3572, 3572, 06732 3572, 3572, 3572, 3572, 3572, 3572, 3572, 3572, 3572, 3572, 06733 3572, 3572, 3572, 3572, 3572, 3573, 3573, 3573, 3573, 3573, 06734 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 06735 06736 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 06737 3573, 3573, 3573, 3573, 3573, 3573, 3574, 3574, 3574, 3574, 06738 3574, 3574, 3574, 3574, 3574, 3574, 3574, 3574, 3574, 3574, 06739 3574, 3574, 3574, 3574, 3574, 3574, 3574, 3574, 3574, 3574, 06740 3574, 3574, 3574, 3574, 3574, 3574, 3574, 3575, 3575, 3575, 06741 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 06742 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 06743 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3575, 3576, 3576, 06744 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 06745 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 06746 06747 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3577, 06748 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 06749 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 06750 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 06751 3578, 3578, 3578, 3578, 3578, 3578, 3578, 3578, 3578, 3578, 06752 3578, 3578, 3578, 3578, 3578, 3578, 3578, 3578, 3578, 3578, 06753 3578, 3578, 3578, 3578, 3578, 3578, 3578, 3578, 3578, 3578, 06754 3578, 3579, 3579, 3579, 3579, 3579, 3579, 3579, 3579, 3579, 06755 3579, 3579, 3579, 3579, 3579, 3579, 3579, 3579, 3579, 3579, 06756 3579, 3579, 3579, 3579, 3579, 3579, 3579, 3579, 3579, 3579, 06757 06758 3579, 3579, 3580, 3580, 3580, 3580, 3580, 3580, 3580, 3580, 06759 3580, 3580, 3580, 3580, 3580, 3580, 3580, 3580, 3580, 3580, 06760 3580, 3580, 3580, 3580, 3580, 3580, 3580, 3580, 3580, 3580, 06761 3580, 3580, 3580, 3581, 3581, 3581, 3581, 3581, 3581, 3581, 06762 3581, 3581, 3581, 3581, 3581, 3581, 3581, 3581, 3581, 3581, 06763 3581, 3581, 3581, 3581, 3581, 3581, 3581, 3581, 3581, 3581, 06764 3581, 3581, 3581, 3581, 3582, 3582, 3582, 3582, 3582, 3582, 06765 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 06766 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 06767 3582, 3582, 3582, 3582, 3582, 3583, 3583, 3583, 3583, 3583, 06768 06769 3583, 3583, 3583, 3583, 3583, 3583, 3583, 3583, 3583, 3583, 06770 3583, 3583, 3583, 3583, 3583, 3583, 3583, 3583, 3583, 3583, 06771 3583, 3583, 3583, 3583, 3583, 3583, 3584, 3584, 3584, 3584, 06772 3584, 3584, 3584, 3584, 3584, 3584, 3584, 3584, 3584, 3584, 06773 3584, 3584, 3584, 3584, 3584, 3584, 3584, 3584, 3584, 3584, 06774 3584, 3584, 3584, 3584, 3584, 3584, 3584, 3585, 3585, 3585, 06775 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3585, 06776 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3585, 06777 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3585, 3586, 3586, 06778 3586, 3586, 3586, 3586, 3586, 3586, 3586, 3586, 3586, 3586, 06779 06780 3586, 3586, 3586, 3586, 3586, 3586, 3586, 3586, 3586, 3586, 06781 3586, 3586, 3586, 3586, 3586, 3586, 3586, 3586, 3586, 3587, 06782 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 06783 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 06784 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 06785 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 06786 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 06787 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 3588, 06788 3588, 3589, 3589, 3589, 3589, 3589, 3589, 3589, 3589, 3589, 06789 3589, 3589, 3589, 3589, 3589, 3589, 3589, 3589, 3589, 3589, 06790 06791 3589, 3589, 3589, 3589, 3589, 3589, 3589, 3589, 3589, 3589, 06792 3589, 3589, 3590, 3590, 3590, 3590, 3590, 3590, 3590, 3590, 06793 3590, 3590, 3590, 3590, 3590, 3590, 3590, 3590, 3590, 3590, 06794 3590, 3590, 3590, 3590, 3590, 3590, 3590, 3590, 3590, 3590, 06795 3590, 3590, 3590, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 06796 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 06797 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 3591, 06798 3591, 3591, 3591, 3591, 3592, 3592, 3592, 3592, 3592, 3592, 06799 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3592, 06800 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3592, 06801 06802 3592, 3592, 3592, 3592, 3592, 3593, 3593, 3593, 3593, 3593, 06803 3593, 3593, 3593, 3593, 3593, 3593, 3593, 3593, 3593, 3593, 06804 3593, 3593, 3593, 3593, 3593, 3593, 3593, 3593, 3593, 3593, 06805 3593, 3593, 3593, 3593, 3593, 3593, 3594, 3594, 3594, 3594, 06806 3594, 3594, 3594, 3594, 3594, 3594, 3594, 3594, 3594, 3594, 06807 3594, 3594, 3594, 3594, 3594, 3594, 3594, 3594, 3594, 3594, 06808 3594, 3594, 3594, 3594, 3594, 3594, 3594, 3595, 3595, 3595, 06809 3595, 3595, 3595, 3595, 3595, 3595, 3595, 3595, 3595, 3595, 06810 3595, 3595, 3595, 3595, 3595, 3595, 3595, 3595, 3595, 3595, 06811 3595, 3595, 3595, 3595, 3595, 3595, 3595, 3595, 3596, 3596, 06812 06813 3596, 3596, 3596, 3596, 3596, 3596, 3596, 3596, 3596, 3596, 06814 3596, 3596, 3596, 3596, 3596, 3596, 3596, 3596, 3596, 3596, 06815 3596, 3596, 3596, 3596, 3596, 3596, 3596, 3596, 3596, 3597, 06816 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 06817 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 06818 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 06819 3598, 3598, 3598, 3598, 3598, 3598, 3598, 3598, 3598, 3598, 06820 3598, 3598, 3598, 3598, 3598, 3598, 3598, 3598, 3598, 3598, 06821 3598, 3598, 3598, 3598, 3598, 3598, 3598, 3598, 3598, 3598, 06822 3598, 3599, 3599, 3599, 3599, 3599, 3599, 3599, 3599, 3599, 06823 06824 3599, 3599, 3599, 3599, 3599, 3599, 3599, 3599, 3599, 3599, 06825 3599, 3599, 3599, 3599, 3599, 3599, 3599, 3599, 3599, 3599, 06826 3599, 3599, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 06827 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 06828 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 06829 3600, 3600, 3600, 3601, 3601, 3601, 3601, 3601, 3601, 3601, 06830 3601, 3601, 3601, 3601, 3601, 3601, 3601, 3601, 3601, 3601, 06831 3601, 3601, 3601, 3601, 3601, 3601, 3601, 3601, 3601, 3601, 06832 3601, 3601, 3601, 3601, 3602, 3602, 3602, 3602, 3602, 3602, 06833 3602, 3602, 3602, 3602, 3602, 3602, 3602, 3602, 3602, 3602, 06834 06835 3602, 3602, 3602, 3602, 3602, 3602, 3602, 3602, 3602, 3602, 06836 3602, 3602, 3602, 3602, 3602, 3603, 3603, 3603, 3603, 3603, 06837 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 06838 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 3603, 06839 3603, 3603, 3603, 3603, 3603, 3603, 3604, 3604, 3604, 3604, 06840 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 06841 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3604, 06842 3604, 3604, 3604, 3604, 3604, 3604, 3604, 3605, 3605, 3605, 06843 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 06844 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 06845 06846 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3606, 3606, 06847 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 06848 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 06849 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3606, 3607, 06850 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 06851 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 06852 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 06853 3608, 3608, 3608, 3608, 3608, 3608, 3608, 3608, 3608, 3608, 06854 3608, 3608, 3608, 3608, 3608, 3608, 3608, 3608, 3608, 3608, 06855 3608, 3608, 3608, 3608, 3608, 3608, 3608, 3608, 3608, 3608, 06856 06857 3608, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 06858 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 06859 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 06860 3609, 3609, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 06861 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 06862 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 06863 3610, 3610, 3610, 3612, 0, 0, 3612, 0, 0, 0, 06864 0, 0, 0, 3612, 0, 0, 0, 0, 0, 3612, 06865 0, 0, 0, 0, 0, 0, 3612, 3613, 3613, 3613, 06866 3613, 0, 0, 0, 3613, 0, 0, 0, 0, 0, 06867 06868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06869 3613, 3614, 3614, 3614, 3614, 3614, 0, 0, 3614, 0, 06870 0, 0, 0, 0, 0, 0, 0, 0, 3614, 0, 06871 0, 0, 0, 0, 3614, 0, 0, 0, 0, 0, 06872 3614, 3615, 3615, 3615, 3615, 0, 0, 0, 3615, 0, 06873 0, 0, 0, 0, 0, 3615, 0, 0, 0, 0, 06874 0, 0, 0, 0, 3615, 0, 0, 0, 0, 0, 06875 3615, 3616, 3616, 3616, 3616, 0, 0, 0, 0, 0, 06876 0, 3616, 0, 0, 0, 3616, 0, 3616, 3616, 3616, 06877 3616, 0, 0, 0, 3616, 3617, 3617, 3617, 3617, 0, 06878 06879 0, 0, 3617, 0, 0, 0, 0, 0, 0, 0, 06880 0, 0, 0, 0, 0, 0, 0, 0, 3617, 3618, 06881 3618, 3618, 3618, 0, 0, 0, 3618, 0, 0, 0, 06882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06883 0, 0, 3618, 3619, 3619, 3619, 3619, 3619, 0, 0, 06884 3619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06885 3619, 0, 0, 0, 0, 0, 3619, 0, 0, 0, 06886 0, 0, 3619, 3620, 3620, 3620, 3620, 0, 0, 0, 06887 0, 0, 0, 3620, 0, 0, 0, 0, 0, 3620, 06888 3620, 0, 0, 0, 0, 0, 3620, 3624, 0, 0, 06889 06890 0, 3624, 0, 3624, 0, 0, 3624, 0, 0, 0, 06891 3624, 3632, 3632, 3632, 3632, 0, 0, 0, 3632, 0, 06892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06893 0, 0, 0, 0, 3632, 0, 0, 0, 3632, 3633, 06894 3633, 3633, 3633, 0, 0, 0, 0, 0, 0, 0, 06895 0, 0, 0, 3633, 0, 3633, 3633, 0, 0, 0, 06896 0, 0, 3633, 3634, 3634, 0, 3634, 0, 3634, 3634, 06897 3634, 3634, 3634, 0, 3634, 3634, 3634, 3634, 3634, 3634, 06898 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 3634, 06899 3634, 3634, 3634, 3634, 3635, 3635, 3635, 3635, 0, 0, 06900 06901 0, 3635, 0, 0, 0, 0, 0, 0, 0, 0, 06902 0, 0, 0, 0, 0, 0, 0, 3635, 3636, 3636, 06903 3636, 3636, 3636, 0, 0, 3636, 0, 0, 0, 0, 06904 0, 0, 0, 0, 0, 3636, 0, 0, 0, 0, 06905 0, 3636, 0, 0, 0, 0, 0, 3636, 3637, 3637, 06906 3637, 3637, 0, 0, 0, 3637, 3637, 0, 0, 0, 06907 3637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06908 0, 3637, 3640, 3640, 3640, 3640, 0, 0, 0, 0, 06909 0, 0, 0, 0, 0, 0, 0, 0, 3640, 3640, 06910 0, 3640, 0, 0, 0, 3640, 3641, 3641, 3641, 3641, 06911 06912 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 06913 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3641, 06914 3641, 3641, 3641, 3641, 3641, 3641, 3641, 3642, 3642, 0, 06915 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 06916 3642, 3642, 3642, 3642, 3642, 3642, 3642, 0, 3642, 3642, 06917 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3642, 3643, 3643, 06918 3643, 3643, 0, 0, 0, 3643, 0, 0, 0, 0, 06919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06920 0, 3643, 3644, 3644, 3644, 3644, 3644, 0, 0, 3644, 06921 0, 0, 0, 0, 0, 0, 0, 0, 0, 3644, 06922 06923 0, 0, 0, 0, 0, 3644, 0, 0, 0, 0, 06924 0, 3644, 3645, 3645, 3645, 3645, 0, 0, 0, 0, 06925 0, 0, 0, 0, 0, 0, 0, 0, 3645, 3645, 06926 0, 3645, 0, 0, 0, 3645, 3650, 3650, 0, 0, 06927 3650, 3650, 0, 0, 3650, 3650, 0, 3650, 3650, 3650, 06928 3650, 3650, 0, 3650, 3650, 3650, 3650, 3650, 3650, 0, 06929 3650, 3650, 3650, 3650, 0, 0, 3650, 3651, 3651, 0, 06930 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 06931 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 06932 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3651, 3652, 3652, 06933 06934 0, 3652, 0, 3652, 3652, 3652, 3652, 3652, 0, 3652, 06935 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 06936 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3654, 06937 3654, 3654, 3654, 0, 0, 0, 0, 0, 0, 0, 06938 0, 0, 0, 3654, 0, 3654, 3654, 0, 0, 0, 06939 0, 0, 3654, 3655, 3655, 3655, 3655, 0, 0, 0, 06940 3655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06941 0, 0, 0, 0, 0, 0, 3655, 3656, 3656, 3656, 06942 3656, 3656, 0, 0, 3656, 0, 0, 0, 0, 0, 06943 0, 0, 0, 0, 3656, 0, 0, 0, 0, 0, 06944 06945 3656, 0, 0, 0, 0, 0, 3656, 3657, 3657, 3657, 06946 3657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06947 0, 0, 0, 3657, 3657, 0, 0, 0, 0, 0, 06948 3657, 3658, 3658, 0, 3658, 3658, 3658, 0, 0, 3658, 06949 3658, 0, 3658, 3658, 3658, 3658, 3658, 0, 3658, 3658, 06950 3658, 3658, 3658, 3658, 0, 3658, 3658, 0, 3658, 0, 06951 0, 3658, 3659, 3659, 0, 3659, 0, 3659, 3659, 3659, 06952 3659, 3659, 0, 3659, 3659, 3659, 3659, 3659, 3659, 3659, 06953 3659, 3659, 3659, 3659, 3659, 3659, 3659, 3659, 3659, 3659, 06954 3659, 3659, 3659, 3660, 3660, 0, 3660, 3660, 3660, 3660, 06955 06956 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 06957 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 06958 3660, 3660, 3660, 3660, 3661, 3661, 0, 3661, 3661, 3661, 06959 3661, 3661, 3661, 3661, 3661, 3661, 3661, 0, 3661, 3661, 06960 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 06961 3661, 3661, 3661, 3661, 3661, 3662, 3662, 3662, 3662, 3662, 06962 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 06963 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 3662, 06964 3662, 3662, 3662, 3662, 3662, 3662, 3663, 3663, 0, 3663, 06965 3663, 3663, 0, 3663, 3663, 3663, 3663, 3663, 3663, 3663, 06966 06967 3663, 3663, 3663, 3663, 3663, 3663, 3663, 3663, 3663, 3663, 06968 3663, 0, 3663, 0, 3663, 3663, 3663, 3664, 3664, 0, 06969 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 06970 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 06971 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3667, 0, 06972 0, 0, 0, 3667, 3667, 3667, 3667, 3667, 3667, 3667, 06973 3667, 0, 3667, 0, 0, 3667, 3667, 3667, 3667, 3667, 06974 3667, 3667, 3667, 3667, 3667, 3667, 3667, 3667, 3667, 3671, 06975 3671, 3671, 3671, 0, 0, 0, 0, 0, 0, 0, 06976 0, 0, 0, 3671, 0, 3671, 0, 0, 0, 0, 06977 06978 0, 0, 3671, 3672, 3672, 0, 3672, 3672, 3672, 3672, 06979 3672, 3672, 3672, 3672, 3672, 3672, 3672, 3672, 3672, 3672, 06980 3672, 3672, 3672, 3672, 3672, 3672, 3672, 3672, 3672, 3672, 06981 3672, 3672, 3672, 3672, 3677, 3677, 0, 3677, 3677, 3677, 06982 0, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 06983 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 3677, 06984 3677, 3677, 3677, 3677, 3677, 3680, 3680, 3680, 3680, 3680, 06985 3680, 3680, 3680, 3680, 3680, 3680, 3680, 0, 3680, 3680, 06986 3680, 3680, 3680, 3680, 3680, 3680, 3680, 3680, 3680, 3680, 06987 3680, 3680, 3680, 3680, 3680, 3680, 3682, 3682, 3682, 3682, 06988 06989 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06990 0, 0, 3682, 3682, 0, 0, 0, 0, 0, 3682, 06991 3683, 3683, 3683, 3683, 3683, 3683, 3683, 3683, 3683, 3683, 06992 3683, 3683, 0, 3683, 3683, 3683, 3683, 3683, 3683, 3683, 06993 3683, 3683, 3683, 3683, 3683, 3683, 3683, 3683, 3683, 3683, 06994 3683, 3692, 3692, 0, 3692, 0, 3692, 3692, 3692, 3692, 06995 3692, 0, 3692, 3692, 3692, 3692, 3692, 3692, 3692, 3692, 06996 3692, 3692, 3692, 3692, 3692, 3692, 3692, 3692, 3692, 3692, 06997 3692, 3692, 3693, 3693, 3693, 3693, 0, 0, 0, 3693, 06998 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 06999 07000 0, 0, 0, 0, 0, 3693, 3694, 3694, 3694, 3694, 07001 0, 0, 0, 0, 0, 0, 0, 0, 3694, 0, 07002 0, 0, 3694, 0, 0, 0, 0, 0, 0, 3694, 07003 3695, 3695, 3695, 3695, 0, 0, 0, 3695, 3695, 0, 07004 0, 0, 3695, 0, 0, 0, 0, 0, 0, 0, 07005 0, 0, 0, 3695, 3696, 3696, 3696, 3696, 0, 0, 07006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07007 3696, 0, 0, 0, 0, 0, 0, 3696, 3696, 3697, 07008 3697, 3697, 3697, 0, 0, 0, 3697, 0, 0, 0, 07009 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07010 07011 0, 0, 3697, 3698, 3698, 3698, 3698, 3698, 0, 0, 07012 3698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07013 3698, 0, 0, 0, 0, 0, 3698, 0, 0, 0, 07014 0, 0, 3698, 3699, 3699, 3699, 3699, 0, 0, 0, 07015 0, 0, 0, 0, 0, 0, 0, 0, 0, 3699, 07016 3699, 0, 0, 0, 0, 0, 3699, 3700, 3700, 0, 07017 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 07018 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 07019 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3701, 0, 07020 0, 0, 0, 3701, 0, 0, 3701, 3701, 0, 0, 07021 07022 0, 3701, 3701, 3701, 0, 3701, 3701, 3701, 3701, 3701, 07023 3701, 3701, 3701, 3701, 3701, 3701, 3701, 3701, 3701, 3702, 07024 3702, 0, 3702, 0, 3702, 3702, 3702, 3702, 3702, 0, 07025 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 07026 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 07027 3707, 3707, 0, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 07028 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 07029 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 07030 3707, 3708, 3708, 0, 3708, 3708, 3708, 3708, 3708, 3708, 07031 3708, 3708, 3708, 3708, 3708, 3708, 3708, 3708, 3708, 3708, 07032 07033 3708, 3708, 3708, 3708, 3708, 3708, 3708, 3708, 3708, 3708, 07034 3708, 3708, 3709, 3709, 0, 3709, 3709, 3709, 0, 3709, 07035 3709, 3709, 0, 0, 0, 3709, 3709, 3709, 3709, 3709, 07036 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 07037 3709, 3709, 3709, 3710, 3710, 0, 3710, 0, 3710, 3710, 07038 3710, 3710, 3710, 0, 3710, 3710, 3710, 3710, 3710, 3710, 07039 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 3710, 07040 3710, 3710, 3710, 3710, 3711, 3711, 0, 3711, 3711, 3711, 07041 0, 3711, 3711, 3711, 0, 3711, 3711, 3711, 3711, 3711, 07042 0, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 3711, 07043 07044 3711, 3711, 0, 0, 3711, 3712, 3712, 0, 3712, 0, 07045 3712, 3712, 3712, 3712, 3712, 0, 3712, 3712, 3712, 3712, 07046 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 3712, 07047 3712, 3712, 3712, 3712, 3712, 3712, 3713, 3713, 0, 3713, 07048 3713, 3713, 0, 3713, 3713, 3713, 0, 0, 0, 3713, 07049 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3713, 07050 3713, 3713, 3713, 3713, 3713, 3713, 3713, 3714, 3714, 0, 07051 3714, 0, 3714, 3714, 3714, 3714, 3714, 0, 3714, 3714, 07052 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 07053 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3714, 3715, 3715, 07054 07055 0, 3715, 3715, 3715, 0, 3715, 3715, 3715, 0, 3715, 07056 3715, 3715, 3715, 3715, 0, 3715, 3715, 3715, 3715, 3715, 07057 3715, 3715, 3715, 3715, 3715, 3715, 0, 0, 3715, 3716, 07058 3716, 0, 3716, 0, 3716, 3716, 3716, 3716, 3716, 0, 07059 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 07060 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 07061 3718, 3718, 0, 3718, 0, 3718, 3718, 3718, 3718, 3718, 07062 0, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 07063 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 3718, 07064 3718, 3720, 3720, 0, 3720, 3720, 3720, 0, 3720, 3720, 07065 07066 3720, 0, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 3720, 07067 3720, 3720, 3720, 3720, 3720, 3720, 3720, 0, 3720, 3720, 07068 3720, 3720, 3721, 3721, 0, 3721, 3721, 3721, 3721, 3721, 07069 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 07070 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 07071 3721, 3721, 3721, 3722, 3722, 0, 3722, 3722, 3722, 0, 07072 3722, 3722, 3722, 0, 0, 0, 3722, 3722, 3722, 0, 07073 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 07074 3722, 3722, 3722, 3722, 3723, 3723, 0, 3723, 3723, 3723, 07075 3723, 3723, 3723, 3723, 3723, 3723, 3723, 0, 3723, 3723, 07076 07077 3723, 3723, 3723, 3723, 3723, 3723, 3723, 0, 3723, 3723, 07078 0, 3723, 3723, 3723, 3723, 3724, 3724, 0, 3724, 3724, 07079 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 07080 3724, 3724, 3724, 3724, 3724, 3724, 3724, 3724, 0, 3724, 07081 3724, 0, 3724, 3724, 3724, 3724, 3725, 3725, 3725, 3725, 07082 0, 0, 0, 3725, 0, 0, 0, 0, 0, 0, 07083 0, 0, 0, 0, 0, 0, 0, 0, 0, 3725, 07084 3725, 3727, 3727, 3727, 3727, 0, 0, 0, 0, 0, 07085 0, 0, 3727, 0, 3727, 0, 0, 3727, 0, 0, 07086 0, 0, 0, 0, 3727, 3728, 3728, 3728, 3728, 3728, 07087 07088 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 07089 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 07090 3728, 3728, 3728, 3728, 3728, 3728, 3729, 3729, 3729, 3729, 07091 0, 0, 0, 3729, 0, 0, 0, 0, 0, 0, 07092 0, 0, 0, 0, 0, 0, 0, 0, 0, 3729, 07093 3731, 3731, 3731, 3731, 0, 0, 0, 0, 0, 0, 07094 3731, 0, 0, 0, 0, 0, 3731, 0, 0, 0, 07095 0, 0, 0, 3731, 3732, 0, 0, 3732, 0, 0, 07096 0, 3732, 3732, 0, 0, 0, 3732, 0, 0, 0, 07097 0, 0, 0, 0, 0, 0, 0, 3732, 3733, 3733, 07098 07099 3733, 3733, 0, 0, 0, 3733, 0, 0, 0, 0, 07100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07101 0, 3733, 3734, 3734, 3734, 3734, 3734, 0, 0, 3734, 07102 0, 0, 0, 0, 0, 0, 0, 0, 0, 3734, 07103 0, 0, 0, 0, 0, 3734, 0, 0, 0, 0, 07104 0, 3734, 3735, 3735, 3735, 3735, 0, 0, 0, 0, 07105 0, 0, 0, 0, 0, 0, 0, 0, 3735, 3735, 07106 0, 0, 0, 0, 0, 3735, 3736, 3736, 3736, 3736, 07107 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 07108 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3736, 07109 07110 3736, 3736, 3736, 3736, 3736, 3736, 3736, 3737, 3737, 0, 07111 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 3737, 07112 0, 3737, 3737, 0, 3737, 3737, 3737, 3737, 3737, 3737, 07113 0, 3737, 3737, 0, 3737, 3737, 3737, 3737, 3738, 3738, 07114 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 07115 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 07116 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3738, 3739, 07117 3739, 0, 3739, 3739, 3739, 3739, 3739, 0, 3739, 3739, 07118 3739, 3739, 0, 3739, 3739, 0, 3739, 3739, 3739, 0, 07119 3739, 3739, 0, 3739, 3739, 0, 0, 3739, 3739, 3739, 07120 07121 3740, 0, 0, 3740, 0, 0, 0, 0, 0, 0, 07122 3740, 0, 0, 0, 0, 0, 3740, 0, 0, 0, 07123 0, 0, 0, 3740, 3741, 3741, 3741, 3741, 0, 0, 07124 0, 3741, 0, 0, 0, 0, 0, 0, 3741, 0, 07125 0, 0, 0, 0, 0, 0, 0, 3741, 0, 0, 07126 0, 0, 0, 3741, 3742, 3742, 3742, 3742, 0, 0, 07127 0, 3742, 0, 0, 0, 0, 0, 0, 0, 0, 07128 0, 0, 0, 0, 0, 0, 0, 3742, 3743, 3743, 07129 3743, 3743, 0, 0, 0, 0, 0, 0, 3743, 0, 07130 0, 0, 0, 0, 3743, 0, 3743, 3743, 0, 0, 07131 07132 0, 3743, 3745, 3745, 3745, 3745, 0, 0, 0, 0, 07133 0, 0, 3745, 0, 0, 0, 3745, 0, 3745, 3745, 07134 3745, 3745, 0, 0, 0, 3745, 3746, 3746, 3746, 3746, 07135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07136 3746, 0, 3746, 0, 0, 0, 0, 0, 0, 3746, 07137 3747, 3747, 3747, 3747, 0, 0, 0, 3747, 0, 0, 07138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07139 0, 0, 0, 3747, 3748, 3748, 3748, 3748, 0, 0, 07140 0, 3748, 0, 0, 0, 0, 0, 0, 0, 0, 07141 0, 0, 0, 0, 0, 0, 0, 3748, 3749, 3749, 07142 07143 3749, 3749, 0, 0, 0, 0, 0, 0, 3749, 0, 07144 0, 0, 0, 0, 3749, 0, 3749, 3749, 0, 0, 07145 0, 3749, 3750, 3750, 3750, 3750, 0, 0, 0, 3750, 07146 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07147 0, 0, 0, 0, 0, 3750, 3751, 3751, 3751, 3751, 07148 0, 0, 0, 0, 0, 0, 3751, 0, 0, 0, 07149 0, 0, 3751, 0, 0, 0, 0, 0, 0, 3751, 07150 3753, 3753, 3753, 3753, 0, 0, 0, 0, 0, 0, 07151 3753, 0, 0, 0, 0, 0, 3753, 3753, 0, 0, 07152 0, 0, 0, 3753, 3755, 0, 0, 0, 3755, 0, 07153 07154 3755, 0, 0, 3755, 0, 0, 0, 3755, 3763, 3763, 07155 3763, 3763, 0, 0, 0, 3763, 0, 0, 0, 0, 07156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07157 0, 3763, 0, 0, 0, 3763, 3764, 3764, 3764, 3764, 07158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07159 3764, 0, 3764, 3764, 0, 0, 0, 0, 0, 3764, 07160 3765, 3765, 3765, 3765, 0, 0, 0, 3765, 0, 0, 07161 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07162 0, 0, 0, 3765, 3767, 3767, 0, 3767, 0, 3767, 07163 3767, 3767, 3767, 3767, 3767, 3767, 3767, 3767, 3767, 3767, 07164 07165 3767, 3767, 3767, 3767, 3767, 3767, 3767, 3767, 3767, 3767, 07166 0, 3767, 3767, 3767, 3767, 3768, 3768, 0, 3768, 3768, 07167 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 07168 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 3768, 07169 3768, 3768, 3768, 3768, 3768, 3768, 3769, 3769, 3769, 3769, 07170 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 07171 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 07172 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3770, 3770, 3770, 07173 3770, 0, 0, 0, 3770, 0, 0, 0, 0, 0, 07174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07175 07176 3770, 3771, 3771, 3771, 3771, 0, 0, 0, 0, 0, 07177 0, 0, 0, 0, 0, 0, 0, 3771, 0, 0, 07178 3771, 0, 0, 0, 3771, 3773, 3773, 3773, 3773, 0, 07179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07180 0, 3773, 3773, 0, 3773, 0, 0, 0, 3773, 3774, 07181 3774, 3774, 3774, 0, 0, 0, 3774, 3774, 0, 0, 07182 0, 3774, 0, 0, 0, 0, 0, 0, 0, 0, 07183 0, 0, 3774, 3775, 3775, 3775, 3775, 0, 0, 0, 07184 0, 0, 0, 0, 3775, 3775, 0, 0, 0, 3775, 07185 3775, 0, 3775, 0, 0, 0, 3775, 3779, 3779, 3779, 07186 07187 3779, 0, 0, 0, 0, 0, 0, 3779, 0, 0, 07188 0, 0, 0, 3779, 0, 0, 0, 0, 0, 0, 07189 3779, 3780, 3780, 0, 3780, 3780, 3780, 3780, 3780, 3780, 07190 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 07191 3780, 0, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 3780, 07192 3780, 3780, 3781, 3781, 3781, 3781, 0, 0, 0, 3781, 07193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07194 0, 0, 0, 0, 0, 3781, 3782, 3782, 3782, 3782, 07195 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07196 0, 0, 3782, 0, 0, 3782, 0, 0, 0, 3782, 07197 07198 3784, 3784, 3784, 3784, 0, 0, 0, 0, 0, 0, 07199 0, 0, 0, 0, 0, 0, 3784, 3784, 0, 3784, 07200 0, 0, 0, 3784, 3787, 3787, 0, 0, 3787, 3787, 07201 0, 0, 3787, 3787, 0, 3787, 3787, 3787, 3787, 3787, 07202 0, 3787, 3787, 3787, 3787, 3787, 3787, 0, 3787, 3787, 07203 3787, 3787, 0, 0, 3787, 3788, 3788, 0, 3788, 3788, 07204 3788, 3788, 3788, 3788, 3788, 3788, 3788, 3788, 3788, 3788, 07205 3788, 3788, 3788, 3788, 3788, 3788, 3788, 3788, 3788, 3788, 07206 3788, 3788, 3788, 3788, 3788, 3788, 3789, 3789, 0, 3789, 07207 0, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 07208 07209 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 07210 3789, 3789, 0, 3789, 3789, 3789, 3789, 3790, 3790, 0, 07211 3790, 3790, 3790, 3790, 3790, 3790, 3790, 3790, 3790, 3790, 07212 3790, 3790, 3790, 3790, 3790, 3790, 3790, 3790, 3790, 3790, 07213 3790, 3790, 3790, 3790, 3790, 3790, 3790, 3790, 3791, 3791, 07214 0, 3791, 3791, 3791, 3791, 3791, 3791, 3791, 3791, 3791, 07215 3791, 3791, 3791, 3791, 3791, 3791, 3791, 3791, 3791, 3791, 07216 3791, 3791, 3791, 3791, 3791, 3791, 3791, 3791, 3791, 3792, 07217 3792, 3792, 3792, 0, 0, 0, 0, 0, 0, 0, 07218 0, 0, 0, 3792, 0, 3792, 3792, 0, 0, 0, 07219 07220 0, 0, 3792, 3793, 3793, 3793, 3793, 0, 0, 0, 07221 3793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07222 0, 0, 0, 0, 0, 0, 3793, 3794, 3794, 3794, 07223 3794, 0, 0, 0, 3794, 0, 0, 0, 0, 0, 07224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07225 3794, 3797, 3797, 3797, 3797, 0, 0, 0, 0, 0, 07226 0, 0, 0, 0, 0, 0, 0, 3797, 3797, 0, 07227 0, 0, 0, 0, 3797, 3798, 3798, 0, 3798, 3798, 07228 3798, 0, 0, 3798, 3798, 0, 3798, 3798, 3798, 3798, 07229 3798, 0, 3798, 3798, 3798, 3798, 3798, 3798, 0, 3798, 07230 07231 3798, 0, 3798, 0, 0, 3798, 3799, 3799, 0, 3799, 07232 0, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 07233 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 07234 3799, 3799, 0, 3799, 3799, 3799, 3799, 3800, 3800, 0, 07235 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 07236 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 07237 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3801, 3801, 07238 0, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 07239 3801, 0, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 07240 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3802, 07241 07242 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 07243 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 07244 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 3802, 07245 3803, 3803, 0, 3803, 3803, 3803, 0, 3803, 3803, 3803, 07246 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 3803, 07247 3803, 3803, 3803, 3803, 3803, 0, 3803, 0, 3803, 3803, 07248 3803, 3804, 3804, 0, 3804, 3804, 3804, 3804, 3804, 3804, 07249 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 07250 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 3804, 07251 3804, 3804, 3806, 0, 0, 0, 0, 3806, 3806, 3806, 07252 07253 3806, 3806, 3806, 3806, 3806, 0, 3806, 0, 0, 3806, 07254 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 07255 3806, 3806, 3806, 3809, 3809, 3809, 3809, 0, 0, 0, 07256 0, 0, 0, 0, 0, 0, 0, 3809, 0, 3809, 07257 0, 0, 0, 0, 0, 0, 3809, 3810, 3810, 3810, 07258 3810, 0, 0, 0, 3810, 0, 0, 0, 0, 3810, 07259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07260 3810, 3811, 3811, 0, 3811, 3811, 3811, 3811, 3811, 3811, 07261 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 07262 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 07263 07264 3811, 3811, 3814, 3814, 0, 3814, 3814, 3814, 0, 3814, 07265 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 07266 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 3814, 07267 3814, 3814, 3814, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 07268 3816, 3816, 3816, 3816, 3816, 0, 3816, 3816, 3816, 3816, 07269 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 07270 3816, 3816, 3816, 3816, 3817, 3817, 3817, 3817, 0, 0, 07271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07272 3817, 3817, 0, 0, 0, 0, 0, 3817, 3818, 3818, 07273 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 07274 07275 0, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 07276 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3820, 07277 0, 0, 0, 3820, 3820, 0, 0, 3820, 0, 0, 07278 0, 0, 3820, 0, 3820, 3824, 3824, 0, 3824, 0, 07279 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 07280 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 3824, 07281 3824, 0, 3824, 3824, 3824, 3824, 3825, 3825, 0, 3825, 07282 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 07283 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3825, 07284 3825, 3825, 3825, 3825, 3825, 3825, 3825, 3826, 3826, 3826, 07285 07286 3826, 0, 0, 0, 3826, 0, 0, 0, 0, 0, 07287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07288 3826, 3827, 3827, 3827, 3827, 0, 0, 0, 0, 0, 07289 0, 0, 0, 3827, 0, 0, 0, 3827, 0, 0, 07290 0, 0, 0, 0, 3827, 3828, 3828, 3828, 3828, 0, 07291 0, 0, 3828, 3828, 0, 0, 0, 3828, 0, 0, 07292 0, 0, 0, 0, 0, 0, 0, 0, 3828, 3829, 07293 3829, 3829, 3829, 0, 0, 0, 0, 0, 0, 0, 07294 0, 0, 0, 0, 0, 3829, 0, 0, 0, 0, 07295 0, 0, 3829, 3829, 3830, 3830, 0, 3830, 3830, 3830, 07296 07297 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 07298 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 3830, 07299 3830, 3830, 3830, 3830, 3830, 3831, 3831, 3831, 3831, 0, 07300 0, 0, 3831, 0, 0, 0, 0, 3831, 0, 0, 07301 0, 0, 0, 0, 0, 0, 0, 0, 3831, 3832, 07302 3832, 3832, 3832, 0, 0, 0, 3832, 0, 0, 0, 07303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07304 0, 0, 3832, 3835, 3835, 3835, 3835, 0, 0, 0, 07305 0, 0, 0, 0, 0, 0, 0, 0, 0, 3835, 07306 3835, 0, 0, 0, 0, 0, 3835, 3836, 3836, 0, 07307 07308 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 07309 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 07310 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3837, 0, 07311 0, 0, 0, 3837, 0, 0, 3837, 3837, 0, 0, 07312 0, 3837, 3837, 3837, 0, 3837, 3837, 3837, 3837, 3837, 07313 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3838, 07314 3838, 0, 3838, 0, 3838, 3838, 3838, 3838, 3838, 3838, 07315 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 3838, 07316 3838, 3838, 3838, 3838, 3838, 0, 3838, 3838, 3838, 3838, 07317 3839, 3839, 0, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 07318 07319 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 07320 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 3839, 07321 3839, 3842, 3842, 0, 3842, 3842, 3842, 0, 3842, 3842, 07322 3842, 0, 0, 0, 3842, 3842, 3842, 3842, 3842, 3842, 07323 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 07324 3842, 3842, 3843, 3843, 0, 3843, 0, 3843, 3843, 3843, 07325 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 07326 3843, 3843, 3843, 3843, 3843, 3843, 3843, 3843, 0, 3843, 07327 3843, 3843, 3843, 3844, 3844, 0, 3844, 3844, 3844, 3844, 07328 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 07329 07330 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 07331 3844, 3844, 3844, 3844, 3845, 3845, 0, 3845, 3845, 3845, 07332 0, 3845, 3845, 3845, 0, 3845, 3845, 3845, 3845, 3845, 07333 0, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 3845, 07334 3845, 3845, 0, 0, 3845, 3846, 3846, 0, 3846, 0, 07335 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 07336 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 07337 3846, 0, 3846, 3846, 3846, 3846, 3847, 3847, 0, 3847, 07338 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 07339 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 07340 07341 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3848, 3848, 0, 07342 3848, 3848, 3848, 0, 3848, 3848, 3848, 0, 0, 0, 07343 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 07344 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3848, 3849, 3849, 07345 0, 3849, 0, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 07346 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 3849, 07347 3849, 3849, 3849, 3849, 0, 3849, 3849, 3849, 3849, 3850, 07348 3850, 0, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 07349 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 07350 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 3850, 07351 07352 3851, 3851, 0, 3851, 3851, 3851, 0, 3851, 3851, 3851, 07353 0, 3851, 3851, 3851, 3851, 3851, 0, 3851, 3851, 3851, 07354 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 0, 0, 07355 3851, 3852, 3852, 0, 3852, 0, 3852, 3852, 3852, 3852, 07356 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 07357 3852, 3852, 3852, 3852, 3852, 3852, 3852, 0, 3852, 3852, 07358 3852, 3852, 3853, 3853, 0, 3853, 3853, 3853, 3853, 3853, 07359 3853, 3853, 3853, 3853, 3853, 3853, 3853, 3853, 3853, 3853, 07360 3853, 3853, 3853, 3853, 3853, 3853, 3853, 3853, 3853, 3853, 07361 3853, 3853, 3853, 3855, 3855, 0, 3855, 0, 3855, 3855, 07362 07363 3855, 3855, 3855, 3855, 3855, 3855, 3855, 3855, 3855, 3855, 07364 3855, 3855, 3855, 3855, 3855, 3855, 3855, 3855, 3855, 0, 07365 3855, 3855, 3855, 3855, 3856, 3856, 0, 3856, 3856, 3856, 07366 3856, 3856, 3856, 3856, 3856, 3856, 3856, 3856, 3856, 3856, 07367 3856, 3856, 3856, 3856, 3856, 3856, 3856, 3856, 3856, 3856, 07368 3856, 3856, 3856, 3856, 3856, 3857, 3857, 0, 3857, 3857, 07369 3857, 0, 3857, 3857, 3857, 0, 3857, 3857, 3857, 3857, 07370 3857, 3857, 3857, 3857, 3857, 3857, 3857, 3857, 3857, 3857, 07371 3857, 0, 3857, 3857, 3857, 3857, 3858, 3858, 0, 3858, 07372 3858, 3858, 0, 3858, 3858, 3858, 0, 0, 0, 3858, 07373 07374 3858, 3858, 0, 3858, 3858, 3858, 3858, 3858, 3858, 3858, 07375 3858, 3858, 3858, 3858, 3858, 3858, 3858, 3859, 3859, 0, 07376 3859, 3859, 3859, 3859, 3859, 3859, 3859, 3859, 3859, 3859, 07377 0, 3859, 3859, 3859, 3859, 3859, 3859, 3859, 3859, 3859, 07378 0, 3859, 3859, 0, 3859, 3859, 3859, 3859, 3860, 3860, 07379 0, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 07380 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 3860, 07381 3860, 0, 3860, 3860, 0, 3860, 3860, 3860, 3860, 3861, 07382 3861, 3861, 3861, 0, 0, 0, 3861, 0, 0, 0, 07383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07384 07385 0, 0, 3861, 3861, 3862, 3862, 3862, 3862, 0, 0, 07386 0, 0, 0, 0, 0, 3862, 0, 3862, 0, 0, 07387 3862, 0, 0, 0, 0, 0, 0, 3862, 3863, 3863, 07388 3863, 3863, 3863, 3863, 3863, 3863, 3863, 3863, 3863, 3863, 07389 3863, 3863, 3863, 3863, 3863, 3863, 3863, 3863, 3863, 3863, 07390 3863, 3863, 3863, 3863, 3863, 3863, 3863, 3863, 3863, 3864, 07391 3864, 3864, 3864, 0, 0, 0, 0, 0, 0, 0, 07392 3864, 0, 3864, 0, 0, 3864, 0, 0, 0, 0, 07393 0, 0, 3864, 3865, 3865, 3865, 3865, 0, 0, 0, 07394 3865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07395 07396 0, 0, 0, 0, 0, 0, 3865, 3866, 3866, 3866, 07397 3866, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07398 0, 0, 0, 3866, 0, 0, 0, 0, 0, 0, 07399 3866, 3867, 3867, 3867, 3867, 0, 0, 0, 0, 0, 07400 0, 3867, 0, 0, 0, 0, 0, 3867, 0, 0, 07401 0, 0, 0, 0, 3867, 3870, 3870, 3870, 3870, 0, 07402 0, 0, 3870, 0, 0, 0, 0, 0, 0, 0, 07403 0, 0, 0, 0, 0, 0, 0, 0, 3870, 3873, 07404 3873, 3873, 3873, 0, 0, 0, 0, 0, 0, 0, 07405 0, 0, 0, 0, 0, 3873, 3873, 0, 0, 0, 07406 07407 0, 0, 3873, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 07408 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 07409 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 3874, 07410 3874, 3874, 3874, 3874, 3875, 3875, 0, 3875, 3875, 3875, 07411 3875, 3875, 3875, 3875, 3875, 3875, 3875, 0, 3875, 3875, 07412 0, 3875, 3875, 3875, 3875, 3875, 3875, 0, 3875, 3875, 07413 0, 3875, 3875, 3875, 3875, 3877, 3877, 3877, 3877, 3877, 07414 3877, 3877, 3877, 3877, 3877, 3877, 3877, 3877, 3877, 3877, 07415 3877, 0, 3877, 3877, 3877, 3877, 3877, 3877, 3877, 3877, 07416 3877, 3877, 3877, 3877, 3877, 3877, 3878, 3878, 0, 3878, 07417 07418 3878, 3878, 3878, 3878, 0, 3878, 3878, 3878, 3878, 0, 07419 3878, 3878, 0, 3878, 3878, 3878, 0, 3878, 3878, 0, 07420 3878, 3878, 0, 0, 3878, 3878, 3878, 3879, 3879, 3879, 07421 3879, 0, 0, 0, 0, 0, 0, 3879, 0, 0, 07422 0, 0, 0, 3879, 0, 3879, 3879, 0, 0, 0, 07423 3879, 3880, 3880, 3880, 3880, 0, 0, 0, 0, 0, 07424 0, 3880, 0, 0, 0, 0, 0, 3880, 3880, 3880, 07425 3880, 0, 0, 0, 3880, 3881, 3881, 3881, 3881, 0, 07426 0, 0, 0, 0, 0, 0, 0, 0, 0, 3881, 07427 0, 3881, 0, 0, 0, 0, 0, 0, 3881, 3882, 07428 07429 3882, 3882, 3882, 0, 0, 0, 3882, 0, 0, 0, 07430 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07431 0, 0, 3882, 3884, 3884, 3884, 3884, 3884, 0, 0, 07432 3884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07433 3884, 0, 0, 0, 0, 0, 3884, 0, 0, 0, 07434 0, 0, 3884, 3885, 3885, 3885, 3885, 0, 0, 0, 07435 0, 0, 0, 3885, 0, 0, 0, 0, 0, 3885, 07436 0, 3885, 3885, 0, 0, 0, 3885, 3886, 3886, 3886, 07437 3886, 0, 0, 0, 0, 0, 0, 3886, 0, 0, 07438 0, 0, 0, 3886, 0, 0, 0, 0, 0, 0, 07439 07440 3886, 3887, 3887, 3887, 3887, 0, 0, 0, 0, 0, 07441 0, 3887, 0, 0, 0, 0, 0, 3887, 3887, 0, 07442 0, 0, 0, 0, 3887, 3888, 3888, 3888, 3888, 3888, 07443 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 0, 3888, 07444 3888, 0, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 3888, 07445 3888, 3888, 3888, 3888, 3888, 3888, 3889, 3889, 3889, 3889, 07446 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 07447 3889, 3889, 0, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 07448 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3890, 3890, 3890, 07449 3890, 3890, 0, 0, 3890, 0, 0, 0, 0, 0, 07450 07451 0, 0, 0, 0, 3890, 0, 0, 0, 0, 0, 07452 3890, 0, 0, 0, 0, 0, 3890, 3891, 3891, 3891, 07453 3891, 0, 0, 0, 0, 0, 0, 3891, 0, 0, 07454 0, 0, 0, 3891, 3891, 0, 0, 0, 0, 0, 07455 3891, 3895, 0, 0, 0, 3895, 0, 3895, 0, 0, 07456 3895, 0, 0, 0, 3895, 3896, 3896, 3896, 3896, 3896, 07457 0, 0, 3896, 0, 0, 0, 0, 0, 0, 0, 07458 0, 0, 3896, 0, 0, 0, 0, 0, 3896, 0, 07459 0, 0, 0, 0, 3896, 3898, 3898, 3898, 3898, 0, 07460 0, 0, 0, 0, 0, 0, 0, 0, 0, 3898, 07461 07462 0, 3898, 3898, 0, 0, 0, 0, 0, 3898, 3899, 07463 3899, 3899, 3899, 0, 0, 0, 3899, 0, 0, 0, 07464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07465 0, 0, 3899, 3900, 3900, 3900, 3900, 0, 0, 0, 07466 0, 0, 0, 0, 0, 0, 0, 0, 0, 3900, 07467 3900, 0, 0, 0, 0, 0, 3900, 3903, 3903, 0, 07468 3903, 0, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 07469 3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 3903, 07470 3903, 3903, 3903, 0, 3903, 3903, 3903, 3903, 3904, 3904, 07471 3904, 3904, 3904, 0, 0, 3904, 0, 0, 0, 0, 07472 07473 0, 0, 0, 0, 0, 3904, 0, 0, 0, 0, 07474 0, 3904, 0, 0, 0, 0, 0, 3904, 3905, 3905, 07475 3905, 3905, 0, 0, 0, 0, 0, 0, 0, 0, 07476 0, 0, 0, 0, 3905, 0, 0, 3905, 0, 0, 07477 0, 3905, 3906, 3906, 3906, 3906, 0, 0, 0, 3906, 07478 3906, 0, 0, 0, 3906, 0, 0, 0, 0, 0, 07479 0, 0, 0, 0, 0, 3906, 3907, 3907, 3907, 3907, 07480 0, 0, 0, 3907, 0, 0, 0, 3907, 0, 0, 07481 0, 0, 0, 0, 0, 0, 0, 0, 0, 3907, 07482 3908, 3908, 3908, 3908, 0, 0, 0, 0, 0, 0, 07483 07484 0, 3908, 3908, 0, 0, 0, 3908, 3908, 0, 3908, 07485 0, 0, 0, 3908, 3909, 0, 0, 3909, 0, 0, 07486 0, 0, 3909, 0, 0, 0, 3909, 3909, 0, 0, 07487 3909, 0, 0, 0, 0, 3909, 0, 3909, 3910, 3910, 07488 3910, 3910, 3910, 3910, 3910, 3910, 3910, 3910, 3910, 3910, 07489 3910, 0, 3910, 3910, 0, 3910, 3910, 3910, 3910, 3910, 07490 3910, 3910, 3910, 3910, 3910, 3910, 3910, 3910, 3910, 3911, 07491 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 07492 3911, 3911, 3911, 3911, 3911, 0, 3911, 3911, 3911, 3911, 07493 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 07494 07495 3913, 3913, 3913, 3913, 0, 0, 0, 0, 0, 0, 07496 3913, 0, 0, 0, 0, 0, 3913, 0, 0, 0, 07497 0, 0, 0, 3913, 3914, 3914, 3914, 3914, 0, 0, 07498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07499 3914, 3914, 0, 3914, 0, 0, 0, 3914, 3915, 3915, 07500 3915, 3915, 0, 0, 0, 0, 0, 0, 0, 0, 07501 0, 0, 0, 0, 3915, 0, 0, 3915, 0, 0, 07502 0, 3915, 3916, 3916, 3916, 3916, 3916, 0, 0, 3916, 07503 0, 0, 0, 0, 0, 0, 0, 0, 0, 3916, 07504 0, 0, 0, 0, 0, 3916, 0, 0, 0, 0, 07505 07506 0, 3916, 3918, 3918, 3918, 3918, 3918, 3918, 3918, 3918, 07507 3918, 3918, 3918, 3918, 3918, 3918, 3918, 3918, 3918, 3918, 07508 3918, 3918, 3918, 3918, 3918, 3918, 3918, 3918, 3918, 3918, 07509 3918, 3918, 3918, 3919, 3919, 0, 3919, 3919, 3919, 3919, 07510 3919, 3919, 3919, 3919, 3919, 3919, 3919, 3919, 3919, 3919, 07511 3919, 3919, 3919, 3919, 3919, 3919, 3919, 3919, 3919, 3919, 07512 3919, 3919, 3919, 3919, 3920, 3920, 0, 3920, 0, 3920, 07513 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 07514 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 07515 0, 3920, 3920, 3920, 3920, 3921, 3921, 0, 3921, 3921, 07516 07517 3921, 3921, 3921, 3921, 3921, 3921, 3921, 3921, 3921, 3921, 07518 3921, 3921, 3921, 3921, 3921, 3921, 3921, 3921, 3921, 3921, 07519 3921, 3921, 3921, 3921, 3921, 3921, 3922, 3922, 3922, 3922, 07520 0, 0, 0, 3922, 0, 0, 0, 0, 0, 0, 07521 0, 0, 0, 0, 0, 0, 0, 0, 0, 3922, 07522 3923, 3923, 3923, 3923, 0, 0, 0, 0, 0, 0, 07523 0, 0, 0, 0, 3923, 0, 3923, 3923, 0, 0, 07524 0, 0, 0, 3923, 3924, 3924, 3924, 3924, 0, 0, 07525 0, 0, 0, 0, 0, 0, 0, 0, 3924, 0, 07526 3924, 3924, 0, 0, 0, 0, 0, 3924, 3926, 3926, 07527 07528 3926, 3926, 3926, 0, 0, 3926, 0, 0, 0, 0, 07529 0, 0, 0, 0, 0, 3926, 0, 0, 0, 0, 07530 0, 3926, 0, 0, 0, 0, 0, 3926, 3927, 3927, 07531 0, 3927, 0, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 07532 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 07533 3927, 3927, 3927, 3927, 0, 3927, 3927, 3927, 3927, 3929, 07534 0, 0, 0, 0, 3929, 3929, 3929, 3929, 3929, 3929, 07535 3929, 3929, 0, 3929, 0, 0, 3929, 3929, 3929, 3929, 07536 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 07537 3932, 3932, 3932, 3932, 0, 0, 0, 3932, 0, 0, 07538 07539 0, 0, 3932, 0, 0, 0, 0, 0, 0, 0, 07540 0, 0, 0, 3932, 3933, 3933, 3933, 3933, 0, 0, 07541 0, 0, 0, 0, 0, 0, 0, 0, 3933, 0, 07542 3933, 0, 0, 0, 0, 0, 0, 3933, 3935, 0, 07543 0, 0, 3935, 3935, 0, 0, 3935, 0, 0, 0, 07544 0, 3935, 0, 3935, 3937, 3937, 0, 3937, 0, 3937, 07545 3937, 3937, 3937, 3937, 3937, 3937, 3937, 3937, 3937, 3937, 07546 3937, 3937, 3937, 3937, 3937, 3937, 3937, 3937, 3937, 3937, 07547 0, 3937, 3937, 3937, 3937, 3938, 3938, 0, 3938, 3938, 07548 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 07549 07550 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 3938, 07551 3938, 3938, 3938, 3938, 3938, 3938, 3939, 3939, 3939, 3939, 07552 0, 0, 0, 3939, 0, 0, 0, 0, 3939, 0, 07553 0, 0, 0, 0, 0, 0, 0, 0, 0, 3939, 07554 3940, 3940, 3940, 3940, 0, 0, 0, 0, 0, 0, 07555 0, 0, 0, 0, 0, 0, 3940, 3940, 0, 0, 07556 0, 0, 0, 3940, 3942, 3942, 3942, 3942, 3942, 0, 07557 0, 3942, 0, 0, 0, 0, 0, 0, 0, 0, 07558 0, 3942, 0, 0, 0, 0, 0, 3942, 0, 0, 07559 0, 0, 0, 3942, 3943, 3943, 0, 3943, 0, 3943, 07560 07561 3943, 3943, 3943, 3943, 3943, 3943, 3943, 3943, 3943, 3943, 07562 3943, 3943, 3943, 3943, 3943, 3943, 3943, 3943, 3943, 3943, 07563 0, 3943, 3943, 3943, 3943, 3945, 3945, 0, 3945, 0, 07564 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 07565 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 3945, 07566 3945, 0, 3945, 3945, 3945, 3945, 3946, 3946, 0, 3946, 07567 0, 3946, 3946, 3946, 3946, 3946, 3946, 3946, 3946, 3946, 07568 3946, 3946, 3946, 3946, 3946, 3946, 3946, 3946, 3946, 3946, 07569 3946, 3946, 0, 3946, 3946, 3946, 3946, 3947, 3947, 0, 07570 3947, 0, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 07571 07572 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 07573 3947, 3947, 3947, 0, 3947, 3947, 3947, 3947, 3948, 3948, 07574 0, 3948, 0, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 07575 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 3948, 07576 3948, 3948, 3948, 3948, 0, 3948, 3948, 3948, 3948, 3949, 07577 3949, 0, 3949, 3949, 3949, 0, 3949, 3949, 3949, 0, 07578 3949, 3949, 3949, 3949, 3949, 0, 3949, 3949, 3949, 3949, 07579 3949, 3949, 3949, 3949, 3949, 3949, 3949, 0, 0, 3949, 07580 3950, 3950, 0, 3950, 0, 3950, 3950, 3950, 3950, 3950, 07581 3950, 3950, 3950, 3950, 3950, 3950, 3950, 3950, 3950, 3950, 07582 07583 3950, 3950, 3950, 3950, 3950, 3950, 0, 3950, 3950, 3950, 07584 3950, 3951, 3951, 3951, 3951, 3951, 3951, 3951, 3951, 3951, 07585 3951, 3951, 3951, 3951, 3951, 3951, 3951, 3951, 0, 3951, 07586 3951, 3951, 3951, 3951, 3951, 0, 3951, 3951, 3951, 3951, 07587 3951, 3951, 3952, 3952, 3952, 3952, 0, 0, 0, 0, 07588 0, 0, 0, 3952, 0, 3952, 0, 0, 3952, 0, 07589 0, 0, 0, 0, 0, 3952, 3953, 3953, 3953, 3953, 07590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07591 0, 0, 3953, 0, 0, 0, 0, 0, 0, 3953, 07592 3956, 3956, 3956, 3956, 3956, 0, 0, 3956, 0, 0, 07593 07594 0, 0, 0, 0, 0, 0, 0, 3956, 0, 0, 07595 0, 0, 0, 3956, 0, 0, 0, 0, 0, 3956, 07596 3957, 3957, 0, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 07597 3957, 3957, 3957, 0, 3957, 3957, 0, 3957, 3957, 3957, 07598 3957, 3957, 3957, 0, 3957, 3957, 0, 3957, 3957, 3957, 07599 3957, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 07600 3959, 3959, 3959, 3959, 3959, 3959, 3959, 0, 3959, 3959, 07601 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 3959, 07602 3959, 3959, 3960, 3960, 3960, 3960, 0, 0, 0, 0, 07603 0, 0, 3960, 0, 0, 0, 0, 0, 3960, 3960, 07604 07605 3960, 3960, 0, 0, 0, 3960, 3962, 3962, 3962, 3962, 07606 0, 0, 0, 0, 0, 0, 3962, 0, 0, 0, 07607 0, 0, 3962, 3962, 0, 0, 0, 0, 0, 3962, 07608 3963, 3963, 3963, 3963, 0, 0, 0, 0, 0, 0, 07609 3963, 0, 0, 0, 0, 0, 3963, 3963, 0, 0, 07610 0, 0, 0, 3963, 3965, 0, 0, 0, 3965, 0, 07611 3965, 0, 0, 3965, 0, 0, 0, 3965, 3966, 3966, 07612 3966, 3966, 3966, 0, 0, 3966, 0, 0, 0, 0, 07613 0, 0, 0, 0, 0, 3966, 0, 0, 0, 0, 07614 0, 3966, 0, 0, 0, 0, 0, 3966, 3967, 3967, 07615 07616 3967, 3967, 0, 0, 0, 3967, 0, 0, 0, 0, 07617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07618 0, 3967, 3968, 3968, 3968, 3968, 0, 0, 0, 0, 07619 0, 0, 0, 0, 0, 0, 0, 0, 3968, 3968, 07620 0, 0, 0, 0, 0, 3968, 3969, 3969, 3969, 3969, 07621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07622 3969, 0, 3969, 3969, 0, 0, 0, 0, 0, 3969, 07623 3970, 3970, 3970, 3970, 0, 0, 0, 0, 0, 0, 07624 0, 0, 0, 0, 0, 0, 3970, 3970, 0, 0, 07625 0, 0, 0, 3970, 3972, 3972, 3972, 3972, 0, 0, 07626 07627 0, 3972, 0, 0, 0, 0, 0, 0, 0, 0, 07628 0, 0, 0, 0, 0, 0, 0, 3972, 3973, 3973, 07629 0, 3973, 0, 3973, 3973, 3973, 3973, 3973, 3973, 3973, 07630 3973, 3973, 3973, 3973, 3973, 3973, 3973, 3973, 3973, 3973, 07631 3973, 3973, 3973, 3973, 0, 3973, 3973, 3973, 3973, 3974, 07632 3974, 3974, 3974, 0, 0, 0, 3974, 3974, 0, 0, 07633 0, 3974, 0, 0, 0, 0, 0, 0, 0, 0, 07634 0, 0, 3974, 3975, 3975, 3975, 3975, 0, 0, 0, 07635 0, 0, 0, 0, 0, 0, 0, 0, 0, 3975, 07636 3975, 0, 3975, 0, 0, 0, 3975, 3976, 3976, 3976, 07637 07638 3976, 0, 0, 0, 3976, 0, 0, 0, 3976, 0, 07639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07640 3976, 3978, 3978, 3978, 3978, 0, 0, 0, 3978, 3978, 07641 0, 0, 0, 3978, 0, 0, 0, 0, 0, 0, 07642 0, 0, 0, 0, 3978, 3979, 0, 0, 3979, 0, 07643 0, 0, 0, 3979, 0, 0, 0, 3979, 3979, 0, 07644 0, 3979, 0, 0, 0, 0, 3979, 0, 3979, 3980, 07645 3980, 0, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 07646 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 07647 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 07648 07649 3981, 3981, 0, 3981, 3981, 3981, 3981, 3981, 3981, 3981, 07650 3981, 3981, 3981, 3981, 3981, 3981, 3981, 3981, 3981, 3981, 07651 3981, 3981, 3981, 3981, 3981, 3981, 3981, 3981, 3981, 3981, 07652 3981, 3982, 3982, 3982, 3982, 0, 0, 0, 0, 0, 07653 0, 3982, 0, 0, 0, 0, 0, 3982, 0, 0, 07654 0, 0, 0, 0, 3982, 3983, 3983, 3983, 3983, 0, 07655 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07656 0, 3983, 3983, 0, 3983, 0, 0, 0, 3983, 3985, 07657 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 07658 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 07659 07660 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 07661 3986, 3986, 0, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 07662 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 07663 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 07664 3986, 3987, 3987, 0, 3987, 0, 3987, 3987, 3987, 3987, 07665 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 3987, 07666 3987, 3987, 3987, 3987, 3987, 3987, 3987, 0, 3987, 3987, 07667 3987, 3987, 3988, 3988, 3988, 3988, 3988, 3988, 3988, 3988, 07668 3988, 3988, 3988, 3988, 3988, 3988, 3988, 3988, 3988, 0, 07669 3988, 3988, 3988, 3988, 3988, 3988, 0, 3988, 3988, 3988, 07670 07671 3988, 3988, 3988, 3989, 3989, 3989, 3989, 0, 0, 0, 07672 0, 0, 0, 0, 0, 0, 0, 3989, 0, 3989, 07673 3989, 0, 0, 0, 0, 0, 3989, 3990, 3990, 3990, 07674 3990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07675 0, 3990, 0, 3990, 3990, 0, 0, 0, 0, 0, 07676 3990, 3991, 3991, 0, 3991, 0, 3991, 3991, 3991, 3991, 07677 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 3991, 07678 3991, 3991, 3991, 3991, 3991, 3991, 3991, 0, 3991, 3991, 07679 3991, 3991, 3993, 0, 0, 0, 0, 3993, 3993, 3993, 07680 3993, 3993, 3993, 3993, 3993, 0, 3993, 0, 0, 3993, 07681 07682 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 3993, 07683 3993, 3993, 3993, 3995, 3995, 3995, 3995, 0, 0, 0, 07684 0, 0, 0, 0, 0, 0, 0, 3995, 0, 3995, 07685 0, 0, 0, 0, 0, 0, 3995, 3998, 3998, 0, 07686 3998, 0, 3998, 3998, 3998, 3998, 3998, 3998, 3998, 3998, 07687 3998, 3998, 3998, 3998, 3998, 3998, 3998, 3998, 3998, 3998, 07688 3998, 3998, 3998, 0, 3998, 3998, 3998, 3998, 3999, 3999, 07689 3999, 3999, 0, 0, 0, 0, 0, 0, 0, 0, 07690 0, 0, 0, 0, 3999, 3999, 0, 0, 0, 0, 07691 0, 3999, 4000, 4000, 0, 4000, 0, 4000, 4000, 4000, 07692 07693 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 07694 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 0, 4000, 07695 4000, 4000, 4000, 4002, 4002, 0, 4002, 0, 4002, 4002, 07696 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 07697 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 4002, 0, 07698 4002, 4002, 4002, 4002, 4003, 4003, 0, 4003, 0, 4003, 07699 4003, 4003, 4003, 4003, 4003, 4003, 4003, 4003, 4003, 4003, 07700 4003, 4003, 4003, 4003, 4003, 4003, 4003, 4003, 4003, 4003, 07701 0, 4003, 4003, 4003, 4003, 4004, 4004, 0, 4004, 0, 07702 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004, 07703 07704 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004, 07705 4004, 0, 4004, 4004, 4004, 4004, 4005, 4005, 0, 4005, 07706 0, 4005, 4005, 4005, 4005, 4005, 4005, 4005, 4005, 4005, 07707 4005, 4005, 4005, 4005, 4005, 4005, 4005, 4005, 4005, 4005, 07708 4005, 4005, 0, 4005, 4005, 4005, 4005, 4006, 4006, 0, 07709 4006, 4006, 4006, 4006, 4006, 4006, 4006, 0, 4006, 4006, 07710 4006, 4006, 4006, 0, 4006, 4006, 4006, 4006, 4006, 4006, 07711 4006, 4006, 4006, 4006, 4006, 0, 0, 4006, 4007, 4007, 07712 0, 4007, 0, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 07713 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 07714 07715 4007, 4007, 4007, 4007, 0, 4007, 4007, 4007, 4007, 4008, 07716 4008, 4008, 4008, 4008, 4008, 4008, 4008, 4008, 4008, 4008, 07717 4008, 4008, 4008, 4008, 4008, 4008, 0, 4008, 4008, 4008, 07718 4008, 4008, 4008, 0, 4008, 4008, 4008, 4008, 4008, 4008, 07719 4009, 0, 0, 4009, 0, 0, 0, 4009, 4009, 0, 07720 0, 0, 4009, 0, 0, 0, 0, 0, 0, 0, 07721 0, 0, 0, 4009, 4010, 4010, 0, 4010, 4010, 4010, 07722 4010, 4010, 4010, 4010, 4010, 4010, 4010, 0, 4010, 4010, 07723 0, 4010, 4010, 4010, 4010, 4010, 4010, 0, 4010, 4010, 07724 0, 4010, 4010, 4010, 4010, 4011, 4011, 4011, 4011, 4011, 07725 07726 4011, 4011, 4011, 4011, 4011, 4011, 4011, 4011, 4011, 4011, 07727 4011, 4011, 0, 4011, 4011, 4011, 4011, 4011, 4011, 0, 07728 4011, 4011, 4011, 4011, 4011, 4011, 4012, 4012, 4012, 4012, 07729 0, 0, 0, 0, 0, 0, 4012, 0, 0, 0, 07730 0, 0, 4012, 4012, 0, 0, 0, 0, 0, 4012, 07731 4013, 0, 0, 0, 4013, 0, 4013, 0, 0, 4013, 07732 0, 0, 0, 4013, 4014, 4014, 4014, 4014, 0, 0, 07733 0, 4014, 0, 0, 0, 0, 0, 0, 0, 0, 07734 0, 0, 0, 0, 0, 0, 0, 4014, 4017, 4017, 07735 4017, 4017, 0, 0, 0, 0, 0, 0, 0, 0, 07736 07737 0, 0, 0, 0, 4017, 4017, 0, 0, 0, 0, 07738 0, 4017, 4018, 4018, 4018, 4018, 0, 0, 0, 0, 07739 0, 0, 0, 0, 0, 0, 4018, 0, 4018, 4018, 07740 0, 0, 0, 0, 0, 4018, 4019, 4019, 4019, 4019, 07741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07742 0, 0, 4019, 4019, 0, 4019, 0, 0, 0, 4019, 07743 4020, 0, 0, 4020, 0, 0, 0, 0, 4020, 0, 07744 0, 0, 4020, 4020, 0, 0, 4020, 0, 0, 0, 07745 0, 4020, 0, 4020, 4023, 4023, 4023, 4023, 0, 0, 07746 0, 0, 0, 0, 0, 4023, 0, 0, 0, 0, 07747 07748 4023, 4023, 0, 4023, 0, 0, 0, 4023, 4024, 4024, 07749 0, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 07750 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 07751 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4024, 4025, 07752 4025, 0, 4025, 4025, 4025, 4025, 4025, 4025, 4025, 4025, 07753 4025, 4025, 4025, 4025, 4025, 4025, 4025, 4025, 4025, 4025, 07754 4025, 4025, 4025, 4025, 4025, 4025, 4025, 4025, 4025, 4025, 07755 4026, 4026, 4026, 4026, 0, 0, 0, 0, 0, 0, 07756 4026, 0, 0, 0, 0, 0, 4026, 0, 0, 0, 07757 0, 0, 0, 4026, 4027, 4027, 4027, 4027, 0, 0, 07758 07759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07760 4027, 4027, 0, 4027, 0, 0, 0, 4027, 4029, 4029, 07761 0, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 07762 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 07763 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4030, 07764 4030, 4030, 4030, 0, 0, 0, 0, 0, 0, 0, 07765 0, 0, 0, 4030, 0, 4030, 4030, 0, 0, 0, 07766 0, 0, 4030, 4031, 4031, 4031, 4031, 0, 0, 0, 07767 0, 0, 0, 0, 0, 0, 0, 0, 0, 4031, 07768 0, 0, 0, 0, 0, 0, 4031, 4032, 0, 0, 07769 07770 0, 0, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 07771 0, 4032, 0, 0, 4032, 4032, 4032, 4032, 4032, 4032, 07772 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4034, 4034, 07773 4034, 4034, 0, 0, 0, 4034, 0, 0, 0, 0, 07774 4034, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07775 0, 4034, 4035, 4035, 0, 4035, 4035, 4035, 0, 4035, 07776 4035, 4035, 4035, 4035, 4035, 4035, 4035, 4035, 4035, 4035, 07777 4035, 4035, 4035, 4035, 4035, 4035, 4035, 4035, 4035, 4035, 07778 4035, 4035, 4035, 4036, 4036, 0, 4036, 4036, 4036, 4036, 07779 4036, 4036, 4036, 4036, 4036, 4036, 0, 4036, 4036, 0, 07780 07781 4036, 4036, 4036, 4036, 4036, 4036, 0, 4036, 4036, 0, 07782 4036, 4036, 4036, 4036, 4037, 4037, 4037, 4037, 0, 0, 07783 0, 0, 0, 0, 4037, 0, 0, 0, 0, 0, 07784 4037, 4037, 0, 0, 0, 0, 0, 4037, 4038, 4038, 07785 4038, 4038, 0, 0, 0, 4038, 4038, 0, 0, 0, 07786 4038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07787 0, 4038, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 07788 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 0, 07789 4043, 4043, 4043, 4043, 4043, 4043, 0, 4043, 4043, 4043, 07790 4043, 4043, 4043, 4046, 4046, 4046, 4046, 4046, 4046, 4046, 07791 07792 4046, 4046, 4046, 4046, 4046, 4046, 4046, 4046, 4046, 4046, 07793 0, 4046, 4046, 4046, 4046, 4046, 4046, 0, 4046, 4046, 07794 4046, 4046, 4046, 4046, 4048, 4048, 4048, 4048, 0, 0, 07795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 07796 4048, 0, 0, 0, 4048, 0, 0, 4048, 3549, 3549, 07797 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 07798 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 07799 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 07800 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 07801 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 07802 07803 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 07804 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 07805 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 07806 3549 07807 } ; 07808 07809 extern int scanYY_flex_debug; 07810 int scanYY_flex_debug = 0; 07811 07812 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0; 07813 static char *yy_full_match; 07814 static int yy_lp; 07815 static int yy_looking_for_trail_begin = 0; 07816 static int yy_full_lp; 07817 static int *yy_full_state; 07818 #define YY_TRAILING_MASK 0x2000 07819 #define YY_TRAILING_HEAD_MASK 0x4000 07820 #define REJECT \ 07821 { \ 07822 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ \ 07823 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \ 07824 (yy_lp) = yy_full_lp; /* restore orig. accepting pos. */ \ 07825 (yy_state_ptr) = yy_full_state; /* restore orig. state */ \ 07826 yy_current_state = *(yy_state_ptr); /* restore curr. state */ \ 07827 ++(yy_lp); \ 07828 goto find_rule; \ 07829 } 07830 07831 #define yymore() yymore_used_but_not_detected 07832 #define YY_MORE_ADJ 0 07833 #define YY_RESTORE_YY_MORE_OFFSET 07834 char *scanYYtext; 07835 #line 1 "scanner.l" 07836 /***************************************************************************** 07837 * 07838 * $Id: scanner.l,v 1.80 2001/03/19 19:27:41 root Exp $ 07839 * 07840 * Copyright (C) 1997-2008 by Dimitri van Heesch. 07841 * 07842 * Permission to use, copy, modify, and distribute this software and its 07843 * documentation under the terms of the GNU General Public License is hereby 07844 * granted. No representations are made about the suitability of this software 07845 * for any purpose. It is provided "as is" without express or implied warranty. 07846 * See the GNU General Public License for more details. 07847 * 07848 * Documents produced by Doxygen are derivative works derived from the 07849 * input used in their production; they are not affected by this license. 07850 * 07851 */ 07852 #line 19 "scanner.l" 07853 07854 /* 07855 * includes 07856 */ 07857 #include <stdio.h> 07858 #include <stdlib.h> 07859 #include <assert.h> 07860 #include <ctype.h> 07861 07862 #include "qtbc.h" 07863 #include <qarray.h> 07864 #include <qstack.h> 07865 #include <qregexp.h> 07866 #include <unistd.h> 07867 #include <qfile.h> 07868 07869 #include "scanner.h" 07870 #include "entry.h" 07871 #include "message.h" 07872 #include "config.h" 07873 #include "doxygen.h" 07874 #include "util.h" 07875 #include "defargs.h" 07876 #include "language.h" 07877 #include "commentscan.h" 07878 #include "code.h" 07879 07880 #define YY_NEVER_INTERACTIVE 1 07881 07882 /* ----------------------------------------------------------------- 07883 * 07884 * statics 07885 */ 07886 static ParserInterface *g_thisParser; 07887 static const char * inputString; 07888 static int inputPosition; 07889 static QFile inputFile; 07890 static int lastContext; 07891 static int lastCContext; 07892 static int lastDocContext; 07893 static int lastCPPContext; 07894 static int lastSkipSharpContext; 07895 static int lastSkipRoundContext; 07896 static int lastStringContext; 07897 static int lastCurlyContext; 07898 static int lastRoundContext; 07899 static int lastSquareContext; 07900 static int lastInitializerContext; 07901 static int lastClassTemplSpecContext; 07902 static int lastPreLineCtrlContext; 07903 static int lastSkipVerbStringContext; 07904 static int lastCommentInArgContext; 07905 static int lastCSConstraint; 07906 static Protection protection; 07907 static Protection baseProt; 07908 static int sharpCount = 0 ; 07909 static int roundCount = 0 ; 07910 static int curlyCount = 0 ; 07911 static int squareCount = 0 ; 07912 static int padCount = 0 ; 07913 static QCString slString; 07914 static Entry* current_root = 0 ; 07915 static Entry* global_root = 0 ; 07916 static Entry* current = 0 ; 07917 static Entry* previous = 0 ; 07918 static Entry* tempEntry = 0 ; 07919 static Entry* firstTypedefEntry = 0 ; 07920 static Entry* memspecEntry = 0 ; 07921 static int yyLineNr = 1 ; 07922 static int anonCount = 0 ; 07923 static int anonNSCount = 0 ; 07924 static QCString yyFileName; 07925 static MethodTypes mtype; 07926 static bool gstat; 07927 static bool removeSlashes; 07928 static Specifier virt; 07929 static Specifier baseVirt; 07930 static QCString msType,msName,msArgs; 07931 static bool isTypedef; 07932 static int tmpDocType; 07933 static QCString sectionLabel; 07934 static QCString sectionTitle; 07935 static QCString funcPtrType; 07936 static QCString templateStr; 07937 static QCString aliasName; 07938 static QCString baseName; 07939 static QCString* specName; 07940 static QCString formulaText; 07941 static QCString formulaEnd; 07942 static bool useOverrideCommands = FALSE; 07943 07944 static bool insideIDL = FALSE; 07945 static bool insideJava = FALSE; 07946 static bool insideCS = FALSE; 07947 static bool insideD = FALSE; 07948 static bool insidePHP = FALSE; 07949 static bool insideObjC = FALSE; 07950 static bool insideCli = FALSE; 07951 static bool insideJS = FALSE; 07952 07953 static bool insideCppQuote = FALSE; 07954 static bool insideProtocolList = FALSE; 07955 07956 static int argRoundCount; 07957 static int argSharpCount; 07958 static int currentArgumentContext; 07959 static int lastCopyArgStringContext; 07960 static int lastCopyArgContext; 07961 static QCString *copyArgString; 07962 static QCString fullArgString; 07963 07964 static ArgumentList *currentArgumentList; 07965 static char lastCopyArgChar; 07966 07967 static QCString *pCopyQuotedString; 07968 static QCString *pCopyRoundString; 07969 static QCString *pCopyCurlyString; 07970 07971 static QGString *pCopyCurlyGString; 07972 static QGString *pCopyRoundGString; 07973 static QGString *pCopyQuotedGString; 07974 static QGString *pSkipVerbString; 07975 static QStack<Grouping> autoGroupStack; 07976 07977 static bool insideFormula; 07978 static bool insideTryBlock=FALSE; 07979 static bool insideCode; 07980 static bool needsSemi; 07981 07982 static int depthIf; 07983 static int initBracketCount; 07984 static QCString memberGroupRelates; 07985 static QCString memberGroupInside; 07986 static QCString xrefItemKey; 07987 static QCString xrefItemTitle; 07988 static QCString xrefListTitle; 07989 07990 static QCString g_skipBlockName; 07991 static QCString oldStyleArgType; 07992 static QCString docBackup; 07993 static QCString briefBackup; 07994 static bool g_inputFromFile; 07995 07996 static int docBlockContext; 07997 static QCString docBlock; 07998 static QCString docBlockName; 07999 static bool docBlockInBody; 08000 static bool docBlockAutoBrief; 08001 static char docBlockTerm; 08002 08003 static QCString idlAttr; 08004 static QCString idlProp; 08005 08006 static bool g_lexInit = FALSE; 08007 08008 08009 //----------------------------------------------------------------------------- 08010 08011 // forward declarations 08012 //static void handleGroupStartCommand(const char *header); 08013 //static void handleGroupEndCommand(); 08014 08015 //----------------------------------------------------------------------------- 08016 08017 static void initParser() 08018 { 08019 sectionLabel.resize(0); 08020 sectionTitle.resize(0); 08021 baseName.resize(0); 08022 formulaText.resize(0); 08023 protection = Public; 08024 baseProt = Public; 08025 sharpCount = 0; 08026 roundCount = 0; 08027 curlyCount = 0; 08028 mtype = Method; 08029 gstat = FALSE; 08030 virt = Normal; 08031 baseVirt = Normal; 08032 isTypedef = FALSE; 08033 autoGroupStack.clear(); 08034 insideTryBlock = FALSE; 08035 autoGroupStack.setAutoDelete(TRUE); 08036 insideFormula = FALSE; 08037 insideCode=FALSE; 08038 insideCli=Config_getBool("CPP_CLI_SUPPORT"); 08039 previous = 0; 08040 } 08041 08042 static void initEntry() 08043 { 08044 if (insideJava) 08045 { 08046 protection = (current_root->spec & Entry::Interface) ? Public : Package; 08047 } 08048 current->protection = protection ; 08049 current->mtype = mtype; 08050 current->virt = virt; 08051 current->stat = gstat; 08052 current->objc = insideObjC; 08053 //if (!autoGroupStack.isEmpty()) 08054 //{ 08055 // //printf("Appending group %s\n",autoGroupStack.top()->groupname.data()); 08056 // current->groups->append(new Grouping(*autoGroupStack.top())); 08057 //} 08058 initGroupInfo(current); 08059 isTypedef=FALSE; 08060 } 08061 08062 08063 //----------------------------------------------------------------------------- 08064 08066 //static void setCurrentGroup( QCString *newgroup, Grouping::GroupPri_t pri ) 08067 //{ 08068 // /* remove auto group name from current entry and discard it */ 08069 // Grouping *g = current->groups->first(); 08070 // int i=0; 08071 // while (g) 08072 // { 08073 // if (g->pri <= Grouping::GROUPING_AUTO_DEF) 08074 // { 08075 // current->groups->remove(i); 08076 // i--; 08077 // } 08078 // g=current->groups->next(); 08079 // i++; 08080 // } 08081 // 08082 // /* use new group name instead? */ 08083 // if ( newgroup ) 08084 // { 08085 // current->groups->append(new Grouping(*newgroup, pri)); 08086 // } 08087 //} 08088 // 08089 //static int newMemberGroupId() 08090 //{ 08091 // static int curGroupId=0; 08092 // return curGroupId++; 08093 //} 08094 // 08095 // forward declarations 08096 //static void startGroupInDoc(); 08097 //static void endGroup(); 08098 08099 //----------------------------------------------------------------------------- 08100 08101 static void lineCount() 08102 { 08103 for( const char* c = scanYYtext ; *c ; ++c ) 08104 yyLineNr += (*c == '\n') ; 08105 } 08106 08107 static void addType( Entry* current ) 08108 { 08109 uint tl=current->type.length(); 08110 if( tl>0 && !current->name.isEmpty() && current->type.at(tl-1)!='.') 08111 { 08112 current->type += ' ' ; 08113 } 08114 current->type += current->name ; 08115 current->name.resize(0) ; 08116 tl=current->type.length(); 08117 if( tl>0 && !current->args.isEmpty() && current->type.at(tl-1)!='.') 08118 { 08119 current->type += ' ' ; 08120 } 08121 current->type += current->args ; 08122 current->args.resize(0) ; 08123 current->argList->clear(); 08124 } 08125 08126 08127 static QCString stripQuotes(const char *s) 08128 { 08129 QCString name; 08130 if (s==0 || *s==0) return name; 08131 name=s; 08132 if (name.at(0)=='"' && name.at(name.length()-1)=='"') 08133 { 08134 name=name.mid(1,name.length()-2); 08135 } 08136 return name; 08137 } 08138 08139 //----------------------------------------------------------------- 08140 08141 static void startCommentBlock(bool); 08142 static void handleCommentBlock(const QCString &doc,bool brief); 08143 static void handleParametersCommentBlocks(ArgumentList *al); 08144 08145 //----------------------------------------------------------------- 08146 08147 static bool nameIsOperator(QCString &name) 08148 { 08149 int i=name.find("operator"); 08150 if (i==-1) return FALSE; 08151 if (i==0 && !isId(name.at(8))) return TRUE; // case operator ::X 08152 if (i>0 && !isId(name.at(i-1)) && !isId(name.at(i+8))) return TRUE; // case X::operator 08153 return FALSE; // case TEXToperatorTEXT 08154 } 08155 08156 //----------------------------------------------------------------------------- 08157 08158 static void setContext() 08159 { 08160 QCString fileName = yyFileName; 08161 SrcLangExt langExt = getLanguageFromFileName(fileName); 08162 insideIDL = langExt==SrcLangExt_IDL; 08163 insideJava = langExt==SrcLangExt_Java; 08164 insideCS = langExt==SrcLangExt_CSharp; 08165 insideD = langExt==SrcLangExt_D; 08166 insidePHP = langExt==SrcLangExt_PHP; 08167 insideObjC = langExt==SrcLangExt_ObjC; 08168 insideJS = langExt==SrcLangExt_JS; 08169 if ( insidePHP ) 08170 { 08171 useOverrideCommands = TRUE; 08172 } 08173 //printf("setContext(%s) insideIDL=%d insideJava=%d insideCS=%d " 08174 // "insideD=%d insidePHP=%d insideObjC=%d\n", 08175 // yyFileName.data(),insideIDL,insideJava,insideCS,insideD,insidePHP,insideObjC 08176 // ); 08177 } 08178 08179 //----------------------------------------------------------------------------- 08180 08181 static void prependScope() 08182 { 08183 if (current_root->section & Entry::SCOPE_MASK) 08184 { 08185 //printf("--- prependScope %s to %s\n",current_root->name.data(),current->name.data()); 08186 current->name.prepend(current_root->name+"::"); 08187 if (current_root->tArgLists) 08188 { 08189 if (current->tArgLists==0) 08190 { 08191 current->tArgLists = new QList<ArgumentList>; 08192 current->tArgLists->setAutoDelete(TRUE); 08193 } 08194 //printf("prependScope #=%d #current=%d\n",current_root->tArgLists->count(),current->tArgLists->count()); 08195 QListIterator<ArgumentList> talsi(*current_root->tArgLists); 08196 ArgumentList *srcAl=0; 08197 for (talsi.toLast();(srcAl=talsi.current());--talsi) 08198 { 08199 ArgumentList *dstAl = new ArgumentList; 08200 QListIterator<Argument> tali(*srcAl); 08201 Argument *a; 08202 for (;(a=tali.current());++tali) 08203 { 08204 dstAl->append(new Argument(*a)); 08205 //printf("appending argument %s %s\n",a->type.data(),a->name.data()); 08206 } 08207 current->tArgLists->insert(0,dstAl); 08208 } 08209 } 08210 } 08211 } 08212 08213 //----------------------------------------------------------------------------- 08214 08216 static bool checkForKnRstyleC() 08217 { 08218 if (((QCString)yyFileName).right(2).lower()!=".c") return FALSE; // must be a C file 08219 if (!current->argList) return FALSE; // must have arguments 08220 ArgumentListIterator ali(*current->argList); 08221 Argument *a; 08222 for (ali.toFirst();(a=ali.current());++ali) 08223 { 08224 // in K&R style argument do not have a type, but doxygen expects a type 08225 // so it will think the argument has no name 08226 if (a->type.isEmpty() || !a->name.isEmpty()) return FALSE; 08227 } 08228 return TRUE; 08229 } 08230 08231 //----------------------------------------------------------------------------- 08232 08233 static void splitKnRArg(QCString &oldStyleArgPtr,QCString &oldStyleArgName) 08234 { 08235 int si = current->args.length(); 08236 if (oldStyleArgType.isEmpty()) // new argument 08237 { 08238 static QRegExp re("([^)]*)"); 08239 int bi1 = current->args.findRev(re); 08240 int bi2 = bi1!=-1 ? current->args.findRev(re,bi1-1) : -1; 08241 char c; 08242 if (bi1!=-1 && bi2!=-1) // found something like "int (*func)(int arg)" 08243 { 08244 int s=bi2+1; 08245 oldStyleArgType = current->args.left(s); 08246 int i=s; 08247 while (i<si && ((c=current->args.at(i))=='*' || isspace((uchar)c))) i++; 08248 oldStyleArgType += current->args.mid(s,i-s); 08249 s=i; 08250 while (i<si && isId(current->args.at(i))) i++; 08251 oldStyleArgName = current->args.mid(s,i-s); 08252 oldStyleArgType+=current->args.mid(i); 08253 } 08254 else if (bi1!=-1) // redundant braces like in "int (*var)" 08255 { 08256 int s=bi1; 08257 oldStyleArgType = current->args.left(s); 08258 s++; 08259 int i=s+1; 08260 while (i<si && ((c=current->args.at(i))=='*' || isspace((uchar)c))) i++; 08261 oldStyleArgType += current->args.mid(s,i-s); 08262 s=i; 08263 while (i<si && isId(current->args.at(i))) i++; 08264 oldStyleArgName = current->args.mid(s,i-s); 08265 } 08266 else // normal "int *var" 08267 { 08268 int l=si,i=l-1,j; 08269 char c; 08270 // look for start of name in "type *name" 08271 while (i>=0 && isId(current->args.at(i))) i--; 08272 j=i+1; 08273 // look for start of *'s 08274 while (i>=0 && ((c=current->args.at(i))=='*' || isspace((uchar)c))) i--; 08275 i++; 08276 if (i!=l) 08277 { 08278 oldStyleArgType=current->args.left(i); 08279 oldStyleArgPtr=current->args.mid(i,j-i); 08280 oldStyleArgName=current->args.mid(j).stripWhiteSpace(); 08281 } 08282 else 08283 { 08284 oldStyleArgName=current->args.copy().stripWhiteSpace(); 08285 } 08286 } 08287 } 08288 else // continuation like *arg2 in "int *args,*arg2" 08289 { 08290 int l=si,j=0; 08291 char c; 08292 while (j<l && ((c=current->args.at(j))=='*' || isspace((uchar)c))) j++; 08293 if (j>0) 08294 { 08295 oldStyleArgPtr=current->args.left(j); 08296 oldStyleArgName=current->args.mid(j).stripWhiteSpace(); 08297 } 08298 else 08299 { 08300 oldStyleArgName=current->args.copy().stripWhiteSpace(); 08301 } 08302 } 08303 //fprintf(stderr,"type=%s ptr=%s name=%s\n",oldStyleArgType.data(),oldStyleArgPtr.data(),oldStyleArgName.data()); 08304 } 08305 08306 //----------------------------------------------------------------------------- 08307 08312 static void addKnRArgInfo(const QCString &type,const QCString &name, 08313 const QCString &brief,const QCString &docs) 08314 { 08315 if (current->argList==0) return; 08316 ArgumentListIterator ali(*current->argList); 08317 Argument *a; 08318 for (ali.toFirst();(a=ali.current());++ali) 08319 { 08320 if (a->type==name) 08321 { 08322 a->type=type.stripWhiteSpace(); 08323 if (a->type.left(9)=="register ") // strip keyword 08324 { 08325 a->type=a->type.mid(9); 08326 } 08327 a->name=name.stripWhiteSpace(); 08328 if (!brief.isEmpty() && !docs.isEmpty()) 08329 { 08330 a->docs=brief+"\n\n"+docs; 08331 } 08332 else if (!brief.isEmpty()) 08333 { 08334 a->docs=brief; 08335 } 08336 else 08337 { 08338 a->docs=docs; 08339 } 08340 } 08341 } 08342 } 08343 08344 //----------------------------------------------------------------------------- 08345 08346 08347 void fixArgumentListForJavaScript(ArgumentList *al) 08348 { 08349 if (al==0) return; 08350 ArgumentListIterator ali(*al); 08351 Argument *a; 08352 for (ali.toFirst();(a=ali.current());++ali) 08353 { 08354 if (!a->type.isEmpty() && a->name.isEmpty()) 08355 { // a->type is actually the (typeless) parameter name, so move it 08356 a->name=a->type; 08357 a->type.resize(0); 08358 } 08359 } 08360 } 08361 08362 /* ----------------------------------------------------------------- */ 08363 #undef YY_INPUT 08364 #define YY_INPUT(buf,result,max_size) result=yyread(buf,max_size); 08365 08366 static int yyread(char *buf,int max_size) 08367 { 08368 int c=0; 08369 if (g_inputFromFile) 08370 { 08371 c = inputFile.readBlock(buf,max_size); 08372 if (c==-1) yy_fatal_error("input in flex scanner failed"); 08373 } 08374 else 08375 { 08376 while( c < max_size && inputString[inputPosition] ) 08377 { 08378 *buf = inputString[inputPosition++] ; 08379 //printf("%d (%c)\n",*buf,*buf); 08380 c++; buf++; 08381 } 08382 } 08383 return c; 08384 } 08385 08386 /* start command character */ 08387 /* language parsing states */ 08388 08389 08390 08391 08392 08393 08394 08395 08396 08397 08398 08399 08400 08401 08402 08403 08404 08405 08406 08407 08408 08409 08410 08411 08412 08413 08414 08415 08416 08417 08418 08419 08420 08421 08422 08423 08424 08425 08426 08427 08428 08429 08430 08431 08432 08433 08434 08435 08436 08437 08438 08439 08440 08441 08442 08443 08444 08445 08446 08447 08448 08449 08450 08451 08452 08453 08454 08455 08456 08457 08458 08459 08460 08461 08462 08463 08464 08465 08466 08467 08468 08469 08470 08471 08472 08473 08474 08475 08476 08477 08478 08479 08480 08481 08482 08483 08484 08485 08486 08487 08488 08489 08490 08491 08492 08493 08494 08495 08496 08497 08498 08499 08510 #line 8511 "<stdout>" 08511 08512 #define INITIAL 0 08513 #define Define 1 08514 #define DefineEnd 2 08515 #define CompoundName 3 08516 #define ClassVar 4 08517 #define CSConstraintName 5 08518 #define CSConstraintType 6 08519 #define ClassCategory 7 08520 #define ClassTemplSpec 8 08521 #define CliPropertyType 9 08522 #define CliOverride 10 08523 #define Bases 11 08524 #define BasesProt 12 08525 #define NextSemi 13 08526 #define BitFields 14 08527 #define FindMembers 15 08528 #define FindMembersPHP 16 08529 #define FindMemberName 17 08530 #define FindFields 18 08531 #define FindFieldArg 19 08532 #define Function 20 08533 #define FuncRound 21 08534 #define ExcpRound 22 08535 #define ExcpList 23 08536 #define FuncQual 24 08537 #define Operator 25 08538 #define Array 26 08539 #define ReadBody 27 08540 #define ReadNSBody 28 08541 #define ReadBodyIntf 29 08542 #define Using 30 08543 #define UsingDirective 31 08544 #define SkipCurly 32 08545 #define SkipCurlyCpp 33 08546 #define SkipCurlyEndDoc 34 08547 #define SkipString 35 08548 #define SkipPHPString 36 08549 #define SkipInits 37 08550 #define SkipCPP 38 08551 #define SkipCPPBlock 39 08552 #define SkipComment 40 08553 #define SkipCxxComment 41 08554 #define SkipCurlyBlock 42 08555 #define SkipRoundBlock 43 08556 #define Sharp 44 08557 #define SkipSharp 45 08558 #define SkipRound 46 08559 #define SkipSquare 47 08560 #define SkipRemainder 48 08561 #define TypedefName 49 08562 #define TryFunctionBlock 50 08563 #define TryFunctionBlockEnd 51 08564 #define Comment 52 08565 #define PackageName 53 08566 #define JavaImport 54 08567 #define CSAccessorDecl 55 08568 #define PreLineCtrl 56 08569 #define DefinePHP 57 08570 #define DefinePHPEnd 58 08571 #define OldStyleArgs 59 08572 #define SkipVerbString 60 08573 #define ObjCMethod 61 08574 #define ObjCReturnType 62 08575 #define ObjCParams 63 08576 #define ObjCParamType 64 08577 #define ObjCProtocolList 65 08578 #define ObjCPropAttr 66 08579 #define ObjCSkipStatement 67 08580 #define QtPropType 68 08581 #define QtPropName 69 08582 #define QtPropAttr 70 08583 #define QtPropRead 71 08584 #define QtPropWrite 72 08585 #define ReadInitializer 73 08586 #define GetCallType 74 08587 #define CppQuote 75 08588 #define EndCppQuote 76 08589 #define MemberSpec 77 08590 #define MemberSpecSkip 78 08591 #define EndTemplate 79 08592 #define FuncPtr 80 08593 #define FuncPtrOperator 81 08594 #define EndFuncPtr 82 08595 #define ReadFuncArgType 83 08596 #define ReadTempArgs 84 08597 #define IDLUnionCase 85 08598 #define NSAliasName 86 08599 #define NSAliasArg 87 08600 #define CopyString 88 08601 #define CopyPHPString 89 08602 #define CopyGString 90 08603 #define CopyPHPGString 91 08604 #define CopyRound 92 08605 #define CopyCurly 93 08606 #define GCopyRound 94 08607 #define GCopyCurly 95 08608 #define SkipUnionSwitch 96 08609 #define Specialization 97 08610 #define FuncPtrInit 98 08611 #define FuncFunc 99 08612 #define FuncFuncEnd 100 08613 #define FuncFuncType 101 08614 #define FuncFuncArray 102 08615 #define CopyArgString 103 08616 #define CopyArgPHPString 104 08617 #define CopyArgRound 105 08618 #define CopyArgSharp 106 08619 #define CopyArgComment 107 08620 #define CopyArgCommentLine 108 08621 #define CopyArgVerbatim 109 08622 #define IDLAttribute 110 08623 #define IDLProp 111 08624 #define IDLPropName 112 08625 #define Prototype 113 08626 #define PrototypePtr 114 08627 #define PrototypeQual 115 08628 #define PrototypeExc 116 08629 #define PrototypeSkipLine 117 08630 #define DocLine 118 08631 #define DocBlock 119 08632 #define DocCopyBlock 120 08633 08634 #ifndef YY_NO_UNISTD_H 08635 /* Special case for "unistd.h", since it is non-ANSI. We include it way 08636 * down here because we want the user's section 1 to have been scanned first. 08637 * The user has a chance to override it with an option. 08638 */ 08639 #include <unistd.h> 08640 #endif 08641 08642 #ifndef YY_EXTRA_TYPE 08643 #define YY_EXTRA_TYPE void * 08644 #endif 08645 08646 static int yy_init_globals (void ); 08647 08648 /* Macros after this point can all be overridden by user definitions in 08649 * section 1. 08650 */ 08651 08652 #ifndef YY_SKIP_YYWRAP 08653 #ifdef __cplusplus 08654 extern "C" int scanYYwrap (void ); 08655 #else 08656 extern int scanYYwrap (void ); 08657 #endif 08658 #endif 08659 08660 static void yyunput (int c,char *buf_ptr ); 08661 08662 #ifndef yytext_ptr 08663 static void yy_flex_strncpy (char *,yyconst char *,int ); 08664 #endif 08665 08666 #ifdef YY_NEED_STRLEN 08667 static int yy_flex_strlen (yyconst char * ); 08668 #endif 08669 08670 #ifndef YY_NO_INPUT 08671 08672 #ifdef __cplusplus 08673 static int yyinput (void ); 08674 #else 08675 static int input (void ); 08676 #endif 08677 08678 #endif 08679 08680 /* Amount of stuff to slurp up with each read. */ 08681 #ifndef YY_READ_BUF_SIZE 08682 #define YY_READ_BUF_SIZE 8192 08683 #endif 08684 08685 /* Copy whatever the last rule matched to the standard output. */ 08686 #ifndef ECHO 08687 /* This used to be an fputs(), but since the string might contain NUL's, 08688 * we now use fwrite(). 08689 */ 08690 #define ECHO (void) fwrite( scanYYtext, scanYYleng, 1, scanYYout ) 08691 #endif 08692 08693 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 08694 * is returned in "result". 08695 */ 08696 #ifndef YY_INPUT 08697 #define YY_INPUT(buf,result,max_size) \ 08698 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ 08699 { \ 08700 int c = '*'; \ 08701 size_t n; \ 08702 for ( n = 0; n < max_size && \ 08703 (c = getc( scanYYin )) != EOF && c != '\n'; ++n ) \ 08704 buf[n] = (char) c; \ 08705 if ( c == '\n' ) \ 08706 buf[n++] = (char) c; \ 08707 if ( c == EOF && ferror( scanYYin ) ) \ 08708 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 08709 result = n; \ 08710 } \ 08711 else \ 08712 { \ 08713 errno=0; \ 08714 while ( (result = fread(buf, 1, max_size, scanYYin))==0 && ferror(scanYYin)) \ 08715 { \ 08716 if( errno != EINTR) \ 08717 { \ 08718 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 08719 break; \ 08720 } \ 08721 errno=0; \ 08722 clearerr(scanYYin); \ 08723 } \ 08724 }\ 08725 \ 08726 08727 #endif 08728 08729 /* No semi-colon after return; correct usage is to write "yyterminate();" - 08730 * we don't want an extra ';' after the "return" because that will cause 08731 * some compilers to complain about unreachable statements. 08732 */ 08733 #ifndef yyterminate 08734 #define yyterminate() return YY_NULL 08735 #endif 08736 08737 /* Number of entries by which start-condition stack grows. */ 08738 #ifndef YY_START_STACK_INCR 08739 #define YY_START_STACK_INCR 25 08740 #endif 08741 08742 /* Report a fatal error. */ 08743 #ifndef YY_FATAL_ERROR 08744 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 08745 #endif 08746 08747 /* end tables serialization structures and prototypes */ 08748 08749 /* Default declaration of generated scanner - a define so the user can 08750 * easily add parameters. 08751 */ 08752 #ifndef YY_DECL 08753 #define YY_DECL_IS_OURS 1 08754 08755 extern int scanYYlex (void); 08756 08757 #define YY_DECL int scanYYlex (void) 08758 #endif /* !YY_DECL */ 08759 08760 /* Code executed at the beginning of each rule, after scanYYtext and scanYYleng 08761 * have been set up. 08762 */ 08763 #ifndef YY_USER_ACTION 08764 #define YY_USER_ACTION 08765 #endif 08766 08767 /* Code executed at the end of each rule. */ 08768 #ifndef YY_BREAK 08769 #define YY_BREAK break; 08770 #endif 08771 08772 #define YY_RULE_SETUP \ 08773 if ( scanYYleng > 0 ) \ 08774 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ 08775 (scanYYtext[scanYYleng - 1] == '\n'); \ 08776 YY_USER_ACTION 08777 08780 YY_DECL 08781 { 08782 register yy_state_type yy_current_state; 08783 register char *yy_cp, *yy_bp; 08784 register int yy_act; 08785 08786 #line 719 "scanner.l" 08787 08788 08789 #line 8790 "<stdout>" 08790 08791 if ( !(yy_init) ) 08792 { 08793 (yy_init) = 1; 08794 08795 #ifdef YY_USER_INIT 08796 YY_USER_INIT; 08797 #endif 08798 08799 /* Create the reject buffer large enough to save one state per allowed character. */ 08800 if ( ! (yy_state_buf) ) 08801 (yy_state_buf) = (yy_state_type *)scanYYalloc(YY_STATE_BUF_SIZE ); 08802 08803 if ( ! (yy_start) ) 08804 (yy_start) = 1; /* first start state */ 08805 08806 if ( ! scanYYin ) 08807 scanYYin = stdin; 08808 08809 if ( ! scanYYout ) 08810 scanYYout = stdout; 08811 08812 if ( ! YY_CURRENT_BUFFER ) { 08813 scanYYensure_buffer_stack (); 08814 YY_CURRENT_BUFFER_LVALUE = 08815 scanYY_create_buffer(scanYYin,YY_BUF_SIZE ); 08816 } 08817 08818 scanYY_load_buffer_state( ); 08819 } 08820 08821 while ( 1 ) /* loops until end-of-file is reached */ 08822 { 08823 yy_cp = (yy_c_buf_p); 08824 08825 /* Support of scanYYtext. */ 08826 *yy_cp = (yy_hold_char); 08827 08828 /* yy_bp points to the position in yy_ch_buf of the start of 08829 * the current run. 08830 */ 08831 yy_bp = yy_cp; 08832 08833 yy_current_state = (yy_start); 08834 yy_current_state += YY_AT_BOL(); 08835 08836 (yy_state_ptr) = (yy_state_buf); 08837 *(yy_state_ptr)++ = yy_current_state; 08838 08839 yy_match: 08840 do 08841 { 08842 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; 08843 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 08844 { 08845 yy_current_state = (int) yy_def[yy_current_state]; 08846 if ( yy_current_state >= 3550 ) 08847 yy_c = yy_meta[(unsigned int) yy_c]; 08848 } 08849 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 08850 *(yy_state_ptr)++ = yy_current_state; 08851 ++yy_cp; 08852 } 08853 while ( yy_base[yy_current_state] != 25449 ); 08854 08855 yy_find_action: 08856 yy_current_state = *--(yy_state_ptr); 08857 (yy_lp) = yy_accept[yy_current_state]; 08858 find_rule: /* we branch to this label when backing up */ 08859 for ( ; ; ) /* until we find what rule we matched */ 08860 { 08861 if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] ) 08862 { 08863 yy_act = yy_acclist[(yy_lp)]; 08864 if ( yy_act & YY_TRAILING_HEAD_MASK || 08865 yy_looking_for_trail_begin ) 08866 { 08867 if ( yy_act == yy_looking_for_trail_begin ) 08868 { 08869 yy_looking_for_trail_begin = 0; 08870 yy_act &= ~YY_TRAILING_HEAD_MASK; 08871 break; 08872 } 08873 } 08874 else if ( yy_act & YY_TRAILING_MASK ) 08875 { 08876 yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK; 08877 yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK; 08878 (yy_full_match) = yy_cp; 08879 yy_full_state = (yy_state_ptr); 08880 yy_full_lp = (yy_lp); 08881 } 08882 else 08883 { 08884 (yy_full_match) = yy_cp; 08885 yy_full_state = (yy_state_ptr); 08886 yy_full_lp = (yy_lp); 08887 break; 08888 } 08889 ++(yy_lp); 08890 goto find_rule; 08891 } 08892 --yy_cp; 08893 yy_current_state = *--(yy_state_ptr); 08894 (yy_lp) = yy_accept[yy_current_state]; 08895 } 08896 08897 YY_DO_BEFORE_ACTION; 08898 08899 do_action: /* This label is used only to access EOF actions. */ 08900 08901 switch ( yy_act ) 08902 { /* beginning of action switch */ 08903 case 1: 08904 YY_RULE_SETUP 08905 #line 721 "scanner.l" 08906 { 08907 curlyCount=0; 08908 needsSemi = TRUE; 08909 BEGIN(SkipCurlyBlock); 08910 } 08911 YY_BREAK 08912 case 2: 08913 YY_RULE_SETUP 08914 #line 726 "scanner.l" 08915 { 08916 roundCount=0; 08917 BEGIN(SkipRoundBlock); 08918 } 08919 YY_BREAK 08920 case 3: 08921 YY_RULE_SETUP 08922 #line 730 "scanner.l" 08923 { 08924 ++roundCount; 08925 } 08926 YY_BREAK 08927 case 4: 08928 YY_RULE_SETUP 08929 #line 733 "scanner.l" 08930 { 08931 if (roundCount ) 08932 --roundCount ; 08933 else 08934 BEGIN( NextSemi ) ; 08935 } 08936 YY_BREAK 08937 case 5: 08938 YY_RULE_SETUP 08939 #line 739 "scanner.l" 08940 { 08941 ++curlyCount ; 08942 } 08943 YY_BREAK 08944 case 6: 08945 YY_RULE_SETUP 08946 #line 742 "scanner.l" 08947 { 08948 if( curlyCount ) 08949 { 08950 --curlyCount ; 08951 } 08952 else if (needsSemi) 08953 { 08954 BEGIN( NextSemi ); 08955 } 08956 else 08957 { 08958 BEGIN( FindMembers ); 08959 } 08960 } 08961 YY_BREAK 08962 case 7: 08963 YY_RULE_SETUP 08964 #line 756 "scanner.l" 08965 { 08966 if (insidePHP) 08967 { 08968 lastStringContext=NextSemi; 08969 BEGIN(SkipPHPString); 08970 } 08971 } 08972 YY_BREAK 08973 case 8: 08974 YY_RULE_SETUP 08975 #line 763 "scanner.l" 08976 { if (insidePHP) REJECT; } 08977 YY_BREAK 08978 case 9: 08979 YY_RULE_SETUP 08980 #line 764 "scanner.l" 08981 { 08982 lastStringContext=NextSemi; 08983 BEGIN(SkipString); 08984 } 08985 YY_BREAK 08986 case 10: 08987 YY_RULE_SETUP 08988 #line 768 "scanner.l" 08989 { 08990 unput(*scanYYtext); 08991 BEGIN( FindMembers ); 08992 } 08993 YY_BREAK 08994 case 11: 08995 YY_RULE_SETUP 08996 #line 772 "scanner.l" 08997 { 08998 unput(*scanYYtext); 08999 BEGIN( FindMembers ); 09000 } 09001 YY_BREAK 09002 case 12: 09003 YY_RULE_SETUP 09004 #line 776 "scanner.l" 09005 { // PHP code with unsupported extension? 09006 insidePHP = TRUE; 09007 } 09008 YY_BREAK 09009 case 13: 09010 YY_RULE_SETUP 09011 #line 779 "scanner.l" 09012 { // PHP code start 09013 BEGIN( FindMembers ); 09014 } 09015 YY_BREAK 09016 case 14: 09017 YY_RULE_SETUP 09018 #line 782 "scanner.l" 09019 { // Non-PHP code text, ignore 09020 } 09021 YY_BREAK 09022 case 15: 09023 /* rule 15 can match eol */ 09024 YY_RULE_SETUP 09025 #line 784 "scanner.l" 09026 { // Non-PHP code text, ignore 09027 yyLineNr++; 09028 } 09029 YY_BREAK 09030 case 16: 09031 YY_RULE_SETUP 09032 #line 787 "scanner.l" 09033 { // Non-PHP code text, ignore 09034 } 09035 YY_BREAK 09036 case 17: 09037 YY_RULE_SETUP 09038 #line 789 "scanner.l" 09039 { // PHP code end 09040 if (insidePHP) 09041 BEGIN( FindMembersPHP ); 09042 else 09043 REJECT; 09044 } 09045 YY_BREAK 09046 case 18: 09047 /* rule 18 can match eol */ 09048 YY_RULE_SETUP 09049 #line 796 "scanner.l" 09050 { if (insidePHP) 09051 BEGIN( NextSemi ); 09052 else 09053 REJECT; 09054 } 09055 YY_BREAK 09056 case 19: 09057 /* rule 19 can match eol */ 09058 YY_RULE_SETUP 09059 #line 801 "scanner.l" 09060 { // IDL or Borland C++ builder property 09061 current->mtype = mtype = Property; 09062 current->protection = protection = Public ; 09063 current->type.resize(0); 09064 current->name.resize(0); 09065 current->args.resize(0); 09066 current->argList->clear(); 09067 lineCount() ; 09068 } 09069 YY_BREAK 09070 case 20: 09071 /* rule 20 can match eol */ 09072 YY_RULE_SETUP 09073 #line 811 "scanner.l" 09074 { current->mtype = mtype = DCOP; 09075 current->protection = protection = Public ; 09076 current->type.resize(0); 09077 current->name.resize(0); 09078 current->args.resize(0); 09079 current->argList->clear(); 09080 lineCount() ; 09081 } 09082 YY_BREAK 09083 case 21: 09084 /* rule 21 can match eol */ 09085 YY_RULE_SETUP 09086 #line 820 "scanner.l" 09087 { current->mtype = mtype = Signal; 09088 09089 current->protection = protection = Public ; 09090 current->type.resize(0); 09091 current->name.resize(0); 09092 current->args.resize(0); 09093 current->argList->clear(); 09094 lineCount() ; 09095 } 09096 YY_BREAK 09097 case 22: 09098 /* rule 22 can match eol */ 09099 YY_RULE_SETUP 09100 #line 830 "scanner.l" 09101 { 09102 current->protection = protection = Public ; 09103 current->mtype = mtype = Slot; 09104 current->type.resize(0); 09105 current->name.resize(0); 09106 current->args.resize(0); 09107 current->argList->clear(); 09108 lineCount(); 09109 } 09110 YY_BREAK 09111 case 23: 09112 /* rule 23 can match eol */ 09113 YY_RULE_SETUP 09114 #line 840 "scanner.l" 09115 { 09116 current->protection = protection = Protected ; 09117 current->mtype = mtype = Slot; 09118 current->type.resize(0); 09119 current->name.resize(0); 09120 current->args.resize(0); 09121 current->argList->clear(); 09122 lineCount(); 09123 } 09124 YY_BREAK 09125 case 24: 09126 /* rule 24 can match eol */ 09127 YY_RULE_SETUP 09128 #line 850 "scanner.l" 09129 { 09130 current->protection = protection = Private ; 09131 current->mtype = mtype = Slot; 09132 current->type.resize(0); 09133 current->name.resize(0); 09134 current->args.resize(0); 09135 current->argList->clear(); 09136 lineCount(); 09137 } 09138 YY_BREAK 09139 case 25: 09140 /* rule 25 can match eol */ 09141 YY_RULE_SETUP 09142 #line 859 "scanner.l" 09143 { 09144 current->protection = protection = Public ; 09145 current->mtype = mtype = Method; 09146 current->type.resize(0); 09147 current->name.resize(0); 09148 current->args.resize(0); 09149 current->argList->clear(); 09150 lineCount() ; 09151 } 09152 YY_BREAK 09153 case 26: 09154 /* rule 26 can match eol */ 09155 YY_RULE_SETUP 09156 #line 868 "scanner.l" 09157 { // for now treat C++/CLI's internal as package... 09158 current->protection = protection = Package ; 09159 current->mtype = mtype = Method; 09160 current->type.resize(0); 09161 current->name.resize(0); 09162 current->args.resize(0); 09163 current->argList->clear(); 09164 lineCount() ; 09165 } 09166 YY_BREAK 09167 case 27: 09168 /* rule 27 can match eol */ 09169 YY_RULE_SETUP 09170 #line 877 "scanner.l" 09171 { 09172 current->protection = protection = Protected ; 09173 current->mtype = mtype = Method; 09174 current->type.resize(0); 09175 current->name.resize(0); 09176 current->args.resize(0); 09177 current->argList->clear(); 09178 lineCount() ; 09179 } 09180 YY_BREAK 09181 case 28: 09182 /* rule 28 can match eol */ 09183 YY_RULE_SETUP 09184 #line 886 "scanner.l" 09185 { 09186 current->protection = protection = Private ; 09187 current->mtype = mtype = Method; 09188 current->type.resize(0); 09189 current->name.resize(0); 09190 current->args.resize(0); 09191 current->argList->clear(); 09192 lineCount() ; 09193 } 09194 YY_BREAK 09195 case 29: 09196 /* rule 29 can match eol */ 09197 YY_RULE_SETUP 09198 #line 895 "scanner.l" 09199 { 09200 if (insideCli) 09201 { 09202 // C++/CLI event 09203 lineCount() ; 09204 current->mtype = mtype = Event; 09205 current->bodyLine = yyLineNr; 09206 curlyCount=0; 09207 BEGIN( CliPropertyType ); 09208 } 09209 else 09210 { 09211 REJECT; 09212 } 09213 } 09214 YY_BREAK 09215 case 30: 09216 /* rule 30 can match eol */ 09217 YY_RULE_SETUP 09218 #line 910 "scanner.l" 09219 { 09220 if (insideCli) 09221 { 09222 // C++/CLI property 09223 lineCount() ; 09224 current->mtype = mtype = Property; 09225 current->bodyLine = yyLineNr; 09226 curlyCount=0; 09227 BEGIN( CliPropertyType ); 09228 } 09229 else 09230 { 09231 REJECT; 09232 } 09233 } 09234 YY_BREAK 09235 case 31: 09236 YY_RULE_SETUP 09237 #line 925 "scanner.l" 09238 { 09239 addType( current ); 09240 current->name = scanYYtext; 09241 } 09242 YY_BREAK 09243 case 32: 09244 YY_RULE_SETUP 09245 #line 929 "scanner.l" 09246 { // C++/CLI indexed property 09247 current->args = scanYYtext; 09248 } 09249 YY_BREAK 09250 case 33: 09251 YY_RULE_SETUP 09252 #line 932 "scanner.l" 09253 { 09254 curlyCount=0; 09255 //printf("event: '%s' '%s'\n",current->type.data(),current->name.data()); 09256 BEGIN( CSAccessorDecl ); 09257 } 09258 YY_BREAK 09259 case 34: 09260 YY_RULE_SETUP 09261 #line 937 "scanner.l" 09262 { 09263 unput(*scanYYtext); 09264 BEGIN( FindMembers ); 09265 } 09266 YY_BREAK 09267 case 35: 09268 /* rule 35 can match eol */ 09269 YY_RULE_SETUP 09270 #line 941 "scanner.l" 09271 { 09272 yyLineNr++; 09273 } 09274 YY_BREAK 09275 case 36: 09276 YY_RULE_SETUP 09277 #line 944 "scanner.l" 09278 { 09279 } 09280 YY_BREAK 09281 case 37: 09282 YY_RULE_SETUP 09283 #line 946 "scanner.l" 09284 { 09285 addType( current ); 09286 current->type += scanYYtext; 09287 } 09288 YY_BREAK 09289 case 38: 09290 /* rule 38 can match eol */ 09291 YY_RULE_SETUP 09292 #line 950 "scanner.l" 09293 { 09294 if (!current->type.isEmpty()) 09295 { 09296 REJECT; 09297 } 09298 else 09299 { 09300 current->mtype = mtype = Property; 09301 lineCount(); 09302 } 09303 } 09304 YY_BREAK 09305 case 39: 09306 /* rule 39 can match eol */ 09307 YY_RULE_SETUP 09308 #line 961 "scanner.l" 09309 { 09310 current->protection = protection = Private ; 09311 current->mtype = mtype = Method; 09312 current->type.resize(0); 09313 current->name.resize(0); 09314 current->args.resize(0); 09315 current->argList->clear(); 09316 lineCount() ; 09317 } 09318 YY_BREAK 09319 case 40: 09320 /* rule 40 can match eol */ 09321 YY_RULE_SETUP 09322 #line 970 "scanner.l" 09323 { 09324 current->protection = protection = Protected ; 09325 current->mtype = mtype = Method; 09326 current->type.resize(0); 09327 current->name.resize(0); 09328 current->args.resize(0); 09329 current->argList->clear(); 09330 lineCount() ; 09331 } 09332 YY_BREAK 09333 case 41: 09334 /* rule 41 can match eol */ 09335 YY_RULE_SETUP 09336 #line 979 "scanner.l" 09337 { 09338 current->protection = protection = Public ; 09339 current->mtype = mtype = Method; 09340 current->type.resize(0); 09341 current->name.resize(0); 09342 current->args.resize(0); 09343 current->argList->clear(); 09344 lineCount() ; 09345 } 09346 YY_BREAK 09347 case 42: 09348 /* rule 42 can match eol */ 09349 YY_RULE_SETUP 09350 #line 988 "scanner.l" 09351 { 09352 if (!insideObjC) 09353 { 09354 REJECT; 09355 } 09356 else 09357 { 09358 lineCount(); 09359 current->fileName = yyFileName; 09360 current->startLine = yyLineNr; 09361 current->bodyLine = yyLineNr; 09362 current->section = Entry::FUNCTION_SEC; 09363 current->protection = protection = Public ; 09364 current->objc = TRUE; 09365 current->virt = Virtual; 09366 current->stat=scanYYtext[0]=='+'; 09367 current->mtype = mtype = Method; 09368 current->type.resize(0); 09369 current->name.resize(0); 09370 current->args.resize(0); 09371 current->argList->clear(); 09372 BEGIN( ObjCMethod ); 09373 } 09374 } 09375 YY_BREAK 09376 case 43: 09377 YY_RULE_SETUP 09378 #line 1012 "scanner.l" 09379 { // start of method's return type 09380 BEGIN( ObjCReturnType ); 09381 } 09382 YY_BREAK 09383 case 44: 09384 YY_RULE_SETUP 09385 #line 1015 "scanner.l" 09386 { // found method name 09387 if (current->type.isEmpty()) 09388 { 09389 current->type = "id"; 09390 } 09391 current->name = scanYYtext; 09392 } 09393 YY_BREAK 09394 case 45: 09395 YY_RULE_SETUP 09396 #line 1022 "scanner.l" 09397 { // start of parameter list 09398 current->name += ':'; 09399 Argument *a = new Argument; 09400 current->argList->append(a); 09401 BEGIN( ObjCParams ); 09402 } 09403 YY_BREAK 09404 case 46: 09405 /* rule 46 can match eol */ 09406 YY_RULE_SETUP 09407 #line 1028 "scanner.l" 09408 { // TODO: check if nested braches are possible. 09409 current->type = scanYYtext; 09410 } 09411 YY_BREAK 09412 case 47: 09413 YY_RULE_SETUP 09414 #line 1031 "scanner.l" 09415 { 09416 BEGIN( ObjCMethod ); 09417 } 09418 YY_BREAK 09419 case 48: 09420 YY_RULE_SETUP 09421 #line 1034 "scanner.l" 09422 { // Keyword of parameter 09423 QCString keyw = scanYYtext; 09424 keyw=keyw.left(keyw.length()-1); // strip : 09425 if (keyw.isEmpty()) 09426 { 09427 current->name += " :"; 09428 } 09429 else 09430 { 09431 current->name += keyw+":"; 09432 } 09433 if (current->argList->getLast()->type.isEmpty()) 09434 { 09435 current->argList->getLast()->type="id"; 09436 } 09437 Argument *a = new Argument; 09438 a->attrib=(QCString)"["+keyw+"]"; 09439 current->argList->append(a); 09440 } 09441 YY_BREAK 09442 case 49: 09443 /* rule 49 can match eol */ 09444 YY_RULE_SETUP 09445 #line 1053 "scanner.l" 09446 { // name of parameter 09447 lineCount(); 09448 current->argList->getLast()->name=QCString(scanYYtext).stripWhiteSpace(); 09449 } 09450 YY_BREAK 09451 case 50: 09452 /* rule 50 can match eol */ 09453 YY_RULE_SETUP 09454 #line 1057 "scanner.l" 09455 { // name of parameter 09456 lineCount(); 09457 // do we want the comma as part of the name? 09458 //current->name += ","; 09459 Argument *a = new Argument; 09460 a->attrib="[,]"; 09461 a->type="..."; 09462 current->argList->append(a); 09463 } 09464 YY_BREAK 09465 /* 09466 <ObjCParams>":" { 09467 current->name += ':'; 09468 } 09469 */ 09470 case 51: 09471 YY_RULE_SETUP 09472 #line 1071 "scanner.l" 09473 { 09474 BEGIN( ObjCParamType ); 09475 } 09476 YY_BREAK 09477 case 52: 09478 /* rule 52 can match eol */ 09479 YY_RULE_SETUP 09480 #line 1074 "scanner.l" 09481 { 09482 current->argList->getLast()->type=QCString(scanYYtext).stripWhiteSpace(); 09483 } 09484 YY_BREAK 09485 case 53: 09486 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 09487 (yy_c_buf_p) = yy_cp = yy_bp + 1; 09488 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 09489 YY_RULE_SETUP 09490 #line 1077 "scanner.l" 09491 { 09492 BEGIN( ObjCParams ); 09493 } 09494 YY_BREAK 09495 case 54: 09496 YY_RULE_SETUP 09497 #line 1080 "scanner.l" 09498 { // end of method declaration 09499 if (current->argList->getLast() && current->argList->getLast()->type.isEmpty()) 09500 { 09501 current->argList->getLast()->type="id"; 09502 } 09503 current->args = argListToString(current->argList); 09504 //printf("argList=%s\n",current->args.data()); 09505 unput(';'); 09506 BEGIN( Function ); 09507 } 09508 YY_BREAK 09509 case 55: 09510 /* rule 55 can match eol */ 09511 YY_RULE_SETUP 09512 #line 1090 "scanner.l" 09513 { // start of a method body 09514 lineCount(); 09515 //printf("Type=%s Name=%s args=%s\n", 09516 // current->type.data(),current->name.data(),argListToString(current->argList).data() 09517 // ); 09518 if (current->argList->getLast() && current->argList->getLast()->type.isEmpty()) 09519 { 09520 current->argList->getLast()->type="id"; 09521 } 09522 current->args = argListToString(current->argList); 09523 unput('{'); 09524 BEGIN( Function ); 09525 } 09526 YY_BREAK 09527 case 56: 09528 /* rule 56 can match eol */ 09529 YY_RULE_SETUP 09530 #line 1103 "scanner.l" 09531 { 09532 lineCount(); 09533 } 09534 YY_BREAK 09535 case 57: 09536 /* rule 57 can match eol */ 09537 YY_RULE_SETUP 09538 #line 1106 "scanner.l" 09539 { 09540 if (insideJava) // Java annotation 09541 { 09542 lineCount(); 09543 lastSkipRoundContext = YY_START; 09544 roundCount=1; 09545 BEGIN( SkipRound ); 09546 } 09547 else if (strncmp(scanYYtext,"@property",9)==0) // ObjC 2.0 property 09548 { 09549 current->mtype = mtype = Property; 09550 current->spec|=Entry::Readable | Entry::Writable | Entry::Assign; 09551 current->protection = Public ; 09552 unput('('); 09553 BEGIN( ObjCPropAttr ); 09554 } 09555 else 09556 { 09557 REJECT; 09558 } 09559 } 09560 YY_BREAK 09561 case 58: 09562 YY_RULE_SETUP 09563 #line 1127 "scanner.l" 09564 { 09565 current->read = scanYYtext+7; 09566 } 09567 YY_BREAK 09568 case 59: 09569 YY_RULE_SETUP 09570 #line 1130 "scanner.l" 09571 { 09572 current->write = scanYYtext+7; 09573 } 09574 YY_BREAK 09575 case 60: 09576 YY_RULE_SETUP 09577 #line 1133 "scanner.l" 09578 { 09579 current->spec&=~Entry::Writable; 09580 } 09581 YY_BREAK 09582 case 61: 09583 YY_RULE_SETUP 09584 #line 1136 "scanner.l" 09585 { // default 09586 } 09587 YY_BREAK 09588 case 62: 09589 YY_RULE_SETUP 09590 #line 1138 "scanner.l" 09591 { // default 09592 } 09593 YY_BREAK 09594 case 63: 09595 YY_RULE_SETUP 09596 #line 1140 "scanner.l" 09597 { 09598 current->spec&=~Entry::Assign; 09599 current->spec|=Entry::Retain; 09600 } 09601 YY_BREAK 09602 case 64: 09603 YY_RULE_SETUP 09604 #line 1144 "scanner.l" 09605 { 09606 current->spec&=~Entry::Assign; 09607 current->spec|=Entry::Copy; 09608 } 09609 YY_BREAK 09610 case 65: 09611 YY_RULE_SETUP 09612 #line 1148 "scanner.l" 09613 { 09614 current->spec|=Entry::NonAtomic; 09615 } 09616 YY_BREAK 09617 case 66: 09618 YY_RULE_SETUP 09619 #line 1151 "scanner.l" 09620 { 09621 BEGIN(FindMembers); 09622 } 09623 YY_BREAK 09624 case 67: 09625 YY_RULE_SETUP 09626 #line 1154 "scanner.l" 09627 { 09628 if (insideJava) // Java annotation 09629 { 09630 // skip annotation 09631 } 09632 else if (strcmp(scanYYtext,"@property")==0) // ObjC 2.0 property 09633 { 09634 current->mtype = mtype = Property; 09635 current->spec|=Entry::Writable | Entry::Readable | Entry::Assign; 09636 current->protection = Public ; 09637 } 09638 else if (strcmp(scanYYtext,"@synthesize")==0) 09639 { 09640 BEGIN( ObjCSkipStatement ); 09641 } 09642 else if (strcmp(scanYYtext,"@dynamic")==0) 09643 { 09644 BEGIN( ObjCSkipStatement ); 09645 } 09646 else 09647 { 09648 REJECT; 09649 } 09650 } 09651 YY_BREAK 09652 case 68: 09653 YY_RULE_SETUP 09654 #line 1178 "scanner.l" 09655 { 09656 BEGIN(FindMembers); 09657 } 09658 YY_BREAK 09659 case 69: 09660 YY_RULE_SETUP 09661 #line 1181 "scanner.l" 09662 { 09663 isTypedef=FALSE; 09664 current->name = scanYYtext; 09665 current->name = substitute(current->name,".","::"); 09666 current->section = Entry::NAMESPACE_SEC; 09667 current->type = "namespace" ; 09668 current->fileName = yyFileName; 09669 current->startLine = yyLineNr; 09670 current->bodyLine = yyLineNr; 09671 lineCount(); 09672 curlyCount=0; 09673 current_root->addSubEntry(current); 09674 current_root = current ; 09675 current = new Entry ; 09676 initEntry(); 09677 BEGIN( FindMembers ) ; 09678 } 09679 YY_BREAK 09680 case 70: 09681 YY_RULE_SETUP 09682 #line 1198 "scanner.l" 09683 { 09684 BEGIN(FindMembers); 09685 } 09686 YY_BREAK 09687 case 71: 09688 /* rule 71 can match eol */ 09689 YY_RULE_SETUP 09690 #line 1201 "scanner.l" 09691 { 09692 current->type += " initonly "; 09693 if (insideCli) current->spec |= Entry::Initonly; 09694 lineCount(); 09695 } 09696 YY_BREAK 09697 case 72: 09698 /* rule 72 can match eol */ 09699 YY_RULE_SETUP 09700 #line 1206 "scanner.l" 09701 { current->type += " static "; 09702 current->stat = TRUE; 09703 lineCount(); 09704 } 09705 YY_BREAK 09706 case 73: 09707 /* rule 73 can match eol */ 09708 YY_RULE_SETUP 09709 #line 1210 "scanner.l" 09710 { 09711 current->stat = FALSE; 09712 current->explicitExternal = TRUE; 09713 lineCount(); 09714 } 09715 YY_BREAK 09716 case 74: 09717 /* rule 74 can match eol */ 09718 YY_RULE_SETUP 09719 #line 1215 "scanner.l" 09720 { current->type += " virtual "; 09721 current->virt = Virtual; 09722 lineCount(); 09723 } 09724 YY_BREAK 09725 case 75: 09726 /* rule 75 can match eol */ 09727 YY_RULE_SETUP 09728 #line 1219 "scanner.l" 09729 { 09730 if (!insidePHP) 09731 { 09732 current->type += " abstract "; 09733 current->virt = Pure; 09734 } 09735 else 09736 { 09737 current->spec|=Entry::Abstract; 09738 } 09739 lineCount(); 09740 } 09741 YY_BREAK 09742 case 76: 09743 /* rule 76 can match eol */ 09744 YY_RULE_SETUP 09745 #line 1231 "scanner.l" 09746 { current->spec|=Entry::Inline; 09747 lineCount(); 09748 } 09749 YY_BREAK 09750 case 77: 09751 /* rule 77 can match eol */ 09752 YY_RULE_SETUP 09753 #line 1234 "scanner.l" 09754 { current->spec|=Entry::Mutable; 09755 lineCount(); 09756 } 09757 YY_BREAK 09758 case 78: 09759 /* rule 78 can match eol */ 09760 YY_RULE_SETUP 09761 #line 1237 "scanner.l" 09762 { current->spec|=Entry::Explicit; 09763 lineCount(); 09764 } 09765 YY_BREAK 09766 case 79: 09767 /* rule 79 can match eol */ 09768 YY_RULE_SETUP 09769 #line 1240 "scanner.l" 09770 { current->spec|=Entry::Required; 09771 lineCount(); 09772 } 09773 YY_BREAK 09774 case 80: 09775 /* rule 80 can match eol */ 09776 YY_RULE_SETUP 09777 #line 1243 "scanner.l" 09778 { current->spec|=Entry::Optional; 09779 lineCount(); 09780 } 09781 YY_BREAK 09782 /* 09783 <FindMembers>{B}*"import"{BN}+ { // IDL import keyword 09784 BEGIN( NextSemi ); 09785 } 09786 */ 09787 case 81: 09788 /* rule 81 can match eol */ 09789 YY_RULE_SETUP 09790 #line 1251 "scanner.l" 09791 { lineCount(); } 09792 YY_BREAK 09793 case 82: 09794 /* rule 82 can match eol */ 09795 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 09796 (yy_c_buf_p) = yy_cp -= 1; 09797 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 09798 YY_RULE_SETUP 09799 #line 1252 "scanner.l" 09800 { 09801 isTypedef=FALSE; 09802 current->section = Entry::NAMESPACE_SEC; 09803 current->type = "namespace" ; 09804 current->fileName = yyFileName; 09805 current->startLine = yyLineNr; 09806 current->bodyLine = yyLineNr; 09807 lineCount(); 09808 BEGIN( CompoundName ); 09809 } 09810 YY_BREAK 09811 case 83: 09812 /* rule 83 can match eol */ 09813 YY_RULE_SETUP 09814 #line 1262 "scanner.l" 09815 { 09816 lineCount(); 09817 if (insideIDL) 09818 { 09819 isTypedef=FALSE; 09820 current->section = Entry::NAMESPACE_SEC; 09821 current->type = "module" ; 09822 current->fileName = yyFileName; 09823 current->startLine = yyLineNr; 09824 current->bodyLine = yyLineNr; 09825 BEGIN( CompoundName ); 09826 } 09827 else if (insideD) 09828 { 09829 lineCount(); 09830 BEGIN(PackageName); 09831 } 09832 else 09833 { 09834 addType( current ) ; 09835 current->name = QCString(scanYYtext).stripWhiteSpace(); 09836 } 09837 } 09838 YY_BREAK 09839 case 84: 09840 /* rule 84 can match eol */ 09841 YY_RULE_SETUP 09842 #line 1285 "scanner.l" 09843 { 09844 lineCount(); 09845 if (insideIDL) 09846 { 09847 isTypedef=FALSE; 09848 current->section = Entry::NAMESPACE_SEC; 09849 current->type = "library" ; 09850 current->fileName = yyFileName; 09851 current->startLine = yyLineNr; 09852 current->bodyLine = yyLineNr; 09853 BEGIN( CompoundName ); 09854 } 09855 else 09856 { 09857 addType( current ) ; 09858 current->name = QCString(scanYYtext).stripWhiteSpace(); 09859 } 09860 } 09861 YY_BREAK 09862 case 85: 09863 /* rule 85 can match eol */ 09864 YY_RULE_SETUP 09865 #line 1303 "scanner.l" 09866 { // M$/Corba IDL/Java interface 09867 lineCount(); 09868 if (insideIDL || insideJava || insideCS || insideD || insidePHP) 09869 { 09870 isTypedef=FALSE; 09871 current->section = Entry::CLASS_SEC; 09872 current->spec = Entry::Interface; 09873 addType( current ) ; 09874 current->type += " interface" ; 09875 current->fileName = yyFileName; 09876 current->startLine = yyLineNr; 09877 current->bodyLine = yyLineNr; 09878 BEGIN( CompoundName ); 09879 } 09880 else 09881 { 09882 addType( current ) ; 09883 current->name = QCString(scanYYtext).stripWhiteSpace(); 09884 } 09885 } 09886 YY_BREAK 09887 case 86: 09888 /* rule 86 can match eol */ 09889 YY_RULE_SETUP 09890 #line 1323 "scanner.l" 09891 { // Objective-C class implementation 09892 lineCount(); 09893 isTypedef=FALSE; 09894 current->section = Entry::OBJCIMPL_SEC; 09895 current->objc = insideObjC = TRUE; 09896 current->protection = protection = Public ; 09897 addType( current ) ; 09898 current->type += " implementation" ; 09899 current->fileName = yyFileName; 09900 current->startLine = yyLineNr; 09901 current->bodyLine = yyLineNr; 09902 BEGIN( CompoundName ); 09903 } 09904 YY_BREAK 09905 case 87: 09906 /* rule 87 can match eol */ 09907 YY_RULE_SETUP 09908 #line 1336 "scanner.l" 09909 { // Objective-C class interface, or Java attribute 09910 lineCount(); 09911 isTypedef=FALSE; 09912 current->section = Entry::CLASS_SEC; 09913 current->spec = Entry::Interface; 09914 current->objc = insideObjC = !insideJava; 09915 current->protection = protection = Public ; 09916 addType( current ) ; 09917 current->type += " interface" ; 09918 current->fileName = yyFileName; 09919 current->startLine = yyLineNr; 09920 current->bodyLine = yyLineNr; 09921 BEGIN( CompoundName ); 09922 } 09923 YY_BREAK 09924 case 88: 09925 /* rule 88 can match eol */ 09926 YY_RULE_SETUP 09927 #line 1350 "scanner.l" 09928 { // Objective-C protocol definition 09929 lineCount(); 09930 isTypedef=FALSE; 09931 current->section = Entry::CLASS_SEC; 09932 current->spec = Entry::Protocol; 09933 current->objc = insideObjC = TRUE; 09934 current->protection = protection = Public ; 09935 addType( current ) ; 09936 current->type += " protocol" ; 09937 current->fileName = yyFileName; 09938 current->startLine = yyLineNr; 09939 current->bodyLine = yyLineNr; 09940 BEGIN( CompoundName ); 09941 } 09942 YY_BREAK 09943 case 89: 09944 /* rule 89 can match eol */ 09945 YY_RULE_SETUP 09946 #line 1364 "scanner.l" 09947 { // Corba IDL exception 09948 isTypedef=FALSE; 09949 current->section = Entry::CLASS_SEC; 09950 current->spec = Entry::Exception; 09951 addType( current ) ; 09952 current->type += " exception" ; 09953 current->fileName = yyFileName; 09954 current->startLine = yyLineNr; 09955 current->bodyLine = yyLineNr; 09956 lineCount(); 09957 BEGIN( CompoundName ); 09958 } 09959 YY_BREAK 09960 case 90: 09961 #line 1377 "scanner.l" 09962 case 91: 09963 /* rule 91 can match eol */ 09964 #line 1378 "scanner.l" 09965 case 92: 09966 /* rule 92 can match eol */ 09967 YY_RULE_SETUP 09968 #line 1378 "scanner.l" 09969 { 09970 isTypedef=((QCString)scanYYtext).find("typedef")!=-1; 09971 current->section = Entry::CLASS_SEC; 09972 addType( current ) ; 09973 current->type += " class" ; 09974 current->fileName = yyFileName; 09975 current->startLine = yyLineNr; 09976 current->bodyLine = yyLineNr; 09977 lineCount() ; 09978 if (scanYYtext[scanYYleng-1]=='{') unput('{'); 09979 if (insidePHP && current->spec&Entry::Abstract) 09980 { 09981 // convert Abstract to AbstractClass 09982 current->spec=(current->spec&~Entry::Abstract)|Entry::AbstractClass; 09983 } 09984 BEGIN( CompoundName ) ; 09985 } 09986 YY_BREAK 09987 case 93: 09988 #line 1396 "scanner.l" 09989 case 94: 09990 /* rule 94 can match eol */ 09991 YY_RULE_SETUP 09992 #line 1396 "scanner.l" 09993 { 09994 isTypedef=FALSE; 09995 current->section = Entry::CLASS_SEC; 09996 current->spec = Entry::Value; 09997 addType( current ) ; 09998 current->type += " value class" ; 09999 current->fileName = yyFileName; 10000 current->startLine = yyLineNr; 10001 current->bodyLine = yyLineNr; 10002 lineCount() ; 10003 if (scanYYtext[scanYYleng-1]=='{') unput('{'); 10004 BEGIN( CompoundName ) ; 10005 } 10006 YY_BREAK 10007 case 95: 10008 #line 1410 "scanner.l" 10009 case 96: 10010 /* rule 96 can match eol */ 10011 YY_RULE_SETUP 10012 #line 1410 "scanner.l" 10013 { 10014 isTypedef=FALSE; 10015 current->section = Entry::CLASS_SEC; 10016 current->spec = Entry::Ref; 10017 addType( current ) ; 10018 current->type += " ref class" ; 10019 current->fileName = yyFileName; 10020 current->startLine = yyLineNr; 10021 current->bodyLine = yyLineNr; 10022 lineCount() ; 10023 if (scanYYtext[scanYYleng-1]=='{') unput('{'); 10024 BEGIN( CompoundName ) ; 10025 } 10026 YY_BREAK 10027 case 97: 10028 #line 1424 "scanner.l" 10029 case 98: 10030 /* rule 98 can match eol */ 10031 YY_RULE_SETUP 10032 #line 1424 "scanner.l" 10033 { 10034 isTypedef=FALSE; 10035 current->section = Entry::CLASS_SEC; 10036 current->spec = Entry::Interface; 10037 addType( current ) ; 10038 current->type += " interface class" ; 10039 current->fileName = yyFileName; 10040 current->startLine = yyLineNr; 10041 current->bodyLine = yyLineNr; 10042 lineCount() ; 10043 if (scanYYtext[scanYYleng-1]=='{') unput('{'); 10044 BEGIN( CompoundName ) ; 10045 } 10046 YY_BREAK 10047 case 99: 10048 /* rule 99 can match eol */ 10049 YY_RULE_SETUP 10050 #line 1437 "scanner.l" 10051 { 10052 if (insideIDL) 10053 { 10054 isTypedef=FALSE; 10055 current->section = Entry::CLASS_SEC; 10056 addType( current ) ; 10057 current->type += " coclass" ; 10058 current->fileName = yyFileName; 10059 current->startLine = yyLineNr; 10060 current->bodyLine = yyLineNr; 10061 lineCount() ; 10062 BEGIN( CompoundName ) ; 10063 } 10064 else 10065 { 10066 addType(current); 10067 current->name = scanYYtext; 10068 current->name = current->name.stripWhiteSpace(); 10069 lineCount(); 10070 } 10071 } 10072 YY_BREAK 10073 case 100: 10074 /* rule 100 can match eol */ 10075 #line 1459 "scanner.l" 10076 case 101: 10077 /* rule 101 can match eol */ 10078 YY_RULE_SETUP 10079 #line 1459 "scanner.l" 10080 { 10081 isTypedef=((QCString)scanYYtext).find("typedef")!=-1; 10082 current->section = Entry::CLASS_SEC ; 10083 current->spec = Entry::Struct; 10084 addType( current ) ; 10085 current->type += " struct" ; 10086 current->fileName = yyFileName; 10087 current->startLine = yyLineNr; 10088 current->bodyLine = yyLineNr; 10089 lineCount() ; 10090 if (scanYYtext[scanYYleng-1]=='{') unput('{'); 10091 BEGIN( CompoundName ) ; 10092 } 10093 YY_BREAK 10094 case 102: 10095 #line 1473 "scanner.l" 10096 case 103: 10097 /* rule 103 can match eol */ 10098 YY_RULE_SETUP 10099 #line 1473 "scanner.l" 10100 { 10101 isTypedef=FALSE; 10102 current->section = Entry::CLASS_SEC; 10103 current->spec = Entry::Struct | Entry::Value; 10104 addType( current ) ; 10105 current->type += " value struct" ; 10106 current->fileName = yyFileName; 10107 current->startLine = yyLineNr; 10108 current->bodyLine = yyLineNr; 10109 lineCount() ; 10110 if (scanYYtext[scanYYleng-1]=='{') unput('{'); 10111 BEGIN( CompoundName ) ; 10112 } 10113 YY_BREAK 10114 case 104: 10115 #line 1487 "scanner.l" 10116 case 105: 10117 /* rule 105 can match eol */ 10118 YY_RULE_SETUP 10119 #line 1487 "scanner.l" 10120 { 10121 isTypedef=FALSE; 10122 current->section = Entry::CLASS_SEC; 10123 current->spec = Entry::Struct | Entry::Ref; 10124 addType( current ) ; 10125 current->type += " ref struct" ; 10126 current->fileName = yyFileName; 10127 current->startLine = yyLineNr; 10128 current->bodyLine = yyLineNr; 10129 lineCount() ; 10130 if (scanYYtext[scanYYleng-1]=='{') unput('{'); 10131 BEGIN( CompoundName ) ; 10132 } 10133 YY_BREAK 10134 case 106: 10135 #line 1501 "scanner.l" 10136 case 107: 10137 /* rule 107 can match eol */ 10138 YY_RULE_SETUP 10139 #line 1501 "scanner.l" 10140 { 10141 isTypedef=FALSE; 10142 current->section = Entry::CLASS_SEC; 10143 current->spec = Entry::Struct | Entry::Interface; 10144 addType( current ) ; 10145 current->type += " interface struct"; 10146 current->fileName = yyFileName; 10147 current->startLine = yyLineNr; 10148 current->bodyLine = yyLineNr; 10149 lineCount() ; 10150 if (scanYYtext[scanYYleng-1]=='{') unput('{'); 10151 BEGIN( CompoundName ) ; 10152 } 10153 YY_BREAK 10154 case 108: 10155 /* rule 108 can match eol */ 10156 #line 1515 "scanner.l" 10157 case 109: 10158 /* rule 109 can match eol */ 10159 YY_RULE_SETUP 10160 #line 1515 "scanner.l" 10161 { 10162 isTypedef=((QCString)scanYYtext).find("typedef")!=-1; 10163 current->section = Entry::CLASS_SEC; 10164 current->spec = Entry::Union; 10165 addType( current ) ; 10166 current->type += " union" ; 10167 current->fileName = yyFileName; 10168 current->startLine = yyLineNr; 10169 current->bodyLine = yyLineNr; 10170 lineCount() ; 10171 if (scanYYtext[scanYYleng-1]=='{') unput('{'); 10172 BEGIN( CompoundName ) ; 10173 } 10174 YY_BREAK 10175 case 110: 10176 /* rule 110 can match eol */ 10177 #line 1529 "scanner.l" 10178 case 111: 10179 /* rule 111 can match eol */ 10180 YY_RULE_SETUP 10181 #line 1529 "scanner.l" 10182 { // for IDL: typedef [something] enum 10183 isTypedef=((QCString)scanYYtext).find("typedef")!=-1; 10184 current->section = Entry::ENUM_SEC ; 10185 addType( current ) ; 10186 current->type += " enum" ; 10187 current->fileName = yyFileName; 10188 current->startLine = yyLineNr; 10189 current->bodyLine = yyLineNr; 10190 lineCount() ; 10191 if (scanYYtext[scanYYleng-1]=='{') unput('{'); 10192 BEGIN( CompoundName ) ; 10193 } 10194 YY_BREAK 10195 case 112: 10196 /* rule 112 can match eol */ 10197 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 10198 (yy_c_buf_p) = yy_cp -= 1; 10199 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 10200 YY_RULE_SETUP 10201 #line 1541 "scanner.l" 10202 { // A::operator()<int>(int arg) 10203 lineCount(); 10204 current->name += "()"; 10205 BEGIN( FindMembers ); 10206 } 10207 YY_BREAK 10208 case 113: 10209 /* rule 113 can match eol */ 10210 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 10211 (yy_c_buf_p) = yy_cp -= 1; 10212 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 10213 YY_RULE_SETUP 10214 #line 1546 "scanner.l" 10215 { 10216 lineCount(); 10217 current->name += scanYYtext ; 10218 current->name = current->name.simplifyWhiteSpace(); 10219 BEGIN( FindMembers ) ; 10220 } 10221 YY_BREAK 10222 case 114: 10223 YY_RULE_SETUP 10224 #line 1552 "scanner.l" 10225 { // can occur when importing members 10226 unput(';'); 10227 BEGIN( FindMembers ) ; 10228 } 10229 YY_BREAK 10230 case 115: 10231 /* rule 115 can match eol */ 10232 YY_RULE_SETUP 10233 #line 1556 "scanner.l" 10234 { 10235 lineCount(); 10236 current->name += *scanYYtext ; 10237 } 10238 YY_BREAK 10239 case 116: 10240 YY_RULE_SETUP 10241 #line 1560 "scanner.l" 10242 { /* skip guided templ specifiers */ } 10243 YY_BREAK 10244 case 117: 10245 YY_RULE_SETUP 10246 #line 1561 "scanner.l" 10247 { 10248 current->name = current->name.simplifyWhiteSpace(); 10249 unput(*scanYYtext); 10250 BEGIN( FindMembers ) ; 10251 } 10252 YY_BREAK 10253 case 118: 10254 /* rule 118 can match eol */ 10255 YY_RULE_SETUP 10256 #line 1566 "scanner.l" 10257 { // generic is a C++/CLI extension 10258 lineCount(); 10259 if (current->tArgLists==0) 10260 { 10261 current->tArgLists = new QList<ArgumentList>; 10262 current->tArgLists->setAutoDelete(TRUE); 10263 } 10264 ArgumentList *al = new ArgumentList; 10265 current->spec |= (scanYYtext[0]=='g') ? Entry::Generic : Entry::Template; 10266 current->tArgLists->append(al); 10267 currentArgumentList = al; 10268 templateStr="<"; 10269 fullArgString = templateStr.copy(); 10270 copyArgString = &templateStr; 10271 currentArgumentContext = FindMembers; 10272 BEGIN( ReadTempArgs ); 10273 } 10274 YY_BREAK 10275 case 119: 10276 /* rule 119 can match eol */ 10277 YY_RULE_SETUP 10278 #line 1583 "scanner.l" 10279 { // namespace alias 10280 lineCount(); 10281 BEGIN( NSAliasName ); 10282 } 10283 YY_BREAK 10284 case 120: 10285 YY_RULE_SETUP 10286 #line 1587 "scanner.l" 10287 { 10288 aliasName = scanYYtext; 10289 BEGIN( NSAliasArg ); 10290 } 10291 YY_BREAK 10292 case 121: 10293 YY_RULE_SETUP 10294 #line 1591 "scanner.l" 10295 { 10296 //printf("Inserting namespace alias %s::%s->%s\n",current_root->name.data(),aliasName.data(),scanYYtext); 10297 //if (current_root->name.isEmpty()) 10298 //{ 10299 // TODO: namespace aliases are now treated as global entities 10300 // while they should be aware of the scope they are in 10301 Doxygen::namespaceAliasDict.insert(aliasName,new QCString(scanYYtext)); 10302 //} 10303 //else 10304 //{ 10305 // Doxygen::namespaceAliasDict.insert(current_root->name+"::"+aliasName, 10306 // new QCString(current_root->name+"::"+scanYYtext)); 10307 //} 10308 } 10309 YY_BREAK 10310 case 122: 10311 YY_RULE_SETUP 10312 #line 1605 "scanner.l" 10313 { 10314 BEGIN( FindMembers ); 10315 } 10316 YY_BREAK 10317 case 123: 10318 /* rule 123 can match eol */ 10319 YY_RULE_SETUP 10320 #line 1608 "scanner.l" 10321 { // package import => add as a using directive 10322 lineCount(); 10323 QCString scope=scanYYtext; 10324 current->name=removeRedundantWhiteSpace(substitute(scope.left(scope.length()-2),".","::")); 10325 current->fileName = yyFileName; 10326 current->section=Entry::USINGDIR_SEC; 10327 current_root->addSubEntry(current); 10328 current = new Entry ; 10329 initEntry(); 10330 BEGIN(Using); 10331 } 10332 YY_BREAK 10333 case 124: 10334 /* rule 124 can match eol */ 10335 YY_RULE_SETUP 10336 #line 1619 "scanner.l" 10337 { // class import => add as a using declaration 10338 lineCount(); 10339 QCString scope=scanYYtext; 10340 current->name=removeRedundantWhiteSpace(substitute(scope,".","::")); 10341 current->fileName = yyFileName; 10342 if (insideD) 10343 { 10344 current->section=Entry::USINGDIR_SEC; 10345 } 10346 else 10347 { 10348 //printf("import name = %s -> %s\n",scanYYtext,current->name.data()); 10349 current->section=Entry::USINGDECL_SEC; 10350 } 10351 current_root->addSubEntry(current); 10352 current = new Entry ; 10353 initEntry(); 10354 BEGIN(Using); 10355 } 10356 YY_BREAK 10357 case 125: 10358 /* rule 125 can match eol */ 10359 YY_RULE_SETUP 10360 #line 1638 "scanner.l" 10361 { 10362 current->startLine=yyLineNr; 10363 lineCount(); 10364 BEGIN(Using); 10365 } 10366 YY_BREAK 10367 case 126: 10368 /* rule 126 can match eol */ 10369 YY_RULE_SETUP 10370 #line 1643 "scanner.l" 10371 { lineCount(); BEGIN(UsingDirective); } 10372 YY_BREAK 10373 case 127: 10374 /* rule 127 can match eol */ 10375 YY_RULE_SETUP 10376 #line 1644 "scanner.l" 10377 { 10378 lineCount(); 10379 current->name=scanYYtext; 10380 current->fileName = yyFileName; 10381 current->section=Entry::USINGDECL_SEC; 10382 current_root->addSubEntry(current); 10383 current = new Entry ; 10384 if (insideCS) /* Hack: in C# a using declaration and 10385 directive have the same syntax, so we 10386 also add it as a using directive here 10387 */ 10388 { 10389 current->name=scanYYtext; 10390 current->fileName = yyFileName; 10391 current->startLine = yyLineNr; 10392 current->section=Entry::USINGDIR_SEC; 10393 current_root->addSubEntry(current); 10394 current = new Entry ; 10395 } 10396 initEntry(); 10397 BEGIN(Using); 10398 } 10399 YY_BREAK 10400 case 128: 10401 /* rule 128 can match eol */ 10402 YY_RULE_SETUP 10403 #line 1666 "scanner.l" 10404 { current->name=removeRedundantWhiteSpace(scanYYtext); 10405 current->fileName = yyFileName; 10406 current->section=Entry::USINGDIR_SEC; 10407 current_root->addSubEntry(current); 10408 current = new Entry ; 10409 initEntry(); 10410 BEGIN(Using); 10411 } 10412 YY_BREAK 10413 case 129: 10414 YY_RULE_SETUP 10415 #line 1674 "scanner.l" 10416 { BEGIN(FindMembers); } 10417 YY_BREAK 10418 case 130: 10419 /* rule 130 can match eol */ 10420 YY_RULE_SETUP 10421 #line 1675 "scanner.l" 10422 { // guided template decl 10423 QCString n=scanYYtext; 10424 addType( current ); 10425 current->name=n.left(n.length()-2); 10426 } 10427 YY_BREAK 10428 case 131: 10429 /* rule 131 can match eol */ 10430 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 10431 (yy_c_buf_p) = yy_cp -= 1; 10432 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 10433 YY_RULE_SETUP 10434 #line 1680 "scanner.l" 10435 { // Note: this could be a return type! 10436 sharpCount=0; 10437 lineCount(); 10438 addType( current ); 10439 current->name=scanYYtext; 10440 current->name=current->name.stripWhiteSpace(); 10441 //current->scopeSpec.resize(0); 10442 // currentTemplateSpec = ¤t->scopeSpec; 10443 if (nameIsOperator(current->name)) 10444 BEGIN( Operator ); 10445 else 10446 BEGIN( EndTemplate ); 10447 } 10448 YY_BREAK 10449 case 132: 10450 /* rule 132 can match eol */ 10451 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 10452 (yy_c_buf_p) = yy_cp -= 1; 10453 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 10454 YY_RULE_SETUP 10455 #line 1693 "scanner.l" 10456 { 10457 sharpCount=0; 10458 lineCount(); 10459 current->name+=((QCString)scanYYtext).stripWhiteSpace(); 10460 //current->memberSpec.resize(0); 10461 // currentTemplateSpec = ¤t->memberSpec; 10462 if (nameIsOperator(current->name)) 10463 BEGIN( Operator ); 10464 else 10465 BEGIN( EndTemplate ); 10466 } 10467 YY_BREAK 10468 case 133: 10469 YY_RULE_SETUP 10470 #line 1704 "scanner.l" 10471 { 10472 current->name+=scanYYtext; 10473 // *currentTemplateSpec+=scanYYtext; 10474 } 10475 YY_BREAK 10476 case 134: 10477 YY_RULE_SETUP 10478 #line 1708 "scanner.l" 10479 { 10480 current->name+='<'; 10481 // *currentTemplateSpec+='<'; 10482 sharpCount++; 10483 } 10484 YY_BREAK 10485 case 135: 10486 YY_RULE_SETUP 10487 #line 1713 "scanner.l" 10488 { 10489 if (insideJava || insideCS) 10490 { 10491 unput('>'); 10492 unput(' '); 10493 unput('>'); 10494 } 10495 else 10496 { 10497 current->name+=scanYYtext; 10498 } 10499 // *currentTemplateSpec+=scanYYtext; 10500 } 10501 YY_BREAK 10502 case 136: 10503 YY_RULE_SETUP 10504 #line 1726 "scanner.l" 10505 { 10506 current->name+='>'; 10507 // *currentTemplateSpec+='>'; 10508 if (--sharpCount<=0) 10509 { 10510 //printf("Found %s\n",current->name.data()); 10511 BEGIN(FindMembers); 10512 } 10513 } 10514 YY_BREAK 10515 case 137: 10516 /* rule 137 can match eol */ 10517 YY_RULE_SETUP 10518 #line 1735 "scanner.l" 10519 { 10520 lineCount(); 10521 current->name+='>'; 10522 // *currentTemplateSpec+='>'; 10523 if (--sharpCount<=0) 10524 { 10525 current->args = "("; 10526 currentArgumentContext = FuncQual; 10527 fullArgString = current->args.copy(); 10528 copyArgString = ¤t->args; 10529 //printf("Found %s\n",current->name.data()); 10530 BEGIN( ReadFuncArgType ) ; 10531 } 10532 } 10533 YY_BREAK 10534 case 138: 10535 /* rule 138 can match eol */ 10536 YY_RULE_SETUP 10537 #line 1749 "scanner.l" 10538 { // function pointer returning a template instance 10539 lineCount(); 10540 current->name+='>'; 10541 BEGIN(FindMembers); 10542 } 10543 YY_BREAK 10544 case 139: 10545 /* rule 139 can match eol */ 10546 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 10547 (yy_c_buf_p) = yy_cp -= 2; 10548 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 10549 YY_RULE_SETUP 10550 #line 1754 "scanner.l" 10551 { 10552 lineCount(); 10553 current->name+='>'; 10554 // *currentTemplateSpec+='>'; 10555 if (--sharpCount<=0) 10556 { 10557 BEGIN(FindMemberName); 10558 } 10559 } 10560 YY_BREAK 10561 case 140: 10562 YY_RULE_SETUP 10563 #line 1763 "scanner.l" 10564 { 10565 current->name+=*scanYYtext; 10566 // *currentTemplateSpec+=*scanYYtext; 10567 } 10568 YY_BREAK 10569 case 141: 10570 /* rule 141 can match eol */ 10571 YY_RULE_SETUP 10572 #line 1767 "scanner.l" 10573 { 10574 if (insidePHP) 10575 { 10576 current->bodyLine = yyLineNr; 10577 BEGIN( DefinePHP ); 10578 } 10579 else 10580 REJECT; 10581 } 10582 YY_BREAK 10583 case 142: 10584 YY_RULE_SETUP 10585 #line 1776 "scanner.l" 10586 { // Qt object macro 10587 } 10588 YY_BREAK 10589 case 143: 10590 YY_RULE_SETUP 10591 #line 1778 "scanner.l" 10592 { // Qt property declaration 10593 current->protection = protection = Public ; 10594 current->mtype = mtype = Property; 10595 current->type.resize(0); 10596 BEGIN(QtPropType); 10597 } 10598 YY_BREAK 10599 case 144: 10600 YY_RULE_SETUP 10601 #line 1784 "scanner.l" 10602 { // start of property arguments 10603 } 10604 YY_BREAK 10605 case 145: 10606 YY_RULE_SETUP 10607 #line 1786 "scanner.l" 10608 { // end of property arguments 10609 unput(';'); 10610 BEGIN(FindMembers); 10611 } 10612 YY_BREAK 10613 case 146: 10614 YY_RULE_SETUP 10615 #line 1790 "scanner.l" 10616 { 10617 current->type+=scanYYtext; 10618 } 10619 YY_BREAK 10620 case 147: 10621 YY_RULE_SETUP 10622 #line 1793 "scanner.l" 10623 { 10624 current->type+=scanYYtext; 10625 } 10626 YY_BREAK 10627 case 148: 10628 YY_RULE_SETUP 10629 #line 1796 "scanner.l" 10630 { 10631 current->type+=scanYYtext; 10632 BEGIN(QtPropName); 10633 } 10634 YY_BREAK 10635 case 149: 10636 YY_RULE_SETUP 10637 #line 1800 "scanner.l" 10638 { 10639 current->name=scanYYtext; 10640 BEGIN(QtPropAttr); 10641 } 10642 YY_BREAK 10643 case 150: 10644 YY_RULE_SETUP 10645 #line 1804 "scanner.l" 10646 { 10647 current->spec |= Entry::Readable; 10648 BEGIN(QtPropRead); 10649 } 10650 YY_BREAK 10651 case 151: 10652 YY_RULE_SETUP 10653 #line 1808 "scanner.l" 10654 { 10655 current->spec |= Entry::Writable; 10656 BEGIN(QtPropWrite); 10657 } 10658 YY_BREAK 10659 case 152: 10660 YY_RULE_SETUP 10661 #line 1812 "scanner.l" 10662 { // reset method => not supported yet 10663 } 10664 YY_BREAK 10665 case 153: 10666 YY_RULE_SETUP 10667 #line 1814 "scanner.l" 10668 { // scriptable property => not supported yet 10669 } 10670 YY_BREAK 10671 case 154: 10672 YY_RULE_SETUP 10673 #line 1816 "scanner.l" 10674 { // designable property => not supported yet 10675 } 10676 YY_BREAK 10677 case 155: 10678 YY_RULE_SETUP 10679 #line 1818 "scanner.l" 10680 { 10681 current->read = scanYYtext; 10682 BEGIN(QtPropAttr); 10683 } 10684 YY_BREAK 10685 case 156: 10686 YY_RULE_SETUP 10687 #line 1822 "scanner.l" 10688 { 10689 current->write = scanYYtext; 10690 BEGIN(QtPropAttr); 10691 } 10692 YY_BREAK 10693 case 157: 10694 /* rule 157 can match eol */ 10695 YY_RULE_SETUP 10696 #line 1826 "scanner.l" 10697 { 10698 current->name=scanYYtext; 10699 BEGIN(FindMembers); 10700 } 10701 YY_BREAK 10702 case 158: 10703 /* rule 158 can match eol */ 10704 YY_RULE_SETUP 10705 #line 1830 "scanner.l" 10706 { 10707 lineCount(); 10708 if (insideIDL && scanYYleng==9 && strcmp(scanYYtext,"cpp_quote")==0) 10709 { 10710 BEGIN(CppQuote); 10711 } 10712 else if ((insideIDL || insideJava || insideD) && scanYYleng==6 && strcmp(scanYYtext,"import")==0) 10713 { 10714 if (insideIDL) 10715 BEGIN(NextSemi); 10716 else // insideJava or insideD 10717 BEGIN(JavaImport); 10718 } 10719 else if (insideJava && strcmp(scanYYtext,"package")==0) 10720 { 10721 lineCount(); 10722 BEGIN(PackageName); 10723 } 10724 else if (insideIDL && strcmp(scanYYtext,"case")==0) 10725 { 10726 BEGIN(IDLUnionCase); 10727 } 10728 else if (insideTryBlock && strcmp(scanYYtext,"catch")==0) 10729 { 10730 insideTryBlock=FALSE; 10731 BEGIN(TryFunctionBlock); 10732 } 10733 else if (insideJS && strcmp(scanYYtext,"var")==0) 10734 { // javascript variable 10735 current->type="var"; 10736 } 10737 else if (insideJS && strcmp(scanYYtext,"function")==0) 10738 { // javascript function 10739 current->type="function"; 10740 } 10741 else 10742 { 10743 if (YY_START==FindMembers) 10744 { 10745 addType( current ) ; 10746 } 10747 bool javaLike = insideJava || insideCS || insideD || insidePHP || insideJS; 10748 if (javaLike && strcmp(scanYYtext,"public")==0) 10749 { 10750 current->protection = Public; 10751 } 10752 else if (javaLike && strcmp(scanYYtext,"protected")==0) 10753 { 10754 current->protection = Protected; 10755 } 10756 else if (javaLike && strcmp(scanYYtext,"private")==0) 10757 { 10758 current->protection = Private; 10759 } 10760 else if (javaLike && strcmp(scanYYtext,"static")==0) 10761 { 10762 if (YY_START==FindMembers) 10763 current->name = scanYYtext; 10764 else 10765 current->name += scanYYtext; 10766 current->stat = TRUE; 10767 } 10768 else 10769 { 10770 if (YY_START==FindMembers) 10771 current->name = scanYYtext; 10772 else 10773 current->name += scanYYtext; 10774 if (current->name.left(7)=="static ") 10775 { 10776 current->stat = TRUE; 10777 current->name= current->name.mid(7); 10778 } 10779 else if (current->name.left(7)=="inline ") 10780 { 10781 if (current->type.isEmpty()) 10782 { 10783 current->type="inline"; 10784 } 10785 else 10786 { 10787 current->type+="inline "; 10788 } 10789 current->name= current->name.mid(7); 10790 } 10791 else if (current->name.left(6)=="const ") 10792 { 10793 if (current->type.isEmpty()) 10794 { 10795 current->type="const"; 10796 } 10797 else 10798 { 10799 current->type+="const "; 10800 } 10801 current->name=current->name.mid(6); 10802 } 10803 } 10804 QCString tmp=scanYYtext; 10805 if (nameIsOperator(tmp)) 10806 { 10807 BEGIN( Operator ); 10808 } 10809 else 10810 { 10811 BEGIN(FindMembers); 10812 } 10813 } 10814 } 10815 YY_BREAK 10816 case 159: 10817 YY_RULE_SETUP 10818 #line 1939 "scanner.l" 10819 { // some number where we did not expect one 10820 } 10821 YY_BREAK 10822 case 160: 10823 YY_RULE_SETUP 10824 #line 1941 "scanner.l" 10825 { 10826 if (insideJava || insideCS || insideD) 10827 { 10828 current->name+="."; 10829 } 10830 } 10831 YY_BREAK 10832 case 161: 10833 YY_RULE_SETUP 10834 #line 1947 "scanner.l" 10835 { 10836 current->name+=scanYYtext; 10837 } 10838 YY_BREAK 10839 case 162: 10840 YY_RULE_SETUP 10841 #line 1950 "scanner.l" 10842 { 10843 insideCppQuote=TRUE; 10844 BEGIN(FindMembers); 10845 } 10846 YY_BREAK 10847 case 163: 10848 YY_RULE_SETUP 10849 #line 1954 "scanner.l" 10850 10851 YY_BREAK 10852 case 164: 10853 YY_RULE_SETUP 10854 #line 1955 "scanner.l" 10855 { BEGIN(FindMembers); } 10856 YY_BREAK 10857 case 165: 10858 /* rule 165 can match eol */ 10859 YY_RULE_SETUP 10860 #line 1956 "scanner.l" 10861 { yyLineNr++; } 10862 YY_BREAK 10863 case 166: 10864 YY_RULE_SETUP 10865 #line 1957 "scanner.l" 10866 10867 YY_BREAK 10868 case 167: 10869 /* rule 167 can match eol */ 10870 YY_RULE_SETUP 10871 #line 1958 "scanner.l" 10872 { yyLineNr++; } 10873 YY_BREAK 10874 case 168: 10875 YY_RULE_SETUP 10876 #line 1959 "scanner.l" 10877 { 10878 curlyCount=0; 10879 lastCurlyContext = TryFunctionBlockEnd ; 10880 BEGIN( SkipCurly ); 10881 } 10882 YY_BREAK 10883 case 169: 10884 YY_RULE_SETUP 10885 #line 1964 "scanner.l" 10886 10887 YY_BREAK 10888 case 170: 10889 YY_RULE_SETUP 10890 #line 1965 "scanner.l" 10891 { BEGIN(TryFunctionBlock); } 10892 YY_BREAK 10893 case 171: 10894 YY_RULE_SETUP 10895 #line 1966 "scanner.l" 10896 { unput(*scanYYtext); 10897 BEGIN( FindMembers ); 10898 } 10899 YY_BREAK 10900 case 172: 10901 YY_RULE_SETUP 10902 #line 1969 "scanner.l" 10903 { 10904 insideCppQuote=FALSE; 10905 BEGIN(FindMembers); 10906 } 10907 YY_BREAK 10908 case 173: 10909 YY_RULE_SETUP 10910 #line 1973 "scanner.l" 10911 { if (insidePHP) 10912 REJECT; 10913 lastCPPContext = YY_START; 10914 BEGIN( SkipCPP ) ; 10915 } 10916 YY_BREAK 10917 case 174: 10918 YY_RULE_SETUP 10919 #line 1978 "scanner.l" 10920 { if (insidePHP) 10921 REJECT; 10922 current->bodyLine = yyLineNr; 10923 BEGIN( Define ); 10924 } 10925 YY_BREAK 10926 case 175: 10927 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 10928 (yy_c_buf_p) = yy_cp -= 1; 10929 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 10930 YY_RULE_SETUP 10931 #line 1983 "scanner.l" 10932 { /* line control directive */ 10933 yyLineNr = atoi(&scanYYtext[1]); 10934 //printf("setting line number to %d\n",yyLineNr); 10935 lastPreLineCtrlContext = YY_START; 10936 BEGIN( PreLineCtrl ); 10937 } 10938 YY_BREAK 10939 case 176: 10940 YY_RULE_SETUP 10941 #line 1989 "scanner.l" 10942 { 10943 yyFileName = stripQuotes(scanYYtext); 10944 } 10945 YY_BREAK 10946 case 177: 10947 YY_RULE_SETUP 10948 #line 1992 "scanner.l" 10949 {} 10950 YY_BREAK 10951 case 178: 10952 /* rule 178 can match eol */ 10953 YY_RULE_SETUP 10954 #line 1993 "scanner.l" 10955 { 10956 yyLineNr++; 10957 BEGIN( lastPreLineCtrlContext ); 10958 } 10959 YY_BREAK 10960 case 179: 10961 YY_RULE_SETUP 10962 #line 1997 "scanner.l" 10963 10964 YY_BREAK 10965 case 180: 10966 /* rule 180 can match eol */ 10967 YY_RULE_SETUP 10968 #line 1998 "scanner.l" 10969 { yyLineNr++ ; } 10970 YY_BREAK 10971 case 181: 10972 /* rule 181 can match eol */ 10973 YY_RULE_SETUP 10974 #line 1999 "scanner.l" 10975 { yyLineNr++ ; 10976 BEGIN( lastCPPContext) ; 10977 } 10978 YY_BREAK 10979 case 182: 10980 YY_RULE_SETUP 10981 #line 2002 "scanner.l" 10982 { 10983 current->name = scanYYtext; 10984 current->name = current->name.left(current->name.length()-1).stripWhiteSpace(); 10985 current->args = "("; 10986 current->bodyLine = yyLineNr; 10987 currentArgumentContext = DefineEnd; 10988 fullArgString=current->args.copy(); 10989 copyArgString=¤t->args; 10990 BEGIN( ReadFuncArgType ) ; 10991 } 10992 YY_BREAK 10993 /* 10994 <DefineArg>")" { 10995 //printf("Define with args\n"); 10996 current->args += ')'; 10997 BEGIN( DefineEnd ); 10998 } 10999 <DefineArg>. { 11000 current->args += *scanYYtext; 11001 } 11002 */ 11003 case 183: 11004 YY_RULE_SETUP 11005 #line 2022 "scanner.l" 11006 { 11007 //printf("Define `%s' without args\n",scanYYtext); 11008 current->bodyLine = yyLineNr; 11009 current->name = scanYYtext; 11010 BEGIN(DefineEnd); 11011 } 11012 YY_BREAK 11013 case 184: 11014 /* rule 184 can match eol */ 11015 YY_RULE_SETUP 11016 #line 2028 "scanner.l" 11017 { 11018 //printf("End define\n"); 11019 yyLineNr++; 11020 current->fileName = yyFileName; 11021 current->startLine = yyLineNr; 11022 current->type.resize(0); 11023 current->args = current->args.simplifyWhiteSpace(); 11024 current->name = current->name.stripWhiteSpace(); 11025 current->section = Entry::DEFINE_SEC; 11026 current_root->addSubEntry(current); 11027 current = new Entry ; 11028 initEntry(); 11029 BEGIN(FindMembers); 11030 } 11031 YY_BREAK 11032 case 185: 11033 YY_RULE_SETUP 11034 #line 2042 "scanner.l" 11035 { 11036 //printf("End define\n"); 11037 current->fileName = yyFileName; 11038 current->startLine = yyLineNr; 11039 current->type.resize(0); 11040 current->args = current->args.simplifyWhiteSpace(); 11041 current->name = current->name.stripWhiteSpace(); 11042 current->section = Entry::ENUM_SEC; //HACK! 11043 current_root->addSubEntry(current); 11044 current = new Entry ; 11045 initEntry(); 11046 BEGIN(FindMembers); 11047 } 11048 YY_BREAK 11049 case 186: 11050 YY_RULE_SETUP 11051 #line 2055 "scanner.l" 11052 11053 YY_BREAK 11054 case 187: 11055 /* rule 187 can match eol */ 11056 YY_RULE_SETUP 11057 #line 2056 "scanner.l" 11058 { 11059 yyLineNr++; 11060 } 11061 YY_BREAK 11062 case 188: 11063 YY_RULE_SETUP 11064 #line 2059 "scanner.l" 11065 { 11066 if (insideIDL && insideCppQuote) 11067 { 11068 BEGIN(EndCppQuote); 11069 } 11070 else 11071 { 11072 lastStringContext=DefineEnd; 11073 BEGIN(SkipString); 11074 } 11075 } 11076 YY_BREAK 11077 case 189: 11078 YY_RULE_SETUP 11079 #line 2070 "scanner.l" 11080 11081 YY_BREAK 11082 case 190: 11083 /* rule 190 can match eol */ 11084 YY_RULE_SETUP 11085 #line 2071 "scanner.l" 11086 { 11087 current->name = scanYYtext; 11088 current->name = current->name.stripWhiteSpace(); 11089 current->name = current->name.left(current->name.length()-1).stripWhiteSpace(); 11090 current->name = current->name.left(current->name.length()-1); 11091 current->args = "("; 11092 current->bodyLine = yyLineNr; 11093 lastRoundContext = DefinePHPEnd; 11094 pCopyRoundString = ¤t->args; 11095 roundCount = 0; 11096 BEGIN( CopyRound ); 11097 } 11098 YY_BREAK 11099 case 191: 11100 YY_RULE_SETUP 11101 #line 2084 "scanner.l" 11102 { // ^ and % are C++/CLI extensions 11103 if (insideCli) 11104 { 11105 addType( current ); 11106 current->name = scanYYtext ; 11107 } 11108 else 11109 { 11110 REJECT; 11111 } 11112 } 11113 YY_BREAK 11114 case 192: 11115 YY_RULE_SETUP 11116 #line 2095 "scanner.l" 11117 { 11118 current->name += scanYYtext ; 11119 addType( current ); 11120 } 11121 YY_BREAK 11122 case 193: 11123 /* rule 193 can match eol */ 11124 YY_RULE_SETUP 11125 #line 2099 "scanner.l" 11126 { 11127 lineCount(); 11128 if (current->bodyLine==-1) 11129 { 11130 current->bodyLine=yyLineNr; 11131 } 11132 docBlockContext = YY_START; 11133 docBlockInBody = FALSE; 11134 docBlockAutoBrief = ( scanYYtext[scanYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) || 11135 ( scanYYtext[scanYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") ); 11136 docBlock.resize(0); 11137 docBlockTerm = ';'; 11138 if (scanYYtext[scanYYleng-3]=='/') 11139 { 11140 startCommentBlock(TRUE); 11141 BEGIN( DocLine ); 11142 } 11143 else 11144 { 11145 startCommentBlock(FALSE); 11146 BEGIN( DocBlock ); 11147 } 11148 } 11149 YY_BREAK 11150 case 194: 11151 /* rule 194 can match eol */ 11152 YY_RULE_SETUP 11153 #line 2122 "scanner.l" 11154 { 11155 lineCount(); 11156 docBlockContext = YY_START; 11157 docBlockInBody = FALSE; 11158 docBlockAutoBrief = ( scanYYtext[scanYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) || 11159 ( scanYYtext[scanYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") ); 11160 docBlock.resize(0); 11161 docBlockTerm = ','; 11162 if (scanYYtext[scanYYleng-3]=='/') 11163 { 11164 startCommentBlock(TRUE); 11165 BEGIN( DocLine ); 11166 } 11167 else 11168 { 11169 startCommentBlock(FALSE); 11170 BEGIN( DocBlock ); 11171 } 11172 } 11173 YY_BREAK 11174 case 195: 11175 /* rule 195 can match eol */ 11176 YY_RULE_SETUP 11177 #line 2141 "scanner.l" 11178 { 11179 lineCount(); 11180 if (current->bodyLine==-1) 11181 { 11182 current->bodyLine=yyLineNr; 11183 } 11184 docBlockContext = YY_START; 11185 docBlockInBody = FALSE; 11186 docBlockAutoBrief = ( scanYYtext[scanYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) || 11187 ( scanYYtext[scanYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") ); 11188 docBlock.resize(0); 11189 docBlockTerm = 0; 11190 if (scanYYtext[scanYYleng-3]=='/') 11191 { 11192 startCommentBlock(TRUE); 11193 BEGIN( DocLine ); 11194 } 11195 else 11196 { 11197 startCommentBlock(FALSE); 11198 BEGIN( DocBlock ); 11199 } 11200 } 11201 YY_BREAK 11202 case 196: 11203 YY_RULE_SETUP 11204 #line 2165 "scanner.l" 11205 { 11206 //handleGroupStartCommand(current->name); 11207 if (previous && previous->section==Entry::GROUPDOC_SEC) 11208 { 11209 // link open command to the group defined in the previous entry 11210 openGroup(previous,yyFileName,yyLineNr); 11211 } 11212 else 11213 { 11214 // link open command to the current entry 11215 openGroup(current,yyFileName,yyLineNr); 11216 } 11217 //current = tmp; 11218 initEntry(); 11219 if (scanYYtext[1]=='/') 11220 { 11221 if (scanYYtext[2]=='!' || scanYYtext[2]=='/') 11222 { 11223 docBlockContext = YY_START; 11224 docBlockInBody = FALSE; 11225 docBlockAutoBrief = FALSE; 11226 docBlock.resize(0); 11227 docBlockTerm = 0; 11228 startCommentBlock(TRUE); 11229 BEGIN(DocLine); 11230 } 11231 else 11232 { 11233 lastCContext=YY_START; 11234 BEGIN(SkipCxxComment); 11235 } 11236 } 11237 else 11238 { 11239 if (scanYYtext[2]=='!' || scanYYtext[2]=='*') 11240 { 11241 docBlockContext = YY_START; 11242 docBlockInBody = FALSE; 11243 docBlock.resize(0); 11244 docBlockAutoBrief = ( scanYYtext[scanYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) || 11245 ( scanYYtext[scanYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") ); 11246 docBlockTerm = 0; 11247 startCommentBlock(FALSE); 11248 BEGIN(DocBlock); 11249 } 11250 else 11251 { 11252 lastCContext=YY_START; 11253 BEGIN(SkipComment); 11254 } 11255 } 11256 } 11257 YY_BREAK 11258 case 197: 11259 YY_RULE_SETUP 11260 #line 2217 "scanner.l" 11261 { 11262 closeGroup(current,yyFileName,yyLineNr); 11263 } 11264 YY_BREAK 11265 case 198: 11266 YY_RULE_SETUP 11267 #line 2220 "scanner.l" 11268 { // in PHP code this could also be due to "<?=" 11269 current->bodyLine = yyLineNr; 11270 lastInitializerContext = YY_START; 11271 initBracketCount=0; 11272 BEGIN(ReadInitializer); 11273 } 11274 YY_BREAK 11275 /* Read initializer rules */ 11276 case 199: 11277 YY_RULE_SETUP 11278 #line 2227 "scanner.l" 11279 { 11280 lastRoundContext=YY_START; 11281 pCopyRoundGString=¤t->initializer; 11282 roundCount=0; 11283 current->initializer+=*scanYYtext; 11284 BEGIN(GCopyRound); 11285 } 11286 YY_BREAK 11287 case 200: 11288 YY_RULE_SETUP 11289 #line 2234 "scanner.l" 11290 { 11291 lastCurlyContext=YY_START; 11292 pCopyCurlyGString=¤t->initializer; 11293 curlyCount=0; 11294 current->initializer+=*scanYYtext; 11295 BEGIN(GCopyCurly); 11296 } 11297 YY_BREAK 11298 case 201: 11299 YY_RULE_SETUP 11300 #line 2241 "scanner.l" 11301 { 11302 //printf(">> initializer `%s' <<\n",current->initializer.data()); 11303 if (*scanYYtext==';' || lastInitializerContext==FindFields) 11304 { 11305 unput(*scanYYtext); 11306 BEGIN(lastInitializerContext); 11307 } 11308 else if (*scanYYtext==',' && initBracketCount==0) // for "int a=0,b=0" 11309 { 11310 unput(*scanYYtext); 11311 BEGIN(lastInitializerContext); 11312 } 11313 else 11314 { 11315 current->initializer+=*scanYYtext; 11316 } 11317 } 11318 YY_BREAK 11319 case 202: 11320 YY_RULE_SETUP 11321 #line 2258 "scanner.l" 11322 { 11323 if (insideIDL && insideCppQuote) 11324 { 11325 BEGIN(EndCppQuote); 11326 } 11327 else 11328 { 11329 lastStringContext=YY_START; 11330 current->initializer+=*scanYYtext; 11331 pCopyQuotedGString=¤t->initializer; 11332 BEGIN(CopyGString); 11333 } 11334 } 11335 YY_BREAK 11336 case 203: 11337 YY_RULE_SETUP 11338 #line 2271 "scanner.l" 11339 { 11340 current->initializer+=scanYYtext; 11341 } 11342 YY_BREAK 11343 case 204: 11344 YY_RULE_SETUP 11345 #line 2274 "scanner.l" 11346 { 11347 current->initializer+=scanYYtext; 11348 } 11349 YY_BREAK 11350 case 205: 11351 YY_RULE_SETUP 11352 #line 2277 "scanner.l" 11353 { 11354 current->initializer+=scanYYtext; 11355 } 11356 YY_BREAK 11357 case 206: 11358 YY_RULE_SETUP 11359 #line 2280 "scanner.l" 11360 { 11361 initBracketCount++; 11362 current->initializer+=*scanYYtext; 11363 } 11364 YY_BREAK 11365 case 207: 11366 YY_RULE_SETUP 11367 #line 2284 "scanner.l" 11368 { 11369 initBracketCount--; 11370 current->initializer+=*scanYYtext; 11371 } 11372 YY_BREAK 11373 case 208: 11374 YY_RULE_SETUP 11375 #line 2288 "scanner.l" 11376 { 11377 if (insidePHP) 11378 { 11379 current->initializer+=scanYYtext; 11380 pCopyQuotedGString = ¤t->initializer; 11381 lastStringContext=YY_START; 11382 BEGIN(CopyPHPGString); 11383 } 11384 else 11385 { 11386 current->initializer+=scanYYtext; 11387 } 11388 } 11389 YY_BREAK 11390 case 209: 11391 YY_RULE_SETUP 11392 #line 2301 "scanner.l" 11393 { 11394 if (insidePHP) 11395 { 11396 REJECT; 11397 } 11398 else 11399 { 11400 current->initializer+=scanYYtext; 11401 } 11402 } 11403 YY_BREAK 11404 case 210: 11405 /* rule 210 can match eol */ 11406 YY_RULE_SETUP 11407 #line 2311 "scanner.l" 11408 { 11409 current->initializer+=*scanYYtext; 11410 yyLineNr++; 11411 } 11412 YY_BREAK 11413 case 211: 11414 YY_RULE_SETUP 11415 #line 2315 "scanner.l" 11416 { 11417 //printf("insideCS=%d\n",insideCS); 11418 current->initializer+=scanYYtext; 11419 if (!insideCS && !insideObjC) 11420 { 11421 REJECT; 11422 } 11423 else 11424 { 11425 // C#/ObjC verbatim string 11426 lastSkipVerbStringContext=YY_START; 11427 pSkipVerbString=¤t->initializer; 11428 BEGIN(SkipVerbString); 11429 } 11430 } 11431 YY_BREAK 11432 case 212: 11433 YY_RULE_SETUP 11434 #line 2330 "scanner.l" 11435 { 11436 *pSkipVerbString+=scanYYtext; 11437 } 11438 YY_BREAK 11439 case 213: 11440 YY_RULE_SETUP 11441 #line 2333 "scanner.l" 11442 { // quote escape 11443 *pSkipVerbString+=scanYYtext; 11444 } 11445 YY_BREAK 11446 case 214: 11447 YY_RULE_SETUP 11448 #line 2336 "scanner.l" 11449 { 11450 *pSkipVerbString+=*scanYYtext; 11451 BEGIN(lastSkipVerbStringContext); 11452 } 11453 YY_BREAK 11454 case 215: 11455 /* rule 215 can match eol */ 11456 YY_RULE_SETUP 11457 #line 2340 "scanner.l" 11458 { 11459 *pSkipVerbString+=*scanYYtext; 11460 yyLineNr++; 11461 } 11462 YY_BREAK 11463 case 216: 11464 YY_RULE_SETUP 11465 #line 2344 "scanner.l" 11466 { 11467 *pSkipVerbString+=*scanYYtext; 11468 } 11469 YY_BREAK 11470 case 217: 11471 YY_RULE_SETUP 11472 #line 2347 "scanner.l" 11473 { 11474 if (insidePHP) 11475 BEGIN( FindMembersPHP ); 11476 else 11477 current->initializer+=scanYYtext; 11478 } 11479 YY_BREAK 11480 case 218: 11481 YY_RULE_SETUP 11482 #line 2353 "scanner.l" 11483 { 11484 current->initializer+=*scanYYtext; 11485 } 11486 YY_BREAK 11487 /* generic quoted string copy rules */ 11488 case 219: 11489 YY_RULE_SETUP 11490 #line 2358 "scanner.l" 11491 { 11492 *pCopyQuotedString+=scanYYtext; 11493 } 11494 YY_BREAK 11495 case 220: 11496 YY_RULE_SETUP 11497 #line 2361 "scanner.l" 11498 { 11499 *pCopyQuotedString+=*scanYYtext; 11500 BEGIN( lastStringContext ); 11501 } 11502 YY_BREAK 11503 case 221: 11504 YY_RULE_SETUP 11505 #line 2365 "scanner.l" 11506 { 11507 *pCopyQuotedString+=*scanYYtext; 11508 BEGIN( lastStringContext ); 11509 } 11510 YY_BREAK 11511 case 222: 11512 YY_RULE_SETUP 11513 #line 2369 "scanner.l" 11514 { 11515 *pCopyQuotedString+=scanYYtext; 11516 } 11517 YY_BREAK 11518 case 223: 11519 /* rule 223 can match eol */ 11520 YY_RULE_SETUP 11521 #line 2372 "scanner.l" 11522 { 11523 *pCopyQuotedString+=*scanYYtext; 11524 yyLineNr++; 11525 } 11526 YY_BREAK 11527 case 224: 11528 YY_RULE_SETUP 11529 #line 2376 "scanner.l" 11530 { 11531 *pCopyQuotedString+=*scanYYtext; 11532 } 11533 YY_BREAK 11534 /* generic quoted growable string copy rules */ 11535 case 225: 11536 YY_RULE_SETUP 11537 #line 2381 "scanner.l" 11538 { 11539 *pCopyQuotedGString+=scanYYtext; 11540 } 11541 YY_BREAK 11542 case 226: 11543 YY_RULE_SETUP 11544 #line 2384 "scanner.l" 11545 { 11546 *pCopyQuotedGString+=*scanYYtext; 11547 BEGIN( lastStringContext ); 11548 } 11549 YY_BREAK 11550 case 227: 11551 YY_RULE_SETUP 11552 #line 2388 "scanner.l" 11553 { 11554 *pCopyQuotedGString+=*scanYYtext; 11555 BEGIN( lastStringContext ); 11556 } 11557 YY_BREAK 11558 case 228: 11559 YY_RULE_SETUP 11560 #line 2392 "scanner.l" 11561 { 11562 *pCopyQuotedGString+=scanYYtext; 11563 } 11564 YY_BREAK 11565 case 229: 11566 /* rule 229 can match eol */ 11567 YY_RULE_SETUP 11568 #line 2395 "scanner.l" 11569 { 11570 *pCopyQuotedGString+=*scanYYtext; 11571 yyLineNr++; 11572 } 11573 YY_BREAK 11574 case 230: 11575 YY_RULE_SETUP 11576 #line 2399 "scanner.l" 11577 { 11578 *pCopyQuotedGString+=*scanYYtext; 11579 } 11580 YY_BREAK 11581 /* generic round bracket list copy rules */ 11582 case 231: 11583 YY_RULE_SETUP 11584 #line 2404 "scanner.l" 11585 { 11586 *pCopyRoundString+=*scanYYtext; 11587 pCopyQuotedString=pCopyRoundString; 11588 lastStringContext=YY_START; 11589 BEGIN(CopyString); 11590 } 11591 YY_BREAK 11592 case 232: 11593 YY_RULE_SETUP 11594 #line 2410 "scanner.l" 11595 { 11596 *pCopyRoundString+=*scanYYtext; 11597 roundCount++; 11598 } 11599 YY_BREAK 11600 case 233: 11601 YY_RULE_SETUP 11602 #line 2414 "scanner.l" 11603 { 11604 *pCopyRoundString+=*scanYYtext; 11605 if (--roundCount<0) 11606 BEGIN(lastRoundContext); 11607 } 11608 YY_BREAK 11609 case 234: 11610 /* rule 234 can match eol */ 11611 YY_RULE_SETUP 11612 #line 2419 "scanner.l" 11613 { 11614 yyLineNr++; 11615 *pCopyRoundString+=*scanYYtext; 11616 } 11617 YY_BREAK 11618 case 235: 11619 YY_RULE_SETUP 11620 #line 2423 "scanner.l" 11621 { 11622 if (insidePHP) 11623 { 11624 current->initializer+=scanYYtext; 11625 pCopyQuotedString = pCopyRoundString; 11626 lastStringContext=YY_START; 11627 BEGIN(CopyPHPString); 11628 } 11629 else 11630 { 11631 *pCopyRoundString+=scanYYtext; 11632 } 11633 } 11634 YY_BREAK 11635 case 236: 11636 YY_RULE_SETUP 11637 #line 2436 "scanner.l" 11638 { 11639 if (insidePHP) 11640 { 11641 REJECT; 11642 } 11643 else 11644 { 11645 *pCopyRoundString+=scanYYtext; 11646 } 11647 } 11648 YY_BREAK 11649 case 237: 11650 YY_RULE_SETUP 11651 #line 2446 "scanner.l" 11652 { 11653 *pCopyRoundString+=scanYYtext; 11654 } 11655 YY_BREAK 11656 case 238: 11657 YY_RULE_SETUP 11658 #line 2449 "scanner.l" 11659 { 11660 *pCopyRoundString+=*scanYYtext; 11661 } 11662 YY_BREAK 11663 /* generic round bracket list copy rules for growable strings */ 11664 case 239: 11665 YY_RULE_SETUP 11666 #line 2454 "scanner.l" 11667 { 11668 *pCopyRoundGString+=*scanYYtext; 11669 pCopyQuotedGString=pCopyRoundGString; 11670 lastStringContext=YY_START; 11671 BEGIN(CopyGString); 11672 } 11673 YY_BREAK 11674 case 240: 11675 YY_RULE_SETUP 11676 #line 2460 "scanner.l" 11677 { 11678 *pCopyRoundGString+=*scanYYtext; 11679 roundCount++; 11680 } 11681 YY_BREAK 11682 case 241: 11683 YY_RULE_SETUP 11684 #line 2464 "scanner.l" 11685 { 11686 *pCopyRoundGString+=*scanYYtext; 11687 if (--roundCount<0) 11688 BEGIN(lastRoundContext); 11689 } 11690 YY_BREAK 11691 case 242: 11692 /* rule 242 can match eol */ 11693 YY_RULE_SETUP 11694 #line 2469 "scanner.l" 11695 { 11696 yyLineNr++; 11697 *pCopyRoundGString+=*scanYYtext; 11698 } 11699 YY_BREAK 11700 case 243: 11701 YY_RULE_SETUP 11702 #line 2473 "scanner.l" 11703 { 11704 if (insidePHP) 11705 { 11706 current->initializer+=scanYYtext; 11707 pCopyQuotedGString = pCopyRoundGString; 11708 lastStringContext=YY_START; 11709 BEGIN(CopyPHPGString); 11710 } 11711 else 11712 { 11713 *pCopyRoundGString+=scanYYtext; 11714 } 11715 } 11716 YY_BREAK 11717 case 244: 11718 YY_RULE_SETUP 11719 #line 2486 "scanner.l" 11720 { 11721 if (insidePHP) 11722 { 11723 REJECT; 11724 } 11725 else 11726 { 11727 *pCopyRoundGString+=scanYYtext; 11728 } 11729 } 11730 YY_BREAK 11731 case 245: 11732 YY_RULE_SETUP 11733 #line 2496 "scanner.l" 11734 { 11735 *pCopyRoundGString+=scanYYtext; 11736 } 11737 YY_BREAK 11738 case 246: 11739 YY_RULE_SETUP 11740 #line 2499 "scanner.l" 11741 { 11742 *pCopyRoundGString+=*scanYYtext; 11743 } 11744 YY_BREAK 11745 /* generic curly bracket list copy rules */ 11746 case 247: 11747 YY_RULE_SETUP 11748 #line 2504 "scanner.l" 11749 { 11750 *pCopyCurlyString+=*scanYYtext; 11751 pCopyQuotedString=pCopyCurlyString; 11752 lastStringContext=YY_START; 11753 BEGIN(CopyString); 11754 } 11755 YY_BREAK 11756 case 248: 11757 YY_RULE_SETUP 11758 #line 2510 "scanner.l" 11759 { 11760 *pCopyCurlyString+=*scanYYtext; 11761 if (insidePHP) 11762 { 11763 pCopyQuotedString=pCopyCurlyString; 11764 lastStringContext=YY_START; 11765 BEGIN(CopyPHPString); 11766 } 11767 } 11768 YY_BREAK 11769 case 249: 11770 YY_RULE_SETUP 11771 #line 2519 "scanner.l" 11772 { 11773 *pCopyCurlyString+=*scanYYtext; 11774 curlyCount++; 11775 } 11776 YY_BREAK 11777 case 250: 11778 YY_RULE_SETUP 11779 #line 2523 "scanner.l" 11780 { 11781 *pCopyCurlyString+=*scanYYtext; 11782 if (--curlyCount<0) 11783 BEGIN(lastCurlyContext); 11784 } 11785 YY_BREAK 11786 case 251: 11787 YY_RULE_SETUP 11788 #line 2528 "scanner.l" 11789 { if (insidePHP) 11790 { 11791 REJECT; 11792 } 11793 else 11794 { 11795 *pCopyCurlyString+=scanYYtext; 11796 } 11797 } 11798 YY_BREAK 11799 case 252: 11800 YY_RULE_SETUP 11801 #line 2537 "scanner.l" 11802 { 11803 *pCopyCurlyString+=scanYYtext; 11804 } 11805 YY_BREAK 11806 case 253: 11807 YY_RULE_SETUP 11808 #line 2540 "scanner.l" 11809 { *pCopyCurlyString+=scanYYtext; } 11810 YY_BREAK 11811 case 254: 11812 /* rule 254 can match eol */ 11813 YY_RULE_SETUP 11814 #line 2541 "scanner.l" 11815 { 11816 yyLineNr++; 11817 *pCopyCurlyString+=*scanYYtext; 11818 } 11819 YY_BREAK 11820 case 255: 11821 YY_RULE_SETUP 11822 #line 2545 "scanner.l" 11823 { 11824 *pCopyCurlyString+=*scanYYtext; 11825 } 11826 YY_BREAK 11827 /* generic curly bracket list copy rules for growable strings */ 11828 case 256: 11829 /* rule 256 can match eol */ 11830 YY_RULE_SETUP 11831 #line 2550 "scanner.l" 11832 { // start of included file marker 11833 } 11834 YY_BREAK 11835 case 257: 11836 /* rule 257 can match eol */ 11837 YY_RULE_SETUP 11838 #line 2552 "scanner.l" 11839 { // end of included file marker 11840 QCString line = QCString(scanYYtext); 11841 int s = line.find(' '); 11842 int e = line.find('"',s); 11843 yyLineNr = line.mid(s,e-s).toInt(); 11844 if (scanYYtext[scanYYleng-1]=='\n') 11845 { 11846 yyLineNr++; 11847 } 11848 } 11849 YY_BREAK 11850 case 258: 11851 YY_RULE_SETUP 11852 #line 2562 "scanner.l" 11853 { 11854 *pCopyCurlyGString+=*scanYYtext; 11855 pCopyQuotedGString=pCopyCurlyGString; 11856 lastStringContext=YY_START; 11857 BEGIN(CopyGString); 11858 } 11859 YY_BREAK 11860 case 259: 11861 YY_RULE_SETUP 11862 #line 2568 "scanner.l" 11863 { 11864 *pCopyCurlyGString+=*scanYYtext; 11865 if (insidePHP) 11866 { 11867 pCopyQuotedGString=pCopyCurlyGString; 11868 lastStringContext=YY_START; 11869 BEGIN(CopyPHPGString); 11870 } 11871 } 11872 YY_BREAK 11873 case 260: 11874 YY_RULE_SETUP 11875 #line 2577 "scanner.l" 11876 { 11877 *pCopyCurlyGString+=*scanYYtext; 11878 curlyCount++; 11879 } 11880 YY_BREAK 11881 case 261: 11882 YY_RULE_SETUP 11883 #line 2581 "scanner.l" 11884 { 11885 *pCopyCurlyGString+=*scanYYtext; 11886 if (--curlyCount<0) 11887 BEGIN(lastCurlyContext); 11888 } 11889 YY_BREAK 11890 case 262: 11891 YY_RULE_SETUP 11892 #line 2586 "scanner.l" 11893 { if (insidePHP) 11894 { 11895 REJECT; 11896 } 11897 else 11898 { 11899 *pCopyCurlyGString+=scanYYtext; 11900 } 11901 } 11902 YY_BREAK 11903 case 263: 11904 YY_RULE_SETUP 11905 #line 2595 "scanner.l" 11906 { 11907 *pCopyCurlyGString+=scanYYtext; 11908 } 11909 YY_BREAK 11910 case 264: 11911 YY_RULE_SETUP 11912 #line 2598 "scanner.l" 11913 { *pCopyCurlyGString+=scanYYtext; } 11914 YY_BREAK 11915 case 265: 11916 /* rule 265 can match eol */ 11917 YY_RULE_SETUP 11918 #line 2599 "scanner.l" 11919 { 11920 yyLineNr++; 11921 *pCopyCurlyGString+=*scanYYtext; 11922 } 11923 YY_BREAK 11924 case 266: 11925 YY_RULE_SETUP 11926 #line 2603 "scanner.l" 11927 { 11928 *pCopyCurlyGString+=*scanYYtext; 11929 } 11930 YY_BREAK 11931 /* ---------------------- */ 11932 case 267: 11933 YY_RULE_SETUP 11934 #line 2610 "scanner.l" 11935 { 11936 if (current->type.isEmpty()) // anonymous padding field, e.g. "int :7;" 11937 { 11938 addType(current); 11939 current->name.sprintf("__pad%d__",padCount++); 11940 } 11941 BEGIN(BitFields); 11942 current->bitfields+=":"; 11943 } 11944 YY_BREAK 11945 case 268: 11946 YY_RULE_SETUP 11947 #line 2619 "scanner.l" 11948 { 11949 current->bitfields+=*scanYYtext; 11950 } 11951 YY_BREAK 11952 case 269: 11953 YY_RULE_SETUP 11954 #line 2622 "scanner.l" 11955 { 11956 QCString oldType = current->type.copy(); 11957 if (current->bodyLine==-1) 11958 { 11959 current->bodyLine = yyLineNr; 11960 } 11961 if ( insidePHP && current->type.left(3) == "var" ) 11962 { 11963 current->type = current->type.mid(3); 11964 } 11965 if (isTypedef && current->type.left(8)!="typedef ") 11966 { 11967 current->type.prepend("typedef "); 11968 } 11969 bool needNewCurrent=FALSE; 11970 if (!current->name.isEmpty() && current->section!=Entry::ENUM_SEC) 11971 { 11972 current->type=current->type.simplifyWhiteSpace(); 11973 current->args=removeRedundantWhiteSpace(current->args); 11974 current->name=current->name.stripWhiteSpace(); 11975 current->section = Entry::VARIABLE_SEC ; 11976 current->fileName = yyFileName; 11977 current->startLine = yyLineNr; 11978 current_root->addSubEntry( current ) ; 11979 needNewCurrent=TRUE; 11980 } 11981 if ( *scanYYtext == ',') 11982 { 11983 if (needNewCurrent) 11984 { 11985 current = new Entry(*current); 11986 } 11987 current->name.resize(0); 11988 current->args.resize(0); 11989 current->brief.resize(0); 11990 current->doc.resize(0); 11991 current->initializer.resize(0); 11992 current->bitfields.resize(0); 11993 int i=oldType.length(); 11994 while (i>0 && (oldType[i-1]=='*' || oldType[i-1]=='&' || oldType[i-1]==' ')) i--; 11995 current->type = oldType.left(i); 11996 } 11997 else 11998 { 11999 if (needNewCurrent) 12000 { 12001 current = new Entry ; 12002 } 12003 else if (current->groups) 12004 { 12005 current->groups->clear(); 12006 } 12007 initEntry(); 12008 } 12009 BEGIN( FindMembers ) ; 12010 } 12011 YY_BREAK 12012 case 270: 12013 YY_RULE_SETUP 12014 #line 2679 "scanner.l" 12015 { 12016 if (!insideCS && 12017 current->name.isEmpty() || 12018 current->name=="typedef" 12019 ) // IDL function property 12020 { 12021 squareCount=1; 12022 lastSquareContext = YY_START; 12023 idlAttr.resize(0); 12024 idlProp.resize(0); 12025 current->mtype = mtype; 12026 BEGIN( IDLAttribute ); 12027 } 12028 else if (insideCS && 12029 current->name.isEmpty()) 12030 { 12031 squareCount=1; 12032 lastSquareContext = YY_START; 12033 // Skip the C# attribute 12034 // for this member 12035 current->args.resize(0); 12036 BEGIN( SkipSquare ); 12037 } 12038 else 12039 { 12040 current->args += scanYYtext ; 12041 squareCount=1; 12042 BEGIN( Array ) ; 12043 } 12044 } 12045 YY_BREAK 12046 case 271: 12047 YY_RULE_SETUP 12048 #line 2709 "scanner.l" 12049 { 12050 // end of IDL function attribute 12051 if (--squareCount<=0) 12052 { 12053 lineCount(); 12054 if (current->mtype == Property) 12055 BEGIN( IDLPropName ); 12056 else 12057 BEGIN( lastSquareContext ); 12058 } 12059 } 12060 YY_BREAK 12061 case 272: 12062 YY_RULE_SETUP 12063 #line 2720 "scanner.l" 12064 { 12065 current->mtype = Property; 12066 current->spec |= Entry::Settable; 12067 } 12068 YY_BREAK 12069 case 273: 12070 YY_RULE_SETUP 12071 #line 2724 "scanner.l" 12072 { 12073 current->mtype = Property; 12074 current->spec |= Entry::Gettable; 12075 } 12076 YY_BREAK 12077 case 274: 12078 YY_RULE_SETUP 12079 #line 2728 "scanner.l" 12080 { 12081 } 12082 YY_BREAK 12083 case 275: 12084 /* rule 275 can match eol */ 12085 YY_RULE_SETUP 12086 #line 2730 "scanner.l" 12087 { 12088 // return type (probably HRESULT) - skip it 12089 } 12090 YY_BREAK 12091 case 276: 12092 /* rule 276 can match eol */ 12093 YY_RULE_SETUP 12094 #line 2733 "scanner.l" 12095 { 12096 current->name = scanYYtext; 12097 current->name = current->name.left(current->name.length()-1).stripWhiteSpace(); 12098 current->startLine = yyLineNr; 12099 BEGIN( IDLProp ); 12100 } 12101 YY_BREAK 12102 case 277: 12103 /* rule 277 can match eol */ 12104 YY_RULE_SETUP 12105 #line 2739 "scanner.l" 12106 { // attribute of a parameter 12107 idlAttr += scanYYtext; 12108 } 12109 YY_BREAK 12110 case 278: 12111 YY_RULE_SETUP 12112 #line 2742 "scanner.l" 12113 { // property type 12114 idlProp = scanYYtext; 12115 } 12116 YY_BREAK 12117 case 279: 12118 /* rule 279 can match eol */ 12119 YY_RULE_SETUP 12120 #line 2745 "scanner.l" 12121 { // Rare: Another parameter ([propput] HRESULT Item(int index, [in] Type theRealProperty);) 12122 if (!current->args) 12123 current->args = "("; 12124 else 12125 current->args += ", "; 12126 current->args += idlAttr; 12127 current->args += " "; 12128 current->args += idlProp; // prop was actually type of extra parameter 12129 current->args += " "; 12130 current->args += scanYYtext; 12131 current->args = current->args.left(current->args.length() - 1); // strip comma 12132 idlProp.resize(0); 12133 idlAttr.resize(0); 12134 BEGIN( IDLProp ); 12135 } 12136 YY_BREAK 12137 case 280: 12138 /* rule 280 can match eol */ 12139 YY_RULE_SETUP 12140 #line 2760 "scanner.l" 12141 { 12142 // the parameter name for the property - just skip. 12143 } 12144 YY_BREAK 12145 case 281: 12146 YY_RULE_SETUP 12147 #line 2763 "scanner.l" 12148 { 12149 current->fileName = yyFileName; 12150 current->type = idlProp; 12151 current->args = current->args.simplifyWhiteSpace(); 12152 if (current->args) 12153 current->args += ")"; 12154 current->name = current->name.stripWhiteSpace(); 12155 current->section = Entry::VARIABLE_SEC; 12156 current_root->addSubEntry(current); 12157 current = new Entry; 12158 initEntry(); 12159 BEGIN( FindMembers ); 12160 } 12161 YY_BREAK 12162 case 282: 12163 YY_RULE_SETUP 12164 #line 2776 "scanner.l" 12165 { // spaces, *, or other stuff 12166 idlProp+=scanYYtext; 12167 } 12168 YY_BREAK 12169 case 283: 12170 YY_RULE_SETUP 12171 #line 2779 "scanner.l" 12172 { current->args += *scanYYtext ; 12173 if (--squareCount<=0) 12174 BEGIN( FindMembers ) ; 12175 } 12176 YY_BREAK 12177 case 284: 12178 YY_RULE_SETUP 12179 #line 2783 "scanner.l" 12180 { current->args += *scanYYtext ; 12181 if (--squareCount<=0) 12182 BEGIN( Function ) ; 12183 } 12184 YY_BREAK 12185 case 285: 12186 YY_RULE_SETUP 12187 #line 2787 "scanner.l" 12188 { current->args += *scanYYtext ; 12189 squareCount++; 12190 } 12191 YY_BREAK 12192 case 286: 12193 YY_RULE_SETUP 12194 #line 2790 "scanner.l" 12195 { current->args += *scanYYtext ; } 12196 YY_BREAK 12197 case 287: 12198 YY_RULE_SETUP 12199 #line 2791 "scanner.l" 12200 { squareCount++; } 12201 YY_BREAK 12202 case 288: 12203 YY_RULE_SETUP 12204 #line 2792 "scanner.l" 12205 { 12206 if (--squareCount<=0) 12207 BEGIN( lastSquareContext ); 12208 } 12209 YY_BREAK 12210 case 289: 12211 YY_RULE_SETUP 12212 #line 2796 "scanner.l" 12213 { 12214 lastStringContext=YY_START; 12215 BEGIN( SkipString ); 12216 } 12217 YY_BREAK 12218 case 290: 12219 YY_RULE_SETUP 12220 #line 2800 "scanner.l" 12221 12222 YY_BREAK 12223 case 291: 12224 YY_RULE_SETUP 12225 #line 2801 "scanner.l" 12226 { addType( current ) ; 12227 current->type += scanYYtext ; 12228 BEGIN( Sharp ) ; 12229 } 12230 YY_BREAK 12231 case 292: 12232 YY_RULE_SETUP 12233 #line 2805 "scanner.l" 12234 { current->type += *scanYYtext ; 12235 if (--sharpCount<=0) 12236 BEGIN( FindMembers ) ; 12237 } 12238 YY_BREAK 12239 case 293: 12240 YY_RULE_SETUP 12241 #line 2809 "scanner.l" 12242 { current->type += *scanYYtext ; 12243 sharpCount++; 12244 } 12245 YY_BREAK 12246 case 294: 12247 /* rule 294 can match eol */ 12248 YY_RULE_SETUP 12249 #line 2812 "scanner.l" 12250 { 12251 lineCount(); 12252 } 12253 YY_BREAK 12254 case 295: 12255 YY_RULE_SETUP 12256 #line 2815 "scanner.l" 12257 { current->type += *scanYYtext ; } 12258 YY_BREAK 12259 case 296: 12260 YY_RULE_SETUP 12261 #line 2816 "scanner.l" 12262 { 12263 current->bodyLine = yyLineNr; 12264 current->name = scanYYtext; 12265 } 12266 YY_BREAK 12267 case 297: 12268 YY_RULE_SETUP 12269 #line 2820 "scanner.l" 12270 { 12271 // Java enum initializer 12272 unput('('); 12273 lastInitializerContext = YY_START; 12274 initBracketCount=0; 12275 BEGIN(ReadInitializer); 12276 } 12277 YY_BREAK 12278 case 298: 12279 YY_RULE_SETUP 12280 #line 2827 "scanner.l" 12281 { 12282 lastInitializerContext = YY_START; 12283 initBracketCount=0; 12284 BEGIN(ReadInitializer); 12285 } 12286 YY_BREAK 12287 case 299: 12288 YY_RULE_SETUP 12289 #line 2832 "scanner.l" 12290 { 12291 if (insideJava) // last enum field in Java class 12292 { 12293 if (!current->name.isEmpty()) 12294 { 12295 current->fileName = yyFileName; 12296 current->startLine = yyLineNr; 12297 current->type = "@"; // enum marker 12298 current->args = current->args.simplifyWhiteSpace(); 12299 current->name = current->name.stripWhiteSpace(); 12300 current->section = Entry::VARIABLE_SEC; 12301 current_root->addSubEntry(current); 12302 current = new Entry ; 12303 initEntry(); 12304 } 12305 12306 // TODO: skip until the end of the scope 12307 BEGIN( SkipRemainder ); 12308 } 12309 else 12310 { 12311 REJECT; 12312 } 12313 } 12314 YY_BREAK 12315 case 300: 12316 /* rule 300 can match eol */ 12317 YY_RULE_SETUP 12318 #line 2856 "scanner.l" 12319 { 12320 yyLineNr++; 12321 } 12322 YY_BREAK 12323 case 301: 12324 YY_RULE_SETUP 12325 #line 2859 "scanner.l" 12326 12327 YY_BREAK 12328 case 302: 12329 YY_RULE_SETUP 12330 #line 2860 "scanner.l" 12331 { 12332 //printf("adding `%s' `%s' `%s' to enum `%s' (mGrpId=%d)\n", 12333 // current->type.data(), current->name.data(), 12334 // current->args.data(), current_root->name.data(),current->mGrpId); 12335 if (!current->name.isEmpty()) 12336 { 12337 current->fileName = yyFileName; 12338 current->startLine = yyLineNr; 12339 current->type = "@"; // enum marker 12340 current->args = current->args.simplifyWhiteSpace(); 12341 current->name = current->name.stripWhiteSpace(); 12342 current->section = Entry::VARIABLE_SEC; 12343 // add to the scope of the enum 12344 current_root->addSubEntry(current); 12345 if (!insideCS && !insideJava) // for C# and Java 1.5+ enum values always have to be explicitly qualified 12346 { 12347 current = new Entry(*current); 12348 // add to the scope surrounding the enum (copy!) 12349 current_root->parent()->addSubEntry(current); 12350 } 12351 current = new Entry ; 12352 initEntry(); 12353 } 12354 else // probably a redundant , 12355 { 12356 current->reset(); 12357 } 12358 } 12359 YY_BREAK 12360 case 303: 12361 YY_RULE_SETUP 12362 #line 2888 "scanner.l" 12363 { // attribute list in IDL 12364 squareCount=1; 12365 lastSquareContext = YY_START; 12366 BEGIN(SkipSquare); 12367 } 12368 YY_BREAK 12369 /* 12370 <FindFieldArg>"," { unput(*scanYYtext); BEGIN(FindFields); } 12371 */ 12372 case 304: 12373 YY_RULE_SETUP 12374 #line 2896 "scanner.l" 12375 { current->program += scanYYtext ; } 12376 YY_BREAK 12377 case 305: 12378 YY_RULE_SETUP 12379 #line 2897 "scanner.l" 12380 { current->program += scanYYtext ; } 12381 YY_BREAK 12382 case 306: 12383 YY_RULE_SETUP 12384 #line 2898 "scanner.l" 12385 { if (!insidePHP) 12386 REJECT; 12387 // append PHP comment. 12388 current->program += scanYYtext ; 12389 } 12390 YY_BREAK 12391 case 307: 12392 YY_RULE_SETUP 12393 #line 2903 "scanner.l" 12394 { current->program += scanYYtext ; 12395 pSkipVerbString = ¤t->program; 12396 lastSkipVerbStringContext=YY_START; 12397 BEGIN( SkipVerbString ); 12398 } 12399 YY_BREAK 12400 case 308: 12401 YY_RULE_SETUP 12402 #line 2908 "scanner.l" 12403 { current->program += scanYYtext ; 12404 pCopyQuotedGString = ¤t->program; 12405 lastStringContext=YY_START; 12406 BEGIN( CopyGString ); 12407 } 12408 YY_BREAK 12409 case 309: 12410 YY_RULE_SETUP 12411 #line 2913 "scanner.l" 12412 { current->program += scanYYtext ; 12413 lastContext = YY_START ; 12414 BEGIN( Comment ) ; 12415 } 12416 YY_BREAK 12417 case 310: 12418 /* rule 310 can match eol */ 12419 YY_RULE_SETUP 12420 #line 2917 "scanner.l" 12421 { current->program += scanYYtext ; 12422 ++yyLineNr ; 12423 lastContext = YY_START ; 12424 BEGIN( Comment ) ; 12425 } 12426 YY_BREAK 12427 case 311: 12428 YY_RULE_SETUP 12429 #line 2922 "scanner.l" 12430 { 12431 if (!insidePHP) 12432 { 12433 current->program += scanYYtext; 12434 } 12435 else 12436 { // begin of single quoted string 12437 current->program += scanYYtext; 12438 pCopyQuotedGString = ¤t->program; 12439 lastStringContext=YY_START; 12440 BEGIN(CopyPHPGString); 12441 } 12442 } 12443 YY_BREAK 12444 case 312: 12445 YY_RULE_SETUP 12446 #line 2935 "scanner.l" 12447 { 12448 if (insidePHP) 12449 { 12450 REJECT; // for PHP code single quotes 12451 // are used for strings of arbitrary length 12452 } 12453 else 12454 { 12455 current->program += scanYYtext; 12456 } 12457 } 12458 YY_BREAK 12459 case 313: 12460 YY_RULE_SETUP 12461 #line 2946 "scanner.l" 12462 { current->program += scanYYtext ; 12463 ++curlyCount ; 12464 } 12465 YY_BREAK 12466 case 314: 12467 YY_RULE_SETUP 12468 #line 2949 "scanner.l" 12469 { 12470 current->program += scanYYtext ; 12471 --curlyCount ; 12472 } 12473 YY_BREAK 12474 case 315: 12475 YY_RULE_SETUP 12476 #line 2953 "scanner.l" 12477 { //err("ReadBody count=%d\n",curlyCount); 12478 if ( curlyCount>0 ) 12479 { 12480 current->program += scanYYtext ; 12481 --curlyCount ; 12482 } 12483 else 12484 { 12485 current->endBodyLine = yyLineNr; 12486 QCString &cn = current->name; 12487 QCString rn = current_root->name.copy(); 12488 //printf("cn=`%s' rn=`%s'\n",cn.data(),rn.data()); 12489 if (!cn.isEmpty() && !rn.isEmpty()) 12490 { 12491 prependScope(); 12492 } 12493 if (isTypedef && cn.isEmpty()) 12494 { 12495 //printf("Typedef Name\n"); 12496 BEGIN( TypedefName ); 12497 } 12498 else 12499 { 12500 if (current->section == Entry::ENUM_SEC) 12501 { 12502 current->program+=','; // add field terminator 12503 } 12504 // add compound definition to the tree 12505 current->args=removeRedundantWhiteSpace(current->args); 12506 // was: current->args.simplifyWhiteSpace(); 12507 current->type = current->type.simplifyWhiteSpace(); 12508 current->name = current->name.stripWhiteSpace(); 12509 //printf("adding `%s' `%s' `%s' brief=%s insideObjC=%d %x\n",current->type.data(),current->name.data(),current->args.data(),current->brief.data(),insideObjC,current->section); 12510 if (insideObjC && 12511 ((current->spec&Entry::Interface) || (current->spec==Entry::Category)) 12512 ) // method definition follows 12513 { 12514 BEGIN( ReadBodyIntf ) ; 12515 } 12516 else 12517 { 12518 current_root->addSubEntry( current ) ; 12519 memspecEntry = current; 12520 current = new Entry(*current); 12521 if (current->section==Entry::NAMESPACE_SEC || 12522 (current->spec==Entry::Interface) || 12523 insideJava || insidePHP || insideCS || insideD || insideJS 12524 ) 12525 { // namespaces and interfaces and java classes ends with a closing bracket without semicolon 12526 current->reset(); 12527 initEntry(); 12528 memspecEntry = 0; 12529 BEGIN( FindMembers ) ; 12530 } 12531 else 12532 { 12533 current->doc.resize(0); 12534 current->brief.resize(0); 12535 BEGIN( MemberSpec ) ; 12536 } 12537 } 12538 } 12539 } 12540 } 12541 YY_BREAK 12542 case 316: 12543 /* rule 316 can match eol */ 12544 YY_RULE_SETUP 12545 #line 3017 "scanner.l" 12546 { //err("ReadBody count=%d\n",curlyCount); 12547 lineCount(); 12548 if ( curlyCount>0 ) 12549 { 12550 current->program += scanYYtext ; 12551 --curlyCount ; 12552 } 12553 else 12554 { 12555 isTypedef = TRUE; 12556 current->endBodyLine = yyLineNr; 12557 QCString &cn = current->name; 12558 QCString rn = current_root->name.copy(); 12559 if (!cn.isEmpty() && !rn.isEmpty()) 12560 { 12561 prependScope(); 12562 } 12563 BEGIN( TypedefName ); 12564 } 12565 } 12566 YY_BREAK 12567 case 317: 12568 /* rule 317 can match eol */ 12569 YY_RULE_SETUP 12570 #line 3037 "scanner.l" 12571 { // late "const" or "volatile" keyword 12572 lineCount(); 12573 current->type.prepend(scanYYtext); 12574 } 12575 YY_BREAK 12576 case 318: 12577 YY_RULE_SETUP 12578 #line 3041 "scanner.l" 12579 { 12580 if (current->section == Entry::ENUM_SEC) 12581 { 12582 current->program+=","; // add field terminator 12583 } 12584 current->name=scanYYtext; 12585 prependScope(); 12586 current->args = current->args.simplifyWhiteSpace(); 12587 current->type = current->type.simplifyWhiteSpace(); 12588 //printf("Adding compound %s %s %s\n",current->type.data(),current->name.data(),current->args.data()); 12589 current_root->addSubEntry( current ) ; 12590 if (!firstTypedefEntry) 12591 { 12592 firstTypedefEntry = current; 12593 } 12594 current = new Entry; 12595 initEntry(); 12596 isTypedef=TRUE; // to undo reset by initEntry() 12597 BEGIN(MemberSpecSkip); 12598 } 12599 YY_BREAK 12600 case 319: 12601 YY_RULE_SETUP 12602 #line 3061 "scanner.l" 12603 { /* typedef of anonymous type */ 12604 current->name.sprintf("@%d",anonCount++); 12605 if (current->section == Entry::ENUM_SEC) 12606 { 12607 current->program+=','; // add field terminator 12608 } 12609 // add compound definition to the tree 12610 current->args = current->args.simplifyWhiteSpace(); 12611 current->type = current->type.simplifyWhiteSpace(); 12612 current_root->addSubEntry( current ) ; 12613 memspecEntry = current; 12614 current = new Entry(*current); 12615 unput(';'); 12616 BEGIN( MemberSpec ) ; 12617 } 12618 YY_BREAK 12619 case 320: 12620 /* rule 320 can match eol */ 12621 YY_RULE_SETUP 12622 #line 3076 "scanner.l" 12623 { // the [] part could be improved. 12624 lineCount(); 12625 int i=0,l=scanYYleng,j; 12626 while (i<l && (!isId(scanYYtext[i]))) i++; 12627 msName = QCString(scanYYtext).right(l-i).stripWhiteSpace(); 12628 j=msName.find("["); 12629 if (j!=-1) 12630 { 12631 msArgs=msName.right(msName.length()-j); 12632 msName=msName.left(j); 12633 } 12634 msType=QCString(scanYYtext).left(i); 12635 12636 // handle *pName in: typedef { ... } name, *pName; 12637 if (firstTypedefEntry) 12638 { 12639 if (firstTypedefEntry->spec&Entry::Struct) 12640 { 12641 msType.prepend("struct "+firstTypedefEntry->name); 12642 } 12643 else if (firstTypedefEntry->spec&Entry::Union) 12644 { 12645 msType.prepend("union "+firstTypedefEntry->name); 12646 } 12647 else if (firstTypedefEntry->section==Entry::ENUM_SEC) 12648 { 12649 msType.prepend("enum "+firstTypedefEntry->name); 12650 } 12651 else 12652 { 12653 msType.prepend(firstTypedefEntry->name); 12654 } 12655 } 12656 } 12657 YY_BREAK 12658 case 321: 12659 YY_RULE_SETUP 12660 #line 3110 "scanner.l" 12661 { 12662 //printf("current->name=`%s' msName=`%s'\n",current->name.data(),msName.data()); 12663 if (msName.isEmpty() && !current->name.isEmpty()) 12664 { 12665 // see if the compound does not have a name or is inside another 12666 // annonymous compound. If so we insert a 12667 // special `annonymous' variable. 12668 //Entry *p=current_root; 12669 Entry *p=current; 12670 while (p) 12671 { 12672 // only look for class scopes, not namespace scopes 12673 if ((p->section & Entry::COMPOUND_MASK) && !p->name.isEmpty()) 12674 { 12675 //printf("Trying scope `%s'\n",p->name.data()); 12676 int i=p->name.findRev("::"); 12677 int pi = (i==-1) ? 0 : i+2; 12678 if (p->name.at(pi)=='@') 12679 { 12680 // annonymous compound inside -> insert dummy variable name 12681 //printf("Adding annonymous variable for scope %s\n",p->name.data()); 12682 msName.sprintf("@%d",anonCount++); 12683 break; 12684 } 12685 } 12686 //p=p->parent; 12687 if (p==current) p=current_root; else p=p->parent(); 12688 } 12689 } 12690 //printf("msName=%s current->name=%s\n",msName.data(),current->name.data()); 12691 if (!msName.isEmpty() && msName!=current->name) // skip typedef T {} T; 12692 { 12693 static bool typedefHidesStruct = Config_getBool("TYPEDEF_HIDES_STRUCT"); 12694 // case 1: typedef struct _S { ... } S_t; 12695 // -> omit typedef and use S_t as the struct name 12696 if (typedefHidesStruct && 12697 isTypedef && 12698 ((current->spec&(Entry::Struct|Entry::Union)) || 12699 current->section==Entry::ENUM_SEC )&& 12700 msType.stripWhiteSpace().isEmpty() && 12701 memspecEntry) 12702 { 12703 memspecEntry->name=msName; 12704 } 12705 else // case 2: create a typedef field 12706 { 12707 Entry *varEntry=new Entry; 12708 varEntry->protection = current->protection ; 12709 varEntry->mtype = current->mtype; 12710 varEntry->virt = current->virt; 12711 varEntry->stat = current->stat; 12712 varEntry->section = Entry::VARIABLE_SEC; 12713 varEntry->name = msName.stripWhiteSpace(); 12714 varEntry->type = current->type.simplifyWhiteSpace()+" "; 12715 varEntry->args = msArgs; 12716 if (isTypedef) 12717 { 12718 varEntry->type.prepend("typedef "); 12719 // //printf("current->name = %s %s\n",current->name.data(),msName.data()); 12720 } 12721 if (typedefHidesStruct && 12722 isTypedef && 12723 (current->spec&(Entry::Struct|Entry::Union)) && 12724 memspecEntry 12725 ) // case 1: use S_t as type for pS_t in "typedef struct _S {} S_t, *pS_t;" 12726 { 12727 varEntry->type+=memspecEntry->name+msType; 12728 } 12729 else // case 2: use _S as type for for pS_t 12730 { 12731 varEntry->type+=current->name+msType; 12732 } 12733 varEntry->fileName = yyFileName; 12734 varEntry->startLine = yyLineNr; 12735 varEntry->doc = current->doc.copy(); 12736 varEntry->brief = current->brief.copy(); 12737 varEntry->mGrpId = current->mGrpId; 12738 12739 // deep copy group list 12740 QListIterator<Grouping> gli(*current->groups); 12741 Grouping *g; 12742 for (;(g=gli.current());++gli) 12743 { 12744 varEntry->groups->append(new Grouping(*g)); 12745 } 12746 if (current->sli) // copy special list items 12747 { 12748 QListIterator<ListItemInfo> li(*current->sli); 12749 ListItemInfo *lii; 12750 for (li.toFirst();(lii=li.current());++li) 12751 { 12752 varEntry->addSpecialListItem(lii->type,lii->itemId); 12753 } 12754 } 12755 12756 //printf("Add: type=`%s',name=`%s',args=`%s' brief=%s doc=%s\n", 12757 // varEntry->type.data(),varEntry->name.data(), 12758 // varEntry->args.data(),varEntry->brief.data(),varEntry->doc.data()); 12759 current_root->addSubEntry(varEntry); 12760 } 12761 } 12762 if (*scanYYtext==';') 12763 { 12764 msType.resize(0); 12765 msName.resize(0); 12766 msArgs.resize(0); 12767 isTypedef=FALSE; 12768 firstTypedefEntry=0; 12769 memspecEntry=0; 12770 current->reset(); 12771 initEntry(); 12772 BEGIN( FindMembers ); 12773 } 12774 else 12775 { 12776 current->doc.resize(0); 12777 current->brief.resize(0); 12778 } 12779 } 12780 YY_BREAK 12781 case 322: 12782 YY_RULE_SETUP 12783 #line 3229 "scanner.l" 12784 { 12785 lastInitializerContext=YY_START; 12786 initBracketCount=0; 12787 BEGIN(ReadInitializer); 12788 /* BEGIN(MemberSpecSkip); */ 12789 } 12790 YY_BREAK 12791 /* 12792 <MemberSpecSkip>"{" { 12793 curlyCount=0; 12794 lastCurlyContext = MemberSpecSkip; 12795 previous = current; 12796 BEGIN(SkipCurly); 12797 } 12798 */ 12799 case 323: 12800 YY_RULE_SETUP 12801 #line 3243 "scanner.l" 12802 { BEGIN(MemberSpec); } 12803 YY_BREAK 12804 case 324: 12805 YY_RULE_SETUP 12806 #line 3244 "scanner.l" 12807 { unput(';'); BEGIN(MemberSpec); } 12808 YY_BREAK 12809 case 325: 12810 /* rule 325 can match eol */ 12811 YY_RULE_SETUP 12812 #line 3245 "scanner.l" 12813 { current->program += scanYYtext ; 12814 lineCount() ; 12815 } 12816 YY_BREAK 12817 case 326: 12818 /* rule 326 can match eol */ 12819 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 12820 (yy_c_buf_p) = yy_cp = yy_bp + 4; 12821 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 12822 YY_RULE_SETUP 12823 #line 3248 "scanner.l" 12824 { // end of Objective C block 12825 current_root->addSubEntry( current ) ; 12826 current=new Entry; 12827 initEntry(); 12828 insideObjC=FALSE; 12829 BEGIN( FindMembers ); 12830 } 12831 YY_BREAK 12832 case 327: 12833 YY_RULE_SETUP 12834 #line 3255 "scanner.l" 12835 { current->program += scanYYtext ; } 12836 YY_BREAK 12837 case 328: 12838 /* rule 328 can match eol */ 12839 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 12840 (yy_c_buf_p) = yy_cp = yy_bp + 1; 12841 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 12842 #line 3258 "scanner.l" 12843 case 329: 12844 /* rule 329 can match eol */ 12845 YY_RULE_SETUP 12846 #line 3258 "scanner.l" 12847 { /* typedef void (A::*ptr_t)(args...) or int (*func(int))[] */ 12848 if (insidePHP) // reference parameter 12849 { 12850 REJECT 12851 } 12852 else 12853 { 12854 current->bodyLine = yyLineNr; 12855 lineCount(); 12856 addType(current); 12857 funcPtrType=scanYYtext; 12858 roundCount=0; 12859 //current->type += scanYYtext; 12860 BEGIN( FuncPtr ); 12861 } 12862 } 12863 YY_BREAK 12864 case 330: 12865 /* rule 330 can match eol */ 12866 YY_RULE_SETUP 12867 #line 3274 "scanner.l" 12868 { 12869 current->name = scanYYtext; 12870 if (nameIsOperator(current->name)) 12871 { 12872 BEGIN( FuncPtrOperator ); 12873 } 12874 else 12875 { 12876 if (current->name=="const" || current->name=="volatile") 12877 { 12878 funcPtrType += current->name; 12879 } 12880 else 12881 { 12882 BEGIN( EndFuncPtr ); 12883 } 12884 } 12885 } 12886 YY_BREAK 12887 case 331: 12888 YY_RULE_SETUP 12889 #line 3292 "scanner.l" 12890 { 12891 //printf("Error: FuncPtr `%c' unexpected at line %d of %s\n",*scanYYtext,yyLineNr,yyFileName); 12892 } 12893 YY_BREAK 12894 case 332: 12895 /* rule 332 can match eol */ 12896 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 12897 (yy_c_buf_p) = yy_cp -= 1; 12898 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 12899 YY_RULE_SETUP 12900 #line 3295 "scanner.l" 12901 { 12902 current->name += scanYYtext; 12903 current->name = current->name.simplifyWhiteSpace(); 12904 lineCount(); 12905 } 12906 YY_BREAK 12907 case 333: 12908 /* rule 333 can match eol */ 12909 YY_RULE_SETUP 12910 #line 3300 "scanner.l" 12911 { 12912 yyLineNr++; 12913 current->name += *scanYYtext; 12914 } 12915 YY_BREAK 12916 case 334: 12917 YY_RULE_SETUP 12918 #line 3304 "scanner.l" 12919 { 12920 unput(*scanYYtext); 12921 BEGIN( EndFuncPtr ); 12922 } 12923 YY_BREAK 12924 case 335: 12925 YY_RULE_SETUP 12926 #line 3308 "scanner.l" 12927 { 12928 current->name += *scanYYtext; 12929 } 12930 YY_BREAK 12931 case 336: 12932 /* rule 336 can match eol */ 12933 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 12934 (yy_c_buf_p) = yy_cp -= 1; 12935 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 12936 YY_RULE_SETUP 12937 #line 3311 "scanner.l" 12938 { // a variable with extra braces 12939 lineCount(); 12940 current->type+=funcPtrType.data()+1; 12941 BEGIN(FindMembers); 12942 } 12943 YY_BREAK 12944 case 337: 12945 /* rule 337 can match eol */ 12946 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 12947 (yy_c_buf_p) = yy_cp -= 1; 12948 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 12949 YY_RULE_SETUP 12950 #line 3316 "scanner.l" 12951 { // a function pointer 12952 lineCount(); 12953 current->type+=funcPtrType+")"; 12954 BEGIN(FindMembers); 12955 } 12956 YY_BREAK 12957 case 338: 12958 /* rule 338 can match eol */ 12959 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 12960 (yy_c_buf_p) = yy_cp -= 1; 12961 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 12962 YY_RULE_SETUP 12963 #line 3321 "scanner.l" 12964 { // an array of variables 12965 lineCount(); 12966 current->type+=funcPtrType.data(); 12967 current->args += ")"; 12968 BEGIN(FindMembers); 12969 } 12970 YY_BREAK 12971 case 339: 12972 YY_RULE_SETUP 12973 #line 3327 "scanner.l" 12974 { // a function returning a function or 12975 // a function returning a pointer to an array 12976 current->args += *scanYYtext ; 12977 //roundCount=0; 12978 //BEGIN( FuncFunc ); 12979 current->bodyLine = yyLineNr; 12980 currentArgumentContext = FuncFuncEnd; 12981 fullArgString=current->args.copy(); 12982 copyArgString=¤t->args; 12983 BEGIN( ReadFuncArgType ) ; 12984 } 12985 YY_BREAK 12986 case 340: 12987 YY_RULE_SETUP 12988 #line 3338 "scanner.l" 12989 { 12990 funcPtrType+=scanYYtext; 12991 } 12992 YY_BREAK 12993 case 341: 12994 YY_RULE_SETUP 12995 #line 3341 "scanner.l" 12996 { 12997 BEGIN(FindMembers); 12998 } 12999 YY_BREAK 13000 case 342: 13001 YY_RULE_SETUP 13002 #line 3344 "scanner.l" 13003 { 13004 current->args += *scanYYtext ; 13005 ++roundCount; 13006 } 13007 YY_BREAK 13008 case 343: 13009 YY_RULE_SETUP 13010 #line 3348 "scanner.l" 13011 { 13012 current->args += *scanYYtext ; 13013 if ( roundCount ) 13014 --roundCount; 13015 else 13016 { 13017 BEGIN(FuncFuncEnd); 13018 } 13019 } 13020 YY_BREAK 13021 case 344: 13022 /* rule 344 can match eol */ 13023 YY_RULE_SETUP 13024 #line 3357 "scanner.l" 13025 { 13026 lineCount(); 13027 current->type+=funcPtrType+")("; 13028 BEGIN(FuncFuncType); 13029 } 13030 YY_BREAK 13031 case 345: 13032 /* rule 345 can match eol */ 13033 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 13034 (yy_c_buf_p) = yy_cp -= 1; 13035 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 13036 YY_RULE_SETUP 13037 #line 3362 "scanner.l" 13038 { 13039 lineCount(); 13040 current->type+=funcPtrType.data()+1; 13041 BEGIN(Function); 13042 } 13043 YY_BREAK 13044 case 346: 13045 /* rule 346 can match eol */ 13046 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 13047 (yy_c_buf_p) = yy_cp -= 1; 13048 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 13049 YY_RULE_SETUP 13050 #line 3367 "scanner.l" 13051 { // function returning a pointer to an array 13052 lineCount(); 13053 current->type+=funcPtrType; 13054 current->args+=")"; 13055 BEGIN(FuncFuncArray); 13056 } 13057 YY_BREAK 13058 case 347: 13059 YY_RULE_SETUP 13060 #line 3373 "scanner.l" 13061 { 13062 current->args += *scanYYtext; 13063 } 13064 YY_BREAK 13065 case 348: 13066 YY_RULE_SETUP 13067 #line 3376 "scanner.l" 13068 { 13069 current->type += *scanYYtext; 13070 roundCount++; 13071 } 13072 YY_BREAK 13073 case 349: 13074 YY_RULE_SETUP 13075 #line 3380 "scanner.l" 13076 { 13077 current->type += *scanYYtext; 13078 if (roundCount) 13079 --roundCount; 13080 else 13081 BEGIN(Function); 13082 } 13083 YY_BREAK 13084 case 350: 13085 /* rule 350 can match eol */ 13086 YY_RULE_SETUP 13087 #line 3387 "scanner.l" 13088 { lineCount() ; current->type += ", " ; } 13089 YY_BREAK 13090 case 351: 13091 /* rule 351 can match eol */ 13092 YY_RULE_SETUP 13093 #line 3388 "scanner.l" 13094 { lineCount() ; current->type += ' ' ; } 13095 YY_BREAK 13096 case 352: 13097 YY_RULE_SETUP 13098 #line 3389 "scanner.l" 13099 { 13100 current->type += *scanYYtext; 13101 } 13102 YY_BREAK 13103 case 353: 13104 /* rule 353 can match eol */ 13105 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 13106 (yy_c_buf_p) = yy_cp = yy_bp + 1; 13107 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 13108 YY_RULE_SETUP 13109 #line 3392 "scanner.l" 13110 { // for catching typedef void (__stdcall *f)() like definitions 13111 if (current->type.left(7)=="typedef" && current->bodyLine==-1) 13112 // the bodyLine check is to prevent this guard to be true more than once 13113 { 13114 current->bodyLine = yyLineNr; 13115 BEGIN( GetCallType ); 13116 } 13117 else if (!current->name.isEmpty()) // normal function 13118 { 13119 current->args = scanYYtext; 13120 current->bodyLine = yyLineNr; 13121 currentArgumentContext = FuncQual; 13122 fullArgString=current->args.copy(); 13123 copyArgString=¤t->args; 13124 BEGIN( ReadFuncArgType ) ; 13125 //printf(">>> Read function arguments!\n"); 13126 } 13127 } 13128 YY_BREAK 13129 case 354: 13130 /* rule 354 can match eol */ 13131 YY_RULE_SETUP 13132 #line 3410 "scanner.l" 13133 { 13134 lineCount(); 13135 addType(current); 13136 funcPtrType="("; 13137 funcPtrType+=scanYYtext; 13138 roundCount=0; 13139 BEGIN( FuncPtr ); 13140 } 13141 YY_BREAK 13142 case 355: 13143 YY_RULE_SETUP 13144 #line 3418 "scanner.l" 13145 { 13146 if (!current->name.isEmpty()) 13147 { 13148 current->args = scanYYtext; 13149 current->bodyLine = yyLineNr; 13150 currentArgumentContext = FuncQual; 13151 fullArgString=current->args.copy(); 13152 copyArgString=¤t->args; 13153 BEGIN( ReadFuncArgType ) ; 13154 //printf(">>> Read function arguments current->argList->count()=%d\n",current->argList->count()); 13155 } 13156 } 13157 YY_BREAK 13158 /* 13159 <FindMembers>"("{BN}*("void"{BN}*)?")" { 13160 lineCount(); 13161 current->args = "()"; 13162 BEGIN( FuncQual ); 13163 } 13164 */ 13165 /*- Function argument reading rules ---------------------------------------*/ 13166 case 356: 13167 YY_RULE_SETUP 13168 #line 3440 "scanner.l" 13169 { *copyArgString+=scanYYtext; 13170 fullArgString+=scanYYtext; 13171 } 13172 YY_BREAK 13173 case 357: 13174 YY_RULE_SETUP 13175 #line 3443 "scanner.l" 13176 { *copyArgString+=scanYYtext; 13177 fullArgString+=scanYYtext; 13178 } 13179 YY_BREAK 13180 case 358: 13181 YY_RULE_SETUP 13182 #line 3446 "scanner.l" 13183 { 13184 *copyArgString+=scanYYtext; 13185 fullArgString+=scanYYtext; 13186 } 13187 YY_BREAK 13188 case 359: 13189 /* rule 359 can match eol */ 13190 YY_RULE_SETUP 13191 #line 3450 "scanner.l" 13192 { 13193 *copyArgString+=" "; 13194 fullArgString+=" "; 13195 lineCount(); 13196 } 13197 YY_BREAK 13198 case 360: 13199 YY_RULE_SETUP 13200 #line 3455 "scanner.l" 13201 { 13202 *copyArgString+=*scanYYtext; 13203 fullArgString+=*scanYYtext; 13204 lastCopyArgStringContext = YY_START; 13205 BEGIN( CopyArgString ); 13206 } 13207 YY_BREAK 13208 case 361: 13209 YY_RULE_SETUP 13210 #line 3461 "scanner.l" 13211 { 13212 *copyArgString+=*scanYYtext; 13213 fullArgString+=*scanYYtext; 13214 argRoundCount=0; 13215 lastCopyArgContext = YY_START; 13216 BEGIN( CopyArgRound ); 13217 } 13218 YY_BREAK 13219 case 362: 13220 YY_RULE_SETUP 13221 #line 3468 "scanner.l" 13222 { 13223 *copyArgString+=*scanYYtext; 13224 fullArgString+=*scanYYtext; 13225 stringToArgumentList(fullArgString,current->argList); 13226 if (insideJS) 13227 { 13228 fixArgumentListForJavaScript(current->argList); 13229 } 13230 handleParametersCommentBlocks(current->argList); 13231 13232 /* remember the current documentation block, since 13233 we could overwrite it with the documentation of 13234 a function argument, which we then have to correct later 13235 on 13236 */ 13237 docBackup = current->doc; 13238 briefBackup = current->brief; 13239 13240 BEGIN( currentArgumentContext ); 13241 } 13242 YY_BREAK 13243 /* a special comment */ 13244 case 363: 13245 YY_RULE_SETUP 13246 #line 3489 "scanner.l" 13247 { 13248 if (currentArgumentContext==DefineEnd) 13249 { 13250 // for defines we interpret a comment 13251 // as documentation for the define 13252 int i;for (i=scanYYleng-1;i>=0;i--) 13253 { 13254 unput(scanYYtext[i]); 13255 } 13256 stringToArgumentList(fullArgString,current->argList); 13257 handleParametersCommentBlocks(current->argList); 13258 BEGIN( currentArgumentContext ); 13259 } 13260 else // not a define 13261 { 13262 // for functions we interpret a comment 13263 // as documentation for the argument 13264 fullArgString+=scanYYtext; 13265 lastCopyArgChar=0; 13266 lastCommentInArgContext=YY_START; 13267 if (scanYYtext[1]=='/') 13268 BEGIN( CopyArgCommentLine ); 13269 else 13270 BEGIN( CopyArgComment ); 13271 } 13272 } 13273 YY_BREAK 13274 /* a non-special comment */ 13275 case 364: 13276 YY_RULE_SETUP 13277 #line 3516 "scanner.l" 13278 { 13279 lastCContext = YY_START; 13280 BEGIN( SkipComment ); 13281 } 13282 YY_BREAK 13283 case 365: 13284 YY_RULE_SETUP 13285 #line 3520 "scanner.l" 13286 { 13287 lastCContext = YY_START; 13288 BEGIN( SkipCxxComment ); 13289 } 13290 YY_BREAK 13291 /* 13292 <ReadFuncArgType,ReadTempArgs>"'#" { if (insidePHP) 13293 REJECT; 13294 *copyArgString+=scanYYtext; 13295 fullArgString+=scanYYtext; 13296 } 13297 <ReadFuncArgType,ReadTempArgs>"#" { 13298 if (!insidePHP) 13299 REJECT; 13300 lastCContext = YY_START; 13301 BEGIN( SkipCxxComment ); 13302 } 13303 */ 13304 /* `)' followed by a special comment */ 13305 case 366: 13306 /* rule 366 can match eol */ 13307 YY_RULE_SETUP 13308 #line 3538 "scanner.l" 13309 { 13310 lineCount(); 13311 if (currentArgumentContext==DefineEnd) 13312 { 13313 // for defines we interpret a comment 13314 // as documentation for the define 13315 int i;for (i=scanYYleng-1;i>0;i--) 13316 { 13317 unput(scanYYtext[i]); 13318 } 13319 *copyArgString+=*scanYYtext; 13320 fullArgString+=*scanYYtext; 13321 stringToArgumentList(fullArgString,current->argList); 13322 handleParametersCommentBlocks(current->argList); 13323 BEGIN( currentArgumentContext ); 13324 } 13325 else 13326 { 13327 // for functions we interpret a comment 13328 // as documentation for the last argument 13329 lastCopyArgChar=*scanYYtext; 13330 QCString text=&scanYYtext[1]; 13331 text=text.stripWhiteSpace(); 13332 lastCommentInArgContext=YY_START; 13333 fullArgString+=text; 13334 if (text.find("//")!=-1) 13335 BEGIN( CopyArgCommentLine ); 13336 else 13337 BEGIN( CopyArgComment ); 13338 } 13339 } 13340 YY_BREAK 13341 case 367: 13342 /* rule 367 can match eol */ 13343 YY_RULE_SETUP 13344 #line 3569 "scanner.l" 13345 13346 YY_BREAK 13347 case 368: 13348 YY_RULE_SETUP 13349 #line 3570 "scanner.l" 13350 { fullArgString+=scanYYtext; } 13351 YY_BREAK 13352 case 369: 13353 YY_RULE_SETUP 13354 #line 3571 "scanner.l" 13355 { fullArgString+=scanYYtext; 13356 if (lastCopyArgChar!=0) 13357 unput(lastCopyArgChar); 13358 BEGIN( lastCommentInArgContext ); 13359 } 13360 YY_BREAK 13361 case 370: 13362 /* rule 370 can match eol */ 13363 YY_RULE_SETUP 13364 #line 3576 "scanner.l" 13365 { fullArgString+=scanYYtext; 13366 yyLineNr++; 13367 if (lastCopyArgChar!=0) 13368 unput(lastCopyArgChar); 13369 BEGIN( lastCommentInArgContext ); 13370 } 13371 YY_BREAK 13372 case 371: 13373 /* rule 371 can match eol */ 13374 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 13375 (yy_c_buf_p) = yy_cp -= 1; 13376 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 13377 YY_RULE_SETUP 13378 #line 3582 "scanner.l" 13379 { // verbatim command (which could contain nested comments!) 13380 docBlockName=&scanYYtext[1]; 13381 fullArgString+=scanYYtext; 13382 BEGIN(CopyArgVerbatim); 13383 } 13384 YY_BREAK 13385 case 372: 13386 YY_RULE_SETUP 13387 #line 3587 "scanner.l" 13388 { 13389 docBlockName=&scanYYtext[1]; 13390 if (docBlockName.at(1)=='[') 13391 { 13392 docBlockName.at(1)='}'; 13393 } 13394 if (docBlockName.at(1)=='{') 13395 { 13396 docBlockName.at(1)='}'; 13397 } 13398 fullArgString+=scanYYtext; 13399 BEGIN(CopyArgVerbatim); 13400 } 13401 YY_BREAK 13402 case 373: 13403 /* rule 373 can match eol */ 13404 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 13405 (yy_c_buf_p) = yy_cp -= 1; 13406 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 13407 YY_RULE_SETUP 13408 #line 3600 "scanner.l" 13409 { // end of verbatim block 13410 fullArgString+=scanYYtext; 13411 if (scanYYtext[1]=='f') // end of formula 13412 { 13413 BEGIN(CopyArgCommentLine); 13414 } 13415 if (&scanYYtext[4]==docBlockName) 13416 { 13417 BEGIN(CopyArgCommentLine); 13418 } 13419 } 13420 YY_BREAK 13421 case 374: 13422 YY_RULE_SETUP 13423 #line 3611 "scanner.l" 13424 { fullArgString+=scanYYtext; } 13425 YY_BREAK 13426 case 375: 13427 YY_RULE_SETUP 13428 #line 3612 "scanner.l" 13429 { fullArgString+=*scanYYtext; } 13430 YY_BREAK 13431 case 376: 13432 /* rule 376 can match eol */ 13433 YY_RULE_SETUP 13434 #line 3613 "scanner.l" 13435 { fullArgString+=*scanYYtext; yyLineNr++; } 13436 YY_BREAK 13437 case 377: 13438 YY_RULE_SETUP 13439 #line 3614 "scanner.l" 13440 { fullArgString+=*scanYYtext; } 13441 YY_BREAK 13442 case 378: 13443 YY_RULE_SETUP 13444 #line 3615 "scanner.l" 13445 { 13446 warn(yyFileName,yyLineNr, 13447 "Warning: Ignoring %cbrief command inside argument documentation",*scanYYtext 13448 ); 13449 fullArgString+=' '; 13450 } 13451 YY_BREAK 13452 case 379: 13453 YY_RULE_SETUP 13454 #line 3621 "scanner.l" 13455 { 13456 *copyArgString+=*scanYYtext; 13457 fullArgString+=*scanYYtext; 13458 argSharpCount=1; 13459 BEGIN( CopyArgSharp ); 13460 } 13461 YY_BREAK 13462 case 380: 13463 YY_RULE_SETUP 13464 #line 3627 "scanner.l" 13465 { 13466 *copyArgString+=*scanYYtext; 13467 fullArgString+=*scanYYtext; 13468 //printf("end template list %s\n",copyArgString->data()); 13469 stringToArgumentList(fullArgString,currentArgumentList); 13470 BEGIN( currentArgumentContext ); 13471 } 13472 YY_BREAK 13473 case 381: 13474 YY_RULE_SETUP 13475 #line 3634 "scanner.l" 13476 { 13477 argRoundCount++; 13478 *copyArgString+=*scanYYtext; 13479 fullArgString+=*scanYYtext; 13480 } 13481 YY_BREAK 13482 case 382: 13483 YY_RULE_SETUP 13484 #line 3639 "scanner.l" 13485 { 13486 *copyArgString+=*scanYYtext; 13487 fullArgString+=*scanYYtext; 13488 if (argRoundCount>0) 13489 argRoundCount--; 13490 else 13491 BEGIN( lastCopyArgContext ); 13492 } 13493 YY_BREAK 13494 case 383: 13495 YY_RULE_SETUP 13496 #line 3647 "scanner.l" 13497 { 13498 argSharpCount++; 13499 //printf("argSharpCount++=%d copy\n",argSharpCount); 13500 *copyArgString+=*scanYYtext; 13501 fullArgString+=*scanYYtext; 13502 } 13503 YY_BREAK 13504 case 384: 13505 YY_RULE_SETUP 13506 #line 3653 "scanner.l" 13507 { 13508 *copyArgString+=*scanYYtext; 13509 fullArgString+=*scanYYtext; 13510 argSharpCount--; 13511 if (argSharpCount>0) 13512 { 13513 //printf("argSharpCount--=%d copy\n",argSharpCount); 13514 } 13515 else 13516 { 13517 BEGIN( ReadTempArgs ); 13518 //printf("end of argSharpCount\n"); 13519 } 13520 } 13521 YY_BREAK 13522 case 385: 13523 YY_RULE_SETUP 13524 #line 3667 "scanner.l" 13525 { 13526 *copyArgString+=scanYYtext; 13527 fullArgString+=scanYYtext; 13528 } 13529 YY_BREAK 13530 case 386: 13531 YY_RULE_SETUP 13532 #line 3671 "scanner.l" 13533 { 13534 *copyArgString+=*scanYYtext; 13535 fullArgString+=*scanYYtext; 13536 BEGIN( lastCopyArgStringContext ); 13537 } 13538 YY_BREAK 13539 case 387: 13540 YY_RULE_SETUP 13541 #line 3676 "scanner.l" 13542 { 13543 *copyArgString+=*scanYYtext; 13544 fullArgString+=*scanYYtext; 13545 BEGIN( lastCopyArgStringContext ); 13546 } 13547 YY_BREAK 13548 case 388: 13549 YY_RULE_SETUP 13550 #line 3681 "scanner.l" 13551 { 13552 if (insidePHP) 13553 { 13554 REJECT; 13555 } 13556 else 13557 { 13558 *copyArgString+=scanYYtext; 13559 fullArgString+=scanYYtext; 13560 } 13561 } 13562 YY_BREAK 13563 case 389: 13564 YY_RULE_SETUP 13565 #line 3692 "scanner.l" 13566 { 13567 *copyArgString+=scanYYtext; 13568 fullArgString+=scanYYtext; 13569 if (insidePHP) 13570 { 13571 lastCopyArgStringContext=YY_START; 13572 BEGIN(CopyArgPHPString); 13573 } 13574 } 13575 YY_BREAK 13576 case 390: 13577 /* rule 390 can match eol */ 13578 YY_RULE_SETUP 13579 #line 3701 "scanner.l" 13580 { 13581 yyLineNr++; 13582 *copyArgString+=*scanYYtext; 13583 fullArgString+=*scanYYtext; 13584 } 13585 YY_BREAK 13586 case 391: 13587 YY_RULE_SETUP 13588 #line 3706 "scanner.l" 13589 { 13590 *copyArgString+=*scanYYtext; 13591 fullArgString+=*scanYYtext; 13592 } 13593 YY_BREAK 13594 /*------------------------------------------------------------------------*/ 13595 case 392: 13596 YY_RULE_SETUP 13597 #line 3716 "scanner.l" 13598 { current->args += *scanYYtext ; 13599 ++roundCount ; 13600 } 13601 YY_BREAK 13602 case 393: 13603 YY_RULE_SETUP 13604 #line 3719 "scanner.l" 13605 { current->args += *scanYYtext ; 13606 if ( roundCount ) 13607 --roundCount ; 13608 else 13609 BEGIN( FuncQual ) ; 13610 } 13611 YY_BREAK 13612 /* 13613 <FuncQual>"#" { if (insidePHP) 13614 REJECT; 13615 lastCPPContext = YY_START; 13616 BEGIN(SkipCPP); 13617 } 13618 */ 13619 case 394: 13620 YY_RULE_SETUP 13621 #line 3732 "scanner.l" 13622 { 13623 if ( strcmp(scanYYtext,";")==0 && 13624 insidePHP && 13625 !containsWord(current->type,"function") ) 13626 { 13627 current->reset(); 13628 initEntry(); 13629 BEGIN( FindMembers ); 13630 } 13631 else 13632 { 13633 unput(*scanYYtext); BEGIN( Function ); 13634 } 13635 } 13636 YY_BREAK 13637 case 395: 13638 /* rule 395 can match eol */ 13639 YY_RULE_SETUP 13640 #line 3746 "scanner.l" 13641 { // pure virtual member function 13642 lineCount() ; 13643 current->virt = Pure; 13644 current->args += " override "; 13645 } 13646 YY_BREAK 13647 case 396: 13648 /* rule 396 can match eol */ 13649 YY_RULE_SETUP 13650 #line 3751 "scanner.l" 13651 { // overridden virtual member function 13652 lineCount() ; 13653 current->spec |= Entry::Override; 13654 current->args += " override "; 13655 } 13656 YY_BREAK 13657 case 397: 13658 /* rule 397 can match eol */ 13659 YY_RULE_SETUP 13660 #line 3756 "scanner.l" 13661 { // sealed member function 13662 lineCount() ; 13663 current->spec |= Entry::Sealed; 13664 current->args += " sealed "; 13665 } 13666 YY_BREAK 13667 case 398: 13668 /* rule 398 can match eol */ 13669 YY_RULE_SETUP 13670 #line 3761 "scanner.l" 13671 { // new member function 13672 lineCount() ; 13673 current->spec |= Entry::New; 13674 current->args += " new "; 13675 } 13676 YY_BREAK 13677 case 399: 13678 /* rule 399 can match eol */ 13679 YY_RULE_SETUP 13680 #line 3766 "scanner.l" 13681 { // const member function 13682 lineCount() ; 13683 current->args += " const "; 13684 current->argList->constSpecifier=TRUE; 13685 } 13686 YY_BREAK 13687 case 400: 13688 /* rule 400 can match eol */ 13689 YY_RULE_SETUP 13690 #line 3771 "scanner.l" 13691 { // volatile member function 13692 lineCount() ; 13693 current->args += " volatile "; 13694 current->argList->volatileSpecifier=TRUE; 13695 } 13696 YY_BREAK 13697 case 401: 13698 /* rule 401 can match eol */ 13699 YY_RULE_SETUP 13700 #line 3776 "scanner.l" 13701 { // pure virtual member function 13702 lineCount() ; 13703 current->args += " = 0"; 13704 current->virt = Pure; 13705 current->argList->pureSpecifier=TRUE; 13706 } 13707 YY_BREAK 13708 case 402: 13709 /* rule 402 can match eol */ 13710 YY_RULE_SETUP 13711 #line 3782 "scanner.l" 13712 { 13713 lineCount() ; 13714 current->args += ", " ; 13715 } 13716 YY_BREAK 13717 case 403: 13718 /* rule 403 can match eol */ 13719 YY_RULE_SETUP 13720 #line 3786 "scanner.l" 13721 { 13722 lineCount() ; 13723 current->args += ' ' ; 13724 } 13725 YY_BREAK 13726 case 404: 13727 YY_RULE_SETUP 13728 #line 3790 "scanner.l" 13729 { if (insidePHP) 13730 REJECT; 13731 lastCPPContext = YY_START; 13732 BEGIN(SkipCPP); 13733 } 13734 YY_BREAK 13735 case 405: 13736 YY_RULE_SETUP 13737 #line 3795 "scanner.l" 13738 { 13739 if (insideCli && 13740 (current_root->section&Entry::COMPOUND_MASK) 13741 ) 13742 { 13743 BEGIN(CliOverride); 13744 } 13745 else 13746 { 13747 // typically an initialized function pointer 13748 lastInitializerContext=YY_START; 13749 initBracketCount=0; 13750 BEGIN(ReadInitializer); 13751 } 13752 } 13753 YY_BREAK 13754 case 406: 13755 YY_RULE_SETUP 13756 #line 3810 "scanner.l" 13757 { 13758 } 13759 YY_BREAK 13760 case 407: 13761 YY_RULE_SETUP 13762 #line 3812 "scanner.l" 13763 { 13764 unput(*scanYYtext); 13765 BEGIN(FuncQual); 13766 } 13767 YY_BREAK 13768 case 408: 13769 /* rule 408 can match eol */ 13770 YY_RULE_SETUP 13771 #line 3816 "scanner.l" 13772 { 13773 yyLineNr++; 13774 } 13775 YY_BREAK 13776 case 409: 13777 YY_RULE_SETUP 13778 #line 3819 "scanner.l" 13779 { 13780 } 13781 YY_BREAK 13782 case 410: 13783 YY_RULE_SETUP 13784 #line 3821 "scanner.l" 13785 { 13786 unput(*scanYYtext); 13787 BEGIN(FuncQual); 13788 } 13789 YY_BREAK 13790 case 411: 13791 YY_RULE_SETUP 13792 #line 3825 "scanner.l" 13793 { 13794 current->args += *scanYYtext; 13795 pCopyQuotedString=¤t->args; 13796 lastStringContext=FuncPtrInit; 13797 BEGIN(CopyString); 13798 } 13799 YY_BREAK 13800 case 412: 13801 YY_RULE_SETUP 13802 #line 3831 "scanner.l" 13803 { 13804 current->args += *scanYYtext; 13805 if (insidePHP) 13806 { 13807 pCopyQuotedString=¤t->args; 13808 lastStringContext=FuncPtrInit; 13809 BEGIN(CopyPHPString); 13810 } 13811 } 13812 YY_BREAK 13813 case 413: 13814 YY_RULE_SETUP 13815 #line 3840 "scanner.l" 13816 { 13817 if (insidePHP) 13818 { 13819 REJECT; 13820 } 13821 else 13822 { 13823 current->args += scanYYtext; 13824 } 13825 } 13826 YY_BREAK 13827 case 414: 13828 YY_RULE_SETUP 13829 #line 3850 "scanner.l" 13830 { 13831 current->args += scanYYtext; 13832 } 13833 YY_BREAK 13834 case 415: 13835 YY_RULE_SETUP 13836 #line 3853 "scanner.l" 13837 { 13838 current->args += *scanYYtext; 13839 } 13840 YY_BREAK 13841 case 416: 13842 /* rule 416 can match eol */ 13843 YY_RULE_SETUP 13844 #line 3856 "scanner.l" 13845 { 13846 current->args += *scanYYtext; 13847 yyLineNr++; 13848 } 13849 YY_BREAK 13850 case 417: 13851 YY_RULE_SETUP 13852 #line 3860 "scanner.l" 13853 { // typically a K&R style C function 13854 if (insideCS && strcmp(scanYYtext,"where")==0) 13855 { 13856 // type contraint for a method 13857 delete current->typeConstr; 13858 current->typeConstr = new ArgumentList; 13859 current->typeConstr->append(new Argument); 13860 lastCSConstraint = YY_START; 13861 BEGIN( CSConstraintName ); 13862 } 13863 else if (checkForKnRstyleC()) 13864 { 13865 //fprintf(stderr,"===> got a K&R style function\n"); 13866 current->args = scanYYtext; 13867 oldStyleArgType.resize(0); 13868 BEGIN(OldStyleArgs); 13869 } 13870 else 13871 { 13872 current->args += scanYYtext; 13873 } 13874 } 13875 YY_BREAK 13876 case 418: 13877 YY_RULE_SETUP 13878 #line 3882 "scanner.l" 13879 { 13880 QCString oldStyleArgPtr; 13881 QCString oldStyleArgName; 13882 splitKnRArg(oldStyleArgPtr,oldStyleArgName); 13883 QCString doc,brief; 13884 if (current->doc!=docBackup) 13885 { 13886 doc=current->doc.copy(); 13887 current->doc=docBackup; 13888 } 13889 if (current->brief!=briefBackup) 13890 { 13891 brief=current->brief.copy(); 13892 current->brief=briefBackup; 13893 } 13894 addKnRArgInfo(oldStyleArgType+oldStyleArgPtr, 13895 oldStyleArgName,brief,doc); 13896 current->args.resize(0); 13897 if (*scanYYtext==';') oldStyleArgType.resize(0); 13898 } 13899 YY_BREAK 13900 case 419: 13901 YY_RULE_SETUP 13902 #line 3902 "scanner.l" 13903 { current->args += scanYYtext; } 13904 YY_BREAK 13905 case 420: 13906 YY_RULE_SETUP 13907 #line 3903 "scanner.l" 13908 { 13909 current->args = argListToString(current->argList); 13910 unput('{'); 13911 BEGIN(FuncQual); 13912 } 13913 YY_BREAK 13914 case 421: 13915 YY_RULE_SETUP 13916 #line 3908 "scanner.l" 13917 { current->args += *scanYYtext; } 13918 YY_BREAK 13919 case 422: 13920 YY_RULE_SETUP 13921 #line 3909 "scanner.l" 13922 { current->args += *scanYYtext; } 13923 YY_BREAK 13924 case 423: 13925 /* rule 423 can match eol */ 13926 YY_RULE_SETUP 13927 #line 3910 "scanner.l" 13928 { /* try-function-block */ 13929 insideTryBlock=TRUE; 13930 lineCount(); 13931 } 13932 YY_BREAK 13933 case 424: 13934 /* rule 424 can match eol */ 13935 YY_RULE_SETUP 13936 #line 3914 "scanner.l" 13937 { // C++ style throw clause 13938 current->exception = " throw (" ; 13939 roundCount=0; 13940 lineCount() ; 13941 BEGIN( ExcpRound ) ; 13942 } 13943 YY_BREAK 13944 case 425: 13945 /* rule 425 can match eol */ 13946 YY_RULE_SETUP 13947 #line 3920 "scanner.l" 13948 { 13949 current->exception = " raises (" ; 13950 lineCount() ; 13951 roundCount=0; 13952 BEGIN( ExcpRound ) ; 13953 } 13954 YY_BREAK 13955 case 426: 13956 /* rule 426 can match eol */ 13957 YY_RULE_SETUP 13958 #line 3926 "scanner.l" 13959 { // Java style throw clause 13960 current->exception = " throws " ; 13961 lineCount() ; 13962 BEGIN( ExcpList ); 13963 } 13964 YY_BREAK 13965 case 427: 13966 YY_RULE_SETUP 13967 #line 3931 "scanner.l" 13968 { current->exception += *scanYYtext ; 13969 ++roundCount ; 13970 } 13971 YY_BREAK 13972 case 428: 13973 YY_RULE_SETUP 13974 #line 3934 "scanner.l" 13975 { current->exception += *scanYYtext ; 13976 if ( roundCount ) 13977 --roundCount ; 13978 else 13979 BEGIN( FuncQual ) ; 13980 } 13981 YY_BREAK 13982 case 429: 13983 YY_RULE_SETUP 13984 #line 3940 "scanner.l" 13985 { 13986 current->exception += *scanYYtext; 13987 } 13988 YY_BREAK 13989 case 430: 13990 YY_RULE_SETUP 13991 #line 3943 "scanner.l" 13992 { 13993 unput('{'); BEGIN( FuncQual ); 13994 } 13995 YY_BREAK 13996 case 431: 13997 YY_RULE_SETUP 13998 #line 3946 "scanner.l" 13999 { 14000 unput(';'); BEGIN( FuncQual ); 14001 } 14002 YY_BREAK 14003 case 432: 14004 /* rule 432 can match eol */ 14005 YY_RULE_SETUP 14006 #line 3949 "scanner.l" 14007 { 14008 current->exception += ' '; 14009 yyLineNr++; 14010 } 14011 YY_BREAK 14012 case 433: 14013 YY_RULE_SETUP 14014 #line 3953 "scanner.l" 14015 { 14016 current->exception += *scanYYtext; 14017 } 14018 YY_BREAK 14019 case 434: 14020 YY_RULE_SETUP 14021 #line 3956 "scanner.l" 14022 { current->type += current->name ; 14023 current->name = current->args ; 14024 current->args = scanYYtext ; 14025 roundCount=0; 14026 BEGIN( FuncRound ) ; 14027 } 14028 YY_BREAK 14029 case 435: 14030 YY_RULE_SETUP 14031 #line 3962 "scanner.l" 14032 { 14033 if (!insidePHP) BEGIN(SkipInits); 14034 } 14035 YY_BREAK 14036 case 436: 14037 YY_RULE_SETUP 14038 #line 3965 "scanner.l" 14039 { 14040 current->name=current->name.simplifyWhiteSpace(); 14041 current->type=current->type.simplifyWhiteSpace(); 14042 current->args=removeRedundantWhiteSpace(current->args); 14043 // was: current->args.simplifyWhiteSpace(); 14044 current->fileName = yyFileName; 14045 current->startLine = yyLineNr; 14046 static QRegExp re("([^)]*\\[*&][^)]*)"); // (...*...) 14047 if (*scanYYtext!=';' || (current_root->section&Entry::COMPOUND_MASK) ) 14048 { 14049 int tempArg=current->name.find('<'); 14050 QCString tempName; 14051 if (tempArg==-1) tempName=current->name; else tempName=current->name.left(tempArg); 14052 if (current->type.isEmpty() && 14053 (current->type.find(re,0)!=-1 || current->type.left(8)=="typedef ")) 14054 { 14055 //printf("Scanner.l: found in class variable: `%s' `%s' `%s'\n", current->type.data(),current->name.data(),current->args.data()); 14056 current->section = Entry::VARIABLE_SEC ; 14057 } 14058 else 14059 { 14060 //printf("Scanner.l: found in class function: `%s' `%s' `%s'\n", current->type.data(),current->name.data(),current->args.data()); 14061 current->section = Entry::FUNCTION_SEC ; 14062 current->proto = *scanYYtext==';'; 14063 } 14064 } 14065 else // a global function prototype or function variable 14066 { 14067 //printf("Scanner.l: prototype? type=`%s' name=`%s' args=`%s'\n",current->type.data(),current->name.data(),current->args.data()); 14068 if (!current->type.isEmpty() && 14069 (current->type.find(re,0)!=-1 || current->type.left(8)=="typedef ")) 14070 { 14071 //printf("Scanner.l: found function variable!\n"); 14072 current->section = Entry::VARIABLE_SEC; 14073 } 14074 else 14075 { 14076 //printf("Scanner.l: found prototype\n"); 14077 current->section = Entry::FUNCTION_SEC; 14078 current->proto = TRUE; 14079 } 14080 } 14081 //printf("Adding entry `%s'\n",current->name.data()); 14082 if ( insidePHP) 14083 { 14084 if (findAndRemoveWord(current->type,"final")) 14085 { 14086 current->spec |= Entry::Final; 14087 } 14088 if (findAndRemoveWord(current->type,"abstract")) 14089 { 14090 current->spec |= Entry::Abstract; 14091 } 14092 } 14093 if ( insidePHP && !containsWord(current->type,"function")) 14094 { 14095 initEntry(); 14096 } 14097 else 14098 { 14099 if ( insidePHP) 14100 { 14101 findAndRemoveWord(current->type,"function"); 14102 } 14103 previous = current; 14104 current_root->addSubEntry(current); 14105 current = new Entry ; 14106 initEntry(); 14107 lastCurlyContext = FindMembers; 14108 if ( *scanYYtext == ',' ) 14109 { 14110 current->type = previous->type.data(); 14111 } 14112 if ( *scanYYtext == '{' ) 14113 { 14114 if ( !insidePHP && (current_root->section & Entry::COMPOUND_MASK) ) 14115 { 14116 previous->spec |= Entry::Inline; 14117 } 14118 //addToBody(scanYYtext); 14119 curlyCount=0; 14120 BEGIN( SkipCurly ) ; 14121 } 14122 else 14123 { 14124 if (previous->section!=Entry::VARIABLE_SEC) 14125 previous->bodyLine=-1; // a function/member declaration 14126 BEGIN( FindMembers ) ; 14127 } 14128 } 14129 } 14130 YY_BREAK 14131 case 437: 14132 YY_RULE_SETUP 14133 #line 4056 "scanner.l" 14134 { 14135 //addToBody(scanYYtext); 14136 //lastCurlyContext = FindMembers; 14137 //curlyCount=0; 14138 //BEGIN( SkipCurly ) ; 14139 unput('{'); 14140 BEGIN( Function ); 14141 } 14142 YY_BREAK 14143 case 438: 14144 YY_RULE_SETUP 14145 #line 4064 "scanner.l" 14146 { 14147 //addToBody(scanYYtext); 14148 ++curlyCount ; 14149 } 14150 YY_BREAK 14151 case 439: 14152 YY_RULE_SETUP 14153 #line 4068 "scanner.l" 14154 { 14155 //addToBody(scanYYtext); 14156 if( curlyCount ) 14157 { 14158 --curlyCount ; 14159 } 14160 else 14161 { 14162 #if 0 14163 if (!Config_getBool("HIDE_IN_BODY_DOCS") && 14164 !current->doc.isEmpty()) 14165 { 14166 // copy documentation found inside the body 14167 // to the previous item 14168 if (previous->inbodyLine==-1) 14169 { 14170 previous->inbodyLine = current->docLine; 14171 previous->inbodyFile = current->docFile; 14172 } 14173 //printf("*** inbodyDocs+=%s\n",current->doc.data()); 14174 previous->inbodyDocs += current->doc; 14175 current->doc.resize(0); 14176 } 14177 #endif 14178 if (current->sli) // copy special list items 14179 { 14180 QListIterator<ListItemInfo> li(*current->sli); 14181 ListItemInfo *lii; 14182 for (li.toFirst();(lii=li.current());++li) 14183 { 14184 previous->addSpecialListItem(lii->type,lii->itemId); 14185 } 14186 delete current->sli; 14187 current->sli = 0; 14188 } 14189 if (previous) previous->endBodyLine=yyLineNr; 14190 BEGIN( lastCurlyContext ) ; 14191 } 14192 } 14193 YY_BREAK 14194 case 440: 14195 /* rule 440 can match eol */ 14196 YY_RULE_SETUP 14197 #line 4107 "scanner.l" 14198 { 14199 lineCount(); 14200 if ( curlyCount ) 14201 { 14202 //addToBody(scanYYtext); 14203 --curlyCount ; 14204 } 14205 else 14206 { 14207 current->endBodyLine=yyLineNr; 14208 14209 tempEntry = current; // temporarily switch to the previous entry 14210 current = previous; 14211 14212 docBlockContext = SkipCurlyEndDoc; 14213 docBlockInBody = FALSE; 14214 docBlockAutoBrief = ( scanYYtext[scanYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) || 14215 ( scanYYtext[scanYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") ); 14216 docBlock.resize(0); 14217 docBlockTerm = '}'; 14218 if (scanYYtext[scanYYleng-3]=='/') 14219 { 14220 startCommentBlock(TRUE); 14221 BEGIN( DocLine ); 14222 } 14223 else 14224 { 14225 startCommentBlock(FALSE); 14226 BEGIN( DocBlock ); 14227 } 14228 } 14229 } 14230 YY_BREAK 14231 case 441: 14232 /* rule 441 can match eol */ 14233 YY_RULE_SETUP 14234 #line 4139 "scanner.l" 14235 { // desc is followed by another one 14236 docBlockContext = SkipCurlyEndDoc; 14237 docBlockInBody = FALSE; 14238 docBlockAutoBrief = ( scanYYtext[scanYYleng-2]=='*' && Config_getBool("JAVADOC_AUTOBRIEF") ) || 14239 ( scanYYtext[scanYYleng-2]=='!' && Config_getBool("QT_AUTOBRIEF") ); 14240 docBlock.resize(0); 14241 docBlockTerm = '}'; 14242 if (scanYYtext[scanYYleng-3]=='/') 14243 { 14244 startCommentBlock(TRUE); 14245 BEGIN( DocLine ); 14246 } 14247 else 14248 { 14249 startCommentBlock(FALSE); 14250 BEGIN( DocBlock ); 14251 } 14252 } 14253 YY_BREAK 14254 case 442: 14255 YY_RULE_SETUP 14256 #line 4157 "scanner.l" 14257 { 14258 //addToBody("}"); 14259 current = tempEntry; 14260 BEGIN( lastCurlyContext ); 14261 } 14262 YY_BREAK 14263 case 443: 14264 YY_RULE_SETUP 14265 #line 4162 "scanner.l" 14266 { 14267 //addToBody(scanYYtext); 14268 lastStringContext=SkipCurly; 14269 BEGIN( SkipString ); 14270 } 14271 YY_BREAK 14272 case 444: 14273 YY_RULE_SETUP 14274 #line 4167 "scanner.l" 14275 { 14276 if (insidePHP) 14277 REJECT; 14278 //addToBody(scanYYtext); 14279 BEGIN( SkipCurlyCpp ); 14280 } 14281 YY_BREAK 14282 case 445: 14283 /* rule 445 can match eol */ 14284 YY_RULE_SETUP 14285 #line 4173 "scanner.l" 14286 { 14287 yyLineNr++; 14288 //addToBody(scanYYtext); 14289 } 14290 YY_BREAK 14291 case 446: 14292 YY_RULE_SETUP 14293 #line 4177 "scanner.l" 14294 { 14295 //addToBody(scanYYtext); 14296 } 14297 YY_BREAK 14298 case 447: 14299 /* rule 447 can match eol */ 14300 YY_RULE_SETUP 14301 #line 4180 "scanner.l" 14302 { 14303 //addToBody(scanYYtext); 14304 yyLineNr++; 14305 lastCurlyContext = FindMembers; 14306 BEGIN( SkipCurly ); 14307 } 14308 YY_BREAK 14309 case 448: 14310 /* rule 448 can match eol */ 14311 YY_RULE_SETUP 14312 #line 4186 "scanner.l" 14313 { 14314 //addToBody(scanYYtext); 14315 yyLineNr++; 14316 } 14317 YY_BREAK 14318 case 449: 14319 YY_RULE_SETUP 14320 #line 4190 "scanner.l" 14321 { 14322 //addToBody(scanYYtext); 14323 lastCContext = YY_START; 14324 BEGIN(SkipComment); 14325 } 14326 YY_BREAK 14327 case 450: 14328 YY_RULE_SETUP 14329 #line 4195 "scanner.l" 14330 { 14331 //addToBody(scanYYtext); 14332 lastCContext = YY_START; 14333 BEGIN(SkipCxxComment); 14334 } 14335 YY_BREAK 14336 case 451: 14337 YY_RULE_SETUP 14338 #line 4200 "scanner.l" 14339 { 14340 lastStringContext=YY_START; 14341 BEGIN( SkipString ); 14342 } 14343 YY_BREAK 14344 case 452: 14345 YY_RULE_SETUP 14346 #line 4204 "scanner.l" 14347 { 14348 warn(yyFileName,yyLineNr, 14349 "Warning: Found ';' while parsing initializer list! " 14350 "(doxygen could be confused by a macro call without semicolon)" 14351 ); 14352 BEGIN( FindMembers ); 14353 } 14354 YY_BREAK 14355 case 453: 14356 YY_RULE_SETUP 14357 #line 4211 "scanner.l" 14358 { 14359 if (!insidePHP) 14360 REJECT; 14361 //addToBody(scanYYtext); 14362 lastCContext = YY_START; 14363 BEGIN(SkipCxxComment); 14364 } 14365 YY_BREAK 14366 case 454: 14367 YY_RULE_SETUP 14368 #line 4218 "scanner.l" 14369 { 14370 if (!insideCS) REJECT; 14371 // C# verbatim string 14372 lastSkipVerbStringContext=YY_START; 14373 pSkipVerbString=¤t->initializer; 14374 BEGIN(SkipVerbString); 14375 } 14376 YY_BREAK 14377 case 455: 14378 YY_RULE_SETUP 14379 #line 4225 "scanner.l" 14380 { 14381 if (insidePHP) REJECT; 14382 } 14383 YY_BREAK 14384 case 456: 14385 YY_RULE_SETUP 14386 #line 4228 "scanner.l" 14387 { 14388 if (insidePHP) 14389 { 14390 lastStringContext=YY_START; 14391 BEGIN(SkipPHPString); 14392 } 14393 } 14394 YY_BREAK 14395 case 457: 14396 YY_RULE_SETUP 14397 #line 4235 "scanner.l" 14398 { } 14399 YY_BREAK 14400 case 458: 14401 YY_RULE_SETUP 14402 #line 4236 "scanner.l" 14403 { } 14404 YY_BREAK 14405 case 459: 14406 YY_RULE_SETUP 14407 #line 4237 "scanner.l" 14408 { 14409 BEGIN( lastStringContext ); 14410 } 14411 YY_BREAK 14412 case 460: 14413 YY_RULE_SETUP 14414 #line 4240 "scanner.l" 14415 { 14416 BEGIN( lastStringContext ); 14417 } 14418 YY_BREAK 14419 case 461: 14420 YY_RULE_SETUP 14421 #line 4243 "scanner.l" 14422 { } 14423 YY_BREAK 14424 case 462: 14425 /* rule 462 can match eol */ 14426 YY_RULE_SETUP 14427 #line 4244 "scanner.l" 14428 { 14429 yyLineNr++; 14430 } 14431 YY_BREAK 14432 case 463: 14433 YY_RULE_SETUP 14434 #line 4247 "scanner.l" 14435 { } 14436 YY_BREAK 14437 case 464: 14438 YY_RULE_SETUP 14439 #line 4248 "scanner.l" 14440 { 14441 current->section = Entry::EMPTY_SEC ; 14442 current->type.resize(0) ; 14443 current->name.resize(0) ; 14444 current->args.resize(0) ; 14445 current->argList->clear(); 14446 BEGIN( FindMembers ) ; 14447 } 14448 YY_BREAK 14449 case 465: 14450 /* rule 465 can match eol */ 14451 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 14452 (yy_c_buf_p) = yy_cp -= 1; 14453 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 14454 YY_RULE_SETUP 14455 #line 4256 "scanner.l" 14456 { 14457 sharpCount = 0; 14458 current->name = scanYYtext ; 14459 if (current->spec & Entry::Protocol) 14460 { 14461 current->name+="-p"; 14462 } 14463 lineCount(); 14464 lastClassTemplSpecContext = ClassVar; 14465 if (insideObjC) // protocol list 14466 { 14467 BEGIN( ObjCProtocolList ); 14468 } 14469 else // C++ template specialization 14470 { 14471 BEGIN( ClassTemplSpec ); 14472 } 14473 } 14474 YY_BREAK 14475 case 466: 14476 YY_RULE_SETUP 14477 #line 4274 "scanner.l" 14478 { 14479 insideProtocolList=TRUE; 14480 BEGIN( Bases ); 14481 } 14482 YY_BREAK 14483 case 467: 14484 /* rule 467 can match eol */ 14485 YY_RULE_SETUP 14486 #line 4278 "scanner.l" 14487 { 14488 current->name += scanYYtext; 14489 lineCount(); 14490 if (--sharpCount<=0) 14491 { 14492 current->name = removeRedundantWhiteSpace(current->name); 14493 if (current->spec & Entry::Protocol) 14494 { // Objective-C protocol 14495 unput('{'); // fake start of body 14496 BEGIN( ClassVar ); 14497 } 14498 else 14499 { 14500 BEGIN( lastClassTemplSpecContext ); 14501 } 14502 } 14503 } 14504 YY_BREAK 14505 case 468: 14506 YY_RULE_SETUP 14507 #line 4295 "scanner.l" 14508 { 14509 current->name += scanYYtext; 14510 sharpCount++; 14511 } 14512 YY_BREAK 14513 case 469: 14514 YY_RULE_SETUP 14515 #line 4299 "scanner.l" 14516 { 14517 current->name += scanYYtext; 14518 } 14519 YY_BREAK 14520 case 470: 14521 /* rule 470 can match eol */ 14522 YY_RULE_SETUP 14523 #line 4302 "scanner.l" 14524 { // forward declaration 14525 unput(';'); 14526 current->reset(); 14527 if (isTypedef) // typedef of a class, put typedef keyword back 14528 { 14529 current->type.prepend("typedef"); 14530 } 14531 BEGIN( FindMembers ); 14532 } 14533 YY_BREAK 14534 case 471: 14535 /* rule 471 can match eol */ 14536 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 14537 (yy_c_buf_p) = yy_cp -= 1; 14538 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 14539 YY_RULE_SETUP 14540 #line 4311 "scanner.l" 14541 { 14542 current->name = scanYYtext ; 14543 lineCount(); 14544 if (current->spec & Entry::Protocol) 14545 { 14546 current->name += "-p"; 14547 } 14548 BEGIN( ClassVar ); 14549 } 14550 YY_BREAK 14551 case 472: 14552 /* rule 472 can match eol */ 14553 YY_RULE_SETUP 14554 #line 4320 "scanner.l" 14555 { 14556 current->name = scanYYtext ; 14557 lineCount(); 14558 if (current->spec & Entry::Protocol) 14559 { 14560 current->name += "-p"; 14561 } 14562 if ((current->section & Entry::Protocol) || 14563 current->section == Entry::OBJCIMPL_SEC) 14564 { 14565 unput('{'); // fake start of body 14566 } 14567 BEGIN( ClassVar ); 14568 } 14569 YY_BREAK 14570 case 473: 14571 /* rule 473 can match eol */ 14572 YY_RULE_SETUP 14573 #line 4334 "scanner.l" 14574 { // C# style scope 14575 current->name = substitute(scanYYtext,".","::"); 14576 lineCount(); 14577 BEGIN( ClassVar ); 14578 } 14579 YY_BREAK 14580 case 474: 14581 /* rule 474 can match eol */ 14582 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 14583 (yy_c_buf_p) = yy_cp -= 1; 14584 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 14585 YY_RULE_SETUP 14586 #line 4339 "scanner.l" 14587 { 14588 if (insideIDL && strncmp(scanYYtext,"switch",6)==0 && !isId(scanYYtext[6])) 14589 { 14590 // Corba IDL style union 14591 roundCount=0; 14592 BEGIN(SkipUnionSwitch); 14593 } 14594 else 14595 { 14596 addType(current); 14597 current->name = scanYYtext; 14598 current->name = current->name.stripWhiteSpace(); 14599 lineCount(); 14600 BEGIN( FindMembers ); 14601 } 14602 } 14603 YY_BREAK 14604 case 475: 14605 YY_RULE_SETUP 14606 #line 4355 "scanner.l" 14607 { 14608 if (isTypedef) 14609 { 14610 // multiple types in one typedef 14611 unput(','); 14612 current->type.prepend("typedef "); 14613 BEGIN(FindMembers); 14614 } 14615 else 14616 { 14617 // Multiple class forward declaration 14618 } 14619 } 14620 YY_BREAK 14621 case 476: 14622 /* rule 476 can match eol */ 14623 YY_RULE_SETUP 14624 #line 4368 "scanner.l" 14625 { 14626 if (insideCli) 14627 { 14628 if (scanYYtext[0]=='s') // sealed 14629 current->spec |= Entry::SealedClass; 14630 else // abstract 14631 current->spec |= Entry::AbstractClass; 14632 BEGIN( ClassVar ); 14633 } 14634 else 14635 { 14636 REJECT; 14637 } 14638 } 14639 YY_BREAK 14640 case 477: 14641 YY_RULE_SETUP 14642 #line 4382 "scanner.l" 14643 { 14644 if (insideIDL && strcmp(scanYYtext,"switch")==0) 14645 { 14646 // Corba IDL style union 14647 roundCount=0; 14648 BEGIN(SkipUnionSwitch); 14649 } 14650 else if ((insideJava || insidePHP || insideJS) && (strcmp(scanYYtext,"implements")==0 || strcmp(scanYYtext,"extends")==0)) 14651 { 14652 current->type.resize(0); 14653 baseProt=Public; 14654 baseVirt=Normal; 14655 baseName.resize(0); 14656 BEGIN( BasesProt ) ; 14657 } 14658 else if (insideCS && strcmp(scanYYtext,"where")==0) // C# type contraint 14659 { 14660 delete current->typeConstr; 14661 current->typeConstr = new ArgumentList; 14662 current->typeConstr->append(new Argument); 14663 lastCSConstraint = YY_START; 14664 BEGIN( CSConstraintName ); 14665 } 14666 else 14667 { 14668 if (current->section == Entry::ENUM_SEC) 14669 { // found "enum a b" -> variable 14670 current->section = Entry::VARIABLE_SEC ; 14671 } 14672 current->type += ' ' ; 14673 current->type += current->name ; 14674 current->name = scanYYtext ; 14675 14676 if (nameIsOperator(current->name)) 14677 { 14678 BEGIN( Operator ); 14679 } 14680 } 14681 } 14682 YY_BREAK 14683 case 478: 14684 YY_RULE_SETUP 14685 #line 4421 "scanner.l" 14686 { 14687 if (insideObjC && *scanYYtext=='(') // class category 14688 { 14689 current->name+='('; 14690 if (current->section!=Entry::OBJCIMPL_SEC) 14691 { 14692 current->spec|=Entry::Category; 14693 } 14694 BEGIN( ClassCategory ); 14695 } 14696 else 14697 { 14698 // probably a function anyway 14699 unput(*scanYYtext); 14700 BEGIN( FindMembers ); 14701 } 14702 } 14703 YY_BREAK 14704 case 479: 14705 YY_RULE_SETUP 14706 #line 4438 "scanner.l" 14707 { // special comment 14708 fullArgString.resize(0); 14709 lastCopyArgChar='#'; // end marker 14710 lastCommentInArgContext=YY_START; 14711 if (scanYYtext[1]=='/') 14712 BEGIN( CopyArgCommentLine ); 14713 else 14714 BEGIN( CopyArgComment ); 14715 } 14716 YY_BREAK 14717 case 480: 14718 YY_RULE_SETUP 14719 #line 4447 "scanner.l" 14720 { // artifically inserted token to signal end of comment block 14721 current->typeConstr->last()->docs = fullArgString; 14722 } 14723 YY_BREAK 14724 case 481: 14725 YY_RULE_SETUP 14726 #line 4450 "scanner.l" 14727 { // end of type constraint reached 14728 // parse documentation of the constraints 14729 handleParametersCommentBlocks(current->typeConstr); 14730 unput('{'); 14731 BEGIN( lastCSConstraint ); 14732 } 14733 YY_BREAK 14734 case 482: 14735 YY_RULE_SETUP 14736 #line 4456 "scanner.l" 14737 { 14738 BEGIN( CSConstraintType ); 14739 } 14740 YY_BREAK 14741 case 483: 14742 YY_RULE_SETUP 14743 #line 4459 "scanner.l" 14744 { 14745 // parameter name 14746 current->typeConstr->last()->name=scanYYtext; 14747 } 14748 YY_BREAK 14749 case 484: 14750 YY_RULE_SETUP 14751 #line 4463 "scanner.l" 14752 { // another constraint for a different param 14753 current->typeConstr->append(new Argument); 14754 BEGIN( CSConstraintName ); 14755 } 14756 YY_BREAK 14757 case 485: 14758 YY_RULE_SETUP 14759 #line 4467 "scanner.l" 14760 { 14761 if (current->typeConstr->last()->type.isEmpty()) 14762 // first type constraint for this parameter 14763 { 14764 current->typeConstr->last()->type=scanYYtext; 14765 } 14766 else // new type constraint for same parameter 14767 { 14768 QCString name = current->typeConstr->last()->name; 14769 current->typeConstr->append(new Argument); 14770 current->typeConstr->last()->name=name; 14771 current->typeConstr->last()->type=scanYYtext; 14772 } 14773 } 14774 YY_BREAK 14775 case 486: 14776 /* rule 486 can match eol */ 14777 YY_RULE_SETUP 14778 #line 4481 "scanner.l" 14779 { 14780 yyLineNr++; 14781 } 14782 YY_BREAK 14783 case 487: 14784 YY_RULE_SETUP 14785 #line 4484 "scanner.l" 14786 { 14787 } 14788 YY_BREAK 14789 case 488: 14790 YY_RULE_SETUP 14791 #line 4486 "scanner.l" 14792 { 14793 current->name+=scanYYtext; 14794 } 14795 YY_BREAK 14796 case 489: 14797 YY_RULE_SETUP 14798 #line 4489 "scanner.l" 14799 { 14800 current->name+=')'; 14801 if ((current->section & Entry::Protocol) || 14802 current->section == Entry::OBJCIMPL_SEC) 14803 { 14804 unput('{'); // fake start of body 14805 } 14806 else // category has no variables so push back an empty body 14807 { 14808 unput('}'); 14809 unput('{'); 14810 } 14811 BEGIN( ClassVar ); 14812 } 14813 YY_BREAK 14814 case 490: 14815 YY_RULE_SETUP 14816 #line 4503 "scanner.l" 14817 { 14818 current->type.resize(0); 14819 if ((current->spec & Entry::Interface) || 14820 (current->spec & Entry::Struct) || 14821 insidePHP || insideCS || insideD || insideObjC 14822 ) 14823 baseProt=Public; 14824 else 14825 baseProt=Private; 14826 baseVirt=Normal; 14827 baseName.resize(0); 14828 BEGIN( BasesProt ) ; 14829 } 14830 YY_BREAK 14831 case 491: 14832 YY_RULE_SETUP 14833 #line 4516 "scanner.l" 14834 { 14835 unput(*scanYYtext); 14836 if (isTypedef) // typedef of a class, put typedef keyword back 14837 { 14838 current->type.prepend("typedef"); 14839 } 14840 BEGIN( FindMembers ); 14841 } 14842 YY_BREAK 14843 case 492: 14844 /* rule 492 can match eol */ 14845 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 14846 (yy_c_buf_p) = yy_cp = yy_bp + 3; 14847 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 14848 YY_RULE_SETUP 14849 #line 4524 "scanner.l" 14850 { 14851 if (!insideObjC) 14852 { 14853 REJECT; 14854 } 14855 else 14856 { 14857 lineCount(); 14858 current->program+=scanYYtext; 14859 current->fileName = yyFileName ; 14860 current->startLine = yyLineNr ; 14861 curlyCount=0; 14862 BEGIN( ReadBodyIntf ); 14863 } 14864 } 14865 YY_BREAK 14866 case 493: 14867 /* rule 493 can match eol */ 14868 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 14869 (yy_c_buf_p) = yy_cp -= 1; 14870 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 14871 #line 4540 "scanner.l" 14872 case 494: 14873 /* rule 494 can match eol */ 14874 #line 4541 "scanner.l" 14875 case 495: 14876 /* rule 495 can match eol */ 14877 #line 4542 "scanner.l" 14878 case 496: 14879 /* rule 496 can match eol */ 14880 YY_RULE_SETUP 14881 #line 4542 "scanner.l" 14882 { 14883 if (!insideObjC) 14884 { 14885 REJECT; 14886 } 14887 else 14888 { 14889 lineCount(); 14890 current->program+=scanYYtext; 14891 current->fileName = yyFileName ; 14892 current->startLine = yyLineNr ; 14893 curlyCount=0; 14894 BEGIN( ReadBodyIntf ); 14895 } 14896 } 14897 YY_BREAK 14898 case 497: 14899 YY_RULE_SETUP 14900 #line 4557 "scanner.l" 14901 { 14902 current->fileName = yyFileName ; 14903 current->startLine = yyLineNr ; 14904 current->name = removeRedundantWhiteSpace(current->name); 14905 if (current->name.isEmpty() && !isTypedef) // anonymous compound 14906 { 14907 if (current->section==Entry::NAMESPACE_SEC) // allow reopening of anonymous namespaces 14908 { 14909 if (Config_getBool("EXTRACT_ANON_NSPACES")) // use visible name 14910 { 14911 current->name="anonymous_namespace{"+stripPath(current->fileName)+"}"; 14912 } 14913 else // use invisible name 14914 { 14915 current->name.sprintf("@%d",anonNSCount); 14916 } 14917 } 14918 else 14919 { 14920 current->name.sprintf("@%d",anonCount++); 14921 } 14922 } 14923 curlyCount=0; 14924 if (current_root && // not a nested struct inside an @interface section 14925 !(current_root->spec & Entry::Interface) && 14926 ((current->spec & (Entry::Interface | Entry::Protocol | Entry::Category) || 14927 current->section==Entry::OBJCIMPL_SEC) 14928 ) && 14929 insideObjC 14930 ) 14931 { // ObjC body that ends with @end 14932 BEGIN( ReadBodyIntf ); 14933 } 14934 else if (current->section==Entry::NAMESPACE_SEC) 14935 { // namespace body 14936 BEGIN( ReadNSBody ); 14937 } 14938 else 14939 { // class body 14940 BEGIN( ReadBody ) ; 14941 } 14942 } 14943 YY_BREAK 14944 case 498: 14945 /* rule 498 can match eol */ 14946 YY_RULE_SETUP 14947 #line 4599 "scanner.l" 14948 { lineCount(); baseVirt = Virtual; } 14949 YY_BREAK 14950 case 499: 14951 /* rule 499 can match eol */ 14952 YY_RULE_SETUP 14953 #line 4600 "scanner.l" 14954 { lineCount(); baseProt = Public; } 14955 YY_BREAK 14956 case 500: 14957 /* rule 500 can match eol */ 14958 YY_RULE_SETUP 14959 #line 4601 "scanner.l" 14960 { lineCount(); baseProt = Protected; } 14961 YY_BREAK 14962 case 501: 14963 /* rule 501 can match eol */ 14964 YY_RULE_SETUP 14965 #line 4602 "scanner.l" 14966 { lineCount(); baseProt = Private; } 14967 YY_BREAK 14968 case 502: 14969 /* rule 502 can match eol */ 14970 YY_RULE_SETUP 14971 #line 4603 "scanner.l" 14972 { lineCount(); } 14973 YY_BREAK 14974 case 503: 14975 YY_RULE_SETUP 14976 #line 4604 "scanner.l" 14977 { unput(*scanYYtext); BEGIN(Bases); } 14978 YY_BREAK 14979 case 504: 14980 /* rule 504 can match eol */ 14981 YY_RULE_SETUP 14982 #line 4605 "scanner.l" 14983 { 14984 baseName+=scanYYtext; 14985 current->args += ' '; 14986 current->args += scanYYtext; 14987 } 14988 YY_BREAK 14989 case 505: 14990 /* rule 505 can match eol */ 14991 YY_RULE_SETUP 14992 #line 4610 "scanner.l" 14993 { // Java style class 14994 QCString name = substitute(scanYYtext,".","::"); 14995 baseName += name; 14996 current->args += ' '; 14997 current->args += name; 14998 } 14999 YY_BREAK 15000 case 506: 15001 /* rule 506 can match eol */ 15002 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 15003 (yy_c_buf_p) = yy_cp = yy_bp + 1; 15004 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 15005 YY_RULE_SETUP 15006 #line 4616 "scanner.l" 15007 { 15008 if (!insideObjC) 15009 { 15010 REJECT; 15011 } 15012 else 15013 { 15014 yyLineNr++; 15015 //unput('{'); 15016 } 15017 } 15018 YY_BREAK 15019 case 507: 15020 YY_RULE_SETUP 15021 #line 4627 "scanner.l" 15022 { // empty ObjC interface 15023 unput('d'); // insert fake body: {}@end 15024 unput('n'); 15025 unput('e'); 15026 unput('@'); 15027 unput('}'); 15028 unput('{'); 15029 } 15030 YY_BREAK 15031 case 508: 15032 YY_RULE_SETUP 15033 #line 4635 "scanner.l" 15034 { current->name += *scanYYtext; 15035 sharpCount=1; 15036 roundCount=0; 15037 lastSkipSharpContext = YY_START; 15038 specName = ¤t->name; 15039 BEGIN ( Specialization ); 15040 } 15041 YY_BREAK 15042 case 509: 15043 YY_RULE_SETUP 15044 #line 4642 "scanner.l" 15045 { 15046 sharpCount=1; 15047 roundCount=0; 15048 lastSkipSharpContext = YY_START; 15049 if (insideObjC) // start of protocol list 15050 { 15051 unput(','); 15052 } 15053 else // template specialization 15054 { 15055 baseName += *scanYYtext; 15056 specName = &baseName; 15057 BEGIN ( Specialization ); 15058 } 15059 } 15060 YY_BREAK 15061 case 510: 15062 YY_RULE_SETUP 15063 #line 4657 "scanner.l" 15064 { *specName += *scanYYtext; 15065 if (roundCount==0) sharpCount++; 15066 } 15067 YY_BREAK 15068 case 511: 15069 YY_RULE_SETUP 15070 #line 4660 "scanner.l" 15071 { 15072 *specName += *scanYYtext; 15073 if (roundCount==0 && --sharpCount<=0) 15074 BEGIN(lastSkipSharpContext); 15075 } 15076 YY_BREAK 15077 case 512: 15078 /* rule 512 can match eol */ 15079 YY_RULE_SETUP 15080 #line 4665 "scanner.l" 15081 { lineCount(); *specName +=' '; } 15082 YY_BREAK 15083 case 513: 15084 YY_RULE_SETUP 15085 #line 4666 "scanner.l" 15086 { *specName += scanYYtext; } 15087 YY_BREAK 15088 case 514: 15089 YY_RULE_SETUP 15090 #line 4667 "scanner.l" 15091 { 15092 if (insideCS) // for C# >> ends a nested template 15093 { 15094 REJECT; 15095 } 15096 else // for C++ >> is a bitshift operator and > > would end a nested template 15097 { 15098 *specName += scanYYtext; 15099 } 15100 } 15101 YY_BREAK 15102 case 515: 15103 /* rule 515 can match eol */ 15104 YY_RULE_SETUP 15105 #line 4677 "scanner.l" 15106 { lineCount(); } 15107 YY_BREAK 15108 case 516: 15109 YY_RULE_SETUP 15110 #line 4678 "scanner.l" 15111 { *specName += *scanYYtext; roundCount++; } 15112 YY_BREAK 15113 case 517: 15114 YY_RULE_SETUP 15115 #line 4679 "scanner.l" 15116 { *specName += *scanYYtext; roundCount--; } 15117 YY_BREAK 15118 case 518: 15119 YY_RULE_SETUP 15120 #line 4680 "scanner.l" 15121 { 15122 *specName += *scanYYtext; 15123 } 15124 YY_BREAK 15125 case 519: 15126 YY_RULE_SETUP 15127 #line 4683 "scanner.l" 15128 { ++sharpCount; } 15129 YY_BREAK 15130 case 520: 15131 YY_RULE_SETUP 15132 #line 4684 "scanner.l" 15133 { if (--sharpCount<=0) 15134 BEGIN ( lastSkipSharpContext ); 15135 } 15136 YY_BREAK 15137 case 521: 15138 YY_RULE_SETUP 15139 #line 4687 "scanner.l" 15140 { ++roundCount; } 15141 YY_BREAK 15142 case 522: 15143 YY_RULE_SETUP 15144 #line 4688 "scanner.l" 15145 { if (--roundCount<=0) 15146 BEGIN ( lastSkipRoundContext ); 15147 } 15148 YY_BREAK 15149 case 523: 15150 /* rule 523 can match eol */ 15151 YY_RULE_SETUP 15152 #line 4691 "scanner.l" 15153 { lineCount(); 15154 if (insideProtocolList) 15155 { 15156 baseName+="-p"; 15157 } 15158 else 15159 { 15160 current->args += ',' ; 15161 } 15162 current->name = removeRedundantWhiteSpace(current->name); 15163 if (!baseName.isEmpty()) 15164 { 15165 current->extends->append( 15166 new BaseInfo(baseName,baseProt,baseVirt) 15167 ); 15168 } 15169 if ((current->spec & Entry::Interface) || 15170 insideJava || insidePHP || insideCS || 15171 insideD || insideObjC) 15172 { 15173 baseProt=Public; 15174 } 15175 else 15176 { 15177 baseProt=Private; 15178 } 15179 baseVirt=Normal; 15180 baseName.resize(0); 15181 if (*scanYYtext=='>') 15182 { // end of a ObjC protocol list 15183 insideProtocolList=FALSE; 15184 } 15185 else 15186 { 15187 if (*scanYYtext==',' && insideObjC) // Begin of protocol list 15188 { 15189 insideProtocolList=TRUE; 15190 } 15191 BEGIN(BasesProt); 15192 } 15193 } 15194 YY_BREAK 15195 case 524: 15196 YY_RULE_SETUP 15197 #line 4732 "scanner.l" 15198 { current->fileName = yyFileName ; 15199 current->startLine = yyLineNr ; 15200 current->name = removeRedundantWhiteSpace(current->name); 15201 if (!baseName.isEmpty()) 15202 current->extends->append( 15203 new BaseInfo(baseName,baseProt,baseVirt) 15204 ); 15205 curlyCount=0; 15206 if (insideObjC) 15207 { 15208 BEGIN( ReadBodyIntf ); 15209 } 15210 else 15211 { 15212 BEGIN( ReadBody ) ; 15213 } 15214 } 15215 YY_BREAK 15216 case 525: 15217 YY_RULE_SETUP 15218 #line 4749 "scanner.l" 15219 { 15220 roundCount++; 15221 } 15222 YY_BREAK 15223 case 526: 15224 YY_RULE_SETUP 15225 #line 4752 "scanner.l" 15226 { 15227 if (--roundCount==0) 15228 { 15229 BEGIN(ClassVar); 15230 } 15231 } 15232 YY_BREAK 15233 case 527: 15234 /* rule 527 can match eol */ 15235 YY_RULE_SETUP 15236 #line 4758 "scanner.l" 15237 { yyLineNr++; } 15238 YY_BREAK 15239 case 528: 15240 YY_RULE_SETUP 15241 #line 4759 "scanner.l" 15242 15243 YY_BREAK 15244 case 529: 15245 /* rule 529 can match eol */ 15246 YY_RULE_SETUP 15247 #line 4760 "scanner.l" 15248 { current->program += scanYYtext ; 15249 lineCount() ; 15250 } 15251 YY_BREAK 15252 case 530: 15253 YY_RULE_SETUP 15254 #line 4763 "scanner.l" 15255 { current->program += scanYYtext ; } 15256 YY_BREAK 15257 case 531: 15258 YY_RULE_SETUP 15259 #line 4764 "scanner.l" 15260 { current->program += scanYYtext ; } 15261 YY_BREAK 15262 case 532: 15263 YY_RULE_SETUP 15264 #line 4765 "scanner.l" 15265 { 15266 insideCode=TRUE; 15267 current->program += scanYYtext ; 15268 } 15269 YY_BREAK 15270 case 533: 15271 YY_RULE_SETUP 15272 #line 4769 "scanner.l" 15273 { 15274 insideCode=FALSE; 15275 current->program += scanYYtext ; 15276 } 15277 YY_BREAK 15278 case 534: 15279 YY_RULE_SETUP 15280 #line 4773 "scanner.l" 15281 { current->program += scanYYtext ; } 15282 YY_BREAK 15283 case 535: 15284 YY_RULE_SETUP 15285 #line 4774 "scanner.l" 15286 { current->program += scanYYtext ; 15287 if (!insideCode) BEGIN( lastContext ) ; 15288 } 15289 YY_BREAK 15290 case 536: 15291 YY_RULE_SETUP 15292 #line 4777 "scanner.l" 15293 { current->program += *scanYYtext ; } 15294 YY_BREAK 15295 case 537: 15296 YY_RULE_SETUP 15297 #line 4779 "scanner.l" 15298 { 15299 //printf("Start doc block at %d\n",yyLineNr); 15300 removeSlashes=(scanYYtext[1]=='/'); 15301 tmpDocType=-1; 15302 #if 0 15303 if (YY_START!=SkipCurly) 15304 { 15305 current->doc.resize(0); 15306 } 15307 #endif 15308 if (!current->doc.isEmpty()) 15309 { 15310 current->doc+="\n\n"; 15311 } 15312 else 15313 { 15314 current->docLine = yyLineNr; 15315 current->docFile = yyFileName; 15316 } 15317 // 15318 15319 lastDocContext = YY_START; 15320 if (current_root->section & Entry::SCOPE_MASK) 15321 { 15322 current->inside = current_root->name+"::"; 15323 //if (current->mGrpId!=DOX_NOGROUP) 15324 //{ 15325 // memberGroupInside = current->inside.copy(); 15326 //} 15327 } 15328 docBlockContext = YY_START; 15329 docBlockInBody = YY_START==SkipCurly; 15330 docBlockAutoBrief = Config_getBool("QT_AUTOBRIEF"); 15331 docBlock.resize(0); 15332 if (docBlockAutoBrief) 15333 { 15334 current->briefLine = yyLineNr; 15335 current->briefFile = yyFileName; 15336 } 15337 #if 0 15338 if (!docBlockInBody) 15339 { 15340 current->doc.resize(0); 15341 if (docBlockAutoBrief) 15342 { 15343 current->brief.resize(0); 15344 } 15345 } 15346 #endif 15347 startCommentBlock(FALSE); 15348 BEGIN( DocBlock ); 15349 } 15350 YY_BREAK 15351 case 538: 15352 /* rule 538 can match eol */ 15353 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 15354 (yy_c_buf_p) = yy_cp -= 1; 15355 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 15356 YY_RULE_SETUP 15357 #line 4831 "scanner.l" 15358 { 15359 removeSlashes=(scanYYtext[1]=='/'); 15360 lastDocContext = YY_START; 15361 //printf("Found comment block at %s:%d\n",yyFileName,yyLineNr); 15362 if (current_root->section & Entry::SCOPE_MASK) 15363 { 15364 current->inside = current_root->name+"::"; 15365 //if (current->mGrpId!=DOX_NOGROUP) 15366 //{ 15367 // memberGroupInside = current->inside.copy(); 15368 //} 15369 } 15370 current->docLine = yyLineNr; 15371 current->docFile = yyFileName; 15372 docBlockContext = YY_START; 15373 docBlockInBody = YY_START==SkipCurly; 15374 docBlockAutoBrief = Config_getBool("JAVADOC_AUTOBRIEF"); 15375 docBlock.resize(0); 15376 if (docBlockAutoBrief) 15377 { 15378 current->briefLine = yyLineNr; 15379 current->briefFile = yyFileName; 15380 } 15381 #if 0 15382 if (!docBlockInBody) 15383 { 15384 current->doc.resize(0); 15385 if (docBlockAutoBrief) 15386 { 15387 current->brief.resize(0); 15388 } 15389 } 15390 #endif 15391 startCommentBlock(FALSE); 15392 BEGIN( DocBlock ); 15393 } 15394 YY_BREAK 15395 case 539: 15396 YY_RULE_SETUP 15397 #line 4867 "scanner.l" 15398 { 15399 #if 0 15400 if (YY_START!=SkipCurly) 15401 { 15402 current->brief.resize(0); 15403 current->briefFile=yyFileName; 15404 current->briefLine=yyLineNr; 15405 } 15406 #endif 15407 tmpDocType=-1; 15408 lastDocContext = YY_START; 15409 if (current_root->section & Entry::SCOPE_MASK) 15410 { 15411 current->inside = current_root->name+"::"; 15412 //if (current->mGrpId!=DOX_NOGROUP) 15413 //{ 15414 // memberGroupInside = current->inside.copy(); 15415 //} 15416 } 15417 docBlockContext = YY_START; 15418 docBlockInBody = YY_START==SkipCurly; 15419 docBlockAutoBrief = FALSE; 15420 docBlock.resize(0); 15421 startCommentBlock(current->brief.isEmpty()); 15422 BEGIN( DocLine ); 15423 } 15424 YY_BREAK 15425 case 540: 15426 /* rule 540 can match eol */ 15427 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 15428 (yy_c_buf_p) = yy_cp = yy_bp + 3; 15429 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 15430 YY_RULE_SETUP 15431 #line 4893 "scanner.l" 15432 { 15433 #if 0 15434 if (YY_START!=SkipCurly) 15435 { 15436 current->brief.resize(0); 15437 current->briefFile=yyFileName; 15438 current->briefLine=yyLineNr; 15439 } 15440 #endif 15441 tmpDocType=-1; 15442 lastDocContext = YY_START; 15443 if (current_root->section & Entry::SCOPE_MASK) 15444 { 15445 current->inside = current_root->name+"::"; 15446 //if (current->mGrpId!=DOX_NOGROUP) 15447 //{ 15448 // memberGroupInside = current->inside.copy(); 15449 //} 15450 } 15451 docBlockContext = YY_START; 15452 docBlockInBody = YY_START==SkipCurly; 15453 docBlockAutoBrief = FALSE; 15454 docBlock.resize(0); 15455 startCommentBlock(current->brief.isEmpty()); 15456 BEGIN( DocLine ); 15457 } 15458 YY_BREAK 15459 case 541: 15460 /* rule 541 can match eol */ 15461 YY_RULE_SETUP 15462 #line 4919 "scanner.l" 15463 { 15464 lineCount(); 15465 } 15466 YY_BREAK 15467 case 542: 15468 YY_RULE_SETUP 15469 #line 4922 "scanner.l" 15470 { 15471 if (insideCS && 15472 !current->name.isEmpty() && 15473 !current->type.isEmpty()) 15474 { 15475 if (containsWord(current->type,"event")) // event 15476 { 15477 current->mtype = mtype = Event; 15478 } 15479 else // property 15480 { 15481 current->mtype = mtype = Property; 15482 } 15483 current->bodyLine = yyLineNr; 15484 curlyCount=0; 15485 BEGIN( CSAccessorDecl ); 15486 } 15487 else 15488 { 15489 if ((insideJava || insideCS || insideD) && 15490 current->name.isEmpty() 15491 ) 15492 { 15493 // static Java initializer 15494 needsSemi = FALSE; 15495 if (current->stat) 15496 { 15497 current->name="[static initializer]"; 15498 current->type.resize(0); 15499 } 15500 else 15501 { 15502 current->name="[instance initializer]"; 15503 } 15504 unput(*scanYYtext); 15505 BEGIN( Function ); 15506 } 15507 else 15508 { 15509 needsSemi = TRUE; 15510 current->type.resize(0); 15511 current->name.resize(0); 15512 current->args.resize(0); 15513 current->argList->clear(); 15514 curlyCount=0; 15515 BEGIN( SkipCurlyBlock ); 15516 } 15517 } 15518 } 15519 YY_BREAK 15520 case 543: 15521 YY_RULE_SETUP 15522 #line 4971 "scanner.l" 15523 { curlyCount++; } 15524 YY_BREAK 15525 case 544: 15526 YY_RULE_SETUP 15527 #line 4972 "scanner.l" 15528 { 15529 if (curlyCount) 15530 { 15531 curlyCount--; 15532 } 15533 else 15534 { 15535 mtype = Method; 15536 unput(';'); 15537 BEGIN(FindMembers); 15538 } 15539 } 15540 YY_BREAK 15541 case 545: 15542 YY_RULE_SETUP 15543 #line 4984 "scanner.l" 15544 { if (curlyCount==0) current->spec |= Entry::Settable; } 15545 YY_BREAK 15546 case 546: 15547 YY_RULE_SETUP 15548 #line 4985 "scanner.l" 15549 { if (curlyCount==0) current->spec |= Entry::Gettable; } 15550 YY_BREAK 15551 case 547: 15552 YY_RULE_SETUP 15553 #line 4986 "scanner.l" 15554 { if (curlyCount==0) current->spec |= Entry::Addable; } 15555 YY_BREAK 15556 case 548: 15557 YY_RULE_SETUP 15558 #line 4987 "scanner.l" 15559 { if (curlyCount==0) current->spec |= Entry::Removable; } 15560 YY_BREAK 15561 case 549: 15562 YY_RULE_SETUP 15563 #line 4988 "scanner.l" 15564 { if (curlyCount==0) current->spec |= Entry::Raisable; } 15565 YY_BREAK 15566 case 550: 15567 YY_RULE_SETUP 15568 #line 4989 "scanner.l" 15569 {} 15570 YY_BREAK 15571 case 551: 15572 /* rule 551 can match eol */ 15573 YY_RULE_SETUP 15574 #line 4990 "scanner.l" 15575 { yyLineNr++; } 15576 YY_BREAK 15577 /**********************************************************************************/ 15578 /******************** Documentation block related rules ***************************/ 15579 /**********************************************************************************/ 15580 /* ---- Single line comments ------ */ 15581 case 552: 15582 /* rule 552 can match eol */ 15583 YY_RULE_SETUP 15584 #line 5000 "scanner.l" 15585 { // continuation of multiline C++-style comment 15586 docBlock+=scanYYtext; 15587 docBlock.resize(docBlock.size() - 3); 15588 yyLineNr++; 15589 } 15590 YY_BREAK 15591 case 553: 15592 /* rule 553 can match eol */ 15593 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 15594 (yy_c_buf_p) = yy_cp -= 1; 15595 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 15596 YY_RULE_SETUP 15597 #line 5005 "scanner.l" 15598 { // whole line 15599 docBlock+=scanYYtext; 15600 handleCommentBlock(docBlock,current->brief.isEmpty()); 15601 BEGIN( docBlockContext ); 15602 } 15603 YY_BREAK 15604 /* ---- Comments blocks ------ */ 15605 case 554: 15606 YY_RULE_SETUP 15607 #line 5013 "scanner.l" 15608 { // end of comment block 15609 handleCommentBlock(docBlock,FALSE); 15610 BEGIN(docBlockContext); 15611 } 15612 YY_BREAK 15613 case 555: 15614 /* rule 555 can match eol */ 15615 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 15616 (yy_c_buf_p) = yy_cp -= 1; 15617 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 15618 YY_RULE_SETUP 15619 #line 5017 "scanner.l" 15620 { // start of a comment line 15621 } 15622 YY_BREAK 15623 case 556: 15624 YY_RULE_SETUP 15625 #line 5019 "scanner.l" 15626 { // strip embedded C++ comments if at the start of a line 15627 } 15628 YY_BREAK 15629 case 557: 15630 YY_RULE_SETUP 15631 #line 5021 "scanner.l" 15632 { // slashes in the middle of a comment block 15633 docBlock+=scanYYtext; 15634 } 15635 YY_BREAK 15636 case 558: 15637 YY_RULE_SETUP 15638 #line 5024 "scanner.l" 15639 { // start of a new comment in the 15640 // middle of a comment block 15641 docBlock+=scanYYtext; 15642 } 15643 YY_BREAK 15644 case 559: 15645 /* rule 559 can match eol */ 15646 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 15647 (yy_c_buf_p) = yy_cp -= 1; 15648 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 15649 YY_RULE_SETUP 15650 #line 5028 "scanner.l" 15651 { // escaped command 15652 docBlock+=scanYYtext; 15653 } 15654 YY_BREAK 15655 case 560: 15656 YY_RULE_SETUP 15657 #line 5031 "scanner.l" 15658 { 15659 docBlock+=scanYYtext; 15660 docBlockName=&scanYYtext[1]; 15661 if (docBlockName.at(1)=='{') 15662 { 15663 docBlockName.at(1)='}'; 15664 } 15665 BEGIN(DocCopyBlock); 15666 } 15667 YY_BREAK 15668 case 561: 15669 YY_RULE_SETUP 15670 #line 5040 "scanner.l" 15671 { 15672 docBlock+=scanYYtext; 15673 docBlockName="<pre>"; 15674 BEGIN(DocCopyBlock); 15675 } 15676 YY_BREAK 15677 case 562: 15678 /* rule 562 can match eol */ 15679 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 15680 (yy_c_buf_p) = yy_cp -= 1; 15681 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 15682 YY_RULE_SETUP 15683 #line 5045 "scanner.l" 15684 { // verbatim command (which could contain nested comments!) 15685 docBlock+=scanYYtext; 15686 docBlockName=&scanYYtext[1]; 15687 BEGIN(DocCopyBlock); 15688 } 15689 YY_BREAK 15690 case 563: 15691 YY_RULE_SETUP 15692 #line 5050 "scanner.l" 15693 { 15694 if (insideCS) 15695 { 15696 docBlock+=scanYYtext; 15697 docBlockName="<code>"; 15698 BEGIN(DocCopyBlock); 15699 } 15700 else 15701 { 15702 REJECT; 15703 } 15704 } 15705 YY_BREAK 15706 case 564: 15707 YY_RULE_SETUP 15708 #line 5062 "scanner.l" 15709 { // any character that isn't special 15710 docBlock+=scanYYtext; 15711 } 15712 YY_BREAK 15713 case 565: 15714 /* rule 565 can match eol */ 15715 YY_RULE_SETUP 15716 #line 5065 "scanner.l" 15717 { // newline 15718 yyLineNr++; 15719 docBlock+=*scanYYtext; 15720 } 15721 YY_BREAK 15722 case 566: 15723 YY_RULE_SETUP 15724 #line 5069 "scanner.l" 15725 { // command block 15726 docBlock+=*scanYYtext; 15727 } 15728 YY_BREAK 15729 /* ---- Copy verbatim sections ------ */ 15730 case 567: 15731 YY_RULE_SETUP 15732 #line 5075 "scanner.l" 15733 { // end of a <pre> block 15734 docBlock+=scanYYtext; 15735 if (docBlockName=="<pre>") 15736 { 15737 BEGIN(DocBlock); 15738 } 15739 } 15740 YY_BREAK 15741 case 568: 15742 YY_RULE_SETUP 15743 #line 5082 "scanner.l" 15744 { // end of a <code> block 15745 docBlock+=scanYYtext; 15746 if (docBlockName=="<code>") 15747 { 15748 BEGIN(DocBlock); 15749 } 15750 } 15751 YY_BREAK 15752 case 569: 15753 YY_RULE_SETUP 15754 #line 5089 "scanner.l" 15755 { 15756 docBlock+=scanYYtext; 15757 BEGIN(DocBlock); 15758 } 15759 YY_BREAK 15760 case 570: 15761 /* rule 570 can match eol */ 15762 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 15763 (yy_c_buf_p) = yy_cp -= 1; 15764 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 15765 YY_RULE_SETUP 15766 #line 5093 "scanner.l" 15767 { // end of verbatim block 15768 docBlock+=scanYYtext; 15769 if (&scanYYtext[4]==docBlockName) 15770 { 15771 BEGIN(DocBlock); 15772 } 15773 } 15774 YY_BREAK 15775 case 571: 15776 /* rule 571 can match eol */ 15777 YY_RULE_SETUP 15778 #line 5100 "scanner.l" 15779 { // start of a comment line 15780 if (docBlockName=="verbatim") 15781 { 15782 REJECT; 15783 } 15784 } 15785 YY_BREAK 15786 case 572: 15787 YY_RULE_SETUP 15788 #line 5106 "scanner.l" 15789 { // any character that is not special 15790 docBlock+=scanYYtext; 15791 } 15792 YY_BREAK 15793 case 573: 15794 YY_RULE_SETUP 15795 #line 5109 "scanner.l" 15796 { 15797 docBlock+=scanYYtext; 15798 } 15799 YY_BREAK 15800 case 574: 15801 /* rule 574 can match eol */ 15802 YY_RULE_SETUP 15803 #line 5112 "scanner.l" 15804 { // newline 15805 docBlock+=*scanYYtext; 15806 yyLineNr++; 15807 } 15808 YY_BREAK 15809 case 575: 15810 YY_RULE_SETUP 15811 #line 5116 "scanner.l" 15812 { // any other character 15813 docBlock+=*scanYYtext; 15814 } 15815 YY_BREAK 15816 case YY_STATE_EOF(DocCopyBlock): 15817 #line 5119 "scanner.l" 15818 { 15819 warn(yyFileName,yyLineNr, 15820 "Warning: reached end of file while inside a %s block!\n" 15821 "The command that should end the block seems to be missing!\n", 15822 docBlockName.data()); 15823 yyterminate(); 15824 } 15825 YY_BREAK 15826 /* ------------- Prototype parser -------------- */ 15827 case 576: 15828 YY_RULE_SETUP 15829 #line 5130 "scanner.l" 15830 { 15831 current->name+=scanYYtext; 15832 } 15833 YY_BREAK 15834 case 577: 15835 YY_RULE_SETUP 15836 #line 5133 "scanner.l" 15837 { 15838 current->args+=*scanYYtext; 15839 currentArgumentContext = PrototypeQual; 15840 fullArgString = current->args.copy(); 15841 copyArgString = ¤t->args; 15842 BEGIN( ReadFuncArgType ) ; 15843 } 15844 YY_BREAK 15845 case 578: 15846 YY_RULE_SETUP 15847 #line 5140 "scanner.l" 15848 { 15849 current->type+=current->name+scanYYtext; 15850 current->name.resize(0); 15851 BEGIN( PrototypePtr ); 15852 } 15853 YY_BREAK 15854 case 579: 15855 /* rule 579 can match eol */ 15856 YY_RULE_SETUP 15857 #line 5145 "scanner.l" 15858 { 15859 current->name+=scanYYtext; 15860 } 15861 YY_BREAK 15862 case 580: 15863 YY_RULE_SETUP 15864 #line 5148 "scanner.l" 15865 { 15866 current->args+=*scanYYtext; 15867 currentArgumentContext = PrototypeQual; 15868 fullArgString = current->args.copy(); 15869 copyArgString = ¤t->args; 15870 BEGIN( ReadFuncArgType ) ; 15871 } 15872 YY_BREAK 15873 case 581: 15874 YY_RULE_SETUP 15875 #line 5155 "scanner.l" 15876 { 15877 current->type+=')'; 15878 BEGIN( Prototype ); 15879 } 15880 YY_BREAK 15881 case 582: 15882 YY_RULE_SETUP 15883 #line 5159 "scanner.l" 15884 { 15885 current->name+=scanYYtext; 15886 } 15887 YY_BREAK 15888 case 583: 15889 YY_RULE_SETUP 15890 #line 5162 "scanner.l" 15891 { 15892 BEGIN( PrototypeSkipLine); 15893 } 15894 YY_BREAK 15895 case 584: 15896 YY_RULE_SETUP 15897 #line 5165 "scanner.l" 15898 { 15899 current->args += " const "; 15900 current->argList->constSpecifier=TRUE; 15901 } 15902 YY_BREAK 15903 case 585: 15904 YY_RULE_SETUP 15905 #line 5169 "scanner.l" 15906 { 15907 current->args += " volatile "; 15908 current->argList->volatileSpecifier=TRUE; 15909 } 15910 YY_BREAK 15911 case 586: 15912 YY_RULE_SETUP 15913 #line 5173 "scanner.l" 15914 { 15915 current->args += " = 0"; 15916 current->virt = Pure; 15917 current->argList->pureSpecifier=TRUE; 15918 } 15919 YY_BREAK 15920 case 587: 15921 YY_RULE_SETUP 15922 #line 5178 "scanner.l" 15923 { 15924 current->exception = "throw("; 15925 BEGIN(PrototypeExc); 15926 } 15927 YY_BREAK 15928 case 588: 15929 YY_RULE_SETUP 15930 #line 5182 "scanner.l" 15931 { 15932 current->exception += ')'; 15933 BEGIN(PrototypeQual); 15934 } 15935 YY_BREAK 15936 case 589: 15937 YY_RULE_SETUP 15938 #line 5186 "scanner.l" 15939 { 15940 current->exception += *scanYYtext; 15941 } 15942 YY_BREAK 15943 case 590: 15944 YY_RULE_SETUP 15945 #line 5189 "scanner.l" 15946 { 15947 current->args += *scanYYtext; 15948 } 15949 YY_BREAK 15950 case 591: 15951 YY_RULE_SETUP 15952 #line 5192 "scanner.l" 15953 { 15954 current->name += *scanYYtext; 15955 } 15956 YY_BREAK 15957 case 592: 15958 YY_RULE_SETUP 15959 #line 5195 "scanner.l" 15960 { 15961 } 15962 YY_BREAK 15963 /* ------------ Generic rules -------------- */ 15964 case 593: 15965 /* rule 593 can match eol */ 15966 *yy_cp = (yy_hold_char); /* undo effects of setting up scanYYtext */ 15967 (yy_c_buf_p) = yy_cp -= 1; 15968 YY_DO_BEFORE_ACTION; /* set up scanYYtext again */ 15969 YY_RULE_SETUP 15970 #line 5202 "scanner.l" 15971 { 15972 BEGIN( lastCContext ) ; 15973 } 15974 YY_BREAK 15975 case 594: 15976 YY_RULE_SETUP 15977 #line 5205 "scanner.l" 15978 15979 YY_BREAK 15980 case 595: 15981 /* rule 595 can match eol */ 15982 YY_RULE_SETUP 15983 #line 5206 "scanner.l" 15984 { yyLineNr++ ; } 15985 YY_BREAK 15986 case 596: 15987 YY_RULE_SETUP 15988 #line 5207 "scanner.l" 15989 { 15990 if (insideIDL && insideCppQuote) 15991 { 15992 BEGIN(EndCppQuote); 15993 } 15994 } 15995 YY_BREAK 15996 case 597: 15997 YY_RULE_SETUP 15998 #line 5213 "scanner.l" 15999 { 16000 if (!insidePHP) 16001 REJECT; 16002 lastCContext = YY_START ; 16003 BEGIN( SkipCxxComment ) ; 16004 } 16005 YY_BREAK 16006 case 598: 16007 YY_RULE_SETUP 16008 #line 5219 "scanner.l" 16009 { 16010 if (insidePHP) 16011 { 16012 lastStringContext=YY_START; 16013 BEGIN(SkipPHPString); 16014 } 16015 } 16016 YY_BREAK 16017 case 599: 16018 YY_RULE_SETUP 16019 #line 5226 "scanner.l" 16020 { 16021 if (insidePHP) 16022 { 16023 lastStringContext=YY_START; 16024 BEGIN(SkipString); 16025 } 16026 } 16027 YY_BREAK 16028 case 600: 16029 YY_RULE_SETUP 16030 #line 5233 "scanner.l" 16031 16032 YY_BREAK 16033 case 601: 16034 YY_RULE_SETUP 16035 #line 5234 "scanner.l" 16036 16037 YY_BREAK 16038 case 602: 16039 YY_RULE_SETUP 16040 #line 5235 "scanner.l" 16041 { lastCContext = YY_START ; 16042 BEGIN( SkipComment ) ; 16043 } 16044 YY_BREAK 16045 case 603: 16046 YY_RULE_SETUP 16047 #line 5238 "scanner.l" 16048 { BEGIN( lastCContext ) ; } 16049 YY_BREAK 16050 case 604: 16051 YY_RULE_SETUP 16052 #line 5239 "scanner.l" 16053 { 16054 lastCContext = YY_START ; 16055 BEGIN( SkipCxxComment ) ; 16056 } 16057 YY_BREAK 16058 case 605: 16059 YY_RULE_SETUP 16060 #line 5243 "scanner.l" 16061 ECHO; 16062 YY_BREAK 16063 #line 16064 "<stdout>" 16064 case YY_STATE_EOF(INITIAL): 16065 case YY_STATE_EOF(Define): 16066 case YY_STATE_EOF(DefineEnd): 16067 case YY_STATE_EOF(CompoundName): 16068 case YY_STATE_EOF(ClassVar): 16069 case YY_STATE_EOF(CSConstraintName): 16070 case YY_STATE_EOF(CSConstraintType): 16071 case YY_STATE_EOF(ClassCategory): 16072 case YY_STATE_EOF(ClassTemplSpec): 16073 case YY_STATE_EOF(CliPropertyType): 16074 case YY_STATE_EOF(CliOverride): 16075 case YY_STATE_EOF(Bases): 16076 case YY_STATE_EOF(BasesProt): 16077 case YY_STATE_EOF(NextSemi): 16078 case YY_STATE_EOF(BitFields): 16079 case YY_STATE_EOF(FindMembers): 16080 case YY_STATE_EOF(FindMembersPHP): 16081 case YY_STATE_EOF(FindMemberName): 16082 case YY_STATE_EOF(FindFields): 16083 case YY_STATE_EOF(FindFieldArg): 16084 case YY_STATE_EOF(Function): 16085 case YY_STATE_EOF(FuncRound): 16086 case YY_STATE_EOF(ExcpRound): 16087 case YY_STATE_EOF(ExcpList): 16088 case YY_STATE_EOF(FuncQual): 16089 case YY_STATE_EOF(Operator): 16090 case YY_STATE_EOF(Array): 16091 case YY_STATE_EOF(ReadBody): 16092 case YY_STATE_EOF(ReadNSBody): 16093 case YY_STATE_EOF(ReadBodyIntf): 16094 case YY_STATE_EOF(Using): 16095 case YY_STATE_EOF(UsingDirective): 16096 case YY_STATE_EOF(SkipCurly): 16097 case YY_STATE_EOF(SkipCurlyCpp): 16098 case YY_STATE_EOF(SkipCurlyEndDoc): 16099 case YY_STATE_EOF(SkipString): 16100 case YY_STATE_EOF(SkipPHPString): 16101 case YY_STATE_EOF(SkipInits): 16102 case YY_STATE_EOF(SkipCPP): 16103 case YY_STATE_EOF(SkipCPPBlock): 16104 case YY_STATE_EOF(SkipComment): 16105 case YY_STATE_EOF(SkipCxxComment): 16106 case YY_STATE_EOF(SkipCurlyBlock): 16107 case YY_STATE_EOF(SkipRoundBlock): 16108 case YY_STATE_EOF(Sharp): 16109 case YY_STATE_EOF(SkipSharp): 16110 case YY_STATE_EOF(SkipRound): 16111 case YY_STATE_EOF(SkipSquare): 16112 case YY_STATE_EOF(SkipRemainder): 16113 case YY_STATE_EOF(TypedefName): 16114 case YY_STATE_EOF(TryFunctionBlock): 16115 case YY_STATE_EOF(TryFunctionBlockEnd): 16116 case YY_STATE_EOF(Comment): 16117 case YY_STATE_EOF(PackageName): 16118 case YY_STATE_EOF(JavaImport): 16119 case YY_STATE_EOF(CSAccessorDecl): 16120 case YY_STATE_EOF(PreLineCtrl): 16121 case YY_STATE_EOF(DefinePHP): 16122 case YY_STATE_EOF(DefinePHPEnd): 16123 case YY_STATE_EOF(OldStyleArgs): 16124 case YY_STATE_EOF(SkipVerbString): 16125 case YY_STATE_EOF(ObjCMethod): 16126 case YY_STATE_EOF(ObjCReturnType): 16127 case YY_STATE_EOF(ObjCParams): 16128 case YY_STATE_EOF(ObjCParamType): 16129 case YY_STATE_EOF(ObjCProtocolList): 16130 case YY_STATE_EOF(ObjCPropAttr): 16131 case YY_STATE_EOF(ObjCSkipStatement): 16132 case YY_STATE_EOF(QtPropType): 16133 case YY_STATE_EOF(QtPropName): 16134 case YY_STATE_EOF(QtPropAttr): 16135 case YY_STATE_EOF(QtPropRead): 16136 case YY_STATE_EOF(QtPropWrite): 16137 case YY_STATE_EOF(ReadInitializer): 16138 case YY_STATE_EOF(GetCallType): 16139 case YY_STATE_EOF(CppQuote): 16140 case YY_STATE_EOF(EndCppQuote): 16141 case YY_STATE_EOF(MemberSpec): 16142 case YY_STATE_EOF(MemberSpecSkip): 16143 case YY_STATE_EOF(EndTemplate): 16144 case YY_STATE_EOF(FuncPtr): 16145 case YY_STATE_EOF(FuncPtrOperator): 16146 case YY_STATE_EOF(EndFuncPtr): 16147 case YY_STATE_EOF(ReadFuncArgType): 16148 case YY_STATE_EOF(ReadTempArgs): 16149 case YY_STATE_EOF(IDLUnionCase): 16150 case YY_STATE_EOF(NSAliasName): 16151 case YY_STATE_EOF(NSAliasArg): 16152 case YY_STATE_EOF(CopyString): 16153 case YY_STATE_EOF(CopyPHPString): 16154 case YY_STATE_EOF(CopyGString): 16155 case YY_STATE_EOF(CopyPHPGString): 16156 case YY_STATE_EOF(CopyRound): 16157 case YY_STATE_EOF(CopyCurly): 16158 case YY_STATE_EOF(GCopyRound): 16159 case YY_STATE_EOF(GCopyCurly): 16160 case YY_STATE_EOF(SkipUnionSwitch): 16161 case YY_STATE_EOF(Specialization): 16162 case YY_STATE_EOF(FuncPtrInit): 16163 case YY_STATE_EOF(FuncFunc): 16164 case YY_STATE_EOF(FuncFuncEnd): 16165 case YY_STATE_EOF(FuncFuncType): 16166 case YY_STATE_EOF(FuncFuncArray): 16167 case YY_STATE_EOF(CopyArgString): 16168 case YY_STATE_EOF(CopyArgPHPString): 16169 case YY_STATE_EOF(CopyArgRound): 16170 case YY_STATE_EOF(CopyArgSharp): 16171 case YY_STATE_EOF(CopyArgComment): 16172 case YY_STATE_EOF(CopyArgCommentLine): 16173 case YY_STATE_EOF(CopyArgVerbatim): 16174 case YY_STATE_EOF(IDLAttribute): 16175 case YY_STATE_EOF(IDLProp): 16176 case YY_STATE_EOF(IDLPropName): 16177 case YY_STATE_EOF(Prototype): 16178 case YY_STATE_EOF(PrototypePtr): 16179 case YY_STATE_EOF(PrototypeQual): 16180 case YY_STATE_EOF(PrototypeExc): 16181 case YY_STATE_EOF(PrototypeSkipLine): 16182 case YY_STATE_EOF(DocLine): 16183 case YY_STATE_EOF(DocBlock): 16184 yyterminate(); 16185 16186 case YY_END_OF_BUFFER: 16187 { 16188 /* Amount of text matched not including the EOB char. */ 16189 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; 16190 16191 /* Undo the effects of YY_DO_BEFORE_ACTION. */ 16192 *yy_cp = (yy_hold_char); 16193 YY_RESTORE_YY_MORE_OFFSET 16194 16195 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 16196 { 16197 /* We're scanning a new file or input source. It's 16198 * possible that this happened because the user 16199 * just pointed scanYYin at a new source and called 16200 * scanYYlex(). If so, then we have to assure 16201 * consistency between YY_CURRENT_BUFFER and our 16202 * globals. Here is the right place to do so, because 16203 * this is the first action (other than possibly a 16204 * back-up) that will match for the new input source. 16205 */ 16206 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 16207 YY_CURRENT_BUFFER_LVALUE->yy_input_file = scanYYin; 16208 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 16209 } 16210 16211 /* Note that here we test for yy_c_buf_p "<=" to the position 16212 * of the first EOB in the buffer, since yy_c_buf_p will 16213 * already have been incremented past the NUL character 16214 * (since all states make transitions on EOB to the 16215 * end-of-buffer state). Contrast this with the test 16216 * in input(). 16217 */ 16218 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 16219 { /* This was really a NUL. */ 16220 yy_state_type yy_next_state; 16221 16222 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; 16223 16224 yy_current_state = yy_get_previous_state( ); 16225 16226 /* Okay, we're now positioned to make the NUL 16227 * transition. We couldn't have 16228 * yy_get_previous_state() go ahead and do it 16229 * for us because it doesn't know how to deal 16230 * with the possibility of jamming (and we don't 16231 * want to build jamming into it because then it 16232 * will run more slowly). 16233 */ 16234 16235 yy_next_state = yy_try_NUL_trans( yy_current_state ); 16236 16237 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 16238 16239 if ( yy_next_state ) 16240 { 16241 /* Consume the NUL. */ 16242 yy_cp = ++(yy_c_buf_p); 16243 yy_current_state = yy_next_state; 16244 goto yy_match; 16245 } 16246 16247 else 16248 { 16249 yy_cp = (yy_c_buf_p); 16250 goto yy_find_action; 16251 } 16252 } 16253 16254 else switch ( yy_get_next_buffer( ) ) 16255 { 16256 case EOB_ACT_END_OF_FILE: 16257 { 16258 (yy_did_buffer_switch_on_eof) = 0; 16259 16260 if ( scanYYwrap( ) ) 16261 { 16262 /* Note: because we've taken care in 16263 * yy_get_next_buffer() to have set up 16264 * scanYYtext, we can now set up 16265 * yy_c_buf_p so that if some total 16266 * hoser (like flex itself) wants to 16267 * call the scanner after we return the 16268 * YY_NULL, it'll still work - another 16269 * YY_NULL will get returned. 16270 */ 16271 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; 16272 16273 yy_act = YY_STATE_EOF(YY_START); 16274 goto do_action; 16275 } 16276 16277 else 16278 { 16279 if ( ! (yy_did_buffer_switch_on_eof) ) 16280 YY_NEW_FILE; 16281 } 16282 break; 16283 } 16284 16285 case EOB_ACT_CONTINUE_SCAN: 16286 (yy_c_buf_p) = 16287 (yytext_ptr) + yy_amount_of_matched_text; 16288 16289 yy_current_state = yy_get_previous_state( ); 16290 16291 yy_cp = (yy_c_buf_p); 16292 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 16293 goto yy_match; 16294 16295 case EOB_ACT_LAST_MATCH: 16296 (yy_c_buf_p) = 16297 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; 16298 16299 yy_current_state = yy_get_previous_state( ); 16300 16301 yy_cp = (yy_c_buf_p); 16302 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 16303 goto yy_find_action; 16304 } 16305 break; 16306 } 16307 16308 default: 16309 YY_FATAL_ERROR( 16310 "fatal flex scanner internal error--no action found" ); 16311 } /* end of action switch */ 16312 } /* end of scanning one token */ 16313 } /* end of scanYYlex */ 16314 16315 /* yy_get_next_buffer - try to read in a new buffer 16316 * 16317 * Returns a code representing an action: 16318 * EOB_ACT_LAST_MATCH - 16319 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 16320 * EOB_ACT_END_OF_FILE - end of file 16321 */ 16322 static int yy_get_next_buffer (void) 16323 { 16324 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 16325 register char *source = (yytext_ptr); 16326 register int number_to_move, i; 16327 int ret_val; 16328 16329 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) 16330 YY_FATAL_ERROR( 16331 "fatal flex scanner internal error--end of buffer missed" ); 16332 16333 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 16334 { /* Don't try to fill the buffer, so this is an EOF. */ 16335 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) 16336 { 16337 /* We matched a single character, the EOB, so 16338 * treat this as a final EOF. 16339 */ 16340 return EOB_ACT_END_OF_FILE; 16341 } 16342 16343 else 16344 { 16345 /* We matched some text prior to the EOB, first 16346 * process it. 16347 */ 16348 return EOB_ACT_LAST_MATCH; 16349 } 16350 } 16351 16352 /* Try to read more data. */ 16353 16354 /* First move last chars to start of buffer. */ 16355 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; 16356 16357 for ( i = 0; i < number_to_move; ++i ) 16358 *(dest++) = *(source++); 16359 16360 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 16361 /* don't do the read, it's not guaranteed to return an EOF, 16362 * just force an EOF 16363 */ 16364 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; 16365 16366 else 16367 { 16368 int num_to_read = 16369 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 16370 16371 while ( num_to_read <= 0 ) 16372 { /* Not enough room in the buffer - grow it. */ 16373 16374 YY_FATAL_ERROR( 16375 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); 16376 16377 } 16378 16379 if ( num_to_read > YY_READ_BUF_SIZE ) 16380 num_to_read = YY_READ_BUF_SIZE; 16381 16382 /* Read in more data. */ 16383 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 16384 (yy_n_chars), num_to_read ); 16385 16386 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 16387 } 16388 16389 if ( (yy_n_chars) == 0 ) 16390 { 16391 if ( number_to_move == YY_MORE_ADJ ) 16392 { 16393 ret_val = EOB_ACT_END_OF_FILE; 16394 scanYYrestart(scanYYin ); 16395 } 16396 16397 else 16398 { 16399 ret_val = EOB_ACT_LAST_MATCH; 16400 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 16401 YY_BUFFER_EOF_PENDING; 16402 } 16403 } 16404 16405 else 16406 ret_val = EOB_ACT_CONTINUE_SCAN; 16407 16408 (yy_n_chars) += number_to_move; 16409 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; 16410 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; 16411 16412 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 16413 16414 return ret_val; 16415 } 16416 16417 /* yy_get_previous_state - get the state just before the EOB char was reached */ 16418 16419 static yy_state_type yy_get_previous_state (void) 16420 { 16421 register yy_state_type yy_current_state; 16422 register char *yy_cp; 16423 16424 yy_current_state = (yy_start); 16425 yy_current_state += YY_AT_BOL(); 16426 16427 (yy_state_ptr) = (yy_state_buf); 16428 *(yy_state_ptr)++ = yy_current_state; 16429 16430 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) 16431 { 16432 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 16433 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 16434 { 16435 yy_current_state = (int) yy_def[yy_current_state]; 16436 if ( yy_current_state >= 3550 ) 16437 yy_c = yy_meta[(unsigned int) yy_c]; 16438 } 16439 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 16440 *(yy_state_ptr)++ = yy_current_state; 16441 } 16442 16443 return yy_current_state; 16444 } 16445 16446 /* yy_try_NUL_trans - try to make a transition on the NUL character 16447 * 16448 * synopsis 16449 * next_state = yy_try_NUL_trans( current_state ); 16450 */ 16451 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) 16452 { 16453 register int yy_is_jam; 16454 16455 register YY_CHAR yy_c = 1; 16456 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 16457 { 16458 yy_current_state = (int) yy_def[yy_current_state]; 16459 if ( yy_current_state >= 3550 ) 16460 yy_c = yy_meta[(unsigned int) yy_c]; 16461 } 16462 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 16463 yy_is_jam = (yy_current_state == 3549); 16464 if ( ! yy_is_jam ) 16465 *(yy_state_ptr)++ = yy_current_state; 16466 16467 return yy_is_jam ? 0 : yy_current_state; 16468 } 16469 16470 static void yyunput (int c, register char * yy_bp ) 16471 { 16472 register char *yy_cp; 16473 16474 yy_cp = (yy_c_buf_p); 16475 16476 /* undo effects of setting up scanYYtext */ 16477 *yy_cp = (yy_hold_char); 16478 16479 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 16480 { /* need to shift things up to make room */ 16481 /* +2 for EOB chars. */ 16482 register int number_to_move = (yy_n_chars) + 2; 16483 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ 16484 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; 16485 register char *source = 16486 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; 16487 16488 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 16489 *--dest = *--source; 16490 16491 yy_cp += (int) (dest - source); 16492 yy_bp += (int) (dest - source); 16493 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = 16494 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; 16495 16496 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 16497 YY_FATAL_ERROR( "flex scanner push-back overflow" ); 16498 } 16499 16500 *--yy_cp = (char) c; 16501 16502 (yytext_ptr) = yy_bp; 16503 (yy_hold_char) = *yy_cp; 16504 (yy_c_buf_p) = yy_cp; 16505 } 16506 16507 #ifndef YY_NO_INPUT 16508 #ifdef __cplusplus 16509 static int yyinput (void) 16510 #else 16511 static int input (void) 16512 #endif 16513 16514 { 16515 int c; 16516 16517 *(yy_c_buf_p) = (yy_hold_char); 16518 16519 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) 16520 { 16521 /* yy_c_buf_p now points to the character we want to return. 16522 * If this occurs *before* the EOB characters, then it's a 16523 * valid NUL; if not, then we've hit the end of the buffer. 16524 */ 16525 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 16526 /* This was really a NUL. */ 16527 *(yy_c_buf_p) = '\0'; 16528 16529 else 16530 { /* need more input */ 16531 int offset = (yy_c_buf_p) - (yytext_ptr); 16532 ++(yy_c_buf_p); 16533 16534 switch ( yy_get_next_buffer( ) ) 16535 { 16536 case EOB_ACT_LAST_MATCH: 16537 /* This happens because yy_g_n_b() 16538 * sees that we've accumulated a 16539 * token and flags that we need to 16540 * try matching the token before 16541 * proceeding. But for input(), 16542 * there's no matching to consider. 16543 * So convert the EOB_ACT_LAST_MATCH 16544 * to EOB_ACT_END_OF_FILE. 16545 */ 16546 16547 /* Reset buffer status. */ 16548 scanYYrestart(scanYYin ); 16549 16550 /*FALLTHROUGH*/ 16551 16552 case EOB_ACT_END_OF_FILE: 16553 { 16554 if ( scanYYwrap( ) ) 16555 return 0; 16556 16557 if ( ! (yy_did_buffer_switch_on_eof) ) 16558 YY_NEW_FILE; 16559 #ifdef __cplusplus 16560 return yyinput(); 16561 #else 16562 return input(); 16563 #endif 16564 } 16565 16566 case EOB_ACT_CONTINUE_SCAN: 16567 (yy_c_buf_p) = (yytext_ptr) + offset; 16568 break; 16569 } 16570 } 16571 } 16572 16573 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ 16574 *(yy_c_buf_p) = '\0'; /* preserve scanYYtext */ 16575 (yy_hold_char) = *++(yy_c_buf_p); 16576 16577 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); 16578 16579 return c; 16580 } 16581 #endif /* ifndef YY_NO_INPUT */ 16582 16588 void scanYYrestart (FILE * input_file ) 16589 { 16590 16591 if ( ! YY_CURRENT_BUFFER ){ 16592 scanYYensure_buffer_stack (); 16593 YY_CURRENT_BUFFER_LVALUE = 16594 scanYY_create_buffer(scanYYin,YY_BUF_SIZE ); 16595 } 16596 16597 scanYY_init_buffer(YY_CURRENT_BUFFER,input_file ); 16598 scanYY_load_buffer_state( ); 16599 } 16600 16605 void scanYY_switch_to_buffer (YY_BUFFER_STATE new_buffer ) 16606 { 16607 16608 /* TODO. We should be able to replace this entire function body 16609 * with 16610 * scanYYpop_buffer_state(); 16611 * scanYYpush_buffer_state(new_buffer); 16612 */ 16613 scanYYensure_buffer_stack (); 16614 if ( YY_CURRENT_BUFFER == new_buffer ) 16615 return; 16616 16617 if ( YY_CURRENT_BUFFER ) 16618 { 16619 /* Flush out information for old buffer. */ 16620 *(yy_c_buf_p) = (yy_hold_char); 16621 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 16622 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 16623 } 16624 16625 YY_CURRENT_BUFFER_LVALUE = new_buffer; 16626 scanYY_load_buffer_state( ); 16627 16628 /* We don't actually know whether we did this switch during 16629 * EOF (scanYYwrap()) processing, but the only time this flag 16630 * is looked at is after scanYYwrap() is called, so it's safe 16631 * to go ahead and always set it. 16632 */ 16633 (yy_did_buffer_switch_on_eof) = 1; 16634 } 16635 16636 static void scanYY_load_buffer_state (void) 16637 { 16638 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 16639 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 16640 scanYYin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 16641 (yy_hold_char) = *(yy_c_buf_p); 16642 } 16643 16650 YY_BUFFER_STATE scanYY_create_buffer (FILE * file, int size ) 16651 { 16652 YY_BUFFER_STATE b; 16653 16654 b = (YY_BUFFER_STATE) scanYYalloc(sizeof( struct yy_buffer_state ) ); 16655 if ( ! b ) 16656 YY_FATAL_ERROR( "out of dynamic memory in scanYY_create_buffer()" ); 16657 16658 b->yy_buf_size = size; 16659 16660 /* yy_ch_buf has to be 2 characters longer than the size given because 16661 * we need to put in 2 end-of-buffer characters. 16662 */ 16663 b->yy_ch_buf = (char *) scanYYalloc(b->yy_buf_size + 2 ); 16664 if ( ! b->yy_ch_buf ) 16665 YY_FATAL_ERROR( "out of dynamic memory in scanYY_create_buffer()" ); 16666 16667 b->yy_is_our_buffer = 1; 16668 16669 scanYY_init_buffer(b,file ); 16670 16671 return b; 16672 } 16673 16678 void scanYY_delete_buffer (YY_BUFFER_STATE b ) 16679 { 16680 16681 if ( ! b ) 16682 return; 16683 16684 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 16685 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 16686 16687 if ( b->yy_is_our_buffer ) 16688 scanYYfree((void *) b->yy_ch_buf ); 16689 16690 scanYYfree((void *) b ); 16691 } 16692 16693 #ifndef __cplusplus 16694 extern int isatty (int ); 16695 #endif /* __cplusplus */ 16696 16697 /* Initializes or reinitializes a buffer. 16698 * This function is sometimes called more than once on the same buffer, 16699 * such as during a scanYYrestart() or at EOF. 16700 */ 16701 static void scanYY_init_buffer (YY_BUFFER_STATE b, FILE * file ) 16702 16703 { 16704 int oerrno = errno; 16705 16706 scanYY_flush_buffer(b ); 16707 16708 b->yy_input_file = file; 16709 b->yy_fill_buffer = 1; 16710 16711 /* If b is the current buffer, then scanYY_init_buffer was _probably_ 16712 * called from scanYYrestart() or through yy_get_next_buffer. 16713 * In that case, we don't want to reset the lineno or column. 16714 */ 16715 if (b != YY_CURRENT_BUFFER){ 16716 b->yy_bs_lineno = 1; 16717 b->yy_bs_column = 0; 16718 } 16719 16720 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 16721 16722 errno = oerrno; 16723 } 16724 16729 void scanYY_flush_buffer (YY_BUFFER_STATE b ) 16730 { 16731 if ( ! b ) 16732 return; 16733 16734 b->yy_n_chars = 0; 16735 16736 /* We always need two end-of-buffer characters. The first causes 16737 * a transition to the end-of-buffer state. The second causes 16738 * a jam in that state. 16739 */ 16740 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 16741 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 16742 16743 b->yy_buf_pos = &b->yy_ch_buf[0]; 16744 16745 b->yy_at_bol = 1; 16746 b->yy_buffer_status = YY_BUFFER_NEW; 16747 16748 if ( b == YY_CURRENT_BUFFER ) 16749 scanYY_load_buffer_state( ); 16750 } 16751 16758 void scanYYpush_buffer_state (YY_BUFFER_STATE new_buffer ) 16759 { 16760 if (new_buffer == NULL) 16761 return; 16762 16763 scanYYensure_buffer_stack(); 16764 16765 /* This block is copied from scanYY_switch_to_buffer. */ 16766 if ( YY_CURRENT_BUFFER ) 16767 { 16768 /* Flush out information for old buffer. */ 16769 *(yy_c_buf_p) = (yy_hold_char); 16770 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 16771 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 16772 } 16773 16774 /* Only push if top exists. Otherwise, replace top. */ 16775 if (YY_CURRENT_BUFFER) 16776 (yy_buffer_stack_top)++; 16777 YY_CURRENT_BUFFER_LVALUE = new_buffer; 16778 16779 /* copied from scanYY_switch_to_buffer. */ 16780 scanYY_load_buffer_state( ); 16781 (yy_did_buffer_switch_on_eof) = 1; 16782 } 16783 16788 void scanYYpop_buffer_state (void) 16789 { 16790 if (!YY_CURRENT_BUFFER) 16791 return; 16792 16793 scanYY_delete_buffer(YY_CURRENT_BUFFER ); 16794 YY_CURRENT_BUFFER_LVALUE = NULL; 16795 if ((yy_buffer_stack_top) > 0) 16796 --(yy_buffer_stack_top); 16797 16798 if (YY_CURRENT_BUFFER) { 16799 scanYY_load_buffer_state( ); 16800 (yy_did_buffer_switch_on_eof) = 1; 16801 } 16802 } 16803 16804 /* Allocates the stack if it does not exist. 16805 * Guarantees space for at least one push. 16806 */ 16807 static void scanYYensure_buffer_stack (void) 16808 { 16809 int num_to_alloc; 16810 16811 if (!(yy_buffer_stack)) { 16812 16813 /* First allocation is just for 2 elements, since we don't know if this 16814 * scanner will even need a stack. We use 2 instead of 1 to avoid an 16815 * immediate realloc on the next call. 16816 */ 16817 num_to_alloc = 1; 16818 (yy_buffer_stack) = (struct yy_buffer_state**)scanYYalloc 16819 (num_to_alloc * sizeof(struct yy_buffer_state*) 16820 ); 16821 16822 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 16823 16824 (yy_buffer_stack_max) = num_to_alloc; 16825 (yy_buffer_stack_top) = 0; 16826 return; 16827 } 16828 16829 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ 16830 16831 /* Increase the buffer to prepare for a possible push. */ 16832 int grow_size = 8 /* arbitrary grow size */; 16833 16834 num_to_alloc = (yy_buffer_stack_max) + grow_size; 16835 (yy_buffer_stack) = (struct yy_buffer_state**)scanYYrealloc 16836 ((yy_buffer_stack), 16837 num_to_alloc * sizeof(struct yy_buffer_state*) 16838 ); 16839 16840 /* zero only the new slots.*/ 16841 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); 16842 (yy_buffer_stack_max) = num_to_alloc; 16843 } 16844 } 16845 16852 YY_BUFFER_STATE scanYY_scan_buffer (char * base, yy_size_t size ) 16853 { 16854 YY_BUFFER_STATE b; 16855 16856 if ( size < 2 || 16857 base[size-2] != YY_END_OF_BUFFER_CHAR || 16858 base[size-1] != YY_END_OF_BUFFER_CHAR ) 16859 /* They forgot to leave room for the EOB's. */ 16860 return 0; 16861 16862 b = (YY_BUFFER_STATE) scanYYalloc(sizeof( struct yy_buffer_state ) ); 16863 if ( ! b ) 16864 YY_FATAL_ERROR( "out of dynamic memory in scanYY_scan_buffer()" ); 16865 16866 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ 16867 b->yy_buf_pos = b->yy_ch_buf = base; 16868 b->yy_is_our_buffer = 0; 16869 b->yy_input_file = 0; 16870 b->yy_n_chars = b->yy_buf_size; 16871 b->yy_is_interactive = 0; 16872 b->yy_at_bol = 1; 16873 b->yy_fill_buffer = 0; 16874 b->yy_buffer_status = YY_BUFFER_NEW; 16875 16876 scanYY_switch_to_buffer(b ); 16877 16878 return b; 16879 } 16880 16889 YY_BUFFER_STATE scanYY_scan_string (yyconst char * yystr ) 16890 { 16891 16892 return scanYY_scan_bytes(yystr,strlen(yystr) ); 16893 } 16894 16902 YY_BUFFER_STATE scanYY_scan_bytes (yyconst char * yybytes, int _yybytes_len ) 16903 { 16904 YY_BUFFER_STATE b; 16905 char *buf; 16906 yy_size_t n; 16907 int i; 16908 16909 /* Get memory for full buffer, including space for trailing EOB's. */ 16910 n = _yybytes_len + 2; 16911 buf = (char *) scanYYalloc(n ); 16912 if ( ! buf ) 16913 YY_FATAL_ERROR( "out of dynamic memory in scanYY_scan_bytes()" ); 16914 16915 for ( i = 0; i < _yybytes_len; ++i ) 16916 buf[i] = yybytes[i]; 16917 16918 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; 16919 16920 b = scanYY_scan_buffer(buf,n ); 16921 if ( ! b ) 16922 YY_FATAL_ERROR( "bad buffer in scanYY_scan_bytes()" ); 16923 16924 /* It's okay to grow etc. this buffer, and we should throw it 16925 * away when we're done. 16926 */ 16927 b->yy_is_our_buffer = 1; 16928 16929 return b; 16930 } 16931 16932 #ifndef YY_EXIT_FAILURE 16933 #define YY_EXIT_FAILURE 2 16934 #endif 16935 16936 static void yy_fatal_error (yyconst char* msg ) 16937 { 16938 (void) fprintf( stderr, "%s\n", msg ); 16939 exit( YY_EXIT_FAILURE ); 16940 } 16941 16942 /* Redefine yyless() so it works in section 3 code. */ 16943 16944 #undef yyless 16945 #define yyless(n) \ 16946 do \ 16947 { \ 16948 /* Undo effects of setting up scanYYtext. */ \ 16949 int yyless_macro_arg = (n); \ 16950 YY_LESS_LINENO(yyless_macro_arg);\ 16951 scanYYtext[scanYYleng] = (yy_hold_char); \ 16952 (yy_c_buf_p) = scanYYtext + yyless_macro_arg; \ 16953 (yy_hold_char) = *(yy_c_buf_p); \ 16954 *(yy_c_buf_p) = '\0'; \ 16955 scanYYleng = yyless_macro_arg; \ 16956 } \ 16957 while ( 0 ) 16958 16959 /* Accessor methods (get/set functions) to struct members. */ 16960 16964 int scanYYget_lineno (void) 16965 { 16966 16967 return scanYYlineno; 16968 } 16969 16973 FILE *scanYYget_in (void) 16974 { 16975 return scanYYin; 16976 } 16977 16981 FILE *scanYYget_out (void) 16982 { 16983 return scanYYout; 16984 } 16985 16989 int scanYYget_leng (void) 16990 { 16991 return scanYYleng; 16992 } 16993 16998 char *scanYYget_text (void) 16999 { 17000 return scanYYtext; 17001 } 17002 17007 void scanYYset_lineno (int line_number ) 17008 { 17009 17010 scanYYlineno = line_number; 17011 } 17012 17019 void scanYYset_in (FILE * in_str ) 17020 { 17021 scanYYin = in_str ; 17022 } 17023 17024 void scanYYset_out (FILE * out_str ) 17025 { 17026 scanYYout = out_str ; 17027 } 17028 17029 int scanYYget_debug (void) 17030 { 17031 return scanYY_flex_debug; 17032 } 17033 17034 void scanYYset_debug (int bdebug ) 17035 { 17036 scanYY_flex_debug = bdebug ; 17037 } 17038 17039 static int yy_init_globals (void) 17040 { 17041 /* Initialization is the same as for the non-reentrant scanner. 17042 * This function is called from scanYYlex_destroy(), so don't allocate here. 17043 */ 17044 17045 (yy_buffer_stack) = 0; 17046 (yy_buffer_stack_top) = 0; 17047 (yy_buffer_stack_max) = 0; 17048 (yy_c_buf_p) = (char *) 0; 17049 (yy_init) = 0; 17050 (yy_start) = 0; 17051 17052 (yy_state_buf) = 0; 17053 (yy_state_ptr) = 0; 17054 (yy_full_match) = 0; 17055 (yy_lp) = 0; 17056 17057 /* Defined in main.c */ 17058 #ifdef YY_STDINIT 17059 scanYYin = stdin; 17060 scanYYout = stdout; 17061 #else 17062 scanYYin = (FILE *) 0; 17063 scanYYout = (FILE *) 0; 17064 #endif 17065 17066 /* For future reference: Set errno on error, since we are called by 17067 * scanYYlex_init() 17068 */ 17069 return 0; 17070 } 17071 17072 /* scanYYlex_destroy is for both reentrant and non-reentrant scanners. */ 17073 int scanYYlex_destroy (void) 17074 { 17075 17076 /* Pop the buffer stack, destroying each element. */ 17077 while(YY_CURRENT_BUFFER){ 17078 scanYY_delete_buffer(YY_CURRENT_BUFFER ); 17079 YY_CURRENT_BUFFER_LVALUE = NULL; 17080 scanYYpop_buffer_state(); 17081 } 17082 17083 /* Destroy the stack itself. */ 17084 scanYYfree((yy_buffer_stack) ); 17085 (yy_buffer_stack) = NULL; 17086 17087 scanYYfree ( (yy_state_buf) ); 17088 (yy_state_buf) = NULL; 17089 17090 /* Reset the globals. This is important in a non-reentrant scanner so the next time 17091 * scanYYlex() is called, initialization will occur. */ 17092 yy_init_globals( ); 17093 17094 return 0; 17095 } 17096 17097 /* 17098 * Internal utility routines. 17099 */ 17100 17101 #ifndef yytext_ptr 17102 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) 17103 { 17104 register int i; 17105 for ( i = 0; i < n; ++i ) 17106 s1[i] = s2[i]; 17107 } 17108 #endif 17109 17110 #ifdef YY_NEED_STRLEN 17111 static int yy_flex_strlen (yyconst char * s ) 17112 { 17113 register int n; 17114 for ( n = 0; s[n]; ++n ) 17115 ; 17116 17117 return n; 17118 } 17119 #endif 17120 17121 void *scanYYalloc (yy_size_t size ) 17122 { 17123 return (void *) malloc( size ); 17124 } 17125 17126 void *scanYYrealloc (void * ptr, yy_size_t size ) 17127 { 17128 /* The cast to (char *) in the following accommodates both 17129 * implementations that use char* generic pointers, and those 17130 * that use void* generic pointers. It works with the latter 17131 * because both ANSI C and C++ allow castless assignment from 17132 * any pointer type to void*, and deal with argument conversions 17133 * as though doing an assignment. 17134 */ 17135 return (void *) realloc( (char *) ptr, size ); 17136 } 17137 17138 void scanYYfree (void * ptr ) 17139 { 17140 free( (char *) ptr ); /* see scanYYrealloc() for (char *) cast */ 17141 } 17142 17143 #define YYTABLES_NAME "yytables" 17144 17145 #line 5243 "scanner.l" 17146 17147 17148 17149 //---------------------------------------------------------------------------- 17150 17151 static void startCommentBlock(bool brief) 17152 { 17153 if (brief) 17154 { 17155 current->briefFile = yyFileName; 17156 current->briefLine = yyLineNr; 17157 } 17158 else 17159 { 17160 current->docFile = yyFileName; 17161 current->docLine = yyLineNr; 17162 } 17163 } 17164 17165 //---------------------------------------------------------------------------- 17166 17167 static void newEntry() 17168 { 17169 current_root->addSubEntry(current); 17170 previous = current; 17171 current = new Entry ; 17172 initEntry(); 17173 } 17174 17175 static void handleCommentBlock(const QCString &doc,bool brief) 17176 { 17177 static bool hideInBodyDocs = Config_getBool("HIDE_IN_BODY_DOCS"); 17178 int position=0; 17179 bool needsEntry=FALSE; 17180 if (docBlockInBody && hideInBodyDocs) return; 17181 //printf("parseCommentBlock [%s]\n",doc.data()); 17182 while (parseCommentBlock( 17183 g_thisParser, 17184 docBlockInBody ? previous : current, 17185 doc, // text 17186 yyFileName, // file 17187 brief ? current->briefLine : current->docLine, // line of block start 17188 docBlockInBody ? FALSE : brief, 17189 docBlockInBody ? FALSE : docBlockAutoBrief, 17190 docBlockInBody, 17191 protection, 17192 position, 17193 needsEntry 17194 ) 17195 ) 17196 { 17197 //printf("parseCommentBlock position=%d [%s]\n",position,doc.data()+position); 17198 if (needsEntry) newEntry(); 17199 } 17200 if (needsEntry) 17201 { 17202 newEntry(); 17203 } 17204 17205 if (docBlockTerm) 17206 { 17207 unput(docBlockTerm); 17208 docBlockTerm=0; 17209 } 17210 } 17211 17212 static void handleParametersCommentBlocks(ArgumentList *al) 17213 { 17214 //printf(">>>>>>> handleParametersCommentBlocks()\n"); 17215 ArgumentListIterator ali(*al); 17216 Argument *a; 17217 for (ali.toFirst();(a=ali.current());++ali) 17218 { 17219 //printf(" Param %s docs=%s\n",a->name.data(),a->docs.data()); 17220 if (!a->docs.isEmpty()) 17221 { 17222 int position=0; 17223 bool needsEntry; 17224 17225 // save context 17226 QCString orgDoc = current->doc; 17227 QCString orgBrief = current->brief; 17228 int orgDocLine = current->docLine; 17229 int orgBriefLine = current->briefLine; 17230 17231 current->doc.resize(0); 17232 current->brief.resize(0); 17233 17234 //printf("handleParametersCommentBlock [%s]\n",doc.data()); 17235 while (parseCommentBlock( 17236 g_thisParser, 17237 current, 17238 a->docs, // text 17239 yyFileName, // file 17240 current->docLine, // line of block start 17241 FALSE, 17242 FALSE, 17243 FALSE, 17244 protection, 17245 position, 17246 needsEntry 17247 ) 17248 ) 17249 { 17250 //printf("handleParametersCommentBlock position=%d [%s]\n",position,doc.data()+position); 17251 if (needsEntry) newEntry(); 17252 } 17253 if (needsEntry) 17254 { 17255 newEntry(); 17256 } 17257 a->docs = current->doc; 17258 17259 // restore context 17260 current->doc = orgDoc; 17261 current->brief = orgBrief; 17262 current->docLine = orgDocLine; 17263 current->briefLine = orgBriefLine; 17264 } 17265 } 17266 } 17267 17268 17269 //---------------------------------------------------------------------------- 17270 17271 static void parseCompounds(Entry *rt) 17272 { 17273 //printf("parseCompounds(%s)\n",rt->name.data()); 17274 g_inputFromFile = FALSE; 17275 EntryListIterator eli(*rt->children()); 17276 Entry *ce; 17277 for (;(ce=eli.current());++eli) 17278 { 17279 if (!ce->program.isEmpty()) 17280 { 17281 //printf("-- %s ---------\n%s\n---------------\n", 17282 // ce->name.data(),ce->program.data()); 17283 // init scanner state 17284 padCount=0; 17285 depthIf = 0; 17286 inputString = ce->program; 17287 inputPosition = 0; 17288 scanYYrestart( scanYYin ) ; 17289 if (ce->section==Entry::ENUM_SEC) 17290 BEGIN( FindFields ) ; 17291 else 17292 BEGIN( FindMembers ) ; 17293 current_root = ce ; 17294 yyFileName = ce->fileName; 17295 //setContext(); 17296 yyLineNr = ce->startLine ; 17297 insideObjC = ce->objc; 17298 //printf("---> Inner block starts at line %d objC=%d\n",yyLineNr,insideObjC); 17299 //current->reset(); 17300 if (current) delete current; 17301 current = new Entry; 17302 gstat = FALSE; 17303 int ni=ce->name.findRev("::"); if (ni==-1) ni=0; else ni+=2; 17304 // set default protection based on the compound type 17305 if( ce->section==Entry::CLASS_SEC ) // class 17306 { 17307 17308 if (insidePHP || insideD || insideJS) 17309 { 17310 current->protection = protection = Public ; 17311 } 17312 else if (insideJava) 17313 { 17314 current->protection = protection = Package ; 17315 } 17316 else if (ce->spec&(Entry::Interface | Entry::Ref | Entry::Value | Entry::Struct | Entry::Union)) 17317 { 17318 if (ce->objc) 17319 { 17320 current->protection = protection = Protected ; 17321 } 17322 else 17323 { 17324 current->protection = protection = Public ; 17325 } 17326 } 17327 else 17328 { 17329 current->protection = protection = Private ; 17330 } 17331 } 17332 else if (ce->section == Entry::ENUM_SEC ) // enum 17333 { 17334 current->protection = protection = ce->protection; 17335 } 17336 else if (!ce->name.isEmpty() && ce->name.at(ni)=='@') // unnamed union or namespace 17337 { 17338 if (ce->section == Entry::NAMESPACE_SEC ) // unnamed namespace 17339 { 17340 current->stat = gstat = TRUE; 17341 } 17342 current->protection = protection = ce->protection; 17343 } 17344 else // named struct, union, protocol, category 17345 { 17346 current->protection = protection = Public ; 17347 } 17348 mtype = Method; 17349 virt = Normal; 17350 //printf("name=%s current->stat=%d gstat=%d\n",ce->name.data(),current->stat,gstat); 17351 17352 //memberGroupId = DOX_NOGROUP; 17353 //memberGroupRelates.resize(0); 17354 //memberGroupInside.resize(0); 17355 groupEnterCompound(yyFileName,yyLineNr,ce->name); 17356 17357 scanYYlex() ; 17358 g_lexInit=TRUE; 17359 //forceEndGroup(); 17360 17361 groupLeaveCompound(yyFileName,yyLineNr,ce->name); 17362 17363 delete current; current=0; 17364 ce->program.resize(0); 17365 17366 17367 if (depthIf>0) 17368 { 17369 warn(yyFileName,yyLineNr,"Documentation block ended in the middle of a conditional section!"); 17370 } 17371 } 17372 parseCompounds(ce); 17373 } 17374 } 17375 17376 //---------------------------------------------------------------------------- 17377 17378 static void parseMain(const char *fileName,const char *fileBuf,Entry *rt) 17379 { 17380 initParser(); 17381 //g_inputFromFile = TRUE; 17382 17383 inputString = fileBuf; 17384 inputPosition = 0; 17385 g_inputFromFile = FALSE; 17386 17387 //anonCount = 0; // don't reset per file 17388 depthIf = 0; 17389 protection = Public; 17390 mtype = Method; 17391 gstat = FALSE; 17392 virt = Normal; 17393 current_root = rt; 17394 global_root = rt; 17395 inputFile.setName(fileName); 17396 if (inputFile.open(IO_ReadOnly)) 17397 { 17398 yyLineNr= 1 ; 17399 yyFileName = fileName; 17400 setContext(); 17401 msg("Parsing file %s...\n",yyFileName.data()); 17402 17403 current_root = rt ; 17404 initParser(); 17405 groupEnterFile(yyFileName,yyLineNr); 17406 current = new Entry; 17407 //printf("current=%p current_root=%p\n",current,current_root); 17408 int sec=guessSection(yyFileName); 17409 if (sec) 17410 { 17411 current->name = yyFileName; 17412 current->section = sec; 17413 current_root->addSubEntry(current); 17414 current = new Entry; 17415 } 17416 current->reset(); 17417 scanYYrestart( scanYYin ); 17418 if ( insidePHP ) 17419 { 17420 BEGIN( FindMembersPHP ); 17421 } 17422 else 17423 { 17424 BEGIN( FindMembers ); 17425 } 17426 17427 scanYYlex(); 17428 g_lexInit=TRUE; 17429 17430 if (YY_START==Comment) 17431 { 17432 warn(yyFileName,yyLineNr,"File ended in the middle of a comment block! Perhaps a missing \\endcode?"); 17433 } 17434 17435 //forceEndGroup(); 17436 groupLeaveFile(yyFileName,yyLineNr); 17437 17438 if (depthIf>0) 17439 { 17440 warn(yyFileName,yyLineNr,"Documentation block ended in the middle of a conditional section!"); 17441 } 17442 17443 rt->program.resize(0); 17444 delete current; current=0; 17445 17446 parseCompounds(rt); 17447 17448 inputFile.close(); 17449 17450 anonNSCount++; 17451 } 17452 } 17453 17454 //---------------------------------------------------------------------------- 17455 17456 static void parsePrototype(const QCString &text) 17457 { 17458 //printf("**** parsePrototype(%s) begin\n",text.data()); 17459 if (text.isEmpty()) 17460 { 17461 warn(yyFileName,yyLineNr,"Empty prototype found!"); 17462 return; 17463 } 17464 17465 const char *orgInputString; 17466 int orgInputPosition; 17467 YY_BUFFER_STATE orgState; 17468 bool orgInputFromFile; 17469 17470 // save scanner state 17471 orgState = YY_CURRENT_BUFFER; 17472 scanYY_switch_to_buffer(scanYY_create_buffer(scanYYin,YY_BUF_SIZE)); 17473 orgInputString = inputString; 17474 orgInputPosition = inputPosition; 17475 orgInputFromFile = g_inputFromFile; 17476 17477 // set new string 17478 inputString = text; 17479 inputPosition = 0; 17480 g_inputFromFile = FALSE; 17481 scanYYrestart( scanYYin ); 17482 BEGIN(Prototype); 17483 scanYYlex(); 17484 g_lexInit=TRUE; 17485 17486 current->name = current->name.stripWhiteSpace(); 17487 if (current->section == Entry::MEMBERDOC_SEC && current->args.isEmpty()) 17488 current->section = Entry::VARIABLEDOC_SEC; 17489 17490 // restore original scanner state 17491 YY_BUFFER_STATE tmpState = YY_CURRENT_BUFFER; 17492 scanYY_switch_to_buffer(orgState); 17493 scanYY_delete_buffer(tmpState); 17494 inputString = orgInputString; 17495 inputPosition = orgInputPosition; 17496 g_inputFromFile = orgInputFromFile; 17497 17498 //printf("**** parsePrototype end\n"); 17499 } 17500 17501 void scanFreeScanner() 17502 { 17503 #if defined(YY_FLEX_SUBMINOR_VERSION) 17504 if (g_lexInit) 17505 { 17506 scanYYlex_destroy(); 17507 } 17508 #endif 17509 } 17510 17511 //static void handleGroupStartCommand(const char *header) 17512 //{ 17513 // memberGroupHeader=header; 17514 // startGroupInDoc(); 17515 //} 17516 // 17517 //static void handleGroupEndCommand() 17518 //{ 17519 // endGroup(); 17520 // previous=0; 17521 //} 17522 17523 //---------------------------------------------------------------------------- 17524 17525 void CLanguageScanner::parseInput(const char *fileName,const char *fileBuf,Entry *root) 17526 { 17527 g_thisParser = this; 17528 ::parseMain(fileName,fileBuf,root); 17529 } 17530 17531 void CLanguageScanner::parseCode(CodeOutputInterface & codeOutIntf, 17532 const char * scopeName, 17533 const QCString & input, 17534 bool isExampleBlock, 17535 const char * exampleName, 17536 FileDef * fileDef, 17537 int startLine, 17538 int endLine, 17539 bool inlineFragment, 17540 MemberDef *memberDef 17541 ) 17542 { 17543 ::parseCCode(codeOutIntf,scopeName,input,isExampleBlock,exampleName, 17544 fileDef,startLine,endLine,inlineFragment,memberDef); 17545 } 17546 17547 bool CLanguageScanner::needsPreprocessing(const QCString &extension) 17548 { 17549 QCString fe=extension.lower(); 17550 return 17551 !( fe==".java" || fe==".as" || fe==".d" || fe==".php" || 17552 fe==".php4" || fe==".inc" || fe==".phtml" 17553 ); 17554 } 17555 17556 void CLanguageScanner::resetCodeParserState() 17557 { 17558 ::resetCCodeParserState(); 17559 } 17560 17561 void CLanguageScanner::parsePrototype(const char *text) 17562 { 17563 ::parsePrototype(text); 17564 } 17565 17566 //---------------------------------------------------------------------------- 17567 17568 #if !defined(YY_FLEX_SUBMINOR_VERSION) 17569 //---------------------------------------------------------------------------- 17570 extern "C" { // some bogus code to keep the compiler happy 17571 void scannerYYdummy() { yy_flex_realloc(0,0); } 17572 } 17573 #endif 17574 17575